Feature Request: Native Canonical Naming Dictionary to prevent identifier inconsistencies

Resolved 💬 2 comments Opened Mar 2, 2026 by fernandofast57 Closed Mar 30, 2026

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:

  1. 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.
  1. 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.
  1. Cross-file consistency check: When generating multiple files in sequence, Claude should maintain an internal map of concept → name and enforce exact reuse.

Current Workaround

We created:

  • A glossario-naming.md file (canonical naming glossary) inside the plugin
  • A persistent MEMORY.md with 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.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