renn-studio 0.6.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 (112) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +36 -0
  3. package/agents/renn-architect.md +1463 -0
  4. package/agents/renn-auditor.md +1053 -0
  5. package/agents/renn-codebase-mapper.md +908 -0
  6. package/agents/renn-design-reviewer.md +422 -0
  7. package/agents/renn-designer.md +814 -0
  8. package/agents/renn-detective.md +1204 -0
  9. package/agents/renn-integration-checker.md +957 -0
  10. package/agents/renn-navigator.md +659 -0
  11. package/agents/renn-plan-reviewer.md +812 -0
  12. package/agents/renn-project-scout.md +880 -0
  13. package/agents/renn-runner.md +842 -0
  14. package/agents/renn-stage-scout.md +705 -0
  15. package/agents/renn-synthesizer.md +256 -0
  16. package/bin/install.js +1466 -0
  17. package/commands/renn.add-stage.md +211 -0
  18. package/commands/renn.add-todo.md +194 -0
  19. package/commands/renn.audit-milestone.md +280 -0
  20. package/commands/renn.audit.md +219 -0
  21. package/commands/renn.check-todos.md +229 -0
  22. package/commands/renn.complete-milestone.md +136 -0
  23. package/commands/renn.continue.md +46 -0
  24. package/commands/renn.dash.md +308 -0
  25. package/commands/renn.debug.md +169 -0
  26. package/commands/renn.design-screens.md +107 -0
  27. package/commands/renn.design-system.md +100 -0
  28. package/commands/renn.discuss-stage.md +86 -0
  29. package/commands/renn.help.md +550 -0
  30. package/commands/renn.insert-stage.md +231 -0
  31. package/commands/renn.list-stage-assumptions.md +49 -0
  32. package/commands/renn.map-codebase.md +72 -0
  33. package/commands/renn.new-milestone.md +80 -0
  34. package/commands/renn.pause.md +132 -0
  35. package/commands/renn.plan-milestone-gaps.md +314 -0
  36. package/commands/renn.plan-stage.md +118 -0
  37. package/commands/renn.remove-stage.md +353 -0
  38. package/commands/renn.research-stage.md +200 -0
  39. package/commands/renn.restyle.md +98 -0
  40. package/commands/renn.run-stage.md +343 -0
  41. package/commands/renn.set-profile.md +116 -0
  42. package/commands/renn.settings.md +151 -0
  43. package/commands/renn.ship.md +52 -0
  44. package/commands/renn.start.md +95 -0
  45. package/commands/renn.status.md +530 -0
  46. package/commands/renn.watch.md +51 -0
  47. package/hooks/dist/renn-check-update.js +67 -0
  48. package/hooks/dist/renn-statusline.js +96 -0
  49. package/package.json +89 -0
  50. package/renn/references/continuation-format.md +249 -0
  51. package/renn/references/design-artifacts.md +674 -0
  52. package/renn/references/design-tokens.md +162 -0
  53. package/renn/references/gates.md +1078 -0
  54. package/renn/references/git-integration.md +254 -0
  55. package/renn/references/horsepower-profiles.md +84 -0
  56. package/renn/references/planning-config.md +189 -0
  57. package/renn/references/questioning.md +141 -0
  58. package/renn/references/security-checklist.md +2184 -0
  59. package/renn/references/tdd.md +263 -0
  60. package/renn/references/ui-brand.md +189 -0
  61. package/renn/references/verification-patterns.md +612 -0
  62. package/renn/templates/DEBUG.md +159 -0
  63. package/renn/templates/INTEL.md +283 -0
  64. package/renn/templates/RECAP.md +246 -0
  65. package/renn/templates/UAT.md +247 -0
  66. package/renn/templates/architect-prompt.md +119 -0
  67. package/renn/templates/brief.md +190 -0
  68. package/renn/templates/codebase/architecture.md +264 -0
  69. package/renn/templates/codebase/concerns.md +310 -0
  70. package/renn/templates/codebase/conventions.md +307 -0
  71. package/renn/templates/codebase/design.md +336 -0
  72. package/renn/templates/codebase/integrations.md +280 -0
  73. package/renn/templates/codebase/stack.md +186 -0
  74. package/renn/templates/codebase/structure.md +295 -0
  75. package/renn/templates/codebase/testing.md +480 -0
  76. package/renn/templates/config.json +36 -0
  77. package/renn/templates/continue-here.md +80 -0
  78. package/renn/templates/detective-prompt.md +93 -0
  79. package/renn/templates/milestone-archive.md +123 -0
  80. package/renn/templates/milestone.md +117 -0
  81. package/renn/templates/proof.md +326 -0
  82. package/renn/templates/pulse.md +176 -0
  83. package/renn/templates/research/architecture.md +206 -0
  84. package/renn/templates/research/features.md +149 -0
  85. package/renn/templates/research/pitfalls.md +202 -0
  86. package/renn/templates/research/recap.md +187 -0
  87. package/renn/templates/research/stack.md +122 -0
  88. package/renn/templates/research/ux.md +283 -0
  89. package/renn/templates/research-lite.md +146 -0
  90. package/renn/templates/research.md +582 -0
  91. package/renn/templates/specs.md +233 -0
  92. package/renn/templates/stage-prompt.md +571 -0
  93. package/renn/templates/track.md +211 -0
  94. package/renn/templates/user-setup.md +315 -0
  95. package/renn/workflows/audit-stage.md +717 -0
  96. package/renn/workflows/audit-work.md +596 -0
  97. package/renn/workflows/complete-milestone.md +875 -0
  98. package/renn/workflows/continue-project.md +306 -0
  99. package/renn/workflows/design-stage.md +2019 -0
  100. package/renn/workflows/diagnose-issues.md +231 -0
  101. package/renn/workflows/initialize-project.md +1039 -0
  102. package/renn/workflows/list-assumptions.md +178 -0
  103. package/renn/workflows/map-codebase.md +374 -0
  104. package/renn/workflows/new-milestone.md +718 -0
  105. package/renn/workflows/plan-stage.md +810 -0
  106. package/renn/workflows/research-stage.md +289 -0
  107. package/renn/workflows/run-plan.md +1844 -0
  108. package/renn/workflows/run-stage.md +692 -0
  109. package/renn/workflows/scope-stage.md +546 -0
  110. package/renn/workflows/ship-project.md +859 -0
  111. package/renn/workflows/transition.md +556 -0
  112. package/renn/workflows/watch-project.md +797 -0
