Skill Catalog
Every /devspark-* skill in one place. Names below are the exact slash commands to type.
Start with the at-a-glance tables; the lifecycle detail
further down is the maintainer-level reference and a companion to Philosophy.
Terminology
| Term | Meaning | Example |
|---|---|---|
| Skill | A reusable DevSpark capability that defines a workflow | The /devspark-specify skill |
| Slash command | The exact text you type in chat to invoke a skill | /devspark-specify Add a login page |
| Agent | The AI coding assistant that follows the skill's instructions and performs the work | GitHub Copilot, Claude Code, or Codex |
| Prompt | Instruction text supplied to the agent, either by you or by a skill | A bootstrap request or the instructions behind /devspark-specify |
Use skill when naming a DevSpark capability and slash command when explaining how to invoke it. A skill is not an agent; it supplies instructions to the agent. Command alone refers to terminal commands or a platform's technical command format, not another name for a DevSpark skill.
GitHub Copilot packages these capabilities as native Agent Skills. Other agents expose the same
capabilities through their own command or prompt entry points. This packaging difference does not
change the user-facing skill names. Directory and file names, including .devspark.work/,
commands/, and prompts/, describe storage, not invocable skills.
At a glance
Normal path
Understand, implement and verify, deliver. These are the only skills a typical change needs.
| Skill | Use it to |
|---|---|
/devspark-specify |
Understand new work and start the single implementation path |
/devspark-next |
Detect where you are and run the single next step |
/devspark-implement |
Change code, tests, and current knowledge together |
/devspark-verify |
Produce proof and close out the work |
/devspark-create-pr, /devspark-pr-review, /devspark-address-pr-review |
Open, review, and fix a PR: Review and Audit |
/devspark-release |
Seal the release and archive finished planning work |
Optional when justified
Use one of these only when a specific uncertainty, coordination need, or risk earns it. None is a stage, and none triggers another.
| Skill | Use it to |
|---|---|
/devspark-plan |
Record a material design or contract decision |
/devspark-tasks |
Coordinate dependencies, parallel ownership, or work that spans sessions |
/devspark-critic |
Challenge one named concern about the real system |
/devspark-analyze |
Check one named consistency or knowledge-reference concern |
/devspark-quickfix |
Keep a WHAT/WHY/HOW record for a defect you have already diagnosed |
/devspark-update-pr |
Refresh an open PR description after more commits |
/devspark-closeout |
Re-decide completion without re-running verification (advanced; /devspark-verify normally does this) |
Existing v9.3 specifications
These keep their recorded behavior for a specification bundle created before v9.4. On a work branch they never create a specification or a gate document.
| Skill | Use it to |
|---|---|
/devspark-clarify |
Resolve underspecified areas in an existing spec.md; on a work branch, ask the material questions in conversation |
/devspark-checklist |
Test whether the written requirements are clear and complete; on a work branch, answer one named concern in conversation |
/devspark-planning-review |
Run the planning gate on an existing full specification; on a work branch, Judge runs only for a genuine conflict: Planning Review |
Knowledge and governance
| Skill | Use it to |
|---|---|
/devspark-explain |
Trace "how is X done?" against code and knowledge, fixing drift: Knowledge |
/devspark-discover-knowledge, /devspark-context-projection, /devspark-migrate-knowledge-entities |
Find knowledge gaps, inspect the knowledge graph, or adopt the entity layout |
/devspark-constitution, /devspark-discover-constitution, /devspark-evolve-constitution |
Create, discover, and amend project principles: Constitution Guide |
/devspark-site-audit |
Audit the whole repository against the constitution and knowledge |
Optional and operational
| Skill | Use it to | Opt-in? |
|---|---|---|
/devspark-add-application, /devspark-list-applications, /devspark-validate-registry, /devspark-migrate-registry |
Manage a multi-app registry: Monorepo Guide | Yes, via a registry file |
/devspark-workitem-review, /devspark-workitem-create |
Read and write Azure DevOps work items: Azure DevOps | Yes, via work_tracking config |
/devspark-personalize |
Customize a skill's prompt for yourself only; the copy lives in .devspark.work/{git-user}/commands/ |
Yes |
/devspark-upgrade |
Check for stale framework files: Upgrade | No |
/devspark-repo-story, /devspark-commit-audit |
Narrate the commit history (saved under .knowledge/guides/repo-story/) or analyze commit patterns, DORA metrics, and AI adoption |
No |
/devspark-taskstoissues |
Explains why temporary tasks are not exported as issues | No |
/devspark-merge-from-main |
Script-first merge of remote main into the current branch; the agent only resolves conflicts |
No |
Optional capabilities are never required for a first evaluation, and they have no effect on a single-app repository that does not turn them on.
Invocation format
DevSpark 9.0 invokes every skill with its full hyphenated slash command, exactly as shown, for example /devspark-specify, /devspark-clarify, or /devspark-plan. GitHub Copilot installs each one as a native Agent Skill (.github/skills/devspark-<command>/SKILL.md); other agents install entry points with the same hyphenated names in their own platform directories. Short names and the retired 8.x dotted form are not aliases. See Upgrading from 8.x.
New work follows one start/resume path; existing v9.3 specification bundles retain their recorded stages and obligations.
Lifecycle detail
Each skill grouped by lifecycle phase, with what the lifecycle requires of its purpose beyond its one-line description.
Universal start and existing planning capabilities
| Skill | Current behavior |
|---|---|
/devspark-specify |
Starts new work without route classification or a planning bundle. It establishes the outcome, inspects relevant code/tests/Knowledge, performs lightweight assurance discovery, offers work-item grounding only for a developer-named item when tracking is configured, and creates a work branch with no file by default. A minimal work.md exists only when needed to preserve material context across sessions. DevSpark no longer creates new full-spec or quick-spec bundles; existing bundles continue. |
/devspark-clarify |
Retained for existing v9.3 specifications. On a work branch it asks at most five material questions in conversation, creates no spec.md, and records an answer in work.md only when it must survive the session. |
/devspark-plan |
Retained for active v9.3 bundles and available on request when a material design or contract decision needs a durable record. Not a new-work prerequisite. |
/devspark-tasks |
Retained for active v9.3 bundles and optional coordination where dependencies or parallel ownership justify a task list. |
/devspark-analyze |
Validates that every id and relation named in context_resolved actually resolves against the current knowledge corpus — flat documents, entities, entity layers, and decisions alike. Mechanical, hard-stop — a stale or hallucinated reference fails outright. It also reports a Plan whose mechanism contradicts a decision or declared behavior recorded in the spec, without proposing a redesign. |
/devspark-critic |
Judges whether context_resolved is sufficient for the delta being planned — not whether it resolves (analyze's job), but whether something the spec obviously touches was never resolved at all. Judges coverage, never which kinds appear. Also flags a proposed new mechanism when a closer existing implementation would do. Judgment-based, not a hard stop. |
/devspark-checklist |
An ephemeral planning aid for existing v9.3 specifications. On a work branch it writes no checklist file and no gate document; it answers one named concern in conversation. |
/devspark-planning-review |
Retained for active v9.3 bundles or invoked for a specific planning concern. Not a default pre-implementation sequence for new work; existing Judge and freshness behavior is unchanged. |
/devspark-quickfix |
Retained as a direct legacy entry point. /devspark-next no longer asks developers to choose it over Specify. |
Planning Review in one place
New work follows /devspark-specify → /devspark-implement ↔ focused verification → /devspark-create-pr → /devspark-pr-review. Existing v9.3 bundles retain /devspark-plan → /devspark-tasks → /devspark-planning-review → /devspark-implement and all recorded obligations. Closeout remains inside /devspark-verify. Judge does not discover or remediate; each adjudicated concern still cites its existing child finding. Four finding terms stay separate:
| Term | Meaning |
|---|---|
| classification | The finding's convergence state: blocking-defect, accepted-limitation, deferred-work, learning |
| resolution | The smallest valid remediation choice: require, simplify, accept, defer |
| route | A later phase (/devspark-verify, /devspark-closeout, /devspark-pr-review) owns the proof. A routed obligation is still part of this spec's completion — it is not deferred |
| future work | A real discovery intentionally removed from scope, preserved outside the spec as a Future Work Plan. DEFER is a disposition, not a task status |
Judge does not discover and Judge does not remediate. Only require and simplify become planning tasks. Create PR means DevSpark believes the spec is complete: a pull request represents completed spec work offered for acceptance, and merge terminates the spec lifecycle. It also means DevSpark believes the committed revision is complete, internally consistent, and ready for other people to review: the deterministic checks it can run against the pushed HEAD (generated Knowledge matches that commit, and no Knowledge entity the PR touches is stale) must pass, and a known failure stops it. PR Review independently evaluates a change that already claims readiness; it is not completion detection, and it re-checks the same Knowledge state read-only.
Acceptance planning and the Tests pillar
When independent acceptance validation is warranted, /devspark-plan creates one conditional, ephemeral qa-acceptance.md in the spec bundle: Given/When/Then scenarios traced to the spec, a free-text surface, an automated, manual or hybrid runner, and a regression disposition (add, update, retire or none). Absence is valid. No new skill, stage or gate is involved.
| Skill | Role |
|---|---|
/devspark-tasks |
Derives only Tests work that can finish before the PR, and never assumes every change adds tests. |
/devspark-implement |
Applies the planned durable Tests delta: add, update or retire, plus a durable manual-regression reference where planned. |
/devspark-analyze |
Checks scenario trace validity, scope, and uncovered external success criteria. |
/devspark-critic |
Challenges scenario quality and proportionality. |
/devspark-pr-review |
Verifies planned update and retire proportionately, without running QA. |
Tests are a durable pillar beside code and knowledge: every behavior change considers its Tests impact, and the regression baseline is curated rather than only accumulated. The spec owns defining and preparing acceptance; post-deployment QA execution is outside spec completion, and a failure there creates new work.
Implementation — applies the delta
| Skill | Current behavior |
|---|---|
/devspark-implement |
Carries the heaviest discipline: (1) consumes context_resolved as already-resolved context and takes at most one additional hop itself — escalation past that hop is logged and attributable, not silent; (2) updates code and knowledge together in one pass, preferring test evidence over code-only evidence, recording test_attempted/fallback_reason when it falls back; (3) records each test run so later review can reuse valid evidence instead of re-running it; (4) never writes a spec, task, or plan identifier into code, tests, or .knowledge/; (5) never archives the spec package itself — it stays live under .devspark.work/ so /devspark-release can later archive it once it is marked Complete. |
Validation — carries assimilation forward, enforces the permanent record
| Skill | Current behavior |
|---|---|
/devspark-pr-review |
The primary assimilation trigger — nothing merges without it. §6 (Durable Delta Consistency) is a strong, ID-tracked blocking gate: PRD1 code/knowledge contradiction, PRD2 unsupported knowledge claim introduced by the diff, PRD3 insufficient test depth, PRD4 planning-identifier leak, PRD5 knowledge completeness (significant new/changed behavior touching no .knowledge/ node at all). Named PRD rather than reusing site-audit's DELTA/KNOW prefixes, since the two skills check the same class of thing at different scope and should never be ambiguous read side by side. §6c judges the diff's touched entities from content at the PR head commit — a missing required layer doc or a source_of_truth that points nowhere blocks — never regenerates Knowledge and never judges derived index files, and surfaces as non-blocking warnings missing fallback_reason entries and contradiction candidates among graph-adjacent objects touched by the diff. Testing validation is evidence-first: it reuses a valid Test Evidence Record and runs tests itself only on a named trigger (no valid record, high-risk delta with author-only evidence, a repository policy, or behavior the evidence did not exercise). |
/devspark-address-pr-review |
Unchanged in mechanism (commit isolation between fixes and review-file updates), but fixes remain subject to rule 1 — a fix that patches code must not introduce a spec/task reference to explain what review comment it addresses. Under --auto it selects only open critical/high or blocking PR-delta findings; ordinary Medium/Low findings are reported, constitution findings route to /devspark-evolve-constitution, and a suggested fix is evidence, so anything beyond the approved Plan's shape stops for explicit authority. |
/devspark-create-pr, /devspark-update-pr |
Surface evidence and readiness in the PR description itself — the test evidence record (or why none applies) and the Knowledge readiness result (ready, not-applicable, unknown or blocked) — so a human reviewer sees the checklist state without digging for it. |
/devspark-verify |
The evidence mechanism's engine. Its purpose — produce empirical proof-of-change evidence for declared verification modes, not document review — is the verified_by: execution discipline in practice: it runs cited tests and produces the pass/fail result written into a knowledge object's or decision's evidence entry. Records a test_ref: <path>::<test name> pointer alongside any mode passed via a named test — the citable reference /devspark-implement needs, captured where the proof actually ran. Selects its verification modes from the shape of the change rather than applying one fixed depth, and states which shapes it matched. |
/devspark-closeout |
Decides whether the route is finished, and runs automatically inside /devspark-verify — it is an optional, advanced re-entry point, not a normal-path step. Applies the convergence rule: a spec completes when its stated objective is resolved and every remaining finding is classified, not when every observation generated along the way has been eliminated. Classifies each open finding as Blocking Defect, Accepted Limitation, Deferred Work, or Learning / Changed Assumption — only the first creates mandatory work inside the active route, and an unclassified finding is itself blocking. Reads each acceptance criterion by its declared kind (requirement, invariant, hypothesis, target; undeclared reads as requirement), so a disproven hypothesis records as a result rather than a defect — while a failed requirement or violated invariant can never be relabelled into a softer kind once the evidence is in. |
/devspark-site-audit |
Repo-wide, not diff-scoped. Runs the accuracy pass (resolve every execution-type evidence entry and re-run its test — existence and accuracy are separate reports) and the contradiction scan, scoped to graph-adjacent objects (same entity, entities sharing a constrains decision, objects citing the same evidence) rather than brute-force comparison. Contradiction findings are warnings for human review, always — never a gate. Also the repo-wide knowledge-completeness owner: runs build_knowledge_index.py --check (stale index/coverage is KNOW1), reads the full ontology/coverage.json for every entity (KNOW2), confirms every appliesTo/source_of_truth path still exists (KNOW3 — the knowledge/code mapping-accuracy check), resolves every relations[].object and constrains/constrained_by pair (KNOW4), and cross-checks taxonomy-registry.json plus central-module coverage (KNOW5/KNOW6) — the repo-wide counterpart to pr-review's diff-scoped §6c gate. |
/devspark-explain |
Topic-scoped, read-only by default. Grounds its answer and findings in current code and tests. Only a developer-requested Knowledge correction or draft may be written after its own explicit approval; saving a trace needs separate approval. Confirmed code defects route to Quickfix and missing behavior to Specify. Discovery never creates work. |
/devspark-taskstoissues |
Already fully aligned — its entire purpose is explaining why ephemeral tasks don't get exported as durable records, which is rule 1 stated as a user-facing explanation rather than an enforcement mechanism. |
Governance & framework — constitution, framework lifecycle
| Skill | Current behavior |
|---|---|
/devspark-constitution |
The constitution is one of three current-truth categories, not documentation, and dependent templates being kept "in sync" includes the .knowledge/governance/decisions/ contract, not just prose templates. |
/devspark-discover-constitution |
Unchanged in mechanism — discovering implicit patterns is a different activity than maintaining the current-truth categories. |
/devspark-evolve-constitution |
A constitution amendment that contradicts an existing current decision must trigger updating that decision in place, not leaving two governance documents making incompatible claims — the same one-current-file-per-topic rule extended to the constitution/decision boundary. |
/devspark-release |
Archives only bundles marked Complete and leaves in-flight ones where they are; legacy code_ref/knowledge_ref fields are ignored. Also requires a current site-audit knowledge result (KNOW1–KNOW6 clean) for the window, and that the .knowledge/ tree builds (KNOWLEDGE_BUILDS). |
/devspark-commit-audit, /devspark-repo-story |
Read Git history, not the repo's current-truth layer — naturally exempt from current-truth-only, since Git is explicitly where history is supposed to live. |
/devspark-upgrade |
A framework-version concern, orthogonal to the knowledge model. Mentions /devspark-migrate-knowledge-entities as an optional follow-up after a four-root migration, since that migration only moves directories and never touches document content. |
App/framework operations — unaffected
/devspark-add-application, /devspark-list-applications, /devspark-migrate-registry, /devspark-validate-registry, /devspark-personalize, /devspark-next — these
manage the multi-app registry and framework mechanics, not the knowledge/spec lifecycle. /devspark-next stays
aware of the gate order (/devspark-plan → /devspark-tasks → /devspark-planning-review → /devspark-implement, with context_resolved
threaded through /devspark-analyze and /devspark-critic) when it decides what the next skill is.
/devspark-migrate-knowledge-entities — alongside the entity-ontology. Drives
scripts/migrate-knowledge-to-entities.py to move existing flat .knowledge/ docs into
entities/<id>/ folders, then rebuilds the index. Optional and human-confirmed, same as
/devspark-migrate-registry — never runs automatically and no other skill depends on it.