@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.
- 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 +203 -0
- package/cli/install.js +29 -12
- 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 +27 -16
- 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
package/rihal/workflows/why.md
CHANGED
|
@@ -4,15 +4,15 @@ Explain the reasoning behind a Rihal decision: why this panel was selected, why
|
|
|
4
4
|
|
|
5
5
|
## Step 0: Usage Check
|
|
6
6
|
|
|
7
|
-
Verify non-empty argument: `/rihal
|
|
7
|
+
Verify non-empty argument: `/rihal-why <topic-or-question>`
|
|
8
8
|
|
|
9
9
|
Examples:
|
|
10
|
-
- `/rihal
|
|
11
|
-
- `/rihal
|
|
12
|
-
- `/rihal
|
|
13
|
-
- `/rihal
|
|
10
|
+
- `/rihal-why should I use waleed for this question`
|
|
11
|
+
- `/rihal-why did it classify as codebase`
|
|
12
|
+
- `/rihal-why did we deviate from the plan`
|
|
13
|
+
- `/rihal-why choose this tech stack`
|
|
14
14
|
|
|
15
|
-
If empty: `Usage: /rihal
|
|
15
|
+
If empty: `Usage: /rihal-why <topic-or-question>`
|
|
16
16
|
|
|
17
17
|
## Step 1: Detect What User Is Asking About
|
|
18
18
|
|
|
@@ -114,7 +114,7 @@ If found:
|
|
|
114
114
|
**Next decision point:** {decision.next_checkpoint}
|
|
115
115
|
```
|
|
116
116
|
|
|
117
|
-
If not found: `No recorded decision matches "{ARGUMENTS}". Use /rihal
|
|
117
|
+
If not found: `No recorded decision matches "{ARGUMENTS}". Use /rihal-progress to see recent context.`
|
|
118
118
|
|
|
119
119
|
## Success Criteria
|
|
120
120
|
|
|
@@ -126,5 +126,5 @@ If not found: `No recorded decision matches "{ARGUMENTS}". Use /rihal:progress t
|
|
|
126
126
|
## On Error
|
|
127
127
|
|
|
128
128
|
- rihal-tools error → Show error message
|
|
129
|
-
- state.json missing → `State not initialized. Run /rihal
|
|
130
|
-
- No match found → Suggest `/rihal
|
|
129
|
+
- state.json missing → `State not initialized. Run /rihal-new-project first.`
|
|
130
|
+
- No match found → Suggest `/rihal-progress` for context
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Workflow: rihal
|
|
1
|
+
# Workflow: rihal-workstream
|
|
2
2
|
|
|
3
3
|
<purpose>
|
|
4
4
|
Manage parallel workstreams (milestone tracks) in Rihal. A workstream is an independent execution path with its own phases and tasks. Multiple workstreams can run in parallel, sharing decisions, blockers, and council sessions. This workflow handles creation, switching, listing, and completion of workstreams stored in state.json.
|
|
@@ -16,20 +16,20 @@ If `$ARGUMENTS` is empty or contains only `--help` or `-h`:
|
|
|
16
16
|
|
|
17
17
|
**Usage:**
|
|
18
18
|
```
|
|
19
|
-
/rihal
|
|
20
|
-
/rihal
|
|
21
|
-
/rihal
|
|
22
|
-
/rihal
|
|
23
|
-
/rihal
|
|
19
|
+
/rihal-workstream create --name <name>
|
|
20
|
+
/rihal-workstream switch --name <name>
|
|
21
|
+
/rihal-workstream list
|
|
22
|
+
/rihal-workstream status
|
|
23
|
+
/rihal-workstream complete --name <name>
|
|
24
24
|
```
|
|
25
25
|
|
|
26
26
|
**Examples:**
|
|
27
27
|
```
|
|
28
|
-
/rihal
|
|
29
|
-
/rihal
|
|
30
|
-
/rihal
|
|
31
|
-
/rihal
|
|
32
|
-
/rihal
|
|
28
|
+
/rihal-workstream create --name "Frontend Redesign"
|
|
29
|
+
/rihal-workstream switch --name "Frontend Redesign"
|
|
30
|
+
/rihal-workstream list
|
|
31
|
+
/rihal-workstream status
|
|
32
|
+
/rihal-workstream complete --name "Backend Migration"
|
|
33
33
|
```
|
|
34
34
|
|
|
35
35
|
Only after the user provides arguments, proceed to Step 1.
|
|
@@ -106,26 +106,26 @@ function sprintHints(s) {
|
|
|
106
106
|
const pid = s.phaseId || '';
|
|
107
107
|
const h = [];
|
|
108
108
|
if (st === 'completed' || st === 'complete' || st === 'done') {
|
|
109
|
-
h.push(cmdHint('/rihal
|
|
110
|
-
h.push(cmdHint('/rihal
|
|
111
|
-
h.push(cmdHint('/rihal
|
|
112
|
-
h.push(cmdHint('/rihal
|
|
109
|
+
h.push(cmdHint('/rihal-verify-work', 'Verify UAT for Sprint ' + sid));
|
|
110
|
+
h.push(cmdHint('/rihal-audit', 'Audit completed Sprint ' + sid));
|
|
111
|
+
h.push(cmdHint('/rihal-session-report', 'Generate session report'));
|
|
112
|
+
h.push(cmdHint('/rihal-code-review', 'Review code from Sprint ' + sid));
|
|
113
113
|
} else if (st === 'active' || st === 'in_progress') {
|
|
114
|
-
h.push(cmdHint('/rihal
|
|
115
|
-
h.push(cmdHint('/rihal
|
|
116
|
-
h.push(cmdHint('/rihal
|
|
114
|
+
h.push(cmdHint('/rihal-progress', 'Check Sprint ' + sid + ' progress'));
|
|
115
|
+
h.push(cmdHint('/rihal-sprint-status', 'Status report for Sprint ' + sid));
|
|
116
|
+
h.push(cmdHint('/rihal-pause-work', 'Pause and save context'));
|
|
117
117
|
} else if (st === 'blocked') {
|
|
118
|
-
h.push(cmdHint('/rihal
|
|
119
|
-
h.push(cmdHint('/rihal
|
|
118
|
+
h.push(cmdHint('/rihal-debug', 'Debug blocker in Sprint ' + sid));
|
|
119
|
+
h.push(cmdHint('/rihal-correct-course', 'Course-correct Sprint ' + sid));
|
|
120
120
|
} else {
|
|
121
121
|
if (!stories.length) {
|
|
122
|
-
h.push(cmdHint('/rihal
|
|
123
|
-
h.push(cmdHint('/rihal
|
|
124
|
-
h.push(cmdHint('/rihal
|
|
122
|
+
h.push(cmdHint('/rihal-sprint-planning', 'Groom Sprint ' + sid + ' — add stories'));
|
|
123
|
+
h.push(cmdHint('/rihal-create-story', 'Create a story for Sprint ' + sid));
|
|
124
|
+
h.push(cmdHint('/rihal-discuss-phase', 'Discuss approach before planning'));
|
|
125
125
|
} else {
|
|
126
|
-
h.push(cmdHint('/rihal
|
|
127
|
-
h.push(cmdHint('/rihal
|
|
128
|
-
h.push(cmdHint('/rihal
|
|
126
|
+
h.push(cmdHint('/rihal-execute', 'Execute Sprint ' + sid));
|
|
127
|
+
h.push(cmdHint('/rihal-discuss-phase', 'Discuss before executing'));
|
|
128
|
+
h.push(cmdHint('/rihal-sprint-planning', 'Refine Sprint ' + sid + ' plan'));
|
|
129
129
|
}
|
|
130
130
|
}
|
|
131
131
|
return h;
|
|
@@ -136,21 +136,21 @@ function phaseHints(p) {
|
|
|
136
136
|
const pid = p.id || '';
|
|
137
137
|
const h = [];
|
|
138
138
|
if (st === 'completed' || st === 'complete' || st === 'done') {
|
|
139
|
-
h.push(cmdHint('/rihal
|
|
140
|
-
h.push(cmdHint('/rihal
|
|
141
|
-
h.push(cmdHint('/rihal
|
|
139
|
+
h.push(cmdHint('/rihal-validate-phase', 'Validate Phase ' + pid + ' deliverables'));
|
|
140
|
+
h.push(cmdHint('/rihal-audit', 'Audit Phase ' + pid + ' completion'));
|
|
141
|
+
h.push(cmdHint('/rihal-code-review', 'Review Phase ' + pid + ' code'));
|
|
142
142
|
} else if (st === 'active' || st === 'in_progress') {
|
|
143
|
-
h.push(cmdHint('/rihal
|
|
144
|
-
h.push(cmdHint('/rihal
|
|
145
|
-
h.push(cmdHint('/rihal
|
|
143
|
+
h.push(cmdHint('/rihal-progress', 'Check Phase ' + pid + ' progress'));
|
|
144
|
+
h.push(cmdHint('/rihal-sprint-status', 'Current sprint status'));
|
|
145
|
+
h.push(cmdHint('/rihal-code-review', 'Review code in Phase ' + pid));
|
|
146
146
|
} else {
|
|
147
147
|
if (!sps.length) {
|
|
148
|
-
h.push(cmdHint('/rihal
|
|
149
|
-
h.push(cmdHint('/rihal
|
|
150
|
-
h.push(cmdHint('/rihal
|
|
148
|
+
h.push(cmdHint('/rihal-plan', 'Create sprint plan for Phase ' + pid));
|
|
149
|
+
h.push(cmdHint('/rihal-discuss-phase', 'Discuss Phase ' + pid + ' approach'));
|
|
150
|
+
h.push(cmdHint('/rihal-research-phase', 'Research Phase ' + pid + ' before planning'));
|
|
151
151
|
} else {
|
|
152
|
-
h.push(cmdHint('/rihal
|
|
153
|
-
h.push(cmdHint('/rihal
|
|
152
|
+
h.push(cmdHint('/rihal-execute', 'Start executing Phase ' + pid));
|
|
153
|
+
h.push(cmdHint('/rihal-sprint-planning', 'Plan next sprint in Phase ' + pid));
|
|
154
154
|
}
|
|
155
155
|
}
|
|
156
156
|
return h;
|
|
@@ -277,7 +277,7 @@ function renderOverview() {
|
|
|
277
277
|
|
|
278
278
|
const el = document.getElementById('view-overview-dynamic');
|
|
279
279
|
// Overview hints
|
|
280
|
-
var oHints = [cmdHint('/rihal
|
|
280
|
+
var oHints = [cmdHint('/rihal-next', 'What should I do next?'), cmdHint('/rihal-status', 'Quick project status'), cmdHint('/rihal-council', 'Ask the team a question')];
|
|
281
281
|
if (curSprint) { oHints = sprintHints(curSprint).concat(oHints); }
|
|
282
282
|
if (el) el.innerHTML = sprintProgressHtml + velocityHtml + councilHtml + chainsHtml + lastSessionHtml + cmdAccordion(oHints);
|
|
283
283
|
}
|
|
@@ -334,9 +334,9 @@ function renderRoadmap() {
|
|
|
334
334
|
}
|
|
335
335
|
h += '</div></div></div>';
|
|
336
336
|
// Roadmap hints
|
|
337
|
-
var rmHints = [cmdHint('/rihal
|
|
337
|
+
var rmHints = [cmdHint('/rihal-add-phase', 'Add a new phase'), cmdHint('/rihal-milestone-summary', 'View milestone summary'), cmdHint('/rihal-new-milestone', 'Start a new milestone')];
|
|
338
338
|
var allPDone = _phases.length > 0 && _phases.every(ph => ph.status === 'complete' || ph.status === 'completed' || ph.status === 'done');
|
|
339
|
-
if (allPDone) { rmHints.push(cmdHint('/rihal
|
|
339
|
+
if (allPDone) { rmHints.push(cmdHint('/rihal-audit-milestone', 'Audit milestone completion')); rmHints.push(cmdHint('/rihal-complete-milestone', 'Complete and archive milestone')); }
|
|
340
340
|
document.getElementById('view-roadmap').innerHTML = h + cmdAccordion(rmHints);
|
|
341
341
|
}
|
|
342
342
|
|
|
@@ -446,15 +446,15 @@ function renderPhases(subId) {
|
|
|
446
446
|
velocityHtml +
|
|
447
447
|
'<div class="view-title" style="margin-top:var(--space-6)">Sprints</div>' +
|
|
448
448
|
'<div class="phase-list">' + (sps.length ? sps.map(s => sprintCard(Object.assign({},s,{phaseId:p.id,phaseName:p.name}))).join('') :
|
|
449
|
-
'<div class="empty">No sprints in this phase yet.<div class="empty-action">Run /rihal
|
|
449
|
+
'<div class="empty">No sprints in this phase yet.<div class="empty-action">Run /rihal-plan to create sprints</div></div>') + '</div>' +
|
|
450
450
|
cmdAccordion(phaseHints(p));
|
|
451
451
|
} else {
|
|
452
|
-
var plHints = [cmdHint('/rihal
|
|
452
|
+
var plHints = [cmdHint('/rihal-add-phase', 'Add a new phase'), cmdHint('/rihal-stats', 'Project statistics'), cmdHint('/rihal-progress', 'Overall progress')];
|
|
453
453
|
var allComplete = _phases.length > 0 && _phases.every(ph => ph.status === 'complete' || ph.status === 'completed' || ph.status === 'done');
|
|
454
|
-
if (allComplete) { plHints.push(cmdHint('/rihal
|
|
454
|
+
if (allComplete) { plHints.push(cmdHint('/rihal-audit-milestone', 'Audit milestone completion')); plHints.push(cmdHint('/rihal-complete-milestone', 'Complete and archive milestone')); plHints.push(cmdHint('/rihal-ship', 'Create PR and ship')); }
|
|
455
455
|
el.innerHTML = '<div class="view-title">Phases</div>' + filterInput('phases-inner') +
|
|
456
456
|
'<div id="phases-inner" class="phase-list">' +
|
|
457
|
-
(_phases.length ? _phases.map(phaseCard).join('') : '<div class="empty">No phases yet.<div class="empty-action">Run /rihal
|
|
457
|
+
(_phases.length ? _phases.map(phaseCard).join('') : '<div class="empty">No phases yet.<div class="empty-action">Run /rihal-new-project to start</div></div>') + '</div>' + cmdAccordion(plHints);
|
|
458
458
|
}
|
|
459
459
|
}
|
|
460
460
|
|
|
@@ -492,16 +492,16 @@ function renderSprints(subId) {
|
|
|
492
492
|
'<div style="margin-bottom:var(--space-6);">' + progressBar(done, stories.length) + '</div>' +
|
|
493
493
|
'<div class="view-title" style="margin-top:var(--space-6)">Tasks</div>' +
|
|
494
494
|
'<div class="phase-list">' + (stories.length ? stories.map(taskCard).join('') :
|
|
495
|
-
'<div class="empty">No tasks in this sprint yet.<div class="empty-action">Run /rihal
|
|
495
|
+
'<div class="empty">No tasks in this sprint yet.<div class="empty-action">Run /rihal-create-story to add tasks</div></div>') + '</div>' +
|
|
496
496
|
acHtml + cmdAccordion(sprintHints(s));
|
|
497
497
|
} else {
|
|
498
|
-
var slHints = [cmdHint('/rihal
|
|
498
|
+
var slHints = [cmdHint('/rihal-sprint-planning', 'Plan a new sprint'), cmdHint('/rihal-stats', 'Project statistics')];
|
|
499
499
|
var curSp = sprints.find(sp => sp.id === S.currentSprint);
|
|
500
|
-
if (curSp) { slHints.push(cmdHint('/rihal
|
|
500
|
+
if (curSp) { slHints.push(cmdHint('/rihal-execute', 'Execute current sprint ' + curSp.id)); slHints.push(cmdHint('/rihal-sprint-status', 'Status of Sprint ' + curSp.id)); }
|
|
501
501
|
el.innerHTML = '<div class="view-title">Sprints</div>' + filterInput('sprints-inner') +
|
|
502
502
|
'<div id="sprints-inner" class="phase-list">' +
|
|
503
503
|
(sprints.length ? sprints.map(sprintCard).join('') :
|
|
504
|
-
'<div class="empty">No sprints yet.<div class="empty-action">Run /rihal
|
|
504
|
+
'<div class="empty">No sprints yet.<div class="empty-action">Run /rihal-plan to create sprints</div></div>') + '</div>' + cmdAccordion(slHints);
|
|
505
505
|
}
|
|
506
506
|
}
|
|
507
507
|
|
|
@@ -529,16 +529,16 @@ function renderTasks() {
|
|
|
529
529
|
'<div id="tasks-inner" class="phase-list">' +
|
|
530
530
|
renderTasksGrouped(tasks) + '</div>';
|
|
531
531
|
// Task hints accordion
|
|
532
|
-
var tHints = [cmdHint('/rihal
|
|
532
|
+
var tHints = [cmdHint('/rihal-create-story', 'Add a new story/task'), cmdHint('/rihal-sprint-planning', 'Plan the next sprint')];
|
|
533
533
|
var allDone = tasks.length > 0 && tasks.every(t => t.status === 'done' || t.status === 'completed');
|
|
534
534
|
var hasBlocked = tasks.some(t => t.status === 'blocked');
|
|
535
|
-
if (allDone) { tHints.push(cmdHint('/rihal
|
|
536
|
-
if (hasBlocked) { tHints.push(cmdHint('/rihal
|
|
535
|
+
if (allDone) { tHints.push(cmdHint('/rihal-verify-work', 'Verify all tasks pass UAT')); tHints.push(cmdHint('/rihal-audit-uat', 'Audit UAT coverage')); }
|
|
536
|
+
if (hasBlocked) { tHints.push(cmdHint('/rihal-debug', 'Debug blocked tasks')); tHints.push(cmdHint('/rihal-correct-course', 'Course-correct blockers')); }
|
|
537
537
|
el.innerHTML += cmdAccordion(tHints);
|
|
538
538
|
}
|
|
539
539
|
|
|
540
540
|
function renderTasksGrouped(tasks) {
|
|
541
|
-
if (!tasks.length) return '<div class="empty">No tasks yet.<div class="empty-action">Run /rihal
|
|
541
|
+
if (!tasks.length) return '<div class="empty">No tasks yet.<div class="empty-action">Run /rihal-create-story to add tasks</div></div>';
|
|
542
542
|
const groups = {};
|
|
543
543
|
for (const t of tasks) {
|
|
544
544
|
const key = t.sprintId || 'unassigned';
|
|
@@ -720,7 +720,7 @@ function renderDecisions() {
|
|
|
720
720
|
const decisions = S.decisions || [];
|
|
721
721
|
if (!decisions.length) {
|
|
722
722
|
el.innerHTML = '<div class="view-title">Decisions (ADRs)</div>' +
|
|
723
|
-
'<div class="empty">No decisions recorded yet.<div class="empty-action">Decisions made during /rihal
|
|
723
|
+
'<div class="empty">No decisions recorded yet.<div class="empty-action">Decisions made during /rihal-council appear here</div></div>';
|
|
724
724
|
return;
|
|
725
725
|
}
|
|
726
726
|
// #307: group by phase
|
|
@@ -753,9 +753,9 @@ function renderDecisions() {
|
|
|
753
753
|
}
|
|
754
754
|
h += '</div>';
|
|
755
755
|
el.innerHTML = h + cmdAccordion([
|
|
756
|
-
cmdHint('/rihal
|
|
757
|
-
cmdHint('/rihal
|
|
758
|
-
cmdHint('/rihal
|
|
756
|
+
cmdHint('/rihal-council', 'Convene the council for a new decision'),
|
|
757
|
+
cmdHint('/rihal-discuss [agent] \"topic\"', 'Discuss with a specific expert'),
|
|
758
|
+
cmdHint('/rihal-decisions', 'View decision log')
|
|
759
759
|
]);
|
|
760
760
|
}
|
|
761
761
|
|