mindforge-cc 11.9.7 → 11.9.9

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 (63) hide show
  1. package/.agent/mindforge/health.md +7 -4
  2. package/.agent/mindforge/help.md +9 -5
  3. package/.agent/mindforge/install-skill.md +8 -6
  4. package/.agent/mindforge/marketplace.md +6 -0
  5. package/.agent/mindforge/security-scan.md +9 -4
  6. package/.agent/mindforge/skills-index.md +1 -1
  7. package/.agent/mindforge/status.md +5 -4
  8. package/.agent/skills/mindforge-join-discord/SKILL.md +9 -6
  9. package/.claude/commands/mindforge/health.md +7 -4
  10. package/.claude/commands/mindforge/help.md +9 -5
  11. package/.claude/commands/mindforge/install-skill.md +8 -6
  12. package/.claude/commands/mindforge/marketplace.md +6 -0
  13. package/.claude/commands/mindforge/security-scan.md +9 -4
  14. package/.claude/commands/mindforge/skills-index.md +1 -1
  15. package/.claude/commands/mindforge/status.md +5 -4
  16. package/.mindforge/config.json +1 -1
  17. package/.mindforge/dynamic-workflows/scripts/feature-planner.js +12 -0
  18. package/.mindforge/dynamic-workflows/scripts/incident-response.js +6 -0
  19. package/.mindforge/dynamic-workflows/scripts/onboard-codebase.js +9 -0
  20. package/.mindforge/dynamic-workflows/scripts/perf-optimize.js +6 -0
  21. package/.mindforge/dynamic-workflows/scripts/refactor-plan.js +3 -0
  22. package/.mindforge/dynamic-workflows/scripts/release-prep.js +9 -0
  23. package/.mindforge/dynamic-workflows/scripts/tdd-sprint.js +12 -0
  24. package/.mindforge/dynamic-workflows/scripts/verification-loop.js +6 -0
  25. package/.mindforge/org/skills/MANIFEST.md +32 -0
  26. package/.mindforge/personas/mf-executor.md +1 -1
  27. package/.mindforge/personas/mf-memory.md +1 -1
  28. package/.mindforge/personas/mf-tool.md +1 -1
  29. package/.mindforge/personas/swarm-templates.json +10 -20
  30. package/CHANGELOG.md +108 -0
  31. package/MINDFORGE-AGENTIC-SECURITY.md +189 -0
  32. package/MINDFORGE.md +2 -2
  33. package/README.md +271 -80
  34. package/RELEASENOTES.md +57 -0
  35. package/SECURITY.md +3 -2
  36. package/bin/governance/audit-verifier.js +12 -3
  37. package/bin/installer/harness-adapter-compliance.js +1 -1
  38. package/bin/installer-core.js +65 -8
  39. package/bin/mindforge-cli.js +2 -2
  40. package/bin/verify-audit.js +7 -1
  41. package/bin/wizard/theme.js +1 -1
  42. package/changelogs/v11.9.8.md +51 -0
  43. package/changelogs/v11.9.9.md +59 -0
  44. package/docs/References/commands.md +2 -2
  45. package/docs/References/config-reference.md +20 -35
  46. package/docs/References/sdk-api.md +10 -4
  47. package/docs/References/skills-api.md +9 -7
  48. package/docs/commands-reference.md +2 -2
  49. package/docs/faq.md +10 -7
  50. package/docs/getting-started.md +10 -4
  51. package/docs/sdk-reference.md +3 -3
  52. package/docs/security/SECURITY.md +14 -0
  53. package/docs/security/ZTAI-OVERVIEW.md +53 -0
  54. package/docs/security/penetration-test-results.md +36 -0
  55. package/docs/security/threat-model.md +148 -0
  56. package/docs/troubleshooting.md +14 -10
  57. package/docs/user-guide.md +12 -8
  58. package/docs/usp-features.md +60 -0
  59. package/package.json +4 -1
  60. package/subagents/README.md +38 -0
  61. package/.agent/skills/godmode/SKILL.md +0 -396
  62. package/.agent/skills/godmode/references/jailbreak-templates.md +0 -128
  63. package/.agent/skills/godmode/references/refusal-detection.md +0 -142
package/README.md CHANGED
@@ -1,50 +1,60 @@
1
1
  # MindForge
2
2
 
