Skip to content

[Feature]: Add /speckit.explore as a pre-specify thinking phase #3478

Open

Description

@dev-v

Problem Statement

Spec Kit's SDD pipeline starts at specify — a user's idea is fed directly as $ARGUMENTS and immediately structured into spec.md. There is no phase for thinking through the problem before committing to a specification. This forces premature structuring: vague ideas get squeezed into spec templates, and the exploration that should happen before specification (questioning assumptions, comparing approaches, reading the codebase) either gets lost or leaks into the specify command's already-long template.

The result is lower-quality specs that miss hidden complexity, skip alternative approaches, and require more downstream rework.

Proposed Solution

Add a new core command speckit.explore — a pre-specify thinking phase that acts as a "thinking partner" stance rather than a procedure-driven workflow.

Key characteristics:

  • No file artifacts — explore produces no directories, no spec files, runs no scripts. Its output is a structured exploration summary handed off to specify via the existing handoff mechanism.
  • Stance + repertoire, not numbered steps — the template uses a two-layer structure: a stance (curious, open, visual, grounded, patient, assumption-challenging) and a repertoire of exploratory actions (problem-space exploration, codebase investigation, option comparison, visualization, risk surfacing) that the AI calls upon as context demands — not a 1→2→3→4→5 procedure.
  • Convergence detection — the AI detects when thinking has crystallized and proactively offers handoff to specify. The user can accept (→ specify) or reject (→ continue exploring).
  • Structured summary — on handoff, explore generates a four-part summary: framed problem, key findings, chosen direction, and rejected paths (prevents the spec from re-entertaining eliminated options).
  • Pipeline extension — the SDD pipeline becomes: explore → specify → clarify → plan → tasks → implement. Explore is an optional entry point; users can still invoke specify directly.

The change is purely additive: one new template file (templates/commands/explore.md), no changes to existing templates, no Python code changes, no new scripts.

Alternatives Considered

  1. Extension-based (extensions/explore/) — rejected because explore is a core SDD phase concept, not an opt-in extension. Making it an extension means users who don't install it miss a fundamental part of the pipeline.
  2. Preset-only — rejected because it would make explore unavailable to projects that don't use that preset, fragmenting the SDD pipeline.
  3. Expand specify's template — rejected because specify's template is already long; adding exploratory thinking to it would conflate two distinct phases (thinking vs. structuring).

Component

Specify CLI (initialization, commands)

AI Agent

All agents

Use Cases

  1. Vague idea to structured spec — A user has a rough feature idea ("we need better search") but hasn't thought through the problem framing. Explore helps them clarify what they are actually solving before committing to a spec.
  2. Codebase investigation before spec — A user wants to add a feature but needs to understand existing patterns, integration points, and hidden complexity before writing the spec. Explore grounds the discussion in the actual codebase.
  3. Comparing approaches — Multiple viable architectures surface during thinking. Explore helps build comparison tables and tradeoff matrices, then captures rejected paths so the spec does not re-entertain them.
  4. Challenging assumptions — A user assumes they need X, but the codebase already has Y. Explore surfaces this: "You said you need X, but the codebase already has Y — would that work?"

Acceptance Criteria

  • templates/commands/explore.md exists with the stance + repertoire structure
  • specify integration install <agent> installs explore alongside other core commands
  • Explore produces no file artifacts (no directories, no spec files)
  • Explore's handoff targets only specify (linear pipeline)
  • Documentation updated: spec-driven.md mentions explore as an optional pre-specify phase
  • Works with all supported agent integrations

Additional Context

I have a working implementation ready as a PR. The explore template adapts spec-kit's existing command skeleton (frontmatter, Pre-Execution Checks, Done When) while replacing the procedural Outline with a stance + repertoire structure.

The design was informed by a structured exploration process, which surfaced the key design tension: explore is a stance, not a workflow. Compressing it into numbered steps would destroy its value. The template resolves this by keeping the skeleton (for structural consistency with other commands) but replacing the procedural Outline with a non-sequential repertoire.

This is a large change (new template, 230 lines), so per the Contributing guidelines I am opening this issue for discussion before submitting a PR. Happy to adjust the design based on maintainer feedback.

Activity

  1. github-actions commented on Jul 15, 2026

    @github-actions
    Contributor

    Bug assessment — explore-pre-specify-phase: Invalid · severity low


    Bug Assessment: Add /speckit.explore as a pre-specify thinking phase

    Report (summarized)

    The reporter (@dev-v) proposes adding a new speckit.explore command — a pre-specify thinking phase — to the SDD pipeline. The issue is labeled bug-assess but contains no bug report, no error messages, no stack traces, no unexpected behavior, and no reproduction steps. It is a well-structured feature request with acceptance criteria, alternatives considered, and a note that an implementation is ready as a PR.

    Symptom

    There is no defect symptom. The issue describes a missing capability (a "thinking partner" phase before specify) rather than any broken or incorrect behavior in the existing codebase.

    Reproduction

    N/A — no bug to reproduce.

    Suspected Code Paths

    Not applicable. The report explicitly states the change is "purely additive: one new template file (templates/commands/explore.md), no changes to existing templates, no Python code changes, no new scripts." No existing code is implicated as broken.

    Root Cause Hypothesis

    This is not a bug. The issue was labeled bug-assess but its title begins with [Feature]:, its body contains acceptance criteria and alternatives considered, and its author explicitly frames it as a feature request opened for maintainer discussion before a PR. Confidence: high that this is not a defect.

    Proposed Remediation

    Preferred: Re-label this issue as a feature request (remove bug-assess, add an appropriate feature/enhancement label). Route it through the normal feature-discussion and PR review workflow. The author notes an implementation is ready.

    Files likely to change (per the feature request, not a bug fix):

    • templates/commands/explore.md (new file)
    • docs/spec-driven.md (documentation update)

    Tests to add or update: Per the feature request scope, integration tests confirming explore.md is installed by specify integration install alongside other core commands.

    Risks & Considerations

    • No bug risk — this is a design discussion, not a defect remediation.
    • Mislabeling a feature request as a bug wastes triage capacity; consider adding label-hygiene guidance to the contributing docs.

    Open Questions

    • [NEEDS CLARIFICATION: Why was bug-assess applied to a [Feature]: issue? If this was intentional to get a structured review, the assessment above applies. If it was a labeling mistake, this issue should be re-triaged as a feature request.]

    Generated by 🐛 Assess Bug from Labeled Issue for issue #3478 · 44.6 AIC · ⌖ 10.9 AIC · ⊞ 31.7K · ◷

  2. github-actions commented on Sep 15, 2026

    @github-actions
    Contributor

    This issue has been automatically marked as stale because it has not had any activity for 60 days. It will be closed in 30 days if no further activity occurs.

  3. added
    triage-out-of-scopeVerdict: won't land in core — invalid, duplicate, off-mission, or redirected to an extension
    on Oct 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    invalidThis doesn't seem righttriage-out-of-scopeVerdict: won't land in core — invalid, duplicate, off-mission, or redirected to an extension

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions