intername
What it does: Per its actual code: a sourced bash library (hooks/lib-naming.sh — confirmed 0 hooks, 0 MCP servers in plugin.json) plus two slash commands (name, name-theme). It maps technical agent/agency IDs (e.g. fd-safety, flux-drive) to deterministic, memorable display names (e.g. ‘Lapsed Pacifist’, ‘The Difficult Second Album’) read from JSON theme files via jq. Features: custom-override layering (custom.json takes precedence when customOverrides:true), dispatch formatting (‘Name (n/total)’), TSV list functions, an INTERNAME_DISABLED=1 kill switch, and raw-ID fallback whenever naming is disabled, jq is missing, or no mapping exists. It is pure presentation/legibility infrastructure for multi-agent orchestration — it does not route, dispatch, coordinate, persist, or call any LLM. Consumers (intermux, interflux, intertrust, interline) source the library on demand and fall back to raw IDs if intername is absent.
Rationale: Grounded in the files: this is a small, mature, single-purpose plugin that does one thing well. The library is clean, defensively coded (every entry point checks _name_enabled and jq availability before touching files, and falls back to the raw ID), and covered by 16 passing tests plus a structural test suite. Its zero-MCP, sourced-library design is actually an exemplar of the SOTA-endorsed ‘thin surface, no eager tool loading’ pattern — the MCP context-bloat / progressive-disclosure findings that drive ‘modernize’ verdicts elsewhere simply do not apply to a plugin that registers no tools and costs zero context tokens. The frontier themes (orchestrator-worker topology, agentic memory tiers, context engineering, RAG-MCP tool selection) are about coordination/memory/routing engines; intername is the legibility layer those engines render through, so they are not gaps for it. Verdict is keep — not improve/modernize — because the only defects are documentation drift and a copy-paste metadata bug, not an architectural or capability shortfall.
SOTA gap: Essentially none that warrants modernization. The single tangentially-relevant frontier idea is the agent-interoperability/identity stack (A2A capability-advertising Agent Cards, AgentDNS naming arXiv:2505.22368, attested-identity/delegation routing arXiv:2603.18043): as cross-agent identity standardizes, a naming layer could eventually bind display names to a shared A2A/AgentDNS identity rather than a purely local ID->name map, so a ‘Lapsed Pacifist’ is recognizable across rigs, not just within this ecosystem. This is aspirational alignment, not a deficiency — intername’s deterministic local mapping is correct for its current job.
Redundancy: Clean. The only adjacency is intership (Culture ship names as spinner verbs), and README/AGENTS.md explicitly delineate the two: intername = persistent identity infrastructure for agents/agencies; intership = transient cosmetic spinner verbs. No duplication with intermux/interflux/intertrust/interline — those are documented CONSUMERS of intername’s library, not competitors. No overlap with interspect (routing/calibration) or intername’s data with any other plugin’s data store.
Actions:
- Fix the doc-drift: README.md, AGENTS.md, CLAUDE.md, and commands/name-theme.md all say ‘4 themes (culture, demarch, nato, custom)’ but disk ships a 5th theme sylveste.json — update all four docs and the name-theme argument-hint to list 5 themes (or remove sylveste.json if it was unintended).
- Fix the copy-paste metadata bug: data/themes/sylveste.json’s _meta.description is a verbatim copy of demarch.json’s boundary/diplomatic description; write a Sylveste-specific description so /name-theme shows a distinct blurb.
- Add an auto-naming fallback for unregistered agent types: since flux-gen can generate new agents dynamically, _name_resolve currently silently returns the raw ID. Add a deterministic generated-name path (e.g. hash-seeded pick from a per-theme name pool) so new agents stay legible without hand-editing every theme file.
- Update tests/structural/test_structure.py and tests/test_naming.sh to assert the on-disk theme set matches the documented set, so future theme additions/removals can’t drift from the docs again.