Skills¶
Skills are shared workflow definitions that Claude Code loads from
the plugin. Each skill is a directory under skills/ containing a
SKILL.md file with frontmatter and structured instructions. All
skills are namespaced under vergil and invoked as
/vergil:<skill-name>.
Each entry below covers what the skill does, when to use it, and its current status — including any tracked work that will substantially change it.
Execution doctrine — Front-Loaded Judgment, Trusted Execution¶
Human judgment is spent up front (brainstorm → pushback → alignment) and at the hard gates (PR submit, merge, release). Between those, agents run these skills by the most efficient means available — sub-agents are encouraged for research fan-out and parallel work — and only stop mid-flight for a problem they cannot resolve. The plugin no longer tunes agent behavior for continuous human observability; that older "Continuous Oversight" model is retired. The never-fabricate and never-suppress-a-gate rules are unaffected.
Skill catalogue (at a glance)¶
| Skill | Purpose | Status |
|---|---|---|
| epic-create | USER agent: the run-once entry point for non-trivial work — brainstorm → spec → plan, create the epic and seed its bookend tasks | Current (2.1) |
| epic-implement | USER agent: drive an epic's tasks to their human gates — resume from the epic issue + plan, work the runnable frontier (sub-agents encouraged), batch what needs the human; drafts the terminal retrospective for the human to submit | Current (2.1) |
| epic-retrospective | USER agent: the run-once terminal finishing gate — draft the epic's backward-looking retrospective, whose docs PR closes the epic | Current (2.1) |
| issue-implement | USER agent: implement an issue (locally or on a cloud VM), validate to green, record the PR metadata, hand off to the human | Current (2.1) |
| issue-deploy | USER agent: run a deployment task — install/sync merged changes so they're usable, then record the outcome as a comment |
Current (2.1) |
| issue-validate | USER agent: run a validation task — a live check whose acceptance is a recorded PASS/FAIL comment, not a code change |
Current (2.1) |
| pr-watch | USER agent: monitor the open PR through CI/review and reconcile feedback until mergeable | Current (2.1) |
| deprecation-triage | Triage deprecation warnings into tracking issues | Current (reviewed 2026-04-23, no changes) |
| summarize | Decision / operation / stream-of-consciousness summaries; SOC mode is the canonical capture for the fleet | Current |
| triage-capture | Capture an uncurated idea/bug/to-do into the intake queue as a triage/idea/research issue, paraphrasing voice-to-text into clean prose | Current (2.1) |
| triage-review | Groom the triage intake queue — route each uncurated issue into the epic/task model (periodic ~weekly pass) | Current (2.1) |
| migrate-repo | Migrate a repo's existing open-issue backlog into the epic/task framework — guided, resumable, human-in-the-loop | Current (2.1) |
| memory-init | Set up or refresh a project's memory directory — create/update MEMORY.md with the human-approval policy header |
Current |
| memory-audit | Review memory files collaboratively with the human — verify each entry, assess staleness, route to the correct scope | Current |
| handoff | Capture work state before stopping and restore it on resume, preserving context across sessions | Current |
The three epic-* skills form the epic lifecycle: epic-create (run once) →
epic-implement (run N times) → epic-retrospective (run once — the terminal
gate that closes the epic).
epic-create¶
What it does. USER-identity skill and the entry point for non-trivial work. It opens into brainstorming, runs the front-loaded pipeline (brainstorm → pushback → writing-plans → alignment), creates the finite epic in its resolved home, seeds the bookend tasks — documentation, documentation-review, and the terminal retrospective — and publishes the spec + plan as a docs PR.
When to use. At the start of significant work — "let's build X", "start an epic for this". If the work collapses to a single PR, it is a task, not an epic.
Status. Current (Vergil 2.1).
epic-implement¶
What it does. USER-identity skill and the epic-level driver above
the issue-* skills. Given an epic, it reconstructs state from the epic
issue and its referenced plan (the authoritative driver), works every
currently-runnable task to its gate — routing by kind to
issue-implement / issue-validate / issue-deploy, and dispatching
parallel sub-agents where efficient — then batches everything needing
the human once and stops. It is stateless by design: re-invoking after a
lost or compacted session re-derives position from GitHub.
When to use. In the user-agent session, to start or resume work on an epic as a whole rather than one issue at a time — "implement epic #N", "pick up epic X where we left off".
Boundaries. It never opens PRs, never merges, and never runs pr-watch
(a human-triggered exception). It drafts the terminal retrospective via
epic-retrospective but never submits or merges its PR — the retrospective's
docs PR is the final gate, and PR submit/merge stays a human gate.
Status. Current (Vergil 2.1). First exemplar of the Front-Loaded Judgment, Trusted Execution doctrine.
epic-retrospective¶
What it does. USER-identity skill and the terminal finishing gate of the
epic lifecycle. Run once, at the end: its preflight refuses to run until every
other child of the epic is closed, then it drafts retrospective.md — the
backward-looking record that partners the spec and plan (spec → plan →
retrospective) — from the execution history, runs a draft → review loop with the
human, and hands off the closing docs PR whose merge closes the epic.
When to use. To finish an epic — "run the retrospective", "close out this epic", "we're done with this epic".
Status. Current (Vergil 2.1).
issue-implement¶
What it does. USER-identity skill. Implements a GitHub issue on
its feature branch, validates to green via vrg-validate, then records
the PR metadata (.vergil/pr-workflow.json) with
vrg-pr-workflow report-ready for vrg-submit-pr to consume. A
run-and-done hand-off: it records the metadata and the human opens the
PR.
When to use. In the user-agent session, to take an issue from
implementation through the point where the human opens the PR. The same
flow runs on a cloud VM: report-ready pushes a world-readable relay
ref carrying the ready-state, so the Mac no longer needs the VM's
filesystem, and the human opens the PR worktree-free with
vrg-submit-pr <branch> [<branch> …]. (This retired the former
issue-localize skill, which reconstructed the ready-state locally
before the relay existed — epic
vergil-project/.github#148.)
Status. Current (Vergil 2.1). Requires the 2.1 tooling CLIs
(vrg-pr-workflow, etc.) at runtime.
issue-deploy¶
What it does. USER-identity skill. Runs a deployment-labelled task
end to end: installs or syncs the merged change so it is actually usable
(install / sync / release-then-install), then records the result as an
Outcome: comment on the issue. It is run, not built — there is no PR,
and the deployment tooling refuses one.
When to use. When the human asks to deploy, install, roll out, or sync merged work, or when a later task needs a change deployed and usable rather than merely merged.
Status. Current (Vergil 2.1).
issue-validate¶
What it does. USER-identity skill. Runs a validation-labelled task
whose acceptance is a live check, not a code change — a cold rebuild, a
live-lab check, a post-deploy smoke test — and records PASS/FAIL as an
Outcome: comment. Like deployment, it is run, not built: no PR.
When to use. When the human asks to validate, verify, or run the checklist on a validation issue.
Status. Current (Vergil 2.1).
pr-watch¶
What it does. USER-identity post-PR loop, emitted by
vrg-submit-pr. Monitors the open PR via vrg-pr-await and
reconciles failing CI checks and human review feedback, pushing
fixes until the PR is mergeable.
When to use. Run the emitted /vergil:pr-watch <PR_URL> line in
the USER agent session after the human opens the PR.
Status. Current (Vergil 2.1).
deprecation-triage¶
What it does. Applies the deprecation-warning triage policy:
search for an existing issue matching the warning, create a
tracking issue if none exists using the standard template,
attempt a code-only fix, decide fix-now vs defer-to-next-cycle,
and document any suppression with removal criteria. Paired with
the detect-deprecation-warnings PostToolUse hook.
When to use. When a deprecation warning surfaces during test output, CI, or regular work. The partner hook triggers this flow automatically when it catches warnings.
Status. Current. Reviewed for currency on 2026-04-23 as part of plugin#59; no changes needed.
summarize¶
What it does. Produces a concise, structured summary in one of three modes:
- decisions — summary of decisions made during a session (what, why, alternatives considered, next step)
- operations — summary of operations performed (what was touched, what happened, what remains)
- soc — stream-of-consciousness capture for context offloading
between sessions (triggered by
Enter SOC/End SOC)
When to use. When the user explicitly asks for a structured summary, invokes SOC capture, or the skill is invoked via handoff protocols.
Status. Current. Decision A from
plugin#58:
this skill's SOC mode is the canonical SOC capture mechanism for
the fleet. Repo-local references to soc-capture or
summarize-soc as skill names are stale pointers — splitting
SOC into its own skill was rejected because capture and summary
are intertwined here (End SOC triggers the structured summary).
The cross-repo references in the-infrastructure-mindset are
tracked for cleanup in
the-infrastructure-mindset#165.
triage-capture¶
What it does. Captures an uncurated idea, bug, or to-do into the intake
queue so it is never lost, creating an intake issue — triage (a problem
not yet understood), idea (a spark), or research (a reproducible
investigation) — in the org .github, paraphrasing voice-to-text into clean
written prose.
When to use. Whenever the human says "don't forget X", "capture this", "note a todo", or riffs an idea to come back to later — especially mid-task or via voice.
Status. Current (Vergil 2.1).
triage-review¶
What it does. Grooms the triage intake queue — collects every
triage-labelled issue across the org and walks the human through
dispositioning each one into the epic/task model.
When to use. For the periodic (roughly weekly) intake pass — "review triage", "groom the backlog", "process the triage queue".
Status. Current (Vergil 2.1).
migrate-repo¶
What it does. Migrates a repo's existing open-issue backlog into the epic/task framework: triages the pile into epics, tasks, ad-hoc work, and closeable issues so the roadmap and audit reflect reality. Guided, resumable, batch-approved, human-in-the-loop.
When to use. When onboarding a repo's backlog into the framework —
migrate <repo>, bring <repo> into the framework, or "onboard this repo's
backlog".
Status. Current (Vergil 2.1).
memory-init¶
What it does. Sets up or refreshes a project's memory directory —
creates or updates MEMORY.md with the human-approval policy header.
When to use. When the human asks to initialize, set up, bootstrap, or update memory ("init memory", "set up MEMORY.md", "refresh the memory header").
Status. Current.
memory-audit¶
What it does. Reviews memory files collaboratively with the human — verifies each entry, assesses staleness, and routes it to the correct scope (repo memory, global instructions, or a tooling issue) with human approval.
When to use. When the human asks to audit, review, clean up, or prune memory ("audit my memory", "review MEMORY.md", "are these memories still accurate").
Status. Current.
handoff¶
What it does. Captures work state across sessions — preserves context
before you stop (/handoff stop) and restores where you left off on resume
(/handoff start).
When to use. When wrapping up and you want to preserve context for next time, or when picking work back up in a new session.
Status. Current.
How skills work — technical¶
Each skill is a directory under skills/ containing:
SKILL.md— required. Frontmatter withnameanddescription, followed by the skill's body (context, workflow, templates, etc.).- Optional supporting files (templates, examples) referenced from
SKILL.md.
The plugin's skills/ directory is loaded on session start. The
skill name in the frontmatter plus the plugin's namespace
(vergil) determines the invocation: a skill named
issue-implement in this plugin is invoked as
/vergil:issue-implement.
Skills are documentation-as-config, not executable scripts. They tell Claude Code how to run a workflow; Claude Code executes the flow using whatever tools the user has granted.