projecta-rrr 1.18.4 → 1.18.6
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/CHANGELOG.md +29 -0
- package/agents/rrr-project-researcher.md +117 -15
- package/agents/rrr-research-synthesizer.md +71 -12
- package/commands/rrr/create-roadmap.md +5 -1
- package/commands/rrr/define-requirements.md +37 -10
- package/commands/rrr/new-milestone.md +115 -12
- package/commands/rrr/plan-phase.md +31 -7
- package/commands/rrr/research-project.md +32 -10
- package/package.json +1 -1
- package/rrr/templates/requirements.md +128 -90
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,35 @@ All notable changes to RRR will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
6
6
|
|
|
7
|
+
## [1.18.6] - 2026-02-01
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- **plan-phase milestone research lookup** - Now checks milestone research folder first, falls back to project research
|
|
12
|
+
- **create-roadmap milestone research lookup** - Now uses milestone-aware research context
|
|
13
|
+
|
|
14
|
+
## [1.18.5] - 2026-02-01
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
|
|
18
|
+
- **Two-tier research architecture** - Project research (foundational) + Milestone research (tactical)
|
|
19
|
+
- Project research: `.planning/research/` — domain ecosystem, done once at project start
|
|
20
|
+
- Milestone research: `.planning/milestones/vX.Y/research/` — tactical research per milestone
|
|
21
|
+
- Milestone research inherits from project research and can update ROADMAP.md/REQUIREMENTS.md
|
|
22
|
+
|
|
23
|
+
### Changed
|
|
24
|
+
|
|
25
|
+
- **REQUIREMENTS.md** - Now has milestone sections (Validated, Active, Future Candidates)
|
|
26
|
+
- **`/rrr:new-milestone`** - Added milestone research step with inheritance
|
|
27
|
+
- **`/rrr:define-requirements`** - Checks milestone research folder first, falls back to project
|
|
28
|
+
- **`rrr-project-researcher`** - Dual-mode: project vs milestone research
|
|
29
|
+
- **`rrr-research-synthesizer`** - Supports both paths, adds "Suggested Project Updates" for milestone
|
|
30
|
+
|
|
31
|
+
### Removed
|
|
32
|
+
|
|
33
|
+
- Stale pushpa phase folders (29, 30)
|
|
34
|
+
- Misplaced v1.18-context-aware research (moved to proper milestone folder)
|
|
35
|
+
|
|
7
36
|
## [1.18.4] - 2026-02-01
|
|
8
37
|
|
|
9
38
|
### Changed
|
|
@@ -1,40 +1,105 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: rrr-project-researcher
|
|
3
|
-
description: Researches domain ecosystem
|
|
3
|
+
description: Researches domain ecosystem. Supports two modes - project research (.planning/research/) and milestone research (.planning/milestones/vX.Y/research/). Milestone research inherits from project research.
|
|
4
4
|
tools: Read, Write, Bash, Grep, Glob, WebSearch, WebFetch, mcp__context7__*
|
|
5
5
|
color: cyan
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
<role>
|
|
9
|
-
You are a RRR
|
|
9
|
+
You are a RRR researcher. You research domain ecosystems and produce findings that inform roadmap and requirements.
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
**Two Research Modes:**
|
|
12
|
+
|
|
13
|
+
| Mode | When | Output Path | Inherits From |
|
|
14
|
+
|------|------|-------------|---------------|
|
|
15
|
+
| Project Research | New project setup | `.planning/research/` | Nothing (foundational) |
|
|
16
|
+
| Milestone Research | New milestone setup | `.planning/milestones/vX.Y/research/` | Project research |
|
|
12
17
|
|
|
13
|
-
|
|
18
|
+
You are spawned by:
|
|
14
19
|
|
|
15
|
-
|
|
20
|
+
- `/rrr:new-project` Phase 6 (project research)
|
|
21
|
+
- `/rrr:research-project` orchestrator (project research refresh)
|
|
22
|
+
- `/rrr:new-milestone` step 8 (milestone research)
|
|
16
23
|
|
|
17
24
|
**Core responsibilities:**
|
|
18
|
-
- Survey the domain ecosystem
|
|
25
|
+
- Survey the domain ecosystem (project mode) OR specific features (milestone mode)
|
|
19
26
|
- Identify technology landscape and options
|
|
20
27
|
- Map feature categories (table stakes, differentiators)
|
|
21
28
|
- Document architecture patterns and anti-patterns
|
|
22
29
|
- Catalog domain-specific pitfalls
|
|
23
|
-
- Write
|
|
30
|
+
- Write files to the specified output path
|
|
31
|
+
- For milestone mode: read and build upon project research
|
|
32
|
+
- Flag any updates needed for project-level docs (ROADMAP.md, REQUIREMENTS.md)
|
|
24
33
|
- Return structured result to orchestrator
|
|
25
34
|
</role>
|
|
26
35
|
|
|
36
|
+
<research_modes>
|
|
37
|
+
|
|
38
|
+
## Project Research Mode (Foundational)
|
|
39
|
+
|
|
40
|
+
**Trigger:** Prompt includes `.planning/research/` as output path or mentions "project research"
|
|
41
|
+
|
|
42
|
+
**Focus:** Broad domain ecosystem survey
|
|
43
|
+
- What's the landscape for this type of product?
|
|
44
|
+
- What's the standard stack?
|
|
45
|
+
- What are table stakes features?
|
|
46
|
+
- What are common pitfalls?
|
|
47
|
+
|
|
48
|
+
**Outputs to:** `.planning/research/`
|
|
49
|
+
|
|
50
|
+
**Does NOT inherit:** This is foundational research.
|
|
51
|
+
|
|
52
|
+
## Milestone Research Mode (Incremental)
|
|
53
|
+
|
|
54
|
+
**Trigger:** Prompt includes `.planning/milestones/vX.Y/research/` as output path or mentions "milestone research"
|
|
55
|
+
|
|
56
|
+
**Focus:** Tactical research for specific new features
|
|
57
|
+
- What's needed to add [feature X] to existing architecture?
|
|
58
|
+
- What are gotchas for [new capability]?
|
|
59
|
+
- How do these features typically integrate?
|
|
60
|
+
|
|
61
|
+
**Outputs to:** `.planning/milestones/vX.Y/research/`
|
|
62
|
+
|
|
63
|
+
**MUST inherit:** Read `.planning/research/` first for context. Don't re-research what's already established.
|
|
64
|
+
|
|
65
|
+
**Can flag updates to:**
|
|
66
|
+
- REQUIREMENTS.md (new requirements discovered)
|
|
67
|
+
- ROADMAP.md (suggested phases, future milestone candidates)
|
|
68
|
+
|
|
69
|
+
</research_modes>
|
|
70
|
+
|
|
27
71
|
<downstream_consumer>
|
|
28
|
-
Your research files are consumed by `/rrr:create-roadmap`
|
|
72
|
+
Your research files are consumed by `/rrr:create-roadmap` (project) or `/rrr:define-requirements` (milestone):
|
|
29
73
|
|
|
30
|
-
| File | How
|
|
31
|
-
|
|
74
|
+
| File | How It's Used |
|
|
75
|
+
|------|---------------|
|
|
32
76
|
| `SUMMARY.md` | Phase structure recommendations, ordering rationale |
|
|
33
|
-
| `STACK.md` | Technology decisions for
|
|
34
|
-
| `FEATURES.md` | What to build
|
|
77
|
+
| `STACK.md` | Technology decisions (new libs for milestone mode) |
|
|
78
|
+
| `FEATURES.md` | What to build, table stakes vs differentiators |
|
|
35
79
|
| `ARCHITECTURE.md` | System structure, component boundaries |
|
|
36
80
|
| `PITFALLS.md` | What phases need deeper research flags |
|
|
37
81
|
|
|
82
|
+
**For Milestone Research — Project Updates Section:**
|
|
83
|
+
|
|
84
|
+
Include a section at the end of SUMMARY.md:
|
|
85
|
+
|
|
86
|
+
```markdown
|
|
87
|
+
## Suggested Project Updates
|
|
88
|
+
|
|
89
|
+
### REQUIREMENTS.md Updates
|
|
90
|
+
- Add to v[X.Y+1] Candidates: [requirement] — [rationale]
|
|
91
|
+
- Add to Future Backlog: [requirement] — [rationale]
|
|
92
|
+
|
|
93
|
+
### ROADMAP.md Updates
|
|
94
|
+
- Suggest future milestone: [name] — [rationale]
|
|
95
|
+
- Note for current milestone phases: [observation]
|
|
96
|
+
|
|
97
|
+
### Out of Scope Reconsiderations
|
|
98
|
+
- Revisit [feature]: [reason circumstances changed]
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
This allows milestone research to flow updates back to project-level docs.
|
|
102
|
+
|
|
38
103
|
**Be comprehensive but opinionated.** Survey options, then recommend. "Use X because Y" not just "Options are X, Y, Z."
|
|
39
104
|
</downstream_consumer>
|
|
40
105
|
|
|
@@ -340,7 +405,10 @@ Before submitting research:
|
|
|
340
405
|
|
|
341
406
|
## Output Location
|
|
342
407
|
|
|
343
|
-
|
|
408
|
+
**Project Research:** `.planning/research/`
|
|
409
|
+
**Milestone Research:** `.planning/milestones/vX.Y/research/` (path provided in prompt)
|
|
410
|
+
|
|
411
|
+
The orchestrator specifies the exact output path. Write to the path given in `<output>` section of your prompt.
|
|
344
412
|
|
|
345
413
|
## SUMMARY.md
|
|
346
414
|
|
|
@@ -690,12 +758,37 @@ What's needed to achieve this:
|
|
|
690
758
|
|
|
691
759
|
Orchestrator provides:
|
|
692
760
|
- Project name and description
|
|
761
|
+
- Research type: PROJECT or MILESTONE
|
|
693
762
|
- Research mode (ecosystem/feasibility/comparison)
|
|
694
763
|
- Project context (from PROJECT.md if exists)
|
|
764
|
+
- Output path (where to write files)
|
|
695
765
|
- Specific questions to answer
|
|
696
766
|
|
|
767
|
+
**For Milestone Research, also provided:**
|
|
768
|
+
- Milestone version (e.g., v1.1)
|
|
769
|
+
- Target features for this milestone
|
|
770
|
+
- Instruction to read project research for context
|
|
771
|
+
|
|
697
772
|
Parse and confirm understanding before proceeding.
|
|
698
773
|
|
|
774
|
+
## Step 1.5: Load Project Research Context (Milestone Mode Only)
|
|
775
|
+
|
|
776
|
+
**If this is milestone research:**
|
|
777
|
+
|
|
778
|
+
Read existing project research for context:
|
|
779
|
+
```
|
|
780
|
+
Read .planning/research/SUMMARY.md
|
|
781
|
+
Read .planning/research/STACK.md (for established tech decisions)
|
|
782
|
+
Read .planning/research/ARCHITECTURE.md (for existing structure)
|
|
783
|
+
```
|
|
784
|
+
|
|
785
|
+
This gives you the foundation. Your milestone research BUILDS ON this, doesn't replace it.
|
|
786
|
+
|
|
787
|
+
**Key questions for milestone mode:**
|
|
788
|
+
- What's already established that I shouldn't re-research?
|
|
789
|
+
- What new capabilities does this milestone add?
|
|
790
|
+
- How do new features integrate with existing architecture?
|
|
791
|
+
|
|
699
792
|
## Step 2: Identify Research Domains
|
|
700
793
|
|
|
701
794
|
Based on project description, identify what needs investigating:
|
|
@@ -840,18 +933,26 @@ When research cannot proceed:
|
|
|
840
933
|
|
|
841
934
|
Research is complete when:
|
|
842
935
|
|
|
843
|
-
|
|
936
|
+
**Both Modes:**
|
|
937
|
+
- [ ] Domain ecosystem surveyed (broad for project, focused for milestone)
|
|
844
938
|
- [ ] Technology stack recommended with rationale
|
|
845
939
|
- [ ] Feature landscape mapped (table stakes, differentiators, anti-features)
|
|
846
940
|
- [ ] Architecture patterns documented
|
|
847
941
|
- [ ] Domain pitfalls catalogued
|
|
848
942
|
- [ ] Source hierarchy followed (Context7 → Official → WebSearch)
|
|
849
943
|
- [ ] All findings have confidence levels
|
|
850
|
-
- [ ] Output files created in
|
|
944
|
+
- [ ] Output files created in specified path
|
|
851
945
|
- [ ] SUMMARY.md includes roadmap implications
|
|
852
946
|
- [ ] Files written (DO NOT commit — orchestrator handles this)
|
|
853
947
|
- [ ] Structured return provided to orchestrator
|
|
854
948
|
|
|
949
|
+
**Milestone Research Additional:**
|
|
950
|
+
- [ ] Project research read for context (inheritance)
|
|
951
|
+
- [ ] Research focuses on NEW capabilities, doesn't re-research established patterns
|
|
952
|
+
- [ ] "Suggested Project Updates" section included in SUMMARY.md
|
|
953
|
+
- [ ] New requirements flagged for REQUIREMENTS.md
|
|
954
|
+
- [ ] Future milestone candidates identified (if any)
|
|
955
|
+
|
|
855
956
|
Research quality indicators:
|
|
856
957
|
|
|
857
958
|
- **Comprehensive, not shallow:** All major categories covered
|
|
@@ -860,5 +961,6 @@ Research quality indicators:
|
|
|
860
961
|
- **Honest about gaps:** LOW confidence items flagged, unknowns admitted
|
|
861
962
|
- **Actionable:** Roadmap creator could structure phases based on this research
|
|
862
963
|
- **Current:** Year included in searches, publication dates checked
|
|
964
|
+
- **Incremental (milestone):** Builds on project research, doesn't duplicate
|
|
863
965
|
|
|
864
966
|
</success_criteria>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: rrr-research-synthesizer
|
|
3
|
-
description: Synthesizes research outputs from parallel researcher agents into SUMMARY.md.
|
|
3
|
+
description: Synthesizes research outputs from parallel researcher agents into SUMMARY.md. Supports both project research (.planning/research/) and milestone research (.planning/milestones/vX.Y/research/).
|
|
4
4
|
tools: Read, Write, Bash
|
|
5
5
|
color: purple
|
|
6
6
|
---
|
|
@@ -8,18 +8,28 @@ color: purple
|
|
|
8
8
|
<role>
|
|
9
9
|
You are a RRR research synthesizer. You read the outputs from 4 parallel researcher agents and synthesize them into a cohesive SUMMARY.md.
|
|
10
10
|
|
|
11
|
+
**Two Research Modes:**
|
|
12
|
+
|
|
13
|
+
| Mode | Research Path | Also Reads |
|
|
14
|
+
|------|---------------|------------|
|
|
15
|
+
| Project | `.planning/research/` | Nothing (foundational) |
|
|
16
|
+
| Milestone | `.planning/milestones/vX.Y/research/` | `.planning/research/SUMMARY.md` (project context) |
|
|
17
|
+
|
|
11
18
|
You are spawned by:
|
|
12
19
|
|
|
13
|
-
- `/rrr:new-project`
|
|
20
|
+
- `/rrr:new-project` Phase 6 (project research synthesis)
|
|
21
|
+
- `/rrr:new-milestone` step 8 (milestone research synthesis)
|
|
14
22
|
|
|
15
23
|
Your job: Create a unified research summary that informs roadmap creation. Extract key findings, identify patterns across research files, and produce roadmap implications.
|
|
16
24
|
|
|
17
25
|
**Core responsibilities:**
|
|
18
26
|
- Read all 4 research files (STACK.md, FEATURES.md, ARCHITECTURE.md, PITFALLS.md)
|
|
27
|
+
- For milestone mode: also read project research SUMMARY.md for context
|
|
19
28
|
- Synthesize findings into executive summary
|
|
20
29
|
- Derive roadmap implications from combined research
|
|
21
30
|
- Identify confidence levels and gaps
|
|
22
|
-
-
|
|
31
|
+
- For milestone mode: include "Suggested Project Updates" section
|
|
32
|
+
- Write SUMMARY.md to the specified path
|
|
23
33
|
- Commit ALL research files (researchers write but don't commit — you commit everything)
|
|
24
34
|
</role>
|
|
25
35
|
|
|
@@ -39,15 +49,34 @@ Your SUMMARY.md is consumed by the rrr-roadmapper agent which uses it to:
|
|
|
39
49
|
|
|
40
50
|
<execution_flow>
|
|
41
51
|
|
|
42
|
-
## Step 1:
|
|
52
|
+
## Step 1: Determine Research Directory
|
|
53
|
+
|
|
54
|
+
Parse your prompt for the output path:
|
|
55
|
+
- **Project mode:** `.planning/research/` (default)
|
|
56
|
+
- **Milestone mode:** `.planning/milestones/vX.Y/research/` (specified in prompt)
|
|
57
|
+
|
|
58
|
+
Set `RESEARCH_DIR` accordingly.
|
|
59
|
+
|
|
60
|
+
## Step 1.5: Read Project Research Context (Milestone Mode Only)
|
|
61
|
+
|
|
62
|
+
**If this is milestone research:**
|
|
43
63
|
|
|
44
|
-
Read
|
|
64
|
+
Read project research for context:
|
|
65
|
+
```bash
|
|
66
|
+
cat .planning/research/SUMMARY.md
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
This gives you the foundation the milestone research builds upon.
|
|
70
|
+
|
|
71
|
+
## Step 2: Read Research Files
|
|
72
|
+
|
|
73
|
+
Read all 4 research files from `RESEARCH_DIR`:
|
|
45
74
|
|
|
46
75
|
```bash
|
|
47
|
-
cat
|
|
48
|
-
cat
|
|
49
|
-
cat
|
|
50
|
-
cat
|
|
76
|
+
cat ${RESEARCH_DIR}/STACK.md
|
|
77
|
+
cat ${RESEARCH_DIR}/FEATURES.md
|
|
78
|
+
cat ${RESEARCH_DIR}/ARCHITECTURE.md
|
|
79
|
+
cat ${RESEARCH_DIR}/PITFALLS.md
|
|
51
80
|
```
|
|
52
81
|
|
|
53
82
|
Parse each file to extract:
|
|
@@ -119,15 +148,45 @@ Identify gaps that couldn't be resolved and need attention during planning.
|
|
|
119
148
|
|
|
120
149
|
Use template: ~/.claude/rrr/templates/research-project/SUMMARY.md
|
|
121
150
|
|
|
122
|
-
Write to
|
|
151
|
+
Write to `${RESEARCH_DIR}/SUMMARY.md`
|
|
152
|
+
|
|
153
|
+
**For Milestone Mode — Add "Suggested Project Updates" Section:**
|
|
154
|
+
|
|
155
|
+
```markdown
|
|
156
|
+
## Suggested Project Updates
|
|
157
|
+
|
|
158
|
+
Based on milestone research, the following updates to project-level docs are recommended:
|
|
159
|
+
|
|
160
|
+
### REQUIREMENTS.md Updates
|
|
161
|
+
|
|
162
|
+
| Requirement | Target Section | Rationale |
|
|
163
|
+
|-------------|---------------|-----------|
|
|
164
|
+
| [new requirement] | v[X.Y+1] Candidates | [why discovered/needed] |
|
|
165
|
+
| [new requirement] | Future Backlog | [why discovered/needed] |
|
|
166
|
+
|
|
167
|
+
### ROADMAP.md Updates
|
|
168
|
+
|
|
169
|
+
| Update | Type | Rationale |
|
|
170
|
+
|--------|------|-----------|
|
|
171
|
+
| [suggestion] | Future milestone candidate | [why] |
|
|
172
|
+
| [suggestion] | Current milestone note | [observation] |
|
|
173
|
+
|
|
174
|
+
### Out of Scope Reconsiderations
|
|
175
|
+
|
|
176
|
+
| Feature | Action | Rationale |
|
|
177
|
+
|---------|--------|-----------|
|
|
178
|
+
| [feature] | Consider for [version] | [circumstances changed] |
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
This section allows milestone research to flow updates back to project-level docs.
|
|
123
182
|
|
|
124
183
|
## Step 7: Commit All Research
|
|
125
184
|
|
|
126
185
|
The 4 parallel researcher agents write files but do NOT commit. You commit everything together.
|
|
127
186
|
|
|
128
187
|
```bash
|
|
129
|
-
git add
|
|
130
|
-
git commit -m "docs: complete project research
|
|
188
|
+
git add "${RESEARCH_DIR}/"
|
|
189
|
+
git commit -m "docs: complete [project/milestone] research
|
|
131
190
|
|
|
132
191
|
Files:
|
|
133
192
|
- STACK.md
|
|
@@ -46,7 +46,11 @@ Roadmaps define what work happens in what order. Phases map to requirements.
|
|
|
46
46
|
@.planning/PROJECT.md
|
|
47
47
|
@.planning/config.json
|
|
48
48
|
@.planning/REQUIREMENTS.md
|
|
49
|
-
@.planning/
|
|
49
|
+
@.planning/STATE.md (to detect active milestone)
|
|
50
|
+
|
|
51
|
+
**Research context (checked in order):**
|
|
52
|
+
1. `.planning/milestones/vX.Y/research/SUMMARY.md` (milestone-specific)
|
|
53
|
+
2. `.planning/research/SUMMARY.md` (project-level fallback)
|
|
50
54
|
</context>
|
|
51
55
|
|
|
52
56
|
<process>
|
|
@@ -43,8 +43,11 @@ Output: `.planning/REQUIREMENTS.md`
|
|
|
43
43
|
|
|
44
44
|
<context>
|
|
45
45
|
@.planning/PROJECT.md
|
|
46
|
-
@.planning/
|
|
47
|
-
|
|
46
|
+
@.planning/STATE.md (to detect active milestone)
|
|
47
|
+
|
|
48
|
+
**Research context (priority order):**
|
|
49
|
+
1. `.planning/milestones/vX.Y/research/` (milestone-specific)
|
|
50
|
+
2. `.planning/research/` (project-level fallback)
|
|
48
51
|
</context>
|
|
49
52
|
|
|
50
53
|
<process>
|
|
@@ -54,11 +57,29 @@ Output: `.planning/REQUIREMENTS.md`
|
|
|
54
57
|
# Verify project exists
|
|
55
58
|
[ -f .planning/PROJECT.md ] || { echo "ERROR: No PROJECT.md found. Run /rrr:new-project first."; exit 1; }
|
|
56
59
|
|
|
57
|
-
#
|
|
58
|
-
|
|
60
|
+
# Detect active milestone from STATE.md
|
|
61
|
+
ACTIVE_MILESTONE=""
|
|
62
|
+
if [ -f .planning/STATE.md ]; then
|
|
63
|
+
ACTIVE_MILESTONE=$(grep -oE "Milestone:\\s*v[0-9]+\\.[0-9]+" .planning/STATE.md | grep -oE "v[0-9]+\\.[0-9]+")
|
|
64
|
+
fi
|
|
65
|
+
|
|
66
|
+
# Check for research (milestone-specific first, then project-level)
|
|
67
|
+
RESEARCH_DIR=""
|
|
68
|
+
if [ -n "$ACTIVE_MILESTONE" ] && [ -f ".planning/milestones/${ACTIVE_MILESTONE}/research/FEATURES.md" ]; then
|
|
69
|
+
RESEARCH_DIR=".planning/milestones/${ACTIVE_MILESTONE}/research"
|
|
70
|
+
echo "HAS_MILESTONE_RESEARCH: $ACTIVE_MILESTONE"
|
|
71
|
+
elif [ -f .planning/research/FEATURES.md ]; then
|
|
72
|
+
RESEARCH_DIR=".planning/research"
|
|
73
|
+
echo "HAS_PROJECT_RESEARCH"
|
|
74
|
+
else
|
|
75
|
+
echo "NO_RESEARCH"
|
|
76
|
+
fi
|
|
59
77
|
|
|
60
78
|
# Check if requirements already exist
|
|
61
79
|
[ -f .planning/REQUIREMENTS.md ] && echo "REQUIREMENTS_EXISTS" || echo "NO_REQUIREMENTS"
|
|
80
|
+
|
|
81
|
+
echo "ACTIVE_MILESTONE=${ACTIVE_MILESTONE}"
|
|
82
|
+
echo "RESEARCH_DIR=${RESEARCH_DIR}"
|
|
62
83
|
```
|
|
63
84
|
</step>
|
|
64
85
|
|
|
@@ -79,13 +100,19 @@ If "Replace": Continue with workflow
|
|
|
79
100
|
</step>
|
|
80
101
|
|
|
81
102
|
<step name="execute">
|
|
82
|
-
**If
|
|
103
|
+
**If HAS_MILESTONE_RESEARCH or HAS_PROJECT_RESEARCH:**
|
|
83
104
|
Follow the define-requirements.md workflow:
|
|
84
|
-
- Load research features from FEATURES.md
|
|
105
|
+
- Load research features from `${RESEARCH_DIR}/FEATURES.md`
|
|
106
|
+
- Also read `${RESEARCH_DIR}/SUMMARY.md` for "Suggested Project Updates" (if milestone research)
|
|
85
107
|
- Present features by category
|
|
86
|
-
- Ask user to scope each category (
|
|
108
|
+
- Ask user to scope each category (current milestone / future milestone / out of scope)
|
|
87
109
|
- Capture any additions research missed
|
|
88
|
-
- Generate REQUIREMENTS.md with
|
|
110
|
+
- Generate/update REQUIREMENTS.md with milestone-specific section
|
|
111
|
+
|
|
112
|
+
**For milestone research mode:**
|
|
113
|
+
- Requirements go into the ACTIVE milestone section (e.g., "## v1.1 — [Name] (Active)")
|
|
114
|
+
- Check "Suggested Project Updates" from research for pre-populated candidates
|
|
115
|
+
- Future milestone candidates go to "Future Milestones" section
|
|
89
116
|
|
|
90
117
|
**If NO_RESEARCH:**
|
|
91
118
|
Gather requirements through questioning:
|
|
@@ -93,8 +120,8 @@ Gather requirements through questioning:
|
|
|
93
120
|
- Ask: "What are the main things users need to be able to do?"
|
|
94
121
|
- For each capability mentioned, probe for specifics
|
|
95
122
|
- Group into categories (Authentication, Content, etc.)
|
|
96
|
-
- For each category, ask what's
|
|
97
|
-
- Generate REQUIREMENTS.md with
|
|
123
|
+
- For each category, ask what's current milestone vs future vs out of scope
|
|
124
|
+
- Generate/update REQUIREMENTS.md with milestone-specific section
|
|
98
125
|
|
|
99
126
|
Same output format either way — the difference is source (research vs conversation).
|
|
100
127
|
</step>
|
|
@@ -251,26 +251,127 @@ node ~/.claude/rrr/scripts/rrr-hud.js 2>/dev/null || echo "HUD skipped"
|
|
|
251
251
|
git commit -m "docs: start milestone v[X.Y] [Name]"
|
|
252
252
|
```
|
|
253
253
|
|
|
254
|
-
8. **
|
|
254
|
+
8. **Milestone research decision:**
|
|
255
255
|
|
|
256
|
+
Use AskUserQuestion:
|
|
257
|
+
- header: "Research"
|
|
258
|
+
- question: "Research the domain for this milestone's features?"
|
|
259
|
+
- options:
|
|
260
|
+
- "Yes, research first (Recommended)" — Discover patterns for new capabilities
|
|
261
|
+
- "No, define requirements directly" — Familiar territory, skip research
|
|
262
|
+
|
|
263
|
+
**If "Yes, research first":**
|
|
264
|
+
|
|
265
|
+
Create milestone research directory:
|
|
266
|
+
```bash
|
|
267
|
+
NEW_VERSION="[milestone version from step 3]"
|
|
268
|
+
mkdir -p ".planning/milestones/v${NEW_VERSION}/research"
|
|
256
269
|
```
|
|
257
|
-
Milestone v[X.Y] [Name] initialized.
|
|
258
270
|
|
|
259
|
-
|
|
271
|
+
Display:
|
|
272
|
+
```
|
|
273
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
274
|
+
MILESTONE RESEARCH
|
|
275
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
260
276
|
|
|
261
|
-
|
|
277
|
+
Researching [milestone features] for v[X.Y]...
|
|
278
|
+
Reading project research for context...
|
|
279
|
+
```
|
|
262
280
|
|
|
263
|
-
|
|
281
|
+
**Spawn 4 parallel milestone researchers:**
|
|
264
282
|
|
|
265
|
-
|
|
283
|
+
Each researcher gets:
|
|
284
|
+
- Milestone context (target features from step 2)
|
|
285
|
+
- Project research context (read `.planning/research/` if exists)
|
|
286
|
+
- Output path: `.planning/milestones/v${NEW_VERSION}/research/`
|
|
266
287
|
|
|
267
|
-
|
|
268
|
-
|
|
288
|
+
```
|
|
289
|
+
Task(prompt="
|
|
290
|
+
<research_type>
|
|
291
|
+
Milestone Research — Stack dimension for v[X.Y] [milestone name].
|
|
292
|
+
</research_type>
|
|
293
|
+
|
|
294
|
+
<milestone_context>
|
|
295
|
+
This is SUBSEQUENT milestone research (not greenfield).
|
|
296
|
+
Target features: [features from step 2]
|
|
297
|
+
Don't re-research existing system. Focus on what's NEW.
|
|
298
|
+
</milestone_context>
|
|
299
|
+
|
|
300
|
+
<project_research>
|
|
301
|
+
Read and incorporate context from: .planning/research/ (if exists)
|
|
302
|
+
Your milestone research BUILDS ON project research, doesn't replace it.
|
|
303
|
+
</project_research>
|
|
304
|
+
|
|
305
|
+
<question>
|
|
306
|
+
What stack additions/changes are needed for [milestone features]?
|
|
307
|
+
</question>
|
|
308
|
+
|
|
309
|
+
<downstream_consumer>
|
|
310
|
+
Your STACK.md feeds into milestone roadmap phases.
|
|
311
|
+
Focus on: new libraries needed, version updates, integration patterns.
|
|
312
|
+
</downstream_consumer>
|
|
313
|
+
|
|
314
|
+
<can_update_project>
|
|
315
|
+
If you discover something that should update project-level docs:
|
|
316
|
+
- Flag it in your output
|
|
317
|
+
- Include specific update suggestions for ROADMAP.md or REQUIREMENTS.md
|
|
318
|
+
</can_update_project>
|
|
319
|
+
|
|
320
|
+
<output>
|
|
321
|
+
Write to: .planning/milestones/v${NEW_VERSION}/research/STACK.md
|
|
322
|
+
</output>
|
|
323
|
+
", subagent_type="rrr-project-researcher", description="Milestone stack research")
|
|
324
|
+
|
|
325
|
+
[Similar prompts for FEATURES.md, ARCHITECTURE.md, PITFALLS.md]
|
|
326
|
+
```
|
|
269
327
|
|
|
270
|
-
|
|
328
|
+
After all 4 complete, spawn synthesizer:
|
|
329
|
+
```
|
|
330
|
+
Task(prompt="
|
|
331
|
+
Synthesize milestone research into SUMMARY.md.
|
|
332
|
+
|
|
333
|
+
Read these files:
|
|
334
|
+
- .planning/milestones/v${NEW_VERSION}/research/STACK.md
|
|
335
|
+
- .planning/milestones/v${NEW_VERSION}/research/FEATURES.md
|
|
336
|
+
- .planning/milestones/v${NEW_VERSION}/research/ARCHITECTURE.md
|
|
337
|
+
- .planning/milestones/v${NEW_VERSION}/research/PITFALLS.md
|
|
338
|
+
|
|
339
|
+
Also read project research for context:
|
|
340
|
+
- .planning/research/SUMMARY.md (if exists)
|
|
341
|
+
|
|
342
|
+
Write to: .planning/milestones/v${NEW_VERSION}/research/SUMMARY.md
|
|
343
|
+
|
|
344
|
+
Include:
|
|
345
|
+
- How milestone builds on existing architecture
|
|
346
|
+
- New requirements discovered (for REQUIREMENTS.md update)
|
|
347
|
+
- Suggested phases for this milestone
|
|
348
|
+
- Any project-level updates recommended
|
|
349
|
+
", subagent_type="rrr-research-synthesizer", description="Synthesize milestone research")
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
Commit research:
|
|
353
|
+
```bash
|
|
354
|
+
git add ".planning/milestones/v${NEW_VERSION}/research/"
|
|
355
|
+
git commit -m "docs: research milestone v${NEW_VERSION} features"
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
**If "No, define requirements directly":** Skip research, continue to step 9.
|
|
359
|
+
|
|
360
|
+
9. **Route to next step:**
|
|
361
|
+
|
|
362
|
+
```
|
|
363
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
364
|
+
MILESTONE v[X.Y] INITIALIZED ✓
|
|
365
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
366
|
+
|
|
367
|
+
PROJECT.md updated with new goals.
|
|
368
|
+
[If research done: Research complete in .planning/milestones/v[X.Y]/research/]
|
|
369
|
+
|
|
370
|
+
---
|
|
371
|
+
|
|
372
|
+
## ▶ Next Up
|
|
271
373
|
|
|
272
|
-
**
|
|
273
|
-
Skip research, define requirements from what you know.
|
|
374
|
+
**Define requirements for v[X.Y]**
|
|
274
375
|
|
|
275
376
|
`/rrr:define-requirements`
|
|
276
377
|
|
|
@@ -287,6 +388,8 @@ node ~/.claude/rrr/scripts/rrr-hud.js 2>/dev/null || echo "HUD skipped"
|
|
|
287
388
|
- Active requirements reflect new milestone goals
|
|
288
389
|
- STATE.md reset for new milestone
|
|
289
390
|
- MILESTONE-CONTEXT.md consumed and deleted (if existed)
|
|
391
|
+
- Milestone research offered (if selected: .planning/milestones/vX.Y/research/ created)
|
|
392
|
+
- Milestone research reads project research for context (inheritance)
|
|
290
393
|
- Git commit made
|
|
291
|
-
- User routed to define-requirements
|
|
394
|
+
- User routed to define-requirements
|
|
292
395
|
</success_criteria>
|
|
@@ -39,22 +39,40 @@ Phase number: $ARGUMENTS (optional - auto-detects next unplanned phase if not pr
|
|
|
39
39
|
- `--gaps` — Gap closure mode (reads VERIFICATION.md, skips research)
|
|
40
40
|
- `--skip-verify` — Skip planner → checker verification loop
|
|
41
41
|
|
|
42
|
-
**Research defaults:** If
|
|
42
|
+
**Research defaults:** If research SUMMARY.md exists (milestone or project level), research is skipped by default unless:
|
|
43
43
|
- `--research` flag is set, OR
|
|
44
44
|
- Phase involves risky domains (auth, payments, security, webhooks), OR
|
|
45
45
|
- `.planning/codebase/` is missing for brownfield projects
|
|
46
46
|
|
|
47
|
+
**Research location (checked in order):**
|
|
48
|
+
1. `.planning/milestones/vX.Y/research/SUMMARY.md` (milestone-specific)
|
|
49
|
+
2. `.planning/research/SUMMARY.md` (project-level fallback)
|
|
50
|
+
|
|
47
51
|
Check for existing research and plans:
|
|
48
52
|
|
|
49
53
|
**On macOS/Linux:**
|
|
50
54
|
```bash
|
|
55
|
+
# Detect active milestone
|
|
56
|
+
ACTIVE_MILESTONE=$(grep -oE "Milestone:\\s*v[0-9]+\\.[0-9]+" .planning/STATE.md 2>/dev/null | grep -oE "v[0-9]+\\.[0-9]+")
|
|
57
|
+
|
|
58
|
+
# Check for research (milestone-specific first, then project-level)
|
|
59
|
+
RESEARCH_DIR=""
|
|
60
|
+
if [ -n "$ACTIVE_MILESTONE" ] && [ -f ".planning/milestones/${ACTIVE_MILESTONE}/research/SUMMARY.md" ]; then
|
|
61
|
+
RESEARCH_DIR=".planning/milestones/${ACTIVE_MILESTONE}/research"
|
|
62
|
+
echo "HAS_MILESTONE_RESEARCH: $ACTIVE_MILESTONE"
|
|
63
|
+
elif [ -f .planning/research/SUMMARY.md ]; then
|
|
64
|
+
RESEARCH_DIR=".planning/research"
|
|
65
|
+
echo "HAS_PROJECT_RESEARCH"
|
|
66
|
+
else
|
|
67
|
+
echo "NO_RESEARCH"
|
|
68
|
+
fi
|
|
69
|
+
|
|
51
70
|
# Use library to find phase directory first (searches both old and new structures)
|
|
52
71
|
PHASE_DIR=$(find_phase_dir "$PHASE")
|
|
53
72
|
if [ -n "$PHASE_DIR" ]; then
|
|
54
73
|
ls "${PHASE_DIR}"/*-RESEARCH.md 2>/dev/null
|
|
55
74
|
ls "${PHASE_DIR}"/*-PLAN.md 2>/dev/null
|
|
56
75
|
fi
|
|
57
|
-
ls .planning/research/SUMMARY.md 2>/dev/null
|
|
58
76
|
```
|
|
59
77
|
|
|
60
78
|
**On Windows (Platform: win32):**
|
|
@@ -65,7 +83,9 @@ Use Glob tool with both structures:
|
|
|
65
83
|
- Then search within found directory:
|
|
66
84
|
- `Glob pattern: "{PHASE_DIR}/*-RESEARCH.md"`
|
|
67
85
|
- `Glob pattern: "{PHASE_DIR}/*-PLAN.md"`
|
|
68
|
-
-
|
|
86
|
+
- Check research (milestone first, then project):
|
|
87
|
+
- `Glob pattern: ".planning/milestones/v*/research/SUMMARY.md"`
|
|
88
|
+
- `Glob pattern: ".planning/research/SUMMARY.md"`
|
|
69
89
|
|
|
70
90
|
</context>
|
|
71
91
|
|
|
@@ -490,16 +510,19 @@ fi
|
|
|
490
510
|
|
|
491
511
|
**Smart research guardrails (default behavior):**
|
|
492
512
|
|
|
493
|
-
Check for project-level
|
|
513
|
+
Check for research (milestone-specific first, then project-level):
|
|
494
514
|
|
|
495
515
|
**On macOS/Linux:**
|
|
496
516
|
```bash
|
|
497
|
-
|
|
517
|
+
# Detect active milestone and find research (already set in context step)
|
|
518
|
+
# RESEARCH_DIR is set to milestone research or project research path
|
|
519
|
+
ls "${RESEARCH_DIR}/SUMMARY.md" 2>/dev/null
|
|
498
520
|
ls "${PHASE_DIR}"/*-RESEARCH.md 2>/dev/null
|
|
499
521
|
```
|
|
500
522
|
|
|
501
523
|
**On Windows:**
|
|
502
|
-
- `Glob pattern: ".planning/research/SUMMARY.md"`
|
|
524
|
+
- `Glob pattern: ".planning/milestones/v*/research/SUMMARY.md"` (milestone first)
|
|
525
|
+
- `Glob pattern: ".planning/research/SUMMARY.md"` (project fallback)
|
|
503
526
|
- `Glob pattern: "${PHASE_DIR}/*-RESEARCH.md"`
|
|
504
527
|
|
|
505
528
|
**Research Decision Matrix:**
|
|
@@ -508,8 +531,9 @@ ls "${PHASE_DIR}"/*-RESEARCH.md 2>/dev/null
|
|
|
508
531
|
|-----------|--------|
|
|
509
532
|
| `--research` flag set | Force research (override all) |
|
|
510
533
|
| Phase-level RESEARCH.md exists | Use existing, skip to step 6 |
|
|
534
|
+
| Milestone-level SUMMARY.md exists AND phase is NOT risky | Skip research, display: `Using milestone research from /rrr:new-milestone` |
|
|
511
535
|
| Project-level SUMMARY.md exists AND phase is NOT risky | Skip research, display: `Using project research from /rrr:new-project` |
|
|
512
|
-
|
|
|
536
|
+
| Research SUMMARY.md exists AND phase IS risky | Run research (risky domains need phase-specific research) |
|
|
513
537
|
| Neither research exists | Run research |
|
|
514
538
|
|
|
515
539
|
**Risky domain detection:** Phase name or description contains: `auth`, `payment`, `security`, `webhook`, `oauth`, `stripe`, `bank`, `credential`, `encryption`, `api-key`.
|
|
@@ -40,14 +40,36 @@ Research domain ecosystem. Spawns 4 parallel rrr-project-researcher agents for c
|
|
|
40
40
|
|
|
41
41
|
<process>
|
|
42
42
|
|
|
43
|
-
## 1. Validate Prerequisites
|
|
43
|
+
## 1. Validate Prerequisites & Detect Milestone
|
|
44
44
|
|
|
45
45
|
```bash
|
|
46
46
|
[ -f .planning/PROJECT.md ] || { echo "ERROR: No PROJECT.md. Run /rrr:new-project first."; exit 1; }
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
|
|
48
|
+
# Detect active milestone from ROADMAP.md
|
|
49
|
+
ACTIVE_MILESTONE=""
|
|
50
|
+
if [ -f .planning/ROADMAP.md ]; then
|
|
51
|
+
# Try "Current Milestone: vX.Y" format
|
|
52
|
+
ACTIVE_MILESTONE=$(grep -oE "Current Milestone:\s*v[0-9]+\.[0-9]+" .planning/ROADMAP.md | grep -oE "v[0-9]+\.[0-9]+")
|
|
53
|
+
# Try "**Milestone:** vX.Y" format
|
|
54
|
+
[ -z "$ACTIVE_MILESTONE" ] && ACTIVE_MILESTONE=$(grep -oE "\*\*Milestone:\*\*\s*v[0-9]+\.[0-9]+" .planning/ROADMAP.md | grep -oE "v[0-9]+\.[0-9]+")
|
|
55
|
+
fi
|
|
56
|
+
|
|
57
|
+
# Set research directory based on milestone
|
|
58
|
+
if [ -n "$ACTIVE_MILESTONE" ]; then
|
|
59
|
+
RESEARCH_DIR=".planning/milestones/${ACTIVE_MILESTONE}/research"
|
|
60
|
+
echo "MILESTONE_RESEARCH: ${ACTIVE_MILESTONE}"
|
|
61
|
+
else
|
|
62
|
+
RESEARCH_DIR=".planning/research"
|
|
63
|
+
echo "PROJECT_RESEARCH: initial setup (no milestone yet)"
|
|
64
|
+
fi
|
|
65
|
+
|
|
66
|
+
[ -d "$RESEARCH_DIR" ] && echo "RESEARCH_EXISTS" || echo "NO_RESEARCH"
|
|
49
67
|
```
|
|
50
68
|
|
|
69
|
+
**Research location logic:**
|
|
70
|
+
- If active milestone exists → `.planning/milestones/vX.Y/research/`
|
|
71
|
+
- If no milestone (initial project) → `.planning/research/`
|
|
72
|
+
|
|
51
73
|
## 2. Handle Existing Research
|
|
52
74
|
|
|
53
75
|
**If RESEARCH_EXISTS:** Use AskUserQuestion (View existing / Replace / Cancel)
|
|
@@ -77,7 +99,7 @@ Present for approval.
|
|
|
77
99
|
## 5. Spawn Research Agents
|
|
78
100
|
|
|
79
101
|
```bash
|
|
80
|
-
mkdir -p
|
|
102
|
+
mkdir -p "${RESEARCH_DIR}"
|
|
81
103
|
```
|
|
82
104
|
|
|
83
105
|
**Determine milestone context:**
|
|
@@ -121,7 +143,7 @@ Your STACK.md feeds into /rrr:create-roadmap. Be prescriptive:
|
|
|
121
143
|
</quality_gate>
|
|
122
144
|
|
|
123
145
|
<output>
|
|
124
|
-
Write to:
|
|
146
|
+
Write to: ${RESEARCH_DIR}/STACK.md
|
|
125
147
|
Use template: ~/.claude/rrr/templates/research-project/STACK.md
|
|
126
148
|
</output>
|
|
127
149
|
", subagent_type="rrr-project-researcher", description="Stack research")
|
|
@@ -160,7 +182,7 @@ Your FEATURES.md feeds into /rrr:define-requirements. Categorize clearly:
|
|
|
160
182
|
</quality_gate>
|
|
161
183
|
|
|
162
184
|
<output>
|
|
163
|
-
Write to:
|
|
185
|
+
Write to: ${RESEARCH_DIR}/FEATURES.md
|
|
164
186
|
Use template: ~/.claude/rrr/templates/research-project/FEATURES.md
|
|
165
187
|
</output>
|
|
166
188
|
", subagent_type="rrr-project-researcher", description="Features research")
|
|
@@ -199,7 +221,7 @@ Your ARCHITECTURE.md informs phase structure in roadmap. Include:
|
|
|
199
221
|
</quality_gate>
|
|
200
222
|
|
|
201
223
|
<output>
|
|
202
|
-
Write to:
|
|
224
|
+
Write to: ${RESEARCH_DIR}/ARCHITECTURE.md
|
|
203
225
|
Use template: ~/.claude/rrr/templates/research-project/ARCHITECTURE.md
|
|
204
226
|
</output>
|
|
205
227
|
", subagent_type="rrr-project-researcher", description="Architecture research")
|
|
@@ -238,7 +260,7 @@ Your PITFALLS.md prevents mistakes in roadmap/planning. For each pitfall:
|
|
|
238
260
|
</quality_gate>
|
|
239
261
|
|
|
240
262
|
<output>
|
|
241
|
-
Write to:
|
|
263
|
+
Write to: ${RESEARCH_DIR}/PITFALLS.md
|
|
242
264
|
Use template: ~/.claude/rrr/templates/research-project/PITFALLS.md
|
|
243
265
|
</output>
|
|
244
266
|
", subagent_type="rrr-project-researcher", description="Pitfalls research")
|
|
@@ -248,7 +270,7 @@ Use template: ~/.claude/rrr/templates/research-project/PITFALLS.md
|
|
|
248
270
|
|
|
249
271
|
## 6. Synthesize Results
|
|
250
272
|
|
|
251
|
-
After all agents complete, read their outputs and write
|
|
273
|
+
After all agents complete, read their outputs and write `${RESEARCH_DIR}/SUMMARY.md`:
|
|
252
274
|
- Read template: `~/.claude/rrr/templates/research-project/SUMMARY.md`
|
|
253
275
|
- Synthesize executive summary from all 4 files
|
|
254
276
|
- Add confidence assessment
|
|
@@ -283,7 +305,7 @@ This section directly feeds into `/rrr:create-roadmap`.
|
|
|
283
305
|
## 7. Commit Research
|
|
284
306
|
|
|
285
307
|
```bash
|
|
286
|
-
git add
|
|
308
|
+
git add "${RESEARCH_DIR}/"
|
|
287
309
|
git commit -m "docs: research [domain] ecosystem
|
|
288
310
|
|
|
289
311
|
Key findings:
|
package/package.json
CHANGED
|
@@ -2,6 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
Template for `.planning/REQUIREMENTS.md` — checkable requirements that define "done."
|
|
4
4
|
|
|
5
|
+
## Philosophy
|
|
6
|
+
|
|
7
|
+
Requirements evolve with the project:
|
|
8
|
+
- **Validated** = shipped and verified (immutable history)
|
|
9
|
+
- **Active (current milestone)** = being built now
|
|
10
|
+
- **Future milestones** = planned but not yet active
|
|
11
|
+
- **Out of Scope** = explicit exclusions
|
|
12
|
+
|
|
13
|
+
Milestone research can ADD requirements. Each milestone has its own section.
|
|
14
|
+
|
|
5
15
|
<template>
|
|
6
16
|
|
|
7
17
|
```markdown
|
|
@@ -9,34 +19,48 @@ Template for `.planning/REQUIREMENTS.md` — checkable requirements that define
|
|
|
9
19
|
|
|
10
20
|
**Defined:** [date]
|
|
11
21
|
**Core Value:** [from PROJECT.md]
|
|
22
|
+
**Current Milestone:** v[X.Y]
|
|
12
23
|
|
|
13
|
-
##
|
|
24
|
+
## Validated
|
|
14
25
|
|
|
15
|
-
Requirements
|
|
26
|
+
Requirements shipped and verified. These are immutable — they represent what works.
|
|
16
27
|
|
|
17
|
-
###
|
|
28
|
+
### v1.0 — [Milestone Name]
|
|
18
29
|
|
|
19
|
-
- [
|
|
20
|
-
- [
|
|
21
|
-
- [
|
|
22
|
-
- [ ] **AUTH-04**: User session persists across browser refresh
|
|
30
|
+
- [x] **AUTH-01**: User can sign up with email and password — *verified [date]*
|
|
31
|
+
- [x] **AUTH-02**: User receives email verification after signup — *verified [date]*
|
|
32
|
+
- [x] **CONT-01**: User can create text post — *verified [date]*
|
|
23
33
|
|
|
24
|
-
### [
|
|
34
|
+
### v1.1 — [Milestone Name] (if applicable)
|
|
35
|
+
|
|
36
|
+
- [x] **NOTF-01**: User receives in-app notifications — *verified [date]*
|
|
37
|
+
|
|
38
|
+
## v[X.Y] — [Current Milestone Name] (Active)
|
|
39
|
+
|
|
40
|
+
Requirements for current milestone. Mapped to roadmap phases.
|
|
41
|
+
|
|
42
|
+
### [Category 1]
|
|
25
43
|
|
|
26
44
|
- [ ] **[CAT]-01**: [Requirement description]
|
|
27
45
|
- [ ] **[CAT]-02**: [Requirement description]
|
|
28
|
-
- [ ] **[CAT]-03**: [Requirement description]
|
|
29
46
|
|
|
30
|
-
### [Category
|
|
47
|
+
### [Category 2]
|
|
31
48
|
|
|
32
49
|
- [ ] **[CAT]-01**: [Requirement description]
|
|
33
50
|
- [ ] **[CAT]-02**: [Requirement description]
|
|
34
51
|
|
|
35
|
-
##
|
|
52
|
+
## Future Milestones
|
|
53
|
+
|
|
54
|
+
Requirements planned for future milestones. Not in current roadmap.
|
|
36
55
|
|
|
37
|
-
|
|
56
|
+
### v[X.Y+1] Candidates
|
|
38
57
|
|
|
39
|
-
|
|
58
|
+
*Flagged by research or deferred from current milestone*
|
|
59
|
+
|
|
60
|
+
- **[CAT]-01**: [Requirement description] — *Source: [milestone research / user request]*
|
|
61
|
+
- **[CAT]-02**: [Requirement description] — *Source: [milestone research / user request]*
|
|
62
|
+
|
|
63
|
+
### Backlog (Unassigned)
|
|
40
64
|
|
|
41
65
|
- **[CAT]-01**: [Requirement description]
|
|
42
66
|
- **[CAT]-02**: [Requirement description]
|
|
@@ -45,25 +69,22 @@ Deferred to future release. Tracked but not in current roadmap.
|
|
|
45
69
|
|
|
46
70
|
Explicitly excluded. Documented to prevent scope creep.
|
|
47
71
|
|
|
48
|
-
| Feature | Reason |
|
|
49
|
-
|
|
50
|
-
| [Feature] | [Why excluded] |
|
|
51
|
-
| [Feature] | [Why excluded] |
|
|
72
|
+
| Feature | Reason | Revisit? |
|
|
73
|
+
|---------|--------|----------|
|
|
74
|
+
| [Feature] | [Why excluded] | [v2/Never] |
|
|
75
|
+
| [Feature] | [Why excluded] | [v2/Never] |
|
|
52
76
|
|
|
53
77
|
## Traceability
|
|
54
78
|
|
|
55
|
-
Which phases cover which requirements
|
|
79
|
+
Which phases cover which requirements for the CURRENT milestone.
|
|
56
80
|
|
|
57
81
|
| Requirement | Phase | Status |
|
|
58
82
|
|-------------|-------|--------|
|
|
59
|
-
|
|
|
60
|
-
| AUTH-02 | Phase 1 | Pending |
|
|
61
|
-
| AUTH-03 | Phase 1 | Pending |
|
|
62
|
-
| AUTH-04 | Phase 1 | Pending |
|
|
83
|
+
| [REQ-ID] | Phase [N] | Pending |
|
|
63
84
|
| [REQ-ID] | Phase [N] | Pending |
|
|
64
85
|
|
|
65
|
-
**Coverage:**
|
|
66
|
-
-
|
|
86
|
+
**Coverage (v[X.Y]):**
|
|
87
|
+
- Active requirements: [X] total
|
|
67
88
|
- Mapped to phases: [Y]
|
|
68
89
|
- Unmapped: [Z] ⚠️
|
|
69
90
|
|
|
@@ -76,27 +97,43 @@ Which phases cover which requirements. Updated by create-roadmap.
|
|
|
76
97
|
|
|
77
98
|
<guidelines>
|
|
78
99
|
|
|
100
|
+
**Milestone-Based Structure:**
|
|
101
|
+
|
|
102
|
+
The hierarchy is: Project → Milestone → Phases → Plans
|
|
103
|
+
|
|
104
|
+
- **Validated** = Shipped requirements from past milestones (immutable)
|
|
105
|
+
- **Active** = Current milestone's requirements (has checkboxes, maps to phases)
|
|
106
|
+
- **Future** = Candidates for future milestones (no checkboxes yet)
|
|
107
|
+
- **Out of Scope** = Explicit exclusions
|
|
108
|
+
|
|
79
109
|
**Requirement Format:**
|
|
80
110
|
- ID: `[CATEGORY]-[NUMBER]` (AUTH-01, CONTENT-02, SOCIAL-03)
|
|
81
111
|
- Description: User-centric, testable, atomic
|
|
82
|
-
- Checkbox: Only for
|
|
112
|
+
- Checkbox: Only for ACTIVE milestone requirements
|
|
83
113
|
|
|
84
114
|
**Categories:**
|
|
85
115
|
- Derive from research FEATURES.md categories
|
|
86
116
|
- Keep consistent with domain conventions
|
|
87
117
|
- Typical: Authentication, Content, Social, Notifications, Moderation, Payments, Admin
|
|
88
118
|
|
|
89
|
-
**
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
119
|
+
**Milestone Transitions:**
|
|
120
|
+
|
|
121
|
+
When starting new milestone (via `/rrr:new-milestone`):
|
|
122
|
+
1. Move completed requirements from Active → Validated
|
|
123
|
+
2. Create new Active section for new milestone
|
|
124
|
+
3. Milestone research can add to Future Candidates
|
|
125
|
+
|
|
126
|
+
When milestone research discovers new requirements:
|
|
127
|
+
1. Add to Future Candidates section with source attribution
|
|
128
|
+
2. Can suggest for current milestone (if scope allows) or future
|
|
93
129
|
|
|
94
130
|
**Out of Scope:**
|
|
95
131
|
- Explicit exclusions with reasoning
|
|
96
|
-
-
|
|
132
|
+
- "Revisit?" column indicates if this might change
|
|
97
133
|
- Anti-features from research belong here with warnings
|
|
98
134
|
|
|
99
135
|
**Traceability:**
|
|
136
|
+
- Only tracks CURRENT milestone's requirements
|
|
100
137
|
- Empty initially, populated by create-roadmap
|
|
101
138
|
- Each requirement maps to exactly one phase
|
|
102
139
|
- Unmapped requirements = roadmap gap (error in create-roadmap)
|
|
@@ -136,30 +173,29 @@ Which phases cover which requirements. Updated by create-roadmap.
|
|
|
136
173
|
|
|
137
174
|
**Defined:** 2025-01-14
|
|
138
175
|
**Core Value:** Users can share and discuss content with people who share their interests
|
|
176
|
+
**Current Milestone:** v1.1
|
|
139
177
|
|
|
140
|
-
##
|
|
141
|
-
|
|
142
|
-
### Authentication
|
|
143
|
-
|
|
144
|
-
- [ ] **AUTH-01**: User can sign up with email and password
|
|
145
|
-
- [ ] **AUTH-02**: User receives email verification after signup
|
|
146
|
-
- [ ] **AUTH-03**: User can reset password via email link
|
|
147
|
-
- [ ] **AUTH-04**: User session persists across browser refresh
|
|
178
|
+
## Validated
|
|
148
179
|
|
|
149
|
-
###
|
|
180
|
+
### v1.0 — MVP Core
|
|
150
181
|
|
|
151
|
-
- [
|
|
152
|
-
- [
|
|
153
|
-
- [
|
|
154
|
-
- [
|
|
182
|
+
- [x] **AUTH-01**: User can sign up with email and password — *verified 2025-02-01*
|
|
183
|
+
- [x] **AUTH-02**: User receives email verification after signup — *verified 2025-02-01*
|
|
184
|
+
- [x] **AUTH-03**: User can reset password via email link — *verified 2025-02-01*
|
|
185
|
+
- [x] **AUTH-04**: User session persists across browser refresh — *verified 2025-02-01*
|
|
186
|
+
- [x] **PROF-01**: User can create profile with display name — *verified 2025-02-05*
|
|
187
|
+
- [x] **PROF-02**: User can upload avatar image — *verified 2025-02-05*
|
|
188
|
+
- [x] **PROF-03**: User can write bio (max 500 chars) — *verified 2025-02-05*
|
|
189
|
+
- [x] **PROF-04**: User can view other users' profiles — *verified 2025-02-05*
|
|
190
|
+
- [x] **CONT-01**: User can create text post — *verified 2025-02-10*
|
|
191
|
+
- [x] **CONT-02**: User can upload image with post — *verified 2025-02-10*
|
|
192
|
+
- [x] **CONT-03**: User can edit own posts — *verified 2025-02-10*
|
|
193
|
+
- [x] **CONT-04**: User can delete own posts — *verified 2025-02-10*
|
|
194
|
+
- [x] **CONT-05**: User can view feed of posts — *verified 2025-02-10*
|
|
155
195
|
|
|
156
|
-
|
|
196
|
+
## v1.1 — Social & Engagement (Active)
|
|
157
197
|
|
|
158
|
-
|
|
159
|
-
- [ ] **CONT-02**: User can upload image with post
|
|
160
|
-
- [ ] **CONT-03**: User can edit own posts
|
|
161
|
-
- [ ] **CONT-04**: User can delete own posts
|
|
162
|
-
- [ ] **CONT-05**: User can view feed of posts
|
|
198
|
+
Requirements for current milestone. Adding social features.
|
|
163
199
|
|
|
164
200
|
### Social
|
|
165
201
|
|
|
@@ -169,63 +205,65 @@ Which phases cover which requirements. Updated by create-roadmap.
|
|
|
169
205
|
- [ ] **SOCL-04**: User can comment on posts
|
|
170
206
|
- [ ] **SOCL-05**: User can view activity feed (followed users' posts)
|
|
171
207
|
|
|
172
|
-
|
|
208
|
+
### Notifications (from v1.1 research)
|
|
209
|
+
|
|
210
|
+
- [ ] **NOTF-01**: User receives in-app notifications for follows
|
|
211
|
+
- [ ] **NOTF-02**: User receives in-app notifications for comments
|
|
212
|
+
|
|
213
|
+
## Future Milestones
|
|
214
|
+
|
|
215
|
+
### v1.2 Candidates
|
|
216
|
+
|
|
217
|
+
*Flagged by v1.1 milestone research*
|
|
218
|
+
|
|
219
|
+
- **NOTF-03**: User receives email for new followers — *Source: v1.1 research*
|
|
220
|
+
- **NOTF-04**: User receives email for comments on own posts — *Source: v1.1 research*
|
|
221
|
+
- **NOTF-05**: User can configure notification preferences — *Source: v1.1 research*
|
|
222
|
+
|
|
223
|
+
### v2.0 Candidates
|
|
173
224
|
|
|
174
|
-
|
|
225
|
+
*Major features requiring significant work*
|
|
175
226
|
|
|
176
|
-
- **
|
|
177
|
-
- **
|
|
178
|
-
- **
|
|
179
|
-
- **
|
|
227
|
+
- **MODR-01**: User can report content — *Source: project research*
|
|
228
|
+
- **MODR-02**: User can block other users — *Source: project research*
|
|
229
|
+
- **MODR-03**: Admin can view reported content — *Source: project research*
|
|
230
|
+
- **MODR-04**: Admin can remove content — *Source: project research*
|
|
231
|
+
- **MODR-05**: Admin can ban users — *Source: project research*
|
|
180
232
|
|
|
181
|
-
###
|
|
233
|
+
### Backlog (Unassigned)
|
|
182
234
|
|
|
183
|
-
- **
|
|
184
|
-
- **
|
|
185
|
-
- **MODR-03**: Admin can view reported content
|
|
186
|
-
- **MODR-04**: Admin can remove content
|
|
187
|
-
- **MODR-05**: Admin can ban users
|
|
235
|
+
- **REAL-01**: Real-time typing indicators
|
|
236
|
+
- **REAL-02**: Push notifications
|
|
188
237
|
|
|
189
238
|
## Out of Scope
|
|
190
239
|
|
|
191
|
-
| Feature | Reason |
|
|
192
|
-
|
|
193
|
-
| Real-time chat | High complexity, not core to community value |
|
|
194
|
-
| Video posts | Storage/bandwidth costs
|
|
195
|
-
| OAuth login | Email/password sufficient for v1 |
|
|
196
|
-
| Mobile app | Web-first
|
|
240
|
+
| Feature | Reason | Revisit? |
|
|
241
|
+
|---------|--------|----------|
|
|
242
|
+
| Real-time chat | High complexity, not core to community value | v2.0 |
|
|
243
|
+
| Video posts | Storage/bandwidth costs | v2.0 |
|
|
244
|
+
| OAuth login | Email/password sufficient for now | v1.2 |
|
|
245
|
+
| Mobile app | Web-first | v2.0 |
|
|
197
246
|
|
|
198
247
|
## Traceability
|
|
199
248
|
|
|
200
249
|
| Requirement | Phase | Status |
|
|
201
250
|
|-------------|-------|--------|
|
|
202
|
-
|
|
|
203
|
-
|
|
|
204
|
-
|
|
|
205
|
-
|
|
|
206
|
-
|
|
|
207
|
-
|
|
|
208
|
-
|
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
| CONT-04 | Phase 3 | Pending |
|
|
214
|
-
| CONT-05 | Phase 3 | Pending |
|
|
215
|
-
| SOCL-01 | Phase 4 | Pending |
|
|
216
|
-
| SOCL-02 | Phase 4 | Pending |
|
|
217
|
-
| SOCL-03 | Phase 4 | Pending |
|
|
218
|
-
| SOCL-04 | Phase 4 | Pending |
|
|
219
|
-
| SOCL-05 | Phase 4 | Pending |
|
|
220
|
-
|
|
221
|
-
**Coverage:**
|
|
222
|
-
- v1 requirements: 18 total
|
|
223
|
-
- Mapped to phases: 18
|
|
251
|
+
| SOCL-01 | Phase 14 | Pending |
|
|
252
|
+
| SOCL-02 | Phase 14 | Pending |
|
|
253
|
+
| SOCL-03 | Phase 14 | Pending |
|
|
254
|
+
| SOCL-04 | Phase 15 | Pending |
|
|
255
|
+
| SOCL-05 | Phase 15 | Pending |
|
|
256
|
+
| NOTF-01 | Phase 16 | Pending |
|
|
257
|
+
| NOTF-02 | Phase 16 | Pending |
|
|
258
|
+
|
|
259
|
+
**Coverage (v1.1):**
|
|
260
|
+
- Active requirements: 7 total
|
|
261
|
+
- Mapped to phases: 7
|
|
224
262
|
- Unmapped: 0 ✓
|
|
225
263
|
|
|
226
264
|
---
|
|
227
265
|
*Requirements defined: 2025-01-14*
|
|
228
|
-
*Last updated: 2025-
|
|
266
|
+
*Last updated: 2025-02-15 after v1.1 milestone research*
|
|
229
267
|
```
|
|
230
268
|
|
|
231
269
|
</example>
|