up-cc 0.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.
Files changed (44) hide show
  1. package/agents/up-depurador.md +357 -0
  2. package/agents/up-executor.md +409 -0
  3. package/agents/up-pesquisador-projeto.md +358 -0
  4. package/agents/up-planejador.md +390 -0
  5. package/agents/up-roteirista.md +401 -0
  6. package/agents/up-sintetizador.md +232 -0
  7. package/agents/up-verificador.md +357 -0
  8. package/bin/install.js +709 -0
  9. package/bin/lib/core.cjs +270 -0
  10. package/bin/up-tools.cjs +1361 -0
  11. package/commands/adicionar-fase.md +33 -0
  12. package/commands/ajuda.md +131 -0
  13. package/commands/discutir-fase.md +35 -0
  14. package/commands/executar-fase.md +40 -0
  15. package/commands/novo-projeto.md +39 -0
  16. package/commands/pausar.md +33 -0
  17. package/commands/planejar-fase.md +43 -0
  18. package/commands/progresso.md +33 -0
  19. package/commands/rapido.md +40 -0
  20. package/commands/remover-fase.md +34 -0
  21. package/commands/retomar.md +35 -0
  22. package/commands/verificar-trabalho.md +35 -0
  23. package/package.json +32 -0
  24. package/references/checkpoints.md +358 -0
  25. package/references/git-integration.md +208 -0
  26. package/references/questioning.md +156 -0
  27. package/references/ui-brand.md +124 -0
  28. package/templates/config.json +6 -0
  29. package/templates/continue-here.md +78 -0
  30. package/templates/project.md +184 -0
  31. package/templates/requirements.md +129 -0
  32. package/templates/roadmap.md +131 -0
  33. package/templates/state.md +130 -0
  34. package/templates/summary.md +174 -0
  35. package/workflows/discutir-fase.md +324 -0
  36. package/workflows/executar-fase.md +277 -0
  37. package/workflows/executar-plano.md +192 -0
  38. package/workflows/novo-projeto.md +561 -0
  39. package/workflows/pausar.md +111 -0
  40. package/workflows/planejar-fase.md +208 -0
  41. package/workflows/progresso.md +226 -0
  42. package/workflows/rapido.md +209 -0
  43. package/workflows/retomar.md +231 -0
  44. package/workflows/verificar-trabalho.md +261 -0
