CtrlK
BlogDocsLog inGet started
Tessl Logo

openspec-update-change

Update an OpenSpec change by revising its existing planning artifacts and keeping them coherent with one another. Use when the user wants to revise a change's plan, fold new decisions into it, or reconcile its artifacts after an edit. Also use when the user says "openspec update change" or "opsx update". If the user means the openspec update CLI command, which refreshes generated files, run that command instead. Never edits code.

72

Quality

88%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

81%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A dense, disciplined workflow document: every CLI interaction is given as a concrete command, the six-step sequence has real validation and confirmation checkpoints (including a re-verify loop before creating any file), and it consistently encodes non-obvious CLI semantics rather than general knowledge. The main weaknesses are mild: Guardrails repeat rules already stated in the steps, the store-selection paragraph is a wall of conditions, and the glob-creation sub-procedure inlines detail that could live in a one-level-deep reference file.

Suggestions

Tighten the store-selection paragraph into a short bulleted rule list (when to pass --store, which commands take it, stickiness) — it currently reads as one long run-on sentence chain and is the hardest part of the body to follow.

Deduplicate the Guardrails section: rules like 'never write to a glob resolvedOutputPath' and 'do not advance the build frontier' already appear verbatim in steps 2, 4, and 6; keep Guardrails to the one-line 'planning artifacts only, never code' rule and the update-vs-start-fresh heuristic.

Give one concrete check for the symlink-resolution requirement in step 4 (e.g., an explicit realpath/test command) and a one-line example of what a proposed revision presented to the user should look like, since those are the only places the guidance is abstract.

DimensionReasoningScore

Conciseness

Nearly every token is non-obvious operational knowledge Claude could not infer (glob vs. resolved output paths, '"root": null' exit-code semantics, sticky --store flag), which is the ideal use of a skill body. What keeps it below 5 is repetition and wordiness: the Guardrails section restates rules already established in steps 2, 4, and 6 ('never write to a glob resolvedOutputPath', 'do not advance the build frontier'), and the store-selection paragraph packs several rules into one long run-on explanation that could be tightened. Not 3: there is no explanation of concepts Claude already knows, and the padding is minor relative to the density of real guidance.

4 / 5

Actionability

Concrete, executable commands with placeholders are given for every CLI interaction ('openspec status --change "<name>" --json', 'openspec instructions "<artifact-id>" --change "<name>" --json', 'openspec list --json'), along with the exact JSON fields to read ('existingOutputPaths', 'isPlanningComplete', 'lastModified') and a concrete option-presentation format for prompting. It falls short of anchor 5 because the core edit step itself is described abstractly ('Draft the requested edit in the conversation') and 'choose a concrete path... after resolving any symlinked parent directories' gives no command or check to perform that resolution. Not 3: the guidance that exists is fully executable, not pseudocode.

4 / 5

Workflow Clarity

Six clearly numbered steps in a coherent order, with explicit validation checkpoints throughout: pre-flight project check via 'openspec list --json' and 'root', confirmation gates before every write, and a full re-verification loop before file creation (refresh status and instructions, re-check scope/skip/partial state, use a create that 'fails if the target already exists', stop and reconcile on failure). Error recovery is handled explicitly for both the 'root: null' and 'Declared in' error cases. This matches the anchor with explicit validation steps and feedback loops, which matters here since artifact writes are user-confirmed and partially destructive.

5 / 5

Progressive Disclosure

This is a single-file skill (no references/, scripts/, or assets/ exist), and the body is organized into well-labeled, easy-to-navigate sections (Store selection, Project check, Input, numbered Steps, Output, Guardrails) with no nested-reference indirection. It misses anchor 5 because the ~100-line body inlines two dense procedural blocks — the 5-step glob-file creation sub-procedure in step 4 and the store-selection rules — that read like shared reference material (near-identical rules would apply to the sibling OpenSpec workflows this body cross-references) and could be split into one-level-deep reference files. Not 3: nothing is buried or unmarked, and the inline content is all genuinely used by this workflow.

4 / 5

Total

17

/

20

Passed

Description

95%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong description: concrete capabilities, explicit 'Use when...' triggers including the exact slash-command phrases and the 'opsx' shorthand, a clear what/when pairing, and an explicit disambiguation against the similarly named CLI command. Third-person voice is used throughout, and it stays concise while doing all of this.

DimensionReasoningScore

Specificity

Names the domain (OpenSpec change updates) and several concrete actions — 'revising its existing planning artifacts', 'fold new decisions into it', 'reconcile its artifacts after an edit' — plus an explicit scope boundary ('Never edits code'). Coverage is good but the actions are variations of one operation rather than a comprehensive list of distinct capabilities, so it sits just below anchor 5.

4 / 5

Completeness

Explicitly answers both questions: the 'what' ('Update an OpenSpec change by revising its existing planning artifacts and keeping them coherent with one another') and the 'when' ('Use when the user wants to revise a change's plan... or the user says "openspec update change" or "opsx update"'), with concrete trigger phrases plus a disambiguation rule for the CLI command.

5 / 5

Trigger Term Quality

Covers natural user phrasings ('revise a change's plan', 'fold new decisions into it', 'reconcile its artifacts after an edit') as well as the exact invocations users would type ('openspec update change', 'opsx update'), matching the comprehensive-coverage anchor. Not below 4: no common variation of the request is obviously missing for this domain.

5 / 5

Distinctiveness Conflict Risk

Clear niche (updating an existing OpenSpec change's planning artifacts) with a distinct trigger vocabulary, and it actively reduces conflict by redirecting the 'openspec update' CLI meaning ('run that command instead'). Only negligible overlap with sibling OpenSpec skills remains, matching the minimal-conflict anchor.

5 / 5

Total

19

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
Fission-AI/OpenSpec
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.