[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6N0MSG5PN0ZRKD34R39QMWN":3,"skill-same:01M6N0MSG5PN0ZRKD34R39QMWN":150},{"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":37,"publishedAt":59,"linkOnly":60,"markdownContent":61,"markdownBody":62,"frontMatter":63,"refName":122,"commitSha":123,"skillDirectory":124,"forksCount":125,"repositoryHtmlUrl":126,"repositoryHomepageUrl":6,"ownerHtmlUrl":127,"ownerBlogUrl":128,"ownerDescription":129,"updatedAt":130,"install":131,"resources":143},"01M6N0MSG5PN0ZRKD34R39QMWN","eiirp",null,"Everything In Its Right Place. The universal post-work organizer. After\nany significant work session, EIIRP runs a 7-phase audit: (1) inventory\nevery output, (2) walk taxonomy to decide where each lands, (3) check\nschema-pack consistency against the brain's actual shape, (4) file\nenriched brain pages, (5) audit the skill graph for DRY+MECE, (6) verify\nresolvability, (7) report. Named after the Radiohead song. Nothing\nproduced during significant work lives only in chat — knowledge becomes\npermanent, patterns become reusable. Also carries the always-on\nauto-fire gate: when >=500 words of structured analysis on a\nuser-shared document is about to be delivered, file the brain page\nfirst, then deliver the analysis with the link in that same reply.","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\u002Feiirp\u002FSKILL.md",[18,23,26,29,34],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000002","文档处理","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究",{"categoryNo":27,"categoryName":28,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":30,"categoryName":31,"taxonomyType":32,"taxonomyTypeDesc":33},"01JBSEEDCAT000000000000034","行政与办公人员","PROFESSION","适用职业",{"categoryNo":35,"categoryName":36,"taxonomyType":32,"taxonomyTypeDesc":33},"01JBSEEDCAT000000000000036","内容创作者",[5,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58],"time","deliver","phase","song","directions","re","guides","dry","deep","shared","writing","conversation","files","auto","decide","analyze","projects","knowledge","Media","Meta","search","2026-11-10 10:12:30",false,"---\nname: eiirp\nversion: 1.1.0\nprompt_version: 1\ndescription: |\n  Everything In Its Right Place. The universal post-work organizer. After\n  any significant work session, EIIRP runs a 7-phase audit: (1) inventory\n  every output, (2) walk taxonomy to decide where each lands, (3) check\n  schema-pack consistency against the brain's actual shape, (4) file\n  enriched brain pages, (5) audit the skill graph for DRY+MECE, (6) verify\n  resolvability, (7) report. Named after the Radiohead song. Nothing\n  produced during significant work lives only in chat — knowledge becomes\n  permanent, patterns become reusable. Also carries the always-on\n  auto-fire gate: when >=500 words of structured analysis on a\n  user-shared document is about to be delivered, file the brain page\n  first, then deliver the analysis with the link in that same reply.\ntriggers:\n  - \"everything in its right place\"\n  - \"eiirp\"\n  - \"store this research\"\n  - \"put this in the brain\"\n  - \"file this properly\"\n  - \"where does this research go\"\n  - \"make this permanent\"\n  - \"archive this research\"\n  - \"archive this research thread\"\n  - \"brain this\"\n  - \"file all of this\"\n  - \"organize all of this\"\n  - \"organize all of this work\"\n  - \"make this re-doable\"\n  - \"DRY this up\"\n  - \"check everything is in the right place\"\n  - \"analyze this document\"\n  - \"deep analysis\"\n  - \"review this report\"\ntools:\n  - search\n  - query\n  - get_page\n  - put_page\n  - add_link\n  - add_timeline_entry\nmutating: true\nwrites_pages: true\n# EIIRP files across the full canonical set — the actual destination\n# per page is decided by brain-taxonomist consulting the active schema\n# pack via `gbrain schema show --json`. List the gbrain-recommended set\n# of canonical directories here so the filing-audit gate passes; on\n# brains with custom packs, the routing surface is broader and routes\n# through loadActivePack at write time.\nwrites_to:\n  - people\u002F\n  - companies\u002F\n  - deals\u002F\n  - meetings\u002F\n  - concepts\u002F\n  - projects\u002F\n  - civic\u002F\n  - writing\u002F\n  - analysis\u002F\n  - guides\u002F\n  - research\u002F\nfiling_exempt: true\n# The auto-fire gate section below was merged from an upstream\n# deep-analysis auto-filing skill:\nupstream: deep-analysis-brain-auto\ndistinct_from:\n  - name: brain-taxonomist\n    reason: \"brain-taxonomist classifies individual pages at write time (the filing GATE). EIIRP orchestrates the full post-work LIFECYCLE — inventory + taxonomy + schema + skillify + verify.\"\n  - name: ingest\n    reason: \"ingest handles NEW content from external URLs\u002Fmedia. EIIRP handles COMPLETED research that needs to be decomposed and filed across multiple brain locations.\"\n  - name: skillify\n    reason: \"skillify is the meta-skill for turning a feature into a tested skill. EIIRP calls skillify when Phase 5 identifies a reusable pattern.\"\n  - name: signal-detector\n    reason: \"signal-detector (after explicit automatic-capture opt-in) ambiently captures the USER's ideas + entity mentions on every inbound message. EIIRP's auto-fire gate files the AGENT's own deliverable analysis at reply time. signal-detector runs only after the user's explicit automatic-capture opt-in; EIIRP's gate is always-on. They watch opposite directions of the conversation.\"\n  - name: meeting-ingestion\n    reason: \"meeting-ingestion (like idea-ingest, media-ingest, voice-note-ingest, book-mirror) is a dedicated pipeline with its own brain-write logic. The auto-fire gate EXEMPTS dedicated-pipeline content — it never double-files.\"\n---\n\n# EIIRP — Everything In Its Right Place\n\n> *\"Everything in its right place\"* — Radiohead, Kid A\n\n## Contract\n\nAfter any significant work, EIIRP organizes ALL outputs across two domains:\n\n**Knowledge domain (brain):**\n1. Every piece of knowledge lands in the correct brain location.\n2. All sources are cited and linked.\n3. The active schema pack is updated if a new content type emerged.\n4. Entity pages created\u002Fupdated with cross-links.\n\n**Capability domain (skills):**\n5. Every reusable pattern becomes a composable skill.\n6. Existing skills are audited for DRY violations.\n7. Skill graph is MECE — no gaps, no overlaps, no ambiguous routing.\n\n**The meta-guarantee:** Nothing produced during significant work lives only in chat.\nKnowledge → brain. Patterns → skills. Everything in its right place.\n\n## When to Use\n\n- After completing a deep research thread.\n- After building something new (code, pipeline, workflow).\n- After a multi-source analysis that produced significant findings.\n- When the user says \"EIIRP\", \"organize this\", \"DRY this up\", \"make this re-doable\".\n- When a work session produced both knowledge AND new capabilities.\n- When you notice skill overlap, duplication, or gaps.\n\n## Auto-Fire Gate — file before you deliver (ALWAYS-ON)\n\n> **Convention:** see [conventions\u002Fbrain-first.md](..\u002Fconventions\u002Fbrain-first.md)\n> — this is its write side. Substantial analysis belongs in the brain, not\n> only in chat.\n\nUnlike the 7-phase audit above (which the user invokes after a work\nsession), this gate is an **always-on agent-side convention**, like\n`signal-detector`: the agent applies it on every substantive reply, not\nwhen a trigger phrase routes here. Always-on is a harness-routing\nconvention that a well-behaved agent follows — not a mechanical\nguarantee; nothing in the gbrain runtime blocks a reply if the skill\nnever loads.\n\n**The moment of evaluation is delivery, not request.** The gate\nevaluates when substantial analysis (>=500 words of structured output\non a user-shared document) is ABOUT to be delivered — the analysis is\ndone and the reply is being composed. At that moment, file the brain\npage FIRST, then deliver the analysis plus the page link in that same\nreply. The user should never have to ask \"did you file this?\"\n\n### Fire conditions (all three must hold)\n\n1. The user shared a document — a PDF, a file attachment, a link to a\n   doc, or pasted long-form content.\n2. The reply about to be delivered contains substantial analysis:\n   >=500 words of structured output (findings, recommendations, or\n   extracted data — not restatement or formatting).\n3. The content is knowledge worth re-finding — someone reading the\n   brain months later would want this page.\n\n### Does NOT fire\n\n- Quick answers (\"what page is X on?\", \"what date is on this?\").\n- Simple lookups, or forwarding a document unchanged.\n- Purely operational content (task lists, calendar items, status pings).\n- Documents already flowing through a dedicated pipeline (next list).\n- Users who have turned auto-filing off (storage policy below).\n\n### Dedicated-pipeline exemptions\n\nThese pipelines own their brain-write logic; the gate must NOT\ndouble-file on top of them. If one of these is the right route, invoke\nit and let it file:\n\n- `skills\u002Fmeeting-ingestion\u002FSKILL.md` — transcripts + attendee propagation\n- `skills\u002Fidea-ingest\u002FSKILL.md` — articles with author\u002Fpublication metadata\n- `skills\u002Fmedia-ingest\u002FSKILL.md` — bulk file ingestion\n- `skills\u002Fvoice-note-ingest\u002FSKILL.md` — voice notes\n- `skills\u002Fbook-mirror\u002FSKILL.md` — personalized book mirrors\n\n### Filing mechanics (before the reply goes out)\n\n1. **Path** — consult `skills\u002Fbrain-taxonomist\u002FSKILL.md`. It reads the\n   active schema pack (`gbrain schema show --json`); document analysis\n   usually lands under `analysis\u002F` or `research\u002F`, entity-centric\n   findings under `people\u002F` or `companies\u002F`.\n2. **Write** — file via capture:\n\n   ```bash\n   gbrain capture --file \u003Canalysis.md> --slug \u003Ctaxonomist-path>\n   ```\n\n   (or `put_page` over MCP on thin-client installs). Full frontmatter\n   per Phase 4a. The page must be self-contained — a reader months\n   later gets the full picture without the chat thread.\n3. **Link in the SAME reply** — the analysis inline (conversational,\n   not just \"see the brain page\") plus a link line to the filed page,\n   formatted per `skills\u002Fbrain-link-discipline\u002FSKILL.md` (it owns the\n   link format and the resolve-verification step). Multiple pages →\n   list every link.\n4. **First-fire notice.** The very first time the gate fires for a\n   user, append one line to the delivery reply so they learn about\n   auto-filing at the moment it starts, not after: `Auto-filed to\n   \u003Cpath>; say \"stop auto-filing\" to disable.` Record that the notice\n   was given (a per-user storage-policy note) so it never repeats.\n   Alternatively, ask once at setup and record the policy before the\n   first write.\n\n### Per-user storage policy\n\nAuto-filing is a DEFAULT, not a mandate — a per-user storage policy.\nIf the user says to stop auto-filing document analyses (or asks for\nchat-only handling of a specific document), record that preference and\nstop firing the gate: deliver the analysis without a page. Re-enable\non request.\n\n### Relationship to the 7-phase audit\n\nThe gate is the single-deliverable fast path: one document → one page →\nlink in the delivery reply. A full work session still deserves the\ncomplete EIIRP pass below; the gate just ensures no individual analysis\nwaits for it.\n\n## Phase 1: INVENTORY — What did we produce?\n\nScan the current session\u002Fthread and identify ALL outputs across both domains.\n\n### Knowledge outputs\n```\n□ Primary findings (the synthesis)\n□ Source documents (URLs, PDFs, articles, tweets)\n□ Entity mentions (people, companies, organizations, places)\n□ Concepts\u002Fframeworks (reusable mental models)\n□ Data artifacts (structured data, timelines, statistics)\n```\n\n### Capability outputs\n```\n□ New skills created or modified\n□ Scripts\u002Fcode written (should they be in lib\u002F or scripts\u002F?)\n□ Methodology used (search patterns, source chains, verification steps)\n□ Workflows that could be automated (cron, pipeline, webhook)\n□ Patterns that will recur (→ candidate for skillification)\n```\n\nProduce a manifest:\n\n```markdown\n## EIIRP Manifest\n- Topic: [topic]\n- Date: [date]\n- Knowledge outputs: [count] (sources, entities, concepts)\n- Capability outputs: [count] (skills, scripts, patterns)\n- Reusable methodology: [yes\u002Fno — describe if yes]\n```\n\n## Phase 2: TAXONOMY — Where does each piece go?\n\n**Read the active schema pack first** (the single source of truth for\nfiling decisions in v0.39+):\n\n```bash\ngbrain schema show --json\n```\n\nThe pack's `page_types[]` lists every directory the brain accepts plus\nthe primitive each maps to. Walk it for each output and pick the directory\nwhose `path_prefixes` matches the content's primary subject.\n\nIf `brain-taxonomist` is installed, INVOKE IT for ambiguous cases. It runs\nthe same decision protocol against the active pack and gives you a single\nrecommended filing path with reasoning.\n\nOutput: a filing plan table:\n\n```\n| Content | Brain path | Action |\n|---------|-----------|--------|\n| Primary research | reference\u002F...\u002Fpage.md | CREATE |\n| Person X | people\u002Fx-slug.md | CREATE |\n| Person Y | people\u002Fy-slug.md | UPDATE (already exists) |\n| ... | ... | ... |\n```\n\n## Phase 3: SCHEMA CHECK — Does the active pack cover this content?\n\nThis is where EIIRP closes the schema-derivation loop. If the work\nproduced content that doesn't fit any existing `page_types`, propose\nadding a new type via the v0.39 cathedral:\n\n```bash\n# What's emerging in the brain that the active pack doesn't cover?\ngbrain schema detect --json\n\n# LLM-refined suggestions (heuristic when no API key set).\ngbrain schema suggest --json\n\n# Review what's pending; promote or ignore each candidate.\ngbrain schema review-candidates --json\ngbrain schema review-candidates --apply \u003Cprefix-or-type-name>\n```\n\n**Confidence floor:** when `gbrain schema suggest` returns confidence\n\u003C 0.6 on a proposed type, DO NOT auto-apply. Surface the suggestion to\nthe user and let them choose. The schema-cathedral ships the\nprimitives; EIIRP enforces the human-in-the-loop gate.\n\nIf schema needs change:\n- Propose the addition to the user before running `review-candidates --apply`.\n- Document the change in the commit message of the next sync.\n- The schema-pack engine writes the delta to\n  `~\u002F.gbrain\u002Fschema-pack-deltas\u002F` — review and merge into the active\n  pack via `gbrain schema edit` (or hand-edit the YAML).\n\n## Phase 4: FILE — Create enriched brain pages\n\nFor each item in the filing plan:\n\n### 4a. Primary research page\nUse the brain page template. MUST include:\n- Proper frontmatter (`type`, `title`, `date`, `tags`, sources)\n- **State** section — current status\u002Fkey findings\n- **Sources** section — every source with URL, author, date, language\n- **Timeline** section — chronological development\n- **Entity links** — backlinks to all related brain pages\n- **See Also** — related concepts, reference pages\n\n### 4b. Entity pages (people, companies)\nFor each entity mentioned:\n- Check if a brain page exists (`gbrain search \"\u003Cname>\"` or `gbrain get people\u002F\u003Cslug>`).\n- If exists: update State, append Timeline entry citing this research.\n- If not: create with enrichment.\n\n### 4c. Commit and verify\nAfter ALL pages are written, run `gbrain sync` (or commit + push in the\nbrain repo). Verify every link resolves.\n\n## Phase 5: SKILL GRAPH AUDIT — DRY + MECE on capabilities\n\nThis phase operates on the SKILL graph, not just the research.\n\n> **Read-only plugin installs:** the shipped plugin snapshot is not\n> writable. New or updated skills and `lib\u002F` extractions target your\n> own project skill directory or a brain-resident skillpack\n> (`gbrain skillpack init-brain-pack`), never the shipped snapshot.\n> Phases 1-4 and the `gbrain` CLI checks in Phase 6 work everywhere.\n\n### 5a. New pattern identification\n\nAsk: did this work reveal REPEATABLE patterns that will recur?\n\n**Indicators of a reusable pattern:**\n- You used a specific sequence of searches across multiple sources.\n- You followed a specific verification\u002Fcross-referencing methodology.\n- You wrote code that could be parameterized for different inputs.\n- The output format is generalizable.\n- The user is likely to ask for similar work on a different topic.\n\n**For each identified pattern:**\n1. Identify the composable pieces (DRY, MECE):\n   - Shared logic → `lib\u002F` (not copy-pasted into skills)\n   - Search methodology → skill or lib function\n   - Output template → brain template or skill phase\n   - Filing logic → already covered by brain-taxonomist + active pack\n2. DRY check via the v0.19 resolver:\n   ```bash\n   gbrain check-resolvable\n   ```\n   Look for overlapping triggers or unreachable skills.\n\n### 5b. Existing skill audit\nFor ALL skills used or touched during this work, check:\n1. Were any skills BYPASSED? (did you do something manually that a skill should handle?)\n2. Are there skills that OVERLAP with what you just did? (merge candidates)\n3. Is shared code copy-pasted between skills? (extract to `lib\u002F`)\n\n**The MECE question:** If someone asked for this exact work again tomorrow on a different topic, which skills would they invoke? Is the path clear and unambiguous? If not, fix the routing.\n\n### 5c. Present the plan\n```\n## Skill Graph Changes\n\n### New skills to create\n1. **[skill-name]** — [what it does]\n   - DRY check: [clean \u002F overlaps with X]\n   - Recommendation: [create \u002F merge into X]\n\n### Existing skills to update\n1. **[skill-name]** — [what changed, why]\n\n### Code to extract to lib\u002F\n1. **lib\u002F[name].ts** — [what it does, which skills use it]\n\n### Skills to merge or deprecate\n1. **[skill-A] + [skill-B]** → [merged-skill] — [why]\n```\n\nOn approval: invoke `\u002Fskillify` for each new\u002Fmodified skill.\n\n## Phase 6: CHECK_RESOLVABLE — Verify everything routes\n\nAfter all filing and skillification:\n\n```bash\ngbrain check-resolvable                         # routing-table reachability\ngbrain doctor --json                            # health surface\ngbrain search \"\u003Ctopic keywords>\"                # brain pages findable\ngbrain orphans                                  # any pages without inbound links?\n```\n\nConfirm:\n- [ ] All brain pages have proper frontmatter against active schema pack\n- [ ] All entity pages are cross-linked\n- [ ] Any new skills have routing entries in `skills\u002FRESOLVER.md` (where the skills tree is writable)\n- [ ] No DRY violations (no duplicated logic across skills)\n- [ ] No MECE violations (no ambiguous routing between skills)\n- [ ] Active schema pack updated if new content types emerged\n- [ ] `gbrain schema review-orphans --json` reports `orphan_count: 0` (no untyped pages and no undeclared types)\n\n## Phase 7: REPORT — Summary\n\n```markdown\n## EIIRP Complete: [Topic]\n\n### Brain pages created\u002Fupdated\n- [path] — [description]\n- ...\n\n### Entity pages\n- [path] — [created\u002Fupdated]\n- ...\n\n### Schema changes\n- [none \u002F description of changes + which pack delta file]\n\n### Skills identified\n- [skill-name] — [status: created \u002F merged \u002F deferred]\n- ...\n\n### Resolver status\n- DRY check: [clean]\n- MECE audit: [clean]\n- Active pack: [name] v[version]\n- schema review-orphans: [orphan_count 0 \u002F N untyped + M undeclared-type pages]\n```\n\n## Output Format\n\nEIIRP produces a single Phase 7 report block. Plain markdown:\n\n```markdown\n## EIIRP Complete: [topic]\n\n### Brain pages created\u002Fupdated\n- [path] — [description]\n\n### Entity pages\n- [path] — [created|updated]\n\n### Schema changes\n- [none | description of changes + which pack delta file]\n\n### Skills identified\n- [skill-name] — [status: created|merged|deferred]\n\n### Resolver status\n- DRY check: [clean|N violations]\n- MECE audit: [clean|N overlaps]\n- Active pack: [name] v[version]\n- schema review-orphans: [0 orphans|N untyped + M undeclared-type pages]\n```\n\nAlways machine-readable: stable section headers + bullet-per-item. The\nreport doubles as a sync checkpoint for downstream skills (skillpack-check\nreads it; doctor cross-references the pack version).\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 schema change (`gbrain schema add-type`, `gbrain schema use`) needs the user's confirmation; present it and stop if they decline.\n- `gbrain schema suggest` runs heuristic-only without an API key: say the suggestions are heuristic, not LLM-refined.\n- A filing write returns `revision_conflict` or `write_pending` (exit 10): re-read and merge, or poll `gbrain write-request \u003Crequest_id>`; the Phase 7 report lists pending writes as pending.\n\n## Anti-Patterns\n\n- **Hardcoding directory tables in EIIRP's logic.** Every filing decision\n  reads `gbrain schema show --json`. Users on `gbrain-recommended` AND\n  custom packs MUST get the right behavior automatically.\n- **Auto-applying low-confidence schema suggestions.** Confidence \u003C 0.6\n  from `gbrain schema suggest` means manual review is required. EIIRP\n  surfaces it; the user accepts.\n- **Skipping Phase 5 SKILL GRAPH AUDIT because \"this was a one-off.\"**\n  If the work took >10 minutes, the methodology is probably reusable.\n  Audit anyway; defer the skillify decision to the user.\n- **Filing synthesis output by topic alone.** Synthesis pages tied to a\n  single source + reader are sui generis; they file under\n  `media\u002F\u003Cformat>\u002F\u003Cslug>-personalized.md`. See _brain-filing-rules.md\n  \"Sanctioned exception\" section.\n- **Treating non-English sources as secondary citations.** Multilingual\n  sources are first-class.\n- **Delivering substantial document analysis without a filed page + link.**\n  The auto-fire gate files FIRST, then delivers analysis + link in the\n  same reply. Never \"I'll create the page\" as a future action; never the\n  link in a follow-up message; never wait for the user to ask.\n- **Double-filing dedicated-pipeline content.** Meeting transcripts,\n  articles, bulk media, voice notes, and book mirrors have their own\n  ingestion skills with their own brain-write logic. The gate exempts\n  them.\n- **Auto-filing after the user turned it off.** Auto-filing is a\n  per-user storage-policy default, not a mandate. Honor the recorded\n  preference.\n\n## Hard Rules\n\n### Knowledge domain\n- **Never leave research only in chat.** If it took >10 minutes to produce, it gets a brain page.\n- **Every source gets a citation.** No \"according to reports\" without a URL.\n- **Entity pages get updated, not just created.** If a brain page exists, UPDATE it.\n- **Schema changes require confirmation.** The active pack is load-bearing.\n- **Multilingual sources are first-class.** Never treat non-English sources as secondary.\n\n### Capability domain\n- **DRY is sacred.** If the same logic appears in two skills, extract it to `lib\u002F`.\n- **MECE is sacred.** Every trigger phrase routes to exactly one skill.\n- **Composability over monoliths.** Small skills that compose > one giant skill that does everything.\n- **Skillify only what recurs.** One-off work doesn't need a skill. Patterns that repeat 2+ times do.\n\n### Meta\n- **EIIRP is idempotent.** Running it twice on the same work should produce no changes the second time.\n- **EIIRP consumes the active schema pack as data.** Never hard-code directory tables in EIIRP's logic — read from `gbrain schema show --json` so users who picked `gbrain-recommended` OR custom packs get the right behavior automatically.\n\n## Changelog\n\n### v1.1.0 — auto-fire gate merge (from an upstream deep-analysis auto-filing skill)\n- Merged the always-on auto-fire gate: when >=500 words of structured\n  analysis on a user-shared document is about to be delivered, file the\n  brain page first, then deliver analysis + link in that same reply.\n- Filing routes through brain-taxonomist (active schema pack) +\n  `gbrain capture` instead of the donor's git-commit mechanics; the\n  donor's direct GitHub-API link check was dropped in favor of the\n  brain-link-discipline skill's link format + verify step.\n- Donor examples and origin story genericized per CLAUDE.md privacy\n  rules; added dedicated-pipeline exemptions and the per-user\n  storage-policy off switch.\n\n### v1.0.0 — gbrain v0.39.0.0\n- Initial port from upstream OpenClaw. Genericized — no references to\n  private fork names per CLAUDE.md privacy rules.\n- Phase 3 SCHEMA CHECK rewritten to consume the v0.39 cathedral CLI\n  (`detect | suggest | review-candidates`) instead of a private\n  `brain\u002Fschema.md`.\n- Phase 5 SKILL GRAPH AUDIT calls `gbrain check-resolvable` instead of\n  upstream `scripts\u002Fskill-dry-check.mjs`.\n- Phase 6 verification uses `gbrain schema review-orphans` (untyped pages\n  plus undeclared types, the same classification as `schema lint\n  --with-db`); over MCP, `run_doctor`'s schema_pack_consistency check\n  carries the same verdict.\n","# EIIRP — Everything In Its Right Place\n\n> *\"Everything in its right place\"* — Radiohead, Kid A\n\n## Contract\n\nAfter any significant work, EIIRP organizes ALL outputs across two domains:\n\n**Knowledge domain (brain):**\n1. Every piece of knowledge lands in the correct brain location.\n2. All sources are cited and linked.\n3. The active schema pack is updated if a new content type emerged.\n4. Entity pages created\u002Fupdated with cross-links.\n\n**Capability domain (skills):**\n5. Every reusable pattern becomes a composable skill.\n6. Existing skills are audited for DRY violations.\n7. Skill graph is MECE — no gaps, no overlaps, no ambiguous routing.\n\n**The meta-guarantee:** Nothing produced during significant work lives only in chat.\nKnowledge → brain. Patterns → skills. Everything in its right place.\n\n## When to Use\n\n- After completing a deep research thread.\n- After building something new (code, pipeline, workflow).\n- After a multi-source analysis that produced significant findings.\n- When the user says \"EIIRP\", \"organize this\", \"DRY this up\", \"make this re-doable\".\n- When a work session produced both knowledge AND new capabilities.\n- When you notice skill overlap, duplication, or gaps.\n\n## Auto-Fire Gate — file before you deliver (ALWAYS-ON)\n\n> **Convention:** see [conventions\u002Fbrain-first.md](..\u002Fconventions\u002Fbrain-first.md)\n> — this is its write side. Substantial analysis belongs in the brain, not\n> only in chat.\n\nUnlike the 7-phase audit above (which the user invokes after a work\nsession), this gate is an **always-on agent-side convention**, like\n`signal-detector`: the agent applies it on every substantive reply, not\nwhen a trigger phrase routes here. Always-on is a harness-routing\nconvention that a well-behaved agent follows — not a mechanical\nguarantee; nothing in the gbrain runtime blocks a reply if the skill\nnever loads.\n\n**The moment of evaluation is delivery, not request.** The gate\nevaluates when substantial analysis (>=500 words of structured output\non a user-shared document) is ABOUT to be delivered — the analysis is\ndone and the reply is being composed. At that moment, file the brain\npage FIRST, then deliver the analysis plus the page link in that same\nreply. The user should never have to ask \"did you file this?\"\n\n### Fire conditions (all three must hold)\n\n1. The user shared a document — a PDF, a file attachment, a link to a\n   doc, or pasted long-form content.\n2. The reply about to be delivered contains substantial analysis:\n   >=500 words of structured output (findings, recommendations, or\n   extracted data — not restatement or formatting).\n3. The content is knowledge worth re-finding — someone reading the\n   brain months later would want this page.\n\n### Does NOT fire\n\n- Quick answers (\"what page is X on?\", \"what date is on this?\").\n- Simple lookups, or forwarding a document unchanged.\n- Purely operational content (task lists, calendar items, status pings).\n- Documents already flowing through a dedicated pipeline (next list).\n- Users who have turned auto-filing off (storage policy below).\n\n### Dedicated-pipeline exemptions\n\nThese pipelines own their brain-write logic; the gate must NOT\ndouble-file on top of them. If one of these is the right route, invoke\nit and let it file:\n\n- `skills\u002Fmeeting-ingestion\u002FSKILL.md` — transcripts + attendee propagation\n- `skills\u002Fidea-ingest\u002FSKILL.md` — articles with author\u002Fpublication metadata\n- `skills\u002Fmedia-ingest\u002FSKILL.md` — bulk file ingestion\n- `skills\u002Fvoice-note-ingest\u002FSKILL.md` — voice notes\n- `skills\u002Fbook-mirror\u002FSKILL.md` — personalized book mirrors\n\n### Filing mechanics (before the reply goes out)\n\n1. **Path** — consult `skills\u002Fbrain-taxonomist\u002FSKILL.md`. It reads the\n   active schema pack (`gbrain schema show --json`); document analysis\n   usually lands under `analysis\u002F` or `research\u002F`, entity-centric\n   findings under `people\u002F` or `companies\u002F`.\n2. **Write** — file via capture:\n\n   ```bash\n   gbrain capture --file \u003Canalysis.md> --slug \u003Ctaxonomist-path>\n   ```\n\n   (or `put_page` over MCP on thin-client installs). Full frontmatter\n   per Phase 4a. The page must be self-contained — a reader months\n   later gets the full picture without the chat thread.\n3. **Link in the SAME reply** — the analysis inline (conversational,\n   not just \"see the brain page\") plus a link line to the filed page,\n   formatted per `skills\u002Fbrain-link-discipline\u002FSKILL.md` (it owns the\n   link format and the resolve-verification step). Multiple pages →\n   list every link.\n4. **First-fire notice.** The very first time the gate fires for a\n   user, append one line to the delivery reply so they learn about\n   auto-filing at the moment it starts, not after: `Auto-filed to\n   \u003Cpath>; say \"stop auto-filing\" to disable.` Record that the notice\n   was given (a per-user storage-policy note) so it never repeats.\n   Alternatively, ask once at setup and record the policy before the\n   first write.\n\n### Per-user storage policy\n\nAuto-filing is a DEFAULT, not a mandate — a per-user storage policy.\nIf the user says to stop auto-filing document analyses (or asks for\nchat-only handling of a specific document), record that preference and\nstop firing the gate: deliver the analysis without a page. Re-enable\non request.\n\n### Relationship to the 7-phase audit\n\nThe gate is the single-deliverable fast path: one document → one page →\nlink in the delivery reply. A full work session still deserves the\ncomplete EIIRP pass below; the gate just ensures no individual analysis\nwaits for it.\n\n## Phase 1: INVENTORY — What did we produce?\n\nScan the current session\u002Fthread and identify ALL outputs across both domains.\n\n### Knowledge outputs\n```\n□ Primary findings (the synthesis)\n□ Source documents (URLs, PDFs, articles, tweets)\n□ Entity mentions (people, companies, organizations, places)\n□ Concepts\u002Fframeworks (reusable mental models)\n□ Data artifacts (structured data, timelines, statistics)\n```\n\n### Capability outputs\n```\n□ New skills created or modified\n□ Scripts\u002Fcode written (should they be in lib\u002F or scripts\u002F?)\n□ Methodology used (search patterns, source chains, verification steps)\n□ Workflows that could be automated (cron, pipeline, webhook)\n□ Patterns that will recur (→ candidate for skillification)\n```\n\nProduce a manifest:\n\n```markdown\n## EIIRP Manifest\n- Topic: [topic]\n- Date: [date]\n- Knowledge outputs: [count] (sources, entities, concepts)\n- Capability outputs: [count] (skills, scripts, patterns)\n- Reusable methodology: [yes\u002Fno — describe if yes]\n```\n\n## Phase 2: TAXONOMY — Where does each piece go?\n\n**Read the active schema pack first** (the single source of truth for\nfiling decisions in v0.39+):\n\n```bash\ngbrain schema show --json\n```\n\nThe pack's `page_types[]` lists every directory the brain accepts plus\nthe primitive each maps to. Walk it for each output and pick the directory\nwhose `path_prefixes` matches the content's primary subject.\n\nIf `brain-taxonomist` is installed, INVOKE IT for ambiguous cases. It runs\nthe same decision protocol against the active pack and gives you a single\nrecommended filing path with reasoning.\n\nOutput: a filing plan table:\n\n```\n| Content | Brain path | Action |\n|---------|-----------|--------|\n| Primary research | reference\u002F...\u002Fpage.md | CREATE |\n| Person X | people\u002Fx-slug.md | CREATE |\n| Person Y | people\u002Fy-slug.md | UPDATE (already exists) |\n| ... | ... | ... |\n```\n\n## Phase 3: SCHEMA CHECK — Does the active pack cover this content?\n\nThis is where EIIRP closes the schema-derivation loop. If the work\nproduced content that doesn't fit any existing `page_types`, propose\nadding a new type via the v0.39 cathedral:\n\n```bash\n# What's emerging in the brain that the active pack doesn't cover?\ngbrain schema detect --json\n\n# LLM-refined suggestions (heuristic when no API key set).\ngbrain schema suggest --json\n\n# Review what's pending; promote or ignore each candidate.\ngbrain schema review-candidates --json\ngbrain schema review-candidates --apply \u003Cprefix-or-type-name>\n```\n\n**Confidence floor:** when `gbrain schema suggest` returns confidence\n\u003C 0.6 on a proposed type, DO NOT auto-apply. Surface the suggestion to\nthe user and let them choose. The schema-cathedral ships the\nprimitives; EIIRP enforces the human-in-the-loop gate.\n\nIf schema needs change:\n- Propose the addition to the user before running `review-candidates --apply`.\n- Document the change in the commit message of the next sync.\n- The schema-pack engine writes the delta to\n  `~\u002F.gbrain\u002Fschema-pack-deltas\u002F` — review and merge into the active\n  pack via `gbrain schema edit` (or hand-edit the YAML).\n\n## Phase 4: FILE — Create enriched brain pages\n\nFor each item in the filing plan:\n\n### 4a. Primary research page\nUse the brain page template. MUST include:\n- Proper frontmatter (`type`, `title`, `date`, `tags`, sources)\n- **State** section — current status\u002Fkey findings\n- **Sources** section — every source with URL, author, date, language\n- **Timeline** section — chronological development\n- **Entity links** — backlinks to all related brain pages\n- **See Also** — related concepts, reference pages\n\n### 4b. Entity pages (people, companies)\nFor each entity mentioned:\n- Check if a brain page exists (`gbrain search \"\u003Cname>\"` or `gbrain get people\u002F\u003Cslug>`).\n- If exists: update State, append Timeline entry citing this research.\n- If not: create with enrichment.\n\n### 4c. Commit and verify\nAfter ALL pages are written, run `gbrain sync` (or commit + push in the\nbrain repo). Verify every link resolves.\n\n## Phase 5: SKILL GRAPH AUDIT — DRY + MECE on capabilities\n\nThis phase operates on the SKILL graph, not just the research.\n\n> **Read-only plugin installs:** the shipped plugin snapshot is not\n> writable. New or updated skills and `lib\u002F` extractions target your\n> own project skill directory or a brain-resident skillpack\n> (`gbrain skillpack init-brain-pack`), never the shipped snapshot.\n> Phases 1-4 and the `gbrain` CLI checks in Phase 6 work everywhere.\n\n### 5a. New pattern identification\n\nAsk: did this work reveal REPEATABLE patterns that will recur?\n\n**Indicators of a reusable pattern:**\n- You used a specific sequence of searches across multiple sources.\n- You followed a specific verification\u002Fcross-referencing methodology.\n- You wrote code that could be parameterized for different inputs.\n- The output format is generalizable.\n- The user is likely to ask for similar work on a different topic.\n\n**For each identified pattern:**\n1. Identify the composable pieces (DRY, MECE):\n   - Shared logic → `lib\u002F` (not copy-pasted into skills)\n   - Search methodology → skill or lib function\n   - Output template → brain template or skill phase\n   - Filing logic → already covered by brain-taxonomist + active pack\n2. DRY check via the v0.19 resolver:\n   ```bash\n   gbrain check-resolvable\n   ```\n   Look for overlapping triggers or unreachable skills.\n\n### 5b. Existing skill audit\nFor ALL skills used or touched during this work, check:\n1. Were any skills BYPASSED? (did you do something manually that a skill should handle?)\n2. Are there skills that OVERLAP with what you just did? (merge candidates)\n3. Is shared code copy-pasted between skills? (extract to `lib\u002F`)\n\n**The MECE question:** If someone asked for this exact work again tomorrow on a different topic, which skills would they invoke? Is the path clear and unambiguous? If not, fix the routing.\n\n### 5c. Present the plan\n```\n## Skill Graph Changes\n\n### New skills to create\n1. **[skill-name]** — [what it does]\n   - DRY check: [clean \u002F overlaps with X]\n   - Recommendation: [create \u002F merge into X]\n\n### Existing skills to update\n1. **[skill-name]** — [what changed, why]\n\n### Code to extract to lib\u002F\n1. **lib\u002F[name].ts** — [what it does, which skills use it]\n\n### Skills to merge or deprecate\n1. **[skill-A] + [skill-B]** → [merged-skill] — [why]\n```\n\nOn approval: invoke `\u002Fskillify` for each new\u002Fmodified skill.\n\n## Phase 6: CHECK_RESOLVABLE — Verify everything routes\n\nAfter all filing and skillification:\n\n```bash\ngbrain check-resolvable                         # routing-table reachability\ngbrain doctor --json                            # health surface\ngbrain search \"\u003Ctopic keywords>\"                # brain pages findable\ngbrain orphans                                  # any pages without inbound links?\n```\n\nConfirm:\n- [ ] All brain pages have proper frontmatter against active schema pack\n- [ ] All entity pages are cross-linked\n- [ ] Any new skills have routing entries in `skills\u002FRESOLVER.md` (where the skills tree is writable)\n- [ ] No DRY violations (no duplicated logic across skills)\n- [ ] No MECE violations (no ambiguous routing between skills)\n- [ ] Active schema pack updated if new content types emerged\n- [ ] `gbrain schema review-orphans --json` reports `orphan_count: 0` (no untyped pages and no undeclared types)\n\n## Phase 7: REPORT — Summary\n\n```markdown\n## EIIRP Complete: [Topic]\n\n### Brain pages created\u002Fupdated\n- [path] — [description]\n- ...\n\n### Entity pages\n- [path] — [created\u002Fupdated]\n- ...\n\n### Schema changes\n- [none \u002F description of changes + which pack delta file]\n\n### Skills identified\n- [skill-name] — [status: created \u002F merged \u002F deferred]\n- ...\n\n### Resolver status\n- DRY check: [clean]\n- MECE audit: [clean]\n- Active pack: [name] v[version]\n- schema review-orphans: [orphan_count 0 \u002F N untyped + M undeclared-type pages]\n```\n\n## Output Format\n\nEIIRP produces a single Phase 7 report block. Plain markdown:\n\n```markdown\n## EIIRP Complete: [topic]\n\n### Brain pages created\u002Fupdated\n- [path] — [description]\n\n### Entity pages\n- [path] — [created|updated]\n\n### Schema changes\n- [none | description of changes + which pack delta file]\n\n### Skills identified\n- [skill-name] — [status: created|merged|deferred]\n\n### Resolver status\n- DRY check: [clean|N violations]\n- MECE audit: [clean|N overlaps]\n- Active pack: [name] v[version]\n- schema review-orphans: [0 orphans|N untyped + M undeclared-type pages]\n```\n\nAlways machine-readable: stable section headers + bullet-per-item. The\nreport doubles as a sync checkpoint for downstream skills (skillpack-check\nreads it; doctor cross-references the pack version).\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 schema change (`gbrain schema add-type`, `gbrain schema use`) needs the user's confirmation; present it and stop if they decline.\n- `gbrain schema suggest` runs heuristic-only without an API key: say the suggestions are heuristic, not LLM-refined.\n- A filing write returns `revision_conflict` or `write_pending` (exit 10): re-read and merge, or poll `gbrain write-request \u003Crequest_id>`; the Phase 7 report lists pending writes as pending.\n\n## Anti-Patterns\n\n- **Hardcoding directory tables in EIIRP's logic.** Every filing decision\n  reads `gbrain schema show --json`. Users on `gbrain-recommended` AND\n  custom packs MUST get the right behavior automatically.\n- **Auto-applying low-confidence schema suggestions.** Confidence \u003C 0.6\n  from `gbrain schema suggest` means manual review is required. EIIRP\n  surfaces it; the user accepts.\n- **Skipping Phase 5 SKILL GRAPH AUDIT because \"this was a one-off.\"**\n  If the work took >10 minutes, the methodology is probably reusable.\n  Audit anyway; defer the skillify decision to the user.\n- **Filing synthesis output by topic alone.** Synthesis pages tied to a\n  single source + reader are sui generis; they file under\n  `media\u002F\u003Cformat>\u002F\u003Cslug>-personalized.md`. See _brain-filing-rules.md\n  \"Sanctioned exception\" section.\n- **Treating non-English sources as secondary citations.** Multilingual\n  sources are first-class.\n- **Delivering substantial document analysis without a filed page + link.**\n  The auto-fire gate files FIRST, then delivers analysis + link in the\n  same reply. Never \"I'll create the page\" as a future action; never the\n  link in a follow-up message; never wait for the user to ask.\n- **Double-filing dedicated-pipeline content.** Meeting transcripts,\n  articles, bulk media, voice notes, and book mirrors have their own\n  ingestion skills with their own brain-write logic. The gate exempts\n  them.\n- **Auto-filing after the user turned it off.** Auto-filing is a\n  per-user storage-policy default, not a mandate. Honor the recorded\n  preference.\n\n## Hard Rules\n\n### Knowledge domain\n- **Never leave research only in chat.** If it took >10 minutes to produce, it gets a brain page.\n- **Every source gets a citation.** No \"according to reports\" without a URL.\n- **Entity pages get updated, not just created.** If a brain page exists, UPDATE it.\n- **Schema changes require confirmation.** The active pack is load-bearing.\n- **Multilingual sources are first-class.** Never treat non-English sources as secondary.\n\n### Capability domain\n- **DRY is sacred.** If the same logic appears in two skills, extract it to `lib\u002F`.\n- **MECE is sacred.** Every trigger phrase routes to exactly one skill.\n- **Composability over monoliths.** Small skills that compose > one giant skill that does everything.\n- **Skillify only what recurs.** One-off work doesn't need a skill. Patterns that repeat 2+ times do.\n\n### Meta\n- **EIIRP is idempotent.** Running it twice on the same work should produce no changes the second time.\n- **EIIRP consumes the active schema pack as data.** Never hard-code directory tables in EIIRP's logic — read from `gbrain schema show --json` so users who picked `gbrain-recommended` OR custom packs get the right behavior automatically.\n\n## Changelog\n\n### v1.1.0 — auto-fire gate merge (from an upstream deep-analysis auto-filing skill)\n- Merged the always-on auto-fire gate: when >=500 words of structured\n  analysis on a user-shared document is about to be delivered, file the\n  brain page first, then deliver analysis + link in that same reply.\n- Filing routes through brain-taxonomist (active schema pack) +\n  `gbrain capture` instead of the donor's git-commit mechanics; the\n  donor's direct GitHub-API link check was dropped in favor of the\n  brain-link-discipline skill's link format + verify step.\n- Donor examples and origin story genericized per CLAUDE.md privacy\n  rules; added dedicated-pipeline exemptions and the per-user\n  storage-policy off switch.\n\n### v1.0.0 — gbrain v0.39.0.0\n- Initial port from upstream OpenClaw. Genericized — no references to\n  private fork names per CLAUDE.md privacy rules.\n- Phase 3 SCHEMA CHECK rewritten to consume the v0.39 cathedral CLI\n  (`detect | suggest | review-candidates`) instead of a private\n  `brain\u002Fschema.md`.\n- Phase 5 SKILL GRAPH AUDIT calls `gbrain check-resolvable` instead of\n  upstream `scripts\u002Fskill-dry-check.mjs`.\n- Phase 6 verification uses `gbrain schema review-orphans` (untyped pages\n  plus undeclared types, the same classification as `schema lint\n  --with-db`); over MCP, `run_doctor`'s schema_pack_consistency check\n  carries the same verdict.\n",{"name":5,"tools":64,"version":70,"mutating":71,"triggers":72,"upstream":91,"writes_to":92,"description":104,"writes_pages":71,"distinct_from":105,"filing_exempt":71,"prompt_version":121},[58,65,66,67,68,69],"query","get_page","put_page","add_link","add_timeline_entry","1.1.0",true,[73,5,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90],"everything in its right place","store this research","put this in the brain","file this properly","where does this research go","make this permanent","archive this research","archive this research thread","brain this","file all of this","organize all of this","organize all of this work","make this re-doable","DRY this up","check everything is in the right place","analyze this document","deep analysis","review this report","deep-analysis-brain-auto",[93,94,95,96,97,98,99,100,101,102,103],"people\u002F","companies\u002F","deals\u002F","meetings\u002F","concepts\u002F","projects\u002F","civic\u002F","writing\u002F","analysis\u002F","guides\u002F","research\u002F","Everything In Its Right Place. The universal post-work organizer. After\nany significant work session, EIIRP runs a 7-phase audit: (1) inventory\nevery output, (2) walk taxonomy to decide where each lands, (3) check\nschema-pack consistency against the brain's actual shape, (4) file\nenriched brain pages, (5) audit the skill graph for DRY+MECE, (6) verify\nresolvability, (7) report. Named after the Radiohead song. Nothing\nproduced during significant work lives only in chat — knowledge becomes\npermanent, patterns become reusable. Also carries the always-on\nauto-fire gate: when >=500 words of structured analysis on a\nuser-shared document is about to be delivered, file the brain page\nfirst, then deliver the analysis with the link in that same reply.\n",[106,109,112,115,118],{"name":107,"reason":108},"brain-taxonomist","brain-taxonomist classifies individual pages at write time (the filing GATE). EIIRP orchestrates the full post-work LIFECYCLE — inventory + taxonomy + schema + skillify + verify.",{"name":110,"reason":111},"ingest","ingest handles NEW content from external URLs\u002Fmedia. EIIRP handles COMPLETED research that needs to be decomposed and filed across multiple brain locations.",{"name":113,"reason":114},"skillify","skillify is the meta-skill for turning a feature into a tested skill. EIIRP calls skillify when Phase 5 identifies a reusable pattern.",{"name":116,"reason":117},"signal-detector","signal-detector (after explicit automatic-capture opt-in) ambiently captures the USER's ideas + entity mentions on every inbound message. EIIRP's auto-fire gate files the AGENT's own deliverable analysis at reply time. signal-detector runs only after the user's explicit automatic-capture opt-in; EIIRP's gate is always-on. They watch opposite directions of the conversation.",{"name":119,"reason":120},"meeting-ingestion","meeting-ingestion (like idea-ingest, media-ingest, voice-note-ingest, book-mirror) is a dedicated pipeline with its own brain-write logic. The auto-fire gate EXEMPTS dedicated-pipeline content — it never double-files.",1,"master","074ec301549ded4930f04d2c3b22d709a6c095cc","skills\u002Feiirp",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":132,"prompt":142,"zipAvailable":71},[133,136,139],{"tool":134,"command":135},"npx","npx skills add garrytan\u002Fgbrain --skill eiirp",{"tool":137,"command":138},"bunx","bunx skills add garrytan\u002Fgbrain --skill eiirp",{"tool":140,"command":141},"pnpm","pnpm dlx skills add garrytan\u002Fgbrain --skill eiirp","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgbrain\u002Fblob\u002Fmaster\u002Fskills\u002Feiirp\u002FSKILL.md",[144],{"path":145,"resourceType":146,"resourceTypeDesc":147,"sizeBytes":148,"sourceHtmlUrl":149},"routing-eval.jsonl","OTHER","其他",1838,"https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgbrain\u002Fblob\u002Fmaster\u002Fskills\u002Feiirp\u002Frouting-eval.jsonl",[151,162,168,191,214,228],{"skillNo":152,"name":153,"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":154,"categories":155,"keywords":156,"publishedAt":59},"01M6N109FNGH1PK49T734PZXGB","query-helper","https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgbrain\u002Fblob\u002Fmaster\u002Ftest\u002Ffixtures\u002Fskill-catalog\u002Fskills\u002Fquery-helper\u002FSKILL.md",[],[157,158,65,58,159,160,161],"query helper","helper","page","find","false",{"skillNo":163,"name":164,"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":165,"categories":166,"keywords":167,"publishedAt":59},"01M6N108A23GW6NGQEQ0E7GV0A","broken","https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgbrain\u002Fblob\u002Fmaster\u002Ftest\u002Ffixtures\u002Fskill-catalog\u002Fskills\u002Fbroken\u002FSKILL.md",[],[164],{"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":174,"publishedAt":59},"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",[],[175,176,177,178,179,159,180,181,182,183,65,184,185,186,187,188,189,190,58],"brain ops","brain","ops","true","attribution","read","write","up","look","pages","people","with","enrich","web","path","source",{"skillNo":192,"name":193,"nameZh":6,"description":194,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":195,"categories":196,"keywords":198,"publishedAt":59},"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",[197],{"categoryNo":30,"categoryName":31,"taxonomyType":32,"taxonomyTypeDesc":33},[199,200,201,202,203,58,204,205,206,65,161,207,208,209,210,211,212,213],"meeting","prep","meeting prep","me","prepare","brief","open","build","loops","about","you","briefing","threads","for","Meet",{"skillNo":215,"name":216,"nameZh":6,"description":217,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":218,"categories":219,"keywords":220,"publishedAt":59},"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",[],[221,222,223,58,224,161,225,226,227],"inbox zero","ZeRO","inbox","clear","replies","my","triage",{"skillNo":229,"name":230,"nameZh":6,"description":231,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":232,"categories":233,"keywords":234,"publishedAt":59},"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",[],[235,236,237,184,176,238,239,181,240,178,58,241],"deal memo","deal","memo","draft","investment","history","founder"]