mindforge-cc 11.8.2 → 11.9.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/mindforge/wf-orchestrate-review.md +35 -0
- package/.agent/mindforge/wf-verification-loop.md +45 -0
- package/.agent/mindforge/wf-workflow-optimizer.md +51 -0
- package/.agent/skills/article-illustrator/SKILL.md +7 -7
- package/.agent/skills/arxiv/SKILL.md +6 -6
- package/.agent/skills/code-wiki/SKILL.md +11 -11
- package/.agent/skills/concept-diagrams/SKILL.md +6 -6
- package/.agent/skills/concept-diagrams/examples/apartment-floor-plan-conversion.md +244 -0
- package/.agent/skills/concept-diagrams/examples/automated-password-reset-flow.md +276 -0
- package/.agent/skills/concept-diagrams/examples/autonomous-llm-research-agent-flow.md +240 -0
- package/.agent/skills/concept-diagrams/examples/banana-journey-tree-to-smoothie.md +161 -0
- package/.agent/skills/concept-diagrams/examples/commercial-aircraft-structure.md +209 -0
- package/.agent/skills/concept-diagrams/examples/cpu-ooo-microarchitecture.md +236 -0
- package/.agent/skills/concept-diagrams/examples/electricity-grid-flow.md +182 -0
- package/.agent/skills/concept-diagrams/examples/feature-film-production-pipeline.md +172 -0
- package/.agent/skills/concept-diagrams/examples/hospital-emergency-department-flow.md +165 -0
- package/.agent/skills/concept-diagrams/examples/ml-benchmark-grouped-bar-chart.md +114 -0
- package/.agent/skills/concept-diagrams/examples/place-order-uml-sequence.md +325 -0
- package/.agent/skills/concept-diagrams/examples/smart-city-infrastructure.md +173 -0
- package/.agent/skills/concept-diagrams/examples/smartphone-layer-anatomy.md +154 -0
- package/.agent/skills/concept-diagrams/examples/sn2-reaction-mechanism.md +247 -0
- package/.agent/skills/concept-diagrams/examples/wind-turbine-structure.md +338 -0
- package/.agent/skills/concept-diagrams/templates/template.html +174 -0
- package/.agent/skills/domain-intel/SKILL.md +7 -7
- package/.agent/skills/duckduckgo-search/SKILL.md +17 -17
- package/.agent/skills/github-auth/scripts/gh-env.sh +66 -0
- package/.agent/skills/github-code-review/SKILL.md +9 -9
- package/.agent/skills/github-pr-workflow/SKILL.md +3 -3
- package/.agent/skills/godmode/SKILL.md +8 -8
- package/.agent/skills/jupyter-live-kernel/SKILL.md +3 -3
- package/.agent/skills/kanban-orchestrator/SKILL.md +10 -10
- package/.agent/skills/kanban-worker/SKILL.md +6 -6
- package/.agent/skills/llm-wiki/SKILL.md +7 -7
- package/.agent/skills/mindforge-autonomous/SKILL.md +1 -1
- package/.agent/skills/mindforge-complete-milestone/SKILL.md +1 -1
- package/.agent/skills/mindforge-discuss-phase/SKILL.md +1 -1
- package/.agent/skills/mindforge-do/SKILL.md +1 -1
- package/.agent/skills/mindforge-execute-phase/SKILL.md +1 -1
- package/.agent/skills/mindforge-list-workspaces/SKILL.md +1 -1
- package/.agent/skills/mindforge-manager/SKILL.md +1 -1
- package/.agent/skills/mindforge-neural-orchestrator/SKILL.md +1 -1
- package/.agent/skills/mindforge-new-milestone/SKILL.md +4 -4
- package/.agent/skills/mindforge-new-project/SKILL.md +4 -4
- package/.agent/skills/mindforge-new-workspace/SKILL.md +1 -1
- package/.agent/skills/mindforge-note/SKILL.md +1 -1
- package/.agent/skills/mindforge-plan-phase/SKILL.md +1 -1
- package/.agent/skills/mindforge-profile-user/SKILL.md +1 -1
- package/.agent/skills/mindforge-remove-workspace/SKILL.md +1 -1
- package/.agent/skills/mindforge-research-phase/SKILL.md +1 -1
- package/.agent/skills/mindforge-ui-phase/SKILL.md +1 -1
- package/.agent/skills/mindforge-ui-review/SKILL.md +1 -1
- package/.agent/skills/mindforge-verify-work/SKILL.md +1 -1
- package/.agent/skills/mindforge-workspace-isolated/SKILL.md +1 -1
- package/.agent/skills/node-inspect-debugger/SKILL.md +1 -1
- package/.agent/skills/obsidian/SKILL.md +15 -15
- package/.agent/skills/osint-investigation/SKILL.md +3 -2
- package/.agent/skills/osint-investigation/references/sources/courtlistener.md +98 -0
- package/.agent/skills/osint-investigation/references/sources/gdelt.md +104 -0
- package/.agent/skills/osint-investigation/references/sources/icij-offshore.md +104 -0
- package/.agent/skills/osint-investigation/references/sources/nyc-acris.md +90 -0
- package/.agent/skills/osint-investigation/references/sources/ofac-sdn.md +92 -0
- package/.agent/skills/osint-investigation/references/sources/opencorporates.md +103 -0
- package/.agent/skills/osint-investigation/references/sources/sec-edgar.md +83 -0
- package/.agent/skills/osint-investigation/references/sources/senate-ld.md +89 -0
- package/.agent/skills/osint-investigation/references/sources/usaspending.md +97 -0
- package/.agent/skills/osint-investigation/references/sources/wayback.md +93 -0
- package/.agent/skills/osint-investigation/references/sources/wikipedia.md +107 -0
- package/.agent/skills/osint-investigation/scripts/_http.py +82 -0
- package/.agent/skills/osint-investigation/scripts/_normalize.py +67 -0
- package/.agent/skills/osint-investigation/scripts/build_findings.py +221 -0
- package/.agent/skills/osint-investigation/scripts/entity_resolution.py +228 -0
- package/.agent/skills/osint-investigation/scripts/fetch_courtlistener.py +149 -0
- package/.agent/skills/osint-investigation/scripts/fetch_gdelt.py +161 -0
- package/.agent/skills/osint-investigation/scripts/fetch_icij_offshore.py +234 -0
- package/.agent/skills/osint-investigation/scripts/fetch_nyc_acris.py +203 -0
- package/.agent/skills/osint-investigation/scripts/fetch_ofac_sdn.py +175 -0
- package/.agent/skills/osint-investigation/scripts/fetch_opencorporates.py +191 -0
- package/.agent/skills/osint-investigation/scripts/fetch_sec_edgar.py +184 -0
- package/.agent/skills/osint-investigation/scripts/fetch_senate_ld.py +146 -0
- package/.agent/skills/osint-investigation/scripts/fetch_usaspending.py +170 -0
- package/.agent/skills/osint-investigation/scripts/fetch_wayback.py +142 -0
- package/.agent/skills/osint-investigation/scripts/fetch_wikipedia.py +266 -0
- package/.agent/skills/osint-investigation/scripts/timing_analysis.py +252 -0
- package/.agent/skills/oss-forensics/SKILL.md +10 -9
- package/.agent/skills/oss-forensics/scripts/evidence-store.py +313 -0
- package/.agent/skills/parallel-cli/SKILL.md +2 -2
- package/.agent/skills/pinggy-tunnel/SKILL.md +3 -3
- package/.agent/skills/pixel-art/SKILL.md +2 -2
- package/.agent/skills/plan/SKILL.md +10 -10
- package/.agent/skills/requesting-code-review/SKILL.md +4 -6
- package/.agent/skills/research-paper-writing/SKILL.md +32 -32
- package/.agent/skills/rest-graphql-debug/SKILL.md +31 -32
- package/.agent/skills/s6-container-supervision/SKILL.md +1 -1
- package/.agent/skills/scrapling/SKILL.md +1 -1
- package/.agent/skills/sherlock/SKILL.md +1 -1
- package/.agent/skills/simplify-code/SKILL.md +5 -7
- package/.agent/skills/skill-authoring/SKILL.md +4 -4
- package/.agent/skills/spike/SKILL.md +11 -13
- package/.agent/skills/subagent-driven-development/SKILL.md +7 -11
- package/.agent/skills/systematic-debugging/SKILL.md +13 -14
- package/.agent/skills/test-driven-development/SKILL.md +6 -7
- package/.agent/skills/video-orchestrator/SKILL.md +1 -1
- package/.agent/skills/web-pentest/SKILL.md +7 -7
- package/.mindforge/config.json +3 -2
- package/.mindforge/dynamic-workflows/REGISTRY.md +4 -1
- package/.mindforge/dynamic-workflows/index.json +910 -840
- package/.mindforge/dynamic-workflows/scripts/accessibility-audit.js +88 -90
- package/.mindforge/dynamic-workflows/scripts/ai-model-eval.js +59 -61
- package/.mindforge/dynamic-workflows/scripts/api-contract-test.js +87 -85
- package/.mindforge/dynamic-workflows/scripts/api-migration.js +120 -122
- package/.mindforge/dynamic-workflows/scripts/architecture-modernization.js +84 -86
- package/.mindforge/dynamic-workflows/scripts/code-audit.js +75 -77
- package/.mindforge/dynamic-workflows/scripts/code-explainer.js +99 -101
- package/.mindforge/dynamic-workflows/scripts/competitive-analysis.js +62 -64
- package/.mindforge/dynamic-workflows/scripts/competitive-teardown.js +106 -108
- package/.mindforge/dynamic-workflows/scripts/cost-analysis.js +78 -80
- package/.mindforge/dynamic-workflows/scripts/data-pipeline-validate.js +47 -49
- package/.mindforge/dynamic-workflows/scripts/database-migration.js +85 -87
- package/.mindforge/dynamic-workflows/scripts/debug-detective.js +97 -99
- package/.mindforge/dynamic-workflows/scripts/dependency-health.js +81 -83
- package/.mindforge/dynamic-workflows/scripts/design-system-audit.js +84 -86
- package/.mindforge/dynamic-workflows/scripts/documentation-gen.js +65 -67
- package/.mindforge/dynamic-workflows/scripts/feature-planner.js +78 -80
- package/.mindforge/dynamic-workflows/scripts/incident-response.js +81 -83
- package/.mindforge/dynamic-workflows/scripts/multi-repo-sync.js +49 -51
- package/.mindforge/dynamic-workflows/scripts/mutation-testing.js +113 -115
- package/.mindforge/dynamic-workflows/scripts/onboard-codebase.js +79 -81
- package/.mindforge/dynamic-workflows/scripts/orchestrate-review.js +115 -0
- package/.mindforge/dynamic-workflows/scripts/perf-optimize.js +97 -99
- package/.mindforge/dynamic-workflows/scripts/pr-review.js +61 -63
- package/.mindforge/dynamic-workflows/scripts/refactor-plan.js +88 -90
- package/.mindforge/dynamic-workflows/scripts/release-prep.js +79 -81
- package/.mindforge/dynamic-workflows/scripts/security-hardening.js +117 -119
- package/.mindforge/dynamic-workflows/scripts/security-threat-model.js +119 -121
- package/.mindforge/dynamic-workflows/scripts/tdd-sprint.js +80 -82
- package/.mindforge/dynamic-workflows/scripts/tech-evaluation.js +50 -52
- package/.mindforge/dynamic-workflows/scripts/test-coverage-gap.js +68 -70
- package/.mindforge/dynamic-workflows/scripts/ux-heuristic-audit.js +89 -91
- package/.mindforge/dynamic-workflows/scripts/verification-loop.js +138 -0
- package/.mindforge/dynamic-workflows/scripts/workflow-optimizer.js +136 -0
- package/.mindforge/dynamic-workflows/scripts/writer-reviewer.js +63 -65
- package/.mindforge/memory/sync-manifest.json +1 -1
- package/.mindforge/personas/advisor-researcher.md +2 -2
- package/.mindforge/personas/api-load-tester.md +1 -1
- package/.mindforge/personas/authentication-architect.md +1 -1
- package/.mindforge/personas/backup-recovery-specialist.md +1 -1
- package/.mindforge/personas/build-optimizer.md +1 -1
- package/.mindforge/personas/caching-strategist.md +1 -1
- package/.mindforge/personas/chaos-engineer.md +1 -1
- package/.mindforge/personas/compliance-auditor.md +1 -1
- package/.mindforge/personas/config-management-expert.md +1 -1
- package/.mindforge/personas/coverage-specialist.md +1 -1
- package/.mindforge/personas/debug-specialist.md +2 -2
- package/.mindforge/personas/debugger.md +2 -2
- package/.mindforge/personas/dependency-auditor.md +1 -1
- package/.mindforge/personas/developer.md +1 -1
- package/.mindforge/personas/devops-engineer.md +1 -1
- package/.mindforge/personas/executor.md +1 -1
- package/.mindforge/personas/go-specialist.md +1 -1
- package/.mindforge/personas/incident-commander.md +1 -1
- package/.mindforge/personas/java-specialist.md +1 -1
- package/.mindforge/personas/kubernetes-debugger.md +1 -1
- package/.mindforge/personas/logging-architect.md +1 -1
- package/.mindforge/personas/mf-planner.md +1 -1
- package/.mindforge/personas/mf-researcher.md +1 -1
- package/.mindforge/personas/mf-reviewer.md +1 -1
- package/.mindforge/personas/nyquist-auditor.md +1 -1
- package/.mindforge/personas/observability-engineer.md +1 -1
- package/.mindforge/personas/performance-optimizer.md +1 -1
- package/.mindforge/personas/phase-researcher.md +5 -5
- package/.mindforge/personas/planner.md +1 -1
- package/.mindforge/personas/project-researcher.md +2 -2
- package/.mindforge/personas/python-specialist.md +1 -1
- package/.mindforge/personas/qa-engineer.md +1 -1
- package/.mindforge/personas/release-manager.md +1 -1
- package/.mindforge/personas/research-agent.md +4 -4
- package/.mindforge/personas/roadmapper-extend.md +1 -1
- package/.mindforge/personas/rust-specialist.md +1 -1
- package/.mindforge/personas/security-reviewer.md +1 -1
- package/.mindforge/personas/tech-writer.md +1 -1
- package/.mindforge/personas/typescript-wizard.md +1 -1
- package/.mindforge/personas/ui-researcher.md +1 -1
- package/.mindforge/skills/accessibility/SKILL.md +3 -3
- package/.mindforge/skills/agent-architecture-audit/SKILL.md +11 -0
- package/.mindforge/skills/agent-loops/SKILL.md +1 -1
- package/.mindforge/skills/arxiv/SKILL.md +6 -6
- package/.mindforge/skills/arxiv/scripts/search_arxiv.py +114 -0
- package/.mindforge/skills/code-tour/SKILL.md +2 -2
- package/.mindforge/skills/code-wiki/SKILL.md +11 -11
- package/.mindforge/skills/code-wiki/templates/README.md +31 -0
- package/.mindforge/skills/code-wiki/templates/architecture.md +30 -0
- package/.mindforge/skills/code-wiki/templates/getting-started.md +47 -0
- package/.mindforge/skills/code-wiki/templates/module.md +38 -0
- package/.mindforge/skills/concept-diagrams/SKILL.md +6 -6
- package/.mindforge/skills/concept-diagrams/examples/apartment-floor-plan-conversion.md +244 -0
- package/.mindforge/skills/concept-diagrams/examples/automated-password-reset-flow.md +276 -0
- package/.mindforge/skills/concept-diagrams/examples/autonomous-llm-research-agent-flow.md +240 -0
- package/.mindforge/skills/concept-diagrams/examples/banana-journey-tree-to-smoothie.md +161 -0
- package/.mindforge/skills/concept-diagrams/examples/commercial-aircraft-structure.md +209 -0
- package/.mindforge/skills/concept-diagrams/examples/cpu-ooo-microarchitecture.md +236 -0
- package/.mindforge/skills/concept-diagrams/examples/electricity-grid-flow.md +182 -0
- package/.mindforge/skills/concept-diagrams/examples/feature-film-production-pipeline.md +172 -0
- package/.mindforge/skills/concept-diagrams/examples/hospital-emergency-department-flow.md +165 -0
- package/.mindforge/skills/concept-diagrams/examples/ml-benchmark-grouped-bar-chart.md +114 -0
- package/.mindforge/skills/concept-diagrams/examples/place-order-uml-sequence.md +325 -0
- package/.mindforge/skills/concept-diagrams/examples/smart-city-infrastructure.md +173 -0
- package/.mindforge/skills/concept-diagrams/examples/smartphone-layer-anatomy.md +154 -0
- package/.mindforge/skills/concept-diagrams/examples/sn2-reaction-mechanism.md +247 -0
- package/.mindforge/skills/concept-diagrams/examples/wind-turbine-structure.md +338 -0
- package/.mindforge/skills/concept-diagrams/references/dashboard-patterns.md +43 -0
- package/.mindforge/skills/concept-diagrams/references/infrastructure-patterns.md +144 -0
- package/.mindforge/skills/concept-diagrams/references/physical-shape-cookbook.md +42 -0
- package/.mindforge/skills/concept-diagrams/templates/template.html +174 -0
- package/.mindforge/skills/creative-ideation/references/full-prompt-library.md +110 -0
- package/.mindforge/skills/documentation/SKILL.md +1 -1
- package/.mindforge/skills/domain-intel/SKILL.md +7 -7
- package/.mindforge/skills/domain-intel/scripts/domain_intel.py +397 -0
- package/.mindforge/skills/duckduckgo-search/SKILL.md +17 -17
- package/.mindforge/skills/duckduckgo-search/scripts/duckduckgo.sh +28 -0
- package/.mindforge/skills/environment-management/SKILL.md +1 -1
- package/.mindforge/skills/github-code-review/SKILL.md +9 -9
- package/.mindforge/skills/github-code-review/references/review-output-template.md +74 -0
- package/.mindforge/skills/github-issues/templates/bug-report.md +35 -0
- package/.mindforge/skills/github-issues/templates/feature-request.md +31 -0
- package/.mindforge/skills/github-pr-workflow/SKILL.md +3 -3
- package/.mindforge/skills/github-pr-workflow/references/ci-troubleshooting.md +183 -0
- package/.mindforge/skills/github-pr-workflow/references/conventional-commits.md +71 -0
- package/.mindforge/skills/github-pr-workflow/templates/pr-body-bugfix.md +35 -0
- package/.mindforge/skills/github-pr-workflow/templates/pr-body-feature.md +33 -0
- package/.mindforge/skills/incident-response/SKILL.md +1 -1
- package/.mindforge/skills/jupyter-live-kernel/SKILL.md +3 -3
- package/.mindforge/skills/kanban-orchestrator/SKILL.md +10 -10
- package/.mindforge/skills/kanban-worker/SKILL.md +6 -6
- package/.mindforge/skills/meme-generation/SKILL.md +1 -1
- package/.mindforge/skills/meme-generation/scripts/generate_meme.py +470 -0
- package/.mindforge/skills/meme-generation/scripts/templates.json +97 -0
- package/.mindforge/skills/obsidian/SKILL.md +15 -15
- package/.mindforge/skills/orch-pipeline/SKILL.md +2 -2
- package/.mindforge/skills/osint-investigation/SKILL.md +3 -2
- package/.mindforge/skills/osint-investigation/references/sources/courtlistener.md +98 -0
- package/.mindforge/skills/osint-investigation/references/sources/gdelt.md +104 -0
- package/.mindforge/skills/osint-investigation/references/sources/icij-offshore.md +104 -0
- package/.mindforge/skills/osint-investigation/references/sources/nyc-acris.md +90 -0
- package/.mindforge/skills/osint-investigation/references/sources/ofac-sdn.md +92 -0
- package/.mindforge/skills/osint-investigation/references/sources/opencorporates.md +103 -0
- package/.mindforge/skills/osint-investigation/references/sources/sec-edgar.md +83 -0
- package/.mindforge/skills/osint-investigation/references/sources/senate-ld.md +89 -0
- package/.mindforge/skills/osint-investigation/references/sources/usaspending.md +97 -0
- package/.mindforge/skills/osint-investigation/references/sources/wayback.md +93 -0
- package/.mindforge/skills/osint-investigation/references/sources/wikipedia.md +107 -0
- package/.mindforge/skills/osint-investigation/scripts/_http.py +82 -0
- package/.mindforge/skills/osint-investigation/scripts/_normalize.py +67 -0
- package/.mindforge/skills/osint-investigation/scripts/build_findings.py +221 -0
- package/.mindforge/skills/osint-investigation/scripts/entity_resolution.py +228 -0
- package/.mindforge/skills/osint-investigation/scripts/fetch_courtlistener.py +149 -0
- package/.mindforge/skills/osint-investigation/scripts/fetch_gdelt.py +161 -0
- package/.mindforge/skills/osint-investigation/scripts/fetch_icij_offshore.py +234 -0
- package/.mindforge/skills/osint-investigation/scripts/fetch_nyc_acris.py +203 -0
- package/.mindforge/skills/osint-investigation/scripts/fetch_ofac_sdn.py +175 -0
- package/.mindforge/skills/osint-investigation/scripts/fetch_opencorporates.py +191 -0
- package/.mindforge/skills/osint-investigation/scripts/fetch_sec_edgar.py +184 -0
- package/.mindforge/skills/osint-investigation/scripts/fetch_senate_ld.py +146 -0
- package/.mindforge/skills/osint-investigation/scripts/fetch_usaspending.py +170 -0
- package/.mindforge/skills/osint-investigation/scripts/fetch_wayback.py +142 -0
- package/.mindforge/skills/osint-investigation/scripts/fetch_wikipedia.py +266 -0
- package/.mindforge/skills/osint-investigation/scripts/timing_analysis.py +252 -0
- package/.mindforge/skills/osint-investigation/templates/source-template.md +59 -0
- package/.mindforge/skills/oss-forensics/SKILL.md +6 -6
- package/.mindforge/skills/oss-forensics/references/evidence-types.md +89 -0
- package/.mindforge/skills/oss-forensics/references/github-archive-guide.md +184 -0
- package/.mindforge/skills/oss-forensics/references/investigation-templates.md +131 -0
- package/.mindforge/skills/oss-forensics/references/recovery-techniques.md +164 -0
- package/.mindforge/skills/oss-forensics/scripts/evidence-store.py +313 -0
- package/.mindforge/skills/oss-forensics/templates/forensic-report.md +151 -0
- package/.mindforge/skills/oss-forensics/templates/malicious-package-report.md +43 -0
- package/.mindforge/skills/pixel-art/SKILL.md +2 -2
- package/.mindforge/skills/pixel-art/references/palettes.md +49 -0
- package/.mindforge/skills/plan/SKILL.md +10 -10
- package/.mindforge/skills/requesting-code-review/SKILL.md +4 -6
- package/.mindforge/skills/research-paper-writing/SKILL.md +32 -32
- package/.mindforge/skills/research-paper-writing/references/autoreason-methodology.md +394 -0
- package/.mindforge/skills/research-paper-writing/references/checklists.md +434 -0
- package/.mindforge/skills/research-paper-writing/references/citation-workflow.md +563 -0
- package/.mindforge/skills/research-paper-writing/references/experiment-patterns.md +728 -0
- package/.mindforge/skills/research-paper-writing/references/human-evaluation.md +476 -0
- package/.mindforge/skills/research-paper-writing/references/paper-types.md +481 -0
- package/.mindforge/skills/research-paper-writing/references/reviewer-guidelines.md +433 -0
- package/.mindforge/skills/research-paper-writing/references/sources.md +191 -0
- package/.mindforge/skills/research-paper-writing/references/writing-guide.md +474 -0
- package/.mindforge/skills/research-paper-writing/templates/README.md +251 -0
- package/.mindforge/skills/scrapling/SKILL.md +1 -1
- package/.mindforge/skills/security-review/SKILL.md +1 -1
- package/.mindforge/skills/sherlock/SKILL.md +1 -1
- package/.mindforge/skills/simplify-code/SKILL.md +5 -7
- package/.mindforge/skills/spike/SKILL.md +11 -13
- package/.mindforge/skills/subagent-driven-development/SKILL.md +7 -11
- package/.mindforge/skills/subagent-driven-development/references/context-budget-discipline.md +53 -0
- package/.mindforge/skills/subagent-driven-development/references/gates-taxonomy.md +93 -0
- package/.mindforge/skills/systematic-debugging/SKILL.md +13 -14
- package/.mindforge/skills/test-driven-development/SKILL.md +7 -8
- package/.mindforge/skills/testing-standards/SKILL.md +1 -1
- package/.mindforge/skills/web-pentest/SKILL.md +2 -2
- package/.mindforge/skills/web-pentest/references/bypass-techniques.md +133 -0
- package/.mindforge/skills/web-pentest/references/exploitation-techniques.md +204 -0
- package/.mindforge/skills/web-pentest/references/scope-enforcement.md +110 -0
- package/.mindforge/skills/web-pentest/references/vuln-taxonomy.md +81 -0
- package/.mindforge/skills/web-pentest/templates/authorization.md +69 -0
- package/.mindforge/skills/web-pentest/templates/pentest-report.md +178 -0
- package/.mindforge/skills/writing-skills/SKILL.md +4 -3
- package/CHANGELOG.md +35 -0
- package/MINDFORGE.md +3 -3
- package/README.md +9 -7
- package/RELEASENOTES.md +65 -2
- package/SECURITY.md +5 -3
- package/bin/autonomous/auto-runner.js +5 -2
- package/bin/engine/skill-loader.js +4 -0
- package/bin/governance/rbac.js +4 -0
- package/bin/memory/eis-client.js +1 -0
- package/bin/mindforge-cli.js +5 -0
- package/bin/models/bedrock-provider.js +192 -0
- package/bin/models/model-client.js +19 -0
- package/bin/spawn-agent.js +9 -2
- package/docs/commands-reference.md +68 -6
- package/docs/faq.md +38 -1
- package/docs/getting-started.md +27 -12
- package/docs/sdk-reference.md +36 -3
- package/docs/troubleshooting.md +59 -1
- package/docs/user-guide.md +7 -4
- package/package.json +3 -3
- package/.claude/commands/mindforge/skill-tdd.md +0 -53
- package/.claude/commands/mindforge/skills-index.md +0 -118
- package/.claude/commands/mindforge/systematic-debug.md +0 -60
- package/.claude/commands/mindforge/wf-accessibility-audit.md +0 -31
- package/.claude/commands/mindforge/wf-ai-model-eval.md +0 -31
- package/.claude/commands/mindforge/wf-api-migration.md +0 -31
- package/.claude/commands/mindforge/wf-architecture-modernization.md +0 -32
- package/.claude/commands/mindforge/wf-catalog.md +0 -59
- package/.claude/commands/mindforge/wf-code-audit.md +0 -31
- package/.claude/commands/mindforge/wf-code-explainer.md +0 -31
- package/.claude/commands/mindforge/wf-competitive-analysis.md +0 -31
- package/.claude/commands/mindforge/wf-competitive-teardown.md +0 -31
- package/.claude/commands/mindforge/wf-cost-analysis.md +0 -31
- package/.claude/commands/mindforge/wf-data-pipeline-validate.md +0 -31
- package/.claude/commands/mindforge/wf-database-migration.md +0 -31
- package/.claude/commands/mindforge/wf-debug-detective.md +0 -32
- package/.claude/commands/mindforge/wf-design-system-audit.md +0 -31
- package/.claude/commands/mindforge/wf-documentation-gen.md +0 -31
- package/.claude/commands/mindforge/wf-feature-planner.md +0 -31
- package/.claude/commands/mindforge/wf-incident-response.md +0 -31
- package/.claude/commands/mindforge/wf-multi-repo-sync.md +0 -31
- package/.claude/commands/mindforge/wf-mutation-testing.md +0 -31
- package/.claude/commands/mindforge/wf-onboard-codebase.md +0 -31
- package/.claude/commands/mindforge/wf-perf-optimize.md +0 -31
- package/.claude/commands/mindforge/wf-pr-review.md +0 -31
- package/.claude/commands/mindforge/wf-refactor-plan.md +0 -31
- package/.claude/commands/mindforge/wf-release-prep.md +0 -31
- package/.claude/commands/mindforge/wf-security-threat-model.md +0 -31
- package/.claude/commands/mindforge/wf-tdd-sprint.md +0 -31
- package/.claude/commands/mindforge/wf-tech-evaluation.md +0 -31
- package/.claude/commands/mindforge/wf-ux-heuristic-audit.md +0 -31
- package/.claude/commands/mindforge/wf-writer-reviewer.md +0 -30
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
# Penetration Test Report
|
|
2
|
+
|
|
3
|
+
**Target:** <name + URL>
|
|
4
|
+
**Engagement ID:** <slug>
|
|
5
|
+
**Engagement window:** <start> – <end>
|
|
6
|
+
**Operator:** <name>
|
|
7
|
+
**Tester:**
|
|
8
|
+
**Report generated:** <ISO 8601 timestamp>
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Executive Summary
|
|
13
|
+
|
|
14
|
+
<2-4 paragraph plain-language summary. Focus on:
|
|
15
|
+
- What was tested
|
|
16
|
+
- What was found (count by severity)
|
|
17
|
+
- Most critical finding in one sentence
|
|
18
|
+
- High-level remediation recommendation>
|
|
19
|
+
|
|
20
|
+
| Severity | Count |
|
|
21
|
+
|----------|-------|
|
|
22
|
+
| Critical | 0 |
|
|
23
|
+
| High | 0 |
|
|
24
|
+
| Medium | 0 |
|
|
25
|
+
| Low | 0 |
|
|
26
|
+
| Info | 0 |
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Engagement Scope
|
|
31
|
+
|
|
32
|
+
In-scope targets (from `engagement/scope.txt`):
|
|
33
|
+
|
|
34
|
+
- <host or CIDR>
|
|
35
|
+
|
|
36
|
+
Out of scope: see `engagement/authorization.md`.
|
|
37
|
+
|
|
38
|
+
Authorization basis: see `engagement/authorization.md`.
|
|
39
|
+
|
|
40
|
+
## Methodology
|
|
41
|
+
|
|
42
|
+
Approach was based on the `web-pentest` skill (a
|
|
43
|
+
adaptation of the OWASP Testing Guide with elements of Shannon's
|
|
44
|
+
proof-based methodology). Phases performed:
|
|
45
|
+
|
|
46
|
+
- [ ] Pre-recon (source code review)
|
|
47
|
+
- [ ] Recon (live, read-only)
|
|
48
|
+
- [ ] Vulnerability analysis (one queue per OWASP class)
|
|
49
|
+
- [ ] Exploitation (proof-based)
|
|
50
|
+
- [ ] Reporting
|
|
51
|
+
|
|
52
|
+
Tools used: <nmap, whatweb, curl, browser tool, ...>.
|
|
53
|
+
|
|
54
|
+
## Findings (L3/L4 — Verified Exploitable)
|
|
55
|
+
|
|
56
|
+
> Every finding in this section has a reproducible proof-of-concept.
|
|
57
|
+
> L1/L2 candidates that were not promoted to confirmed exploitation
|
|
58
|
+
> are listed in the "Not Exploited" section.
|
|
59
|
+
|
|
60
|
+
### F-001: <Title>
|
|
61
|
+
|
|
62
|
+
- **Severity:** Critical | High | Medium | Low
|
|
63
|
+
- **CVSS 3.1 vector:** `CVSS:3.1/AV:N/AC:L/...`
|
|
64
|
+
- **CVSS 3.1 base score:** N.N
|
|
65
|
+
- **CWE:** CWE-XX
|
|
66
|
+
- **Affected endpoint(s):** `GET https://target.example/api/...`
|
|
67
|
+
- **Affected parameter(s):** `id`
|
|
68
|
+
- **Discovered:** <date>
|
|
69
|
+
|
|
70
|
+
#### Description
|
|
71
|
+
|
|
72
|
+
<What is the bug, in plain language.>
|
|
73
|
+
|
|
74
|
+
#### Proof
|
|
75
|
+
|
|
76
|
+
Request:
|
|
77
|
+
|
|
78
|
+
```http
|
|
79
|
+
GET /api/items?id=1%27%20OR%201=1-- HTTP/1.1
|
|
80
|
+
Host: target.example
|
|
81
|
+
Cookie: session=...
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Response (excerpt):
|
|
85
|
+
|
|
86
|
+
```http
|
|
87
|
+
HTTP/1.1 200 OK
|
|
88
|
+
Content-Type: application/json
|
|
89
|
+
|
|
90
|
+
[{"id":1,...}, {"id":2,...}, ... <full table dumped>]
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
#### Reproduction
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
curl -sS 'https://target.example/api/items?id=1%27%20OR%201=1--' \
|
|
97
|
+
-H 'Cookie: session=YOUR_TEST_SESSION'
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
#### Impact
|
|
101
|
+
|
|
102
|
+
<What an attacker gains. Be specific. "Could allow data extraction" is
|
|
103
|
+
worse than "Allowed extraction of all 4 columns from the `users` table
|
|
104
|
+
in our test (PoC redacted PII), and the same query shape applies to
|
|
105
|
+
any other parameter using the same code path.">
|
|
106
|
+
|
|
107
|
+
#### Remediation
|
|
108
|
+
|
|
109
|
+
<Specific, actionable. "Use parameterized queries" is better than
|
|
110
|
+
"sanitize inputs." Include code example if possible.>
|
|
111
|
+
|
|
112
|
+
#### Verification (post-fix)
|
|
113
|
+
|
|
114
|
+
To verify the fix, re-run the reproduction command. The response
|
|
115
|
+
should be HTTP 400, an empty result, or a result containing only the
|
|
116
|
+
record matching `id=1` literally.
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
(repeat per finding)
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## Not Exploited (L1/L2 candidates)
|
|
125
|
+
|
|
126
|
+
Candidates that pattern-matched but were not promoted to L3 within
|
|
127
|
+
the engagement window. Listed for completeness; do NOT report these
|
|
128
|
+
as confirmed vulnerabilities.
|
|
129
|
+
|
|
130
|
+
| ID | Class | Endpoint | Status | Why not promoted |
|
|
131
|
+
|----|-------|----------|--------|------------------|
|
|
132
|
+
| INJ-002 | SQLi | `/api/search?q=` | L2 partial | Bypass set exhausted; appears to use parameterized binding |
|
|
133
|
+
| XSS-003 | reflected | `/error?msg=` | L1 identified | Could not produce executable context — output is JSON-encoded |
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## Out-of-Scope Observations
|
|
138
|
+
|
|
139
|
+
(Findings or hints noticed but NOT tested because they were outside
|
|
140
|
+
scope. These are documentation, not findings. The operator decides
|
|
141
|
+
whether to extend scope and re-test.)
|
|
142
|
+
|
|
143
|
+
- The application sends to `https://third-party.example/...` — payload
|
|
144
|
+
could trigger third-party-side bugs but third party is out of scope.
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## Limitations
|
|
149
|
+
|
|
150
|
+
What was NOT tested, and why:
|
|
151
|
+
|
|
152
|
+
- <Class of test>: <reason>
|
|
153
|
+
|
|
154
|
+
Examples:
|
|
155
|
+
- DDoS / stress testing — explicitly excluded by engagement scope.
|
|
156
|
+
- Authenticated business-logic flows requiring billing — no test
|
|
157
|
+
credit card available.
|
|
158
|
+
- Mobile API surfaces — out of scope.
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## Appendices
|
|
163
|
+
|
|
164
|
+
- A: `engagement/authorization.md` — authorization on file
|
|
165
|
+
- B: `engagement/scope.txt` — machine-readable scope
|
|
166
|
+
- C: `engagement/request-log.jsonl` — every active request issued
|
|
167
|
+
- D: `findings/*-queue.json` — per-class candidate queues
|
|
168
|
+
- E: `evidence/` — raw captures (request/response pairs)
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## Disclaimer
|
|
173
|
+
|
|
174
|
+
This report describes vulnerabilities discovered during a
|
|
175
|
+
time-bounded penetration test against the listed targets within the
|
|
176
|
+
listed scope. Absence of a finding in this report does not imply the
|
|
177
|
+
target is secure; only that no exploitable issue was found in scope
|
|
178
|
+
X within time T using methods Y.
|
|
@@ -169,11 +169,12 @@ criteria that must be true before the agent considers the task complete.]
|
|
|
169
169
|
Flag any overlap and resolve per the rules above.
|
|
170
170
|
4. **Register in MANIFEST.md** (if the project maintains one). Add the skill entry
|
|
171
171
|
with name, version, status, and trigger count.
|
|
172
|
-
5. **
|
|
172
|
+
5. **Validate the skill file**:
|
|
173
173
|
```bash
|
|
174
|
-
mindforge
|
|
174
|
+
node bin/mindforge-cli.js validate-skill path/to/SKILL.md
|
|
175
175
|
```
|
|
176
|
-
|
|
176
|
+
Then manually test trigger activation with a handful of representative prompts
|
|
177
|
+
to confirm it fires on-topic and doesn't fire on unrelated tasks.
|
|
177
178
|
|
|
178
179
|
## Skill review checklist (for reviewing others' skills)
|
|
179
180
|
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,40 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [11.9.0] — 2026-07-27 — Bedrock Provider + Full Dry-Run Audit
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
- `bin/models/bedrock-provider.js`: AWS Bedrock provider with Anthropic/Bedrock config switch and base64 credential decoding
|
|
7
|
+
|
|
8
|
+
### Fixes (from a full exhaustive dry-run of all 224 commands, 216 personas, and 355 skills)
|
|
9
|
+
- Resolved phantom-tool references ported unmodified from a different agent harness across 40 personas and ~40 skills (`Context7`/`search_web`/`read_url_content` → `WebFetch`/`WebSearch`; `CommandStatus`/`ReadTerminal`/`terminal`/`read_file`/`write_file`/`search_files`/`patch` → real Claude Code tool names; `delegate_task` → `Agent`; `kanban_create` → `TaskCreate`)
|
|
10
|
+
- Repointed 21 broken `@.agent/references/` and `@.agent/templates/` path references to their real `docs/References/` and `docs/Templates/*/` locations
|
|
11
|
+
- Copied in missing companion `scripts/`/`references/`/`templates/` assets for 17 skills that referenced files never carried over during porting
|
|
12
|
+
- Fixed hardcoded broken paths (`~/.hermes/skills`, `/home/teknium/...`, `HERMES_HOME`)
|
|
13
|
+
- Fixed a markdown fence-nesting bug in `code-tour` and 4 truncated heredoc strings in `github-code-review`
|
|
14
|
+
- Removed banned single-word triggers (`test`, `tests`) from `testing-standards`
|
|
15
|
+
- CI: build SDK before test suite; run Verification before Health Check in execution-plane
|
|
16
|
+
- Security: patched hono and picomatch HIGH-severity vulnerabilities
|
|
17
|
+
|
|
18
|
+
## [11.8.3] — 2026-07-01 — Autopsy Fixes Stable Release
|
|
19
|
+
|
|
20
|
+
### Fixes (all confirmed by IQ200 deep audit)
|
|
21
|
+
- `bin/mindforge-cli.js`: Added `--version` / `-V` flag — now prints version and exits 0
|
|
22
|
+
- `bin/spawn-agent.js`: Marked spawn/identity as `[NOT IMPLEMENTED in v1.0]` in help text; added `assertSafeName()` path-containment guard to spawn branch
|
|
23
|
+
- `.mindforge/config.json`: `mesh.node_id` confirmed `"auto"` (not "beta-node")
|
|
24
|
+
- `bin/governance/rbac.js`: Created re-export shim → `rbac-manager.js`
|
|
25
|
+
- `bin/engine/skill-loader.js`: Created stub module with `loadSkill`, `matchTriggers`, `VERSION` exports
|
|
26
|
+
- `bin/memory/eis-client.js`: Added `module.exports.EISClient = EISClient` — named import now works
|
|
27
|
+
- `sdk/`: Added `@types/node` dev dependency; 24 TypeScript typecheck errors resolved
|
|
28
|
+
- `bin/autonomous/auto-runner.js`: `null` phase now throws `TypeError` instead of silently coercing to `"0"`
|
|
29
|
+
- `.mindforge/skills/`: Resolved 12 duplicate trigger strings — skill routing is now deterministic
|
|
30
|
+
|
|
31
|
+
### Health Score
|
|
32
|
+
- IQ200 audit: 248/258 → 258/258 checks passing (100%)
|
|
33
|
+
- Test suite: 95/97 → 95/97 (2 env-skipped, 0 failures)
|
|
34
|
+
- 0 CVEs across all 3 packages
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
3
38
|
## [11.8.2] — 2026-07-01 — Clean Stable Release
|
|
4
39
|
|
|
5
40
|
### Fixes
|
package/MINDFORGE.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
# MINDFORGE.md — Parameter Registry (v11.
|
|
1
|
+
# MINDFORGE.md — Parameter Registry (v11.9.0)
|
|
2
2
|
|
|
3
3
|
## 1. IDENTITY & VERSIONING
|
|
4
4
|
|
|
5
5
|
[NAME] = MindForge
|
|
6
|
-
[VERSION] = 11.
|
|
6
|
+
[VERSION] = 11.9.0
|
|
7
7
|
[STABLE] = true
|
|
8
8
|
[MODE] = "Platform Sovereign"
|
|
9
|
-
[REQUIRED_CORE_VERSION] = 11.
|
|
9
|
+
[REQUIRED_CORE_VERSION] = 11.9.0
|
|
10
10
|
[SOVEREIGN_IDENTITY] = true
|
|
11
11
|
[SRE_LAYER_ENABLED] = true
|
|
12
12
|
|
package/README.md
CHANGED
|
@@ -4,8 +4,11 @@
|
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
## Latest: v11.
|
|
7
|
+
## Latest: v11.9.0
|
|
8
8
|
|
|
9
|
+
- **v11.9.0** (2026-07-01) — Autopsy Fixes Stable — 258/258 IQ200 checks passing; `--version` flag, EISClient named import, rbac shim, skill-loader stub, null-phase guard, 12 duplicate triggers resolved, SDK 0 typecheck errors, path-containment guard on spawn
|
|
10
|
+
- **v11.8.2** (2026-07-01) — Clean Stable — ESLint 0 errors, health command output fixed, ZTAI lazy instantiation, pr-review CLI entry point, worktree timeout fix
|
|
11
|
+
- **v11.8.1** (2026-07-01) — First Stable — hono+picomatch CVEs patched (0 vulnerabilities), SRE simulator gated, spawn stub disclosure, EIS/browser/ZTAI guards added
|
|
9
12
|
- **v11.8.0 — "Workflow Forge II".** Expands the Dynamic Workflow Library from 12 to 32 workflows across 5 tiers — adds a new **Beast tier** for compound 5-phase adversarial workflows (security-hardening, accessibility-audit, security-threat-model), plus 18 more across Dev/Ops/Intelligence/Research. 21 new `/mindforge:wf-*` commands. Total: 219 commands.
|
|
10
13
|
- **v11.7.0 — "Workflow Forge".** Ships the first Dynamic Workflow Library — 12 pre-built multi-agent workflow scripts that run via Claude Code's `Workflow` tool with true parallel agent execution. Four tiers: Research (deep-research, competitive-analysis, tech-evaluation), Dev (code-audit, feature-planner, pr-review, tdd-sprint, refactor-plan), Ops (incident-response, release-prep), Intelligence (onboard-codebase, perf-optimize). 13 new `/mindforge:wf-*` commands. Total: 198 commands.
|
|
11
14
|
- **v11.6.0 — "Skill Forge".** Adds 80 community-sourced skills across 8 domains (software-development, github, devops, research, security, creative, data-science, note-taking) — 30 promoted to engine tier for automatic trigger-matching, 50 in the extended tier for explicit activation. Three new slash commands: `/mindforge:systematic-debug`, `/mindforge:skill-tdd`, `/mindforge:skills-index`. Total: 153 skills, 232 engine-tier entries, 185 commands.
|
|
@@ -87,7 +90,7 @@ npx mindforge-cc@latest --antigravity --local
|
|
|
87
90
|
### 🔗 Use the MCP server (standalone)
|
|
88
91
|
|
|
89
92
|
The MindForge MCP server is published as its own npm package,
|
|
90
|
-
**`mindforge-mcp-server`** (`11.
|
|
93
|
+
**`mindforge-mcp-server`** (`11.9.0`), and is listed on the official
|
|
91
94
|
[MCP Registry](https://registry.modelcontextprotocol.io) as
|
|
92
95
|
`io.github.sairam0424/mindforge`. Wire it into Claude Code with one command:
|
|
93
96
|
|
|
@@ -114,6 +117,7 @@ It exposes **7 tools over stdio** — 6 read-only plus 1 guarded write:
|
|
|
114
117
|
After install, open Claude Code and type:
|
|
115
118
|
- `/mindforge:status` — verify installation and show project health
|
|
116
119
|
- `/mindforge:next` — auto-discover your first task
|
|
120
|
+
- `node bin/mindforge-cli.js --version` — prints `11.9.0`
|
|
117
121
|
|
|
118
122
|
---
|
|
119
123
|
|
|
@@ -404,13 +408,11 @@ See `.mindforge/production/token-optimiser.md`.
|
|
|
404
408
|
|
|
405
409
|
| Tier | Command | What it does |
|
|
406
410
|
|------|---------|-------------|
|
|
407
|
-
| Research | `/mindforge:wf-deep-research` | Fan-out web research → adversarial verify → cited report |
|
|
408
411
|
| Research | `/mindforge:wf-competitive-analysis` | 5× parallel angles → SWOT → positioning |
|
|
409
412
|
| Research | `/mindforge:wf-tech-evaluation` | 5× dimensions → scored matrix → recommendation |
|
|
410
|
-
| Research | `/mindforge:wf-
|
|
411
|
-
| Research | `/mindforge:wf-
|
|
412
|
-
| Research | `/mindforge:wf-
|
|
413
|
-
| Research | `/mindforge:wf-persona-research` | Interview simulation × 5 → insight clustering → persona card |
|
|
413
|
+
| Research | `/mindforge:wf-ai-model-eval` | Model benchmark → scoring matrix → recommendation |
|
|
414
|
+
| Research | `/mindforge:wf-ux-heuristic-audit` | 10 Nielsen heuristics → severity ranking → fix brief |
|
|
415
|
+
| Research | `/mindforge:wf-competitive-teardown` | 5 competitor angles → positioning report |
|
|
414
416
|
| Dev | `/mindforge:wf-code-audit` | 3× parallel auditors → verified findings → risk report |
|
|
415
417
|
| Dev | `/mindforge:wf-feature-planner` | Brief → PRD → architecture → user stories |
|
|
416
418
|
| Dev | `/mindforge:wf-pr-review` | 4× parallel reviewers → consensus verdict |
|
package/RELEASENOTES.md
CHANGED
|
@@ -1,12 +1,75 @@
|
|
|
1
1
|
# Release Notes
|
|
2
2
|
|
|
3
|
+
## v11.8.3 — 2026-07-01 — Autopsy Fixes Stable Release
|
|
4
|
+
|
|
5
|
+
### What's New
|
|
6
|
+
First fully IQ200-audited stable release — 258/258 checks passing. All 10 issues found by deep audit resolved.
|
|
7
|
+
|
|
8
|
+
### Fixes
|
|
9
|
+
- `bin/mindforge-cli.js`: Added `--version` / `-V` flag — now prints version and exits 0
|
|
10
|
+
- `bin/spawn-agent.js`: Added `assertSafeName()` path-containment guard on spawn branch; `[NOT IMPLEMENTED in v1.0]` disclosure in help text
|
|
11
|
+
- `bin/governance/rbac.js`: Created re-export shim → `rbac-manager.js`
|
|
12
|
+
- `bin/engine/skill-loader.js`: Created stub module (`loadSkill`, `matchTriggers`, `VERSION`)
|
|
13
|
+
- `bin/memory/eis-client.js`: Added `module.exports.EISClient` named export
|
|
14
|
+
- `bin/autonomous/auto-runner.js`: Null `phase` now throws `TypeError` instead of silently coercing to `"0"`
|
|
15
|
+
- `.mindforge/skills/`: 12 duplicate trigger strings resolved — skill routing is now deterministic
|
|
16
|
+
- `sdk/`: `@types/node` installed; 24 TypeScript typecheck errors resolved (0 errors)
|
|
17
|
+
- `.mindforge/config.json`: `mesh.node_id` confirmed `"auto"` (not `"beta-node"`)
|
|
18
|
+
|
|
19
|
+
### Stats
|
|
20
|
+
- IQ200 audit: **258/258 checks passing** (96.1% → 100%)
|
|
21
|
+
- SDK typecheck: 24 errors → **0 errors**
|
|
22
|
+
- Tests: 95/97 (0 failures, 2 env-skipped)
|
|
23
|
+
- 0 CVEs across all 3 packages
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## v11.8.2 — 2026-07-01 — Clean Stable Release
|
|
28
|
+
|
|
29
|
+
### Fixes
|
|
30
|
+
- `bin/installer-core.js`: Added `require.main === module` guard — `health` command now produces full diagnostic output
|
|
31
|
+
- `bin/mindforge-cli.js:185`: Fixed null-status exit code bug — signal-killed child processes now exit 1 (not 0)
|
|
32
|
+
- `bin/change-classifier.js`: Tier 2 branch now pushes descriptive reasons to `reasons[]`
|
|
33
|
+
- `sdk/tests/sdk.test.js`: Version assertion made dynamic — reads from `package.json`, no longer hardcoded
|
|
34
|
+
- `tests/sdk-exports.test.js`: Fixed MODULE_NOT_FOUND path resolution
|
|
35
|
+
- `bin/governance/ztai-manager.js`: `SecureEnclaveProvider` now lazy-instantiated — no spurious Tier-3 warning on unrelated commands
|
|
36
|
+
- `bin/review/cross-review-engine.js`: CLI entry point added (`--help`, `--diff`, `--phase`, `--context`)
|
|
37
|
+
- `tests/worktree-engine.test.js`: 90-second timeout override added
|
|
38
|
+
- ESLint: 6,028 errors resolved to **0 errors**
|
|
39
|
+
|
|
40
|
+
### Stats
|
|
41
|
+
- Tests: 91/94 → **95/97** (0 failures)
|
|
42
|
+
- ESLint errors: 6,028 → **0**
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## v11.8.1 — 2026-07-01 — First Stable Release
|
|
47
|
+
|
|
48
|
+
### Security
|
|
49
|
+
- **mcp-server**: Patched hono ≥4.12.25 — fixes CORS credential reflection, path traversal (Windows), body-limit bypass, Set-Cookie merging, Lambda@Edge header drop (5 CVEs)
|
|
50
|
+
- **sdk**: Patched picomatch — fixes ReDoS via extglob quantifiers and Method Injection via POSIX character classes
|
|
51
|
+
- **ztai**: Added `SECURITY_TIER_3_SIMULATED` disclosure constant and startup warning for in-process key simulation
|
|
52
|
+
|
|
53
|
+
### Fixes
|
|
54
|
+
- `bin/sre/sli-verifier.js`: `simulateShadowWave()` gated behind `MINDFORGE_SRE_SIMULATE=true` env flag
|
|
55
|
+
- `bin/spawn-agent.js`: Silent 500ms stub replaced with explicit error and usage guidance
|
|
56
|
+
- `bin/memory/eis-client.js`: `resolveRemoteNode()` now throws explicitly (not silently returns null)
|
|
57
|
+
- `bin/browser/session-manager.js`: `capabilities.importFromBrowser=false` export added
|
|
58
|
+
- `.mindforge/config.json`: `mesh.node_id` changed from `"beta-node"` to `"auto"`
|
|
59
|
+
|
|
60
|
+
### Stats
|
|
61
|
+
- Vulnerabilities: 2 HIGH → **0**
|
|
62
|
+
- npm audit: 0 vulnerabilities across root, sdk, mcp-server
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
3
66
|
## v11.8.0 — Workflow Forge II
|
|
4
67
|
|
|
5
68
|
**Released:** 2026-06-24
|
|
6
69
|
|
|
7
70
|
### What's New
|
|
8
71
|
|
|
9
|
-
MindForge v11.8.0 "Workflow Forge II" expands the Dynamic Workflow Library from 12 to **
|
|
72
|
+
MindForge v11.8.0 "Workflow Forge II" expands the Dynamic Workflow Library from 12 to **32 workflows** and introduces a new **Beast tier** for compound multi-phase adversarial workflows.
|
|
10
73
|
|
|
11
74
|
### Beast Tier (NEW)
|
|
12
75
|
|
|
@@ -86,7 +149,7 @@ node bin/mindforge-cli.js workflow info <name> # show phases and description
|
|
|
86
149
|
|
|
87
150
|
1. `npx mindforge-cc@latest` — all 12 workflows and 13 commands install automatically
|
|
88
151
|
2. Run `/mindforge:wf-catalog` to browse the library
|
|
89
|
-
3. Try `/mindforge:wf-
|
|
152
|
+
3. Try `/mindforge:wf-competitive-analysis <your topic>` or `/mindforge:wf-code-audit` for a first run
|
|
90
153
|
|
|
91
154
|
---
|
|
92
155
|
|
package/SECURITY.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# Security Policy
|
|
2
2
|
|
|
3
|
+
> **Current version:** 11.8.3 | **npm audit:** 0 vulnerabilities across root, sdk, mcp-server
|
|
4
|
+
|
|
3
5
|
## Supported Versions
|
|
4
6
|
|
|
5
7
|
| Version | Status | Support Level |
|
|
@@ -44,7 +46,7 @@ We follow responsible disclosure practices. We will credit reporters in the rele
|
|
|
44
46
|
|
|
45
47
|
---
|
|
46
48
|
|
|
47
|
-
## Security Features (v11.0.0)
|
|
49
|
+
## Security Features (v11.0.0+)
|
|
48
50
|
|
|
49
51
|
### Authentication & Authorization
|
|
50
52
|
|
|
@@ -138,10 +140,10 @@ narrow disposable memory · scan skills/hooks/MCP/agents as supply-chain artifac
|
|
|
138
140
|
For security questions that are not vulnerability reports, open a GitHub Discussion with the "security" label.
|
|
139
141
|
|
|
140
142
|
## Tier-3 Trust (ZTAI Secure Enclave)
|
|
141
|
-
Tier-3 trust in
|
|
143
|
+
Tier-3 trust in v11.x uses **in-process key simulation** (`bin/governance/ztai-manager.js` `SecureEnclaveProvider`). Key material resides in the Node.js heap — it is NOT hardware-isolated. A real TPM/HSM provider is planned for v12.x. **Do not use Tier-3 trust for production credential workflows in v11.x.**
|
|
142
144
|
|
|
143
145
|
## Audit Log Tamper Evidence
|
|
144
146
|
The Merkle chain (`bin/governance/audit-hash.js`) provides tamper-evidence for content and ordering but does not prevent replay of identical entries. Restrict OS-level write access to `.planning/AUDIT.jsonl` to prevent replay attacks.
|
|
145
147
|
|
|
146
148
|
## Agent Dispatch (spawn mode)
|
|
147
|
-
`bin/spawn-agent.js` spawn mode exits with an error in
|
|
149
|
+
`bin/spawn-agent.js` spawn mode exits with an error in v11.x — real agent dispatch is not yet implemented at the shell level. Use Claude Code slash commands (`/mindforge:auto`, `/mindforge:next`) to dispatch agents.
|
|
@@ -108,10 +108,13 @@ function decideRollback(config, hasCommitTracking = false) {
|
|
|
108
108
|
|
|
109
109
|
class AutoRunner {
|
|
110
110
|
constructor(options = {}) {
|
|
111
|
-
if (options.phase
|
|
111
|
+
if (options.phase === null || options.phase === undefined) {
|
|
112
|
+
throw new TypeError('AutoRunner: phase must be a non-null string or number');
|
|
113
|
+
}
|
|
114
|
+
if (!/^[a-zA-Z0-9_-]+$/.test(String(options.phase))) {
|
|
112
115
|
throw new Error('Invalid phase identifier — must be alphanumeric, hyphens, or underscores');
|
|
113
116
|
}
|
|
114
|
-
this.phase = String(options.phase
|
|
117
|
+
this.phase = String(options.phase);
|
|
115
118
|
this.isHeadless = options.headless || false;
|
|
116
119
|
this.isPaused = false;
|
|
117
120
|
|
package/bin/memory/eis-client.js
CHANGED
package/bin/mindforge-cli.js
CHANGED
|
@@ -147,6 +147,11 @@ if (COMMAND === 'workflow') {
|
|
|
147
147
|
process.exit(0);
|
|
148
148
|
}
|
|
149
149
|
|
|
150
|
+
if (ARGS.includes('--version') || ARGS.includes('-V')) {
|
|
151
|
+
console.log(require('../package.json').version);
|
|
152
|
+
process.exit(0);
|
|
153
|
+
}
|
|
154
|
+
|
|
150
155
|
if (!COMMAND || ARGS.includes('--help') || ARGS.includes('-h')) {
|
|
151
156
|
printUsage();
|
|
152
157
|
process.exit(0);
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MindForge — AWS Bedrock Provider
|
|
3
|
+
*
|
|
4
|
+
* Implements the same complete() / streamComplete() interface as AnthropicProvider
|
|
5
|
+
* but routes calls through the AWS Bedrock Converse API using boto3-style logic
|
|
6
|
+
* ported from Trelix's BedrockBackend.
|
|
7
|
+
*
|
|
8
|
+
* Credential resolution order (mirrors Trelix):
|
|
9
|
+
* 1. AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY env vars
|
|
10
|
+
* 2. AWS_PROFILE env var (named profile from ~/.aws/credentials)
|
|
11
|
+
* 3. Instance/task role (when running on EC2/ECS/Lambda — no env vars needed)
|
|
12
|
+
*
|
|
13
|
+
* Model ID format: Bedrock inference profile IDs with us.* prefix for on-demand:
|
|
14
|
+
* us.anthropic.claude-sonnet-4-6 (Sonnet 4.6)
|
|
15
|
+
* us.anthropic.claude-opus-4-8 (Opus 4.8)
|
|
16
|
+
* us.anthropic.claude-haiku-4-5-20251001-v1:0 (Haiku 4.5 — fallback)
|
|
17
|
+
*/
|
|
18
|
+
'use strict';
|
|
19
|
+
|
|
20
|
+
// Map MindForge short model IDs → Bedrock inference profile IDs
|
|
21
|
+
const BEDROCK_MODEL_MAP = {
|
|
22
|
+
'claude-sonnet-4-6': 'us.anthropic.claude-sonnet-4-6',
|
|
23
|
+
'claude-opus-4-7': 'us.anthropic.claude-opus-4-8',
|
|
24
|
+
'claude-opus-4-8': 'us.anthropic.claude-opus-4-8',
|
|
25
|
+
'claude-haiku-4-5': 'us.anthropic.claude-haiku-4-5-20251001-v1:0',
|
|
26
|
+
// Pass-through: if already a Bedrock ID, use as-is
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
function resolveBedrockModelId(modelId) {
|
|
30
|
+
return BEDROCK_MODEL_MAP[modelId] || modelId;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Transparently decode a credential value that may be stored as base64.
|
|
35
|
+
* If the value decodes to a printable single-line string it is returned decoded;
|
|
36
|
+
* otherwise the original value is returned unchanged.
|
|
37
|
+
* Mirrors Trelix's BedrockBackend._decode_credential() exactly.
|
|
38
|
+
*/
|
|
39
|
+
function decodeCredential(value) {
|
|
40
|
+
if (!value) return value;
|
|
41
|
+
// Trim surrounding whitespace first — GitHub Secrets copy-paste often adds trailing newlines
|
|
42
|
+
const trimmed = value.trim();
|
|
43
|
+
try {
|
|
44
|
+
const decoded = Buffer.from(trimmed, 'base64').toString('utf8').trim();
|
|
45
|
+
// Accept only if printable ASCII and single-line (real AWS keys are always [A-Za-z0-9/+=])
|
|
46
|
+
if (decoded && /^[\x20-\x7E]+$/.test(decoded) && !decoded.includes('\n')) {
|
|
47
|
+
return decoded;
|
|
48
|
+
}
|
|
49
|
+
} catch (_) { /* not valid base64 — fall through */ }
|
|
50
|
+
return trimmed;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
class BedrockProvider {
|
|
54
|
+
constructor(opts = {}) {
|
|
55
|
+
this._region = decodeCredential(opts.region || process.env.AWS_REGION || 'us-east-1');
|
|
56
|
+
this._accessKey = decodeCredential(opts.accessKey || process.env.AWS_ACCESS_KEY_ID);
|
|
57
|
+
this._secretKey = decodeCredential(opts.secretKey || process.env.AWS_SECRET_ACCESS_KEY);
|
|
58
|
+
this._profile = decodeCredential(opts.profile || process.env.AWS_PROFILE);
|
|
59
|
+
this._client = null; // lazy-init on first call
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
_getClient() {
|
|
63
|
+
if (this._client) return this._client;
|
|
64
|
+
|
|
65
|
+
let AWS;
|
|
66
|
+
try {
|
|
67
|
+
AWS = require('@aws-sdk/client-bedrock-runtime');
|
|
68
|
+
} catch (e) {
|
|
69
|
+
throw new Error(
|
|
70
|
+
'AWS Bedrock provider requires @aws-sdk/client-bedrock-runtime. ' +
|
|
71
|
+
'Run: npm install @aws-sdk/client-bedrock-runtime'
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
const clientConfig = { region: this._region };
|
|
76
|
+
|
|
77
|
+
if (this._accessKey && this._secretKey) {
|
|
78
|
+
// Pass decoded credentials explicitly — mirrors Trelix BedrockBackend pattern.
|
|
79
|
+
// This prevents the SDK from falling through to its env-var credential chain,
|
|
80
|
+
// which would read the raw (still-base64) env vars and produce signature errors.
|
|
81
|
+
clientConfig.credentials = {
|
|
82
|
+
accessKeyId: this._accessKey,
|
|
83
|
+
secretAccessKey: this._secretKey,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
// No explicit creds: SDK falls back to instance role / ~/.aws/credentials / env chain.
|
|
87
|
+
// In that case the env vars must already be plain-text (not base64).
|
|
88
|
+
|
|
89
|
+
this._client = new AWS.BedrockRuntimeClient(clientConfig);
|
|
90
|
+
this._AWS = AWS;
|
|
91
|
+
return this._client;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
async complete(params) {
|
|
95
|
+
const {
|
|
96
|
+
model,
|
|
97
|
+
systemPrompt,
|
|
98
|
+
userMessage,
|
|
99
|
+
maxTokens = 4096,
|
|
100
|
+
temperature = 0.7,
|
|
101
|
+
} = params;
|
|
102
|
+
|
|
103
|
+
const client = this._getClient();
|
|
104
|
+
const { ConverseCommand } = this._AWS;
|
|
105
|
+
|
|
106
|
+
const bedrockModelId = resolveBedrockModelId(model);
|
|
107
|
+
|
|
108
|
+
const request = {
|
|
109
|
+
modelId: bedrockModelId,
|
|
110
|
+
inferenceConfig: {
|
|
111
|
+
maxTokens,
|
|
112
|
+
temperature,
|
|
113
|
+
},
|
|
114
|
+
messages: [
|
|
115
|
+
{ role: 'user', content: [{ text: userMessage }] },
|
|
116
|
+
],
|
|
117
|
+
};
|
|
118
|
+
if (systemPrompt) {
|
|
119
|
+
request.system = [{ text: systemPrompt }];
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
const start = Date.now();
|
|
123
|
+
let response;
|
|
124
|
+
try {
|
|
125
|
+
response = await client.send(new ConverseCommand(request));
|
|
126
|
+
} catch (err) {
|
|
127
|
+
throw Object.assign(
|
|
128
|
+
new Error(`Bedrock Converse error: ${err.message}`),
|
|
129
|
+
{ status: err.$metadata?.httpStatusCode || 500, provider: 'bedrock' }
|
|
130
|
+
);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
const output = response.output?.message?.content?.[0]?.text || '';
|
|
134
|
+
const usage = response.usage || {};
|
|
135
|
+
const latency = Date.now() - start;
|
|
136
|
+
|
|
137
|
+
const { priceCall } = require('./pricing-registry');
|
|
138
|
+
const cost = priceCall(bedrockModelId, {
|
|
139
|
+
input_tokens: usage.inputTokens || 0,
|
|
140
|
+
output_tokens: usage.outputTokens || 0,
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
return {
|
|
144
|
+
model: bedrockModelId,
|
|
145
|
+
content: output,
|
|
146
|
+
input_tokens: usage.inputTokens || 0,
|
|
147
|
+
output_tokens: usage.outputTokens || 0,
|
|
148
|
+
cost_usd: cost,
|
|
149
|
+
latency_ms: latency,
|
|
150
|
+
provider: 'bedrock',
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
async streamComplete(messages, options = {}) {
|
|
155
|
+
const client = this._getClient();
|
|
156
|
+
const { ConverseStreamCommand } = this._AWS;
|
|
157
|
+
|
|
158
|
+
const bedrockModelId = resolveBedrockModelId(options.model || 'claude-sonnet-4-6');
|
|
159
|
+
|
|
160
|
+
// Separate system messages from the conversation
|
|
161
|
+
const systemMessages = messages.filter(m => m.role === 'system');
|
|
162
|
+
const convoMessages = messages.filter(m => m.role !== 'system');
|
|
163
|
+
|
|
164
|
+
const request = {
|
|
165
|
+
modelId: bedrockModelId,
|
|
166
|
+
inferenceConfig: { maxTokens: options.maxTokens || 4096 },
|
|
167
|
+
messages: convoMessages.map(m => ({
|
|
168
|
+
role: m.role,
|
|
169
|
+
content: [{ text: typeof m.content === 'string' ? m.content : JSON.stringify(m.content) }],
|
|
170
|
+
})),
|
|
171
|
+
};
|
|
172
|
+
if (systemMessages.length > 0) {
|
|
173
|
+
request.system = [{ text: systemMessages.map(m => m.content).join('\n') }];
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
let streamResponse;
|
|
177
|
+
try {
|
|
178
|
+
streamResponse = await client.send(new ConverseStreamCommand(request));
|
|
179
|
+
} catch (err) {
|
|
180
|
+
throw Object.assign(
|
|
181
|
+
new Error(`Bedrock stream error: ${err.message}`),
|
|
182
|
+
{ status: err.$metadata?.httpStatusCode || 500 }
|
|
183
|
+
);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
// Return an async iterable that yields SSE-style text chunks,
|
|
187
|
+
// matching the shape callers of streamComplete expect.
|
|
188
|
+
return streamResponse.stream;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
module.exports = BedrockProvider;
|