agentleFS
mdrubelamin2mdrubelamin2/omc-slim/skills/deep-interview/SKILL.md

deep-interview

Skill1 starsChanged 56 days agoMITView on GitHub

Interviews the user in rounds of two to four questions before anything is built, then writes a spec file (goal, out of scope, acceptance criteria, verification plan) and STOPS for approval before any code.

We split this skill into the rules it gives an agent

4 rules. 0 are common, 4 are distinctive, and 0 are very specific to this project.

  • 0

    Common

    Most of the 12 edited versions we read keep these.

  • 4

    Distinctive

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Target the highest-scoring dimension: Do not ask what you already know.

    line 49
  2. Distinctive:

    Offer concrete options: when you can infer plausible ones.

    line 51
  3. Distinctive:

    Say why you are asking: when it is not obvious. It converts interrogation into collaboration.

    line 52
  4. Distinctive:

    After each round, rescore and show the movement:

    line 58

“Common” is measured: kept by at least 6 in 10 of the 12 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Deep Interview

Vague requirements produce confidently wrong software. This skill refuses to start building until the ambiguity is low enough that building is safe.

Invoked on purpose? Then run.

An explicit invocation is a decision already made. The user typed the command, so the question of whether to interview is settled. Do not re-open it, and do not answer a request to be interviewed with a paragraph explaining that the request was clear. That is the most annoying possible response to being asked for help.

Score the ambiguity anyway. The score is cheap, it is the gate the rest of this skill runs on, and it answers the question better than a judgement call. A genuinely specific request scores at or below the threshold in one pass, and you proceed to the spec with the score shown. That is a two-line answer, not a refusal.

When this is the wrong tool

This guard is for the case where nothing was invoked and you are deciding yourself. Stop and say so if the request is already specific. Interviewing someone who has already told you exactly what they want is not diligence, it is friction. A one-line bug fix does not need a spec.

Procedure

1. Score the ambiguity before asking anything

Rate each dimension 0–3, where 0 is "fully specified" and 3 is "no information":

DimensionThe question it answers
OutcomeWhat is true when this is done?
ScopeWhat is explicitly not included?
UsersWho uses this, and in what situation?
ConstraintsWhat can't change — stack, API, schema, deadline, budget?
SuccessHow will we verify it, concretely?
FailureWhat should happen when it goes wrong?

Sum the scores. Threshold: keep interviewing above 4. Report the starting score to the user so the gate is visible, not implied.

Every score cites what settled it: the phrase in the request that answered the dimension, or "nothing in the request speaks to this". A number with no citation is a number chosen to make the gate pass, and this gate is scored by the same model it constrains.

Outcome is not tradeable against the others. Outcome at 3 keeps the interview open whatever the sum says. A request whose finished state is unknown cannot be specified. And five well-understood dimensions around an unknown outcome is five confident answers about the wrong thing.

The score decides when to stop asking. It does not decide whether to build: the approval in step 5 does. Four rounds can end above 4, and that is a supported outcome, not a failure: you write the spec anyway with the unresolved dimensions named. Written the other way round, as a hard gate the procedure routinely overrides, the score would teach itself to be ignored.

2. Ask, targeting the worst dimension first

Rules for questions:

  • Two to four at a time, never a wall. An interview is a conversation.
  • Target the highest-scoring dimension. Do not ask what you already know.
  • Prefer questions that expose hidden assumptions over questions that gather facts. "What happens to in-flight orders during the migration?" beats "which database?".
  • Offer concrete options when you can infer plausible ones. Choosing is easier than composing.
  • Say why you are asking when it is not obvious. It converts interrogation into collaboration.

If the user answers vaguely, note the dimension is still open and ask once more with a sharper question. Two asks per dimension, and that is the cap: the original and the sharper one. A third is the interview arguing with the user: record the dimension as an accepted unknown and move on. Outcome is the exception: keep asking it, differently, until the round cap.

3. Rescore, and either loop or stop

After each round, rescore and show the movement:

Outcome     3 → 1   "a CLI for the ops team"
Scope       2 → 2   (still open: nothing names what is excluded)
Users       1 → 0
...
Total       11 → 4  — gate passed

Loop at most four rounds. If the total is still above 4 after four rounds, stop interviewing. Say plainly which dimensions remain unresolved and what the risk of proceeding is. An unresolvable ambiguity is a finding, not a failure: sometimes the honest answer is "nobody knows yet, let's prototype".

4. Write the spec

