/brain-taxonomist
Filing gate for ALL brain writes. Consulted before creating any new brain page to determine the correct path. Reads the ACTIVE schema pack via `gbrain schema show --json` — no hardcoded directory table. Also runs periodic taxonomy drift detection via `gbrain schema
$ npx -y skills add garrytan/gbrain --skill brain-taxonomist --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/brain-taxonomist
Context preview
The summary Claude sees to decide when to auto-load this skill.
Filing gate for ALL brain writes. Consulted before creating any new brain page to determine the correct path. Reads the ACTIVE schema pack via `gbrain schema show --json` — no hardcoded directory table. Also runs periodic taxonomy drift detection via `gbrain schema
SKILL.md
brain-taxonomist.SKILL.mdname: brain-taxonomist
version: 1.0.0
prompt_version: 1
description: |
Filing gate for ALL brain writes. Consulted before creating any new
brain page to determine the correct path. Reads the ACTIVE schema pack
via `gbrain schema show --json` — no hardcoded directory table. Also
runs periodic taxonomy drift detection via `gbrain schema review-orphans`.
triggers:
- "where does this brain page go"
- "file this in the brain"
- "brain taxonomist"
- "taxonomy check"
- "refile brain page"
- "create brain page"
- "which directory does this go"
- "which directory does this page go"
mutating: false
brain-taxonomist
Purpose
**Gate function:** Before creating ANY new brain page, consult this skill to determine the correct filing path. This prevents misfiling at write time rather than cleaning up drift after the fact.
**Drift function:** Periodic scan for pages that have outgrown their current location.
Contract
This skill guarantees:
- Every new page is filed at the path determined by the ACTIVE schema pack — never against a hardcoded directory table baked into this skill.
- The decision is reproducible: invoking brain-taxonomist twice on the same content produces the same recommended path.
- Ambiguous cases surface to the user via `skills/ask-user/` rather than silently picking a default.
- Per-source overrides via `--source <id>` are honored — multi-brain users (Persona B) get a different recommendation per source if their packs diverge.
- When no matching `page_types[]` entry exists in the active pack, the skill signals to EIIRP Phase 3 (SCHEMA CHECK) rather than picking the closest-fitting fallback.
Critical: this skill reads the ACTIVE schema pack as data
`brain-taxonomist` has NO hardcoded directory table. Every decision is driven by `gbrain schema show --json`. This means:
- A user who runs `gbrain schema use gbrain-recommended` gets the full
recommended directory set (deal, meeting, concept, project, source, daily, personal, civic, original, place, trip, conversation, writing, plus all gbrain-base types).
- A user who authored a custom pack via `gbrain schema init` + edit gets
filing recommendations based on THEIR taxonomy, not gbrain's defaults.
- Per-source overrides (tier 3 in the 7-tier resolution chain) are honored
when `--source <id>` is passed to brain-taxonomist.
This is the single-source-of-truth principle (D9 from the v0.39 plan-eng-review).
When to Consult (MANDATORY)
Run the taxonomist check before writing to the brain in these cases:
1. **New brain page** — any `type` (person, company, concept, book, meeting, etc.) 2. **Bulk import** — before committing a batch of new pages 3. **Uncertain filing** — when the primary subject is ambiguous
You do NOT need to consult for:
- Updating an existing page in place (same path)
- Appending to a Timeline section
- Meeting entity propagation to existing pages
Decision Protocol
Step 1: Identify primary subject type
Walk these questions in order: 1. Is the primary subject a NAMED PERSON? → person-typed directory 2. Is the primary subject a NAMED ORGANIZATION? → company-typed directory 3. Is it about a TIME-BOUNDED EVENT (meeting, deal, trip)? → temporal-typed directory 4. Is it a REUSABLE MENTAL MODEL? → concept-typed directory 5. Is it RAW MEDIA (article, video, book, PDF)? → media-typed directory 6. Is it BULK SOURCE DATA? → source-typed directory 7. None of the above → consult EIIRP Phase 3 for schema-pack candidate creation.
Step 2: Look up the directory for that type in the active pack
gbrain schema show --json | jq '.page_types[] | select(.primitive == "entity")'
Each `page_types[]` entry has a `path_prefixes:` array. The first prefix is the canonical path. If multiple types match (e.g. both `person` and `founder` exist in the pack with `expert_routing: true`), prefer the more specific one (the one with the more specific path prefix).
Step 3: For books — determine sub-category
The `gbrain-recommended` pack treats books as `media/books/<category>/<slug>.md` where category is one of: psychology, philosophy, spirituality, business, media-and-society, family-and-divorce, heritage, science, fiction, biography, arts-and-design. If your active pack has a different scheme, walk it from `gbrain schema show --json` instead of hardcoding here.
Step 4: Construct the slug
- kebab-case, descriptive
- no author name unless disambiguation is needed
- match the canonical path prefix exactly (no leading slash)
Step 5: Validate before writing
- [ ] Path follows the active pack's `page_types[].path_prefixes`
- [ ] Slug is kebab-case, descriptive
- [ ] Frontmatter includes `type:` matching one of the pack's `page_types[].name`
- [ ] Cross-links to related pages are included
If the active pack doesn't have a type for what you're trying to file, DON'T pick the closest-fitting one. Instead, signal to EIIRP that a new type is needed and let the schema-pack cathedral handle the proposal flow.
Integration with Other Skills
- `eiirp` — calls this skill as Phase 2 TAXONOMY for every output in its inventory.
- `ingest` — article/media ingestion consults brain-taxonomist for filing.
- `repo-architecture` — delegates the filing decision to this skill.
- `book-mirror` — after generating a mirror, files it via brain-taxonomist.
Periodic Drift Detection
# What pages have no type matching the active pack?
gbrain schema review-orphans --json
# What's the overall health?
gbrain doctor --json | jq '.checks[] | select(.name == "schema_pack_consistency")'
When `schema_pack_consistency` warns at >10% untyped, run the EIIRP Phase 3 SCHEMA CHECK flow to surface candidate types via `schema detect`.
Output Format
Advisory: a single recommendation block plus a one-line reasoning trail.
**File at:** `<directory>/<slug>.md`
**Reasoning:**
- Primary subject: <person|company|concept|...>
- Matched page_type: <name> (primitive: <enti
Read more
name: brain-taxonomist version: 1.0.0 prompt_version: 1 description: | Filing gate for ALL brain writes. Consulted before creating any new brain page to determine the correct path. Reads the ACTIVE schema pack via `gbrain schema show --json` — no hardcoded directory table. Also runs periodic taxonomy drift detection via `gbrain schema review-orphans`. triggers: - "where does this brain page go" - "file this in the brain" - "brain taxonomist" - "taxonomy check" - "refile brain page" - "create brain page" - "which directory does this go" - "which directory does this page go" mutating: false
brain-taxonomist
Purpose
**Gate function:** Before creating ANY new brain page, consult this skill to determine the correct filing path. This prevents misfiling at write time rather than cleaning up drift after the fact.
**Drift function:** Periodic scan for pages that have outgrown their current location.
Contract
This skill guarantees:
- Every new page is filed at the path determined by the ACTIVE schema pack — never against a hardcoded directory table baked into this skill.
- The decision is reproducible: invoking brain-taxonomist twice on the same content produces the same recommended path.
- Ambiguous cases surface to the user via `skills/ask-user/` rather than silently picking a default.
- Per-source overrides via `--source <id>` are honored — multi-brain users (Persona B) get a different recommendation per source if their packs diverge.
- When no matching `page_types[]` entry exists in the active pack, the skill signals to EIIRP Phase 3 (SCHEMA CHECK) rather than picking the closest-fitting fallback.
Critical: this skill reads the ACTIVE schema pack as data
`brain-taxonomist` has NO hardcoded directory table. Every decision is driven by `gbrain schema show --json`. This means:
- A user who runs `gbrain schema use gbrain-recommended` gets the full
recommended directory set (deal, meeting, concept, project, source, daily, personal, civic, original, place, trip, conversation, writing, plus all gbrain-base types).
- A user who authored a custom pack via `gbrain schema init` + edit gets
filing recommendations based on THEIR taxonomy, not gbrain's defaults.
- Per-source overrides (tier 3 in the 7-tier resolution chain) are honored
when `--source <id>` is passed to brain-taxonomist.
This is the single-source-of-truth principle (D9 from the v0.39 plan-eng-review).
When to Consult (MANDATORY)
Run the taxonomist check before writing to the brain in these cases:
1. **New brain page** — any `type` (person, company, concept, book, meeting, etc.) 2. **Bulk import** — before committing a batch of new pages 3. **Uncertain filing** — when the primary subject is ambiguous
You do NOT need to consult for:
- Updating an existing page in place (same path)
- Appending to a Timeline section
- Meeting entity propagation to existing pages
Decision Protocol
Step 1: Identify primary subject type
Walk these questions in order: 1. Is the primary subject a NAMED PERSON? → person-typed directory 2. Is the primary subject a NAMED ORGANIZATION? → company-typed directory 3. Is it about a TIME-BOUNDED EVENT (meeting, deal, trip)? → temporal-typed directory 4. Is it a REUSABLE MENTAL MODEL? → concept-typed directory 5. Is it RAW MEDIA (article, video, book, PDF)? → media-typed directory 6. Is it BULK SOURCE DATA? → source-typed directory 7. None of the above → consult EIIRP Phase 3 for schema-pack candidate creation.
Step 2: Look up the directory for that type in the active pack
gbrain schema show --json | jq '.page_types[] | select(.primitive == "entity")'
Each `page_types[]` entry has a `path_prefixes:` array. The first prefix is the canonical path. If multiple types match (e.g. both `person` and `founder` exist in the pack with `expert_routing: true`), prefer the more specific one (the one with the more specific path prefix).
Step 3: For books — determine sub-category
The `gbrain-recommended` pack treats books as `media/books/<category>/<slug>.md` where category is one of: psychology, philosophy, spirituality, business, media-and-society, family-and-divorce, heritage, science, fiction, biography, arts-and-design. If your active pack has a different scheme, walk it from `gbrain schema show --json` instead of hardcoding here.
Step 4: Construct the slug
- kebab-case, descriptive
- no author name unless disambiguation is needed
- match the canonical path prefix exactly (no leading slash)
Step 5: Validate before writing
- [ ] Path follows the active pack's `page_types[].path_prefixes`
- [ ] Slug is kebab-case, descriptive
- [ ] Frontmatter includes `type:` matching one of the pack's `page_types[].name`
- [ ] Cross-links to related pages are included
If the active pack doesn't have a type for what you're trying to file, DON'T pick the closest-fitting one. Instead, signal to EIIRP that a new type is needed and let the schema-pack cathedral handle the proposal flow.
Integration with Other Skills
- `eiirp` — calls this skill as Phase 2 TAXONOMY for every output in its inventory.
- `ingest` — article/media ingestion consults brain-taxonomist for filing.
- `repo-architecture` — delegates the filing decision to this skill.
- `book-mirror` — after generating a mirror, files it via brain-taxonomist.
Periodic Drift Detection
# What pages have no type matching the active pack? gbrain schema review-orphans --json # What's the overall health? gbrain doctor --json | jq '.checks[] | select(.name == "schema_pack_consistency")'
When `schema_pack_consistency` warns at >10% untyped, run the EIIRP Phase 3 SCHEMA CHECK flow to surface candidate types via `schema detect`.
Output Format
Advisory: a single recommendation block plus a one-line reasoning trail.
**File at:** `<directory>/<slug>.md` **Reasoning:** - Primary subject: <person|company|concept|...> - Matched page_type: <name> (primitive: <enti
Search gives you raw pages. GBrain gives you the answer. It's the brain layer your AI agent has been missing — the only one that does synthesis, graph traversal, and gap analysis in one box.
Repo: garrytan/gbrain
Other skills on gbrain.
- /voice-persona-mars
Route to Mars (introspective thought partner / demo showman voice persona). Used when the operator wants depth, meaning, or impressive social demos rather than logistics. Mars handles SOLO mode (philosophy, presence, patterns) and DEMO mode (tool-driven showmanship)
Open skill - /voice-persona-venus
Route to Venus (sharp executive-assistant voice persona). Used for logistics — calendar, tasks, recent messages, brain lookups — at sub-second phone-call latency. The default voice persona unless DEFAULT_PERSONA=mars is set.
Open skill - /voice-post-call
Post-call handling for a voice session — turn the transcript into a brain page, post the summary to the operator's messaging surface, archive the audio. Belt-and-suspenders: fires both from a tool the voice persona can call mid-call AND from the automatic call-end handler in
Open skill - /retrieval-reflex
When/what to retrieve — open the brain page for a salient entity before answering from memory.
Open skill - /academic-verify
Verify a research claim or academic citation by tracing it through publication → methodology → raw data → independent replication. Routes through perplexity-research for the actual web lookup, then formats results as a citation-checked brain page. Use when a
Open skill - /archive-crawler
Universal archivist for personal file archives (Dropbox/B2/Gmail-takeout/local-mount/hard-drive-dump). Filters for high-value content (the user's own writing, ideas, relationships) and surfaces it interactively. REFUSES TO RUN without an explicit gbrain.yml
Open skill

