Repository navigation
v2.2.1
Bug-fix release from an audit of the validator / archiver / backfiller triangle.
Fixed
specpilot backfillcould never fix the "Missing MANDATE for prompt tracking" error.YAML_MANDATESonly listed the 8rules.criticalmandates, so therules.processmandate thatspecpilot validatechecks for was never written — the validator reported an error that backfill structurally could not resolve.specpilot backfillcorruptedproject.yamlwhen it had norules:key. The fallback appended a bare, two-space-indentedcritical:block with no parent key, which YAML silently nested under whatever top-level key preceded it (e.g. producingdependencies.critical), leaving the mandates invisible to the validator.specpilot archivesilently destroyed anytasks.mdsection after## Completed.archiveTasks()assumed the Completed section ran to end-of-file, so a following section (e.g.## Multi-Dev Notes) was swept intotasks-archive.mdwhile the active section kept unrelated lines. Compounding it,backfillplaced its own generated## Multi-Dev Notesexactly where the archiver would eat it.- Dead and incorrect
validate --fixpaths removed.addMandatesToProjectYaml()matchedpromptwhere the validator requiresprompts(so "unless prompted" counted as the mandate) and usedyaml.dump(), destroying all comments. It andcreateInitialPromptsEntry()were unreachable;specpilot backfillalready handles this with comment-preserving text insertion. autoFix()could write arbitrary files into.specs/— thecreate-*catch-all is now constrained to the validator's required files.planning/roadmap.mdnever got a staleness warning.
216 tests passing.