[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71M387HTTACYQFYS7D442XP":3,"skill-same:01M71M387HTTACYQFYS7D442XP":67},{"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":37,"linkOnly":38,"markdownContent":39,"markdownBody":40,"frontMatter":41,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":47,"repositoryHtmlUrl":48,"repositoryHomepageUrl":49,"ownerHtmlUrl":50,"ownerBlogUrl":51,"ownerDescription":6,"updatedAt":52,"install":53,"resources":66},"01M71M387HTTACYQFYS7D442XP","mastermind-routine-detail",null,"Mastermind routine-detail — inspect and manage one routine: trigger, variables, concurrency and catch-up policy, run history, webhook rotation, revisions.","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-routine-detail\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36],"routine","mastermind routine detail","detail","run","concurrency","catch","run history","one","Variables","auto","up","policy","trigger","rotation","manage","inspect","domain","webhook","history","2026-11-10 10:56:23",false,"---\nname: mastermind-routine-detail\ndescription: \"Mastermind routine-detail — inspect and manage one routine: trigger, variables, concurrency and catch-up policy, run history, webhook rotation, revisions.\"\ntype: domain-skill\ndefault_mode: auto\npick: low\n---\n\n# Mastermind Routine Detail\n\nThis skill is invoked directly via `\u002Fmastermind-routine-detail`.\n\n---\n\n## Inputs\n\n- `brain_context`: BRAIN CONTEXT block (injected by command, or loaded below if standalone)\n- `org_name`: org the routine belongs to (required)\n- `routine_id`: routine id\u002Fslug (required)\n- `action`: show | runs | config | variables | rotate-webhook | revisions\n- `days`: lookback window for run history (default 14)\n- `var_key`: variable key (for variables --set)\n- `var_value`: variable value\n- `caller`: command | master\n\n---\n\n## Trigger Types\n\n| Kind | Description |\n|------|-------------|\n| `schedule` | Cron expression — agent fires on schedule |\n| `webhook` | HTTP POST to generated endpoint; signed via signing_mode |\n\n## Signing Modes (webhook only)\n\n| Mode | Description |\n|------|-------------|\n| `none` | No signature verification |\n| `bearer` | Authorization: Bearer \u003Ctoken> header |\n| `hmac_sha256` | X-Hub-Signature-256 header (HMAC-SHA256 of body) |\n| `github_hmac` | GitHub-style HMAC — identical to hmac_sha256 + secret stored in mastermind:secrets |\n\n## Concurrency Policies\n\n| Policy | Behavior |\n|--------|----------|\n| `coalesce_if_active` | Skip trigger if a run is already active; record as coalesced |\n| `always_enqueue` | Always create a new run regardless of active runs |\n| `skip_if_active` | Silently discard trigger if a run is active |\n\n## Catchup Policies (schedule only)\n\n| Policy | Behavior |\n|--------|----------|\n| `skip_missed` | Missed scheduled runs are discarded |\n| `enqueue_missed_with_cap` | Enqueue missed runs up to `catchup_cap` (default 3) |\n\n---\n\n## Step 0 — Brain Load (standalone only)\n\nIf `caller` is not \"command\", load brain context following mastermind-protocol\u002FSKILL.md Brain Load Procedure with namespace: `ops`.\n\n---\n\n## Step 1 — Load Routine Data\n\n```bash\norgFile=\".monomind\u002Forgs\u002F${org_name}.json\"\n[ ! -f \"$orgFile\" ] && { echo \"ERROR: Org '${org_name}' not found.\"; exit 1; }\n\nroutinesFile=\".monomind\u002Forgs\u002F${org_name}-routines.json\"\n[ ! -f \"$routinesFile\" ] && { echo \"ERROR: No routines file for org '$org_name'. Create routines first via \u002Fmastermind:runorg.\"; exit 1; }\n\nroutineDef=$(jq -r --arg id \"$routine_id\" '(.routines \u002F\u002F [])[] | select(.id == $id)' \"$routinesFile\")\n[ -z \"$routineDef\" ] && { echo \"ERROR: Routine '$routine_id' not found in org '$org_name'.\"; exit 1; }\n\nstateFile=\".monomind\u002Forgs\u002F${org_name}-state.json\"\ndays=${days:-14}\ncutoff=$(date -u -v-${days}d +%Y-%m-%dT%H:%M:%SZ 2>\u002Fdev\u002Fnull || date -u -d \"${days} days ago\" +%Y-%m-%dT%H:%M:%SZ 2>\u002Fdev\u002Fnull || echo \"\")\n```\n\n---\n\n## Step 2 — Execute Action\n\n### show (default)\n\n```bash\necho \"ROUTINE DETAIL — $routine_id @ $org_name\"\necho \"────────────────────────────────────────────────────────\"\n\necho \"$routineDef\" | jq -r '\n  \"  ID:              \\(.id)\",\n  \"  Name:            \\(.name \u002F\u002F \"-\")\",\n  \"  Assigned agent:  \\(.agent_id \u002F\u002F \"(any)\")\",\n  \"  Enabled:         \\(.enabled \u002F\u002F false)\",\n  \"\",\n  \"TRIGGER\",\n  \"  Kind:            \\(.trigger.kind \u002F\u002F \"schedule\")\",\n  (if (.trigger.kind \u002F\u002F \"schedule\") == \"schedule\" then\n    \"  Cron:            \\(.trigger.cron \u002F\u002F \"-\")\",\n    \"  Catchup policy:  \\(.catchup_policy \u002F\u002F \"skip_missed\")\",\n    \"  Catchup cap:     \\(.catchup_cap \u002F\u002F 3 | tostring)\"\n  else\n    \"  Endpoint:        \\(.trigger.endpoint \u002F\u002F \"(not generated)\")\",\n    \"  Signing mode:    \\(.trigger.signing_mode \u002F\u002F \"none\")\"\n  end),\n  \"\",\n  \"CONCURRENCY\",\n  \"  Policy:          \\(.concurrency_policy \u002F\u002F \"coalesce_if_active\")\",\n  \"\",\n  \"VARIABLES\",\n  \"  Count:           \\((.variables \u002F\u002F {}) | length | tostring)\"\n'\n\n# Show last run summary from state\nlastRun=$([ -f \"$stateFile\" ] && jq -r --arg id \"$routine_id\" '.routines[$id].last_run \u002F\u002F \"-\"' \"$stateFile\" || echo \"-\")\nrunCount=$([ -f \"$stateFile\" ] && jq -r --arg id \"$routine_id\" '.routines[$id].run_count \u002F\u002F 0' \"$stateFile\" || echo \"0\")\necho \"\"\necho \"  Last run:   $lastRun\"\necho \"  Run count:  $runCount\"\n```\n\n### runs\n\n```bash\necho \"RUN HISTORY — $routine_id (last ${days} days)\"\necho \"────────────────────────────────────────────────────────\"\nprintf \"%-26s %-12s %-8s %-14s %s\\n\" \"TIMESTAMP\" \"STATUS\" \"TOKENS\" \"TRIGGER KIND\" \"COALESCED\"\necho \"────────────────────────────────────────────────────────\"\n\nrunsFile=\".monomind\u002Forgs\u002F${org_name}-routine-runs.jsonl\"\nfound=0\n\nif [ -f \"$runsFile\" ]; then\n  while IFS= read -r line; do\n    rid=$(echo \"$line\" | jq -r '.routine_id \u002F\u002F \"\"')\n    [ \"$rid\" != \"$routine_id\" ] && continue\n    ts=$(echo \"$line\" | jq -r '.ts \u002F\u002F \"\"')\n    [ -n \"$cutoff\" ] && [ \"$ts\" \\\u003C \"$cutoff\" ] && continue\n    st=$(echo \"$line\" | jq -r '.status \u002F\u002F \"-\"')\n    tok=$(echo \"$line\" | jq -r '.tokens \u002F\u002F \"-\"')\n    tkind=$(echo \"$line\" | jq -r '.trigger_kind \u002F\u002F \"schedule\"')\n    coal=$(echo \"$line\" | jq -r 'if .coalesced then \"yes\" else \"-\" end')\n    printf \"%-26s %-12s %-8s %-14s %s\\n\" \"$ts\" \"$st\" \"$tok\" \"$tkind\" \"$coal\"\n    found=$((found + 1))\n  done \u003C \"$runsFile\"\nfi\n\n[ \"$found\" -eq 0 ] && echo \"  No runs in the last $days days.\"\n```\n\n### config\n\n```bash\necho \"FULL CONFIG — $routine_id\"\necho \"────────────────────────────────────────────────────────\"\necho \"$routineDef\" | jq 'del(.variables)'\necho \"\"\necho \"TRIGGER DETAIL\"\necho \"$routineDef\" | jq '.trigger'\n```\n\n### variables\n\n```bash\necho \"VARIABLES — $routine_id\"\necho \"────────────────────────────────────────────────────────\"\n\nvars=$(echo \"$routineDef\" | jq -r '.variables \u002F\u002F {} | to_entries[] | \"  \\(.key) = \\(.value)\"')\n[ -z \"$vars\" ] && echo \"  No variables defined.\" || echo \"$vars\"\n\n# Set a variable if var_key provided\nif [ -n \"$var_key\" ]; then\n  [ -z \"$var_value\" ] && { echo \"ERROR: --var-value required when setting a variable.\"; exit 1; }\n  tmp=\"${routinesFile}.tmp\"\n  jq --arg id \"$routine_id\" --arg k \"$var_key\" --arg v \"$var_value\" \\\n    '.routines = [(.routines \u002F\u002F [])[] | if .id == $id then .variables[$k] = $v else . end]' \\\n    \"$routinesFile\" > \"$tmp\" && mv \"$tmp\" \"$routinesFile\"\n  echo \"\"\n  echo \"Set variable: $var_key = $var_value\"\nfi\n```\n\n### rotate-webhook\n\n```bash\ntriggerKind=$(echo \"$routineDef\" | jq -r '.trigger.kind \u002F\u002F \"schedule\"')\n[ \"$triggerKind\" != \"webhook\" ] && { echo \"ERROR: Routine '$routine_id' is not a webhook-triggered routine.\"; exit 1; }\n\nnewToken=$(openssl rand -hex 24 2>\u002Fdev\u002Fnull || python3 -c \"import secrets; print(secrets.token_hex(24))\")\nnewEndpoint=\"\u002Fapi\u002Fwebhook\u002F${org_name}\u002F${routine_id}\u002F${newToken}\"\nts=$(date -u +%Y-%m-%dT%H:%M:%SZ)\n\ntmp=\"${routinesFile}.tmp\"\njq --arg id \"$routine_id\" --arg ep \"$newEndpoint\" --arg ts \"$ts\" \\\n  '.routines = [(.routines \u002F\u002F [])[] | if .id == $id then\n     .trigger.endpoint = $ep | .trigger.rotated_at = $ts\n   else . end]' \\\n  \"$routinesFile\" > \"$tmp\" && mv \"$tmp\" \"$routinesFile\"\n\necho \"Webhook rotated for '$routine_id'\"\necho \"  New endpoint: $newEndpoint\"\necho \"  Rotated at:   $ts\"\necho \"\"\necho \"Update your webhook source to use the new endpoint.\"\nsigningMode=$(echo \"$routineDef\" | jq -r '.trigger.signing_mode \u002F\u002F \"none\"')\n[ \"$signingMode\" != \"none\" ] && echo \"  Signing mode '$signingMode' is unchanged — re-generate the signing secret if required.\"\n```\n\n### revisions\n\n```bash\nrevisionsFile=\".monomind\u002Forgs\u002F${org_name}-routine-revisions.jsonl\"\necho \"REVISIONS — $routine_id\"\necho \"────────────────────────────────────────────────────────\"\n\nif [ ! -f \"$revisionsFile\" ]; then\n  echo \"  No revision history found.\"\nelse\n  found=0\n  while IFS= read -r line; do\n    rid=$(echo \"$line\" | jq -r '.routine_id \u002F\u002F \"\"')\n    [ \"$rid\" != \"$routine_id\" ] && continue\n    ts=$(echo \"$line\" | jq -r '.ts \u002F\u002F \"\"')\n    who=$(echo \"$line\" | jq -r '.changed_by \u002F\u002F \"system\"')\n    what=$(echo \"$line\" | jq -r '.change_summary \u002F\u002F \"-\"')\n    printf \"  [%s] by %-16s  %s\\n\" \"$ts\" \"$who\" \"$what\"\n    found=$((found + 1))\n  done \u003C \"$revisionsFile\"\n  [ \"$found\" -eq 0 ] && echo \"  No revisions found for '$routine_id'.\"\nfi\n```\n\n---\n\n## Step 3 — Return Output\n\n```yaml\ndomain: ops\nstatus: complete\naction: \u003Caction>\norg: \u003Corg_name>\nroutine_id: \u003Croutine_id>\ntrigger_kind: \u003Cschedule|webhook>\n```\n\n---\n\n## Step 4 — Brain Write (standalone only)\n\nIf `caller` is not \"command\", follow mastermind-protocol\u002FSKILL.md Brain Write Procedure for domain `ops`.\n","# Mastermind Routine Detail\n\nThis skill is invoked directly via `\u002Fmastermind-routine-detail`.\n\n---\n\n## Inputs\n\n- `brain_context`: BRAIN CONTEXT block (injected by command, or loaded below if standalone)\n- `org_name`: org the routine belongs to (required)\n- `routine_id`: routine id\u002Fslug (required)\n- `action`: show | runs | config | variables | rotate-webhook | revisions\n- `days`: lookback window for run history (default 14)\n- `var_key`: variable key (for variables --set)\n- `var_value`: variable value\n- `caller`: command | master\n\n---\n\n## Trigger Types\n\n| Kind | Description |\n|------|-------------|\n| `schedule` | Cron expression — agent fires on schedule |\n| `webhook` | HTTP POST to generated endpoint; signed via signing_mode |\n\n## Signing Modes (webhook only)\n\n| Mode | Description |\n|------|-------------|\n| `none` | No signature verification |\n| `bearer` | Authorization: Bearer \u003Ctoken> header |\n| `hmac_sha256` | X-Hub-Signature-256 header (HMAC-SHA256 of body) |\n| `github_hmac` | GitHub-style HMAC — identical to hmac_sha256 + secret stored in mastermind:secrets |\n\n## Concurrency Policies\n\n| Policy | Behavior |\n|--------|----------|\n| `coalesce_if_active` | Skip trigger if a run is already active; record as coalesced |\n| `always_enqueue` | Always create a new run regardless of active runs |\n| `skip_if_active` | Silently discard trigger if a run is active |\n\n## Catchup Policies (schedule only)\n\n| Policy | Behavior |\n|--------|----------|\n| `skip_missed` | Missed scheduled runs are discarded |\n| `enqueue_missed_with_cap` | Enqueue missed runs up to `catchup_cap` (default 3) |\n\n---\n\n## Step 0 — Brain Load (standalone only)\n\nIf `caller` is not \"command\", load brain context following mastermind-protocol\u002FSKILL.md Brain Load Procedure with namespace: `ops`.\n\n---\n\n## Step 1 — Load Routine Data\n\n```bash\norgFile=\".monomind\u002Forgs\u002F${org_name}.json\"\n[ ! -f \"$orgFile\" ] && { echo \"ERROR: Org '${org_name}' not found.\"; exit 1; }\n\nroutinesFile=\".monomind\u002Forgs\u002F${org_name}-routines.json\"\n[ ! -f \"$routinesFile\" ] && { echo \"ERROR: No routines file for org '$org_name'. Create routines first via \u002Fmastermind:runorg.\"; exit 1; }\n\nroutineDef=$(jq -r --arg id \"$routine_id\" '(.routines \u002F\u002F [])[] | select(.id == $id)' \"$routinesFile\")\n[ -z \"$routineDef\" ] && { echo \"ERROR: Routine '$routine_id' not found in org '$org_name'.\"; exit 1; }\n\nstateFile=\".monomind\u002Forgs\u002F${org_name}-state.json\"\ndays=${days:-14}\ncutoff=$(date -u -v-${days}d +%Y-%m-%dT%H:%M:%SZ 2>\u002Fdev\u002Fnull || date -u -d \"${days} days ago\" +%Y-%m-%dT%H:%M:%SZ 2>\u002Fdev\u002Fnull || echo \"\")\n```\n\n---\n\n## Step 2 — Execute Action\n\n### show (default)\n\n```bash\necho \"ROUTINE DETAIL — $routine_id @ $org_name\"\necho \"────────────────────────────────────────────────────────\"\n\necho \"$routineDef\" | jq -r '\n  \"  ID:              \\(.id)\",\n  \"  Name:            \\(.name \u002F\u002F \"-\")\",\n  \"  Assigned agent:  \\(.agent_id \u002F\u002F \"(any)\")\",\n  \"  Enabled:         \\(.enabled \u002F\u002F false)\",\n  \"\",\n  \"TRIGGER\",\n  \"  Kind:            \\(.trigger.kind \u002F\u002F \"schedule\")\",\n  (if (.trigger.kind \u002F\u002F \"schedule\") == \"schedule\" then\n    \"  Cron:            \\(.trigger.cron \u002F\u002F \"-\")\",\n    \"  Catchup policy:  \\(.catchup_policy \u002F\u002F \"skip_missed\")\",\n    \"  Catchup cap:     \\(.catchup_cap \u002F\u002F 3 | tostring)\"\n  else\n    \"  Endpoint:        \\(.trigger.endpoint \u002F\u002F \"(not generated)\")\",\n    \"  Signing mode:    \\(.trigger.signing_mode \u002F\u002F \"none\")\"\n  end),\n  \"\",\n  \"CONCURRENCY\",\n  \"  Policy:          \\(.concurrency_policy \u002F\u002F \"coalesce_if_active\")\",\n  \"\",\n  \"VARIABLES\",\n  \"  Count:           \\((.variables \u002F\u002F {}) | length | tostring)\"\n'\n\n# Show last run summary from state\nlastRun=$([ -f \"$stateFile\" ] && jq -r --arg id \"$routine_id\" '.routines[$id].last_run \u002F\u002F \"-\"' \"$stateFile\" || echo \"-\")\nrunCount=$([ -f \"$stateFile\" ] && jq -r --arg id \"$routine_id\" '.routines[$id].run_count \u002F\u002F 0' \"$stateFile\" || echo \"0\")\necho \"\"\necho \"  Last run:   $lastRun\"\necho \"  Run count:  $runCount\"\n```\n\n### runs\n\n```bash\necho \"RUN HISTORY — $routine_id (last ${days} days)\"\necho \"────────────────────────────────────────────────────────\"\nprintf \"%-26s %-12s %-8s %-14s %s\\n\" \"TIMESTAMP\" \"STATUS\" \"TOKENS\" \"TRIGGER KIND\" \"COALESCED\"\necho \"────────────────────────────────────────────────────────\"\n\nrunsFile=\".monomind\u002Forgs\u002F${org_name}-routine-runs.jsonl\"\nfound=0\n\nif [ -f \"$runsFile\" ]; then\n  while IFS= read -r line; do\n    rid=$(echo \"$line\" | jq -r '.routine_id \u002F\u002F \"\"')\n    [ \"$rid\" != \"$routine_id\" ] && continue\n    ts=$(echo \"$line\" | jq -r '.ts \u002F\u002F \"\"')\n    [ -n \"$cutoff\" ] && [ \"$ts\" \\\u003C \"$cutoff\" ] && continue\n    st=$(echo \"$line\" | jq -r '.status \u002F\u002F \"-\"')\n    tok=$(echo \"$line\" | jq -r '.tokens \u002F\u002F \"-\"')\n    tkind=$(echo \"$line\" | jq -r '.trigger_kind \u002F\u002F \"schedule\"')\n    coal=$(echo \"$line\" | jq -r 'if .coalesced then \"yes\" else \"-\" end')\n    printf \"%-26s %-12s %-8s %-14s %s\\n\" \"$ts\" \"$st\" \"$tok\" \"$tkind\" \"$coal\"\n    found=$((found + 1))\n  done \u003C \"$runsFile\"\nfi\n\n[ \"$found\" -eq 0 ] && echo \"  No runs in the last $days days.\"\n```\n\n### config\n\n```bash\necho \"FULL CONFIG — $routine_id\"\necho \"────────────────────────────────────────────────────────\"\necho \"$routineDef\" | jq 'del(.variables)'\necho \"\"\necho \"TRIGGER DETAIL\"\necho \"$routineDef\" | jq '.trigger'\n```\n\n### variables\n\n```bash\necho \"VARIABLES — $routine_id\"\necho \"────────────────────────────────────────────────────────\"\n\nvars=$(echo \"$routineDef\" | jq -r '.variables \u002F\u002F {} | to_entries[] | \"  \\(.key) = \\(.value)\"')\n[ -z \"$vars\" ] && echo \"  No variables defined.\" || echo \"$vars\"\n\n# Set a variable if var_key provided\nif [ -n \"$var_key\" ]; then\n  [ -z \"$var_value\" ] && { echo \"ERROR: --var-value required when setting a variable.\"; exit 1; }\n  tmp=\"${routinesFile}.tmp\"\n  jq --arg id \"$routine_id\" --arg k \"$var_key\" --arg v \"$var_value\" \\\n    '.routines = [(.routines \u002F\u002F [])[] | if .id == $id then .variables[$k] = $v else . end]' \\\n    \"$routinesFile\" > \"$tmp\" && mv \"$tmp\" \"$routinesFile\"\n  echo \"\"\n  echo \"Set variable: $var_key = $var_value\"\nfi\n```\n\n### rotate-webhook\n\n```bash\ntriggerKind=$(echo \"$routineDef\" | jq -r '.trigger.kind \u002F\u002F \"schedule\"')\n[ \"$triggerKind\" != \"webhook\" ] && { echo \"ERROR: Routine '$routine_id' is not a webhook-triggered routine.\"; exit 1; }\n\nnewToken=$(openssl rand -hex 24 2>\u002Fdev\u002Fnull || python3 -c \"import secrets; print(secrets.token_hex(24))\")\nnewEndpoint=\"\u002Fapi\u002Fwebhook\u002F${org_name}\u002F${routine_id}\u002F${newToken}\"\nts=$(date -u +%Y-%m-%dT%H:%M:%SZ)\n\ntmp=\"${routinesFile}.tmp\"\njq --arg id \"$routine_id\" --arg ep \"$newEndpoint\" --arg ts \"$ts\" \\\n  '.routines = [(.routines \u002F\u002F [])[] | if .id == $id then\n     .trigger.endpoint = $ep | .trigger.rotated_at = $ts\n   else . end]' \\\n  \"$routinesFile\" > \"$tmp\" && mv \"$tmp\" \"$routinesFile\"\n\necho \"Webhook rotated for '$routine_id'\"\necho \"  New endpoint: $newEndpoint\"\necho \"  Rotated at:   $ts\"\necho \"\"\necho \"Update your webhook source to use the new endpoint.\"\nsigningMode=$(echo \"$routineDef\" | jq -r '.trigger.signing_mode \u002F\u002F \"none\"')\n[ \"$signingMode\" != \"none\" ] && echo \"  Signing mode '$signingMode' is unchanged — re-generate the signing secret if required.\"\n```\n\n### revisions\n\n```bash\nrevisionsFile=\".monomind\u002Forgs\u002F${org_name}-routine-revisions.jsonl\"\necho \"REVISIONS — $routine_id\"\necho \"────────────────────────────────────────────────────────\"\n\nif [ ! -f \"$revisionsFile\" ]; then\n  echo \"  No revision history found.\"\nelse\n  found=0\n  while IFS= read -r line; do\n    rid=$(echo \"$line\" | jq -r '.routine_id \u002F\u002F \"\"')\n    [ \"$rid\" != \"$routine_id\" ] && continue\n    ts=$(echo \"$line\" | jq -r '.ts \u002F\u002F \"\"')\n    who=$(echo \"$line\" | jq -r '.changed_by \u002F\u002F \"system\"')\n    what=$(echo \"$line\" | jq -r '.change_summary \u002F\u002F \"-\"')\n    printf \"  [%s] by %-16s  %s\\n\" \"$ts\" \"$who\" \"$what\"\n    found=$((found + 1))\n  done \u003C \"$revisionsFile\"\n  [ \"$found\" -eq 0 ] && echo \"  No revisions found for '$routine_id'.\"\nfi\n```\n\n---\n\n## Step 3 — Return Output\n\n```yaml\ndomain: ops\nstatus: complete\naction: \u003Caction>\norg: \u003Corg_name>\nroutine_id: \u003Croutine_id>\ntrigger_kind: \u003Cschedule|webhook>\n```\n\n---\n\n## Step 4 — Brain Write (standalone only)\n\nIf `caller` is not \"command\", follow mastermind-protocol\u002FSKILL.md Brain Write Procedure for domain `ops`.\n",{"name":5,"pick":42,"type":43,"description":7,"default_mode":27},"low","domain-skill","main","f7cd4595d0f8959822163e14f9787117765c931a",".claude\u002Fskills\u002Fmastermind-routine-detail",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":54,"prompt":64,"zipAvailable":65},[55,58,61],{"tool":56,"command":57},"npx","npx skills add monoes\u002Fmonomind --skill mastermind-routine-detail",{"tool":59,"command":60},"bunx","bunx skills add monoes\u002Fmonomind --skill mastermind-routine-detail",{"tool":62,"command":63},"pnpm","pnpm dlx skills add monoes\u002Fmonomind --skill mastermind-routine-detail","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fmastermind-routine-detail\u002FSKILL.md",true,[],[68,96,133,160,185,212],{"skillNo":69,"name":70,"nameZh":6,"description":71,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":72,"categories":73,"keywords":74,"publishedAt":95},"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",[],[75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94],"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":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":100,"licenseFileUrl":101,"sourceHtmlUrl":102,"categories":103,"keywords":114,"publishedAt":95},"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",[104,109],{"categoryNo":105,"categoryName":106,"taxonomyType":107,"taxonomyTypeDesc":108},"01JBSEEDCAT000000000000018","写作与文案","SCENARIO","使用场景",{"categoryNo":110,"categoryName":111,"taxonomyType":112,"taxonomyTypeDesc":113},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[115,116,117,79,118,119,120,121,84,122,123,124,125,126,127,128,129,130,131,132],"writing","writing plans","plans","superpowers","implementation plan","when","you","code","tasks","plan","product","write","commands","paths","suggest","coding","context","ZeRO",{"skillNo":134,"name":135,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":137,"sourceHtmlUrl":138,"categories":139,"keywords":143,"publishedAt":95},"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",[140],{"categoryNo":141,"categoryName":142,"taxonomyType":112,"taxonomyTypeDesc":113},"01JBSEEDCAT000000000000031","产品经理",[126,144,145,146,147,82,148,120,149,150,151,125,152,153,154,155,156,157,158,159],"write spec","spec","user request","problem","acceptance","ask","vague","work","request","scoping","idea","metrics","feature","problem statement","use","document",{"skillNo":161,"name":162,"nameZh":6,"description":163,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":164,"sourceHtmlUrl":165,"categories":166,"keywords":170,"publishedAt":95},"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",[167],{"categoryNo":168,"categoryName":169,"taxonomyType":112,"taxonomyTypeDesc":113},"01JBSEEDCAT000000000000033","数据分析师",[84,126,171,172,173,174,82,158,120,175,176,177,178,151,179,180,181,182,183,184],"write query","postgres","for","snowflake","best practices","natural-language","with","multi","github","sql","https","syntax","plugins","data",{"skillNo":186,"name":187,"nameZh":6,"description":188,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":189,"categories":190,"keywords":197,"publishedAt":95},"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",[191,194],{"categoryNo":192,"categoryName":193,"taxonomyType":107,"taxonomyTypeDesc":108},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":195,"categoryName":196,"taxonomyType":107,"taxonomyTypeDesc":108},"01JBSEEDCAT000000000000023","Skill与智能体开发",[198,199,200,201,173,202,203,204,205,83,206,207,208,84,87,179,209,210,211,181],"Workflow Automation","automation","workflow","parallel","actions","ci","triggers","github actions","maintain","filters","caching","build","dependency","devops",{"skillNo":213,"name":214,"nameZh":6,"description":215,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":216,"categories":217,"keywords":219,"publishedAt":95},"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",[218],{"categoryNo":195,"categoryName":196,"taxonomyType":107,"taxonomyTypeDesc":108},[200,220,221,222,223,224,225,173,226,227,122,228,229,230,87,179,231,232,181,233],"workflow architect","architect","trees","user journeys","branch","planning","map","workflows","architecture","state","leadership","recovery","operations","systems"]