glossary-management

安装量: 62
排名: #12051

安装

npx skills add https://github.com/terrylica/cc-skills --skill glossary-management

Manage the global terminology glossary (~/.claude/docs/GLOSSARY.md) and its Vale integration. The glossary is the Single Source of Truth (SSoT) for terminology across all projects.

When to Use This Skill

Use when:

  • Manually syncing glossary to Vale vocabulary files

  • Validating glossary format and structure

  • Checking for duplicate or conflicting terms across projects

  • Adding new terms programmatically

  • Troubleshooting Vale terminology warnings

Quick Commands

# 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"}}'

Architecture

┌─────────────────────────────────────────────────────────────────┐
│                    GLOSSARY.md (SSoT)                           │
│                ~/.claude/docs/GLOSSARY.md                       │
└─────────────────────────┬───────────────────────────────────────┘
                          │
          ┌───────────────┼───────────────┐
          │               │               │
          ▼               ▼               ▼
┌─────────────────┐ ┌───────────┐ ┌────────────────────┐
│ accept.txt      │ │ Term.yml  │ │ Project CLAUDE.md  │
│ (Vale vocab)    │ │ (subs)    │ │ (bidirectional)    │
└─────────────────┘ └───────────┘ └────────────────────┘

SCAN_PATHS Configuration

The terminology sync hook uses SCAN_PATHS to discover project CLAUDE.md files. This is configured via an HTML comment in GLOSSARY.md:

<!-- SCAN_PATHS:
- ~/eon/*/CLAUDE.md
- ~/eon/*/*/CLAUDE.md
- ~/.claude/docs/GLOSSARY.md
-->

Format rules:

  • Must be an HTML comment starting with <!-- SCAN_PATHS:

  • Each path on its own line with - prefix

  • Supports glob patterns (*, **)

  • Paths are relative to home directory (~)

Default paths (if not specified):

  • ~/eon/*/CLAUDE.md - Top-level project CLAUDE.md files

  • ~/eon/*/*/CLAUDE.md - Package-level CLAUDE.md files

Table Schema (5 Columns)

Every term in GLOSSARY.md follows this 5-column format:

| Term | Yes | Bold term name (**Term**) | **Time-Weighted Sharpe**

| Acronym | Yes | Abbreviation (or - if none) | TWSR

| Definition | Yes | Clear, concise definition | Sharpe ratio for range bars

| Unit/Range | Yes | Measurement unit or valid range | ratio, [0, 1], -

| Projects | Yes | Comma-separated project names | alpha-forge, trading-fitness

Example row:

| **Time-Weighted Sharpe** | TWSR | Sharpe ratio for variable-duration bars using time weights | annualized ratio | alpha-forge |

Automatic Sync (Hooks)

Two PostToolUse hooks handle automatic sync:

| posttooluse-glossary-sync | Edit ~/.claude/docs/GLOSSARY.md | Sync to Vale vocabulary

| posttooluse-terminology-sync | Edit project CLAUDE.md | Merge terms → GLOSSARY.md, detect conflicts

Manual Operations

Sync Glossary to Vale

When automatic sync fails or you need to force a refresh:

bun ~/.claude/tools/bin/glossary-sync.ts

Output:

=== 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 ===

Validate Glossary Format

Check that GLOSSARY.md follows the correct table format:

# 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

Expected format:

| Term                     | Acronym | Definition                  | Unit/Range | Projects    |
| ------------------------ | ------- | --------------------------- | ---------- | ----------- |
| **Time-Weighted Sharpe** | TWSR    | Sharpe ratio for range bars | ratio      | alpha-forge |

Check for Duplicates

Scan all project CLAUDE.md files for terminology conflicts:

# 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"}}'

Conflict types detected:

  • Definition conflict: Same term, different definitions

  • Acronym conflict: Same term, different acronyms

  • Acronym collision: Same acronym used for different terms

Add New Term

To add a new term to the glossary:

  • Edit GLOSSARY.md directly:
| **New Term** | NT | Definition of the new term | - | project-name |
  • Sync will auto-trigger via posttooluse-glossary-sync hook

  • Verify Vale recognizes it:

echo "The NT is important" | vale --config=~/.claude/.vale.ini

Vale Integration

Files Generated

| ~/.claude/.vale/styles/config/vocabularies/TradingFitness/accept.txt | Accepted terms (won't be flagged)

| ~/.claude/.vale/styles/TradingFitness/Terminology.yml | Substitution rules (suggests canonical form)

Running Vale

# 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")"' _ {} \;

Important: Vale glob patterns in .vale.ini (like [CLAUDE.md]) are relative to cwd. Always run Vale from the file's directory or use absolute paths with matching glob patterns.

Troubleshooting

Terms Not Being Recognized

  • Check sync timestamp:
grep "Last Sync" ~/.claude/docs/GLOSSARY.md
  • Force manual sync:
bun ~/.claude/tools/bin/glossary-sync.ts
  • Verify Vale config path:
cat ~/.claude/.vale.ini | grep StylesPath

Hook Not Triggering

  • Check hook is registered:
grep "glossary-sync" ~/.claude/settings.json
  • Verify hook file exists:
ls -la ~/.claude/plugins/marketplaces/cc-skills/plugins/itp-hooks/hooks/posttooluse-glossary-sync.ts

Vale Output Shows "0 files" But File Exists

This happens when Vale's glob patterns don't match the file path. The posttooluse-vale-claude-md.ts hook handles this by:

  • Walking up from the file's directory to find .vale.ini

  • Changing to the file's directory before running Vale

  • Stripping ANSI escape codes for reliable output parsing

If running Vale manually, ensure you're in the file's directory:

# 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

Duplicate Vocabulary Directories

If you see Vale inconsistencies:

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

References

返回排行榜