Added
- Planning pipeline integrity (mission 069) — four structural fixes eliminating fragilities discovered during mission 068:
- Dirty-git reads fix (WP01) —
materialize()now derivesmaterialized_atfrom the last event timestamp (deterministic) and skips the write when content is byte-identical.materialize_if_stale()returns a read-onlyreduce()call. All read-only commands leave zero modified files ingit status. Fixes #524. - Structured WP manifest —
wps.yaml(WP02, WP03, WP04) — newsrc/specify_cli/core/wps_manifest.pywith Pydantic model, YAML loader, andgenerate_tasks_md_from_manifest(). JSON Schema atsrc/specify_cli/schemas/wps.schema.json. Whenwps.yamlis present,finalize-tasksderives dependencies exclusively from the manifest;tasks.mdis regenerated as a derived artifact./spec-kitty.tasks-outlineand/spec-kitty.tasks-packagestemplates updated to produce/consumewps.yaml. Migrationm_3_2_0_update_planning_templatespropagates changes to existing installations. Fixes #525. spec-kitty nextquery mode (WP05) — barespec-kitty next(no--result) enters query mode: returns current step with[QUERY — no result provided, state not advanced]prefix without advancing the state machine. Prevents ghost completions when agents callnextwhile disoriented. Fixes #526.- Slug validator digit-prefix support (WP06) —
KEBAB_CASE_PATTERNupdated to acceptNNN-*slugs following spec-kitty's own naming convention. Fixes #527.
- Dirty-git reads fix (WP01) —