Skip to content
Back to skills

Taxonomy Builder

ASecurity

Build a 2+ level taxonomy (`outline/taxonomy.yml`) from a core paper set and scope constraints, with short descriptions per node.

  • 512 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added February 8, 2026
developmentpythongonode

Works with

  • cli

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 20, 2026

npx -y skills add WILLOSCAR/research-units-pipeline-skills --skill taxonomy-builder --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Taxonomy Builder?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Taxonomy Builder
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/willoscar-taxonomy-builder/badge)](https://www.skillsdirectory.com/skills/willoscar-taxonomy-builder)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: taxonomy-builder
description: "Build a 2+ level taxonomy (`outline/taxonomy.yml`) from a core paper set and scope constraints, with short descriptions per node."
---

# 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.

Files in this skill

  • SKILL.md6.3 KB
  • scripts/run.py16.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.