liangxiegame/qframework/openspec-explore

Trust tier 2
  • community
LLM review pending
Source check pending

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 liangxiegame/qframework/openspec-explore

SKILL.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, investigate the codebase, and run read-only commands or tools without confirmation, 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 or update OpenSpec change artifacts (proposals, designs, specs) within a confirmed scope—that's capturing thinking, not implementing. Answering design or clarifying questions is never consent to write. Before the first write-capable action, name the artifacts or files you would change and what you would do, ask a direct yes/no question, and wait for the user's confirmation in a separate message. Confirmation covers only the scope you described; ask again before expanding it. 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, 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.


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

Planning a Change

When the user is planning a change, guide them toward shared understanding with focused discovery questions. For open-ended discussion, follow the conversation without imposing an interview or a required output.

Before asking a factual question, follow the context discovery below and inspect relevant OpenSpec artifacts, source, tests, docs, and configuration. Do not ask the user to repeat facts you can verify. Summarize relevant findings without reproducing private context or rules. If evidence is missing, conflicting, or inaccessible, state that limitation and ask only for the clarification needed to proceed.

  • Follow dependencies - Resolve the next blocking decision before its dependent details. For example, clarify the user's outcome and scope before choosing an API or data model. Revisit downstream assumptions when an earlier answer changes. Skip branches that do not matter to this goal.
  • Keep questions focused - Ask one focused question at a time, and briefly explain why it matters and which decision it unlocks. Batch questions only if the user asks for a batch; keep them small and group related decisions.
  • Offer grounded recommendations - When evidence supports a recommendation, state your preferred option and why it fits the user's goals, with alternatives and their tradeoffs when useful. Do not invent intent, priorities, or external constraints: ask the user when only they can answer. Avoid a fixed question format.
  • Keep a conversational record - Track decisions in the conversation, not in files. Separate confirmed decisions from proposed defaults and unresolved questions. Silence is not acceptance. Accepting an answer or a batch of recommendations is not permission to write. Keep file-write confirmation separate from discovery questions and follow the guardrails below.

Stop asking when the user has enough clarity. Let them pause, pivot, or defer a decision; do not exhaust every branch or force a proposal.

For example, after inspecting the relevant code:

text
The CLI already uses SQLite and has no remote service. Is sharing state
across devices in scope? That determines whether local storage is enough.
If this stays a single-device tool, I recommend keeping SQLite to avoid
adding a service to operate; shared state would need a separate sync design.

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

+------------------------------------------+
| Use ASCII diagrams liberally |
+------------------------------------------+
| |
| [State A] -------> [State B] |
| | |
| v |
| [State C] |
| |
| System diagrams, state machines, |
| data flows, architecture sketches, |
| dependency graphs, comparison tables |
| |
+------------------------------------------+

Draw with plain ASCII only — borders + - |, arrows --> <-- ^ v, markers * x. Unicode diagram glyphs can render at different widths across terminals, fonts, and locales, so padded boxes and aligned tables can drift. Keep every diagram character ASCII.

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:

bash
openspec list --json

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, constraints
  • rules: 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:

  1. Run openspec new change "<name>" (with --store <id> when applicable) before creating any artifacts. Never create a new change directory under openspec/changes/ by hand; the CLI scaffold creates required metadata such as .openspec.yaml. Keep the selected --store <id> on every applicable follow-up status and instructions command.
  2. 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 is ready, run openspec 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 own instruction against 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, run openspec instructions "<prerequisite-id>" --change "<name>" --json (append the confirmed --store "<id>" only for a registered standalone store) for that prerequisite whether it is ready or blocked. If its own instruction states 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.
  3. Follow the returned template and instruction fields. Read completed dependency files listed in dependencies, and apply context and rules as constraints without copying them into the artifact. If the instruction delegates creation to a specific skill or command, invoke it; otherwise write the artifact to resolvedOutputPath, using the instruction to choose a concrete path when it is a glob. Verify that the selected concrete output exists.
  4. 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 is done, skipped, or was deliberately skipped because its own instruction stated 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 still blocked only because you deliberately skipped a conditional prerequisite, run openspec 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:

  1. Resolve and read existing artifacts for context
  • Run openspec status --change "<name>" --json.
  • Use changeRoot, artifactPaths, and actionContext from the status JSON.
  • Read existing files from artifactPaths.<artifact>.existingOutputPaths.
  1. 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..."
  1. 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.

This is the start of the file. Read the full SKILL.md on GitHub.

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
5,440
Repository forks
861
7-day trend score
43

Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 7 Sep 2026, a month ago.

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
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/liangxiegame/qframework/openspec-explore/badge)](https://verified-skill.com/skills/liangxiegame/qframework/openspec-explore)

Something wrong with this skill or its page? Tell us.