@@ -0,0 +1,156 @@
1
+ <questioning_guide>
2
+
3
+ Project initialization is dream extraction, not requirements gathering. You're helping the user discover and articulate what they want to build. This isn't a contract negotiation - it's collaborative thinking.
4
+
5
+ <philosophy>
6
+
7
+ **You are a thinking partner, not an interviewer.**
8
+
9
+ The user often has a fuzzy idea. Your job is to help them sharpen it. Ask questions that make them think "oh, I hadn't considered that" or "yes, that's exactly what I mean."
10
+
11
+ Don't interrogate. Collaborate. Don't follow a script. Follow the thread.
12
+
13
+ </philosophy>
14
+
15
+ <the_goal>
16
+
17
+ By the end of questioning, you need enough clarity to write a PROJECT.md that downstream phases can act on:
18
+
19
+ - **Research** needs: what domain to research, what the user already knows, what unknowns exist
20
+ - **Requirements** needs: clear enough vision to scope v1 features
21
+ - **Roadmap** needs: clear enough vision to decompose into phases, what "done" looks like
22
+ - **plan-phase** needs: specific requirements to break into tasks, context for implementation choices
23
+ - **execute-phase** needs: success criteria to verify against, the "why" behind requirements
24
+
25
+ A vague PROJECT.md forces every downstream phase to guess. The cost compounds.
26
+
27
+ </the_goal>
28
+
29
+ <how_to_question>
30
+
31
+ **Start open.** Let them dump their mental model. Don't interrupt with structure.
32
+
33
+ **Follow energy.** Whatever they emphasized, dig into that. What excited them? What problem sparked this?
34
+
35
+ **Challenge vagueness.** Never accept fuzzy answers. "Good" means what? "Users" means who? "Simple" means how?
36
+
37
+ **Make the abstract concrete.** "Walk me through using this." "What does that actually look like?"
38
+
39
+ **Surface assumptions.** "You're assuming X - is that right?" "What if that's not true?"
40
+
41
+ **Find edges.** "What's NOT part of this?" "Where does this end?"
42
+
43
+ **Reveal motivation.** "What prompted this?" "What are you doing today that this replaces?"
44
+
45
+ **Know when to stop.** When you understand what they want, why they want it, who it's for, and what done looks like - offer to proceed.
46
+
47
+ </how_to_question>
48
+
49
+ <question_types>
50
+
51
+ Use these as inspiration, not a checklist. Pick what's relevant to the thread.
52
+
53
+ **Motivation - why this exists:**
54
+ - "What prompted this?"
55
+ - "What are you doing today that this replaces?"
56
+ - "What would you do if this existed?"
57
+
58
+ **Concreteness - what it actually is:**
59
+ - "Walk me through using this"
60
+ - "You said X - what does that actually look like?"
61
+ - "Give me an example"
62
+
63
+ **Clarification - what they mean:**
64
+ - "When you say Z, do you mean A or B?"
65
+ - "You mentioned X - tell me more about that"
66
+
67
+ **Success - how you'll know it's working:**
68
+ - "How will you know this is working?"
69
+ - "What does done look like?"
70
+
71
+ </question_types>
72
+
73
+ <using_askuserquestion>
74
+
75
+ Use AskUserQuestion to help users think by presenting concrete options to react to.
76
+
77
+ **Good options:**
78
+ - Interpretations of what they might mean
79
+ - Specific examples to confirm or deny
80
+ - Concrete choices that reveal priorities
81
+
82
+ **Bad options:**
83
+ - Generic categories ("Technical", "Business", "Other")
84
+ - Leading options that presume an answer
85
+ - Too many options (2-4 is ideal)
86
+ - Headers longer than 12 characters (hard limit)
87
+
88
+ **Example - vague answer:**
89
+ User says "it should be fast"
90
+
91
+ - header: "Fast"
92
+ - question: "Fast how?"
93
+ - options: ["Sub-second response", "Handles large datasets", "Quick to build", "Let me explain"]
94
+
95
+ **Example - following a thread:**
96
+ User mentions "frustrated with current tools"
97
+
98
+ - header: "Frustration"
99
+ - question: "What specifically frustrates you?"
100
+ - options: ["Too many clicks", "Missing features", "Unreliable", "Let me explain"]
101
+
102
+ </using_askuserquestion>
103
+
104
+ <freeform_rule>
105
+
106
+ **When the user wants to explain freely, STOP using AskUserQuestion.**
107
+
108
+ If a user selects "Other" and their response signals they want to describe something in their own words, you MUST:
109
+
110
+ 1. **Ask your follow-up as plain text** - NOT via AskUserQuestion
111
+ 2. **Wait for them to type at the normal prompt**
112
+ 3. **Resume AskUserQuestion** only after processing their freeform response
113
+
114
+ </freeform_rule>
115
+
116
+ <context_checklist>
117
+
118
+ Use this as a **background checklist**, not a conversation structure. Check these mentally as you go. If gaps remain, weave questions naturally.
119
+
120
+ - [ ] What they're building (concrete enough to explain to a stranger)
121
+ - [ ] Why it needs to exist (the problem or desire driving it)
122
+ - [ ] Who it's for (even if just themselves)
123
+ - [ ] What "done" looks like (observable outcomes)
124
+
125
+ Four things. If they volunteer more, capture it.
126
+
127
+ </context_checklist>
128
+
129
+ <decision_gate>
130
+
131
+ When you could write a clear PROJECT.md, offer to proceed:
132
+
133
+ - header: "Ready?"
134
+ - question: "I think I understand what you're after. Ready to create PROJECT.md?"
135
+ - options:
136
+ - "Create PROJECT.md" - Let's move forward
137
+ - "Keep exploring" - I want to share more / ask me more
138
+
139
+ If "Keep exploring" - ask what they want to add or identify gaps and probe naturally.
140
+
141
+ </decision_gate>
142
+
143
+ <anti_patterns>
144
+
145
+ - **Checklist walking** - Going through domains regardless of what they said
146
+ - **Canned questions** - "What's your core value?" regardless of context
147
+ - **Corporate speak** - "What are your success criteria?" "Who are your stakeholders?"
148
+ - **Interrogation** - Firing questions without building on answers
149
+ - **Rushing** - Minimizing questions to get to "the work"
150
+ - **Shallow acceptance** - Taking vague answers without probing
151
+ - **Premature constraints** - Asking about tech stack before understanding the idea
152
+ - **User skills** - NEVER ask about user's technical experience. Claude builds.
153
+
154
+ </anti_patterns>
155
+
156
+ </questioning_guide>
@@ -0,0 +1,124 @@
1
+ <ui_patterns>
2
+
3
+ Visual patterns for user-facing UP output. Orchestrators @-reference this file.
4
+
5
+ ## Stage Banners
6
+
7
+ Use for major workflow transitions.
8
+
9
+ ```
10
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
11
+ UP > {ACAO}
12
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
13
+ ```
14
+
15
+ **Action names (uppercase, Portuguese):**
16
+ - `QUESTIONANDO`
17
+ - `PESQUISANDO`
18
+ - `PLANEJANDO FASE {N}`
19
+ - `EXECUTANDO`
20
+ - `VERIFICANDO`
21
+ - `PROGRESSO`
22
+ - `PAUSANDO`
23
+ - `RETOMANDO`
24
+ - `TAREFA RAPIDA`
25
+ - `FASE {N} COMPLETA`
26
+
27
+ ---
28
+
29
+ ## Completion Banner
30
+
31
+ ```
32
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
33
+ UP > FASE {N} COMPLETA
34
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
35
+ ```
36
+
37
+ ---
38
+
39
+ ## Checkpoint Boxes
40
+
41
+ User action required. 62-character width.
42
+
43
+ ```
44
+ ╔══════════════════════════════════════════════════════════════╗
45
+ ║ CHECKPOINT: {Type} ║
46
+ ╚══════════════════════════════════════════════════════════════╝
47
+
48
+ {Content}
49
+
50
+ ──────────────────────────────────────────────────────────────
51
+ -> {ACTION PROMPT}
52
+ ──────────────────────────────────────────────────────────────
53
+ ```
54
+
55
+ **Types:**
56
+ - `CHECKPOINT: Verification Required` -> `-> Type "approved" or describe issues`
57
+ - `CHECKPOINT: Decision Required` -> `-> Select: option-a / option-b`
58
+ - `CHECKPOINT: Action Required` -> `-> Type "done" when complete`
59
+
60
+ ---
61
+
62
+ ## Status Symbols
63
+
64
+ ```
65
+ ✓ Complete / Passed / Verified
66
+ ✗ Failed / Missing / Blocked
67
+ ◆ In Progress
68
+ ○ Pending
69
+ ⚡ Auto-approved
70
+ ⚠ Warning
71
+ ```
72
+
73
+ ---
74
+
75
+ ## Progress Display
76
+
77
+ **Phase level:**
78
+ ```
79
+ Progress: ████████░░ 80%
80
+ ```
81
+
82
+ **Task level:**
83
+ ```
84
+ Tasks: 2/4 complete
85
+ ```
86
+
87
+ ---
88
+
89
+ ## Error Box
90
+
91
+ ```
92
+ ╔══════════════════════════════════════════════════════════════╗
93
+ ║ ERROR ║
94
+ ╚══════════════════════════════════════════════════════════════╝
95
+
96
+ {Error description}
97
+
98
+ **To fix:** {Resolution steps}
99
+ ```
100
+
101
+ ---
102
+
103
+ ## Tables
104
+
105
+ ```
106
+ | Phase | Status | Tasks | Progress |
107
+ |-------|--------|-------|----------|
108
+ | 1 | ✓ | 3/3 | 100% |
109
+ | 2 | ◆ | 1/4 | 25% |
110
+ | 3 | ○ | 0/2 | 0% |
111
+ ```
112
+
113
+ ---
114
+
115
+ ## Anti-Patterns
116
+
117
+ - Varying box/banner widths
118
+ - Mixing banner styles (`===`, `---`, `***`)
119
+ - Skipping `UP >` prefix in banners
120
+ - Using `GSD` instead of `UP` in banners
121
+ - Random emoji usage
122
+ - Using `►` instead of `>` in banners
123
+
124
+ </ui_patterns>
@@ -0,0 +1,6 @@
1
+ {
2
+ "modo": "solo",
3
+ "paralelizacao": true,
4
+ "commit_docs": true,
5
+ "auto_advance": false
6
+ }
@@ -0,0 +1,78 @@
1
+ # Continue-Here Template
2
+
3
+ Copy and fill this structure for `.plano/fases/XX-name/.continue-aqui.md`:
4
+
5
+ ```yaml
6
+ ---
7
+ phase: XX-name
8
+ task: 3
9
+ total_tasks: 7
10
+ status: in_progress
11
+ last_updated: 2025-01-15T14:30:00Z
12
+ ---
13
+ ```
14
+
15
+ ```markdown
16
+ <estado_atual>
17
+ [Where exactly are we? What's the immediate context?]
18
+ </estado_atual>
19
+
20
+ <trabalho_concluido>
21
+ [What got done this session - be specific]
22
+
23
+ - Task 1: [name] - Done
24
+ - Task 2: [name] - Done
25
+ - Task 3: [name] - In progress, [what's done on it]
26
+ </trabalho_concluido>
27
+
28
+ <trabalho_restante>
29
+ [What's left in this phase]
30
+
31
+ - Task 3: [name] - [what's left to do]
32
+ - Task 4: [name] - Not started
33
+ - Task 5: [name] - Not started
34
+ </trabalho_restante>
35
+
36
+ <decisoes_tomadas>
37
+ [Key decisions and why - so next session doesn't re-debate]
38
+
39
+ - Decided to use [X] because [reason]
40
+ - Chose [approach] over [alternative] because [reason]
41
+ </decisoes_tomadas>
42
+
43
+ <bloqueios>
44
+ [Anything stuck or waiting on external factors]
45
+
46
+ - [Blocker 1]: [status/workaround]
47
+ </bloqueios>
48
+
49
+ <contexto>
50
+ [Mental state, "vibe", anything that helps resume smoothly]
51
+
52
+ [What were you thinking about? What was the plan?
53
+ This is the "pick up exactly where you left off" context.]
54
+ </contexto>
55
+
56
+ <proxima_acao>
57
+ [The very first thing to do when resuming]
58
+
59
+ Start with: [specific action]
60
+ </proxima_acao>
61
+ ```
62
+
63
+ <yaml_fields>
64
+ Required YAML frontmatter:
65
+
66
+ - `phase`: Directory name (e.g., `02-authentication`)
67
+ - `task`: Current task number
68
+ - `total_tasks`: How many tasks in phase
69
+ - `status`: `in_progress`, `blocked`, `almost_done`
70
+ - `last_updated`: ISO timestamp
71
+ </yaml_fields>
72
+
73
+ <guidelines>
74
+ - Be specific enough that a fresh Claude instance understands immediately
75
+ - Include WHY decisions were made, not just what
76
+ - The `<proxima_acao>` should be actionable without reading anything else
77
+ - This file gets DELETED after resume - it's not permanent storage
78
+ </guidelines>
@@ -0,0 +1,184 @@
1
+ # PROJECT.md Template
2
+
3
+ Template for `.plano/PROJECT.md` -- the living project context document.
4
+
5
+ <template>
6
+
7
+ ```markdown
8
+ # [Project Name]
9
+
10
+ ## What This Is
11
+
12
+ [Current accurate description -- 2-3 sentences. What does this product do and who is it for?
13
+ Use the user's language and framing. Update whenever reality drifts from this description.]
14
+
15
+ ## Core Value
16
+
17
+ [The ONE thing that matters most. If everything else fails, this must work.
18
+ One sentence that drives prioritization when tradeoffs arise.]
19
+
20
+ ## Requirements
21
+
22
+ ### Validated
23
+
24
+ <!-- Shipped and confirmed valuable. -->
25
+
26
+ (None yet -- ship to validate)
27
+
28
+ ### Active
29
+
30
+ <!-- Current scope. Building toward these. -->
31
+
32
+ - [ ] [Requirement 1]
33
+ - [ ] [Requirement 2]
34
+ - [ ] [Requirement 3]
35
+
36
+ ### Out of Scope
37
+
38
+ <!-- Explicit boundaries. Includes reasoning to prevent re-adding. -->
39
+
40
+ - [Exclusion 1] -- [why]
41
+ - [Exclusion 2] -- [why]
42
+
43
+ ## Context
44
+
45
+ [Background information that informs implementation:
46
+ - Technical environment or ecosystem
47
+ - Relevant prior work or experience
48
+ - User research or feedback themes
49
+ - Known issues to address]
50
+
51
+ ## Constraints
52
+
53
+ - **[Type]**: [What] -- [Why]
54
+ - **[Type]**: [What] -- [Why]
55
+
56
+ Common types: Tech stack, Timeline, Budget, Dependencies, Compatibility, Performance, Security
57
+
58
+ ## Key Decisions
59
+
60
+ <!-- Decisions that constrain future work. Add throughout project lifecycle. -->
61
+
62
+ | Decision | Rationale | Outcome |
63
+ |----------|-----------|---------|
64
+ | [Choice] | [Why] | [Good / Revisit / Pending] |
65
+
66
+ ---
67
+ *Last updated: [date] after [trigger]*
68
+ ```
69
+
70
+ </template>
71
+
72
+ <guidelines>
73
+
74
+ **What This Is:**
75
+ - Current accurate description of the product
76
+ - 2-3 sentences capturing what it does and who it's for
77
+ - Use the user's words and framing
78
+ - Update when the product evolves beyond this description
79
+
80
+ **Core Value:**
81
+ - The single most important thing
82
+ - Everything else can fail; this cannot
83
+ - Drives prioritization when tradeoffs arise
84
+ - Rarely changes; if it does, it's a significant pivot
85
+
86
+ **Requirements -- Validated:**
87
+ - Requirements that shipped and proved valuable
88
+ - Format: `- [x] [Requirement] -- [version/phase]`
89
+ - These are locked -- changing them requires explicit discussion
90
+
91
+ **Requirements -- Active:**
92
+ - Current scope being built toward
93
+ - These are hypotheses until shipped and validated
94
+ - Move to Validated when shipped, Out of Scope if invalidated
95
+
96
+ **Requirements -- Out of Scope:**
97
+ - Explicit boundaries on what we're not building
98
+ - Always include reasoning (prevents re-adding later)
99
+ - Includes: considered and rejected, deferred to future, explicitly excluded
100
+
101
+ **Context:**
102
+ - Background that informs implementation decisions
103
+ - Technical environment, prior work, user feedback
104
+ - Known issues or technical debt to address
105
+ - Update as new context emerges
106
+
107
+ **Constraints:**
108
+ - Hard limits on implementation choices
109
+ - Tech stack, timeline, budget, compatibility, dependencies
110
+ - Include the "why" -- constraints without rationale get questioned
111
+
112
+ **Key Decisions:**
113
+ - Significant choices that affect future work
114
+ - Add decisions as they're made throughout the project
115
+ - Track outcome when known:
116
+ - Good -- decision proved correct
117
+ - Revisit -- decision may need reconsideration
118
+ - Pending -- too early to evaluate
119
+
120
+ **Last Updated:**
121
+ - Always note when and why the document was updated
122
+ - Format: `after Phase 2` or `after v1.0`
123
+ - Triggers review of whether content is still accurate
124
+
125
+ </guidelines>
126
+
127
+ <evolution>
128
+
129
+ PROJECT.md evolves throughout the project lifecycle.
130
+
131
+ **After each phase transition:**
132
+ 1. Requirements invalidated? Move to Out of Scope with reason
133
+ 2. Requirements validated? Move to Validated with phase reference
134
+ 3. New requirements emerged? Add to Active
135
+ 4. Decisions to log? Add to Key Decisions
136
+ 5. "What This Is" still accurate? Update if drifted
137
+
138
+ **After significant milestones:**
139
+ 1. Full review of all sections
140
+ 2. Core Value check -- still the right priority?
141
+ 3. Audit Out of Scope -- reasons still valid?
142
+ 4. Update Context with current state
143
+
144
+ </evolution>
145
+
146
+ <brownfield>
147
+
148
+ For existing codebases:
149
+
150
+ 1. **Map codebase first** via `/up:mapear`
151
+
152
+ 2. **Infer Validated requirements** from existing code:
153
+ - What does the codebase actually do?
154
+ - What patterns are established?
155
+ - What's clearly working and relied upon?
156
+
157
+ 3. **Gather Active requirements** from user:
158
+ - Present inferred current state
159
+ - Ask what they want to build next
160
+
161
+ 4. **Initialize:**
162
+ - Validated = inferred from existing code
163
+ - Active = user's goals for this work
164
+ - Out of Scope = boundaries user specifies
165
+ - Context = includes current codebase state
166
+
167
+ </brownfield>
168
+
169
+ <state_reference>
170
+
171
+ STATE.md references PROJECT.md:
172
+
173
+ ```markdown
174
+ ## Referencia do Projeto
175
+
176
+ Ver: .plano/PROJECT.md (atualizado [data])
177
+
178
+ **Valor central:** [One-liner from Core Value section]
179
+ **Foco atual:** [Current phase name]
180
+ ```
181
+
182
+ This ensures Claude reads current PROJECT.md context.
183
+
184
+ </state_reference>
@@ -0,0 +1,129 @@
1
+ # Requirements Template
2
+
3
+ Template for `.plano/REQUIREMENTS.md` -- checkable requirements that define "done."
4
+
5
+ <template>
6
+
7
+ ```markdown
8
+ # Requirements: [Project Name]
9
+
10
+ **Defined:** [date]
11
+ **Core Value:** [from PROJECT.md]
12
+
13
+ ## v1 Requirements
14
+
15
+ Requirements for initial release. Each maps to roadmap phases.
16
+
17
+ ### Authentication
18
+
19
+ - [ ] **AUTH-01**: User can sign up with email and password
20
+ - [ ] **AUTH-02**: User receives email verification after signup
21
+ - [ ] **AUTH-03**: User can reset password via email link
22
+ - [ ] **AUTH-04**: User session persists across browser refresh
23
+
24
+ ### [Category 2]
25
+
26
+ - [ ] **[CAT]-01**: [Requirement description]
27
+ - [ ] **[CAT]-02**: [Requirement description]
28
+ - [ ] **[CAT]-03**: [Requirement description]
29
+
30
+ ### [Category 3]
31
+
32
+ - [ ] **[CAT]-01**: [Requirement description]
33
+ - [ ] **[CAT]-02**: [Requirement description]
34
+
35
+ ## v2 Requirements
36
+
37
+ Deferred to future release. Tracked but not in current roadmap.
38
+
39
+ ### [Category]
40
+
41
+ - **[CAT]-01**: [Requirement description]
42
+ - **[CAT]-02**: [Requirement description]
43
+
44
+ ## Out of Scope
45
+
46
+ Explicitly excluded. Documented to prevent scope creep.
47
+
48
+ | Feature | Reason |
49
+ |---------|--------|
50
+ | [Feature] | [Why excluded] |
51
+ | [Feature] | [Why excluded] |
52
+
53
+ ## Traceability
54
+
55
+ Which phases cover which requirements. Updated during roadmap creation.
56
+
57
+ | Requirement | Phase | Status |
58
+ |-------------|-------|--------|
59
+ | AUTH-01 | Phase 1 | Pending |
60
+ | AUTH-02 | Phase 1 | Pending |
61
+ | AUTH-03 | Phase 1 | Pending |
62
+ | AUTH-04 | Phase 1 | Pending |
63
+ | [REQ-ID] | Phase [N] | Pending |
64
+
65
+ **Coverage:**
66
+ - v1 requirements: [X] total
67
+ - Mapped to phases: [Y]
68
+ - Unmapped: [Z]
69
+
70
+ ---
71
+ *Requirements defined: [date]*
72
+ *Last updated: [date] after [trigger]*
73
+ ```
74
+
75
+ </template>
76
+
77
+ <guidelines>
78
+
79
+ **Requirement Format:**
80
+ - ID: `[CATEGORY]-[NUMBER]` (AUTH-01, CONTENT-02, SOCIAL-03)
81
+ - Description: User-centric, testable, atomic
82
+ - Checkbox: Only for v1 requirements (v2 are not yet actionable)
83
+
84
+ **Categories:**
85
+ - Derive from project domain
86
+ - Keep consistent with domain conventions
87
+ - Typical: Authentication, Content, Social, Notifications, Moderation, Payments, Admin
88
+
89
+ **v1 vs v2:**
90
+ - v1: Committed scope, will be in roadmap phases
91
+ - v2: Acknowledged but deferred, not in current roadmap
92
+ - Moving v2 to v1 requires roadmap update
93
+
94
+ **Out of Scope:**
95
+ - Explicit exclusions with reasoning
96
+ - Prevents "why didn't you include X?" later
97
+
98
+ **Traceability:**
99
+ - Empty initially, populated during roadmap creation
100
+ - Each requirement maps to exactly one phase
101
+ - Unmapped requirements = roadmap gap
102
+
103
+ **Status Values:**
104
+ - Pending: Not started
105
+ - In Progress: Phase is active
106
+ - Complete: Requirement verified
107
+ - Blocked: Waiting on external factor
108
+
109
+ </guidelines>
110
+
111
+ <evolution>
112
+
113
+ **After each phase completes:**
114
+ 1. Mark covered requirements as Complete
115
+ 2. Update traceability status
116
+ 3. Note any requirements that changed scope
117
+
118
+ **After roadmap updates:**
119
+ 1. Verify all v1 requirements still mapped
120
+ 2. Add new requirements if scope expanded
121
+ 3. Move requirements to v2/out of scope if descoped
122
+
123
+ **Requirement completion criteria:**
124
+ - Requirement is "Complete" when:
125
+ - Feature is implemented
126
+ - Feature is verified (tests pass, manual check done)
127
+ - Feature is committed
128
+
129
+ </evolution>