[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71GSFTSB2PNXTRTY2MH323D":3,"skill-same:01M71GSFTSB2PNXTRTY2MH323D":85},{"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":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":65,"commitSha":66,"skillDirectory":67,"forksCount":14,"repositoryHtmlUrl":68,"repositoryHomepageUrl":6,"ownerHtmlUrl":69,"ownerBlogUrl":6,"ownerDescription":70,"updatedAt":71,"install":72,"resources":84},"01M71GSFTSB2PNXTRTY2MH323D","maintain",null,"Brain health checks: back-link enforcement, citation audit, filing validation,\nstale info detection, orphan pages, and benchmarks. Use when asked to check\nbrain health, run maintenance, or audit quality.","weareturnone\u002Fgbrain","weareturnone","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F106660686?v=4","01M71GRFW4YZ9DFYK6J17YXQNB","Roelof Stoelwinder ","01M71GRFWVQF5ASVB08TP5VKWG",0,"MIT","https:\u002F\u002Fgithub.com\u002Fweareturnone\u002Fgbrain\u002Fblob\u002Fmaster\u002Fskills\u002Fmaintain\u002FSKILL.md",[],[5,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"brain","page","backlinks","enforcement","links","backfill","citation audit","graph","add","list","run","audit","info","when","orphan","filing","search","get","back","2026-11-10 10:12:30",false,"---\nname: maintain\nversion: 1.0.0\ndescription: |\n  Brain health checks: back-link enforcement, citation audit, filing validation,\n  stale info detection, orphan pages, and benchmarks. Use when asked to check\n  brain health, run maintenance, or audit quality.\ntriggers:\n  - \"brain health\"\n  - \"check backlinks\"\n  - \"maintenance\"\n  - \"orphan pages\"\n  - \"stale pages\"\n  - \"extract links\"\n  - \"build link graph\"\n  - \"populate timeline\"\n  - \"populate links\"\n  - \"backfill graph\"\n  - \"extract timeline entries\"\ntools:\n  - get_health\n  - get_page\n  - put_page\n  - list_pages\n  - get_backlinks\n  - add_link\n  - search\nmutating: true\n---\n\n# Maintain Skill\n\nPeriodic brain health checks and cleanup.\n\n## Contract\n\nThis skill guarantees:\n- All health dimensions are checked (stale, orphan, dead links, cross-refs, backlinks, citations, filing, tags)\n- Each issue found has a specific fix action\n- Back-link iron law is enforced\n- Citation format is validated against the standard\n- Results are reported with counts per dimension\n\n## Phases\n\n1. **Run health check.** Check gbrain health to get the dashboard.\n2. **Check each dimension:**\n\n### Stale pages\nPages where compiled_truth is older than the latest timeline entry. The assessment hasn't been updated to reflect recent evidence.\n- Check the health output for stale page count\n- For each stale page: read the page from gbrain, review timeline, determine if compiled_truth needs rewriting\n\n### Orphan pages\nPages with zero inbound links. Nobody references them.\n- Review orphans: are they genuinely isolated or just missing links?\n- Add links in gbrain from related pages or flag for deletion\n\n### Dead links\nLinks pointing to pages that don't exist.\n- Remove dead links in gbrain\n\n### Missing cross-references\nPages that mention entity names but don't have formal links.\n- Read compiled_truth from gbrain, extract entity mentions, create links in gbrain\n\n### Link graph extraction\nIf link_count is 0 or low relative to page_count, run batch extraction:\n```bash\ngbrain extract links --dir ~\u002Fbrain\n```\nThis scans all markdown files for entity references, See Also sections, and\nfrontmatter fields, then creates typed links in the database.\n\n### Timeline extraction\nIf timeline_entry_count is 0, extract structured timeline from markdown:\n```bash\ngbrain extract timeline --dir ~\u002Fbrain\n```\nParses `- **YYYY-MM-DD** | Source — Summary` and `### YYYY-MM-DD — Title` formats.\nNote: extracted entries improve structured queries (`gbrain timeline`), not vector search.\n\n### Autopilot check\nVerify autopilot is running:\n```bash\ngbrain autopilot --status\n```\nIf not running, install it:\n```bash\ngbrain autopilot --install --repo ~\u002Fbrain\n```\nAutopilot runs sync, extract, and embed in a continuous loop with adaptive scheduling.\nIn v0.11.1+, autopilot dispatches each cycle as a single `autopilot-cycle`\nMinion job and supervises the worker child — one install step gives you\nsync + extract + embed + backlinks + durable job processing.\n\n### Fix a half-migrated install\nA v0.11.0 install where the migration skill never fired leaves Minions\npartially set up: schema is applied, but `~\u002F.gbrain\u002Fpreferences.json`\ndoesn't exist, autopilot runs inline, host manifests still reference\n`agentTurn`. Repair:\n\n```bash\n# Check migration status\ngbrain apply-migrations --list\n\n# Apply pending migrations (idempotent; safe on healthy installs)\ngbrain apply-migrations --yes\n\n# If host-specific handlers are flagged in ~\u002F.gbrain\u002Fmigrations\u002Fpending-host-work.jsonl:\n# walk them per skills\u002Fmigrations\u002Fv0.11.0.md + docs\u002Fguides\u002Fplugin-handlers.md,\n# ship handler registrations in the host repo, then re-run apply-migrations.\n```\n\nFull troubleshooting guide: `docs\u002Fguides\u002Fminions-fix.md`.\n\n### Back-link enforcement\nCheck that the back-linking iron law is being followed:\n- For each recently updated page, check if entities mentioned in it have\n  corresponding back-links FROM those entity pages\n- A mention without a back-link is a broken brain\n- Fix: add the missing back-link to the entity's Timeline or See Also section\n- Format: `- **YYYY-MM-DD** | Referenced in [page title](path) -- brief context`\n\n### Filing rule violations\nCheck for common misfiling patterns (see `skills\u002F_brain-filing-rules.md`):\n- Content with clear primary subjects filed in `sources\u002F` instead of the\n  appropriate directory (people\u002F, companies\u002F, concepts\u002F, etc.)\n- Use gbrain search to find pages in `sources\u002F` that reference specific\n  people, companies, or concepts -- these may be misfiled\n- Flag misfiled pages for review or re-filing\n\n### Citation audit\nSpot-check pages for missing `[Source: ...]` citations:\n- Read 5-10 recently updated pages\n- Check that compiled truth (above the line) has inline citations\n- Check that timeline entries have source attribution\n- Flag pages where facts appear without provenance\n\n### Tag consistency\nInconsistent tagging (e.g., \"vc\" vs \"venture-capital\", \"ai\" vs \"artificial-intelligence\").\n- Standardize to the most common variant using gbrain tag operations\n\n### Graph population (v0.10.3+)\n\nThe `links` and `timeline_entries` tables are the structured graph layer.\nPopulate them periodically or after major imports:\n\n- `gbrain extract links --source db` — backfill structured links by walking pages\n  from the engine. Reads `[Name](people\u002Fslug)` \u002F `[Name](companies\u002Fslug)` references\n  and infers relationship types (`attended`, `works_at`, `invested_in`, `founded`,\n  `advises`, `mentions`, `source`). Idempotent. Use `--source fs --dir \u003Cbrain>`\n  if you have a markdown checkout to walk instead.\n- `gbrain extract timeline --source db` — backfill structured timeline entries.\n  Parses `- **YYYY-MM-DD** | summary` lines from page content. Idempotent (DB\n  UNIQUE constraint).\n- `gbrain extract all --source db` — both in one run.\n- `gbrain graph-query \u003Cslug> --depth 2` — verify connectivity (use any well-known\n  entity slug as a probe).\n- `gbrain stats` — verify `link_count > 0` and `timeline_entry_count > 0` after extraction.\n- `gbrain health` — review `link_coverage` and `timeline_coverage` percentages\n  on entity pages (person\u002Fcompany). Below 50% means more extraction is needed.\n\nAvailable link types (use with `gbrain graph-query --type`):\n`attended`, `works_at`, `invested_in`, `founded`, `advises`, `mentions`, `source`.\n\nGoing forward, every `gbrain put` call auto-creates and reconciles links via the\nauto-link post-hook (default on; disable: `gbrain config set auto_link false`).\nSo link-extract is mostly a one-time backfill. timeline-extract should be re-run\nafter bulk imports or content edits that add new dated entries.\n\n### Embedding freshness\nChunks without embeddings, or chunks embedded with an old model.\n- For large embedding refreshes (>1000 chunks), use nohup:\n  `nohup gbrain embed refresh > \u002Ftmp\u002Fgbrain-embed.log 2>&1 &`\n- Then check progress: `tail -1 \u002Ftmp\u002Fgbrain-embed.log`\n\n### Security (RLS verification)\nRun `gbrain doctor --json` and check the RLS status.\nAll tables should show RLS enabled. If not, run `gbrain init` again.\n\n### Schema health\nCheck that the schema version is up to date. `gbrain doctor --json` reports\nthe current version vs expected. If behind, `gbrain init` runs migrations\nautomatically.\n\n### File storage health\nCheck the integrity of stored files and redirect pointers:\n- Run `gbrain files verify` to check all DB records have valid data\n- Run `gbrain files status` to see migration state (local, mirrored, redirected)\n- Check for orphan `.redirect.yaml` pointers that reference missing storage files\n- Check for large binary files (>= 100 MB) still in git that should be in cloud storage\n- If storage backend is configured: verify redirect pointers resolve (download test)\n\n### Open threads\nTimeline items older than 30 days with unresolved action items.\n- Flag for review\n\n## Benchmark Testing\n\nPeriodically verify search quality hasn't regressed. Run a battery of test\nqueries across difficulty tiers:\n\n- **Tier 1 (entity lookup):** known names -- should always resolve\n- **Tier 2 (topic recall):** concepts, topics -- keyword search should handle\n- **Tier 3 (semantic):** queries with no exact keyword match -- needs embeddings\n- **Tier 4 (cross-domain):** relational\u002Fconnection queries -- only semantic handles\n\nCompare results from `gbrain search` (keyword) vs `gbrain query` (hybrid).\nQuality matters more than speed (2.5s right > 200ms wrong).\n\nWhen to run benchmarks:\n- After major brain imports or re-imports\n- After gbrain version upgrades\n- After embedding regeneration\n- Monthly to track quality drift\n\n## Heartbeat Integration\n\nFor production agents running on a schedule, integrate gbrain health checks into\nyour operational heartbeat.\n\n### On every heartbeat (hourly or per-session)\n\nRun `gbrain doctor --json` and check for degradation. Report any failing checks\nto the user. Key signals: connection health, schema version, RLS status, embedding\nstaleness.\n\n### Weekly maintenance\n\nRun `gbrain embed --stale` to refresh embeddings for pages that have changed since\ntheir last embedding. For large brains (>5000 pages), run this with nohup:\n```bash\nnohup gbrain embed --stale > \u002Ftmp\u002Fgbrain-embed.log 2>&1 &\n```\n\n### Daily verification\n\nVerify sync is running: check `gbrain stats` and confirm `last_sync` is within\nthe last 24 hours. If sync has stopped, the brain is drifting from the repo.\n\n### Stale compiled truth detection\n\nFlag pages where compiled truth is >30 days old but the timeline has recent entries.\nThis means new evidence exists that hasn't been synthesized. These pages need a\ncompiled truth rewrite (see the maintain workflow above).\n\n## Report Storage\n\nAfter maintenance runs, save a report:\n- Health check results (before\u002Fafter scores for each dimension)\n- Back-link violations found and fixed\n- Filing rule violations found\n- Citation gaps flagged\n- Benchmark results (if run)\n- Outstanding issues requiring user attention\n\nThis creates an audit trail for brain health over time.\n\n## Quality Rules\n\n- Never delete pages without confirmation\n- Log all changes via timeline entries\n- Check gbrain health before and after to show improvement\n\n## Anti-Patterns\n\n- Fixing pages without reading them first -- you must understand context before editing\n- Silently skipping dimensions -- every dimension must be checked and reported, even if clean\n- Deleting orphan pages without checking if they should be linked instead\n- Running embedding refresh during peak usage hours\n- Batch-fixing back-links without verifying the relationship is real\n- Marking a dimension \"clean\" without actually querying it\n- Rewriting compiled truth without reading the full timeline first\n- Removing tags without checking if other pages use the same tag consistently\n\n## Output Format\n\nThe maintenance report follows this structure:\n\n```\n## Brain Health Report — YYYY-MM-DD\n\n| Dimension           | Issues Found | Fixed | Remaining |\n|----------------------|-------------|-------|-----------|\n| Stale pages          | N           | N     | N         |\n| Orphan pages         | N           | N     | N         |\n| Dead links           | N           | N     | N         |\n| Missing cross-refs   | N           | N     | N         |\n| Back-link violations | N           | N     | N         |\n| Citation gaps        | N           | N     | N         |\n| Filing violations    | N           | N     | N         |\n| Tag inconsistencies  | N           | N     | N         |\n| Embedding staleness  | N           | N     | N         |\n| Security (RLS)       | N           | N     | N         |\n| Schema health        | N           | N     | N         |\n| File storage         | N           | N     | N         |\n| Open threads         | N           | N     | N         |\n\n### Details\n[Per-dimension breakdown with specific pages and actions taken]\n\n### Benchmark Results (if run)\n[Tier 1-4 query results with pass\u002Ffail]\n\n### Outstanding Issues\n[Items requiring user attention or confirmation]\n```\n\n## Tools Used\n\n- Check gbrain health (get_health)\n- List pages in gbrain with filters (list_pages)\n- Read a page from gbrain (get_page)\n- Check backlinks in gbrain (get_backlinks)\n- Link entities in gbrain (add_link)\n- Remove links in gbrain (remove_link)\n- Tag a page in gbrain (add_tag)\n- Remove a tag in gbrain (remove_tag)\n- View timeline in gbrain (get_timeline)\n","# Maintain Skill\n\nPeriodic brain health checks and cleanup.\n\n## Contract\n\nThis skill guarantees:\n- All health dimensions are checked (stale, orphan, dead links, cross-refs, backlinks, citations, filing, tags)\n- Each issue found has a specific fix action\n- Back-link iron law is enforced\n- Citation format is validated against the standard\n- Results are reported with counts per dimension\n\n## Phases\n\n1. **Run health check.** Check gbrain health to get the dashboard.\n2. **Check each dimension:**\n\n### Stale pages\nPages where compiled_truth is older than the latest timeline entry. The assessment hasn't been updated to reflect recent evidence.\n- Check the health output for stale page count\n- For each stale page: read the page from gbrain, review timeline, determine if compiled_truth needs rewriting\n\n### Orphan pages\nPages with zero inbound links. Nobody references them.\n- Review orphans: are they genuinely isolated or just missing links?\n- Add links in gbrain from related pages or flag for deletion\n\n### Dead links\nLinks pointing to pages that don't exist.\n- Remove dead links in gbrain\n\n### Missing cross-references\nPages that mention entity names but don't have formal links.\n- Read compiled_truth from gbrain, extract entity mentions, create links in gbrain\n\n### Link graph extraction\nIf link_count is 0 or low relative to page_count, run batch extraction:\n```bash\ngbrain extract links --dir ~\u002Fbrain\n```\nThis scans all markdown files for entity references, See Also sections, and\nfrontmatter fields, then creates typed links in the database.\n\n### Timeline extraction\nIf timeline_entry_count is 0, extract structured timeline from markdown:\n```bash\ngbrain extract timeline --dir ~\u002Fbrain\n```\nParses `- **YYYY-MM-DD** | Source — Summary` and `### YYYY-MM-DD — Title` formats.\nNote: extracted entries improve structured queries (`gbrain timeline`), not vector search.\n\n### Autopilot check\nVerify autopilot is running:\n```bash\ngbrain autopilot --status\n```\nIf not running, install it:\n```bash\ngbrain autopilot --install --repo ~\u002Fbrain\n```\nAutopilot runs sync, extract, and embed in a continuous loop with adaptive scheduling.\nIn v0.11.1+, autopilot dispatches each cycle as a single `autopilot-cycle`\nMinion job and supervises the worker child — one install step gives you\nsync + extract + embed + backlinks + durable job processing.\n\n### Fix a half-migrated install\nA v0.11.0 install where the migration skill never fired leaves Minions\npartially set up: schema is applied, but `~\u002F.gbrain\u002Fpreferences.json`\ndoesn't exist, autopilot runs inline, host manifests still reference\n`agentTurn`. Repair:\n\n```bash\n# Check migration status\ngbrain apply-migrations --list\n\n# Apply pending migrations (idempotent; safe on healthy installs)\ngbrain apply-migrations --yes\n\n# If host-specific handlers are flagged in ~\u002F.gbrain\u002Fmigrations\u002Fpending-host-work.jsonl:\n# walk them per skills\u002Fmigrations\u002Fv0.11.0.md + docs\u002Fguides\u002Fplugin-handlers.md,\n# ship handler registrations in the host repo, then re-run apply-migrations.\n```\n\nFull troubleshooting guide: `docs\u002Fguides\u002Fminions-fix.md`.\n\n### Back-link enforcement\nCheck that the back-linking iron law is being followed:\n- For each recently updated page, check if entities mentioned in it have\n  corresponding back-links FROM those entity pages\n- A mention without a back-link is a broken brain\n- Fix: add the missing back-link to the entity's Timeline or See Also section\n- Format: `- **YYYY-MM-DD** | Referenced in [page title](path) -- brief context`\n\n### Filing rule violations\nCheck for common misfiling patterns (see `skills\u002F_brain-filing-rules.md`):\n- Content with clear primary subjects filed in `sources\u002F` instead of the\n  appropriate directory (people\u002F, companies\u002F, concepts\u002F, etc.)\n- Use gbrain search to find pages in `sources\u002F` that reference specific\n  people, companies, or concepts -- these may be misfiled\n- Flag misfiled pages for review or re-filing\n\n### Citation audit\nSpot-check pages for missing `[Source: ...]` citations:\n- Read 5-10 recently updated pages\n- Check that compiled truth (above the line) has inline citations\n- Check that timeline entries have source attribution\n- Flag pages where facts appear without provenance\n\n### Tag consistency\nInconsistent tagging (e.g., \"vc\" vs \"venture-capital\", \"ai\" vs \"artificial-intelligence\").\n- Standardize to the most common variant using gbrain tag operations\n\n### Graph population (v0.10.3+)\n\nThe `links` and `timeline_entries` tables are the structured graph layer.\nPopulate them periodically or after major imports:\n\n- `gbrain extract links --source db` — backfill structured links by walking pages\n  from the engine. Reads `[Name](people\u002Fslug)` \u002F `[Name](companies\u002Fslug)` references\n  and infers relationship types (`attended`, `works_at`, `invested_in`, `founded`,\n  `advises`, `mentions`, `source`). Idempotent. Use `--source fs --dir \u003Cbrain>`\n  if you have a markdown checkout to walk instead.\n- `gbrain extract timeline --source db` — backfill structured timeline entries.\n  Parses `- **YYYY-MM-DD** | summary` lines from page content. Idempotent (DB\n  UNIQUE constraint).\n- `gbrain extract all --source db` — both in one run.\n- `gbrain graph-query \u003Cslug> --depth 2` — verify connectivity (use any well-known\n  entity slug as a probe).\n- `gbrain stats` — verify `link_count > 0` and `timeline_entry_count > 0` after extraction.\n- `gbrain health` — review `link_coverage` and `timeline_coverage` percentages\n  on entity pages (person\u002Fcompany). Below 50% means more extraction is needed.\n\nAvailable link types (use with `gbrain graph-query --type`):\n`attended`, `works_at`, `invested_in`, `founded`, `advises`, `mentions`, `source`.\n\nGoing forward, every `gbrain put` call auto-creates and reconciles links via the\nauto-link post-hook (default on; disable: `gbrain config set auto_link false`).\nSo link-extract is mostly a one-time backfill. timeline-extract should be re-run\nafter bulk imports or content edits that add new dated entries.\n\n### Embedding freshness\nChunks without embeddings, or chunks embedded with an old model.\n- For large embedding refreshes (>1000 chunks), use nohup:\n  `nohup gbrain embed refresh > \u002Ftmp\u002Fgbrain-embed.log 2>&1 &`\n- Then check progress: `tail -1 \u002Ftmp\u002Fgbrain-embed.log`\n\n### Security (RLS verification)\nRun `gbrain doctor --json` and check the RLS status.\nAll tables should show RLS enabled. If not, run `gbrain init` again.\n\n### Schema health\nCheck that the schema version is up to date. `gbrain doctor --json` reports\nthe current version vs expected. If behind, `gbrain init` runs migrations\nautomatically.\n\n### File storage health\nCheck the integrity of stored files and redirect pointers:\n- Run `gbrain files verify` to check all DB records have valid data\n- Run `gbrain files status` to see migration state (local, mirrored, redirected)\n- Check for orphan `.redirect.yaml` pointers that reference missing storage files\n- Check for large binary files (>= 100 MB) still in git that should be in cloud storage\n- If storage backend is configured: verify redirect pointers resolve (download test)\n\n### Open threads\nTimeline items older than 30 days with unresolved action items.\n- Flag for review\n\n## Benchmark Testing\n\nPeriodically verify search quality hasn't regressed. Run a battery of test\nqueries across difficulty tiers:\n\n- **Tier 1 (entity lookup):** known names -- should always resolve\n- **Tier 2 (topic recall):** concepts, topics -- keyword search should handle\n- **Tier 3 (semantic):** queries with no exact keyword match -- needs embeddings\n- **Tier 4 (cross-domain):** relational\u002Fconnection queries -- only semantic handles\n\nCompare results from `gbrain search` (keyword) vs `gbrain query` (hybrid).\nQuality matters more than speed (2.5s right > 200ms wrong).\n\nWhen to run benchmarks:\n- After major brain imports or re-imports\n- After gbrain version upgrades\n- After embedding regeneration\n- Monthly to track quality drift\n\n## Heartbeat Integration\n\nFor production agents running on a schedule, integrate gbrain health checks into\nyour operational heartbeat.\n\n### On every heartbeat (hourly or per-session)\n\nRun `gbrain doctor --json` and check for degradation. Report any failing checks\nto the user. Key signals: connection health, schema version, RLS status, embedding\nstaleness.\n\n### Weekly maintenance\n\nRun `gbrain embed --stale` to refresh embeddings for pages that have changed since\ntheir last embedding. For large brains (>5000 pages), run this with nohup:\n```bash\nnohup gbrain embed --stale > \u002Ftmp\u002Fgbrain-embed.log 2>&1 &\n```\n\n### Daily verification\n\nVerify sync is running: check `gbrain stats` and confirm `last_sync` is within\nthe last 24 hours. If sync has stopped, the brain is drifting from the repo.\n\n### Stale compiled truth detection\n\nFlag pages where compiled truth is >30 days old but the timeline has recent entries.\nThis means new evidence exists that hasn't been synthesized. These pages need a\ncompiled truth rewrite (see the maintain workflow above).\n\n## Report Storage\n\nAfter maintenance runs, save a report:\n- Health check results (before\u002Fafter scores for each dimension)\n- Back-link violations found and fixed\n- Filing rule violations found\n- Citation gaps flagged\n- Benchmark results (if run)\n- Outstanding issues requiring user attention\n\nThis creates an audit trail for brain health over time.\n\n## Quality Rules\n\n- Never delete pages without confirmation\n- Log all changes via timeline entries\n- Check gbrain health before and after to show improvement\n\n## Anti-Patterns\n\n- Fixing pages without reading them first -- you must understand context before editing\n- Silently skipping dimensions -- every dimension must be checked and reported, even if clean\n- Deleting orphan pages without checking if they should be linked instead\n- Running embedding refresh during peak usage hours\n- Batch-fixing back-links without verifying the relationship is real\n- Marking a dimension \"clean\" without actually querying it\n- Rewriting compiled truth without reading the full timeline first\n- Removing tags without checking if other pages use the same tag consistently\n\n## Output Format\n\nThe maintenance report follows this structure:\n\n```\n## Brain Health Report — YYYY-MM-DD\n\n| Dimension           | Issues Found | Fixed | Remaining |\n|----------------------|-------------|-------|-----------|\n| Stale pages          | N           | N     | N         |\n| Orphan pages         | N           | N     | N         |\n| Dead links           | N           | N     | N         |\n| Missing cross-refs   | N           | N     | N         |\n| Back-link violations | N           | N     | N         |\n| Citation gaps        | N           | N     | N         |\n| Filing violations    | N           | N     | N         |\n| Tag inconsistencies  | N           | N     | N         |\n| Embedding staleness  | N           | N     | N         |\n| Security (RLS)       | N           | N     | N         |\n| Schema health        | N           | N     | N         |\n| File storage         | N           | N     | N         |\n| Open threads         | N           | N     | N         |\n\n### Details\n[Per-dimension breakdown with specific pages and actions taken]\n\n### Benchmark Results (if run)\n[Tier 1-4 query results with pass\u002Ffail]\n\n### Outstanding Issues\n[Items requiring user attention or confirmation]\n```\n\n## Tools Used\n\n- Check gbrain health (get_health)\n- List pages in gbrain with filters (list_pages)\n- Read a page from gbrain (get_page)\n- Check backlinks in gbrain (get_backlinks)\n- Link entities in gbrain (add_link)\n- Remove links in gbrain (remove_link)\n- Tag a page in gbrain (add_tag)\n- Remove a tag in gbrain (remove_tag)\n- View timeline in gbrain (get_timeline)\n",{"name":5,"tools":43,"version":50,"mutating":51,"triggers":52,"description":64},[44,45,46,47,48,49,35],"get_health","get_page","put_page","list_pages","get_backlinks","add_link","1.0.0",true,[53,54,55,56,57,58,59,60,61,62,63],"brain health","check backlinks","maintenance","orphan pages","stale pages","extract links","build link graph","populate timeline","populate links","backfill graph","extract timeline entries","Brain health checks: back-link enforcement, citation audit, filing validation,\nstale info detection, orphan pages, and benchmarks. Use when asked to check\nbrain health, run maintenance, or audit quality.\n","master","1fd9e273fe234ffb8d2a7705955f087f861a5c3d","skills\u002Fmaintain","https:\u002F\u002Fgithub.com\u002Fweareturnone\u002Fgbrain","https:\u002F\u002Fgithub.com\u002Fweareturnone","I have a passion for operations, systems and doing good for the world.","2026-07-08 23:38:19",{"source":8,"skillName":5,"commands":73,"prompt":83,"zipAvailable":51},[74,77,80],{"tool":75,"command":76},"npx","npx skills add weareturnone\u002Fgbrain --skill maintain",{"tool":78,"command":79},"bunx","bunx skills add weareturnone\u002Fgbrain --skill maintain",{"tool":81,"command":82},"pnpm","pnpm dlx skills add weareturnone\u002Fgbrain --skill maintain","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fweareturnone\u002Fgbrain\u002Fblob\u002Fmaster\u002Fskills\u002Fmaintain\u002FSKILL.md",[],[86,103,116,131,147,168],{"skillNo":87,"name":88,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":92,"publishedAt":38},"01M71GTZ2PH49PD2R6RR7MHJZP","signal-detector","Always-on ambient signal capture for the OpenClaw reference fixture.","https:\u002F\u002Fgithub.com\u002Fweareturnone\u002Fgbrain\u002Fblob\u002Fmaster\u002Ftest\u002Ffixtures\u002Fopenclaw-reference-minimal\u002Fskills\u002Fsignal-detector\u002FSKILL.md",[],[93,94,95,96,97,98,99,100,101,102],"signal","signal detector","detector","for","openclaw","capture","reference","message","fixture","ambient",{"skillNo":104,"name":105,"nameZh":6,"description":106,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":107,"categories":108,"keywords":109,"publishedAt":38},"01M71GTY1250DC73PGRWDE82KW","query","Look up brain pages in the OpenClaw reference fixture.","https:\u002F\u002Fgithub.com\u002Fweareturnone\u002Fgbrain\u002Fblob\u002Fmaster\u002Ftest\u002Ffixtures\u002Fopenclaw-reference-minimal\u002Fskills\u002Fquery\u002FSKILL.md",[],[105,110,99,111,97,112,113,114,19,35,115,96,101],"do","lookup","look","pages","up","about",{"skillNo":117,"name":118,"nameZh":6,"description":119,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":120,"categories":121,"keywords":122,"publishedAt":38},"01M71GTX0T1T9224P29SD7CSG7","context-now","ALWAYS-ON time-sensitivity discipline for the OpenClaw reference fixture.","https:\u002F\u002Fgithub.com\u002Fweareturnone\u002Fgbrain\u002Fblob\u002Fmaster\u002Ftest\u002Ffixtures\u002Fopenclaw-reference-minimal\u002Fskills\u002Fcontext-now\u002FSKILL.md",[],[123,124,125,126,127,97,96,128,99,101,129,130],"context","context now","now","time","how","discipline","sensitivity","long",{"skillNo":132,"name":133,"nameZh":6,"description":134,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":135,"categories":136,"keywords":137,"publishedAt":38},"01M71GTVZJTSWXBM4ZRF4A7QVA","brain-ops","Core read\u002Fwrite cycle for the OpenClaw reference fixture.","https:\u002F\u002Fgithub.com\u002Fweareturnone\u002Fgbrain\u002Fblob\u002Fmaster\u002Ftest\u002Ffixtures\u002Fopenclaw-reference-minimal\u002Fskills\u002Fbrain-ops\u002FSKILL.md",[],[138,19,139,140,111,97,141,99,142,96,143,144,145,101,146],"brain ops","ops","Citation","people","true","read","cycle","core","write",{"skillNo":148,"name":149,"nameZh":6,"description":150,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":151,"categories":152,"keywords":153,"publishedAt":38},"01M71GTT4F64V9RMNZ0WRTKWNG","webhook-transforms","Generic framework for converting external events (SMS, meetings, social mentions)\ninto brain-ingestible signals. Define a transform function, register a webhook URL,\nand incoming events get processed through the brain pipeline.","https:\u002F\u002Fgithub.com\u002Fweareturnone\u002Fgbrain\u002Fblob\u002Fmaster\u002Fskills\u002Fwebhook-transforms\u002FSKILL.md",[],[154,155,156,157,158,114,159,160,161,162,142,163,35,164,165,20,96,166,167,36],"webhook","transforms","webhook transforms","SET","register","meetings","signals","URL","define","social","event","pipeline","sms","generic",{"skillNo":169,"name":170,"nameZh":6,"description":171,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":172,"categories":173,"keywords":187,"publishedAt":38},"01M71GTRDKSM500PRZEXFNQHF9","testing","Skill validation framework. Validates every skill has SKILL.md with frontmatter,\nevery reference exists, every env var is declared. The testing contract for the\nskill system itself.","https:\u002F\u002Fgithub.com\u002Fweareturnone\u002Fgbrain\u002Fblob\u002Fmaster\u002Fskills\u002Ftesting\u002FSKILL.md",[174,179,182],{"categoryNo":175,"categoryName":176,"taxonomyType":177,"taxonomyTypeDesc":178},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":180,"categoryName":181,"taxonomyType":177,"taxonomyTypeDesc":178},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":183,"categoryName":184,"taxonomyType":185,"taxonomyTypeDesc":186},"01JBSEEDCAT000000000000037","律师与法务","PROFESSION","适用职业",[170,188,189,29,190,191,192,193,194,195,196,197,198,199,113,200,35,201,202,96],"test skills","validation","health check","test","with","health","check","env","skill validation","false","contract","tests","skill health","system","validate skills"]