diff --git a/.pi/skills/grill b/.pi/skills/grill new file mode 120000 index 0000000..2806aae --- /dev/null +++ b/.pi/skills/grill @@ -0,0 +1 @@ +../../src/skills/grill \ No newline at end of file diff --git a/AGENTS.md b/AGENTS.md index 169ea08..bb3f712 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -19,6 +19,8 @@ ## Pull requests +- Always create a new branch before opening a pull request. + Never open a pull request directly from a shared or existing work branch. - During pull-request development, add follow-up commits instead of amending existing commits. Preserve review history until the pull request is ready to merge. - When the user says a pull request is merged, clean up the local branch without waiting for an explicit request. diff --git a/src/skills/grill/SKILL.md b/src/skills/grill/SKILL.md new file mode 100644 index 0000000..2d4b583 --- /dev/null +++ b/src/skills/grill/SKILL.md @@ -0,0 +1,82 @@ +--- +name: grill +description: Grill the user relentlessly about a plan, decision, or idea. Use when the user wants to stress-test their thinking, or uses any grill trigger phrase. +--- + +# grill + +Interview the user relentlessly until you reach a shared understanding. +Map the interview as a **design tree**. +Every decision branches into the decisions that depend on it. + +Never use an interactive question tool. +Do not act on the plan until the user confirms shared understanding. +Do not begin implementation after confirmation unless the user explicitly asks for implementation. + +## Steps + +1. Build the design tree. + Identify the root decision and every known dependent decision. + Read relevant files, docs, and prior conversation before asking. + Resolve facts yourself when the environment can answer them. + + Finish when known prerequisites, facts, and open decisions are mapped. + +2. Freeze the current frontier. + Treat the **frontier** as every decision whose prerequisites are settled. + Freeze those questions into the current round. + Put newly unblocked questions in the next round. + Put dependent questions in a later round when their prerequisite remains unsettled. + + Finish when the current round contains every currently unblocked decision. + +3. Ask one question from the current round. + Ask only one question per assistant turn. + Number the question. + Include your recommended answer. + + When a question turns on existing code, docs, or artifacts, open with a context quote. + Quote the exact passage that creates the question. + + Finish when the user can answer without scrolling through other questions. + +4. Wait for the user's answer. + Treat decisions as the user's job. + Treat facts as your job. + Do not ask the user for facts that tools or files can answer. + + Finish when the answer updates the design tree. + +5. Continue or advance the round. + Ask the next unanswered question from the frozen round. + Recompute the frontier only after the frozen round is complete. + Challenge vague or overloaded language with precise terms. + Probe edge cases with concrete scenarios. + Surface contradictions between user claims, docs, and code with quotes from both sides. + + Finish when the next turn has either another question from the current round or a new frozen round. + +6. Repeat rounds until the frontier is empty. + Stop only when every branch of the design tree has been visited. + Leave no decision silently assumed. + + Finish when you have visited every branch and no open decision remains. + +7. Close the interview. + State that the frontier is empty. + Ask the user to confirm that you reached a shared understanding. + Stop and wait for the user's next instruction. + + Finish when the user can confirm the shared understanding or give a new instruction. + +## Question format + +Use this format for each question: + +```markdown +Q1. **** + + + +Recommendation: +```