@hanzlaa/rcode 4.0.0 → 4.1.1

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 (47) hide show
  1. package/AGENTS.md +1 -1
  2. package/README.md +2 -2
  3. package/cli/doctor.js +17 -0
  4. package/cli/github-sync.js +3 -2
  5. package/cli/index.js +16 -0
  6. package/cli/install.js +1 -0
  7. package/cli/lib/manifest.cjs +13 -0
  8. package/cli/set-mode.js +10 -0
  9. package/cli/set-profile.js +10 -0
  10. package/cli/uninstall.js +100 -39
  11. package/cli/workflow.js +97 -0
  12. package/dist/rcode.js +249 -229
  13. package/package.json +1 -1
  14. package/rcode/bin/lib/config.cjs +3 -2
  15. package/rcode/bin/rcode-tools.cjs +8 -3
  16. package/rcode/skills/SKILLS_INDEX.md +4 -3
  17. package/rcode/skills/actions/1-analysis/rcode-document-project/SKILL.md +6 -0
  18. package/rcode/skills/actions/3-solutioning/rcode-check-implementation-readiness/SKILL.md +6 -0
  19. package/rcode/skills/actions/3-solutioning/rcode-create-architecture/steps/step-01-init.md +1 -1
  20. package/rcode/skills/actions/3-solutioning/rcode-create-architecture/workflow.md +13 -1
  21. package/rcode/skills/actions/4-implementation/rcode-herdr-orchestration/SKILL.md +166 -0
  22. package/rcode/skills/actions/4-implementation/rcode-herdr-orchestration/references.md +136 -0
  23. package/rcode/skills/actions/4-implementation/rcode-herdr-orchestration/rules/backlog-building.md +113 -0
  24. package/rcode/skills/actions/4-implementation/rcode-herdr-orchestration/rules/composition-with-herdr.md +85 -0
  25. package/rcode/skills/actions/4-implementation/rcode-herdr-orchestration/rules/integration-branch.md +191 -0
  26. package/rcode/skills/actions/4-implementation/rcode-herdr-orchestration/rules/merge-strategy.md +113 -0
  27. package/rcode/skills/actions/4-implementation/rcode-herdr-orchestration/rules/orchestrator-rhythm.md +119 -0
  28. package/rcode/skills/actions/4-implementation/rcode-herdr-orchestration/rules/wave-design.md +100 -0
  29. package/rcode/skills/actions/4-implementation/rcode-herdr-orchestration/templates/BACKLOG-template.md +34 -0
  30. package/rcode/skills/actions/4-implementation/rcode-herdr-orchestration/templates/STATE-template.md +40 -0
  31. package/rcode/skills/actions/4-implementation/rcode-herdr-orchestration/templates/heartbeat.sh +29 -0
  32. package/rcode/skills/actions/4-implementation/rcode-herdr-orchestration/templates/wave-prompt.md +69 -0
  33. package/rcode/skills/actions/4-implementation/rcode-retrospective/workflow.md +61 -246
  34. package/rcode/templates/sprint.md +16 -0
  35. package/rcode/workflows/audit.md +3 -0
  36. package/rcode/workflows/brainstorm.md +1 -1
  37. package/rcode/workflows/council.md +8 -1
  38. package/rcode/workflows/create-architecture.md +5 -1
  39. package/rcode/workflows/create-prd.md +5 -1
  40. package/rcode/workflows/dashboard.md +5 -2
  41. package/rcode/workflows/discuss-phase.md +3 -15
  42. package/rcode/workflows/execute-sprint.md +3 -1
  43. package/rcode/workflows/plan-spawn-planner.md +96 -0
  44. package/rcode/workflows/plan.md +67 -0
  45. package/rcode/workflows/retrospective.md +5 -1
  46. package/rcode/workflows/sprint-planning.md +9 -5
  47. package/server/dashboard.js +2 -2
