@monoes/monomindcli 2.9.7 → 2.9.9
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 +37 -8
- 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 +37 -30
- 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
|
@@ -1,244 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: mastermind-project-workspace
|
|
3
|
-
description: Mastermind project-workspace — configure a project-level workspace (not an execution workspace). Manages source type, visibility, repo URL/ref, branch, cwd, setup/cleanup commands, remote provider, remote workspace ref, runtime config JSON, and shared workspace key. Mirrors ProjectWorkspaceDetail.tsx.
|
|
4
|
-
type: domain-skill
|
|
5
|
-
default_mode: confirm
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Mastermind Project Workspace
|
|
9
|
-
|
|
10
|
-
This skill is invoked by `mastermind:project-workspace` or directly via `/mastermind:project-workspace`.
|
|
11
|
-
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
## Inputs
|
|
15
|
-
|
|
16
|
-
- `brain_context`: BRAIN CONTEXT block (injected by command, or loaded below if standalone)
|
|
17
|
-
- `org_name`: org the project belongs to (required)
|
|
18
|
-
- `project_id`: project id (required)
|
|
19
|
-
- `workspace_id`: workspace id within the project (required)
|
|
20
|
-
- `action`: show | config | runtime | provision | teardown
|
|
21
|
-
- `name`: display name for workspace (for config)
|
|
22
|
-
- `source_type`: local_path | non_git_path | git_repo | remote_managed (for config)
|
|
23
|
-
- `visibility`: default | advanced (for config)
|
|
24
|
-
- `cwd`: absolute local path (for config; required if source_type is local_path/non_git_path)
|
|
25
|
-
- `repo_url`: remote repository URL (for config)
|
|
26
|
-
- `repo_ref`: git ref/commit (for config)
|
|
27
|
-
- `default_ref`: default branch name (for config)
|
|
28
|
-
- `setup_command`: command to run after workspace creation (for config)
|
|
29
|
-
- `cleanup_command`: command to run before workspace teardown (for config)
|
|
30
|
-
- `remote_provider`: remote provider identifier (for config; use with remote_managed)
|
|
31
|
-
- `remote_workspace_ref`: remote workspace reference ID (for config; use with remote_managed)
|
|
32
|
-
- `shared_workspace_key`: key to share this workspace across agents (for config)
|
|
33
|
-
- `runtime_config`: JSON string with workspaceRuntime config overrides (for runtime)
|
|
34
|
-
- `caller`: command | master
|
|
35
|
-
|
|
36
|
-
---
|
|
37
|
-
|
|
38
|
-
## Source Types
|
|
39
|
-
|
|
40
|
-
| Type | Label | Required fields |
|
|
41
|
-
|------|-------|----------------|
|
|
42
|
-
| `local_path` | Local git checkout | `cwd` (absolute path) |
|
|
43
|
-
| `non_git_path` | Local non-git path | `cwd` (absolute path) |
|
|
44
|
-
| `git_repo` | Remote git repo | `repo_url` |
|
|
45
|
-
| `remote_managed` | Remote-managed workspace | `remote_workspace_ref` or `repo_url` |
|
|
46
|
-
|
|
47
|
-
## Visibility
|
|
48
|
-
|
|
49
|
-
| Value | Description |
|
|
50
|
-
|-------|-------------|
|
|
51
|
-
| `default` | Shown to all agents in the project |
|
|
52
|
-
| `advanced` | Hidden by default; shown only when explicitly selected |
|
|
53
|
-
|
|
54
|
-
---
|
|
55
|
-
|
|
56
|
-
## Step 0 — Brain Load (standalone only)
|
|
57
|
-
|
|
58
|
-
If `caller` is not "command", load brain context following mastermind-protocol/SKILL.md Brain Load Procedure with namespace: `ops`.
|
|
59
|
-
|
|
60
|
-
---
|
|
61
|
-
|
|
62
|
-
## Step 1 — Load Workspace
|
|
63
|
-
|
|
64
|
-
```bash
|
|
65
|
-
orgFile=".monomind/orgs/${org_name}.json"
|
|
66
|
-
[ ! -f "$orgFile" ] && { echo "ERROR: Org '${org_name}' not found."; exit 1; }
|
|
67
|
-
|
|
68
|
-
projectsFile=".monomind/orgs/${org_name}-projects.json"
|
|
69
|
-
[ ! -f "$projectsFile" ] && { echo "ERROR: No projects file for org '${org_name}'."; exit 1; }
|
|
70
|
-
|
|
71
|
-
# Find project
|
|
72
|
-
projDef=$(jq -r --arg pid "$project_id" '(.projects // [])[] | select(.id == $pid or .name == $pid)' "$projectsFile")
|
|
73
|
-
[ -z "$projDef" ] && { echo "ERROR: Project '$project_id' not found."; exit 1; }
|
|
74
|
-
|
|
75
|
-
# Load project workspaces file
|
|
76
|
-
pwsFile=".monomind/orgs/${org_name}-project-workspaces.json"
|
|
77
|
-
[ ! -f "$pwsFile" ] && echo '{"workspaces":[]}' > "$pwsFile"
|
|
78
|
-
|
|
79
|
-
wsDef=$(jq -r --arg wid "$workspace_id" --arg pid "$project_id" \
|
|
80
|
-
'(.workspaces // [])[] | select(.id == $wid and (.project_id == $pid or .projectId == $pid))' \
|
|
81
|
-
"$pwsFile")
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
---
|
|
85
|
-
|
|
86
|
-
## Step 2 — Execute Action
|
|
87
|
-
|
|
88
|
-
### show (default)
|
|
89
|
-
|
|
90
|
-
```bash
|
|
91
|
-
echo "PROJECT WORKSPACE — $workspace_id @ $project_id ($org_name)"
|
|
92
|
-
echo "────────────────────────────────────────────────────────"
|
|
93
|
-
|
|
94
|
-
if [ -z "$wsDef" ]; then
|
|
95
|
-
echo " Workspace '$workspace_id' not found in project '$project_id'."
|
|
96
|
-
echo " List workspaces: /mastermind:workspaces --org $org_name"
|
|
97
|
-
exit 0
|
|
98
|
-
fi
|
|
99
|
-
|
|
100
|
-
echo "$wsDef" | jq -r '
|
|
101
|
-
" ID: \(.id)",
|
|
102
|
-
" Name: \(.name // "(unnamed)")",
|
|
103
|
-
" Source type: \(.sourceType // .source_type // "local_path")",
|
|
104
|
-
" Visibility: \(.visibility // "default")",
|
|
105
|
-
" CWD: \(.cwd // "(none)")",
|
|
106
|
-
" Repo URL: \(.repoUrl // .repo_url // "(none)")",
|
|
107
|
-
" Repo ref: \(.repoRef // .repo_ref // "(default)")",
|
|
108
|
-
" Default ref: \(.defaultRef // .default_ref // "(default branch)")",
|
|
109
|
-
" Setup command: \(.setupCommand // .setup_command // "(none)")",
|
|
110
|
-
" Cleanup command: \(.cleanupCommand // .cleanup_command // "(none)")",
|
|
111
|
-
" Remote provider: \(.remoteProvider // .remote_provider // "(none)")",
|
|
112
|
-
" Remote ws ref: \(.remoteWorkspaceRef // .remote_workspace_ref // "(none)")",
|
|
113
|
-
" Shared key: \(.sharedWorkspaceKey // .shared_workspace_key // "(none)")"
|
|
114
|
-
'
|
|
115
|
-
|
|
116
|
-
rtConfig=$(echo "$wsDef" | jq -r '.runtimeConfig.workspaceRuntime // null')
|
|
117
|
-
echo ""
|
|
118
|
-
echo "RUNTIME CONFIG: $([ "$rtConfig" = "null" ] && echo '(none)' || echo "$rtConfig" | jq -c .)"
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
### config
|
|
122
|
-
|
|
123
|
-
```bash
|
|
124
|
-
if [ -z "$wsDef" ]; then
|
|
125
|
-
echo "ERROR: Workspace '$workspace_id' not found."
|
|
126
|
-
exit 1
|
|
127
|
-
fi
|
|
128
|
-
|
|
129
|
-
ts=$(date -u +%Y-%m-%dT%H:%M:%SZ)
|
|
130
|
-
tmp="${pwsFile}.tmp"
|
|
131
|
-
jq \
|
|
132
|
-
--arg wid "$workspace_id" \
|
|
133
|
-
--arg pid "$project_id" \
|
|
134
|
-
--arg name "${name:-}" \
|
|
135
|
-
--arg st "${source_type:-}" \
|
|
136
|
-
--arg vis "${visibility:-}" \
|
|
137
|
-
--arg cwd_ "${cwd:-}" \
|
|
138
|
-
--arg repoUrl "${repo_url:-}" \
|
|
139
|
-
--arg repoRef "${repo_ref:-}" \
|
|
140
|
-
--arg defaultRef "${default_ref:-}" \
|
|
141
|
-
--arg setupCmd "${setup_command:-}" \
|
|
142
|
-
--arg cleanupCmd "${cleanup_command:-}" \
|
|
143
|
-
--arg remoteProvider "${remote_provider:-}" \
|
|
144
|
-
--arg remoteRef "${remote_workspace_ref:-}" \
|
|
145
|
-
--arg sharedKey "${shared_workspace_key:-}" \
|
|
146
|
-
--arg ts "$ts" \
|
|
147
|
-
'.workspaces = [(.workspaces // [])[] | if (.id == $wid and (.project_id == $pid or .projectId == $pid)) then
|
|
148
|
-
(if $name != "" then .name = $name else . end) |
|
|
149
|
-
(if $st != "" then .sourceType = $st else . end) |
|
|
150
|
-
(if $vis != "" then .visibility = $vis else . end) |
|
|
151
|
-
(if $cwd_ != "" then .cwd = $cwd_ else . end) |
|
|
152
|
-
(if $repoUrl != "" then .repoUrl = $repoUrl else . end) |
|
|
153
|
-
(if $repoRef != "" then .repoRef = $repoRef else . end) |
|
|
154
|
-
(if $defaultRef != "" then .defaultRef = $defaultRef else . end) |
|
|
155
|
-
(if $setupCmd != "" then .setupCommand = $setupCmd else . end) |
|
|
156
|
-
(if $cleanupCmd != "" then .cleanupCommand = $cleanupCmd else . end) |
|
|
157
|
-
(if $remoteProvider != "" then .remoteProvider = $remoteProvider else . end) |
|
|
158
|
-
(if $remoteRef != "" then .remoteWorkspaceRef = $remoteRef else . end) |
|
|
159
|
-
(if $sharedKey != "" then .sharedWorkspaceKey = $sharedKey else . end) |
|
|
160
|
-
.updatedAt = $ts
|
|
161
|
-
else . end]' \
|
|
162
|
-
"$pwsFile" > "$tmp" && mv "$tmp" "$pwsFile"
|
|
163
|
-
|
|
164
|
-
echo "Project workspace '$workspace_id' config updated."
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
### runtime
|
|
168
|
-
|
|
169
|
-
```bash
|
|
170
|
-
[ -z "$runtime_config" ] && { echo "ERROR: --runtime-config (JSON string) required."; exit 1; }
|
|
171
|
-
|
|
172
|
-
# Validate JSON
|
|
173
|
-
parsed=$(echo "$runtime_config" | python3 -c "import json,sys; d=json.load(sys.stdin); print(json.dumps(d))" 2>&1) || {
|
|
174
|
-
echo "ERROR: --runtime-config must be valid JSON: $parsed"
|
|
175
|
-
exit 1
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
ts=$(date -u +%Y-%m-%dT%H:%M:%SZ)
|
|
179
|
-
tmp="${pwsFile}.tmp"
|
|
180
|
-
jq --arg wid "$workspace_id" --arg pid "$project_id" --argjson rt "$parsed" --arg ts "$ts" \
|
|
181
|
-
'.workspaces = [(.workspaces // [])[] | if (.id == $wid and (.project_id == $pid or .projectId == $pid)) then
|
|
182
|
-
.runtimeConfig = {"workspaceRuntime": $rt} | .updatedAt = $ts
|
|
183
|
-
else . end]' \
|
|
184
|
-
"$pwsFile" > "$tmp" && mv "$tmp" "$pwsFile"
|
|
185
|
-
|
|
186
|
-
echo "Runtime config updated for workspace '$workspace_id'."
|
|
187
|
-
echo " Keys: $(echo "$parsed" | python3 -c "import json,sys; d=json.load(sys.stdin); print(', '.join(d.keys()))")"
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
### provision
|
|
191
|
-
|
|
192
|
-
```bash
|
|
193
|
-
setupCmd=$(echo "$wsDef" | jq -r '.setupCommand // .setup_command // ""')
|
|
194
|
-
wsPath=$(echo "$wsDef" | jq -r '.cwd // ""')
|
|
195
|
-
|
|
196
|
-
echo "PROVISION — $workspace_id"
|
|
197
|
-
echo "────────────────────────────────────────────────────────"
|
|
198
|
-
if [ -z "$setupCmd" ]; then
|
|
199
|
-
echo " No setup command configured."
|
|
200
|
-
echo " Set one: --action config --setup-command 'npm install'"
|
|
201
|
-
else
|
|
202
|
-
echo " Command: $setupCmd"
|
|
203
|
-
echo " CWD: ${wsPath:-(none)}"
|
|
204
|
-
if [ -d "$wsPath" ] && [ -n "$setupCmd" ]; then
|
|
205
|
-
echo " Executing…"
|
|
206
|
-
(cd "$wsPath" && eval "$setupCmd") && echo " Provision complete." || echo " Provision command exited with error."
|
|
207
|
-
fi
|
|
208
|
-
fi
|
|
209
|
-
```
|
|
210
|
-
|
|
211
|
-
### teardown
|
|
212
|
-
|
|
213
|
-
```bash
|
|
214
|
-
cleanupCmd=$(echo "$wsDef" | jq -r '.cleanupCommand // .cleanup_command // ""')
|
|
215
|
-
wsPath=$(echo "$wsDef" | jq -r '.cwd // ""')
|
|
216
|
-
|
|
217
|
-
echo "TEARDOWN — $workspace_id"
|
|
218
|
-
echo "────────────────────────────────────────────────────────"
|
|
219
|
-
if [ -z "$cleanupCmd" ]; then
|
|
220
|
-
echo " No cleanup command configured."
|
|
221
|
-
else
|
|
222
|
-
echo " Command: $cleanupCmd"
|
|
223
|
-
[ -d "$wsPath" ] && (cd "$wsPath" && eval "$cleanupCmd") && echo " Teardown complete." || echo " No path or teardown error."
|
|
224
|
-
fi
|
|
225
|
-
```
|
|
226
|
-
|
|
227
|
-
---
|
|
228
|
-
|
|
229
|
-
## Step 3 — Return Output
|
|
230
|
-
|
|
231
|
-
```yaml
|
|
232
|
-
domain: ops
|
|
233
|
-
status: complete
|
|
234
|
-
action: <action>
|
|
235
|
-
org: <org_name>
|
|
236
|
-
project_id: <project_id>
|
|
237
|
-
workspace_id: <workspace_id>
|
|
238
|
-
```
|
|
239
|
-
|
|
240
|
-
---
|
|
241
|
-
|
|
242
|
-
## Step 4 — Brain Write (standalone only)
|
|
243
|
-
|
|
244
|
-
If `caller` is not "command", follow mastermind-protocol/SKILL.md Brain Write Procedure for domain `ops`.
|
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: mastermind-projects
|
|
3
|
-
description: Mastermind projects — create and manage scoped project workspaces within an org. Group tasks under named projects, assign agents to projects, and track project-level status.
|
|
4
|
-
type: domain-skill
|
|
5
|
-
default_mode: confirm
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Mastermind Projects
|
|
9
|
-
|
|
10
|
-
This skill is invoked by `mastermind:projects` or directly via `/mastermind:projects`.
|
|
11
|
-
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
## Inputs
|
|
15
|
-
|
|
16
|
-
- `brain_context`: BRAIN CONTEXT block
|
|
17
|
-
- `org_name`: org to manage projects for
|
|
18
|
-
- `action`: list | add | archive | assign | status
|
|
19
|
-
- `project_name`: display name (for add)
|
|
20
|
-
- `project_id`: slug (for archive/assign/status)
|
|
21
|
-
- `agent_id`: role id to assign as project lead
|
|
22
|
-
- `description`: project description
|
|
23
|
-
- `caller`: command | master
|
|
24
|
-
|
|
25
|
-
---
|
|
26
|
-
|
|
27
|
-
## Step 0 — Brain Load (standalone only)
|
|
28
|
-
|
|
29
|
-
If `caller` is not "command", load brain context following mastermind-protocol/SKILL.md Brain Load Procedure with namespace: `ops`.
|
|
30
|
-
|
|
31
|
-
---
|
|
32
|
-
|
|
33
|
-
## Step 1 — Load Projects State
|
|
34
|
-
|
|
35
|
-
Projects are stored in `.monomind/orgs/<org_name>-projects.json`:
|
|
36
|
-
|
|
37
|
-
```bash
|
|
38
|
-
projectsFile=".monomind/orgs/${org_name}-projects.json"
|
|
39
|
-
[ ! -f "$projectsFile" ] && echo '{"projects":[]}' > "$projectsFile"
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
---
|
|
43
|
-
|
|
44
|
-
## Step 2 — Execute Action
|
|
45
|
-
|
|
46
|
-
### list (default)
|
|
47
|
-
|
|
48
|
-
```bash
|
|
49
|
-
jq -r '
|
|
50
|
-
(.projects // [])[] |
|
|
51
|
-
"[\(.id)] \(.name) lead=\(.lead_agent // "unassigned") status=\(.status // "active") tasks=\(.task_count // 0)\n \(.description // "")"
|
|
52
|
-
' "$projectsFile" 2>/dev/null || echo "No projects yet."
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
Render as:
|
|
56
|
-
```
|
|
57
|
-
PROJECTS — org: <org_name>
|
|
58
|
-
──────────────────────────────────────────────────────
|
|
59
|
-
[homepage-redesign] Homepage Redesign
|
|
60
|
-
Lead: content-writer | Status: active | Tasks: 7
|
|
61
|
-
A full redesign of the company homepage with new copy and visuals.
|
|
62
|
-
|
|
63
|
-
[q2-seo-push] Q2 SEO Push
|
|
64
|
-
Lead: seo-specialist | Status: active | Tasks: 12
|
|
65
|
-
Target 10 high-volume keywords for Q2.
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
### add
|
|
69
|
-
|
|
70
|
-
```bash
|
|
71
|
-
project_id=$(echo "$project_name" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/-/g' | tr -s '-')
|
|
72
|
-
tmp="${projectsFile}.tmp"
|
|
73
|
-
jq --arg id "$project_id" \
|
|
74
|
-
--arg name "$project_name" \
|
|
75
|
-
--arg desc "${description:-}" \
|
|
76
|
-
--arg lead "${agent_id:-}" \
|
|
77
|
-
'.projects += [{"id":$id,"name":$name,"description":$desc,"lead_agent":($lead|if .=="" then null else . end),
|
|
78
|
-
"status":"active","task_count":0,"created_at":(now|todate)}]' \
|
|
79
|
-
"$projectsFile" > "$tmp" && mv "$tmp" "$projectsFile"
|
|
80
|
-
echo "Project created: $project_id"
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
Emit `org:project:created` event to dashboard.
|
|
84
|
-
|
|
85
|
-
### assign
|
|
86
|
-
|
|
87
|
-
Set the lead agent for a project:
|
|
88
|
-
|
|
89
|
-
```bash
|
|
90
|
-
tmp="${projectsFile}.tmp"
|
|
91
|
-
jq --arg id "$project_id" --arg agent "$agent_id" \
|
|
92
|
-
'.projects = [(.projects // [])[] | if .id == $id then .lead_agent = $agent | .updated_at = (now|todate) else . end]' \
|
|
93
|
-
"$projectsFile" > "$tmp" && mv "$tmp" "$projectsFile"
|
|
94
|
-
echo "Assigned $agent_id as lead for project $project_id"
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
### archive
|
|
98
|
-
|
|
99
|
-
```bash
|
|
100
|
-
tmp="${projectsFile}.tmp"
|
|
101
|
-
jq --arg id "$project_id" \
|
|
102
|
-
'.projects = [(.projects // [])[] | if .id == $id then .status = "archived" | .archived_at = (now|todate) else . end]' \
|
|
103
|
-
"$projectsFile" > "$tmp" && mv "$tmp" "$projectsFile"
|
|
104
|
-
echo "Project $project_id archived."
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
### status
|
|
108
|
-
|
|
109
|
-
Show project summary with linked tasks from the board:
|
|
110
|
-
|
|
111
|
-
```bash
|
|
112
|
-
project=$(jq --arg id "$project_id" '(.projects // [])[] | select(.id == $id)' "$projectsFile")
|
|
113
|
-
echo "$project" | jq .
|
|
114
|
-
|
|
115
|
-
# LEGACY-ORG-V1: board_id/*_col_id only exist on the pre-v2 board-backed org
|
|
116
|
-
# shape — see runorgv1.
|
|
117
|
-
# If board exists, count tasks tagged with this project
|
|
118
|
-
orgFile=".monomind/orgs/${org_name}.json"
|
|
119
|
-
board_id=$(jq -r '.board_id // empty' "$orgFile")
|
|
120
|
-
if [ -n "$board_id" ]; then
|
|
121
|
-
todo_col=$(jq -r '.todo_col_id // empty' "$orgFile")
|
|
122
|
-
doing_col=$(jq -r '.doing_col_id // empty' "$orgFile")
|
|
123
|
-
done_col=$(jq -r '.done_col_id // empty' "$orgFile")
|
|
124
|
-
echo "Tasks on board tagged project:$project_id:"
|
|
125
|
-
for col in "$todo_col" "$doing_col" "$done_col"; do
|
|
126
|
-
monotask card list $board_id --col $col --json 2>/dev/null | \
|
|
127
|
-
jq -r --arg p "project:$project_id" '[.[] | select((.labels // []) | index($p))] | length' 2>/dev/null
|
|
128
|
-
done
|
|
129
|
-
fi
|
|
130
|
-
# end LEGACY-ORG-V1
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
---
|
|
134
|
-
|
|
135
|
-
## Using Projects in Task Management
|
|
136
|
-
|
|
137
|
-
When creating tasks with `/mastermind:tasks`, tag them to a project:
|
|
138
|
-
|
|
139
|
-
```bash
|
|
140
|
-
monotask card label add $board_id $CARD_ID "project:<project_id>"
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
When running org agents, include the project context in task prompts:
|
|
144
|
-
|
|
145
|
-
```
|
|
146
|
-
This task belongs to project "<project_name>": <description>
|
|
147
|
-
Report your output tagged with project_id: <project_id>
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
---
|
|
151
|
-
|
|
152
|
-
## Step 3 — Return Output
|
|
153
|
-
|
|
154
|
-
```yaml
|
|
155
|
-
domain: ops
|
|
156
|
-
status: complete
|
|
157
|
-
action: <action>
|
|
158
|
-
org: <org_name>
|
|
159
|
-
project_id: <project_id if applicable>
|
|
160
|
-
projects_file: .monomind/orgs/<org_name>-projects.json
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
---
|
|
164
|
-
|
|
165
|
-
## Step 4 — Brain Write (standalone only)
|
|
166
|
-
|
|
167
|
-
If `caller` is not "command", follow mastermind-protocol/SKILL.md Brain Write Procedure for domain `ops`.
|