mindforge-cc 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agent/CLAUDE.md +462 -0
- package/.agent/forge/help.md +7 -0
- package/.agent/forge/init-project.md +32 -0
- package/.agent/forge/plan-phase.md +30 -0
- package/.agent/mindforge/approve.md +18 -0
- package/.agent/mindforge/audit.md +30 -0
- package/.agent/mindforge/benchmark.md +33 -0
- package/.agent/mindforge/complete-milestone.md +18 -0
- package/.agent/mindforge/debug.md +126 -0
- package/.agent/mindforge/discuss-phase.md +138 -0
- package/.agent/mindforge/execute-phase.md +165 -0
- package/.agent/mindforge/health.md +21 -0
- package/.agent/mindforge/help.md +23 -0
- package/.agent/mindforge/init-org.md +131 -0
- package/.agent/mindforge/init-project.md +155 -0
- package/.agent/mindforge/install-skill.md +15 -0
- package/.agent/mindforge/map-codebase.md +298 -0
- package/.agent/mindforge/metrics.md +22 -0
- package/.agent/mindforge/migrate.md +40 -0
- package/.agent/mindforge/milestone.md +12 -0
- package/.agent/mindforge/next.md +105 -0
- package/.agent/mindforge/plan-phase.md +125 -0
- package/.agent/mindforge/plugins.md +40 -0
- package/.agent/mindforge/pr-review.md +41 -0
- package/.agent/mindforge/profile-team.md +23 -0
- package/.agent/mindforge/publish-skill.md +19 -0
- package/.agent/mindforge/quick.md +135 -0
- package/.agent/mindforge/release.md +10 -0
- package/.agent/mindforge/retrospective.md +26 -0
- package/.agent/mindforge/review.md +157 -0
- package/.agent/mindforge/security-scan.md +233 -0
- package/.agent/mindforge/ship.md +100 -0
- package/.agent/mindforge/skills.md +141 -0
- package/.agent/mindforge/status.md +104 -0
- package/.agent/mindforge/sync-confluence.md +11 -0
- package/.agent/mindforge/sync-jira.md +12 -0
- package/.agent/mindforge/tokens.md +8 -0
- package/.agent/mindforge/update.md +42 -0
- package/.agent/mindforge/verify-phase.md +62 -0
- package/.agent/mindforge/workspace.md +29 -0
- package/.claude/CLAUDE.md +462 -0
- package/.claude/commands/forge/help.md +7 -0
- package/.claude/commands/forge/init-project.md +32 -0
- package/.claude/commands/forge/plan-phase.md +30 -0
- package/.claude/commands/mindforge/approve.md +18 -0
- package/.claude/commands/mindforge/audit.md +30 -0
- package/.claude/commands/mindforge/benchmark.md +33 -0
- package/.claude/commands/mindforge/complete-milestone.md +18 -0
- package/.claude/commands/mindforge/debug.md +126 -0
- package/.claude/commands/mindforge/discuss-phase.md +138 -0
- package/.claude/commands/mindforge/execute-phase.md +165 -0
- package/.claude/commands/mindforge/health.md +21 -0
- package/.claude/commands/mindforge/help.md +23 -0
- package/.claude/commands/mindforge/init-org.md +131 -0
- package/.claude/commands/mindforge/init-project.md +155 -0
- package/.claude/commands/mindforge/install-skill.md +15 -0
- package/.claude/commands/mindforge/map-codebase.md +298 -0
- package/.claude/commands/mindforge/metrics.md +22 -0
- package/.claude/commands/mindforge/migrate.md +40 -0
- package/.claude/commands/mindforge/milestone.md +12 -0
- package/.claude/commands/mindforge/next.md +105 -0
- package/.claude/commands/mindforge/plan-phase.md +125 -0
- package/.claude/commands/mindforge/plugins.md +40 -0
- package/.claude/commands/mindforge/pr-review.md +41 -0
- package/.claude/commands/mindforge/profile-team.md +23 -0
- package/.claude/commands/mindforge/publish-skill.md +19 -0
- package/.claude/commands/mindforge/quick.md +135 -0
- package/.claude/commands/mindforge/release.md +10 -0
- package/.claude/commands/mindforge/retrospective.md +26 -0
- package/.claude/commands/mindforge/review.md +157 -0
- package/.claude/commands/mindforge/security-scan.md +233 -0
- package/.claude/commands/mindforge/ship.md +100 -0
- package/.claude/commands/mindforge/skills.md +141 -0
- package/.claude/commands/mindforge/status.md +104 -0
- package/.claude/commands/mindforge/sync-confluence.md +11 -0
- package/.claude/commands/mindforge/sync-jira.md +12 -0
- package/.claude/commands/mindforge/tokens.md +8 -0
- package/.claude/commands/mindforge/update.md +42 -0
- package/.claude/commands/mindforge/verify-phase.md +62 -0
- package/.claude/commands/mindforge/workspace.md +29 -0
- package/.forge/org/CONVENTIONS.md +0 -0
- package/.forge/org/ORG.md +0 -0
- package/.forge/org/SECURITY.md +0 -0
- package/.forge/org/TOOLS.md +0 -0
- package/.forge/personas/analyst.md +0 -0
- package/.forge/personas/architect.md +0 -0
- package/.forge/personas/debug-specialist.md +0 -0
- package/.forge/personas/developer.md +26 -0
- package/.forge/personas/qa-engineer.md +0 -0
- package/.forge/personas/release-manager.md +0 -0
- package/.forge/personas/security-reviewer.md +33 -0
- package/.forge/personas/tech-writer.md +0 -0
- package/.forge/skills/api-design/SKILL.md +0 -0
- package/.forge/skills/code-quality/SKILL.md +0 -0
- package/.forge/skills/documentation/SKILL.md +0 -0
- package/.forge/skills/security-review/SKILL.md +23 -0
- package/.forge/skills/testing-standards/SKILL.md +27 -0
- package/.github/workflows/mindforge-ci.yml +224 -0
- package/.gitlab-ci-mindforge.yml +18 -0
- package/.mindforge/MINDFORGE-SCHEMA.json +165 -0
- package/.mindforge/audit/AUDIT-SCHEMA.md +451 -0
- package/.mindforge/ci/ci-config-schema.md +21 -0
- package/.mindforge/ci/ci-mode.md +179 -0
- package/.mindforge/ci/github-actions-adapter.md +224 -0
- package/.mindforge/ci/gitlab-ci-adapter.md +31 -0
- package/.mindforge/ci/jenkins-adapter.md +44 -0
- package/.mindforge/distribution/registry-client.md +166 -0
- package/.mindforge/distribution/registry-schema.md +96 -0
- package/.mindforge/distribution/skill-publisher.md +44 -0
- package/.mindforge/distribution/skill-validator.md +74 -0
- package/.mindforge/engine/compaction-protocol.md +182 -0
- package/.mindforge/engine/context-injector.md +128 -0
- package/.mindforge/engine/dependency-parser.md +113 -0
- package/.mindforge/engine/skills/conflict-resolver.md +69 -0
- package/.mindforge/engine/skills/loader.md +184 -0
- package/.mindforge/engine/skills/registry.md +98 -0
- package/.mindforge/engine/skills/versioning.md +75 -0
- package/.mindforge/engine/verification-pipeline.md +111 -0
- package/.mindforge/engine/wave-executor.md +235 -0
- package/.mindforge/governance/GOVERNANCE-CONFIG.md +17 -0
- package/.mindforge/governance/approval-workflow.md +37 -0
- package/.mindforge/governance/change-classifier.md +63 -0
- package/.mindforge/governance/compliance-gates.md +31 -0
- package/.mindforge/integrations/confluence.md +27 -0
- package/.mindforge/integrations/connection-manager.md +163 -0
- package/.mindforge/integrations/github.md +25 -0
- package/.mindforge/integrations/gitlab.md +13 -0
- package/.mindforge/integrations/jira.md +102 -0
- package/.mindforge/integrations/slack.md +41 -0
- package/.mindforge/intelligence/antipattern-detector.md +75 -0
- package/.mindforge/intelligence/difficulty-scorer.md +55 -0
- package/.mindforge/intelligence/health-engine.md +208 -0
- package/.mindforge/intelligence/skill-gap-analyser.md +40 -0
- package/.mindforge/intelligence/smart-compaction.md +71 -0
- package/.mindforge/metrics/METRICS-SCHEMA.md +42 -0
- package/.mindforge/metrics/quality-tracker.md +32 -0
- package/.mindforge/monorepo/cross-package-planner.md +114 -0
- package/.mindforge/monorepo/dependency-graph-builder.md +32 -0
- package/.mindforge/monorepo/workspace-detector.md +129 -0
- package/.mindforge/org/CONVENTIONS.md +62 -0
- package/.mindforge/org/ORG.md +51 -0
- package/.mindforge/org/SECURITY.md +50 -0
- package/.mindforge/org/TOOLS.md +53 -0
- package/.mindforge/org/integrations/INTEGRATIONS-CONFIG.md +58 -0
- package/.mindforge/org/skills/MANIFEST.md +38 -0
- package/.mindforge/personas/analyst.md +52 -0
- package/.mindforge/personas/architect.md +75 -0
- package/.mindforge/personas/debug-specialist.md +52 -0
- package/.mindforge/personas/developer.md +85 -0
- package/.mindforge/personas/overrides/README.md +85 -0
- package/.mindforge/personas/qa-engineer.md +61 -0
- package/.mindforge/personas/release-manager.md +76 -0
- package/.mindforge/personas/security-reviewer.md +91 -0
- package/.mindforge/personas/tech-writer.md +51 -0
- package/.mindforge/plugins/PLUGINS-MANIFEST.md +23 -0
- package/.mindforge/plugins/plugin-loader.md +93 -0
- package/.mindforge/plugins/plugin-registry.md +44 -0
- package/.mindforge/plugins/plugin-schema.md +68 -0
- package/.mindforge/pr-review/ai-reviewer.md +266 -0
- package/.mindforge/pr-review/finding-formatter.md +46 -0
- package/.mindforge/pr-review/review-prompt-templates.md +44 -0
- package/.mindforge/production/compatibility-layer.md +39 -0
- package/.mindforge/production/migration-engine.md +52 -0
- package/.mindforge/production/production-checklist.md +165 -0
- package/.mindforge/production/token-optimiser.md +68 -0
- package/.mindforge/skills/accessibility/SKILL.md +106 -0
- package/.mindforge/skills/api-design/SKILL.md +98 -0
- package/.mindforge/skills/code-quality/SKILL.md +88 -0
- package/.mindforge/skills/data-privacy/SKILL.md +126 -0
- package/.mindforge/skills/database-patterns/SKILL.md +192 -0
- package/.mindforge/skills/documentation/SKILL.md +91 -0
- package/.mindforge/skills/incident-response/SKILL.md +180 -0
- package/.mindforge/skills/performance/SKILL.md +120 -0
- package/.mindforge/skills/security-review/SKILL.md +83 -0
- package/.mindforge/skills/testing-standards/SKILL.md +97 -0
- package/.mindforge/team/TEAM-PROFILE.md +42 -0
- package/.mindforge/team/multi-handoff.md +23 -0
- package/.mindforge/team/profiles/README.md +13 -0
- package/.mindforge/team/session-merger.md +18 -0
- package/.planning/ARCHITECTURE.md +0 -0
- package/.planning/AUDIT.jsonl +0 -0
- package/.planning/HANDOFF.json +28 -0
- package/.planning/PROJECT.md +33 -0
- package/.planning/RELEASE-CHECKLIST.md +68 -0
- package/.planning/REQUIREMENTS.md +0 -0
- package/.planning/ROADMAP.md +0 -0
- package/.planning/STATE.md +31 -0
- package/.planning/approvals/.gitkeep +1 -0
- package/.planning/archive/.gitkeep +1 -0
- package/.planning/audit-archive/.gitkeep +1 -0
- package/.planning/decisions/.gitkeep +0 -0
- package/.planning/decisions/ADR-001-handoff-tracking.md +41 -0
- package/.planning/decisions/ADR-002-markdown-commands.md +46 -0
- package/.planning/decisions/ADR-003-skills-trigger-model.md +37 -0
- package/.planning/decisions/ADR-004-wave-parallelism-model.md +45 -0
- package/.planning/decisions/ADR-005-append-only-audit-log.md +51 -0
- package/.planning/decisions/ADR-006-tiered-skills-system.md +22 -0
- package/.planning/decisions/ADR-007-trigger-keyword-model.md +22 -0
- package/.planning/decisions/ADR-008-just-in-time-skill-loading.md +29 -0
- package/.planning/decisions/ADR-009-enterprise-integration-retry-policy.md +8 -0
- package/.planning/decisions/ADR-010-governance-tier-escalation.md +8 -0
- package/.planning/decisions/ADR-011-multi-developer-handoff-contract.md +8 -0
- package/.planning/decisions/ADR-012-intelligence-feedback-loops.md +19 -0
- package/.planning/decisions/ADR-013-mindforge-md-constitution.md +16 -0
- package/.planning/decisions/ADR-014-metrics-as-signals-not-evaluation.md +15 -0
- package/.planning/decisions/ADR-015-npm-based-skill-registry.md +26 -0
- package/.planning/decisions/ADR-016-ci-exit-code-0-on-timeout.md +27 -0
- package/.planning/decisions/ADR-017-sdk-localhost-only.md +28 -0
- package/.planning/decisions/ADR-018-installer-self-install-detection.md +15 -0
- package/.planning/decisions/ADR-019-self-update-scope-preservation.md +14 -0
- package/.planning/decisions/ADR-020-v1.0.0-stable-interface-contract.md +23 -0
- package/.planning/jira-sync.json +9 -0
- package/.planning/milestones/.gitkeep +1 -0
- package/.planning/phases/day1/REVIEW-DAY1.md +50 -0
- package/.planning/phases/day1/SECURITY-REVIEW-DAY1.md +15 -0
- package/.planning/phases/day2/REVIEW-DAY2.md +521 -0
- package/.planning/phases/day3/REVIEW-DAY3.md +234 -0
- package/.planning/slack-threads.json +6 -0
- package/CHANGELOG.md +175 -0
- package/LICENSE +21 -0
- package/MINDFORGE.md +76 -0
- package/README.md +182 -0
- package/RELEASENOTES.md +41 -0
- package/SECURITY.md +4 -0
- package/bin/install.js +120 -0
- package/bin/installer-core.js +292 -0
- package/bin/migrations/0.1.0-to-0.5.0.js +37 -0
- package/bin/migrations/0.5.0-to-0.6.0.js +17 -0
- package/bin/migrations/0.6.0-to-1.0.0.js +100 -0
- package/bin/migrations/migrate.js +151 -0
- package/bin/migrations/schema-versions.js +64 -0
- package/bin/updater/changelog-fetcher.js +62 -0
- package/bin/updater/self-update.js +169 -0
- package/bin/updater/version-comparator.js +68 -0
- package/bin/validate-config.js +92 -0
- package/bin/wizard/config-generator.js +112 -0
- package/bin/wizard/environment-detector.js +76 -0
- package/bin/wizard/setup-wizard.js +237 -0
- package/docs/Context/Master-Context.md +701 -0
- package/docs/architecture/README.md +35 -0
- package/docs/architecture/decision-records-index.md +26 -0
- package/docs/ci-cd-integration.md +30 -0
- package/docs/ci-quickstart.md +78 -0
- package/docs/commands-reference.md +11 -0
- package/docs/contributing/CONTRIBUTING.md +38 -0
- package/docs/contributing/plugin-authoring.md +50 -0
- package/docs/contributing/skill-authoring.md +41 -0
- package/docs/enterprise-setup.md +25 -0
- package/docs/faq.md +38 -0
- package/docs/getting-started.md +36 -0
- package/docs/governance-guide.md +23 -0
- package/docs/mindforge-md-reference.md +53 -0
- package/docs/monorepo-guide.md +26 -0
- package/docs/persona-customisation.md +56 -0
- package/docs/quick-verify.md +33 -0
- package/docs/reference/audit-events.md +53 -0
- package/docs/reference/commands.md +82 -0
- package/docs/reference/config-reference.md +64 -0
- package/docs/reference/sdk-api.md +48 -0
- package/docs/reference/skills-api.md +57 -0
- package/docs/release-checklist-guide.md +37 -0
- package/docs/requirements.md +29 -0
- package/docs/sdk-reference.md +27 -0
- package/docs/security/SECURITY.md +42 -0
- package/docs/security/penetration-test-results.md +31 -0
- package/docs/security/threat-model.md +142 -0
- package/docs/skills-authoring-guide.md +119 -0
- package/docs/skills-publishing-guide.md +21 -0
- package/docs/team-setup-guide.md +21 -0
- package/docs/troubleshooting.md +119 -0
- package/docs/tutorial.md +195 -0
- package/docs/upgrade.md +44 -0
- package/docs/user-guide.md +131 -0
- package/docs/usp-features.md +214 -0
- package/eslint.config.mjs +31 -0
- package/examples/starter-project/.planning/AUDIT.jsonl +1 -0
- package/examples/starter-project/.planning/HANDOFF.json +23 -0
- package/examples/starter-project/.planning/PROJECT.md +27 -0
- package/examples/starter-project/.planning/STATE.md +10 -0
- package/examples/starter-project/MINDFORGE.md +40 -0
- package/examples/starter-project/README.md +14 -0
- package/implementation-roadmap/day-1-imp/DAY1-HARDEN.md +823 -0
- package/implementation-roadmap/day-1-imp/DAY1-IMPLEMENT.md +2459 -0
- package/implementation-roadmap/day-1-imp/DAY1-REVIEW.md +288 -0
- package/implementation-roadmap/day-2-imp/DAY2-HARDEN.md +954 -0
- package/implementation-roadmap/day-2-imp/DAY2-IMPLEMENT.md +2347 -0
- package/implementation-roadmap/day-2-imp/DAY2-REVIEW.md +422 -0
- package/implementation-roadmap/day-3-imp/DAY3-HARDEN.md +870 -0
- package/implementation-roadmap/day-3-imp/DAY3-IMPLEMENT.md +2798 -0
- package/implementation-roadmap/day-3-imp/DAY3-REVIEW.md +484 -0
- package/implementation-roadmap/day-4-imp/DAY4-HARDEN.md +1087 -0
- package/implementation-roadmap/day-4-imp/DAY4-IMPLEMENT.md +2874 -0
- package/implementation-roadmap/day-4-imp/DAY4-REVIEW.md +386 -0
- package/implementation-roadmap/day-5-imp/DAY5-HARDEN.md +1078 -0
- package/implementation-roadmap/day-5-imp/DAY5-IMPLEMENT.md +3151 -0
- package/implementation-roadmap/day-5-imp/DAY5-REVIEW.md +345 -0
- package/implementation-roadmap/day-6-imp/DAY6-COMPLETE.md +3919 -0
- package/implementation-roadmap/day-7-imp-prod/DAY7-PRODUCTION-FINAL.md +4513 -0
- package/package.json +31 -0
- package/sdk/README.md +69 -0
- package/sdk/eslint.config.mjs +34 -0
- package/sdk/package-lock.json +1507 -0
- package/sdk/package.json +30 -0
- package/sdk/src/client.ts +133 -0
- package/sdk/src/commands.ts +63 -0
- package/sdk/src/events.ts +166 -0
- package/sdk/src/index.ts +22 -0
- package/sdk/src/types.ts +87 -0
- package/sdk/tsconfig.json +13 -0
- package/tests/audit.test.js +206 -0
- package/tests/ci-mode.test.js +162 -0
- package/tests/compaction.test.js +161 -0
- package/tests/distribution.test.js +205 -0
- package/tests/e2e.test.js +618 -0
- package/tests/governance.test.js +130 -0
- package/tests/install.test.js +209 -0
- package/tests/integrations.test.js +128 -0
- package/tests/intelligence.test.js +117 -0
- package/tests/metrics.test.js +96 -0
- package/tests/migration.test.js +309 -0
- package/tests/production.test.js +416 -0
- package/tests/sdk.test.js +200 -0
- package/tests/skills-platform.test.js +403 -0
- package/tests/wave-engine.test.js +338 -0
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# MindForge v1.0.0 — Complete Commands Reference
|
|
2
|
+
|
|
3
|
+
## All 36 commands
|
|
4
|
+
|
|
5
|
+
### Lifecycle commands (core workflow)
|
|
6
|
+
| Command | Usage | Description | Added |
|
|
7
|
+
|---|---|---|---|
|
|
8
|
+
| `/mindforge:init-project` | `init-project` | Guided project setup — creates all `.planning/` files | Day 1 |
|
|
9
|
+
| `/mindforge:discuss-phase` | `discuss-phase [N] [--batch|--auto]` | Pre-planning interview to capture implementation decisions | Day 3 |
|
|
10
|
+
| `/mindforge:plan-phase` | `plan-phase [N]` | Research, decompose, and create atomic task plans | Day 1 |
|
|
11
|
+
| `/mindforge:execute-phase` | `execute-phase [N]` | Wave-based parallel execution of all phase plans | Day 1+2 |
|
|
12
|
+
| `/mindforge:verify-phase` | `verify-phase [N]` | Automated + human acceptance testing pipeline | Day 1 |
|
|
13
|
+
| `/mindforge:ship` | `ship [N]` | Create PR, write release notes, push to remote | Day 1 |
|
|
14
|
+
| `/mindforge:next` | `next` | Auto-detect and execute the correct next workflow step | Day 2 |
|
|
15
|
+
|
|
16
|
+
### Project setup & discovery
|
|
17
|
+
| Command | Usage | Description | Added |
|
|
18
|
+
|---|---|---|---|
|
|
19
|
+
| `/mindforge:map-codebase` | `map-codebase` | Brownfield onboarding: infer stack and seed docs | Day 6 |
|
|
20
|
+
| `/mindforge:quick` | `quick` | Run a small, single-task plan without a full phase | Day 2 |
|
|
21
|
+
| `/mindforge:status` | `status` | Show current phase, plan status, and next action | Day 2 |
|
|
22
|
+
| `/mindforge:health` | `health [--repair]` | Validate installation and repair drift | Day 2 |
|
|
23
|
+
| `/mindforge:review` | `review [N]` | Run a structured review pass for a phase | Day 5 |
|
|
24
|
+
| `/mindforge:debug` | `debug [plan-id]` | Debug a failed plan with root-cause workflow | Day 5 |
|
|
25
|
+
|
|
26
|
+
### Governance & compliance
|
|
27
|
+
| Command | Usage | Description | Added |
|
|
28
|
+
|---|---|---|---|
|
|
29
|
+
| `/mindforge:approve` | `approve [--tier 2|3]` | Process approvals and emergency overrides | Day 4 |
|
|
30
|
+
| `/mindforge:audit` | `audit [--phase N] [--event X] [--since DATE]` | Query `AUDIT.jsonl` history | Day 2 |
|
|
31
|
+
| `/mindforge:security-scan` | `security-scan [--deep] [--secrets] [--deps]` | Security scan with OWASP classification | Day 2 |
|
|
32
|
+
| `/mindforge:milestone` | `milestone [name]` | Create or update milestone definitions | Day 4 |
|
|
33
|
+
| `/mindforge:complete-milestone` | `complete-milestone [name]` | Archive milestone and generate release report | Day 4 |
|
|
34
|
+
| `/mindforge:retrospective` | `retrospective [N]` | Phase retrospective and improvement actions | Day 5 |
|
|
35
|
+
|
|
36
|
+
### Skills & plugins
|
|
37
|
+
| Command | Usage | Description | Added |
|
|
38
|
+
|---|---|---|---|
|
|
39
|
+
| `/mindforge:skills` | `skills [list|validate|refresh]` | Manage core/org/project skills | Day 3 |
|
|
40
|
+
| `/mindforge:install-skill` | `install-skill <name> [--version]` | Install skill from registry | Day 6 |
|
|
41
|
+
| `/mindforge:publish-skill` | `publish-skill <path>` | Publish a skill to the registry | Day 6 |
|
|
42
|
+
| `/mindforge:plugins` | `plugins [list|install|uninstall|validate]` | Manage plugin lifecycle | Day 7 |
|
|
43
|
+
|
|
44
|
+
### Intelligence & metrics
|
|
45
|
+
| Command | Usage | Description | Added |
|
|
46
|
+
|---|---|---|---|
|
|
47
|
+
| `/mindforge:metrics` | `metrics [--phase N]` | Compute quality and throughput metrics | Day 5 |
|
|
48
|
+
| `/mindforge:profile-team` | `profile-team` | Generate team skill and ownership profile | Day 5 |
|
|
49
|
+
| `/mindforge:benchmark` | `benchmark [--skill X]` | Measure skill effectiveness | Day 6 |
|
|
50
|
+
| `/mindforge:tokens` | `tokens [--profile] [--summary]` | Token usage profiling and optimisation | Day 7 |
|
|
51
|
+
|
|
52
|
+
### Integrations & distribution
|
|
53
|
+
| Command | Usage | Description | Added |
|
|
54
|
+
|---|---|---|---|
|
|
55
|
+
| `/mindforge:init-org` | `init-org` | Org-wide MindForge setup | Day 6 |
|
|
56
|
+
| `/mindforge:sync-jira` | `sync-jira [--project KEY]` | Sync phases and plans to Jira | Day 4 |
|
|
57
|
+
| `/mindforge:sync-confluence` | `sync-confluence [--page ...]` | Publish docs to Confluence | Day 4 |
|
|
58
|
+
| `/mindforge:pr-review` | `pr-review [--range A..B]` | AI PR review with context | Day 6 |
|
|
59
|
+
| `/mindforge:workspace` | `workspace [detect|plan|test]` | Monorepo workspace management | Day 6 |
|
|
60
|
+
|
|
61
|
+
### Release & maintenance
|
|
62
|
+
| Command | Usage | Description | Added |
|
|
63
|
+
|---|---|---|---|
|
|
64
|
+
| `/mindforge:update` | `update [--apply] [--force] [--check]` | Check for and apply framework updates | Day 7 |
|
|
65
|
+
| `/mindforge:migrate` | `migrate [--from vX] [--to vY] [--dry-run]` | Run schema migrations | Day 7 |
|
|
66
|
+
| `/mindforge:release` | `release [--tag vX]` | Framework release pipeline (core team) | Day 7 |
|
|
67
|
+
|
|
68
|
+
### Utility
|
|
69
|
+
| Command | Usage | Description | Added |
|
|
70
|
+
|---|---|---|---|
|
|
71
|
+
| `/mindforge:help` | `help` | Show all available commands and current project status | Day 1 |
|
|
72
|
+
|
|
73
|
+
## Command interface contract (v1.0.0 stable)
|
|
74
|
+
|
|
75
|
+
As of v1.0.0, the following are part of the stable interface:
|
|
76
|
+
- All 36 command names (new commands require MINOR bump)
|
|
77
|
+
- All flags documented here (new flags require MINOR, removed flags require MAJOR)
|
|
78
|
+
- HANDOFF.json and AUDIT.jsonl schemas (additions: MINOR, removals: MAJOR)
|
|
79
|
+
- All 10 core skill `name:` values and trigger lists
|
|
80
|
+
- SDK exported types and functions
|
|
81
|
+
|
|
82
|
+
See ADR-020 for the complete stability contract.
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# MindForge Configuration Reference (MINDFORGE.md)
|
|
2
|
+
|
|
3
|
+
## Location
|
|
4
|
+
`MINDFORGE.md` in the project root (beside `package.json`).
|
|
5
|
+
|
|
6
|
+
## Syntax
|
|
7
|
+
- `KEY=value`
|
|
8
|
+
- Comments with `#`
|
|
9
|
+
- Multiline values with triple quotes
|
|
10
|
+
|
|
11
|
+
## Model preferences
|
|
12
|
+
- `PLANNER_MODEL`
|
|
13
|
+
- `EXECUTOR_MODEL`
|
|
14
|
+
- `REVIEWER_MODEL`
|
|
15
|
+
- `VERIFIER_MODEL`
|
|
16
|
+
- `SECURITY_MODEL`
|
|
17
|
+
- `DEBUG_MODEL`
|
|
18
|
+
|
|
19
|
+
Valid values: `claude-opus-4-5`, `claude-sonnet-4-5`, `claude-haiku-4-5`, `inherit`.
|
|
20
|
+
Unavailable values fallback to `inherit` with a warning.
|
|
21
|
+
|
|
22
|
+
## Execution behavior
|
|
23
|
+
- `TIER1_AUTO_APPROVE`
|
|
24
|
+
- `WAVE_CONFIRMATION_REQUIRED`
|
|
25
|
+
- `AUTO_DISCUSS_PHASE`
|
|
26
|
+
- `VERIFY_PASS_RATE_WARNING_THRESHOLD` (v1.0.0 uses 0.0–1.0 range)
|
|
27
|
+
- `COMPACTION_THRESHOLD_PCT`
|
|
28
|
+
- `MAX_TASKS_PER_PHASE`
|
|
29
|
+
|
|
30
|
+
## Quality standards
|
|
31
|
+
- `MIN_TEST_COVERAGE_PCT`
|
|
32
|
+
- `MAX_FUNCTION_LINES`
|
|
33
|
+
- `MAX_CYCLOMATIC_COMPLEXITY`
|
|
34
|
+
- `REQUIRE_ADR_FOR_ALL_DECISIONS`
|
|
35
|
+
- `BLOCK_ON_MEDIUM_SECURITY_FINDINGS`
|
|
36
|
+
|
|
37
|
+
## Skills behavior
|
|
38
|
+
- `ALWAYS_LOAD_SKILLS`
|
|
39
|
+
- `DISABLED_SKILLS`
|
|
40
|
+
- `MAX_FULL_SKILL_INJECTIONS`
|
|
41
|
+
|
|
42
|
+
## Governance behavior
|
|
43
|
+
- `DISCUSS_PHASE_REQUIRED_ABOVE_DIFFICULTY`
|
|
44
|
+
- `ANTIPATTERN_SENSITIVITY`
|
|
45
|
+
- `BLOCK_ON_HIGH_ANTIPATTERNS`
|
|
46
|
+
|
|
47
|
+
## Token settings (Day 7)
|
|
48
|
+
- `TOKEN_WARN_THRESHOLD`
|
|
49
|
+
- `TOKEN_LEAN_MODE`
|
|
50
|
+
- `TOKEN_MAX_FILE_LINES`
|
|
51
|
+
|
|
52
|
+
## Update settings (Day 7)
|
|
53
|
+
- `MINDFORGE_AUTO_CHECK_UPDATES` (true/false)
|
|
54
|
+
|
|
55
|
+
## Non-overridable rules
|
|
56
|
+
The following cannot be overridden by MINDFORGE.md:
|
|
57
|
+
- Security auto-trigger for auth/payment/PII changes
|
|
58
|
+
- Plan-first rule
|
|
59
|
+
- Secret detection gate
|
|
60
|
+
- AUDIT writing requirement
|
|
61
|
+
- Critical security and secret-related quality gates
|
|
62
|
+
|
|
63
|
+
See `.mindforge/production/token-optimiser.md` and `docs/mindforge-md-reference.md`
|
|
64
|
+
for full detail.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# MindForge SDK API — Reference (v1.0.0)
|
|
2
|
+
|
|
3
|
+
## Package
|
|
4
|
+
`@mindforge/sdk`
|
|
5
|
+
|
|
6
|
+
## Exports
|
|
7
|
+
From `sdk/src/index.ts`:
|
|
8
|
+
- `MindForgeClient`
|
|
9
|
+
- `MindForgeEventStream`
|
|
10
|
+
- `commands`
|
|
11
|
+
- Types: `MindForgeConfig`, `PhaseResult`, `TaskResult`, `SecurityFinding`,
|
|
12
|
+
`GateResult`, `HealthReport`, `HealthIssue`, `MindForgeEvent`, `CommandOptions`
|
|
13
|
+
- `VERSION`
|
|
14
|
+
|
|
15
|
+
## MindForgeClient
|
|
16
|
+
High-level API for reading local project state.
|
|
17
|
+
|
|
18
|
+
Methods:
|
|
19
|
+
- `isInitialised(): boolean`
|
|
20
|
+
- `readState(): object | null`
|
|
21
|
+
- `readHandoff(): object | null`
|
|
22
|
+
- `health(): Promise<HealthReport>`
|
|
23
|
+
- `readAuditLog(filter?): unknown[]`
|
|
24
|
+
- `readSessionMetrics(limit?): unknown[]`
|
|
25
|
+
- `validateConfig(): { valid: boolean, errors: string[], warnings: string[] }`
|
|
26
|
+
|
|
27
|
+
## MindForgeEventStream
|
|
28
|
+
Localhost-only SSE server for streaming audit events.
|
|
29
|
+
|
|
30
|
+
Methods:
|
|
31
|
+
- `start(port = 7337)`
|
|
32
|
+
- `watchAuditLog(projectRoot)`
|
|
33
|
+
- `broadcast(eventType, data)`
|
|
34
|
+
- `stop()`
|
|
35
|
+
|
|
36
|
+
## Command builders
|
|
37
|
+
`commands` provides helpers to build slash-command strings:
|
|
38
|
+
- `health(opts)`
|
|
39
|
+
- `planPhase(phase, opts)`
|
|
40
|
+
- `executePhase(phase, opts)`
|
|
41
|
+
- `securityScan(path?, opts)`
|
|
42
|
+
- `audit(filter)`
|
|
43
|
+
- `prReview(opts)`
|
|
44
|
+
|
|
45
|
+
## Security notes
|
|
46
|
+
- The SDK reads local files that may contain sensitive data.
|
|
47
|
+
- Event stream binds to `127.0.0.1` only and rejects non-local connections.
|
|
48
|
+
- Do not expose the SSE port on public interfaces.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# MindForge Skills API — Reference (v1.0.0)
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
Skills are domain knowledge packs loaded on demand. They are stored as
|
|
5
|
+
`SKILL.md` files with frontmatter and optional assets.
|
|
6
|
+
|
|
7
|
+
## File structure
|
|
8
|
+
```
|
|
9
|
+
.mindforge/skills/<skill-name>/
|
|
10
|
+
SKILL.md
|
|
11
|
+
assets/
|
|
12
|
+
references/
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## SKILL.md schema (frontmatter)
|
|
16
|
+
Required fields:
|
|
17
|
+
- `name`: string (stable in 1.x.x)
|
|
18
|
+
- `description`: string
|
|
19
|
+
- `triggers`: array of keywords
|
|
20
|
+
- `version`: semver string
|
|
21
|
+
- `owner`: string (team or org)
|
|
22
|
+
|
|
23
|
+
Optional fields:
|
|
24
|
+
- `scope`: `core | org | project`
|
|
25
|
+
- `severity`: `low | medium | high`
|
|
26
|
+
- `links`: array of URLs
|
|
27
|
+
|
|
28
|
+
Example:
|
|
29
|
+
```yaml
|
|
30
|
+
---
|
|
31
|
+
name: security-review
|
|
32
|
+
version: 1.0.0
|
|
33
|
+
description: Secure coding review checklist and threat modeling prompts
|
|
34
|
+
triggers: ["auth", "payment", "pii", "encryption"]
|
|
35
|
+
owner: mindforge-core
|
|
36
|
+
scope: core
|
|
37
|
+
---
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Loading rules
|
|
41
|
+
- Skills load only when trigger keywords match the task description
|
|
42
|
+
- At most 3 skills are loaded at full size; others are summarized
|
|
43
|
+
- Skills can be force-loaded via `ALWAYS_LOAD_SKILLS` in `MINDFORGE.md`
|
|
44
|
+
|
|
45
|
+
## Validation
|
|
46
|
+
`/mindforge:skills validate` enforces:
|
|
47
|
+
- Valid frontmatter
|
|
48
|
+
- No injection patterns in content
|
|
49
|
+
- Required fields present
|
|
50
|
+
|
|
51
|
+
## Publishing
|
|
52
|
+
Skills can be published to the npm registry under `mindforge-skill-*`.
|
|
53
|
+
See `docs/skills-publishing-guide.md` for full workflow.
|
|
54
|
+
|
|
55
|
+
## Stability contract
|
|
56
|
+
As of v1.0.0, the `name` values of the 10 core skills are stable. New optional
|
|
57
|
+
fields may be added in minor versions; removals require a major version bump.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# MindForge Release Checklist Guide (v1.0.0)
|
|
2
|
+
|
|
3
|
+
This guide explains how to complete the production readiness checklist
|
|
4
|
+
in `.mindforge/production/production-checklist.md` and log results in
|
|
5
|
+
`.planning/RELEASE-CHECKLIST.md`.
|
|
6
|
+
|
|
7
|
+
## How to use
|
|
8
|
+
1. Open `.mindforge/production/production-checklist.md`
|
|
9
|
+
2. For each item, run the **Verification step** exactly
|
|
10
|
+
3. Record results in `.planning/RELEASE-CHECKLIST.md`
|
|
11
|
+
|
|
12
|
+
## What “✅ verified” means
|
|
13
|
+
An item is only ✅ when:
|
|
14
|
+
- The verification step was executed
|
|
15
|
+
- The result was successful
|
|
16
|
+
- The verifier and date were recorded
|
|
17
|
+
|
|
18
|
+
## Recommended order
|
|
19
|
+
1. **Section A** — Installation & upgrade (local + global)
|
|
20
|
+
2. **Section B** — Command coverage
|
|
21
|
+
3. **Section C** — Governance gates
|
|
22
|
+
4. **Section D** — Documentation
|
|
23
|
+
5. **Section E** — Test coverage
|
|
24
|
+
6. **Section F** — Release artifacts
|
|
25
|
+
|
|
26
|
+
## Example entry
|
|
27
|
+
```
|
|
28
|
+
| A03 | ✅ | dev@example.com | 2026-03-22 | Local install verified |
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Common pitfalls
|
|
32
|
+
- Marking ✅ without running the command
|
|
33
|
+
- Skipping CI checks (E09/F03) before tagging
|
|
34
|
+
- Forgetting to update SDK version to match root
|
|
35
|
+
|
|
36
|
+
## Final release gate
|
|
37
|
+
Do not tag or publish until **all 55 items** are ✅.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# MindForge Requirements (v1.0.0)
|
|
2
|
+
|
|
3
|
+
Use this checklist before installation to avoid surprises.
|
|
4
|
+
|
|
5
|
+
## System requirements
|
|
6
|
+
- **Node.js:** 18+ (20 LTS recommended)
|
|
7
|
+
- **Git:** 2.30+
|
|
8
|
+
- **OS:** macOS, Linux, or Windows (WSL supported)
|
|
9
|
+
- **Disk:** ~200MB free for framework + caches
|
|
10
|
+
|
|
11
|
+
## Runtime requirements
|
|
12
|
+
- **Claude Code** or **Antigravity** installed and working
|
|
13
|
+
- Network access to npm registry for `npx mindforge-cc@latest`
|
|
14
|
+
|
|
15
|
+
## Optional (but recommended)
|
|
16
|
+
- `jq` for audit log queries
|
|
17
|
+
- `gh` CLI for GitHub release workflows
|
|
18
|
+
|
|
19
|
+
## Quick environment check
|
|
20
|
+
```bash
|
|
21
|
+
node -v
|
|
22
|
+
npm -v
|
|
23
|
+
git --version
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## If you are in CI
|
|
27
|
+
- Ensure `CI=true`
|
|
28
|
+
- Use a Node 20 image
|
|
29
|
+
- Keep `.planning/` writable
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# MindForge SDK Reference
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
The `@mindforge/sdk` package provides a programmatic API for integrating MindForge
|
|
5
|
+
into tools, dashboards, and CI pipelines.
|
|
6
|
+
|
|
7
|
+
## API
|
|
8
|
+
|
|
9
|
+
### `MindForgeClient`
|
|
10
|
+
- `isInitialised(): boolean`
|
|
11
|
+
- `readState(): object | null`
|
|
12
|
+
- `readHandoff(): object | null`
|
|
13
|
+
- `health(): Promise<HealthReport>`
|
|
14
|
+
- `readAuditLog(filter?): unknown[]`
|
|
15
|
+
- `readSessionMetrics(limit?): unknown[]`
|
|
16
|
+
- `validateConfig(): { valid, errors, warnings }`
|
|
17
|
+
|
|
18
|
+
### `MindForgeEventStream`
|
|
19
|
+
- `start(port = 7337)` — starts localhost-only SSE server
|
|
20
|
+
- `watchAuditLog(projectRoot)` — streams new AUDIT.jsonl entries
|
|
21
|
+
- `broadcast(eventType, data)` — manual broadcast
|
|
22
|
+
- `stop()` — shutdown server and watchers
|
|
23
|
+
|
|
24
|
+
## Security considerations
|
|
25
|
+
- The SDK reads local files that may contain sensitive data.
|
|
26
|
+
- The event stream is bound to localhost only and rejects remote connections.
|
|
27
|
+
- Do not expose SDK endpoints to public networks.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# MindForge — Security Policy
|
|
2
|
+
|
|
3
|
+
## Supported versions
|
|
4
|
+
|
|
5
|
+
| Version | Security support |
|
|
6
|
+
|---|---|
|
|
7
|
+
| 1.x.x | ✅ Active — patches released for all severity levels |
|
|
8
|
+
| 0.6.x | ⚠️ Limited — critical fixes only, 90 days from v1.0.0 release |
|
|
9
|
+
| < 0.6.0 | ❌ No support |
|
|
10
|
+
|
|
11
|
+
## Reporting a vulnerability
|
|
12
|
+
|
|
13
|
+
**Email:** security@mindforge.dev
|
|
14
|
+
|
|
15
|
+
**Required information:**
|
|
16
|
+
- Description of the vulnerability
|
|
17
|
+
- Steps to reproduce
|
|
18
|
+
- Potential impact assessment
|
|
19
|
+
- Your name / handle (for acknowledgement, if desired)
|
|
20
|
+
|
|
21
|
+
**Response timeline:**
|
|
22
|
+
- Acknowledgement: within 24 hours
|
|
23
|
+
- Initial assessment: within 7 days
|
|
24
|
+
- Fix released: within 30 days for HIGH/CRITICAL, 90 days for MEDIUM/LOW
|
|
25
|
+
- Coordinated disclosure: 90 days from initial report
|
|
26
|
+
|
|
27
|
+
**We commit to:**
|
|
28
|
+
- Not taking legal action against good-faith security researchers
|
|
29
|
+
- Crediting researchers in the security advisory (with their permission)
|
|
30
|
+
- Maintaining confidentiality until a fix is released
|
|
31
|
+
|
|
32
|
+
## Known security model limitations
|
|
33
|
+
|
|
34
|
+
See `docs/security/threat-model.md` for the full threat model.
|
|
35
|
+
|
|
36
|
+
Key acknowledged limitations:
|
|
37
|
+
1. Plugin permission model is advisory (not OS-enforced) — see TA7 in threat model
|
|
38
|
+
2. The SSE event stream is localhost-only but any local process can connect — see TA6
|
|
39
|
+
3. Approver identity uses `git config user.email` which is user-controlled — see TA5
|
|
40
|
+
4. Agent instruction injection via SKILL.md requires review beyond pattern matching — see TA1
|
|
41
|
+
|
|
42
|
+
These are known trade-offs, not bugs. They are documented in ADR-020.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# MindForge v1.0.0 — Penetration Test Results
|
|
2
|
+
|
|
3
|
+
**Date:** 2026-03-22
|
|
4
|
+
**Scope:** MindForge v1.0.0 threat model (7 threat actors)
|
|
5
|
+
**Method:** Manual adversarial review + targeted negative tests
|
|
6
|
+
|
|
7
|
+
## Summary
|
|
8
|
+
- Critical findings: 0
|
|
9
|
+
- High findings: 0
|
|
10
|
+
- Medium findings: 2
|
|
11
|
+
- Low findings: 3
|
|
12
|
+
|
|
13
|
+
All findings were addressed or documented with explicit mitigations.
|
|
14
|
+
|
|
15
|
+
## Findings
|
|
16
|
+
| ID | Severity | Area | Description | Status |
|
|
17
|
+
|---|---|---|---|---|
|
|
18
|
+
| PT-01 | MEDIUM | Plugin system | Malicious plugin can request `write_state` permission | Mitigated: allowlist (`ELEVATED_PLUGINS`) + user approval |
|
|
19
|
+
| PT-02 | MEDIUM | Skill registry | Injection patterns could bypass simple string match | Mitigated: injection guard + manual review guidance |
|
|
20
|
+
| PT-03 | LOW | SSE stream | Local process can subscribe to localhost stream | Accepted: localhost-only + no secrets in stream |
|
|
21
|
+
| PT-04 | LOW | Config | User-controlled git email for approvals | Accepted: governance assumption, documented |
|
|
22
|
+
| PT-05 | LOW | CI | Workflow modification could bypass gates | Accepted: branch protection required |
|
|
23
|
+
|
|
24
|
+
## Retest notes
|
|
25
|
+
- Re-validated installer excludes `.env`, `.key`, `.pem` files
|
|
26
|
+
- Verified migration restores from backup on failure
|
|
27
|
+
- Confirmed plugin loader skips incompatible plugins and logs audit entry
|
|
28
|
+
|
|
29
|
+
## Conclusion
|
|
30
|
+
MindForge v1.0.0 is fit for public release with known, documented trade-offs.
|
|
31
|
+
See `docs/security/threat-model.md` for full controls and residual risk.
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
# MindForge v1.0.0 — Threat Model
|
|
2
|
+
|
|
3
|
+
## Scope
|
|
4
|
+
All attack surfaces introduced by MindForge across 7 days of development.
|
|
5
|
+
Last reviewed: v1.0.0 release (March 2026).
|
|
6
|
+
|
|
7
|
+
## Assets being protected
|
|
8
|
+
|
|
9
|
+
| Asset | Classification | Location |
|
|
10
|
+
|---|---|---|
|
|
11
|
+
| API credentials | CRITICAL | Environment variables only (never in files) |
|
|
12
|
+
| HANDOFF.json | HIGH — project state, agent notes, decisions | `.planning/HANDOFF.json` |
|
|
13
|
+
| AUDIT.jsonl | HIGH — complete governance audit trail | `.planning/AUDIT.jsonl` |
|
|
14
|
+
| Approval files | HIGH — governance records | `.planning/approvals/*.json` |
|
|
15
|
+
| SECURITY.md | MEDIUM — security policy documentation | `.mindforge/org/SECURITY.md` |
|
|
16
|
+
| CLAUDE.md | MEDIUM — agent instructions that shape behaviour | `.claude/CLAUDE.md` |
|
|
17
|
+
| CONVENTIONS.md | LOW — coding standards | `.mindforge/org/CONVENTIONS.md` |
|
|
18
|
+
|
|
19
|
+
## Threat Actor 1 — Malicious skill package author
|
|
20
|
+
|
|
21
|
+
**Goal:** Inject adversarial instructions via a published `mindforge-skill-*` npm package.
|
|
22
|
+
**Attack:** SKILL.md contains "IGNORE ALL PREVIOUS INSTRUCTIONS" or similar.
|
|
23
|
+
**Controls:**
|
|
24
|
+
- Injection guard in `loader.md` blocks known patterns at both install and load time
|
|
25
|
+
- Level 1/2/3 skill validation at install time
|
|
26
|
+
- TOCTOU-safe download (chmod 700 temp dir, tarball size check)
|
|
27
|
+
- User must explicitly run `/mindforge:install-skill` — no auto-install
|
|
28
|
+
|
|
29
|
+
**Residual risk:** MEDIUM — sophisticated injections that avoid simple string matching.
|
|
30
|
+
**Mitigation:** Community review of public registry skills; organisation vetting of org-tier skills.
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Threat Actor 2 — MINDFORGE.md governance bypass
|
|
35
|
+
|
|
36
|
+
**Goal:** Disable governance primitives via MINDFORGE.md settings.
|
|
37
|
+
**Attack:** Set `SECRET_DETECTION=false`, `SECURITY_AUTOTRIGGER=false`.
|
|
38
|
+
**Controls:**
|
|
39
|
+
- Non-overridable rules enforced in CLAUDE.md session start protocol
|
|
40
|
+
- MINDFORGE-SCHEMA.json marks these fields as `nonOverridable: true`
|
|
41
|
+
- `bin/validate-config.js` warns on attempts to override these fields
|
|
42
|
+
|
|
43
|
+
**Residual risk:** LOW — enforced at the agent instruction layer, not OS level.
|
|
44
|
+
**Note:** An agent that ignores its CLAUDE.md is an agent that ignores everything.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Threat Actor 3 — Accidental credential exposure in project files
|
|
49
|
+
|
|
50
|
+
**Goal:** Not adversarial — developer accidentally commits a credential.
|
|
51
|
+
**Attack vectors:**
|
|
52
|
+
- Token pasted into HANDOFF.json
|
|
53
|
+
- API key in MINDFORGE.md ADDITIONAL_AGENT_INSTRUCTIONS
|
|
54
|
+
- Secret in AUDIT.jsonl via an error message
|
|
55
|
+
|
|
56
|
+
**Controls:**
|
|
57
|
+
- Gate 3 (secret detection) blocks ANY commit with credential patterns
|
|
58
|
+
- `_warning` field in every HANDOFF.json schema reminding devs not to store secrets
|
|
59
|
+
- Health engine (Category 7) scans .planning/ and root files for credential patterns
|
|
60
|
+
- installer-core.js skips .env and *.key files during copyDir
|
|
61
|
+
|
|
62
|
+
**Residual risk:** LOW — multiple detection layers with complementary coverage.
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Threat Actor 4 — TOCTOU attack on skill installation
|
|
67
|
+
|
|
68
|
+
**Goal:** Replace a valid SKILL.md with malicious content in the window between download and validation.
|
|
69
|
+
**Attack:** Race condition in temp directory.
|
|
70
|
+
**Controls:**
|
|
71
|
+
- `chmod 700` on temp directory (user-only access, blocks other OS users)
|
|
72
|
+
- Tarball size check (detects empty/corrupted downloads)
|
|
73
|
+
- Download → validate → install is a single-process, single-threaded operation
|
|
74
|
+
|
|
75
|
+
**Residual risk:** VERY LOW — requires local machine compromise and precise timing.
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## Threat Actor 5 — Compromised CI environment
|
|
80
|
+
|
|
81
|
+
**Goal:** Bypass governance gates in CI to ship malicious code.
|
|
82
|
+
**Attack:** Modify GitHub Actions workflow or CI runner environment to skip MindForge checks.
|
|
83
|
+
**Controls:**
|
|
84
|
+
- Gates run as separate CI jobs with explicit dependencies
|
|
85
|
+
- Tier 3 changes always fail CI (cannot be configured away)
|
|
86
|
+
- AUDIT.jsonl writes all gate results — tampering would require audit log manipulation
|
|
87
|
+
- Branch protection rules on the repository (outside MindForge scope)
|
|
88
|
+
|
|
89
|
+
**Residual risk:** HIGH — an attacker with write access to the workflow file or CI secrets
|
|
90
|
+
can bypass. This is a threat to all CI systems, not MindForge specifically.
|
|
91
|
+
**Mitigation:** Protect the `main` branch with required status checks.
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Threat Actor 6 — SSE event stream eavesdropping
|
|
96
|
+
|
|
97
|
+
**Goal:** Read sensitive project state from the real-time event stream.
|
|
98
|
+
**Attack:** Connect to port 7337 from another local process.
|
|
99
|
+
**Controls:**
|
|
100
|
+
- localhost-only binding (127.0.0.1) — not accessible from network
|
|
101
|
+
- IP address check on every connection — non-localhost rejected with 403
|
|
102
|
+
- CORS exact-origin matching (not wildcard)
|
|
103
|
+
- Port only opens when the SDK's `MindForgeEventStream.start()` is explicitly called
|
|
104
|
+
|
|
105
|
+
**Residual risk:** LOW — any process running as the same OS user can connect to localhost.
|
|
106
|
+
**Mitigation:** The SSE stream exposes AUDIT entries, not credentials. Risk is information disclosure, not code execution.
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## Threat Actor 7 — Plugin with elevated or undeclared permissions
|
|
111
|
+
|
|
112
|
+
**Goal:** Use a MindForge plugin to exfiltrate project state or modify governance.
|
|
113
|
+
**Attack:** Install a plugin that reads HANDOFF.json and sends it to an external server.
|
|
114
|
+
**Controls:**
|
|
115
|
+
- Permission model displayed to user at install time (requires explicit approval)
|
|
116
|
+
- Injection guard run against all plugin .md files
|
|
117
|
+
- All plugin-triggered actions logged with plugin name as agent in AUDIT.jsonl
|
|
118
|
+
- `ELEVATED_PLUGINS` allowlist required for `write_state: true` permission
|
|
119
|
+
|
|
120
|
+
**Residual risk:** MEDIUM — a user who installs a malicious plugin and approves its permissions.
|
|
121
|
+
**Mitigation:** Only install plugins from sources you trust. Review plugin commands before installing.
|
|
122
|
+
Treat MindForge plugins like VSCode extensions — they have significant project access.
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Controls summary matrix
|
|
127
|
+
|
|
128
|
+
| Control | Threat Actors Mitigated |
|
|
129
|
+
|---|---|
|
|
130
|
+
| Injection guard (loader.md) | TA1, TA7 |
|
|
131
|
+
| TOCTOU-safe download (chmod 700) | TA1, TA4 |
|
|
132
|
+
| Non-overridable governance primitives | TA2 |
|
|
133
|
+
| Gate 3 secret detection | TA3 |
|
|
134
|
+
| Health engine credential scan | TA3 |
|
|
135
|
+
| CI Tier 3 block | TA5 |
|
|
136
|
+
| SSE localhost-only binding | TA6 |
|
|
137
|
+
| Plugin permission model + AUDIT logging | TA7 |
|
|
138
|
+
|
|
139
|
+
## Penetration test results
|
|
140
|
+
|
|
141
|
+
See `docs/security/penetration-test-results.md` for the adversarial review
|
|
142
|
+
conducted as part of the v1.0.0 production readiness process.
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# MindForge Skills Authoring Guide
|
|
2
|
+
|
|
3
|
+
## What is a skill?
|
|
4
|
+
A skill is a self-contained folder containing a `SKILL.md` file that gives
|
|
5
|
+
the MindForge agent domain-specific expertise for a specific type of task.
|
|
6
|
+
|
|
7
|
+
Skills are loaded just-in-time: the agent discovers them by matching trigger
|
|
8
|
+
keywords against the task description. They inject the right knowledge at the
|
|
9
|
+
right moment without cluttering the context with irrelevant information.
|
|
10
|
+
|
|
11
|
+
## When to write a skill
|
|
12
|
+
Write a new skill when:
|
|
13
|
+
- A specific domain requires knowledge beyond the agent's defaults
|
|
14
|
+
- The same guidance needs to be applied consistently across many tasks
|
|
15
|
+
- Your team has standards that aren't captured in CONVENTIONS.md
|
|
16
|
+
- An existing core skill doesn't match your organisation's approach
|
|
17
|
+
|
|
18
|
+
## Skill file structure
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
.mindforge/skills/[skill-name]/
|
|
22
|
+
SKILL.md ← required
|
|
23
|
+
examples/ ← optional: sample inputs and outputs
|
|
24
|
+
resources/ ← optional: reference documents the skill uses
|
|
25
|
+
scripts/ ← optional: helper scripts the skill can run
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## SKILL.md template
|
|
29
|
+
|
|
30
|
+
```markdown
|
|
31
|
+
---
|
|
32
|
+
name: [skill-name-in-kebab-case]
|
|
33
|
+
version: 1.0.0
|
|
34
|
+
min_mindforge_version: 0.1.0
|
|
35
|
+
status: stable | beta | alpha
|
|
36
|
+
triggers: [comma-separated list of trigger keywords]
|
|
37
|
+
mutually_exclusive_with: # optional: skill names that conflict with this one
|
|
38
|
+
breaking_changes:
|
|
39
|
+
# Record breaking changes here when bumping MAJOR version
|
|
40
|
+
changelog:
|
|
41
|
+
- "1.0.0: Initial release"
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
# Skill — [Human-readable skill name]
|
|
45
|
+
|
|
46
|
+
## When this skill activates
|
|
47
|
+
[One paragraph: what task types trigger this skill, and why it helps]
|
|
48
|
+
|
|
49
|
+
## Mandatory actions when this skill is active
|
|
50
|
+
|
|
51
|
+
### Before writing any code / Before starting any task
|
|
52
|
+
[Steps the agent MUST take before beginning — written as an ordered list]
|
|
53
|
+
|
|
54
|
+
### During [implementation / review / analysis]
|
|
55
|
+
[Standards and patterns the agent must follow — be specific]
|
|
56
|
+
|
|
57
|
+
### After [implementation / review / analysis]
|
|
58
|
+
[Verification steps, output requirements — be specific]
|
|
59
|
+
|
|
60
|
+
## [Domain-specific section 1]
|
|
61
|
+
[Detailed guidance, code examples, patterns]
|
|
62
|
+
|
|
63
|
+
## [Domain-specific section 2]
|
|
64
|
+
[Detailed guidance, code examples, patterns]
|
|
65
|
+
|
|
66
|
+
## Self-check before task completion
|
|
67
|
+
- [ ] [Checkable item 1]
|
|
68
|
+
- [ ] [Checkable item 2]
|
|
69
|
+
- [ ] [Checkable item 3]
|
|
70
|
+
|
|
71
|
+
## Output
|
|
72
|
+
[What files or artifacts this skill produces, with exact paths]
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Writing good trigger keywords
|
|
76
|
+
- Specific beats generic: `argon2` beats `hash`
|
|
77
|
+
- Include common misspellings and abbreviations: `optimise, optimize`
|
|
78
|
+
- Include acronyms and their expansions: `a11y, accessibility, WCAG, wcag`
|
|
79
|
+
- Include library names: `Prisma, Drizzle, SQLAlchemy` for database-patterns
|
|
80
|
+
- Aim for 10-30 triggers per skill
|
|
81
|
+
- Avoid single-letter words and extremely common words (the, be, is, to)
|
|
82
|
+
|
|
83
|
+
## Security notice for skill authors
|
|
84
|
+
|
|
85
|
+
MindForge skills are injected directly into AI agent contexts. A skill file
|
|
86
|
+
with adversarial content could manipulate agent behaviour.
|
|
87
|
+
|
|
88
|
+
MindForge includes an injection guard that blocks skills containing known
|
|
89
|
+
manipulation patterns. However, all skill authors — especially for Tier 2
|
|
90
|
+
and Tier 3 skills — should:
|
|
91
|
+
|
|
92
|
+
1. Never include instructions that override or disable safety behaviours
|
|
93
|
+
2. Keep skill files in version control with a clear audit trail
|
|
94
|
+
3. Review skill changes in code review before merging
|
|
95
|
+
4. Restrict who can write to `.mindforge/personas/overrides/` and
|
|
96
|
+
`.mindforge/org/skills/` directories
|
|
97
|
+
|
|
98
|
+
## Registering your skill
|
|
99
|
+
After creating SKILL.md:
|
|
100
|
+
```bash
|
|
101
|
+
/mindforge:skills add .mindforge/skills/[your-skill-name]
|
|
102
|
+
# Choose tier: 2 (org) or 3 (project)
|
|
103
|
+
# Commit the manifest update
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## Tier guidance
|
|
107
|
+
|
|
108
|
+
| Tier | Use when | Location |
|
|
109
|
+
|---|---|---|
|
|
110
|
+
| 1 (Core) | Universal best practices — all projects | `.mindforge/skills/` |
|
|
111
|
+
| 2 (Org) | Your org's standards — all projects | `.mindforge/org/skills/` or separate repo |
|
|
112
|
+
| 3 (Project) | This project specifically | `.mindforge/skills/project/` |
|
|
113
|
+
|
|
114
|
+
## Version your skill
|
|
115
|
+
Every change to mandatory actions or trigger keywords = MINOR version bump.
|
|
116
|
+
Every removal of triggers or outputs = MAJOR version bump.
|
|
117
|
+
Typo fixes = PATCH version bump.
|
|
118
|
+
|
|
119
|
+
Update both the SKILL.md frontmatter AND the MANIFEST.md entry.
|