Skills
A skill is a procedure, not a worker. Where an agent answers who owns this, a skill answers how it is done: ordered steps, the capabilities they need, and how to tell the procedure was actually followed.
One role may follow many procedures, and one procedure may be followed by many roles. A role that lists a procedure must hold every capability that procedure needs, and the registry refuses to load a set of definitions where it does not.
- Agent
- A role. Holds capabilities and responsibilities.
- Skill
- A procedure. Holds steps and verification.
Backend review
backend-reviewReview server-side changes for layering, correctness, and failure behavior before they reach a human reviewer.ExperimentalInspect the definition sourcePrerequisites
- A concrete diff or branch to review.
- The architecture assumptions the profile records.
Steps
- Check that controller, service, and repository or mapper responsibilities stayed separated.
- Check that business logic did not leak into the controller.
- Check transaction boundaries, including multi-write operations.
- Check that API responses expose DTOs rather than persistence entities.
- Check validation at the request boundary and error handling on failure paths.
- Check that new behavior has tests, not only that tests still pass.
Capabilities needed
- read_code
- read_docs
Outputs
- Findings ordered by severity, each citing a file and line.
- An explicit statement when no issue was found.
Verification
- Every finding names the file and the rule it breaks.
- Findings distinguish a defect from a preference.
Escalates when
- A finding is security relevant; hand it to security review.
- A finding touches schema or query behavior; hand it to SQL review.
Debug
debugFind and fix the root cause of a reproducible failure, and leave behind a test that would have caught it.ExperimentalInspect the definition sourcePrerequisites
- A reproducible failure, a failing gate, or a concrete error report.
Steps
- Reproduce the failure and record exactly how.
- Narrow the failure to the smallest input or code path that still shows it.
- State a hypothesis about the cause that could be proven wrong.
- Test the hypothesis with the smallest possible probe.
- Fix the cause rather than the symptom.
- Add a regression test that fails before the fix and passes after it.
- Re-run the declared gates.
Capabilities needed
- read_code
- run_tests
- edit_worktree
Outputs
- The reproduction steps.
- The root cause, stated plainly.
- The fix and the regression test that covers it.
Verification
- The failure was observed before the fix and is gone after it.
- The regression test fails when the fix is reverted.
- No unrelated code was changed while chasing the bug.
Escalates when
- The failure cannot be reproduced; report that rather than guessing at a fix.
- The cause lies in data or infrastructure that requires a denied capability.
Frontend review
frontend-reviewReview client-side changes for component boundaries, typing, accessibility, and responsive behavior.ExperimentalInspect the definition sourcePrerequisites
- A concrete diff or branch to review.
- The profile's stated component and routing assumptions.
Steps
- Check the server and client component boundary and what that choice costs.
- Check where data is fetched and how loading and error states are handled.
- Check that types describe the real shape rather than widening to any.
- Check keyboard access, focus visibility, labelling, and contrast.
- Check behavior at narrow viewport widths, including no accidental horizontal overflow.
- Check that state is owned at the right level rather than duplicated.
Capabilities needed
- read_code
- read_docs
Outputs
- Findings ordered by severity, each citing a file and line.
- Accessibility and responsive issues called out separately, because they are easy to defer and hard to retrofit.
Verification
- Every finding names the file and the rule it breaks.
- Accessibility claims describe the actual barrier, not a generic reminder.
Escalates when
- A finding depends on a backend contract; hand it to integration review.
- A finding involves authentication or data exposure; hand it to security review.
Handoff
handoffRecord enough state that another session or person can continue the work without rebuilding the context from scratch.ExperimentalInspect the definition sourcePrerequisites
- Work that is finished, blocked, or being paused.
Steps
- State the goal in the requester's terms.
- List what was actually completed, separately from what was attempted.
- State the current status honestly, including partial work.
- List changed files and the decisions behind them.
- List blockers and the approaches that were tried and failed, so they are not repeated.
- State the verification status of every claim.
- List concrete next steps.
Capabilities needed
- read_code
- read_docs
Outputs
- A handoff record covering goal, completed work, status, changes, decisions, blockers, failed attempts, next steps, and validation.
Verification
- Another session could resume from the record alone.
- Every status claim matches evidence; unverified work is labelled unverified.
- Failed attempts are recorded rather than quietly omitted.
Escalates when
- The work is blocked on a decision only a human can make; say so in the record.
Implement feature
implement-featureMake the planned change as a small, verified, reviewable edit that preserves the architecture the project already committed to.ExperimentalInspect the definition sourcePrerequisites
- An approved plan.
- A working branch, never the default branch.
Steps
- Work on a branch in an isolated worktree.
- Make the smallest coherent change that satisfies one planned step.
- Follow the layering and conventions the profile records as assumptions.
- Add or update the tests that prove the new behavior.
- Run the declared build and test commands.
- Leave files the plan did not name untouched.
Capabilities needed
- read_code
- read_docs
- edit_worktree
- run_tests
- create_branch
Outputs
- A changed-file list with the reason for each change.
- Test additions covering the new behavior.
- Verification results, including any failure.
Verification
- The declared gates were run and their real results reported.
- A failing check is reported as failing and never suppressed or worked around.
- The diff contains no unrelated edits.
Escalates when
- A gate still fails after the declared retry limit.
- The change turns out to require a capability the role does not hold.
- Implementation reveals the plan was wrong; return to planning rather than improvising.
Investigate
investigateUnderstand a requirement against the real codebase before anything is changed, so that later work is based on evidence rather than assumption.ExperimentalInspect the definition sourcePrerequisites
- A stated requirement or reported problem.
- A resolved project declaration, so commands and architecture assumptions are known.
Steps
- Restate the requirement in your own words and list what is still unknown.
- Locate the entrypoints and modules the requirement touches.
- Read the related code, tests, and declared context documents.
- Record the architecture assumptions the profile states, which the change must preserve.
- Write findings with file references, affected areas, risks, and open questions.
- Stop before editing. Investigation ends with understanding, not a change.
Capabilities needed
- read_code
- read_docs
- github_read
Outputs
- Findings that cite specific files and symbols.
- A list of affected areas and the risks each carries.
- Open questions that a human must answer.
Verification
- Every claim points at a file, symbol, or command output.
- Anything not confirmed is written down as unknown rather than assumed.
Escalates when
- The requirement is ambiguous enough that two readings imply different work.
- Required context is missing, unreadable, or outside the project root.
Plan feature
plan-featureTurn findings into an ordered, bounded plan whose scope, verification, and approval points are explicit before implementation starts.ExperimentalInspect the definition sourcePrerequisites
- Investigation findings for the requirement.
- Knowledge of which quality gates the project enables.
Steps
- State the scope and, just as explicitly, the non-goals.
- List the layers and files each step will touch.
- Sequence the steps so that each one can be verified on its own.
- Attach the verification command or check to every step.
- Mark the points where a human must approve before continuing.
- Confirm no step needs a capability the role does not hold.
Capabilities needed
- read_code
- read_docs
Outputs
- An ordered plan naming files and verification for each step.
- Explicit non-goals that keep unrelated refactoring out of scope.
- The approval points a human must clear.
Verification
- Each step names what it changes and how it is checked.
- The plan excludes cleanups the requirement did not ask for.
Escalates when
- The plan cannot work without a denied capability.
- The requirement turns out to be larger than the requester expects.
Security review
security-reviewReview a change for authentication, authorization, data exposure, and injection risk, including risks specific to agent-facing surfaces.ExperimentalInspect the definition sourcePrerequisites
- A concrete diff or branch to review.
- Knowledge of which endpoints and data the change touches.
Steps
- Check that every new entrypoint authenticates and authorizes at the boundary.
- Check that the change grants the least privilege that still works.
- Check input validation and output encoding on untrusted data.
- Check that secrets come from the environment and never appear in code, config, logs, or errors.
- Check injection risk, including content an agent or model may read as instructions.
- Check that security-relevant actions leave an audit trail.
Capabilities needed
- read_code
- read_docs
Outputs
- Findings describing the vulnerability class and the realistic impact.
- A clear statement of which risks were checked and found acceptable.
Verification
- Each finding names the entrypoint and the trust boundary it crosses.
- No finding, example, or diagnostic reproduces a real credential value.
Escalates when
- A credential appears to be committed or exposed; stop and notify a human at once.
- The finding is exploitable in production; escalate rather than fixing quietly.
SQL review
sql-reviewReview schema and query changes for correctness, safety, and performance, using metadata only and never writing to a database.ExperimentalInspect the definition sourcePrerequisites
- The proposed schema or query change.
- Metadata-only access to the relevant schema.
Steps
- Check column types, nullability, defaults, and constraints against the domain rules.
- Check that queries are parameterized and never assembled by string concatenation.
- Check indexes against the query shapes that will actually run.
- Check transaction scope, isolation, and locking for multi-statement work.
- Check that a migration is reversible, or state plainly that it is not.
- Check what happens to existing rows, including rows that violate a new constraint.
Capabilities needed
- read_code
- database_metadata
Outputs
- Findings citing the statement or migration in question.
- An explicit note when a migration is destructive or irreversible.
Verification
- Index claims reference the query they are meant to serve.
- Data-loss risk is stated directly rather than implied.
Escalates when
- The change would drop or rewrite existing data; require human approval.
- Reviewing properly would need row data rather than metadata; stop and say so.
Test
testRun the quality gates a project actually declared and report their real results, keeping passed, failed, unavailable, and unrun distinct.ExperimentalInspect the definition sourcePrerequisites
- A resolved project declaration, so every enabled gate has a command.
- A working tree in the state that is meant to be tested.
Steps
- Read the resolved commands rather than inventing one.
- Run each enabled gate in the declared order.
- Record the exit status and the relevant output for each gate.
- Report a gate with no command as unavailable, never as passed.
- Report a gate that was not run as unrun, never as passed.
- Summarize which gates ran, which failed, and what the failure was.
Capabilities needed
- read_code
- run_tests
Outputs
- A per-gate result of passed, failed, unavailable, or unrun.
- The evidence behind each result.
Verification
- Every reported result corresponds to a command that actually ran.
- No gate is marked passed because it was skipped, disabled, or substituted.
Escalates when
- A declared command does not exist; report it unavailable rather than substituting another.
- A gate needs credentials, a database, or a network service that policy denies.