willoscar/terminology-normalizer
| Normalize terminology across a draft (canonical terms + synonym policy) without changing citations or meaning.
npx skills add https://github.com/WILLOSCAR/research-units-pipeline-skills --skill terminology-normalizer
Purpose: make the draft read like one author wrote it by enforcing consistent naming (canonical terms + synonym policy), without changing citations or meaning.
Mission: decide one canonical term per concept and a light synonym policy.
Do:
outline/taxonomy.yml) as canonical labels when available.Avoid:
Mission: apply replacements consistently without changing meaning or citations.
Do:
Avoid:
You are normalizing terminology in a technical survey draft.
Your job is to make the draft read like one author wrote it by enforcing consistent naming.
Constraints:
- do not add/remove citation keys
- do not move citations across ### subsections
- do not introduce new claims while renaming
Method:
- pick a canonical term per concept
- define allowed synonyms (optional, minimal)
- apply consistently across headings, prose, and tables
output/DRAFT.mdoutline/outline.yml (heading consistency)outline/taxonomy.yml (canonical labels)output/DRAFT.md (in place)output/GLOSSARY.md (short appendix/glossary table, if useful)Use the role cards above.
Steps:
1) Build a glossary candidate list from the draft (10–30 key terms):
2) Choose canonical names and a synonym policy:
outline/taxonomy.yml exists: prefer taxonomy node names as canonical labels (avoid inventing new names)outline/outline.yml exists: keep section headings aligned with the same canonical terms3) Apply replacements conservatively:
4) Optional: write a small output/GLOSSARY.md:
term | canonical | allowed synonyms | notestool API, tool interface, action schema used interchangeably without a rule.tool interface) and allow one synonym only when first introduced (e.g., tool interface (API contract)), then stick to canonical thereafter.### subsections.Fix:
Fix:
Take willoscar/terminology-normalizer from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.