Skill naming conventions

Table of Contents

1. Summary

A name is what makes a catalogue selectable. An agent choosing among skills reads names before it reads anything else, so a predictable name is part of the attenuation the framework depends on rather than a matter of tidiness (Systems and levels).

Every Claude Code skill this project authors carries the compass- prefix and is named after the thing we want to do — never after a role (sprint-planner), an artefact (pr-manager), or the compass command the skill happens to run. The domain prefix and the verb each come from a closed register defined below. Before adding a skill, check this document and the skills inventory: the name must parse against both registers and must not duplicate an existing skill's action.

2. Detail

2.1. Form

The compass- prefix marks a skill this project owns, and the second segment says which regulatory function it offers. Five shapes exhaust the catalogue.

compass-helm                                  the sticky mode
compass-principle-<rule>                      stance, cited not run
compass-method-<kind>                         a sequence of phases
compass-<domain>-<verb>[-<object>]            an action on a typed target
compass-act, compass-act-all, compass-export  dispatch

An action keeps the <domain>-<verb>[-<object>] form it has always had; the prefix is the only addition. principle- and method- are second segments rather than domains, because a principle names no artefact type and a method spans several.

  • kebab-case throughout; the name is the directory under doc/llm/skills/, the deployed directory under .claude/skills/, and the name: frontmatter field — keep all three identical.
  • Named after the intent, not the mechanism: the user thinks "I want to merge this PR", so the skill is compass-pr-merge — regardless of whether compass pr merge, gh, or anything else implements it.
  • The object is omitted only when the verb is unambiguous within the domain (compass-pr-merge).

2.2. Prefix register

Prefix Domain
agile- stories, tasks, sprints, backlog, journal, fleet, bearings, hotfixes
pr- pull-request lifecycle
doc- recipes, knowledge, manual, memory, search across documents
code- hand-written code: build, tests, review, investigation
codegen- generated code: entities, components, schemas
devops- environment, database, services, shell, site
skill- the skills themselves (meta)

code- vs codegen-: manual versus automatic. Writing a unit test by hand is compass-code-add-tests; scaffolding an entity from a model is compass-codegen-add-entity.

Every entry above is preceded by compass-, so the domain is the second segment of an action's name: compass-pr-merge, compass-agile-start-task. Two further second segments are reserved, and they take no domain:

Segment Names
principle- A rule that is cited rather than run, offering the citation function
method- A sequence of phases ending in a verified state, offering the sequencing function

2.2.1. Which name shape offers which function

A name says what a thing does, so it also says which regulatory function it offers. The seven functions and their bearers, from Regulatory Functions:

Function The agent… Named as
loading consults it for what is so knowledge, recipe, memory, System, manual
citation cites it against a judgement a principle- skill
sequencing follows its phases a method- skill, runbook
execution runs it against a target an action, recipe
declaration states behaviour it can then check specification, task, story
convening convenes a deliberation over it the Council's own /council
recording writes state back against a lifecycle task, story, sprint, capture, design

A type may offer several: a recipe is both loaded for its command and executed for its script, which is why the classification is by function rather than by a hierarchy of kinds.

2.3. Verb register

Verb Meaning
add- create the artefact, documents only — no side effects (no branch, no journal)
start- pick up a unit of work: branch + STARTED + journal stamp
close- end the bookkeeping: DONE, Result, story/sprint sync; cascades — closing a story's last task offers to close the story
find- search or locate
show- display state, change nothing
run- execute something: builds, tests, shell sessions
sync- reconcile local state with remote
review- assess quality against criteria: sprints, PRs, components, skills
update- bring an existing artefact in line with a change elsewhere
open- run an opening ceremony (close predecessor, open successor)
investigate- diagnose a failure to root cause
brainstorm- explore a design through collaborative dialogue
deploy- build an artefact and publish it to where it is consumed
delete- retire an artefact and heal the graph: re-point incoming links, record disposition, purge deployed copies
fix- repair a defect to a defined end state: drift elimination, template bugs, failing behaviour
act- dispatch on a target: resolve its type, offer the operations its regulatory functions declare
export- hand a result set to the artefact type that owns that shape
(bare) rare domain verbs with no object, e.g. compass-pr-merge; also compass-helm, the mode

add versus start is the create-versus-pick-up distinction. Creating a story for backlog refinement must not create a branch; picking one up must.

2.4. Structural rules

  • No roles. A skill is what we do, not who does it. Role skills are dissolved into their constituent actions (e.g. agile product owner → compass-agile-refine-backlog, compass-agile-plan-sprint).
  • Reference-only skills, except principles. If the instructions contain no executable steps, it is usually knowledge wearing a skill costume: demote it to a knowledge doc and link it from the skills that act. The citation function is exempt. A principle is by definition a rule that is cited and never run, so requiring executable steps of it would forbid the whole function; it earns its place as a skill because a phase must be able to load it by name at the moment of judgement.
  • Every skill declares its level. #+level: is mandatory. It is what lets a declared System attenuate the catalogue, which is the whole mechanism by which a session sees a set small enough to choose from well.
  • One skill per runbook. Runbooks are skills' procedural twins; a generic runbook dispatcher hides the actions from discovery.
  • Check before adding. A new skill name must parse against the two registers, and the skills inventory must be checked for an existing skill covering the same action. Extending a register is a deliberate act recorded in the decision log below.

2.5. The level register

#+level: carries one of these values. The level sets the default slice of the catalogue a session sees; the full treatment is in Systems and levels.

