@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.
Files changed (135) hide show
  1. package/AGENTS.md +11 -1
  2. package/CONTRIBUTING.md +7 -0
  3. package/README.md +39 -20
  4. package/package.json +2 -2
  5. package/rihal/agents/rihal-advisor-researcher.md +1 -1
  6. package/rihal/agents/rihal-assumptions-analyzer.md +1 -1
  7. package/rihal/agents/rihal-codebase-mapper.md +1 -1
  8. package/rihal/agents/rihal-docs-auditor.md +3 -3
  9. package/rihal/agents/rihal-executor.md +10 -0
  10. package/rihal/agents/rihal-fatima.md +31 -101
  11. package/rihal/agents/rihal-haitham.md +125 -57
  12. package/rihal/agents/rihal-hanzla.md +23 -98
  13. package/rihal/agents/rihal-hussain-pm.md +33 -102
  14. package/rihal/agents/rihal-integration-checker.md +1 -1
  15. package/rihal/agents/rihal-mariam.md +26 -94
  16. package/rihal/agents/rihal-noor.md +2 -2
  17. package/rihal/agents/rihal-omar.md +112 -31
  18. package/rihal/agents/rihal-phase-researcher.md +1 -1
  19. package/rihal/agents/rihal-planner.md +25 -0
  20. package/rihal/agents/rihal-project-researcher.md +1 -1
  21. package/rihal/agents/rihal-research-synthesizer.md +1 -1
  22. package/rihal/agents/rihal-roadmapper.md +1 -1
  23. package/rihal/agents/rihal-sadiq.md +30 -95
  24. package/rihal/agents/rihal-sprint-checker.md +19 -1
  25. package/rihal/agents/rihal-verifier.md +1 -1
  26. package/rihal/agents/rihal-waleed.md +34 -98
  27. package/rihal/agents/rihal-yousef.md +111 -52
  28. package/rihal/commands/code-review.md +1 -1
  29. package/rihal/commands/memory-audit.md +10 -0
  30. package/rihal/commands/memory-distill.md +11 -0
  31. package/rihal/commands/memory-init.md +12 -0
  32. package/rihal/commands/memory-update.md +12 -0
  33. package/rihal/config/model-profiles.json +5 -5
  34. package/rihal/references/agent-shared-rules.md +81 -0
  35. package/rihal/references/karpathy-guidelines-full.md +1 -1
  36. package/rihal/references/no-unauthorized-git-ops.md +1 -1
  37. package/rihal/references/verb-dictionary.md +1 -1
  38. package/rihal/skills/actions/2-plan/rihal-frontend-design/SKILL.md +49 -139
  39. package/rihal/skills/actions/2-plan/rihal-frontend-design/references.md +79 -0
  40. package/rihal/skills/actions/4-implementation/rihal-browser-verify/SKILL.md +70 -0
  41. package/rihal/skills/actions/4-implementation/rihal-checkpoint-preview/SKILL.md +1 -1
  42. package/rihal/skills/actions/4-implementation/rihal-ci/SKILL.md +108 -0
  43. package/rihal/skills/actions/4-implementation/rihal-debug/SKILL.md +78 -0
  44. package/rihal/skills/actions/4-implementation/rihal-git-flow/SKILL.md +90 -0
  45. package/rihal/skills/actions/4-implementation/rihal-harden/SKILL.md +91 -0
  46. package/rihal/skills/actions/4-implementation/rihal-incremental/SKILL.md +50 -0
  47. package/rihal/skills/actions/4-implementation/rihal-migrate/SKILL.md +86 -0
  48. package/rihal/skills/actions/4-implementation/rihal-perf/SKILL.md +96 -0
  49. package/rihal/skills/actions/4-implementation/rihal-prove-it/SKILL.md +64 -0
  50. package/rihal/skills/actions/4-implementation/rihal-source-truth/SKILL.md +76 -0
  51. package/rihal/skills/actions/4-implementation/rihal-trim/SKILL.md +73 -0
  52. package/rihal/skills/agents/dalil-scout/SKILL.md +43 -125
  53. package/rihal/skills/agents/dalil-scout/references.md +67 -0
  54. package/rihal/skills/agents/fatima-qa/SKILL.md +21 -0
  55. package/rihal/skills/agents/hanzla-engineer/SKILL.md +22 -0
  56. package/rihal/skills/agents/hussain-pm/SKILL.md +21 -0
  57. package/rihal/skills/agents/majlis-council/SKILL.md +50 -144
  58. package/rihal/skills/agents/majlis-council/references.md +90 -0
  59. package/rihal/skills/agents/mariam-marketing/SKILL.md +19 -0
  60. package/rihal/skills/agents/raees-orchestrator/SKILL.md +56 -117
  61. package/rihal/skills/agents/raees-orchestrator/references.md +47 -0
  62. package/rihal/skills/agents/sadiq-analyst/SKILL.md +30 -0
  63. package/rihal/skills/agents/waleed-architect/SKILL.md +20 -0
  64. package/rihal/skills/core/rihal-advanced-elicitation/SKILL.md +36 -136
  65. package/rihal/skills/core/rihal-advanced-elicitation/references.md +101 -0
  66. package/rihal/skills/core/rihal-auth-audit/SKILL.md +93 -0
  67. package/rihal/skills/core/rihal-brainstorming/SKILL.md +5 -0
  68. package/rihal/skills/core/rihal-client-gate/SKILL.md +91 -0
  69. package/rihal/skills/core/rihal-clone-website/SKILL.md +30 -371
  70. package/rihal/skills/core/rihal-clone-website/references.md +213 -0
  71. package/rihal/skills/core/rihal-deploy-unify/SKILL.md +87 -0
  72. package/rihal/skills/core/rihal-distillator/SKILL.md +37 -187
  73. package/rihal/skills/core/rihal-distillator/references.md +118 -0
  74. package/rihal/skills/core/rihal-editorial-review-prose/SKILL.md +5 -0
  75. package/rihal/skills/core/rihal-editorial-review-structure/SKILL.md +45 -183
  76. package/rihal/skills/core/rihal-editorial-review-structure/references.md +110 -0
  77. package/rihal/skills/core/rihal-help/SKILL.md +6 -1
  78. package/rihal/skills/core/rihal-incident-record/SKILL.md +161 -0
  79. package/rihal/skills/core/rihal-index-docs/SKILL.md +5 -0
  80. package/rihal/skills/core/rihal-init/SKILL.md +5 -0
  81. package/rihal/skills/core/rihal-memory-audit/SKILL.md +88 -0
  82. package/rihal/skills/core/rihal-memory-distill/SKILL.md +87 -0
  83. package/rihal/skills/core/rihal-memory-init/SKILL.md +77 -0
  84. package/rihal/skills/core/rihal-memory-update/SKILL.md +73 -0
  85. package/rihal/skills/core/rihal-mvp-graduate/SKILL.md +116 -0
  86. package/rihal/skills/core/rihal-ocr-consistency/SKILL.md +106 -0
  87. package/rihal/skills/core/rihal-party-mode/SKILL.md +5 -0
  88. package/rihal/skills/core/rihal-rebrand/SKILL.md +133 -0
  89. package/rihal/skills/core/rihal-review-adversarial-general/SKILL.md +5 -0
  90. package/rihal/skills/core/rihal-review-edge-case-hunter/SKILL.md +5 -0
  91. package/rihal/skills/core/rihal-shard-doc/SKILL.md +5 -0
  92. package/rihal/skills/core/rihal-theme-system/SKILL.md +113 -0
  93. package/rihal/team.yaml +3 -22
  94. package/rihal/templates/memory/INDEX.md +46 -0
  95. package/rihal/templates/memory/change-records/.gitkeep +4 -0
  96. package/rihal/templates/memory/distillates/project.distillate.md +11 -0
  97. package/rihal/templates/memory/distillates/stack.distillate.md +11 -0
  98. package/rihal/templates/memory/incidents/known-issues.md +27 -0
  99. package/rihal/templates/memory/incidents/post-mortems/.gitkeep +3 -0
  100. package/rihal/templates/memory/milestones/archive/.gitkeep +2 -0
  101. package/rihal/templates/memory/milestones/current.md +39 -0
  102. package/rihal/templates/memory/people/stakeholders.md +25 -0
  103. package/rihal/templates/memory/people/team.md +35 -0
  104. package/rihal/templates/memory/project/decisions.md +32 -0
  105. package/rihal/templates/memory/project/glossary.md +16 -0
  106. package/rihal/templates/memory/project/stack.md +46 -0
  107. package/rihal/workflows/audit.md +3 -3
  108. package/rihal/workflows/code-review.md +32 -1
  109. package/rihal/workflows/council.md +1 -1
  110. package/rihal/workflows/discuss-phase-power.md +3 -3
  111. package/rihal/workflows/do.md +1 -1
  112. package/rihal/workflows/docs-update.md +4 -4
  113. package/rihal/workflows/execute.md +61 -5
  114. package/rihal/workflows/help.md +5 -5
  115. package/rihal/workflows/karpathy-audit.md +9 -9
  116. package/rihal/workflows/memory-audit.md +83 -0
  117. package/rihal/workflows/memory-distill.md +103 -0
  118. package/rihal/workflows/memory-init.md +102 -0
  119. package/rihal/workflows/memory-update.md +83 -0
  120. package/rihal/workflows/plan.md +66 -1
  121. package/server/dashboard.js +6 -1
  122. package/server/lib/api.js +8 -2
  123. package/server/lib/html/client.js +63 -0
  124. package/server/lib/html/shell.js +5 -0
  125. package/server/lib/scanner.js +76 -1
  126. package/rihal/agents/rihal-architect.md +0 -79
  127. package/rihal/agents/rihal-tech-writer.md +0 -80
  128. package/rihal/commands/check-implementation-readiness.md +0 -8
  129. package/rihal/commands/discuss-phase-power.md +0 -11
  130. package/rihal/commands/karpathy-audit.md +0 -12
  131. package/rihal/commands/new-project-research.md +0 -11
  132. package/rihal/commands/new-project-roadmap.md +0 -11
  133. package/rihal/commands/report.md +0 -10
  134. package/rihal/commands/review-adversarial.md +0 -8
  135. 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
