# Interview

> |

- **Type:** Skill
- **Install:** `agentstack add skill-mifunedev-agro-interview`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [mifunedev](https://agentstack.voostack.com/s/mifunedev)
- **Installs:** 0
- **Category:** [Cloud & Infrastructure](https://agentstack.voostack.com/c/cloud-infrastructure)
- **Latest version:** 0.1.0
- **License:** Apache-2.0
- **Upstream author:** [mifunedev](https://github.com/mifunedev)
- **Source:** https://github.com/mifunedev/agro/tree/main/.agro/skills/interview
- **Website:** https://agro.mifune.dev

## Install

```sh
agentstack add skill-mifunedev-agro-interview
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Interview

Resolve scope ambiguity before non-trivial work by batching 2–4 task-specific multiple-choice questions through `AskUserQuestion`, then proceeding with a short scope brief that reflects the answers.

## When to use

- `/interview` invoked explicitly (with or without a task description).
- Proactively, before non-trivial work where scope, intent, or constraints are ambiguous AND the user hasn't already specified them in the prompt.

The structured tool (`AskUserQuestion`) earns its keep when the user can resolve scope in one click rather than a paragraph of free-text Q&A.

## When NOT to use

Skip — and announce the skip — when any of these hold:

- **Trivial edits** — single-file typo, comment-only edit, format/whitespace pass.
- **Already specified** — the user's prompt already names goal + scope + constraints + acceptance criteria.
- **Follow-up turn** — same task, context already established earlier in the conversation.
- **Trivial CLI invocations** — `/release`, `/ci-status`, `gh pr list`, etc.
- **Plan approval moments** — that's `ExitPlanMode`, not this skill. `AskUserQuestion` is for *picking among options*, not approving a finished plan.
- **About to run `/prd` or `/spec plan`** — those have their own clarifier. For v1 the user chooses one or the other; do not stack.

## Instructions

### 1. Classify trivial vs non-trivial

If the task is trivial (per § *When NOT to use*), announce the skip and continue:

> Skipping interview — this looks trivial. Proceeding directly.

Do not refuse silently. The skip is a signal, not an absence.

### 2. Extract what's already known

Read the conversation context. List, internally, what's already specified — goal, files touched, mode, constraints, acceptance. **Do not re-ask anything the context already answers.** A question whose answer is already in the prompt is a tell that the model didn't read.

### 3. Pick 2–4 questions

Each question must clear the bar in § *Question quality bar* below. If you can't write 2 that clear the bar, ask 1 (sequential calls are fine) or skip and announce why. **Don't quota-fill** to reach 4.

### 4. Issue one batched `AskUserQuestion` call

Pass all questions in one tool call. Each `options` array has 2–4 entries; never 1, never 5+. The user UI auto-adds "Other" — do not add it manually. Use `multiSelect: true` only when the choices are genuinely not mutually exclusive.

Sequential calls are the rare exception: only when a later question's option set genuinely depends on an earlier answer (e.g., "which file?" depends on "which mode?").

### 5. Echo a 2–3 sentence scope brief, then proceed

After answers come back, write a 2–3 sentence brief that:

- Names the goal, the chosen path, and any non-default constraints from the answers.
- Surfaces any *stated* assumption you're making that wasn't in an answer.
- Has no plan-approval gate. Brief, then work.

If the user types **STOP** during the brief, halt — do not finish the thought, do not start the work.

## Question quality bar

Every question must satisfy **all** of:

- **Decision-shaping** — the answer changes *what* gets built, not how it's described. If both options lead to the same code, it's not a question.
- **Task-specific options** — options reference real files, components, modes, or thresholds from *this* task. Not "small / medium / large". Not "yes / no / maybe".
- **Mutually exclusive** — options don't overlap (or set `multiSelect: true` and acknowledge they don't).
- **Gut-answerable** — the user shouldn't need to read code to decide. If they would, the question is too deep — ask a shallower one first or do the reading yourself.
- **2–4 options** — never 1 (not a question), never 5+ (decision paralysis). "Other" is automatic.
- **Generic-filler ban** — refuse to emit: "what are your constraints?", "any preferences?", "any concerns?", "what's your goal?". These are tells the model didn't think hard enough about *this* task.

## Anti-patterns

- **Generic filler.** Banned (see above). If your question would work verbatim on a different task, it's filler.
- **Re-asking the answered.** Context already named the file or mode; don't ask again.
- **Quota-filling to 4.** Two sharp questions beat four mushy ones.
- **Plan-approval via `AskUserQuestion`.** Use `ExitPlanMode`. The two tools are not interchangeable.
- **Interviewing trivial tasks.** Typos, format passes, single-command invocations. Announce the skip and proceed.
- **Templated question banks.** A "standard 4 questions to ask before any refactor" defeats the adaptive thesis. Pick questions from this task.
- **Asking, then ignoring.** If the brief doesn't reflect the answers, the interview was theater.
- **Brief longer than the answers.** The brief is 2–3 sentences. If you need a paragraph, you're writing a plan — use `ExitPlanMode`.
- **Smuggled assumptions.** If the brief asserts something the user didn't pick, either surface it as a stated assumption ("Assuming X — say so if not") or ask another question.
- **Ignoring STOP.** If the user interjects "STOP" while you're writing the brief, halt. Do not finish the thought; do not start the work.

## Examples

### Example 1 — refactor request

**Invocation:** `/interview refactor the audit skill`

**BAD (generic filler):**

> What are your constraints for this refactor?
> Options: Time-constrained / Quality-first / Other

**GOOD (task-specific):**

```
AskUserQuestion:
  question: "Which axis of the audit skill is most worth changing?"
  header: "Refactor axis"
  options:
    - label: "Sub-agent prompts"
      description: "Tighten PM/Implementer/Critic/Explorer briefs to reduce overlap"
    - label: "Synthesis step"
      description: "Replace the tier-ranked report with a different output shape"
    - label: "Trigger conditions"
      description: "Change when the skill fires (manual vs heartbeat vs both)"
  multiSelect: false

  question: "What does success look like?"
  header: "Success signal"
  options:
    - label: "Fewer duplicate findings"
      description: "Sub-agents stop reporting the same issue under different framings"
    - label: "Faster wall-clock"
      description: "Audit completes meaningfully sooner without losing coverage"
    - label: "Higher action-rate"
      description: "More of the top-3 recommendations actually get worked on"
  multiSelect: false
```

**Scope brief (after answers come back):**

> Refactoring the audit skill to tighten the four sub-agent prompts so duplicate findings drop. Holding wall-clock and trigger conditions constant. Will land as edits to `.agro/skills/audit/references/harness.md` only.

### Example 2 — new feature

**Invocation:** `/interview add a "dry-run" mode to /release`

**BAD (generic filler):**

> Any concerns about backward compatibility?
> Options: Yes / No / Maybe

**GOOD (task-specific):**

```
AskUserQuestion:
  question: "What does --dry-run skip?"
  header: "Skip set"
  options:
    - label: "Only the push + tag"
      description: "Compute version, write CHANGELOG, commit locally — stop before pushing"
    - label: "Push + tag + CHANGELOG promote"
      description: "Compute version only, print intended actions, no file changes"
    - label: "Everything except CI poll"
      description: "Do the full release but skip the CI verification step"
  multiSelect: false

  question: "How does the user invoke it?"
  header: "Flag shape"
  options:
    - label: "--dry-run flag"
      description: "/release --dry-run, default off"
    - label: "DRY_RUN env var"
      description: "DRY_RUN=1 /release, no flag"
    - label: "Separate skill"
      description: "/release-preview as its own SKILL.md"
  multiSelect: false
```

**Scope brief:**

> Adding `--dry-run` to `/release` that computes the version and prints intended actions, but writes no files and runs no git operations. Implementation goes in `.claude/skills/release/SKILL.md` only.

The contrast is the teaching tool: same axis, but the GOOD form's options would only make sense for *this* task.

## Reference

### `AskUserQuestion` contract

| Field | Shape | Notes |
|---|---|---|
| `question` | string | Full question, ends in `?` |
| `header` | string ≤12 chars | Short chip/tag shown above the question |
| `options` | array, 2–4 entries | Each has `label` (1–5 words) + `description` (one line, states the tradeoff). No `Other` — auto-added. |
| `multiSelect` | bool, default `false` | `true` when choices aren't mutually exclusive |
| `questions` | array, 1–4 entries | Multiple questions batch into one tool call |

### When `AskUserQuestion` is the wrong tool

| Situation | Use instead |
|---|---|
| User needs to approve a finished plan | `ExitPlanMode` |
| Question requires free-text input (a filename, a number) | Plain prose question in chat |
| Question is one of many in a deep tree | Sequential `AskUserQuestion` calls — but reconsider whether you should be reading code first |
| Want to confirm before a destructive action | Plain prose confirmation in chat |

Future skills wanting structured elicitation can copy the option-shape contract above — `/interview` is the in-tree reference pattern.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [mifunedev](https://github.com/mifunedev)
- **Source:** [mifunedev/agro](https://github.com/mifunedev/agro)
- **License:** Apache-2.0
- **Homepage:** https://agro.mifune.dev

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-mifunedev-agro-interview
- Seller: https://agentstack.voostack.com/s/mifunedev
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
