---
name: idea-clarify
description: Surfaces what the user actually wants when the repo is empty or the request is one paragraph of vibes. Use before scope-knife on empty repos or vague briefs; do not invoke after a plan exists.
when_to_use: |
  Trigger when scope-knife refuses to run because the repo is empty, the
  idea is too vague, or the user gave a one-paragraph brief. Run as a
  pre-step to scope-knife. Do not invoke once scope-knife has produced
  a plan; switch to scope-knife directly.

version: 1.0
category: scoping
tags: ['empty-repo', 'vague-brief', 'pre-scope']
dependencies: []
triggers:
  ['we have no idea', 'what are we building', 'empty repo', 'vague brief', 'scope is unclear']
---

# idea-clarify

When a team shows up with an empty repo and a sentence, the problem is
not "we have no features". It's "we have no shared picture of what
we're building." This skill forces that picture into the open.

## Input contract

Required:

- `user_brief`: the raw one-paragraph description from the user
- `audience`: who the demo is for (judges, customers, internal team)

Optional:

- `time_remaining_minutes`: integer >= 0 (default 36 * 60)
- `prior_artifacts`: list of any pre-existing notes, sketches, links

## Execution

### 1. Surface the problem

Ask the user the four canonical questions:

| #   | Question                                                          | Why it matters            |
| --- | ----------------------------------------------------------------- | ------------------------- |
| 1   | Who is the user and what are they trying to do?                   | defines the value prop    |
| 2   | What does success look like at the demo?                          | locks the demo_path later |
| 3   | What's the smallest thing we can show that proves the idea works? | prevents over-building    |
| 4   | What's the one thing we cannot ship without?                      | forces a hard priority    |

Refuse to proceed until each answer is at least one concrete sentence.

### 2. Detect contradictions

If two answers contradict (e.g. "we want ML" + "no ML allowed"),
surface the contradiction. Do not silently pick one. The agent must
resolve it before scope-knife runs.

### 3. Emit a one-page brief

Write `.hackathon/artifacts/idea-brief.md` with:

- the four answers verbatim
- any contradictions + how the agent resolved them
- a one-line `demo_goal` candidate
- a one-line `mvp_axis` (the smallest axis along which the MVP can grow)

## Output contract

Files written:

- `.hackathon/artifacts/idea-brief.md` (human-readable, one page)

This skill does NOT write to `.hackathon/state/*.json` directly.
It is a pre-scope-knife step; `scope-knife` reads the brief and writes
`plan.json` from it.

## Acceptance criteria

- [ ] The four canonical questions are asked exactly once.
- [ ] Contradictions are surfaced, not silently resolved.
- [ ] `demo_goal` is a single sentence (max 20 words).
- [ ] `mvp_axis` is a single noun phrase.
- [ ] `.hackathon/artifacts/idea-brief.md` exists and is <= 1 page.

## Failure modes

| Mode                       | Behavior                                    |
| -------------------------- | ------------------------------------------- |
| User gives one-word answer | Ask again, refuse to guess                  |
| User refuses to answer     | Surface as contradiction; refuse to proceed |
| Contradiction detected     | Block until resolved                        |
| Time < 1h                  | Skip step 1 questions; ask 3 + 4 only       |

## Trigger phrases (for agent intent matching)

- "we have an empty repo"
- "what should we build"
- "the brief is one paragraph"
- "we have an idea but no plan"
- "idea is too vague"
