SKILL.md
Task Definition
Turn a raw task into a documented spec: grill the user until you reach a shared understanding, then record the decisions.
Requirements
- Active session must exist (session path in working memory)
- If no active session: STOP and ask user for session path
Execution
Session path: [SESSION_PATH from working memory] Task: $ARGUMENTS
1. Analyze
- Review recent dive/task documents in the session for context
- Check project docs for related documentation
- Understand scope and implications
- Facts are YOUR job, never the user's. Anything you can look up (filesystem,
code, tools) you find yourself. Dispatch lookup sub-agents with model: inherit and no effort override. Never ask the user for something you could look up. Don't block on a lookup: a running exploration is an unsettled prerequisite, so only the questions downstream of it wait for the sub-agent — ask the rest of the frontier now.
2. Grill the user (interactive Q&A)
Map the task as a design tree: every decision branches into the decisions that hang off it. Work the tree in rounds.
The frontier is every decision whose prerequisites are already settled — the questions you can ask now without guessing at answers you haven't heard yet. Ask the whole frontier in one round. A question whose answer depends on another question still open in this round belongs to a later round, not this one.
Format each question:
❓ **Q1** — **<question title>**: <question body, may span paragraphs and include options>
➡️ <your recommended answer + short justification>
- Every question MUST carry a recommended answer with a justification.
- Only ask about judgments that are the user's to make. Facts you look up
yourself (step 1) — never put them to the user as a question.
- Each round the user's answers reshape the tree — settled decisions push the
frontier outward and unblock questions that depended on them. Recompute the frontier and ask the next round.
- DO NOT start any code edits during grilling — wait for explicit instruction.
The Q&A is done when the frontier is empty: every branch of the design tree visited, nothing left silently assumed. Say: "No more questions, we can move on!" and wait for the user to confirm shared understanding before documenting.
3. Document the task (after Q&A complete)
Create file: [SESSIONPATH]/[TIMESTAMPFILE]-task-[task-slug].md
# Task: [title]
Date: [TIMESTAMP_LOG]
## Description
[What needs to be accomplished]
## Requirements
[Bullet list]
## Clarifications
### [Topic]
**Q:** [question]
**A:** [answer/decision]
**Rationale:** [why]
## Edge Cases
[Things to watch for]
## Success Criteria
[How we know it's done]
4. Update session
- Edit
[SESSIONPATH]/overview.md:
- Status: Phase: planning (the task is defined, so the next worker step is planning), Last Action: Task defined: [title], Next: Create implementation plan. Phase is a closed enum — never write values like task-defined. Interactive sessions only: under the Samocode worker never touch Phase. - Add to Flow Log: - [TIMESTAMP_ITERATION] Task defined: [title] -> [filename].md - Add to Files: - [filename].md - Task: [title] (plain filename, no markdown link)
- Commit (if git repo):
cd [SESSION_DIR] && git add . && git commit -m "Task: [title]"
5. Suggest next steps
/create-plan, /do, /dop2