agentleFS
AhmedMerzaAhmedMerza/agent-skills/skills/court/SKILL.md

court

Skill2 starsChanged 41 days agoMITView on GitHub

Put an idea on trial in front of a jury of 12 Claudes. A prosecutor Claude argues it fails, a defense Claude argues it works, they rebut each other, 12 juror Claudes with different backgrounds vote on their own, and a judge Claude reads the verdict and the conditions that would flip it. For product, business and life ideas judged on the facts the user gives. Explicit request only: /court, "put it on trial", "court this". Never on its own: "is this a good idea" about code or a technical decision goes to /second-opinion or /best-option, which can check facts; jurors here only read the case file.

We split this skill into the rules it gives an agent

13 rules. About 0 are common, 8 are distinctive, and 5 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈8

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 5

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    If that is blank, or still reads like a placeholder, take the case from the conversation: the idea, plan or claim the user most recently …

    line 30
  2. Very specific:

    Every piece of bookkeeping goes through court.py in this skill's folder:

    line 35
  3. Distinctive:

    Read the flags out of the request.

    line 48
  4. Very specific:

    Run COURT plan with the same flags and tell the user in one line how big the trial is, for example "12 jurors, 17 sub-agent calls", then …

    line 56
  5. Distinctive:

    Do not add facts the user never gave, and do not write your own opinion of the idea into it.

    line 74
  6. Very specific:

    Always drive it with COURT next.

    line 85
  7. Distinctive:

    Every phase works the same way:

    line 88
  8. Distinctive:

    Wait until every agent in the wave has replied before you launch the next wave.

    line 98
  9. Very specific:

    After the last wave, run COURT next.

    line 99
  10. Very specific:

    When COURT next says the trial is over:

    line 106
  11. Distinctive:

    Never change, soften or re-count the verdict.

    line 118
  12. Distinctive:

    Never add praise the jury did not give.

    line 120
  13. Distinctive:

    If the user disagrees with the verdict, offer a retrial with the changes from "Conditions for acquittal" written into a new case file.

    line 121

≈ “Common” is an estimate: at least 1 in 5 of the 308,232 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.

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

court

For when Claude agrees with everything you say. Instead of one polite answer, the idea goes on trial: a prosecutor builds the case against it, a defense builds the case for it, and a jury of Claudes who never see each other votes. You are the clerk of the court. You never argue, never vote, and never soften the verdict.

What the user typed after /court: $ARGUMENTS

If that is blank, or still reads like a placeholder, take the case from the conversation: the idea, plan or claim the user most recently wanted an opinion on.

The tool

Every piece of bookkeeping goes through court.py in this skill's folder:

python3 "${CLAUDE_SKILL_DIR}/court.py" <command>

Below, COURT means exactly that command. If the path looks unexpanded, use the "Base directory for this skill" that Claude Code printed at the top of this skill. The state lives in .court/<run>/state.json in the current directory, and every command after init finds it through .court/LATEST.

Step 1: size it

Read the flags out of the request. Everything that is not a flag is the case.

flagmeaning
--jury NN jurors, 3 to 12. Default 12.
--quick6 jurors.
--seed SFixes which jurors sit on a smaller jury. Default: random, and recorded.

Run COURT plan with the same flags and tell the user in one line how big the trial is, for example "12 jurors, 17 sub-agent calls", then start. If this skill fired on its own (the user never asked for a trial), ask once first and offer --quick.

Sub-agents write into .court/ in the current directory. In the default permission mode that is one approval per file. Suggest accept-edits mode (Shift+Tab) for the trial. Do not change the user's settings yourself.

Step 2: write the case file

Sub-agents cannot see this conversation. The prosecutor, the defense, every juror and the judge know only what is in the case file, so write .court/case.md to stand on its own:

  • First line: the case in one sentence, in the user's own words where you can ("Quit my job to sell candles on Etsy full time").
  • Then everything the user told you that matters: numbers, audience, budget, timeline, what they have already tried, constraints.
  • Jurors cannot look anything up. If the case turns on a fact that can be checked (an API's behaviour, a price, a law), say so to the user before the trial and offer /second-opinion instead, or check it first and put the result in the case file as the user's fact.
  • Do not add facts the user never gave, and do not write your own opinion of the idea into it. A case file that leans one way decides the trial before it starts.

Step 3: open the trial

COURT init --case-file .court/case.md [--jury N | --quick] [--seed S]

Step 4: the trial

Always drive it with COURT next. It reads the files on disk and tells you the next phase and the exact command. The phases run in this order: opening, rebuttal, jury, judge.

Every phase works the same way:

  1. COURT prompts <phase> writes one brief per job and lists the jobs still to run, in waves.
  2. Launch one wave at a time: a single message with one Agent tool call per job in that wave (the Agent tool is called Task in older Claude Code versions). Each call is:

    • subagent_type: general-purpose
    • model: sonnet, and append "Do not spawn any subagents." to the prompt
    • description: court <job id>
    • prompt: Read <brief path> and follow it exactly. It is your whole brief.

    Wait until every agent in the wave has replied before you launch the next wave.

  3. After the last wave, run COURT next. If an output is missing it sends you back to the same phase, and prompts then lists only the missing jobs. Re-run those once. If a juror fails twice, write the single line NO VOTE into its file (COURT check jury lists it) and move on. Never write a vote, a statement or a judgment yourself.

Step 5: the verdict

When COURT next says the trial is over:

COURT render

It counts the votes, writes VERDICT.md into the run folder and prints it. Show the user the verdict line, the vote table and the judge's sections exactly as written. Then add at most two lines of your own: the single condition for acquittal you would start with, and the path to the full trial.

Rules for you, the clerk:

  • Never change, soften or re-count the verdict. A guilty verdict is useful information, not bad news to cushion.
  • Never add praise the jury did not give.
  • If the user disagrees with the verdict, offer a retrial with the changes from "Conditions for acquittal" written into a new case file. Do not argue for either side yourself.

Download now (ZIP)

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.