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.
- package/agents/up-depurador.md +357 -0
- package/agents/up-executor.md +409 -0
- package/agents/up-pesquisador-projeto.md +358 -0
- package/agents/up-planejador.md +390 -0
- package/agents/up-roteirista.md +401 -0
- package/agents/up-sintetizador.md +232 -0
- package/agents/up-verificador.md +357 -0
- package/bin/install.js +709 -0
- package/bin/lib/core.cjs +270 -0
- package/bin/up-tools.cjs +1361 -0
- package/commands/adicionar-fase.md +33 -0
- package/commands/ajuda.md +131 -0
- package/commands/discutir-fase.md +35 -0
- package/commands/executar-fase.md +40 -0
- package/commands/novo-projeto.md +39 -0
- package/commands/pausar.md +33 -0
- package/commands/planejar-fase.md +43 -0
- package/commands/progresso.md +33 -0
- package/commands/rapido.md +40 -0
- package/commands/remover-fase.md +34 -0
- package/commands/retomar.md +35 -0
- package/commands/verificar-trabalho.md +35 -0
- package/package.json +32 -0
- package/references/checkpoints.md +358 -0
- package/references/git-integration.md +208 -0
- package/references/questioning.md +156 -0
- package/references/ui-brand.md +124 -0
- package/templates/config.json +6 -0
- package/templates/continue-here.md +78 -0
- package/templates/project.md +184 -0
- package/templates/requirements.md +129 -0
- package/templates/roadmap.md +131 -0
- package/templates/state.md +130 -0
- package/templates/summary.md +174 -0
- package/workflows/discutir-fase.md +324 -0
- package/workflows/executar-fase.md +277 -0
- package/workflows/executar-plano.md +192 -0
- package/workflows/novo-projeto.md +561 -0
- package/workflows/pausar.md +111 -0
- package/workflows/planejar-fase.md +208 -0
- package/workflows/progresso.md +226 -0
- package/workflows/rapido.md +209 -0
- package/workflows/retomar.md +231 -0
- 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,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>
|