- description: Documentation, README files, API docs, architecture diagrams, changelogs, pitch decks, and blog posts.
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,3 @@
1
+ # Post-mortems land here, one file per resolved incident.
2
+ # Filename: `YYYYMMDD-<short-slug>.md` (e.g. `20260315-keycloak-ad-sync.md`).
3
+ # Use the rcode-incident-record skill (Phase 6) to generate.
@@ -0,0 +1,2 @@
1
+ # Archived milestones land here, one file per completed milestone.
2
+ # Filename: `M<N>-<slug>.md` (e.g. `M1-mvp-launch.md`).
@@ -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._
@@ -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-audit`,
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-audit
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:karpathy-audit $REST_ARGS` |
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-architect, rihal-ux-designer, rihal-tech-writer
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-power <argument-here>
15
+ /rihal:discuss-phase --power <argument-here>
16
16
  ```
17
17
 
18
18
  **Examples:**
19
19
  ```
20
- /rihal:discuss-phase-power example 1
21
- /rihal:discuss-phase-power example 2
20
+ /rihal:discuss-phase --power example 1
21
+ /rihal:discuss-phase --power example 2
22
22
  ```
23
23
 
24
24
  STOP — do not proceed.
@@ -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-audit` | 4-principle code audit against recent diff |
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-tech-writer — Writes and updates project documentation files
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-tech-writer" "$AGENT_MANIFEST" | cut -d',' -f3)
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-tech-writer` agent in parallel waves (up to 3 agents in parallel per wave):
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-tech-writer",
158
+ subagent_type="rihal-noor",
159
159
  prompt="
160
160
  Generate documentation for {doc_type}.
161
161
  Output path: {resolved_path}