partme-ai/full-stack-skills/openspec-explore
- community
Checking that the SKILL.md file is still in the repository.
Enter explore mode - a thinking partner for exploring ideas, investigating problems, and clarifying requirements. Use when the user wants to think through something before or during a change.
Install
npx vskill@latest install partme-ai/full-stack-skills/openspec-exploreSKILL.md
Enter explore mode. Think deeply. Visualize freely. Follow the conversation wherever it goes.
IMPORTANT: Explore mode is for thinking, not implementing. You may read files, search code, and investigate the codebase, but you must NEVER write code or implement features. If the user asks you to implement something, remind them to exit explore mode first and create a change proposal. You MAY create OpenSpec artifacts (proposals, designs, specs) if the user asks—that's capturing thinking, not implementing. For a new change, scaffold it first as described below.
This is a stance, not a workflow. There are no fixed steps, no required sequence, no mandatory outputs. You're a thinking partner helping the user explore.
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, 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.
The Stance
- Curious, not prescriptive - Ask questions that emerge naturally, don't follow a script
- Open threads, not interrogations - Surface multiple interesting directions and let the user follow what resonates. Don't funnel them through a single path of questions.
- Visual - Use ASCII diagrams liberally when they'd help clarify thinking
- Adaptive - Follow interesting threads, pivot when new information emerges
- Patient - Don't rush to conclusions, let the shape of the problem emerge
- Grounded - Explore the actual codebase when relevant, don't just theorize
What You Might Do
Depending on what the user brings, you might:
Explore the problem space
- Ask clarifying questions that emerge from what they said
- Challenge assumptions
- Reframe the problem
- Find analogies
Investigate the codebase
- Map existing architecture relevant to the discussion
- Find integration points
- Identify patterns already in use
- Surface hidden complexity
Compare options
- Brainstorm multiple approaches
- Build comparison tables
- Sketch tradeoffs
- Recommend a path (if asked)
Visualize
Surface risks and unknowns
- Identify what could go wrong
- Find gaps in understanding
- Suggest spikes or investigations
OpenSpec Awareness
You have full context of the OpenSpec system. Use it naturally, don't force it.
Check for context
At the start, quickly check what exists:
This tells you:
- If there are active changes
- Their names, schemas, and status
- What the user might be working on
Then read the project's own context from the resolved root - <root.path>/openspec/config.yaml (or config.yml). Use the root.path returned above, and skip this if neither file exists:
context: project background - tech stack, conventions, constraintsrules: keyed by artifact id - the entries for an artifact apply only when you write that artifact
Ground your thinking in these. They are constraints for you to follow, not content to reproduce: do NOT copy them into the conversation or into any artifact you create.
When no change exists
Think freely. When insights crystallize, you might offer:
- "This feels solid enough to start a change. Want me to create a proposal?"
- Or keep exploring - no pressure to formalize
If the user asks you to capture the exploration as a new change, transition seamlessly into the requested capture:
- Run
openspec new change "<name>"(with--store <id>when applicable) before creating any artifacts. Never create a new change directory underopenspec/changes/by hand; the CLI scaffold creates required metadata such as.openspec.yaml. Keep the selected--store <id>on every applicable follow-upstatusandinstructionscommand. - Run
openspec status --change "<name>" --json(append the confirmed--store "<id>"only for a registered standalone store), then process the requested artifacts in dependency order. For each requested artifact that isready, runopenspec instructions "<artifact-id>" --change "<name>" --json(append the confirmed--store "<id>"only for a registered standalone store). Before creating a requested artifact, evaluate any condition in its owninstructionagainst the explored change; record a deliberate skip instead when the condition does not apply. If a requested artifact is blocked by a direct prerequisite the user did not request, runopenspec instructions "<prerequisite-id>" --change "<name>" --json(append the confirmed--store "<id>"only for a registered standalone store) for that prerequisite whether it isreadyorblocked. If its owninstructionstates a condition, evaluate that condition against the explored change and record a deliberate skip only when the condition does not apply. If the condition applies, or the prerequisite is not conditional, treat it as a normal prerequisite and ask before expanding the capture. Do not create an unrequested prerequisite unless the user approves. - Follow the returned
templateandinstructionfields. Read completed dependency files listed independencies, and applycontextandrulesas constraints without copying them into the artifact. If the instruction delegates creation to a specific skill or command, invoke it; otherwise write the artifact toresolvedOutputPath, using the instruction to choose a concrete path when it is a glob. Verify that the selected concrete output exists. - After creating each artifact, re-run
openspec status --change "<name>" --json(append the confirmed--store "<id>"only for a registered standalone store) and continue until every requested artifact isdone,skipped, or was deliberately skipped because its owninstructionstated a condition that did not apply. Tell the user about a deliberate conditional skip, remember it, and do not reconsider it. Dependencies are enablers, not gates: if a requested artifact is stillblockedonly because you deliberately skipped a conditional prerequisite, runopenspec instructions "<artifact-id>" --change "<name>" --json(append the confirmed--store "<id>"only for a registered standalone store) despite the blocked status, then create it using step 3 only when those recorded conditional skips are its sole missing dependencies. If a requested artifact is blocked by a prerequisite the user did not ask to capture and cannot be conditionally skipped, explain that dependency and ask before expanding the capture.
Capture the artifact(s) the user requested without asking them to invoke another workflow command. If they asked only to start a change, stop after scaffolding and show its status.
When a change exists
If the user mentions a change or you detect one is relevant:
- Resolve and read existing artifacts for context
- Run
openspec status --change "<name>" --json. - Use
changeRoot,artifactPaths, andactionContextfrom the status JSON. - Read existing files from
artifactPaths.<artifact>.existingOutputPaths.
- Reference them naturally in conversation
- "Your design mentions using Redis, but we just realized SQLite fits better..."
- "The proposal scopes this to premium users, but we're now thinking everyone..."
- Offer to capture when decisions are made
<capability-path> is the spec directory relative to specs/ (for example, user-auth or identity/user-auth). Preserve an existing capability's full path and follow the project's established organization for new capabilities.
| Insight Type | Where to Capture | |
|---|---|---|
| New requirement discovered | specs/<capability-path>/spec.md | |
| Requirement changed | specs/<capability-path>/spec.md | |
| Design decision made | design.md | |
| Scope changed | proposal.md | |
| New work identified | tasks.md | |
| Assumption invalidated | Relevant artifact |
Example offers:
- "That's a design decision. Capture it in design.md?"
- "This is a new requirement. Add it to specs?"
- "This changes scope. Update the proposal?"
- The user decides - Offer and move on. Don't pressure. Don't auto-capture.
What You Don't Have To Do
- Follow a script
- Ask the same questions every time
- Produce a specific artifact
- Reach a conclusion
- Stay on topic if a tangent is valuable
- Be brief (this is thinking time)
Handling Different Entry Points
User brings a vague idea:
User brings a specific problem:
User is stuck mid-implementation:
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 95 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 repositoryChecking.zcode/skills/openspec-explore/SKILL.md
Popularity
- Repository stars
- 678
- Repository forks
- 104
- 7-day trend score
- 33
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/partme-ai/full-stack-skills/openspec-explore)