@@ -0,0 +1,69 @@
1
+ # Wave-Agent Prompt Template
2
+
3
+ Use this as the body of `herdr pane send-text` when dispatching each agent in a wave. Replace the placeholders.
4
+
5
+ ---
6
+
7
+ ```
8
+ You are in an isolated worktree at <WORKTREE_PATH> on branch <BRANCH_NAME>. <REPO_NAME> repo.
9
+
10
+ YOUR PARENT BRANCH IS <INTEGRATION_BRANCH> (NOT master). Your branch was forked from <INTEGRATION_BRANCH>. When you finish, the orchestrator will merge your branch INTO <INTEGRATION_BRANCH> (not master). Master stays untouched throughout the campaign.
11
+
12
+ If you need to pull the latest parent work (rare, only between waves):
13
+ git fetch origin
14
+ git merge origin/<INTEGRATION_BRANCH> --no-edit
15
+
16
+ CAMPAIGN MODE — pick top 3-5 pending P1/P2 items from <AUDIT_DOC_PATH> and ship them. Long-running autonomous fix campaign — your branch will be merged into the campaign integration branch when done.
17
+
18
+ PROTOCOL
19
+ 1. Read <AUDIT_DOC_PATH> fully. Identify items marked pending, ⏳, [ ], TODO, or labeled P1/P2 that are NOT already shipped (cross-reference `git log <INTEGRATION_BRANCH>` to avoid double-fixing).
20
+ 2. Pick 3-5 items that are surgical, well-scoped, and unrelated to other in-flight campaign agents (no overlap with: <IN_FLIGHT_AREAS>).
21
+ 3. Implement each item as a small, separately-committed change. Conventional commit format (e.g. `fix(area): summary` / `feat(area): summary`). Each commit message must reference the audit finding.
22
+ 4. STRICT auto-heal from project CLAUDE.md while editing:
23
+ - super_admin in role filters
24
+ - no silent .catch(()=>{}) — use logger.warn with reason
25
+ - no React.FC, no style={{}}, no raw <button> (use Button component)
26
+ - no alert()/confirm() — use toast/AlertDialog
27
+ - Prisma schema changes need migration files via `prisma migrate dev --create-only --name <slug>`
28
+ - new /api routes need server/middleware/routeSecurity.js MANIFEST entries
29
+ 5. Keep TSC at baseline. Run `pnpm tsc --noEmit` before final commit. If you introduce a NEW error, fix it before committing.
30
+ 6. STAY on branch <BRANCH_NAME>. Do NOT push. Do NOT merge to master. Do NOT merge to <INTEGRATION_BRANCH>. Do NOT touch other audit areas.
31
+ 7. End with a short numbered summary listing each commit (hash + one-line message) and what audit item it addressed.
32
+
33
+ DO NOT
34
+ - Touch master at all
35
+ - Merge into the integration branch (the orchestrator does that — your job is to commit on your own branch and stop)
36
+ - Touch out-of-scope code outside the audit area
37
+ - Add new abstractions or refactor wholesale
38
+ - Make schema changes without a migration file
39
+ - Write tests "as a bonus" unless the audit specifically called for them
40
+ - Push to origin
41
+
42
+ Begin by reading the audit doc and listing the candidate items you'll fix.
43
+ ```
44
+
45
+ ---
46
+
47
+ ## Placeholders
48
+
49
+ | Placeholder | Source |
50
+ |---|---|
51
+ | `<WORKTREE_PATH>` | `../sm-worktrees/camp-<area>` |
52
+ | `<BRANCH_NAME>` | `campaign-<area>` |
53
+ | `<INTEGRATION_BRANCH>` | `campaign-integration` (default) or `campaign-<topic>` for named campaigns |
54
+ | `<REPO_NAME>` | e.g. `LeadLyze` |
55
+ | `<AUDIT_DOC_PATH>` | `.planning/audits/AUDIT-<area>.md` |
56
+ | `<IN_FLIGHT_AREAS>` | Comma-list from STATE.md |
57
+
58
+ ## When to deviate from this template
59
+ - **Heavy schema work**: add explicit migration-naming guidance and require `prisma migrate diff` review before commit.
60
+ - **Pure UI/CSS area**: drop the routeSecurity MANIFEST bullet, add "use design tokens not hex codes".
61
+ - **Authentication / RBAC area**: add "no role-relation rename without checking every call site; super_admin always included".
62
+
63
+ ## Related templates
64
+ - `BACKLOG-template.md` — initial backlog format
65
+ - `heartbeat.sh` — secondary heartbeat process
66
+
67
+ ## Related rules
68
+ - `rules/integration-branch.md` — why the parent branch is `<INTEGRATION_BRANCH>` and not master
69
+ - `rules/merge-strategy.md` — what happens after sub-agent commits land on the branch
@@ -34,11 +34,30 @@ This keeps `.rcode/state.json` in sync with disk — `/rcode-progress`, `/rcode-
34
34
 
35
35
  ---
36
36
 
37
+ ## AUTO MODE (--auto / yolo)
38
+
39
+ **If `--auto` was passed OR `config.mode == "yolo"`:** skip all `<action>WAIT</action>` gates,
40
+ skip all roleplay dialog (Bob/Alice/Charlie personas), and produce the retrospective document
41
+ directly from available artifacts.
42
+
43
+ Auto-mode steps:
44
+ 1. Load config + resolve paths (same as INITIALIZATION below).
45
+ 2. Detect epic number automatically (highest epic in sprint-status or implementation_artifacts).
46
+ 3. Read epic file, SUMMARY.md, and previous retrospective if present.
47
+ 4. Produce the retrospective markdown document at `{implementation_artifacts}/epic-{N}-retro-{date}.md`
48
+ with sections: Epic Summary, Metrics, Successes, Challenges, Key Learnings, Action Items,
49
+ Next Epic Preparation.
50
+ 5. Update sprint-status.yaml to mark `epic-{N}-retrospective` as done.
51
+ 6. Run `node .rcode/bin/rcode-tools.cjs state sync --from-disk`.
52
+ 7. Print completion banner and stop — do not run the interactive EXECUTION steps below.
53
+
54
+ ---
55
+
37
56
  ## INITIALIZATION
38
57
 
39
58
  ### Configuration Loading
40
59
 
41
- Load config from `{project-root}/.rcode/config.json` and resolve:
60
+ Load config from `{project-root}/.rcode/config.yaml` and resolve:
42
61
 
43
62
  - `project_name`, `user_name`
44
63
  - `communication_language`, `document_output_language`
@@ -495,83 +514,26 @@ Bob (Scrum Master): "No problem. We'll still do a thorough retro on Epic {{epic_
495
514
  <action>Ensure key roles present: Product Owner, Scrum Master (facilitating), Devs, Testing/QA, Architect</action>
496
515
 
497
516
  <output>
498
- Bob (Scrum Master): "Alright team, everyone's here. Let me set the stage for our retrospective."
499
-
500
517
  ═══════════════════════════════════════════════════════════
501
518
  🔄 TEAM RETROSPECTIVE - Epic {{epic_number}}: {{epic_title}}
502
519
  ═══════════════════════════════════════════════════════════
503
520
 
504
- Bob (Scrum Master): "Here's what we accomplished together."
505
-
506
521
  **EPIC {{epic_number}} SUMMARY:**
507
522
 
508
- Delivery Metrics:
509
-
510
- - Completed: {{completed_stories}}/{{total_stories}} stories ({{completion_percentage}}%)
511
- - Velocity: {{actual_points}} story points{{#if planned_points}} (planned: {{planned_points}}){{/if}}
512
- - Duration: {{actual_sprints}} sprints{{#if planned_sprints}} (planned: {{planned_sprints}}){{/if}}
513
- - Average velocity: {{points_per_sprint}} points/sprint
514
-
515
- Quality and Technical:
516
-
517
- - Blockers encountered: {{blocker_count}}
518
- - Technical debt items: {{debt_count}}
519
- - Test coverage: {{coverage_info}}
520
- - Production incidents: {{incident_count}}
521
-
522
- Business Outcomes:
523
-
524
- - Goals achieved: {{goals_met}}/{{total_goals}}
525
- - Success criteria: {{criteria_status}}
526
- - Stakeholder feedback: {{feedback_summary}}
527
-
528
- Alice (Product Owner): "Those numbers tell a good story. {{completion_percentage}}% completion is {{#if completion_percentage >= 90}}excellent{{else}}something we should discuss{{/if}}."
529
-
530
- Charlie (Senior Dev): "I'm more interested in that technical debt number - {{debt_count}} items is {{#if debt_count > 10}}concerning{{else}}manageable{{/if}}."
531
-
532
- Dana (QA Engineer): "{{incident_count}} production incidents - {{#if incident_count == 0}}clean epic!{{else}}we should talk about those{{/if}}."
523
+ Delivery: {{completed_stories}}/{{total_stories}} stories ({{completion_percentage}}%) · {{actual_points}} pts · {{actual_sprints}} sprints · {{points_per_sprint}} pts/sprint avg
524
+ Quality: {{blocker_count}} blockers · {{debt_count}} tech-debt items · {{coverage_info}} coverage · {{incident_count}} incidents
525
+ Outcomes: {{goals_met}}/{{total_goals}} goals · {{criteria_status}} · {{feedback_summary}}
533
526
 
534
527
  {{#if next_epic_exists}}
535
- ═══════════════════════════════════════════════════════════
536
528
  **NEXT EPIC PREVIEW:** Epic {{next_epic_num}}: {{next_epic_title}}
537
- ═══════════════════════════════════════════════════════════
538
-
539
- Dependencies on Epic {{epic_number}}:
540
- {{list_dependencies}}
541
-
542
- Preparation Needed:
543
- {{list_preparation_gaps}}
544
-
545
- Technical Prerequisites:
546
- {{list_technical_prereqs}}
547
-
548
- Bob (Scrum Master): "And here's what's coming next. Epic {{next_epic_num}} builds on what we just finished."
549
-
550
- Elena (Junior Dev): "Wow, that's a lot of dependencies on our work."
551
-
552
- Charlie (Senior Dev): "Which means we better make sure Epic {{epic_number}} is actually solid before moving on."
529
+ Dependencies: {{list_dependencies}}
530
+ Preparation gaps: {{list_preparation_gaps}}
531
+ Technical prerequisites: {{list_technical_prereqs}}
553
532
  {{/if}}
554
533
 
555
- ═══════════════════════════════════════════════════════════
556
-
557
- Bob (Scrum Master): "Team assembled for this retrospective:"
558
-
559
- {{list_participating_agents}}
560
-
561
- Bob (Scrum Master): "{user_name}, you're joining us as Project Lead. Your perspective is crucial here."
562
-
563
- {user_name} (Project Lead): [Participating in the retrospective]
564
-
565
- Bob (Scrum Master): "Our focus today:"
566
-
567
- 1. Learning from Epic {{epic_number}} execution
568
- {{#if next_epic_exists}}2. Preparing for Epic {{next_epic_num}} success{{/if}}
569
-
570
- Bob (Scrum Master): "Ground rules: psychological safety first. No blame, no judgment. We focus on systems and processes, not individuals. Everyone's voice matters. Specific examples are better than generalizations."
571
-
572
- Alice (Product Owner): "And everything shared here stays in this room - unless we decide together to escalate something."
573
-
574
- Bob (Scrum Master): "Exactly. {user_name}, any questions before we dive in?"
534
+ Participants: {{list_participating_agents}} + {user_name} (Project Lead)
535
+ Focus: (1) Learn from Epic {{epic_number}} · {{#if next_epic_exists}}(2) Prepare Epic {{next_epic_num}}{{/if}}
536
+ Ground rules: No blame systems focus — psychological safety — specific examples preferred.
575
537
  </output>
576
538
 
577
539
  <action>WAIT for {user_name} to respond or indicate readiness</action>
@@ -874,49 +836,19 @@ Bob (Scrum Master): "I want specific, achievable actions with clear owners. Not
874
836
  - Time-bound: Has clear deadline
875
837
 
876
838
  <output>
877
- Bob (Scrum Master): "Based on our discussion, here are the action items I'm proposing..."
878
-
879
839
  ═══════════════════════════════════════════════════════════
880
840
  📝 EPIC {{epic_number}} ACTION ITEMS:
881
841
  ═══════════════════════════════════════════════════════════
882
842
 
883
843
  **Process Improvements:**
884
-
885
- 1. {{action_item_1}}
886
- Owner: {{agent_1}}
887
- Deadline: {{timeline_1}}
888
- Success criteria: {{criteria_1}}
889
-
890
- 2. {{action_item_2}}
891
- Owner: {{agent_2}}
892
- Deadline: {{timeline_2}}
893
- Success criteria: {{criteria_2}}
894
-
895
- Charlie (Senior Dev): "I can own action item 1, but {{timeline_1}} is tight. Can we push it to {{alternative_timeline}}?"
896
-
897
- Bob (Scrum Master): "What do others think? Does that timing still work?"
898
-
899
- Alice (Product Owner): "{{alternative_timeline}} works for me, as long as it's done before Epic {{next_epic_num}} starts."
900
-
901
- Bob (Scrum Master): "Agreed. Updated to {{alternative_timeline}}."
844
+ 1. {{action_item_1}} — Owner: {{agent_1}} · Due: {{timeline_1}} · Success: {{criteria_1}}
845
+ 2. {{action_item_2}} — Owner: {{agent_2}} · Due: {{timeline_2}} · Success: {{criteria_2}}
902
846
 
903
847
  **Technical Debt:**
848
+ 1. {{debt_item_1}} — Owner: {{agent_3}} · Priority: {{priority_1}} · Effort: {{effort_1}}
849
+ 2. {{debt_item_2}} — Owner: {{agent_4}} · Priority: {{priority_2}} · Effort: {{effort_2}}
904
850
 
905
- 1. {{debt_item_1}}
906
- Owner: {{agent_3}}
907
- Priority: {{priority_1}}
908
- Estimated effort: {{effort_1}}
909
-
910
- 2. {{debt_item_2}}
911
- Owner: {{agent_4}}
912
- Priority: {{priority_2}}
913
- Estimated effort: {{effort_2}}
914
-
915
- Dana (QA Engineer): "For debt item 1, can we prioritize that as high? It caused testing issues in three different stories."
916
-
917
- Charlie (Senior Dev): "I marked it medium because {{reasoning}}, but I hear your point."
918
-
919
- Bob (Scrum Master): "{user_name}, this is a priority call. Testing impact vs. {{reasoning}} - how do you want to prioritize it?"
851
+ {user_name}, debt item 1 priority is a call you need to make — testing impact vs. {{reasoning}}.
920
852
  </output>
921
853
 
922
854
  <action>WAIT for {user_name} to help resolve priority discussions</action>
@@ -998,59 +930,20 @@ Estimated: {{est_4}}
998
930
 
999
931
  <check if="significant discoveries detected">
1000
932
  <output>
933
+ 🚨 SIGNIFICANT DISCOVERY — Epic {{next_epic_num}} plan needs review
1001
934
 
1002
- ═══════════════════════════════════════════════════════════
1003
- 🚨 SIGNIFICANT DISCOVERY ALERT 🚨
1004
- ═══════════════════════════════════════════════════════════
1005
-
1006
- Bob (Scrum Master): "{user_name}, we need to flag something important."
1007
-
1008
- Bob (Scrum Master): "During Epic {{epic_number}}, the team uncovered findings that may require updating the plan for Epic {{next_epic_num}}."
1009
-
1010
- **Significant Changes Identified:**
935
+ Changes identified:
936
+ 1. {{significant_change_1}} Impact: {{impact_description_1}}
937
+ 2. {{significant_change_2}} — Impact: {{impact_description_2}}
938
+ {{#if significant_change_3}}3. {{significant_change_3}} — Impact: {{impact_description_3}}{{/if}}
1011
939
 
1012
- 1. {{significant_change_1}}
1013
- Impact: {{impact_description_1}}
1014
-
1015
- 2. {{significant_change_2}}
1016
- Impact: {{impact_description_2}}
1017
-
1018
- {{#if significant_change_3}} 3. {{significant_change_3}}
1019
- Impact: {{impact_description_3}}
1020
- {{/if}}
940
+ Epic {{next_epic_num}} currently assumes: {{wrong_assumption_1}} / {{wrong_assumption_2}}
941
+ Epic {{epic_number}} revealed: {{actual_reality_1}} / {{actual_reality_2}}
942
+ Changes needed: {{list_likely_changes_needed}}
1021
943
 
1022
- Charlie (Senior Dev): "Yeah, when we discovered {{technical_discovery}}, it fundamentally changed our understanding of {{affected_area}}."
944
+ Recommended: review Epic {{next_epic_num}} definition · update affected stories · hold alignment session{{#if prd_update_needed}} · update PRD{{/if}}
1023
945
 
1024
- Alice (Product Owner): "And from a product perspective, {{product_discovery}} means Epic {{next_epic_num}}'s stories are based on wrong assumptions."
1025
-
1026
- Dana (QA Engineer): "If we start Epic {{next_epic_num}} as-is, we're going to hit walls fast."
1027
-
1028
- **Impact on Epic {{next_epic_num}}:**
1029
-
1030
- The current plan for Epic {{next_epic_num}} assumes:
1031
-
1032
- - {{wrong_assumption_1}}
1033
- - {{wrong_assumption_2}}
1034
-
1035
- But Epic {{epic_number}} revealed:
1036
-
1037
- - {{actual_reality_1}}
1038
- - {{actual_reality_2}}
1039
-
1040
- This means Epic {{next_epic_num}} likely needs:
1041
- {{list_likely_changes_needed}}
1042
-
1043
- **RECOMMENDED ACTIONS:**
1044
-
1045
- 1. Review and update Epic {{next_epic_num}} definition based on new learnings
1046
- 2. Update affected stories in Epic {{next_epic_num}} to reflect reality
1047
- 3. Consider updating architecture or technical specifications if applicable
1048
- 4. Hold alignment session with Product Owner before starting Epic {{next_epic_num}}
1049
- {{#if prd_update_needed}}5. Update PRD sections affected by new understanding{{/if}}
1050
-
1051
- Bob (Scrum Master): "**Epic Update Required**: YES - Schedule epic planning review session"
1052
-
1053
- Bob (Scrum Master): "{user_name}, this is significant. We need to address this before committing to Epic {{next_epic_num}}'s current plan. How do you want to handle it?"
946
+ {user_name}: how do you want to handle this before committing to Epic {{next_epic_num}}'s current plan?
1054
947
  </output>
1055
948
 
1056
949
  <action>WAIT for {user_name} to decide on how to handle the significant changes</action>
@@ -1274,61 +1167,27 @@ Charlie (Senior Dev): "Better to catch this now than three stories into the next
1274
1167
  <step n="10" goal="Retrospective Closure with Celebration and Commitment">
1275
1168
 
1276
1169
  <output>
1277
- Bob (Scrum Master): "We've covered a lot of ground today. Let me bring this retrospective to a close."
1278
-
1279
1170
  ═══════════════════════════════════════════════════════════
1280
- ✅ RETROSPECTIVE COMPLETE
1171
+ ✅ RETROSPECTIVE COMPLETE — Epic {{epic_number}}: {{epic_title}}
1281
1172
  ═══════════════════════════════════════════════════════════
1282
1173
 
1283
- Bob (Scrum Master): "Epic {{epic_number}}: {{epic_title}} - REVIEWED"
1284
-
1285
1174
  **Key Takeaways:**
1286
-
1287
1175
  1. {{key_lesson_1}}
1288
1176
  2. {{key_lesson_2}}
1289
1177
  3. {{key_lesson_3}}
1290
- {{#if key_lesson_4}}4. {{key_lesson_4}}{{/if}}
1291
-
1292
- Alice (Product Owner): "That first takeaway is huge - {{impact_of_lesson_1}}."
1293
-
1294
- Charlie (Senior Dev): "And lesson 2 is something we can apply immediately."
1295
-
1296
- Bob (Scrum Master): "Commitments made today:"
1297
-
1298
- - Action Items: {{action_count}}
1299
- - Preparation Tasks: {{prep_task_count}}
1300
- - Critical Path Items: {{critical_count}}
1301
-
1302
- Dana (QA Engineer): "That's a lot of commitments. We need to actually follow through this time."
1178
+ {{#if key_lesson_4}}4. {{key_lesson_4}}{{/if}}
1303
1179
 
1304
- Bob (Scrum Master): "Agreed. Which is why we'll review these action items in our next standup."
1180
+ Commitments: {{action_count}} action items · {{prep_task_count}} prep tasks · {{critical_count}} critical path items
1305
1181
 
1306
- ═══════════════════════════════════════════════════════════
1307
- 🎯 NEXT STEPS:
1308
- ═══════════════════════════════════════════════════════════
1309
-
1310
- 1. Execute Preparation Sprint (Est: {{prep_days}} days)
1311
- 2. Complete Critical Path items before Epic {{next_epic_num}}
1182
+ **Next Steps:**
1183
+ 1. Execute Preparation Sprint ({{prep_days}} days)
1184
+ 2. Complete critical path items before Epic {{next_epic_num}}
1312
1185
  3. Review action items in next standup
1313
- {{#if epic_update_needed}}4. Hold Epic {{next_epic_num}} planning review session{{else}}4. Begin Epic {{next_epic_num}} planning when preparation complete{{/if}}
1314
-
1315
- Elena (Junior Dev): "{{prep_days}} days of prep work is significant, but necessary."
1186
+ {{#if epic_update_needed}}4. Hold Epic {{next_epic_num}} planning review{{else}}4. Begin Epic {{next_epic_num}} planning when prep complete{{/if}}
1316
1187
 
1317
- Alice (Product Owner): "I'll communicate the timeline to stakeholders. They'll understand if we frame it as 'ensuring Epic {{next_epic_num}} success.'"
1188
+ Epic {{epic_number}} delivered {{completed_stories}} stories with {{velocity_description}} velocity across {{blocker_count}} blockers.
1318
1189
 
1319
- ═══════════════════════════════════════════════════════════
1320
-
1321
- Bob (Scrum Master): "Before we wrap, I want to take a moment to acknowledge the team."
1322
-
1323
- Bob (Scrum Master): "Epic {{epic_number}} delivered {{completed_stories}} stories with {{velocity_description}} velocity. We overcame {{blocker_count}} blockers. We learned a lot. That's real work by real people."
1324
-
1325
- Charlie (Senior Dev): "Hear, hear."
1326
-
1327
- Alice (Product Owner): "I'm proud of what we shipped."
1328
-
1329
- Dana (QA Engineer): "And I'm excited about Epic {{next_epic_num}} - especially now that we're prepared for it."
1330
-
1331
- Bob (Scrum Master): "{user_name}, any final thoughts before we close?"
1190
+ {user_name}, any final thoughts before we close?
1332
1191
  </output>
1333
1192
 
1334
1193
  <action>WAIT for {user_name} to share final reflections</action>
@@ -1409,61 +1268,17 @@ Retrospective document was saved successfully, but {sprint_status_file} may need
1409
1268
  <output>
1410
1269
  **✅ Retrospective Complete, {user_name}!**
1411
1270
 
1412
- **Epic Review:**
1413
-
1414
- - Epic {{epic_number}}: {{epic_title}} reviewed
1415
- - Retrospective Status: completed
1416
- - Retrospective saved: {implementation_artifacts}/epic-{{epic_number}}-retro-{date}.md
1417
-
1418
- **Commitments Made:**
1419
-
1420
- - Action Items: {{action_count}}
1421
- - Preparation Tasks: {{prep_task_count}}
1422
- - Critical Path Items: {{critical_count}}
1271
+ Epic {{epic_number}}: {{epic_title}} — retrospective saved: `{implementation_artifacts}/epic-{{epic_number}}-retro-{date}.md`
1272
+ Commitments: {{action_count}} action items · {{prep_task_count}} prep tasks · {{critical_count}} critical path items
1423
1273
 
1424
1274
  **Next Steps:**
1275
+ 1. Review `{implementation_artifacts}/epic-{{epic_number}}-retro-{date}.md`
1276
+ 2. Execute preparation sprint (~{{prep_days}} days) — {{critical_count}} critical items + {{prep_task_count}} prep tasks
1277
+ 3. Review action items in next standup
1278
+ {{#if epic_update_needed}}4. ⚠️ SCHEDULE Epic {{next_epic_num}} planning review — do NOT start until complete{{else}}4. Begin Epic {{next_epic_num}} when prep complete{{/if}}
1425
1279
 
1426
- 1. **Review retrospective summary**: {implementation_artifacts}/epic-{{epic_number}}-retro-{date}.md
1427
-
1428
- 2. **Execute preparation sprint** (Est: {{prep_days}} days)
1429
- - Complete {{critical_count}} critical path items
1430
- - Execute {{prep_task_count}} preparation tasks
1431
- - Verify all action items are in progress
1432
-
1433
- 3. **Review action items in next standup**
1434
- - Ensure ownership is clear
1435
- - Track progress on commitments
1436
- - Adjust timelines if needed
1437
-
1438
- {{#if epic_update_needed}} 4. **IMPORTANT: Schedule Epic {{next_epic_num}} planning review session**
1439
-
1440
- - Significant discoveries from Epic {{epic_number}} require epic updates
1441
- - Review and update affected stories
1442
- - Align team on revised approach
1443
- - Do NOT start Epic {{next_epic_num}} until review is complete
1444
- {{else}}
1445
-
1446
- 4. **Begin Epic {{next_epic_num}} when ready**
1447
- - Start creating stories with SM agent's `create-story`
1448
- - Epic will be marked as `in-progress` automatically when first story is created
1449
- - Ensure all critical path items are done first
1450
- {{/if}}
1451
-
1452
- **Team Performance:**
1453
- Epic {{epic_number}} delivered {{completed_stories}} stories with {{velocity_summary}}. The retrospective surfaced {{insight_count}} key insights and {{significant_discovery_count}} significant discoveries. The team is well-positioned for Epic {{next_epic_num}} success.
1454
-
1455
- {{#if significant_discovery_count > 0}}
1456
- ⚠️ **REMINDER**: Epic update required before starting Epic {{next_epic_num}}
1457
- {{/if}}
1458
-
1459
- ---
1460
-
1461
- Bob (Scrum Master): "Great session today, {user_name}. The team did excellent work."
1462
-
1463
- Alice (Product Owner): "See you at epic planning!"
1464
-
1465
- Charlie (Senior Dev): "Time to knock out that prep work."
1466
-
1280
+ Epic {{epic_number}}: {{completed_stories}} stories · {{velocity_summary}} · {{insight_count}} insights · {{significant_discovery_count}} discoveries
1281
+ {{#if significant_discovery_count > 0}}⚠️ Epic update required before starting Epic {{next_epic_num}}{{/if}}
1467
1282
  </output>
1468
1283
 
1469
1284
  </step>
@@ -35,6 +35,22 @@
35
35
  | Risk | Impact | Mitigation |
36
36
  |------|--------|------------|
37
37
 
38
+ ## Files Touched
39
+
40
+ <!-- Planner must populate before handoff to executor. Used by wave-overlap checker and merge reviewers. -->
41
+
42
+ **Creates:**
43
+ <!-- - `exact/path/new-file.ts` — one-line responsibility -->
44
+
45
+ **Modifies:**
46
+ <!-- - `exact/path/existing.ts` — what changes -->
47
+
48
+ **Tests:**
49
+ <!-- - `tests/exact/path/test.ts` — tests for -->
50
+
51
+ **Aggregator files (append-only — never replace):**
52
+ <!-- - `packages/shared/src/index.ts` — adds export for X -->
53
+
38
54
  ## Sprint Review
39
55
 
40
56
  <!-- Fill at sprint completion only — omit this section until then -->
@@ -18,6 +18,7 @@ If `$ARGUMENTS` contains `--help` or `-h`:
18
18
 
19
19
  ```
