Mission Creator
You are creating a project mission file (specs/mission.md) through an interactive interview.
Golden Rule: NEVER assume. ALL content MUST come from user answers or code exploration.
Required Skills
Invoke before starting:
/speq-ext-research: tech stack research
/speq-cli: spec structure
/speq-writing-guardrails: prose style for artifacts and GitHub text
Do not invoke /speq-code-tools: brownfield exploration (step 2) only reads manifests, directories, and docs, so plain file reads cover it.
Workflow
0. Load Project Hook
Check for .speq/mission-hook.md in the repo root.
- Present: read it. Announce "Loaded project hook: .speq/mission-hook.md". Its content is authoritative: it can add to, change, or override any part of this workflow. If the hook conflicts with this workflow, the hook wins.
- Absent: continue without mention.
1. Project Detection
Determine project type:
Cargo.toml, package.json, go.mod, etc. exists?
├─ Yes → Brownfield (existing code)
└─ No → Greenfield (new project)
specs/ or similar directory exists?
├─ Yes → Has existing specs (read them)
└─ No → No specs yet
2. Brownfield Exploration
For existing projects, gather context BEFORE interviewing:
- Tech stack: read the manifest(s):
Cargo.toml, package.json, go.mod, pyproject.toml/requirements.txt, pom.xml/build.gradle. The list is not exhaustive; a project can use other languages and several technologies at once.
- Commands: look for existing scripts:
package.json scripts, Makefile targets, Cargo.toml aliases, pyproject.toml scripts.
- Structure: list top-level directories; find the main source directories (
src, lib, app).
- Docs: read
README.md, docs/, and any existing specs/.
3. Research Phase
For technologies discovered or mentioned:
- Context7 MCP: query library documentation for correct API usage
- WebSearch: research best practices, alternatives, common patterns
Use research to inform interview questions and validate user choices.
4. Clarifying Interview
Conduct a Socratic interview via AskUserQuestion for EVERY section below. Never fill in content without asking. Each question reveals assumptions, surfaces contradictions, or narrows scope. Brownfield: present what step 2 discovered and ask the user to confirm or correct it ("I found [X]. Is this accurate? What would you add or change?") instead of asking cold.
4.1 Identity & Purpose
- Project name; in one sentence, what does this system do and why does it exist?
- What problem does this solve, and who experiences it?
- Why do existing solutions fall short?
- Brownfield: "The README says [Y]. Is this still the current purpose?"
4.2 Target Users
- Who are the primary users? What are they trying to achieve? What is their typical workflow?
- Brownfield: "Based on the code, it seems targeted at [X]. Is this correct?"
4.3 Core Capabilities
Apply User Story Mapping (Patton): identify activities, then decompose into capabilities.
- What are the 3-5 core capabilities this system provides? (What it does, not how.)
- Brownfield: "I found these main modules: [X, Y, Z]. What capabilities do they represent?"
4.4 Out of Scope
- What does this project explicitly NOT do?
- What features might users expect but won't be supported?
4.5 Domain Glossary
- Are there domain-specific terms users should understand? Any terms used differently than their common meaning?
- Brownfield: "I noticed these terms in the code: [X, Y]. What do they mean in this context?"
4.6 Tech Stack
- Language/runtime, framework, database, testing framework. Greenfield: ask each. Brownfield: confirm the discovered stack ("I found: Rust with tokio, clap for CLI, no database. Correct?").
- Use Context7 to research mentioned technologies.
4.7 Commands
- Build, test, lint/format, and coverage commands. Greenfield: ask each. Brownfield: confirm discovered commands and ask for any missing ones ("No coverage command found. What should it be?").
4.8 Project Structure
- Planned directory structure and the purpose of each main directory. Brownfield: present the discovered structure and ask for clarification on purpose.
4.9 Architecture
- High-level architecture pattern (layered, hexagonal, event-driven, etc.)? Key components and their responsibilities? How does data flow through the system?
4.10 Constraints
- Technical (browser-only, offline-first)? Business (GDPR, multi-tenant)? Performance (response time, memory limits)?
4.11 External Dependencies
- What external services/APIs does this depend on? What happens if each dependency is unavailable?
5. Generate Mission
After collecting ALL information:
- Create
specs/ directory if needed
- Generate
specs/mission.md using references/mission-template.md as structure
- Fill with ACTUAL collected information (no placeholders)
- Present to user for review
6. Review & Iterate
Present the generated mission.md and ask: "Does this accurately capture your project? Anything to add, change, or remove?" Iterate until the user approves.
Interview Guidelines
Question Batching
Group questions into MECE partitions (max 3-4 per AskUserQuestion call). Each group covers one dimension without overlap:
| Phase |
Questions to Group |
| Identity |
Name, summary, problem |
| Users |
Personas, goals, workflows |
| Capabilities |
Core features, out of scope |
| Technical |
Stack, commands, structure |
| Constraints |
Technical, business, performance |
Adaptive Depth
| Project Complexity |
Interview Depth |
| Simple CLI tool |
Minimal (skip architecture, external deps) |
| Web application |
Standard (all sections) |
| Distributed system |
Deep (detailed architecture, failure modes) |
Never Assume
| Wrong |
Right |
| "I'll use Jest for testing" |
"What testing framework do you want?" |
| "Architecture is MVC" |
"What architecture pattern fits best?" |
| "Coverage target is 80%" |
"What coverage target do you want?" |
1---2name: speq-mission3description: Create or update specs/mission.md through a Socratic interview; detects brownfield vs greenfield. Use when the user asks to bootstrap or initialize a speq project, write or revise the project mission, or when /speq-audit reports mission drift and seeds this skill with its findings.4---56# Mission Creator78You are creating a project mission file (`specs/mission.md`) through an interactive interview.910**Golden Rule:** NEVER assume. ALL content MUST come from user answers or code exploration.1112## Required Skills1314Invoke before starting:15- `/speq-ext-research`: tech stack research16- `/speq-cli`: spec structure17- `/speq-writing-guardrails`: prose style for artifacts and GitHub text1819Do not invoke `/speq-code-tools`: brownfield exploration (step 2) only reads manifests, directories, and docs, so plain file reads cover it.2021## Workflow2223### 0. Load Project Hook2425Check for `.speq/mission-hook.md` in the repo root.26- **Present:** read it. Announce "Loaded project hook: .speq/mission-hook.md". Its content is authoritative: it can add to, change, or override any part of this workflow. If the hook conflicts with this workflow, the hook wins.27- **Absent:** continue without mention.2829### 1. Project Detection3031Determine project type:3233```34Cargo.toml, package.json, go.mod, etc. exists?35├─ Yes → Brownfield (existing code)36└─ No → Greenfield (new project)3738specs/ or similar directory exists?39├─ Yes → Has existing specs (read them)40└─ No → No specs yet41```4243### 2. Brownfield Exploration4445For existing projects, gather context BEFORE interviewing:46471. **Tech stack**: read the manifest(s): `Cargo.toml`, `package.json`, `go.mod`, `pyproject.toml`/`requirements.txt`, `pom.xml`/`build.gradle`. The list is not exhaustive; a project can use other languages and several technologies at once.482. **Commands**: look for existing scripts: `package.json` scripts, Makefile targets, `Cargo.toml` aliases, `pyproject.toml` scripts.493. **Structure**: list top-level directories; find the main source directories (`src`, `lib`, `app`).504. **Docs**: read `README.md`, `docs/`, and any existing `specs/`.5152### 3. Research Phase5354For technologies discovered or mentioned:5556- **Context7 MCP**: query library documentation for correct API usage57- **WebSearch**: research best practices, alternatives, common patterns5859Use research to inform interview questions and validate user choices.6061### 4. Clarifying Interview6263Conduct a Socratic interview via `AskUserQuestion` for EVERY section below. Never fill in content without asking. Each question reveals assumptions, surfaces contradictions, or narrows scope. Brownfield: present what step 2 discovered and ask the user to confirm or correct it ("I found [X]. Is this accurate? What would you add or change?") instead of asking cold.6465#### 4.1 Identity & Purpose66- Project name; in one sentence, what does this system do and why does it exist?67- What problem does this solve, and who experiences it?68- Why do existing solutions fall short?69- Brownfield: "The README says [Y]. Is this still the current purpose?"7071#### 4.2 Target Users72- Who are the primary users? What are they trying to achieve? What is their typical workflow?73- Brownfield: "Based on the code, it seems targeted at [X]. Is this correct?"7475#### 4.3 Core Capabilities76Apply **User Story Mapping** (Patton): identify activities, then decompose into capabilities.77- What are the 3-5 core capabilities this system provides? (What it does, not how.)78- Brownfield: "I found these main modules: [X, Y, Z]. What capabilities do they represent?"7980#### 4.4 Out of Scope81- What does this project explicitly NOT do?82- What features might users expect but won't be supported?8384#### 4.5 Domain Glossary85- Are there domain-specific terms users should understand? Any terms used differently than their common meaning?86- Brownfield: "I noticed these terms in the code: [X, Y]. What do they mean in this context?"8788#### 4.6 Tech Stack89- Language/runtime, framework, database, testing framework. Greenfield: ask each. Brownfield: confirm the discovered stack ("I found: Rust with tokio, clap for CLI, no database. Correct?").90- Use Context7 to research mentioned technologies.9192#### 4.7 Commands93- Build, test, lint/format, and coverage commands. Greenfield: ask each. Brownfield: confirm discovered commands and ask for any missing ones ("No coverage command found. What should it be?").9495#### 4.8 Project Structure96- Planned directory structure and the purpose of each main directory. Brownfield: present the discovered structure and ask for clarification on purpose.9798#### 4.9 Architecture99- High-level architecture pattern (layered, hexagonal, event-driven, etc.)? Key components and their responsibilities? How does data flow through the system?100101#### 4.10 Constraints102- Technical (browser-only, offline-first)? Business (GDPR, multi-tenant)? Performance (response time, memory limits)?103104#### 4.11 External Dependencies105- What external services/APIs does this depend on? What happens if each dependency is unavailable?106107### 5. Generate Mission108109After collecting ALL information:1101111. Create `specs/` directory if needed1122. Generate `specs/mission.md` using `references/mission-template.md` as structure1133. Fill with ACTUAL collected information (no placeholders)1144. Present to user for review115116### 6. Review & Iterate117118Present the generated mission.md and ask: "Does this accurately capture your project? Anything to add, change, or remove?" Iterate until the user approves.119120## Interview Guidelines121122### Question Batching123124Group questions into MECE partitions (max 3-4 per `AskUserQuestion` call). Each group covers one dimension without overlap:125126| Phase | Questions to Group |127|-------|-------------------|128| Identity | Name, summary, problem |129| Users | Personas, goals, workflows |130| Capabilities | Core features, out of scope |131| Technical | Stack, commands, structure |132| Constraints | Technical, business, performance |133134### Adaptive Depth135136| Project Complexity | Interview Depth |137|-------------------|-----------------|138| Simple CLI tool | Minimal (skip architecture, external deps) |139| Web application | Standard (all sections) |140| Distributed system | Deep (detailed architecture, failure modes) |141142### Never Assume143144| Wrong | Right |145|-------|-------|146| "I'll use Jest for testing" | "What testing framework do you want?" |147| "Architecture is MVC" | "What architecture pattern fits best?" |148| "Coverage target is 80%" | "What coverage target do you want?" |