challenge-plan
Skill1 starsChanged 18 days agoMITView on GitHub
Interview the user relentlessly about a plan or decision until every branch is resolved. Triggers — "grill me", "stress-test this", "poke holes in this", or a ritual reaching a decision it must not guess.
2 other projects use a version of this.
Adopted by
Most recently taken up by
- gitkraken/vscode-gitlenstheir own version, first seen Oct 8, 2026
- parthjshah95/visual-planning-skillstheir own version, first seen Sep 12, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- gitkraken/vscode-gitlens★ 10ksame name
- parthjshah95/visual-planning-skills★ 14same name
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.
In this repository43 other files it gives its agents.
- AGENTS.mdAGENTS.md
- core/AGENTS.mdAGENTS.md
- evals/AGENTS.mdAGENTS.md
- index/AGENTS.mdAGENTS.md
- mcp/AGENTS.mdAGENTS.md
- tools/AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- architecture-reviewSkill
- audit-notesSkill
- change-impactSkill
- clarify-requestSkill
- connect-mcpSkill
- create-teamSkill
- daily-planSkill
- debug-issueSkill
- define-termsSkill
- design-specSkill
- end-of-day-summarySkill
- handover-notesSkill
- join-teamSkill
- merge-workSkill
- migrate-legacy-engineSkill
- personal-setupSkill
- quick-noteSkill
- register-projectsSkill
- repo-mapSkill
- resolve-conflictsSkill
- resume-workSkill
- retrospectiveSkill
- review-changeSkill
- set-profileSkill
- setup-repoSkill
- story-mapSkill
- suggest-skillsSkill
- summarize-filesSkill
- sync-websiteSkill
- trim-agent-docsSkill
- update-pluginSkill
- weekly-reviewSkill
- whats-changedSkill
- write-agent-docsSkill
- write-area-briefSkill
- write-context-docsSkill
The file
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 3 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 26
Repeat until the frontier is empty: every branch visited, nothing taken as given without being asked.
- Distinctive: line 31
Write each question like this:
- Distinctive: line 42
If a question turns on something you can look up (a file, the index, a config value, a tool's output), look it up instead of asking.
- Very specific: line 63
When an answer fixes the meaning of a term, add it to the target repo's CONTEXT.md as you go.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
/challenge-plan — question a plan until nothing in it is assumed
A plan is a set of decisions, and most of them depend on others: the storage choice waits on the consistency requirement, which waits on who reads the data. Treat the plan as a decision tree and keep asking until every branch has an answer the user gave, not one you supplied.
How a session runs
- Lay out the tree. List the open decisions and, for each, which other decisions it depends on. Keep this in your working notes; the user does not need to see the whole tree.
- Find the frontier. The frontier is every open decision whose dependencies are all settled: the questions that can be answered now without guessing at an earlier answer.
- Ask the whole frontier as one round. Number the questions. Give each one your recommended answer and the reason for it. If a question's answer would change because of another question in the same round, it is not on the frontier yet; hold it for a later round.
- Wait for the answers. Then mark those decisions settled, add any new decisions the answers opened, and recompute the frontier.
- Repeat until the frontier is empty: every branch visited, nothing taken as given without being asked.
- Confirm before acting. Summarise what was decided and ask the user to confirm it is the shared understanding. Nothing gets built on the plan until they do.
Write each question like this:
**Q3. <short title>**
<the question; as long as it needs to be, with options if there are any>
Recommended: <your answer, and why>Facts are yours to find; decisions are the user's
If a question turns on something you can look up (a file, the index, a config value, a tool's output), look it up instead of asking. Hand the lookup to a sub-agent and keep going: only the questions that depend on that fact wait for it, and the rest of the frontier goes out now.
What the user chooses (scope, trade-offs, priorities, risk) is never something to infer. Ask, and wait for the answer.
Where this fits in Cortex
Grilling is the interview method other rituals use; it is not a stage of any one of them.
/architecture-reviewgrills the candidate the user picks from its report./design-specgrills a brainstorm before it becomes a design spec./write-context-docsgrills the user for what the code cannot tell it./retrospectiveand/personal-setupalso interview the user, but about the user: their week, their work. Those questions have no answer to recommend, so they do not use rounds./personal-setupasks one question at a time, and on a re-run takes what the vault already holds as the default. Use rounds when the answers are decisions.
Two Cortex rules come under pressure in a grilling session, so hold them deliberately:
- When an answer fixes the meaning of a term, add it to the target repo's
CONTEXT.mdas you go. When it settles a trade-off and an alternative was rejected, offer an ADR in the repo's ADR directory (docs/adr/, oradr/)./define-termshas the formats. - The employer firewall holds. Grilling a personal project does not bring day-job systems, colleagues or client names into the record.
With nobody to answer
The method needs a person on the other end. In a headless run (claude -p), inside a subagent, or
when the user has said they are away, no one will answer the round.
In that case, write the current frontier once, each question with its recommended answer, and report it as the blocker: which decisions are open, and what work waits on each. A recommended answer is still only a recommendation, so build nothing on it. Continue only with work that no open decision touches. When the user or the calling ritual answers, resume from that round.
When the floor is not met
Each round depends on the answers to the last. A model that cannot hold that state repeats questions and stops before the tree is resolved, and an early stop reads as agreement, so the failure looks like success.
Below the floor, run it as a written interview: put three questions in a file, have the user answer in the file, read the file again, and add the next three. The file holds the state the model cannot. It is slower, and it still converges.
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
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.

