@monoes/monomindcli 1.10.54 → 1.10.55
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/.claude/agents/optimization/benchmark-suite.md +2 -0
- package/.claude/agents/optimization/load-balancer.md +2 -0
- package/.claude/agents/optimization/performance-monitor.md +2 -0
- package/.claude/agents/optimization/resource-allocator.md +3 -1
- package/.claude/agents/optimization/topology-optimizer.md +2 -0
- package/.claude/commands/mastermind/_repeat.md +21 -0
- package/.claude/commands/mastermind/_taskfile.md +235 -0
- package/.claude/commands/mastermind/adr.md +11 -0
- package/.claude/commands/mastermind/approve.md +94 -0
- package/.claude/commands/mastermind/autodev.md +32 -0
- package/.claude/commands/mastermind/budget.md +7 -0
- package/.claude/commands/mastermind/code-review.md +317 -0
- package/.claude/commands/mastermind/createorg.md +40 -1
- package/.claude/commands/mastermind/createtask.md +383 -0
- package/.claude/commands/mastermind/debug.md +22 -0
- package/.claude/commands/mastermind/design.md +20 -0
- package/.claude/commands/mastermind/do.md +526 -0
- package/.claude/commands/mastermind/execute.md +20 -0
- package/.claude/commands/mastermind/finish.md +20 -0
- package/.claude/commands/mastermind/graph-status.md +7 -0
- package/.claude/commands/mastermind/help.md +118 -0
- package/.claude/commands/mastermind/ideate.md +261 -0
- package/.claude/commands/mastermind/improve.md +345 -0
- package/.claude/commands/mastermind/loops.md +7 -0
- package/.claude/commands/mastermind/master.md +186 -6
- package/.claude/commands/mastermind/memory.md +230 -0
- package/.claude/commands/mastermind/plan.md +26 -0
- package/.claude/commands/mastermind/receive-review.md +20 -0
- package/.claude/commands/mastermind/repeat.md +257 -0
- package/.claude/commands/mastermind/runorg.md +3 -0
- package/.claude/commands/mastermind/skill-builder.md +20 -0
- package/.claude/commands/mastermind/specialagents.md +125 -0
- package/.claude/commands/mastermind/swarm.md +161 -0
- package/.claude/commands/mastermind/taskdev.md +26 -0
- package/.claude/commands/mastermind/tdd.md +22 -0
- package/.claude/commands/mastermind/techport.md +4 -0
- package/.claude/commands/mastermind/understand.md +139 -0
- package/.claude/commands/mastermind/verify.md +22 -0
- package/.claude/commands/mastermind/worktree.md +20 -0
- package/.claude/helpers/handlers/graph-status-handler.cjs +2 -1
- package/.claude/helpers/hook-handler.cjs +19 -0
- package/.claude/helpers/skill-registry.json +23 -0
- package/.claude/helpers/statusline.cjs +1 -1
- package/.claude/skills/mastermind/approve.md +15 -7
- package/.claude/skills/mastermind/autodev.md +534 -0
- package/.claude/skills/mastermind/createorg.md +21 -5
- package/.claude/skills/mastermind/debug.md +232 -0
- package/.claude/skills/mastermind/design.md +187 -0
- package/.claude/skills/mastermind/execute.md +104 -0
- package/.claude/skills/mastermind/finish.md +251 -0
- package/.claude/skills/mastermind/plan.md +180 -0
- package/.claude/skills/mastermind/receive-review.md +213 -0
- package/.claude/skills/mastermind/runorg.md +23 -8
- package/.claude/skills/mastermind/skill-builder.md +274 -0
- package/.claude/skills/mastermind/taskdev.md +307 -0
- package/.claude/skills/mastermind/tdd.md +394 -0
- package/.claude/skills/mastermind/verify.md +196 -0
- package/.claude/skills/mastermind/worktree.md +160 -132
- package/README.md +320 -253
- package/dist/src/commands/analyze.d.ts.map +1 -1
- package/dist/src/commands/analyze.js +9 -2
- package/dist/src/commands/analyze.js.map +1 -1
- package/dist/src/commands/benchmark.js.map +1 -1
- package/dist/src/commands/completions.js +1 -1
- package/dist/src/commands/guidance.js +7 -7
- package/dist/src/commands/hooks.d.ts.map +1 -1
- package/dist/src/commands/hooks.js +16 -3
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/index.d.ts +3 -2
- package/dist/src/commands/index.d.ts.map +1 -1
- package/dist/src/commands/index.js +7 -0
- package/dist/src/commands/index.js.map +1 -1
- package/dist/src/commands/init.d.ts.map +1 -1
- package/dist/src/commands/init.js +47 -13
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/neural.d.ts.map +1 -1
- package/dist/src/commands/neural.js +100 -14
- package/dist/src/commands/neural.js.map +1 -1
- package/dist/src/commands/platforms.d.ts +11 -0
- package/dist/src/commands/platforms.d.ts.map +1 -0
- package/dist/src/commands/platforms.js +195 -0
- package/dist/src/commands/platforms.js.map +1 -0
- package/dist/src/commands/ruvector/backup.js.map +1 -1
- package/dist/src/commands/ruvector/benchmark.js.map +1 -1
- package/dist/src/commands/ruvector/init.js.map +1 -1
- package/dist/src/commands/ruvector/migrate.js.map +1 -1
- package/dist/src/commands/ruvector/optimize.js.map +1 -1
- package/dist/src/commands/ruvector/status.js.map +1 -1
- package/dist/src/commands/update.js +6 -6
- package/dist/src/init/executor.d.ts.map +1 -1
- package/dist/src/init/executor.js +28 -0
- package/dist/src/init/executor.js.map +1 -1
- package/dist/src/init/statusline-generator.js +1 -1
- package/dist/src/init/types.d.ts +1 -0
- package/dist/src/init/types.d.ts.map +1 -1
- package/dist/src/mcp-server.d.ts.map +1 -1
- package/dist/src/mcp-server.js +92 -0
- package/dist/src/mcp-server.js.map +1 -1
- package/dist/src/mcp-tools/hive-mind-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/hive-mind-tools.js +52 -0
- package/dist/src/mcp-tools/hive-mind-tools.js.map +1 -1
- package/dist/src/mcp-tools/hooks-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/hooks-tools.js +106 -5
- package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
- package/dist/src/mcp-tools/index.d.ts +0 -5
- package/dist/src/mcp-tools/index.d.ts.map +1 -1
- package/dist/src/mcp-tools/index.js +0 -5
- package/dist/src/mcp-tools/index.js.map +1 -1
- package/dist/src/mcp-tools/monograph-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/monograph-tools.js +507 -5587
- package/dist/src/mcp-tools/monograph-tools.js.map +1 -1
- package/dist/src/mcp-tools/neural-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/neural-tools.js +64 -4
- package/dist/src/mcp-tools/neural-tools.js.map +1 -1
- package/dist/src/mcp-tools/security-tools.js +4 -4
- package/dist/src/memory/intelligence.d.ts +2 -2
- package/dist/src/memory/intelligence.d.ts.map +1 -1
- package/dist/src/memory/intelligence.js +108 -3
- package/dist/src/memory/intelligence.js.map +1 -1
- package/dist/src/memory/memory-bridge.js +1 -1
- package/dist/src/memory/memory-bridge.js.map +1 -1
- package/dist/src/memory/sona-optimizer.d.ts +1 -10
- package/dist/src/memory/sona-optimizer.d.ts.map +1 -1
- package/dist/src/memory/sona-optimizer.js +0 -46
- package/dist/src/memory/sona-optimizer.js.map +1 -1
- package/dist/src/runtime/headless.js +3 -3
- package/dist/src/ruvector/diff-classifier.d.ts +0 -2
- package/dist/src/ruvector/diff-classifier.d.ts.map +1 -1
- package/dist/src/ruvector/diff-classifier.js +2 -14
- package/dist/src/ruvector/diff-classifier.js.map +1 -1
- package/dist/src/ruvector/index.d.ts +26 -9
- package/dist/src/ruvector/index.d.ts.map +1 -1
- package/dist/src/ruvector/index.js +3 -21
- package/dist/src/ruvector/index.js.map +1 -1
- package/dist/src/ruvector/ruvllm-wasm.js +2 -2
- package/dist/src/ruvector/ruvllm-wasm.js.map +1 -1
- package/dist/src/types.d.ts +0 -15
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js +0 -18
- package/dist/src/types.js.map +1 -1
- package/dist/src/ui/dashboard.html +8763 -9766
- package/dist/src/ui/orgs.html +1 -1
- package/dist/src/ui/server.mjs +504 -35
- package/dist/src/update/index.js +1 -1
- package/dist/src/update/validator.js +8 -8
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/.claude/agents/academic/academic-anthropologist.md +0 -126
- package/.claude/agents/academic/academic-geographer.md +0 -128
- package/.claude/agents/academic/academic-historian.md +0 -124
- package/.claude/agents/academic/academic-narratologist.md +0 -119
- package/.claude/agents/academic/academic-psychologist.md +0 -119
- package/.claude/agents/analysis/analyze-code-quality.md +0 -58
- package/.claude/agents/analysis/code-analyzer.md +0 -189
- package/.claude/agents/analysis/code-review/analyze-code-quality.md +0 -58
- package/.claude/agents/consensus/performance-benchmarker.md +0 -831
- package/.claude/agents/data/ml/data-ml-model.md +0 -76
- package/.claude/agents/development/dev-backend-api.md +0 -178
- package/.claude/agents/devops/ci-cd/ops-cicd-github.md +0 -52
- package/.claude/agents/documentation/api-docs/docs-api-openapi.md +0 -63
- package/.claude/agents/game-development/blender/blender-addon-engineer.md +0 -235
- package/.claude/agents/game-development/game-audio-engineer.md +0 -265
- package/.claude/agents/game-development/game-designer.md +0 -168
- package/.claude/agents/game-development/godot/godot-gameplay-scripter.md +0 -335
- package/.claude/agents/game-development/godot/godot-multiplayer-engineer.md +0 -298
- package/.claude/agents/game-development/godot/godot-shader-developer.md +0 -267
- package/.claude/agents/game-development/level-designer.md +0 -209
- package/.claude/agents/game-development/narrative-designer.md +0 -244
- package/.claude/agents/game-development/roblox-studio/roblox-avatar-creator.md +0 -298
- package/.claude/agents/game-development/roblox-studio/roblox-experience-designer.md +0 -306
- package/.claude/agents/game-development/roblox-studio/roblox-systems-scripter.md +0 -326
- package/.claude/agents/game-development/technical-artist.md +0 -230
- package/.claude/agents/game-development/unity/unity-architect.md +0 -272
- package/.claude/agents/game-development/unity/unity-editor-tool-developer.md +0 -311
- package/.claude/agents/game-development/unity/unity-multiplayer-engineer.md +0 -322
- package/.claude/agents/game-development/unity/unity-shader-graph-artist.md +0 -270
- package/.claude/agents/game-development/unreal-engine/unreal-multiplayer-architect.md +0 -314
- package/.claude/agents/game-development/unreal-engine/unreal-systems-engineer.md +0 -311
- package/.claude/agents/game-development/unreal-engine/unreal-technical-artist.md +0 -257
- package/.claude/agents/game-development/unreal-engine/unreal-world-builder.md +0 -274
- package/.claude/agents/github/release-swarm.md +0 -597
- package/.claude/agents/goal/agent.md +0 -804
- package/.claude/agents/goal/code-goal-planner.md +0 -445
- package/.claude/agents/marketing/marketing-ai-citation-strategist.md +0 -171
- package/.claude/agents/marketing/marketing-app-store-optimizer.md +0 -322
- package/.claude/agents/marketing/marketing-baidu-seo-specialist.md +0 -227
- package/.claude/agents/marketing/marketing-bilibili-content-strategist.md +0 -200
- package/.claude/agents/marketing/marketing-book-co-author.md +0 -111
- package/.claude/agents/marketing/marketing-carousel-growth-engine.md +0 -200
- package/.claude/agents/marketing/marketing-china-ecommerce-operator.md +0 -284
- package/.claude/agents/marketing/marketing-content-creator.md +0 -67
- package/.claude/agents/marketing/marketing-cross-border-ecommerce.md +0 -260
- package/.claude/agents/marketing/marketing-douyin-strategist.md +0 -150
- package/.claude/agents/marketing/marketing-growth-hacker.md +0 -54
- package/.claude/agents/marketing/marketing-instagram-curator.md +0 -114
- package/.claude/agents/marketing/marketing-kuaishou-strategist.md +0 -224
- package/.claude/agents/marketing/marketing-linkedin-content-creator.md +0 -215
- package/.claude/agents/marketing/marketing-livestream-commerce-coach.md +0 -306
- package/.claude/agents/marketing/marketing-podcast-strategist.md +0 -278
- package/.claude/agents/marketing/marketing-private-domain-operator.md +0 -309
- package/.claude/agents/marketing/marketing-reddit-community-builder.md +0 -124
- package/.claude/agents/marketing/marketing-seo-specialist.md +0 -279
- package/.claude/agents/marketing/marketing-short-video-editing-coach.md +0 -413
- package/.claude/agents/marketing/marketing-social-media-strategist.md +0 -125
- package/.claude/agents/marketing/marketing-tiktok-strategist.md +0 -126
- package/.claude/agents/marketing/marketing-twitter-engager.md +0 -127
- package/.claude/agents/marketing/marketing-wechat-official-account.md +0 -146
- package/.claude/agents/marketing/marketing-weibo-strategist.md +0 -241
- package/.claude/agents/marketing/marketing-xiaohongshu-specialist.md +0 -139
- package/.claude/agents/marketing/marketing-zhihu-strategist.md +0 -163
- package/.claude/agents/neural/safla-neural.md +0 -74
- package/.claude/agents/paid-media/paid-media-auditor.md +0 -71
- package/.claude/agents/paid-media/paid-media-creative-strategist.md +0 -71
- package/.claude/agents/paid-media/paid-media-paid-social-strategist.md +0 -71
- package/.claude/agents/paid-media/paid-media-ppc-strategist.md +0 -71
- package/.claude/agents/paid-media/paid-media-programmatic-buyer.md +0 -71
- package/.claude/agents/paid-media/paid-media-search-query-analyst.md +0 -71
- package/.claude/agents/paid-media/paid-media-tracking-specialist.md +0 -71
- package/.claude/agents/payments/agentic-payments.md +0 -126
- package/.claude/agents/product/product-behavioral-nudge-engine.md +0 -81
- package/.claude/agents/product/product-feedback-synthesizer.md +0 -119
- package/.claude/agents/product/product-manager.md +0 -469
- package/.claude/agents/product/product-sprint-prioritizer.md +0 -154
- package/.claude/agents/product/product-trend-researcher.md +0 -159
- package/.claude/agents/project-management/project-management-experiment-tracker.md +0 -199
- package/.claude/agents/project-management/project-management-jira-workflow-steward.md +0 -231
- package/.claude/agents/project-management/project-management-project-shepherd.md +0 -195
- package/.claude/agents/project-management/project-management-studio-operations.md +0 -201
- package/.claude/agents/project-management/project-management-studio-producer.md +0 -204
- package/.claude/agents/project-management/project-manager-senior.md +0 -136
- package/.claude/agents/reasoning/agent.md +0 -804
- package/.claude/agents/reasoning/goal-planner.md +0 -73
- package/.claude/agents/sales/sales-account-strategist.md +0 -228
- package/.claude/agents/sales/sales-coach.md +0 -272
- package/.claude/agents/sales/sales-deal-strategist.md +0 -181
- package/.claude/agents/sales/sales-discovery-coach.md +0 -226
- package/.claude/agents/sales/sales-engineer.md +0 -183
- package/.claude/agents/sales/sales-outbound-strategist.md +0 -202
- package/.claude/agents/sales/sales-pipeline-analyst.md +0 -268
- package/.claude/agents/sales/sales-proposal-strategist.md +0 -218
- package/.claude/agents/sona/sona-learning-optimizer.md +0 -65
- package/.claude/agents/spatial-computing/macos-spatial-metal-engineer.md +0 -338
- package/.claude/agents/spatial-computing/terminal-integration-specialist.md +0 -71
- package/.claude/agents/spatial-computing/visionos-spatial-engineer.md +0 -55
- package/.claude/agents/specialists/memory-specialist.md +0 -298
- package/.claude/agents/specialists/performance-engineer.md +0 -387
- package/.claude/agents/specialists/queen-coordinator.md +0 -67
- package/.claude/agents/specialists/security-architect.md +0 -154
- package/.claude/agents/specialized/accounts-payable-agent.md +0 -186
- package/.claude/agents/specialized/corporate-training-designer.md +0 -193
- package/.claude/agents/specialized/data-consolidation-agent.md +0 -61
- package/.claude/agents/specialized/government-digital-presales-consultant.md +0 -364
- package/.claude/agents/specialized/healthcare-marketing-compliance.md +0 -396
- package/.claude/agents/specialized/recruitment-specialist.md +0 -510
- package/.claude/agents/specialized/report-distribution-agent.md +0 -66
- package/.claude/agents/specialized/sales-data-extraction-agent.md +0 -68
- package/.claude/agents/specialized/specialized-french-consulting-market.md +0 -193
- package/.claude/agents/specialized/specialized-korean-business-navigator.md +0 -217
- package/.claude/agents/specialized/specialized-salesforce-architect.md +0 -181
- package/.claude/agents/specialized/study-abroad-advisor.md +0 -283
- package/.claude/agents/specialized/supply-chain-strategist.md +0 -583
- package/.claude/agents/sublinear/consensus-coordinator.md +0 -333
- package/.claude/agents/sublinear/matrix-optimizer.md +0 -180
- package/.claude/agents/sublinear/pagerank-analyzer.md +0 -295
- package/.claude/agents/sublinear/performance-optimizer.md +0 -363
- package/.claude/agents/sublinear/trading-predictor.md +0 -242
- package/.claude/agents/support/support-analytics-reporter.md +0 -366
- package/.claude/agents/support/support-executive-summary-generator.md +0 -213
- package/.claude/agents/support/support-finance-tracker.md +0 -443
- package/.claude/agents/support/support-infrastructure-maintainer.md +0 -619
- package/.claude/agents/support/support-legal-compliance-checker.md +0 -589
- package/.claude/agents/support/support-support-responder.md +0 -586
- package/.claude/agents/swarm/adaptive-coordinator.md +0 -364
- package/.claude/agents/swarm/hierarchical-coordinator.md +0 -318
- package/.claude/agents/templates/github-pr-manager.md +0 -155
- package/.claude/agents/templates/memory-coordinator.md +0 -163
- package/.claude/agents/templates/migration-plan.md +0 -724
- package/.claude/agents/templates/orchestrator-task.md +0 -120
- package/.claude/agents/templates/performance-analyzer.md +0 -179
- package/.claude/agents/templates/sparc-coordinator.md +0 -163
- package/.claude/agents/testing/testing-reality-checker.md +0 -237
- package/.claude/commands/analysis/token-efficiency.md +0 -42
- package/.claude/commands/optimization/README.md +0 -73
- package/.claude/commands/optimization/parallel-execution.md +0 -76
- package/.claude/commands/swarm/swarm-analysis.md +0 -62
- package/.claude/commands/swarm/swarm-background.md +0 -65
- package/.claude/commands/swarm/swarm-modes.md +0 -67
- package/.claude/commands/swarm/swarm-monitor.md +0 -54
- package/.claude/commands/swarm/swarm-status.md +0 -44
- package/.claude/commands/swarm/swarm-strategies.md +0 -76
- package/.claude/commands/training/model-update.md +0 -78
- package/.claude/commands/training/pattern-learn.md +0 -69
- package/.claude/commands/training/specialization.md +0 -92
- package/.claude/commands/verify/check.md +0 -106
- package/.claude/commands/verify/start.md +0 -105
- package/.claude/helpers/README.md +0 -105
- package/.claude/helpers/context-persistence-hook.mjs +0 -1988
- package/.claude/helpers/intelligence.cjs +0 -247
- package/.claude/helpers/learning-service.mjs +0 -1302
- package/.claude/helpers/memory-palace.cjs +0 -461
- package/.claude/helpers/memory.cjs +0 -84
- package/.claude/helpers/metrics-db.mjs +0 -488
- package/.claude/helpers/router.cjs +0 -559
- package/.claude/helpers/session.cjs +0 -126
- package/.claude/helpers/swarm-hooks.sh +0 -761
- package/.claude/helpers/toggle-statusline.cjs +0 -58
- package/.claude/helpers/token-tracker.cjs +0 -934
- package/.claude/skills/agentdb-advanced/SKILL.md +0 -549
- package/.claude/skills/agentdb-learning/SKILL.md +0 -544
- package/.claude/skills/agentdb-memory-patterns/SKILL.md +0 -337
- package/.claude/skills/agentdb-optimization/SKILL.md +0 -508
- package/.claude/skills/agentdb-vector-search/SKILL.md +0 -335
- package/.claude/skills/agentic-integration/SKILL.md +0 -265
- package/.claude/skills/cli-modernization/SKILL.md +0 -950
- package/.claude/skills/core-implementation/SKILL.md +0 -892
- package/.claude/skills/ddd-architecture/SKILL.md +0 -444
- package/.claude/skills/github-code-review/SKILL.md +0 -1147
- package/.claude/skills/github-multi-repo/SKILL.md +0 -912
- package/.claude/skills/github-project-management/SKILL.md +0 -1245
- package/.claude/skills/github-release-management/SKILL.md +0 -1118
- package/.claude/skills/github-workflow-automation/SKILL.md +0 -1107
- package/.claude/skills/mcp-optimization/SKILL.md +0 -837
- package/.claude/skills/memory-unification/SKILL.md +0 -196
- package/.claude/skills/performance-optimization/SKILL.md +0 -416
- package/.claude/skills/reasoningbank-agentdb/SKILL.md +0 -444
- package/.claude/skills/reasoningbank-intelligence/SKILL.md +0 -199
- package/.claude/skills/security-hardening/SKILL.md +0 -101
- package/.claude/skills/stream-chain/SKILL.md +0 -560
- package/.claude/skills/swarm-coordination/SKILL.md +0 -451
- package/bundled-graph/dist/src/analyze.d.ts +0 -32
- package/bundled-graph/dist/src/analyze.d.ts.map +0 -1
- package/bundled-graph/dist/src/analyze.js +0 -297
- package/bundled-graph/dist/src/analyze.js.map +0 -1
- package/bundled-graph/dist/src/build.d.ts +0 -8
- package/bundled-graph/dist/src/build.d.ts.map +0 -1
- package/bundled-graph/dist/src/build.js.map +0 -1
- package/bundled-graph/dist/src/cache.d.ts +0 -12
- package/bundled-graph/dist/src/cache.d.ts.map +0 -1
- package/bundled-graph/dist/src/cache.js +0 -43
- package/bundled-graph/dist/src/cache.js.map +0 -1
- package/bundled-graph/dist/src/cluster.d.ts +0 -5
- package/bundled-graph/dist/src/cluster.d.ts.map +0 -1
- package/bundled-graph/dist/src/cluster.js.map +0 -1
- package/bundled-graph/dist/src/detect.d.ts +0 -21
- package/bundled-graph/dist/src/detect.d.ts.map +0 -1
- package/bundled-graph/dist/src/detect.js +0 -195
- package/bundled-graph/dist/src/detect.js.map +0 -1
- package/bundled-graph/dist/src/export.d.ts +0 -21
- package/bundled-graph/dist/src/export.d.ts.map +0 -1
- package/bundled-graph/dist/src/export.js +0 -68
- package/bundled-graph/dist/src/export.js.map +0 -1
- package/bundled-graph/dist/src/extract/index.d.ts +0 -20
- package/bundled-graph/dist/src/extract/index.d.ts.map +0 -1
- package/bundled-graph/dist/src/extract/index.js +0 -158
- package/bundled-graph/dist/src/extract/index.js.map +0 -1
- package/bundled-graph/dist/src/extract/languages/c.d.ts +0 -3
- package/bundled-graph/dist/src/extract/languages/c.d.ts.map +0 -1
- package/bundled-graph/dist/src/extract/languages/c.js +0 -88
- package/bundled-graph/dist/src/extract/languages/c.js.map +0 -1
- package/bundled-graph/dist/src/extract/languages/cpp.d.ts +0 -3
- package/bundled-graph/dist/src/extract/languages/cpp.d.ts.map +0 -1
- package/bundled-graph/dist/src/extract/languages/cpp.js +0 -121
- package/bundled-graph/dist/src/extract/languages/cpp.js.map +0 -1
- package/bundled-graph/dist/src/extract/languages/csharp.d.ts +0 -3
- package/bundled-graph/dist/src/extract/languages/csharp.d.ts.map +0 -1
- package/bundled-graph/dist/src/extract/languages/csharp.js +0 -121
- package/bundled-graph/dist/src/extract/languages/csharp.js.map +0 -1
- package/bundled-graph/dist/src/extract/languages/go.d.ts +0 -3
- package/bundled-graph/dist/src/extract/languages/go.d.ts.map +0 -1
- package/bundled-graph/dist/src/extract/languages/go.js +0 -181
- package/bundled-graph/dist/src/extract/languages/go.js.map +0 -1
- package/bundled-graph/dist/src/extract/languages/java.d.ts +0 -3
- package/bundled-graph/dist/src/extract/languages/java.d.ts.map +0 -1
- package/bundled-graph/dist/src/extract/languages/java.js +0 -117
- package/bundled-graph/dist/src/extract/languages/java.js.map +0 -1
- package/bundled-graph/dist/src/extract/languages/kotlin.d.ts +0 -3
- package/bundled-graph/dist/src/extract/languages/kotlin.d.ts.map +0 -1
- package/bundled-graph/dist/src/extract/languages/kotlin.js +0 -112
- package/bundled-graph/dist/src/extract/languages/kotlin.js.map +0 -1
- package/bundled-graph/dist/src/extract/languages/php.d.ts +0 -3
- package/bundled-graph/dist/src/extract/languages/php.d.ts.map +0 -1
- package/bundled-graph/dist/src/extract/languages/php.js +0 -130
- package/bundled-graph/dist/src/extract/languages/php.js.map +0 -1
- package/bundled-graph/dist/src/extract/languages/python.d.ts +0 -3
- package/bundled-graph/dist/src/extract/languages/python.d.ts.map +0 -1
- package/bundled-graph/dist/src/extract/languages/python.js +0 -230
- package/bundled-graph/dist/src/extract/languages/python.js.map +0 -1
- package/bundled-graph/dist/src/extract/languages/ruby.d.ts +0 -3
- package/bundled-graph/dist/src/extract/languages/ruby.d.ts.map +0 -1
- package/bundled-graph/dist/src/extract/languages/ruby.js +0 -120
- package/bundled-graph/dist/src/extract/languages/ruby.js.map +0 -1
- package/bundled-graph/dist/src/extract/languages/rust.d.ts +0 -3
- package/bundled-graph/dist/src/extract/languages/rust.d.ts.map +0 -1
- package/bundled-graph/dist/src/extract/languages/rust.js +0 -195
- package/bundled-graph/dist/src/extract/languages/rust.js.map +0 -1
- package/bundled-graph/dist/src/extract/languages/scala.d.ts +0 -3
- package/bundled-graph/dist/src/extract/languages/scala.d.ts.map +0 -1
- package/bundled-graph/dist/src/extract/languages/scala.js +0 -110
- package/bundled-graph/dist/src/extract/languages/scala.js.map +0 -1
- package/bundled-graph/dist/src/extract/languages/swift.d.ts +0 -3
- package/bundled-graph/dist/src/extract/languages/swift.d.ts.map +0 -1
- package/bundled-graph/dist/src/extract/languages/swift.js +0 -122
- package/bundled-graph/dist/src/extract/languages/swift.js.map +0 -1
- package/bundled-graph/dist/src/extract/languages/typescript.d.ts +0 -3
- package/bundled-graph/dist/src/extract/languages/typescript.d.ts.map +0 -1
- package/bundled-graph/dist/src/extract/languages/typescript.js +0 -295
- package/bundled-graph/dist/src/extract/languages/typescript.js.map +0 -1
- package/bundled-graph/dist/src/extract/semantic.d.ts +0 -38
- package/bundled-graph/dist/src/extract/semantic.d.ts.map +0 -1
- package/bundled-graph/dist/src/extract/semantic.js +0 -242
- package/bundled-graph/dist/src/extract/semantic.js.map +0 -1
- package/bundled-graph/dist/src/extract/tree-sitter-runner.d.ts +0 -48
- package/bundled-graph/dist/src/extract/tree-sitter-runner.d.ts.map +0 -1
- package/bundled-graph/dist/src/extract/tree-sitter-runner.js +0 -137
- package/bundled-graph/dist/src/extract/tree-sitter-runner.js.map +0 -1
- package/bundled-graph/dist/src/extract/types.d.ts +0 -7
- package/bundled-graph/dist/src/extract/types.d.ts.map +0 -1
- package/bundled-graph/dist/src/extract/types.js +0 -2
- package/bundled-graph/dist/src/extract/types.js.map +0 -1
- package/bundled-graph/dist/src/index.d.ts +0 -28
- package/bundled-graph/dist/src/index.d.ts.map +0 -1
- package/bundled-graph/dist/src/index.js +0 -26
- package/bundled-graph/dist/src/index.js.map +0 -1
- package/bundled-graph/dist/src/pipeline.d.ts +0 -27
- package/bundled-graph/dist/src/pipeline.d.ts.map +0 -1
- package/bundled-graph/dist/src/pipeline.js +0 -269
- package/bundled-graph/dist/src/pipeline.js.map +0 -1
- package/bundled-graph/dist/src/report.d.ts +0 -26
- package/bundled-graph/dist/src/report.d.ts.map +0 -1
- package/bundled-graph/dist/src/report.js +0 -214
- package/bundled-graph/dist/src/report.js.map +0 -1
- package/bundled-graph/dist/src/types.d.ts +0 -124
- package/bundled-graph/dist/src/types.d.ts.map +0 -1
- package/bundled-graph/dist/src/types.js +0 -2
- package/bundled-graph/dist/src/types.js.map +0 -1
- package/bundled-graph/dist/src/visualize.d.ts +0 -4
- package/bundled-graph/dist/src/visualize.d.ts.map +0 -1
- package/bundled-graph/dist/src/visualize.js +0 -574
- package/bundled-graph/dist/src/visualize.js.map +0 -1
- package/bundled-graph/dist/tsconfig.tsbuildinfo +0 -1
- package/dist/src/ui/dashboard-v2.html +0 -5316
|
@@ -0,0 +1,534 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mastermind-autodev
|
|
3
|
+
description: Mastermind autodev — autonomous research → build → review loop. Researches the project, picks the best improvement idea, builds it, then reviews with mastermind:review --tillend until clean. Repeats N times when given a count. Supports --newfeature N for full feature pipeline (research → build → review → document → deliver).
|
|
4
|
+
type: domain-skill
|
|
5
|
+
default_mode: auto
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Mastermind Autodev Domain
|
|
9
|
+
|
|
10
|
+
This skill is invoked directly via `/mastermind:autodev`.
|
|
11
|
+
|
|
12
|
+
Autodev is a fully autonomous loop: it researches the project, selects the highest-value improvement, builds it, and reviews it until clean — then repeats.
|
|
13
|
+
|
|
14
|
+
When `--newfeature N` is passed, it switches to **feature mode**: discovers the N best genuinely-new features the project is missing, then for each one runs the complete pipeline — Build → Review → Documentation → Delivery.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Inputs
|
|
19
|
+
|
|
20
|
+
- `brain_context`: BRAIN CONTEXT block (loaded via _protocol.md Brain Load Procedure)
|
|
21
|
+
- `count`: number of improvements to build (default: 1; set by leading integer in arguments, e.g. `9 --tillend`)
|
|
22
|
+
- `newfeature_count`: when `--newfeature N` is set, number of brand-new features to discover and fully deliver (overrides normal improvement loop)
|
|
23
|
+
- `focus`: optional topic hint (e.g. "performance", "security", "dx") — narrows research phase
|
|
24
|
+
- `mode`: auto | confirm (default: auto)
|
|
25
|
+
- `current_rep` / `loop_id`: injected by _repeat.md on continuation runs
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Flag Parsing
|
|
30
|
+
|
|
31
|
+
Before anything else, extract from `$ARGUMENTS`:
|
|
32
|
+
|
|
33
|
+
1. **Leading integer** — if the first token is a bare integer (e.g. `9`), set `count = 9`. Remove it from the remaining args.
|
|
34
|
+
2. **`--count <N>`** — alternate way to set count.
|
|
35
|
+
3. **`--newfeature <N>`** — activate feature mode; set `newfeature_count = N`. When present, the normal improvement loop is **replaced** by the Feature Pipeline below. N is how many new features to discover and deliver end-to-end (must be ≥ 1).
|
|
36
|
+
4. **`--focus <topic>`** — set focus topic.
|
|
37
|
+
5. **`--auto` / `--confirm`** — mode.
|
|
38
|
+
6. **`--tillend`, `--repeat`, `--maxruns`, `--wait`, `--rep`, `--loop`** — handled by _repeat.md PREAMBLE before this skill runs.
|
|
39
|
+
7. Remaining text → `focus` hint (if no `--focus` was given).
|
|
40
|
+
|
|
41
|
+
If `count` is not set, default to `1`.
|
|
42
|
+
If `--newfeature` is present but N is missing or not a positive integer, default `newfeature_count = 3`.
|
|
43
|
+
If `newfeature_count > 10`: emit `[autodev] Warning: --newfeature capped at 10 (requested: N)` and set `newfeature_count = 10` before proceeding.
|
|
44
|
+
If `--newfeature` and `--tillend` are both present: emit `[autodev] Warning: --tillend is not supported with --newfeature and will be ignored.` and strip the tillend flag before proceeding.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Feature Pipeline (--newfeature mode)
|
|
49
|
+
|
|
50
|
+
When `--newfeature N` is parsed, skip the normal improvement loop entirely and run this pipeline instead.
|
|
51
|
+
|
|
52
|
+
### FP-0 — Feature Discovery
|
|
53
|
+
|
|
54
|
+
**Goal:** Find the N best brand-new features the project is missing — not improvements to existing code, not bugfixes, not refactors. Things that would be genuinely new capability.
|
|
55
|
+
|
|
56
|
+
Run all research in parallel:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
git log --oneline -30
|
|
60
|
+
find . -maxdepth 3 -type f \( -name "*.ts" -o -name "*.js" -o -name "*.py" -o -name "*.go" -o -name "*.md" \) \
|
|
61
|
+
! -path "*/node_modules/*" ! -path "*/.git/*" ! -path "*/dist/*" | head -80
|
|
62
|
+
cat package.json 2>/dev/null || cat pyproject.toml 2>/dev/null || cat go.mod 2>/dev/null || true
|
|
63
|
+
cat README.md 2>/dev/null | head -120 || true
|
|
64
|
+
# Scan for capability gaps / user-facing TODOs
|
|
65
|
+
grep -rn "TODO\|could add\|future\|roadmap\|planned\|wish\|missing\|not yet\|coming soon" \
|
|
66
|
+
--include="*.ts" --include="*.js" --include="*.py" --include="*.md" \
|
|
67
|
+
. 2>/dev/null | grep -v node_modules | grep -v dist | head -40
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Also call (parallel):
|
|
71
|
+
- `mcp__monomind__monograph_god_nodes` — find the most-connected modules (surfaces where new features plug in best)
|
|
72
|
+
- `mcp__monomind__monograph_suggest` with query `"missing feature new capability gap"` — graph-guided gaps
|
|
73
|
+
- `mcp__monomind__memory_search` with query `"autodev newfeature built"`, namespace `"mastermind:autodev"`, limit 30 — exclude already-delivered features
|
|
74
|
+
|
|
75
|
+
**Produce a ranked shortlist of up to `newfeature_count` features.** Aim for exactly `newfeature_count`, but stop at fewer only if the project genuinely has no more viable new features. After producing the shortlist — regardless of mode — **set `newfeature_count = len(shortlist)`** so the loop counter and FP-End summary are accurate. For each:
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
Feature <K>:
|
|
79
|
+
title: <short imperative name, e.g. "Add batch export command">
|
|
80
|
+
user_value: <one sentence — what a user gains>
|
|
81
|
+
entry_point: <where in the codebase it plugs in (file/module)>
|
|
82
|
+
feasibility: high | medium
|
|
83
|
+
effort_estimate: small (< 100 LOC) | medium (100-400 LOC) | large (400+ LOC)
|
|
84
|
+
type: feature
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Priority ranking:
|
|
88
|
+
1. High feasibility first
|
|
89
|
+
2. High user_value for the effort
|
|
90
|
+
3. Not in recent git history
|
|
91
|
+
4. Not in autodev memory (already built)
|
|
92
|
+
5. Aligns with `focus` hint if given
|
|
93
|
+
|
|
94
|
+
If `mode = confirm`: display the full ranked shortlist and ask the user to approve before continuing. The user may strike features, reorder, or add constraints. After the user responds, update `approved_shortlist` to contain only the features the user kept, then **set `newfeature_count = len(approved_shortlist)`** before starting the FP-1..N loop. The FP-End summary denominator uses this updated count.
|
|
95
|
+
|
|
96
|
+
If `mode = auto`: `approved_shortlist = shortlist` (all features). `newfeature_count` was already aligned to `len(shortlist)` above — it does not revert to the originally parsed value.
|
|
97
|
+
|
|
98
|
+
Store the shortlist in memory:
|
|
99
|
+
```
|
|
100
|
+
mcp__monomind__memory_store(
|
|
101
|
+
content: "autodev newfeature shortlist: [<title1>, <title2>, ...]. Session: <date>.",
|
|
102
|
+
namespace: "mastermind:autodev",
|
|
103
|
+
tags: ["autodev", "newfeature", "shortlist"]
|
|
104
|
+
)
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
### FP-1 through FP-N — Full Delivery Loop (one per feature)
|
|
110
|
+
|
|
111
|
+
Initialize the loop counter before starting:
|
|
112
|
+
```bash
|
|
113
|
+
K=0
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
For **each feature** in the ranked shortlist (1 through `newfeature_count`), run these phases in order. At the start of each iteration, increment K:
|
|
117
|
+
```bash
|
|
118
|
+
K=$((K + 1))
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
#### Phase A — Build
|
|
122
|
+
|
|
123
|
+
(`K` is the current loop index integer — e.g. `1`, `2`, `3`. Treat `$K` and `$FEATURE_FILE_LIST` as template values: re-emit them with the concrete value substituted at the top of each phase's bash block, since each shell invocation is independent. E.g. at the top of Phase B's block: `K=1; FEATURE_FILE_LIST="/tmp/autodev_feature_files_${K}.txt"`. The same rule applies to FP-End: assign `K=<final_newfeature_count>` at the top of the FP-End bash block before the cleanup loop.)
|
|
124
|
+
|
|
125
|
+
Before invoking build, snapshot untracked files so the post-build delta can be computed:
|
|
126
|
+
```bash
|
|
127
|
+
FEATURE_FILE_LIST="/tmp/autodev_feature_files_${K}.txt"
|
|
128
|
+
git ls-files --others --exclude-standard | sort > /tmp/autodev_untracked_before_${K}.txt
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
Invoke `Skill("mastermind:build")` with a detailed brief:
|
|
132
|
+
|
|
133
|
+
```
|
|
134
|
+
Brief must include:
|
|
135
|
+
- Feature title and user_value
|
|
136
|
+
- Concrete spec: inputs, outputs, API surface, CLI flags, UI, etc.
|
|
137
|
+
- Entry point file(s) to create or modify — list every path explicitly
|
|
138
|
+
- Acceptance criteria (3–5 testable outcomes)
|
|
139
|
+
- What NOT to touch (blast radius guard)
|
|
140
|
+
- Test requirements: at minimum one unit test and one integration test
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Wait for build to complete before Phase B.
|
|
144
|
+
|
|
145
|
+
After build returns, determine which files this feature owns for staging in Phase D. The **build brief's declared file list** is the primary source of truth — it names every path the build was allowed to touch. Supplement it with only the files the build created that were not untracked before:
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
# 1. Write declared paths from the build brief (one per line)
|
|
149
|
+
printf '%s\n' \
|
|
150
|
+
"path/to/file1.ts" \
|
|
151
|
+
"path/to/file2.ts" \
|
|
152
|
+
"tests/path/to/test1.ts" \
|
|
153
|
+
> "$FEATURE_FILE_LIST"
|
|
154
|
+
|
|
155
|
+
# 2. Append any newly untracked files the build produced beyond the brief
|
|
156
|
+
# (comm -13: lines only in file2 — i.e., new since the before-snapshot)
|
|
157
|
+
comm -13 \
|
|
158
|
+
/tmp/autodev_untracked_before_${K}.txt \
|
|
159
|
+
<(git ls-files --others --exclude-standard | sort) \
|
|
160
|
+
>> "$FEATURE_FILE_LIST"
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
Store build start in memory:
|
|
164
|
+
```
|
|
165
|
+
mcp__monomind__memory_store(
|
|
166
|
+
content: "autodev newfeature building: <title>",
|
|
167
|
+
namespace: "mastermind:autodev",
|
|
168
|
+
tags: ["autodev", "newfeature", "building"]
|
|
169
|
+
)
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
#### Phase B — Review Until Clean
|
|
173
|
+
|
|
174
|
+
Before starting the review loop, snapshot current working tree state (both unstaged and untracked) so the post-review delta is scoped only to this phase:
|
|
175
|
+
```bash
|
|
176
|
+
git diff --name-only | sort > /tmp/autodev_unstaged_before_B_${K}.txt
|
|
177
|
+
git ls-files --others --exclude-standard | sort > /tmp/autodev_untracked_before_B_${K}.txt
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
Inline review loop (same cap as improvement mode: max 5 iterations):
|
|
181
|
+
|
|
182
|
+
```
|
|
183
|
+
review_iter = 0
|
|
184
|
+
LOOP:
|
|
185
|
+
review_iter += 1
|
|
186
|
+
If review_iter > 5: EXIT LOOP (cap reached — log warning, continue)
|
|
187
|
+
|
|
188
|
+
Invoke Skill("mastermind:review") with:
|
|
189
|
+
prompt: "Review the new feature just built: <title>. Verify: correctness, edge cases,
|
|
190
|
+
tests present and passing, no regressions, security, API consistency."
|
|
191
|
+
brain_context: brain_context
|
|
192
|
+
mode: auto
|
|
193
|
+
(do NOT pass --tillend)
|
|
194
|
+
|
|
195
|
+
If review returns zero findings: EXIT LOOP (clean)
|
|
196
|
+
Else: auto-fix findings; continue loop
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
After the review loop exits, append only files this phase introduced (delta from before-snapshot), covering both modified tracked files and newly created untracked files:
|
|
200
|
+
```bash
|
|
201
|
+
# Tracked files modified by review (delta only — excludes files modified by prior features)
|
|
202
|
+
comm -13 \
|
|
203
|
+
/tmp/autodev_unstaged_before_B_${K}.txt \
|
|
204
|
+
<(git diff --name-only | sort) \
|
|
205
|
+
>> "$FEATURE_FILE_LIST"
|
|
206
|
+
# Untracked files created by review (e.g. new test files)
|
|
207
|
+
comm -13 \
|
|
208
|
+
/tmp/autodev_untracked_before_B_${K}.txt \
|
|
209
|
+
<(git ls-files --others --exclude-standard | sort) \
|
|
210
|
+
>> "$FEATURE_FILE_LIST"
|
|
211
|
+
sort -u "$FEATURE_FILE_LIST" -o "$FEATURE_FILE_LIST"
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
#### Phase C — Documentation
|
|
215
|
+
|
|
216
|
+
Before generating documentation, snapshot current working tree state:
|
|
217
|
+
```bash
|
|
218
|
+
git diff --name-only | sort > /tmp/autodev_unstaged_before_C_${K}.txt
|
|
219
|
+
git ls-files --others --exclude-standard | sort > /tmp/autodev_untracked_before_C_${K}.txt
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
After review is clean (or capped), generate documentation for the feature.
|
|
223
|
+
|
|
224
|
+
Invoke `Skill("mastermind:content")` with:
|
|
225
|
+
```
|
|
226
|
+
prompt: "Document the new feature '<title>' that was just built.
|
|
227
|
+
Generate:
|
|
228
|
+
1. A concise user-facing description (2-3 sentences) for README or CHANGELOG
|
|
229
|
+
2. API/CLI/function-level docstrings for every new public symbol
|
|
230
|
+
3. A usage example (runnable snippet or command)
|
|
231
|
+
4. Any caveats or known limitations
|
|
232
|
+
Write documentation inline into the relevant files — do not create standalone doc files
|
|
233
|
+
unless the project already has a /docs directory pattern."
|
|
234
|
+
brain_context: brain_context
|
|
235
|
+
mode: auto
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
If `Skill("mastermind:content")` raises a "skill not found" or "skill unavailable" error, write the documentation directly:
|
|
239
|
+
- Add docstrings to all new public functions/classes/commands
|
|
240
|
+
- Update README.md (Features section or equivalent) with one bullet describing the feature
|
|
241
|
+
- Add a CHANGELOG entry under `[Unreleased]` only if `CHANGELOG.md` already exists in the project (check with `git ls-files CHANGELOG.md`); do NOT create it from scratch
|
|
242
|
+
|
|
243
|
+
After Phase C completes, append only files this phase introduced (delta from before-snapshot):
|
|
244
|
+
```bash
|
|
245
|
+
comm -13 \
|
|
246
|
+
/tmp/autodev_unstaged_before_C_${K}.txt \
|
|
247
|
+
<(git diff --name-only | sort) \
|
|
248
|
+
>> "$FEATURE_FILE_LIST"
|
|
249
|
+
comm -13 \
|
|
250
|
+
/tmp/autodev_untracked_before_C_${K}.txt \
|
|
251
|
+
<(git ls-files --others --exclude-standard | sort) \
|
|
252
|
+
>> "$FEATURE_FILE_LIST"
|
|
253
|
+
sort -u "$FEATURE_FILE_LIST" -o "$FEATURE_FILE_LIST"
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
#### Phase D — Delivery
|
|
257
|
+
|
|
258
|
+
(`$FEATURE_FILE_LIST` is the variable set at the top of Phase A: `/tmp/autodev_feature_files_${K}.txt`.)
|
|
259
|
+
|
|
260
|
+
Stage only the files declared for this feature. Do NOT commit — leave that to the user.
|
|
261
|
+
|
|
262
|
+
```bash
|
|
263
|
+
# Load file list, filtering blank lines, into an array (bash 4+)
|
|
264
|
+
mapfile -t _feat_files < <(grep -v '^[[:space:]]*$' "$FEATURE_FILE_LIST" 2>/dev/null)
|
|
265
|
+
|
|
266
|
+
# Guard: skip if file list is missing or contains only blank lines
|
|
267
|
+
if [ ${#_feat_files[@]} -eq 0 ]; then
|
|
268
|
+
echo "[autodev:newfeature] Warning: Feature ${K} file list is empty — build may be a no-op. Skipping stage."
|
|
269
|
+
else
|
|
270
|
+
# Stage only this feature's declared files. Exclude secrets/env.
|
|
271
|
+
for f in "${_feat_files[@]}"; do
|
|
272
|
+
case "$f" in
|
|
273
|
+
.env|*.env|secrets*|credentials*) echo "Skipping sensitive file: $f" ;;
|
|
274
|
+
*) git add -- "$f" 2>/dev/null || echo "Warning: could not stage $f" ;;
|
|
275
|
+
esac
|
|
276
|
+
done
|
|
277
|
+
|
|
278
|
+
# Guard: detect no-op build (files listed but nothing actually changed)
|
|
279
|
+
# Quoted array expansion handles filenames with spaces correctly
|
|
280
|
+
if git diff --cached --quiet -- "${_feat_files[@]}"; then
|
|
281
|
+
echo "[autodev:newfeature] Warning: Feature ${K} staged no changes — build produced no diff."
|
|
282
|
+
else
|
|
283
|
+
# Show what this feature contributed to the staged set (scoped to feature files only)
|
|
284
|
+
git diff --cached --stat -- "${_feat_files[@]}"
|
|
285
|
+
fi
|
|
286
|
+
fi
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
Log delivery:
|
|
290
|
+
```
|
|
291
|
+
[autodev:newfeature] Feature <K>/<newfeature_count> staged: <title>
|
|
292
|
+
Status: <staged|no-op|skipped> # staged=changes in index, no-op=built but no diff, skipped=build failed/empty list
|
|
293
|
+
Review: <clean|capped>
|
|
294
|
+
Files changed: <git diff --cached --stat output scoped to this feature's files>
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
Track the outcome for FP-End: `feature_status[K] = staged|no-op|skipped`, `feature_review[K] = clean|capped|n/a`.
|
|
298
|
+
|
|
299
|
+
Suggest a commit message (print it, do not run it):
|
|
300
|
+
```
|
|
301
|
+
feat(<entry_point_module>): <title>
|
|
302
|
+
|
|
303
|
+
<user_value>
|
|
304
|
+
|
|
305
|
+
Delivered by mastermind:autodev --newfeature
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
Store completion in memory:
|
|
309
|
+
```
|
|
310
|
+
mcp__monomind__memory_store(
|
|
311
|
+
content: "autodev newfeature built: <title> — <user_value>. Status: <status>.",
|
|
312
|
+
namespace: "mastermind:autodev",
|
|
313
|
+
tags: ["autodev", "newfeature", "built", status]
|
|
314
|
+
)
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
---
|
|
318
|
+
|
|
319
|
+
### FP-End — Summary
|
|
320
|
+
|
|
321
|
+
After all `newfeature_count` features complete, clean up tmp files and print a summary table:
|
|
322
|
+
|
|
323
|
+
```bash
|
|
324
|
+
# Re-assign K to the final feature count (each shell block is independent per Phase A rule)
|
|
325
|
+
K=<final_newfeature_count> # substitute the actual integer, e.g. K=3
|
|
326
|
+
# Clean up per-feature tmp files
|
|
327
|
+
for k in $(seq 1 $K); do
|
|
328
|
+
rm -f /tmp/autodev_feature_files_${k}.txt \
|
|
329
|
+
/tmp/autodev_untracked_before_${k}.txt \
|
|
330
|
+
/tmp/autodev_unstaged_before_B_${k}.txt \
|
|
331
|
+
/tmp/autodev_untracked_before_B_${k}.txt \
|
|
332
|
+
/tmp/autodev_unstaged_before_C_${k}.txt \
|
|
333
|
+
/tmp/autodev_untracked_before_C_${k}.txt
|
|
334
|
+
done
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
Count staged features: `staged_count = count of features where feature_status[K] == "staged"`.
|
|
338
|
+
|
|
339
|
+
Print summary table (Status: `staged|no-op|skipped`; Review: `clean|capped|n/a`):
|
|
340
|
+
|
|
341
|
+
```
|
|
342
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
343
|
+
║ autodev --newfeature | Session Summary ║
|
|
344
|
+
╠══════════════════════════════════════════════════════════════╣
|
|
345
|
+
║ Feature │ Title │ Status │ Review ║
|
|
346
|
+
╠═══════════╪═════════════════════════╪═══════════╪════════════╣
|
|
347
|
+
║ 1/<newfeature_count> │ <title> │ staged │ clean ║
|
|
348
|
+
║ 2/<newfeature_count> │ <title> │ skipped │ n/a ║
|
|
349
|
+
║ ... ║
|
|
350
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
351
|
+
Staged: <staged_count>/<newfeature_count> features. Run `git commit` to finalize.
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
---
|
|
355
|
+
|
|
356
|
+
## Loop: For Each Improvement (1 through `count`)
|
|
357
|
+
|
|
358
|
+
Run this sequence `count` times. After each completed improvement, increment the counter and continue — do not stop between improvements unless `mode = confirm` and the user declines.
|
|
359
|
+
|
|
360
|
+
### Phase 1 — Research
|
|
361
|
+
|
|
362
|
+
**Goal:** Understand the project deeply enough to pick the single best improvement to build right now.
|
|
363
|
+
|
|
364
|
+
Gather context from at minimum these sources — run all in parallel:
|
|
365
|
+
|
|
366
|
+
```bash
|
|
367
|
+
# Git log: what has been worked on recently
|
|
368
|
+
git log --oneline -20
|
|
369
|
+
|
|
370
|
+
# Project structure
|
|
371
|
+
find . -maxdepth 3 -type f \( -name "*.ts" -o -name "*.js" -o -name "*.py" -o -name "*.go" -o -name "*.md" \) \
|
|
372
|
+
! -path "*/node_modules/*" ! -path "*/.git/*" ! -path "*/dist/*" | head -60
|
|
373
|
+
|
|
374
|
+
# Package/project metadata
|
|
375
|
+
cat package.json 2>/dev/null || cat pyproject.toml 2>/dev/null || cat go.mod 2>/dev/null || true
|
|
376
|
+
|
|
377
|
+
# README
|
|
378
|
+
cat README.md 2>/dev/null | head -80 || true
|
|
379
|
+
|
|
380
|
+
# Existing issues/todos (common patterns)
|
|
381
|
+
grep -rn "TODO\|FIXME\|HACK\|XXX\|BUG\|PERF\|DEBT" --include="*.ts" --include="*.js" --include="*.py" \
|
|
382
|
+
--include="*.go" --include="*.md" . 2>/dev/null | grep -v node_modules | grep -v dist | head -30
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
Also call (parallel):
|
|
386
|
+
- `mcp__monomind__monograph_god_nodes` — find high-centrality files (architectural hotspots)
|
|
387
|
+
- `mcp__monomind__monograph_suggest` with query `"most impactful improvement"` — graph-guided suggestions
|
|
388
|
+
- `mcp__monomind__memory_search` with query `"autodev built"`, namespace `"mastermind:autodev"`, limit 20 — to exclude already-built improvements from candidates
|
|
389
|
+
|
|
390
|
+
If a `focus` hint was provided, bias all research toward that topic.
|
|
391
|
+
|
|
392
|
+
**Output of research phase:**
|
|
393
|
+
Produce a ranked list of 3–5 candidate improvements. For each candidate:
|
|
394
|
+
- `title`: one-line name
|
|
395
|
+
- `type`: feature | bugfix | refactor | performance | dx | security | test
|
|
396
|
+
- `why`: one sentence — why this helps the project most
|
|
397
|
+
- `feasibility`: high | medium (skip low — don't pick things that need days)
|
|
398
|
+
- `blast_radius`: files/modules affected (estimate)
|
|
399
|
+
|
|
400
|
+
### Phase 2 — Selection
|
|
401
|
+
|
|
402
|
+
Pick the **single best** candidate using this priority order:
|
|
403
|
+
1. Highest feasibility
|
|
404
|
+
2. Lowest blast radius for the value delivered
|
|
405
|
+
3. Aligns with `focus` hint (if given)
|
|
406
|
+
4. Not something already in git log from the last 20 commits
|
|
407
|
+
|
|
408
|
+
If `mode = confirm`: show the ranked list and selection, wait for user approval before proceeding.
|
|
409
|
+
|
|
410
|
+
If `mode = auto`: proceed immediately with the top pick.
|
|
411
|
+
|
|
412
|
+
Log the selection:
|
|
413
|
+
```
|
|
414
|
+
[autodev] Improvement <N>/<count>: <title> (<type>)
|
|
415
|
+
Rationale: <why>
|
|
416
|
+
Files affected: <blast_radius>
|
|
417
|
+
```
|
|
418
|
+
|
|
419
|
+
Store selection in memory so it's not re-picked next iteration:
|
|
420
|
+
```
|
|
421
|
+
mcp__monomind__memory_store(
|
|
422
|
+
content: "autodev built: <title> — <why>",
|
|
423
|
+
namespace: "mastermind:autodev",
|
|
424
|
+
tags: ["autodev", "built", type]
|
|
425
|
+
)
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
### Phase 3 — Build
|
|
429
|
+
|
|
430
|
+
Invoke `Skill("mastermind:build")` with:
|
|
431
|
+
- `prompt`: detailed implementation brief for the selected improvement
|
|
432
|
+
- `brain_context`: the loaded brain context
|
|
433
|
+
- `project_name`: `$(basename "$PWD")`
|
|
434
|
+
- `mode`: `auto`
|
|
435
|
+
- `board_id`: the autodev board (create once at startup, reuse)
|
|
436
|
+
|
|
437
|
+
The brief passed to build MUST include:
|
|
438
|
+
- What to build (concrete spec, not vague)
|
|
439
|
+
- Which files to touch
|
|
440
|
+
- Acceptance criteria (2–4 testable outcomes)
|
|
441
|
+
- What NOT to change (blast radius guard)
|
|
442
|
+
|
|
443
|
+
Wait for `mastermind:build` to complete before proceeding to Phase 4.
|
|
444
|
+
|
|
445
|
+
### Phase 4 — Review Until Clean
|
|
446
|
+
|
|
447
|
+
After build completes, enter an **inline** review loop (no ScheduleWakeup — must stay within this session):
|
|
448
|
+
|
|
449
|
+
```
|
|
450
|
+
review_iter = 0
|
|
451
|
+
LOOP:
|
|
452
|
+
review_iter += 1
|
|
453
|
+
If review_iter > 5: EXIT LOOP (cap reached)
|
|
454
|
+
|
|
455
|
+
Invoke Skill("mastermind:review") with:
|
|
456
|
+
prompt: "Review the changes just made for: <title>. Check correctness, tests, edge cases, security."
|
|
457
|
+
brain_context: brain_context
|
|
458
|
+
mode: auto
|
|
459
|
+
(do NOT pass --tillend — that would schedule a ScheduleWakeup and break out of autodev)
|
|
460
|
+
|
|
461
|
+
If review returns zero findings: EXIT LOOP (clean)
|
|
462
|
+
Else: findings are auto-fixed by the reviewer; continue loop
|
|
463
|
+
```
|
|
464
|
+
|
|
465
|
+
**Critical:** Do not invoke the review command via `/mastermind:review --tillend ...`. That syntax schedules ScheduleWakeup continuations which would terminate the current autodev session. Always invoke inline with `Skill("mastermind:review")` only.
|
|
466
|
+
|
|
467
|
+
If the cap (5 iterations) is reached without a clean pass, log a warning and continue to Phase 5 — don't block the outer loop.
|
|
468
|
+
|
|
469
|
+
### Phase 5 — Log Completion
|
|
470
|
+
|
|
471
|
+
```
|
|
472
|
+
[autodev] Improvement <N>/<count> complete: <title>
|
|
473
|
+
Status: clean | capped (review issues remain)
|
|
474
|
+
```
|
|
475
|
+
|
|
476
|
+
Update brain with what was built:
|
|
477
|
+
```
|
|
478
|
+
mcp__monomind__memory_store(
|
|
479
|
+
content: "autodev completed improvement <N>: <title>. Type: <type>. Status: <status>.",
|
|
480
|
+
namespace: "mastermind:autodev",
|
|
481
|
+
tags: ["autodev", "completed", type, status]
|
|
482
|
+
)
|
|
483
|
+
```
|
|
484
|
+
|
|
485
|
+
If `N < count`: log `[autodev] Moving to improvement <N+1>/<count>...` and repeat from Phase 1.
|
|
486
|
+
|
|
487
|
+
---
|
|
488
|
+
|
|
489
|
+
## Standalone Execution
|
|
490
|
+
|
|
491
|
+
1. Extract flags (leading integer for count, --newfeature N, --focus, --auto/--confirm)
|
|
492
|
+
2. Load brain context via _protocol.md Brain Load Procedure (namespace: `autodev`)
|
|
493
|
+
3. Create monotask board:
|
|
494
|
+
```bash
|
|
495
|
+
project_name="${project_name:-$(basename "$PWD")}"
|
|
496
|
+
board_id=$(monotask board create "autodev" --json 2>/dev/null | jq -r '.id // empty')
|
|
497
|
+
```
|
|
498
|
+
4. **If `--newfeature` was parsed:** run the Feature Pipeline (FP-0 through FP-End) and skip the improvement loop entirely.
|
|
499
|
+
**Otherwise:** run the Loop section above for each improvement.
|
|
500
|
+
5. At end: follow _protocol.md Brain Write Procedure (namespace: `autodev`)
|
|
501
|
+
|
|
502
|
+
---
|
|
503
|
+
|
|
504
|
+
## Tillend Integration
|
|
505
|
+
|
|
506
|
+
**`--newfeature` is incompatible with `--tillend`.** Both the command and skill strip `--tillend` and emit a warning when both are present. This is because the Feature Pipeline has a fundamentally different termination model (a fixed shortlist of N features, not an open-ended "until exhausted" loop), and the FP-0 discovery + FP-End staging structure does not map onto the per-wakeup session model that `--tillend` assumes.
|
|
507
|
+
|
|
508
|
+
For the standard improvement loop: when `--tillend` wraps autodev, each ScheduleWakeup wakeup runs a **full autodev session** (all `count` improvements). Memory deduplication (Phase 1 searches `"autodev built"`) prevents already-built improvements from being re-picked in subsequent wakeups.
|
|
509
|
+
|
|
510
|
+
- `count` controls improvements **per session** (default: 1)
|
|
511
|
+
- `--tillend` keeps scheduling new sessions until an empty round
|
|
512
|
+
- An empty round occurs when Phase 1 research finds no viable new candidates (all feasible work is already in memory)
|
|
513
|
+
|
|
514
|
+
The loop terminates naturally when the project has no more improvements worth building — not based on hitting a fixed count across wakeups.
|
|
515
|
+
|
|
516
|
+
---
|
|
517
|
+
|
|
518
|
+
## Safety Guards
|
|
519
|
+
|
|
520
|
+
- Never delete files unless the improvement or feature explicitly requires it
|
|
521
|
+
- Never modify `.env`, secrets, credentials
|
|
522
|
+
- Never commit (only stage) — leave commit to the user
|
|
523
|
+
- If Phase A (build) fails or produces no output: skip this feature, log the skip, continue to next feature
|
|
524
|
+
- If Phase B (review) skill is unavailable or throws: log a warning, treat as capped (review issues may remain), continue to Phase C
|
|
525
|
+
- If Phase C (documentation) skill is unavailable: fall back to inline documentation; if that also fails, log and continue to Phase D
|
|
526
|
+
- If Phase D (delivery) `git add` fails on multiple files: log each failure, stage what succeeded, continue
|
|
527
|
+
- If all research candidates are infeasible: ask the user for a focus direction instead of guessing
|
|
528
|
+
- **`--newfeature` specific:**
|
|
529
|
+
- Features must be genuinely new — reject any candidate that is just a refactor or bugfix of existing code
|
|
530
|
+
- Do not create standalone `.md` doc files unless the project already has a `/docs` directory
|
|
531
|
+
- Stage only the files declared in the build brief for each feature (written to `$FEATURE_FILE_LIST` in Phase A), supplemented only by newly untracked files the build produced (detected via before/after `git ls-files` delta) — never use `git add --all` in feature mode
|
|
532
|
+
- Each feature's staged set is driven by its build brief's declared file list, making it deterministic and cross-feature safe
|
|
533
|
+
- `newfeature_count > 10` is caught at parse time and capped to 10 before any pipeline runs
|
|
534
|
+
- `--tillend` combined with `--newfeature` is rejected at parse time with a clear warning
|
|
@@ -128,6 +128,7 @@ Ask the user (or infer from prompt) for the optional Paperclip-style fields:
|
|
|
128
128
|
"agent_type": "<subagent_type slug from mapping table>",
|
|
129
129
|
"responsibilities": ["<1-3 bullet responsibilities>"],
|
|
130
130
|
"reports_to": "<role id or null>",
|
|
131
|
+
"skills": [],
|
|
131
132
|
"adapter_config": {
|
|
132
133
|
"model": "<claude model id>",
|
|
133
134
|
"max_tokens": 8192
|
|
@@ -226,18 +227,32 @@ mkdir -p .monomind/orgs
|
|
|
226
227
|
Write the confirmed org config as JSON using `jq` to guarantee valid encoding:
|
|
227
228
|
|
|
228
229
|
```bash
|
|
229
|
-
# Build the config JSON from the confirmed org plan and write atomically
|
|
230
|
-
#
|
|
230
|
+
# Build the config JSON from the confirmed org plan and write atomically.
|
|
231
|
+
# Set shell variables from the confirmed plan before running this block:
|
|
232
|
+
# governance_policy — "auto" | "board" | "strict" (from Step 4)
|
|
233
|
+
# budget_tokens_val — integer or 0 for unlimited (from Step 4)
|
|
234
|
+
# ceo_adapter — model id string (from Step 4)
|
|
231
235
|
jq -n \
|
|
232
236
|
--arg name "$org_name" \
|
|
233
237
|
--arg goal "$goal" \
|
|
234
238
|
--arg topology "$topology" \
|
|
235
239
|
--argjson roles "$roles_json" \
|
|
236
240
|
--argjson communication "$communication_json" \
|
|
241
|
+
--arg gov_policy "${governance_policy:-auto}" \
|
|
242
|
+
--argjson budget_tokens "${budget_tokens_val:-0}" \
|
|
243
|
+
--arg ceo_adapter "${ceo_adapter:-claude-sonnet-4-6}" \
|
|
237
244
|
'{name:$name,goal:$goal,mode:"daemon",topology:$topology,
|
|
238
245
|
created_at:(now|todate),roles:$roles,communication:$communication,
|
|
246
|
+
governance:{policy:$gov_policy,approvals_file:(".monomind/orgs/"+$name+"-approvals.json")},
|
|
239
247
|
board_space:$name,board_name:"org-tasks",
|
|
240
|
-
run_config:{
|
|
248
|
+
run_config:{
|
|
249
|
+
checkpoint_interval_min:30,
|
|
250
|
+
max_concurrent_agents:6,
|
|
251
|
+
memory_namespace:("org:"+$name),
|
|
252
|
+
budget_tokens:$budget_tokens,
|
|
253
|
+
alert_threshold:0.8,
|
|
254
|
+
ceo_adapter:$ceo_adapter
|
|
255
|
+
}}' \
|
|
241
256
|
> "${orgJson}.tmp" && mv "${orgJson}.tmp" "$orgJson"
|
|
242
257
|
```
|
|
243
258
|
|
|
@@ -296,14 +311,15 @@ curl -s -X POST "${CTRL_URL}/api/mastermind/event" \
|
|
|
296
311
|
'{type:"domain:complete",session:$session,domain:"ops",status:"complete",
|
|
297
312
|
org:$orgName,goal:$goal,roles_count:$rolesCount,ts:(now*1000|floor)}')" || true
|
|
298
313
|
|
|
299
|
-
# org:create — so handleOrgEvent routes it to the Orgs panel event log
|
|
314
|
+
# org:create — so handleOrgEvent routes it to the Orgs panel event log and SSE triggers list refresh
|
|
300
315
|
curl -s -X POST "${CTRL_URL}/api/mastermind/event" \
|
|
301
316
|
-H "Content-Type: application/json" \
|
|
302
317
|
-d "$(jq -cn \
|
|
303
318
|
--arg session "$session_id" \
|
|
304
319
|
--arg org "$orgName" \
|
|
305
320
|
--arg goal "$goal_val" \
|
|
306
|
-
|
|
321
|
+
--arg proj "$(pwd)" \
|
|
322
|
+
'{type:"org:create",session:$session,org:$org,goal:$goal,project:$proj,ts:(now*1000|floor)}')" || true
|
|
307
323
|
```
|
|
308
324
|
|
|
309
325
|
---
|