20
20
  /rcode-audit # interactive — asks what to audit
21
+ /rcode-audit --auto # non-interactive — auto-picks best target from project state
21
22
  /rcode-audit plans [--report] # → audit-plans (structural + status + deps check)
22
23
  /rcode-audit phase [<NN>] # → /rcode-verify-phase
23
24
  /rcode-audit milestone [--strict] # → /rcode-audit-milestone (with synth fallback)
@@ -49,6 +50,8 @@ DISCUSS=$($TOOL config-get workflow.discuss_mode 2>/dev/null || echo "adaptive")
49
50
  ```
50
51
 
51
52
  Parse `$ARGUMENTS`:
53
+ - If `--auto` flag is present: strip it from args and force `MODE=yolo` for this invocation
54
+ (allows non-interactive runs without permanently changing the project config).
52
55
  - First word ∈ {plans, phase, milestone, uat, code, fix, work, lens, worktrees} → set `$TARGET`, drop it from args, jump to Step 4.
53
56
  - Empty or unrecognised → continue to Step 2.
54
57
 
@@ -40,7 +40,7 @@ AskUserQuestion(
40
40
 
41
41
  ## Step 2 — Load brainstorming methods
42
42
 
43
- Read `rcode/references/brain-methods.csv` and parse it.
43
+ Read `.rcode/references/brain-methods.csv` and parse it.
44
44
 
45
45
  If `--method` was specified:
46
46
  - Validate the method exists in the CSV
@@ -29,9 +29,10 @@ Closure: `rcode ► COUNCIL COMPLETE ✓` + Next Up with decision options.
29
29
 
30
30
  <required_reading>
31
31
  @.rcode/references/auto-init-guard.md
32
- @.rcode/references/output-format.md
33
32
  @.rcode/references/council-protocol.md
34
33
  </required_reading>
34
+ <!-- output-format.md removed: council is self-contained via <output_format> above.
35
+ General banner/todo/spawn patterns are defined inline — no 398-line load needed. -->
35
36
 
36
37
  <process>
37
38
  ## Step 0 — Usage check
@@ -101,6 +102,12 @@ list from INIT_JSON so new agents added to team.yaml are automatically available
101
102
  Do not invoke `general-purpose` or any agent type not present in
102
103
  `installed_agents`. If the scorer surfaces an unknown agent, drop it
103
104
  from the panel silently.
105
+
106
+ **Post-install agent namespace fallback:** If a `Task(subagent_type="rcode-{id}")` call
107
+ fails with "Agent type not found", the runtime has not yet registered the new agent files
108
+ (requires IDE/window reload). In that case retry with `subagent_type="rihal-{id}"` — the
109
+ `rihal-*` agents are content-identical to `rcode-*` (pre-rebrand names). If neither works,
110
+ skip that panelist and log `[council] agent rcode-{id} not available — reload IDE to register`.
104
111
  </available_agent_types>
105
112
 
106
113
  ## Step 1 — Observe
@@ -9,7 +9,11 @@ Write an Architecture Decision Record (ADR) or system design document. Delegates
9
9
  Locate and follow the installed skill:
10
10
 
11
11
  ```bash
12
- find .rcode/skills/actions -path "*rcode-create-architecture/workflow.md" 2>/dev/null | head -1
12
+ if [ -f .rcode/skills/rcode-create-architecture/workflow.md ]; then
13
+ printf '%s\n' ".rcode/skills/rcode-create-architecture/workflow.md"
14
+ else
15
+ find .rcode/skills/actions -path "*rcode-create-architecture/workflow.md" 2>/dev/null | head -1
16
+ fi
13
17
  ```
14
18
 
15
19
  Read and follow the workflow at that path. If the path is empty:
@@ -9,7 +9,11 @@ Create a Product Requirements Document from scratch through guided facilitation.
9
9
  Locate and follow the installed skill:
10
10
 
11
11
  ```bash
12
- find .rcode/skills/actions -path "*rcode-create-prd/workflow.md" 2>/dev/null | head -1
12
+ if [ -f .rcode/skills/rcode-create-prd/workflow.md ]; then
13
+ printf '%s\n' ".rcode/skills/rcode-create-prd/workflow.md"
14
+ else
15
+ find .rcode/skills/actions -path "*rcode-create-prd/workflow.md" 2>/dev/null | head -1
16
+ fi
13
17
  ```
14
18
 
15
19
  Read and follow the workflow at that path. If the path is empty:
@@ -33,8 +33,11 @@ if [ -f ./server/dashboard.js ]; then
33
33
  # 2. Installed package copy inside project
34
34
  elif [ -f ./.rcode/lib/server/dashboard.js ]; then
35
35
  DASHBOARD="./.rcode/lib/server/dashboard.js"
36
+ # 3. Local npm dependency install
37
+ elif [ -f ./node_modules/@hanzlaa/rcode/server/dashboard.js ]; then
38
+ DASHBOARD="./node_modules/@hanzlaa/rcode/server/dashboard.js"
36
39
  else
37
- # 3. Global installs — check npm, pnpm, and yarn roots
40
+ # 4. Global installs — check npm, pnpm, and yarn roots
38
41
  for ROOT in "$(npm root -g 2>/dev/null)" "$(pnpm root -g 2>/dev/null)" "$(yarn global dir 2>/dev/null)/node_modules"; do
39
42
  [ -z "$ROOT" ] && continue
40
43
  if [ -f "$ROOT/@hanzlaa/rcode/server/dashboard.js" ]; then
@@ -42,7 +45,7 @@ else
42
45
  break
43
46
  fi
44
47
  done
45
- # 4. Last resort — resolve via the rcode/rcode binary symlink
48
+ # 5. Last resort — resolve via the rcode/rcode binary symlink
46
49
  if [ -z "$DASHBOARD" ]; then
47
50
  for BIN in rcode; do
48
51
  BIN_PATH="$(command -v $BIN 2>/dev/null)" || continue
@@ -39,21 +39,9 @@ Only include domain-probes.md when `HAS_PRODUCT_SIGNALS` is 0.
39
39
  </downstream_awareness>
40
40
 
41
41
  <philosophy>
42
- **User = founder/visionary. Claude = builder.**
43
-
44
- The user knows:
45
- - How they imagine it working
46
- - What it should look/feel like
47
- - What's essential vs nice-to-have
48
- - Specific behaviors or references they have in mind
49
-
50
- The user doesn't know (and shouldn't be asked):
51
- - Codebase patterns (researcher reads the code)
52
- - Technical risks (researcher identifies these)
53
- - Implementation approach (planner figures this out)
54
- - Success metrics (inferred from the work)
55
-
56
- Ask about vision and implementation choices. Capture decisions for downstream agents.
42
+ User = visionary (knows what, not how). Claude = builder (asks about choices, not implementation).
43
+ Ask about vision and decisions. Capture for downstream agents. Never ask about codebase patterns,
44
+ technical risks, or architecture — those are research/planner territory.
57
45
  </philosophy>
58
46
 
59
47
  <scope_guardrail>
@@ -4,7 +4,7 @@ Execute a phase prompt (SPRINT.md) and create the outcome summary (SUMMARY.md).
4
4
 
5
5
  <required_reading>
6
6
  Read STATE.md before any operation to load project context.
7
- Read config.json for planning behavior settings.
7
+ Read config.yaml for planning behavior settings.
8
8
 
9
9
  @.rcode/references/git-integration.md
10
10
  @.rcode/references/karpathy-guidelines.md
@@ -104,6 +104,8 @@ grep -n "type=\"checkpoint" .planning/phases/XX-name/{phase}-{plan}-SPRINT.md
104
104
 
105
105
  **Pattern A:** init_agent_tracking → capture `EXPECTED_BASE=$(git rev-parse HEAD)` → spawn Task(subagent_type="rcode-executor", model=executor_model) with prompt: execute plan at [path], autonomous, all tasks + SUMMARY + commit, follow deviation/auth rules, report: plan name, tasks, SUMMARY path, commit hash → track agent_id → wait → update tracking → report. **Include `isolation="worktree"` only if `workflow.use_worktrees` is not `false`** (read via `config-get workflow.use_worktrees`). **When using `isolation="worktree"`, include a `<worktree_branch_check>` block in the prompt** instructing the executor to run `git merge-base HEAD {EXPECTED_BASE}` and, if the result differs from `{EXPECTED_BASE}`, reset the branch base with `git reset --soft {EXPECTED_BASE}` before starting work. This corrects a known issue on Windows where `EnterWorktree` creates branches from `main` instead of the feature branch HEAD.
106
106
 
107
+ **Post-install namespace fallback:** If `Task(subagent_type="rcode-executor")` fails with "Agent type not found", the runtime has not yet registered the agent (requires IDE reload after install). Retry with `subagent_type="rihal-executor"`. If that also fails, fall back to Pattern C (execute in main context) and log `[execute-sprint] rcode-executor not available — reload IDE or executing in main context`.
108
+
107
109
  **Pattern B:** Execute segment-by-segment. Autonomous segments: spawn subagent for assigned tasks only (no SUMMARY/commit). Checkpoints: main context. After all segments: aggregate, create SUMMARY, commit. See segment_execution.
108
110
 
109
111
  **Pattern C:** Execute in main using standard flow (step name="execute").