mypy --strict src tests passes (no issues, 6 files); ML/posix-sdc imports ignored via overrides; sft/eval/resident/tests fully annotated; mypy is a declared dev dep; py.typed ships in the package.
README describes the trainer/eval/resident, the posix-sdc dependency, install via the gpu extra, the chat-template render contract, and console-script usage; module docstrings reference sekft-train/eval/resident and apply_chat_template, not the old flat scripts.
tests/unit and tests/smoke pass under pytest; the mask test proves assistant-only training and raises on non-additive templates; entry-point smoke tests pass without torch.
Resident loads the base once; fit trains an adapter and unloads it; evaluate attaches an adapter (or the base baseline) and renders via the shared chat-template canonicalisation.
eval reuses the posix-sdc rollout with a local operator; renders via apply_chat_template + normalize_for_template; reports command-mode, terminate, and verified rates over held-out scenarios.
sft renders via apply_chat_template; normalize_for_template folds system and merges consecutive turns; the loss mask trains assistant turns only and raises on a non-additive template; --inspect reports mask stats.
tiararodney.sekft imports; sekft-train/eval/resident console scripts resolve; pyproject declares posix-sdc as a dependency with torch et al. behind a gpu extra; Pipfile carries the local editable posix-sdc override; tox envs exist.