@hanzlaa/rcode 4.4.0 → 4.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -6,11 +6,11 @@
6
6
 
7
7
  ### An engineering org in a folder — and you can watch it work.
8
8
 
9
- *A roster of specialist agents, phase-driven delivery, and a persistent Memory Bank — running as plain files your IDE reads. Every number is reproducible with one command (`node benchmarks/facts.cjs`); marketing rounds up, this repo ships the receipts: **497 tests, 0 failing · 45 agents · 116 commands · 1 runtime dependency**.*
9
+ *A roster of specialist agents, phase-driven delivery, and a persistent Memory Bank — running as plain files your IDE reads. **45 agents · 116 commands · 1 runtime dependency** test count and CI status tracked by the badge above.*
10
10
 
11
11
  <p align="center"><img src="brand/dashboard-team.png" alt="rcode agent roster grouped by function — Leadership (Sadiq / strategy, Waleed / CTO, Ahmed / delivery, Nasser / eng manager), Engineering (Omar, Haitham / frontend, Yousef / backend, Zayd / ML, Khalid / DevOps), Product (Hussain / PM, Mariam / marketing), each card showing its role and tools" width="860"></p>
12
12
 
13
- <p align="center"><sub>The <a href="docs/install.md">Diwan dashboard</a> (view-only, <code>node server/dashboard.js</code>) — your project's phases, sprints, agents, decisions, and live orchestration, read straight from the files in <code>.rcode/</code>.</sub></p>
13
+ <p align="center"><sub>The <a href="docs/install.md">Diwan dashboard</a> (<code>node server/dashboard.js</code>) — your project's phases, sprints, agents, decisions, and live orchestration, read straight from the files in <code>.rcode/</code>.</sub></p>
14
14
 
15
15
  > **A curated composition of the best AI-development practices — shipped as files.** Surgical-change discipline, parallel-agent orchestration, persistent Memory Bank patterns, phase-driven planning — packaged as one workflow for Claude Code power users. No multi-agent harness. No vector DB. Your IDE keeps the methodology; the project keeps the memory.
16
16
 
