Spec-driven development with OpenSpec. Use when the user mentions OpenSpec, OPSX, spec-driven development, SDD, change proposals, delta specs, /opsx commands, or wants structured planning for features, migrations, refactors, or bug fixes.
83%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Use OpenSpec as the planning layer when work needs durable requirements, reviewable intent, or a multi-session implementation trail. Keep the repository's normal engineering rules active: start implementation with tests where applicable, work in small steps, and run the project's canonical checks.
openspec/ directory or docs/openspec/.openspec/specs/*/spec.md and active openspec/changes/<change>/ artifacts before proposing edits. If openspec/ is a symlink to docs/openspec/, keep using openspec/... paths for CLI compatibility while recognizing that the physical files live under docs/openspec/.Non-interactive clients such as Codex App may not inherit the shell that loads NVM. On this machine OpenSpec is managed by the NVM default Node installation; the exact Node version is intentionally not hard-coded. Before reporting a missing CLI, use this resolution sequence:
if ! openspec --version >/dev/null 2>&1; then
if [ -s "$HOME/.nvm/nvm.sh" ]; then
. "$HOME/.nvm/nvm.sh"
fi
fi
openspec --versionDo not conclude that OpenSpec is unavailable merely because it is absent from
the initial PATH, or because ~/.agents/bin/openspec reports
env: node: No such file or directory. Load NVM and retry first. Only treat it
as missing when the post-NVM openspec --version still fails.
This tooling repo exposes a portable installer through the shared ~/.agents symlink:
~/.agents/skills/openspec/scripts/install-openspec
~/.agents/skills/openspec/scripts/install-openspec /path/to/repoThe installer uses this placement policy:
docs/, create docs/openspec/ and a root openspec -> docs/openspec symlink so openspec CLI commands work from the repo root.thoughts/ but no docs/, create thoughts/openspec/ and a root openspec -> thoughts/openspec symlink.docs/ or thoughts/, create the normal root openspec/ directory.openspec/ directory automatically; treat it as an existing installation.Use the core OPSX path for most changes:
proposal.md, delta specs, design.md, and tasks.md.tasks.md.If slash commands are available in the active tool, prefer:
/opsx:explore for investigation before committing to a change./opsx:propose <change> for the default proposal-to-tasks path./opsx:apply <change> for implementation./opsx:verify <change> when the expanded workflow is enabled./opsx:sync <change> to merge delta specs into canonical specs when needed./opsx:archive <change> to finalize completed work.If the tool does not expose slash commands, perform the same workflow directly in files under openspec/changes/<change>/. In docs-first repositories, that path may resolve through the root symlink to docs/openspec/changes/<change>/.
Prefer CLI commands for repository state and validation when available:
openspec list
openspec list --specs
openspec show <change-or-spec>
openspec status <change>
openspec validate --allUse --json for agent-readable output when the command supports it. Do not build long-lived automation on beta workspace commands unless the user explicitly asks for experimental workspace setup.
update or wip.SHALL statements and concrete scenarios.GIVEN, WHEN, THEN, and optional AND form.OpenSpec works incrementally. Do not try to generate a full specification library upfront unless the user asks for a documentation pass. For mature codebases, create or update specs around the change being made, then let the spec library grow through real work.
When initializing OpenSpec, choose the smallest tool scope that matches the user's request:
~/.agents/skills/openspec/scripts/install-openspec
openspec updateAfter upgrading the CLI, run openspec update in initialized repositories so generated tool instructions stay current.
saski/arnesto
752f690
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.