research-define
Synthesize discovery findings into a sharp problem statement, How Might We questions, success criteria and scope. Use when research on a topic has been gathered and the user needs to narrow it down to
SKILL.mdskills/research-define/SKILL.md
GitHubDefine
Converge the broad discovery findings on "$ARGUMENTS" into a focused problem statement, "How Might We" questions, and a research plan for the solution phase.
Arguments. $ARGUMENTS may contain the project name and optional flags. Take the first token as <project> and treat --skip-checks as a flag; never include flags in file paths. All paths below use <project>. If --skip-checks is present, skip the prerequisite check and, before writing any artifact, append one line to .singularskills/log.jsonl: {"ts":"<ISO timestamp>","skill":"research-define","workflow":"research","phase":2,"project":"<project>","event":"skipped","artifact":"02-define.md","note":"<reason or \"none given\">"}.
Prerequisites
Part of a workflow. This skill is phase 2 (Define) of the Double Diamond workflow (research); cross-domain workflows run it too. First check .singularskills/log.jsonl for an open run for this project: a run-started line with "project":"<project>" and no later run-finished line for the same workflow and project. If one exists, the conductor is running you: continue here. Otherwise, if the user asked to start, run, continue or resume a process or workflow rather than this one step, do not continue here: invoke the workflow skill with the workflow the user asked for, or research when they named none, followed by <project>; it runs this phase in order, asks before it writes and records the run. Otherwise continue here: a later phase runs on its own, behind its gate.
Run this skill's gate before writing: sh <this skill's folder>/scripts/gate.sh <project> <project root>, where <project root> is the folder that contains .singularskills/ (use . when you are already there). If it exits non-zero, stop and tell the user what it printed, unless --skip-checks was given (see Arguments). On a refusal, before you stop, append this line to .singularskills/log.jsonl (create the folder and file if missing): {"ts":"<ISO timestamp>","skill":"research-define","workflow":"research","phase":2,"project":"<project>","event":"refused","artifact":"02-define.md","note":"<what the gate printed>"}. Once the gate has passed, or under --skip-checks once you have appended the skipped line, append this line before you start work: {"ts":"<ISO timestamp>","skill":"research-define","workflow":"research","phase":2,"project":"<project>","event":"started","artifact":"02-define.md","note":""}.
Read .singularskills/research/<project>/01-discover.md. If this file does not exist, tell the user:
Phase 1 (Discover) has not been completed for "<project>". Run
/research-discover <project>first, or use--skip-checksto bypass.
Process
Read context files:
- Read
.singularskills/research/<project>/01-discover.mdfor discovery findings - Read
references/double-diamond-guide.mdfor methodology reference - Read
references/research-plan-template.mdfor output structure
- Read
Synthesize findings:
- Review all themes from the Discover phase
- Identify the core tension or unmet need
- Distinguish root causes from symptoms
- Map relationships between themes
Formulate the problem statement:
- Write a clear, specific, actionable problem statement
- Avoid solution-language (the problem, not the answer)
- Ensure it's scoped enough to be solvable
Generate "How Might We" questions:
- Create 3-5 HMW questions that reframe the problem as opportunities
- Each HMW should open a different solution direction
- Avoid HMW questions that are too broad or too narrow
Define success criteria and scope:
- What does "solved" look like? Specify measurable criteria
- What's in scope and out of scope for the Design phase?
- Identify constraints and assumptions
Write the artifact to
.singularskills/research/<project>/02-define.mdfollowing the research plan template structure.
Output
The problem definition written to .singularskills/research/<project>/02-define.md. Present a summary to the user highlighting:
- The problem statement
- Top HMW questions
- Key scope decisions
- Recommended focus for the Design phase
Record the run. After you have written the artifact, append this line to .singularskills/log.jsonl (the started line of Prerequisites, with "event":"finished"): {"ts":"<ISO timestamp>","skill":"research-define","workflow":"research","phase":2,"project":"<project>","event":"finished","artifact":"02-define.md","note":""}.
Open the artifact with this frontmatter (agent is the agent you run in, or unknown; gate is passed when the gate ran clean and skipped under --skip-checks):
---
skill: research-define
workflow: research
phase: 2
project: <project>
started: <ISO timestamp>
finished: <ISO timestamp>
agent: <the agent you run in, or "unknown">
gate: <passed|skipped>
---
End the artifact with ## Decisions and ## Open questions, in this shape:
## Decisions
- <what was chosen> — <why> — <what was rejected>
## Open questions
- <what the next phase or a reviewer must settle>