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,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "4-lens parallel review — factual, domain, safety, style — coordinated as one panel and merged into a single verdict"
|
|
3
|
+
---
|
|
4
|
+
# /mindforge:wf-orchestrate-review
|
|
5
|
+
|
|
6
|
+
Runs the **Orchestrate Review** dynamic workflow.
|
|
7
|
+
|
|
8
|
+
## Usage
|
|
9
|
+
`/mindforge:wf-orchestrate-review [target artifact, or describe what to review]`
|
|
10
|
+
|
|
11
|
+
## What it does
|
|
12
|
+
- **Scope**: Pins the target and any domain context
|
|
13
|
+
- **Panel**: 4 parallel lenses — factual accuracy, domain correctness, safety, style/voice
|
|
14
|
+
- **Consensus**: Merges all findings, deduplicates, assigns severity (blocking/major/minor)
|
|
15
|
+
- **Verdict**: APPROVED / APPROVED_WITH_SUGGESTIONS / CHANGES_REQUIRED / BLOCKING
|
|
16
|
+
|
|
17
|
+
## Running
|
|
18
|
+
|
|
19
|
+
Invoke via Claude Code's Workflow tool:
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
Workflow({
|
|
23
|
+
scriptPath: ".mindforge/dynamic-workflows/scripts/orchestrate-review.js",
|
|
24
|
+
args: "<your input>"
|
|
25
|
+
})
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
`args` can be a plain string target, or `{ target, domainContext }` for reviews that need
|
|
29
|
+
subject-matter framing (e.g. "this is a medical dosage guide" so the domain lens knows
|
|
30
|
+
what expertise to check against).
|
|
31
|
+
|
|
32
|
+
Or discover via CLI:
|
|
33
|
+
```bash
|
|
34
|
+
node bin/mindforge-cli.js workflow info orchestrate-review
|
|
35
|
+
```
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Implementer vs. scorer loop: revise each round, score against a fixed metric, keep re-attempting until the score is maxed or a round cap is hit"
|
|
3
|
+
---
|
|
4
|
+
# /mindforge:wf-verification-loop
|
|
5
|
+
|
|
6
|
+
Runs the **Verification Loop** dynamic workflow.
|
|
7
|
+
|
|
8
|
+
## Usage
|
|
9
|
+
`/mindforge:wf-verification-loop [task description, or { task, metric, targetScore, maxRounds }]`
|
|
10
|
+
|
|
11
|
+
## What it does
|
|
12
|
+
- **Scope**: Pins the artifact, the metric, and the target score / max-round cap
|
|
13
|
+
- **Round**: An implementer agent revises the artifact; a separate scorer agent grades it
|
|
14
|
+
against the same fixed rubric every round; repeats until the target score is hit, the
|
|
15
|
+
score plateaus for `plateauRounds` consecutive rounds, or `maxRounds` is reached
|
|
16
|
+
- **Report**: Round-by-round score history plus the final artifact
|
|
17
|
+
|
|
18
|
+
Unlike a fixed-count review pass, this loop's whole point is that the implementer keeps
|
|
19
|
+
re-attempting the SAME task, judged by a separate scorer, until the score stops moving —
|
|
20
|
+
not a one-shot audit.
|
|
21
|
+
|
|
22
|
+
## Running
|
|
23
|
+
|
|
24
|
+
Invoke via Claude Code's Workflow tool:
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
Workflow({
|
|
28
|
+
scriptPath: ".mindforge/dynamic-workflows/scripts/verification-loop.js",
|
|
29
|
+
args: {
|
|
30
|
+
task: "Tighten this system prompt for token efficiency without losing instruction coverage",
|
|
31
|
+
metric: "10 pts clarity, 10 pts token economy, 10 pts no lost instructions",
|
|
32
|
+
targetScore: 95,
|
|
33
|
+
maxRounds: 8
|
|
34
|
+
}
|
|
35
|
+
})
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
`args` can also be a plain string task description if you want the scorer to infer and
|
|
39
|
+
hold its own rubric. Defaults: `targetScore` 95, `maxRounds` 8, `plateauRounds` 2 (stop
|
|
40
|
+
early if the score doesn't improve for 2 consecutive rounds).
|
|
41
|
+
|
|
42
|
+
Or discover via CLI:
|
|
43
|
+
```bash
|
|
44
|
+
node bin/mindforge-cli.js workflow info verification-loop
|
|
45
|
+
```
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Builder + scorer + a distinct process-optimizer role: proposes structural changes to the PROCESS itself across rounds, not just fixes to one output"
|
|
3
|
+
---
|
|
4
|
+
# /mindforge:wf-workflow-optimizer
|
|
5
|
+
|
|
6
|
+
Runs the **Workflow Optimizer** dynamic workflow.
|
|
7
|
+
|
|
8
|
+
## Usage
|
|
9
|
+
`/mindforge:wf-workflow-optimizer [task family description, or { taskFamily, metric, maxRounds, priorHistory }]`
|
|
10
|
+
|
|
11
|
+
## What it does
|
|
12
|
+
- **Scope**: Pins the task family, the fixed outcome metric, and any prior round history
|
|
13
|
+
you supply (this script holds no state of its own between invocations)
|
|
14
|
+
- **Cycle**: A builder agent runs under the *current* process instructions; a separate
|
|
15
|
+
scorer agent grades the output against the fixed metric; a **third, distinct
|
|
16
|
+
process-optimizer agent** — with no role in building or scoring — diagnoses *why* the
|
|
17
|
+
process produced that result and rewrites the builder's instructions for next round.
|
|
18
|
+
Repeats until the optimizer judges the process has converged or `maxRounds` is hit.
|
|
19
|
+
- **Report**: The score trend across rounds alongside every round's structural diagnosis,
|
|
20
|
+
so you can see whether rising scores came from real process changes, not just luck.
|
|
21
|
+
|
|
22
|
+
This is not "implementer vs. scorer, keep re-attempting the same task" (that's
|
|
23
|
+
`/mindforge:wf-verification-loop`, one artifact, one metric, no separate optimizer role).
|
|
24
|
+
This workflow's object of improvement is the **process itself** — the builder's own
|
|
25
|
+
instructions evolve round to round, and the deliverable includes that evolution history,
|
|
26
|
+
not just a final artifact.
|
|
27
|
+
|
|
28
|
+
## Running
|
|
29
|
+
|
|
30
|
+
Invoke via Claude Code's Workflow tool:
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
Workflow({
|
|
34
|
+
scriptPath: ".mindforge/dynamic-workflows/scripts/workflow-optimizer.js",
|
|
35
|
+
args: {
|
|
36
|
+
taskFamily: "Write a one-paragraph executive summary of a technical incident postmortem",
|
|
37
|
+
metric: "30 pts non-technical-reader clarity, 30 pts root-cause traceability, 40 pts action-item concreteness",
|
|
38
|
+
maxRounds: 5
|
|
39
|
+
}
|
|
40
|
+
})
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
To continue optimizing the SAME process across separate sessions, pass the previous run's
|
|
44
|
+
returned `processHistory` back in as `args.priorHistory` — the script itself has no
|
|
45
|
+
filesystem access and keeps no state between invocations, so cross-session continuity is
|
|
46
|
+
the caller's responsibility.
|
|
47
|
+
|
|
48
|
+
Or discover via CLI:
|
|
49
|
+
```bash
|
|
50
|
+
node bin/mindforge-cli.js workflow info workflow-optimizer
|
|
51
|
+
```
|
|
@@ -86,8 +86,8 @@ If the user asks for a different layout (e.g., images alongside the article, or
|
|
|
86
86
|
|
|
87
87
|
If the user supplies reference images (paths pasted inline, attachments, or a URL):
|
|
88
88
|
|
|
89
|
-
1. For each reference, call `vision_analyze` with the path/URL and a question asking for style, palette, composition, and subject. Record the returned description in `{output-dir}/references/NN-ref-{slug}.md` via `
|
|
90
|
-
2. **Do not** try to copy the binary via `
|
|
89
|
+
1. For each reference, call `vision_analyze` with the path/URL and a question asking for style, palette, composition, and subject. Record the returned description in `{output-dir}/references/NN-ref-{slug}.md` via `Write`.
|
|
90
|
+
2. **Do not** try to copy the binary via `Write` / `Read` — those are text-only. If you want a local copy for the record, use `Bash` (`cp "$src" "{output-dir}/references/NN-ref-{slug}.{ext}"`). The skill itself never needs to read the binary; it works off the vision description.
|
|
91
91
|
3. Since `image_generate` doesn't take image inputs, the vision description is what gets embedded in prompts during Step 5.
|
|
92
92
|
|
|
93
93
|
Full procedures: [references/workflow.md](references/workflow.md#step-1-detect-reference-images).
|
|
@@ -101,7 +101,7 @@ Full procedures: [references/workflow.md](references/workflow.md#step-1-detect-r
|
|
|
101
101
|
| Core arguments | 2-5 main points |
|
|
102
102
|
| Positions | Where illustrations add value |
|
|
103
103
|
|
|
104
|
-
Read source (file path → `
|
|
104
|
+
Read source (file path → `Read`, or pasted text) and write the analysis to `{output-dir}/analysis.md` using `Write`.
|
|
105
105
|
|
|
106
106
|
Full procedures: [references/workflow.md](references/workflow.md#step-2-analyze).
|
|
107
107
|
|
|
@@ -123,7 +123,7 @@ Full procedures: [references/workflow.md](references/workflow.md#step-3-confirm-
|
|
|
123
123
|
|
|
124
124
|
### Step 4: Generate Outline → `outline.md`
|
|
125
125
|
|
|
126
|
-
Save `{output-dir}/outline.md` using `
|
|
126
|
+
Save `{output-dir}/outline.md` using `Write` with frontmatter (type, density, style, palette, image_count) and one entry per illustration:
|
|
127
127
|
|
|
128
128
|
```yaml
|
|
129
129
|
## Illustration 1
|
|
@@ -142,7 +142,7 @@ Full template: [references/workflow.md](references/workflow.md#step-4-generate-o
|
|
|
142
142
|
For each illustration:
|
|
143
143
|
|
|
144
144
|
1. Create a prompt file per [references/prompt-construction.md](references/prompt-construction.md).
|
|
145
|
-
2. Save to `{output-dir}/prompts/NN-{type}-{slug}.md` using `
|
|
145
|
+
2. Save to `{output-dir}/prompts/NN-{type}-{slug}.md` using `Write` with YAML frontmatter.
|
|
146
146
|
3. Prompts MUST use type-specific templates with structured sections (ZONES / LABELS / COLORS / STYLE / ASPECT).
|
|
147
147
|
4. LABELS MUST include article-specific data: actual numbers, terms, metrics, quotes.
|
|
148
148
|
5. Process references (`direct`/`style`/`palette`) per prompt frontmatter — for `direct` usage, embed a textual description of the reference in the prompt (since `image_generate` doesn't take reference-image inputs).
|
|
@@ -153,7 +153,7 @@ For each prompt file:
|
|
|
153
153
|
|
|
154
154
|
1. Call `image_generate(prompt=..., aspect_ratio=...)`. `image_generate` returns a JSON result containing an image URL; it does NOT write to disk and does NOT accept an output path.
|
|
155
155
|
2. Map the prompt's `ASPECT` to `image_generate`'s enum: `16:9` → `landscape`, `9:16` → `portrait`, `1:1` → `square`. Custom ratios → nearest named aspect.
|
|
156
|
-
3. Download the returned URL to `{output-dir}/NN-{type}-{slug}.png` via `
|
|
156
|
+
3. Download the returned URL to `{output-dir}/NN-{type}-{slug}.png` via `Bash` (e.g. `curl -sSL -o "{output-dir}/NN-{type}-{slug}.png" "{url}"`).
|
|
157
157
|
4. On generation failure, auto-retry once.
|
|
158
158
|
|
|
159
159
|
Note: the underlying image-generation backend is user-configured (default: FAL FLUX 2 Klein 9B) and is NOT agent-selectable via `image_generate`. Do not write model names into prompts expecting them to route.
|
|
@@ -195,5 +195,5 @@ Images: X/N generated
|
|
|
195
195
|
3. **Don't illustrate metaphors literally** — visualize the underlying concept.
|
|
196
196
|
4. **Prompt files are mandatory** — no image generation without a saved prompt file. The file is what lets you regenerate or switch backends later.
|
|
197
197
|
5. **`image_generate` aspect ratios** — the tool supports `landscape`, `portrait`, and `square`. Custom ratios map to the nearest option.
|
|
198
|
-
6. **`image_generate` returns a URL, not a local file** — always download via `
|
|
198
|
+
6. **`image_generate` returns a URL, not a local file** — always download via `Bash` (`curl`) before inserting local image paths into the article.
|
|
199
199
|
7. **No backend selection from the agent** — `image_generate` uses whatever model the user configured (default: FAL FLUX 2 Klein 9B). Don't write `"use <model> to generate this"` into prompts expecting it to route.
|
|
@@ -14,8 +14,8 @@ Search and retrieve academic papers from arXiv via their free REST API. No API k
|
|
|
14
14
|
|--------|---------|
|
|
15
15
|
| Search papers | `curl "https://export.arxiv.org/api/query?search_query=all:QUERY&max_results=5"` |
|
|
16
16
|
| Get specific paper | `curl "https://export.arxiv.org/api/query?id_list=2402.03300"` |
|
|
17
|
-
| Read abstract (web) | `
|
|
18
|
-
| Read full paper (PDF) | `
|
|
17
|
+
| Read abstract (web) | `WebFetch(urls=["https://arxiv.org/abs/2402.03300"])` |
|
|
18
|
+
| Read full paper (PDF) | `WebFetch(urls=["https://arxiv.org/pdf/2402.03300"])` |
|
|
19
19
|
|
|
20
20
|
## Searching Papers
|
|
21
21
|
|
|
@@ -142,10 +142,10 @@ After finding a paper, read it:
|
|
|
142
142
|
|
|
143
143
|
```
|
|
144
144
|
# Abstract page (fast, metadata + abstract)
|
|
145
|
-
|
|
145
|
+
WebFetch(urls=["https://arxiv.org/abs/2402.03300"])
|
|
146
146
|
|
|
147
147
|
# Full paper (PDF → markdown via Firecrawl)
|
|
148
|
-
|
|
148
|
+
WebFetch(urls=["https://arxiv.org/pdf/2402.03300"])
|
|
149
149
|
```
|
|
150
150
|
|
|
151
151
|
For local PDF processing, see the `ocr-and-documents` skill.
|
|
@@ -238,8 +238,8 @@ curl -s "https://api.semanticscholar.org/graph/v1/author/search?query=Yann+LeCun
|
|
|
238
238
|
|
|
239
239
|
1. **Discover**: `python scripts/search_arxiv.py "your topic" --sort date --max 10`
|
|
240
240
|
2. **Assess impact**: `curl -s "https://api.semanticscholar.org/graph/v1/paper/arXiv:ID?fields=citationCount,influentialCitationCount"`
|
|
241
|
-
3. **Read abstract**: `
|
|
242
|
-
4. **Read full paper**: `
|
|
241
|
+
3. **Read abstract**: `WebFetch(urls=["https://arxiv.org/abs/ID"])`
|
|
242
|
+
4. **Read full paper**: `WebFetch(urls=["https://arxiv.org/pdf/ID"])`
|
|
243
243
|
5. **Find related work**: `curl -s "https://api.semanticscholar.org/graph/v1/paper/arXiv:ID/references?fields=title,citationCount&limit=20"`
|
|
244
244
|
6. **Get recommendations**: POST to Semantic Scholar recommendations endpoint
|
|
245
245
|
7. **Track authors**: `curl -s "https://api.semanticscholar.org/graph/v1/author/search?query=NAME"`
|
|
@@ -6,7 +6,7 @@ version: 0.1.0
|
|
|
6
6
|
|
|
7
7
|
# Code Wiki Skill
|
|
8
8
|
|
|
9
|
-
Generate a comprehensive wiki for any codebase — overview, architecture, per-module deep-dives, Mermaid class and sequence diagrams. Inspired by Google CodeWiki, but works on local repos, private repos, and any language. Uses only existing tools (`
|
|
9
|
+
Generate a comprehensive wiki for any codebase — overview, architecture, per-module deep-dives, Mermaid class and sequence diagrams. Inspired by Google CodeWiki, but works on local repos, private repos, and any language. Uses only existing tools (`Bash`, `Read`, `Grep`, `Write`); no Docker, no external services, no extra dependencies.
|
|
10
10
|
|
|
11
11
|
This skill produces **reference documentation** (what/how). It does not produce strategic narrative (why — that's a different skill).
|
|
12
12
|
|
|
@@ -19,7 +19,7 @@ This skill produces **reference documentation** (what/how). It does not produce
|
|
|
19
19
|
|
|
20
20
|
Do NOT use this for:
|
|
21
21
|
- Single-file or single-function documentation — just answer directly
|
|
22
|
-
- API reference for one specific endpoint — use `
|
|
22
|
+
- API reference for one specific endpoint — use `Read` and answer inline
|
|
23
23
|
- Strategic "why does this exist" narrative — different skill, different purpose
|
|
24
24
|
- Codebases the user is actively developing in this session — just answer questions as they come
|
|
25
25
|
|
|
@@ -31,7 +31,7 @@ Do NOT use this for:
|
|
|
31
31
|
|
|
32
32
|
## How to Run
|
|
33
33
|
|
|
34
|
-
Invoke through the `
|
|
34
|
+
Invoke through the `Bash` tool from the target repo's root, then use `Read` / `Grep` / `Write` to produce the wiki. Default output location is `~/.agent/wikis/<repo-name>/`. Only write into the repo (`docs/wiki/`) when the user explicitly requests it.
|
|
35
35
|
|
|
36
36
|
## Quick Reference
|
|
37
37
|
|
|
@@ -75,13 +75,13 @@ REPO_NAME=$(basename "$PWD")
|
|
|
75
75
|
Then set the output dir:
|
|
76
76
|
|
|
77
77
|
```bash
|
|
78
|
-
OUTPUT_DIR="$HOME/.
|
|
78
|
+
OUTPUT_DIR="$HOME/.mindforge/wikis/$REPO_NAME"
|
|
79
79
|
mkdir -p "$OUTPUT_DIR/modules" "$OUTPUT_DIR/diagrams"
|
|
80
80
|
```
|
|
81
81
|
|
|
82
82
|
### 2. Scan repo structure
|
|
83
83
|
|
|
84
|
-
Use the `
|
|
84
|
+
Use the `Bash` tool for the shell work, `Read` for manifests:
|
|
85
85
|
|
|
86
86
|
```bash
|
|
87
87
|
# Shallow tree first
|
|
@@ -104,7 +104,7 @@ pygount --format=summary \
|
|
|
104
104
|
. 2>/dev/null || true
|
|
105
105
|
```
|
|
106
106
|
|
|
107
|
-
Then `
|
|
107
|
+
Then `Read` the relevant manifests (`package.json`, `pyproject.toml`, `setup.py`, `Cargo.toml`, `go.mod`, `pom.xml`, `build.gradle`) and the project README. Use `search_files target='files'` to find them rather than guessing names.
|
|
108
108
|
|
|
109
109
|
### 3. Pick modules to document
|
|
110
110
|
|
|
@@ -125,7 +125,7 @@ State the module list to the user before generating per-module docs on big repos
|
|
|
125
125
|
|
|
126
126
|
### 4. Write `README.md`
|
|
127
127
|
|
|
128
|
-
`
|
|
128
|
+
`Read` the actual project README plus the top 2–3 entry-point files. Then `Write`:
|
|
129
129
|
|
|
130
130
|
````markdown
|
|
131
131
|
# <Project Name>
|
|
@@ -205,7 +205,7 @@ Cap at ~20 nodes per diagram. Split into sub-diagrams if larger.
|
|
|
205
205
|
|
|
206
206
|
### 6. Write per-module docs in `modules/`
|
|
207
207
|
|
|
208
|
-
For each selected module, inspect its layout with `ls`, identify 3–5 most important files (by size, by being named `core.py` / `main.py` / `__init__.py`, by being imported a lot), then `
|
|
208
|
+
For each selected module, inspect its layout with `ls`, identify 3–5 most important files (by size, by being named `core.py` / `main.py` / `__init__.py`, by being imported a lot), then `Read` those files (use `offset` / `limit` to read only what you need; prefer `Grep` for specific symbols).
|
|
209
209
|
|
|
210
210
|
````markdown
|
|
211
211
|
# Module: `<module>`
|
|
@@ -242,7 +242,7 @@ signatures, not full implementations.>
|
|
|
242
242
|
|
|
243
243
|
### 7. Write `diagrams/class-diagram.md`
|
|
244
244
|
|
|
245
|
-
Pick the 5–10 most important classes/types. `
|
|
245
|
+
Pick the 5–10 most important classes/types. `Read` them, then write:
|
|
246
246
|
|
|
247
247
|
````markdown
|
|
248
248
|
# Class Diagram
|
|
@@ -389,7 +389,7 @@ Generating a full wiki for a 500K-LOC monorepo is wildly token-expensive. Defaul
|
|
|
389
389
|
|
|
390
390
|
- Initial scan: max depth 3 directories
|
|
391
391
|
- Per-module docs: cap at 10 modules unless user expands scope
|
|
392
|
-
- Per-file reads: prefer `
|
|
392
|
+
- Per-file reads: prefer `Grep` for symbols + `Read` with `offset`/`limit` over full reads
|
|
393
393
|
- Skip vendored code (`vendor/`, `third_party/`, generated code, `_pb2.py`, `.min.js`)
|
|
394
394
|
|
|
395
395
|
If the user says "do the whole thing exhaustively", believe them — but ballpark the cost first: "this repo has ~340 source files, comprehensive coverage will be expensive — confirm?"
|
|
@@ -406,7 +406,7 @@ Full incremental-regeneration is a future enhancement — for now, regenerating
|
|
|
406
406
|
|
|
407
407
|
## Pitfalls
|
|
408
408
|
|
|
409
|
-
- **Fabricating components.** Every diagram node and claimed function call must be in the source. `
|
|
409
|
+
- **Fabricating components.** Every diagram node and claimed function call must be in the source. `Read` before writing. The single biggest failure mode for auto-generated docs is plausible-sounding fabrication.
|
|
410
410
|
- **Generic AI prose.** "This module is responsible for..." is content-free. Say what the module actually does in domain-specific terms.
|
|
411
411
|
- **Restating code as prose.** A module doc that says "the `process` function processes things by calling `process_item` on each item" is worse than just linking to the function.
|
|
412
412
|
- **Mermaid > 50 nodes.** They don't render legibly. Split them.
|
|
@@ -38,9 +38,9 @@ If a more specialized skill is available for the subject, prefer that. If none f
|
|
|
38
38
|
|
|
39
39
|
Optional: if the user wants a browsable gallery of multiple diagrams, see "Local Preview Server" at the bottom.
|
|
40
40
|
|
|
41
|
-
Load the HTML template:
|
|
41
|
+
Load the HTML template with `Read` (path relative to this skill's own directory):
|
|
42
42
|
```
|
|
43
|
-
|
|
43
|
+
Read(".agent/skills/concept-diagrams/templates/template.html")
|
|
44
44
|
```
|
|
45
45
|
|
|
46
46
|
The template embeds the full CSS design system (`c-*` color classes, text classes, light/dark variables, arrow marker styles). The SVG you generate relies on these classes being present on the hosting page.
|
|
@@ -252,7 +252,7 @@ Write a single `.html` file the user can open directly. No server, no dependenci
|
|
|
252
252
|
|
|
253
253
|
```python
|
|
254
254
|
# 1. Load the template
|
|
255
|
-
template =
|
|
255
|
+
template = Read(".agent/skills/concept-diagrams/templates/template.html")
|
|
256
256
|
|
|
257
257
|
# 2. Fill in title, subtitle, and paste your SVG
|
|
258
258
|
html = template.replace(
|
|
@@ -264,7 +264,7 @@ html = template.replace(
|
|
|
264
264
|
)
|
|
265
265
|
|
|
266
266
|
# 3. Write to a user-chosen path (or ./ by default)
|
|
267
|
-
|
|
267
|
+
Write("./sn2-mechanism.html", html)
|
|
268
268
|
```
|
|
269
269
|
|
|
270
270
|
Tell the user how to open it:
|
|
@@ -327,9 +327,9 @@ The `examples/` directory ships 15 complete, tested diagrams. Browse them for wo
|
|
|
327
327
|
| `electricity-grid-flow.md` | Multi-stage flow | Voltage hierarchy, flow markers |
|
|
328
328
|
| `ml-benchmark-grouped-bar-chart.md` | Chart | Grouped bars, dual axis |
|
|
329
329
|
|
|
330
|
-
Load any example with
|
|
330
|
+
Load any example with `Read`:
|
|
331
331
|
```
|
|
332
|
-
|
|
332
|
+
Read(".agent/skills/concept-diagrams/examples/<filename>")
|
|
333
333
|
```
|
|
334
334
|
|
|
335
335
|
---
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
# Apartment Floor Plan: 3 BHK to 4 BHK Conversion
|
|
2
|
+
|
|
3
|
+
An architectural floor plan showing a 1,500 sq ft apartment with proposed modifications to convert from 3 BHK to 4 BHK. Demonstrates architectural drawing conventions, room layouts, proposed changes with dotted lines, and area comparison tables.
|
|
4
|
+
|
|
5
|
+
## Key Patterns Used
|
|
6
|
+
|
|
7
|
+
- **Architectural floor plan**: Top-down view with walls, doors, windows
|
|
8
|
+
- **Proposed modifications**: Dotted red lines for new walls
|
|
9
|
+
- **Room color coding**: Light fills to distinguish room types
|
|
10
|
+
- **Circulation paths**: Arrows showing new access routes
|
|
11
|
+
- **Data table**: Before/after area comparison with highlighting
|
|
12
|
+
- **Architectural symbols**: North arrow, scale bar, door swings
|
|
13
|
+
|
|
14
|
+
## Diagram Type
|
|
15
|
+
|
|
16
|
+
This is an **architectural floor plan** with:
|
|
17
|
+
- **Plan view**: Top-down orthographic projection
|
|
18
|
+
- **Overlay technique**: Existing structure + proposed changes
|
|
19
|
+
- **Quantitative data**: Area measurements and comparison table
|
|
20
|
+
|
|
21
|
+
## Architectural Drawing Elements
|
|
22
|
+
|
|
23
|
+
### Wall Styles
|
|
24
|
+
|
|
25
|
+
```xml
|
|
26
|
+
<!-- Outer walls (thick) -->
|
|
27
|
+
<line class="wall" x1="0" y1="0" x2="560" y2="0"/>
|
|
28
|
+
|
|
29
|
+
<!-- Internal walls (thinner) -->
|
|
30
|
+
<line class="wall-thin" x1="180" y1="0" x2="180" y2="140"/>
|
|
31
|
+
|
|
32
|
+
<!-- Proposed new walls (dotted red) -->
|
|
33
|
+
<line class="proposed-wall" x1="125" y1="170" x2="125" y2="330"/>
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
```css
|
|
37
|
+
.wall { stroke: var(--text-primary); stroke-width: 6; fill: none; stroke-linecap: square; }
|
|
38
|
+
.wall-thin { stroke: var(--text-primary); stroke-width: 3; fill: none; }
|
|
39
|
+
.proposed-wall { stroke: #A32D2D; stroke-width: 4; fill: none; stroke-dasharray: 8 4; }
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Door Symbols
|
|
43
|
+
|
|
44
|
+
```xml
|
|
45
|
+
<!-- Door opening with swing arc -->
|
|
46
|
+
<rect x="150" y="137" width="25" height="6" fill="var(--bg-primary)"/>
|
|
47
|
+
<path class="door" d="M150,140 L150,165"/>
|
|
48
|
+
<path class="door-swing" d="M150,140 A25,25 0 0,0 175,140"/>
|
|
49
|
+
|
|
50
|
+
<!-- Sliding door (balcony) -->
|
|
51
|
+
<rect x="60" y="327" width="60" height="6" fill="var(--bg-primary)" stroke="var(--text-secondary)" stroke-width="1"/>
|
|
52
|
+
<line x1="60" y1="330" x2="90" y2="330" stroke="var(--text-secondary)" stroke-width="2"/>
|
|
53
|
+
<line x1="90" y1="330" x2="120" y2="330" stroke="var(--text-secondary)" stroke-width="2" stroke-dasharray="3 3"/>
|
|
54
|
+
|
|
55
|
+
<!-- Proposed door (dotted) -->
|
|
56
|
+
<rect x="143" y="292" width="22" height="6" fill="var(--bg-primary)" stroke="#A32D2D" stroke-width="1" stroke-dasharray="3 2"/>
|
|
57
|
+
<path d="M165,295 A22,22 0 0,0 165,273" stroke="#A32D2D" stroke-width="1" stroke-dasharray="3 2" fill="none"/>
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
```css
|
|
61
|
+
.door { stroke: var(--text-secondary); stroke-width: 1.5; fill: none; }
|
|
62
|
+
.door-swing { stroke: var(--text-tertiary); stroke-width: 1; fill: none; stroke-dasharray: 3 2; }
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Window Symbols
|
|
66
|
+
|
|
67
|
+
```xml
|
|
68
|
+
<!-- Window with glass indication -->
|
|
69
|
+
<rect class="window" x="-3" y="30" width="6" height="50"/>
|
|
70
|
+
<line class="window-glass" x1="0" y1="35" x2="0" y2="75"/>
|
|
71
|
+
|
|
72
|
+
<!-- Horizontal window (top wall) -->
|
|
73
|
+
<rect class="window" x="220" y="-3" width="60" height="6"/>
|
|
74
|
+
<line class="window-glass" x1="225" y1="0" x2="275" y2="0"/>
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
```css
|
|
78
|
+
.window { stroke: var(--text-primary); stroke-width: 1; fill: var(--bg-primary); }
|
|
79
|
+
.window-glass { stroke: #378ADD; stroke-width: 2; fill: none; }
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Room Fills
|
|
83
|
+
|
|
84
|
+
```xml
|
|
85
|
+
<!-- Different colors for room types -->
|
|
86
|
+
<rect class="room-master" x="3" y="3" width="174" height="134" rx="2"/>
|
|
87
|
+
<rect class="room-bed2" x="183" y="3" width="134" height="104" rx="2"/>
|
|
88
|
+
<rect class="room-living" x="3" y="173" width="554" height="154" rx="2"/>
|
|
89
|
+
<rect class="room-kitchen" x="443" y="3" width="114" height="104" rx="2"/>
|
|
90
|
+
<rect class="room-bath" x="183" y="113" width="54" height="54" rx="2"/>
|
|
91
|
+
|
|
92
|
+
<!-- Proposed new room (highlighted) -->
|
|
93
|
+
<rect class="room-new" x="3" y="223" width="120" height="104"/>
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
```css
|
|
97
|
+
.room-master { fill: rgba(206, 203, 246, 0.3); } /* purple tint */
|
|
98
|
+
.room-bed2 { fill: rgba(159, 225, 203, 0.3); } /* teal tint */
|
|
99
|
+
.room-bed3 { fill: rgba(250, 199, 117, 0.3); } /* amber tint */
|
|
100
|
+
.room-living { fill: rgba(245, 196, 179, 0.3); } /* coral tint */
|
|
101
|
+
.room-kitchen { fill: rgba(237, 147, 177, 0.3); } /* pink tint */
|
|
102
|
+
.room-bath { fill: rgba(133, 183, 235, 0.3); } /* blue tint */
|
|
103
|
+
.room-new { fill: rgba(163, 45, 45, 0.15); } /* red tint for proposed */
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Support Fixtures
|
|
107
|
+
|
|
108
|
+
```xml
|
|
109
|
+
<!-- Kitchen counter hint -->
|
|
110
|
+
<rect x="450" y="15" width="50" height="25" fill="none" stroke="var(--text-tertiary)" stroke-width="0.5" rx="2"/>
|
|
111
|
+
<text class="tx" x="475" y="30" text-anchor="middle">Counter</text>
|
|
112
|
+
|
|
113
|
+
<!-- Balcony (dashed outline) -->
|
|
114
|
+
<rect class="balcony-fill" x="3" y="333" width="200" height="50"/>
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
```css
|
|
118
|
+
.balcony { fill: none; stroke: var(--text-secondary); stroke-width: 2; stroke-dasharray: 6 3; }
|
|
119
|
+
.balcony-fill { fill: rgba(93, 202, 165, 0.1); }
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### Room Labels
|
|
123
|
+
|
|
124
|
+
```xml
|
|
125
|
+
<!-- Room name and area -->
|
|
126
|
+
<text class="room-label" x="90" y="65" text-anchor="middle">MASTER</text>
|
|
127
|
+
<text class="room-label" x="90" y="78" text-anchor="middle">BEDROOM</text>
|
|
128
|
+
<text class="area-label" x="90" y="95" text-anchor="middle">195 sq ft</text>
|
|
129
|
+
|
|
130
|
+
<!-- Proposed room (in red) -->
|
|
131
|
+
<text class="room-label" x="63" y="268" text-anchor="middle" fill="#A32D2D">BEDROOM 4</text>
|
|
132
|
+
<text class="tx" x="63" y="282" text-anchor="middle" fill="#A32D2D">(NEW)</text>
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
```css
|
|
136
|
+
.room-label { font-family: system-ui; font-size: 11px; fill: var(--text-primary); font-weight: 500; }
|
|
137
|
+
.area-label { font-family: system-ui; font-size: 9px; fill: var(--text-tertiary); }
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### Circulation Arrow
|
|
141
|
+
|
|
142
|
+
```xml
|
|
143
|
+
<defs>
|
|
144
|
+
<marker id="circ-arrow" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="6" markerHeight="6" orient="auto">
|
|
145
|
+
<path d="M0,0 L10,5 L0,10 Z" class="circulation-fill"/>
|
|
146
|
+
</marker>
|
|
147
|
+
</defs>
|
|
148
|
+
|
|
149
|
+
<path class="circulation" d="M300,250 L200,250 L145,250 L145,280" marker-end="url(#circ-arrow)"/>
|
|
150
|
+
<text class="tx" x="250" y="242" fill="#3B6D11" font-weight="500">New corridor access</text>
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
```css
|
|
154
|
+
.circulation { stroke: #3B6D11; stroke-width: 2; fill: none; }
|
|
155
|
+
.circulation-fill { fill: #3B6D11; }
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### North Arrow and Scale Bar
|
|
159
|
+
|
|
160
|
+
```xml
|
|
161
|
+
<!-- North arrow -->
|
|
162
|
+
<g transform="translate(520, 260)">
|
|
163
|
+
<circle cx="0" cy="0" r="20" fill="none" stroke="var(--text-tertiary)" stroke-width="0.5"/>
|
|
164
|
+
<polygon points="0,-18 -5,5 0,0 5,5" fill="var(--text-primary)"/>
|
|
165
|
+
<text class="tx" x="0" y="-22" text-anchor="middle">N</text>
|
|
166
|
+
</g>
|
|
167
|
+
|
|
168
|
+
<!-- Scale bar -->
|
|
169
|
+
<g transform="translate(420, 300)">
|
|
170
|
+
<line x1="0" y1="0" x2="100" y2="0" stroke="var(--text-primary)" stroke-width="2"/>
|
|
171
|
+
<line x1="0" y1="-5" x2="0" y2="5" stroke="var(--text-primary)" stroke-width="1"/>
|
|
172
|
+
<line x1="50" y1="-3" x2="50" y2="3" stroke="var(--text-primary)" stroke-width="1"/>
|
|
173
|
+
<line x1="100" y1="-5" x2="100" y2="5" stroke="var(--text-primary)" stroke-width="1"/>
|
|
174
|
+
<text class="tx" x="0" y="15" text-anchor="middle">0</text>
|
|
175
|
+
<text class="tx" x="50" y="15" text-anchor="middle">5'</text>
|
|
176
|
+
<text class="tx" x="100" y="15" text-anchor="middle">10'</text>
|
|
177
|
+
</g>
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## Area Comparison Table
|
|
181
|
+
|
|
182
|
+
### Table Structure
|
|
183
|
+
|
|
184
|
+
```xml
|
|
185
|
+
<!-- Header row -->
|
|
186
|
+
<rect class="table-header" x="0" y="0" width="180" height="28" rx="4 4 0 0"/>
|
|
187
|
+
<text class="ts" x="90" y="18" text-anchor="middle" font-weight="500">Room</text>
|
|
188
|
+
|
|
189
|
+
<!-- Normal row -->
|
|
190
|
+
<rect class="table-row" x="0" y="28" width="180" height="24"/>
|
|
191
|
+
<text class="tx" x="10" y="44">Master Bedroom</text>
|
|
192
|
+
<text class="tx" x="230" y="44" text-anchor="middle">195</text>
|
|
193
|
+
|
|
194
|
+
<!-- Alternating row -->
|
|
195
|
+
<rect class="table-row-alt" x="0" y="52" width="180" height="24"/>
|
|
196
|
+
|
|
197
|
+
<!-- Highlighted row (for changes) -->
|
|
198
|
+
<rect class="table-highlight" x="0" y="100" width="180" height="24"/>
|
|
199
|
+
<text class="tx" x="10" y="116" fill="#A32D2D" font-weight="500">Bedroom 4 (NEW)</text>
|
|
200
|
+
<text class="tx" x="430" y="116" text-anchor="middle" fill="#3B6D11">+100</text>
|
|
201
|
+
|
|
202
|
+
<!-- Total row -->
|
|
203
|
+
<rect x="0" y="268" width="180" height="28" fill="var(--bg-secondary)" stroke="var(--border)" stroke-width="1"/>
|
|
204
|
+
<text class="ts" x="10" y="286" font-weight="500">TOTAL CARPET AREA</text>
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
```css
|
|
208
|
+
.table-header { fill: var(--bg-secondary); }
|
|
209
|
+
.table-row { fill: var(--bg-primary); stroke: var(--border); stroke-width: 0.5; }
|
|
210
|
+
.table-row-alt { fill: var(--bg-tertiary); stroke: var(--border); stroke-width: 0.5; }
|
|
211
|
+
.table-highlight { fill: rgba(163, 45, 45, 0.1); stroke: #A32D2D; stroke-width: 0.5; }
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
## Layout Notes
|
|
215
|
+
|
|
216
|
+
- **ViewBox**: 800×780 (portrait for floor plan + table)
|
|
217
|
+
- **Scale**: 10px = 1 foot (apartment ~50ft × 33ft)
|
|
218
|
+
- **Floor plan origin**: Offset at (50, 60) for margins
|
|
219
|
+
- **Wall thickness**: 6px outer, 3px inner (represents ~6" walls)
|
|
220
|
+
- **Room labels**: Centered in each room with area below
|
|
221
|
+
- **Table placement**: Below floor plan with full width
|
|
222
|
+
|
|
223
|
+
## Color Coding
|
|
224
|
+
|
|
225
|
+
| Element | Color | Usage |
|
|
226
|
+
|---------|-------|-------|
|
|
227
|
+
| Proposed walls | Red (#A32D2D) dotted | New construction |
|
|
228
|
+
| New room fill | Red 15% opacity | Bedroom 4 area |
|
|
229
|
+
| Circulation | Green (#3B6D11) | New access path |
|
|
230
|
+
| Window glass | Blue (#378ADD) | Glass indication |
|
|
231
|
+
| Bedrooms | Purple/Teal/Amber tints | Room differentiation |
|
|
232
|
+
| Wet areas | Blue tint | Bathrooms |
|
|
233
|
+
| Living | Coral tint | Common areas |
|
|
234
|
+
|
|
235
|
+
## When to Use This Pattern
|
|
236
|
+
|
|
237
|
+
Use this diagram style for:
|
|
238
|
+
- Apartment/house floor plans
|
|
239
|
+
- Office layout planning
|
|
240
|
+
- Renovation proposals showing before/after
|
|
241
|
+
- Space planning with area calculations
|
|
242
|
+
- Real estate marketing materials
|
|
243
|
+
- Interior design presentations
|
|
244
|
+
- Building permit documentation
|