declare-cc 1.0.7 → 2.0.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/README.md +153 -187
- package/dist/client/assets/index-BVuhr02G.css +1 -0
- package/dist/client/assets/index-DujGXAYw.js +9 -0
- package/dist/client/index.html +23 -0
- package/dist/index.js +17459 -0
- package/package.json +38 -45
- package/src/agents/prompts/00-research.md +90 -0
- package/src/agents/prompts/01-vision.md +38 -0
- package/src/agents/prompts/02-declarations.md +47 -0
- package/src/agents/prompts/03-milestones.md +43 -0
- package/src/agents/prompts/04-actions.md +90 -0
- package/src/agents/prompts/05-execution.md +63 -0
- package/src/agents/prompts/06-verification.md +104 -0
- package/LICENSE +0 -21
- package/agents/declare-codebase-mapper.md +0 -761
- package/agents/declare-debugger.md +0 -1198
- package/agents/declare-executor.md +0 -353
- package/agents/declare-integration-checker.md +0 -440
- package/agents/declare-plan-checker.md +0 -608
- package/agents/declare-planner.md +0 -1015
- package/agents/declare-research-synthesizer.md +0 -309
- package/agents/declare-researcher.md +0 -484
- package/agents/declare-roadmapper.md +0 -639
- package/agents/declare-verifier.md +0 -555
- package/bin/declare.js +0 -16
- package/bin/install.js +0 -1907
- package/commands/declare/actions.md +0 -113
- package/commands/declare/add-todo.md +0 -41
- package/commands/declare/audit.md +0 -76
- package/commands/declare/check-todos.md +0 -125
- package/commands/declare/complete-milestone.md +0 -215
- package/commands/declare/dashboard.md +0 -65
- package/commands/declare/debug.md +0 -162
- package/commands/declare/discuss.md +0 -65
- package/commands/declare/execute.md +0 -521
- package/commands/declare/future.md +0 -72
- package/commands/declare/health.md +0 -92
- package/commands/declare/help.md +0 -31
- package/commands/declare/init.md +0 -39
- package/commands/declare/map-codebase.md +0 -149
- package/commands/declare/milestones.md +0 -98
- package/commands/declare/new-cycle.md +0 -172
- package/commands/declare/new-project.md +0 -565
- package/commands/declare/pause.md +0 -138
- package/commands/declare/plan.md +0 -320
- package/commands/declare/prioritize.md +0 -65
- package/commands/declare/progress.md +0 -116
- package/commands/declare/quick.md +0 -119
- package/commands/declare/reapply-patches.md +0 -178
- package/commands/declare/research.md +0 -267
- package/commands/declare/resume.md +0 -146
- package/commands/declare/set-profile.md +0 -66
- package/commands/declare/settings.md +0 -119
- package/commands/declare/status.md +0 -65
- package/commands/declare/trace.md +0 -81
- package/commands/declare/update.md +0 -251
- package/commands/declare/verify.md +0 -65
- package/commands/declare/visualize.md +0 -74
- package/dist/declare-tools.cjs +0 -9428
- package/dist/public/app.js +0 -9086
- package/dist/public/index.html +0 -4292
- package/hooks/declare-activity.js +0 -106
- package/hooks/declare-check-update.js +0 -62
- package/hooks/declare-server.js +0 -116
- package/hooks/declare-statusline.js +0 -91
- package/scripts/build-hooks.js +0 -42
- package/scripts/release.js +0 -50
- package/templates/future.md +0 -4
- package/templates/milestones.md +0 -11
- package/workflows/actions.md +0 -89
- package/workflows/discuss.md +0 -476
- package/workflows/future.md +0 -185
- package/workflows/milestones.md +0 -87
- package/workflows/scope.md +0 -94
- package/workflows/verify.md +0 -504
package/workflows/discuss.md
DELETED
|
@@ -1,476 +0,0 @@
|
|
|
1
|
-
<purpose>
|
|
2
|
-
Extract implementation decisions that downstream agents need. Analyze the milestone to identify gray areas, let the user choose what to discuss, then deep-dive each selected area until satisfied.
|
|
3
|
-
|
|
4
|
-
You are a thinking partner, not an interviewer. The user is the visionary — you are the builder. Your job is to capture decisions that will guide research and planning, not to figure out implementation yourself.
|
|
5
|
-
</purpose>
|
|
6
|
-
|
|
7
|
-
<downstream_awareness>
|
|
8
|
-
**CONTEXT.md feeds into:**
|
|
9
|
-
|
|
10
|
-
1. **declare-researcher** — Reads CONTEXT.md to know WHAT to research
|
|
11
|
-
- "User wants card-based layout" → researcher investigates card component patterns
|
|
12
|
-
- "Streaming output decided" → researcher looks into streaming API patterns
|
|
13
|
-
|
|
14
|
-
2. **declare-planner** — Reads CONTEXT.md to know WHAT decisions are locked
|
|
15
|
-
- "CLI output format is JSON" → planner includes that in task specs
|
|
16
|
-
- "Claude's Discretion: error handling style" → planner can decide approach
|
|
17
|
-
|
|
18
|
-
**Your job:** Capture decisions clearly enough that downstream agents can act on them without asking the user again.
|
|
19
|
-
|
|
20
|
-
**Not your job:** Figure out HOW to implement. That's what research and planning do with the decisions you capture.
|
|
21
|
-
</downstream_awareness>
|
|
22
|
-
|
|
23
|
-
<philosophy>
|
|
24
|
-
**User = founder/visionary. Claude = builder.**
|
|
25
|
-
|
|
26
|
-
The user knows:
|
|
27
|
-
- How they imagine it working
|
|
28
|
-
- What it should look/feel like
|
|
29
|
-
- What's essential vs nice-to-have
|
|
30
|
-
- Specific behaviors or references they have in mind
|
|
31
|
-
|
|
32
|
-
The user doesn't know (and shouldn't be asked):
|
|
33
|
-
- Codebase patterns (researcher reads the code)
|
|
34
|
-
- Technical risks (researcher identifies these)
|
|
35
|
-
- Implementation approach (planner figures this out)
|
|
36
|
-
- Success metrics (inferred from the work)
|
|
37
|
-
|
|
38
|
-
Ask about vision and implementation choices. Capture decisions for downstream agents.
|
|
39
|
-
</philosophy>
|
|
40
|
-
|
|
41
|
-
<scope_guardrail>
|
|
42
|
-
**CRITICAL: No scope creep.**
|
|
43
|
-
|
|
44
|
-
The milestone boundary comes from MILESTONES.md and is FIXED. Discussion clarifies HOW to implement what's scoped, never WHETHER to add new capabilities.
|
|
45
|
-
|
|
46
|
-
**Allowed (clarifying ambiguity):**
|
|
47
|
-
- "How should the discuss flow present gray areas?" (presentation, format, density)
|
|
48
|
-
- "What happens if a milestone already has context?" (behavior choice)
|
|
49
|
-
- "Interactive or auto mode?" (invocation pattern)
|
|
50
|
-
|
|
51
|
-
**Not allowed (scope creep):**
|
|
52
|
-
- "Should we also add a research step here?" (new capability)
|
|
53
|
-
- "What about integrating with the planner directly?" (new capability)
|
|
54
|
-
- "Maybe include visualization?" (new capability)
|
|
55
|
-
|
|
56
|
-
**The heuristic:** Does this clarify how we implement what's already in the milestone, or does it add a new capability that could be its own milestone?
|
|
57
|
-
|
|
58
|
-
**When user suggests scope creep:**
|
|
59
|
-
```
|
|
60
|
-
"[Feature X] would be a new capability — that's its own milestone.
|
|
61
|
-
Want me to note it for the backlog?
|
|
62
|
-
|
|
63
|
-
For now, let's focus on [milestone domain]."
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
Capture the idea in a "Deferred Ideas" section. Don't lose it, don't act on it.
|
|
67
|
-
</scope_guardrail>
|
|
68
|
-
|
|
69
|
-
<gray_area_identification>
|
|
70
|
-
Gray areas are **implementation decisions the user cares about** — things that could go multiple ways and would change the result.
|
|
71
|
-
|
|
72
|
-
**How to identify gray areas:**
|
|
73
|
-
|
|
74
|
-
1. **Read the milestone goal** from MILESTONES.md
|
|
75
|
-
2. **Understand the domain** — What kind of thing is being built?
|
|
76
|
-
- Something users SEE → visual presentation, interactions, states matter
|
|
77
|
-
- Something users CALL → interface contracts, responses, errors matter
|
|
78
|
-
- Something users RUN → invocation, output, behavior modes matter
|
|
79
|
-
- Something users READ → structure, tone, depth, flow matter
|
|
80
|
-
- Something being ORGANIZED → criteria, grouping, handling exceptions matter
|
|
81
|
-
3. **Generate milestone-specific gray areas** — Not generic categories, but concrete decisions for THIS milestone
|
|
82
|
-
|
|
83
|
-
**Don't use generic category labels** (UI, UX, Behavior). Generate specific gray areas:
|
|
84
|
-
|
|
85
|
-
```
|
|
86
|
-
Milestone: "Context capture per milestone"
|
|
87
|
-
→ Discussion flow, Gray area presentation, CONTEXT.md structure, Existing context handling
|
|
88
|
-
|
|
89
|
-
Milestone: "Milestone research pipeline"
|
|
90
|
-
→ Research depth, Source selection, Output format, Staleness policy
|
|
91
|
-
|
|
92
|
-
Milestone: "CLI for database backups"
|
|
93
|
-
→ Output format, Flag design, Progress reporting, Error recovery
|
|
94
|
-
|
|
95
|
-
Milestone: "API documentation"
|
|
96
|
-
→ Structure/navigation, Code examples depth, Versioning approach, Interactive elements
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
**The key question:** What decisions would change the outcome that the user should weigh in on?
|
|
100
|
-
|
|
101
|
-
**Claude handles these (don't ask):**
|
|
102
|
-
- Technical implementation details
|
|
103
|
-
- Architecture patterns
|
|
104
|
-
- Performance optimization
|
|
105
|
-
- Scope (MILESTONES.md defines this)
|
|
106
|
-
</gray_area_identification>
|
|
107
|
-
|
|
108
|
-
<process>
|
|
109
|
-
|
|
110
|
-
<step name="initialize" priority="first">
|
|
111
|
-
Milestone ID from argument (required).
|
|
112
|
-
|
|
113
|
-
```bash
|
|
114
|
-
node dist/declare-tools.cjs load-graph
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
Parse the JSON. Extract milestone data for the given ID.
|
|
118
|
-
|
|
119
|
-
**If graph has an `error` field:**
|
|
120
|
-
```
|
|
121
|
-
Project not initialized. Run /declare:init first.
|
|
122
|
-
```
|
|
123
|
-
Exit workflow.
|
|
124
|
-
|
|
125
|
-
**If milestone ID not found in graph:**
|
|
126
|
-
```
|
|
127
|
-
Milestone [M-XX] not found.
|
|
128
|
-
|
|
129
|
-
Use /declare:status to see available milestones.
|
|
130
|
-
```
|
|
131
|
-
Exit workflow.
|
|
132
|
-
|
|
133
|
-
**If milestone found:** Continue to check_existing.
|
|
134
|
-
</step>
|
|
135
|
-
|
|
136
|
-
<step name="check_existing">
|
|
137
|
-
Check if CONTEXT.md already exists in the milestone directory.
|
|
138
|
-
|
|
139
|
-
```bash
|
|
140
|
-
ls .planning/milestones/[M-XX]-[slug]/CONTEXT.md 2>/dev/null
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
**If exists:**
|
|
144
|
-
Use AskUserQuestion:
|
|
145
|
-
- header: "Context"
|
|
146
|
-
- question: "Milestone [M-XX] already has context. What do you want to do?"
|
|
147
|
-
- options:
|
|
148
|
-
- "Update it" — Review and revise existing context
|
|
149
|
-
- "View it" — Show me what's there
|
|
150
|
-
- "Skip" — Use existing context as-is
|
|
151
|
-
|
|
152
|
-
If "Update": Load existing, continue to analyze_milestone
|
|
153
|
-
If "View": Display CONTEXT.md, then offer update/skip
|
|
154
|
-
If "Skip": Exit workflow
|
|
155
|
-
|
|
156
|
-
**If doesn't exist:**
|
|
157
|
-
|
|
158
|
-
Check if action exec plans already exist for this milestone. **If plans exist:**
|
|
159
|
-
|
|
160
|
-
Use AskUserQuestion:
|
|
161
|
-
- header: "Plans exist"
|
|
162
|
-
- question: "Milestone [M-XX] already has action plans created without user context. Your decisions here won't affect existing plans unless you re-derive them."
|
|
163
|
-
- options:
|
|
164
|
-
- "Continue anyway" — Capture context, re-derive actions afterward if needed
|
|
165
|
-
- "View existing plans" — Show plans before deciding
|
|
166
|
-
- "Cancel" — Skip discuss
|
|
167
|
-
|
|
168
|
-
If "Continue anyway": Continue to analyze_milestone.
|
|
169
|
-
If "View existing plans": Display plan files, then offer "Continue" / "Cancel".
|
|
170
|
-
If "Cancel": Exit workflow.
|
|
171
|
-
|
|
172
|
-
**If no plans exist:** Continue to analyze_milestone.
|
|
173
|
-
</step>
|
|
174
|
-
|
|
175
|
-
<step name="analyze_milestone">
|
|
176
|
-
Analyze the milestone to identify gray areas worth discussing.
|
|
177
|
-
|
|
178
|
-
**Read the milestone description from MILESTONES.md and FUTURE.md to understand context, then determine:**
|
|
179
|
-
|
|
180
|
-
1. **Domain boundary** — What capability is this milestone delivering? State it clearly.
|
|
181
|
-
|
|
182
|
-
2. **Gray areas** — For each relevant dimension, identify 1-2 specific ambiguities that would change implementation.
|
|
183
|
-
|
|
184
|
-
3. **Skip assessment** — If no meaningful gray areas exist (pure infrastructure, clear-cut implementation), the milestone may not need discussion.
|
|
185
|
-
|
|
186
|
-
**Output your analysis internally, then present to user.**
|
|
187
|
-
|
|
188
|
-
Example analysis for "Context capture per milestone":
|
|
189
|
-
```
|
|
190
|
-
Domain: Interactive discussion flow that captures user decisions into CONTEXT.md
|
|
191
|
-
Gray areas:
|
|
192
|
-
- Discussion flow: How gray areas are identified and presented
|
|
193
|
-
- Existing context: What to do when CONTEXT.md already exists
|
|
194
|
-
- Output structure: How decisions are organized in CONTEXT.md
|
|
195
|
-
- Auto-advance: Whether to chain into planning automatically
|
|
196
|
-
```
|
|
197
|
-
</step>
|
|
198
|
-
|
|
199
|
-
<step name="present_gray_areas">
|
|
200
|
-
Present the domain boundary and gray areas to user.
|
|
201
|
-
|
|
202
|
-
**First, state the boundary:**
|
|
203
|
-
```
|
|
204
|
-
Milestone [M-XX]: [Name]
|
|
205
|
-
Domain: [What this milestone delivers — from your analysis]
|
|
206
|
-
|
|
207
|
-
We'll clarify HOW to implement this.
|
|
208
|
-
(New capabilities belong in other milestones.)
|
|
209
|
-
```
|
|
210
|
-
|
|
211
|
-
**Then use AskUserQuestion (multiSelect: true):**
|
|
212
|
-
- header: "Discuss"
|
|
213
|
-
- question: "Which areas do you want to discuss for [milestone name]?"
|
|
214
|
-
- options: Generate 3-4 milestone-specific gray areas, each formatted as:
|
|
215
|
-
- "[Specific area]" (label) — concrete, not generic
|
|
216
|
-
- [1-2 questions this covers] (description)
|
|
217
|
-
|
|
218
|
-
**Do NOT include a "skip" or "you decide" option.** User ran this command to discuss — give them real choices.
|
|
219
|
-
|
|
220
|
-
**Examples by domain:**
|
|
221
|
-
|
|
222
|
-
For "Context capture per milestone" (interactive flow):
|
|
223
|
-
```
|
|
224
|
-
Discussion flow — How many gray areas to present? In what order?
|
|
225
|
-
Existing context handling — Update, view, or skip if CONTEXT.md exists?
|
|
226
|
-
Output structure — How should decisions be organized in CONTEXT.md?
|
|
227
|
-
Auto-advance — Chain into planning after context is captured?
|
|
228
|
-
```
|
|
229
|
-
|
|
230
|
-
For "Milestone research pipeline" (background process):
|
|
231
|
-
```
|
|
232
|
-
Research depth — Shallow scan or deep investigation per topic?
|
|
233
|
-
Output format — Structured markdown, JSON, or free-form notes?
|
|
234
|
-
Staleness policy — When should research be refreshed?
|
|
235
|
-
Source selection — Code-only, web, or both?
|
|
236
|
-
```
|
|
237
|
-
|
|
238
|
-
For "CLI tooling" (command-line tool):
|
|
239
|
-
```
|
|
240
|
-
Output format — JSON, table, or plain text? Verbosity levels?
|
|
241
|
-
Flag design — Short flags, long flags, or both? Required vs optional?
|
|
242
|
-
Progress reporting — Silent, progress bar, or verbose logging?
|
|
243
|
-
Error recovery — Fail fast, retry, or prompt for action?
|
|
244
|
-
```
|
|
245
|
-
|
|
246
|
-
Continue to discuss_areas with selected areas.
|
|
247
|
-
</step>
|
|
248
|
-
|
|
249
|
-
<step name="discuss_areas">
|
|
250
|
-
For each selected area, conduct a focused discussion loop.
|
|
251
|
-
|
|
252
|
-
**Philosophy: 4 questions, then check.**
|
|
253
|
-
|
|
254
|
-
Ask 4 questions per area before offering to continue or move on. Each answer often reveals the next question.
|
|
255
|
-
|
|
256
|
-
**For each area:**
|
|
257
|
-
|
|
258
|
-
1. **Announce the area:**
|
|
259
|
-
```
|
|
260
|
-
Let's talk about [Area].
|
|
261
|
-
```
|
|
262
|
-
|
|
263
|
-
2. **Ask 4 questions using AskUserQuestion:**
|
|
264
|
-
- header: "[Area]" (max 12 chars — abbreviate if needed)
|
|
265
|
-
- question: Specific decision for this area
|
|
266
|
-
- options: 2-3 concrete choices (AskUserQuestion adds "Other" automatically)
|
|
267
|
-
- Include "You decide" as an option when reasonable — captures Claude discretion
|
|
268
|
-
|
|
269
|
-
3. **After 4 questions, check:**
|
|
270
|
-
- header: "[Area]" (max 12 chars)
|
|
271
|
-
- question: "More questions about [area], or move to next?"
|
|
272
|
-
- options: "More questions" / "Next area"
|
|
273
|
-
|
|
274
|
-
If "More questions" → ask 4 more, then check again
|
|
275
|
-
If "Next area" → proceed to next selected area
|
|
276
|
-
If "Other" (free text) → interpret intent: continuation phrases ("chat more", "keep going", "yes", "more") map to "More questions"; advancement phrases ("done", "move on", "next", "skip") map to "Next area". If ambiguous, ask: "Continue with more questions about [area], or move to the next area?"
|
|
277
|
-
|
|
278
|
-
4. **After all areas complete:**
|
|
279
|
-
- header: "Done"
|
|
280
|
-
- question: "That covers [list areas]. Ready to create context?"
|
|
281
|
-
- options: "Create context" / "Revisit an area"
|
|
282
|
-
|
|
283
|
-
**Question design:**
|
|
284
|
-
- Options should be concrete, not abstract ("Cards" not "Option A")
|
|
285
|
-
- Each answer should inform the next question
|
|
286
|
-
- If user picks "Other", receive their input, reflect it back, confirm
|
|
287
|
-
|
|
288
|
-
**Scope creep handling:**
|
|
289
|
-
If user mentions something outside the milestone domain:
|
|
290
|
-
```
|
|
291
|
-
"[Feature] sounds like a new capability — that belongs in its own milestone.
|
|
292
|
-
I'll note it as a deferred idea.
|
|
293
|
-
|
|
294
|
-
Back to [current area]: [return to current question]"
|
|
295
|
-
```
|
|
296
|
-
|
|
297
|
-
Track deferred ideas internally.
|
|
298
|
-
</step>
|
|
299
|
-
|
|
300
|
-
<step name="write_context">
|
|
301
|
-
Create CONTEXT.md capturing decisions made.
|
|
302
|
-
|
|
303
|
-
**Find or create milestone directory:**
|
|
304
|
-
|
|
305
|
-
Milestone directories live at: `.planning/milestones/[M-XX]-[slug]/`
|
|
306
|
-
|
|
307
|
-
If the directory doesn't exist:
|
|
308
|
-
```bash
|
|
309
|
-
mkdir -p ".planning/milestones/[M-XX]-[slug]"
|
|
310
|
-
```
|
|
311
|
-
|
|
312
|
-
**File location:** `.planning/milestones/[M-XX]-[slug]/CONTEXT.md`
|
|
313
|
-
|
|
314
|
-
**Structure the content by what was discussed:**
|
|
315
|
-
|
|
316
|
-
```markdown
|
|
317
|
-
# Milestone [M-XX]: [Name] - Context
|
|
318
|
-
|
|
319
|
-
**Gathered:** [date]
|
|
320
|
-
**Status:** Ready for planning
|
|
321
|
-
|
|
322
|
-
<domain>
|
|
323
|
-
## Milestone Boundary
|
|
324
|
-
|
|
325
|
-
[Clear statement of what this milestone delivers — the scope anchor]
|
|
326
|
-
|
|
327
|
-
</domain>
|
|
328
|
-
|
|
329
|
-
<decisions>
|
|
330
|
-
## Implementation Decisions
|
|
331
|
-
|
|
332
|
-
### [Category 1 that was discussed]
|
|
333
|
-
- [Decision or preference captured]
|
|
334
|
-
- [Another decision if applicable]
|
|
335
|
-
|
|
336
|
-
### [Category 2 that was discussed]
|
|
337
|
-
- [Decision or preference captured]
|
|
338
|
-
|
|
339
|
-
### Claude's Discretion
|
|
340
|
-
[Areas where user said "you decide" — note that Claude has flexibility here]
|
|
341
|
-
|
|
342
|
-
</decisions>
|
|
343
|
-
|
|
344
|
-
<specifics>
|
|
345
|
-
## Specific Ideas
|
|
346
|
-
|
|
347
|
-
[Any particular references, examples, or "I want it like X" moments from discussion]
|
|
348
|
-
|
|
349
|
-
[If none: "No specific requirements — open to standard approaches"]
|
|
350
|
-
|
|
351
|
-
</specifics>
|
|
352
|
-
|
|
353
|
-
<deferred>
|
|
354
|
-
## Deferred Ideas
|
|
355
|
-
|
|
356
|
-
[Ideas that came up but belong in other milestones. Don't lose them.]
|
|
357
|
-
|
|
358
|
-
[If none: "None — discussion stayed within milestone scope"]
|
|
359
|
-
|
|
360
|
-
</deferred>
|
|
361
|
-
|
|
362
|
-
---
|
|
363
|
-
|
|
364
|
-
*Milestone: [M-XX]-[slug]*
|
|
365
|
-
*Context gathered: [date]*
|
|
366
|
-
```
|
|
367
|
-
|
|
368
|
-
Write file.
|
|
369
|
-
</step>
|
|
370
|
-
|
|
371
|
-
<step name="confirm_creation">
|
|
372
|
-
Present summary and next steps:
|
|
373
|
-
|
|
374
|
-
```
|
|
375
|
-
Created: .planning/milestones/[M-XX]-[slug]/CONTEXT.md
|
|
376
|
-
|
|
377
|
-
## Decisions Captured
|
|
378
|
-
|
|
379
|
-
### [Category]
|
|
380
|
-
- [Key decision]
|
|
381
|
-
|
|
382
|
-
### [Category]
|
|
383
|
-
- [Key decision]
|
|
384
|
-
|
|
385
|
-
[If deferred ideas exist:]
|
|
386
|
-
## Noted for Later
|
|
387
|
-
- [Deferred idea] — future milestone
|
|
388
|
-
|
|
389
|
-
---
|
|
390
|
-
|
|
391
|
-
## Next Up
|
|
392
|
-
|
|
393
|
-
**Milestone [M-XX]: [Name]** — [Goal from MILESTONES.md]
|
|
394
|
-
|
|
395
|
-
`/declare:execute M-XX`
|
|
396
|
-
|
|
397
|
-
---
|
|
398
|
-
|
|
399
|
-
**Also available:**
|
|
400
|
-
- Review/edit CONTEXT.md before continuing
|
|
401
|
-
- `/declare:status` — see full milestone graph
|
|
402
|
-
|
|
403
|
-
---
|
|
404
|
-
```
|
|
405
|
-
</step>
|
|
406
|
-
|
|
407
|
-
<step name="git_commit">
|
|
408
|
-
Commit the milestone context:
|
|
409
|
-
|
|
410
|
-
```bash
|
|
411
|
-
node dist/declare-tools.cjs commit "docs(M-XX): capture milestone context" --files ".planning/milestones/[M-XX]-[slug]/CONTEXT.md"
|
|
412
|
-
```
|
|
413
|
-
|
|
414
|
-
Confirm: "Committed: docs(M-XX): capture milestone context"
|
|
415
|
-
</step>
|
|
416
|
-
|
|
417
|
-
<step name="auto_advance">
|
|
418
|
-
Check for auto-advance trigger:
|
|
419
|
-
|
|
420
|
-
1. Parse `--auto` flag from $ARGUMENTS
|
|
421
|
-
2. Read `workflow.auto_advance` from config:
|
|
422
|
-
```bash
|
|
423
|
-
node dist/declare-tools.cjs config-get workflow.auto_advance 2>/dev/null || echo "false"
|
|
424
|
-
```
|
|
425
|
-
|
|
426
|
-
**If `--auto` flag present AND config not already true:** Persist to config:
|
|
427
|
-
```bash
|
|
428
|
-
node dist/declare-tools.cjs config-set workflow.auto_advance true
|
|
429
|
-
```
|
|
430
|
-
|
|
431
|
-
**If `--auto` flag present OR config is true:**
|
|
432
|
-
|
|
433
|
-
Display banner:
|
|
434
|
-
```
|
|
435
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
436
|
-
DECLARE ► AUTO-ADVANCING TO PLANNING
|
|
437
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
438
|
-
|
|
439
|
-
Context captured. Proceeding to milestone execution...
|
|
440
|
-
```
|
|
441
|
-
|
|
442
|
-
Spawn execution as Task:
|
|
443
|
-
```
|
|
444
|
-
Task(
|
|
445
|
-
prompt="Run /declare:execute [M-XX] --auto",
|
|
446
|
-
subagent_type="general-purpose",
|
|
447
|
-
description="Execute Milestone [M-XX]"
|
|
448
|
-
)
|
|
449
|
-
```
|
|
450
|
-
|
|
451
|
-
**Handle execution return:**
|
|
452
|
-
- **COMPLETE** → Done
|
|
453
|
-
- **CHECKPOINT / needs input** → Display result, stop chain:
|
|
454
|
-
```
|
|
455
|
-
Auto-advance stopped: Execution needs input.
|
|
456
|
-
|
|
457
|
-
Review the output above and continue manually:
|
|
458
|
-
/declare:execute [M-XX]
|
|
459
|
-
```
|
|
460
|
-
|
|
461
|
-
**If neither `--auto` nor config enabled:**
|
|
462
|
-
Route to `confirm_creation` step (show manual next steps).
|
|
463
|
-
</step>
|
|
464
|
-
|
|
465
|
-
</process>
|
|
466
|
-
|
|
467
|
-
<success_criteria>
|
|
468
|
-
- Milestone validated against graph
|
|
469
|
-
- Gray areas identified through intelligent analysis (not generic questions)
|
|
470
|
-
- User selected which areas to discuss
|
|
471
|
-
- Each selected area explored until user satisfied
|
|
472
|
-
- Scope creep redirected to deferred ideas
|
|
473
|
-
- CONTEXT.md captures actual decisions, not vague vision
|
|
474
|
-
- Deferred ideas preserved for future milestones
|
|
475
|
-
- User knows next steps
|
|
476
|
-
</success_criteria>
|
package/workflows/future.md
DELETED
|
@@ -1,185 +0,0 @@
|
|
|
1
|
-
# Declaration Capture Workflow
|
|
2
|
-
|
|
3
|
-
You are guiding a user through declaring their project's future. This is a conversation, not a form. Adapt your language and questions to the user's domain and energy.
|
|
4
|
-
|
|
5
|
-
## Opening
|
|
6
|
-
|
|
7
|
-
If there are NO existing declarations, open with:
|
|
8
|
-
|
|
9
|
-
> Let's declare the future for this project.
|
|
10
|
-
>
|
|
11
|
-
> When this project fully succeeds, what's true? Not what you want to achieve -- what IS true, as if you're looking back from that future.
|
|
12
|
-
>
|
|
13
|
-
> I'll help you capture 3-5 declarations. Each one should be a present-tense statement of fact.
|
|
14
|
-
|
|
15
|
-
If there ARE existing declarations, show them and ask:
|
|
16
|
-
|
|
17
|
-
> Here are the futures you've already declared:
|
|
18
|
-
>
|
|
19
|
-
> [list existing declarations with IDs]
|
|
20
|
-
>
|
|
21
|
-
> Would you like to add to these, or start fresh?
|
|
22
|
-
|
|
23
|
-
If `--add` mode: skip the intro entirely. Jump to the per-declaration loop with a brief:
|
|
24
|
-
|
|
25
|
-
> Let's add another declaration. What's true in the future you're creating?
|
|
26
|
-
|
|
27
|
-
## Per-Declaration Loop
|
|
28
|
-
|
|
29
|
-
Capture 3-5 declarations (or fewer if the user is satisfied). For each:
|
|
30
|
-
|
|
31
|
-
### a. Ask a guided prompt
|
|
32
|
-
|
|
33
|
-
Vary the angle with each question. Do NOT repeat the same question. Draw from prompts like:
|
|
34
|
-
|
|
35
|
-
- "What's true about [their domain] when this project succeeds?"
|
|
36
|
-
- "If we fast-forward to the future where this is done, what do you see?"
|
|
37
|
-
- "What's the reality you're creating here?"
|
|
38
|
-
- "What's something that's TRUE in that future that isn't true today?"
|
|
39
|
-
- "When someone uses this and it's working perfectly, what's their experience?"
|
|
40
|
-
- "What does the world look like when this project has fully delivered?"
|
|
41
|
-
|
|
42
|
-
Adapt the phrasing to what you know about the project. Use their language, their domain.
|
|
43
|
-
|
|
44
|
-
### b. Receive and classify the user's statement
|
|
45
|
-
|
|
46
|
-
After the user provides a statement, classify it using the Language Detection Guide below.
|
|
47
|
-
|
|
48
|
-
### c. If past-derived or goal language: Socratic reframe
|
|
49
|
-
|
|
50
|
-
Follow the reframing protocol (max 2-3 attempts, then accept). See Language Detection Guide below.
|
|
51
|
-
|
|
52
|
-
### d. NSR validation
|
|
53
|
-
|
|
54
|
-
After the statement passes language detection, validate against NSR criteria. See NSR Validation below.
|
|
55
|
-
|
|
56
|
-
### e. Confirm and persist
|
|
57
|
-
|
|
58
|
-
If the declaration passes both checks:
|
|
59
|
-
- State the declaration back to the user for confirmation
|
|
60
|
-
- On confirmation, call add-declaration to persist it
|
|
61
|
-
- Respond: "Got it. [ID]: [declaration]. What's next?"
|
|
62
|
-
|
|
63
|
-
### f. Continue or close
|
|
64
|
-
|
|
65
|
-
After each declaration, gauge whether the user has more to declare. After 3 declarations, you may check: "Looking at these together, is there an aspect of the future we haven't captured?" (this also serves as the Sufficiency check).
|
|
66
|
-
|
|
67
|
-
---
|
|
68
|
-
|
|
69
|
-
## Language Detection Guide
|
|
70
|
-
|
|
71
|
-
You are the language detection engine. Use the patterns below to classify each statement.
|
|
72
|
-
|
|
73
|
-
### Declared Future (ACCEPT)
|
|
74
|
-
|
|
75
|
-
These are properly formed declarations. Accept them as-is.
|
|
76
|
-
|
|
77
|
-
- **Present tense, stated as fact:** "Our API handles 10K RPS with <50ms p99"
|
|
78
|
-
- **No causal reference to problems:** The statement stands on its own without referencing what was wrong before
|
|
79
|
-
- **No aspirational language:** Not "we will" or "we aim to" -- it IS
|
|
80
|
-
- **No requirement framing:** Not "the system needs to" or "it should" -- it DOES
|
|
81
|
-
|
|
82
|
-
### Past-Derived Language (REFRAME)
|
|
83
|
-
|
|
84
|
-
The energy comes from what's wrong, not what's possible. Reframe toward the declared future.
|
|
85
|
-
|
|
86
|
-
- **References a problem:** "I want X because Y is broken/slow/bad"
|
|
87
|
-
- **Reactive framing:** "We need to stop/fix/prevent X"
|
|
88
|
-
- **Complaint-rooted:** The motivation is escaping something, not creating something
|
|
89
|
-
- **Detection signals:** "because", "instead of", "unlike", "no more", "stop", "fix", "get rid of", "never again"
|
|
90
|
-
|
|
91
|
-
### Goal Language (REFRAME)
|
|
92
|
-
|
|
93
|
-
Sounds positive but is still operating from the present looking forward, not from the future looking back.
|
|
94
|
-
|
|
95
|
-
- **Future aspirational:** "I want to achieve X" / "Our goal is X"
|
|
96
|
-
- **Conditional:** "We should be able to X" / "We need to X"
|
|
97
|
-
- **Requirement framing:** "The system must X" / "Users should be able to"
|
|
98
|
-
- **Detection signals:** "want to", "goal", "aim", "achieve", "need to", "should", "will", "plan to", "hope to"
|
|
99
|
-
|
|
100
|
-
### Reframing Protocol
|
|
101
|
-
|
|
102
|
-
When you detect past-derived or goal language:
|
|
103
|
-
|
|
104
|
-
**First attempt -- gentle, with philosophy:**
|
|
105
|
-
> I hear what you're pointing at. Declarations work from the future, not against the past. What if we stated it as: "[reframe]"?
|
|
106
|
-
|
|
107
|
-
or for goal language:
|
|
108
|
-
> That's a great direction. Let's shift from aspiration to declaration -- as if it's already true. What about: "[reframe]"?
|
|
109
|
-
|
|
110
|
-
**Second attempt -- shorter, different angle:**
|
|
111
|
-
> Let me try another angle: "[different reframe]". Does that land?
|
|
112
|
-
|
|
113
|
-
**Third attempt -- accept with note:**
|
|
114
|
-
> I'll capture it as you've stated it. We can always refine later.
|
|
115
|
-
|
|
116
|
-
Accept the user's phrasing after 2-3 reframing attempts. Never refuse a declaration outright.
|
|
117
|
-
|
|
118
|
-
Show a before/after comparison ONLY when the change is significant enough to warrant it (e.g., a full sentence restructure, not a minor word swap).
|
|
119
|
-
|
|
120
|
-
---
|
|
121
|
-
|
|
122
|
-
## NSR Validation
|
|
123
|
-
|
|
124
|
-
After each declaration passes language detection, check these criteria:
|
|
125
|
-
|
|
126
|
-
### Necessary
|
|
127
|
-
|
|
128
|
-
Is this declaration needed? Would the future be incomplete without it?
|
|
129
|
-
|
|
130
|
-
- **FAIL condition:** Overlaps significantly with an existing declaration
|
|
131
|
-
- **Response:** "This seems to overlap with [other declaration]. Could we combine them, or is there a distinct aspect I'm missing?"
|
|
132
|
-
|
|
133
|
-
### Sufficient (checked across the set)
|
|
134
|
-
|
|
135
|
-
After 3 or more declarations have been captured, check coverage:
|
|
136
|
-
|
|
137
|
-
- "Looking at these together, is there an aspect of the future we haven't captured?"
|
|
138
|
-
- This is a collaborative check, not a gate. The user decides if they're done.
|
|
139
|
-
|
|
140
|
-
### Relevant
|
|
141
|
-
|
|
142
|
-
Is this about THIS project's future?
|
|
143
|
-
|
|
144
|
-
- **FAIL condition:** Too generic ("Our code is good") or wrong scope (about a different project or the company broadly)
|
|
145
|
-
- **Response:** "This feels broader than [project name]. Can we make it more specific to what this project delivers?"
|
|
146
|
-
|
|
147
|
-
---
|
|
148
|
-
|
|
149
|
-
## Independence Check
|
|
150
|
-
|
|
151
|
-
Declarations must stand alone. If a user's statement references another declaration (e.g., "Building on D-01..."), note it and suggest keeping them independent:
|
|
152
|
-
|
|
153
|
-
> Declarations work best when they stand on their own -- relationships between them will emerge naturally through shared milestones during derivation. Can we restate this one independently?
|
|
154
|
-
|
|
155
|
-
---
|
|
156
|
-
|
|
157
|
-
## Closing
|
|
158
|
-
|
|
159
|
-
After the user indicates they're satisfied (or 5 declarations are captured):
|
|
160
|
-
|
|
161
|
-
> Here's the future we've declared:
|
|
162
|
-
>
|
|
163
|
-
> 1. [D-01]: [statement]
|
|
164
|
-
> 2. [D-02]: [statement]
|
|
165
|
-
> ...
|
|
166
|
-
>
|
|
167
|
-
> Does this feel complete? Is there an aspect we haven't captured?
|
|
168
|
-
|
|
169
|
-
If complete:
|
|
170
|
-
> Your future is declared. Run `/declare:milestones` to work backward from these declarations to milestones and actions.
|
|
171
|
-
|
|
172
|
-
If the user wants more: continue the loop.
|
|
173
|
-
|
|
174
|
-
---
|
|
175
|
-
|
|
176
|
-
## Design Principles
|
|
177
|
-
|
|
178
|
-
Follow these throughout the conversation:
|
|
179
|
-
|
|
180
|
-
- **Feel like a dialogue, not a form.** Adapt question phrasing to the user's domain and style.
|
|
181
|
-
- **The reframe should feel like a gift** ("here's a more powerful way to say that"), not a correction.
|
|
182
|
-
- **Never refuse a declaration outright.** After 2-3 reframing attempts, accept.
|
|
183
|
-
- **Declarations must be independent.** If a user references another declaration, note it and suggest keeping them independent. Relationships emerge via shared milestones in derivation.
|
|
184
|
-
- **Gauge energy.** If the user is flowing, keep going. If they're struggling, help more actively.
|
|
185
|
-
- **Do not use emojis.** Keep the tone professional and grounded.
|