@hanzlaa/rcode 3.2.1 → 3.3.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 (278) hide show
  1. package/CONTRIBUTING.md +9 -9
  2. package/README.md +50 -50
  3. package/cli/context.js +4 -4
  4. package/cli/doctor.js +1 -1
  5. package/cli/generate-command-skills.cjs +203 -0
  6. package/cli/install.js +29 -12
  7. package/cli/lib/memory-bank.cjs +5 -5
  8. package/cli/set-mode.js +2 -2
  9. package/cli/uninstall.js +5 -5
  10. package/dist/rcode.js +27 -16
  11. package/package.json +1 -1
  12. package/rihal/DOCS-AUDIT.md +1 -1
  13. package/rihal/agents/rihal-ahmed.md +1 -1
  14. package/rihal/agents/rihal-codebase-mapper.md +3 -3
  15. package/rihal/agents/rihal-debugger.md +2 -2
  16. package/rihal/agents/rihal-fatima.md +2 -2
  17. package/rihal/agents/rihal-haitham.md +2 -2
  18. package/rihal/agents/rihal-khalid.md +1 -1
  19. package/rihal/agents/rihal-layla.md +1 -1
  20. package/rihal/agents/rihal-nasser.md +1 -1
  21. package/rihal/agents/rihal-noor.md +1 -1
  22. package/rihal/agents/rihal-nyquist-auditor.md +1 -1
  23. package/rihal/agents/rihal-omar.md +1 -1
  24. package/rihal/agents/rihal-phase-researcher.md +3 -3
  25. package/rihal/agents/rihal-planner.md +1 -1
  26. package/rihal/agents/rihal-project-researcher.md +2 -2
  27. package/rihal/agents/rihal-research-synthesizer.md +3 -3
  28. package/rihal/agents/rihal-roadmapper.md +3 -3
  29. package/rihal/agents/rihal-sadiq.md +1 -1
  30. package/rihal/agents/rihal-sprint-checker.md +3 -3
  31. package/rihal/agents/rihal-verifier.md +2 -2
  32. package/rihal/agents/rihal-waleed.md +1 -1
  33. package/rihal/agents/rihal-yousef.md +2 -2
  34. package/rihal/agents/rihal-zahra.md +1 -1
  35. package/rihal/agents/rihal-zayd.md +1 -1
  36. package/rihal/agents/rules/phase-researcher/detailed-guide.md +1 -1
  37. package/rihal/agents/rules/roadmapper/detailed-guide.md +1 -1
  38. package/rihal/agents/rules/sprint-checker/dimensions.md +3 -3
  39. package/rihal/agents/rules/sprint-checker/process.md +2 -2
  40. package/rihal/agents/rules/verifier/gap-output.md +1 -1
  41. package/rihal/agents/rules/verifier/verification-report.md +1 -1
  42. package/rihal/bin/rihal-hooks.cjs +6 -6
  43. package/rihal/bin/rihal-tools.cjs +60 -23
  44. package/rihal/brain/README.md +2 -2
  45. package/rihal/brain/best-practices/no-autonomous-bypass.md +2 -2
  46. package/rihal/brain/best-practices/research-citation-rule.md +1 -1
  47. package/rihal/brain/best-practices/state-sync-rule.md +4 -4
  48. package/rihal/commands/add-phase.md +1 -1
  49. package/rihal/commands/add-tests.md +1 -1
  50. package/rihal/commands/add-todo.md +1 -1
  51. package/rihal/commands/analyze-dependencies.md +1 -1
  52. package/rihal/commands/audit-fix.md +1 -1
  53. package/rihal/commands/audit-milestone.md +1 -1
  54. package/rihal/commands/audit-uat.md +1 -1
  55. package/rihal/commands/audit.md +1 -1
  56. package/rihal/commands/autonomous.md +1 -1
  57. package/rihal/commands/brainstorm.md +1 -1
  58. package/rihal/commands/chain.md +1 -1
  59. package/rihal/commands/check-todos.md +1 -1
  60. package/rihal/commands/checkpoint-preview.md +1 -1
  61. package/rihal/commands/cleanup.md +2 -2
  62. package/rihal/commands/code-review-fix.md +1 -1
  63. package/rihal/commands/code-review.md +1 -1
  64. package/rihal/commands/complete-milestone.md +1 -1
  65. package/rihal/commands/config.md +2 -2
  66. package/rihal/commands/correct-course.md +1 -1
  67. package/rihal/commands/council.md +1 -1
  68. package/rihal/commands/create-epics-and-stories.md +1 -1
  69. package/rihal/commands/create-story.md +2 -2
  70. package/rihal/commands/dashboard.md +1 -1
  71. package/rihal/commands/debug.md +1 -1
  72. package/rihal/commands/decisions.md +1 -1
  73. package/rihal/commands/dev-story.md +1 -1
  74. package/rihal/commands/diff.md +1 -1
  75. package/rihal/commands/discuss-phase.md +1 -1
  76. package/rihal/commands/discuss.md +2 -2
  77. package/rihal/commands/do.md +2 -2
  78. package/rihal/commands/docs-update.md +1 -1
  79. package/rihal/commands/document-project.md +1 -1
  80. package/rihal/commands/enable-hooks.md +1 -1
  81. package/rihal/commands/execute-sprint.md +2 -2
  82. package/rihal/commands/execute.md +1 -1
  83. package/rihal/commands/explore.md +1 -1
  84. package/rihal/commands/export-to-github.md +1 -1
  85. package/rihal/commands/forensics.md +1 -1
  86. package/rihal/commands/from-template.md +1 -1
  87. package/rihal/commands/health.md +1 -1
  88. package/rihal/commands/help.md +1 -1
  89. package/rihal/commands/import.md +1 -1
  90. package/rihal/commands/inbox.md +1 -1
  91. package/rihal/commands/init.md +1 -1
  92. package/rihal/commands/insert-phase.md +1 -1
  93. package/rihal/commands/install.md +1 -1
  94. package/rihal/commands/list-plans.md +1 -1
  95. package/rihal/commands/list-workspaces.md +1 -1
  96. package/rihal/commands/map-codebase.md +1 -1
  97. package/rihal/commands/milestone-summary.md +1 -1
  98. package/rihal/commands/new-milestone.md +1 -1
  99. package/rihal/commands/new-project.md +1 -1
  100. package/rihal/commands/new-workspace.md +1 -1
  101. package/rihal/commands/next.md +1 -1
  102. package/rihal/commands/note.md +1 -1
  103. package/rihal/commands/notify-test.md +1 -1
  104. package/rihal/commands/pause-work.md +1 -1
  105. package/rihal/commands/plan-milestone-gaps.md +3 -3
  106. package/rihal/commands/plan.md +2 -2
  107. package/rihal/commands/plant-seed.md +1 -1
  108. package/rihal/commands/pr-branch.md +2 -2
  109. package/rihal/commands/prfaq.md +1 -1
  110. package/rihal/commands/profile-user.md +1 -1
  111. package/rihal/commands/progress.md +3 -3
  112. package/rihal/commands/quick.md +1 -1
  113. package/rihal/commands/remove-phase.md +1 -1
  114. package/rihal/commands/remove-workspace.md +1 -1
  115. package/rihal/commands/replay.md +1 -1
  116. package/rihal/commands/rerun.md +1 -1
  117. package/rihal/commands/research-phase.md +2 -2
  118. package/rihal/commands/resume-work.md +1 -1
  119. package/rihal/commands/review.md +1 -1
  120. package/rihal/commands/scan.md +1 -1
  121. package/rihal/commands/secure-phase.md +1 -1
  122. package/rihal/commands/session-report.md +1 -1
  123. package/rihal/commands/settings.md +1 -1
  124. package/rihal/commands/ship.md +2 -2
  125. package/rihal/commands/show.md +1 -1
  126. package/rihal/commands/sprint-planning.md +1 -1
  127. package/rihal/commands/sprint-status.md +1 -1
  128. package/rihal/commands/stats.md +1 -1
  129. package/rihal/commands/status.md +1 -1
  130. package/rihal/commands/ui-phase.md +1 -1
  131. package/rihal/commands/ui-review.md +1 -1
  132. package/rihal/commands/undo.md +1 -1
  133. package/rihal/commands/update.md +1 -1
  134. package/rihal/commands/validate-phase.md +1 -1
  135. package/rihal/commands/verify-phase.md +2 -2
  136. package/rihal/commands/verify-work.md +1 -1
  137. package/rihal/commands/why.md +1 -1
  138. package/rihal/commands/workstream.md +1 -1
  139. package/rihal/references/agent-shared-rules.md +1 -1
  140. package/rihal/references/command-redirect-format.md +7 -7
  141. package/rihal/references/context-budget.md +2 -2
  142. package/rihal/references/continuation-format.md +16 -16
  143. package/rihal/references/dispatch-banner.md +1 -1
  144. package/rihal/references/execution-protocol.md +2 -2
  145. package/rihal/references/gates.md +3 -3
  146. package/rihal/references/git-integration.md +1 -1
  147. package/rihal/references/output-format.md +4 -4
  148. package/rihal/references/output-realism.md +1 -1
  149. package/rihal/references/revision-loop.md +1 -1
  150. package/rihal/references/state-schema.md +15 -15
  151. package/rihal/references/ui-brand.md +1 -1
  152. package/rihal/references/verb-dictionary.md +15 -15
  153. package/rihal/references/workstream-flag.md +28 -28
  154. package/rihal/skills/_shared/no-autonomous-bypass.md +2 -2
  155. package/rihal/skills/_shared/research-citation-rule.md +1 -1
  156. package/rihal/skills/_shared/state-sync-rule.md +4 -4
  157. package/rihal/skills/actions/1-analysis/rihal-prfaq/SKILL.md +1 -1
  158. package/rihal/skills/actions/2-plan/rihal-create-epics-and-stories/workflow.md +1 -1
  159. package/rihal/skills/actions/2-plan/rihal-create-milestone/SKILL.md +2 -2
  160. package/rihal/skills/actions/2-plan/rihal-create-milestone/steps/step-06-phase-stubs.md +2 -2
  161. package/rihal/skills/actions/2-plan/rihal-create-milestone/steps/step-07-backlog.md +2 -2
  162. package/rihal/skills/actions/2-plan/rihal-create-milestone/steps/step-09-state-sync.md +2 -2
  163. package/rihal/skills/actions/2-plan/rihal-create-milestone/steps/step-10-complete.md +4 -4
  164. package/rihal/skills/actions/2-plan/rihal-create-milestone/workflow.md +5 -5
  165. package/rihal/skills/actions/2-plan/rihal-create-prd/SKILL.md +1 -1
  166. package/rihal/skills/actions/2-plan/rihal-create-prd/workflow.md +1 -1
  167. package/rihal/skills/actions/2-plan/rihal-create-story/workflow.md +1 -1
  168. package/rihal/skills/actions/4-implementation/rihal-checkpoint-preview/SKILL.md +3 -3
  169. package/rihal/skills/actions/4-implementation/rihal-dev-story/workflow.md +1 -1
  170. package/rihal/skills/actions/4-implementation/rihal-sprint-planning/SKILL.md +1 -1
  171. package/rihal/skills/actions/4-implementation/rihal-sprint-planning/checklist.md +1 -1
  172. package/rihal/skills/actions/4-implementation/rihal-sprint-planning/workflow.md +1 -1
  173. package/rihal/skills/actions/4-implementation/rihal-sprint-status/workflow.md +5 -5
  174. package/rihal/skills/agents/dalil-scout/SKILL.md +7 -7
  175. package/rihal/skills/core/rihal-brainstorming/SKILL.md +1 -1
  176. package/rihal/skills/core/rihal-init/SKILL.md +1 -1
  177. package/rihal/skills/core/rihal-party-mode/SKILL.md +1 -1
  178. package/rihal/templates/milestone.md +1 -1
  179. package/rihal/templates/projects/api-backend/PROJECT.md +1 -1
  180. package/rihal/templates/projects/mobile-app/PROJECT.md +1 -1
  181. package/rihal/templates/projects/saas-b2b/PROJECT.md +1 -1
  182. package/rihal/workflows/add-phase.md +10 -10
  183. package/rihal/workflows/add-tests.md +9 -9
  184. package/rihal/workflows/add-todo.md +5 -5
  185. package/rihal/workflows/analyze-dependencies.md +7 -7
  186. package/rihal/workflows/audit-fix.md +4 -4
  187. package/rihal/workflows/audit-milestone.md +8 -8
  188. package/rihal/workflows/audit-uat.md +2 -2
  189. package/rihal/workflows/audit.md +28 -28
  190. package/rihal/workflows/autonomous.md +128 -44
  191. package/rihal/workflows/brainstorm.md +7 -7
  192. package/rihal/workflows/chain.md +16 -16
  193. package/rihal/workflows/check-implementation-readiness.md +4 -4
  194. package/rihal/workflows/check-todos.md +8 -8
  195. package/rihal/workflows/checkpoint-preview.md +1 -1
  196. package/rihal/workflows/code-review-fix.md +10 -10
  197. package/rihal/workflows/code-review.md +10 -10
  198. package/rihal/workflows/complete-milestone.md +5 -5
  199. package/rihal/workflows/correct-course.md +7 -7
  200. package/rihal/workflows/council.md +15 -15
  201. package/rihal/workflows/create-epics-and-stories.md +9 -9
  202. package/rihal/workflows/create-story.md +11 -11
  203. package/rihal/workflows/dashboard.md +8 -8
  204. package/rihal/workflows/debug.md +6 -6
  205. package/rihal/workflows/decisions.md +5 -5
  206. package/rihal/workflows/dev-story.md +12 -12
  207. package/rihal/workflows/diagnose-issues.md +2 -2
  208. package/rihal/workflows/diff.md +3 -3
  209. package/rihal/workflows/discuss-phase-power.md +7 -7
  210. package/rihal/workflows/discuss-phase.md +14 -14
  211. package/rihal/workflows/discuss.md +9 -9
  212. package/rihal/workflows/do.md +79 -79
  213. package/rihal/workflows/docs-update.md +6 -6
  214. package/rihal/workflows/document-project.md +5 -5
  215. package/rihal/workflows/enable-hooks.md +5 -5
  216. package/rihal/workflows/execute-sprint.md +3 -3
  217. package/rihal/workflows/execute.md +28 -28
  218. package/rihal/workflows/explore.md +5 -5
  219. package/rihal/workflows/export-to-github.md +5 -5
  220. package/rihal/workflows/forensics.md +8 -8
  221. package/rihal/workflows/from-template.md +8 -8
  222. package/rihal/workflows/health.md +11 -11
  223. package/rihal/workflows/help.md +117 -117
  224. package/rihal/workflows/import.md +4 -4
  225. package/rihal/workflows/inbox.md +8 -8
  226. package/rihal/workflows/init.md +23 -23
  227. package/rihal/workflows/insert-phase.md +9 -9
  228. package/rihal/workflows/install.md +3 -3
  229. package/rihal/workflows/karpathy-audit.md +11 -11
  230. package/rihal/workflows/list-plans.md +8 -8
  231. package/rihal/workflows/list-workspaces.md +7 -7
  232. package/rihal/workflows/map-codebase.md +5 -5
  233. package/rihal/workflows/milestone-summary.md +7 -7
  234. package/rihal/workflows/new-milestone.md +11 -11
  235. package/rihal/workflows/new-project-research.md +1 -1
  236. package/rihal/workflows/new-project-roadmap.md +8 -8
  237. package/rihal/workflows/new-project.md +32 -32
  238. package/rihal/workflows/new-workspace.md +7 -7
  239. package/rihal/workflows/next.md +13 -13
  240. package/rihal/workflows/note.md +7 -7
  241. package/rihal/workflows/notify-test.md +6 -6
  242. package/rihal/workflows/pause-work.md +6 -6
  243. package/rihal/workflows/plan-milestone-gaps.md +7 -7
  244. package/rihal/workflows/plan.md +28 -28
  245. package/rihal/workflows/plant-seed.md +3 -3
  246. package/rihal/workflows/pr-branch.md +1 -1
  247. package/rihal/workflows/prfaq.md +1 -1
  248. package/rihal/workflows/profile-user.md +5 -5
  249. package/rihal/workflows/progress.md +6 -6
  250. package/rihal/workflows/quick.md +12 -12
  251. package/rihal/workflows/remove-phase.md +6 -6
  252. package/rihal/workflows/remove-workspace.md +8 -8
  253. package/rihal/workflows/replay.md +8 -8
  254. package/rihal/workflows/rerun.md +5 -5
  255. package/rihal/workflows/research-phase.md +2 -2
  256. package/rihal/workflows/resume-work.md +10 -10
  257. package/rihal/workflows/review-adversarial.md +4 -4
  258. package/rihal/workflows/review-edge-case-hunter.md +5 -5
  259. package/rihal/workflows/review.md +11 -11
  260. package/rihal/workflows/scan.md +9 -9
  261. package/rihal/workflows/secure-phase.md +8 -8
  262. package/rihal/workflows/session-report.md +6 -6
  263. package/rihal/workflows/settings.md +15 -15
  264. package/rihal/workflows/ship.md +11 -11
  265. package/rihal/workflows/show.md +2 -2
  266. package/rihal/workflows/sprint-planning.md +13 -13
  267. package/rihal/workflows/sprint-status.md +10 -10
  268. package/rihal/workflows/stats.md +6 -6
  269. package/rihal/workflows/status.md +15 -7
  270. package/rihal/workflows/ui-phase.md +8 -8
  271. package/rihal/workflows/ui-review.md +5 -5
  272. package/rihal/workflows/undo.md +17 -17
  273. package/rihal/workflows/update.md +12 -12
  274. package/rihal/workflows/validate-phase.md +5 -5
  275. package/rihal/workflows/verify-work.md +18 -18
  276. package/rihal/workflows/why.md +9 -9
  277. package/rihal/workflows/workstream.md +11 -11
  278. package/server/lib/html/client.js +45 -45
