Skip to content
Development
Skill

/grill-me

Use when `/ccf:plan` or `/ccf:init` needs to interview the user before acting. Internal requirements-interview engine, invoked only by those two through the Skill tool with a mode argument (plan / init); it interrogates the user one question at a time, exploring the code to

From plugin
ccf
92 skills6 agents4 commands2 MCP

Claude Code

$ npx -y skills add naniiluja/ccf --skill grill-me --agent claude-code

SKILL.md

grill-me.SKILL.md
name: grill-me
description: Use when `/ccf:plan` or `/ccf:init` needs to interview the user before acting. Internal requirements-interview engine, invoked only by those two through the Skill tool with a mode argument (plan / init); it interrogates the user one question at a time, exploring the code to self-answer first, and returns a summary of the decisions. Not a standalone command, and never triggered from ordinary conversation.
user-invocable: false
allowed-tools: Read, Glob, Grep, AskUserQuestion, Bash(git log:*), Bash(git branch:*), Bash(git status:*)

grill-me — CCF requirements interview engine

A CCF command invoked you through the Skill tool. `$ARGUMENTS` carries the **mode** that selects which topics to cover:

  • `plan` — interrogate one feature/change before writing a plan.
  • `init` — elicit project decisions before bootstrapping CCF.

Run a focused interview under the discipline below, then hand a concise **summary of the answers** back to the calling command so it can continue.

Interview discipline (every mode)

1. **One question at a time.** Ask, wait for the answer, and let that answer shape the next question. A batch of questions gets a batch of shallow answers, and it forfeits the chance to follow up on the one that mattered. 2. **Explore before you ask.** Before each question, try to answer it yourself from the codebase (Read / Glob / Grep). Ask only what the code cannot tell you; for what it can, confirm instead of asking blind. 3. **Recommend with every question.** Offer your recommended answer plus a one-line rationale, so the user can simply confirm. If the user defers, proceed with your recommendation and say which one you took. 4. **Stop when you have enough** to act. Past the point of diminishing returns, more questions cost the user's patience and buy nothing. 5. **Summarize at the end.** Give a short, structured recap of the decisions, ready for the command to fold into its next step.

<example> Confirming (correct, because the code already answered it): "I see the tests run with `npm test` and that `foo.ts:42` is the only caller of `parseRange` — still correct?"

Asking blind (wrong, the answer was one Grep away): "How do you run the tests, and who calls `parseRange`?"

Asking a genuine unknown (correct, no artifact records the intent): "When two writers hit the same row, should the second one overwrite or fail loudly? I recommend fail loudly, so a lost update never happens silently." </example>

Mode dispatch (`$ARGUMENTS`)

`plan`

Probe, in order, only the points still unclear after exploring the code: 1. **Acceptance criteria** — what observable behavior means "done"? 2. **Edge cases** — boundary inputs, empty/null, concurrency, limits. 3. **Data shape** — inputs/outputs, types, persistence, schema touched. 4. **Failure modes** — what can go wrong, and the expected handling. 5. **Test cases** — the concrete cases that must be green (the failing test comes first).

`init`

Read `references/init-mode.md` (relative to this skill's base directory) and walk it.

Unrecognized / empty mode

If `$ARGUMENTS` does not name a known mode, run a general requirements interview under the discipline above, inferring the topics from the calling command's context.

Gotchas

  • A question asked outside this skill silently dies when the calling command's `allowed-tools` lacks `AskUserQuestion`, so keep the interview inside the skill, whose allowlist carries it (`.claude/rules/components.md`).
  • Bundling several questions in one ask returns shallow answers and loses the follow-up that mattered (discipline 1 of this `SKILL.md`).
  • This skill has no write tool: report the answers, and let `/ccf:init` fill the templates (item (i) of `references/init-mode.md`).
  • A Claude Design handoff URL is authenticated, so record it and never fetch it (item (e2) of `references/init-mode.md`).
Read more
@naniiluja
Ships withccf

A plugin for Claude Code that keeps your AI coding assistant disciplined: plan first, keep the project spec fresh, check work against the spec, and run independent tasks in parallel.

92 skills6 agents2 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
9
Star history of naniiluja/ccf on GitHub, a chart by star-history.com

Other skills on ccf.

plan

plan

Use when a CCF-initialized project is in plan mode, after the user types /plan, or when they ask to plan a feature or change (lên…

@naniiluja@naniilujaInstall Skill

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills2w309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc2w293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react5d252k
@facebook@facebookInstall Skill

Questions about grill-me.

Which coding agents can use grill-me?
grill-me installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.