3
- [![npm version](https://img.shields.io/npm/v/mindforge-cc.svg)](https://www.npmjs.com/package/mindforge-cc)
3
+ [![npm version](https://img.shields.io/npm/v/mindforge-cc.svg?style=for-the-badge)](https://www.npmjs.com/package/mindforge-cc)
4
+ [![CI](https://img.shields.io/github/actions/workflow/status/sairam0424/MindForge/mindforge-ci.yml?style=for-the-badge&label=CI)](https://github.com/sairam0424/MindForge/actions/workflows/mindforge-ci.yml)
5
+ [![audit chain: verified](https://img.shields.io/badge/audit%20chain-verified-brightgreen?style=for-the-badge)](#what-is-actually-enforced)
6
+
4
7
  [![npm downloads](https://img.shields.io/npm/dm/mindforge-cc.svg)](https://www.npmjs.com/package/mindforge-cc)
5
8
  [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
6
9
  [![Node >=18](https://img.shields.io/badge/node-%3E%3D18-brightgreen.svg)](package.json)
7
10
 
8
- **An agentic intelligence framework for Claude Code** — orchestrates multi-agent workflows with governance, memory, and autonomous execution. Production-hardened with true parallelism, streaming SDK, and zero-trust security. Install once, get structured AI-driven development with built-in quality gates.
11
+ ![Claude Code](https://img.shields.io/badge/Claude_Code-supported-blueviolet)
12
+ ![Antigravity](https://img.shields.io/badge/Antigravity-supported-blueviolet)
13
+ ![Cursor](https://img.shields.io/badge/Cursor-supported-blueviolet)
14
+ ![Copilot](https://img.shields.io/badge/Copilot-supported-blueviolet)
15
+ ![Gemini CLI](https://img.shields.io/badge/Gemini_CLI-supported-blueviolet)
16
+ ![OpenCode](https://img.shields.io/badge/OpenCode-supported-blueviolet)
17
+
18
+ **A governance and orchestration layer for Claude Code** (and Antigravity, Cursor, Copilot,
19
+ Gemini, OpenCode).
9
20
 
10
- **At a glance:** 221 slash commands · 355 skills (232 auto-triggered + 123 explicit) · 216 personas · 164 installable subagents · 35 pre-built multi-agent dynamic workflows · a tamper-evident audit hash-chain · cost-aware routing across Anthropic/OpenAI/Gemini/Bedrock/Ollama · a local-first knowledge graph on zero-native-dependency SQLite (sql.js) · a live Express+SSE dashboard. Ships as an npm package, a Claude Code plugin, and an MCP server.
21
+ Claude Code alone runs one agent in one context. MindForge adds the parts that don't fit in a
22
+ single context window: skills that auto-load by trigger, personas you can call by name, a
23
+ wave-based executor that fans work out to fresh-context subagents and commits per task, a
24
+ tamper-evident audit chain, and cost-aware routing across providers. Install it once and get
25
+ `/mindforge:plan-phase` → `/mindforge:execute-phase` → `/mindforge:verify-phase` → `/mindforge:ship`
26
+ as your actual working loop, not a slogan.
11
27
 
12
- **Jump to:** [Latest release](#latest-release) · [What is actually enforced](#what-is-actually-enforced) · [Install](#install) · [Quick start](#quick-start-new-project) · [Documentation](#documentation) · [Core workflow](#core-workflow) · [Dynamic workflows](#dynamic-workflow-library)
28
+ 221 commands · 354 skills · 216 personas · 164 subagents · 35 workflows
29
+
30
+ **Jump to:** [Latest release](#latest-release) · [What you get](#what-you-get) · [What is actually enforced](#what-is-actually-enforced) · [Install](#install) · [Verify](#verify) · [Quick start (new)](#quick-start-new-project) · [Quick start (existing)](#quick-start-existing-codebase) · [How it fits together](#how-it-fits-together) · [Documentation](#documentation) · [Core workflow](#core-workflow) · [Dynamic workflows](#dynamic-workflow-library) · [Updates](#updates-and-migrations) · [Token usage](#token-usage-profiling) · [License](#license)
13
31
 
14
32
  ---
15
33
 
16
- ## Latest release
34
+ ## What you get
17
35
 
18
- **v11.9.7** (2026-09-20) — The install banner stops contradicting itself. Found by
19
- actually running v11.9.6's own documented install command in a clean project instead of
20
- stopping at `--version`: the top banner claimed `SOVEREIGN INTELLIGENCE v8.1.1` while the
21
- install activation line two screens later said `v8.2.0` for the same subsystem, and claimed
22
- `PQAS ... Enabled` right before accurately disclosing it's simulated and off by default a
23
- few lines down. Both fixed, plus a dead `docs.mindforge.cc` link and a persona-count doc
24
- regression (218 → back to the correct 216) introduced by v11.9.6's own honesty pass. No
25
- new features. See [RELEASENOTES.md](./RELEASENOTES.md) or [CHANGELOG.md](./CHANGELOG.md).
26
-
27
- The previous release, **v11.9.6**, was the release-readiness pass before pointing real,
28
- external users at the project for the first time: fixed a crash in `/mindforge:learn`, a
29
- token-leak in the browser daemon, three dashboard panels that silently rendered nothing, a
30
- stale Homebrew formula, and docs describing PQAS/ZTAI/"Pillar"-numbered subsystems as live
31
- guarantees when the code already self-labels them simulated. **v11.9.5** fixed a release
32
- pipeline that could strand itself mid-publish and shipped `mindforge-sdk` for the first
33
- time since 11.8.0, with provenance. **v11.9.4**, before that, is where the hook gates
34
- started actually registering: 11.9.3
35
- shipped the code and then declined to run it on essentially every project. Measured against
36
- the published tarballs — 11.9.3: **11 hook scripts installed, 0 registered**; 11.9.4:
37
- **8 registered, 3 deny-class verified blocking**. That **behaviour change under a patch
38
- bump** still applies — the installer writes `.claude/settings.json` where it previously
39
- declined, merging append-only and backing up first. See the BREAKING section in
40
- [CHANGELOG.md](./CHANGELOG.md).
36
+ | | Capability | Detail |
37
+ |---|---|---|
38
+ | 🧩 | **221 slash commands** | `/mindforge:plan-phase`, `/mindforge:execute-phase`, `/mindforge:ship`, and 218 more — [full reference](docs/commands-reference.md) |
39
+ | 🛠️ | **354 skills** | 232 auto-triggered by keyword match (engine tier) + 122 explicit, invoked by name (extended tier) |
40
+ | 🎭 | **216 personas** | In-session role overlays via `/mindforge:agent <name>` — same context, different behavioral spec |
41
+ | 🤖 | **164 subagents** | Genuine isolated-context Claude-Code-native subagent definitions — a separate mechanism from personas, see [docs/PERSONAS.md](docs/PERSONAS.md); 152 adapted from [VoltAgent's `awesome-claude-code-subagents`](https://github.com/VoltAgent/awesome-claude-code-subagents) (MIT), attribution in [subagents/README.md](subagents/README.md) |
42
+ | 🔀 | **35 dynamic workflows** | Multi-agent fan-out scripts across 5 tiers (Research, Dev, Ops, Intelligence, Beast) — [workflow atlas](docs/workflow-atlas.md) |
43
+ | 🔒 | **Tamper-evident audit chain** | SHA-256 hash-linked `.planning/AUDIT.jsonl`; verify independently with `node bin/verify-audit.js` |
44
+ | 🔍 | **Multi-model cross-review + decision council** | Two-model adversarial PR review (`/mindforge:pr-review`) and a 4-voice consensus council (`/mindforge:council`) — `bin/review/`, `bin/engine/council-runtime.js` |
45
+ | 💸 | **Cost-aware model routing** | Anthropic / OpenAI / Gemini / Bedrock / Ollama, routed by task difficulty tier |
46
+ | 🧠 | **Local-first knowledge graph** | Zero-native-dependency SQLite (`sql.js` / WASM) — no native build step |
47
+ | 📊 | **Live dashboard** | Express + SSE at `localhost:7339` |
48
+
49
+ Ships three ways: an npm package (`npx mindforge-cc@latest`), a Claude Code plugin marketplace
50
+ entry, and an MCP server.
41
51
 
42
52
  ---
43
53
 
44
54
  ## What is actually enforced
45
55
 
46
- Read this before the install instructions. MindForge ships a large corpus of agent
47
- instructions — commands, skills, personas, protocols — and those are advisory: they work by
56
+ Read this before you rely on anything below blocking a bad command. MindForge ships a large
57
+ corpus of agent instructions — commands, skills, personas, protocols — and those are advisory: they work by
48
58
  being in the model's context, and a model can decline them. The parts that would *block* an
49
59
  action are hooks. Through 11.9.2 **no channel registered them.** 11.9.3 added the registration code
50
60
  but it declined to run on almost every project, so in practice nothing was enforced there either.
@@ -60,7 +70,7 @@ but it declined to run on almost every project, so in practice nothing was enfor
60
70
 
61
71
  What that means, measured rather than asserted:
62
72
 
63
- - **The `npx` channel generates the config it never used to ship.** `files[]` has 49 entries and
73
+ - **The `npx` channel generates the config it never used to ship.** `files[]` has 52 entries and
64
74
  none of them contains `settings`, so no settings file is *published* — instead
65
75
  `bin/installer/hook-registration.js` writes one at install time, merging append-only into any
66
76
  file you already have. Measured on a confined install: **8 hooks registered** into
@@ -73,11 +83,12 @@ What that means, measured rather than asserted:
73
83
  `plugins/mindforge/hooks/hooks.json` resolve under the plugin root, and driving the dispatcher by
74
84
  hand returns **exit 2** for `mindforge-block-no-verify` and `mindforge-config-protection`.
75
85
 
76
- Still **not** enforced, deliberately and with a printed reason for each: any runtime other than
77
- Claude Code (Cursor, Copilot, Gemini/Antigravity, OpenCode), `--global` scope, a self-install
78
- inside a MindForge checkout, and Windows. Writing a Claude-schema config into `.cursor/` without an
79
- execution-verified hook contract would be decorative. Every outcome, including "not registered", is
80
- printed by the installer and written to `.mindforge/hook-registration.json`.
86
+ > [!WARNING]
87
+ > Still **not** enforced, deliberately and with a printed reason for each: any runtime other than
88
+ > Claude Code (Cursor, Copilot, Gemini/Antigravity, OpenCode), `--global` scope, a self-install
89
+ > inside a MindForge checkout, and Windows. Writing a Claude-schema config into `.cursor/` without an
90
+ > execution-verified hook contract would be decorative. Every outcome, including "not registered", is
91
+ > printed by the installer and written to `.mindforge/hook-registration.json`.
81
92
 
82
93
  Three things gate whether a registered hook is *live*, none of them in MindForge's control: the
83
94
  harness must be **restarted** (hooks are snapshotted at session start), the project must be
@@ -96,36 +107,108 @@ instructions — review what you install. The audit chain is verifiable today
96
107
 
97
108
  ## Install
98
109
 
99
- Claude Code plugin marketplace (no project files written). The plugin's hooks now fire — see
100
- *What is actually enforced* above for what that does and does not cover.
110
+ Pick whichever matches how you work — all of these are real, live channels.
111
+
112
+ On a typical connection, `npx mindforge-cc@latest --claude --local` finishes in well under 10
113
+ seconds (measured: ~5.4s locally) — reproduce with `time npx mindforge-cc@latest --claude --local`
114
+ in an empty directory. Install makes zero model calls; you don't spend a token or a dollar until
115
+ you run a command that dispatches to a subagent.
116
+
117
+ ### `npx` (recommended)
118
+
119
+ Writes `.mindforge/` governance, memory, and planning into your project:
120
+
121
+ ```bash
122
+ npx mindforge-cc@latest --claude --local # Claude Code, this project only
123
+ npx mindforge-cc@latest --antigravity --local # Antigravity, this project only
124
+ npx mindforge-cc@latest # interactive wizard, pre-selects a detected runtime
125
+ ```
126
+
127
+ The bare form only detects anything inside an interactive TTY wizard session, where it pre-selects
128
+ — you still confirm — whichever runtime it finds. Run it non-interactively (CI, piped, scripted,
129
+ or anywhere `stdin` isn't a TTY) and it skips the wizard entirely and installs `--claude` by
130
+ default, regardless of what's actually on the machine.
131
+
132
+ **Global** (system-wide, for your primary AI coding runtime):
133
+
134
+ ```bash
135
+ npx mindforge-cc@latest --claude --global
136
+ ```
137
+
138
+ (`npm install -g mindforge-cc@latest` only puts the `mindforge-cc`/`mindforge` binaries on your
139
+ PATH — it doesn't select a runtime or write anything. Run the command above, or the equivalent
140
+ `mindforge-cc --claude --global` once installed, to actually scaffold a global setup.)
141
+
142
+ **Other runtimes** — same flag pattern, swap `--global`/`--local`:
143
+
144
+ | Runtime | Flag |
145
+ |---|---|
146
+ | Claude Code | `--claude` |
147
+ | Antigravity | `--antigravity` |
148
+ | Cursor | `--cursor` |
149
+ | GitHub Copilot | `--copilot` |
150
+ | Gemini CLI | `--gemini` |
151
+
152
+ **Advanced:** `--runtime claude,cursor` (combined runtimes) · `--with-utils` (installs local `bin/` utilities) · `--minimal` (essential scaffolding only, no persona library) · `--force` (rewrite an existing `.mindforge/MINDFORGE-SCHEMA.json` with the current, stricter schema)
153
+
154
+ ### Claude Code plugin marketplace
155
+
156
+ No project files written — the plugin's hooks fire, see [What is actually enforced](#what-is-actually-enforced) for what that does and does not cover.
101
157
 
102
158
  ```bash
103
159
  /plugin marketplace add sairam0424/MindForge
104
160
  /plugin install mindforge@mindforge
105
161
  ```
106
162
 
107
- Or the full framework engine via `npx` (writes `.mindforge/` governance, memory, and planning into your project):
163
+ Prefer just a slice (e.g. Python agents)? `mindforge-lang@mindforge` and 9 other focused packs exist — see [docs/plugin-installation.md](docs/plugin-installation.md) for all 10, token-budget guidance, and team setup.
164
+
165
+ ### Standalone MCP server
166
+
167
+ ```bash
168
+ claude mcp add mindforge -- npx -y mindforge-mcp-server
169
+ ```
170
+
171
+ Exposes 8 tools over stdio (6 read-only, 1 guarded write, 1 guarded browse proxy). Also listed on
172
+ the [MCP Registry](https://registry.modelcontextprotocol.io) as `io.github.sairam0424/mindforge`
173
+ — that entry is republished manually and can lag; check what it actually serves before relying on
174
+ it, or install `mindforge-mcp-server` from npm directly to pin a version.
175
+
176
+ ### Homebrew
108
177
 
109
178
  ```bash
110
- npx mindforge-cc@latest --claude --local
179
+ brew install sairam0424/tap/mindforge
111
180
  ```
112
181
 
113
- All install channels (global, local, Antigravity, Cursor, Copilot, Gemini CLI, MCP server, combined runtimes, `--minimal`): see [docs/getting-started.md](docs/getting-started.md).
182
+ ### SDK
114
183
 
115
- **Upgrading from 11.9.x?** The installer does not overwrite an existing
116
- `.mindforge/MINDFORGE-SCHEMA.json`, so 11.9.2's armed config validator keeps the older
117
- permissive schema on a plain upgrade. Run with `--force` if you want the stricter gate. The
118
- daily cost cap declared as `[COST_HARD_LIMIT_USD]` in `MINDFORGE.md` was **not enforced** in
119
- 11.9.2; 11.9.3 arms it. An upgrade never rewrites an existing `MINDFORGE.md`, so if yours
120
- predates the key the cap stays off — add `[COST_HARD_LIMIT_USD] = 25.00` to turn it on.
184
+ Build on MindForge programmatically:
185
+
186
+ ```bash
187
+ npm i mindforge-sdk
188
+ ```
189
+
190
+ > [!NOTE]
191
+ > **Upgrading from 11.9.x?** The installer does not overwrite an existing
192
+ > `.mindforge/MINDFORGE-SCHEMA.json`, so 11.9.2's armed config validator keeps the older
193
+ > permissive schema on a plain upgrade — run with `--force` for the stricter gate. The daily cost
194
+ > cap declared as `[COST_HARD_LIMIT_USD]` in `MINDFORGE.md` was **not enforced** in 11.9.2 (11.9.3
195
+ > arms it), and an upgrade never rewrites an existing `MINDFORGE.md` — add
196
+ > `[COST_HARD_LIMIT_USD] = 25.00` yourself if yours predates the key.
197
+
198
+ Full install matrix, plugin packs, and team-setup guidance: [docs/getting-started.md](docs/getting-started.md).
121
199
 
122
200
  ---
123
201
 
124
202
  ## Verify
125
203
 
204
+ These `/mindforge:*` commands require the Claude Code plugin or an `npx`/Homebrew framework
205
+ install — the standalone MCP server exposes MCP tools instead, and `mindforge-sdk` exposes a
206
+ programmatic API; neither installs these slash commands.
207
+
126
208
  ```bash
127
209
  /mindforge:health # framework + installation health check
128
- /mindforge:health --repair # fix anything the health check flags
210
+ /mindforge:health --repair # documented in the command spec, but NOT wired into the CLI
211
+ # backing path — silently ignored, output is byte-identical to plain health
129
212
  /mindforge:status # project status snapshot
130
213
  /mindforge:next # auto-discover your first task
131
214
  ```
@@ -154,31 +237,121 @@ Full verification walkthrough: [docs/quick-verify.md](docs/quick-verify.md).
154
237
 
155
238
  ---
156
239
 
240
+ ## Latest release
241
+
242
+ **v11.9.9** (2026-09-23) — Release-readiness audit: 5 CRITICAL + 9 HIGH findings fixed. An
243
+ 8-agent audit workflow tested every surface (commands, skills, personas, subagents,
244
+ dynamic workflows, CLI/MCP, live install/verify/health) as a release gate before pointing
245
+ real external users at the project. Every finding was independently re-verified against
246
+ live code before fixing, not trusted from the audit report alone. Five were ship-blocking:
247
+ a real LLM jailbreak toolkit (`godmode`) shipping unconditionally in the package is gone;
248
+ `help.md`/`status.md`/`health.md`/`security-scan.md` stop claiming PQAS/biometric/
249
+ lattice-crypto verification is "active by default" when the code says the opposite;
250
+ `--minimal` now actually skips the persona set instead of shipping all 218 files anyway; a
251
+ "Sovereign Integrity Check" that called a CLI flag on a script with no CLI entrypoint (and
252
+ so could never fail) is replaced with a real check; and a dead 4-line stub standing in for
253
+ "232 auto-triggered skills" is now disclosed as what it is. Nine more: corrected CLI
254
+ invocation docs, disclosed the marketplace's zero published packages, crash-guards on 8
255
+ dynamic workflows, 32 unregistered skills added to the manifest, 3 personas granting
256
+ tools that don't exist fixed, 11 dangling swarm-template references reconciled, `health`
257
+ wired to a real integrity check, and a brand-new install's audit log no longer reporting a
258
+ false "BROKEN" status. See [RELEASENOTES.md](./RELEASENOTES.md) or
259
+ [CHANGELOG.md](./CHANGELOG.md).
260
+
261
+ <details>
262
+ <summary><strong>Earlier releases</strong></summary>
263
+
264
+ **v11.9.8** fixed two real bugs found by a literal, end-to-end README audit (113 claims
265
+ checked, 98 held up): `--runtime claude,cursor` crashed the installer outright, and
266
+ `--minimal` claimed "no persona library" but shipped all 216 anyway. The other twelve
267
+ findings were documentation catching up to what the code actually does. The previous
268
+ release, **v11.9.7**, fixed a version self-contradiction and a false "Enabled"
269
+ claim in the install banner, a dead `docs.mindforge.cc` link, and a persona-count doc
270
+ regression (218 → back to the correct 216) introduced by v11.9.6's own honesty pass.
271
+ **v11.9.6** was the release-readiness pass before pointing real, external users at the
272
+ project for the first time: fixed a crash in `/mindforge:learn`, a token-leak in the
273
+ browser daemon, three dashboard panels that silently rendered nothing, a stale Homebrew
274
+ formula, and docs describing PQAS/ZTAI/"Pillar"-numbered subsystems as live guarantees when
275
+ the code already self-labels them simulated. **v11.9.5** fixed a release pipeline that
276
+ could strand itself mid-publish and shipped `mindforge-sdk` for the first time since
277
+ 11.8.0, with provenance. **v11.9.4**, before that, is where the hook gates started actually
278
+ registering: 11.9.3 shipped the code and then declined to run it on essentially every
279
+ project. Measured against the published tarballs — 11.9.3: **11 hook scripts installed, 0
280
+ registered**; 11.9.4: **8 registered, 3 deny-class verified blocking**. That **behaviour
281
+ change under a patch bump** still applies — the installer writes `.claude/settings.json`
282
+ where it previously declined, merging append-only and backing up first. See the BREAKING
283
+ section in [CHANGELOG.md](./CHANGELOG.md).
284
+
285
+ </details>
286
+
287
+ ---
288
+
289
+ ## How it fits together
290
+
291
+ ```
292
+ /mindforge:plan-phase N
293
+ |
294
+ v
295
+ Skill Loader (trigger-match, tier: Project > Org > Core)
296
+ |
297
+ v
298
+ Context Injector (<=60K tokens) --> Cost Router
299
+ | (Haiku / Sonnet / Opus / Gemini,
300
+ v by task difficulty)
301
+ Fresh-context Subagent (implement -> self-verify -> commit)
302
+ |
303
+ v
304
+ Verification (build / typecheck / lint / test / security / diff)
305
+ pass | fail
306
+ +--------------+--------------+
307
+ v v
308
+ Handoff (.planning/HANDOFF.json Temporal rollback -> sets status
309
+ + AUDIT.jsonl) "awaiting_regeneration"
310
+ ```
311
+
312
+ The fail path is real but partial: `bin/hindsight-injector.js` rolls back `.planning/` state and sets
313
+ `auto-state.json.status = "awaiting_regeneration"` — verified, and hash-chained into the audit log
314
+ like everything else. What is **not** currently true: nothing in `bin/` reads that status back out
315
+ to automatically re-trigger the wave (`awaiting_regeneration` has one writer, zero readers today) —
316
+ regeneration after a rollback is a manual step, not a closed loop.
317
+
318
+ Four layers underlie this, top to bottom: **Interface** (`.claude/`, `.agent/` — the 221 slash
319
+ commands and hooks), **Engine specs** (`.mindforge/` — 232 of the 354 skills plus 216 personas and
320
+ `config.json` runtime knobs; the other 122 skills are extended-tier, under `.agent/skills/`),
321
+ **Execution** (`bin/`, ~32K raw / ~25K stripped-of-comments LOC — the wave executor, governance,
322
+ memory, and dashboard code that actually runs), and **Persistence** (`.planning/` — `STATE.md`,
323
+ the audit chain, resumable `HANDOFF.json`). Edit behavior in layer 2 where possible; layer 3 is
324
+ the only place with real enforcement, per *What is actually enforced* above.
325
+
326
+ ---
327
+
157
328
  ## Documentation
158
329
 
159
- - **User Guide:** [docs/user-guide.md](docs/user-guide.md)
160
- - **Getting started:** [docs/getting-started.md](docs/getting-started.md)
161
- - **Quick verify:** [docs/quick-verify.md](docs/quick-verify.md)
162
- - **Troubleshooting:** [docs/troubleshooting.md](docs/troubleshooting.md)
163
- - **FAQ:** [docs/faq.md](docs/faq.md)
164
- - **Full tutorial:** [docs/tutorial.md](docs/tutorial.md)
165
- - **Commands reference (full):** [docs/commands-reference.md](docs/commands-reference.md)
166
- - **Commands (quick):** [docs/References/commands.md](docs/References/commands.md)
167
- - **Config reference:** [docs/References/config-reference.md](docs/References/config-reference.md)
168
- - **SDK:** [docs/References/sdk-api.md](docs/References/sdk-api.md)
169
- - **Skills:** [docs/References/skills-api.md](docs/References/skills-api.md)
170
- - **Audit events:** [docs/References/audit-events.md](docs/References/audit-events.md)
171
- - **Upgrade guide:** [docs/upgrade.md](docs/upgrade.md)
172
- - **Workflow atlas:** [docs/workflow-atlas.md](docs/workflow-atlas.md)
173
- - **Security:** [SECURITY.md](SECURITY.md) (credentials are read from env vars and never committed to the repository)
174
- - **Threat model:** [docs/security/threat-model.md](docs/security/threat-model.md)
175
- - **Architecture:** [docs/architecture/README.md](docs/architecture/README.md)
176
- - **Contributing:** [docs/contributing/CONTRIBUTING.md](docs/contributing/CONTRIBUTING.md)
177
- - **Release notes:** [RELEASENOTES.md](RELEASENOTES.md)
178
- - **CI quickstart:** [docs/ci-quickstart.md](docs/ci-quickstart.md)
179
- - **Requirements:** [docs/requirements.md](docs/requirements.md)
180
- - **Release checklist guide:** [docs/release-checklist-guide.md](docs/release-checklist-guide.md)
181
- - **USPs and features:** [docs/usp-features.md](docs/usp-features.md)
330
+ Six categories, read in this order the first time:
331
+
332
+ | Category | Doc | Read this when |
333
+ |---|---|---|
334
+ | Start here | [Getting started](docs/getting-started.md) | Installing for the first time |
335
+ | Start here | [Quick verify](docs/quick-verify.md) | Right after install — confirm it actually works |
336
+ | Start here | [User guide](docs/user-guide.md) | Learning the day-to-day command loop |
337
+ | Start here | [Full tutorial](docs/tutorial.md) | Want a guided walkthrough instead of reference docs |
338
+ | Reference | [Commands (full)](docs/commands-reference.md) / [Commands (quick)](docs/References/commands.md) | Looking up a specific `/mindforge:*` command |
339
+ | Reference | [Config reference](docs/References/config-reference.md) | Editing `MINDFORGE.md` — this doc doesn't cover `.mindforge/config.json` |
340
+ | Reference | [SDK API](docs/References/sdk-api.md) / [Skills API](docs/References/skills-api.md) | Building on `mindforge-sdk` or authoring a new skill |
341
+ | Reference | [Audit events](docs/References/audit-events.md) | Parsing `.planning/AUDIT.jsonl` |
342
+ | Reference | [Workflow atlas](docs/workflow-atlas.md) | Choosing one of the 35 dynamic workflows |
343
+ | Reference | [Requirements](docs/requirements.md) | Checking supported Node/OS versions before install |
344
+ | When something's wrong | [Troubleshooting](docs/troubleshooting.md) | A command or hook isn't behaving as documented |
345
+ | When something's wrong | [FAQ](docs/faq.md) | Common questions before filing an issue |
346
+ | When something's wrong | [Upgrade guide](docs/upgrade.md) | Moving between major/minor versions |
347
+ | Security | [SECURITY.md](SECURITY.md) | Reporting a vulnerability; credentials are read from env vars and never committed |
348
+ | Security | [Threat model](docs/security/threat-model.md) | Historical only — scoped to the v1.0.0 predecessor, not re-reviewed against v11.x; see [SECURITY.md](SECURITY.md) for what's actually enforced today |
349
+ | Contributing | [Architecture](docs/architecture/README.md) | Understanding the codebase before sending a PR |
350
+ | Contributing | [Contributing guide](CONTRIBUTING.md) | Sending a PR |
351
+ | Contributing | [CI quickstart](docs/ci-quickstart.md) | Understanding what CI checks before you push |
352
+ | Contributing | [Release checklist](docs/release-checklist-guide.md) | Cutting a release |
353
+ | Reference | [USPs and features](docs/usp-features.md) | The same "measured, not asserted" honesty pass applied to what's actually shipped — no competitor comparison |
354
+ | Release notes | [RELEASENOTES.md](RELEASENOTES.md) | What changed, in prose, per version |
182
355
 
183
356
  ---
184
357
 
@@ -187,7 +360,7 @@ Full verification walkthrough: [docs/quick-verify.md](docs/quick-verify.md).
187
360
  | Command | What it does |
188
361
  | :--- | :--- |
189
362
  | `/mindforge:init-project` | Requirements interview → creates `PROJECT.md`, `REQUIREMENTS.md`, `STATE.md` |
190
- | `/mindforge:plan-phase 1 [--ads]` | Discuss scope, research the domain in parallel, create atomic XML task plans |
363
+ | `/mindforge:plan-phase 1` | Discuss scope, research the domain in parallel, create atomic XML task plans |
191
364
  | `/mindforge:execute-phase 1` | Wave-based parallel execution, one commit per task, automated verification |
192
365
  | `/mindforge:verify-phase 1` | Human acceptance testing, debug agent on failures, UAT sign-off |
193
366
  | `/mindforge:ship 1` | Changelog generation, final quality gates, PR creation |
@@ -207,13 +380,18 @@ Full, verified 35-workflow table by tier: [docs/workflow-atlas.md](docs/workflow
207
380
 
208
381
  ---
209
382
 
210
- ## Execution Modes
383
+ <details>
384
+ <summary><strong>Execution modes</strong></summary>
211
385
 
212
386
  MindForge supports multiple interaction models to fit your engineering workflow:
213
387
 
214
388
  - **In-IDE Orchestration**: Use `/mindforge:agent <persona>` for real-time delegation.
215
389
  - **Enterprise Workflows**: Specialized commands like `/mindforge:wf-tdd-sprint` and `/mindforge:plan-phase`.
216
- - **CLI Automation**: Run `node bin/mindforge-cli.js spawn <persona>` for scripted tasks.
390
+ - **CLI Automation**: `node bin/mindforge-cli.js spawn <persona>` exists but is a v1.0 stub — it
391
+ prints "NOT IMPLEMENTED in v1.0" and exits 1, redirecting you to `/mindforge:auto` or
392
+ `/mindforge:next` instead.
393
+
394
+ </details>
217
395
 
218
396
  ---
219
397
 
@@ -223,27 +401,40 @@ Run `/mindforge:update` (add `--apply` to install) — see [docs/upgrade.md](doc
223
401
 
224
402
  ---
225
403
 
226
- ## Plugin system (v1.0.0)
404
+ <details>
405
+ <summary><strong>Plugin system (v1.0.0)</strong></summary>
227
406
 
228
- Plugins extend MindForge via the `mindforge-plugin-*` namespace.
407
+ Plugins extend MindForge via the `mindforge-plugin-*` namespace. No packages are currently
408
+ published under it — this is the mechanism, not a catalog.
229
409
 
230
- ```
410
+ ```bash
231
411
  /mindforge:plugins list
232
412
  /mindforge:plugins install mindforge-plugin-<name>
233
413
  /mindforge:plugins validate
234
414
  ```
235
415
 
416
+ </details>
417
+
236
418
  ---
237
419
 
238
420
  ## Token usage profiling
239
421
 
240
422
  ```
241
- /mindforge:tokens --profile
423
+ /mindforge:tokens --optimise
242
424
  ```
243
- See `.mindforge/production/token-optimiser.md`.
425
+ (`--profile` doesn't exist; real flags are `--phase N`, `--session ID`, `--window short|medium|long`,
426
+ and `--optimise`.) See `.mindforge/production/token-optimiser.md`.
427
+
428
+ Installing and running `/mindforge:plan-phase`/`/mindforge:execute-phase` costs real model calls
429
+ once a subagent starts working — install itself does not (`npx mindforge-cc@latest` never calls
430
+ a model). Spend is capped by `[COST_HARD_LIMIT_USD]` in `MINDFORGE.md` (default `25.00`),
431
+ enforced in code by `bin/models/cost-tracker.js`'s `preflight()` before each call goes out — not a
432
+ policy statement. The per-project token/cost *reports* from `/mindforge:tokens` and
433
+ `.mindforge/production/token-optimiser.md` are heuristic estimates (`file size / 4`), explicitly
434
+ logged with `measured: false`.
244
435
 
245
436
  ---
246
437
 
247
438
  ## License
248
439
 
249
- MIT © 2026 MindForge Team
440
+ MIT © 2026 Sairam Ugge (GitHub: Sairam0000)
package/RELEASENOTES.md CHANGED
@@ -1,5 +1,62 @@
1
1
  # Release Notes
2
2
 
3
+ ## v11.9.9 — 2026-09-23 — Release-readiness audit: 5 CRITICAL + 9 HIGH findings fixed
4
+
5
+ ### Why this release exists
6
+
7
+ An 8-agent audit workflow tested every MindForge surface — slash commands, skills,
8
+ personas, subagents, dynamic workflows, CLI/MCP, and a live install/verify/health cycle —
9
+ as a release gate before shipping to real external users. Every finding was independently
10
+ re-verified against live code and commands before being fixed, not trusted from the audit
11
+ report alone.
12
+
13
+ ### The user-visible part
14
+
15
+ **Five CRITICAL findings, all ship-blocking:** a real, complete LLM jailbreak toolkit
16
+ (`godmode`) that was shipping unconditionally in the published package is gone; `help.md`,
17
+ `status.md`, `health.md`, and `security-scan.md` stop claiming PQAS/biometric/lattice-crypto
18
+ verification is "active by default" when the code itself says it's simulated and off;
19
+ `--minimal` now actually skips the persona set instead of shipping all 218 files anyway; a
20
+ "Sovereign Integrity Check" that called a CLI flag on a script with no CLI entrypoint (and
21
+ so could never fail) is replaced with a real check; and a dead 4-line stub standing in for
22
+ "232 auto-triggered skills" is now disclosed as what it is.
23
+
24
+ **Nine HIGH-severity findings:** corrected CLI invocation docs, disclosed the marketplace
25
+ has zero published packages today, added crash-guards to 8 dynamic workflows, registered 32
26
+ skills that existed on disk but were never in the manifest, fixed three personas granting
27
+ tools that don't exist, reconciled 11 dangling swarm-template references, wired the `health`
28
+ command to an actual integrity check, and stopped a brand-new install's audit log from
29
+ reporting a false "BROKEN" status.
30
+
31
+ ## v11.9.8 — 2026-09-21 — What the README claims, verified line by line
32
+
33
+ ### Why this release exists
34
+
35
+ v11.9.7 shipped a full README rewrite. This release is what happened when that rewrite got
36
+ a literal, end-to-end audit — every command it documents actually run in a real environment
37
+ (real `npx` installs, a real Homebrew install/uninstall cycle, a real `npm i mindforge-sdk`,
38
+ live registry checks) rather than re-read for plausibility. Of 113 claims checked, 98 held
39
+ up, 14 didn't, and 1 couldn't be verified either way.
40
+
41
+ ### The user-visible part
42
+
43
+ **Two of the 14 were real bugs, not just wording.** `--runtime claude,cursor` — or any
44
+ comma-separated runtime list — crashed the installer outright; it's fixed, and an unknown
45
+ runtime name now exits cleanly with a clear message instead of a raw crash. `--minimal`
46
+ claimed "no persona library" but silently installed all 216 personas anyway; it now
47
+ installs none, as documented.
48
+
49
+ **The other twelve are documentation catching up to what the code actually does:** the
50
+ bare `npx mindforge-cc@latest` "auto-detects your runtime" claim (real detection only
51
+ happens inside the interactive wizard, and even there you still confirm it — every
52
+ non-interactive run defaults to `--claude`), an `--ads` flag on `/mindforge:plan-phase`
53
+ that was never real, `/mindforge:health --repair` silently doing nothing, a `--profile`
54
+ flag on `/mindforge:tokens` that doesn't exist, a CLI `spawn` command that's a v1.0 stub,
55
+ the License section's copyright holder, the skill-tier split in the architecture diagram,
56
+ the `bin/` line-count figure, three Documentation-table rows that overstated what their
57
+ linked docs actually cover, and the `mindforge-plugin-*` namespace, which has zero
58
+ packages published under it today.
59
+
3
60
  ## v11.9.7 — 2026-09-20 — The install banner stops contradicting itself
4
61
 
5
62
  ### Why this release exists
package/SECURITY.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Security Policy
2
2
 
3
- > **Current version:** 11.9.7 | **npm audit:** 0 vulnerabilities across root, sdk, mcp-server
3
+ > **Current version:** 11.9.9 | **npm audit:** 0 vulnerabilities across root, sdk, mcp-server
4
4
 
5
5
  ## Supported Versions
6
6
 
@@ -90,7 +90,8 @@ We follow responsible disclosure practices. We will credit reporters in the rele
90
90
  ### Supply Chain
91
91
 
92
92
  - **Zero native dependencies** — The removal of `better-sqlite3` eliminates the entire native compilation toolchain (node-gyp, Python, C++ compiler) from the install process, reducing the attack surface.
93
- - **Dependabot enabled** — Automated weekly scans for vulnerable npm dependencies and monthly GitHub Actions version updates.
93
+ - **Dependabot enabled** — Automated weekly scans for vulnerable npm dependencies (root, `sdk/`, and `mcp-server/` each tracked independently) and monthly GitHub Actions version updates.
94
+ - **SBOM available** — GitHub generates a full SPDX software bill of materials from the dependency graph; export it from the repo's Insights tab, or via the API: `gh api repos/sairam0424/MindForge/dependency-graph/sbom/generate-report` returns an `sbom_url`, poll it until it 302s to a download. (The older single-call `.../dependency-graph/sbom` endpoint still works today but GitHub is retiring it on 2026-11-13 — use the generate/fetch flow above for anything meant to keep working past that date.)
94
95
  - **CODEOWNERS enforcement** — Changes to `bin/governance/`, `bin/engine/`, and the SDK require review from designated security owners.
95
96
  - **.npmignore** — Prevents accidental publication of secrets, test fixtures, planning state, and intelligence logs.
96
97
 
@@ -1,6 +1,10 @@
1
1
  'use strict';
2
2
  /**
3
- * MindForge — Audit chain verifier (UC-04). Fail-closed: any break => valid:false.
3
+ * MindForge — Audit chain verifier (UC-04). Fail-closed: any break => valid:false. An ABSENT log
4
+ * (ENOENT) is reported separately via `missing: true` rather than folded into the generic
5
+ * `unreadable:` reason below — a project that has never written an audit entry is not evidence of
6
+ * tampering, and callers (bin/verify-audit.js) use the distinction to avoid crying "BROKEN" at a
7
+ * brand-new user who has done nothing wrong.
4
8
  *
5
9
  * Walks the JSONL audit log line-by-line and re-derives each entry's hash from its
6
10
  * content plus the prior entry's hash. The chain is valid only if EVERY link holds:
@@ -32,12 +36,17 @@ function hashEntry(entry, previousHash) {
32
36
  /**
33
37
  * Verifies the integrity of a hash-chained audit log. Fail-closed.
34
38
  * @param {string} auditPath — path to the AUDIT.jsonl file
35
- * @returns {{ valid: boolean, count: number, brokenAt?: number, reason?: string }}
39
+ * @returns {{ valid: boolean, count: number, brokenAt?: number, reason?: string, missing?: boolean }}
36
40
  */
37
41
  function verifyAuditChain(auditPath) {
38
42
  let lines;
39
43
  try { lines = fs.readFileSync(auditPath, 'utf8').split('\n').filter(Boolean); }
40
- catch (e) { return { valid: false, count: 0, brokenAt: 0, reason: `unreadable: ${e.message}` }; }
44
+ catch (e) {
45
+ if (e.code === 'ENOENT') {
46
+ return { valid: false, count: 0, missing: true, reason: 'no audit log yet — nothing has been audited' };
47
+ }
48
+ return { valid: false, count: 0, brokenAt: 0, reason: `unreadable: ${e.message}` };
49
+ }
41
50
 
42
51
  let previousHash = null;
43
52
  for (let i = 0; i < lines.length; i++) {
@@ -84,7 +84,7 @@ function freezeRecord(record) {
84
84
  */
85
85
  function sharedAssetTrees(base, { hooks = 11 } = {}) {
86
86
  return [
87
- { asset: 'skills', dir: `${base}/skills`, min_files: 282, verbatim_subset_of: '.agent/skills' },
87
+ { asset: 'skills', dir: `${base}/skills`, min_files: 279, verbatim_subset_of: '.agent/skills' },
88
88
  { asset: 'hooks', dir: `${base}/hooks`, min_files: hooks, verbatim_subset_of: '.agent/hooks' },
89
89
  { asset: 'personas', dir: `${base}/personas`, min_files: 218, verbatim_subset_of: '.mindforge/personas' },
90
90
  { asset: 'docs references', dir: `${base}/docs/references`, min_files: 20, verbatim_subset_of: 'docs/References' },