[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71M2QA1NF51HT3MVCENCAEG":3,"skill-same:01M71M2QA1NF51HT3MVCENCAEG":62},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":34,"linkOnly":35,"markdownContent":36,"markdownBody":37,"frontMatter":38,"refName":39,"commitSha":40,"skillDirectory":41,"forksCount":42,"repositoryHtmlUrl":43,"repositoryHomepageUrl":44,"ownerHtmlUrl":45,"ownerBlogUrl":46,"ownerDescription":6,"updatedAt":47,"install":48,"resources":61},"01M71M2QA1NF51HT3MVCENCAEG","mastermind-protocol",null,"Shared protocol for mastermind domain skills: brain load\u002Fwrite, output schema, memory scoring, task briefs. Never invoked directly.","monoes\u002Fmonomind","monoes","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F276744696?v=4","01M71KWF37AJ2NJBP3KWBVSDGT","01M71KWF4CSF8ADH0M6HA09VD2",23,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fmastermind-protocol\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33],"protocol","mastermind protocol","shared","never","domain","memory","for","schema","load","scoring","task","output","brain load","brain","write","briefs","2026-11-10 10:56:23",false,"---\nname: mastermind-protocol\ndescription: \"Shared protocol for mastermind domain skills: brain load\u002Fwrite, output schema, memory scoring, task briefs. Never invoked directly.\"\ntype: shared\n---\n\n# Mastermind Protocol\n\nThis file is a reference loaded by mastermind domain skills and master. It is NEVER invoked directly via the Skill tool.\n\n---\n\n## Agent Delegation Protocol\n\n**Every Task\u002FAgent spawn in mastermind and monomind MUST include the AGENT DELEGATION CAPABILITY block from `mastermind-delegation\u002FSKILL.md`.**\n\nThis makes delegation recursive: every spawned agent can itself spawn sub-agents, which can spawn their own sub-agents. The capability block tells each agent how to pick a real agent (the `[PICK]` line, `mcp__monomind__pick`, or local `monomind pick`) and how to delegate.\n\n**Placement:** In the Task\u002FAgent `description` or `prompt` field, insert the full `== AGENT DELEGATION CAPABILITY == ... =================================` block immediately after `BRAIN CONTEXT:`.\n\n**Why this matters:** Agents read their prompts cold. Without the delegation block, a spawned Security Engineer won't know it can delegate codebase exploration to a reviewer, or that it can spawn a Backend Architect to fix the issues it finds. With the block, every agent in the chain can self-organize and pull in the right specialist.\n\n**Reference:** Full block text is in `mastermind-delegation\u002FSKILL.md`. Copy it verbatim — do not paraphrase.\n\n---\n\n## Brain Load Procedure\n\nExecute at the START of every mastermind run (master or standalone domain command). Load in this order:\n\n**Step A — Tier 3 core principles (all domains):**\nTry `mcp__monomind__memory_hierarchical-recall` with query `\"mastermind principles\"`, topK 20.\nIf it returns an error, fall back to:\n`mcp__monomind__memory_pattern-search` with query `\"mastermind principles\"`, namespace `\"mastermind:principles\"`, limit 20.\nRecord the entry ids of whichever call actually returned results — `results[].id` from `memory_hierarchical-recall`, or `patterns[].id` from the `memory_pattern-search` fallback — into a running list: `recalled_entry_ids`.\n\n**Step B — Tier 2 weekly summary for this domain:**\nTry `mcp__monomind__memory_context-synthesize` with query `[current prompt keywords]`, maxEntries 10.\nIf it fails, fall back to:\n`mcp__monomind__memory_pattern-search` with query `[current prompt keywords]`, namespace `\"mastermind:\u003Cdomain>:weekly\"`, limit 10.\n`memory_context-synthesize` returns only a `context` string and a `sources` count — no entry ids — so it cannot add to `recalled_entry_ids`. Only the `memory_pattern-search` fallback contributes ids (`patterns[].id`); append them to `recalled_entry_ids` when that fallback runs.\n\n**Step C — Relevant graph nodes:**\nCall `mcp__monomind__monograph_query` with question `[3-5 keywords extracted from current prompt]`, depth 2.\nIf the graph is not built yet (error: \"No graph found\"), skip this tier — continue without graph context. Graph nodes are not memory entries and never contribute to `recalled_entry_ids`.\n\nCombine all results into a **BRAIN CONTEXT** block. Insert this block before any planning, decomposition, or agent spawning step. Format:\n\n```\n=== BRAIN CONTEXT ===\n[Tier 3 principles]\n[Tier 2 domain summary]\n[Relevant graph nodes]\n=====================\n```\n\nIf any MCP call fails or returns empty, continue without that tier — do not abort the run.\n\n**Step D — Visible recall confirmation:**\nImmediately after loading, print one short line as part of the calling skill's normal output — not buried inside the BRAIN CONTEXT block or an internal note the user never sees:\n- If anything was recalled: `Remembered: \u003Cone-line gist of the single most relevant recalled item>`\n- If every tier came back empty: `Nothing relevant recalled.`\n\nKeep `recalled_entry_ids` in scope for the rest of the run — the Brain Write Procedure's feedback step below needs it. Memory tools are stateless between calls, so the calling skill (not the MCP server) is what carries this list forward.\n\n---\n\n## Brain Write Procedure\n\nExecute at the END of every mastermind run. Always runs even if execution was partial or blocked.\n\n**Step 1 — Close the feedback loop on recalled memory:**\nIf `recalled_entry_ids` from the Brain Load Procedure is non-empty, call `mcp__monomind__memory_feedback`:\n- `taskId`: the `run_id` used in this run's unified output schema (ISO8601 timestamp) — also the idempotency key, so a retried or duplicated call for the same run never double-applies the rating\n- `entryIds`: `recalled_entry_ids`\n- `quality`: average of `decisions[].confidence` (0.0-1.0) from this run's unified output schema; omit if `decisions` is empty\n- `success`: `true` when `status: complete`, or `status: partial` with no `outcome: reverted` decisions and no user rejection\u002Fcorrection of the recalled guidance during the run; otherwise `false`\n- `agent`: `\u003Cdomain>` (this skill's domain)\n\nThis applies an EWMA update to `feedback_weight` on each recalled entry (idempotent per `taskId`) and appends a feedback-event record via the same tool call. If `recalled_entry_ids` is empty — e.g. Brain Load only got a hit from `memory_context-synthesize`, which returns no entry ids — skip this call; there is nothing to rate.\n\n`score` referenced in Steps 2-3 below is this same value: the average of `decisions[].confidence` from this run's unified output schema. The old day\u002Fuse decay factors were already constants on a fresh write (day 0, first use), so this is equivalent and simpler.\n\n**Step 2 — Append to Tier 1 raw log:**\nTry `mcp__monomind__memory_hierarchical-store` with:\n- namespace: `mastermind:\u003Cdomain>:raw`\n- content: [full unified output schema YAML from this run, as a string]\n- metadata: `{ score, project, run_id, date: ISO8601, domain }`\n\nIf hierarchical storage is unavailable, fall back to `mcp__monomind__memory_pattern-store`:\n- key: `mastermind:\u003Cdomain>:run:\u003Crun_id>`\n- value: [JSON-encoded unified output schema]\n- namespace: `mastermind:\u003Cdomain>:raw`\n- tags: `[\"mastermind\", \"\u003Cdomain>\", \"run\"]`\n\n**Step 3 — Check weekly compaction trigger:**\nTry `mcp__monomind__memory_health` on namespace `mastermind:\u003Cdomain>:raw`.\nIf unavailable, call `mcp__monomind__memory_health` and check entry count manually.\nIf `entry_count >= 20` OR `days_since_last_compaction >= 7`:\n1. Retrieve all Tier 1 entries since last compaction\n2. Produce a per-domain weekly summary (use LLM synthesis: \"Summarize the key decisions, patterns, and lessons from these run logs in under 300 words\")\n3. Store summary: `mcp__monomind__memory_hierarchical-store` namespace `mastermind:\u003Cdomain>:weekly`\n4. Archive (do not delete) Tier 1 entries with score \u003C 0.1 by updating their metadata: `{ archived: true }`\n\n**Step 4 — Check graph consolidation trigger:**\nCall `mcp__monomind__monograph_query` for nodes matching `mastermind:\u003Cdomain>`.\nIf 3+ similar memory nodes are detected in a cluster:\n1. Merge into a single principle via LLM: \"Distill these memories into one clear principle in 1-2 sentences\"\n2. Store principle: `mcp__monomind__memory_hierarchical-store` namespace `mastermind:principles`\n3. Add `EXCEPTION` edge in Monograph for any conflicting memory: `mcp__monomind__memory_kg_ingest`\n\n---\n\n## Unified Output Schema\n\nEvery domain skill MUST return exactly this YAML to its caller. No extra fields. No missing fields.\n\n```yaml\ndomain: \u003Cbuild|marketing|review|research|content|release|sales|ops|finance|idea>\nstatus: complete | partial | blocked\nartifacts:\n  - path: \u002Fabsolute\u002Fpath\u002Fto\u002Ffile\n    type: code | copy | report | config\ndecisions:\n  - what: \"description of the decision\"\n    why: \"reasoning behind it\"\n    confidence: 0.0-1.0\n    outcome: shipped | pending | reverted\nlessons:\n  - what_worked: \"description\"\n  - what_didnt: \"description\"\nnext_actions:\n  - \"suggested follow-up command\"\nboard_url: \"monotask:\u002F\u002F\u003Cproject>\u002F\u003Cdomain>\"\nrun_id: \"\u003CISO8601-timestamp>\"\n```\n\nEmpty fields use `[]`. The `status` field reflects the highest-level result: `complete` = all tasks done, `partial` = some tasks done, `blocked` = could not proceed (include reason in `lessons.what_didnt`).\n\n---\n\n## Memory Feedback Loop\n\nRecalled memories are rated for real via `mcp__monomind__memory_feedback` (Brain Write Procedure, Step 1) — not a locally-computed formula. `score` (used by Steps 2-3 for the newly-stored run entry) is the average of `decisions[].confidence` from the unified output schema.\n\n| Concept | Mechanism |\n|---|---|\n| `feedback_weight` | Per-entry EWMA, updated by `memory_feedback`'s `quality`\u002F`success` params, blended into future ranking (`bridgeApplyFeedback` in `memory-bridge.ts`) |\n| `frequency_weight` | Incremented automatically on every recall hit, inside the `memory_hierarchical-recall` \u002F `memory_pattern-search` handlers themselves — protects frequently-used entries from GC |\n| Idempotency | `memory_feedback`'s `taskId` is the idempotency key — the same `run_id` never double-applies a rating |\n| Archive threshold | score \u003C 0.1 (Step 3 above) |\n| GC protection | `bridgeConsolidate` never collects entries with `feedback_weight > 0.6` or `frequency_weight >= 3` |\n\n---\n\n## Monotask Space+Board Setup Procedure\n\n**Always follow this exact order — never create a board without first ensuring a space exists.**\n\n**Board naming convention:** Boards are named `\u003Cproject_name>-\u003Cdomain>` (e.g. `factory-idea`, `factory-build`). This canonical name is stable across runs — find the existing board first, create only if it does not exist.\n\n**Column schemas by domain — use these exact column names, in this order:**\n\n| Domain | Columns (left → right) | Intake column |\n|---|---|---|\n| `idea` | New → Evaluated → Elaborated → Tasked → Iced → Rejected | New |\n| `build`, `release`, `architect`, `review` | Todo → In Progress → Human in Loop → Review → Done → Cancelled | Todo |\n| `marketing`, `content`, `sales`, `ops`, `finance`, `research` | Todo → In Progress → Human in Loop → Review → Done → Cancelled | Todo |\n| Task boards (`\u003Cproj>-tasks-dev`, `\u003Cproj>-tasks-ops`) | Backlog → Todo → In Progress → Human in Loop → Review → Done → Cancelled | Todo |\n\nEvery mastermind run that needs a task board MUST:\n1. Resolve the space (find existing or create new) — space name = `project_name`\n2. Find existing board by canonical name `\u003Cproject_name>-\u003Cdomain>` or create it with `--space`\n3. Fetch column IDs from existing board OR create columns for new board\n4. Create cards within those columns\n\nIf the user is running across multiple repos for the same project, they MUST use the same `project_name` so all boards land in one space.\n\n### Canonical bash block (substitute `\u003Cdomain>` with: build, marketing, ops, content, etc.)\n\n```bash\n# Compatible with macOS bash 3.2\nproject_name=\"${project_name:-$(basename \"$PWD\")}\"\ncanonical=\"${project_name}-\u003Cdomain>\"\nboard_tracking=true\n\n# Step 1 — Resolve space\nspace_id=$(monotask space list 2>\u002Fdev\u002Fnull | awk -F'|' '{gsub(\u002F^ +| +$\u002F,\"\",$1);gsub(\u002F^ +| +$\u002F,\"\",$2);if($2==n)print $1}' n=\"$project_name\" | head -1)\n[ -z \"$space_id\" ] && space_id=$(monotask space create \"$project_name\" 2>\u002Fdev\u002Fnull | grep -oE '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}')\n[ -z \"$space_id\" ] && { echo \"[mastermind] monotask board unavailable — board tracking skipped.\"; board_tracking=false; }\n\n# Step 2 — Find existing board by canonical name or create\n# board list format is \"uuid: name\" (colon-space separator, NOT pipe)\nif [ \"$board_tracking\" = \"true\" ]; then\nboard_id=$(monotask board list 2>\u002Fdev\u002Fnull | awk -F': ' '{gsub(\u002F^ +| +$\u002F,\"\",$1);gsub(\u002F^ +| +$\u002F,\"\",$2);if($2==n)print $1}' n=\"$canonical\" | head -1)\nif [ -n \"$board_id\" ]; then\n  # Step 3a — Fetch column IDs from existing board\n  cols_json=$(monotask column list \"$board_id\" --json 2>\u002Fdev\u002Fnull || echo '[]')\n  todo_col=$(echo \"$cols_json\" | jq -r '[.[] | select(.title==\"Todo\" or .title==\"Backlog\")] | .[0].id \u002F\u002F empty')\n  doing_col=$(echo \"$cols_json\" | jq -r '[.[] | select(.title==\"Doing\" or .title==\"In Progress\")] | .[0].id \u002F\u002F empty')\n  done_col=$(echo \"$cols_json\" | jq -r '[.[] | select(.title==\"Done\")] | .[0].id \u002F\u002F empty')\nelse\n  # Step 3b — Create board and columns\n  board_id=$(monotask board create --space \"$space_id\" \"$canonical\" --json 2>\u002Fdev\u002Fnull | jq -r '.id \u002F\u002F empty')\n  [ -z \"$board_id\" ] && { echo \"[mastermind] monotask board unavailable — board tracking skipped.\"; board_tracking=false; }\n  if [ \"$board_tracking\" = \"true\" ]; then\n  monotask space boards add \"$space_id\" \"$board_id\" >\u002Fdev\u002Fnull 2>&1 || true\n  todo_col=$(monotask column create \"$board_id\" \"Todo\"  --json 2>\u002Fdev\u002Fnull | jq -r '.id \u002F\u002F empty')\n  doing_col=$(monotask column create \"$board_id\" \"Doing\" --json 2>\u002Fdev\u002Fnull | jq -r '.id \u002F\u002F empty')\n  done_col=$(monotask column create \"$board_id\" \"Done\"  --json 2>\u002Fdev\u002Fnull | jq -r '.id \u002F\u002F empty')\n  [ -z \"$todo_col\" ] && { echo \"[mastermind] monotask board unavailable — board tracking skipped.\"; board_tracking=false; }\n  fi\nfi\nfi\n```\n\nWhen master.md runs multiple domains, resolve the space **once** before the loop, then repeat steps 2–3 per domain using jq accumulation (no bash 4.3+ needed):\n\n```bash\n# Compatible with macOS bash 3.2 — jq accumulation instead of declare -A\nproject_name=\"\u003Cresolved project_name>\"\nboard_tracking=true\nspace_id=$(monotask space list 2>\u002Fdev\u002Fnull | awk -F'|' '{gsub(\u002F^ +| +$\u002F,\"\",$1);gsub(\u002F^ +| +$\u002F,\"\",$2);if($2==n)print $1}' n=\"$project_name\" | head -1)\n[ -z \"$space_id\" ] && space_id=$(monotask space create \"$project_name\" 2>\u002Fdev\u002Fnull | grep -oE '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}')\n[ -z \"$space_id\" ] && { echo \"[mastermind] monotask board unavailable — board tracking skipped.\"; board_tracking=false; }\n\nstate_patch='{}'\nfor domain in build marketing ops; do   # substitute actual domain list\n  canonical=\"${project_name}-${domain}\"\n  if [ \"$board_tracking\" = \"true\" ]; then\n  # board list format is \"uuid: name\" (colon-space separator, NOT pipe)\n  board_id=$(monotask board list 2>\u002Fdev\u002Fnull | awk -F': ' '{gsub(\u002F^ +| +$\u002F,\"\",$1);gsub(\u002F^ +| +$\u002F,\"\",$2);if($2==n)print $1}' n=\"$canonical\" | head -1)\n  if [ -n \"$board_id\" ]; then\n    cols_json=$(monotask column list \"$board_id\" --json 2>\u002Fdev\u002Fnull || echo '[]')\n    todo_col=$(echo \"$cols_json\" | jq -r '[.[] | select(.title==\"Todo\" or .title==\"Backlog\")] | .[0].id \u002F\u002F empty')\n    doing_col=$(echo \"$cols_json\" | jq -r '[.[] | select(.title==\"Doing\" or .title==\"In Progress\")] | .[0].id \u002F\u002F empty')\n    done_col=$(echo \"$cols_json\" | jq -r '[.[] | select(.title==\"Done\")] | .[0].id \u002F\u002F empty')\n  else\n    board_id=$(monotask board create --space \"$space_id\" \"$canonical\" --json 2>\u002Fdev\u002Fnull | jq -r '.id \u002F\u002F empty')\n    [ -z \"$board_id\" ] && { echo \"[mastermind] monotask board unavailable — board tracking skipped.\"; board_tracking=false; }\n    if [ \"$board_tracking\" = \"true\" ]; then\n    monotask space boards add \"$space_id\" \"$board_id\" >\u002Fdev\u002Fnull 2>&1 || true\n    todo_col=$(monotask column create \"$board_id\" \"Todo\"  --json 2>\u002Fdev\u002Fnull | jq -r '.id \u002F\u002F empty')\n    doing_col=$(monotask column create \"$board_id\" \"Doing\" --json 2>\u002Fdev\u002Fnull | jq -r '.id \u002F\u002F empty')\n    done_col=$(monotask column create \"$board_id\" \"Done\"  --json 2>\u002Fdev\u002Fnull | jq -r '.id \u002F\u002F empty')\n    [ -z \"$todo_col\" ] && { echo \"[mastermind] monotask board unavailable — board tracking skipped.\"; board_tracking=false; }\n    fi\n  fi\n  fi\n  state_patch=$(echo \"$state_patch\" | jq \\\n    --arg d \"$domain\" --arg b \"$board_id\" \\\n    --arg t \"$todo_col\" --arg g \"$doing_col\" --arg e \"$done_col\" \\\n    '.board_ids[$d]=$b | .todo_cols[$d]=$t | .doing_cols[$d]=$g | .done_cols[$d]=$e')\ndone\n```\n\n---\n\n## Monotask Task Briefing Standard\n\nEvery monotask card MUST include ALL fields below in its description and comment. Agents read task cards cold — no back-channel context exists.\n\nCreate each card using `monotask card create`, then populate it. First resolve column IDs:\n```bash\ncolumns=$(monotask column list \"$BOARD_ID\" --json)\nCOL_TODO_ID=$(echo \"$columns\" | jq -r '.[] | select(.title == \"Todo\" or .title == \"Backlog\") | .id' | head -1)\nCOL_DONE_ID=$(echo \"$columns\" | jq -r '.[] | select(.title == \"Done\") | .id' | head -1)\n```\nThen create the card:\n```bash\nresult=$(monotask card create \"$BOARD_ID\" \"$COL_TODO_ID\" \"\u003Cshort title ≤80 chars: summary of GOAL>\" --json)\nCARD_ID=$(echo \"$result\" | jq -r '.id \u002F\u002F empty')\nmonotask card set-description \"$BOARD_ID\" \"$CARD_ID\" \"[One measurable objective — what success looks like]\"\nmonotask card comment add \"$BOARD_ID\" \"$CARD_ID\" \"CONTEXT: [ISO date] | Project: [name] | Created by: [domain] Manager\n\nBRAIN MEMORY:\n[Paste the most relevant 3-5 excerpts from the loaded BRAIN CONTEXT block]\n\nSCOPE:\n- Files\u002Fdirs in scope: [explicit paths]\n- Files\u002Fdirs out of scope: [explicit exclusions if relevant]\n\nCONSTRAINTS:\n- [Must-not-break items]\n- [Existing APIs to preserve]\n- [Timeline if applicable]\n\nSUCCESS CRITERIA:\n- [ ] [Concrete checkable item 1]\n- [ ] [Concrete checkable item 2]\n\nAGENT: [agent name from the [PICK] line or mcp__monomind__pick, e.g. Backend Architect | Frontend Developer]\nSWARM: [topology agent-count consensus, e.g. \\\"hierarchical 4 raft\\\"]\n\nDEPENDENCIES: [task IDs, or \\\"none\\\"]\nOUTPUT FORMAT: Unified output schema (see mastermind mastermind-protocol\u002FSKILL.md)\"\n```\n","# Mastermind Protocol\n\nThis file is a reference loaded by mastermind domain skills and master. It is NEVER invoked directly via the Skill tool.\n\n---\n\n## Agent Delegation Protocol\n\n**Every Task\u002FAgent spawn in mastermind and monomind MUST include the AGENT DELEGATION CAPABILITY block from `mastermind-delegation\u002FSKILL.md`.**\n\nThis makes delegation recursive: every spawned agent can itself spawn sub-agents, which can spawn their own sub-agents. The capability block tells each agent how to pick a real agent (the `[PICK]` line, `mcp__monomind__pick`, or local `monomind pick`) and how to delegate.\n\n**Placement:** In the Task\u002FAgent `description` or `prompt` field, insert the full `== AGENT DELEGATION CAPABILITY == ... =================================` block immediately after `BRAIN CONTEXT:`.\n\n**Why this matters:** Agents read their prompts cold. Without the delegation block, a spawned Security Engineer won't know it can delegate codebase exploration to a reviewer, or that it can spawn a Backend Architect to fix the issues it finds. With the block, every agent in the chain can self-organize and pull in the right specialist.\n\n**Reference:** Full block text is in `mastermind-delegation\u002FSKILL.md`. Copy it verbatim — do not paraphrase.\n\n---\n\n## Brain Load Procedure\n\nExecute at the START of every mastermind run (master or standalone domain command). Load in this order:\n\n**Step A — Tier 3 core principles (all domains):**\nTry `mcp__monomind__memory_hierarchical-recall` with query `\"mastermind principles\"`, topK 20.\nIf it returns an error, fall back to:\n`mcp__monomind__memory_pattern-search` with query `\"mastermind principles\"`, namespace `\"mastermind:principles\"`, limit 20.\nRecord the entry ids of whichever call actually returned results — `results[].id` from `memory_hierarchical-recall`, or `patterns[].id` from the `memory_pattern-search` fallback — into a running list: `recalled_entry_ids`.\n\n**Step B — Tier 2 weekly summary for this domain:**\nTry `mcp__monomind__memory_context-synthesize` with query `[current prompt keywords]`, maxEntries 10.\nIf it fails, fall back to:\n`mcp__monomind__memory_pattern-search` with query `[current prompt keywords]`, namespace `\"mastermind:\u003Cdomain>:weekly\"`, limit 10.\n`memory_context-synthesize` returns only a `context` string and a `sources` count — no entry ids — so it cannot add to `recalled_entry_ids`. Only the `memory_pattern-search` fallback contributes ids (`patterns[].id`); append them to `recalled_entry_ids` when that fallback runs.\n\n**Step C — Relevant graph nodes:**\nCall `mcp__monomind__monograph_query` with question `[3-5 keywords extracted from current prompt]`, depth 2.\nIf the graph is not built yet (error: \"No graph found\"), skip this tier — continue without graph context. Graph nodes are not memory entries and never contribute to `recalled_entry_ids`.\n\nCombine all results into a **BRAIN CONTEXT** block. Insert this block before any planning, decomposition, or agent spawning step. Format:\n\n```\n=== BRAIN CONTEXT ===\n[Tier 3 principles]\n[Tier 2 domain summary]\n[Relevant graph nodes]\n=====================\n```\n\nIf any MCP call fails or returns empty, continue without that tier — do not abort the run.\n\n**Step D — Visible recall confirmation:**\nImmediately after loading, print one short line as part of the calling skill's normal output — not buried inside the BRAIN CONTEXT block or an internal note the user never sees:\n- If anything was recalled: `Remembered: \u003Cone-line gist of the single most relevant recalled item>`\n- If every tier came back empty: `Nothing relevant recalled.`\n\nKeep `recalled_entry_ids` in scope for the rest of the run — the Brain Write Procedure's feedback step below needs it. Memory tools are stateless between calls, so the calling skill (not the MCP server) is what carries this list forward.\n\n---\n\n## Brain Write Procedure\n\nExecute at the END of every mastermind run. Always runs even if execution was partial or blocked.\n\n**Step 1 — Close the feedback loop on recalled memory:**\nIf `recalled_entry_ids` from the Brain Load Procedure is non-empty, call `mcp__monomind__memory_feedback`:\n- `taskId`: the `run_id` used in this run's unified output schema (ISO8601 timestamp) — also the idempotency key, so a retried or duplicated call for the same run never double-applies the rating\n- `entryIds`: `recalled_entry_ids`\n- `quality`: average of `decisions[].confidence` (0.0-1.0) from this run's unified output schema; omit if `decisions` is empty\n- `success`: `true` when `status: complete`, or `status: partial` with no `outcome: reverted` decisions and no user rejection\u002Fcorrection of the recalled guidance during the run; otherwise `false`\n- `agent`: `\u003Cdomain>` (this skill's domain)\n\nThis applies an EWMA update to `feedback_weight` on each recalled entry (idempotent per `taskId`) and appends a feedback-event record via the same tool call. If `recalled_entry_ids` is empty — e.g. Brain Load only got a hit from `memory_context-synthesize`, which returns no entry ids — skip this call; there is nothing to rate.\n\n`score` referenced in Steps 2-3 below is this same value: the average of `decisions[].confidence` from this run's unified output schema. The old day\u002Fuse decay factors were already constants on a fresh write (day 0, first use), so this is equivalent and simpler.\n\n**Step 2 — Append to Tier 1 raw log:**\nTry `mcp__monomind__memory_hierarchical-store` with:\n- namespace: `mastermind:\u003Cdomain>:raw`\n- content: [full unified output schema YAML from this run, as a string]\n- metadata: `{ score, project, run_id, date: ISO8601, domain }`\n\nIf hierarchical storage is unavailable, fall back to `mcp__monomind__memory_pattern-store`:\n- key: `mastermind:\u003Cdomain>:run:\u003Crun_id>`\n- value: [JSON-encoded unified output schema]\n- namespace: `mastermind:\u003Cdomain>:raw`\n- tags: `[\"mastermind\", \"\u003Cdomain>\", \"run\"]`\n\n**Step 3 — Check weekly compaction trigger:**\nTry `mcp__monomind__memory_health` on namespace `mastermind:\u003Cdomain>:raw`.\nIf unavailable, call `mcp__monomind__memory_health` and check entry count manually.\nIf `entry_count >= 20` OR `days_since_last_compaction >= 7`:\n1. Retrieve all Tier 1 entries since last compaction\n2. Produce a per-domain weekly summary (use LLM synthesis: \"Summarize the key decisions, patterns, and lessons from these run logs in under 300 words\")\n3. Store summary: `mcp__monomind__memory_hierarchical-store` namespace `mastermind:\u003Cdomain>:weekly`\n4. Archive (do not delete) Tier 1 entries with score \u003C 0.1 by updating their metadata: `{ archived: true }`\n\n**Step 4 — Check graph consolidation trigger:**\nCall `mcp__monomind__monograph_query` for nodes matching `mastermind:\u003Cdomain>`.\nIf 3+ similar memory nodes are detected in a cluster:\n1. Merge into a single principle via LLM: \"Distill these memories into one clear principle in 1-2 sentences\"\n2. Store principle: `mcp__monomind__memory_hierarchical-store` namespace `mastermind:principles`\n3. Add `EXCEPTION` edge in Monograph for any conflicting memory: `mcp__monomind__memory_kg_ingest`\n\n---\n\n## Unified Output Schema\n\nEvery domain skill MUST return exactly this YAML to its caller. No extra fields. No missing fields.\n\n```yaml\ndomain: \u003Cbuild|marketing|review|research|content|release|sales|ops|finance|idea>\nstatus: complete | partial | blocked\nartifacts:\n  - path: \u002Fabsolute\u002Fpath\u002Fto\u002Ffile\n    type: code | copy | report | config\ndecisions:\n  - what: \"description of the decision\"\n    why: \"reasoning behind it\"\n    confidence: 0.0-1.0\n    outcome: shipped | pending | reverted\nlessons:\n  - what_worked: \"description\"\n  - what_didnt: \"description\"\nnext_actions:\n  - \"suggested follow-up command\"\nboard_url: \"monotask:\u002F\u002F\u003Cproject>\u002F\u003Cdomain>\"\nrun_id: \"\u003CISO8601-timestamp>\"\n```\n\nEmpty fields use `[]`. The `status` field reflects the highest-level result: `complete` = all tasks done, `partial` = some tasks done, `blocked` = could not proceed (include reason in `lessons.what_didnt`).\n\n---\n\n## Memory Feedback Loop\n\nRecalled memories are rated for real via `mcp__monomind__memory_feedback` (Brain Write Procedure, Step 1) — not a locally-computed formula. `score` (used by Steps 2-3 for the newly-stored run entry) is the average of `decisions[].confidence` from the unified output schema.\n\n| Concept | Mechanism |\n|---|---|\n| `feedback_weight` | Per-entry EWMA, updated by `memory_feedback`'s `quality`\u002F`success` params, blended into future ranking (`bridgeApplyFeedback` in `memory-bridge.ts`) |\n| `frequency_weight` | Incremented automatically on every recall hit, inside the `memory_hierarchical-recall` \u002F `memory_pattern-search` handlers themselves — protects frequently-used entries from GC |\n| Idempotency | `memory_feedback`'s `taskId` is the idempotency key — the same `run_id` never double-applies a rating |\n| Archive threshold | score \u003C 0.1 (Step 3 above) |\n| GC protection | `bridgeConsolidate` never collects entries with `feedback_weight > 0.6` or `frequency_weight >= 3` |\n\n---\n\n## Monotask Space+Board Setup Procedure\n\n**Always follow this exact order — never create a board without first ensuring a space exists.**\n\n**Board naming convention:** Boards are named `\u003Cproject_name>-\u003Cdomain>` (e.g. `factory-idea`, `factory-build`). This canonical name is stable across runs — find the existing board first, create only if it does not exist.\n\n**Column schemas by domain — use these exact column names, in this order:**\n\n| Domain | Columns (left → right) | Intake column |\n|---|---|---|\n| `idea` | New → Evaluated → Elaborated → Tasked → Iced → Rejected | New |\n| `build`, `release`, `architect`, `review` | Todo → In Progress → Human in Loop → Review → Done → Cancelled | Todo |\n| `marketing`, `content`, `sales`, `ops`, `finance`, `research` | Todo → In Progress → Human in Loop → Review → Done → Cancelled | Todo |\n| Task boards (`\u003Cproj>-tasks-dev`, `\u003Cproj>-tasks-ops`) | Backlog → Todo → In Progress → Human in Loop → Review → Done → Cancelled | Todo |\n\nEvery mastermind run that needs a task board MUST:\n1. Resolve the space (find existing or create new) — space name = `project_name`\n2. Find existing board by canonical name `\u003Cproject_name>-\u003Cdomain>` or create it with `--space`\n3. Fetch column IDs from existing board OR create columns for new board\n4. Create cards within those columns\n\nIf the user is running across multiple repos for the same project, they MUST use the same `project_name` so all boards land in one space.\n\n### Canonical bash block (substitute `\u003Cdomain>` with: build, marketing, ops, content, etc.)\n\n```bash\n# Compatible with macOS bash 3.2\nproject_name=\"${project_name:-$(basename \"$PWD\")}\"\ncanonical=\"${project_name}-\u003Cdomain>\"\nboard_tracking=true\n\n# Step 1 — Resolve space\nspace_id=$(monotask space list 2>\u002Fdev\u002Fnull | awk -F'|' '{gsub(\u002F^ +| +$\u002F,\"\",$1);gsub(\u002F^ +| +$\u002F,\"\",$2);if($2==n)print $1}' n=\"$project_name\" | head -1)\n[ -z \"$space_id\" ] && space_id=$(monotask space create \"$project_name\" 2>\u002Fdev\u002Fnull | grep -oE '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}')\n[ -z \"$space_id\" ] && { echo \"[mastermind] monotask board unavailable — board tracking skipped.\"; board_tracking=false; }\n\n# Step 2 — Find existing board by canonical name or create\n# board list format is \"uuid: name\" (colon-space separator, NOT pipe)\nif [ \"$board_tracking\" = \"true\" ]; then\nboard_id=$(monotask board list 2>\u002Fdev\u002Fnull | awk -F': ' '{gsub(\u002F^ +| +$\u002F,\"\",$1);gsub(\u002F^ +| +$\u002F,\"\",$2);if($2==n)print $1}' n=\"$canonical\" | head -1)\nif [ -n \"$board_id\" ]; then\n  # Step 3a — Fetch column IDs from existing board\n  cols_json=$(monotask column list \"$board_id\" --json 2>\u002Fdev\u002Fnull || echo '[]')\n  todo_col=$(echo \"$cols_json\" | jq -r '[.[] | select(.title==\"Todo\" or .title==\"Backlog\")] | .[0].id \u002F\u002F empty')\n  doing_col=$(echo \"$cols_json\" | jq -r '[.[] | select(.title==\"Doing\" or .title==\"In Progress\")] | .[0].id \u002F\u002F empty')\n  done_col=$(echo \"$cols_json\" | jq -r '[.[] | select(.title==\"Done\")] | .[0].id \u002F\u002F empty')\nelse\n  # Step 3b — Create board and columns\n  board_id=$(monotask board create --space \"$space_id\" \"$canonical\" --json 2>\u002Fdev\u002Fnull | jq -r '.id \u002F\u002F empty')\n  [ -z \"$board_id\" ] && { echo \"[mastermind] monotask board unavailable — board tracking skipped.\"; board_tracking=false; }\n  if [ \"$board_tracking\" = \"true\" ]; then\n  monotask space boards add \"$space_id\" \"$board_id\" >\u002Fdev\u002Fnull 2>&1 || true\n  todo_col=$(monotask column create \"$board_id\" \"Todo\"  --json 2>\u002Fdev\u002Fnull | jq -r '.id \u002F\u002F empty')\n  doing_col=$(monotask column create \"$board_id\" \"Doing\" --json 2>\u002Fdev\u002Fnull | jq -r '.id \u002F\u002F empty')\n  done_col=$(monotask column create \"$board_id\" \"Done\"  --json 2>\u002Fdev\u002Fnull | jq -r '.id \u002F\u002F empty')\n  [ -z \"$todo_col\" ] && { echo \"[mastermind] monotask board unavailable — board tracking skipped.\"; board_tracking=false; }\n  fi\nfi\nfi\n```\n\nWhen master.md runs multiple domains, resolve the space **once** before the loop, then repeat steps 2–3 per domain using jq accumulation (no bash 4.3+ needed):\n\n```bash\n# Compatible with macOS bash 3.2 — jq accumulation instead of declare -A\nproject_name=\"\u003Cresolved project_name>\"\nboard_tracking=true\nspace_id=$(monotask space list 2>\u002Fdev\u002Fnull | awk -F'|' '{gsub(\u002F^ +| +$\u002F,\"\",$1);gsub(\u002F^ +| +$\u002F,\"\",$2);if($2==n)print $1}' n=\"$project_name\" | head -1)\n[ -z \"$space_id\" ] && space_id=$(monotask space create \"$project_name\" 2>\u002Fdev\u002Fnull | grep -oE '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}')\n[ -z \"$space_id\" ] && { echo \"[mastermind] monotask board unavailable — board tracking skipped.\"; board_tracking=false; }\n\nstate_patch='{}'\nfor domain in build marketing ops; do   # substitute actual domain list\n  canonical=\"${project_name}-${domain}\"\n  if [ \"$board_tracking\" = \"true\" ]; then\n  # board list format is \"uuid: name\" (colon-space separator, NOT pipe)\n  board_id=$(monotask board list 2>\u002Fdev\u002Fnull | awk -F': ' '{gsub(\u002F^ +| +$\u002F,\"\",$1);gsub(\u002F^ +| +$\u002F,\"\",$2);if($2==n)print $1}' n=\"$canonical\" | head -1)\n  if [ -n \"$board_id\" ]; then\n    cols_json=$(monotask column list \"$board_id\" --json 2>\u002Fdev\u002Fnull || echo '[]')\n    todo_col=$(echo \"$cols_json\" | jq -r '[.[] | select(.title==\"Todo\" or .title==\"Backlog\")] | .[0].id \u002F\u002F empty')\n    doing_col=$(echo \"$cols_json\" | jq -r '[.[] | select(.title==\"Doing\" or .title==\"In Progress\")] | .[0].id \u002F\u002F empty')\n    done_col=$(echo \"$cols_json\" | jq -r '[.[] | select(.title==\"Done\")] | .[0].id \u002F\u002F empty')\n  else\n    board_id=$(monotask board create --space \"$space_id\" \"$canonical\" --json 2>\u002Fdev\u002Fnull | jq -r '.id \u002F\u002F empty')\n    [ -z \"$board_id\" ] && { echo \"[mastermind] monotask board unavailable — board tracking skipped.\"; board_tracking=false; }\n    if [ \"$board_tracking\" = \"true\" ]; then\n    monotask space boards add \"$space_id\" \"$board_id\" >\u002Fdev\u002Fnull 2>&1 || true\n    todo_col=$(monotask column create \"$board_id\" \"Todo\"  --json 2>\u002Fdev\u002Fnull | jq -r '.id \u002F\u002F empty')\n    doing_col=$(monotask column create \"$board_id\" \"Doing\" --json 2>\u002Fdev\u002Fnull | jq -r '.id \u002F\u002F empty')\n    done_col=$(monotask column create \"$board_id\" \"Done\"  --json 2>\u002Fdev\u002Fnull | jq -r '.id \u002F\u002F empty')\n    [ -z \"$todo_col\" ] && { echo \"[mastermind] monotask board unavailable — board tracking skipped.\"; board_tracking=false; }\n    fi\n  fi\n  fi\n  state_patch=$(echo \"$state_patch\" | jq \\\n    --arg d \"$domain\" --arg b \"$board_id\" \\\n    --arg t \"$todo_col\" --arg g \"$doing_col\" --arg e \"$done_col\" \\\n    '.board_ids[$d]=$b | .todo_cols[$d]=$t | .doing_cols[$d]=$g | .done_cols[$d]=$e')\ndone\n```\n\n---\n\n## Monotask Task Briefing Standard\n\nEvery monotask card MUST include ALL fields below in its description and comment. Agents read task cards cold — no back-channel context exists.\n\nCreate each card using `monotask card create`, then populate it. First resolve column IDs:\n```bash\ncolumns=$(monotask column list \"$BOARD_ID\" --json)\nCOL_TODO_ID=$(echo \"$columns\" | jq -r '.[] | select(.title == \"Todo\" or .title == \"Backlog\") | .id' | head -1)\nCOL_DONE_ID=$(echo \"$columns\" | jq -r '.[] | select(.title == \"Done\") | .id' | head -1)\n```\nThen create the card:\n```bash\nresult=$(monotask card create \"$BOARD_ID\" \"$COL_TODO_ID\" \"\u003Cshort title ≤80 chars: summary of GOAL>\" --json)\nCARD_ID=$(echo \"$result\" | jq -r '.id \u002F\u002F empty')\nmonotask card set-description \"$BOARD_ID\" \"$CARD_ID\" \"[One measurable objective — what success looks like]\"\nmonotask card comment add \"$BOARD_ID\" \"$CARD_ID\" \"CONTEXT: [ISO date] | Project: [name] | Created by: [domain] Manager\n\nBRAIN MEMORY:\n[Paste the most relevant 3-5 excerpts from the loaded BRAIN CONTEXT block]\n\nSCOPE:\n- Files\u002Fdirs in scope: [explicit paths]\n- Files\u002Fdirs out of scope: [explicit exclusions if relevant]\n\nCONSTRAINTS:\n- [Must-not-break items]\n- [Existing APIs to preserve]\n- [Timeline if applicable]\n\nSUCCESS CRITERIA:\n- [ ] [Concrete checkable item 1]\n- [ ] [Concrete checkable item 2]\n\nAGENT: [agent name from the [PICK] line or mcp__monomind__pick, e.g. Backend Architect | Frontend Developer]\nSWARM: [topology agent-count consensus, e.g. \\\"hierarchical 4 raft\\\"]\n\nDEPENDENCIES: [task IDs, or \\\"none\\\"]\nOUTPUT FORMAT: Unified output schema (see mastermind mastermind-protocol\u002FSKILL.md)\"\n```\n",{"name":5,"type":20,"description":7},"main","f7cd4595d0f8959822163e14f9787117765c931a",".claude\u002Fskills\u002Fmastermind-protocol",2,"https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind","https:\u002F\u002Fmonoes.github.io\u002Fmonomind\u002F","https:\u002F\u002Fgithub.com\u002Fmonoes","https:\u002F\u002Fmonoes.me","2026-11-10 01:53:48",{"source":8,"skillName":5,"commands":49,"prompt":59,"zipAvailable":60},[50,53,56],{"tool":51,"command":52},"npx","npx skills add monoes\u002Fmonomind --skill mastermind-protocol",{"tool":54,"command":55},"bunx","bunx skills add monoes\u002Fmonomind --skill mastermind-protocol",{"tool":57,"command":58},"pnpm","pnpm dlx skills add monoes\u002Fmonomind --skill mastermind-protocol","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fmastermind-protocol\u002FSKILL.md",true,[],[63,91,127,154,178,205],{"skillNo":64,"name":65,"nameZh":6,"description":66,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":67,"categories":68,"keywords":69,"publishedAt":90},"01M71PB3SHWKMNJM6MD65VX8D6","zk-steward","Org role guidance for a ZK steward: engineer zero-knowledge proof systems with circuit design, SNARK vs STARK choice and security review. This is zero-knowledge cryptography, not Zettelkasten note-taking.","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fzk-steward\u002FSKILL.md",[],[70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89],"zk","zk steward","steward","zero-knowledge","engineer","choice","design","knowledge","impact","query","snark","review","monomind","security review","stark","zettelkasten","cryptography","security","org","blockchain","2026-11-10 13:02:02",{"skillNo":92,"name":93,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":95,"licenseFileUrl":96,"sourceHtmlUrl":97,"categories":98,"keywords":109,"publishedAt":90},"01M71PB18SDG28WBKPKJNB814K","writing-plans","Use when you have a spec or requirements for a multi-step coding task and must write an implementation plan before touching code. Produces bite-sized TDD tasks with exact file paths, code and commands for an engineer with zero context.","MIT","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fwriting-plans\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fwriting-plans\u002FSKILL.md",[99,104],{"categoryNo":100,"categoryName":101,"taxonomyType":102,"taxonomyTypeDesc":103},"01JBSEEDCAT000000000000018","写作与文案","SCENARIO","使用场景",{"categoryNo":105,"categoryName":106,"taxonomyType":107,"taxonomyTypeDesc":108},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[110,111,112,74,113,114,115,116,79,117,118,119,120,32,121,122,123,124,125,126],"writing","writing plans","plans","superpowers","implementation plan","when","you","code","tasks","plan","product","commands","paths","suggest","coding","context","ZeRO",{"skillNo":128,"name":129,"nameZh":6,"description":130,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":131,"sourceHtmlUrl":132,"categories":133,"keywords":137,"publishedAt":90},"01M71PAXFM488X9ARXK0T04TF5","write-spec","Write a feature spec or PRD from a problem statement or feature idea. Use when turning a vague idea or user request into a structured document, scoping a feature with goals and non-goals, defining success metrics and acceptance criteria, or breaking a big ask into a phased spec.","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fwrite-spec\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fwrite-spec\u002FSKILL.md",[134],{"categoryNo":135,"categoryName":136,"taxonomyType":107,"taxonomyTypeDesc":108},"01JBSEEDCAT000000000000031","产品经理",[32,138,139,140,141,77,142,115,143,144,145,120,146,147,148,149,150,151,152,153],"write spec","spec","user request","problem","acceptance","ask","vague","work","request","scoping","idea","metrics","feature","problem statement","use","document",{"skillNo":155,"name":156,"nameZh":6,"description":157,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":158,"sourceHtmlUrl":159,"categories":160,"keywords":164,"publishedAt":90},"01M71PASSZY800C0RPEARBS918","write-query","Write optimized SQL for your dialect with best practices. Use when translating a natural-language data need into SQL, building a multi-CTE query with joins and aggregations, optimizing a query against a large partitioned table, or getting dialect-specific syntax for Snowflake, BigQuery, Postgres, etc.","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fwrite-query\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fwrite-query\u002FSKILL.md",[161],{"categoryNo":162,"categoryName":163,"taxonomyType":107,"taxonomyTypeDesc":108},"01JBSEEDCAT000000000000033","数据分析师",[79,32,165,166,24,167,77,152,115,168,169,170,171,145,172,173,174,175,176,177],"write query","postgres","snowflake","best practices","natural-language","with","multi","github","sql","https","syntax","plugins","data",{"skillNo":179,"name":180,"nameZh":6,"description":181,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":182,"categories":183,"keywords":190,"publishedAt":90},"01M71PAPTX0T3PF6ETFVR96SJJ","workflow-automation","Org role guidance for workflow automation: build and maintain CI\u002FCD definitions in GitHub Actions or equivalent: triggers, jobs, matrices, caching. Covers path filters, dependency caching, parallel jobs, timeouts and fail-fast ordering.","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fworkflow-automation\u002FSKILL.md",[184,187],{"categoryNo":185,"categoryName":186,"taxonomyType":102,"taxonomyTypeDesc":103},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":188,"categoryName":189,"taxonomyType":102,"taxonomyTypeDesc":103},"01JBSEEDCAT000000000000023","Skill与智能体开发",[191,192,193,194,24,195,196,197,198,78,199,200,201,79,82,172,202,203,204,174],"Workflow Automation","automation","workflow","parallel","actions","ci","triggers","github actions","maintain","filters","caching","build","dependency","devops",{"skillNo":206,"name":207,"nameZh":6,"description":208,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":209,"categories":210,"keywords":212,"publishedAt":90},"01M71PAM19Z1XTV9NPCFSE2MY8","workflow-architect","Org role guidance for a workflow architect: map full workflow trees for systems, user journeys and agents, covering every branch and failure. Covers discovering workflows from code, handoff contracts, timeouts, recovery paths and observable state.","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fworkflow-architect\u002FSKILL.md",[211],{"categoryNo":188,"categoryName":189,"taxonomyType":102,"taxonomyTypeDesc":103},[193,213,214,215,216,217,218,24,219,220,117,221,222,223,82,172,224,225,174,226],"workflow architect","architect","trees","user journeys","branch","planning","map","workflows","architecture","state","leadership","recovery","operations","systems"]