feat(06-01): YAML frontmatter schema with dependency graph metadata enabling automatic context assembly

- Added comprehensive YAML frontmatter schema to summary.md template
- Frontmatter includes dependency graph (requires/provides/affects), subsystem, tech tracking, key files
- Added frontmatter population guidance to execute-phase.md
- Enables intelligent summary selection via dependency graph scanning

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Lex Christopherson
2026-01-05 09:43:02 -06:00
parent add2b05dd2
commit 3307c05f54
2 changed files with 96 additions and 0 deletions

View File

@@ -7,6 +7,44 @@ Template for `.planning/phases/XX-name/{phase}-{plan}-SUMMARY.md` - phase comple
## File Template
```markdown
---
phase: XX-name
plan: YY
subsystem: [primary category: auth, payments, ui, api, database, infra, testing, etc.]
tags: [searchable tech: jwt, stripe, react, postgres, prisma]
# Dependency graph
requires:
- phase: [prior phase this depends on]
provides: [what that phase built that this uses]
provides:
- [bullet list of what this phase built/delivered]
affects: [list of phase names or keywords that will need this context]
# Tech tracking
tech-stack:
added: [libraries/tools added in this phase]
patterns: [architectural/code patterns established]
key-files:
created: [important files created]
modified: [important files modified]
key-decisions:
- "Decision 1"
- "Decision 2"
patterns-established:
- "Pattern 1: description"
- "Pattern 2: description"
issues-created: [ISS-XXX, ISS-YYY] # From ISSUES.md if any
# Metrics
duration: Xmin
completed: YYYY-MM-DD
---
# Phase [X]: [Name] Summary
**[Substantive one-liner describing outcome - NOT "phase complete" or "implementation finished"]**
@@ -74,6 +112,24 @@ Logged to .planning/ISSUES.md for future consideration:
*Completed: [date]*
```
<frontmatter_guidance>
**Purpose:** Enable automatic context assembly via dependency graph. Frontmatter makes summary metadata machine-readable so plan-phase can scan all summaries quickly and select relevant ones based on dependencies.
**Fast scanning:** Frontmatter is first ~25 lines, cheap to scan across all summaries without reading full content.
**Dependency graph:** `requires`/`provides`/`affects` create explicit links between phases, enabling transitive closure for context selection.
**Subsystem:** Primary categorization (auth, payments, ui, api, database, infra, testing) for detecting related phases.
**Tags:** Searchable technical keywords (libraries, frameworks, tools) for tech stack awareness.
**Key-files:** Important files for @context references in PLAN.md.
**Patterns:** Established conventions future phases should maintain.
**Population:** Frontmatter is populated during summary creation in execute-phase.md. See `<step name="create_summary">` for field-by-field guidance.
</frontmatter_guidance>
<one_liner_rules>
The one-liner MUST be substantive:
@@ -173,6 +229,11 @@ Logged to .planning/ISSUES.md for future consideration:
- Required output from execute-phase workflow
- Documents what actually happened vs what was planned
**Frontmatter completion:**
- MANDATORY: Complete all frontmatter fields during summary creation
- See <frontmatter_guidance> for field purposes
- Frontmatter enables automatic context assembly for future planning
**One-liner requirements:**
- Must be substantive (describe what shipped, not "phase complete")
- Should tell someone what was accomplished

View File

@@ -990,6 +990,41 @@ Use ~/.claude/get-shit-done/templates/summary.md for structure.
**File location:** `.planning/phases/XX-name/{phase}-{plan}-SUMMARY.md`
**Frontmatter population:**
Before writing summary content, populate frontmatter fields from execution context:
1. **Basic identification:**
- phase: From PLAN.md frontmatter
- plan: From PLAN.md frontmatter
- subsystem: Categorize based on phase focus (auth, payments, ui, api, database, infra, testing, etc.)
- tags: Extract tech keywords (libraries, frameworks, tools used)
2. **Dependency graph:**
- requires: List prior phases this built upon (check PLAN.md context section for referenced prior summaries)
- provides: Extract from accomplishments - what was delivered
- affects: Infer from phase description/goal what future phases might need this
3. **Tech tracking:**
- tech-stack.added: New libraries from package.json changes or requirements
- tech-stack.patterns: Architectural patterns established (from decisions/accomplishments)
4. **File tracking:**
- key-files.created: From "Files Created/Modified" section
- key-files.modified: From "Files Created/Modified" section
5. **Decisions:**
- key-decisions: Extract from "Decisions Made" section
6. **Issues:**
- issues-created: Check if ISSUES.md was updated during execution
7. **Metrics:**
- duration: From $DURATION variable
- completed: From $PLAN_END_TIME (date only, format YYYY-MM-DD)
Note: If subsystem/affects are unclear, use best judgment based on phase name and accomplishments. Can be refined later.
**Title format:** `# Phase [X] Plan [Y]: [Name] Summary`
The one-liner must be SUBSTANTIVE: