@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.
- package/AGENTS.md +1 -1
- package/README.md +2 -2
- package/cli/doctor.js +17 -0
- package/cli/github-sync.js +3 -2
- package/cli/index.js +16 -0
- package/cli/install.js +1 -0
- package/cli/lib/manifest.cjs +13 -0
- package/cli/set-mode.js +10 -0
- package/cli/set-profile.js +10 -0
- package/cli/uninstall.js +100 -39
- package/cli/workflow.js +97 -0
- package/dist/rcode.js +249 -229
- package/package.json +1 -1
- package/rcode/bin/lib/config.cjs +3 -2
- package/rcode/bin/rcode-tools.cjs +8 -3
- package/rcode/skills/SKILLS_INDEX.md +4 -3
- package/rcode/skills/actions/1-analysis/rcode-document-project/SKILL.md +6 -0
- package/rcode/skills/actions/3-solutioning/rcode-check-implementation-readiness/SKILL.md +6 -0
- package/rcode/skills/actions/3-solutioning/rcode-create-architecture/steps/step-01-init.md +1 -1
- package/rcode/skills/actions/3-solutioning/rcode-create-architecture/workflow.md +13 -1
- package/rcode/skills/actions/4-implementation/rcode-herdr-orchestration/SKILL.md +166 -0
- package/rcode/skills/actions/4-implementation/rcode-herdr-orchestration/references.md +136 -0
- package/rcode/skills/actions/4-implementation/rcode-herdr-orchestration/rules/backlog-building.md +113 -0
- package/rcode/skills/actions/4-implementation/rcode-herdr-orchestration/rules/composition-with-herdr.md +85 -0
- package/rcode/skills/actions/4-implementation/rcode-herdr-orchestration/rules/integration-branch.md +191 -0
- package/rcode/skills/actions/4-implementation/rcode-herdr-orchestration/rules/merge-strategy.md +113 -0
- package/rcode/skills/actions/4-implementation/rcode-herdr-orchestration/rules/orchestrator-rhythm.md +119 -0
- package/rcode/skills/actions/4-implementation/rcode-herdr-orchestration/rules/wave-design.md +100 -0
- package/rcode/skills/actions/4-implementation/rcode-herdr-orchestration/templates/BACKLOG-template.md +34 -0
- package/rcode/skills/actions/4-implementation/rcode-herdr-orchestration/templates/STATE-template.md +40 -0
- package/rcode/skills/actions/4-implementation/rcode-herdr-orchestration/templates/heartbeat.sh +29 -0
- package/rcode/skills/actions/4-implementation/rcode-herdr-orchestration/templates/wave-prompt.md +69 -0
- package/rcode/skills/actions/4-implementation/rcode-retrospective/workflow.md +61 -246
- package/rcode/templates/sprint.md +16 -0
- package/rcode/workflows/audit.md +3 -0
- package/rcode/workflows/brainstorm.md +1 -1
- package/rcode/workflows/council.md +8 -1
- package/rcode/workflows/create-architecture.md +5 -1
- package/rcode/workflows/create-prd.md +5 -1
- package/rcode/workflows/dashboard.md +5 -2
- package/rcode/workflows/discuss-phase.md +3 -15
- package/rcode/workflows/execute-sprint.md +3 -1
- package/rcode/workflows/plan-spawn-planner.md +96 -0
- package/rcode/workflows/plan.md +67 -0
- package/rcode/workflows/retrospective.md +5 -1
- package/rcode/workflows/sprint-planning.md +9 -5
- package/server/dashboard.js +2 -2
package/rcode/skills/actions/4-implementation/rcode-herdr-orchestration/templates/wave-prompt.md
ADDED
|
@@ -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.
|
|
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
|
|
509
|
-
|
|
510
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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. {{
|
|
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
|
-
|
|
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
|
-
|
|
1013
|
-
|
|
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
|
-
|
|
944
|
+
Recommended: review Epic {{next_epic_num}} definition · update affected stories · hold alignment session{{#if prd_update_needed}} · update PRD{{/if}}
|
|
1023
945
|
|
|
1024
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1180
|
+
Commitments: {{action_count}} action items · {{prep_task_count}} prep tasks · {{critical_count}} critical path items
|
|
1305
1181
|
|
|
1306
|
-
|
|
1307
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 -->
|
package/rcode/workflows/audit.md
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
#
|
|
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
|
-
#
|
|
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
|
-
|
|
43
|
-
|
|
44
|
-
|
|
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.
|
|
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").
|