@monoes/monomindcli 2.9.6 → 2.9.8
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/design/design-monodesign.md +1 -2
- package/.claude/agents/engineering/engineering-ai-data-remediation-engineer.md +1 -2
- package/.claude/agents/engineering/engineering-ai-engineer.md +1 -2
- package/.claude/agents/engineering/engineering-autonomous-optimization-architect.md +0 -1
- package/.claude/agents/engineering/engineering-backend-architect.md +1 -2
- package/.claude/agents/engineering/engineering-code-reviewer.md +1 -2
- package/.claude/agents/engineering/engineering-data-engineer.md +1 -2
- package/.claude/agents/engineering/engineering-database-optimizer.md +1 -2
- package/.claude/agents/engineering/engineering-devops-automator.md +1 -2
- package/.claude/agents/engineering/engineering-embedded-firmware-engineer.md +1 -2
- package/.claude/agents/engineering/engineering-feishu-integration-developer.md +1 -2
- package/.claude/agents/engineering/engineering-frontend-developer.md +1 -2
- package/.claude/agents/engineering/engineering-git-workflow-master.md +1 -2
- package/.claude/agents/engineering/engineering-incident-response-commander.md +0 -1
- package/.claude/agents/engineering/engineering-mobile-app-builder.md +1 -2
- package/.claude/agents/engineering/engineering-rapid-prototyper.md +1 -2
- package/.claude/agents/engineering/engineering-security-engineer.md +1 -2
- package/.claude/agents/engineering/engineering-senior-developer.md +1 -2
- package/.claude/agents/engineering/engineering-software-architect.md +1 -2
- package/.claude/agents/engineering/engineering-solidity-smart-contract-engineer.md +1 -2
- package/.claude/agents/engineering/engineering-sre.md +0 -1
- package/.claude/agents/engineering/engineering-technical-writer.md +1 -2
- package/.claude/agents/engineering/engineering-threat-detection-engineer.md +0 -1
- package/.claude/agents/engineering/engineering-wechat-mini-program-developer.md +1 -2
- package/.claude/agents/github/code-review-swarm.md +0 -1
- package/.claude/agents/github/github-modes.md +0 -1
- package/.claude/agents/github/issue-tracker.md +0 -1
- package/.claude/agents/github/multi-repo-swarm.md +0 -1
- package/.claude/agents/github/pr-manager.md +0 -1
- package/.claude/agents/github/project-board-sync.md +0 -1
- package/.claude/agents/github/release-manager.md +0 -1
- package/.claude/agents/github/repo-architect.md +0 -1
- package/.claude/agents/github/swarm-issue.md +0 -1
- package/.claude/agents/github/swarm-pr.md +0 -1
- package/.claude/agents/github/sync-coordinator.md +0 -1
- package/.claude/agents/github/workflow-automation.md +0 -1
- package/.claude/agents/marketing/marketing-competitive-content.md +1 -2
- package/.claude/agents/marketing/marketing-cro-specialist.md +1 -2
- package/.claude/agents/marketing/marketing-email-specialist.md +1 -2
- package/.claude/agents/marketing/marketing-launch-strategist.md +1 -2
- package/.claude/agents/marketing/marketing-pricing-strategist.md +1 -2
- package/.claude/agents/specialized/agentic-identity-trust.md +0 -1
- package/.claude/agents/specialized/agents-orchestrator.md +1 -2
- package/.claude/agents/specialized/automation-governance-architect.md +1 -2
- package/.claude/agents/specialized/blockchain-security-auditor.md +1 -2
- package/.claude/agents/specialized/compliance-auditor.md +1 -2
- package/.claude/agents/specialized/identity-graph-operator.md +0 -1
- package/.claude/agents/specialized/lsp-index-engineer.md +1 -2
- package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +0 -1
- package/.claude/agents/specialized/specialized-cultural-intelligence-strategist.md +0 -1
- package/.claude/agents/specialized/specialized-developer-advocate.md +1 -2
- package/.claude/agents/specialized/specialized-document-generator.md +1 -2
- package/.claude/agents/specialized/specialized-mcp-builder.md +1 -2
- package/.claude/agents/specialized/specialized-model-qa.md +0 -1
- package/.claude/agents/specialized/specialized-workflow-architect.md +1 -2
- package/.claude/agents/specialized/zk-steward.md +1 -2
- package/.claude/agents/testing/production-validator.md +0 -1
- package/.claude/agents/testing/tdd-london-swarm.md +0 -1
- package/.claude/agents/testing/testing-accessibility-auditor.md +0 -1
- package/.claude/agents/testing/testing-api-tester.md +1 -2
- package/.claude/agents/testing/testing-evidence-collector.md +1 -2
- package/.claude/agents/testing/testing-performance-benchmarker.md +1 -2
- package/.claude/agents/testing/testing-test-results-analyzer.md +1 -2
- package/.claude/agents/testing/testing-tool-evaluator.md +1 -2
- package/.claude/agents/testing/testing-workflow-optimizer.md +1 -2
- package/.claude/commands/hooks/README.md +1 -1
- package/.claude/commands/memory/README.md +6 -7
- package/.claude/commands/monitoring/README.md +1 -1
- package/.claude/helpers/control-start.cjs +27 -7
- package/.claude/helpers/handlers/route-handler.cjs +22 -3
- package/.claude/helpers/handlers/session-handler.cjs +43 -0
- package/.claude/helpers/intelligence.cjs +27 -6
- package/.claude/helpers/statusline.cjs +45 -11
- package/.claude/skills/agentic-jujutsu/SKILL.md +17 -15
- package/.claude/skills/hive-mind-advanced/SKILL.md +212 -559
- package/.claude/skills/hooks-automation/SKILL.md +1 -1
- package/.claude/skills/mastermind-adapters/SKILL.md +0 -11
- package/.claude/skills/mastermind-agents/SKILL.md +0 -11
- package/.claude/skills/mastermind-backup/SKILL.md +0 -11
- package/.claude/skills/mastermind-bootstrap/SKILL.md +0 -11
- package/.claude/skills/mastermind-delegation/SKILL.md +14 -12
- package/.claude/skills/mastermind-idea/SKILL.md +0 -5
- package/.claude/skills/mastermind-monitor/SKILL.md +0 -15
- package/.claude/skills/mastermind-org-settings/SKILL.md +0 -11
- package/.claude/skills/mastermind-plugins/SKILL.md +0 -11
- package/.claude/skills/mastermind-protocol/SKILL.md +6 -124
- package/.claude/skills/mastermind-repeat/SKILL.md +0 -25
- package/.claude/skills/mastermind-review/SKILL.md +1 -1
- package/.claude/skills/mastermind-stoporg/SKILL.md +0 -19
- package/.claude/skills/memory-toolkit/SKILL.md +12 -11
- package/.claude/skills/monodesign/scripts/detector/engines/browser/drivers.mjs +8 -1
- package/.claude/skills/pair-programming/SKILL.md +1 -1
- package/.claude/skills/performance-analysis/SKILL.md +228 -484
- package/.claude/skills/specialagent/SKILL.md +31 -133
- package/.claude/skills/swarm-advanced/SKILL.md +2 -2
- package/.claude/skills/swarm-orchestration/SKILL.md +220 -150
- package/.claude/skills/verification-quality/SKILL.md +247 -571
- package/README.md +3 -3
- package/dist/src/commands/agent-lifecycle.js +3 -3
- package/dist/src/commands/agent-lifecycle.js.map +1 -1
- package/dist/src/commands/autopilot.d.ts.map +1 -1
- package/dist/src/commands/autopilot.js +7 -1
- package/dist/src/commands/autopilot.js.map +1 -1
- package/dist/src/commands/doc.d.ts.map +1 -1
- package/dist/src/commands/doc.js +14 -3
- package/dist/src/commands/doc.js.map +1 -1
- package/dist/src/commands/doctor-env-checks.d.ts +1 -1
- package/dist/src/commands/doctor-env-checks.d.ts.map +1 -1
- package/dist/src/commands/doctor-project-checks.d.ts.map +1 -1
- package/dist/src/commands/doctor-project-checks.js +3 -37
- 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 +30 -1
- package/dist/src/commands/doctor.js.map +1 -1
- package/dist/src/commands/hooks-coverage-commands.d.ts.map +1 -1
- package/dist/src/commands/hooks-coverage-commands.js +75 -67
- package/dist/src/commands/hooks-coverage-commands.js.map +1 -1
- package/dist/src/commands/hooks-workers.d.ts.map +1 -1
- package/dist/src/commands/hooks-workers.js +41 -10
- package/dist/src/commands/hooks-workers.js.map +1 -1
- package/dist/src/commands/hooks.js +1 -1
- package/dist/src/commands/index.d.ts +1 -1
- package/dist/src/commands/index.d.ts.map +1 -1
- package/dist/src/commands/index.js +20 -4
- 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 +80 -7
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/mcp.d.ts.map +1 -1
- package/dist/src/commands/mcp.js +78 -2
- package/dist/src/commands/mcp.js.map +1 -1
- package/dist/src/commands/neural-optimize.d.ts.map +1 -1
- package/dist/src/commands/neural-optimize.js +27 -5
- package/dist/src/commands/neural-optimize.js.map +1 -1
- package/dist/src/commands/org-observe.d.ts.map +1 -1
- package/dist/src/commands/org-observe.js +1 -0
- package/dist/src/commands/org-observe.js.map +1 -1
- package/dist/src/commands/org.d.ts.map +1 -1
- package/dist/src/commands/org.js +129 -2
- package/dist/src/commands/org.js.map +1 -1
- package/dist/src/commands/performance.js +1 -1
- package/dist/src/commands/performance.js.map +1 -1
- package/dist/src/commands/security-cve.d.ts.map +1 -1
- package/dist/src/commands/security-cve.js +1 -11
- package/dist/src/commands/security-cve.js.map +1 -1
- package/dist/src/commands/security-misc.d.ts +0 -9
- package/dist/src/commands/security-misc.d.ts.map +1 -1
- package/dist/src/commands/security-misc.js +33 -54
- package/dist/src/commands/security-misc.js.map +1 -1
- package/dist/src/commands/security-scan.d.ts.map +1 -1
- package/dist/src/commands/security-scan.js +3 -11
- package/dist/src/commands/security-scan.js.map +1 -1
- package/dist/src/commands/swarm.d.ts.map +1 -1
- package/dist/src/commands/swarm.js +7 -2
- package/dist/src/commands/swarm.js.map +1 -1
- package/dist/src/commands/ui.d.ts +8 -0
- package/dist/src/commands/ui.d.ts.map +1 -0
- package/dist/src/commands/ui.js +94 -0
- package/dist/src/commands/ui.js.map +1 -0
- package/dist/src/init/claudemd-generator.d.ts.map +1 -1
- package/dist/src/init/claudemd-generator.js +7 -9
- package/dist/src/init/claudemd-generator.js.map +1 -1
- package/dist/src/init/executor.d.ts.map +1 -1
- package/dist/src/init/executor.js +13 -3
- package/dist/src/init/executor.js.map +1 -1
- package/dist/src/init/kimi-generator.d.ts +3 -2
- package/dist/src/init/kimi-generator.d.ts.map +1 -1
- package/dist/src/init/kimi-generator.js +45 -13
- package/dist/src/init/kimi-generator.js.map +1 -1
- package/dist/src/init/statusline-generator.d.ts +1 -1
- package/dist/src/init/statusline-generator.js +1 -1
- package/dist/src/init/write-capabilities.js +7 -7
- package/dist/src/init/write-capabilities.js.map +1 -1
- package/dist/src/knowledge/document-pipeline.d.ts.map +1 -1
- package/dist/src/knowledge/document-pipeline.js +1 -0
- package/dist/src/knowledge/document-pipeline.js.map +1 -1
- package/dist/src/knowledge/eval/golden-set.d.ts.map +1 -1
- package/dist/src/knowledge/eval/golden-set.js +21 -32
- package/dist/src/knowledge/eval/golden-set.js.map +1 -1
- package/dist/src/mcp-tools/embeddings-tools.js +2 -2
- package/dist/src/mcp-tools/embeddings-tools.js.map +1 -1
- package/dist/src/mcp-tools/hooks-intelligence.d.ts.map +1 -1
- package/dist/src/mcp-tools/hooks-intelligence.js +29 -3
- package/dist/src/mcp-tools/hooks-intelligence.js.map +1 -1
- package/dist/src/mcp-tools/hooks-routing.d.ts.map +1 -1
- package/dist/src/mcp-tools/hooks-routing.js +32 -19
- package/dist/src/mcp-tools/hooks-routing.js.map +1 -1
- package/dist/src/mcp-tools/monograph/query-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/monograph/query-tools.js +48 -18
- package/dist/src/mcp-tools/monograph/query-tools.js.map +1 -1
- package/dist/src/mcp-tools/performance-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/performance-tools.js +15 -10
- package/dist/src/mcp-tools/performance-tools.js.map +1 -1
- package/dist/src/memory/embedding-operations.d.ts +4 -0
- package/dist/src/memory/embedding-operations.d.ts.map +1 -1
- package/dist/src/memory/embedding-operations.js +125 -32
- package/dist/src/memory/embedding-operations.js.map +1 -1
- package/dist/src/memory/hnsw-operations.d.ts +1 -1
- package/dist/src/memory/hnsw-operations.js +1 -1
- package/dist/src/memory/memory-bridge.d.ts +8 -0
- package/dist/src/memory/memory-bridge.d.ts.map +1 -1
- package/dist/src/memory/memory-bridge.js +37 -8
- package/dist/src/memory/memory-bridge.js.map +1 -1
- package/dist/src/memory/memory-read.d.ts +1 -1
- package/dist/src/memory/memory-read.js +2 -2
- package/dist/src/memory/memory-read.js.map +1 -1
- package/dist/src/orgrt/antigravity-runner.d.ts.map +1 -1
- package/dist/src/orgrt/antigravity-runner.js +6 -6
- package/dist/src/orgrt/antigravity-runner.js.map +1 -1
- package/dist/src/orgrt/checkpoint-ops.d.ts +11 -1
- package/dist/src/orgrt/checkpoint-ops.d.ts.map +1 -1
- package/dist/src/orgrt/checkpoint-ops.js +18 -86
- package/dist/src/orgrt/checkpoint-ops.js.map +1 -1
- package/dist/src/orgrt/checkpoint.d.ts +1 -1
- package/dist/src/orgrt/checkpoint.d.ts.map +1 -1
- package/dist/src/orgrt/checkpoint.js +3 -3
- package/dist/src/orgrt/checkpoint.js.map +1 -1
- package/dist/src/orgrt/daemon.d.ts +9 -1
- package/dist/src/orgrt/daemon.d.ts.map +1 -1
- package/dist/src/orgrt/daemon.js +267 -139
- package/dist/src/orgrt/daemon.js.map +1 -1
- package/dist/src/orgrt/decisions.d.ts +13 -0
- package/dist/src/orgrt/decisions.d.ts.map +1 -1
- package/dist/src/orgrt/decisions.js +95 -0
- package/dist/src/orgrt/decisions.js.map +1 -1
- package/dist/src/orgrt/forwarder.d.ts.map +1 -1
- package/dist/src/orgrt/forwarder.js +148 -15
- package/dist/src/orgrt/forwarder.js.map +1 -1
- package/dist/src/orgrt/kimicode-runner.js +1 -1
- package/dist/src/orgrt/kimicode-runner.js.map +1 -1
- package/dist/src/orgrt/opencode-runner.js +1 -1
- package/dist/src/orgrt/opencode-runner.js.map +1 -1
- package/dist/src/orgrt/session.d.ts +27 -1
- package/dist/src/orgrt/session.d.ts.map +1 -1
- package/dist/src/orgrt/session.js +67 -6
- package/dist/src/orgrt/session.js.map +1 -1
- package/dist/src/orgrt/task-dag.d.ts +11 -1
- package/dist/src/orgrt/task-dag.d.ts.map +1 -1
- package/dist/src/orgrt/task-dag.js +93 -2
- package/dist/src/orgrt/task-dag.js.map +1 -1
- package/dist/src/orgrt/templates.d.ts.map +1 -1
- package/dist/src/orgrt/templates.js +26 -2
- package/dist/src/orgrt/templates.js.map +1 -1
- package/dist/src/orgrt/types.d.ts +77 -1
- package/dist/src/orgrt/types.d.ts.map +1 -1
- package/dist/src/orgrt/types.js +28 -2
- package/dist/src/orgrt/types.js.map +1 -1
- package/dist/src/orgrt/vercel-providers.d.ts.map +1 -1
- package/dist/src/orgrt/vercel-providers.js +9 -4
- package/dist/src/orgrt/vercel-providers.js.map +1 -1
- package/dist/src/orgrt/vercel-runner.d.ts +0 -23
- package/dist/src/orgrt/vercel-runner.d.ts.map +1 -1
- package/dist/src/orgrt/vercel-runner.js +38 -7
- package/dist/src/orgrt/vercel-runner.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/.claude/commands/mastermind/approvev1.md +0 -94
- package/.claude/commands/mastermind/architect.md +0 -52
- package/.claude/commands/mastermind/autodev.md +0 -28
- package/.claude/commands/mastermind/build.md +0 -23
- package/.claude/commands/mastermind/finish.md +0 -17
- package/.claude/commands/mastermind/runorgv1.md +0 -159
- package/.claude/commands/mastermind/taskdev.md +0 -23
- package/.claude/commands/mastermind/tdd.md +0 -19
- package/.claude/commands/mastermind/verify.md +0 -19
- package/.claude/skills/mastermind-approvev1/SKILL.md +0 -191
- package/.claude/skills/mastermind-architect/SKILL.md +0 -862
- package/.claude/skills/mastermind-autodev/SKILL.md +0 -360
- package/.claude/skills/mastermind-build/SKILL.md +0 -169
- package/.claude/skills/mastermind-companies/SKILL.md +0 -256
- package/.claude/skills/mastermind-content/SKILL.md +0 -197
- package/.claude/skills/mastermind-costs/SKILL.md +0 -151
- package/.claude/skills/mastermind-finance/SKILL.md +0 -166
- package/.claude/skills/mastermind-finish/SKILL.md +0 -251
- package/.claude/skills/mastermind-heartbeatv1/SKILL.md +0 -167
- package/.claude/skills/mastermind-instance-settings/SKILL.md +0 -315
- package/.claude/skills/mastermind-marketing/SKILL.md +0 -228
- package/.claude/skills/mastermind-marketing/references/copywriting-frameworks.md +0 -181
- package/.claude/skills/mastermind-marketing/references/persuasion-psychology.md +0 -158
- package/.claude/skills/mastermind-ops/SKILL.md +0 -168
- package/.claude/skills/mastermind-org-chart/SKILL.md +0 -209
- package/.claude/skills/mastermind-project-detail/SKILL.md +0 -249
- package/.claude/skills/mastermind-project-workspace/SKILL.md +0 -244
- package/.claude/skills/mastermind-projects/SKILL.md +0 -167
- package/.claude/skills/mastermind-runorgv1/SKILL.md +0 -731
- package/.claude/skills/mastermind-sales/SKILL.md +0 -170
- package/.claude/skills/mastermind-taskdev/SKILL.md +0 -377
- package/.claude/skills/mastermind-taskdev/code-quality-reviewer-prompt.md +0 -60
- package/.claude/skills/mastermind-taskdev/final-reviewer-prompt.md +0 -144
- package/.claude/skills/mastermind-taskdev/implementer-prompt.md +0 -114
- package/.claude/skills/mastermind-taskdev/spec-reviewer-prompt.md +0 -80
- package/.claude/skills/mastermind-tdd/SKILL.md +0 -424
- package/.claude/skills/mastermind-verify/SKILL.md +0 -196
- package/.claude/skills/mastermind-wiki/SKILL.md +0 -314
- package/.claude/skills/monolean-review/SKILL.md +0 -57
|
@@ -23,7 +23,7 @@ This skill provides a comprehensive hook system that automatically manages devel
|
|
|
23
23
|
## Prerequisites
|
|
24
24
|
|
|
25
25
|
**Required:**
|
|
26
|
-
- Monomind CLI installed (`npm install -g monomind@
|
|
26
|
+
- Monomind CLI installed (`npm install -g monomind@latest`)
|
|
27
27
|
- Claude Code with hooks enabled
|
|
28
28
|
- `.claude/settings.json` with hook configurations
|
|
29
29
|
|
|
@@ -134,17 +134,6 @@ echo "Installed: $package_name as adapter type '$adapter_type'"
|
|
|
134
134
|
echo "NOTE: Restart the org run to activate the new adapter."
|
|
135
135
|
```
|
|
136
136
|
|
|
137
|
-
Emit `org:adapter:installed` event:
|
|
138
|
-
|
|
139
|
-
```bash
|
|
140
|
-
REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd)
|
|
141
|
-
CTRL_URL=$(jq -r '.url // "http://localhost:4242"' "$REPO_ROOT/.monomind/control.json" 2>/dev/null || echo "http://localhost:4242")
|
|
142
|
-
curl -s -X POST "${CTRL_URL}/api/mastermind/event" -H "x-monomind-token: $(cat "${REPO_ROOT:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)}/.monomind/dashboard-token" 2>/dev/null || true)" \
|
|
143
|
-
-H "Content-Type: application/json" \
|
|
144
|
-
-d "$(jq -cn --arg org "$org_name" --arg type "$adapter_type" --arg pkg "$package_name" \
|
|
145
|
-
'{type:"org:adapter:installed",org:$org,adapter:$type,package:$pkg,ts:(now*1000|floor)}')" || true
|
|
146
|
-
```
|
|
147
|
-
|
|
148
137
|
### remove
|
|
149
138
|
|
|
150
139
|
```bash
|
|
@@ -124,17 +124,6 @@ jq --arg id "$agent_id" \
|
|
|
124
124
|
echo "Hired: $title ($agent_type) → adapter: $adapter_model"
|
|
125
125
|
```
|
|
126
126
|
|
|
127
|
-
Then emit `org:agent:hired` event to dashboard:
|
|
128
|
-
|
|
129
|
-
```bash
|
|
130
|
-
REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd)
|
|
131
|
-
CTRL_URL=$(jq -r '.url // "http://localhost:4242"' "$REPO_ROOT/.monomind/control.json" 2>/dev/null || echo "http://localhost:4242")
|
|
132
|
-
curl -s -X POST "${CTRL_URL}/api/mastermind/event" -H "x-monomind-token: $(cat "${REPO_ROOT:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)}/.monomind/dashboard-token" 2>/dev/null || true)" \
|
|
133
|
-
-H "Content-Type: application/json" \
|
|
134
|
-
-d "$(jq -cn --arg org "$org_name" --arg role "$agent_id" --arg title "$title" \
|
|
135
|
-
'{type:"org:agent:hired",org:$org,role:$role,title:$title,ts:(now*1000|floor)}')" || true
|
|
136
|
-
```
|
|
137
|
-
|
|
138
127
|
### pause / resume
|
|
139
128
|
|
|
140
129
|
<!-- LEGACY-ORG-V1: the agent state/heartbeat file this pauses is a v1 concept. -->
|
|
@@ -88,17 +88,6 @@ else
|
|
|
88
88
|
fi
|
|
89
89
|
```
|
|
90
90
|
|
|
91
|
-
Emit `org:backup:created` event:
|
|
92
|
-
|
|
93
|
-
```bash
|
|
94
|
-
REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd)
|
|
95
|
-
CTRL_URL=$(jq -r '.url // "http://localhost:4242"' "$REPO_ROOT/.monomind/control.json" 2>/dev/null || echo "http://localhost:4242")
|
|
96
|
-
curl -s -X POST "${CTRL_URL}/api/mastermind/event" -H "x-monomind-token: $(cat "${REPO_ROOT:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)}/.monomind/dashboard-token" 2>/dev/null || true)" \
|
|
97
|
-
-H "Content-Type: application/json" \
|
|
98
|
-
-d "$(jq -cn --arg org "$org_name" --arg file "$archiveName" \
|
|
99
|
-
'{type:"org:backup:created",org:$org,file:$file,ts:(now*1000|floor)}')" || true
|
|
100
|
-
```
|
|
101
|
-
|
|
102
91
|
### list
|
|
103
92
|
|
|
104
93
|
Show all available backups:
|
|
@@ -146,17 +146,6 @@ Use your INVITE_TOKEN for your first heartbeat. Token is single-use.
|
|
|
146
146
|
PRIMER
|
|
147
147
|
```
|
|
148
148
|
|
|
149
|
-
Emit `org:bootstrap:complete` event:
|
|
150
|
-
|
|
151
|
-
```bash
|
|
152
|
-
REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd)
|
|
153
|
-
CTRL_URL=$(jq -r '.url // "http://localhost:4242"' "$REPO_ROOT/.monomind/control.json" 2>/dev/null || echo "http://localhost:4242")
|
|
154
|
-
curl -s -X POST "${CTRL_URL}/api/mastermind/event" -H "x-monomind-token: $(cat "${REPO_ROOT:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)}/.monomind/dashboard-token" 2>/dev/null || true)" \
|
|
155
|
-
-H "Content-Type: application/json" \
|
|
156
|
-
-d "$(jq -cn --arg org "$org_name" --arg boss "$boss_role_id" \
|
|
157
|
-
'{type:"org:bootstrap:complete",org:$org,boss:$boss,ts:(now*1000|floor)}')" || true
|
|
158
|
-
```
|
|
159
|
-
|
|
160
149
|
### reset
|
|
161
150
|
|
|
162
151
|
Clear bootstrap state (next init will regenerate token):
|
|
@@ -26,22 +26,24 @@ You have full access to the Agent tool (Claude Code: Task tool) to spawn
|
|
|
26
26
|
sub-agents for any specialized subtask. This capability is recursive —
|
|
27
27
|
sub-agents you spawn also receive it.
|
|
28
28
|
|
|
29
|
-
Available agent categories (use the exact slug or name):
|
|
29
|
+
Available agent categories (use the exact slug or name — all of these exist on disk):
|
|
30
30
|
|
|
31
31
|
CORE coder · reviewer · tester · planner · researcher
|
|
32
|
-
BACKEND
|
|
32
|
+
BACKEND Backend Architect · Database Optimizer · API Tester
|
|
33
33
|
FRONTEND Frontend Developer · mobile-dev · Mobile App Builder
|
|
34
|
-
ARCH Software Architect · system-architect
|
|
35
|
-
SECURITY Security Engineer ·
|
|
36
|
-
AI/ML AI Engineer ·
|
|
37
|
-
DEVOPS DevOps Automator · SRE ·
|
|
38
|
-
DOCS Technical Writer
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
SALES Deal Strategist · Sales Coach · Outbound Strategist
|
|
43
|
-
BUSINESS Finance Tracker · Legal Compliance Checker · Analytics Reporter
|
|
34
|
+
ARCH Software Architect · system-architect · Backend Architect
|
|
35
|
+
SECURITY Security Engineer · Compliance Auditor · Blockchain Security Auditor · Threat Detection Engineer
|
|
36
|
+
AI/ML AI Engineer · Data Engineer · AI Data Remediation Engineer · Model QA Specialist
|
|
37
|
+
DEVOPS DevOps Automator · SRE (Site Reliability Engineer) · Git Workflow Master · Incident Response Commander
|
|
38
|
+
DOCS Technical Writer
|
|
39
|
+
MARKETING Competitive Content Strategist · CRO Specialist · Email Marketing Specialist · Launch Strategist · Pricing Strategist
|
|
40
|
+
SPECIALIZED MCP Builder · Document Generator · LSP/Index Engineer · Embedded Firmware Engineer · Solidity Smart Contract Engineer
|
|
41
|
+
GITHUB pr-manager · issue-tracker · code-review-swarm · release-manager
|
|
44
42
|
DESIGN Monodesign (UI/UX · brand · CSS · animation · design systems)
|
|
43
|
+
SWARM mesh-coordinator · coordinator · Agents Orchestrator
|
|
44
|
+
|
|
45
|
+
The authoritative list is the filesystem — run `ls .claude/agents/` for the full
|
|
46
|
+
~98-agent set. Do NOT invent agent names; only delegate to agents that exist.
|
|
45
47
|
|
|
46
48
|
WHEN to delegate:
|
|
47
49
|
- A subtask needs deeper expertise than your primary role
|
|
@@ -1079,7 +1079,6 @@ MONO_DIR=$(_get_mono_dir "$REPO_ROOT")
|
|
|
1079
1079
|
SESSION_ID=$(jq -r '.sessionId // empty' "$MONO_DIR/sessions/current.json" 2>/dev/null)
|
|
1080
1080
|
if [ -n "$SESSION_ID" ]; then
|
|
1081
1081
|
mkdir -p "$MONO_DIR/sessions/${SESSION_ID}"
|
|
1082
|
-
CTRL_URL=$(jq -r '.url // "http://localhost:4242"' "$REPO_ROOT/.monomind/control.json" 2>/dev/null || echo "http://localhost:4242")
|
|
1083
1082
|
# LLM: substitute <status>: complete (all steps ran), partial (some skipped), blocked (critical error)
|
|
1084
1083
|
# LLM: substitute next_actions with actual suggestions derived from this run's top ideas
|
|
1085
1084
|
jq -n \
|
|
@@ -1089,10 +1088,6 @@ if [ -n "$SESSION_ID" ]; then
|
|
|
1089
1088
|
--argjson next_actions '["<next_action_1>","<next_action_2>"]' \
|
|
1090
1089
|
'{domain:$domain,status:$status,artifacts:$artifacts,next_actions:$next_actions}' \
|
|
1091
1090
|
> "$MONO_DIR/sessions/${SESSION_ID}/idea.json"
|
|
1092
|
-
curl -s -o /dev/null -X POST "${CTRL_URL}/api/mastermind/event" -H "x-monomind-token: $(cat "${REPO_ROOT:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)}/.monomind/dashboard-token" 2>/dev/null || true)" \
|
|
1093
|
-
-H "Content-Type: application/json" \
|
|
1094
|
-
-d "$(jq -cn --arg sid "$SESSION_ID" --arg status "<status>" \
|
|
1095
|
-
'{type:"domain:complete",session:$sid,domain:"idea",status:$status,ts:(now*1000|floor)}')" || true
|
|
1096
1091
|
fi
|
|
1097
1092
|
```
|
|
1098
1093
|
|
|
@@ -379,15 +379,8 @@ tmp="${cfg}.tmp"
|
|
|
379
379
|
jq --arg ts "$(date -u +%Y-%m-%dT%H:%M:%SZ)" '.last_tick = $ts' "$cfg" > "$tmp" && mv "$tmp" "$cfg"
|
|
380
380
|
```
|
|
381
381
|
|
|
382
|
-
**Emit dashboard event:**
|
|
383
382
|
```bash
|
|
384
|
-
REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd)
|
|
385
|
-
CTRL_URL=$(jq -r '.url // "http://localhost:4242"' "$REPO_ROOT/.monomind/control.json" 2>/dev/null || echo "http://localhost:4242")
|
|
386
383
|
SESSION_ID="monitor-${name}-$(date -u +%Y%m%dT%H%M%S)"
|
|
387
|
-
curl -s -o /dev/null -X POST "${CTRL_URL}/api/mastermind/event" -H "x-monomind-token: $(cat "${REPO_ROOT:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)}/.monomind/dashboard-token" 2>/dev/null || true)" \
|
|
388
|
-
-H "Content-Type: application/json" \
|
|
389
|
-
-d "$(jq -cn --arg sid "$SESSION_ID" --arg name "$name" \
|
|
390
|
-
'{type:"monitor:tick",session:$sid,monitor:$name,ts:(now*1000|floor)}')" || true
|
|
391
384
|
```
|
|
392
385
|
|
|
393
386
|
**Poll each source (in order, stop after first claimable task found):**
|
|
@@ -957,14 +950,6 @@ tmp="${cfg}.tmp"
|
|
|
957
950
|
jq '.stats.done += 1' "$cfg" > "$tmp" && mv "$tmp" "$cfg"
|
|
958
951
|
```
|
|
959
952
|
|
|
960
|
-
**Emit dashboard event:**
|
|
961
|
-
```bash
|
|
962
|
-
curl -s -o /dev/null -X POST "${CTRL_URL}/api/mastermind/event" -H "x-monomind-token: $(cat "${REPO_ROOT:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)}/.monomind/dashboard-token" 2>/dev/null || true)" \
|
|
963
|
-
-H "Content-Type: application/json" \
|
|
964
|
-
-d "$(jq -cn --arg sid "$SESSION_ID" --arg name "$name" --arg title "$task_title" \
|
|
965
|
-
'{type:"monitor:task:done",session:$sid,monitor:$name,task:$title,ts:(now*1000|floor)}')" || true
|
|
966
|
-
```
|
|
967
|
-
|
|
968
953
|
```bash
|
|
969
954
|
else # result_status != "done"
|
|
970
955
|
```
|
|
@@ -159,17 +159,6 @@ npx -y monomind@latest org validate "$org_name" \
|
|
|
159
159
|
|| echo "WARNING: '${org_name}' no longer passes validation — fix it before 'monomind org run ${org_name}'"
|
|
160
160
|
```
|
|
161
161
|
|
|
162
|
-
Emit `org:settings:updated` event:
|
|
163
|
-
|
|
164
|
-
```bash
|
|
165
|
-
REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd)
|
|
166
|
-
CTRL_URL=$(jq -r '.url // "http://localhost:4242"' "$REPO_ROOT/.monomind/control.json" 2>/dev/null || echo "http://localhost:4242")
|
|
167
|
-
curl -s -X POST "${CTRL_URL}/api/mastermind/event" -H "x-monomind-token: $(cat "${REPO_ROOT:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)}/.monomind/dashboard-token" 2>/dev/null || true)" \
|
|
168
|
-
-H "Content-Type: application/json" \
|
|
169
|
-
-d "$(jq -cn --arg org "$org_name" --arg field "$field" --arg value "$value" \
|
|
170
|
-
'{type:"org:settings:updated",org:$org,field:$field,value:$value,ts:(now*1000|floor)}')" || true
|
|
171
|
-
```
|
|
172
|
-
|
|
173
162
|
### export
|
|
174
163
|
|
|
175
164
|
Export the full org config (minus secrets) to a portable JSON:
|
|
@@ -125,17 +125,6 @@ echo "Installed: $package_name (id: $pluginId)"
|
|
|
125
125
|
echo "NOTE: Agents must be restarted to load the new plugin."
|
|
126
126
|
```
|
|
127
127
|
|
|
128
|
-
Emit `org:plugin:installed` event:
|
|
129
|
-
|
|
130
|
-
```bash
|
|
131
|
-
REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd)
|
|
132
|
-
CTRL_URL=$(jq -r '.url // "http://localhost:4242"' "$REPO_ROOT/.monomind/control.json" 2>/dev/null || echo "http://localhost:4242")
|
|
133
|
-
curl -s -X POST "${CTRL_URL}/api/mastermind/event" -H "x-monomind-token: $(cat "${REPO_ROOT:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)}/.monomind/dashboard-token" 2>/dev/null || true)" \
|
|
134
|
-
-H "Content-Type: application/json" \
|
|
135
|
-
-d "$(jq -cn --arg org "${org_name:-global}" --arg id "$pluginId" --arg pkg "$package_name" \
|
|
136
|
-
'{type:"org:plugin:installed",org:$org,plugin:$id,package:$pkg,ts:(now*1000|floor)}')" || true
|
|
137
|
-
```
|
|
138
|
-
|
|
139
128
|
### uninstall
|
|
140
129
|
|
|
141
130
|
```bash
|
|
@@ -29,12 +29,12 @@ This makes delegation recursive: every spawned agent can itself spawn sub-agents
|
|
|
29
29
|
Execute at the START of every mastermind run (master or standalone domain command). Load in this order:
|
|
30
30
|
|
|
31
31
|
**Step A — Tier 3 core principles (all domains):**
|
|
32
|
-
Try `
|
|
32
|
+
Try `mcp__monomind__memory_hierarchical-recall` with query `"mastermind principles"`, topK 20.
|
|
33
33
|
If it returns `"LanceDB bridge not available"` or any error, fall back to:
|
|
34
34
|
`mcp__monomind__memory_search` with query `"mastermind principles"`, namespace `"mastermind:principles"`, limit 20.
|
|
35
35
|
|
|
36
36
|
**Step B — Tier 2 weekly summary for this domain:**
|
|
37
|
-
Try `
|
|
37
|
+
Try `mcp__monomind__memory_context-synthesize` with query `[current prompt keywords]`, maxEntries 10.
|
|
38
38
|
If it fails, fall back to:
|
|
39
39
|
`mcp__monomind__memory_search` with query `[current prompt keywords]`, namespace `"mastermind:<domain>:weekly"`, limit 10.
|
|
40
40
|
|
|
@@ -69,7 +69,7 @@ score = confidence × (1 / (days_since_run + 1)) × log(uses + 1)
|
|
|
69
69
|
- `uses`: 1 (first write)
|
|
70
70
|
|
|
71
71
|
**Step 2 — Append to Tier 1 raw log:**
|
|
72
|
-
Try `
|
|
72
|
+
Try `mcp__monomind__memory_hierarchical-store` with:
|
|
73
73
|
- namespace: `mastermind:<domain>:raw`
|
|
74
74
|
- content: [full unified output schema YAML from this run, as a string]
|
|
75
75
|
- metadata: `{ score, project, run_id, date: ISO8601, domain }`
|
|
@@ -81,19 +81,19 @@ If LanceDB is unavailable, fall back to `mcp__monomind__memory_store`:
|
|
|
81
81
|
- tags: `["mastermind", "<domain>", "run"]`
|
|
82
82
|
|
|
83
83
|
**Step 3 — Check weekly compaction trigger:**
|
|
84
|
-
Try `
|
|
84
|
+
Try `mcp__monomind__memory_health` on namespace `mastermind:<domain>:raw`.
|
|
85
85
|
If unavailable, call `mcp__monomind__memory_stats` and check entry count manually.
|
|
86
86
|
If `entry_count >= 20` OR `days_since_last_compaction >= 7`:
|
|
87
87
|
1. Retrieve all Tier 1 entries since last compaction
|
|
88
88
|
2. Produce a per-domain weekly summary (use LLM synthesis: "Summarize the key decisions, patterns, and lessons from these run logs in under 300 words")
|
|
89
|
-
3. Store summary: `
|
|
89
|
+
3. Store summary: `mcp__monomind__memory_hierarchical-store` namespace `mastermind:<domain>:weekly`
|
|
90
90
|
4. Archive (do not delete) Tier 1 entries with score < 0.1 by updating their metadata: `{ archived: true }`
|
|
91
91
|
|
|
92
92
|
**Step 4 — Check graph consolidation trigger:**
|
|
93
93
|
Call `mcp__monomind__monograph_community` for nodes matching `mastermind:<domain>`.
|
|
94
94
|
If 3+ similar memory nodes are detected in a cluster:
|
|
95
95
|
1. Merge into a single principle via LLM: "Distill these memories into one clear principle in 1-2 sentences"
|
|
96
|
-
2. Store principle: `
|
|
96
|
+
2. Store principle: `mcp__monomind__memory_hierarchical-store` namespace `mastermind:principles`
|
|
97
97
|
3. Add `EXCEPTION` edge in Monograph for any conflicting memory: `mcp__monomind__monograph_add_fact`
|
|
98
98
|
|
|
99
99
|
---
|
|
@@ -142,124 +142,6 @@ score = confidence × (1 / (days_since_run + 1)) × log(uses + 1)
|
|
|
142
142
|
|
|
143
143
|
---
|
|
144
144
|
|
|
145
|
-
## Real-Time Dashboard Event Logging
|
|
146
|
-
|
|
147
|
-
Every mastermind run MUST emit structured events to the live dashboard via curl (NOT WebFetch — WebFetch is blocked for localhost in Claude Code runtimes). The dashboard at `docs/mastermind-diagram.html` listens on SSE and animates each event in real time.
|
|
148
|
-
|
|
149
|
-
**Dashboard endpoint:** `<CTRL_URL>/api/mastermind/event`
|
|
150
|
-
Resolve `CTRL_URL` at runtime: `jq -r '.url // "http://localhost:4242"' "$REPO_ROOT/.monomind/control.json" 2>/dev/null || echo "http://localhost:4242"` — the control server port auto-increments on collision and writes the actual URL to `.monomind/control.json`.
|
|
151
|
-
**Method:** POST, `Content-Type: application/json`
|
|
152
|
-
|
|
153
|
-
### Event Types and When to Emit
|
|
154
|
-
|
|
155
|
-
**1. session:start** — emit at the very start of Step 3 (Intake) once the prompt is resolved:
|
|
156
|
-
```json
|
|
157
|
-
{
|
|
158
|
-
"type": "session:start",
|
|
159
|
-
"session": "<uuid-v4>",
|
|
160
|
-
"prompt": "<resolved user prompt>",
|
|
161
|
-
"mode": "auto|confirm",
|
|
162
|
-
"project": "<absolute path of current working directory>",
|
|
163
|
-
"ts": 1234567890000
|
|
164
|
-
}
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
**2. domain:dispatch** — emit once per domain BEFORE spawning the domain manager agent:
|
|
168
|
-
```json
|
|
169
|
-
{
|
|
170
|
-
"type": "domain:dispatch",
|
|
171
|
-
"session": "<same-uuid>",
|
|
172
|
-
"domain": "build|marketing|review|research|content|release|sales|ops|finance|idea",
|
|
173
|
-
"cmd": "<one-line description of what this domain will do>",
|
|
174
|
-
"ts": 1234567890000
|
|
175
|
-
}
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
**3. agent:spawn** — domain managers MUST emit this when they spawn each specialized agent:
|
|
179
|
-
```json
|
|
180
|
-
{
|
|
181
|
-
"type": "agent:spawn",
|
|
182
|
-
"session": "<same-uuid>",
|
|
183
|
-
"domain": "<domain-id>",
|
|
184
|
-
"agent": "<agent-slug, e.g. backend-dev>",
|
|
185
|
-
"task": "<task description>",
|
|
186
|
-
"ts": 1234567890000
|
|
187
|
-
}
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
**4. intercom** — emit when a domain manager or agent sends output/context to another domain:
|
|
191
|
-
```json
|
|
192
|
-
{
|
|
193
|
-
"type": "intercom",
|
|
194
|
-
"session": "<same-uuid>",
|
|
195
|
-
"from": "<domain-id>",
|
|
196
|
-
"to": "<domain-id>",
|
|
197
|
-
"msg": "<one-line summary of what was transferred>",
|
|
198
|
-
"ts": 1234567890000
|
|
199
|
-
}
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
**5. domain:complete** — emit when a domain manager returns its unified output schema:
|
|
203
|
-
```json
|
|
204
|
-
{
|
|
205
|
-
"type": "domain:complete",
|
|
206
|
-
"session": "<same-uuid>",
|
|
207
|
-
"domain": "<domain-id>",
|
|
208
|
-
"status": "complete|partial|blocked",
|
|
209
|
-
"artifacts": ["<path1>", "<path2>"],
|
|
210
|
-
"decisions": [{"what": "...", "confidence": 0.9}],
|
|
211
|
-
"ts": 1234567890000
|
|
212
|
-
}
|
|
213
|
-
```
|
|
214
|
-
|
|
215
|
-
**6. session:complete** — emit at the end of Step 9 (Synthesize) after all domains have reported:
|
|
216
|
-
```json
|
|
217
|
-
{
|
|
218
|
-
"type": "session:complete",
|
|
219
|
-
"session": "<same-uuid>",
|
|
220
|
-
"status": "complete|partial|blocked",
|
|
221
|
-
"domains": ["build", "marketing"],
|
|
222
|
-
"ts": 1234567890000
|
|
223
|
-
}
|
|
224
|
-
```
|
|
225
|
-
|
|
226
|
-
### How to Emit (curl-first — WebFetch is blocked for localhost in Claude Code runtimes)
|
|
227
|
-
|
|
228
|
-
**Always use curl via Bash.** WebFetch is restricted for `localhost` URLs in Claude Code agent runtimes and will return ECONNREFUSED even when the server is running. **Always resolve the control URL dynamically** — the server auto-increments the port on collision. Use this pattern:
|
|
229
|
-
|
|
230
|
-
```bash
|
|
231
|
-
REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd)
|
|
232
|
-
CTRL_URL=$(jq -r '.url // "http://localhost:4242"' "$REPO_ROOT/.monomind/control.json" 2>/dev/null || echo "http://localhost:4242")
|
|
233
|
-
curl -s -o /dev/null -X POST "${CTRL_URL}/api/mastermind/event" -H "x-monomind-token: $(cat "${REPO_ROOT:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)}/.monomind/dashboard-token" 2>/dev/null || true)" \
|
|
234
|
-
-H "Content-Type: application/json" \
|
|
235
|
-
-d "$(jq -cn \
|
|
236
|
-
--arg sid "$SESSION_ID" \
|
|
237
|
-
--arg type "session:start" \
|
|
238
|
-
--arg prompt "$resolved_prompt" \
|
|
239
|
-
--arg mode "$mode" \
|
|
240
|
-
--arg proj "$(pwd)" \
|
|
241
|
-
'{type:$type,session:$sid,prompt:$prompt,mode:$mode,project:$proj,ts:(now*1000|floor)}')" || true
|
|
242
|
-
```
|
|
243
|
-
|
|
244
|
-
**Always append `|| true`** — event emission is non-blocking and MUST NOT abort the run.
|
|
245
|
-
|
|
246
|
-
**If Bash is unavailable** (e.g. the agent type has no Bash tool): skip dashboard events entirely. They are observability-only and do not affect pipeline correctness. The master context always has Bash and emits session:start, domain:dispatch, and session:complete on behalf of the run.
|
|
247
|
-
|
|
248
|
-
**Session ID:** Generate once at session:start and reuse across all subsequent events for this run. A simple ID format: `mm-<ISO8601-compact>` (e.g. `mm-20260505T142300`).
|
|
249
|
-
|
|
250
|
-
### Where Each Role Emits
|
|
251
|
-
|
|
252
|
-
| Role | Events to emit |
|
|
253
|
-
|---|---|
|
|
254
|
-
| **Master** (master.md Step 3) | `session:start` |
|
|
255
|
-
| **Master** (master.md Step 7, per domain) | `domain:dispatch` × N |
|
|
256
|
-
| **Master** (master.md Step 9) | `session:complete` |
|
|
257
|
-
| **Domain Manager** (on agent spawn) | `agent:spawn` × M |
|
|
258
|
-
| **Domain Manager** (on cross-domain handoff) | `intercom` |
|
|
259
|
-
| **Domain Manager** (on return) | `domain:complete` |
|
|
260
|
-
|
|
261
|
-
---
|
|
262
|
-
|
|
263
145
|
## Monotask Space+Board Setup Procedure
|
|
264
146
|
|
|
265
147
|
**Always follow this exact order — never create a board without first ensuring a space exists.**
|
|
@@ -69,14 +69,6 @@ Set `TILLEND_EMPTY=true` **only if git shows no changes AND your self-assessment
|
|
|
69
69
|
[tillend] Empty round — nothing found, nothing changed in run <current_rep>.
|
|
70
70
|
/<command> tillend loop complete (ran <current_rep> run(s)).
|
|
71
71
|
```
|
|
72
|
-
- Emit dashboard event (non-fatal if control server is not running):
|
|
73
|
-
```bash
|
|
74
|
-
REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd)
|
|
75
|
-
CTRL_URL=$(jq -r '.url // "http://localhost:4242"' "$REPO_ROOT/.monomind/control.json" 2>/dev/null || echo "http://localhost:4242")
|
|
76
|
-
curl -s -X POST "${CTRL_URL}/api/mastermind/event" -H "x-monomind-token: $(cat "${REPO_ROOT:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)}/.monomind/dashboard-token" 2>/dev/null || true)" \
|
|
77
|
-
-H "Content-Type: application/json" \
|
|
78
|
-
-d "{\"type\":\"loop:complete\",\"loopId\":\"${LOOP_ID}\",\"command\":\"/<command>\",\"mode\":\"tillend\",\"ranReps\":<current_rep>,\"reason\":\"empty-round\",\"project\":\"${REPO_ROOT}\",\"ts\":$(date +%s)000}" || true
|
|
79
|
-
```
|
|
80
72
|
- Run: `rm -f ".monomind/loops/${LOOP_ID}.json"`
|
|
81
73
|
- **END**.
|
|
82
74
|
|
|
@@ -99,14 +91,6 @@ Set `TILLEND_EMPTY=true` **only if git shows no changes AND your self-assessment
|
|
|
99
91
|
|
|
100
92
|
If `current_rep >= repeat_count`:
|
|
101
93
|
- Output: `[repeat] All <repeat_count> runs of /<command> complete.`
|
|
102
|
-
- Emit dashboard event:
|
|
103
|
-
```bash
|
|
104
|
-
REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd)
|
|
105
|
-
CTRL_URL=$(jq -r '.url // "http://localhost:4242"' "$REPO_ROOT/.monomind/control.json" 2>/dev/null || echo "http://localhost:4242")
|
|
106
|
-
curl -s -X POST "${CTRL_URL}/api/mastermind/event" -H "x-monomind-token: $(cat "${REPO_ROOT:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)}/.monomind/dashboard-token" 2>/dev/null || true)" \
|
|
107
|
-
-H "Content-Type: application/json" \
|
|
108
|
-
-d "{\"type\":\"loop:complete\",\"loopId\":\"${LOOP_ID}\",\"command\":\"/<command>\",\"ranReps\":<repeat_count>,\"project\":\"${REPO_ROOT}\",\"ts\":$(date +%s)000}" || true
|
|
109
|
-
```
|
|
110
94
|
- Run: `rm -f ".monomind/loops/${LOOP_ID}.json"`
|
|
111
95
|
- **END**.
|
|
112
96
|
|
|
@@ -147,15 +131,6 @@ cat > ".monomind/loops/${LOOP_ID}.json" << EOF
|
|
|
147
131
|
EOF
|
|
148
132
|
```
|
|
149
133
|
|
|
150
|
-
Emit `loop:tick`:
|
|
151
|
-
```bash
|
|
152
|
-
REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd)
|
|
153
|
-
CTRL_URL=$(jq -r '.url // "http://localhost:4242"' "$REPO_ROOT/.monomind/control.json" 2>/dev/null || echo "http://localhost:4242")
|
|
154
|
-
curl -s -X POST "${CTRL_URL}/api/mastermind/event" -H "x-monomind-token: $(cat "${REPO_ROOT:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)}/.monomind/dashboard-token" 2>/dev/null || true)" \
|
|
155
|
-
-H "Content-Type: application/json" \
|
|
156
|
-
-d "{\"type\":\"loop:tick\",\"loopId\":\"${LOOP_ID}\",\"command\":\"/<command>\",\"completedRep\":<current_rep>,\"nextRep\":<next_rep>,\"nextAt\":${NEXT_AT},\"project\":\"${REPO_ROOT}\",\"ts\":$(date +%s)000}" || true
|
|
157
|
-
```
|
|
158
|
-
|
|
159
134
|
**Call `ScheduleWakeup` now** — this is a mandatory tool call:
|
|
160
135
|
|
|
161
136
|
- **Tillend mode**:
|
|
@@ -134,7 +134,7 @@ Spawn one Task agent per review angle (mesh topology — reviewers share finding
|
|
|
134
134
|
```
|
|
135
135
|
MONOFENCE SELF-CHECK (monofence_check flag):
|
|
136
136
|
Run the test suite and adversarial probes against the live monofence-ai detector.
|
|
137
|
-
1. cd packages
|
|
137
|
+
1. cd packages/monofence-ai && npx vitest run — report any failures as Critical
|
|
138
138
|
2. Feed known attack strings through detect() and assert correct threat types/confidence:
|
|
139
139
|
- "ignore all previous instructions" → expect prompt_injection ≥ 0.8
|
|
140
140
|
- "іgnore" (Cyrillic і) → expect homoglyph wasObfuscated=true
|
|
@@ -90,25 +90,6 @@ touch ".monomind/orgs/.stops/${org_name}.stop"
|
|
|
90
90
|
|
|
91
91
|
---
|
|
92
92
|
|
|
93
|
-
<!-- LEGACY-ORG-V1: remove this step when v1 orgs are gone -->
|
|
94
|
-
## Step 4 — Emit Dashboard Events
|
|
95
|
-
|
|
96
|
-
```bash
|
|
97
|
-
REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd)
|
|
98
|
-
CTRL_URL=$(jq -r '.url // "http://localhost:4242"' "$REPO_ROOT/.monomind/control.json" 2>/dev/null || echo "http://localhost:4242")
|
|
99
|
-
|
|
100
|
-
# org:stop — signals dashboard to update status to stopped
|
|
101
|
-
curl -s -X POST "${CTRL_URL}/api/mastermind/event" -H "x-monomind-token: $(cat "${REPO_ROOT:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)}/.monomind/dashboard-token" 2>/dev/null || true)" \
|
|
102
|
-
-H "Content-Type: application/json" \
|
|
103
|
-
-d "$(jq -cn \
|
|
104
|
-
--arg session "${session_id:-manual}" \
|
|
105
|
-
--arg org "$org_name" \
|
|
106
|
-
--arg proj "$REPO_ROOT" \
|
|
107
|
-
'{type:"org:stop",session:$session,org:$org,project:$proj,ts:(now*1000|floor)}')" || true
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
---
|
|
111
|
-
|
|
112
93
|
<!-- LEGACY-ORG-V1: remove this step when v1 orgs are gone -->
|
|
113
94
|
## Step 5 — Report to User (v1 only)
|
|
114
95
|
|
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: memory-toolkit
|
|
3
3
|
description: >
|
|
4
|
-
Use monomind's persistent memory store (
|
|
5
|
-
search, list, and retrieve cross-session knowledge — patterns,
|
|
6
|
-
decisions. Trigger on "remember this", "store in memory",
|
|
7
|
-
"have we solved this before", "recall past decisions", or
|
|
8
|
-
work that benefits from prior context (debugging,
|
|
4
|
+
Use monomind's persistent memory store (local SQLite + local embeddings) to
|
|
5
|
+
save, search, list, and retrieve cross-session knowledge — patterns,
|
|
6
|
+
solutions, decisions. Trigger on "remember this", "store in memory",
|
|
7
|
+
"search memory", "have we solved this before", "recall past decisions", or
|
|
8
|
+
before starting work that benefits from prior context (debugging,
|
|
9
|
+
refactors, repeated tasks).
|
|
9
10
|
---
|
|
10
11
|
|
|
11
12
|
# Memory Toolkit
|
|
12
13
|
|
|
13
|
-
Monomind ships a persistent, namespaced memory store backed by
|
|
14
|
-
|
|
15
|
-
to avoid re-solving the same problem
|
|
14
|
+
Monomind ships a persistent, namespaced memory store backed by local SQLite
|
|
15
|
+
(sql.js/WASM) with local HF embeddings; keyword search is the fallback when
|
|
16
|
+
embeddings aren't available. Use it to avoid re-solving the same problem
|
|
17
|
+
twice across sessions.
|
|
16
18
|
|
|
17
19
|
## Before starting non-trivial work
|
|
18
20
|
|
|
@@ -46,9 +48,8 @@ npx monomind memory search --query "error handling" --namespace patterns --limit
|
|
|
46
48
|
| `keyword` | BM25 full-text search | Exact term matching |
|
|
47
49
|
| `hybrid` | Combined semantic + keyword | General purpose (default) |
|
|
48
50
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
scan (one-time build cost).
|
|
51
|
+
`--build-hnsw` is a dead fallback: it's a no-op unless the SQLite bridge is
|
|
52
|
+
down and the sql.js WASM path is in use. Normal searches don't need it.
|
|
52
53
|
|
|
53
54
|
## List and retrieve
|
|
54
55
|
|
|
@@ -143,7 +143,14 @@ async function launchMonobrowseBrowser(options = {}) {
|
|
|
143
143
|
if (port === null) throw new Error('Could not find a free CDP port for monobrowse');
|
|
144
144
|
}
|
|
145
145
|
|
|
146
|
-
|
|
146
|
+
// CI runners (observed on the Windows GH Actions runner) are slower to get
|
|
147
|
+
// Chrome's CDP port open than the 10s default — a batch of sequential
|
|
148
|
+
// headless launches in the same job intermittently misses that window and
|
|
149
|
+
// fails with "Chrome failed to start... within 10000ms" even though the
|
|
150
|
+
// browser starts fine, just later. Give CI more runway; local dev keeps
|
|
151
|
+
// the tighter default so a genuinely broken launch still fails fast.
|
|
152
|
+
const launchTimeoutMs = options.launchTimeoutMs ?? (process.env.CI ? 30000 : undefined);
|
|
153
|
+
const launchedPort = await mb.launchBrowser({ port, headless, args: launchArgs, launchTimeoutMs });
|
|
147
154
|
// Control connection (to the initial about:blank tab) — used for lifecycle
|
|
148
155
|
// commands; detection pages get their own dedicated connections.
|
|
149
156
|
const control = await mb.connectToTarget(launchedPort);
|
|
@@ -22,7 +22,7 @@ This skill provides professional pair programming capabilities with AI assistanc
|
|
|
22
22
|
## Prerequisites
|
|
23
23
|
|
|
24
24
|
**Required:**
|
|
25
|
-
- Monomind CLI installed (`npm install -g monomind@
|
|
25
|
+
- Monomind CLI installed (`npm install -g monomind@latest`)
|
|
26
26
|
- Git repository (optional but recommended)
|
|
27
27
|
|
|
28
28
|
**Recommended:**
|