Skip to content
Development
Skill

/ase-task-grill

Interview the user relentlessly about the task plan until reaching a shared understanding, resolving each branch of the question decision tree. Use when the user wants to stress-test a plan, get grilled on their plan, or mentions "grill me" or "grill plan".

From plugin
ase
7662 skills11 agents

Claude Code

$ npx -y skills add rse/ase --skill ase-task-grill --agent claude-code

SKILL.md

ase-task-grill.SKILL.md
name: ase-task-grill
argument-hint: "[--help|-h] [--rounds|-r <n>] [--until|-u MUST|SHOULD|MAY] [--perspective|-p <perspective>] [--ground|-G] [--auto|-a] [--focus|-f <section>[,...]] [--force|-F] [--quiet|-q] [--diff|-d] [--next|-n <option>[,...]] [<id>]"
description: >
    Interview the user relentlessly about the task plan until reaching a
    shared understanding, resolving each branch of the question decision
    tree. Use when the user wants to stress-test a plan, get grilled on
    their plan, or mentions "grill me" or "grill plan".
user-invocable: true
disable-model-invocation: false
effort: high

@${CLAUDE_SKILL_DIR}/../../meta/ase-control.md @${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md @${CLAUDE_SKILL_DIR}/../../meta/ase-dialog.md @${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md

<purpose name="ase-task-grill"> Iteratively Grill a Task Plan </purpose>

<expand name="getopt" arg1="ase-task-grill" arg2="--rounds|-r=1 --until|-u=(MUST|SHOULD|MAY) --perspective|-p= --ground|-G --auto|-a --focus|-f=(all|SPECIFICATION|SPEC|WHAT|DESIGN|DES|HOW|VERIFICATION|VERIFY|VER|WHEN)... --force|-F --quiet|-q --diff|-d --next|-n=(none|DONE|GRILL|EDIT|IMPLEMENT|DRAFT)... --int-reuse-task --int-interactive"> $ARGUMENTS </expand>

<objective> Interview the user relentlessly about every essential aspect of the task plan until reaching a shared understanding. </objective>

@${CLAUDE_SKILL_DIR}/../../meta/ase-format-task.md @${CLAUDE_SKILL_DIR}/../../meta/ase-common-task.md @${CLAUDE_SKILL_DIR}/../../meta/ase-common-ground.md @${CLAUDE_SKILL_DIR}/../../meta/ase-common-grill.md

Procedure ---------

<define name="handoff-args"> Set <args>--int-reuse-task</args>. <if condition="<getopt-option-next/> is not equal `none`"> Set <args><args/> --next <getopt-option-next/></args> </if> </define>

1. **Determine Task:**

1. Set <instruction><getopt-arguments/></instruction> initially, with any leading and trailing whitespace stripped. Inherit the always existing <ase-task-id/> from the current context. Inherit the always existing <ase-session-id/> from the current context. Do not output anything.

2. If <getopt-option-rounds/> is not a positive integer, only output the following <template/> and then immediately *STOP* processing the entire current skill:

<template> ⧉ **ASE**: ☻ skill: **ase-task-grill**, ▶ ERROR: invalid `--rounds` value: **<getopt-option-rounds/>** </template>

3. Resolve the plan sections under focus:

<expand name="task-focus" arg1="ase-task-grill"></expand>

Each section in <sections/> selects its *focus areas* of the grilling: `SPECIFICATION` selects `DOMAIN` and `INTERFACE`, `DESIGN` selects `ARCHITECTURE` and `IMPLEMENTATION`, and `VERIFICATION` selects `REGRESSION` and `CONFIRMATION`. Do not output anything.

4. React on task id:

<expand name="task-react-id" arg1="ase-task-grill"></expand>

2. **Determine Task Plan:**

1. Determine the current task plan content:

<expand name="task-load-content"></expand>

2. <if condition="<task-content/> is empty"> Complain and tell the user to use the `ase-task-edit` skill first to create a task plan. Then immediately stop processing this skill. </if>

<if condition="<getopt-option-diff/> is equal `true`"> Set <body-before/> to the *body* of <task-content/>: its lines from the `# TASK:` title line up to, but excluding, the `---` line opening its first backmatter block (or up to its end, if it has none), i.e., without its frontmatter and backmatter. This remembers the plan *before* all rounds for step 4. Do not output anything. </if>

3. Determine the *grilling scope* of each section in <sections/>, in order to grill an *already grilled* section again *only* where questions are still *open*:

  • If <getopt-option-force/> is `true`, *ignore* any

`grilled:<section/>` tag: the scope of *every* section is the *entire* section, so already grilled sections are *re-grilled* completely. Skip the following two cases.

  • If the `Tags:` frontmatter key of <task-content/> carries

the tag `grilled:<section/>` (with <section/> being the *lower-case* name of the section) and the section contains *no* bullet-point in checkbox state `[?]`, the section is *already grilled* and nothing is open: *remove* it from <sections/> and only output the following <template/>:

<template> ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **section <section/> already grilled -- skipped (use `--force` to re-grill)** </template>

  • If the `Tags:` frontmatter key carries the tag

`grilled:<section/>` and the section contains *at least one* bullet-point in checkbox state `[?]`, *restrict* the scope of the section to *exactly* these `[?]` bullet-points, so the grilling re-asks only the *still open* questions.

  • Otherwise, the scope of the section is the *entire* section.

Independent of the scope, bullet-points in checkbox state `[-]` (cancelled) or `[>]` (deferred) are *inert*: they are *never* subject of a question and their checkbox is *never* changed.

<if condition="<sections/> is empty afterwards"> Skip the entire step 3 below -- the plan is *neither* updated *nor* saved -- and continue directly with step 4. </if>

3. **Iterate Over Task Plan Aspects:**

1. Understand what "grilling" is about:

<expand name="grill-understanding" arg1="the task plan in <task-content/>" arg2="<getopt-option-perspective/>" arg3="<getopt-option-ground/>"></expand>

<if con

Read more
@rse
Ships withase

Agentic Software Engineering (ASE)

7662 skills11 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
76
Star history of rse/ase on GitHub, a chart by star-history.com

Other skills on ase.

hello

hello

Show a nice greeting message with a timestamp. Use this when the user wants to greet or say hello, optionally to a certain…

@rse@rseInstall Skill
ase-arch-analyze

ase-arch-analyze

Review software architecture, including package cohesion and inter-package coupling

@rse@rseInstall Skill
ase-arch-discover

ase-arch-discover

Discover additional, third-party components (libraries/frameworks) for the technology stack to provide needed functionality.

@rse@rseInstall Skill
ase-code-analyze

ase-code-analyze

Analyze the source code for problems in either the logic and semantics and its related control flow, performance and efficiency,…

@rse@rseInstall Skill
ase-code-edit

ase-code-edit

Edit Source Code: Use when the user wants to "edit" the code base in one shot from a query or a bare analyzer issue id like "P1",…

@rse@rseInstall Skill
ase-code-explain

ase-code-explain

Explains code with WHAT, WHY, ANALOGY, DIAGRAM, CRUXES, and GOTCHAS. Use when you want to know how code works or when the user…

@rse@rseInstall 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 ase-task-grill.

Which coding agents can use ase-task-grill?
ase-task-grill 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.