[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6N0NYB6QYPQ9B5G9FS49ZEP":3,"skill-same:01M6N0NYB6QYPQ9B5G9FS49ZEP":81},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":45,"linkOnly":46,"markdownContent":47,"markdownBody":48,"frontMatter":49,"refName":58,"commitSha":59,"skillDirectory":60,"forksCount":61,"repositoryHtmlUrl":62,"repositoryHomepageUrl":6,"ownerHtmlUrl":63,"ownerBlogUrl":64,"ownerDescription":65,"updatedAt":66,"install":67,"resources":80},"01M6N0NYB6QYPQ9B5G9FS49ZEP","gbrain-advisor",null,"Proactive \"make the most of gbrain\" coaching. Runs `gbrain advisor` on a\ncadence and pings the user with the top high-leverage actions for their brain:\nversion drift, pending migrations, stalled jobs, low embed coverage, setup\nsmells, and uninstalled brain skills. Read-only; always asks before fixing.","garrytan\u002Fgbrain","garrytan","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F19957?v=4","01M6DJCCDDG53MTYYRTXAXFG17","Garry Tan","01M6MZQZCEN3RRMD33E1X9ZZR9",32847,"MIT","https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgbrain\u002Fblob\u002Fmaster\u002Fskills\u002Fgbrain-advisor\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],"gbrain advisor","advisor","gbrain","leverage","pending","advise","weekly","for","my","top","more","read-only","cadence","false","actions","brain","get","coaching","me","drift","do","up","only","coverage","read","SET","2026-11-10 10:12:30",false,"---\nname: gbrain-advisor\nversion: 1.0.0\ndescription: |\n  Proactive \"make the most of gbrain\" coaching. Runs `gbrain advisor` on a\n  cadence and pings the user with the top high-leverage actions for their brain:\n  version drift, pending migrations, stalled jobs, low embed coverage, setup\n  smells, and uninstalled brain skills. Read-only; always asks before fixing.\ntriggers:\n  - \"what should I do to get more out of gbrain\"\n  - \"is my brain set up right\"\n  - \"gbrain advisor\"\n  - \"advise me on my brain\"\n  - \"weekly brain checkup\"\ntools:\n  - advisor\nmutating: false\n---\n\n# gbrain Advisor\n\n> **Convention:** See `skills\u002Fconventions\u002Fbrain-first.md`. This skill is the\n> proactive voice of the brain — it tells the owner how to run it better.\n\n## Contract\n\nThis skill guarantees:\n- **Read-only.** `gbrain advisor` never mutates. It computes a ranked list of\n  actions from existing brain state.\n- **Print, never execute.** You SHOW the user the findings and ASK before running\n  any fix. The user owns every decision.\n- **Bounded nagging.** On a cadence, surface only what changed or what's\n  critical; don't repeat an ignored low-severity item every run.\n\n## When to run\n\n- On demand when the user asks \"how do I get more out of this brain?\"\n- On a **weekly** cadence via the cron recipe below (even idle brains get a\n  \"here's how to run this better\" ping).\n- Monthly, the advisor also surfaces the backup-coverage verdict (`gbrain\n  backup status` — which knowledge repos have no git remote); relay any warn.\n\n## How to run it\n\n```bash\ngbrain advisor --json\n```\n\nExit code is the severity gate (E2): `0` clean, `1` warn, `2` critical. The JSON\npayload is `{ version, generated_at, worst, findings: [...] }`. Each finding has:\n\n- `severity` — `critical` | `warn` | `info`\n- `title` — one-line why-it-matters\n- `fix.command_argv` — the exact command to fix it (a structured argv)\n- `fix.dispatch_id` — present when the fix is safe to run via `--apply`\n\n## What to do with the findings\n\n1. Read the findings, highest severity first.\n2. Summarize the top 1-3 to the user in their own channel\u002Fvoice. Lead with any\n   `critical` item (e.g. pending migrations).\n3. For each, show the `fix.command_argv` and **ask** whether to run it.\n4. If they say yes and the finding has a `fix.dispatch_id`, you may run it\n   locally with an explicit confirm:\n\n   ```bash\n   gbrain advisor --apply \u003Cdispatch_id>\n   ```\n\n   `--apply` is local-only, runs the fix as a structured argv (no shell), and\n   confirms first. Findings without a `dispatch_id` are not auto-runnable — run\n   their `fix.command_argv` yourself after the user agrees.\n5. Never run a fix the user didn't approve.\n\n## Cron recipe (weekly checkup)\n\nInstall a weekly job via the `cron-scheduler` skill. Keep the prompt THIN — the\njob just reads this skill and runs the advisor:\n\n- **Schedule:** weekly, one quiet-hours-respecting slot (e.g. Monday 09:00 local).\n- **Job prompt:** `Read skills\u002Fgbrain-advisor\u002FSKILL.md and run gbrain advisor --json. If anything is critical or new since last run, ping me with the top items and the exact fix commands. Ask before fixing.`\n- **Idempotent:** the advisor is read-only, so a double-fire is harmless.\n\nThe advisor records a local run history, so on each fire you can tell the user\nwhat is **new since last run** rather than re-listing everything.\n\n## Output Format\n\nWhen you surface advisor findings to the user, lead with severity and keep it\nscannable:\n\n```\n? gbrain checkup — 2 things worth your attention\n\nCRITICAL  Schema migrations are pending.\n          Fix: gbrain apply-migrations --yes   (want me to run it?)\n\nWARN      gbrain 0.44 is available (you're on 0.43).\n          Fix: gbrain upgrade\n```\n\n- One block per finding, highest severity first.\n- Always show the exact `fix` command and ASK before running it.\n- If nothing is pressing, say so in one line (\"brain looks healthy\") — don't\n  manufacture work.\n\n## When it fails\n\nFollow the [agent operator protocol](..\u002Fconventions\u002Fagent-operator-protocol.md) for any gbrain error `code`, exit code, `[AGENT]` block or notice block. Specific to this skill:\n\n- A `critical` finding (pending migrations) carries a fix such as `gbrain apply-migrations --yes`: ask the user before running it; findings without a `dispatch_id` are not auto-runnable.\n- `gbrain advisor` cannot reach the brain (`GBRAIN_DB_ACCESS` marker): route to the db-repair skill instead of reporting \"no findings\".\n\n## Anti-Patterns\n\n- **Running a fix without asking.** The advisor is read-only by contract. Never\n  run `--apply` (or any `fix` command) without the user's explicit yes.\n- **Dumping the raw JSON at the user.** Translate findings into their voice; lead\n  with what matters.\n- **Re-nagging ignored low-severity items every run.** Use the \"new since last\n  run\" delta; respect the user's prior non-action.\n- **Treating `info` like `critical`.** Only block\u002Finsist on `critical` findings\n  (pending migrations). `info` is a gentle nudge.\n- **Calling the MCP `advisor` op for workspace install state.** Over MCP the\n  advisor returns brain-state signals only; uninstalled-skill findings are a\n  local-CLI concern.\n","# gbrain Advisor\n\n> **Convention:** See `skills\u002Fconventions\u002Fbrain-first.md`. This skill is the\n> proactive voice of the brain — it tells the owner how to run it better.\n\n## Contract\n\nThis skill guarantees:\n- **Read-only.** `gbrain advisor` never mutates. It computes a ranked list of\n  actions from existing brain state.\n- **Print, never execute.** You SHOW the user the findings and ASK before running\n  any fix. The user owns every decision.\n- **Bounded nagging.** On a cadence, surface only what changed or what's\n  critical; don't repeat an ignored low-severity item every run.\n\n## When to run\n\n- On demand when the user asks \"how do I get more out of this brain?\"\n- On a **weekly** cadence via the cron recipe below (even idle brains get a\n  \"here's how to run this better\" ping).\n- Monthly, the advisor also surfaces the backup-coverage verdict (`gbrain\n  backup status` — which knowledge repos have no git remote); relay any warn.\n\n## How to run it\n\n```bash\ngbrain advisor --json\n```\n\nExit code is the severity gate (E2): `0` clean, `1` warn, `2` critical. The JSON\npayload is `{ version, generated_at, worst, findings: [...] }`. Each finding has:\n\n- `severity` — `critical` | `warn` | `info`\n- `title` — one-line why-it-matters\n- `fix.command_argv` — the exact command to fix it (a structured argv)\n- `fix.dispatch_id` — present when the fix is safe to run via `--apply`\n\n## What to do with the findings\n\n1. Read the findings, highest severity first.\n2. Summarize the top 1-3 to the user in their own channel\u002Fvoice. Lead with any\n   `critical` item (e.g. pending migrations).\n3. For each, show the `fix.command_argv` and **ask** whether to run it.\n4. If they say yes and the finding has a `fix.dispatch_id`, you may run it\n   locally with an explicit confirm:\n\n   ```bash\n   gbrain advisor --apply \u003Cdispatch_id>\n   ```\n\n   `--apply` is local-only, runs the fix as a structured argv (no shell), and\n   confirms first. Findings without a `dispatch_id` are not auto-runnable — run\n   their `fix.command_argv` yourself after the user agrees.\n5. Never run a fix the user didn't approve.\n\n## Cron recipe (weekly checkup)\n\nInstall a weekly job via the `cron-scheduler` skill. Keep the prompt THIN — the\njob just reads this skill and runs the advisor:\n\n- **Schedule:** weekly, one quiet-hours-respecting slot (e.g. Monday 09:00 local).\n- **Job prompt:** `Read skills\u002Fgbrain-advisor\u002FSKILL.md and run gbrain advisor --json. If anything is critical or new since last run, ping me with the top items and the exact fix commands. Ask before fixing.`\n- **Idempotent:** the advisor is read-only, so a double-fire is harmless.\n\nThe advisor records a local run history, so on each fire you can tell the user\nwhat is **new since last run** rather than re-listing everything.\n\n## Output Format\n\nWhen you surface advisor findings to the user, lead with severity and keep it\nscannable:\n\n```\n? gbrain checkup — 2 things worth your attention\n\nCRITICAL  Schema migrations are pending.\n          Fix: gbrain apply-migrations --yes   (want me to run it?)\n\nWARN      gbrain 0.44 is available (you're on 0.43).\n          Fix: gbrain upgrade\n```\n\n- One block per finding, highest severity first.\n- Always show the exact `fix` command and ASK before running it.\n- If nothing is pressing, say so in one line (\"brain looks healthy\") — don't\n  manufacture work.\n\n## When it fails\n\nFollow the [agent operator protocol](..\u002Fconventions\u002Fagent-operator-protocol.md) for any gbrain error `code`, exit code, `[AGENT]` block or notice block. Specific to this skill:\n\n- A `critical` finding (pending migrations) carries a fix such as `gbrain apply-migrations --yes`: ask the user before running it; findings without a `dispatch_id` are not auto-runnable.\n- `gbrain advisor` cannot reach the brain (`GBRAIN_DB_ACCESS` marker): route to the db-repair skill instead of reporting \"no findings\".\n\n## Anti-Patterns\n\n- **Running a fix without asking.** The advisor is read-only by contract. Never\n  run `--apply` (or any `fix` command) without the user's explicit yes.\n- **Dumping the raw JSON at the user.** Translate findings into their voice; lead\n  with what matters.\n- **Re-nagging ignored low-severity items every run.** Use the \"new since last\n  run\" delta; respect the user's prior non-action.\n- **Treating `info` like `critical`.** Only block\u002Finsist on `critical` findings\n  (pending migrations). `info` is a gentle nudge.\n- **Calling the MCP `advisor` op for workspace install state.** Over MCP the\n  advisor returns brain-state signals only; uninstalled-skill findings are a\n  local-CLI concern.\n",{"name":5,"tools":50,"version":51,"mutating":46,"triggers":52,"description":57},[20],"1.0.0",[53,54,19,55,56],"what should I do to get more out of gbrain","is my brain set up right","advise me on my brain","weekly brain checkup","Proactive \"make the most of gbrain\" coaching. Runs `gbrain advisor` on a\ncadence and pings the user with the top high-leverage actions for their brain:\nversion drift, pending migrations, stalled jobs, low embed coverage, setup\nsmells, and uninstalled brain skills. Read-only; always asks before fixing.\n","master","074ec301549ded4930f04d2c3b22d709a6c095cc","skills\u002Fgbrain-advisor",4902,"https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgbrain","https:\u002F\u002Fgithub.com\u002Fgarrytan","https:\u002F\u002Fblog.garrytan.com","Writes software, dreams. ","2026-11-14 04:11:30",{"source":8,"skillName":5,"commands":68,"prompt":78,"zipAvailable":79},[69,72,75],{"tool":70,"command":71},"npx","npx skills add garrytan\u002Fgbrain --skill gbrain-advisor",{"tool":73,"command":74},"bunx","bunx skills add garrytan\u002Fgbrain --skill gbrain-advisor",{"tool":76,"command":77},"pnpm","pnpm dlx skills add garrytan\u002Fgbrain --skill gbrain-advisor","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgbrain\u002Fblob\u002Fmaster\u002Fskills\u002Fgbrain-advisor\u002FSKILL.md",true,[],[82,94,100,120,145,158],{"skillNo":83,"name":84,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":85,"categories":86,"keywords":87,"publishedAt":45},"01M6N109FNGH1PK49T734PZXGB","query-helper","https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgbrain\u002Fblob\u002Fmaster\u002Ftest\u002Ffixtures\u002Fskill-catalog\u002Fskills\u002Fquery-helper\u002FSKILL.md",[],[88,89,90,91,92,93,32],"query helper","helper","query","search","page","find",{"skillNo":95,"name":96,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":99,"publishedAt":45},"01M6N108A23GW6NGQEQ0E7GV0A","broken","https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgbrain\u002Fblob\u002Fmaster\u002Ftest\u002Ffixtures\u002Fskill-catalog\u002Fskills\u002Fbroken\u002FSKILL.md",[],[96],{"skillNo":101,"name":102,"nameZh":6,"description":103,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":106,"publishedAt":45},"01M6N105E88C5K2H03H0CC79G1","brain-ops","Read, enrich, and write brain pages with source attribution.","https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgbrain\u002Fblob\u002Fmaster\u002Ftest\u002Ffixtures\u002Fskill-catalog\u002Fskills\u002Fbrain-ops\u002FSKILL.md",[],[107,34,108,109,110,92,43,111,40,112,90,113,114,115,116,117,118,119,91],"brain ops","ops","true","attribution","write","look","pages","people","with","enrich","web","path","source",{"skillNo":121,"name":122,"nameZh":6,"description":123,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":131,"publishedAt":45},"01M6N102GRMF22TVCNT6RK5MRD","meeting-prep","Build a briefing before you meet someone, from their recent threads, open loops and what they care about.","https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgbrain\u002Fblob\u002Fmaster\u002Ftest\u002Ffixtures\u002Fskill-catalog-query\u002Fskills\u002Fmeeting-prep\u002FSKILL.md",[126],{"categoryNo":127,"categoryName":128,"taxonomyType":129,"taxonomyTypeDesc":130},"01JBSEEDCAT000000000000034","行政与办公人员","PROFESSION","适用职业",[132,133,134,37,135,91,136,137,138,90,32,139,140,141,142,143,26,144],"meeting","prep","meeting prep","prepare","brief","open","build","loops","about","you","briefing","threads","Meet",{"skillNo":146,"name":147,"nameZh":6,"description":148,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":149,"categories":150,"keywords":151,"publishedAt":45},"01M6N1005QK7REHX5KGMNR5PF0","inbox-zero","Triage the inbox into replies, delegations and archives.","https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgbrain\u002Fblob\u002Fmaster\u002Ftest\u002Ffixtures\u002Fskill-catalog-query\u002Fskills\u002Finbox-zero\u002FSKILL.md",[],[152,153,154,91,155,32,156,27,157],"inbox zero","ZeRO","inbox","clear","replies","triage",{"skillNo":159,"name":160,"nameZh":6,"description":161,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":162,"categories":163,"keywords":164,"publishedAt":45},"01M6N0ZXQ8RRRW71PNV61T57GP","deal-memo","Draft an investment memo from the deal pages and the founder history already in the brain.","https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgbrain\u002Fblob\u002Fmaster\u002Ftest\u002Ffixtures\u002Fskill-catalog-query\u002Fskills\u002Fdeal-memo\u002FSKILL.md",[],[165,166,167,113,34,168,169,111,170,109,91,171],"deal memo","deal","memo","draft","investment","history","founder"]