Level System Horizon Sees
s1 Agent Hours Execution in full, sequencing, citation, declaration
s2 Orchestrator Days Story and task actions, decomposition methods, deliberation
s3 Sprint Planner Weeks Sprint and backlog actions, planning and review methods
s3star Auditor Continuous Read-only and audit actions only
s4 Version Planner Months Version and release actions, strategy deliberation
s5 Identity Steward Indefinite Identity and backlog-fit actions, deliberation
cross — — Applies at every level

Attenuation is advisory at S1, S2, S3, S4 and S5: a default small enough to choose from well, which an agent may reach outside by saying so. It is binding at S3*, because an audit channel that can be talked into editing what it observes is not an audit channel.

2.6. Where a new thing goes

A name is only decidable once the artefact type is. This is the placement procedure from Regulatory Functions, reproduced where an author naming something will meet it. Take the first match.

  1. A durable fact about the domain goes to a knowledge document. If it is the entry point to a cluster, a structure note.
  2. An account of how one operation is performed here, with a runnable script, goes to a recipe. This is also where a method's missing effector goes.
  3. A correction that must not be repeated goes to a memory. Keep these scarce: each is paid for by every session.
  4. A rule that is cited rather than run goes to a principle.
  5. Intended behaviour that should be checkable goes to a specification.
  6. A sequence of phases ending in a verified state, not tied to one artefact type, goes to a method.
  7. A change to a generated artefact goes to its model or its template, never to the output.
  8. An operation on one artefact type goes to an action, at the pairing of type and verb. The action holds the judgement; the recipe holds the command.
  9. A contested judgement goes to deliberation, and its verdict is recorded against the work.
  10. A role a session or a delegate acts as goes to a System, tagged by level, stating what it must read first and what it may do.
  11. The argument for a change, spanning many tasks, goes to a design in the story's own folder rather than to the durable tree.

2.7. Decision log

Decision Rationale
Work-domain prefixes, not compass pillars Pillars name the tool's internals; domains name the user's intent and survive tool changes
Closed prefix and verb registers Discovery depends on predictability: type /agile- and see everything agile
devops- for environment/operations env- was hard to find; ops- too cryptic; devops- is the term we reach for
codegen- spelled out, not gen- gen- was the odd one out; codegen- is unambiguous against code-
run- verb added Builds, tests, and shells are executions, not additions or starts
show- verb added Read-only orientation actions (journal, fleet) need a side-effect-free verb
close- cascades task→story A story only ever closes via its last task; a third close-work skill would overlap both
Roles dissolved, reference skills demoted Keep the action namespace pure — that is what makes discovery work
run-runbook deleted The new action skills map ~1:1 onto the runbook catalogue; a dispatcher adds a layer without adding capability
review-, update-, open-, investigate-, brainstorm- added Surfaced by the audit of all 40 existing skills: review recurs across four skills; the others each name an action no existing verb covers without distortion
write rejected compass-code-add-tests, not code-write-tests — add already means "create the artefact"
deploy- added The build pillar's deploy_manual/skills/settings/site targets are publish actions, not plain runs
delete- added Retiring a skill is a graph operation, learned when nine deletions broke the site build; the procedure deserves a verb and a skill (compass-skill-delete)
fix- added The drift-elimination method needs the plain repair verb: add- (create), run- (execute), and update- (align with a change elsewhere) each name a different action, and remediation is the load-bearing action of the 12 per-component stories (compass-codegen-fix-drift)
compass- prefix on every skill we own Ownership is the thing a reader needs at a glance, because an upstream skill is referenced and cannot be edited here. The prefix also separates our catalogue from every plugin's in one keystroke
principle- and method- as second segments, not domains A principle names no artefact type and a method spans several, so neither parses as <domain>-<verb>. Making them segments keeps the action form untouched
#+level: mandatory on every skill Attenuation is the mechanism that keeps the offered set small enough to choose well. An unlevelled skill is visible at every level, which defeats it
Citation function exempt from the reference-only rule A principle is by definition cited and never run. Requiring executable steps of it would forbid the entire function; the exemption is narrow and names the one function it covers
act- verb added Dispatch is late binding of verb to noun: the target is known and the operation is not. No existing verb names it, and find- and show- both promise to change nothing, which dispatch cannot
export- verb added Handing a result set to the artefact type that owns that shape is neither a run- nor an add-; the destination type is chosen by the data
helm as a bare name The mode is a posture, not an operation on a target, so it takes no domain and no object. compass-mode was rejected as accurate and forgettable
Level values spelled s3star, not s3* The value is a filetag and a directory-safe token; * is neither
Further verbs land with the ported methods The port has not run, so the verbs its steps need are not yet knowable. Each arrives with its own entry here rather than being guessed now
compass-helm admitted as a bare noun A mode is a posture rather than an operation on a target, so it parses as neither <domain>-<verb> nor a reserved segment. compass-mode was rejected as accurate and forgettable; the register gains the noun rather than bending the verb rule around it
System preferred over function for the role a session adopts The design's terminology table said function, which now collides with regulatory function. The architecture resolves it to System, and the glossary follows the architecture

3. Upstream skills

The registers govern the skills this project authors. They do not govern skills it consumes from elsewhere.

An upstream skill keeps the name its authors gave it. It is referenced rather than copied (The pstack Collection), so there is no local artefact to rename, and renaming a referenced skill would break the reference for no gain. A reader meeting unslop or arena is meeting the upstream name deliberately.

Where an upstream skill is right in shape and wrong in local detail, the binding written for it is a skill this project authors, and it takes a name from the registers like any other.

4. See also

Emacs 29.3 (Org mode 9.6.15)