Write it to docs/specs/<slug>.md (or a path the user prefers). The spec is what the next component consumes: the omc-slim:deepwork skill when the work spans subsystems and must land together. A general-purpose writer briefed with the spec when it is a specified change, and the omc-slim:verification-planning skill when the acceptance criteria need an evidence path before anyone builds. Hand over the file, not a summary of it.

# <Title>

## Goal
One paragraph. What is true when this is done.

## Files and interfaces
Which files and modules this touches, and the interfaces it must not break. Named, not described — a spec whose reader has to go looking has not handed the work over.

## Out of scope
Explicit exclusions. This section prevents the most rework.

## Constraints
Stack, APIs, schemas, deadlines, anything that cannot move.

## Acceptance criteria
- [ ] Concrete, checkable statements. Not "works well".

## Verification plan
How each criterion gets checked. Name the command or the test.

## Open questions
Anything still unresolved, and the risk each one carries.

## Assumptions
What was assumed rather than confirmed. Wrong assumptions here are the likeliest cause of rework.

5. Stop and ask for approval

Do not start implementing. Present the spec path and a three-line summary, then wait for explicit approval.

This gate is the entire value of the skill. A spec written and then immediately acted on without confirmation is just a slower way to build the wrong thing.

An answer that declines to choose is neither approval nor refusal, and it has an exit. "You decide", "up to you", "whatever you think", silence on the question: the same move, however it is worded. Restate the single riskiest line in the spec, the one that costs most to get wrong. And ask once for an explicit yes to that line alone. Declined again, stop and hand back the spec path with a three-line summary. A shrug is not consent: the commonest way a user says "I have not read it yet" is "up to you", and building on that is the failure this gate exists to prevent. Record the unanswered question in the spec's Assumptions so the next session inherits it. A gate with no exit is a stall and costs the user their day — but the exit is ending the turn, not starting the work.

That is measured, and the measurement is small. Adding this gate took a four-skill pack from 83.17 to 97.67. That is n=3 on one frozen task, on another harness, with a post-hoc rerun: under this repository's own power standard a one-task design cannot carry a 14.5pp claim. Keep the gate for the mechanism, not for the number.

The gate survives the argument that the user already approved. They approved the interview. They have not seen the spec, because it did not exist when they typed. Section 1's "an explicit invocation is a decision already made" licenses you to skip the scoring debate, never the stop. The declined-choice rule above is the one licensed exit. If Section 1 and this gate ever seem to conflict, this one wins.

Once approved, plan the implementation lanes from the acceptance criteria. Give every lane the spec path as its brief.

Download now (ZIP)

  • Other versions20 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 20

    1. Yeachan-Heo/oh-my-claude-sisyphus★ 40ksame name
    2. Yeachan-Heo/oh-my-claudecode★ 40ksame name
    3. Yeachan-Heo/oh-my-codex★ 34ksame name
    4. zereight/gitlab-mcp★ 2.1ksame name
    5. diodeme/Gold-Band★ 160same name
    6. devbrother2024/skills★ 91same name
    7. tranhieutt/software_development_department★ 71same name
    8. klauswg/sasuke★ 17same name
    9. jscraik/Agent-Skills★ 9same name
    10. lza6/claw-code-tingfeng★ 5same name

    10 more not listed

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • Used alongsideProjects with it also use ralplan, ultraqa and 10 more.

    Other files people use alongside this one.

    Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
    • ibahgatSkill

      ralplan

      Create a strict, quality-first execution plan with explicit gates and rollback-ready sequencing.

      Also in 8 projects that use this

    • Jurel89Skill

      ultraqa

      QA cycling loop — build/lint/test, fix, retry up to 5 cycles

      Also in 4 projects that use this

    • Jurel89Skill

      configure-notifications

      Wire Telegram / Discord / Slack notifications for copilot-omni run events (start, progress, completion, error)

      Also in 4 projects that use this

    • ibahgatSkill

      hud

      Control omi visual HUD profile and keep status output readable in normal, compact, or hidden mode.

      Also in 5 projects that use this

    • zephyrpersonalSkill

      ultrawork

      Obsessive task completion mode (Sisyphus Mode) - activates maximum intensity work with todo continuation enforcement

      Also in 5 projects that use this

    • LucasCooperBeySkill

      visual-verdict

      Structured visual QA verdict for screenshot-to-reference comparisons. Returns JSON scores driving edit iterations. Use after any UI implementation to verify visual fidelity.

      Also in 3 projects that use this

    • +3 more from Jurel89
    • +1 more from ibahgat
  • In this repository5 other files it gives its agents.

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.