* fix(#950): emit status: complete in quick-task SUMMARY frontmatter Add `status: complete` to all four SUMMARY templates (summary.md, summary-minimal.md, summary-standard.md, summary-complex.md), to the executor agent's documented frontmatter field list, and to the quick.md executor constraints block. The audit-open milestone-close scanner (scanQuickTasks) reads this field to decide whether a quick task is done; without it the scanner falls back to `[unknown]` and false-flags finished tasks as open. Writer-side fix; the scanner is correct and unchanged. Blast-radius: no other scanner reads `status:` from phase-plan SUMMARY files. Phase disk_status is derived from file-count heuristics only. Adding the field to the shared template is therefore safe and the value `complete` is semantically accurate for a finished plan. Regression test: tests/bug-950-quick-summary-status-complete.test.cjs - RED: 4 template-contract tests fail before fix, behavioral tests pass - GREEN: all 8 tests pass after fix Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * chore: add changeset for fix/950-quick-summary-status-complete (#951) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * test(#950): assert writer-path contract + scope template checks to YAML frontmatter (adversarial review) - Add `// allow-test-rule: source-text-is-the-product` at file top (before block comment) - Add `extractFrontmatter()` helper that handles both leading-frontmatter files (summary-minimal/standard/complex.md) and fenced-frontmatter files (summary.md, whose frontmatter is embedded inside a ```markdown fence) — assertions now target the actual YAML block, not the whole file - Scope all four [TEMPLATE CONTRACT] tests through extractFrontmatter() so a stray `status: complete` in prose/examples cannot produce a false green; error messages now print the extracted block to aid diagnosis - Add [WRITER-PATH] quick.md test: asserts the <constraints> block instructs the executor to write `status: complete` in SUMMARY frontmatter - Add [WRITER-PATH] gsd-executor.md test: asserts the Frontmatter spec documents `status: complete` as a required field - Sanity-checked: guards fail when `status: complete` is removed from a template or from quick.md, and pass once restored Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
61 lines
1.3 KiB
Markdown
61 lines
1.3 KiB
Markdown
---
|
|
phase: XX-name
|
|
plan: YY
|
|
subsystem: [primary category]
|
|
tags: [searchable tech]
|
|
requires:
|
|
- phase: [prior phase]
|
|
provides: [what that phase built]
|
|
provides:
|
|
- [bullet list of what was built/delivered]
|
|
affects: [list of phase names or keywords]
|
|
tech-stack:
|
|
added: [libraries/tools]
|
|
patterns: [architectural/code patterns]
|
|
key-files:
|
|
created: [important files created]
|
|
modified: [important files modified]
|
|
key-decisions:
|
|
- "Decision 1"
|
|
patterns-established:
|
|
- "Pattern 1: description"
|
|
duration: Xmin
|
|
completed: YYYY-MM-DD
|
|
status: complete
|
|
---
|
|
|
|
# Phase [X]: [Name] Summary (Complex)
|
|
|
|
**[Substantive one-liner describing outcome]**
|
|
|
|
## Performance
|
|
- **Duration:** [time]
|
|
- **Tasks:** [count completed]
|
|
- **Files modified:** [count]
|
|
|
|
## Accomplishments
|
|
- [Key outcome 1]
|
|
- [Key outcome 2]
|
|
|
|
## Task Commits
|
|
1. **Task 1: [task name]** - `hash`
|
|
2. **Task 2: [task name]** - `hash`
|
|
3. **Task 3: [task name]** - `hash`
|
|
|
|
## Files Created/Modified
|
|
- `path/to/file.ts` - What it does
|
|
- `path/to/another.ts` - What it does
|
|
|
|
## Decisions Made
|
|
[Key decisions with brief rationale]
|
|
|
|
## Deviations from Plan (Auto-fixed)
|
|
[Detailed auto-fix records per GSD deviation rules]
|
|
|
|
## Issues Encountered
|
|
[Problems during planned work and resolutions]
|
|
|
|
## Next Phase Readiness
|
|
[What's ready for next phase]
|
|
[Blockers or concerns]
|