@@ -23,7 +23,7 @@ pnpm dlx @hanzlaa/rcode install
23
23
  [![CI](https://github.com/hanzlahabib/rcode/actions/workflows/test.yml/badge.svg)](https://github.com/hanzlahabib/rcode/actions/workflows/test.yml)
24
24
  [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
25
25
 
26
- Status: `@hanzlaa/rcode` v4.3.2 on npm. 497 automated tests (100% green) across 61 files · 45 agents · 116 commands · 129 workflows · 88 skills · **1 runtime dependency**. Every number here is reproducible run `node benchmarks/facts.cjs`. Actively dogfooded on real projects every week.
26
+ Status: `@hanzlaa/rcode` v4.4.2 on npm. 45 agents · 116 commands · 129 workflows · **1 runtime dependency**. Test status tracked by CI badge above. Actively dogfooded on real projects every week.
27
27
 
28
28
  ---
29
29
 
@@ -127,18 +127,18 @@ The point isn't "I beat LangChain." The point is **you don't need LangChain for
127
127
  > node benchmarks/facts.cjs
128
128
  > ```
129
129
 
130
- <p align="center"><img src="brand/hero-receipt.png" alt="benchmarks/facts.cjs output — 497 tests, 0 failing · 45 agents · 116 commands · 1 runtime dependency, computed from files on disk" width="720"></p>
131
-
132
130
  | Metric | Value | Why it's not a vanity number |
133
131
  |---|---|---|
134
- | **Portable methodology corpus** | **94,481 lines** of markdown | A 10-person eng org's playbooks (agents + commands + workflows + skills + references) — as files you own and grep, not a SaaS you rent. |
135
- | **Automated tests** | **497**, 100% passing across 61 files | The methodology is *guarded*, not vibes. CI runs them on every push; `node --test` reproduces locally in seconds. |
136
- | **Tested CLI engine** | **9,005 lines** (`rcode-tools.cjs` + `lib/`) | The deterministic brain — routing, state, planning math — is real code under test, not prompt soup. |
137
- | **Runtime dependencies** | **1** (`ws`, for the dashboard socket) | The view-only dashboard is pure Node stdlib. Almost nothing to audit, nothing to CVE-scan, nothing to break on `npm install`. |
138
- | **Specialist agents / commands / workflows / skills** | **45 / 116 / 129 / 88** | An entire engineering org, phrase-activated, that travels with you across Claude Code, Cursor, Codex, VS Code, Antigravity, Windsurf. |
139
- | **Core-op latency** | **~33 ms**, **0 LLM tokens** (best-of-7) | Intent routing, state reads, and milestone-health are deterministic *local* compute — a few ms over Node's own cold-start floor. The orchestration layer doesn't burn API tokens on bookkeeping the way pure-LLM agent frameworks do. |
132
+ | **Portable methodology corpus** | **~105,000 lines** of markdown | A 10-person eng org's playbooks (agents + commands + workflows + skills + references) — as files you own and grep, not a SaaS you rent. |
133
+ | **Automated tests** | **495** across 62 files | The methodology is *guarded*, not vibes. Live pass/fail status is on the CI badge above; `node --test` (or `node benchmarks/facts.cjs`) reproduces locally in seconds. |
134
+ | **Tested CLI engine** | **~9,700 lines** (`rcode-tools.cjs` + `lib/`) | The deterministic brain — routing, state, planning math — is real code under test, not prompt soup. |
135
+ | **Runtime dependencies** | **1** (`ws`, for the dashboard socket) | The dashboard is otherwise pure Node stdlib. Almost nothing to audit, nothing to CVE-scan, nothing to break on `npm install`. |
136
+ | **Specialist agents / commands / workflows / skills** | **45 / 117 / 129 / 96** | An entire engineering org, phrase-activated, that travels with you across Claude Code, Cursor, Codex, VS Code, Antigravity, Windsurf. |
137
+ | **Core-op latency** | **~60 ms**, **0 LLM tokens** (best-of-7) | Intent routing, state reads, and milestone-health are deterministic *local* compute — a few ms over Node's own cold-start floor. The orchestration layer doesn't burn API tokens on bookkeeping the way pure-LLM agent frameworks do. |
138
+
139
+ > Counts above are produced by `node benchmarks/facts.cjs` and may drift slightly between releases — run it for the exact current figures.
140
140
 
141
- **The headline:** an entire software-delivery methodology — 94k lines of it — guarded by 497 tests, riding on a single runtime dependency, with an orchestration brain that costs **zero tokens** to think. Not a viral prompt. A system you can verify line by line.
141
+ **The headline:** an entire software-delivery methodology — ~105k lines of it — guarded by a real test suite, riding on a single runtime dependency, with an orchestration brain that costs **zero tokens** to think. Not a viral prompt. A system you can verify line by line.
142
142
 
143
143
  ---
144
144
 
@@ -224,6 +224,23 @@ Named for the Arabic root **رحال** (rahhal) — the traveler. rcode walks al
224
224
 
225
225
  ---
226
226
 
227
+ ## 💙 Feedback welcome
228
+
229
+ rcode is built and maintained by one person. If you hit a rough edge, a confusing command, or anything that doesn't work — please share it. Every report, even a one-liner, makes the tool better for everyone.
230
+
231
+ **Post an issue in 30 seconds → [github.com/hanzlahabib/rcode/issues/new](https://github.com/hanzlahabib/rcode/issues/new)**
232
+
233
+ Quick template:
234
+ ```
235
+ Title: what you were trying to do
236
+ Body: what happened vs what you expected
237
+ + the command or phrase you used
238
+ ```
239
+
240
+ Thank you for using rcode. 🙏
241
+
242
+ ---
243
+
227
244
  ## Credits
228
245
 
229
246
  - [Andrej Karpathy's coding observations](https://github.com/forrestchang/andrej-karpathy-skills) (MIT) — wired into the code-review agents as hard constraints.
@@ -100,7 +100,7 @@ description: >
100
100
  Sidebar entry — invokes the same workflow as /rcode-${cmdName}.
101
101
  triggers:
102
102
  ${triggers.map((t) => ` - "${t}"`).join('\n')}
103
- user-invocable: false
103
+ user-invocable: true
104
104
  generated: true
105
105
  generated-by: rcode-install-v${version}
106
106
  source: rcode/commands/${cmdName}.md
package/cli/install.js CHANGED
@@ -480,7 +480,8 @@ async function resolveIde(opts) {
480
480
  */
481
481
  async function resolveCommitPlanning(opts) {
482
482
  if (opts.commitPlanning !== null) return opts.commitPlanning;
483
- if (opts.noPrompt || opts.global) return false; // global install: no planning artifacts
483
+ if (opts.global) return false; // global install: no planning artifacts
484
+ if (opts.noPrompt) return true; // non-interactive project install: commit planning by default (#936)
484
485
 
485
486
  // Issue #685: on re-install, read the existing .rcode/config.yaml and use
486
487
  // its commit_planning value as the default. Otherwise the new prompt
@@ -744,10 +745,8 @@ function seedStarterPlanning(target, projectName) {
744
745
  `**Milestone: M1 — Initial Delivery** (v1.0)\n` +
745
746
  `Started: ${today} · Current\n\n` +
746
747
  `---\n\n` +
747
- `## Phase 01 Setup & Scaffolding\n\n` +
748
- `**Goal:** Lay the foundation. Replace this with your first phase when ready.\n\n` +
749
- `**Status:** Planned\n\n` +
750
- `**Acceptance:** Working dev environment; first feature in progress.\n\n` +
748
+ `> **No phases yet.** Run \`/rcode-new-project\` to design your roadmap,\n` +
749
+ `> or \`/rcode-add-phase <name>\` to add your first phase manually.\n\n` +
751
750
  `---\n\n` +
752
751
  `## Backlog\n\n` +
753
752
  `Ideas and future phases go here.\n`
@@ -758,7 +757,7 @@ function seedStarterPlanning(target, projectName) {
758
757
  `# ${name} — State\n\n` +
759
758
  `**Last updated:** ${today}\n` +
760
759
  `**Milestone:** M1 — Initial Delivery\n` +
761
- `**Current phase:** 01Setup & Scaffolding\n` +
760
+ `**Current phase:** nonerun /rcode-new-project or /rcode-add-phase\n` +
762
761
  `**Branch:** main\n\n` +
763
762
  `---\n\n` +
764
763
  `## Decisions\n\n_None yet._\n\n` +
@@ -826,15 +825,20 @@ function seedStarterPlanning(target, projectName) {
826
825
 
827
826
  const state = {
828
827
  version: '1',
829
- project: resolvedProject,
828
+ // #940 — match the canonical schema (cli/lib/schemas.cjs stateSchema):
829
+ // schema_version is required, milestones is a plural array. Without these
830
+ // a freshly-installed state.json failed `rcode-tools validate` until the
831
+ // first migrateState() read. Write conformant state up front.
832
+ schema_version: 2,
833
+ project: resolvedProject || path.basename(target),
830
834
  ...(isStubProject ? { _seeded_stub: true } : {}),
831
835
  created: now,
832
836
  updated: now,
833
837
  current_phase: resolvedPhase,
834
838
  current_plan: 0,
835
839
  current_sprint: null,
836
- milestone: null,
837
840
  phases: [],
841
+ milestones: [],
838
842
  executions: [],
839
843
  decisions: [],
840
844
  blockers: [],
@@ -1753,7 +1757,6 @@ function generateConfigYaml(opts) {
1753
1757
  `mode: "${sanitizeYamlValue(opts.mode)}"`,
1754
1758
  `model_profile: "balanced"`,
1755
1759
  `commit_planning: ${opts.commitPlanning !== false}`,
1756
- `rcode_source_path: "${sanitizeYamlValue(resolveStableSourcePath())}/"`,
1757
1760
  'workflow:',
1758
1761
  ' research_by_default: false',
1759
1762
  ' plan_checker: true',
@@ -132,9 +132,29 @@ To set up per-project state + planning structure, run inside your project:
132
132
 
133
133
  More:
134
134
  rcode help # all commands (grouped)
135
- rcode dashboard # view-only Diwan on :7717
135
+ rcode dashboard # Diwan project dashboard on :7717
136
136
 
137
137
  Docs: https://github.com/hanzlahabib/rcode
138
+
139
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
140
+ 💙 Thank you for using rcode!
141
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
142
+
143
+ This package is built and maintained by one person.
144
+ Every piece of feedback — a bug, a rough edge, a
145
+ confusing command — makes it meaningfully better.
146
+
147
+ Hit a problem? Post it in 30 seconds:
148
+
149
+ https://github.com/hanzlahabib/rcode/issues/new
150
+
151
+ Quick template (just paste and fill):
152
+ Title: what you were trying to do
153
+ Body: what happened vs what you expected
154
+ + paste the command or phrase you used
155
+
156
+ Even a one-line report helps. Thank you. 🙏
157
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
138
158
  `);
139
159
  }
140
160