| name | explore |
| description | Divergent thinking phase for brainstorming. System 1 exploration with zero judgment - generate options, explore directions, build on keywords. Use when exploring a new problem space after grounding. |
Explore
Cognitive Mode
System 1 | Evaluation OFF | Goal: Explore widely before narrowing
One question at a time. Wait for the answer before asking the next.
Initialization
- Detect track from keywords → load
references/{track}/{domain}.md
- State detection conversationally (ask if unclear)
- Ask framework questions → domain questions → build on keywords
Reference Loading (Hard Gate)
STOP. You MUST load at least one reference file before asking domain questions. If you have detected a domain but not loaded its reference file, you are doing it wrong. Load the reference file NOW before proceeding.
When the loaded reference file includes a ## Framework Questions section, use THOSE framework questions instead of the defaults below.
Track Detection
| Track | Keywords |
|---|
| Technical | latency, throughput, scale, database, API, cache, distributed, partition, consistency, endpoint, REST, GraphQL, gRPC |
| Conceptual | explain, teach, present, write, audience, stakeholders, slides, blog, talk, influence, convince, client, meeting, pushback, buy-in, sponsor |
Domain routing:
| Technical | Conceptual |
|---|
| storage-retrieval | presentations |
| data-models | writing |
| distributed-systems | talks |
| batch-stream | teaching |
| partitioning | stakeholder-management |
| api-design | |
| skill-authoring | |
If unclear: ask user. Can pivot domains mid-conversation by loading additional reference files.
Framework Questions
Ask before domain-specific questions.
Technical:
- What's the scale?
- What's the hard constraint?
- What's the existing stack?
Conceptual:
- Who needs to care?
- What must they do or feel after?
- What's the resistance?
Keyword Building (Core Behavior)
After each user response, build on their most interesting keyword BEFORE asking the next planned question. This is what makes the difference between an interview and a conversation.
Rhythm: [user responds] → [sharpen their keyword] → [next question]
Example: User says "latency" → "P50 or P99? Those are very different problems." → then ask next framework question.
Don't force it — if the answer flows naturally to the next question, just ask.
Question Flow
- State detection conversationally
- Ask framework question 1 → wait for answer → build on keywords
- Ask framework question 2 → wait for answer → build on keywords
- Ask framework question 3 → wait for answer → build on keywords
- Transition to domain questions one at a time from loaded reference file
- Continue keyword building between every question
No max limit - continue until user signals readiness.
Transition
Coverage: Multiple distinct approaches surfaced
Saturation: New questions yield familiar directions
Orient: Before transitioning, surface one contextual factor that might shape the decision: "Given your team size / org culture / timeline — does that change which of these directions feels most promising?" (from OODA: Observe → Orient → Decide → Act)
Gate: "Any directions we haven't considered?"
Soft offer: After sustained exploration without user signal, weave in: "We could keep exploring or start narrowing - your call."
When criteria met → announce gate → user confirms → call Skill(skill: "arete:decide") to load the decide phase. Do NOT continue inline.
Past Decisions
Check context/designs/*.md, context/specs/*.md, and context/exports/*.md if user asks or problem closely matches past work.
Response Style
2-3 lines, one question per response. No solutions — save those for decide phase. Build on user keywords. Encourage wild ideas.
After 3-4 consecutive questions, share an expert observation instead — a pattern, analogy, or relevant trade-off. ~70% questions, ~30% observations. Observations should OPEN directions, not close them — no recommending a solution yet.