sdd-explore
Use when starting an SDD workflow to discover codebase context, curate relevant files, and prepare exploration.md for planning.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Use when starting an SDD workflow to discover codebase context, curate relevant files, and prepare exploration.md for planning.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Use when creating an SDD implementation plan from exploration.md, with deep interview, task breakdown, and batch assignments.
Generate a Product Requirements Document via interactive interview. Writes a markdown PRD that captures intent, user stories, and out-of-scope. Use when the brief is vague, when no ticket is bound, or when SDD invokes it from its PRD gate.
Use when executing an SDD plan via batch-based task implementation, tracking progress with [ ]/[X] markers and quality gates.
SDD Orchestrator coordinates SDD (Spec-Driven Development) workflow via sub-agents
Use when reviewing code changes before commit, comparing implementation against SDD plan, or doing standalone code review with advisor consultation.
API-first design patterns — OpenAPI, REST conventions, error models, versioning
| name | sdd-explore |
| description | Use when starting an SDD workflow to discover codebase context, curate relevant files, and prepare exploration.md for planning. |
| argument-hint | [change_name] [instructions] |
| disable-model-invocation | false |
| allowed-tools | Bash, Bash(tree:*), Read, Glob, Grep, Write, Edit, AskUserQuestion, Skill, mcp__atlassian__jira_get_issue |
Curate the perfect file selection and craft a precise handoff prompt for the planning phase. Do not implement or edit code outside .sdd/{change-name}/. The next phase (sdd-plan) sees only what you write to exploration.md — when in doubt, include rather than exclude.
Token budget for the final selection: target 50–80k tokens across files + prompt text; exceed when completeness demands.
Incremental writing: never accumulate all findings and write
exploration.mdin one giantWriteat the end — that exceeds output token limits and loops the agent. Initialise the file with the template, then append/update sections viaEditafter every 3–5 files discovered.
Read prd.md if present, then create the session file with the template
.sdd/{change-name}/prd.md exists, read it FIRST as the source of intent (Problem / Solution / User Stories / Out of Scope / Further Notes). Use it to seed ## Objective and ### Task: directly. The PRD is the WHAT; exploration.md is the WHERE..sdd/{change-name}/exploration.mdWrite once to seed the file with placeholders. Fill ## Objective immediately if the task is clear from the prompt or PRD.Get Jira ticket details (only when a ticket ID was provided)
mcp__atlassian__jira_get_issue with {"issue_key": "<ticket_id>"}Edit ## Objective and ### Task: in exploration.md with what you learned.Get the codebase overview
tree --gitignore -L 6
Drill into specific directories as needed:
tree --gitignore -L 3 path/to/subdirectory
Do not add pipes/redirects/head/tail — tree --gitignore -L 6 is sufficient and free of permission prompts. Use Glob/Grep for filtering, never ls | grep or find.
Explore the codebase — identify relevant files and understand the task
Glob — find files by patternGrep — search for keywords, types, functions where user terms appearRead — implementation details for specific sectionstree — drill into specific directoriesEdit ### Selected Context: and ### Architecture: in exploration.md. Do not defer.Build selection iteratively
### Selected Code Structure and ### Selected Files Tree after each batch via Edit.Craft the handoff prompt (MANDATORY)
The next model's entire world is what you curate. Skipping or vague handoff text forces the planner to re-derive context that exploration already resolved. Use Edit to update each remaining section individually — do not rewrite the entire file.
Sections to finalise (one Edit per section):
### Relationships: — call chains and data flow### Ambiguities: — open questions or "None"Handoff Contract — sdd-plan reads exploration.md expecting these exact headings, verbatim:
## Objective — what the feature must achieve## User Requirements
### Task: — clear restatement of what needs to be done### Architecture: — key modules and responsibilities### Selected Context: — file paths with one-line descriptions### Relationships: — call chains and data flow### Ambiguities: — open questions or "None"## Selected Code Structure — flat list of selected file paths## Selected Files Tree — directory tree of selected filesVerify — read exploration.md once, confirm no [PENDING] placeholders remain. Fill any gaps via Edit.
Save the exploration artifact and any general-knowledge discoveries per _shared/persistence-contract.md (Phase Artifact Save Convention + General Knowledge Persistence Mandate). For this phase, title/topic_key is sdd/{change}/explore.
Do NOT persist the full
exploration.md(can be 50–80k tokens). Persist only the structured summary: Objective, Architecture, Selected Files (paths + one-liner), Relationships, Ambiguities — typically 2–5k tokens.
Return the SDD Envelope as your last output (format: _shared/envelope-contract.md). Nothing may follow it.
| Field | Value |
|---|---|
| Status | ok (successful exploration) · warning (ambiguities remain unresolved) · blocked (critical context is missing) |
| Phase | explore |
| Artifacts | .sdd/{change-name}/exploration.md |
| Next Recommended | /sdd-plan {change-name} |
| Risks | Architectural concerns, missing test coverage, unclear requirements; or "None" |
| Engram Ref | Observation ID from the persistence step, or omit if engram unavailable |
Do not invoke sdd-plan (or any other SDD skill) yourself — return the envelope; the orchestrator handles phase transitions.
exploration.md was written incrementally via Edit after each batch of files — not in one large Write at the end.exploration.md..sdd/{change-name}/.Shared contracts: persistence-contract, envelope-contract. Phase-specific reference material: file_slicing.md.
<user_instructions>
$ARGUMENTS
change_name: $1
instructions: $2 </user_instructions>