sf snapshot: uncommitted changes after 53m inactivity
This commit is contained in:
parent
af2f86c3c2
commit
6071a9207c
1 changed files with 26 additions and 2 deletions
|
|
@ -114,6 +114,28 @@ This file is the explicit capability and coverage contract for the project.
|
|||
- Validation: unmapped
|
||||
- Notes: `reorderForCaching` in `prompt-ordering.js` is the live implementation.
|
||||
|
||||
### R011 — Defective-Complete Milestone Detection
|
||||
- Class: failure-visibility
|
||||
- Status: active
|
||||
- Description: When a milestone reaches `status: complete` (all slices done) but is missing a required PDD field — specifically a non-empty `vision` or a written `M{id}-SUMMARY.md` — the doctor must emit a structured, machine-actionable signal that downstream remediation can consume. The detection already exists as the `db_milestone_missing_vision` and `all_slices_done_missing_milestone_summary` issue kinds in `doctor-engine-checks.js`; this requirement extends them with a self-feedback emission (kind: `legacy-milestone:no-vision` / `:no-summary`) carrying `occurredIn.milestone` so the inline-fixer can route remediation.
|
||||
- Why it matters: Today these issues are report-only — zero downstream consumers (`grep db_milestone_missing_vision` finds only the emitter). M001-6377a4 (2026-05-16) is in exactly this state and has deadlocked the autonomous loop: doctor ERROR gates dispatch, but no path exists to repair the milestone, so the operator must manually patch state. As ADR-0000 enforcement spreads, more legacy milestones will surface this gap.
|
||||
- Source: spec
|
||||
- Primary owning slice: unmapped
|
||||
- Supporting slices: none
|
||||
- Validation: unmapped
|
||||
- Notes: Pairs with R012. Reference self-feedback `sf-mp8a3kzm-iqbxkl` for full context. Detection must remain idempotent (one open self-feedback entry per defective milestone, deduped via existing rollup logic).
|
||||
|
||||
### R012 — Vision-Fill Recovery Dispatch
|
||||
- Class: differentiator
|
||||
- Status: active
|
||||
- Description: When R011's signal fires for a defective-complete milestone, SF must autonomously dispatch a recovery unit that (a) reads the milestone's completed slice goals, demos, and roadmap context, (b) synthesizes the missing `vision` and 8 PDD fields via LLM, (c) writes the result to the DB through the standard writer, and (d) routes back to `completing-milestone` so the existing deterministic SUMMARY renderer (`tools/complete-milestone.js:33-93`) and purpose-coherence-gate run against the filled content. The unit must be content-fill only — it does not mutate slice contracts or run any tasks.
|
||||
- Why it matters: This closes the chicken-and-egg deadlock: `plan-milestone` refuses to plan without a vision, `solver-purpose-gate` pauses on missing PDD fields, and `buildRegistryAndFindActive` (`state-db.js:139-175`) skips status=complete milestones — so no current path can author vision content. A scoped recovery unit lets autonomous self-heal legacy and structurally-defective milestones through the normal verification chain instead of forcing operator intervention. Mirrors R004's auto-remediation-dispatch pattern but for content defects rather than validation defects.
|
||||
- Source: spec
|
||||
- Primary owning slice: unmapped
|
||||
- Supporting slices: none
|
||||
- Validation: unmapped
|
||||
- Notes: Requires (1) new prompt template `prompts/fill-milestone-vision.md`, (2) new dispatchable unit wired in `auto-dispatch.js` + `state-transition-matrix.js`, (3) an exception in `buildRegistryAndFindActive` for one-shot `status=complete && vision=""` repair, (4) inline-fixer handler that converts the R011 self-feedback entry into a dispatch. Must satisfy R006 (fail-open) — recovery-unit failure halts with notification, never crashes the loop.
|
||||
|
||||
## Traceability
|
||||
|
||||
| ID | Class | Status | Primary owner | Supporting | Proof |
|
||||
|
|
@ -128,10 +150,12 @@ This file is the explicit capability and coverage contract for the project.
|
|||
| R008 | core-capability | active | M005/S01 | M005/S02 | unmapped |
|
||||
| R009 | quality-attribute | active | M005/S01 | M005/S03 | unmapped |
|
||||
| R010 | quality-attribute | active | M005/S02 | none | unmapped |
|
||||
| R011 | failure-visibility | active | unmapped | none | unmapped |
|
||||
| R012 | differentiator | active | unmapped | none | unmapped |
|
||||
|
||||
## Coverage Summary
|
||||
|
||||
- Active requirements: 10
|
||||
- Active requirements: 12
|
||||
- Mapped to slices: 10
|
||||
- Validated: 0
|
||||
- Unmapped active requirements: 0
|
||||
- Unmapped active requirements: 2 (R011, R012 — pending planning into a new self-heal extension slice or M003 follow-on)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue