@hanzlaa/rcode 4.1.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hanzlaa/rcode",
3
- "version": "4.1.0",
3
+ "version": "4.1.1",
4
4
  "description": "rcode — the AI team that never forgets. Persistent memory, specialist agents, and slash commands for AI IDEs. Works in Claude Code, Cursor, Gemini, VS Code, and Antigravity.",
5
5
  "main": "cli/index.js",
6
6
  "bin": {
@@ -142,12 +142,13 @@ function cmdSet(projectRoot, dottedKey, value) {
142
142
  fs.mkdirSync(path.dirname(cp), { recursive: true });
143
143
  const existing = fs.existsSync(cp) ? fs.readFileSync(cp, 'utf8') : '';
144
144
  const config = parseNestedYaml(existing);
145
- setAt(config, dottedKey, value);
145
+ const normalizedValue = stripQuotes(String(value).trim());
146
+ setAt(config, dottedKey, normalizedValue);
146
147
  const out = serialise(config);
147
148
  const tmp = cp + '.tmp';
148
149
  fs.writeFileSync(tmp, out, 'utf8');
149
150
  fs.renameSync(tmp, cp);
150
- return { ok: true, key: dottedKey, value, path: cp };
151
+ return { ok: true, key: dottedKey, value: normalizedValue, path: cp };
151
152
  }
152
153
 
153
154
  module.exports = {
@@ -3170,7 +3170,9 @@ function cmdState(subArgs) {
3170
3170
  }
3171
3171
  }
3172
3172
 
3173
- // Walk .rcode/phases/*/sprint-*.md parse sprints into state.sprints[] (issue #135).
3173
+ // Walk phase sprint artifacts into state.sprints[] (issue #135).
3174
+ // Support both legacy `sprint-1.md` and workflow-generated
3175
+ // `01-01-SPRINT.md` / `1-1-SPRINT.md` names.
3174
3176
  const phasesDir = path.join(PLANNING_DIR, 'phases');
3175
3177
  const rcodePhasesDir = path.join(RCODE_DIR, 'phases');
3176
3178
  const sprintRoot = fs.existsSync(phasesDir) ? phasesDir : (fs.existsSync(rcodePhasesDir) ? rcodePhasesDir : null);
@@ -3182,9 +3184,11 @@ function cmdState(subArgs) {
3182
3184
  const phaseNumMatch = phaseEntry.match(/^(\d+(?:\.\d+)?)/);
3183
3185
  const phaseNum = phaseNumMatch ? phaseNumMatch[1] : phaseEntry;
3184
3186
  for (const file of fs.readdirSync(phaseDir)) {
3185
- const sprintMatch = file.match(/^sprint-(\d+)\.md$/);
3187
+ const sprintMatch =
3188
+ file.match(/^sprint-(\d+)\.md$/i) ||
3189
+ file.match(/^(?:\d+(?:\.\d+)?[-_.])?(\d+)[-_.].*SPRINT\.md$/i);
3186
3190
  if (!sprintMatch) continue;
3187
- const sprintNum = sprintMatch[1];
3191
+ const sprintNum = String(parseInt(sprintMatch[1], 10));
3188
3192
  const sprintKey = `${phaseNum}/${sprintNum}`;
3189
3193
  parsed.sprints_found += 1;
3190
3194
  const sprintPath = path.join(phaseDir, file);
@@ -6795,6 +6799,7 @@ function cmdGitignore(args) {
6795
6799
  '.rcode/brain/best-practices/',
6796
6800
  '',
6797
6801
  '# Runtime noise',
6802
+ 'node_modules/',
6798
6803
  '.rcode/state.json.lock',
6799
6804
  '.planning/debug/',
6800
6805
  '.planning/_backup/',
@@ -70,7 +70,7 @@ Try to discover the following:
70
70
  - Project Documentation (generally multiple documents might be found for this in the `{project_knowledge}` or `{project-root}/docs` folder.)
71
71
  - Project Context (`**/project-context.md`)
72
72
 
73
- <critical>Confirm what you have found with the user, along with asking if the user wants to provide anything else. Only after this confirmation will you proceed to follow the loading rules</critical>
73
+ <critical>If auto mode is active (--auto flag or config.mode == "yolo"): skip user confirmation — log "Auto mode: proceeding with discovered documents: [list]" and continue directly to Loading Rules. Otherwise: confirm what you have found with the user, ask if they want to provide anything else, and only proceed after confirmation.</critical>
74
74
 
75
75
  **Loading Rules:**
76
76
 
@@ -18,14 +18,26 @@ This uses **micro-file architecture** for disciplined execution:
18
18
 
19
19
  ---
20
20
 
21
+ ## AUTO MODE
22
+
23
+ **If `--auto` was passed in ARGUMENTS OR `config.mode == "yolo"`:**
24
+ - Skip all user-confirmation gates throughout the workflow.
25
+ - In step-01-init: discover input documents automatically, proceed without asking the user to confirm or add files.
26
+ - In all subsequent steps: choose the recommended option at every decision point without prompting.
27
+ - Log each auto-selected choice inline so the output is auditable.
28
+ - This flag persists for the entire workflow invocation (all steps see it).
29
+
30
+ ---
31
+
21
32
  ## INITIALIZATION
22
33
 
23
34
  ### Configuration Loading
24
35
 
25
- Load config from `{project-root}/.rcode/config.json` and resolve:
36
+ Load config from `{project-root}/.rcode/config.yaml` and resolve:
26
37
 
27
38
  - `project_name`, `output_folder`, `planning_artifacts`, `user_name`
28
39
  - `communication_language`, `document_output_language`, `user_skill_level`
40
+ - `mode` — if `yolo`, treat as `--auto` for this entire invocation
29
41
  - `date` as system-generated current datetime
30
42
  - ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
31
43
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: rcode-herdr-orchestration
3
- description: Orchestrate parallel cld agents in herdr — single-shot fan-out OR long-running autonomous wave-based fix campaign with durable backlog and integration branch. Do NOT use for a single quick task; invoke directly without herdr for that.
3
+ description: Orchestrate parallel cld agents in herdr — fan-out or autonomous wave campaign.
4
4
  triggers:
5
5
  # English — single-shot orchestration
6
6
  - "orchestrate agents"
@@ -50,6 +50,10 @@ Two modes: **single-shot** (bounded fan-out, one sitting, merge back done) and
50
50
  branch). Both share the same golden rules and pane mechanics. See `references.md` for
51
51
  the full campaign workflow and deep-dive rules.
52
52
 
53
+ **Do NOT use for a single quick task** — invoke the work directly without herdr for that.
54
+ Orchestration overhead (worktrees, panes, monitoring) only pays off across multiple
55
+ independent agents.
56
+
53
57
  ---
54
58
 
55
59
  ## Golden rules (NON-NEGOTIABLE — apply to BOTH modes)
@@ -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>
@@ -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>