Feature Request: Native Canonical Naming Dictionary to prevent identifier inconsistencies
Problem
When Claude generates multi-file projects (plugins, codebases, documentation systems), it systematically produces variant names for identical concepts across files. This is a structural limitation of probabilistic text generation: the model selects the most "natural" phrasing in each local context, without enforcing global naming consistency.
Real-world impact (documented case)
Project: A Claude Cowork plugin with 9 AI agents, 7 commands, and shared frameworks (~22 files).
Result: ~30 naming inconsistencies found across 17 files. Examples:
| Canonical Name | Variants Generated | Files Affected |
|---|---|---|
| Knowledge Log | "Knowledge Base", "KB" | 6+ files |
| 4Px3F | "4x3", "4P x 3F", "4 Prodotti x 3 Fattori" | 4+ files |
| Pipeline Contatti | "Pipeline CRM", "CRM Notion", "Pipeline Notion" | 3+ files |
| BLOCCHI (section label) | "COLLI DI BOTTIGLIA", "Bottleneck" | 2+ files |
| critico (severity) | "down" | 2+ files |
| Agent role names | "Visual Designer" instead of "Video & Visual Producer" | 2+ files |
Cost: 3 full sessions to audit, create a glossary, and fix all files. This is a double-work tax that falls on every user building multi-file systems with Claude.
Proposed Solution
A native binding dictionary / canonical naming mechanism that Claude consults before generating any identifier, label, or domain-specific term. This could be:
- Session-level naming registry: When Claude generates a name for a concept, it registers
concept → canonical_name. Before generating any subsequent name, it checks the registry first.
- Project-level glossary awareness: If a glossary/dictionary file exists in the project (e.g.,
glossario-naming.md,NAMING.md,.claude/naming.json), Claude should actively consult it before producing any name — not just when explicitly reminded.
- Cross-file consistency check: When generating multiple files in sequence, Claude should maintain an internal map of
concept → nameand enforce exact reuse.
Current Workaround
We created:
- A
glossario-naming.mdfile (canonical naming glossary) inside the plugin - A persistent
MEMORY.mdwith a "Rule Zero: Naming" section - Manual grep verification after each generation pass
This works but requires user-driven enforcement — the system should handle this natively.
Why This Matters
In software engineering, naming inconsistency is not a cosmetic issue — it breaks:
- Code references and imports
- Database field mappings
- API contracts
- Documentation cross-references
- Search/grep operations
- Team communication
When Claude is used as a production tool for multi-file systems, naming consistency must be deterministic, not probabilistic.
Environment
- Claude Code CLI (Opus 4.6)
- Multi-file generation context (22 files, shared naming conventions)
- Domain: Italian-language business plugin with specific terminology
Suggested Implementation Priority
High — this affects every user who builds multi-file projects with Claude, regardless of language or domain.
---
Reported by a user building a Claude Cowork plugin ecosystem. The 4Px3F quality framework classifies this as a P1 (Institution/System) × Quality issue: the production system itself generates inconsistent output.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