package/cli/install.js CHANGED
@@ -498,7 +498,7 @@ function copyDirRecursive(source, dest) {
498
498
 
499
499
  /**
500
500
  * Seed .planning/ with starter ROADMAP.md + STATE.md + PROJECT.md so
501
- * workflows work immediately after install. User can /rihal:sprint-planning
501
+ * workflows work immediately after install. User can /rihal-sprint-planning
502
502
  * on a fresh install without manual setup.
503
503
  *
504
504
  * Only seeds if .planning/ROADMAP.md doesn't already exist (preserves user data).
@@ -548,7 +548,7 @@ function seedStarterPlanning(target, projectName) {
548
548
  `---\n\n` +
549
549
  `## Decisions\n\n_None yet._\n\n` +
550
550
  `## Blockers\n\n_None._\n\n` +
551
- `## Next Action\n\nSay "plan a sprint" or run \`/rihal:sprint-planning\` to break Phase 01 into stories.\n`
551
+ `## Next Action\n\nSay "plan a sprint" or run \`/rihal-sprint-planning\` to break Phase 01 into stories.\n`
552
552
  );
553
553
 
554
554
  // Also pre-seed .rihal/state.json with Phase 01 so sprint tools work
@@ -845,7 +845,7 @@ function buildInstallPlan(ide = 'claude', target = process.cwd()) {
845
845
  plan.push({ src: f, rel: path.join(relBin, rel), executable: f.endsWith('.cjs') });
846
846
  }
847
847
 
848
- // .rihal/templates/projects/ — starter templates consumed by /rihal:from-template
848
+ // .rihal/templates/projects/ — starter templates consumed by /rihal-from-template
849
849
  const projectTemplatesSrc = path.join(SOURCE_ROOT, 'templates', 'projects');
850
850
  const relProjectTemplates = path.relative(target, path.join(target, '.rihal', 'templates', 'projects'));
851
851
  for (const f of walkFiles(projectTemplatesSrc)) {
@@ -1572,7 +1572,7 @@ async function install(opts) {
1572
1572
  console.log('');
1573
1573
  console.log(' ' + warn('config.yaml has validation errors:'));
1574
1574
  for (const e of validation.errors) console.log(pc.yellow(e));
1575
- console.log(dim(' → Edit .rihal/config.yaml to fix, then run /rihal:status'));
1575
+ console.log(dim(' → Edit .rihal/config.yaml to fix, then run /rihal-status'));
1576
1576
  }
1577
1577
  } catch { /* best-effort */ }
