mcpField
T
taxonomy-builder

taxonomy-builder

github.com/willoscarProductivity51750 installsUpdated 3w ago
Repository

About taxonomy-builder

taxonomy-builder generates a reader-oriented topic structure for surveys or snapshots from a core paper set. It can load curated domain packs when the stated project intent matches, or use a generic builder otherwise.

Key features

  1. 01Builds a taxonomy from core papers
  2. 02Supports curated packs for four domains
  3. 03Falls back to a generic builder
  4. 04Preserves existing non-placeholder taxonomies

Use cases

  1. 01Structuring a survey before drafting prose
  2. 02Organizing a paper corpus into described topics

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/willoscar/research-units-pipeline-skills --skill taxonomy-builder

After installing, type/taxonomy-builderin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

assets/
taxonomy_schema.json
assets/domain_packs/
embodied_ai.yaml
gen_image.yaml
llm_agents.yaml
rag_evaluation.yaml
references/
archetypes_generic.md
domain_pack_embodied_ai.md
domain_pack_gen_image.md
domain_pack_llm_agents.md
examples_bad.md
examples_good.md
overview.md
taxonomy_principles.md
scripts/
run.py

Details

From the project README

Taxonomy Builder (router, compatibility mode)

Triggers & routing

  • Trigger: taxonomy, taxonomy builder, 分类, 主题树, taxonomy.yml.
  • Use when: survey/snapshot 的结构阶段(NO PROSE),已有 papers/core_set.csv,需要生成可映射且读者友好的主题结构。
  • Skip if: 已经有批准过且可映射的 taxonomy(不要无意义重构)。
  • Network: none.
  • Guardrail: 避免泛化占位桶;保持 2+ 层且每节点有具体描述。

Build outline/taxonomy.yml from papers/core_set.csv.

P0 compatibility note:

  • The output contract stays the same (outline/taxonomy.yml, YAML list, >=2 levels, concrete descriptions).
  • Curated domain taxonomies now live in assets/domain_packs/*.yaml instead of Python prose.
  • scripts/run.py stays a deterministic scaffold/helper: detect domain pack -> load pack when available -> otherwise fall back to the generic builder.

Load Order

  1. references/overview.md
  2. references/taxonomy_principles.md
  3. If a domain pack applies, read its references/domain_pack_<domain>.md and assets/domain_packs/<domain>.yaml
  4. Otherwise read references/archetypes_generic.md
  5. Calibrate naming/description quality with references/examples_good.md and references/examples_bad.md

Current compatibility packs:

  • llm_agents
  • gen_image
  • embodied_ai
  • rag_evaluation

Explicit refinement marker

Create outline/taxonomy.refined.ok only after reviewing a manually refined taxonomy. The marker is honored only while it is newer than the taxonomy, its upstream evidence, and the generator; stale markers are removed and the prior taxonomy is backed up before regeneration.

Inputs

  • papers/core_set.csv (required)
  • Optional: papers/papers_dedup.jsonl
  • Optional: DECISIONS.md, GOAL.md, queries.md

Outputs

  • outline/taxonomy.yml

Asset contract

  • assets/taxonomy_schema.json: machine-readable shape for domain packs / output expectations
  • assets/domain_packs/*.yaml: compatibility domain packs for supported domains

Script role

Use scripts/run.py only for deterministic help:

  • never overwrite non-placeholder user taxonomy
  • preserve current CLI flags / output path
  • load a supported domain taxonomy only when GOAL.md / queries.md explicitly match its detection contract
  • keep the generic fallback builder for non-packed domains

When to refine manually

Refine the generated taxonomy before marking the unit DONE if:

  • top-level buckets feel like keyword clusters instead of chapter-level questions
  • leaf names are generic (Overview, Benchmarks, Open Problems, Misc)
  • descriptions lack scope cues or representative paper anchors
  • domain detection chose the wrong pack

Quick start

  • uv run python .codex/skills/taxonomy-builder/scripts/run.py --help
  • uv run python .codex/skills/taxonomy-builder/scripts/run.py --workspace <workspace>

Execution notes

When running in compatibility mode, scripts/run.py currently reads:

  • papers/core_set.csv as the required corpus input
    • papers/papers_dedup.jsonl when present for generic corpus signals
    • GOAL.md and queries.md as the authoritative domain-pack selection intent; corpus term co-occurrence cannot override them

Script

Quick Start
  • uv run python .codex/skills/taxonomy-builder/scripts/run.py --workspace <workspace>
All Options
  • --workspace <dir>
  • --top-k <int>
  • --min-freq <int>
  • --unit-id <id>
  • --inputs <a;b;...>
  • --outputs <a;b;...>
  • --checkpoint <C*>
Examples
  • uv run python .codex/skills/taxonomy-builder/scripts/run.py --workspace <workspace>

Troubleshooting

  • If the wrong domain pack is chosen, inspect GOAL.md, queries.md, and the pack detect rules before changing Python.
  • If outline/taxonomy.yml already contains a real non-placeholder taxonomy, the script intentionally returns without overwriting it.
  • If no pack matches, the script falls back to the generic builder.

Comments

Markdown supported