Loading...
Loading...
Manage terminology glossary with Vale. TRIGGERS - sync terms, glossary validation, add terms, Vale vocabulary.
npx skill4agent add terrylica/cc-skills glossary-management~/.claude/docs/GLOSSARY.md# Manual sync to Vale
bun ~/.claude/tools/bin/glossary-sync.ts
# Check for duplicates/conflicts across projects (invokes terminology-sync hook)
bun ~/eon/cc-skills/plugins/itp-hooks/hooks/posttooluse-terminology-sync.ts <<< '{"tool_name":"Edit","tool_input":{"file_path":"/tmp/test-CLAUDE.md"}}'┌─────────────────────────────────────────────────────────────────┐
│ GLOSSARY.md (SSoT) │
│ ~/.claude/docs/GLOSSARY.md │
└─────────────────────────┬───────────────────────────────────────┘
│
┌───────────────┼───────────────┐
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌───────────┐ ┌────────────────────┐
│ accept.txt │ │ Term.yml │ │ Project CLAUDE.md │
│ (Vale vocab) │ │ (subs) │ │ (bidirectional) │
└─────────────────┘ └───────────┘ └────────────────────┘SCAN_PATHS<!-- SCAN_PATHS:
- ~/eon/*/CLAUDE.md
- ~/eon/*/*/CLAUDE.md
- ~/.claude/docs/GLOSSARY.md
--><!-- SCAN_PATHS:-***~~/eon/*/CLAUDE.md~/eon/*/*/CLAUDE.md| Column | Required | Description | Example |
|---|---|---|---|
| Term | Yes | Bold term name ( | |
| Acronym | Yes | Abbreviation (or | |
| Definition | Yes | Clear, concise definition | |
| Unit/Range | Yes | Measurement unit or valid range | |
| Projects | Yes | Comma-separated project names | |
| **Time-Weighted Sharpe** | TWSR | Sharpe ratio for variable-duration bars using time weights | annualized ratio | alpha-forge || Hook | Trigger | Action |
|---|---|---|
| Edit | Sync to Vale vocabulary |
| Edit project | Merge terms → GLOSSARY.md, detect conflicts |
bun ~/.claude/tools/bin/glossary-sync.ts=== Glossary Bidirectional Sync ===
Source: /Users/you/.claude/docs/GLOSSARY.md
Found 25 acronyms, 24 substitutions
Updated: .vale/styles/config/vocabularies/TradingFitness/accept.txt
Total terms: 27
Updated: .vale/styles/TradingFitness/Terminology.yml
Substitution rules: 24
Updated timestamp: 2026-01-22T00:00:00Z
=== Sync Complete ===# Check required columns
grep -E '^\| \*\*[^|]+\*\* \|' ~/.claude/docs/GLOSSARY.md | head -5
# Verify table structure (should have | Term | Acronym | Definition | Unit/Range | Projects |)
head -25 ~/.claude/docs/GLOSSARY.md| Term | Acronym | Definition | Unit/Range | Projects |
| ------------------------ | ------- | --------------------------- | ---------- | ----------- |
| **Time-Weighted Sharpe** | TWSR | Sharpe ratio for range bars | ratio | alpha-forge |# Full duplicate check (scans ~/eon/*/CLAUDE.md)
bun ~/eon/cc-skills/plugins/itp-hooks/hooks/posttooluse-terminology-sync.ts <<< '{"tool_name":"Edit","tool_input":{"file_path":"/tmp/test-CLAUDE.md"}}'| **New Term** | NT | Definition of the new term | - | project-name |posttooluse-glossary-syncecho "The NT is important" | vale --config=~/.claude/.vale.ini| File | Purpose |
|---|---|
| Accepted terms (won't be flagged) |
| Substitution rules (suggests canonical form) |
# Check a single file (run from file's directory for glob patterns to match)
cd ~/eon/trading-fitness && vale --config=~/.claude/.vale.ini CLAUDE.md
# Check all CLAUDE.md files
find ~/eon -name "CLAUDE.md" -exec sh -c 'cd "$(dirname "$1")" && vale --config=~/.claude/.vale.ini "$(basename "$1")"' _ {} \;.vale.ini[CLAUDE.md]grep "Last Sync" ~/.claude/docs/GLOSSARY.mdbun ~/.claude/tools/bin/glossary-sync.tscat ~/.claude/.vale.ini | grep StylesPathgrep "glossary-sync" ~/.claude/settings.jsonls -la ~/.claude/plugins/marketplaces/cc-skills/plugins/itp-hooks/hooks/posttooluse-glossary-sync.tsposttooluse-vale-claude-md.ts.vale.ini# Wrong - may show "0 files"
vale --config=/path/to/.vale.ini /absolute/path/to/CLAUDE.md
# Correct - cd first
cd /absolute/path/to && vale --config=/path/to/.vale.ini CLAUDE.md# Check for duplicate vocab dirs (should only have config/vocabularies/)
ls -la ~/.claude/.vale/styles/
# Remove any stale Vocab/ directory
rm -rf ~/.claude/.vale/styles/Vocab/~/.claude/docs/GLOSSARY.md