1578
1578
 
@@ -1593,16 +1593,16 @@ async function install(opts) {
1593
1593
  ensureDir(path.join(opts.target, '.planning', 'council-sessions'));
1594
1594
 
1595
1595
  // .rihal/context/ — seed stub files so doctor doesn't report "never initialized"
1596
- // The /rihal:init slash command populates these with real project content.
1596
+ // The /rihal-init slash command populates these with real project content.
1597
1597
  const contextDir = path.join(opts.target, '.rihal', 'context');
1598
1598
  ensureDir(contextDir);
1599
1599
  const activeCtx = path.join(contextDir, 'active.md');
1600
1600
  const briefCtx = path.join(contextDir, 'project-brief.md');
1601
1601
  if (!fs.existsSync(activeCtx)) {
1602
- fs.writeFileSync(activeCtx, '# Active Context\n\n_Run `/rihal:init` inside your AI editor to populate this file._\n');
1602
+ fs.writeFileSync(activeCtx, '# Active Context\n\n_Run `/rihal-init` inside your AI editor to populate this file._\n');
1603
1603
  }
1604
1604
  if (!fs.existsSync(briefCtx)) {
1605
- fs.writeFileSync(briefCtx, '# Project Brief\n\n_Run `/rihal:init` inside your AI editor to populate this file._\n');
1605
+ fs.writeFileSync(briefCtx, '# Project Brief\n\n_Run `/rihal-init` inside your AI editor to populate this file._\n');
1606
1606
  }
1607
1607
 
1608
1608
  // ~/.rihal/agents/ global agents directory
@@ -1619,7 +1619,24 @@ async function install(opts) {
1619
1619
 
1620
1620
  // Install v1-style phrase-activated skills (scaffold-project, create-prd,
1621
1621
  // retrospective, etc.) into .claude/skills/ alongside the v2 agents/commands.
1622
- const skillsInstalled = installSkills(PACKAGE_ROOT, opts.target);
1622
+ let skillsInstalled = installSkills(PACKAGE_ROOT, opts.target);
1623
+
1624
+ // Generate install-time skill stubs that mirror sidebar-worthy slash commands.
1625
+ // Source codebase stays clean — these stubs only exist at the install
1626
+ // destination, marked with `generated: true` so they refresh idempotently.
1627
+ // See cli/generate-command-skills.cjs for rationale.
1628
+ try {
1629
+ const { main: generateCommandSkills } = require(path.join(PACKAGE_ROOT, 'cli', 'generate-command-skills.cjs'));
1630
+ const stubsDir = path.join(opts.target, '.claude', 'skills');
1631
+ const result = generateCommandSkills(PACKAGE_ROOT, stubsDir, readPackageVersion());
1632
+ if (result.generated > 0) {
1633
+ console.log(' ' + dim(`${result.generated} sidebar skill stub${result.generated === 1 ? '' : 's'} generated for command discoverability`));
1634
+ skillsInstalled += result.generated;
1635
+ }
1636
+ } catch (err) {
1637
+ // Non-fatal: install succeeds without sidebar stubs
1638
+ console.log(' ' + dim(`(sidebar stub generation skipped: ${err.message})`));
1639
+ }
1623
1640
 
1624
1641
  // Seed .planning/ with starter ROADMAP + STATE so workflows work immediately
1625
1642
  const starterSeeded = seedStarterPlanning(opts.target, opts.projectName);
@@ -1737,13 +1754,13 @@ async function install(opts) {
1737
1754
  console.log(` ${bold('Next:')}`);
1738
1755
  console.log(` cd ${opts.target}`);
1739
1756
  console.log(' claude # start Claude Code (reload window if already open)');
1740
- console.log(' /rihal:progress # where you are, what\'s next');
1741
- console.log(' /rihal:do # interactive command picker');
1742
- console.log(' /rihal:council <q> # multi-agent strategic answer');
1757
+ console.log(' /rihal-progress # where you are, what\'s next');
1758
+ console.log(' /rihal-do # interactive command picker');
1759
+ console.log(' /rihal-council <q> # multi-agent strategic answer');
1743
1760
  console.log('');
1744
1761
  console.log(dim(' Refresh anytime:'));
1745
1762
  console.log(dim(' npx @hanzlaa/rcode@latest install # pull the latest rcode + brain'));
1746
- console.log(dim(` /rihal:update v${version} # pin rcode to a specific version`));
1763
+ console.log(dim(` /rihal-update v${version} # pin rcode to a specific version`));
1747
1764
  console.log('');
1748
1765
  console.log(dim(' Customize without losing changes on update:'));
1749
1766
  console.log(dim(' Create <name>.local.md siblings (e.g. .claude/agents/rihal-waleed.local.md)'));
@@ -9,10 +9,10 @@
9
9
  *
10
10
  * This module detects staleness programmatically by comparing a project
11
11
  * fingerprint (git HEAD, package manifest hash, top-level structure hash)
12
- * against one stored in .rihal/state.json at the last /rihal:init run.
12
+ * against one stored in .rihal/state.json at the last /rihal-init run.
13
13
  *
14
14
  * It is intentionally READ-ONLY + write-fingerprint. The actual scan and
15
- * rewrite of the memory bank is done by Claude when /rihal:init runs —
15
+ * rewrite of the memory bank is done by Claude when /rihal-init runs —
16
16
  * this library only tells callers WHEN to refresh, not HOW.
17
17
  */
18
18
 
@@ -186,7 +186,7 @@ function readState(cwd) {
186
186
 
187
187
  /**
188
188
  * Persist the init fingerprint into .rihal/state.json under `memory_bank`.
189
- * Called by /rihal:init (via rihal-code context --refresh) after a scan
189
+ * Called by /rihal-init (via rihal-code context --refresh) after a scan
190
190
  * rewrites context/active.md + context/project-brief.md.
191
191
  */
192
192
  function writeFingerprint(cwd) {
@@ -238,7 +238,7 @@ function checkStaleness(cwd) {
238
238
  if (!context_files.active && !context_files.brief) {
239
239
  return {
240
240
  status: 'never',
241
- reasons: ['memory bank has never been initialized — run /rihal:init'],
241
+ reasons: ['memory bank has never been initialized — run /rihal-init'],
242
242
  current,
243
243
  stored,
244
244
  context_files,
@@ -264,7 +264,7 @@ function checkStaleness(cwd) {
264
264
  if (!stored) {
265
265
  return {
266
266
  status: 'stale',
267
- reasons: ['run /rihal:init in your editor to populate project context'],
267
+ reasons: ['run /rihal-init in your editor to populate project context'],
268
268
  current,
269
269
  stored,
270
270
  context_files,
package/cli/set-mode.js CHANGED
@@ -12,10 +12,10 @@
12
12
  *
13
13
  * Affects:
14
14
  * - Workflow step files ("halt at menu" vs "pick default and continue")
15
- * - /rihal:kickoff next-step menu (interactive vs auto-continue)
15
+ * - /rihal-kickoff next-step menu (interactive vs auto-continue)
16
16
  * - github-sync confirmation prompts (yolo still requires --force-yolo
17
17
  * for github mutations — see docs/adr/0001-github-sync-as-cli.md)
18
- * - /rihal:pause and /rihal:resume (yolo skips the confirmation prompt
18
+ * - /rihal-pause and /rihal-resume (yolo skips the confirmation prompt
19
19
  * on resume; guided always asks)
20
20
  * - All agent skill files that read communication_mode from config
21
21
  */
package/cli/uninstall.js CHANGED
@@ -19,7 +19,7 @@
19
19
  * --delete-state Also delete .rihal/ (skip prompt)
20
20
  * --purge / --all Wipe everything — editor files,
21
21
  * .rihal/, .planning/, gitignore block.
22
- * Use when you want /rihal:init to
22
+ * Use when you want /rihal-init to
23
23
  * report "fresh" on next install.
24
24
  * --yes / -y Skip the main confirmation
25
25
  */
@@ -49,7 +49,7 @@ function parseArgs(args) {
49
49
  opts.yes = true;
50
50
  } else if (arg === '--purge' || arg === '--all') {
51
51
  // --purge implies --delete-state and removes .planning/ + gitignore block.
52
- // Use this when you want a clean slate so /rihal:init reports "fresh" next time.
52
+ // Use this when you want a clean slate so /rihal-init reports "fresh" next time.
53
53
  opts.purge = true;
54
54
  opts.deleteState = true;
55
55
  }
@@ -596,7 +596,7 @@ async function runUninstall(args) {
596
596
  console.log(` - phases, decisions, progress, artifacts, context`);
597
597
  console.log(` - ${plan.stateDir.files} files total`);
598
598
  console.log();
599
- console.log(` If you keep it: /rihal:init will report "already configured"`);
599
+ console.log(` If you keep it: /rihal-init will report "already configured"`);
600
600
  console.log(` and reuse your existing config + history on next install.`);
601
601
  console.log(` If you delete it: next install starts fresh — no carry-over.`);
602
602
  console.log();
@@ -652,10 +652,10 @@ async function runUninstall(args) {
652
652
  }
653
653
 
654
654
  // Hint about the purge flag if the user kept state — closes the user's
655
- // most common confusion: "I uninstalled but /rihal:init still says configured."
655
+ // most common confusion: "I uninstalled but /rihal-init still says configured."
656
656
  if (plan.stateDir && fs.existsSync(path.join(cwd, '.rihal'))) {
657
657
  console.log();
658
- console.log(`ℹ .rihal/ state was preserved. /rihal:init will detect this on reinstall.`);
658
+ console.log(`ℹ .rihal/ state was preserved. /rihal-init will detect this on reinstall.`);
659
659
  console.log(` For a fully clean slate next time, use: rcode uninstall --purge`);
660
660
  }
661
661
 
package/dist/rcode.js CHANGED
@@ -16183,7 +16183,7 @@ _None._
16183
16183
 
16184
16184
  ## Next Action
16185
16185
 
16186
- Say "plan a sprint" or run \`/rihal:sprint-planning\` to break Phase 01 into stories.
16186
+ Say "plan a sprint" or run \`/rihal-sprint-planning\` to break Phase 01 into stories.
16187
16187
  `
16188
16188
  );
16189
16189
  const rihalStateJson = path2.join(target, ".rihal", "state.json");
@@ -16985,7 +16985,7 @@ Say "plan a sprint" or run \`/rihal:sprint-planning\` to break Phase 01 into sto
16985
16985
  console.log("");
16986
16986
  console.log(" " + warn("config.yaml has validation errors:"));
16987
16987
  for (const e of validation.errors) console.log(pc.yellow(e));
16988
- console.log(dim(" \u2192 Edit .rihal/config.yaml to fix, then run /rihal:status"));
16988
+ console.log(dim(" \u2192 Edit .rihal/config.yaml to fix, then run /rihal-status"));
16989
16989
  }
16990
16990
  } catch {
16991
16991
  }
@@ -17004,10 +17004,10 @@ Say "plan a sprint" or run \`/rihal:sprint-planning\` to break Phase 01 into sto
17004
17004
  const activeCtx = path2.join(contextDir, "active.md");
17005
17005
  const briefCtx = path2.join(contextDir, "project-brief.md");
17006
17006
  if (!fs2.existsSync(activeCtx)) {
17007
- fs2.writeFileSync(activeCtx, "# Active Context\n\n_Run `/rihal:init` inside your AI editor to populate this file._\n");
17007
+ fs2.writeFileSync(activeCtx, "# Active Context\n\n_Run `/rihal-init` inside your AI editor to populate this file._\n");
17008
17008
  }
17009
17009
  if (!fs2.existsSync(briefCtx)) {
17010
- fs2.writeFileSync(briefCtx, "# Project Brief\n\n_Run `/rihal:init` inside your AI editor to populate this file._\n");
17010
+ fs2.writeFileSync(briefCtx, "# Project Brief\n\n_Run `/rihal-init` inside your AI editor to populate this file._\n");
17011
17011
  }
17012
17012
  const globalAgentsDir = path2.join(os.homedir(), ".rihal", "agents");
17013
17013
  ensureDir(globalAgentsDir);
@@ -17015,7 +17015,18 @@ Say "plan a sprint" or run \`/rihal:sprint-planning\` to break Phase 01 into sto
17015
17015
  path2.join(configDir, "files-manifest.csv"),
17016
17016
  generateFilesManifest(plan, opts.target)
17017
17017
  );
17018
- const skillsInstalled = installSkills(PACKAGE_ROOT2, opts.target);
17018
+ let skillsInstalled = installSkills(PACKAGE_ROOT2, opts.target);
17019
+ try {
17020
+ const { main: generateCommandSkills } = require(path2.join(PACKAGE_ROOT2, "cli", "generate-command-skills.cjs"));
17021
+ const stubsDir = path2.join(opts.target, ".claude", "skills");
17022
+ const result = generateCommandSkills(PACKAGE_ROOT2, stubsDir, readPackageVersion());
17023
+ if (result.generated > 0) {
17024
+ console.log(" " + dim(`${result.generated} sidebar skill stub${result.generated === 1 ? "" : "s"} generated for command discoverability`));
17025
+ skillsInstalled += result.generated;
17026
+ }
17027
+ } catch (err) {
17028
+ console.log(" " + dim(`(sidebar stub generation skipped: ${err.message})`));
17029
+ }
17019
17030
  const starterSeeded = seedStarterPlanning(opts.target, opts.projectName);
17020
17031
  installBrainScaffold(PACKAGE_ROOT2, opts.target);
17021
17032
  const gitignoreReport = ensureRcodeGitignore(opts.target, { commitPlanning: opts.commitPlanning });
@@ -17113,13 +17124,13 @@ Say "plan a sprint" or run \`/rihal:sprint-planning\` to break Phase 01 into sto
17113
17124
  console.log(` ${bold("Next:")}`);
17114
17125
  console.log(` cd ${opts.target}`);
17115
17126
  console.log(" claude # start Claude Code (reload window if already open)");
17116
- console.log(" /rihal:progress # where you are, what's next");
17117
- console.log(" /rihal:do # interactive command picker");
17118
- console.log(" /rihal:council <q> # multi-agent strategic answer");
17127
+ console.log(" /rihal-progress # where you are, what's next");
17128
+ console.log(" /rihal-do # interactive command picker");
17129
+ console.log(" /rihal-council <q> # multi-agent strategic answer");
17119
17130
  console.log("");
17120
17131
  console.log(dim(" Refresh anytime:"));
17121
17132
  console.log(dim(" npx @hanzlaa/rcode@latest install # pull the latest rcode + brain"));
17122
- console.log(dim(` /rihal:update v${version} # pin rcode to a specific version`));
17133
+ console.log(dim(` /rihal-update v${version} # pin rcode to a specific version`));
17123
17134
  console.log("");
17124
17135
  console.log(dim(" Customize without losing changes on update:"));
17125
17136
  console.log(dim(" Create <name>.local.md siblings (e.g. .claude/agents/rihal-waleed.local.md)"));
@@ -18474,7 +18485,7 @@ var require_uninstall = __commonJS({
18474
18485
  console.log(` - phases, decisions, progress, artifacts, context`);
18475
18486
  console.log(` - ${plan.stateDir.files} files total`);
18476
18487
  console.log();
18477
- console.log(` If you keep it: /rihal:init will report "already configured"`);
18488
+ console.log(` If you keep it: /rihal-init will report "already configured"`);
18478
18489
  console.log(` and reuse your existing config + history on next install.`);
18479
18490
  console.log(` If you delete it: next install starts fresh \u2014 no carry-over.`);
18480
18491
  console.log();
@@ -18517,7 +18528,7 @@ var require_uninstall = __commonJS({
18517
18528
  }
18518
18529
  if (plan.stateDir && fs2.existsSync(path2.join(cwd, ".rihal"))) {
18519
18530
  console.log();
18520
- console.log(`\u2139 .rihal/ state was preserved. /rihal:init will detect this on reinstall.`);
18531
+ console.log(`\u2139 .rihal/ state was preserved. /rihal-init will detect this on reinstall.`);
18521
18532
  console.log(` For a fully clean slate next time, use: rcode uninstall --purge`);
18522
18533
  }
18523
18534
  console.log(`
@@ -18805,7 +18816,7 @@ var require_memory_bank = __commonJS({
18805
18816
  if (!context_files.active && !context_files.brief) {
18806
18817
  return {
18807
18818
  status: "never",
18808
- reasons: ["memory bank has never been initialized \u2014 run /rihal:init"],
18819
+ reasons: ["memory bank has never been initialized \u2014 run /rihal-init"],
18809
18820
  current,
18810
18821
  stored,
18811
18822
  context_files
@@ -18826,7 +18837,7 @@ var require_memory_bank = __commonJS({
18826
18837
  if (!stored) {
18827
18838
  return {
18828
18839
  status: "stale",
18829
- reasons: ["run /rihal:init in your editor to populate project context"],
18840
+ reasons: ["run /rihal-init in your editor to populate project context"],
18830
18841
  current,
18831
18842
  stored,
18832
18843
  context_files
@@ -19030,7 +19041,7 @@ var require_doctor = __commonJS({
19030
19041
  checks.push({
19031
19042
  label: "Memory bank",
19032
19043
  status: "warn",
19033
- message: "never initialized (run /rihal:init to populate)"
19044
+ message: "never initialized (run /rihal-init to populate)"
19034
19045
  });
19035
19046
  } else {
19036
19047
  checks.push({
@@ -19766,7 +19777,7 @@ var require_context = __commonJS({
19766
19777
  }
19767
19778
  console.log();
19768
19779
  if (report.status !== "fresh") {
19769
- console.log(` \u27A1 Refresh with: /rihal:init (in your editor)`);
19780
+ console.log(` \u27A1 Refresh with: /rihal-init (in your editor)`);
19770
19781
  console.log();
19771
19782
  }
19772
19783
  }
@@ -19798,7 +19809,7 @@ if command -v rcode >/dev/null 2>&1; then
19798
19809
  output=$(rcode context --check 2>&1)
19799
19810
  if [ $? -ne 0 ]; then
19800
19811
  echo ""
19801
- echo "\u26A0 Rihal memory bank is stale \u2014 run /rihal:init in your editor to refresh."
19812
+ echo "\u26A0 Rihal memory bank is stale \u2014 run /rihal-init in your editor to refresh."
19802
19813
  echo " $(echo "$output" | grep '\u2022' | head -1 | sed 's/^ *//')"
19803
19814
  fi
19804
19815
  fi
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hanzlaa/rcode",
3
- "version": "3.2.1",
3
+ "version": "3.3.1",
4
4
  "description": "rcode — the memory bank for AI-driven SaaS teams. Persistent project context, distinctive engineering personas, and phase-based workflows. Built by Rihal. Works in Claude Code, Cursor, Gemini, VS Code, and Antigravity.",
5
5
  "main": "cli/index.js",
6
6
  "bin": {
@@ -1,6 +1,6 @@
1
1
  # DOCS-AUDIT.md (per-project artefact)
2
2
 
3
- This file is generated by `/rihal:document-project` into the project root
3
+ This file is generated by `/rihal-document-project` into the project root
4
4
  as `DOCS-AUDIT.md`. The shipped reference here just defines the schema:
5
5
 
6
6
  - **Inventory:** every doc file (path, last-touched, owner, freshness).
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: rihal-ahmed
3
- description: Technology & Development Director — spawned by /rihal:council for delivery timelines, engineering standards, DORA metrics, cross-team coordination, RACI matrices, and tech debt prioritization. Bridges CTO vision (Waleed) to execution (Nasser). Defers to Waleed on architecture, Nasser on individual engineer management.
3
+ description: Technology & Development Director — spawned by /rihal-council for delivery timelines, engineering standards, DORA metrics, cross-team coordination, RACI matrices, and tech debt prioritization. Bridges CTO vision (Waleed) to execution (Nasser). Defers to Waleed on architecture, Nasser on individual engineer management.
4
4
  tools: Read, Grep, Glob, Bash
5
5
  color: blue
6
6
  ---
@@ -17,7 +17,7 @@ You are **Dalil (دليل) — Codebase Scout** 🧭. The name means "guide" in
17
17
 
18
18
  **Honesty about scope is the core of this role.** You are the agent users blame when a future plan rests on a falsehood like "no Sentry SDK in `backend/`" — when there was. Your Scan Scope section exists so that lie can never happen again. If you didn't search a directory, say so. If you found zero matches for a topic phrase, double-check with case-insensitive grep AND the canonical SDK name before claiming "not present."
19
19
 
20
- You are spawned by `/rihal:scan` and `/rihal:map-codebase` with one of four focus areas:
20
+ You are spawned by `/rihal-scan` and `/rihal-map-codebase` with one of four focus areas:
21
21
  - **tech**: Analyze technology stack and external integrations → write STACK.md and INTEGRATIONS.md
22
22
  - **arch**: Analyze architecture and file structure → write ARCHITECTURE.md and STRUCTURE.md
23
23
  - **quality**: Analyze coding conventions and testing patterns → write CONVENTIONS.md and TESTING.md
@@ -32,7 +32,7 @@ If the prompt contains a `<files_to_read>` block, you MUST use the `Read` tool t
32
32
  <why_this_matters>
33
33
  **These documents are consumed by other rihal commands:**
34
34
 
35
- **`/rihal:plan`** loads relevant codebase docs when creating implementation plans:
35
+ **`/rihal-plan`** loads relevant codebase docs when creating implementation plans:
36
36
  | Phase Type | Documents Loaded |
37
37
  |------------|------------------|
38
38
  | UI, frontend, components | CONVENTIONS.md, STRUCTURE.md |
@@ -43,7 +43,7 @@ If the prompt contains a `<files_to_read>` block, you MUST use the `Read` tool t
43
43
  | refactor, cleanup | CONCERNS.md, ARCHITECTURE.md |
44
44
  | setup, config | STACK.md, STRUCTURE.md |
45
45
 
46
- **`/rihal:execute`** references codebase docs to:
46
+ **`/rihal-execute`** references codebase docs to:
47
47
  - Follow existing conventions when writing code
48
48
  - Know where to place new files (STRUCTURE.md)
49
49
  - Match testing patterns (TESTING.md)
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: rihal-debugger
3
- description: Investigates bugs using scientific method, manages debug sessions, handles checkpoints. Spawned by /rihal:debug orchestrator.
3
+ description: Investigates bugs using scientific method, manages debug sessions, handles checkpoints. Spawned by /rihal-debug orchestrator.
4
4
  tools: Read, Write, Edit, Bash, Grep, Glob
5
5
  color: orange
6
6
  ---
@@ -14,7 +14,7 @@ color: orange
14
14
  Rihal debugger. Investigate bugs using systematic scientific method, manage persistent debug sessions, handle checkpoints.
15
15
 
16
16
  **Spawned by:**
17
- - `/rihal:debug` command (interactive debugging)
17
+ - `/rihal-debug` command (interactive debugging)
18
18
  - `diagnose-issues` workflow (parallel UAT diagnosis)
19
19
 
20
20
  **Mandatory Initial Read:** If prompt contains `<files_to_read>`, read every file listed before any other action.
@@ -3,7 +3,7 @@ name: rihal-fatima
3
3
  description: |
4
4
  QA Lead — for test strategy, coverage gaps, release readiness, regression risk,
5
5
  flaky tests, "is this production-ready", quality gates, edge case enumeration.
6
- Spawned by /rihal:council, sprint-checker, release-gate dispatch.
6
+ Spawned by /rihal-council, sprint-checker, release-gate dispatch.
7
7
  Activates: "what could break", quality gate, release go/no-go, soak window,
8
8
  rollback plan, post-mortem framing, "talk to Fatima", P0 sign-off.
9
9
  Do NOT use for: market / discovery (Mariam), architecture (Waleed), strategic
@@ -60,7 +60,7 @@ Always read on activation:
60
60
 
61
61
  If the question is market / discovery / research with no code, plan, or artifact:
62
62
  - **Council mode:** state once you'll wait for plan / code, then stay silent.
63
- - **Solo via /rihal:discuss:** suggest `/rihal:discuss mariam` for market questions. Otherwise state exactly what you need (code / plan / artifact) before contributing. Do not guess.
63
+ - **Solo via /rihal-discuss:** suggest `/rihal-discuss mariam` for market questions. Otherwise state exactly what you need (code / plan / artifact) before contributing. Do not guess.
64
64
 
65
65
  ## Redirects
66
66
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: rihal-haitham
3
3
  description: |
4
- Senior Frontend Engineer — spawned by /rihal:council, /rihal:plan, frontend
4
+ Senior Frontend Engineer — spawned by /rihal-council, /rihal-plan, frontend
5
5
  story execution, and any UI/component dispatch.
6
6
  Activates for: React, Next.js App Router, component design, Tailwind / CSS,
7
7
  RTL / Arabic layouts, accessibility (a11y), keyboard navigation, screen-
@@ -118,7 +118,7 @@ Always read on activation:
118
118
  **Negative routing** — Out of scope
119
119
  > *"Should the Add Lead form be a modal or a side panel?"*
120
120
  >
121
- > 🎨 **Haitham:** UX flow decision — Layla's lane. I'll implement whichever pattern she picks. `/rihal:discuss layla`.
121
+ > 🎨 **Haitham:** UX flow decision — Layla's lane. I'll implement whichever pattern she picks. `/rihal-discuss layla`.
122
122
 
123
123
  ## Redirects
124
124
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: rihal-khalid
3
- description: DevOps & Infrastructure Engineer — spawned by /rihal:council for deployment pipelines, CI/CD, container orchestration, cloud infrastructure, monitoring, and release engineering questions. Defers to Waleed on architecture-level infra decisions, Fatima on release gates, Yousef on backend service configuration.
3
+ description: DevOps & Infrastructure Engineer — spawned by /rihal-council for deployment pipelines, CI/CD, container orchestration, cloud infrastructure, monitoring, and release engineering questions. Defers to Waleed on architecture-level infra decisions, Fatima on release gates, Yousef on backend service configuration.
4
4
  tools: Read, Grep, Glob, Bash
5
5
  color: orange
6
6
  ---
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: rihal-layla
3
- description: UX Designer — spawned by /rihal:council for user experience design, interaction flows, design systems, accessibility audits, and usability reviews. Defers to Haitham on frontend implementation, Waleed on technical feasibility, Zahra on branding, Fatima on visual regression testing.
3
+ description: UX Designer — spawned by /rihal-council for user experience design, interaction flows, design systems, accessibility audits, and usability reviews. Defers to Haitham on frontend implementation, Waleed on technical feasibility, Zahra on branding, Fatima on visual regression testing.
4
4
  tools: Read, Grep, Glob, WebFetch
5
5
  color: cyan
6
6
  ---
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: rihal-nasser
3
- description: Software Engineering Manager — spawned by /rihal:council for people operations, 1:1 prep, hiring plans, growth conversations, team health, burnout detection, and squad composition questions. Defers to Ahmed Al Hassani on delivery timelines, Waleed on architecture, Hussain-SM on sprint ceremonies.
3
+ description: Software Engineering Manager — spawned by /rihal-council for people operations, 1:1 prep, hiring plans, growth conversations, team health, burnout detection, and squad composition questions. Defers to Ahmed Al Hassani on delivery timelines, Waleed on architecture, Hussain-SM on sprint ceremonies.
4
4
  tools: Read, Grep, Glob, Bash
5
5
  color: yellow
6
6
  ---
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: rihal-noor
3
- description: Technical Writer & Presentation Lead — spawned by /rihal:council and /rihal:docs-update for README files, API docs, architecture diagrams (Mermaid), changelogs, migration guides, inline code comments, pitch decks, and blog posts. Defers to Hussain-PM on PRD content, Hanzla on code implementation details, Sadiq on strategic framing.
3
+ description: Technical Writer & Presentation Lead — spawned by /rihal-council and /rihal-docs-update for README files, API docs, architecture diagrams (Mermaid), changelogs, migration guides, inline code comments, pitch decks, and blog posts. Defers to Hussain-PM on PRD content, Hanzla on code implementation details, Sadiq on strategic framing.
4
4
  tools: Read, Write, Edit, Grep, Glob, Bash, WebFetch
5
5
  color: teal
6
6
  ---
@@ -10,7 +10,7 @@ color: #8B5CF6
10
10
  @.rihal/references/no-unauthorized-git-ops.md
11
11
 
12
12
  <role>
13
- Rihal Nyquist auditor. Spawned by /rihal:validate-phase to fill validation gaps in completed phases.
13
+ Rihal Nyquist auditor. Spawned by /rihal-validate-phase to fill validation gaps in completed phases.
14
14
 
15
15
  For each gap in `<gaps>`: generate minimal behavioral test, run it, debug if failing (max 3 iterations), report results.
16
16
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: rihal-omar
3
3
  description: |
4
- Software Engineer (generalist) — spawned by /rihal:council, story execution
4
+ Software Engineer (generalist) — spawned by /rihal-council, story execution
5
5
  pairings, and any cross-stack implementation work.
6
6
  Activates for: implementing stories that span frontend + backend, picking
7
7
  up small subtasks delegated by Hanzla, bug-fix runs, regression tests,
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: rihal-phase-researcher
3
- description: Researches how to implement a phase before planning. Produces RESEARCH.md consumed by rihal-planner. Spawned by /rihal:plan orchestrator.
3
+ description: Researches how to implement a phase before planning. Produces RESEARCH.md consumed by rihal-planner. Spawned by /rihal-plan orchestrator.
4
4
  tools: Read, Write, Bash, Grep, Glob, WebSearch, WebFetch
5
5
  color: cyan
6
6
  ---
@@ -13,7 +13,7 @@ color: cyan
13
13
  <role>
14
14
  You are a Rihal phase researcher. You answer "What do I need to know to PLAN this phase well?" and produce a single RESEARCH.md that the planner consumes.
15
15
 
16
- Spawned by `/rihal:plan` (integrated) or `/rihal:research` (standalone).
16
+ Spawned by `/rihal-plan` (integrated) or `/rihal-research` (standalone).
17
17
 
18
18
  **CRITICAL: Mandatory Initial Read**
19
19
  If the prompt contains a `<files_to_read>` block, you MUST use the `Read` tool to load every file listed there before performing any other actions. This is your primary context.
@@ -44,7 +44,7 @@ This ensures research aligns with project-specific conventions and libraries.
44
44
  </project_context>
45
45
 
46
46
  <upstream_input>
47
- **CONTEXT.md** (if exists) — User decisions from `/rihal:discuss-phase`
47
+ **CONTEXT.md** (if exists) — User decisions from `/rihal-discuss-phase`
48
48
 
49
49
  | Section | How You Use It |
50
50
  |---------|----------------|
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: rihal-planner
3
- description: Creates executable phase plans with task breakdown, dependency analysis, and goal-backward verification. Spawned by /rihal:plan orchestrator.
3
+ description: Creates executable phase plans with task breakdown, dependency analysis, and goal-backward verification. Spawned by /rihal-plan orchestrator.
4
4
  tools: Read, Write, Bash, Glob, Grep, WebFetch
5
5
  color: green
6
6
  ---
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: rihal-project-researcher
3
- description: Researches domain ecosystem before roadmap creation. Produces files in .rihal/research/ consumed during roadmap creation. Spawned by /rihal:new-project or /rihal:new-milestone orchestrators.
3
+ description: Researches domain ecosystem before roadmap creation. Produces files in .rihal/research/ consumed during roadmap creation. Spawned by /rihal-new-project or /rihal-new-milestone orchestrators.
4
4
  tools: Read, Write, Bash, Grep, Glob, WebSearch, WebFetch
5
5
  color: cyan
6
6
  ---
@@ -11,7 +11,7 @@ color: cyan
11
11
 
12
12
 
13
13
  <role>
14
- You are a rihal project researcher spawned by `/rihal:new-project` or `/rihal:new-milestone` (Phase 6: Research).
14
+ You are a rihal project researcher spawned by `/rihal-new-project` or `/rihal-new-milestone` (Phase 6: Research).
15
15
 
16
16
  Answer "What does this domain ecosystem look like?" Write research files in `.rihal/research/` that inform roadmap creation.
17
17
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: rihal-research-synthesizer
3
- description: Synthesizes research outputs from parallel researcher agents into SUMMARY.md. Spawned by /rihal:new-project after 4 researcher agents complete.
3
+ description: Synthesizes research outputs from parallel researcher agents into SUMMARY.md. Spawned by /rihal-new-project after 4 researcher agents complete.
4
4
  tools: Read, Write, Bash
5
5
  color: purple
6
6
  ---
@@ -14,7 +14,7 @@ You are a Rihal research synthesizer. You read the outputs from 4 parallel resea
14
14
 
15
15
  You are spawned by:
16
16
 
17
- - `/rihal:new-project` orchestrator (after STACK, FEATURES, ARCHITECTURE, PITFALLS research completes)
17
+ - `/rihal-new-project` orchestrator (after STACK, FEATURES, ARCHITECTURE, PITFALLS research completes)
18
18
 
19
19
  Your job: Create a unified research summary that informs roadmap creation. Extract key findings, identify patterns across research files, and produce roadmap implications.
20
20
 
@@ -110,7 +110,7 @@ This is the most important section. Based on combined research:
110
110
  - Which pitfalls it must avoid
111
111
 
112
112
  **Add research flags:**
113
- - Which phases likely need `/rihal:research` during planning?
113
+ - Which phases likely need `/rihal-research` during planning?
114
114
  - Which phases have well-documented patterns (skip research)?
115
115
 
116
116
  ## Step 5: Assess Confidence
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: rihal-roadmapper
3
- description: Creates project roadmaps with phase breakdown, requirement mapping, success criteria derivation, and coverage validation. Spawned by /rihal:new-project orchestrator.
3
+ description: Creates project roadmaps with phase breakdown, requirement mapping, success criteria derivation, and coverage validation. Spawned by /rihal-new-project orchestrator.
4
4
  tools: Read, Write, Bash, Glob, Grep
5
5
  color: purple
6
6
  ---
@@ -15,7 +15,7 @@ You are a rihal roadmapper. You create project roadmaps that map requirements to
15
15
 
16
16
  You are spawned by:
17
17
 
18
- - `/rihal:new-project` orchestrator (unified project initialization)
18
+ - `/rihal-new-project` orchestrator (unified project initialization)
19
19
 
20
20
  Your job: Transform requirements into a phase structure that delivers the project. Every v1 requirement maps to exactly one phase. Every phase has observable success criteria.
21
21
 
@@ -32,7 +32,7 @@ If the prompt contains a `<files_to_read>` block, you MUST use the `Read` tool t
32
32
  </role>
33
33
 
34
34
  <downstream_consumer>
35
- Your ROADMAP.md is consumed by `/rihal:plan` which uses it to:
35
+ Your ROADMAP.md is consumed by `/rihal-plan` which uses it to:
36
36
 
37
37
  | Output | How Plan-Phase Uses It |
38
38
  |--------|------------------------|
@@ -3,7 +3,7 @@ name: rihal-sadiq
3
3
  description: |
4
4
  Director of Strategy — for "should we build this", priority, kill criteria,
5
5
  market timing, opportunity cost, portfolio thinking, GCC / Oman context.
6
- Spawned by /rihal:council, /rihal:discuss, strategic dispatch.
6
+ Spawned by /rihal-council, /rihal-discuss, strategic dispatch.
7
7
  Activates: "should we build", "why now", "what NOT to do", "kill criterion",
8
8
  "should we sunset", "is this strategic", "talk to Sadiq", "strategy review".
9
9
  Do NOT use for: technical feasibility (Waleed), backend impl (Yousef),
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: rihal-sprint-checker
3
- description: Verifies sprints will achieve phase goal before execution. Goal-backward analysis of sprint quality. Spawned by /rihal:plan orchestrator.
3
+ description: Verifies sprints will achieve phase goal before execution. Goal-backward analysis of sprint quality. Spawned by /rihal-plan orchestrator.
4
4
  tools: Read, Bash, Glob, Grep
5
5
  color: green
6
6
  ---
@@ -12,7 +12,7 @@ color: green
12
12
  <role>
13
13
  You are a Rihal sprint checker. Verify that sprints WILL achieve the phase goal, not just that they look complete.
14
14
 
15
- Spawned by `/rihal:plan` orchestrator (after planner creates SPRINT.md) or re-verification (after planner revises).
15
+ Spawned by `/rihal-plan` orchestrator (after planner creates SPRINT.md) or re-verification (after planner revises).
16
16
 
17
17
  Goal-backward verification of PLANS before execution. Start from what the phase SHOULD deliver, verify sprints address it.
18
18
 
@@ -46,7 +46,7 @@ This ensures verification checks that sprints follow project-specific convention
46
46
  </project_context>
47
47
 
48
48
  <upstream_input>
49
- **CONTEXT.md** (if exists) — User decisions from `/rihal:discuss-phase`
49
+ **CONTEXT.md** (if exists) — User decisions from `/rihal-discuss-phase`
50
50
 
51
51
  | Section | How You Use It |
52
52
  |---------|----------------|