@hanzlaa/rcode 3.3.0 → 3.3.2
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/CONTRIBUTING.md +9 -9
- package/README.md +50 -50
- package/cli/context.js +4 -4
- package/cli/doctor.js +1 -1
- package/cli/generate-command-skills.cjs +10 -10
- package/cli/install.js +11 -11
- package/cli/lib/memory-bank.cjs +5 -5
- package/cli/set-mode.js +2 -2
- package/cli/uninstall.js +5 -5
- package/dist/rcode.js +15 -15
- package/package.json +1 -1
- package/rihal/DOCS-AUDIT.md +1 -1
- package/rihal/agents/rihal-ahmed.md +1 -1
- package/rihal/agents/rihal-codebase-mapper.md +3 -3
- package/rihal/agents/rihal-debugger.md +2 -2
- package/rihal/agents/rihal-fatima.md +2 -2
- package/rihal/agents/rihal-haitham.md +2 -2
- package/rihal/agents/rihal-khalid.md +1 -1
- package/rihal/agents/rihal-layla.md +1 -1
- package/rihal/agents/rihal-nasser.md +1 -1
- package/rihal/agents/rihal-noor.md +1 -1
- package/rihal/agents/rihal-nyquist-auditor.md +1 -1
- package/rihal/agents/rihal-omar.md +1 -1
- package/rihal/agents/rihal-phase-researcher.md +3 -3
- package/rihal/agents/rihal-planner.md +1 -1
- package/rihal/agents/rihal-project-researcher.md +2 -2
- package/rihal/agents/rihal-research-synthesizer.md +3 -3
- package/rihal/agents/rihal-roadmapper.md +3 -3
- package/rihal/agents/rihal-sadiq.md +1 -1
- package/rihal/agents/rihal-sprint-checker.md +3 -3
- package/rihal/agents/rihal-verifier.md +2 -2
- package/rihal/agents/rihal-waleed.md +1 -1
- package/rihal/agents/rihal-yousef.md +2 -2
- package/rihal/agents/rihal-zahra.md +1 -1
- package/rihal/agents/rihal-zayd.md +1 -1
- package/rihal/agents/rules/phase-researcher/detailed-guide.md +1 -1
- package/rihal/agents/rules/roadmapper/detailed-guide.md +1 -1
- package/rihal/agents/rules/sprint-checker/dimensions.md +3 -3
- package/rihal/agents/rules/sprint-checker/process.md +2 -2
- package/rihal/agents/rules/verifier/gap-output.md +1 -1
- package/rihal/agents/rules/verifier/verification-report.md +1 -1
- package/rihal/bin/rihal-hooks.cjs +6 -6
- package/rihal/bin/rihal-tools.cjs +60 -23
- package/rihal/brain/README.md +2 -2
- package/rihal/brain/best-practices/no-autonomous-bypass.md +2 -2
- package/rihal/brain/best-practices/research-citation-rule.md +1 -1
- package/rihal/brain/best-practices/state-sync-rule.md +4 -4
- package/rihal/commands/add-phase.md +1 -1
- package/rihal/commands/add-tests.md +1 -1
- package/rihal/commands/add-todo.md +1 -1
- package/rihal/commands/analyze-dependencies.md +1 -1
- package/rihal/commands/audit-fix.md +1 -1
- package/rihal/commands/audit-milestone.md +1 -1
- package/rihal/commands/audit-uat.md +1 -1
- package/rihal/commands/audit.md +1 -1
- package/rihal/commands/autonomous.md +1 -1
- package/rihal/commands/brainstorm.md +1 -1
- package/rihal/commands/chain.md +1 -1
- package/rihal/commands/check-todos.md +1 -1
- package/rihal/commands/checkpoint-preview.md +1 -1
- package/rihal/commands/cleanup.md +2 -2
- package/rihal/commands/code-review-fix.md +1 -1
- package/rihal/commands/code-review.md +1 -1
- package/rihal/commands/complete-milestone.md +1 -1
- package/rihal/commands/config.md +2 -2
- package/rihal/commands/correct-course.md +1 -1
- package/rihal/commands/council.md +1 -1
- package/rihal/commands/create-epics-and-stories.md +1 -1
- package/rihal/commands/create-story.md +2 -2
- package/rihal/commands/dashboard.md +1 -1
- package/rihal/commands/debug.md +1 -1
- package/rihal/commands/decisions.md +1 -1
- package/rihal/commands/dev-story.md +1 -1
- package/rihal/commands/diff.md +1 -1
- package/rihal/commands/discuss-phase.md +1 -1
- package/rihal/commands/discuss.md +2 -2
- package/rihal/commands/do.md +2 -2
- package/rihal/commands/docs-update.md +1 -1
- package/rihal/commands/document-project.md +1 -1
- package/rihal/commands/enable-hooks.md +1 -1
- package/rihal/commands/execute-sprint.md +2 -2
- package/rihal/commands/execute.md +1 -1
- package/rihal/commands/explore.md +1 -1
- package/rihal/commands/export-to-github.md +1 -1
- package/rihal/commands/forensics.md +1 -1
- package/rihal/commands/from-template.md +1 -1
- package/rihal/commands/health.md +1 -1
- package/rihal/commands/help.md +1 -1
- package/rihal/commands/import.md +1 -1
- package/rihal/commands/inbox.md +1 -1
- package/rihal/commands/init.md +1 -1
- package/rihal/commands/insert-phase.md +1 -1
- package/rihal/commands/install.md +1 -1
- package/rihal/commands/list-plans.md +1 -1
- package/rihal/commands/list-workspaces.md +1 -1
- package/rihal/commands/map-codebase.md +1 -1
- package/rihal/commands/milestone-summary.md +1 -1
- package/rihal/commands/new-milestone.md +1 -1
- package/rihal/commands/new-project.md +1 -1
- package/rihal/commands/new-workspace.md +1 -1
- package/rihal/commands/next.md +1 -1
- package/rihal/commands/note.md +1 -1
- package/rihal/commands/notify-test.md +1 -1
- package/rihal/commands/pause-work.md +1 -1
- package/rihal/commands/plan-milestone-gaps.md +3 -3
- package/rihal/commands/plan.md +2 -2
- package/rihal/commands/plant-seed.md +1 -1
- package/rihal/commands/pr-branch.md +2 -2
- package/rihal/commands/prfaq.md +1 -1
- package/rihal/commands/profile-user.md +1 -1
- package/rihal/commands/progress.md +3 -3
- package/rihal/commands/quick.md +1 -1
- package/rihal/commands/remove-phase.md +1 -1
- package/rihal/commands/remove-workspace.md +1 -1
- package/rihal/commands/replay.md +1 -1
- package/rihal/commands/rerun.md +1 -1
- package/rihal/commands/research-phase.md +2 -2
- package/rihal/commands/resume-work.md +1 -1
- package/rihal/commands/review.md +1 -1
- package/rihal/commands/scan.md +1 -1
- package/rihal/commands/secure-phase.md +1 -1
- package/rihal/commands/session-report.md +1 -1
- package/rihal/commands/settings.md +1 -1
- package/rihal/commands/ship.md +2 -2
- package/rihal/commands/show.md +1 -1
- package/rihal/commands/sprint-planning.md +1 -1
- package/rihal/commands/sprint-status.md +1 -1
- package/rihal/commands/stats.md +1 -1
- package/rihal/commands/status.md +1 -1
- package/rihal/commands/ui-phase.md +1 -1
- package/rihal/commands/ui-review.md +1 -1
- package/rihal/commands/undo.md +1 -1
- package/rihal/commands/update.md +1 -1
- package/rihal/commands/validate-phase.md +1 -1
- package/rihal/commands/verify-phase.md +2 -2
- package/rihal/commands/verify-work.md +1 -1
- package/rihal/commands/why.md +1 -1
- package/rihal/commands/workstream.md +1 -1
- package/rihal/references/agent-shared-rules.md +1 -1
- package/rihal/references/command-redirect-format.md +7 -7
- package/rihal/references/context-budget.md +2 -2
- package/rihal/references/continuation-format.md +16 -16
- package/rihal/references/dispatch-banner.md +1 -1
- package/rihal/references/execution-protocol.md +2 -2
- package/rihal/references/gates.md +3 -3
- package/rihal/references/git-integration.md +1 -1
- package/rihal/references/output-format.md +4 -4
- package/rihal/references/output-realism.md +1 -1
- package/rihal/references/revision-loop.md +1 -1
- package/rihal/references/state-schema.md +15 -15
- package/rihal/references/ui-brand.md +1 -1
- package/rihal/references/verb-dictionary.md +15 -15
- package/rihal/references/workstream-flag.md +28 -28
- package/rihal/skills/_shared/no-autonomous-bypass.md +2 -2
- package/rihal/skills/_shared/research-citation-rule.md +1 -1
- package/rihal/skills/_shared/state-sync-rule.md +4 -4
- package/rihal/skills/actions/1-analysis/rihal-prfaq/SKILL.md +1 -1
- package/rihal/skills/actions/2-plan/rihal-create-epics-and-stories/workflow.md +1 -1
- package/rihal/skills/actions/2-plan/rihal-create-milestone/SKILL.md +2 -2
- package/rihal/skills/actions/2-plan/rihal-create-milestone/steps/step-06-phase-stubs.md +2 -2
- package/rihal/skills/actions/2-plan/rihal-create-milestone/steps/step-07-backlog.md +2 -2
- package/rihal/skills/actions/2-plan/rihal-create-milestone/steps/step-09-state-sync.md +2 -2
- package/rihal/skills/actions/2-plan/rihal-create-milestone/steps/step-10-complete.md +4 -4
- package/rihal/skills/actions/2-plan/rihal-create-milestone/workflow.md +5 -5
- package/rihal/skills/actions/2-plan/rihal-create-prd/SKILL.md +1 -1
- package/rihal/skills/actions/2-plan/rihal-create-prd/workflow.md +1 -1
- package/rihal/skills/actions/2-plan/rihal-create-story/workflow.md +1 -1
- package/rihal/skills/actions/4-implementation/rihal-checkpoint-preview/SKILL.md +3 -3
- package/rihal/skills/actions/4-implementation/rihal-dev-story/workflow.md +1 -1
- package/rihal/skills/actions/4-implementation/rihal-sprint-planning/SKILL.md +1 -1
- package/rihal/skills/actions/4-implementation/rihal-sprint-planning/checklist.md +1 -1
- package/rihal/skills/actions/4-implementation/rihal-sprint-planning/workflow.md +1 -1
- package/rihal/skills/actions/4-implementation/rihal-sprint-status/workflow.md +5 -5
- package/rihal/skills/agents/dalil-scout/SKILL.md +7 -7
- package/rihal/skills/core/rihal-brainstorming/SKILL.md +1 -1
- package/rihal/skills/core/rihal-init/SKILL.md +1 -1
- package/rihal/skills/core/rihal-party-mode/SKILL.md +1 -1
- package/rihal/templates/milestone.md +1 -1
- package/rihal/templates/projects/api-backend/PROJECT.md +1 -1
- package/rihal/templates/projects/mobile-app/PROJECT.md +1 -1
- package/rihal/templates/projects/saas-b2b/PROJECT.md +1 -1
- package/rihal/workflows/add-phase.md +10 -10
- package/rihal/workflows/add-tests.md +9 -9
- package/rihal/workflows/add-todo.md +5 -5
- package/rihal/workflows/analyze-dependencies.md +7 -7
- package/rihal/workflows/audit-fix.md +4 -4
- package/rihal/workflows/audit-milestone.md +8 -8
- package/rihal/workflows/audit-uat.md +2 -2
- package/rihal/workflows/audit.md +28 -28
- package/rihal/workflows/autonomous.md +128 -44
- package/rihal/workflows/brainstorm.md +7 -7
- package/rihal/workflows/chain.md +16 -16
- package/rihal/workflows/check-implementation-readiness.md +4 -4
- package/rihal/workflows/check-todos.md +8 -8
- package/rihal/workflows/checkpoint-preview.md +1 -1
- package/rihal/workflows/code-review-fix.md +10 -10
- package/rihal/workflows/code-review.md +10 -10
- package/rihal/workflows/complete-milestone.md +5 -5
- package/rihal/workflows/correct-course.md +7 -7
- package/rihal/workflows/council.md +15 -15
- package/rihal/workflows/create-epics-and-stories.md +9 -9
- package/rihal/workflows/create-story.md +11 -11
- package/rihal/workflows/dashboard.md +8 -8
- package/rihal/workflows/debug.md +6 -6
- package/rihal/workflows/decisions.md +5 -5
- package/rihal/workflows/dev-story.md +12 -12
- package/rihal/workflows/diagnose-issues.md +2 -2
- package/rihal/workflows/diff.md +3 -3
- package/rihal/workflows/discuss-phase-power.md +7 -7
- package/rihal/workflows/discuss-phase.md +14 -14
- package/rihal/workflows/discuss.md +9 -9
- package/rihal/workflows/do.md +79 -79
- package/rihal/workflows/docs-update.md +6 -6
- package/rihal/workflows/document-project.md +5 -5
- package/rihal/workflows/enable-hooks.md +5 -5
- package/rihal/workflows/execute-sprint.md +3 -3
- package/rihal/workflows/execute.md +28 -28
- package/rihal/workflows/explore.md +5 -5
- package/rihal/workflows/export-to-github.md +5 -5
- package/rihal/workflows/forensics.md +8 -8
- package/rihal/workflows/from-template.md +8 -8
- package/rihal/workflows/health.md +11 -11
- package/rihal/workflows/help.md +117 -117
- package/rihal/workflows/import.md +4 -4
- package/rihal/workflows/inbox.md +8 -8
- package/rihal/workflows/init.md +23 -23
- package/rihal/workflows/insert-phase.md +9 -9
- package/rihal/workflows/install.md +3 -3
- package/rihal/workflows/karpathy-audit.md +11 -11
- package/rihal/workflows/list-plans.md +8 -8
- package/rihal/workflows/list-workspaces.md +7 -7
- package/rihal/workflows/map-codebase.md +5 -5
- package/rihal/workflows/milestone-summary.md +7 -7
- package/rihal/workflows/new-milestone.md +11 -11
- package/rihal/workflows/new-project-research.md +1 -1
- package/rihal/workflows/new-project-roadmap.md +8 -8
- package/rihal/workflows/new-project.md +32 -32
- package/rihal/workflows/new-workspace.md +7 -7
- package/rihal/workflows/next.md +13 -13
- package/rihal/workflows/note.md +7 -7
- package/rihal/workflows/notify-test.md +6 -6
- package/rihal/workflows/pause-work.md +6 -6
- package/rihal/workflows/plan-milestone-gaps.md +7 -7
- package/rihal/workflows/plan.md +28 -28
- package/rihal/workflows/plant-seed.md +3 -3
- package/rihal/workflows/pr-branch.md +1 -1
- package/rihal/workflows/prfaq.md +1 -1
- package/rihal/workflows/profile-user.md +5 -5
- package/rihal/workflows/progress.md +6 -6
- package/rihal/workflows/quick.md +12 -12
- package/rihal/workflows/remove-phase.md +6 -6
- package/rihal/workflows/remove-workspace.md +8 -8
- package/rihal/workflows/replay.md +8 -8
- package/rihal/workflows/rerun.md +5 -5
- package/rihal/workflows/research-phase.md +2 -2
- package/rihal/workflows/resume-work.md +10 -10
- package/rihal/workflows/review-adversarial.md +4 -4
- package/rihal/workflows/review-edge-case-hunter.md +5 -5
- package/rihal/workflows/review.md +11 -11
- package/rihal/workflows/scan.md +9 -9
- package/rihal/workflows/secure-phase.md +8 -8
- package/rihal/workflows/session-report.md +6 -6
- package/rihal/workflows/settings.md +15 -15
- package/rihal/workflows/ship.md +11 -11
- package/rihal/workflows/show.md +2 -2
- package/rihal/workflows/sprint-planning.md +13 -13
- package/rihal/workflows/sprint-status.md +10 -10
- package/rihal/workflows/stats.md +6 -6
- package/rihal/workflows/status.md +15 -7
- package/rihal/workflows/ui-phase.md +8 -8
- package/rihal/workflows/ui-review.md +5 -5
- package/rihal/workflows/undo.md +17 -17
- package/rihal/workflows/update.md +12 -12
- package/rihal/workflows/validate-phase.md +5 -5
- package/rihal/workflows/verify-work.md +18 -18
- package/rihal/workflows/why.md +9 -9
- package/rihal/workflows/workstream.md +11 -11
- package/server/lib/html/client.js +45 -45
|
@@ -505,7 +505,7 @@ function cmdClassifyQuestion(raw) {
|
|
|
505
505
|
}
|
|
506
506
|
|
|
507
507
|
/**
|
|
508
|
-
* init execute — returns context blob for the /rihal
|
|
508
|
+
* init execute — returns context blob for the /rihal-execute workflow.
|
|
509
509
|
* Resolves plan_path (single file or phase directory), reads the plan
|
|
510
510
|
* frontmatter, and returns dependency wave groupings.
|
|
511
511
|
*/
|
|
@@ -738,7 +738,7 @@ function cmdState(subArgs) {
|
|
|
738
738
|
if (sub === 'read' || sub === 'get') {
|
|
739
739
|
if (!fs.existsSync(statePath)) {
|
|
740
740
|
// Auto-init with defaults if config.yaml exists (install happened).
|
|
741
|
-
// Removes the "run /rihal
|
|
741
|
+
// Removes the "run /rihal-init first" friction — any workflow can
|
|
742
742
|
// call `state read` and get a usable state back.
|
|
743
743
|
const configPath = path.join(RIHAL_DIR, 'config.yaml');
|
|
744
744
|
if (fs.existsSync(configPath)) {
|
|
@@ -754,7 +754,7 @@ function cmdState(subArgs) {
|
|
|
754
754
|
}
|
|
755
755
|
return {
|
|
756
756
|
ok: false,
|
|
757
|
-
error: 'No state.json yet. Run /rihal
|
|
757
|
+
error: 'No state.json yet. Run /rihal-install to set up this project, or `state init --project <name>` directly.'
|
|
758
758
|
};
|
|
759
759
|
}
|
|
760
760
|
const state = readState();
|
|
@@ -2229,7 +2229,7 @@ function classifyScope(input) {
|
|
|
2229
2229
|
return 'feature';
|
|
2230
2230
|
}
|
|
2231
2231
|
|
|
2232
|
-
/** init plan — context blob for /rihal
|
|
2232
|
+
/** init plan — context blob for /rihal-plan workflow. */
|
|
2233
2233
|
function cmdInitPlan(rawArgs) {
|
|
2234
2234
|
const config = readConfig();
|
|
2235
2235
|
const tokens = (rawArgs || '').trim().split(/\s+/).filter(Boolean);
|
|
@@ -2322,7 +2322,7 @@ function cmdInitPlan(rawArgs) {
|
|
|
2322
2322
|
workflow: 'plan',
|
|
2323
2323
|
input_type: 'executable_plan',
|
|
2324
2324
|
resolved_path: resolvedPath,
|
|
2325
|
-
suggestion: `This file is already an executable plan. Run: /rihal
|
|
2325
|
+
suggestion: `This file is already an executable plan. Run: /rihal-execute ${path.relative(PROJECT_ROOT, resolvedPath)}`,
|
|
2326
2326
|
config,
|
|
2327
2327
|
paths: { project_root: PROJECT_ROOT, rihal: RIHAL_DIR, planning_root: PLANNING_DIR, state: path.join(RIHAL_DIR, 'state.json') },
|
|
2328
2328
|
};
|
|
@@ -2355,7 +2355,7 @@ function cmdPlanList() {
|
|
|
2355
2355
|
};
|
|
2356
2356
|
}
|
|
2357
2357
|
|
|
2358
|
-
/** init chain — context blob for /rihal
|
|
2358
|
+
/** init chain — context blob for /rihal-chain workflow. */
|
|
2359
2359
|
function cmdInitChain(rawArgs) {
|
|
2360
2360
|
const config = readConfig();
|
|
2361
2361
|
const installedAgents = listInstalledAgents();
|
|
@@ -2427,7 +2427,7 @@ function cmdInitChain(rawArgs) {
|
|
|
2427
2427
|
};
|
|
2428
2428
|
}
|
|
2429
2429
|
|
|
2430
|
-
/** init discuss — context blob for /rihal
|
|
2430
|
+
/** init discuss — context blob for /rihal-discuss workflow. */
|
|
2431
2431
|
function cmdInitDiscuss(rawArgs) {
|
|
2432
2432
|
const config = readConfig();
|
|
2433
2433
|
const installedAgents = listInstalledAgents();
|
|
@@ -2460,9 +2460,9 @@ function cmdModule(subArgs) {
|
|
|
2460
2460
|
// Hardcoded available modules (known at build time)
|
|
2461
2461
|
return {
|
|
2462
2462
|
modules: [
|
|
2463
|
-
{ name: 'core', description: 'Council agents, /rihal
|
|
2464
|
-
{ name: 'execution', description: 'Plan execution — /rihal
|
|
2465
|
-
{ name: 'discovery', description: 'Project discovery — /rihal
|
|
2463
|
+
{ name: 'core', description: 'Council agents, /rihal-council, /rihal-discuss, /rihal-status, /rihal-do router, /rihal-help, and state management' },
|
|
2464
|
+
{ name: 'execution', description: 'Plan execution — /rihal-execute, /rihal-plan, /rihal-quick, /rihal-debug, /rihal-audit-fix, /rihal-undo' },
|
|
2465
|
+
{ name: 'discovery', description: 'Project discovery — /rihal-new-project, /rihal-map-codebase, /rihal-scan, /rihal-explore, /rihal-code-review, /rihal-docs-update' },
|
|
2466
2466
|
]
|
|
2467
2467
|
};
|
|
2468
2468
|
}
|
|
@@ -2609,7 +2609,7 @@ function cmdConfigSet(subArgs) {
|
|
|
2609
2609
|
* --title <t> required headline
|
|
2610
2610
|
* --body <b> optional detail text
|
|
2611
2611
|
* --event <e> optional short event tag (e.g. "execute-done", "council-done")
|
|
2612
|
-
* --only slack|discord|teams restrict to one platform (for /rihal
|
|
2612
|
+
* --only slack|discord|teams restrict to one platform (for /rihal-notify-test)
|
|
2613
2613
|
*
|
|
2614
2614
|
* Returns: { sent: [...], skipped: [...], failed: [...] }
|
|
2615
2615
|
* Never throws on webhook failure — this runs at the tail of workflows and
|
|
@@ -3016,7 +3016,7 @@ function cmdBrain(args) {
|
|
|
3016
3016
|
* cmdProgress — single pre-computed progress blob (issue #159).
|
|
3017
3017
|
*
|
|
3018
3018
|
* Subcommands:
|
|
3019
|
-
* progress init Full snapshot — everything /rihal
|
|
3019
|
+
* progress init Full snapshot — everything /rihal-progress needs.
|
|
3020
3020
|
* progress bar --raw ASCII bar only (e.g. "[████░░░░] 50%").
|
|
3021
3021
|
* progress insights insights[] array (drift warnings, between-milestone detection).
|
|
3022
3022
|
* progress routes intent-tree routes[] for Next Up menu.
|
|
@@ -3162,7 +3162,7 @@ function cmdProgress(args) {
|
|
|
3162
3162
|
insights.push({
|
|
3163
3163
|
kind: 'between-milestones',
|
|
3164
3164
|
severity: 'info',
|
|
3165
|
-
message: 'All registered phases complete — effectively between milestones. Consider /rihal
|
|
3165
|
+
message: 'All registered phases complete — effectively between milestones. Consider /rihal-audit-milestone or /rihal-new-milestone.',
|
|
3166
3166
|
});
|
|
3167
3167
|
}
|
|
3168
3168
|
}
|
|
@@ -3184,7 +3184,7 @@ function cmdProgress(args) {
|
|
|
3184
3184
|
routes.push({
|
|
3185
3185
|
letter: 'A',
|
|
3186
3186
|
label: `Execute phase ${k} — unfinished plans`,
|
|
3187
|
-
command: `/rihal
|
|
3187
|
+
command: `/rihal-execute-phase ${k}`,
|
|
3188
3188
|
});
|
|
3189
3189
|
}
|
|
3190
3190
|
|
|
@@ -3196,7 +3196,7 @@ function cmdProgress(args) {
|
|
|
3196
3196
|
routes.push({
|
|
3197
3197
|
letter: 'B',
|
|
3198
3198
|
label: `Plan phase ${num} — researched, awaiting plan`,
|
|
3199
|
-
command: `/rihal
|
|
3199
|
+
command: `/rihal-plan-phase ${num}`,
|
|
3200
3200
|
});
|
|
3201
3201
|
}
|
|
3202
3202
|
|
|
@@ -3213,21 +3213,21 @@ function cmdProgress(args) {
|
|
|
3213
3213
|
routes.push({
|
|
3214
3214
|
letter: 'B',
|
|
3215
3215
|
label: `Plan phase ${k} — in progress without SPRINT.md`,
|
|
3216
|
-
command: `/rihal
|
|
3216
|
+
command: `/rihal-plan ${k}`,
|
|
3217
3217
|
});
|
|
3218
3218
|
}
|
|
3219
3219
|
|
|
3220
3220
|
// Route C — close out milestone if everything seems done
|
|
3221
3221
|
const allDone = statePhases.length > 0 && statePhases.every(p => p.status === 'complete' || p.completed);
|
|
3222
3222
|
if (allDone) {
|
|
3223
|
-
routes.push({ letter: 'C', label: 'Audit current milestone', command: '/rihal
|
|
3224
|
-
routes.push({ letter: 'C', label: 'Complete current milestone', command: '/rihal
|
|
3223
|
+
routes.push({ letter: 'C', label: 'Audit current milestone', command: '/rihal-audit-milestone' });
|
|
3224
|
+
routes.push({ letter: 'C', label: 'Complete current milestone', command: '/rihal-complete-milestone' });
|
|
3225
3225
|
}
|
|
3226
3226
|
|
|
3227
3227
|
// Fallback — nothing obvious: offer status
|
|
3228
3228
|
if (routes.length === 0) {
|
|
3229
|
-
routes.push({ letter: 'A', label: 'Check progress detail', command: '/rihal
|
|
3230
|
-
routes.push({ letter: 'B', label: 'Start a council on what to do next', command: '/rihal
|
|
3229
|
+
routes.push({ letter: 'A', label: 'Check progress detail', command: '/rihal-progress' });
|
|
3230
|
+
routes.push({ letter: 'B', label: 'Start a council on what to do next', command: '/rihal-council' });
|
|
3231
3231
|
}
|
|
3232
3232
|
|
|
3233
3233
|
return routes;
|
|
@@ -3242,6 +3242,40 @@ function cmdProgress(args) {
|
|
|
3242
3242
|
return `[${bar}] ${completed}/${total} (${pct}%)`;
|
|
3243
3243
|
}
|
|
3244
3244
|
|
|
3245
|
+
/**
|
|
3246
|
+
* Compute weighted progress that recognizes intermediate phase states.
|
|
3247
|
+
* Weights: has_context only = 0.15, has_research = 0.25, has plan = 0.5,
|
|
3248
|
+
* has verification or summary = 1.0.
|
|
3249
|
+
* Returns { weighted: number (0..total), pct: number (0..100) }.
|
|
3250
|
+
*/
|
|
3251
|
+
function computeWeightedProgress(stPhases, diskMap) {
|
|
3252
|
+
if (!stPhases.length) return { weighted: 0, pct: 0 };
|
|
3253
|
+
const norm = (k) => String(k ?? '').replace(/^0+(\d)/, '$1');
|
|
3254
|
+
let sum = 0;
|
|
3255
|
+
for (const p of stPhases) {
|
|
3256
|
+
const k = norm(phaseKey(p));
|
|
3257
|
+
if (p.status === 'complete' || p.completed) { sum += 1; continue; }
|
|
3258
|
+
const disk = diskMap[k] || diskMap[phaseKey(p)];
|
|
3259
|
+
if (!disk) continue;
|
|
3260
|
+
if (disk.summary_count > 0) { sum += 1; continue; }
|
|
3261
|
+
if (disk.has_verification) { sum += 0.85; continue; }
|
|
3262
|
+
if (disk.plan_count > 0) { sum += 0.5; continue; }
|
|
3263
|
+
if (disk.has_research) { sum += 0.25; continue; }
|
|
3264
|
+
if (disk.has_context) { sum += 0.15; continue; }
|
|
3265
|
+
}
|
|
3266
|
+
const total = Math.max(stPhases.length, 1);
|
|
3267
|
+
return { weighted: Math.round(sum * 100) / 100, pct: Math.round((sum / total) * 100) };
|
|
3268
|
+
}
|
|
3269
|
+
|
|
3270
|
+
function buildWeightedBar(stPhases, diskMap, total) {
|
|
3271
|
+
const { weighted, pct } = computeWeightedProgress(stPhases, diskMap);
|
|
3272
|
+
if (!total) return '[░░░░░░░░░░░░░░░░░░░░] 0/0 (0%)';
|
|
3273
|
+
const width = 20;
|
|
3274
|
+
const filled = Math.min(width, Math.round((weighted / total) * width));
|
|
3275
|
+
const bar = '█'.repeat(filled) + '░'.repeat(width - filled);
|
|
3276
|
+
return `[${bar}] ~${pct}% weighted`;
|
|
3277
|
+
}
|
|
3278
|
+
|
|
3245
3279
|
// Build the core snapshot once — all subcommands derive from it.
|
|
3246
3280
|
const state = readState();
|
|
3247
3281
|
const roadmapPhases = parseRoadmapPhases();
|
|
@@ -3268,6 +3302,7 @@ function cmdProgress(args) {
|
|
|
3268
3302
|
const currentPhase = state && state.current_phase;
|
|
3269
3303
|
const insights = detectInsights(state, roadmapPhases, diskByNum);
|
|
3270
3304
|
const routes = deriveRoutes(state, roadmapPhases, diskByNum);
|
|
3305
|
+
const { weighted: weightedCompleted, pct: weightedPct } = computeWeightedProgress(statePhases, diskByNum);
|
|
3271
3306
|
|
|
3272
3307
|
return {
|
|
3273
3308
|
ok: true,
|
|
@@ -3276,7 +3311,9 @@ function cmdProgress(args) {
|
|
|
3276
3311
|
current_phase: currentPhase,
|
|
3277
3312
|
phase_count: phaseCount,
|
|
3278
3313
|
completed_count: completedCount,
|
|
3314
|
+
weighted_progress: weightedPct,
|
|
3279
3315
|
bar: buildBar(completedCount, phaseCount),
|
|
3316
|
+
weighted_bar: buildWeightedBar(statePhases, diskByNum, phaseCount),
|
|
3280
3317
|
phases: (() => {
|
|
3281
3318
|
// Prefer ROADMAP-parsed phases when available; fall back to state.phases
|
|
3282
3319
|
// when the roadmap doesn't use a parseable format. Normalize "07" / "7" / 7.
|
|
@@ -3472,8 +3509,8 @@ function cmdGitignore(args) {
|
|
|
3472
3509
|
let sliceStart = start;
|
|
3473
3510
|
if (sliceStart > 0 && existing[sliceStart - 1] === '\n') sliceStart -= 1;
|
|
3474
3511
|
let sliceEnd = endIdx + END.length;
|
|
3475
|
-
if (existing[
|
|
3476
|
-
return existing.slice(0, sliceStart) + newBlock + existing.slice(
|
|
3512
|
+
if (existing[slice_end] === '\n') slice_end += 1;
|
|
3513
|
+
return existing.slice(0, sliceStart) + newBlock + existing.slice(slice_end);
|
|
3477
3514
|
}
|
|
3478
3515
|
|
|
3479
3516
|
if (!fs.existsSync(gitignorePath)) {
|
|
@@ -3688,7 +3725,7 @@ async function main() {
|
|
|
3688
3725
|
console.log(' state read → print full state.json');
|
|
3689
3726
|
console.log(' state get → alias for state read');
|
|
3690
3727
|
console.log(' state init --project <name> → create state.json if missing');
|
|
3691
|
-
console.log(' state set-phase <name> → set
|
|
3728
|
+
console.log(' state set-phase <name> → set current_phase, reset current_plan, append to phases[]');
|
|
3692
3729
|
console.log(' state advance-plan → increment current_plan counter');
|
|
3693
3730
|
console.log(' state record-execution --plan <p> --tasks <n> --duration <ms> --hash <h>');
|
|
3694
3731
|
console.log(' state add-decision "<summary>" → append to decisions[] + ~/.rihal/decisions.jsonl');
|
package/rihal/brain/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# rihal/brain — The Rihal Context Layer
|
|
2
2
|
|
|
3
|
-
This directory is populated on install (and on every `/rihal
|
|
3
|
+
This directory is populated on install (and on every `/rihal-update`) by `rihal-tools brain pull`. Its job is simple: pull Rihal's institutional knowledge — PR/commit/issue standards, architecture decisions, internal guides — into every Rihalian's project so their AI assistant already knows how Rihal builds.
|
|
4
4
|
|
|
5
5
|
## Structure
|
|
6
6
|
|
|
@@ -22,7 +22,7 @@ Content is pulled from three kinds of source:
|
|
|
22
22
|
|
|
23
23
|
## Update policy
|
|
24
24
|
|
|
25
|
-
- Local edits to any file under `rihal/brain/` are **overwritten** on every `/rihal
|
|
25
|
+
- Local edits to any file under `rihal/brain/` are **overwritten** on every `/rihal-update`. Rihal Code treats the upstream sources as the single source of truth. If the Rihal standard needs to change, the change happens upstream — then every Rihalian benefits.
|
|
26
26
|
- Per-invocation: `node .rihal/bin/rihal-tools.cjs brain pull`.
|
|
27
27
|
- Per project: runs automatically as part of `npx rihal-code install`.
|
|
28
28
|
|
|
@@ -13,7 +13,7 @@ Phrases like *"just write it autonomously"*, *"create the full thing ready to ex
|
|
|
13
13
|
There are exactly two ways to legitimately run a skill without halting at menus:
|
|
14
14
|
|
|
15
15
|
1. **Project-wide:** `.rihal/config.yaml` → `mode: yolo`. The config loader flags `yoloMode=true` in the runtime context; step files check this flag and may auto-advance.
|
|
16
|
-
2. **Per-invocation:** `/rihal
|
|
16
|
+
2. **Per-invocation:** `/rihal-do --auto <question>` on the router. The router sets `autoMode=true` and passes it to the dispatched skill.
|
|
17
17
|
|
|
18
18
|
If **neither** flag is set, halt is mandatory regardless of what the user's prompt text says.
|
|
19
19
|
|
|
@@ -34,4 +34,4 @@ That response invents a mode that does not exist and violates the halt invariant
|
|
|
34
34
|
|
|
35
35
|
## Correct Response
|
|
36
36
|
|
|
37
|
-
> ✅ Agent: *"I hear you want the PRD written end-to-end. The halt rule applies unless you set `mode: yolo` in `.rihal/config.yaml` or re-invoke via `/rihal
|
|
37
|
+
> ✅ Agent: *"I hear you want the PRD written end-to-end. The halt rule applies unless you set `mode: yolo` in `.rihal/config.yaml` or re-invoke via `/rihal-do --auto`. Here is the step-01 menu — pick Continue and I will drive each step concisely."*
|
|
@@ -28,7 +28,7 @@ This pattern is forbidden. A citation block without `WebFetch` evidence is a lie
|
|
|
28
28
|
|
|
29
29
|
## If the User Is Running Autonomously
|
|
30
30
|
|
|
31
|
-
`mode: yolo` and `/rihal
|
|
31
|
+
`mode: yolo` and `/rihal-do --auto` bypass halt-at-menu, but they do **not** bypass this rule. A fully-autonomous run still has to fetch every cited URL before writing the claim.
|
|
32
32
|
|
|
33
33
|
## Checklist Before Writing a Citation
|
|
34
34
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# State Sync Rule
|
|
2
2
|
|
|
3
|
-
Referenced by skills that write `ROADMAP.md`, `epics.md`, or sprint artifacts. These artifacts are not authoritative on their own — downstream workflows (`/rihal
|
|
3
|
+
Referenced by skills that write `ROADMAP.md`, `epics.md`, or sprint artifacts. These artifacts are not authoritative on their own — downstream workflows (`/rihal-status`, `/rihal-progress`, `/rihal-execute`) read `.rihal/state.json`. If you write a planning artifact and skip state sync, the project ends up with two divergent pictures.
|
|
4
4
|
|
|
5
5
|
## The Rule
|
|
6
6
|
|
|
@@ -29,15 +29,15 @@ If `rihal-tools.cjs` does not yet expose the needed subcommand, fall back to `st
|
|
|
29
29
|
## Verification After Sync
|
|
30
30
|
|
|
31
31
|
- `node .rihal/bin/rihal-tools.cjs state read` returns a phase count that matches the phase table in `ROADMAP.md`.
|
|
32
|
-
- `/rihal
|
|
32
|
+
- `/rihal-status` and `/rihal-progress`, run back-to-back, agree on the current milestone name and phase count.
|
|
33
33
|
|
|
34
34
|
## Why This Matters
|
|
35
35
|
|
|
36
36
|
Observed failure (rihal-code, social-poster-x install, Apr 2026):
|
|
37
37
|
|
|
38
|
-
- User ran `/rihal
|
|
38
|
+
- User ran `/rihal-create-epics-and-stories`.
|
|
39
39
|
- `ROADMAP.md` gained 10 phases; `epics.md` gained 62 stories.
|
|
40
40
|
- `.rihal/state.json` remained at the initial bootstrap with 1 phase.
|
|
41
|
-
- `/rihal
|
|
41
|
+
- `/rihal-status` showed 1 phase; `/rihal-progress` showed 10.
|
|
42
42
|
|
|
43
43
|
That divergence is what this rule exists to prevent.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: rihal
|
|
2
|
+
name: rihal-add-phase
|
|
3
3
|
description: "Add a new integer phase to the end of the current milestone. Auto-calculates the next phase number, creates the phase directory, and updates ROADMAP.md. Use when scope expands mid-milestone."
|
|
4
4
|
argument-hint: "<phase-name>"
|
|
5
5
|
allowed-tools: Read, Write, Bash, Glob, Grep, AskUserQuestion
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: rihal
|
|
2
|
+
name: rihal-add-tests
|
|
3
3
|
description: Generate unit and E2E tests for a completed phase based on its SUMMARY.md, CONTEXT.md, and implementation. Classifies ea
|
|
4
4
|
argument-hint: ""
|
|
5
5
|
allowed-tools: Read, Write, Bash, Glob, Grep, AskUserQuestion, Agent
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: rihal
|
|
2
|
+
name: rihal-audit-uat
|
|
3
3
|
description: Cross-phase audit of all UAT and verification files. Finds every outstanding item (pending, skipped, blocked, human_need
|
|
4
4
|
argument-hint: ""
|
|
5
5
|
allowed-tools: Read, Write, Bash, Glob, Grep, AskUserQuestion, Agent
|
package/rihal/commands/audit.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: rihal
|
|
2
|
+
name: rihal-audit
|
|
3
3
|
description: Single audit entry point — asks what to audit (phase, milestone, UAT, code, fix, work) and dispatches to the right subroute. Honours .rihal/config.yaml mode.
|
|
4
4
|
argument-hint: "[phase | milestone | uat | code | fix | work] [...subroute args]"
|
|
5
5
|
allowed-tools: Read, Write, Bash, AskUserQuestion
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: rihal
|
|
2
|
+
name: rihal-autonomous
|
|
3
3
|
description: Execute remaining phases autonomously with minimal human intervention. Runs plan → execute → verify cycles for unfinished work, pausing at checkpoints and failures.
|
|
4
4
|
argument-hint: "[--from N] [--to M] [--only N] [--interactive]"
|
|
5
5
|
allowed-tools: Read, Bash, Agent, AskUserQuestion
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: rihal
|
|
2
|
+
name: rihal-brainstorm
|
|
3
3
|
description: Guided brainstorming session — select a method, apply it to your challenge, generate ideas systematically
|
|
4
4
|
argument-hint: "<challenge> [--method=METHOD] [--people=N] [--personas=LIST]"
|
|
5
5
|
allowed-tools:
|
package/rihal/commands/chain.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: rihal
|
|
2
|
+
name: rihal-check-todos
|
|
3
3
|
description: List all pending todos, allow selection, load full context for the selected todo, and route to appropriate action.
|
|
4
4
|
argument-hint: ""
|
|
5
5
|
allowed-tools: Read, Write, Bash, Glob, Grep, AskUserQuestion, Agent
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: rihal
|
|
2
|
+
name: rihal-checkpoint-preview
|
|
3
3
|
description: Human-in-the-loop change review — makes sense of a diff, focuses attention where it matters, and walks through testing. Use when you say "checkpoint", "walk me through this", or "human review".
|
|
4
4
|
argument-hint: "[<branch-or-diff>]"
|
|
5
5
|
allowed-tools:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: rihal
|
|
3
|
-
description: "Archive completed milestone phase directories into .planning/milestones/. Run after /rihal
|
|
2
|
+
name: rihal-cleanup
|
|
3
|
+
description: "Archive completed milestone phase directories into .planning/milestones/. Run after /rihal-complete-milestone to keep .planning/ tidy. Shows a dry-run summary before moving anything."
|
|
4
4
|
argument-hint: "[--dry-run]"
|
|
5
5
|
allowed-tools: Read, Write, Bash, Glob, Grep, AskUserQuestion, Agent
|
|
6
6
|
---
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: rihal
|
|
2
|
+
name: rihal-code-review
|
|
3
3
|
description: Review source files for bugs, security issues, and code quality problems.
|
|
4
4
|
argument-hint: "<phase> [--depth=quick|standard|deep] [--files=file1,file2,...] [--karpathy] [--attack] [--edge-cases]"
|
|
5
5
|
allowed-tools:
|
package/rihal/commands/config.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: rihal
|
|
3
|
-
description: Alias for /rihal
|
|
2
|
+
name: rihal-config
|
|
3
|
+
description: Alias for /rihal-settings — view or edit Rihal config (language, mode, model profile, workflow gates, git strategy)
|
|
4
4
|
argument-hint: "[show | get <key> | set <key> <value>]"
|
|
5
5
|
allowed-tools: Read, Write, Bash, AskUserQuestion
|
|
6
6
|
---
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: rihal
|
|
2
|
+
name: rihal-correct-course
|
|
3
3
|
description: Load original PRD/architecture, compare to current codebase. Classify deviation (scope drift / wrong architecture / missing AC / tech debt). Produce ordered remediation plan + updated story file.
|
|
4
4
|
argument-hint: "[--prd <path>] [--architecture <path>]"
|
|
5
5
|
allowed-tools: Read, Glob, Grep, Bash, Agent
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: rihal
|
|
2
|
+
name: rihal-council
|
|
3
3
|
description: Convene the Rihal majlis — spawns 3-5 specialist subagents in parallel to answer a strategic question. Agents are picked by keyword scoring.
|
|
4
4
|
argument-hint: "<question> [--full] [--agents=a,b,c] [--explain]"
|
|
5
5
|
allowed-tools:
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: rihal
|
|
2
|
+
name: rihal-create-epics-and-stories
|
|
3
3
|
description: Parse a PRD or project document to generate numbered epic files in .planning/epics/. Each epic contains user stories with acceptance criteria and development notes.
|
|
4
4
|
argument-hint: "<prd-path|project-path> [--prefix <name>]"
|
|
5
5
|
allowed-tools: Read, Write, Glob, Grep, Bash, Agent
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: rihal
|
|
3
|
-
description: Transform a story from an epic file into a self-contained STORY.md with full AC, dev notes, and implementation guidance. Ready for /rihal
|
|
2
|
+
name: rihal-create-story
|
|
3
|
+
description: Transform a story from an epic file into a self-contained STORY.md with full AC, dev notes, and implementation guidance. Ready for /rihal-dev-story.
|
|
4
4
|
argument-hint: "<EPIC-file.md> [--story <id>]"
|
|
5
5
|
allowed-tools: Read, Write, Glob, Bash
|
|
6
6
|
---
|
package/rihal/commands/debug.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: rihal
|
|
2
|
+
name: rihal-dev-story
|
|
3
3
|
description: Wrap a STORY.md file for AI-coder execution. Produces explicit file paths, context, and checklist. Gated by checklist-story-draft.md entry.
|
|
4
4
|
argument-hint: "<STORY.md>"
|
|
5
5
|
allowed-tools: Read, Write, Bash, Glob
|
package/rihal/commands/diff.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: rihal
|
|
2
|
+
name: rihal-discuss-phase
|
|
3
3
|
description: Gather context through adaptive questioning before sprint planning. Creates CONTEXT.md with decisions, discretion areas, deferred ideas.
|
|
4
4
|
argument-hint: "<phase-number> [--auto] [--chain]"
|
|
5
5
|
allowed-tools: Read, Write, Bash, Glob, Grep, AskUserQuestion
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: rihal
|
|
3
|
-
description: Quick sync with one Rihal agent. Lighter than /rihal
|
|
2
|
+
name: rihal-discuss
|
|
3
|
+
description: Quick sync with one Rihal agent. Lighter than /rihal-council — one agent, no cross-talk, optional save.
|
|
4
4
|
argument-hint: "[agent-name] <question>"
|
|
5
5
|
allowed-tools:
|
|
6
6
|
- Read
|
package/rihal/commands/do.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: rihal
|
|
2
|
+
name: rihal-do
|
|
3
3
|
description: "[ROUTER] Interactive picker — describe what you want and rihal picks the command"
|
|
4
4
|
argument-hint: "[optional question or task description]"
|
|
5
5
|
allowed-tools:
|
|
@@ -9,7 +9,7 @@ allowed-tools:
|
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
<objective>
|
|
12
|
-
Analyze freeform natural language input and dispatch to the most appropriate rihal command. Acts as a smart dispatcher — never does the work itself. Matches intent to the best /rihal
|
|
12
|
+
Analyze freeform natural language input and dispatch to the most appropriate rihal command. Acts as a smart dispatcher — never does the work itself. Matches intent to the best /rihal-* command, confirms the match, then hands off.
|
|
13
13
|
</objective>
|
|
14
14
|
|
|
15
15
|
<execution_context>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: rihal
|
|
2
|
+
name: rihal-document-project
|
|
3
3
|
description: Load documentation-requirements.csv, audit missing/stale docs, file missing docs as SPRINT.md tasks. Auto-injected by resume-work.md if present.
|
|
4
4
|
argument-hint: "[--csv <path>] [--auto-file-tasks]"
|
|
5
5
|
allowed-tools: Read, Write, Glob, Bash, Agent
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: rihal
|
|
3
|
-
description: "Internal — Execute a sprint's SPRINT.md. Wrapper over rihal
|
|
2
|
+
name: rihal-execute-sprint
|
|
3
|
+
description: "Internal — Execute a sprint's SPRINT.md. Wrapper over rihal-execute for sprint-specific dispatch."
|
|
4
4
|
argument-hint: "<sprint-file.md | phase-dir>"
|
|
5
5
|
allowed-tools:
|
|
6
6
|
- Read
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: rihal
|
|
2
|
+
name: rihal-execute
|
|
3
3
|
description: Execute one or more SPRINT.md files. Spawns rihal-executor subagents in parallel per dependency wave. Pauses at checkpoints and waits for human verification or decisions.
|
|
4
4
|
argument-hint: "<plan-file.md | phase-dir> [--wave N] [--interactive] [--continue] [--option=A]"
|
|
5
5
|
allowed-tools: Read, Write, Edit, Bash, Grep, Glob, Agent
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: rihal
|
|
2
|
+
name: rihal-export-to-github
|
|
3
3
|
description: Push phases/stories/decisions to GitHub — thin wrapper over rihal-code github-sync, plus a decisions export mode
|
|
4
4
|
argument-hint: "[target] [--execute] [--repo owner/name] [--with-labels] [--decisions [--since ISO]]"
|
|
5
5
|
allowed-tools:
|