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`.
81%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
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.# Which pages have no type matching the active pack? Counts untyped pages AND
# pages whose type the pack neither declares nor aliases (undeclared_types).
gbrain schema review-orphans --json
# Per-type audit of the stored corpus (stored_type_undeclared / stored_type_is_alias).
gbrain schema lint --with-db --jsonBoth commands run locally. Over MCP, the run_doctor report carries the
same verdict as its schema_pack_consistency check (an undeclared type
warns with code page_type_undeclared).
When undeclared types show up, declare them in the pack
(gbrain schema add-type <type> --primitive <p> --prefix <dir/>) or rewrite
the pages with a declared type. When more than 10% of a source is 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`.Follow the agent operator protocol for any gbrain error code, exit code, [AGENT] block or notice block. Specific to this skill:
gbrain schema show / gbrain schema lint fails because no schema pack is active or the pack is corrupt: report it and route to the schema-author skill; do not guess a directory from memory.gbrain schema add-type, gbrain schema use): this skill is advisory. Hand it to EIIRP or schema-author with the user's agreement; never mutate the active pack from here.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).garrytan/gbrain
c3e8fd2
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.