@monoes/monomindcli 2.16.4 → 2.16.5
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/github/repo-architect.md +1 -1
- package/.claude/agents/specialists/integration-architect.md +9 -13
- package/.claude/commands/agents/agent-capabilities.md +1 -0
- package/.claude/commands/agents/agent-coordination.md +1 -0
- package/.claude/commands/agents/agent-spawning.md +1 -0
- package/.claude/commands/agents/agent-types.md +1 -0
- package/.claude/commands/analysis/bottleneck-detect.md +1 -0
- package/.claude/commands/analysis/performance-bottlenecks.md +1 -0
- package/.claude/commands/analysis/performance-report.md +1 -0
- package/.claude/commands/analysis/token-usage.md +1 -0
- package/.claude/commands/automation/README.md +1 -1
- package/.claude/commands/automation/auto-agent.md +1 -0
- package/.claude/commands/automation/self-healing.md +1 -0
- package/.claude/commands/automation/session-memory.md +1 -0
- package/.claude/commands/automation/smart-agents.md +1 -0
- package/.claude/commands/automation/smart-spawn.md +1 -0
- package/.claude/commands/automation/workflow-select.md +22 -27
- package/.claude/commands/coordination/README.md +2 -2
- package/.claude/commands/coordination/agent-spawn.md +1 -0
- package/.claude/commands/coordination/monoswarm-init.md +9 -8
- package/.claude/commands/coordination/task-orchestrate.md +6 -5
- package/.claude/commands/github/README.md +1 -1
- package/.claude/commands/github/github-modes.md +1 -0
- package/.claude/commands/github/issue-tracker.md +1 -0
- package/.claude/commands/github/pr-manager.md +1 -0
- package/.claude/commands/github/release-manager.md +1 -2
- package/.claude/commands/github/repo-architect.md +1 -0
- package/.claude/commands/github/sync-coordinator.md +1 -0
- package/.claude/commands/hooks/overview.md +1 -0
- package/.claude/commands/hooks/post-edit.md +1 -0
- package/.claude/commands/hooks/post-task.md +1 -0
- package/.claude/commands/hooks/pre-edit.md +1 -0
- package/.claude/commands/hooks/pre-task.md +1 -0
- package/.claude/commands/hooks/session-end.md +1 -0
- package/.claude/commands/hooks/setup.md +1 -0
- package/.claude/commands/mastermind/adr.md +3 -1
- package/.claude/commands/mastermind/brain.md +3 -1
- package/.claude/commands/mastermind/budget.md +3 -1
- package/.claude/commands/mastermind/code-review.md +3 -1
- package/.claude/commands/mastermind/content.md +3 -1
- package/.claude/commands/mastermind/createorg.md +3 -1
- package/.claude/commands/mastermind/createtask.md +6 -4
- package/.claude/commands/mastermind/debug.md +3 -1
- package/.claude/commands/mastermind/design.md +3 -1
- package/.claude/commands/mastermind/do.md +5 -3
- package/.claude/commands/mastermind/execute.md +3 -1
- package/.claude/commands/mastermind/finance.md +3 -1
- package/.claude/commands/mastermind/graph-status.md +3 -1
- package/.claude/commands/mastermind/help.md +12 -9
- package/.claude/commands/mastermind/idea.md +3 -1
- package/.claude/commands/mastermind/ideate.md +4 -2
- package/.claude/commands/mastermind/improve.md +4 -2
- package/.claude/commands/mastermind/loops.md +3 -1
- package/.claude/commands/mastermind/marketing.md +3 -1
- package/.claude/commands/mastermind/master.md +3 -1
- package/.claude/commands/mastermind/memory.md +8 -36
- package/.claude/commands/mastermind/monoswarm.md +3 -2
- package/.claude/commands/mastermind/okf-export.md +3 -1
- package/.claude/commands/mastermind/okf-import.md +3 -1
- package/.claude/commands/mastermind/ops.md +3 -1
- package/.claude/commands/mastermind/orgs.md +3 -1
- package/.claude/commands/mastermind/orgstatus.md +3 -1
- package/.claude/commands/mastermind/plan.md +3 -1
- package/.claude/commands/mastermind/receive-review.md +3 -1
- package/.claude/commands/mastermind/release.md +3 -1
- package/.claude/commands/mastermind/repeat.md +3 -1
- package/.claude/commands/mastermind/research.md +3 -1
- package/.claude/commands/mastermind/review.md +3 -1
- package/.claude/commands/mastermind/runorg.md +3 -1
- package/.claude/commands/mastermind/sales.md +3 -1
- package/.claude/commands/mastermind/skill-builder.md +3 -1
- package/.claude/commands/mastermind/specialagents.md +3 -1
- package/.claude/commands/mastermind/stoporg.md +3 -1
- package/.claude/commands/mastermind/techport.md +3 -1
- package/.claude/commands/mastermind/topology.md +4 -3
- package/.claude/commands/mastermind/understand.md +3 -1
- package/.claude/commands/mastermind/worktree.md +3 -1
- package/.claude/commands/memory/memory-search.md +1 -0
- package/.claude/commands/monitoring/README.md +1 -1
- package/.claude/commands/monitoring/agent-metrics.md +1 -0
- package/.claude/commands/monitoring/agents.md +1 -0
- package/.claude/commands/monitoring/status.md +1 -0
- package/.claude/commands/monoswarm/README.md +3 -3
- package/.claude/commands/monoswarm/analysis.md +2 -2
- package/.claude/commands/monoswarm/consensus.md +1 -0
- package/.claude/commands/monoswarm/development.md +3 -3
- package/.claude/commands/monoswarm/examples.md +4 -4
- package/.claude/commands/monoswarm/init.md +2 -1
- package/.claude/commands/monoswarm/maintenance.md +2 -2
- package/.claude/commands/monoswarm/memory.md +1 -0
- package/.claude/commands/monoswarm/monoswarm.md +5 -5
- package/.claude/commands/monoswarm/optimization.md +2 -2
- package/.claude/commands/monoswarm/research.md +2 -2
- package/.claude/commands/monoswarm/spawn.md +1 -0
- package/.claude/commands/monoswarm/status.md +2 -1
- package/.claude/commands/monoswarm/stop.md +2 -1
- package/.claude/commands/monoswarm/testing.md +2 -2
- package/.claude/commands/pair/README.md +8 -9
- package/.claude/commands/pair/examples.md +3 -4
- package/.claude/commands/pair/session.md +1 -1
- package/.claude/commands/workflows/README.md +45 -40
- package/.claude/commands/workflows/development.md +42 -55
- package/.claude/commands/workflows/research.md +41 -57
- package/.claude/commands/workflows/workflow-create.md +43 -45
- package/.claude/commands/workflows/workflow-execute.md +58 -68
- package/.claude/commands/workflows/workflow-export.md +37 -63
- package/.claude/helpers/build-skill-registry.cjs +10 -6
- package/.claude/helpers/handlers/pick-core.cjs +35 -24
- package/.claude/helpers/handlers/route-handler.cjs +11 -3
- package/.claude/helpers/hook-handler.cjs +4 -2
- package/.claude/helpers/jev-catalog.cjs +7 -3
- package/.claude/helpers/jev-picker.cjs +49 -7
- package/.claude/helpers/pick-rank.cjs +95 -3
- package/.claude/helpers/pick-stats.cjs +86 -2
- package/.claude/skills/agentic-jujutsu/SKILL.md +2 -3
- package/.claude/skills/github-toolkit/SKILL.md +1 -1
- package/.claude/skills/hooks-automation/SKILL.md +243 -938
- package/.claude/skills/mastermind-agent-detail/SKILL.md +1 -1
- package/.claude/skills/mastermind-agent-select/SKILL.md +16 -1
- package/.claude/skills/mastermind-inbox/SKILL.md +1 -1
- package/.claude/skills/mastermind-plugins/SKILL.md +1 -1
- package/.claude/skills/mastermind-release/SKILL.md +9 -1
- package/.claude/skills/mastermind-research/SKILL.md +9 -1
- package/.claude/skills/mastermind-review/SKILL.md +9 -1
- package/.claude/skills/mastermind-routine-detail/SKILL.md +1 -1
- package/.claude/skills/monodesign/SKILL.md +257 -0
- package/.claude/skills/monodesign/adapt.md +53 -0
- package/.claude/skills/monodesign/agents/monodesign-asset-producer.md +100 -0
- package/.claude/skills/monodesign/agents/monodesign-manual-edit-applier.md +103 -0
- package/.claude/skills/monodesign/animate.md +65 -0
- package/.claude/skills/monodesign/audit.md +89 -0
- package/.claude/skills/monodesign/bolder.md +50 -0
- package/.claude/skills/monodesign/clarify.md +64 -0
- package/.claude/skills/monodesign/colorize.md +68 -0
- package/.claude/skills/monodesign/craft.md +51 -0
- package/.claude/skills/monodesign/critique.md +66 -0
- package/.claude/skills/monodesign/delight.md +47 -0
- package/.claude/skills/monodesign/distill.md +56 -0
- package/.claude/skills/monodesign/document.md +83 -0
- package/.claude/skills/monodesign/extract.md +74 -0
- package/.claude/skills/monodesign/harden.md +65 -0
- package/.claude/skills/monodesign/init.md +30 -0
- package/.claude/skills/monodesign/layout.md +36 -0
- package/.claude/skills/monodesign/live.md +34 -0
- package/.claude/skills/monodesign/onboard.md +50 -0
- package/.claude/skills/monodesign/optimize.md +64 -0
- package/.claude/skills/monodesign/overdrive.md +56 -0
- package/.claude/skills/monodesign/polish.md +68 -0
- package/.claude/skills/monodesign/quieter.md +57 -0
- package/.claude/skills/monodesign/reference/adapt.md +312 -0
- package/.claude/skills/monodesign/reference/adapt.native.md +58 -0
- package/.claude/skills/monodesign/reference/android.md +40 -0
- package/.claude/skills/monodesign/reference/animate.md +203 -0
- package/.claude/skills/monodesign/reference/antipatterns-catalog.md +410 -0
- package/.claude/skills/monodesign/reference/audit.md +135 -0
- package/.claude/skills/monodesign/reference/audit.native.md +139 -0
- package/.claude/skills/monodesign/reference/bolder.md +120 -0
- package/.claude/skills/monodesign/reference/brand-workflow.md +180 -0
- package/.claude/skills/monodesign/reference/brand.md +108 -0
- package/.claude/skills/monodesign/reference/clarify.md +288 -0
- package/.claude/skills/monodesign/reference/codex.md +105 -0
- package/.claude/skills/monodesign/reference/cognitive-load.md +106 -0
- package/.claude/skills/monodesign/reference/color-and-contrast.md +105 -0
- package/.claude/skills/monodesign/reference/colorize.md +257 -0
- package/.claude/skills/monodesign/reference/component-specs.md +260 -0
- package/.claude/skills/monodesign/reference/component-states.md +274 -0
- package/.claude/skills/monodesign/reference/component-system.md +358 -0
- package/.claude/skills/monodesign/reference/copy-formulas.md +160 -0
- package/.claude/skills/monodesign/reference/craft.md +123 -0
- package/.claude/skills/monodesign/reference/critique.md +780 -0
- package/.claude/skills/monodesign/reference/delight.md +302 -0
- package/.claude/skills/monodesign/reference/design-principles.md +246 -0
- package/.claude/skills/monodesign/reference/distill.md +111 -0
- package/.claude/skills/monodesign/reference/document.md +429 -0
- package/.claude/skills/monodesign/reference/extract.md +69 -0
- package/.claude/skills/monodesign/reference/harden.md +347 -0
- package/.claude/skills/monodesign/reference/heuristics-scoring.md +234 -0
- package/.claude/skills/monodesign/reference/hooks.md +92 -0
- package/.claude/skills/monodesign/reference/image-prompts.md +130 -0
- package/.claude/skills/monodesign/reference/init.md +221 -0
- package/.claude/skills/monodesign/reference/interaction-design.md +189 -0
- package/.claude/skills/monodesign/reference/ios.md +45 -0
- package/.claude/skills/monodesign/reference/layout.md +185 -0
- package/.claude/skills/monodesign/reference/live.md +710 -0
- package/.claude/skills/monodesign/reference/motion-design.md +109 -0
- package/.claude/skills/monodesign/reference/onboard.md +234 -0
- package/.claude/skills/monodesign/reference/optimize.md +258 -0
- package/.claude/skills/monodesign/reference/overdrive.md +130 -0
- package/.claude/skills/monodesign/reference/personas.md +179 -0
- package/.claude/skills/monodesign/reference/polish.md +241 -0
- package/.claude/skills/monodesign/reference/pre-delivery-checklist.md +108 -0
- package/.claude/skills/monodesign/reference/product.md +60 -0
- package/.claude/skills/monodesign/reference/quieter.md +99 -0
- package/.claude/skills/monodesign/reference/responsive-design.md +114 -0
- package/.claude/skills/monodesign/reference/shape.md +165 -0
- package/.claude/skills/monodesign/reference/spatial-design.md +100 -0
- package/.claude/skills/monodesign/reference/teach.md +10 -0
- package/.claude/skills/monodesign/reference/token-architecture.md +222 -0
- package/.claude/skills/monodesign/reference/typeset.md +301 -0
- package/.claude/skills/monodesign/reference/typography.md +159 -0
- package/.claude/skills/monodesign/reference/ux-research.md +143 -0
- package/.claude/skills/monodesign/reference/ux-rules.md +211 -0
- package/.claude/skills/monodesign/reference/ux-writing.md +107 -0
- package/.claude/skills/monodesign/scripts/command-metadata.json +94 -0
- package/.claude/skills/monodesign/scripts/context-signals.mjs +260 -0
- package/.claude/skills/monodesign/scripts/context.mjs +1065 -0
- package/.claude/skills/monodesign/scripts/critique-storage.mjs +416 -0
- package/.claude/skills/monodesign/scripts/detect-csp.mjs +193 -0
- package/.claude/skills/monodesign/scripts/detect.mjs +33 -0
- package/.claude/skills/monodesign/scripts/detector/browser/injected/index.mjs +1960 -0
- package/.claude/skills/monodesign/scripts/detector/cli/main.mjs +321 -0
- package/.claude/skills/monodesign/scripts/detector/design-system.mjs +814 -0
- package/.claude/skills/monodesign/scripts/detector/detect-antipatterns-browser.js +5628 -0
- package/.claude/skills/monodesign/scripts/detector/detect-antipatterns.mjs +50 -0
- package/.claude/skills/monodesign/scripts/detector/engines/browser/detect-url.mjs +259 -0
- package/.claude/skills/monodesign/scripts/detector/engines/browser/drivers.mjs +339 -0
- package/.claude/skills/monodesign/scripts/detector/engines/regex/detect-text.mjs +636 -0
- package/.claude/skills/monodesign/scripts/detector/engines/static-html/css-cascade.mjs +1016 -0
- package/.claude/skills/monodesign/scripts/detector/engines/static-html/detect-html.mjs +253 -0
- package/.claude/skills/monodesign/scripts/detector/engines/visual/screenshot-contrast.mjs +198 -0
- package/.claude/skills/monodesign/scripts/detector/findings.mjs +12 -0
- package/.claude/skills/monodesign/scripts/detector/fix/css-regions.mjs +181 -0
- package/.claude/skills/monodesign/scripts/detector/fix/fixers.mjs +373 -0
- package/.claude/skills/monodesign/scripts/detector/fix/index.mjs +426 -0
- package/.claude/skills/monodesign/scripts/detector/node/file-system.mjs +198 -0
- package/.claude/skills/monodesign/scripts/detector/profile/profiler.mjs +166 -0
- package/.claude/skills/monodesign/scripts/detector/registry/antipatterns.mjs +563 -0
- package/.claude/skills/monodesign/scripts/detector/rules/checks.mjs +3024 -0
- package/.claude/skills/monodesign/scripts/detector/shared/color.mjs +124 -0
- package/.claude/skills/monodesign/scripts/detector/shared/constants.mjs +101 -0
- package/.claude/skills/monodesign/scripts/detector/shared/fonts.mjs +30 -0
- package/.claude/skills/monodesign/scripts/detector/shared/inline-ignores.mjs +148 -0
- package/.claude/skills/monodesign/scripts/detector/shared/page.mjs +7 -0
- package/.claude/skills/monodesign/scripts/hook-admin.mjs +694 -0
- package/.claude/skills/monodesign/scripts/hook-before-edit.mjs +516 -0
- package/.claude/skills/monodesign/scripts/hook-lib.mjs +1785 -0
- package/.claude/skills/monodesign/scripts/hook.mjs +61 -0
- package/.claude/skills/monodesign/scripts/lib/design-parser.mjs +809 -0
- package/.claude/skills/monodesign/scripts/lib/is-generated.mjs +69 -0
- package/.claude/skills/monodesign/scripts/lib/monodesign-config.mjs +640 -0
- package/.claude/skills/monodesign/scripts/lib/monodesign-paths.mjs +129 -0
- package/.claude/skills/monodesign/scripts/lib/provider.mjs +4 -0
- package/.claude/skills/monodesign/scripts/lib/target-args.mjs +42 -0
- package/.claude/skills/monodesign/scripts/live/browser-script-parts.mjs +50 -0
- package/.claude/skills/monodesign/scripts/live/completion.mjs +19 -0
- package/.claude/skills/monodesign/scripts/live/event-validation.mjs +137 -0
- package/.claude/skills/monodesign/scripts/live/insert-ui.mjs +458 -0
- package/.claude/skills/monodesign/scripts/live/manual-apply.mjs +939 -0
- package/.claude/skills/monodesign/scripts/live/manual-edit-routes.mjs +357 -0
- package/.claude/skills/monodesign/scripts/live/manual-edits-buffer.mjs +152 -0
- package/.claude/skills/monodesign/scripts/live/session-store.mjs +293 -0
- package/.claude/skills/monodesign/scripts/live/svelte-component.mjs +826 -0
- package/.claude/skills/monodesign/scripts/live/sveltekit-adapter.mjs +279 -0
- package/.claude/skills/monodesign/scripts/live/ui-core.mjs +180 -0
- package/.claude/skills/monodesign/scripts/live/vocabulary.mjs +36 -0
- package/.claude/skills/monodesign/scripts/live-accept.mjs +812 -0
- package/.claude/skills/monodesign/scripts/live-browser-dom.js +147 -0
- package/.claude/skills/monodesign/scripts/live-browser-session.js +124 -0
- package/.claude/skills/monodesign/scripts/live-browser.js +11213 -0
- package/.claude/skills/monodesign/scripts/live-commit-manual-edits.mjs +1241 -0
- package/.claude/skills/monodesign/scripts/live-complete.mjs +75 -0
- package/.claude/skills/monodesign/scripts/live-copy-edit-agent.mjs +683 -0
- package/.claude/skills/monodesign/scripts/live-discard-manual-edits.mjs +51 -0
- package/.claude/skills/monodesign/scripts/live-inject.mjs +596 -0
- package/.claude/skills/monodesign/scripts/live-insert.mjs +272 -0
- package/.claude/skills/monodesign/scripts/live-manual-edit-evidence.mjs +363 -0
- package/.claude/skills/monodesign/scripts/live-poll.mjs +384 -0
- package/.claude/skills/monodesign/scripts/live-resume.mjs +94 -0
- package/.claude/skills/monodesign/scripts/live-server.mjs +1210 -0
- package/.claude/skills/monodesign/scripts/live-status.mjs +61 -0
- package/.claude/skills/monodesign/scripts/live-target.mjs +30 -0
- package/.claude/skills/monodesign/scripts/live-wrap.mjs +884 -0
- package/.claude/skills/monodesign/scripts/live.mjs +297 -0
- package/.claude/skills/monodesign/scripts/modern-screenshot.umd.js +14 -0
- package/.claude/skills/monodesign/scripts/palette.mjs +635 -0
- package/.claude/skills/monodesign/scripts/pin.mjs +221 -0
- package/.claude/skills/monodesign/shape.md +71 -0
- package/.claude/skills/monodesign/teach.md +18 -0
- package/.claude/skills/monodesign/typeset.md +59 -0
- package/.claude/skills/monolean-audit/SKILL.md +4 -6
- package/.claude/skills/monolean-help/SKILL.md +0 -1
- package/.claude/skills/monoswarm/SKILL.md +17 -17
- package/.claude/skills/pair-programming/SKILL.md +127 -1100
- package/README.md +1 -1
- package/dist/src/agents/registry-builder.d.ts +1 -1
- package/dist/src/commands/doctor-pick-checks.d.ts +20 -3
- package/dist/src/commands/doctor-pick-checks.d.ts.map +1 -1
- package/dist/src/commands/doctor-pick-checks.js +132 -7
- package/dist/src/commands/doctor-pick-checks.js.map +1 -1
- package/dist/src/commands/doctor-project-checks.d.ts +2 -2
- package/dist/src/commands/doctor-project-checks.d.ts.map +1 -1
- package/dist/src/commands/doctor-project-checks.js +14 -12
- package/dist/src/commands/doctor-project-checks.js.map +1 -1
- package/dist/src/commands/doctor.d.ts.map +1 -1
- package/dist/src/commands/doctor.js +6 -4
- package/dist/src/commands/doctor.js.map +1 -1
- package/dist/src/commands/init-upgrade.d.ts.map +1 -1
- package/dist/src/commands/init-upgrade.js +6 -0
- package/dist/src/commands/init-upgrade.js.map +1 -1
- package/dist/src/commands/init.d.ts.map +1 -1
- package/dist/src/commands/init.js +11 -0
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/pick.d.ts.map +1 -1
- package/dist/src/commands/pick.js +4 -3
- package/dist/src/commands/pick.js.map +1 -1
- package/dist/src/decision/jev.d.ts +16 -0
- package/dist/src/decision/jev.d.ts.map +1 -1
- package/dist/src/decision/jev.js +12 -0
- package/dist/src/decision/jev.js.map +1 -1
- package/dist/src/decision/pick-eval.d.ts +23 -0
- package/dist/src/decision/pick-eval.d.ts.map +1 -1
- package/dist/src/decision/pick-eval.js +24 -1
- package/dist/src/decision/pick-eval.js.map +1 -1
- package/dist/src/decision/picks.d.ts +5 -0
- package/dist/src/decision/picks.d.ts.map +1 -1
- package/dist/src/decision/picks.js +33 -11
- package/dist/src/decision/picks.js.map +1 -1
- package/dist/src/init/claudemd-generator.d.ts.map +1 -1
- package/dist/src/init/claudemd-generator.js +1 -0
- package/dist/src/init/claudemd-generator.js.map +1 -1
- package/dist/src/init/copy-assets.d.ts.map +1 -1
- package/dist/src/init/copy-assets.js +17 -9
- package/dist/src/init/copy-assets.js.map +1 -1
- package/dist/src/init/executor.d.ts.map +1 -1
- package/dist/src/init/executor.js +26 -4
- package/dist/src/init/executor.js.map +1 -1
- package/dist/src/init/file-guard.d.ts +93 -0
- package/dist/src/init/file-guard.d.ts.map +1 -0
- package/dist/src/init/file-guard.js +239 -0
- package/dist/src/init/file-guard.js.map +1 -0
- package/dist/src/init/helpers-generator.d.ts +7 -0
- package/dist/src/init/helpers-generator.d.ts.map +1 -1
- package/dist/src/init/helpers-generator.js +9 -0
- package/dist/src/init/helpers-generator.js.map +1 -1
- package/dist/src/init/init-memory.d.ts +10 -0
- package/dist/src/init/init-memory.d.ts.map +1 -1
- package/dist/src/init/init-memory.js +44 -1
- package/dist/src/init/init-memory.js.map +1 -1
- package/dist/src/init/managed-block.d.ts +3 -1
- package/dist/src/init/managed-block.d.ts.map +1 -1
- package/dist/src/init/managed-block.js +9 -2
- package/dist/src/init/managed-block.js.map +1 -1
- package/dist/src/init/mcp-generator.d.ts +9 -0
- package/dist/src/init/mcp-generator.d.ts.map +1 -1
- package/dist/src/init/mcp-generator.js +28 -0
- package/dist/src/init/mcp-generator.js.map +1 -1
- package/dist/src/init/runtime-config-merge.d.ts +21 -0
- package/dist/src/init/runtime-config-merge.d.ts.map +1 -0
- package/dist/src/init/runtime-config-merge.js +88 -0
- package/dist/src/init/runtime-config-merge.js.map +1 -0
- package/dist/src/init/settings-generator.js +1 -1
- package/dist/src/init/settings-generator.js.map +1 -1
- package/dist/src/init/shared-instructions-generator.d.ts +3 -1
- package/dist/src/init/shared-instructions-generator.d.ts.map +1 -1
- package/dist/src/init/shared-instructions-generator.js +14 -39
- package/dist/src/init/shared-instructions-generator.js.map +1 -1
- package/dist/src/init/shared.d.ts +10 -0
- package/dist/src/init/shared.d.ts.map +1 -1
- package/dist/src/init/shared.js +32 -1
- package/dist/src/init/shared.js.map +1 -1
- package/dist/src/init/types.d.ts +9 -0
- package/dist/src/init/types.d.ts.map +1 -1
- package/dist/src/init/types.js.map +1 -1
- package/dist/src/init/upgrade.d.ts +4 -0
- package/dist/src/init/upgrade.d.ts.map +1 -1
- package/dist/src/init/upgrade.js +39 -42
- package/dist/src/init/upgrade.js.map +1 -1
- package/dist/src/init/write-antigravity.d.ts.map +1 -1
- package/dist/src/init/write-antigravity.js +9 -3
- package/dist/src/init/write-antigravity.js.map +1 -1
- package/dist/src/init/write-claude.d.ts.map +1 -1
- package/dist/src/init/write-claude.js +40 -19
- package/dist/src/init/write-claude.js.map +1 -1
- package/dist/src/init/write-kimicode.d.ts +27 -0
- package/dist/src/init/write-kimicode.d.ts.map +1 -1
- package/dist/src/init/write-kimicode.js +119 -92
- package/dist/src/init/write-kimicode.js.map +1 -1
- package/dist/src/init/write-opencode.d.ts.map +1 -1
- package/dist/src/init/write-opencode.js +45 -6
- package/dist/src/init/write-opencode.js.map +1 -1
- package/dist/src/init/write-runtime-config.d.ts.map +1 -1
- package/dist/src/init/write-runtime-config.js +108 -81
- package/dist/src/init/write-runtime-config.js.map +1 -1
- package/dist/src/knowledge/eval/golden-set.js +0 -15
- package/dist/src/knowledge/eval/golden-set.js.map +1 -1
- package/dist/src/mcp-tools/org-skill-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/org-skill-tools.js +6 -2
- package/dist/src/mcp-tools/org-skill-tools.js.map +1 -1
- package/dist/src/mcp-tools/pick-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/pick-tools.js +13 -4
- package/dist/src/mcp-tools/pick-tools.js.map +1 -1
- package/dist/src/platform-adapters/merge.d.ts +4 -3
- package/dist/src/platform-adapters/merge.d.ts.map +1 -1
- package/dist/src/platform-adapters/merge.js +18 -8
- package/dist/src/platform-adapters/merge.js.map +1 -1
- package/dist/src/platform-adapters/mutation.d.ts +6 -1
- package/dist/src/platform-adapters/mutation.d.ts.map +1 -1
- package/dist/src/platform-adapters/mutation.js +9 -3
- package/dist/src/platform-adapters/mutation.js.map +1 -1
- package/dist/src/platform-adapters/operations.d.ts.map +1 -1
- package/dist/src/platform-adapters/operations.js +14 -6
- package/dist/src/platform-adapters/operations.js.map +1 -1
- package/dist/src/platform-adapters/types.d.ts +5 -0
- package/dist/src/platform-adapters/types.d.ts.map +1 -1
- package/dist/src/routing/agent-pick.d.ts +9 -7
- package/dist/src/routing/agent-pick.d.ts.map +1 -1
- package/dist/src/routing/agent-pick.js +17 -17
- package/dist/src/routing/agent-pick.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -6
- package/.claude/skills/github-issue-triage/SKILL.md +0 -354
- package/.claude/skills/github-repo-recap/SKILL.md +0 -207
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: workflows:workflow-create
|
|
3
|
-
description: Create
|
|
3
|
+
description: Create a reusable multi-agent workflow as an org config with npx monomind org create, then edit and validate it
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Workflow Create
|
|
7
7
|
|
|
8
|
-
Create
|
|
8
|
+
Create a reusable workflow. The CLI has no `workflow` command; a reusable workflow is an org config in `.monomind/orgs/<name>.json`.
|
|
9
9
|
|
|
10
10
|
## How to Invoke
|
|
11
11
|
|
|
@@ -18,66 +18,64 @@ Skill("workflows:workflow-create")
|
|
|
18
18
|
## CLI Reference
|
|
19
19
|
|
|
20
20
|
```bash
|
|
21
|
-
#
|
|
22
|
-
npx monomind
|
|
21
|
+
# Scaffold from a starter template
|
|
22
|
+
npx monomind org create api-dev --template dev-team --goal "Deliver API features from the backlog"
|
|
23
23
|
|
|
24
|
-
#
|
|
25
|
-
npx monomind
|
|
24
|
+
# Scheduled workflow (hosted by `org serve`)
|
|
25
|
+
npx monomind org create weekly-brief --template research-pod --goal "Weekly AI tooling brief" --schedule 2h
|
|
26
26
|
|
|
27
|
-
#
|
|
28
|
-
npx monomind
|
|
27
|
+
# Overwrite an existing config
|
|
28
|
+
npx monomind org create api-dev --template dev-team --force
|
|
29
29
|
|
|
30
|
-
#
|
|
31
|
-
npx monomind
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
## Template Create Flags
|
|
35
|
-
|
|
36
|
-
| Flag | Short | Description |
|
|
37
|
-
|------|-------|-------------|
|
|
38
|
-
| `--name` | `-n` | Template name (required) |
|
|
39
|
-
| `--workflow` | `-w` | Workflow ID to save as template |
|
|
40
|
-
| `--file` | `-f` | Workflow file to save as template |
|
|
30
|
+
# Validate after editing the JSON
|
|
31
|
+
npx monomind org validate api-dev
|
|
41
32
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
```
|
|
45
|
-
// Create a workflow definition
|
|
46
|
-
mcp__monomind__workflow_create({
|
|
47
|
-
name: "my-workflow",
|
|
48
|
-
template: "development",
|
|
49
|
-
task: "Build auth system"
|
|
50
|
-
})
|
|
33
|
+
# List orgs in the project
|
|
34
|
+
npx monomind org list
|
|
35
|
+
```
|
|
51
36
|
|
|
52
|
-
|
|
53
|
-
mcp__monomind__workflow_template({})
|
|
37
|
+
## `org create` Flags
|
|
54
38
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
39
|
+
| Flag | Description |
|
|
40
|
+
|------|-------------|
|
|
41
|
+
| `--template` | `content-team` \| `dev-team` \| `research-pod` \| `kg-extraction` \| `advisor-orchestrator` |
|
|
42
|
+
| `--goal` | Org goal (defaults to the template's placeholder) |
|
|
43
|
+
| `--schedule` | Daemon schedule, e.g. `30m` or `2h` |
|
|
44
|
+
| `--force` | Overwrite an existing org config |
|
|
45
|
+
| `-y, --yes` | Skip the per-role model confirmation prompt |
|
|
61
46
|
|
|
62
47
|
## Workflow
|
|
63
48
|
|
|
64
|
-
1.
|
|
49
|
+
1. Scaffold from the closest template:
|
|
65
50
|
```bash
|
|
66
|
-
npx monomind
|
|
67
|
-
# Note the workflowId in the output
|
|
51
|
+
npx monomind org create auth-flow --template dev-team --goal "Build auth features"
|
|
68
52
|
```
|
|
69
53
|
|
|
70
|
-
2.
|
|
54
|
+
2. Edit `.monomind/orgs/auth-flow.json` — adjust roles, responsibilities, and models. For a guided design, use the `mastermind-createorg` skill; to add a role, use `mastermind-new-agent`.
|
|
55
|
+
|
|
56
|
+
3. Validate and preview:
|
|
71
57
|
```bash
|
|
72
|
-
npx monomind
|
|
58
|
+
npx monomind org validate auth-flow
|
|
59
|
+
npx monomind org run auth-flow --dry-run
|
|
73
60
|
```
|
|
74
61
|
|
|
75
|
-
|
|
62
|
+
4. Reuse it:
|
|
76
63
|
```bash
|
|
77
|
-
npx monomind
|
|
64
|
+
npx monomind org run auth-flow --task "Add password reset"
|
|
78
65
|
```
|
|
79
66
|
|
|
67
|
+
## In-Conversation Alternative
|
|
68
|
+
|
|
69
|
+
For a one-off workflow, no config is needed: write the stages as a TodoWrite list and spawn Task-tool agents per stage (see `workflows:workflow-execute`). To keep the pattern for later:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
npx monomind memory store --key "workflow-auth" \
|
|
73
|
+
--value "plan (planner) -> implement+test in parallel (coder, tester) -> review (reviewer)" \
|
|
74
|
+
--namespace patterns
|
|
75
|
+
```
|
|
76
|
+
|
|
80
77
|
## Related Skills
|
|
81
78
|
|
|
82
|
-
- `workflows:workflow-execute` — Run workflows
|
|
83
|
-
- `workflows:workflow-export` —
|
|
79
|
+
- `workflows:workflow-execute` — Run workflows
|
|
80
|
+
- `workflows:workflow-export` — Inspect and export workflows
|
|
81
|
+
- `mastermind-createorg` — Design an org interactively
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: workflows:workflow-execute
|
|
3
|
-
description: Run multi-agent workflows
|
|
3
|
+
description: Run multi-agent workflows — in the conversation with Task-tool agents, or as a persistent org with npx monomind org run
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Workflow Execute
|
|
7
7
|
|
|
8
|
-
Run multi-agent
|
|
8
|
+
Run a multi-stage, multi-agent workflow. The CLI has no `workflow` command; use one of the two real paths below.
|
|
9
9
|
|
|
10
10
|
## How to Invoke
|
|
11
11
|
|
|
@@ -15,87 +15,77 @@ Skill("workflows:workflow-execute")
|
|
|
15
15
|
|
|
16
16
|
---
|
|
17
17
|
|
|
18
|
-
##
|
|
18
|
+
## Path 1: In the Conversation (Task Tool)
|
|
19
|
+
|
|
20
|
+
Claude Code executes the stages directly:
|
|
21
|
+
|
|
22
|
+
1. Break the work into stages with TodoWrite (plan → implement → test → review)
|
|
23
|
+
2. Spawn every independent agent for a stage in ONE message via the Task tool
|
|
24
|
+
3. Wait for results, review them, then start the next stage
|
|
25
|
+
|
|
26
|
+
```javascript
|
|
27
|
+
// Stage: implement + test in parallel
|
|
28
|
+
Task({ subagent_type: "coder", prompt: "Implement the auth API in src/auth/ per the plan ..." })
|
|
29
|
+
Task({ subagent_type: "tester", prompt: "Write tests for the auth API contract ..." })
|
|
30
|
+
|
|
31
|
+
// Next stage: review
|
|
32
|
+
Task({ subagent_type: "reviewer", prompt: "Review the diff in src/auth/ ..." })
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Optionally record topology and roster, and track the task for routing:
|
|
19
36
|
|
|
20
37
|
```bash
|
|
21
|
-
|
|
22
|
-
npx monomind
|
|
23
|
-
|
|
24
|
-
npx monomind
|
|
25
|
-
npx monomind workflow run -t security-audit
|
|
26
|
-
|
|
27
|
-
# Run from a workflow file
|
|
28
|
-
npx monomind workflow run -f ./workflow.yaml
|
|
29
|
-
npx monomind workflow run -f ./workflow.json
|
|
30
|
-
|
|
31
|
-
# Validate without executing
|
|
32
|
-
npx monomind workflow run -t development --dry-run
|
|
38
|
+
npx monomind monoswarm init --topology hierarchical --max-agents 8
|
|
39
|
+
npx monomind hooks pre-task --description "Build REST API with auth" --task-id api-auth
|
|
40
|
+
# ... stages run ...
|
|
41
|
+
npx monomind hooks post-task --task-id api-auth --success true
|
|
33
42
|
```
|
|
34
43
|
|
|
35
|
-
##
|
|
44
|
+
## Path 2: As an Org (`monomind org`)
|
|
36
45
|
|
|
37
|
-
|
|
38
|
-
|------|-------|---------|-------------|
|
|
39
|
-
| `--template` | `-t` | — | Built-in template name |
|
|
40
|
-
| `--file` | `-f` | — | Workflow definition file (YAML/JSON) |
|
|
41
|
-
| `--task` | — | — | Task description passed to the workflow |
|
|
42
|
-
| `--parallel` | `-p` | `true` | Enable parallel agent execution |
|
|
43
|
-
| `--max-agents` | `-m` | `5` | Maximum agents to spawn |
|
|
44
|
-
| `--timeout` | — | `30` | Timeout in minutes |
|
|
45
|
-
| `--dry-run` | `-d` | `false` | Validate without executing |
|
|
46
|
+
For repeatable, scheduled, or long-running workflows:
|
|
46
47
|
|
|
47
|
-
|
|
48
|
+
```bash
|
|
49
|
+
# Create from a starter template (or use an existing .monomind/orgs/<name>.json)
|
|
50
|
+
npx monomind org create api-dev --template dev-team --goal "Build REST API with auth"
|
|
48
51
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
| `research` | Discovery → Analysis → Synthesis → Documentation | researcher, analyst |
|
|
53
|
-
| `testing` | Unit → Integration → E2E → Performance | tester, coder |
|
|
54
|
-
| `security-audit` | Threat Model → Static → Dynamic → Report | security-architect, auditor |
|
|
55
|
-
| `code-review` | Initial → Security → Quality → Feedback | reviewer, auditor, analyst |
|
|
56
|
-
| `refactoring` | Analysis → Planning → Refactor → Validation | architect, coder, reviewer |
|
|
57
|
-
| `custom` | Define your own | configurable |
|
|
52
|
+
# Validate and preview each role's briefing without starting agents
|
|
53
|
+
npx monomind org validate api-dev
|
|
54
|
+
npx monomind org run api-dev --dry-run
|
|
58
55
|
|
|
59
|
-
|
|
56
|
+
# Run (foreground daemon); override the goal for this run
|
|
57
|
+
npx monomind org run api-dev --task "Add refresh-token rotation"
|
|
60
58
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
mcp__monomind__workflow_run({
|
|
64
|
-
template: "development",
|
|
65
|
-
task: "Build REST API with auth",
|
|
66
|
-
options: {
|
|
67
|
-
parallel: true,
|
|
68
|
-
maxAgents: 6,
|
|
69
|
-
timeout: 30,
|
|
70
|
-
dryRun: false
|
|
71
|
-
}
|
|
72
|
-
})
|
|
73
|
-
|
|
74
|
-
// Check workflow status after launch
|
|
75
|
-
mcp__monomind__workflow_status({ workflowId: "wf-123" })
|
|
76
|
-
|
|
77
|
-
// List all workflows
|
|
78
|
-
mcp__monomind__workflow_list({ status: "running", limit: 10 })
|
|
79
|
-
|
|
80
|
-
// Stop a running workflow
|
|
81
|
-
mcp__monomind__workflow_cancel({ workflowId: "wf-123" })
|
|
59
|
+
# Cap spend
|
|
60
|
+
npx monomind org run api-dev --budget-usd 5
|
|
82
61
|
```
|
|
83
62
|
|
|
84
|
-
|
|
63
|
+
### `org run` Flags
|
|
85
64
|
|
|
86
|
-
|
|
65
|
+
| Flag | Description |
|
|
66
|
+
|------|-------------|
|
|
67
|
+
| `--task` | Override the org goal for this run |
|
|
68
|
+
| `--dry-run` | Validate and print each role's briefing without starting sessions |
|
|
69
|
+
| `--resume` | Resume from the persisted checkpoint instead of starting fresh |
|
|
70
|
+
| `--budget-usd` | Hard-stop if the upfront cost estimate exceeds this value |
|
|
71
|
+
| `-y, --yes` | Skip the cost-estimate confirmation prompt |
|
|
87
72
|
|
|
88
|
-
|
|
89
|
-
# Check status by ID (shown after run)
|
|
90
|
-
npx monomind workflow status <workflowId>
|
|
73
|
+
## After Launch
|
|
91
74
|
|
|
92
|
-
|
|
93
|
-
npx monomind
|
|
75
|
+
```bash
|
|
76
|
+
npx monomind org status api-dev # runtime state
|
|
77
|
+
npx monomind org logs api-dev --follow # live event log
|
|
78
|
+
npx monomind org questions api-dev # pending ask_human questions
|
|
79
|
+
npx monomind org approvals api-dev # pending tool approvals
|
|
80
|
+
npx monomind org pause api-dev # finish current turns, start no new cycles
|
|
81
|
+
npx monomind org stop api-dev # stop the daemon
|
|
82
|
+
npx monomind org report api-dev # outcome, per-role activity, tokens
|
|
94
83
|
```
|
|
95
84
|
|
|
96
85
|
## Related Skills
|
|
97
86
|
|
|
98
|
-
- `workflows:workflow-create` —
|
|
99
|
-
- `workflows:development` — Development workflow
|
|
100
|
-
- `workflows:research` — Research workflow
|
|
101
|
-
- `
|
|
87
|
+
- `workflows:workflow-create` — Create a reusable workflow as an org config
|
|
88
|
+
- `workflows:development` — Development workflow pattern
|
|
89
|
+
- `workflows:research` — Research workflow pattern
|
|
90
|
+
- `monoswarm:monoswarm` — Monoswarm coordination
|
|
91
|
+
- `mastermind-runorg` — Start a saved org
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: workflows:workflow-export
|
|
3
|
-
description:
|
|
3
|
+
description: Inspect and export workflows — list org configs, export an org's flow as a Mermaid diagram, summarize runs, and print portable Mastermind procedures
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Workflow
|
|
6
|
+
# Workflow Export
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Inspect and export workflows. The CLI has no `workflow` command; the real equivalents operate on org configs (`.monomind/orgs/<name>.json`) and Mastermind procedures.
|
|
9
9
|
|
|
10
10
|
## How to Invoke
|
|
11
11
|
|
|
@@ -18,71 +18,45 @@ Skill("workflows:workflow-export")
|
|
|
18
18
|
## CLI Reference
|
|
19
19
|
|
|
20
20
|
```bash
|
|
21
|
-
# List
|
|
22
|
-
npx monomind
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
npx monomind
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
npx monomind
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
npx monomind
|
|
21
|
+
# List orgs (workflows) in the project and their runtime state
|
|
22
|
+
npx monomind org list
|
|
23
|
+
npx monomind org status
|
|
24
|
+
|
|
25
|
+
# Validate one or all org configs
|
|
26
|
+
npx monomind org validate api-dev
|
|
27
|
+
npx monomind org validate
|
|
28
|
+
|
|
29
|
+
# Export an org's flow as a Mermaid diagram (latest run by default)
|
|
30
|
+
npx monomind org flow api-dev
|
|
31
|
+
npx monomind org flow api-dev --run <run-id>
|
|
32
|
+
|
|
33
|
+
# Summarize runs
|
|
34
|
+
npx monomind org report api-dev
|
|
35
|
+
npx monomind org report api-dev --all
|
|
36
|
+
npx monomind org report api-dev --by-role
|
|
37
|
+
npx monomind org report api-dev --format mermaid
|
|
38
|
+
|
|
39
|
+
# Portable step-by-step procedures for platforms without native skills
|
|
40
|
+
npx monomind mastermind --list
|
|
41
|
+
npx monomind mastermind run plan --print > plan-workflow.md
|
|
35
42
|
```
|
|
36
43
|
|
|
37
|
-
##
|
|
38
|
-
|
|
39
|
-
| Template | Stages | Estimated Duration |
|
|
40
|
-
|----------|--------|--------------------|
|
|
41
|
-
| `development` | Planning → Implementation → Testing → Review → Integration | 15-30 min |
|
|
42
|
-
| `research` | Discovery → Analysis → Synthesis → Documentation | 10-20 min |
|
|
43
|
-
| `testing` | Unit → Integration → E2E → Performance | 5-15 min |
|
|
44
|
-
| `security-audit` | Threat Model → Static → Dynamic → Report | 20-40 min |
|
|
45
|
-
| `code-review` | Initial → Security → Quality → Feedback | 10-25 min |
|
|
46
|
-
| `refactoring` | Analysis → Planning → Refactor → Validation | 15-35 min |
|
|
47
|
-
| `custom` | Define your own stages | varies |
|
|
48
|
-
|
|
49
|
-
## MCP Tools
|
|
50
|
-
|
|
51
|
-
```javascript
|
|
52
|
-
// List templates
|
|
53
|
-
mcp__monomind__workflow_template({})
|
|
44
|
+
## Sharing a Workflow
|
|
54
45
|
|
|
55
|
-
|
|
56
|
-
mcp__monomind__workflow_list({ status: "completed", limit: 20 })
|
|
46
|
+
The org config is a plain JSON file, so it can be copied into another project's `.monomind/orgs/` and checked with `npx monomind org validate <name>`. For a full archive with the org's data, use the `mastermind-export` skill (and `mastermind-import` on the other side).
|
|
57
47
|
|
|
58
|
-
|
|
59
|
-
mcp__monomind__workflow_status({ workflowId: "wf-123" })
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
## Workflow File Format
|
|
63
|
-
|
|
64
|
-
To create a custom workflow file for use with `workflow run -f`:
|
|
65
|
-
|
|
66
|
-
```yaml
|
|
67
|
-
name: my-workflow
|
|
68
|
-
stages:
|
|
69
|
-
- name: Planning
|
|
70
|
-
agents: [architect]
|
|
71
|
-
- name: Implementation
|
|
72
|
-
agents: [coder]
|
|
73
|
-
- name: Testing
|
|
74
|
-
agents: [tester]
|
|
75
|
-
- name: Review
|
|
76
|
-
agents: [reviewer]
|
|
77
|
-
```
|
|
48
|
+
## Org Starter Templates
|
|
78
49
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
50
|
+
| Template | Roles |
|
|
51
|
+
|----------|-------|
|
|
52
|
+
| `dev-team` | tech-lead, developer, code-reviewer, qa |
|
|
53
|
+
| `research-pod` | lead-analyst, researcher, fact-checker |
|
|
54
|
+
| `content-team` | editor-in-chief, writer, reviewer |
|
|
55
|
+
| `kg-extraction` | kg-lead, entity-extractor, relationship-resolver, ontology-validator |
|
|
56
|
+
| `advisor-orchestrator` | advisor, worker-1, worker-2 |
|
|
84
57
|
|
|
85
58
|
## Related Skills
|
|
86
59
|
|
|
87
|
-
- `workflows:workflow-execute` — Run workflows
|
|
88
|
-
- `workflows:workflow-create` —
|
|
60
|
+
- `workflows:workflow-execute` — Run workflows
|
|
61
|
+
- `workflows:workflow-create` — Create a reusable workflow
|
|
62
|
+
- `mastermind-export` / `mastermind-import` — Org archives
|
|
@@ -20,8 +20,9 @@
|
|
|
20
20
|
* Org skill library (`orgSkills`, via org-skill-index.cjs). The file is
|
|
21
21
|
* generated per machine (init, upgrade, SessionStart, `monomind pick`) and is
|
|
22
22
|
* never committed — a shipped snapshot listed skills a project did not have.
|
|
23
|
-
* README/overview/reference docs, `_`-prefixed
|
|
24
|
-
*
|
|
23
|
+
* README/overview/reference docs, internal includes (any `_`-prefixed file,
|
|
24
|
+
* folder or frontmatter `name`) and helper-only skills (HELPER_ONLY, or
|
|
25
|
+
* frontmatter `type: helper`) are not entries.
|
|
25
26
|
* Frontmatter `pick: low` marks an admin/meta entry (org management pages,
|
|
26
27
|
* examples, the picker itself): it stays in the index, recorded as
|
|
27
28
|
* `pick: 'low'`, and the pickers rank it below equally matching entries so
|
|
@@ -35,10 +36,11 @@ var os = require('os');
|
|
|
35
36
|
var path = require('path');
|
|
36
37
|
var orgIndex = require('./org-skill-index.cjs');
|
|
37
38
|
|
|
38
|
-
/** Protocol pieces other skills include; never invoked on their own.
|
|
39
|
+
/** Protocol pieces other skills include; never invoked on their own.
|
|
40
|
+
* (`_`-prefixed includes need no entry here: isNotACandidate skips them all.) */
|
|
39
41
|
var HELPER_ONLY = new Set([
|
|
40
42
|
'mastermind-agent-select', 'mastermind-delegation', 'mastermind-intake',
|
|
41
|
-
'mastermind-protocol', 'mastermind-repeat',
|
|
43
|
+
'mastermind-protocol', 'mastermind-repeat',
|
|
42
44
|
]);
|
|
43
45
|
/** Documentation pages that live beside commands but are not commands. */
|
|
44
46
|
var DOC_NAMES = new Set(['readme', 'overview', 'reference', 'references']);
|
|
@@ -167,11 +169,13 @@ function isJunk(basename) {
|
|
|
167
169
|
}
|
|
168
170
|
|
|
169
171
|
/** Docs and helper-only pieces: README/overview/reference pages (or anything
|
|
170
|
-
* under a references/ dir),
|
|
172
|
+
* under a references/ dir), internal includes (a `_`-prefixed path segment or
|
|
173
|
+
* frontmatter name), HELPER_ONLY names, and `type: helper` frontmatter. */
|
|
171
174
|
function isNotACandidate(parts, fm) {
|
|
172
175
|
for (var i = 0; i < parts.length; i++) {
|
|
173
|
-
if (DOC_NAMES.has(parts[i].toLowerCase())) return true;
|
|
176
|
+
if (DOC_NAMES.has(parts[i].toLowerCase()) || parts[i].charAt(0) === '_') return true;
|
|
174
177
|
}
|
|
178
|
+
if (String(fm.name || '').trim().charAt(0) === '_') return true;
|
|
175
179
|
if (HELPER_ONLY.has(parts[parts.length - 1])) return true;
|
|
176
180
|
return String(fm.type || '').toLowerCase() === 'helper';
|
|
177
181
|
}
|
|
@@ -18,20 +18,17 @@ try { redaction = require('../redact-secrets.cjs'); } catch (e) { /* preview fal
|
|
|
18
18
|
var pickStats = null;
|
|
19
19
|
try { pickStats = require('../pick-stats.cjs'); } catch (e) { /* no outcome prior: keyword order stands */ }
|
|
20
20
|
var pickRank = null;
|
|
21
|
-
try { pickRank = require('../pick-rank.cjs'); } catch (e) { /* no trivial-prompt check */ }
|
|
22
|
-
|
|
23
|
-
// A keyword pick needs
|
|
24
|
-
// share of task words matched) AND a lead
|
|
25
|
-
//
|
|
26
|
-
//
|
|
27
|
-
|
|
28
|
-
var KEYWORD_MIN_AGENT_SCORE =
|
|
29
|
-
var KEYWORD_AGENT_LEAD =
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
// tests/pick-eval (59 tasks, 514 skills): 34 shown, 31 of them correct (91%).
|
|
33
|
-
var KEYWORD_MIN_SKILL_SCORE = 3;
|
|
34
|
-
var KEYWORD_SKILL_LEAD = 1.25;
|
|
21
|
+
try { pickRank = require('../pick-rank.cjs'); } catch (e) { /* no trivial-prompt check, no keyword pick */ }
|
|
22
|
+
|
|
23
|
+
// A keyword pick needs a minimum score (pick-rank.cjs: idf-weighted BM25 times
|
|
24
|
+
// the share of task words matched) AND a lead over the runner-up: the one
|
|
25
|
+
// gate pick-rank.cjs defines (KEYWORD_GATE, leads) and the CLI's `pick`
|
|
26
|
+
// shares. Without pick-rank nothing clears it.
|
|
27
|
+
var GATE = (pickRank && pickRank.KEYWORD_GATE) || { agents: { min: Infinity, lead: 1 }, skills: { min: Infinity, lead: 1 } };
|
|
28
|
+
var KEYWORD_MIN_AGENT_SCORE = GATE.agents.min;
|
|
29
|
+
var KEYWORD_AGENT_LEAD = GATE.agents.lead;
|
|
30
|
+
var KEYWORD_MIN_SKILL_SCORE = GATE.skills.min;
|
|
31
|
+
var KEYWORD_SKILL_LEAD = GATE.skills.lead;
|
|
35
32
|
var MAX_CANDIDATES = 5;
|
|
36
33
|
var PREVIEW_CHARS = 120;
|
|
37
34
|
// A prompt with fewer content words ("hi", "thanks", "ok, go ahead") is a
|
|
@@ -131,20 +128,18 @@ function rankSkills(jp, prompt, skills) {
|
|
|
131
128
|
});
|
|
132
129
|
}
|
|
133
130
|
|
|
134
|
-
/**
|
|
135
|
-
* floor is on keyword relevance alone (baseScore when a prior re-ranked). */
|
|
131
|
+
/** pick-rank.cjs leads(): the top entry when it clears the gate. */
|
|
136
132
|
function leads(list, min, ratio) {
|
|
137
|
-
|
|
138
|
-
if (!top || !((top.baseScore !== undefined ? top.baseScore : top.score) >= min)) return null;
|
|
139
|
-
var second = list[1];
|
|
140
|
-
if (!second || !(second.score > 0)) return top;
|
|
141
|
-
return top.score >= second.score * (ratio || 1) && top.score > second.score ? top : null;
|
|
133
|
+
return pickRank ? pickRank.leads(list, min, ratio) : null;
|
|
142
134
|
}
|
|
143
135
|
|
|
144
136
|
/**
|
|
145
137
|
* The prompt's pick. A Jev agent answer (already past acceptAgent) wins, else a
|
|
146
138
|
* strong keyword agent; a confident Jev skill answer (including "none fits")
|
|
147
|
-
* wins, else a strong keyword skill.
|
|
139
|
+
* wins, else a strong keyword skill. A question Jev answered below its bar
|
|
140
|
+
* (agentResponded / skillResponded) gets no pick at all: its candidates held
|
|
141
|
+
* the keyword leaders and it did not back them. Agent ids are resolved to
|
|
142
|
+
* registry names.
|
|
148
143
|
*/
|
|
149
144
|
function decide(opts) {
|
|
150
145
|
var agents = opts.agents || [];
|
|
@@ -159,6 +154,8 @@ function decide(opts) {
|
|
|
159
154
|
out.agent = { id: jev.agent, name: byId[jev.agent].name };
|
|
160
155
|
out.confidence = jev.agentConfidence;
|
|
161
156
|
viaJev = true;
|
|
157
|
+
} else if (jev && jev.agentResponded) {
|
|
158
|
+
viaJev = true;
|
|
162
159
|
} else {
|
|
163
160
|
var kw = leads(opts.keywordCands, KEYWORD_MIN_AGENT_SCORE, KEYWORD_AGENT_LEAD);
|
|
164
161
|
if (kw) { out.agent = { id: kw.id, name: kw.name }; viaKeyword = true; }
|
|
@@ -168,6 +165,8 @@ function decide(opts) {
|
|
|
168
165
|
var js = (jev.skills || [])[0];
|
|
169
166
|
if (js) out.skill = { skill: js.id, invoke: js.invoke };
|
|
170
167
|
viaJev = true;
|
|
168
|
+
} else if (jev && jev.skillResponded) {
|
|
169
|
+
viaJev = true;
|
|
171
170
|
} else {
|
|
172
171
|
var ks = leads(opts.skillMatches, KEYWORD_MIN_SKILL_SCORE, KEYWORD_SKILL_LEAD);
|
|
173
172
|
if (ks) { out.skill = { skill: ks.skill, invoke: ks.invoke }; viaKeyword = true; }
|
|
@@ -185,11 +184,23 @@ function decide(opts) {
|
|
|
185
184
|
return out;
|
|
186
185
|
}
|
|
187
186
|
|
|
188
|
-
|
|
187
|
+
var ORG_SKILL_INVOKE = 'mcp__monomind__org_skill_show ';
|
|
188
|
+
|
|
189
|
+
/** The one line Claude sees: `[PICK] agent: <name> · skill: <invoke>`, '' when
|
|
190
|
+
* nothing is confident. An Org skill also names its CLI read: Claude Code
|
|
191
|
+
* keeps a running MCP server until restart, and one older than the
|
|
192
|
+
* org_skill_show tool fails the MCP call. */
|
|
189
193
|
function formatPickLine(pick) {
|
|
190
194
|
var parts = [];
|
|
191
195
|
if (pick && pick.agent) parts.push('agent: ' + pick.agent.name);
|
|
192
|
-
if (pick && pick.skill)
|
|
196
|
+
if (pick && pick.skill) {
|
|
197
|
+
var invoke = pick.skill.invoke;
|
|
198
|
+
// Only a plain skill name (the org_skill_show name rule) goes into a command line.
|
|
199
|
+
if (invoke.indexOf(ORG_SKILL_INVOKE) === 0 && /^[a-z0-9][a-z0-9-]{0,63}$/.test(pick.skill.skill || '')) {
|
|
200
|
+
invoke += ' (or: npx -y monomind org skills show ' + pick.skill.skill + ')';
|
|
201
|
+
}
|
|
202
|
+
parts.push('skill: ' + invoke);
|
|
203
|
+
}
|
|
193
204
|
return parts.length ? '[PICK] ' + parts.join(' · ') : '';
|
|
194
205
|
}
|
|
195
206
|
|
|
@@ -120,9 +120,12 @@ async function _pickWithJev(CWD, prompt, agents, includeAgentId, skills) {
|
|
|
120
120
|
return {
|
|
121
121
|
provider: picked.provider,
|
|
122
122
|
agent: jp.acceptAgent(picked.agent),
|
|
123
|
+
// Jev answered the question (at any confidence): no keyword pick replaces it.
|
|
124
|
+
agentResponded: !!picked.agent,
|
|
123
125
|
agentConfidence: picked.agent ? picked.agent.confidence : 0,
|
|
124
126
|
agentRanked: picked.agent ? picked.agent.ranked : [],
|
|
125
|
-
|
|
127
|
+
skillResponded: !!picked.skill,
|
|
128
|
+
// Only a confident skill answer (including a confident "none fits") names a skill.
|
|
126
129
|
skillAnswered: !!picked.skill && picked.skill.confidence >= jp.resolveMinConfidence(process.env),
|
|
127
130
|
skills: jp.acceptSkills(picked.skill).map(function (id) { return skillById[id]; }).filter(Boolean),
|
|
128
131
|
};
|
|
@@ -134,6 +137,10 @@ async function _pickWithJev(CWD, prompt, agents, includeAgentId, skills) {
|
|
|
134
137
|
// is not a selector (its agent table and matchSkills predate the catalogs).
|
|
135
138
|
async function _decidePick(CWD, prompt) {
|
|
136
139
|
var jp = _loadJevPicker();
|
|
140
|
+
// The skill index is read below: rebuild it first when a skill/command tree
|
|
141
|
+
// is newer (a stat scan, plus a ~30 ms build only when stale). Fails open:
|
|
142
|
+
// the catalog still drops entries whose file is gone.
|
|
143
|
+
try { pickCore.ensureSkillRegistryFresh(CWD); } catch (e) { /* keep the index as it is */ }
|
|
137
144
|
var agents = jp ? jp.loadAgentCatalog(CWD) : [];
|
|
138
145
|
var skills = jp ? jp.loadSkillCatalog(CWD) : [];
|
|
139
146
|
var skillMatches = pickCore.rankSkills(jp, prompt, skills);
|
|
@@ -144,8 +151,9 @@ async function _decidePick(CWD, prompt) {
|
|
|
144
151
|
var keywordCands = pickCore.rankAgents(jp, prompt, agents, stats);
|
|
145
152
|
var jev = await _pickWithJev(CWD, prompt, agents, keywordCands[0] && keywordCands[0].id, skills);
|
|
146
153
|
var pick = pickCore.decide({ agents: agents, keywordCands: keywordCands, skillMatches: skillMatches, jev: jev });
|
|
147
|
-
// Jev's skill answer replaces keyword skill matches, including "none fits"
|
|
148
|
-
|
|
154
|
+
// Jev's skill answer replaces keyword skill matches, including "none fits"
|
|
155
|
+
// and an answer below its bar (no skills then).
|
|
156
|
+
if (jev && jev.skillResponded) {
|
|
149
157
|
skillMatches = jev.skills.map(function (s, i) {
|
|
150
158
|
return { skill: s.id, invoke: s.invoke, description: s.description || '', score: i === 0 ? 2 : 1, source: 'jev' };
|
|
151
159
|
});
|
|
@@ -313,8 +313,10 @@ async function main() {
|
|
|
313
313
|
function isSimpleCommand(p) {
|
|
314
314
|
if (typeof p !== 'string') return false;
|
|
315
315
|
var s = p.trim();
|
|
316
|
-
// Slash commands: /ts, /list-agents, /commit, /help,
|
|
317
|
-
|
|
316
|
+
// Slash commands: /ts, /list-agents, /commit, /help, and namespaced ones
|
|
317
|
+
// (/mastermind:plan). A path (/var/log/app.log …) has a second '/' and is
|
|
318
|
+
// not a command.
|
|
319
|
+
if (/^\/[a-z0-9_-]+(:[a-z0-9_-]+)*(\s|$)/i.test(s)) return true;
|
|
318
320
|
// Short single-word operator tokens (toggle, list, status)
|
|
319
321
|
if (/^(ts|ls|ps|pwd|help|clear|exit|quit|status|toggle|refresh)$/i.test(s)) return true;
|
|
320
322
|
// Already-resolved command messages (Claude Code sends hook with command-name context)
|
|
@@ -49,7 +49,9 @@ function norm(s) {
|
|
|
49
49
|
|
|
50
50
|
/** Agents from .monomind/registry.json (built by registry-builder.ts), or from
|
|
51
51
|
* opts.registry (an in-memory build outside a project). The description leads
|
|
52
|
-
* with the one-line `when_to_use`; deprecated agents drop.
|
|
52
|
+
* with the one-line `when_to_use`; deprecated agents drop. The `vibe`
|
|
53
|
+
* personality line is not ranked: its words ("crashes", "segfault") name no
|
|
54
|
+
* capability and pulled unrelated tasks to the agent. */
|
|
53
55
|
function loadAgentCatalog(root, opts) {
|
|
54
56
|
var reg = (opts && opts.registry) || readJsonFile(path.join(root, '.monomind', 'registry.json'));
|
|
55
57
|
var list = reg && Array.isArray(reg.agents) ? reg.agents : [];
|
|
@@ -67,7 +69,7 @@ function loadAgentCatalog(root, opts) {
|
|
|
67
69
|
category: category,
|
|
68
70
|
description: when ? when + (description ? ' — ' + description : '') : description,
|
|
69
71
|
text: [category]
|
|
70
|
-
.concat(strings(a.tags), strings(a.capabilities), strings(a.taskTypes)
|
|
72
|
+
.concat(strings(a.tags), strings(a.capabilities), strings(a.taskTypes))
|
|
71
73
|
.filter(Boolean)
|
|
72
74
|
.join(' '),
|
|
73
75
|
};
|
|
@@ -143,11 +145,13 @@ function jevAllowed(gate, s, root) {
|
|
|
143
145
|
}
|
|
144
146
|
|
|
145
147
|
/** Platform commands/skills. Command/skill mirrors of one capability collapse,
|
|
146
|
-
* preferring the slash form.
|
|
148
|
+
* preferring the slash form. An entry whose source file is gone (the index
|
|
149
|
+
* predates its removal) is dropped: naming it would fail at invoke time. */
|
|
147
150
|
function platformSkills(root, list, gate) {
|
|
148
151
|
var byKey = new Map();
|
|
149
152
|
list.forEach(function (s) {
|
|
150
153
|
if (!s || typeof s.skill !== 'string' || typeof s.invoke !== 'string') return;
|
|
154
|
+
if (typeof s.source === 'string' && !fs.existsSync(sourceFile(root, s.source))) return;
|
|
151
155
|
// A catalog projection reaches the decision model only when approved with
|
|
152
156
|
// the jev target; ordinary skills carry no catalog field and are unaffected.
|
|
153
157
|
if (s.catalog && s.catalog.jev !== true) return;
|