code-review-and-qualit…
Reviews a code change for correctness, security, maintainability, architecture, performance, and verification gaps, or performs a…
Recommends names for concepts, identifiers, modules, files, entities, events, or product terms, or audits an existing naming set for misleading vocabulary and viewpoint drift. Use for “what should I call this?”, rename requests, or naming reviews(起名、命名、改名、名字不清楚). Give a concise
$ npx -y skills add hylarucoder/hai-stack --skill hai-naming --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/hai-namingContext preview
The summary Claude sees to decide when to auto-load this skill.
Recommends names for concepts, identifiers, modules, files, entities, events, or product terms, or audits an existing naming set for misleading vocabulary and viewpoint drift. Use for “what should I call this?”, rename requests, or naming reviews(起名、命名、改名、名字不清楚). Give a concise
name: hai-naming description: | Recommends names for concepts, identifiers, modules, files, entities, events, or product terms, or audits an existing naming set for misleading vocabulary and viewpoint drift. Use for “what should I call this?”, rename requests, or naming reviews(起名、命名、改名、名字不清楚). Give a concise answer for one local name; use the full vocabulary map and migration scope only for cross-module or public naming audits. Route boundary problems exposed by naming to hai-architecture.
For Chinese readers, see `SKILL.zh_CN.md`. The English `SKILL.md` is the execution source of truth.
Treat naming as a model of the system, not a thesaurus exercise. A useful name tells the intended reader what the concept is, who owns it, and how it differs from its neighbors without forcing them to reconstruct hidden context.
candidates, recommend one, and explain the decisive distinction briefly.
migration impact. Build a vocabulary map, trace the call flow, and return prioritized renames.
Do not force an audit-sized reasoning trail onto a local identifier question.
1. **Name in context.** Read the declaration, callers, neighboring concepts, layer, audience, and lifecycle available in the user's scope. Never invent a global model from one isolated snippet. 2. **Choose a viewpoint.** Product names describe user intent, domain names describe durable concepts, runtime names describe execution responsibility, and adapter names describe the boundary crossed. Keep the viewpoint stable until a real boundary changes it. 3. **Preserve decisive information.** Shorten only when the surrounding expression carries the omitted meaning. Public and cross-module names should usually be more explicit than local ones. 4. **Use one word per concept.** The same concept keeps one term; different concepts do not share a convenient generic word. 5. **Name ownership, not incidental mechanics.** `Manager`, `Service`, `Helper`, `Data`, `Info`, `Context`, `get`, and `build` are acceptable only when they accurately express the local model. 6. **Treat naming friction as evidence.** If every candidate needs a paragraph of explanation, the concept may mix responsibilities or viewpoints. Recommend a design clarification instead of more synonyms.
Read `references/principles.md` when a public or cross-module decision needs the expanded context, call-flow, symmetry, lifecycle, or migration checks.
1. State the concept, reader, layer, and nearest competing term. 2. Inspect the surrounding code or text the user supplied. 3. Generate three to five candidates that differ meaningfully, not cosmetically. 4. Recommend one and explain why the closest alternative loses. 5. Flag a design problem only when the evidence actually makes naming unstable.
1. Read the relevant declarations, callers, contracts, docs, and persisted/wire names. 2. Map actors, concepts, lifecycle states, layer-specific vocabulary, and overloaded terms. 3. Identify wrong viewpoint, lost information, stale vocabulary, collisions, and inconsistency. 4. Prioritize public/API/domain names before small locals. 5. For each rename, state `old -> new`, evidence, conceptual repair, affected surfaces, and whether compatibility is required by a real contract. 6. Separate the recommended vocabulary from the migration plan.
Use the matching mode in `references/output-template.md`. A quick answer should remain conversational and compact. An audit must include evidence and migration scope, but it does not need to expose a performative “top-of-head” reasoning chain. Explain only what changed after reading when that change affects the recommendation.
Do not act as a casing linter, rigid naming standard, or synonym generator. Project conventions constrain the answer, but conceptual clarity decides it.
让 Coding Agent 把软件迭代做对:从真实问题出发,完成改动,用证据确认结果。 支持:大多数能读取 Skills(SKILL.md)的 Coding Agent,例如 Claude Code、Codex。 hai-stack 由 @海拉鲁编程客 创建。它把一次软件迭代拆成判断、设计、动手、确认、沉淀五步,每一步都有对应的技能。
Reviews a code change for correctness, security, maintainability, architecture, performance, and verification gaps, or performs a…
Audits an entity model field by field: what should exist, what exists now, where each value belongs (column, config, computed…
Challenges an overly conservative, incremental, or compatibility-led proposal with a bold target model, a concrete…
Pressure-tests an ambitious proposal and returns a landing judgment, one minimum viable proof, explicit cuts, success/failure…
Investigates architecture and change complexity from repository runtime paths to bounded modules, React components, and shared…
Produces a ready-to-run ast-grep command or reusable YAML lint/codemod rule, validated against positive and negative fixtures.…