diff --git a/docs/dev/ADR-008-IMPLEMENTATION-PLAN.md b/docs/dev/ADR-008-IMPLEMENTATION-PLAN.md index 7bbf7456f..901a949e1 100644 --- a/docs/dev/ADR-008-IMPLEMENTATION-PLAN.md +++ b/docs/dev/ADR-008-IMPLEMENTATION-PLAN.md @@ -1,6 +1,6 @@ # ADR-008 Implementation Plan -**Related ADR:** [ADR-008-sf-tools-over-mcp-for-provider-parity.md](/Users/jeremymcspadden/Github/sf-2/docs/ADR-008-sf-tools-over-mcp-for-provider-parity.md) +**Related ADR:** [ADR-008-sf-tools-over-mcp-for-provider-parity.md](./ADR-008-sf-tools-over-mcp-for-provider-parity.md) **Status:** Draft **Date:** 2026-04-09 diff --git a/docs/dev/ADR-009-IMPLEMENTATION-PLAN.md b/docs/dev/ADR-009-IMPLEMENTATION-PLAN.md index 2ac1363aa..f65c3ff4b 100644 --- a/docs/dev/ADR-009-IMPLEMENTATION-PLAN.md +++ b/docs/dev/ADR-009-IMPLEMENTATION-PLAN.md @@ -1,6 +1,6 @@ # ADR-009 Implementation Plan -**Related ADR:** [ADR-009-orchestration-kernel-refactor.md](/Users/jeremymcspadden/Github/sf-2/docs/dev/ADR-009-orchestration-kernel-refactor.md) +**Related ADR:** [ADR-009-orchestration-kernel-refactor.md](./ADR-009-orchestration-kernel-refactor.md) **Status:** Draft **Date:** 2026-04-14 **Target Window:** 8-10 waves (incremental, no big-bang rewrite) diff --git a/src/resources/extensions/sf/prompts/parallel-research-slices.md b/src/resources/extensions/sf/prompts/parallel-research-slices.md index 3162e648b..fed88350f 100644 --- a/src/resources/extensions/sf/prompts/parallel-research-slices.md +++ b/src/resources/extensions/sf/prompts/parallel-research-slices.md @@ -14,7 +14,7 @@ Dispatch ALL slices simultaneously using the `subagent` tool in **parallel mode* 1. Call `subagent` exactly once with the JSON payload below 2. Wait for ALL subagents to complete -3. Verify each slice's RESEARCH file was written (check the `.sf/{{mid}}/` directory) +3. Verify each slice's RESEARCH file was written (check the `.sf/milestones/{{mid}}/slices//` directory for `-RESEARCH.md`) 4. If any subagent failed to write its RESEARCH file, re-run it individually 5. Report which slices completed research and which (if any) failed diff --git a/src/resources/extensions/sf/prompts/validate-milestone.md b/src/resources/extensions/sf/prompts/validate-milestone.md index 6d2659b14..19dd12df9 100644 --- a/src/resources/extensions/sf/prompts/validate-milestone.md +++ b/src/resources/extensions/sf/prompts/validate-milestone.md @@ -36,8 +36,8 @@ artifacts, not just trust the SUMMARY prose. ``` subagent({ parentTrace: "Slice claims to audit:\n" + - "- S01: (.sf/{{milestoneId}}/S01-SUMMARY.md)\n" + - "- S02: (.sf/{{milestoneId}}/S02-SUMMARY.md)\n" + + "- S01: (.sf/milestones/{{milestoneId}}/slices/S01/S01-SUMMARY.md)\n" + + "- S02: (.sf/milestones/{{milestoneId}}/slices/S02/S02-SUMMARY.md)\n" + "- ...", tasks: [ { agent: "reviewer", task: "" }, @@ -49,7 +49,7 @@ subagent({ **Reviewer A — Requirements Coverage** Agent: `reviewer` -Prompt: "Review milestone {{milestoneId}} requirements coverage. Working directory: {{workingDirectory}}. Read `.sf/{{milestoneId}}/REQUIREMENTS.md` (or equivalent requirements file). For each requirement, check the slice SUMMARY files in `.sf/{{milestoneId}}/` to determine if it is: COVERED (clearly demonstrated), PARTIAL (mentioned but not fully demonstrated), or MISSING (no evidence). Output a markdown table with columns: Requirement | Status | Evidence. End with a one-line verdict: PASS if all covered, NEEDS-ATTENTION if partials exist, FAIL if any missing." +Prompt: "Review milestone {{milestoneId}} requirements coverage. Working directory: {{workingDirectory}}. Read `.sf/REQUIREMENTS.md` (project-level). For each requirement, check the slice SUMMARY files in `.sf/milestones/{{milestoneId}}/slices//-SUMMARY.md` to determine if it is: COVERED (clearly demonstrated), PARTIAL (mentioned but not fully demonstrated), or MISSING (no evidence). Output a markdown table with columns: Requirement | Status | Evidence. End with a one-line verdict: PASS if all covered, NEEDS-ATTENTION if partials exist, FAIL if any missing." **Reviewer B — Cross-Slice Integration** Agent: `reviewer` @@ -57,7 +57,7 @@ Prompt: "Review milestone {{milestoneId}} cross-slice integration. Working direc **Reviewer C — Assessment & Acceptance Criteria** Agent: `reviewer` -Prompt: "Review milestone {{milestoneId}} assessment evidence and acceptance criteria. Working directory: {{workingDirectory}}. Read `.sf/{{milestoneId}}/CONTEXT.md` for acceptance criteria. Check for ASSESSMENT files in each slice directory. Verify each acceptance criterion maps to either a passing assessment result or clear SUMMARY evidence. Then review the inlined milestone verification classes from planning. For each non-empty planned class, output a markdown table: Class | Planned Check | Evidence | Verdict. Use the exact class names `Contract`, `Integration`, `Operational`, and `UAT` whenever those classes are present. If no verification classes were planned, say that explicitly. Output two sections: `Acceptance Criteria` with a checklist `[ ] Criterion | Evidence`, and `Verification Classes` with the table. End with a one-line verdict: PASS if all criteria and verification classes are covered, NEEDS-ATTENTION if gaps exist." +Prompt: "Review milestone {{milestoneId}} assessment evidence and acceptance criteria. Working directory: {{workingDirectory}}. Read `.sf/milestones/{{milestoneId}}/{{milestoneId}}-CONTEXT.md` for acceptance criteria. Check for ASSESSMENT files in each slice directory. Verify each acceptance criterion maps to either a passing assessment result or clear SUMMARY evidence. Then review the inlined milestone verification classes from planning. For each non-empty planned class, output a markdown table: Class | Planned Check | Evidence | Verdict. Use the exact class names `Contract`, `Integration`, `Operational`, and `UAT` whenever those classes are present. If no verification classes were planned, say that explicitly. Output two sections: `Acceptance Criteria` with a checklist `[ ] Criterion | Evidence`, and `Verification Classes` with the table. End with a one-line verdict: PASS if all criteria and verification classes are covered, NEEDS-ATTENTION if gaps exist." ### Step 2 — Synthesize Findings