forge-dev-framework 1.0.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/commands/forge/README.md +314 -0
- package/.claude/commands/forge/add-phase.md +89 -0
- package/.claude/commands/forge/complete-milestone.md +130 -0
- package/.claude/commands/forge/config.md +115 -0
- package/.claude/commands/forge/debug.md +173 -0
- package/.claude/commands/forge/discuss.md +125 -0
- package/.claude/commands/forge/execute.md +160 -0
- package/.claude/commands/forge/generate.md +120 -0
- package/.claude/commands/forge/help.md +123 -0
- package/.claude/commands/forge/init.md +85 -0
- package/.claude/commands/forge/insert-phase.md +98 -0
- package/.claude/commands/forge/new-milestone.md +114 -0
- package/.claude/commands/forge/new-project.md +103 -0
- package/.claude/commands/forge/pause-work.md +111 -0
- package/.claude/commands/forge/plan.md +144 -0
- package/.claude/commands/forge/quick.md +130 -0
- package/.claude/commands/forge/remove-phase.md +91 -0
- package/.claude/commands/forge/resume-work.md +122 -0
- package/.claude/commands/forge/status.md +87 -0
- package/.claude/commands/forge/verify.md +174 -0
- package/README.md +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: forge:quick
|
|
3
|
+
description: Execute a quick task with FORGE guarantees (atomic commits, state tracking)
|
|
4
|
+
argument-hint: <task-description>
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Edit
|
|
9
|
+
- Glob
|
|
10
|
+
- Grep
|
|
11
|
+
- Bash
|
|
12
|
+
- Task
|
|
13
|
+
- AskUserQuestion
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
<objective>
|
|
17
|
+
Execute small, ad-hoc tasks with FORGE guarantees (atomic commits, STATE.json tracking) while skipping optional workflows.
|
|
18
|
+
|
|
19
|
+
Quick mode is the same system with a shorter path:
|
|
20
|
+
- Spawns planner + executor(s)
|
|
21
|
+
- Skips research, plan-checker, verifier
|
|
22
|
+
- Quick tasks live in `.planning/quick/` separate from planned phases
|
|
23
|
+
- Updates STATE.json "Quick Tasks Completed" table (NOT ROADMAP.md)
|
|
24
|
+
|
|
25
|
+
Use when: You know exactly what to do and the task is small enough to not need research or verification.
|
|
26
|
+
</objective>
|
|
27
|
+
|
|
28
|
+
<execution_context>
|
|
29
|
+
@state/STATE.json
|
|
30
|
+
@CLAUDE.md
|
|
31
|
+
</execution_context>
|
|
32
|
+
|
|
33
|
+
<context>
|
|
34
|
+
**Task Description:** $ARGUMENTS
|
|
35
|
+
|
|
36
|
+
**Quick Task Workflow:**
|
|
37
|
+
1. Validate task is appropriate for quick mode
|
|
38
|
+
2. Create minimal task plan (1-3 atomic steps)
|
|
39
|
+
3. Execute task with atomic commits
|
|
40
|
+
4. Update STATE.json quick tasks table
|
|
41
|
+
5. Verify with basic validation
|
|
42
|
+
</context>
|
|
43
|
+
|
|
44
|
+
<process>
|
|
45
|
+
**Execute quick task workflow:**
|
|
46
|
+
|
|
47
|
+
1. **Validate Quick Mode Appropriateness**
|
|
48
|
+
Ask: "Is this task appropriate for quick mode?"
|
|
49
|
+
- Quick mode tasks should:
|
|
50
|
+
- Be well-understood (no research needed)
|
|
51
|
+
- Be small (1-3 atomic steps)
|
|
52
|
+
- Not require verification workflows
|
|
53
|
+
|
|
54
|
+
If task doesn't fit:
|
|
55
|
+
- Suggest: Use `forge plan <phase>` for proper planning
|
|
56
|
+
- Or: Continue with quick mode anyway
|
|
57
|
+
|
|
58
|
+
2. **Create Quick Task Entry**
|
|
59
|
+
- Generate task ID: `quick-{timestamp}`
|
|
60
|
+
- Create quick task directory:
|
|
61
|
+
```bash
|
|
62
|
+
mkdir -p .planning/quick/{taskId}/
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
3. **Generate Minimal Task Plan**
|
|
66
|
+
- Break task into 1-3 atomic steps
|
|
67
|
+
- Define acceptance criteria
|
|
68
|
+
- Identify files to change
|
|
69
|
+
- Create simple plan in `.planning/quick/{taskId}/PLAN.md`
|
|
70
|
+
|
|
71
|
+
4. **Execute Task**
|
|
72
|
+
For each step:
|
|
73
|
+
- Read necessary files
|
|
74
|
+
- Make changes (Edit or Write)
|
|
75
|
+
- Run validation if applicable
|
|
76
|
+
- **Atomic commit after each step:**
|
|
77
|
+
```bash
|
|
78
|
+
git add <changed-files>
|
|
79
|
+
git commit -m "feat({taskId}): {step-description}"
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
5. **Update STATE.json**
|
|
83
|
+
Add to "quickTasksCompleted" table:
|
|
84
|
+
```json
|
|
85
|
+
{
|
|
86
|
+
"quickTasksCompleted": [
|
|
87
|
+
{
|
|
88
|
+
"taskId": "quick-{timestamp}",
|
|
89
|
+
"description": "{task-description}",
|
|
90
|
+
"completedAt": "{timestamp}",
|
|
91
|
+
"commitHash": "{hash}"
|
|
92
|
+
}
|
|
93
|
+
]
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
6. **Submit Event**
|
|
98
|
+
- Event type: QUICK_TASK_COMPLETED
|
|
99
|
+
- Include: taskId, description, commitHash
|
|
100
|
+
- Write to state/events/
|
|
101
|
+
|
|
102
|
+
7. **Verify**
|
|
103
|
+
- Basic validation (does it work?)
|
|
104
|
+
- No formal verification workflow in quick mode
|
|
105
|
+
|
|
106
|
+
8. **Confirm**
|
|
107
|
+
- Show task completion summary
|
|
108
|
+
- List commits made
|
|
109
|
+
- Show updated STATE.json
|
|
110
|
+
</process>
|
|
111
|
+
|
|
112
|
+
<deliverables>
|
|
113
|
+
- .planning/quick/{taskId}/PLAN.md (minimal plan)
|
|
114
|
+
- Completed task with atomic commits
|
|
115
|
+
- STATE.json updated (quickTasksCompleted table)
|
|
116
|
+
- Event: QUICK_TASK_COMPLETED in state/events/
|
|
117
|
+
</deliverables>
|
|
118
|
+
|
|
119
|
+
<success_criteria>
|
|
120
|
+
- [ ] Task completed successfully
|
|
121
|
+
- [ ] Atomic commits for each step
|
|
122
|
+
- [ ] STATE.json updated
|
|
123
|
+
- [ ] Basic validation passed
|
|
124
|
+
</success_criteria>
|
|
125
|
+
|
|
126
|
+
<next_steps>
|
|
127
|
+
- Continue with more quick tasks: `forge quick <description>`
|
|
128
|
+
- Or plan a full phase: `forge plan <phase>`
|
|
129
|
+
- Check progress: `forge status`
|
|
130
|
+
</next_steps>
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: forge:remove-phase
|
|
3
|
+
description: Remove a future phase from roadmap and renumber subsequent phases
|
|
4
|
+
argument-hint: <phase-number>
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Bash
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
<objective>
|
|
12
|
+
Remove a future phase from the roadmap and renumber all subsequent phases.
|
|
13
|
+
|
|
14
|
+
Use when: Phase is no longer needed, duplicate, or superseded by another phase.
|
|
15
|
+
|
|
16
|
+
**Safety:** Cannot remove in-progress or completed phases.
|
|
17
|
+
</objective>
|
|
18
|
+
|
|
19
|
+
<execution_context>
|
|
20
|
+
@state/STATE.json
|
|
21
|
+
@ROADMAP.md
|
|
22
|
+
@CLAUDE.md
|
|
23
|
+
</execution_context>
|
|
24
|
+
|
|
25
|
+
<context>
|
|
26
|
+
**Phase to Remove:** $ARGUMENTS
|
|
27
|
+
|
|
28
|
+
**Phase Removal Validation:**
|
|
29
|
+
1. Check phase status (must be "pending")
|
|
30
|
+
2. Verify phase is in the future
|
|
31
|
+
3. Check for dependents
|
|
32
|
+
4. Warn if other phases depend on this one
|
|
33
|
+
</context>
|
|
34
|
+
|
|
35
|
+
<process>
|
|
36
|
+
**Execute remove-phase workflow:**
|
|
37
|
+
|
|
38
|
+
1. **Parse Arguments**
|
|
39
|
+
- Extract phase number to remove
|
|
40
|
+
|
|
41
|
+
2. **Load State**
|
|
42
|
+
- Read state/STATE.json
|
|
43
|
+
- Read ROADMAP.md
|
|
44
|
+
- Check phase status
|
|
45
|
+
|
|
46
|
+
3. **Validate Removal**
|
|
47
|
+
- If phase is "in_progress" or "completed" → ERROR
|
|
48
|
+
- If phase is "pending" → continue
|
|
49
|
+
- Check for phases that depend on this one
|
|
50
|
+
- If dependents exist → warn and require confirmation
|
|
51
|
+
|
|
52
|
+
4. **Renumber Subsequent Phases**
|
|
53
|
+
- Find all phases with higher numbers in the same milestone
|
|
54
|
+
- Decrement each phase number by 1
|
|
55
|
+
- Update phase directory names if needed
|
|
56
|
+
- Update phase IDs in ROADMAP.md
|
|
57
|
+
- Update dependencies in other phases
|
|
58
|
+
|
|
59
|
+
5. **Remove from ROADMAP.md**
|
|
60
|
+
- Delete phase entry from ROADMAP.md
|
|
61
|
+
- Renumber subsequent phases
|
|
62
|
+
- Update all cross-references
|
|
63
|
+
|
|
64
|
+
6. **Remove Directory** (optional)
|
|
65
|
+
- Ask user if they want to remove the phase directory
|
|
66
|
+
- If yes: `rm -rf .planning/phases/<phase-slug>/`
|
|
67
|
+
- If no: Keep for reference
|
|
68
|
+
|
|
69
|
+
7. **Submit Event**
|
|
70
|
+
- Event type: PHASE_REMOVED
|
|
71
|
+
- Include: removedPhaseId, renumberedPhases
|
|
72
|
+
- Write to state/events/
|
|
73
|
+
|
|
74
|
+
8. **Confirm**
|
|
75
|
+
- Show removed phase info
|
|
76
|
+
- List renumbered phases
|
|
77
|
+
- Notify of any dependency updates
|
|
78
|
+
</process>
|
|
79
|
+
|
|
80
|
+
<deliverables>
|
|
81
|
+
- ROADMAP.md updated (phase removed, subsequent phases renumbered)
|
|
82
|
+
- Phase directory removed (if user confirmed)
|
|
83
|
+
- Event: PHASE_REMOVED in state/events/
|
|
84
|
+
- STATE.json updated
|
|
85
|
+
</deliverables>
|
|
86
|
+
|
|
87
|
+
<next_steps>
|
|
88
|
+
- Review updated roadmap with `forge status`
|
|
89
|
+
- Update any dependent phases manually if needed
|
|
90
|
+
- Continue work with `forge execute <phase>`
|
|
91
|
+
</next_steps>
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: forge:resume-work
|
|
3
|
+
description: Resume work from previous session with full context restoration
|
|
4
|
+
argument-hint: ""
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Bash
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
<objective>
|
|
12
|
+
Resume work from a previous pause by loading the `.continue-here.md` handoff file.
|
|
13
|
+
|
|
14
|
+
Restores complete context including position, completed work, remaining work, decisions, and blockers.
|
|
15
|
+
</objective>
|
|
16
|
+
|
|
17
|
+
<execution_context>
|
|
18
|
+
@.continue-here.md
|
|
19
|
+
@state/STATE.json
|
|
20
|
+
@CLAUDE.md
|
|
21
|
+
</execution_context>
|
|
22
|
+
|
|
23
|
+
<context>
|
|
24
|
+
**Resume Work Workflow:**
|
|
25
|
+
1. Check for `.continue-here.md` file
|
|
26
|
+
2. Load and display handoff contents
|
|
27
|
+
3. Restore context from handoff
|
|
28
|
+
4. Identify next steps
|
|
29
|
+
5. Offer to continue work
|
|
30
|
+
</context>
|
|
31
|
+
|
|
32
|
+
<process>
|
|
33
|
+
**Execute resume-work workflow:**
|
|
34
|
+
|
|
35
|
+
1. **Check for Handoff File**
|
|
36
|
+
```bash
|
|
37
|
+
if [ -f .continue-here.md ]; then
|
|
38
|
+
echo "Found handoff file"
|
|
39
|
+
else
|
|
40
|
+
echo "No .continue-here.md found. Check STATE.json for last phase."
|
|
41
|
+
exit 1
|
|
42
|
+
fi
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
2. **Load Handoff**
|
|
46
|
+
- Read `.continue-here.md`
|
|
47
|
+
- Parse all sections
|
|
48
|
+
- Extract phase name and status
|
|
49
|
+
|
|
50
|
+
3. **Display Context**
|
|
51
|
+
```
|
|
52
|
+
════════════════════════════════════════════════════════
|
|
53
|
+
RESUMING WORK
|
|
54
|
+
════════════════════════════════════════════════════════
|
|
55
|
+
|
|
56
|
+
Phase: {phase-name}
|
|
57
|
+
Status: {status}
|
|
58
|
+
Paused: {timestamp}
|
|
59
|
+
|
|
60
|
+
───────────────────────────────────────────────────────────
|
|
61
|
+
POSITION
|
|
62
|
+
───────────────────────────────────────────────────────────
|
|
63
|
+
{current position}
|
|
64
|
+
|
|
65
|
+
───────────────────────────────────────────────────────────
|
|
66
|
+
COMPLETED WORK
|
|
67
|
+
───────────────────────────────────────────────────────────
|
|
68
|
+
✓ {completed item 1}
|
|
69
|
+
✓ {completed item 2}
|
|
70
|
+
|
|
71
|
+
───────────────────────────────────────────────────────────
|
|
72
|
+
REMAINING WORK
|
|
73
|
+
───────────────────────────────────────────────────────────
|
|
74
|
+
○ {remaining item 1}
|
|
75
|
+
○ {remaining item 2}
|
|
76
|
+
|
|
77
|
+
───────────────────────────────────────────────────────────
|
|
78
|
+
DECISIONS MADE
|
|
79
|
+
───────────────────────────────────────────────────────────
|
|
80
|
+
{decisions}
|
|
81
|
+
|
|
82
|
+
───────────────────────────────────────────────────────────
|
|
83
|
+
BLOCKERS
|
|
84
|
+
───────────────────────────────────────────────────────────
|
|
85
|
+
{blockers}
|
|
86
|
+
|
|
87
|
+
════════════════════════════════════════════════════════
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
4. **Confirm Ready to Continue**
|
|
91
|
+
- Ask: "Ready to continue work?"
|
|
92
|
+
- If yes: Proceed
|
|
93
|
+
- If no: Exit, handoff file preserved
|
|
94
|
+
|
|
95
|
+
5. **Submit Event**
|
|
96
|
+
- Event type: WORK_RESUMED
|
|
97
|
+
- Include: phaseId, handoffFile, timestamp
|
|
98
|
+
- Write to state/events/
|
|
99
|
+
|
|
100
|
+
6. **Route to Next Action**
|
|
101
|
+
- Suggest: `forge execute <phase>` to continue execution
|
|
102
|
+
- Or: Manual work based on next steps
|
|
103
|
+
- Or: `forge discuss <phase>` to gather more context
|
|
104
|
+
</process>
|
|
105
|
+
|
|
106
|
+
<deliverables>
|
|
107
|
+
- Context restored from .continue-here.md
|
|
108
|
+
- Event: WORK_RESUMED in state/events/
|
|
109
|
+
- STATE.json updated
|
|
110
|
+
</deliverables>
|
|
111
|
+
|
|
112
|
+
<next_steps>
|
|
113
|
+
- Continue execution: `forge execute <phase>`
|
|
114
|
+
- Update plan if needed: `forge plan <phase>`
|
|
115
|
+
- Or proceed with manual work based on next steps
|
|
116
|
+
</next_steps>
|
|
117
|
+
|
|
118
|
+
<cleanup>
|
|
119
|
+
After successfully resuming and completing work:
|
|
120
|
+
- Remove .continue-here.md
|
|
121
|
+
- Submit WORK_COMPLETED event
|
|
122
|
+
</cleanup>
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: forge:status
|
|
3
|
+
description: Show FORGE project status including current milestone, tasks, events, and progress. Use when user asks "forge status" or wants to see project progress.
|
|
4
|
+
argument-hint: [-v|--verbose]
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Bash
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
<objective>
|
|
11
|
+
Display current FORGE project status including milestone progress, task states, event count, and team activity.
|
|
12
|
+
|
|
13
|
+
Purpose: Provide visibility into project state and progress.
|
|
14
|
+
Output: Formatted status table with milestone, tasks, events, and counts.
|
|
15
|
+
</objective>
|
|
16
|
+
|
|
17
|
+
<execution_context>
|
|
18
|
+
**Load these files NOW:**
|
|
19
|
+
|
|
20
|
+
- @state/STATE.json (current project state)
|
|
21
|
+
- @src/commands/status.ts (status command implementation)
|
|
22
|
+
</execution_context>
|
|
23
|
+
|
|
24
|
+
<context>
|
|
25
|
+
**Verbosity:** Standard (summary) or -v (verbose with full details)
|
|
26
|
+
**State File:** state/STATE.json
|
|
27
|
+
**Events Directory:** state/events/
|
|
28
|
+
|
|
29
|
+
**Status Information:**
|
|
30
|
+
- Project name and version
|
|
31
|
+
- Current milestone and phase
|
|
32
|
+
- Task counts by status (pending, in_progress, completed)
|
|
33
|
+
- Total events processed
|
|
34
|
+
- Team member activity
|
|
35
|
+
- Recent commits
|
|
36
|
+
</context>
|
|
37
|
+
|
|
38
|
+
<process>
|
|
39
|
+
**Execute the status command:**
|
|
40
|
+
|
|
41
|
+
1. **Load State**
|
|
42
|
+
```bash
|
|
43
|
+
forge status
|
|
44
|
+
# or
|
|
45
|
+
forge status -v # verbose mode
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
2. **Parse STATE.json**
|
|
49
|
+
- Extract project metadata
|
|
50
|
+
- Count tasks by status
|
|
51
|
+
- Count events from state/events/
|
|
52
|
+
- Get current milestone/phase
|
|
53
|
+
|
|
54
|
+
3. **Format Output**
|
|
55
|
+
```
|
|
56
|
+
PROJECT: FORGE v1.0-M1
|
|
57
|
+
STATUS: in_progress
|
|
58
|
+
|
|
59
|
+
MILESTONE: v1.0-M1 (Foundation)
|
|
60
|
+
PHASE: Complete
|
|
61
|
+
|
|
62
|
+
TASKS:
|
|
63
|
+
✅ Completed: 27/27
|
|
64
|
+
🔄 In Progress: 0
|
|
65
|
+
⏳ Pending: 0
|
|
66
|
+
|
|
67
|
+
EVENTS: 47 events processed
|
|
68
|
+
|
|
69
|
+
TEAM ACTIVITY:
|
|
70
|
+
ARCHITECT: 6/6 tasks complete
|
|
71
|
+
STATE-ENGINE: 4/4 tasks complete
|
|
72
|
+
CLI-ENGINE: 5/5 tasks complete
|
|
73
|
+
TEMPLATES: 6/6 tasks complete
|
|
74
|
+
GIT-OPS: 6/6 tasks complete
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
4. **Verbose Mode** (-v flag)
|
|
78
|
+
- Show all tasks with IDs and owners
|
|
79
|
+
- List recent events
|
|
80
|
+
- Show contract status
|
|
81
|
+
- Display worktree activity
|
|
82
|
+
</process>
|
|
83
|
+
|
|
84
|
+
<output_formats>
|
|
85
|
+
**Standard:** Summary with counts and milestone
|
|
86
|
+
**Verbose (-v):** Full task list, recent events, team details
|
|
87
|
+
</output_formats>
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: forge:verify
|
|
3
|
+
description: Verify a phase plan against requirements and success criteria. Use when user says "forge verify <phase>" or wants to validate a plan.
|
|
4
|
+
argument-hint: <phase-name>
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Glob
|
|
8
|
+
- Grep
|
|
9
|
+
- Bash
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
<objective>
|
|
13
|
+
Verify that a phase plan achieves its goals and covers all requirements through goal-backward analysis.
|
|
14
|
+
|
|
15
|
+
Purpose: Validate plan completeness before execution.
|
|
16
|
+
Output: VERIFICATION.md with coverage analysis and gaps identified.
|
|
17
|
+
</objective>
|
|
18
|
+
|
|
19
|
+
<execution_context>
|
|
20
|
+
**Load these files NOW:**
|
|
21
|
+
|
|
22
|
+
- @.planning/phases/<phase>/PLAN.md (Task breakdown)
|
|
23
|
+
- @REQUIREMENTS.md (Project requirements)
|
|
24
|
+
- @ROADMAP.md (Milestone context)
|
|
25
|
+
- @CLAUDE.md (Success criteria patterns)
|
|
26
|
+
</execution_context>
|
|
27
|
+
|
|
28
|
+
<context>
|
|
29
|
+
**Phase:** $ARGUMENTS
|
|
30
|
+
**Verification Type:** Goal-backward analysis
|
|
31
|
+
**Focus:** Requirements coverage, integration completeness, end-to-end flows
|
|
32
|
+
</context>
|
|
33
|
+
|
|
34
|
+
<process>
|
|
35
|
+
**Execute verification workflow:**
|
|
36
|
+
|
|
37
|
+
1. **Load Plan & Requirements**
|
|
38
|
+
- Read PLAN.md task list
|
|
39
|
+
- Read REQUIREMENTS.md entries
|
|
40
|
+
- Load milestone goals from ROADMAP.md
|
|
41
|
+
|
|
42
|
+
2. **Requirements Coverage Analysis**
|
|
43
|
+
|
|
44
|
+
For each requirement in REQUIREMENTS.md:
|
|
45
|
+
```
|
|
46
|
+
REQ-1: User authentication
|
|
47
|
+
├─ Covered by: auth-001, auth-002
|
|
48
|
+
├─ Task acceptance criteria maps to requirement? ✅
|
|
49
|
+
└─ Verification method defined? ✅
|
|
50
|
+
|
|
51
|
+
REQ-2: API rate limiting
|
|
52
|
+
├─ Covered by: None
|
|
53
|
+
└─ ❌ GAP: No task for rate limiting
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
3. **Goal-Backward Verification**
|
|
57
|
+
|
|
58
|
+
For each milestone goal:
|
|
59
|
+
```
|
|
60
|
+
Goal: "Users can authenticate and authorize"
|
|
61
|
+
└─ Can we trace from goal → tasks → acceptance?
|
|
62
|
+
├─ auth-001: Login endpoint ✅
|
|
63
|
+
├─ auth-002: Session management ✅
|
|
64
|
+
├─ auth-003: Permission checks ✅
|
|
65
|
+
└─ Integration flow tested? ❌ Missing
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
4. **Integration Completeness**
|
|
69
|
+
|
|
70
|
+
Check cross-phase integration:
|
|
71
|
+
```
|
|
72
|
+
Phase A (API) → Phase B (Frontend)
|
|
73
|
+
├─ API contract defined? ✅ contracts/auth-api.yaml
|
|
74
|
+
├─ Frontend consumes API? ✅ ui-auth-001
|
|
75
|
+
└─ Integration test exists? ❌ Gap
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
5. **Dependency Validation**
|
|
79
|
+
|
|
80
|
+
Verify dependency graph:
|
|
81
|
+
```
|
|
82
|
+
✅ No circular dependencies
|
|
83
|
+
✅ All dependencies have tasks
|
|
84
|
+
✅ Critical path identified
|
|
85
|
+
⚠ Long dependency chain: api-001 → api-002 → api-003 → api-004
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
6. **Task Atomicity Check**
|
|
89
|
+
|
|
90
|
+
Verify each task is atomic:
|
|
91
|
+
```
|
|
92
|
+
✅ auth-001: Single owner, single concept
|
|
93
|
+
❌ ui-002: Too broad (split into ui-002a, ui-002b)
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
7. **Generate VERIFICATION.md**
|
|
97
|
+
```markdown
|
|
98
|
+
# <Phase> Verification
|
|
99
|
+
|
|
100
|
+
## Requirements Coverage
|
|
101
|
+
- REQ-1: ✅ Covered (auth-001, auth-002)
|
|
102
|
+
- REQ-2: ❌ Gap - no rate limiting task
|
|
103
|
+
...
|
|
104
|
+
|
|
105
|
+
## Goals Verification
|
|
106
|
+
- Goal 1: ✅ Achievable through tasks
|
|
107
|
+
- Goal 2: ⚠ Gap - integration test missing
|
|
108
|
+
...
|
|
109
|
+
|
|
110
|
+
## Integration Checks
|
|
111
|
+
- Phase A → Phase B: ✅ Contract defined
|
|
112
|
+
- Frontend → API: ⚠ Integration test missing
|
|
113
|
+
...
|
|
114
|
+
|
|
115
|
+
## Task Atomicity
|
|
116
|
+
- All tasks atomic? ✅
|
|
117
|
+
- Task count within limit? ✅ (5/6)
|
|
118
|
+
|
|
119
|
+
## Gaps Identified
|
|
120
|
+
1. REQ-2: No rate limiting
|
|
121
|
+
2. Integration test for auth flow
|
|
122
|
+
...
|
|
123
|
+
|
|
124
|
+
## Recommendations
|
|
125
|
+
- Add task api-005 for rate limiting
|
|
126
|
+
- Add task int-001 for integration tests
|
|
127
|
+
...
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
8. **Route Decision**
|
|
131
|
+
|
|
132
|
+
If gaps found:
|
|
133
|
+
```
|
|
134
|
+
- Ask user: "Add tasks for gaps?"
|
|
135
|
+
- If yes: Update PLAN.md
|
|
136
|
+
- If no: Document and proceed
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
If verification passes:
|
|
140
|
+
```
|
|
141
|
+
- Mark phase ready for execution
|
|
142
|
+
- Offer `forge execute <phase>`
|
|
143
|
+
```
|
|
144
|
+
</process>
|
|
145
|
+
|
|
146
|
+
<deliverables>
|
|
147
|
+
- .planning/phases/<phase>/VERIFICATION.md
|
|
148
|
+
- Updated PLAN.md (if gaps addressed)
|
|
149
|
+
- Requirements coverage matrix
|
|
150
|
+
- Gap analysis report
|
|
151
|
+
</deliverables>
|
|
152
|
+
|
|
153
|
+
<verification_criteria>
|
|
154
|
+
Plan passes verification when:
|
|
155
|
+
- ✅ All requirements covered (or gaps documented)
|
|
156
|
+
- ✅ All goals achievable through tasks
|
|
157
|
+
- ✅ Integration points identified and tested
|
|
158
|
+
- ✅ Dependency graph valid (no cycles)
|
|
159
|
+
- ✅ All tasks atomic (single concept, single owner)
|
|
160
|
+
- ✅ Task count ≤ 6
|
|
161
|
+
- ✅ Acceptance criteria defined
|
|
162
|
+
- ✅ Verification methods specified
|
|
163
|
+
</verification_criteria>
|
|
164
|
+
|
|
165
|
+
<next_steps>
|
|
166
|
+
If verification passes:
|
|
167
|
+
- Run `forge execute <phase>` to start execution
|
|
168
|
+
- Or manually assign tasks to agents
|
|
169
|
+
|
|
170
|
+
If gaps found:
|
|
171
|
+
- Update PLAN.md with additional tasks
|
|
172
|
+
- Re-run `forge verify <phase>`
|
|
173
|
+
- Or document risks and proceed
|
|
174
|
+
</next_steps>
|
package/README.md
CHANGED
|
@@ -6,6 +6,7 @@ A multi-agent development framework for Claude Code Agent Teams that forges prod
|
|
|
6
6
|
|
|
7
7
|
[](https://www.npmjs.com/package/forge-dev-framework)
|
|
8
8
|
[](https://opensource.org/licenses/MIT)
|
|
9
|
+
[](https://opensource.org/licenses/MIT)
|
|
9
10
|
|
|
10
11
|
## Features
|
|
11
12
|
|
package/package.json
CHANGED