@@ -0,0 +1,546 @@
1
+ <purpose>
2
+ Extract implementation decisions that downstream agents need. Analyze the stage 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
+ **intel.md feeds into:**
9
+
10
+ 1. **renn-stage-scout** — Reads intel.md to know WHAT to research
11
+ - "User wants card-based layout" → scout investigates card component patterns
12
+ - "Infinite scroll decided" → scout looks into virtualization libraries
13
+
14
+ 2. **renn-architect** — Reads intel.md to know WHAT decisions are locked
15
+ - "Pull-to-refresh on mobile" → architect includes that in task specs
16
+ - "Claude's Discretion: loading skeleton" → architect 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 (scout reads the code)
34
+ - Technical risks (scout identifies these)
35
+ - Implementation approach (architect 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 stage boundary comes from track.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 posts be displayed?" (layout, density, info shown)
48
+ - "What happens on empty state?" (within the feature)
49
+ - "Pull to refresh or manual?" (behavior choice)
50
+
51
+ **Not allowed (scope creep):**
52
+ - "Should we also add comments?" (new capability)
53
+ - "What about search/filtering?" (new capability)
54
+ - "Maybe include bookmarking?" (new capability)
55
+
56
+ **The heuristic:** Does this clarify how we implement what's already in the stage, or does it add a new capability that could be its own stage?
57
+
58
+ **When user suggests scope creep:**
59
+ ```
60
+ "[Feature X] would be a new capability — that's its own stage.
61
+ Want me to note it for the track backlog?
62
+
63
+ For now, let's focus on [stage 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 stage goal** from track.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 stage-specific gray areas** — Not generic categories, but concrete decisions for THIS stage
82
+ 4. **[UI] stage filter** — If the stage heading in track.md contains `[UI]`, this stage has a design pipeline that handles visual/interaction decisions separately. Generate gray areas about DATA, CONTENT, BUSINESS RULES, and BEHAVIOR only. Defer these to the design pipeline:
83
+ - Visual layout and presentation (how things look)
84
+ - Information density and spacing
85
+ - Loading and transition patterns
86
+ - Interaction patterns (hover, click, drag)
87
+ - Visual states (what empty/error/loading states look like)
88
+ - Navigation structure (sidebar vs tabs vs breadcrumbs)
89
+ - Color, typography, animation
90
+
91
+ **Don't use generic category labels** (UI, UX, Behavior). Generate specific gray areas:
92
+
93
+ ```
94
+ Stage: "User authentication"
95
+ → Session handling, Error responses, Multi-device policy, Recovery flow
96
+
97
+ Stage: "Organize photo library"
98
+ → Grouping criteria, Duplicate handling, Naming convention, Folder structure
99
+
100
+ Stage: "CLI for database backups"
101
+ → Output format, Flag design, Progress reporting, Error recovery
102
+
103
+ Stage: "API documentation"
104
+ → Structure/navigation, Code examples depth, Versioning approach, Interactive elements
105
+ ```
106
+
107
+ **The key question:** What decisions would change the outcome that the user should weigh in on?
108
+
109
+ **Claude handles these (don't ask):**
110
+ - Technical implementation details
111
+ - Architecture patterns
112
+ - Performance optimization
113
+ - Scope (track defines this)
114
+ </gray_area_identification>
115
+
116
+ <process>
117
+
118
+ <step name="validate_stage" priority="first">
119
+ Stage number from argument (required).
120
+
121
+ Load and validate:
122
+ - Read `.renn/track.md`
123
+ - Find stage entry
124
+ - Extract: number, name, description, status
125
+
126
+ **If stage not found:**
127
+ ```
128
+ Stage [X] not found in track.
129
+
130
+ Use /renn.status to see available stages.
131
+ ```
132
+ Exit workflow.
133
+
134
+ **If stage found:** Continue to analyze_stage.
135
+ </step>
136
+
137
+ <step name="check_existing">
138
+ Check if intel.md already exists:
139
+
140
+ ```bash
141
+ # Match both zero-padded (05-*) and unpadded (5-*) folders
142
+ PADDED_STAGE=$(printf "%02d" ${STAGE})
143
+ ls .renn/stages/${PADDED_STAGE}-*/*-intel.md .renn/stages/${STAGE}-*/*-intel.md 2>/dev/null
144
+ ```
145
+
146
+ **If exists:**
147
+ Use AskUserQuestion:
148
+ - header: "Existing context"
149
+ - question: "Stage [X] already has context. What do you want to do?"
150
+ - options:
151
+ - "Update it" — Review and revise existing context
152
+ - "View it" — Show me what's there
153
+ - "Skip" — Use existing context as-is
154
+
155
+ If "Update": Load existing, continue to analyze_stage
156
+ If "View": Display intel.md, then offer update/skip
157
+ If "Skip": Exit workflow
158
+
159
+ **If doesn't exist:** Continue to analyze_stage.
160
+ </step>
161
+
162
+ <step name="analyze_stage">
163
+ Analyze the stage to identify gray areas worth discussing.
164
+
165
+ **Read the stage description from track.md and determine:**
166
+
167
+ 0. **[UI] check** — Check the ### Stage N: heading line from track.md for this stage. If the heading contains [UI] (e.g., `### Stage 5: Dashboard Layout [UI]`), suppress visual/interaction gray areas. Focus only on data, content, business rules, and behavior. The design pipeline handles visual decisions for [UI] stages.
168
+
169
+ 1. **Domain boundary** — What capability is this stage delivering? State it clearly.
170
+
171
+ 2. **Gray areas by category** — For each relevant category, identify 1-2 specific ambiguities that would change implementation.
172
+ - **If [UI] stage:** Only data, content, business rules, and behavioral categories. Do NOT generate layout, density, loading, interaction, or visual state gray areas -- these are deferred to the design pipeline.
173
+ - **If non-[UI] stage:** All categories apply (UI, UX, Behavior, Empty States, Content).
174
+
175
+ 3. **Skip assessment** — If no meaningful gray areas exist (pure infrastructure, clear-cut implementation), the stage may not need discussion.
176
+
177
+ **Output your analysis internally, then present to user.**
178
+
179
+ Example analysis for "Post Feed [UI]" stage:
180
+ ```
181
+ Domain: Displaying posts from followed users
182
+ Gray areas (visual/interaction deferred to design pipeline):
183
+ - Content: What data shows on each post (author, time, reactions, preview text)
184
+ - Behavior: What order posts appear (newest, relevance, user preference)
185
+ - Data: What defines "followed users" (direct follows only, or include recommended)
186
+ - Empty state behavior: What happens with no posts (redirect to explore, suggest follows)
187
+ ```
188
+
189
+ Example analysis for "Post Feed" stage (no [UI] tag):
190
+ ```
191
+ Domain: Displaying posts from followed users
192
+ Gray areas:
193
+ - UI: Layout style (cards vs timeline vs grid)
194
+ - UI: Information density (full posts vs previews)
195
+ - Behavior: Loading pattern (infinite scroll vs pagination)
196
+ - Empty State: What shows when no posts exist
197
+ - Content: What metadata displays (time, author, reactions count)
198
+ ```
199
+ </step>
200
+
201
+ <step name="present_gray_areas">
202
+ Present the domain boundary and gray areas to user.
203
+
204
+ **First, state the boundary:**
205
+ ```
206
+ Stage [X]: [Name]
207
+ Domain: [What this stage delivers — from your analysis]
208
+
209
+ We'll clarify HOW to implement this.
210
+ (New capabilities belong in other stages.)
211
+ ```
212
+
213
+ **[UI] stage handling:** If this is a [UI] stage (heading contains `[UI]`), state:
214
+ ```
215
+ This is a [UI] stage -- visual presentation and interaction patterns are handled by the design pipeline.
216
+ Let's focus on the data and behavior decisions.
217
+ ```
218
+
219
+ **Then use AskUserQuestion (multiSelect: true):**
220
+ - header: "Discuss"
221
+ - question: "Which areas do you want to discuss for [stage name]?"
222
+ - options: Generate 3-4 stage-specific gray areas, each formatted as:
223
+ - "[Specific area]" (label) — concrete, not generic
224
+ - [1-2 questions this covers] (description)
225
+
226
+ **Do NOT include a "skip" or "you decide" option.** User ran this command to discuss — give them real choices.
227
+
228
+ **Plain-language rule:** Describe behaviors, not name concepts. The user may not be technical. Instead of jargon, use familiar references ("like Instagram", "like Google search results") or describe what the user would see/do.
229
+
230
+ **Examples by domain:**
231
+
232
+ For "Post Feed [UI]" (visual feature with design pipeline):
233
+ ```
234
+ This is a [UI] stage -- visual presentation and interaction patterns are handled by the design pipeline.
235
+ Let's focus on the data and behavior decisions.
236
+
237
+ ☐ What shows on each post -- Author name, time posted, like count? Full text or just a preview? Which details matter most?
238
+ ☐ How posts are sorted -- Newest first, a smart algorithm, or let the user pick? What about posts from close friends?
239
+ ☐ What counts as "my feed" -- Only people I follow, or also suggested content? How much of each?
240
+ ```
241
+
242
+ For "Post Feed" (visual feature, no [UI] tag):
243
+ ```
244
+ ☐ How posts look — Show each post as a card, a scrolling list, or a grid? How much detail per post?
245
+ ☐ How more posts load — Keep loading as you scroll down (like Instagram), or page-by-page with Next/Previous (like Google)?
246
+ ☐ What order posts appear — Newest first, smart sorting, or let the user pick?
247
+ ☐ What shows on each post — Time posted, likes, author name? What details matter?
248
+ ```
249
+
250
+ For "Database backup CLI" (command-line tool):
251
+ ```
252
+ ☐ What the output looks like — Structured data, a table, or plain text? How much detail?
253
+ ☐ How commands are typed — Short shortcuts (-v), full names (--verbose), or both? Which ones are required?
254
+ ☐ What happens during long tasks — Run silently, show a progress bar, or log every step?
255
+ ☐ What happens when something fails — Stop immediately, try again, or ask what to do?
256
+ ```
257
+
258
+ For "Organize photo library" (organization task):
259
+ ```
260
+ ☐ How photos are grouped — By date taken, location, people, or events?
261
+ ☐ What happens with duplicates — Keep the best one, keep all copies, or ask each time?
262
+ ☐ How files are named — Keep original names, rename by date, or add descriptions?
263
+ ☐ How folders are arranged — All in one folder, nested by year, or by category?
264
+ ```
265
+
266
+ Continue to discuss_areas with selected areas.
267
+ </step>
268
+
269
+ <step name="discuss_areas">
270
+ For each selected area, conduct a focused discussion loop.
271
+
272
+ **Philosophy: 4 questions, then check.**
273
+
274
+ Ask 4 questions per area before offering to continue or move on. Each answer often reveals the next question.
275
+
276
+ **For each area:**
277
+
278
+ 1. **Announce the area:**
279
+ ```
280
+ Let's talk about [Area].
281
+ ```
282
+
283
+ 2. **Ask 4 questions using AskUserQuestion:**
284
+ - header: "[Area]"
285
+ - question: Specific decision for this area
286
+ - options: 2-3 concrete choices (AskUserQuestion adds "Other" automatically)
287
+ - Include "You decide" as an option when reasonable — captures Claude discretion
288
+
289
+ 3. **After 4 questions, check:**
290
+ - header: "[Area]"
291
+ - question: "More questions about [area], or move to next?"
292
+ - options: "More questions" / "Next area"
293
+
294
+ If "More questions" → ask 4 more, then check again
295
+ If "Next area" → proceed to next selected area
296
+
297
+ 4. **After all areas complete:**
298
+ - header: "Done"
299
+ - question: "That covers [list areas]. Ready to create context?"
300
+ - options: "Create context" / "Revisit an area"
301
+
302
+ **Question design:**
303
+ - Options should be concrete, not abstract ("Cards" not "Option A")
304
+ - Each answer should inform the next question
305
+ - If user picks "Other", receive their input, reflect it back, confirm
306
+
307
+ **Scope creep handling:**
308
+ If user mentions something outside the stage domain:
309
+ ```
310
+ "[Feature] sounds like a new capability — that belongs in its own stage.
311
+ I'll note it as a deferred idea.
312
+
313
+ Back to [current area]: [return to current question]"
314
+ ```
315
+
316
+ Track deferred ideas internally.
317
+ </step>
318
+
319
+ <step name="write_context">
320
+ Create intel.md capturing decisions made.
321
+
322
+ **Find or create stage directory:**
323
+
324
+ ```bash
325
+ # Match existing directory (padded or unpadded)
326
+ PADDED_STAGE=$(printf "%02d" ${STAGE})
327
+ STAGE_DIR=$(ls -d .renn/stages/${PADDED_STAGE}-* .renn/stages/${STAGE}-* 2>/dev/null | head -1)
328
+ if [ -z "$STAGE_DIR" ]; then
329
+ # Create from track name (lowercase, hyphens)
330
+ # Anchor to ### headings to avoid matching list items (which contain markdown ** and descriptions)
331
+ STAGE_NAME=$(grep "^### Stage ${STAGE}:" .renn/track.md | head -1 | sed 's/^### Stage [0-9]*: //' | sed 's/ \[UI\]$//' | tr '[:upper:]' '[:lower:]' | tr ' ' '-')
332
+ mkdir -p ".renn/stages/${PADDED_STAGE}-${STAGE_NAME}"
333
+ STAGE_DIR=".renn/stages/${PADDED_STAGE}-${STAGE_NAME}"
334
+ fi
335
+ ```
336
+
337
+ **File location:** `${STAGE_DIR}/${PADDED_STAGE}-intel.md`
338
+
339
+ **Structure the content by what was discussed:**
340
+
341
+ ```markdown
342
+ # Stage [X]: [Name] - Context
343
+
344
+ **Gathered:** [date]
345
+ **Status:** Ready for planning
346
+
347
+ <domain>
348
+ ## Stage Boundary
349
+
350
+ [Clear statement of what this stage delivers — the scope anchor]
351
+
352
+ </domain>
353
+
354
+ <decisions>
355
+ ## Implementation Decisions
356
+
357
+ ### [Category 1 that was discussed]
358
+ - [Decision or preference captured]
359
+ - [Another decision if applicable]
360
+
361
+ ### [Category 2 that was discussed]
362
+ - [Decision or preference captured]
363
+
364
+ ### Claude's Discretion
365
+ [Areas where user said "you decide" — note that Claude has flexibility here]
366
+
367
+ </decisions>
368
+
369
+ <specifics>
370
+ ## Specific Ideas
371
+
372
+ [Any particular references, examples, or "I want it like X" moments from discussion]
373
+
374
+ [If none: "No specific requirements — open to standard approaches"]
375
+
376
+ </specifics>
377
+
378
+ <deferred>
379
+ ## Deferred Ideas
380
+
381
+ [Ideas that came up but belong in other stages. Don't lose them.]
382
+
383
+ [If none: "None — discussion stayed within stage scope"]
384
+
385
+ </deferred>
386
+
387
+ ---
388
+
389
+ *Stage: XX-name*
390
+ *Context gathered: [date]*
391
+ ```
392
+
393
+ Write file.
394
+ </step>
395
+
396
+ <step name="confirm_creation">
397
+ Present summary and next steps.
398
+
399
+ **First, show what was captured:**
400
+
401
+ ```
402
+ Created: .renn/stages/${PADDED_STAGE}-${SLUG}/${PADDED_STAGE}-intel.md
403
+
404
+ ## Decisions Captured
405
+
406
+ ### [Category]
407
+ - [Key decision]
408
+
409
+ ### [Category]
410
+ - [Key decision]
411
+
412
+ [If deferred ideas exist:]
413
+ ## Noted for Later
414
+ - [Deferred idea] — future stage
415
+ ```
416
+
417
+ **Then, detect if design is needed before routing:**
418
+
419
+ Check if the stage heading from track.md has a [UI] tag:
420
+
421
+ Check the ### Stage N: heading line from track.md for this stage.
422
+ If the heading contains [UI] (e.g., `### Stage 5: Dashboard [UI]`) -> IS_UI_STAGE=true.
423
+ Otherwise -> IS_UI_STAGE=false.
424
+ No keyword matching. The [UI] tag is authoritative.
425
+
426
+ If `IS_UI_STAGE=true`, check design artifacts:
427
+
428
+ ```bash
429
+ HAS_STYLEKIT=$(ls .renn/design/stylekit.yaml 2>/dev/null && echo "yes")
430
+ HAS_SCREENS=$(ls .renn/design/screens/*.yaml 2>/dev/null && echo "yes")
431
+ ```
432
+
433
+ **Route based on detection:**
434
+
435
+ **If IS_UI_STAGE=true AND no stylekit:**
436
+
437
+ ```
438
+ ---
439
+
440
+ ## ▶ Next Up
441
+
442
+ **Stage ${STAGE}: [Name]** — [Goal from track.md]
443
+
444
+ This is a UI stage — create the design system first:
445
+
446
+ `/renn.design-system`
447
+
448
+ <sub>`/clear` first → fresh context window</sub>
449
+
450
+ ---
451
+
452
+ **Also available:**
453
+ - `/renn.plan-stage ${STAGE}` — skip design, Claude designs inline during execution
454
+ - Review/edit intel.md before continuing
455
+
456
+ ---
457
+ ```
458
+
459
+ **If IS_UI_STAGE=true AND stylekit exists but no screens:**
460
+
461
+ ```
462
+ ---
463
+
464
+ ## ▶ Next Up
465
+
466
+ **Stage ${STAGE}: [Name]** — [Goal from track.md]
467
+
468
+ Design system exists. Create screen prototypes for this stage:
469
+
470
+ `/renn.design-screens ${STAGE}`
471
+
472
+ <sub>`/clear` first → fresh context window</sub>
473
+
474
+ ---
475
+
476
+ **Also available:**
477
+ - `/renn.plan-stage ${STAGE}` — skip screen design, Claude designs inline during execution
478
+ - Review/edit intel.md before continuing
479
+
480
+ ---
481
+ ```
482
+
483
+ **If IS_UI_STAGE=true AND both stylekit and screens exist, OR IS_UI_STAGE=false:**
484
+
485
+ ```
486
+ ---
487
+
488
+ ## ▶ Next Up
489
+
490
+ **Stage ${STAGE}: [Name]** — [Goal from track.md]
491
+
492
+ `/renn.plan-stage ${STAGE}`
493
+
494
+ <sub>`/clear` first → fresh context window</sub>
495
+
496
+ ---
497
+
498
+ **Also available:**
499
+ - `/renn.plan-stage ${STAGE} --skip-research` — plan without research
500
+ - Review/edit intel.md before continuing
501
+
502
+ ---
503
+ ```
504
+ </step>
505
+
506
+ <step name="git_commit">
507
+ Commit stage context:
508
+
509
+ **Check planning config:**
510
+
511
+ ```bash
512
+ COMMIT_PLANNING_DOCS=$(cat .renn/config.json 2>/dev/null | grep -o '"commit_docs"[[:space:]]*:[[:space:]]*[^,}]*' | grep -o 'true\|false' || echo "true")
513
+ git check-ignore -q .renn 2>/dev/null && COMMIT_PLANNING_DOCS=false
514
+ ```
515
+
516
+ **If `COMMIT_PLANNING_DOCS=false`:** Skip git operations
517
+
518
+ **If `COMMIT_PLANNING_DOCS=true` (default):**
519
+
520
+ ```bash
521
+ git add "${STAGE_DIR}/${PADDED_STAGE}-intel.md"
522
+ git commit -m "$(cat <<'EOF'
523
+ docs(${PADDED_STAGE}): capture stage context
524
+
525
+ Stage ${PADDED_STAGE}: ${STAGE_NAME}
526
+ - Implementation decisions documented
527
+ - Stage boundary established
528
+ EOF
529
+ )"
530
+ ```
531
+
532
+ Confirm: "Committed: docs(${PADDED_STAGE}): capture stage context"
533
+ </step>
534
+
535
+ </process>
536
+
537
+ <success_criteria>
538
+ - Stage validated against track
539
+ - Gray areas identified through intelligent analysis (not generic questions)
540
+ - User selected which areas to discuss
541
+ - Each selected area explored until user satisfied
542
+ - Scope creep redirected to deferred ideas
543
+ - intel.md captures actual decisions, not vague vision
544
+ - Deferred ideas preserved for future stages
545
+ - User knows next steps
546
+ </success_criteria>