skills/brain-taxonomist/SKILL.md
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`.
npx skillsauth add garrytan/gbrain brain-taxonomistInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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.
This skill guarantees:
skills/ask-user/ rather than silently picking a default.--source <id> are honored — multi-brain users (Persona B) get a different recommendation per source if their packs diverge.page_types[] entry exists in the active pack, the skill signals to EIIRP Phase 3 (SCHEMA CHECK) rather than picking the closest-fitting fallback.brain-taxonomist has NO hardcoded directory table. Every decision is
driven by gbrain schema show --json. This means:
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).gbrain schema init + edit gets
filing recommendations based on THEIR taxonomy, not gbrain's defaults.--source <id> is passed to brain-taxonomist.This is the single-source-of-truth principle (D9 from the v0.39 plan-eng-review).
Run the taxonomist check before writing to the brain in these cases:
type (person, company, concept, book, meeting, etc.)You do NOT need to consult for:
Walk these questions in order:
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).
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.
page_types[].path_prefixestype: matching one of the pack's page_types[].nameIf 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.
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.# 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.
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: <entity|temporal|concept|media|annotation>)
- Active pack: <pack-name> v<version>
- Source: <source_id>
When ambiguous, surface 2 candidates via skills/ask-user/ rather than
silently choosing.
When the active pack has NO matching type, signal to EIIRP Phase 3 (SCHEMA CHECK) and emit:
**No match in active pack `<name>`.**
**Suggested next step:** `gbrain schema detect --source <source_id>` then
`gbrain schema review-candidates`.
gbrain schema show --json. v0.39+ broke the old hardcoded table on
purpose so users on gbrain-recommended or custom packs get the right
routing automatically.--source <id> on multi-brain setups. Per-source overrides
are tier-3 in the 7-tier resolution chain; missing the flag silently
uses the brain-wide active pack.gbrain schema review-candidates --apply decision.
Even high-confidence suggestions need user approval — this skill is a
GATE, not an automator.gbrain schema show --json. The active pack is canonical.--source <id> to every CLI
call when working with a non-default source.gbrain schema show --json. Single source of truth.gbrain-recommended pack's
media/books/ branch (see src/core/schema-pack/base/gbrain-recommended.yaml).--source <id> propagation documented for multi-brain users (Persona B).tools
Validate and auto-repair YAML frontmatter on brain pages. Catches malformed pages before they enter the brain (missing closing ---, nested quotes, slug mismatches, null bytes, empty frontmatter, YAML parse failures). Wraps the `gbrain frontmatter` CLI for agent-driven workflows.
data-ai
Trace one idea's evolution through the brain: first mention, best articulation, related concepts, reversals, contradictions, abandoned branches, and the current live version. Use for single-idea conceptual lineage, not broad concept-map synthesis or structured entity metrics.
data-ai
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.
tools
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) automatically.