@hanzlaa/rcode 2.7.2 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +11 -1
- package/CONTRIBUTING.md +7 -0
- package/README.md +39 -20
- package/package.json +2 -2
- package/rihal/agents/rihal-advisor-researcher.md +1 -1
- package/rihal/agents/rihal-assumptions-analyzer.md +1 -1
- package/rihal/agents/rihal-codebase-mapper.md +1 -1
- package/rihal/agents/rihal-docs-auditor.md +3 -3
- package/rihal/agents/rihal-executor.md +10 -0
- package/rihal/agents/rihal-fatima.md +31 -101
- package/rihal/agents/rihal-haitham.md +125 -57
- package/rihal/agents/rihal-hanzla.md +23 -98
- package/rihal/agents/rihal-hussain-pm.md +33 -102
- package/rihal/agents/rihal-integration-checker.md +1 -1
- package/rihal/agents/rihal-mariam.md +26 -94
- package/rihal/agents/rihal-noor.md +2 -2
- package/rihal/agents/rihal-omar.md +112 -31
- package/rihal/agents/rihal-phase-researcher.md +1 -1
- package/rihal/agents/rihal-planner.md +25 -0
- package/rihal/agents/rihal-project-researcher.md +1 -1
- package/rihal/agents/rihal-research-synthesizer.md +1 -1
- package/rihal/agents/rihal-roadmapper.md +1 -1
- package/rihal/agents/rihal-sadiq.md +30 -95
- package/rihal/agents/rihal-sprint-checker.md +19 -1
- package/rihal/agents/rihal-verifier.md +1 -1
- package/rihal/agents/rihal-waleed.md +34 -98
- package/rihal/agents/rihal-yousef.md +111 -52
- package/rihal/commands/code-review.md +1 -1
- package/rihal/commands/memory-audit.md +10 -0
- package/rihal/commands/memory-distill.md +11 -0
- package/rihal/commands/memory-init.md +12 -0
- package/rihal/commands/memory-update.md +12 -0
- package/rihal/config/model-profiles.json +5 -5
- package/rihal/references/agent-shared-rules.md +81 -0
- package/rihal/references/karpathy-guidelines-full.md +1 -1
- package/rihal/references/no-unauthorized-git-ops.md +1 -1
- package/rihal/references/verb-dictionary.md +1 -1
- package/rihal/skills/actions/2-plan/rihal-frontend-design/SKILL.md +49 -139
- package/rihal/skills/actions/2-plan/rihal-frontend-design/references.md +79 -0
- package/rihal/skills/actions/4-implementation/rihal-browser-verify/SKILL.md +70 -0
- package/rihal/skills/actions/4-implementation/rihal-checkpoint-preview/SKILL.md +1 -1
- package/rihal/skills/actions/4-implementation/rihal-ci/SKILL.md +108 -0
- package/rihal/skills/actions/4-implementation/rihal-debug/SKILL.md +78 -0
- package/rihal/skills/actions/4-implementation/rihal-git-flow/SKILL.md +90 -0
- package/rihal/skills/actions/4-implementation/rihal-harden/SKILL.md +91 -0
- package/rihal/skills/actions/4-implementation/rihal-incremental/SKILL.md +50 -0
- package/rihal/skills/actions/4-implementation/rihal-migrate/SKILL.md +86 -0
- package/rihal/skills/actions/4-implementation/rihal-perf/SKILL.md +96 -0
- package/rihal/skills/actions/4-implementation/rihal-prove-it/SKILL.md +64 -0
- package/rihal/skills/actions/4-implementation/rihal-source-truth/SKILL.md +76 -0
- package/rihal/skills/actions/4-implementation/rihal-trim/SKILL.md +73 -0
- package/rihal/skills/agents/dalil-scout/SKILL.md +43 -125
- package/rihal/skills/agents/dalil-scout/references.md +67 -0
- package/rihal/skills/agents/fatima-qa/SKILL.md +21 -0
- package/rihal/skills/agents/hanzla-engineer/SKILL.md +22 -0
- package/rihal/skills/agents/hussain-pm/SKILL.md +21 -0
- package/rihal/skills/agents/majlis-council/SKILL.md +50 -144
- package/rihal/skills/agents/majlis-council/references.md +90 -0
- package/rihal/skills/agents/mariam-marketing/SKILL.md +19 -0
- package/rihal/skills/agents/raees-orchestrator/SKILL.md +56 -117
- package/rihal/skills/agents/raees-orchestrator/references.md +47 -0
- package/rihal/skills/agents/sadiq-analyst/SKILL.md +30 -0
- package/rihal/skills/agents/waleed-architect/SKILL.md +20 -0
- package/rihal/skills/core/rihal-advanced-elicitation/SKILL.md +36 -136
- package/rihal/skills/core/rihal-advanced-elicitation/references.md +101 -0
- package/rihal/skills/core/rihal-auth-audit/SKILL.md +93 -0
- package/rihal/skills/core/rihal-brainstorming/SKILL.md +5 -0
- package/rihal/skills/core/rihal-client-gate/SKILL.md +91 -0
- package/rihal/skills/core/rihal-clone-website/SKILL.md +30 -371
- package/rihal/skills/core/rihal-clone-website/references.md +213 -0
- package/rihal/skills/core/rihal-deploy-unify/SKILL.md +87 -0
- package/rihal/skills/core/rihal-distillator/SKILL.md +37 -187
- package/rihal/skills/core/rihal-distillator/references.md +118 -0
- package/rihal/skills/core/rihal-editorial-review-prose/SKILL.md +5 -0
- package/rihal/skills/core/rihal-editorial-review-structure/SKILL.md +45 -183
- package/rihal/skills/core/rihal-editorial-review-structure/references.md +110 -0
- package/rihal/skills/core/rihal-help/SKILL.md +6 -1
- package/rihal/skills/core/rihal-incident-record/SKILL.md +161 -0
- package/rihal/skills/core/rihal-index-docs/SKILL.md +5 -0
- package/rihal/skills/core/rihal-init/SKILL.md +5 -0
- package/rihal/skills/core/rihal-memory-audit/SKILL.md +88 -0
- package/rihal/skills/core/rihal-memory-distill/SKILL.md +87 -0
- package/rihal/skills/core/rihal-memory-init/SKILL.md +77 -0
- package/rihal/skills/core/rihal-memory-update/SKILL.md +73 -0
- package/rihal/skills/core/rihal-mvp-graduate/SKILL.md +116 -0
- package/rihal/skills/core/rihal-ocr-consistency/SKILL.md +106 -0
- package/rihal/skills/core/rihal-party-mode/SKILL.md +5 -0
- package/rihal/skills/core/rihal-rebrand/SKILL.md +133 -0
- package/rihal/skills/core/rihal-review-adversarial-general/SKILL.md +5 -0
- package/rihal/skills/core/rihal-review-edge-case-hunter/SKILL.md +5 -0
- package/rihal/skills/core/rihal-shard-doc/SKILL.md +5 -0
- package/rihal/skills/core/rihal-theme-system/SKILL.md +113 -0
- package/rihal/team.yaml +3 -22
- package/rihal/templates/memory/INDEX.md +46 -0
- package/rihal/templates/memory/change-records/.gitkeep +4 -0
- package/rihal/templates/memory/distillates/project.distillate.md +11 -0
- package/rihal/templates/memory/distillates/stack.distillate.md +11 -0
- package/rihal/templates/memory/incidents/known-issues.md +27 -0
- package/rihal/templates/memory/incidents/post-mortems/.gitkeep +3 -0
- package/rihal/templates/memory/milestones/archive/.gitkeep +2 -0
- package/rihal/templates/memory/milestones/current.md +39 -0
- package/rihal/templates/memory/people/stakeholders.md +25 -0
- package/rihal/templates/memory/people/team.md +35 -0
- package/rihal/templates/memory/project/decisions.md +32 -0
- package/rihal/templates/memory/project/glossary.md +16 -0
- package/rihal/templates/memory/project/stack.md +46 -0
- package/rihal/workflows/audit.md +3 -3
- package/rihal/workflows/code-review.md +32 -1
- package/rihal/workflows/council.md +1 -1
- package/rihal/workflows/discuss-phase-power.md +3 -3
- package/rihal/workflows/do.md +1 -1
- package/rihal/workflows/docs-update.md +4 -4
- package/rihal/workflows/execute.md +61 -5
- package/rihal/workflows/help.md +5 -5
- package/rihal/workflows/karpathy-audit.md +9 -9
- package/rihal/workflows/memory-audit.md +83 -0
- package/rihal/workflows/memory-distill.md +103 -0
- package/rihal/workflows/memory-init.md +102 -0
- package/rihal/workflows/memory-update.md +83 -0
- package/rihal/workflows/plan.md +66 -1
- package/server/dashboard.js +6 -1
- package/server/lib/api.js +8 -2
- package/server/lib/html/client.js +63 -0
- package/server/lib/html/shell.js +5 -0
- package/server/lib/scanner.js +76 -1
- package/rihal/agents/rihal-architect.md +0 -79
- package/rihal/agents/rihal-tech-writer.md +0 -80
- package/rihal/commands/check-implementation-readiness.md +0 -8
- package/rihal/commands/discuss-phase-power.md +0 -11
- package/rihal/commands/karpathy-audit.md +0 -12
- package/rihal/commands/new-project-research.md +0 -11
- package/rihal/commands/new-project-roadmap.md +0 -11
- package/rihal/commands/report.md +0 -10
- package/rihal/commands/review-adversarial.md +0 -8
- package/rihal/commands/review-edge-case-hunter.md +0 -8
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rihal-theme-system
|
|
3
|
+
description: Audit a frontend's design tokens BEFORE launch. Catches inconsistent colours, scattered hex values, hardcoded spacing, font drift, and missing dark/RTL mode support. Specifically encodes Rihal's "had to do complete rebranding mid-project" pain — themes accumulated drift until a full pass was the only fix. Pairs with rihal-rebrand if a rebrand becomes unavoidable.
|
|
4
|
+
triggers:
|
|
5
|
+
- "theme audit"
|
|
6
|
+
- "design tokens"
|
|
7
|
+
- "scattered colours"
|
|
8
|
+
- "hardcoded hex"
|
|
9
|
+
- "design system audit"
|
|
10
|
+
- "before launch design check"
|
|
11
|
+
- "consistent theme"
|
|
12
|
+
- "css variable audit"
|
|
13
|
+
user-invocable: true
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
|
|
18
|
+
Theme drift is silent until launch — then someone notices that "the brand blue" is 4 different blues across pages, and now you're rebranding under deadline. This skill catches drift early: every colour, font, spacing value, and animation duration must come from a token, not a literal. A 30-minute audit before launch is cheaper than a 3-week rebrand after.
|
|
19
|
+
|
|
20
|
+
## The 7 token categories
|
|
21
|
+
|
|
22
|
+
For each, the audit checks: where do values live, are they used consistently, is dark mode + RTL supported.
|
|
23
|
+
|
|
24
|
+
### 1. Colour
|
|
25
|
+
|
|
26
|
+
- [ ] All colours defined as CSS custom properties in one location (`globals.css` or `tokens.css`).
|
|
27
|
+
- [ ] No raw hex / rgb in component files (grep for `#[0-9a-f]{3,8}`).
|
|
28
|
+
- [ ] Each colour has a semantic name (`--color-primary`) AND a literal name (`--rihal-blue`).
|
|
29
|
+
- [ ] Dark mode tokens defined alongside light, not retrofitted.
|
|
30
|
+
|
|
31
|
+
### 2. Typography
|
|
32
|
+
|
|
33
|
+
- [ ] Font families loaded once (via `next/font` or `<link>` in head).
|
|
34
|
+
- [ ] Font sizes use a scale (`--text-xs`, `--text-sm`, etc.), not arbitrary px values.
|
|
35
|
+
- [ ] Arabic font has explicit line-height bump (Arabic glyphs are denser).
|
|
36
|
+
- [ ] Fallback stack defined for every font family.
|
|
37
|
+
|
|
38
|
+
### 3. Spacing
|
|
39
|
+
|
|
40
|
+
- [ ] Spacing scale defined (`--space-1` through `--space-12`).
|
|
41
|
+
- [ ] No raw px values for margin/padding in components.
|
|
42
|
+
- [ ] Logical properties used (`padding-inline-start`, not `padding-left`) for RTL.
|
|
43
|
+
|
|
44
|
+
### 4. Radii & shadows
|
|
45
|
+
|
|
46
|
+
- [ ] Radii scale (`--radius-sm`, `--radius-lg`).
|
|
47
|
+
- [ ] Shadow tokens, not inline `box-shadow: 0 4px 6px ...` strings.
|
|
48
|
+
|
|
49
|
+
### 5. Motion
|
|
50
|
+
|
|
51
|
+
- [ ] Duration scale (`--duration-fast: 150ms`, `--duration-slow: 400ms`).
|
|
52
|
+
- [ ] Easing tokens (`--ease-out`, `--ease-spring`).
|
|
53
|
+
- [ ] Reduced-motion media query honoured.
|
|
54
|
+
|
|
55
|
+
### 6. Breakpoints
|
|
56
|
+
|
|
57
|
+
- [ ] Breakpoint tokens defined and used everywhere.
|
|
58
|
+
- [ ] Mobile (390px), tablet (768px), desktop (1440px) all tested.
|
|
59
|
+
|
|
60
|
+
### 7. RTL
|
|
61
|
+
|
|
62
|
+
- [ ] `dir="rtl"` toggle exists and works at the root.
|
|
63
|
+
- [ ] Logical properties used throughout (CSS Logical Properties Level 1).
|
|
64
|
+
- [ ] Icons that imply direction (arrows, slashes) flipped via `transform: scaleX(-1)` or RTL-specific assets.
|
|
65
|
+
- [ ] Mixed-content (Arabic + English in same line) tested.
|
|
66
|
+
|
|
67
|
+
## Workflow
|
|
68
|
+
|
|
69
|
+
1. **Inventory token locations.** Should be one file per category, plus a root index.
|
|
70
|
+
2. **Grep for literals.** Every match in a component file is a finding.
|
|
71
|
+
3. **Diff against design.** If Layla / Zahra / the brand guide has tokens that aren't in code, add them. If code has tokens not in the brand guide, flag them.
|
|
72
|
+
4. **Test dark + RTL** per page if they're shipping.
|
|
73
|
+
5. **Generate the fix list** ordered by frequency (a hardcoded `#1e3a8a` in 12 files is more urgent than one in 1).
|
|
74
|
+
|
|
75
|
+
## Output Format
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
Theme audit — <date>
|
|
79
|
+
Pages reviewed: <count>
|
|
80
|
+
|
|
81
|
+
Token coverage:
|
|
82
|
+
Colour: <X%> ✗ <count> raw hex literals
|
|
83
|
+
Typography: <X%> ⚠ <findings>
|
|
84
|
+
Spacing: <X%>
|
|
85
|
+
Radii/shadows: <X%>
|
|
86
|
+
Motion: <X%>
|
|
87
|
+
Breakpoints: <X%>
|
|
88
|
+
RTL: ✓/✗
|
|
89
|
+
|
|
90
|
+
Top offenders (by file):
|
|
91
|
+
src/components/Hero.tsx — 8 raw hex values
|
|
92
|
+
src/app/page.tsx — 4 hardcoded font sizes
|
|
93
|
+
|
|
94
|
+
Fix order (by impact):
|
|
95
|
+
1. Replace #1e3a8a → var(--rihal-blue) — 12 occurrences across 8 files
|
|
96
|
+
2. ...
|
|
97
|
+
|
|
98
|
+
Memory Bank update:
|
|
99
|
+
→ .rihal/memory/project/decisions.md (token system canonicalised)
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Examples
|
|
103
|
+
|
|
104
|
+
**Happy path — pre-launch audit** — Page count: 12. Coverage: colour 60%, typography 80%, spacing 50%, RTL 0%. Plan: extract tokens (1 day), migrate components (2 days), add RTL toggle (1 day). Catch the rebrand BEFORE launch.
|
|
105
|
+
|
|
106
|
+
**Edge case — design partial alignment** — Brand guide has 3 blues, code has 7. Some are intentional shades; some are drift. Walk each with Zahra (`rihal-agent-zahra`) to canonicalise.
|
|
107
|
+
|
|
108
|
+
**Negative — "we'll add dark mode later"** — Refuse silent commitment. Either ship dark mode now or document the decision in `decisions.md` so it doesn't become a "why don't we have dark mode?" argument in 3 months.
|
|
109
|
+
|
|
110
|
+
## Memory Bank Hooks
|
|
111
|
+
|
|
112
|
+
- **Reads:** `.rihal/memory/project/stack.md` (frontend layer), brand tokens from Zahra if available
|
|
113
|
+
- **Writes:** `.rihal/memory/project/decisions.md` (canonical token system); `.rihal/memory/change-records/YYYYMMDD-NNN.md` (the audit itself)
|
package/rihal/team.yaml
CHANGED
|
@@ -85,20 +85,6 @@ agents:
|
|
|
85
85
|
- backlog
|
|
86
86
|
description: Scope, requirements, PRD writing, user stories, and backlog curation.
|
|
87
87
|
|
|
88
|
-
- id: rihal-tech-writer
|
|
89
|
-
name: Tech Writer
|
|
90
|
-
file_path: rihal/agents/rihal-tech-writer.md
|
|
91
|
-
role: Technical Documentation Specialist
|
|
92
|
-
authority_level: operational
|
|
93
|
-
domain_keywords:
|
|
94
|
-
- documentation
|
|
95
|
-
- readme
|
|
96
|
-
- api-docs
|
|
97
|
-
- changelog
|
|
98
|
-
- migration-guide
|
|
99
|
-
- inline-comments
|
|
100
|
-
description: Generates and updates README, API docs, changelogs, migration guides, and inline code comments.
|
|
101
|
-
|
|
102
88
|
- id: rihal-yousef
|
|
103
89
|
name: Yousef (يوسف)
|
|
104
90
|
file_path: rihal/agents/rihal-yousef.md
|
|
@@ -238,7 +224,9 @@ agents:
|
|
|
238
224
|
- pitch-deck
|
|
239
225
|
- changelog
|
|
240
226
|
- blog-post
|
|
241
|
-
|
|
227
|
+
- migration-guide
|
|
228
|
+
- inline-comments
|
|
229
|
+
description: Documentation, README files, API docs, architecture diagrams, changelogs, migration guides, inline code comments, pitch decks, and blog posts.
|
|
242
230
|
|
|
243
231
|
- id: rihal-ahmed
|
|
244
232
|
name: Ahmed Al Hassani (أحمد الحسني)
|
|
@@ -365,13 +353,6 @@ tactical_agents:
|
|
|
365
353
|
authority_level: research
|
|
366
354
|
description: Advisor-level deep research for gray-area decisions
|
|
367
355
|
|
|
368
|
-
- id: rihal-architect
|
|
369
|
-
name: Architect
|
|
370
|
-
file_path: rihal/agents/rihal-architect.md
|
|
371
|
-
role: Architect
|
|
372
|
-
authority_level: technical
|
|
373
|
-
description: Enterprise architecture and system design reviews
|
|
374
|
-
|
|
375
356
|
- id: rihal-assumptions-analyzer
|
|
376
357
|
name: Assumptions Analyzer
|
|
377
358
|
file_path: rihal/agents/rihal-assumptions-analyzer.md
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Memory Bank — `{{PROJECT_NAME}}`
|
|
2
|
+
|
|
3
|
+
> The Memory Bank is your project's persistent brain. AI agents read from here on every session. You write to it as work happens. Survives session resets, team changes, and AI memory limits.
|
|
4
|
+
|
|
5
|
+
**Last updated:** {{INIT_DATE}}
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Directory map
|
|
10
|
+
|
|
11
|
+
| Path | Purpose |
|
|
12
|
+
|---|---|
|
|
13
|
+
| [`project/stack.md`](project/stack.md) | Languages, frameworks, services in use |
|
|
14
|
+
| [`project/decisions.md`](project/decisions.md) | Append-only architectural decision log |
|
|
15
|
+
| [`project/glossary.md`](project/glossary.md) | Domain terms, internal names, acronyms |
|
|
16
|
+
| [`people/stakeholders.md`](people/stakeholders.md) | External contacts, decision authority, comms |
|
|
17
|
+
| [`people/team.md`](people/team.md) | Internal team, ownership, availability |
|
|
18
|
+
| [`milestones/current.md`](milestones/current.md) | Active milestone — goal, phase, blockers |
|
|
19
|
+
| [`milestones/archive/`](milestones/archive/) | Completed milestones, one file per |
|
|
20
|
+
| [`incidents/known-issues.md`](incidents/known-issues.md) | Active bugs and workarounds |
|
|
21
|
+
| [`incidents/post-mortems/`](incidents/post-mortems/) | Resolved incidents — root cause, fix, lessons |
|
|
22
|
+
| [`change-records/`](change-records/) | Change records — `YYYYMMDD-NNN.md` format |
|
|
23
|
+
| [`distillates/`](distillates/) | Generated, lossless compression for fast LLM loading |
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Token budget guide
|
|
28
|
+
|
|
29
|
+
- **`INDEX.md` only** (~500 tokens) — quick orientation
|
|
30
|
+
- **`INDEX.md` + `distillates/project.distillate.md`** (~5K tokens) — standard session start
|
|
31
|
+
- **Full `project/` directory** (~10–15K tokens) — deep planning
|
|
32
|
+
- **Full Memory Bank** (~30–50K tokens) — major refactor or onboarding
|
|
33
|
+
|
|
34
|
+
## Update cadence
|
|
35
|
+
|
|
36
|
+
- **`project/decisions.md`** — append every architectural choice as it's made
|
|
37
|
+
- **`milestones/current.md`** — update on milestone phase transitions
|
|
38
|
+
- **`incidents/known-issues.md`** — add when a workaround ships, remove when a real fix lands
|
|
39
|
+
- **`distillates/`** — regenerate via `/rcode:memory-distill` when source files change
|
|
40
|
+
- **Whole bank** — audit via `/rcode:memory-audit` at every milestone close
|
|
41
|
+
|
|
42
|
+
## Constraints
|
|
43
|
+
|
|
44
|
+
- No secrets, tokens, or PII
|
|
45
|
+
- This directory is checked into git
|
|
46
|
+
- Distillates are generated, not hand-edited
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# Change records — production / staging changes that need an audit trail.
|
|
2
|
+
# Filename: `YYYYMMDD-NNN.md` (e.g. `20260426-001.md`).
|
|
3
|
+
# Each change record contains: ID, date, requester, owner, category, type,
|
|
4
|
+
# description, risk, deployment method, approval, rollback plan, verification.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
generated: true
|
|
3
|
+
do-not-edit: true
|
|
4
|
+
regenerate-with: /rcode:memory-distill
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Project Distillate — `{{PROJECT_NAME}}`
|
|
8
|
+
|
|
9
|
+
> Generated, lossless compression of `project/`, `people/`, `milestones/current.md`, and `incidents/known-issues.md`. Optimised for LLM context loading. Hand-edits are overwritten on regenerate.
|
|
10
|
+
|
|
11
|
+
_(Run `/rcode:memory-distill` to populate.)_
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
generated: true
|
|
3
|
+
do-not-edit: true
|
|
4
|
+
regenerate-with: /rcode:memory-distill
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Stack Distillate — `{{PROJECT_NAME}}`
|
|
8
|
+
|
|
9
|
+
> Generated, lossless compression of `project/stack.md` only. Useful when you need stack context but not full project history.
|
|
10
|
+
|
|
11
|
+
_(Run `/rcode:memory-distill --target stack` to populate.)_
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Known Issues — `{{PROJECT_NAME}}`
|
|
2
|
+
|
|
3
|
+
Active bugs and workarounds. Searchable so an agent doesn't waste cycles re-debugging an already-known issue.
|
|
4
|
+
|
|
5
|
+
> **Add an entry when:** a workaround ships before the real fix, OR a bug is acknowledged but won't be fixed this sprint.
|
|
6
|
+
> **Remove an entry when:** the real fix lands and is verified in production.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Format
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
### Issue title
|
|
14
|
+
|
|
15
|
+
- **Symptom:** what users see
|
|
16
|
+
- **Surface:** which area / file / route
|
|
17
|
+
- **Workaround:** what we do today
|
|
18
|
+
- **Real fix planned for:** milestone / phase / "out of scope"
|
|
19
|
+
- **First seen:** YYYY-MM-DD
|
|
20
|
+
- **Tracking:** GitHub issue # / Linear ID
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Issues
|
|
26
|
+
|
|
27
|
+
<!-- Add entries here -->
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Current Milestone — `{{PROJECT_NAME}}`
|
|
2
|
+
|
|
3
|
+
Active milestone. Goal, phases, current sprint, blockers. The agent reads this before starting any task.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Milestone
|
|
8
|
+
|
|
9
|
+
**Name:** _(e.g. M1 — MVP launch)_
|
|
10
|
+
**Started:** YYYY-MM-DD
|
|
11
|
+
**Target close:** YYYY-MM-DD
|
|
12
|
+
**Goal:** _(one sentence)_
|
|
13
|
+
|
|
14
|
+
## Active phase
|
|
15
|
+
|
|
16
|
+
**Phase:** _(e.g. 04 — Implementation)_
|
|
17
|
+
**Started:** YYYY-MM-DD
|
|
18
|
+
**Acceptance criteria:**
|
|
19
|
+
- [ ] criterion 1
|
|
20
|
+
- [ ] criterion 2
|
|
21
|
+
|
|
22
|
+
## Active sprint / cycle
|
|
23
|
+
|
|
24
|
+
**Window:** YYYY-MM-DD → YYYY-MM-DD
|
|
25
|
+
**Focus:** _(one sentence)_
|
|
26
|
+
**Stories:**
|
|
27
|
+
- [ ] story id — title
|
|
28
|
+
- [ ] story id — title
|
|
29
|
+
|
|
30
|
+
## Blockers
|
|
31
|
+
|
|
32
|
+
| Blocker | Owner | Status |
|
|
33
|
+
|---|---|---|
|
|
34
|
+
| | | |
|
|
35
|
+
|
|
36
|
+
## Recent decisions
|
|
37
|
+
|
|
38
|
+
_(Last 3, link to `project/decisions.md` for full log.)_
|
|
39
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Stakeholders — `{{PROJECT_NAME}}`
|
|
2
|
+
|
|
3
|
+
External contacts with decision authority. Client name, role, comm channel, response cadence, areas they own.
|
|
4
|
+
|
|
5
|
+
> **This file directly addresses the "client late requirements → delays" pain.** When stakeholders' response cadence and ownership areas are documented, work can be sequenced around real human availability instead of optimistic assumptions.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Format
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
### Name — Role @ Organisation
|
|
13
|
+
|
|
14
|
+
- **Owns:** what they decide on
|
|
15
|
+
- **Comm:** preferred channel (Slack / email / WhatsApp)
|
|
16
|
+
- **Response cadence:** typical turnaround (e.g. 24h / weekly sync only)
|
|
17
|
+
- **Time zone:** GMT+X
|
|
18
|
+
- **Notes:** quirks, escalation path, who covers when away
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Stakeholders
|
|
24
|
+
|
|
25
|
+
<!-- Add entries here -->
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Team — `{{PROJECT_NAME}}`
|
|
2
|
+
|
|
3
|
+
Internal team. Who owns which area, who reviews what, who is on holiday this week.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Format
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
### Name — Role
|
|
11
|
+
|
|
12
|
+
- **Owns:** modules / areas
|
|
13
|
+
- **Reviews:** code review responsibilities
|
|
14
|
+
- **Pairs with:** typical collaborators
|
|
15
|
+
- **Time zone:** GMT+X
|
|
16
|
+
- **Notes:**
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Members
|
|
22
|
+
|
|
23
|
+
<!-- Add entries here -->
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Coverage
|
|
28
|
+
|
|
29
|
+
| Area | Primary | Backup |
|
|
30
|
+
|---|---|---|
|
|
31
|
+
| Frontend | | |
|
|
32
|
+
| Backend | | |
|
|
33
|
+
| Infra / DevOps | | |
|
|
34
|
+
| QA | | |
|
|
35
|
+
| Design | | |
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Decision Log — `{{PROJECT_NAME}}`
|
|
2
|
+
|
|
3
|
+
Append-only. Newest at top. Each entry: date, decision, rationale, alternatives considered, who decided. One paragraph per entry. Heavier decisions get their own ADR file referenced from here.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Format
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
### YYYY-MM-DD — Short decision title
|
|
11
|
+
|
|
12
|
+
**Decision:** What we chose.
|
|
13
|
+
**Rationale:** Why this over alternatives.
|
|
14
|
+
**Alternatives considered:** A (rejected because...), B (rejected because...).
|
|
15
|
+
**Who decided:** Person or council.
|
|
16
|
+
**Reversibility:** Easy / hard / one-way door.
|
|
17
|
+
**ADR:** [Optional link to a fuller ADR file]
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Entries
|
|
23
|
+
|
|
24
|
+
<!-- Append new decisions above this line -->
|
|
25
|
+
|
|
26
|
+
### {{INIT_DATE}} — Memory Bank initialised
|
|
27
|
+
|
|
28
|
+
**Decision:** Adopt rcode Memory Bank for persistent project context.
|
|
29
|
+
**Rationale:** AI agents lose context between sessions; new teammates need a single place to learn the project's history without archaeology through Slack and PRs.
|
|
30
|
+
**Alternatives considered:** CLAUDE.md only (rejected: no structure, goes stale), wiki (rejected: not in-repo, not version-controlled with code), README sections (rejected: doesn't scale).
|
|
31
|
+
**Who decided:** Project lead.
|
|
32
|
+
**Reversibility:** Easy. Just delete `.rihal/memory/` to remove.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Glossary — `{{PROJECT_NAME}}`
|
|
2
|
+
|
|
3
|
+
Domain terms specific to this project: internal names, acronyms, business concepts. Prevents "what does X mean again?" thrash. Add a term any time someone asks about it twice.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Format
|
|
8
|
+
|
|
9
|
+
`**Term**` — definition. _(optional: where it lives in code)_
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Terms
|
|
14
|
+
|
|
15
|
+
<!-- Add alphabetically -->
|
|
16
|
+
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Stack — `{{PROJECT_NAME}}`
|
|
2
|
+
|
|
3
|
+
Inventory of languages, frameworks, libraries, and services. Refreshed via `/rcode:memory-update` when stack changes.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Runtime
|
|
8
|
+
|
|
9
|
+
| Layer | Choice | Version | Notes |
|
|
10
|
+
|---|---|---|---|
|
|
11
|
+
| Language | _(e.g. TypeScript / Python / Go)_ | | |
|
|
12
|
+
| Framework | _(e.g. Next.js / FastAPI / NestJS)_ | | |
|
|
13
|
+
| Database | _(e.g. Postgres / Mongo / Supabase)_ | | |
|
|
14
|
+
| Cache | _(e.g. Redis / KV)_ | | |
|
|
15
|
+
| Queue / orchestrator | _(e.g. Temporal / SQS / Cron)_ | | |
|
|
16
|
+
| Auth | _(e.g. Keycloak / Firebase / Clerk)_ | | |
|
|
17
|
+
| Observability | _(e.g. Sentry / Datadog / OpenTelemetry)_ | | |
|
|
18
|
+
|
|
19
|
+
## Frontend (if applicable)
|
|
20
|
+
|
|
21
|
+
| Layer | Choice | Version |
|
|
22
|
+
|---|---|---|
|
|
23
|
+
| UI library | _(e.g. React / Vue / Svelte)_ | |
|
|
24
|
+
| Styling | _(e.g. Tailwind / shadcn / CSS Modules)_ | |
|
|
25
|
+
| State | _(e.g. Zustand / Redux / TanStack Query)_ | |
|
|
26
|
+
|
|
27
|
+
## Infrastructure
|
|
28
|
+
|
|
29
|
+
| Layer | Choice |
|
|
30
|
+
|---|---|
|
|
31
|
+
| Dev environment | _(e.g. Docker Compose)_ |
|
|
32
|
+
| Production | _(e.g. Vercel / AWS ECS / Helm + K8s)_ |
|
|
33
|
+
| CI/CD | _(e.g. GitHub Actions / GitLab CI / Jenkins)_ |
|
|
34
|
+
| CDN / edge | _(e.g. Vercel / Cloudflare)_ |
|
|
35
|
+
|
|
36
|
+
## Third-party services
|
|
37
|
+
|
|
38
|
+
| Service | Purpose | Account / region |
|
|
39
|
+
|---|---|---|
|
|
40
|
+
| | | |
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Why these choices
|
|
45
|
+
|
|
46
|
+
_Brief rationale for non-obvious picks. Link to `decisions.md` entries for the full story._
|
package/rihal/workflows/audit.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
Single entry point for every kind of audit. Asks the user *what* to audit
|
|
5
5
|
and dispatches to the right sub-workflow. Closes #234 — replaces the prior
|
|
6
6
|
state where users had to know about six separate audit/verify commands by
|
|
7
|
-
name (`audit-milestone`, `audit-uat`, `audit-fix`, `karpathy
|
|
7
|
+
name (`audit-milestone`, `audit-uat`, `audit-fix`, `code-review --karpathy`,
|
|
8
8
|
`verify-phase`, `verify-work`).
|
|
9
9
|
|
|
10
10
|
Honours `.rihal/config.yaml`: in `mode: yolo`, the router skips the menu
|
|
@@ -21,7 +21,7 @@ If `$ARGUMENTS` contains `--help` or `-h`:
|
|
|
21
21
|
/rihal:audit phase [<NN>] # → /rihal:verify-phase
|
|
22
22
|
/rihal:audit milestone [--strict] # → /rihal:audit-milestone (with synth fallback)
|
|
23
23
|
/rihal:audit uat # → /rihal:audit-uat
|
|
24
|
-
/rihal:audit code [--scope=...] # → /rihal:karpathy
|
|
24
|
+
/rihal:audit code [--scope=...] # → /rihal:code-review --karpathy
|
|
25
25
|
/rihal:audit fix # → /rihal:audit-fix
|
|
26
26
|
/rihal:audit work # → /rihal:verify-work
|
|
27
27
|
```
|
|
@@ -138,7 +138,7 @@ Run the target's slash command, forwarding remaining args:
|
|
|
138
138
|
| phase | `/rihal:verify-phase $REST_ARGS` |
|
|
139
139
|
| milestone | `/rihal:audit-milestone $REST_ARGS` |
|
|
140
140
|
| uat | `/rihal:audit-uat $REST_ARGS` |
|
|
141
|
-
| code | `/rihal:
|
|
141
|
+
| code | `/rihal:code-review $REST_ARGS --karpathy` |
|
|
142
142
|
| fix | `/rihal:audit-fix $REST_ARGS` |
|
|
143
143
|
| work | `/rihal:verify-work $REST_ARGS` |
|
|
144
144
|
|
|
@@ -18,7 +18,7 @@ If `$ARGUMENTS` is empty or contains only `--help` or `-h`:
|
|
|
18
18
|
|
|
19
19
|
**Usage:**
|
|
20
20
|
```
|
|
21
|
-
/rihal:code-review <phase> [--depth=quick|standard|deep] [--files=path1,path2]
|
|
21
|
+
/rihal:code-review <phase> [--depth=quick|standard|deep] [--files=path1,path2] [--karpathy]
|
|
22
22
|
```
|
|
23
23
|
|
|
24
24
|
**Examples:**
|
|
@@ -26,8 +26,39 @@ If `$ARGUMENTS` is empty or contains only `--help` or `-h`:
|
|
|
26
26
|
/rihal:code-review 01
|
|
27
27
|
/rihal:code-review 02.1 --depth=deep
|
|
28
28
|
/rihal:code-review 03 --files=src/auth.js,src/db.js
|
|
29
|
+
/rihal:code-review HEAD~5..HEAD --karpathy
|
|
29
30
|
```
|
|
30
31
|
|
|
32
|
+
## Step 0a — Karpathy mode delegation
|
|
33
|
+
|
|
34
|
+
If `$ARGUMENTS` contains `--karpathy`, delegate to the Karpathy 4-principle audit workflow and stop:
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
Read and execute @.rihal/workflows/karpathy-audit.md end-to-end with the same arguments minus `--karpathy`.
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
The standard code-review steps below are skipped when `--karpathy` is set — the karpathy-audit workflow produces its own report.
|
|
41
|
+
|
|
42
|
+
## Step 0b — Attack mode delegation
|
|
43
|
+
|
|
44
|
+
If `$ARGUMENTS` contains `--attack`, delegate to the attack-mode review workflow and stop:
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
Read and execute @.rihal/workflows/review-adversarial.md end-to-end with the same arguments minus `--attack`.
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Attack mode produces a weakness report from a hostile perspective — security vulnerabilities, race conditions, data loss, abuse cases. The standard code-review steps below are skipped when `--attack` is set.
|
|
51
|
+
|
|
52
|
+
## Step 0c — Edge cases mode delegation
|
|
53
|
+
|
|
54
|
+
If `$ARGUMENTS` contains `--edge-cases`, delegate to the edge-case-hunter workflow and stop:
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
Read and execute @.rihal/workflows/review-edge-case-hunter.md end-to-end with the same arguments minus `--edge-cases`.
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Edge-cases mode enumerates boundary conditions by category (input, state, concurrency, network) with severity. The standard code-review steps below are skipped when `--edge-cases` is set.
|
|
61
|
+
|
|
31
62
|
<process>
|
|
32
63
|
|
|
33
64
|
<step name="initialize">
|
|
@@ -98,7 +98,7 @@ Currently registered council agents (always available if installed):
|
|
|
98
98
|
- rihal-sadiq, rihal-waleed, rihal-fatima, rihal-mariam, rihal-hussain-pm
|
|
99
99
|
|
|
100
100
|
Specialist agents that may be installed (add to panel if scorer surfaces them):
|
|
101
|
-
- rihal-
|
|
101
|
+
- rihal-ux-designer, rihal-noor
|
|
102
102
|
- rihal-codebase-mapper, rihal-project-researcher, rihal-roadmapper
|
|
103
103
|
- (and any other rihal-* agent in installed_agents)
|
|
104
104
|
|
|
@@ -12,13 +12,13 @@ Power user mode for discuss-phase. Generates ALL questions upfront into a JSON s
|
|
|
12
12
|
If `$ARGUMENTS` is empty or contains only `--help` or `-h`:
|
|
13
13
|
|
|
14
14
|
```
|
|
15
|
-
/rihal:discuss-phase
|
|
15
|
+
/rihal:discuss-phase --power <argument-here>
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
**Examples:**
|
|
19
19
|
```
|
|
20
|
-
/rihal:discuss-phase
|
|
21
|
-
/rihal:discuss-phase
|
|
20
|
+
/rihal:discuss-phase --power example 1
|
|
21
|
+
/rihal:discuss-phase --power example 2
|
|
22
22
|
```
|
|
23
23
|
|
|
24
24
|
STOP — do not proceed.
|
package/rihal/workflows/do.md
CHANGED
|
@@ -274,7 +274,7 @@ Evaluate `$QUESTION` against these routing rules. Apply the **first matching** r
|
|
|
274
274
|
| A bug, error, crash, failure, or something broken | `/rihal:debug` | Needs systematic investigation |
|
|
275
275
|
| Validate an idea, "working backwards", "press release", "PRFAQ", "is this worth building" | `/rihal:prfaq` | Stress-test concept before committing sprint capacity |
|
|
276
276
|
| Brainstorm, generate ideas, "explore options", "what could we do" | `/rihal:brainstorm` | Structured ideation before planning |
|
|
277
|
-
| Audit code quality, "review changes", "karpathy", "check my diff", "too complex" | `/rihal:karpathy
|
|
277
|
+
| Audit code quality, "review changes", "karpathy", "check my diff", "too complex" | `/rihal:code-review --karpathy` | 4-principle code audit against recent diff |
|
|
278
278
|
| Walk through a change, "checkpoint", "explain this diff", "human review" | `/rihal:checkpoint-preview` | Human-in-the-loop diff walkthrough |
|
|
279
279
|
| Exploring, researching, comparing, or "how does X work" | `/rihal:research-phase` | Domain research before planning |
|
|
280
280
|
| Scope unclear, conflicting UIs/options, "which one", "better UX", "still have confusion", "how should X look", brainstorming vision | `/rihal:discuss-phase` | Decisions not yet locked — gather before planning |
|
|
@@ -6,7 +6,7 @@ Generate, update, and verify project documentation — both canonical doc types
|
|
|
6
6
|
|
|
7
7
|
<available_agent_types>
|
|
8
8
|
Valid Rihal subagent types (use exact names — do not fall back to 'general-purpose'):
|
|
9
|
-
- rihal-
|
|
9
|
+
- rihal-noor — Writes and updates project documentation files
|
|
10
10
|
- rihal-docs-auditor — Verifies factual claims in docs against the live codebase
|
|
11
11
|
</available_agent_types>
|
|
12
12
|
|
|
@@ -40,7 +40,7 @@ test -d docs || mkdir -p docs
|
|
|
40
40
|
# Read agent manifest to get model for doc writers
|
|
41
41
|
AGENT_MANIFEST=".rihal/_config/agent-manifest.csv"
|
|
42
42
|
if [[ -f "$AGENT_MANIFEST" ]]; then
|
|
43
|
-
DOC_WRITER_MODEL=$(grep -i "rihal-
|
|
43
|
+
DOC_WRITER_MODEL=$(grep -i "rihal-noor" "$AGENT_MANIFEST" | cut -d',' -f3)
|
|
44
44
|
else
|
|
45
45
|
DOC_WRITER_MODEL="claude-opus" # fallback
|
|
46
46
|
fi
|
|
@@ -151,11 +151,11 @@ Create output directories:
|
|
|
151
151
|
mkdir -p docs
|
|
152
152
|
```
|
|
153
153
|
|
|
154
|
-
For each doc in the queue, spawn a `rihal-
|
|
154
|
+
For each doc in the queue, spawn a `rihal-noor` agent in parallel waves (up to 3 agents in parallel per wave):
|
|
155
155
|
|
|
156
156
|
```
|
|
157
157
|
Task(
|
|
158
|
-
subagent_type="rihal-
|
|
158
|
+
subagent_type="rihal-noor",
|
|
159
159
|
prompt="
|
|
160
160
|
Generate documentation for {doc_type}.
|
|
161
161
|
Output path: {resolved_path}
|