mindforge-cc 11.9.5 โ 11.9.7
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/.mindforge/config.json +1 -1
- package/CHANGELOG.md +167 -0
- package/MINDFORGE.md +2 -2
- package/README.md +33 -19
- package/RELEASENOTES.md +62 -0
- package/SECURITY.md +2 -2
- package/bin/browser/browser-daemon.js +84 -48
- package/bin/browser/daemon-auth.js +36 -0
- package/bin/browser/daemon-manager.js +53 -22
- package/bin/dashboard/frontend/app.js +206 -101
- package/bin/engine/learning-manager.js +1 -1
- package/bin/skills-builder/learn-cli.js +26 -14
- package/bin/wizard/theme.js +2 -2
- package/changelogs/v11.9.6.md +135 -0
- package/changelogs/v11.9.7.md +35 -0
- package/docs/References/commands.md +13 -8
- package/docs/References/decimal-phase-calculation.md +5 -5
- package/docs/References/git-integration.md +4 -4
- package/docs/References/git-planning-commit.md +2 -2
- package/docs/References/model-profile-resolution.md +1 -1
- package/docs/faq.md +5 -4
- package/docs/getting-started.md +3 -3
- package/docs/sdk-reference.md +3 -3
- package/docs/troubleshooting.md +1 -1
- package/docs/user-guide.md +3 -3
- package/examples/sdk-integration/index.js +1 -1
- package/package.json +6 -3
|
@@ -5,49 +5,61 @@
|
|
|
5
5
|
*/
|
|
6
6
|
'use strict';
|
|
7
7
|
|
|
8
|
-
const Loader
|
|
8
|
+
const Loader = require('./source-loader');
|
|
9
9
|
const Generator = require('./skill-generator');
|
|
10
|
-
const Scorer
|
|
10
|
+
const Scorer = require('./skill-scorer');
|
|
11
11
|
const Registrar = require('./skill-registrar');
|
|
12
12
|
|
|
13
13
|
const ARGS = process.argv.slice(2);
|
|
14
14
|
const SOURCE = ARGS[0];
|
|
15
|
-
const NAME
|
|
15
|
+
const NAME = ARGS[1] || 'new-skill';
|
|
16
16
|
|
|
17
17
|
if (!SOURCE) {
|
|
18
|
-
console.log(
|
|
18
|
+
console.log(
|
|
19
|
+
'Usage: node bin/skills-builder/learn-cli.js <source-url-or-path> [skill-name]',
|
|
20
|
+
);
|
|
19
21
|
process.exit(1);
|
|
20
22
|
}
|
|
21
23
|
|
|
22
24
|
async function main() {
|
|
23
25
|
try {
|
|
24
26
|
console.log(`\n๐ Learning skill: ${NAME} from ${SOURCE}`);
|
|
25
|
-
|
|
27
|
+
|
|
26
28
|
// 1. Load
|
|
27
|
-
const { content, metadata } = await Loader.load(SOURCE);
|
|
28
|
-
|
|
29
|
+
const { type, content, metadata } = await Loader.load(SOURCE);
|
|
30
|
+
|
|
29
31
|
// 2. Generate
|
|
30
32
|
const result = await Generator.generate({
|
|
31
33
|
skillName: NAME,
|
|
32
34
|
content,
|
|
33
35
|
sourceMetadata: metadata,
|
|
34
|
-
sessionId: 'cli-learn'
|
|
36
|
+
sessionId: 'cli-learn',
|
|
35
37
|
});
|
|
36
|
-
|
|
38
|
+
|
|
37
39
|
// 3. Score
|
|
38
40
|
const scoreResult = Scorer.score(result.skillPath);
|
|
39
41
|
console.log(`\nโ
Skill generated: ${result.skillPath}`);
|
|
40
|
-
console.log(
|
|
41
|
-
|
|
42
|
+
console.log(
|
|
43
|
+
`โญ Quality Score: ${scoreResult.quality_score}/100 (${scoreResult.threshold_status})`,
|
|
44
|
+
);
|
|
45
|
+
|
|
42
46
|
// 4. Register if acceptable
|
|
43
47
|
if (scoreResult.can_register) {
|
|
44
|
-
Registrar.register(
|
|
48
|
+
Registrar.register({
|
|
49
|
+
skillName: NAME,
|
|
50
|
+
skillPath: result.skillPath,
|
|
51
|
+
tier: 'project',
|
|
52
|
+
qualityScore: scoreResult.quality_score,
|
|
53
|
+
sourceType: type,
|
|
54
|
+
source: SOURCE,
|
|
55
|
+
});
|
|
45
56
|
console.log('๐ Registered in MANIFEST.md');
|
|
46
57
|
} else {
|
|
47
58
|
console.log('โ ๏ธ Score too low for automatic registration.');
|
|
48
|
-
scoreResult.improvement_suggestions.forEach(s =>
|
|
59
|
+
scoreResult.improvement_suggestions.forEach((s) =>
|
|
60
|
+
console.log(` - ${s}`),
|
|
61
|
+
);
|
|
49
62
|
}
|
|
50
|
-
|
|
51
63
|
} catch (err) {
|
|
52
64
|
console.error(`\nโ Error: ${err.message}`);
|
|
53
65
|
process.exit(1);
|
package/bin/wizard/theme.js
CHANGED
|
@@ -61,7 +61,7 @@ const Theme = {
|
|
|
61
61
|
*/
|
|
62
62
|
printBrandManifest() {
|
|
63
63
|
console.log(` ${this.colors.dim('โ')}`);
|
|
64
|
-
console.log(` ${this.colors.dim('โ')} ${this.colors.magenta('๐ก๏ธ SOVEREIGN INTELLIGENCE v8.
|
|
64
|
+
console.log(` ${this.colors.dim('โ')} ${this.colors.magenta('๐ก๏ธ SOVEREIGN INTELLIGENCE v8.2.0')} โ PQAS (simulated) & Proactive Homing`);
|
|
65
65
|
console.log(` ${this.colors.dim('โ')}`);
|
|
66
66
|
console.log(` ${this.colors.dim('โ')} ${this.colors.bold('THE PLATFORM VISION:')}`);
|
|
67
67
|
console.log(` ${this.colors.dim('โ')} - Unified Enterprise Agentic Ecosystem`);
|
|
@@ -77,7 +77,7 @@ const Theme = {
|
|
|
77
77
|
console.log(` ${this.colors.dim('โ')} ${this.colors.cyan('โญ HELP US GROW:')}`);
|
|
78
78
|
console.log(` ${this.colors.dim('โ')} - GitHub: ${this.colors.dim('https://github.com/sairam0424/MindForge')}`);
|
|
79
79
|
console.log(` ${this.colors.dim('โ')} - Discord: ${this.colors.dim('https://discord.gg/mindforge')}`);
|
|
80
|
-
console.log(` ${this.colors.dim('โ')} - Docs: ${this.colors.dim('https://
|
|
80
|
+
console.log(` ${this.colors.dim('โ')} - Docs: ${this.colors.dim('https://github.com/sairam0424/MindForge#documentation')}`);
|
|
81
81
|
console.log(` ${this.colors.dim('โ')}`);
|
|
82
82
|
console.log(` ${this.colors.dim('โ'.repeat(80))}\n`);
|
|
83
83
|
},
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [11.9.6] โ 2026-09-20 โ The docs stop overselling what the code discloses about itself
|
|
4
|
+
|
|
5
|
+
Patch release. No new features โ this is the release-readiness pass before pointing real
|
|
6
|
+
users at the project for the first time, and it found the same pattern one more time:
|
|
7
|
+
code that honestly labels its own simulated/dormant parts, sitting under docs that hadn't
|
|
8
|
+
caught up. Every fix below was hand-verified against the live source or a real command
|
|
9
|
+
run, not carried over from a prior audit's prose.
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
**Two real, reproducible bugs**
|
|
14
|
+
|
|
15
|
+
- **`/mindforge:learn` crashed on every skill that scored high enough to register.**
|
|
16
|
+
`bin/skills-builder/learn-cli.js` called `skill-registrar.js`'s `register()` with two
|
|
17
|
+
positional string arguments (`skillPath`, `'project'`); `register()` destructures a
|
|
18
|
+
single options object, so every call threw inside it, silently swallowed by the CLI's
|
|
19
|
+
generic catch. A validly-generated `SKILL.md` never reached `MANIFEST.md`, and the CLI
|
|
20
|
+
reported a bare `โ Error`. Fixed the call site to pass `{ skillName, skillPath, tier,
|
|
21
|
+
qualityScore, sourceType, source }`, matching `register()`'s real signature.
|
|
22
|
+
|
|
23
|
+
- **`bin/browser/browser-daemon.js` printed its own bearer token to stdout** (captured
|
|
24
|
+
verbatim into the persistent `.planning/browser-daemon.log` by `daemon-manager.js`),
|
|
25
|
+
and gated only `/evaluate` โ `/navigate`, `/click`, `/type`, and `/screenshot` had no
|
|
26
|
+
auth check at all. The idle-timeout path also called `process.exit(0)` directly,
|
|
27
|
+
bypassing the token-file cleanup in `shutdown()`. Fixed all three: the startup log now
|
|
28
|
+
prints only the token's file path, the auth check runs once before dispatch and covers
|
|
29
|
+
every route but `/status`, and the idle path calls the real `shutdown()`.
|
|
30
|
+
|
|
31
|
+
**A test with a blind spot for the exact bug it exists to catch**
|
|
32
|
+
|
|
33
|
+
- `tests/sdk-exports.test.js` guards against any tracked file instructing
|
|
34
|
+
`require('@mindforge/sdk')` โ the unpublished, wrong package name (`sdk/package.json`
|
|
35
|
+
publishes as `mindforge-sdk`). Its scan used `git ls-files -z '*.md' '*.ts'`, which
|
|
36
|
+
cannot match `.js` files โ so it did not, and could not, catch the live occurrence in
|
|
37
|
+
`examples/sdk-integration/index.js`. Fixed both: the import, and the pathspec (now also
|
|
38
|
+
`*.js`/`*.mjs`/`*.cjs`, with `tests/` added to the same "records, not instructions"
|
|
39
|
+
allowlist as `changelogs/`, since this file's own `WRONG` string literal would otherwise
|
|
40
|
+
self-flag).
|
|
41
|
+
|
|
42
|
+
**A dashboard that rendered success while showing nothing**
|
|
43
|
+
|
|
44
|
+
- Three more panels in `bin/dashboard/frontend/app.js` read response fields their real
|
|
45
|
+
backing functions in `metrics-aggregator.js` have never produced โ the same bug class
|
|
46
|
+
already fixed once for the avg-quality tile, left unaddressed here. `refreshMemory()`
|
|
47
|
+
read `data.graph`/`data.count`; the real shape is `{ entries, total }`. `refreshTeam()`
|
|
48
|
+
called `.map()` on the whole response object; the real shape is `{ active, conflicts }`
|
|
49
|
+
with `email`/`last_seen`/`current_task` fields, not `user`/`action`/`timestamp`.
|
|
50
|
+
`drawCharts()` read `state.costs`/`state.quality`, fields `/api/metrics` never returns;
|
|
51
|
+
the real per-session series is `state.sessions[].cost_usd` /
|
|
52
|
+
`state.sessions[].quality_score`. All three failed silently behind an empty `catch`, so
|
|
53
|
+
the panels looked idle rather than broken. Fixed to read the real shapes.
|
|
54
|
+
|
|
55
|
+
**Two shipped documents that stated the opposite of the code**
|
|
56
|
+
|
|
57
|
+
- `SECURITY.md` claimed `AUDIT.jsonl` "auto-archives beyond 5000 lines with gzip
|
|
58
|
+
compression" โ that rotation mechanism was removed in an earlier release specifically
|
|
59
|
+
because truncating the file broke the hash chain (it orphans `previous_hash` pointers to
|
|
60
|
+
archived entries). The log grows unbounded by design; the doc now says so.
|
|
61
|
+
- `docs/security/SECURITY.md` had drifted into a second, independent copy of this policy
|
|
62
|
+
with a `5.x.x`/`4.x.x`/`< 4.0.0` support table โ years behind the real `11.x` line the
|
|
63
|
+
root `/SECURITY.md` (the canonical file) documents. Replaced with a pointer to the root
|
|
64
|
+
file so this can't re-drift.
|
|
65
|
+
|
|
66
|
+
**A stale Homebrew formula**
|
|
67
|
+
|
|
68
|
+
- `Formula/mindforge.rb` was pinned to `11.9.3` (url, sha256, and the version-assertion
|
|
69
|
+
test) โ two releases behind, so `brew install mindforge` installed an old build with
|
|
70
|
+
none of 11.9.4/11.9.5's fixes. Re-pinned to the real published `11.9.5` tarball with its
|
|
71
|
+
actual sha256 (fetched and hashed directly, not carried over). This is the same drift
|
|
72
|
+
class the project has hit twice before (11.9.2 shipped with this file and `Dockerfile`
|
|
73
|
+
four releases behind); `Formula/mindforge.rb` will lag one release again until
|
|
74
|
+
`node scripts/sync-version.js --fetch-sha` runs after this version publishes โ expected,
|
|
75
|
+
not a regression.
|
|
76
|
+
|
|
77
|
+
### Changed โ a documentation honesty pass
|
|
78
|
+
|
|
79
|
+
The following describe MindForge's own PQAS (post-quantum crypto), ZTAI (Zero-Trust
|
|
80
|
+
Agentic Identity), and "Pillar"-numbered subsystems as live, unconditional security
|
|
81
|
+
guarantees. They are not: `bin/governance/quantum-crypto.js` and
|
|
82
|
+
`bin/governance/ztai-manager.js` self-label these SIMULATED and gate them off the live
|
|
83
|
+
trust path by default (`SECURITY_TIER_3_SIMULATED = true`), and `SwarmController` /
|
|
84
|
+
`PersonaFactory` / `WaveExecutor` are role names in markdown specs with no backing file โ
|
|
85
|
+
a distinction this repo's own `.claude/CLAUDE.md` already draws, just not everywhere yet.
|
|
86
|
+
Rewrote each to match the same "measured, not asserted" tone already used in
|
|
87
|
+
`docs/faq.md` and `docs/troubleshooting.md` and the root README's *What is actually
|
|
88
|
+
enforced* section:
|
|
89
|
+
|
|
90
|
+
`docs/usp-features.md`, `CODEBASE-MAP.md`, `docs/architecture/README.md`,
|
|
91
|
+
`docs/CAPABILITIES-MANIFEST.md`, `docs/governance-guide.md`,
|
|
92
|
+
`docs/MIND-FORGE-REFERENCE-V6.md`, `docs/INTELLIGENCE-MESH.md`, `docs/PERSONAS.md`,
|
|
93
|
+
`docs/security/threat-model.md`, `docs/security/penetration-test-results.md` (the latter
|
|
94
|
+
two now banner-marked as scoped to an earlier, materially smaller predecessor system, not
|
|
95
|
+
a current assessment โ no new pentest content was fabricated to replace them).
|
|
96
|
+
|
|
97
|
+
**Six reference docs (`docs/registry/*.md`) were stuck at v11.3.1** (six releases behind)
|
|
98
|
+
with command/skill/persona/subagent counts off by 2โ9x against the live filesystem, and
|
|
99
|
+
listed 14+ slash commands with no backing file (`/mindforge:quantum-verify`,
|
|
100
|
+
`/mindforge:hindsight`, `/mindforge:harvest`, `/mindforge:self-heal`,
|
|
101
|
+
`/mindforge:swarm-execution`, `/mindforge:identity`, and others) โ each individually
|
|
102
|
+
re-verified against `.claude/commands/mindforge/` before being removed or reworded.
|
|
103
|
+
Updated all six to the real, live-verified counts (221 commands, 232+123 skills, 217
|
|
104
|
+
personas, 164 subagents) and pointed each at `docs/commands-reference.md` as the
|
|
105
|
+
canonical source, so staleness here is lower-stakes going forward.
|
|
106
|
+
|
|
107
|
+
Also corrected: `docs/plugin-installation.md` and `docs/reference(s)/commands.md` (stale
|
|
108
|
+
hand-typed counts), `docs/References/{decimal-phase-calculation,git-integration,
|
|
109
|
+
git-planning-commit}.md` (wrong CLI path โ real tool is `.agent/bin/mindforge-tools.cjs`,
|
|
110
|
+
not `.agent/mindforge/bin/...`), `docs/References/model-profile-resolution.md` (dead
|
|
111
|
+
`@`-include path), and a fabricated `"Claude 4.5 Opus"` model-name literal in two docs
|
|
112
|
+
(no such string exists anywhere in `bin/`) replaced with the real "highest-capability
|
|
113
|
+
tier configured" language. Deleted two orphaned scratch files that were never real
|
|
114
|
+
documentation: `docs/testing-current-version.md` (a pre-release scratch file hardcoding
|
|
115
|
+
a personal machine path) and `docs/commands-skills/DISCOVERED_SKILLS.md` (stale output
|
|
116
|
+
from an unrelated external tool referencing a directory that doesn't exist in this repo).
|
|
117
|
+
|
|
118
|
+
### Changed โ discoverability
|
|
119
|
+
|
|
120
|
+
- Root `README.md`: npm-version/downloads/license/Node-version badges, an "at a glance"
|
|
121
|
+
capability summary with real counts, and jump links to the existing sections.
|
|
122
|
+
- `package.json`: `description` rewritten from marketing language ("Sovereign Agentic
|
|
123
|
+
Intelligence Framework... Production-Hardened... (v11)") to concrete, keyword-bearing
|
|
124
|
+
text; added `ai-agents`, `llm-tools`, `developer-tools`, `mcp-server` to `keywords`.
|
|
125
|
+
|
|
126
|
+
### Verified
|
|
127
|
+
|
|
128
|
+
- `npm test`: 137 passed, 0 failed, 3 env-dependent skips (`browser.test.js`,
|
|
129
|
+
`browser-daemon-auth-live.test.js`, `sre-integration.test.js` โ all three require a
|
|
130
|
+
Chromium daemon/display or git worktree support this sandbox does not have). Verified
|
|
131
|
+
clean through the real pre-commit hook, not just a standalone run.
|
|
132
|
+
- `node scripts/sync-version.js`: 27 channels synced; `Formula/mindforge.rb` correctly
|
|
133
|
+
deferred (tarball doesn't exist yet); `plugins/mindforge/.claude-plugin/plugin.json` and
|
|
134
|
+
`plugins/mindforge/mcp/dist/index.js` rebuilt.
|
|
135
|
+
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [11.9.7] โ 2026-09-20 โ The install banner stops contradicting itself
|
|
4
|
+
|
|
5
|
+
Patch release. Found by actually running the documented install command
|
|
6
|
+
(`npx mindforge-cc@latest --claude --local`) in a clean project instead of stopping at
|
|
7
|
+
`--version` โ the check that should have caught the v11.9.6 regressions below before they
|
|
8
|
+
shipped.
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
**Two real bugs in the install banner itself, both live in every v11.9.6 install**
|
|
13
|
+
|
|
14
|
+
- **Version self-contradiction.** The top banner (`bin/wizard/theme.js`'s
|
|
15
|
+
`printBrandManifest()`) hardcoded `SOVEREIGN INTELLIGENCE v8.1.1`, while the install
|
|
16
|
+
activation line two screens later (`bin/installer-core.js`) prints `v8.2.0` for the same
|
|
17
|
+
subsystem โ one command, two version numbers. Standardized on `v8.2.0`.
|
|
18
|
+
- **False "Enabled" claim.** The same top banner said `PQAS & Proactive Homing Enabled`
|
|
19
|
+
unconditionally, directly contradicting the accurate disclosure a few lines later in the
|
|
20
|
+
same run: "available in simulated/experimental mode (inactive by default)". Changed to
|
|
21
|
+
`PQAS (simulated) & Proactive Homing`. `bin/engine/learning-manager.js` carried the
|
|
22
|
+
identical string; fixed there too.
|
|
23
|
+
- **Dead docs link.** The banner's `Docs: https://docs.mindforge.cc` fails TLS handshake โ
|
|
24
|
+
DNS resolves but no site was ever deployed there. Repointed to the real, verified-live
|
|
25
|
+
`https://github.com/sairam0424/MindForge#documentation`.
|
|
26
|
+
|
|
27
|
+
**Doc regression from the v11.9.6 pass, self-inflicted**
|
|
28
|
+
|
|
29
|
+
- The persona-count reconciliation in v11.9.6 used a naive
|
|
30
|
+
`find .mindforge/personas -type f | wc -l` (218), which silently swept in
|
|
31
|
+
`swarm-templates.json` and `overrides/README.md` โ neither is a persona. The installer's
|
|
32
|
+
own `collectManifestStats()` counts top-level `.md` files only: **216**, matching the
|
|
33
|
+
preserved 2026-08-16 codebase-index snapshot. Reverted `README.md`,
|
|
34
|
+
`docs/CAPABILITIES-MANIFEST.md`, `docs/user-guide.md`, `docs/PERSONAS.md`,
|
|
35
|
+
`docs/registry/PERSONAS.md`, and `docs/registry/README.md`.
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
# MindForge
|
|
1
|
+
# MindForge โ Common Commands Quick Reference
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
This page is a curated subset for quick lookup, not an exhaustive list. MindForge ships
|
|
4
|
+
221 slash commands total โ see [docs/commands-reference.md](../commands-reference.md) for
|
|
5
|
+
the complete, verified list.
|
|
6
|
+
|
|
7
|
+
## Commonly used commands
|
|
4
8
|
|
|
5
9
|
### Lifecycle commands (core workflow)
|
|
6
10
|
|
|
@@ -95,13 +99,14 @@
|
|
|
95
99
|
|---|---|---|---|
|
|
96
100
|
| `/mindforge:help` | `help` | Show all available commands and current project status | |
|
|
97
101
|
|
|
98
|
-
## Command interface contract
|
|
102
|
+
## Command interface contract
|
|
99
103
|
|
|
100
|
-
|
|
101
|
-
-
|
|
102
|
-
-
|
|
104
|
+
The following are part of the stable interface:
|
|
105
|
+
- Existing command names are not renamed without a MAJOR bump; new commands may land in any release
|
|
106
|
+
- Documented flags are not removed without a MAJOR bump
|
|
103
107
|
- HANDOFF.json and AUDIT.jsonl schemas (additions: MINOR, removals: MAJOR)
|
|
104
|
-
- All 10 core skill `name:` values and trigger lists
|
|
105
108
|
- SDK exported types and functions
|
|
106
109
|
|
|
107
|
-
|
|
110
|
+
Note: `.planning/decisions/ADR-020.md` (previously cited here as the stability contract source)
|
|
111
|
+
is a content-free placeholder stub as of this writing โ treat this page, not that ADR, as the
|
|
112
|
+
source of truth for the interface contract until a real ADR replaces it.
|
|
@@ -6,7 +6,7 @@ Calculate the next decimal phase number for urgent insertions.
|
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
8
|
# Get next decimal phase after phase 6
|
|
9
|
-
node ".agent/
|
|
9
|
+
node ".agent/bin/mindforge-tools.cjs" phase next-decimal 6
|
|
10
10
|
```
|
|
11
11
|
|
|
12
12
|
Output:
|
|
@@ -32,13 +32,13 @@ With existing decimals:
|
|
|
32
32
|
## Extract Values
|
|
33
33
|
|
|
34
34
|
```bash
|
|
35
|
-
DECIMAL_PHASE=$(node ".agent/
|
|
36
|
-
BASE_PHASE=$(node ".agent/
|
|
35
|
+
DECIMAL_PHASE=$(node ".agent/bin/mindforge-tools.cjs" phase next-decimal "${AFTER_PHASE}" --pick next)
|
|
36
|
+
BASE_PHASE=$(node ".agent/bin/mindforge-tools.cjs" phase next-decimal "${AFTER_PHASE}" --pick base_phase)
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
Or with --raw flag:
|
|
40
40
|
```bash
|
|
41
|
-
DECIMAL_PHASE=$(node ".agent/
|
|
41
|
+
DECIMAL_PHASE=$(node ".agent/bin/mindforge-tools.cjs" phase next-decimal "${AFTER_PHASE}" --raw)
|
|
42
42
|
# Returns just: 06.1
|
|
43
43
|
```
|
|
44
44
|
|
|
@@ -56,7 +56,7 @@ DECIMAL_PHASE=$(node ".agent/mindforge/bin/mindforge-tools.cjs" phase next-decim
|
|
|
56
56
|
Decimal phase directories use the full decimal number:
|
|
57
57
|
|
|
58
58
|
```bash
|
|
59
|
-
SLUG=$(node ".agent/
|
|
59
|
+
SLUG=$(node ".agent/bin/mindforge-tools.cjs" generate-slug "$DESCRIPTION" --raw)
|
|
60
60
|
PHASE_DIR=".planning/phases/${DECIMAL_PHASE}-${SLUG}"
|
|
61
61
|
mkdir -p "$PHASE_DIR"
|
|
62
62
|
```
|
|
@@ -51,7 +51,7 @@ Phases:
|
|
|
51
51
|
What to commit:
|
|
52
52
|
|
|
53
53
|
```bash
|
|
54
|
-
node ".agent/
|
|
54
|
+
node ".agent/bin/mindforge-tools.cjs" commit "docs: initialize [project-name] ([N] phases)" --files .planning/
|
|
55
55
|
```
|
|
56
56
|
|
|
57
57
|
</format>
|
|
@@ -133,7 +133,7 @@ SUMMARY: .planning/phases/XX-name/{phase}-{plan}-SUMMARY.md
|
|
|
133
133
|
What to commit:
|
|
134
134
|
|
|
135
135
|
```bash
|
|
136
|
-
node ".agent/
|
|
136
|
+
node ".agent/bin/mindforge-tools.cjs" commit "docs({phase}-{plan}): complete [plan-name] plan" --files .planning/phases/XX-name/{phase}-{plan}-PLAN.md .planning/phases/XX-name/{phase}-{plan}-SUMMARY.md .planning/STATE.md .planning/ROADMAP.md
|
|
137
137
|
```
|
|
138
138
|
|
|
139
139
|
**Note:** Code files NOT included - already committed per-task.
|
|
@@ -153,7 +153,7 @@ Current: [task name]
|
|
|
153
153
|
What to commit:
|
|
154
154
|
|
|
155
155
|
```bash
|
|
156
|
-
node ".agent/
|
|
156
|
+
node ".agent/bin/mindforge-tools.cjs" commit "wip: [phase-name] paused at task [X]/[Y]" --files .planning/
|
|
157
157
|
```
|
|
158
158
|
|
|
159
159
|
</format>
|
|
@@ -284,7 +284,7 @@ Set `commit_docs: false` so planning docs stay local and are not committed to an
|
|
|
284
284
|
Instead of the standard `commit` command, use `commit-to-subrepo` when `sub_repos` is configured:
|
|
285
285
|
|
|
286
286
|
```bash
|
|
287
|
-
node .agent/
|
|
287
|
+
node .agent/bin/mindforge-tools.cjs commit-to-subrepo "feat(02-01): add user API" \
|
|
288
288
|
--files backend/src/api/users.ts backend/src/types/user.ts frontend/src/components/UserForm.tsx
|
|
289
289
|
```
|
|
290
290
|
|
|
@@ -7,7 +7,7 @@ Commit planning artifacts using MindForge-tools CLI, which automatically checks
|
|
|
7
7
|
Always use `mindforge-tools.cjs commit` for `.planning/` files โ it handles `commit_docs` and gitignore checks automatically:
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
node ".agent/
|
|
10
|
+
node ".agent/bin/mindforge-tools.cjs" commit "docs({scope}): {description}" --files .planning/STATE.md .planning/ROADMAP.md
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
The CLI will return `skipped` (with reason) if `commit_docs` is `false` or `.planning/` is gitignored. No manual conditional checks needed.
|
|
@@ -17,7 +17,7 @@ The CLI will return `skipped` (with reason) if `commit_docs` is `false` or `.pla
|
|
|
17
17
|
To fold `.planning/` file changes into the previous commit:
|
|
18
18
|
|
|
19
19
|
```bash
|
|
20
|
-
node ".agent/
|
|
20
|
+
node ".agent/bin/mindforge-tools.cjs" commit "" --files .planning/codebase/*.md --amend
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
## Commit Message Patterns
|
|
@@ -12,7 +12,7 @@ Default: `balanced` if not set or config missing.
|
|
|
12
12
|
|
|
13
13
|
## Lookup Table
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
@docs/References/model-profiles.md
|
|
16
16
|
|
|
17
17
|
Look up MindForge in the table for the resolved profile. Pass the model parameter to Task calls:
|
|
18
18
|
|
package/docs/faq.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# MindForge FAQ (v11.9.
|
|
1
|
+
# MindForge FAQ (v11.9.7)
|
|
2
2
|
|
|
3
3
|
## Is MindForge tied to Claude only?
|
|
4
4
|
No. MindForge supports Claude Code and Antigravity. Install with `--claude`,
|
|
@@ -55,7 +55,7 @@ The `deep-research` workflow was removed before the v11.8.0 release (the superpo
|
|
|
55
55
|
## Version & Stability
|
|
56
56
|
|
|
57
57
|
**Q: What version is current?**
|
|
58
|
-
v11.9.
|
|
58
|
+
v11.9.7 โ verify with `node bin/mindforge-cli.js --version`
|
|
59
59
|
|
|
60
60
|
**Q: Is v11.9.0 production-stable?**
|
|
61
61
|
Yes. The IQ200 deep-audit (258 discrete checks across 14 dimensions) shows 258/258 passing. 0 CVEs, 0 test failures, 0 ESLint errors, 0 TypeScript errors.
|
|
@@ -80,8 +80,9 @@ Spawn dispatch is not yet implemented in v11.9.0. Use `/mindforge:auto` or `/min
|
|
|
80
80
|
Tier-3 trust uses in-process key simulation in v11.9.0 โ this is intentional and safe. `SECURITY_TIER_3_SIMULATED = true` is the documented v11.x behavior. Hardware TPM/HSM is planned for v12.x.
|
|
81
81
|
|
|
82
82
|
**Q: What is the test coverage?**
|
|
83
|
-
|
|
84
|
-
daemon, `sre-integration.test.js` needs git
|
|
83
|
+
140 test files: 137 pass, 0 failures, 3 env-dependent skips (`browser.test.js` and
|
|
84
|
+
`browser-daemon-auth-live.test.js` need a Chromium daemon, `sre-integration.test.js` needs git
|
|
85
|
+
worktree support and a clean tree).
|
|
85
86
|
|
|
86
87
|
The enforced floor is **30% lines**, gated in CI by the `mindforge-quality` job
|
|
87
88
|
(`npx c8 --check-coverage --lines 30 --exclude 'plugins/**' --exclude 'mcp-server/dist/**'`).
|
package/docs/getting-started.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# MindForge โ Getting Started (v11.9.
|
|
1
|
+
# MindForge โ Getting Started (v11.9.7)
|
|
2
2
|
|
|
3
3
|
This guide gets you from zero to a working MindForge project in under five minutes.
|
|
4
4
|
|
|
@@ -48,7 +48,7 @@ Prefer just a slice (e.g. Python agents)? Install a focused pack like `mindforge
|
|
|
48
48
|
|
|
49
49
|
### 3. Standalone MCP server
|
|
50
50
|
|
|
51
|
-
Run the MindForge MCP server (`mindforge-mcp-server`) over stdio โ it exposes
|
|
51
|
+
Run the MindForge MCP server (`mindforge-mcp-server`) over stdio โ it exposes 8 tools (6 read-only, 1 guarded write, plus 1 guarded browse proxy): `mindforge_health`, `mindforge_status`, `mindforge_memory_query`, `mindforge_memory_stats`, `mindforge_memory_find_related`, `mindforge_audit_log`, `mindforge_memory_remember`, and `mindforge_browse`.
|
|
52
52
|
|
|
53
53
|
```bash
|
|
54
54
|
claude mcp add mindforge -- npx -y mindforge-mcp-server
|
|
@@ -114,7 +114,7 @@ Or use slash commands: `/mindforge:wf-code-audit`
|
|
|
114
114
|
## Your First 5 Minutes with MindForge
|
|
115
115
|
|
|
116
116
|
1. **Verify install:** `node bin/mindforge-cli.js health`
|
|
117
|
-
2. **Check version:** `node bin/mindforge-cli.js --version` (should print `11.9.
|
|
117
|
+
2. **Check version:** `node bin/mindforge-cli.js --version` (should print `11.9.7`)
|
|
118
118
|
3. **List workflows:** `node bin/mindforge-cli.js workflow list`
|
|
119
119
|
4. **Run first slash command:** Open Claude Code โ `/mindforge:status`
|
|
120
120
|
5. **Onboard your codebase:** Open Claude Code โ `/mindforge:wf-onboard-codebase`
|
package/docs/sdk-reference.md
CHANGED
|
@@ -14,11 +14,11 @@ import {
|
|
|
14
14
|
} from 'mindforge-sdk';
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
-
Current SDK version: `11.9.
|
|
17
|
+
Current SDK version: `11.9.7`
|
|
18
18
|
|
|
19
19
|
---
|
|
20
20
|
|
|
21
|
-
## SDK Exports (v11.9.
|
|
21
|
+
## SDK Exports (v11.9.7)
|
|
22
22
|
|
|
23
23
|
```javascript
|
|
24
24
|
const {
|
|
@@ -28,7 +28,7 @@ const {
|
|
|
28
28
|
commands, // Command registry
|
|
29
29
|
batch, // Batch execution
|
|
30
30
|
MindForgeMemory, // Memory interface
|
|
31
|
-
VERSION // '11.9.
|
|
31
|
+
VERSION // '11.9.7'
|
|
32
32
|
} = require('mindforge-sdk');
|
|
33
33
|
// or: import { MindForgeClient, VERSION } from 'mindforge-sdk';
|
|
34
34
|
```
|
package/docs/troubleshooting.md
CHANGED
package/docs/user-guide.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
# MindForge User Guide (v11.9.
|
|
1
|
+
# MindForge User Guide (v11.9.7)
|
|
2
2
|
|
|
3
3
|
This guide gets you from install to productive, with the minimum needed to run MindForge in a real project.
|
|
4
4
|
|
|
5
|
-
> **v11.9.
|
|
5
|
+
> **v11.9.7 Stats:** 35 workflows ยท 221 slash commands ยท 232 engine skills ยท 216 personas ยท 0 CVEs ยท 258/258 IQ200 checks passing
|
|
6
6
|
|
|
7
7
|
## Prerequisites
|
|
8
8
|
|
|
@@ -44,7 +44,7 @@ mindforge health # Verify project integrity
|
|
|
44
44
|
mindforge security-scan # Run security checks
|
|
45
45
|
mindforge headless # Run agent in non-interactive mode
|
|
46
46
|
mindforge --verbose ... # Enable verbose output for debugging
|
|
47
|
-
mindforge --version # Print installed version (e.g. 11.9.
|
|
47
|
+
mindforge --version # Print installed version (e.g. 11.9.7) and exit 0
|
|
48
48
|
```
|
|
49
49
|
|
|
50
50
|
Use `--verbose` (or `-v`) on any command for detailed diagnostic output. Use `--version` (or `-V`) to print the installed version and exit.
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mindforge-cc",
|
|
3
|
-
"version": "11.9.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "11.9.7",
|
|
4
|
+
"description": "Agentic intelligence framework for Claude Code and Antigravity: slash commands, subagents, skills, hooks, governance, memory, and cost-aware model routing for AI-driven development.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"mindforge-cc": "bin/install.js",
|
|
7
7
|
"mindforge": "bin/mindforge-cli.js"
|
|
@@ -85,7 +85,10 @@
|
|
|
85
85
|
"wasm-sqlite",
|
|
86
86
|
"zero-native-deps",
|
|
87
87
|
"agent-orchestration",
|
|
88
|
-
"
|
|
88
|
+
"ai-agents",
|
|
89
|
+
"llm-tools",
|
|
90
|
+
"developer-tools",
|
|
91
|
+
"mcp-server"
|
|
89
92
|
],
|
|
90
93
|
"author": "sairamugge",
|
|
91
94
|
"license": "MIT",
|