fission-ai/openspec/openspec-onboard
Claude Code and agent skill by fission-ai/openspec
- community
Checking that the SKILL.md file is still in the repository.
Guided onboarding for OpenSpec - walk through a complete workflow cycle with narration and real codebase work. Also use when the user says "openspec onboard" or "opsx onboard".
Install
npx vskill@latest install fission-ai/openspec/openspec-onboardSKILL.md
Guide the user through their first complete OpenSpec workflow cycle. This is a teaching experience—you'll do real work in their codebase while explaining each step.
Store selection: If the user names a store (a store is a standalone OpenSpec repo registered on this machine) or the work lives in one, run openspec store list --json to discover registered store ids, then pass --store <id> on the commands that read or write specs and changes (new change, status, instructions, list, show, validate, archive, doctor, context, schemas, view). Once selected, treat --store <id> as sticky for the rest of the workflow. Every unscoped example of those commands below is shorthand: before running it, append the flag. For example, run openspec status --change "<name>" --json --store "<id>", not the unscoped form shown below. Other commands do not take the flag. Hints printed by commands already carry the flag; keep it on follow-ups. Without a store, commands act on the nearest local openspec/ root.
Project check: These steps expect a project that already uses OpenSpec. Before the first step that writes anything (new change, archive, sync specs, or authoring an artifact file), confirm the project has a root: run openspec list --json (with --store <id> when a store is selected, since the store is then the root) and read root. A root object means the project is set up. "root": null means it is not - there is no openspec/ directory here, and a write such as openspec new change would create one as a side effect. The command also exits non-zero, which is that answer rather than a broken CLI, so read the JSON instead of retrying or working around it.
One "root": null is not about setup: when a status error message starts with Declared in or Invalid store declaration in and names this project's openspec/config.yaml (or config.yml), the project does use OpenSpec through a store it declares, which this machine cannot resolve (the store is not registered, or the store: line is malformed). Do not treat it as uninitialized and skip the branches below: stop before writing and show the user that error's message and fix.
Otherwise, with no root, what happens next depends on how this workflow was reached:
- Auto-selected: you chose this workflow yourself, without the user naming OpenSpec, naming this skill, or invoking this skill by name. Stop using OpenSpec and answer the request normally, as you would with no OpenSpec installed. Do not ask them to set anything up and do not mention OpenSpec setup.
- Explicit OpenSpec request: the user named OpenSpec, named this skill, or invoked this skill by name. Stop before writing and ask how to proceed: set this project up (
openspec init), target a store they already have (--store <id>), or continue without OpenSpec for this request. Wait for their answer.
In both branches, never create the root as a side effect: do not run openspec init until the user asks for it, do not hand-create openspec/ files, and do not let a command create it.
Preflight
Before starting, check if the OpenSpec CLI is installed:
If CLI not installed:
OpenSpec CLI is not installed. Install it first, then come back to/openspec-onboard.
Stop here if not installed.
Phase 1: Welcome
Display:
Phase 2: Task Selection
Codebase Analysis
Scan the codebase for small improvement opportunities. Look for:
- TODO/FIXME comments - Search for
TODO,FIXME,HACK,XXXin code files - Missing error handling -
catchblocks that swallow errors, risky operations without try-catch - Functions without tests - Cross-reference
src/with test directories - Type issues -
anytypes in TypeScript files (: any,as any) - Debug artifacts -
console.log,console.debug,debuggerstatements in non-debug code - Missing validation - User input handlers without validation
Also check recent git activity:
Present Suggestions
From your analysis, present 3-4 specific suggestions:
If nothing found: Fall back to asking what the user wants to build:
I didn't find obvious quick wins in your codebase. What's something small you've been meaning to add or fix?
Scope Guardrail
If the user picks or describes something too large (major feature, multi-day work):
Let the user override if they insist—this is a soft guardrail.
Phase 3: Explore Demo
Once a task is selected, briefly demonstrate explore mode:
Spend 1-2 minutes investigating the relevant code:
- Read the file(s) involved
- Draw a quick ASCII diagram if it helps
- Note any considerations
PAUSE - Wait for user acknowledgment before proceeding.
Phase 4: Create the Change
EXPLAIN:
DO: Create the change with a derived kebab-case name:
SHOW:
<changeRoot>/ ├── proposal.md ← Why we're doing this (empty, we'll fill it) ├── design.md ← How we'll build it (empty) ├── specs/ ← Detailed requirements (empty) └── tasks.md ← Implementation checklist (empty)
Phase 5: Proposal
EXPLAIN:
DO: Draft the proposal content (don't save yet):
<capability-path> is the spec directory relative to specs/ (for example, user-auth or identity/user-auth). Use the exact existing path for modified capabilities. For new capabilities, follow the project's established spec organization.
PAUSE - Wait for user approval/feedback.
After approval, save the proposal:
Then write the content to the resolvedOutputPath from openspec instructions proposal --change "<name>" --json.
Phase 6: Specs
EXPLAIN:
DO: Resolve where the spec file should be created:
Draft the spec content:
Save to the concrete file path chosen from resolvedOutputPath.
Phase 7: Design
EXPLAIN:
DO: Draft design.md:
Save to the resolvedOutputPath from openspec instructions design --change "<name>" --json.
Phase 8: Tasks
EXPLAIN:
DO: Generate tasks based on specs and design:
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/openspec-onboard/SKILL.md
Popularity
- Repository stars
- 66,939
- Repository forks
- 4,614
- 7-day trend score
- 56
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/fission-ai/openspec/openspec-onboard)