agentleFS
requierequie/endostack/skills/interrogate/SKILL.md

interrogate

Skill4 starsChanged 14 days agoMITView on GitHub

Adversarial multi-model review of a diff or branch. Several read-only reviewers, plus a security seat, try to break the change; you sort every finding into act on, consider, noted, or dismissed. Use for "interrogate this", "tear this apart", "stress-test my branch". Reports only, never fixes.

73 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use ketchup-video, setup-pstack and 2 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • tristanphvnSkill

    ketchup-video

    Catch the user up like /keel:ketchup, with a short silent video of slides for what happened and the waiting calls as text under it. Use for /keel:ketchup-video.

    Also in 14 projects that use this

  • bnemaSkill

    setup-pstack

    Configure which Pi models pstack uses per role. Detects available provider/model specs and writes pstack's user configuration. Use for /setup-pstack, "configure pstack models", or changing pstack model choices.

    Also in 25 projects that use this

  • ianclearySkill

    poteto-help

    Guides users through pstack setup, /poteto-mode, and picking the skill, playbook, or principle for a task. Type /poteto-help with a question.

    Also in 14 projects that use this

  • instructureSkill

    ketchup

    Rebuild context after /clear by analyzing uncommitted changes across Canvas LMS and all plugin repositories

    Also in 24 projects that use this

The file

We split this skill into the rules it gives an agent

4 rules. 0 are common, 3 are distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 73 edited versions we read keep these.

  • 3

    Distinctive

    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
  1. Very specific:

    Add one more seat, labelled S, for the security reviewer.

    line 34
  2. Distinctive:

    Consider: each finding with the seats behind it and the tradeoff.

    line 62
  3. Distinctive:

    Do not edit code, commit, or post review comments.

    line 67
  4. Distinctive:

    Every finding from every seat sits in exactly one bucket with attribution and a reason, and the report is delivered.

    line 71

“Common” is measured: kept by at least 6 in 10 of the 73 edited versions of this file we could read. “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

interrogate

Several reviewers attack the same change independently, and you act as lead reviewer over what they return. The pressure comes from reviewers that think differently: different model families when the agent offers them, different briefs and stances when it does not. One extra seat always reviews from the attacker's side. You never edit code in this skill. The output is a verdict the user acts on.

Run it only when the user asks. Two cases belong elsewhere. If the user wants fixes applied, finish the verdict and let them choose what to act on. If the worry is what the change breaks outside its own lines, use the blast-radius skill. Do not interrogate an abstract plan that has no code yet: reviewers of a plan invent risks because nothing constrains them. A prototype answers a design question better than a review panel does.

Steps

Track a todo list with these six items: scope, intent, launch, merge, judge, report.

1. Scope

Pick what to review in this order, stopping at the first that applies:

  1. Files or a diff the user named.
  2. The current branch against its base: run a shell command for the three-dot diff (git diff <base>...HEAD) so commits already on the base are excluded.
  3. The files tied to the recent work the user mentions.

Bundle the changed code with the neighbouring files a reader needs: callers of changed functions, the types they use, the tests that cover them, and any config the change reads.

2. Intent

Write one paragraph on the purpose of the change. Your sources are what the user said, the commit messages, any PR description, and the code itself. Ask the user before launching reviewers if those sources leave the intent unclear. Reviewers will be told to accept this intent as given and attack only the execution, so a wrong intent paragraph wastes the whole panel.

3. Launch the panel

Read the interrogate-reviewers key from the EndoStack model config (.endostack/models.toml in the project, which wins key by key over ~/.endostack/models.toml). Each entry in the list is one reviewer seat, labelled A, B, C in order. With no config, use two seats: strong and fast. An inherit (or auto) entry runs on the session's model and still counts as a seat.

Add one more seat, labelled S, for the security reviewer. It runs on the judgment role (default strong). Its brief adds the security stance in references/reviewer-brief.md.

Spawn every seat as a read-only subagent in one parallel batch. Each gets the same brief, built from references/reviewer-brief.md and filled with the intent paragraph, the bundled code, the full rubric in references/rubric.md, and the full quality lens in references/quality-lens.md. If the agent passes a reasoning-effort setting, use the one that matches the config's budget.

Model problems never block the review. If the agent rejects a configured model name, run that seat on its default tier and tell the user in one line. If a tier itself cannot be resolved, use the closest model the agent's error lists and note it. Never treat inherit as a rejected name.

One model only. If the agent cannot choose a model per subagent, or only one model is available, say so in one line ("Single-model panel: reviewers differ by stance, not model."). Then give each seat a different stance from the list in references/reviewer-brief.md so the seats look for different failures. Weigh agreement between seats lower than you would agreement between model families, because the same model shares the same blind spots.

4. Merge

As results arrive, parse each finding. Combine findings that describe the same defect in different words and record which seats raised each one. A finding raised independently by two or more seats on different models is the strongest signal you will get. Read single-seat findings in full but weigh them lower, except for correctness and security findings, which get full scrutiny even from one seat. Record direct disagreements, especially where one seat claims the opposite of another.

5. Judge

Act as the lead reviewer using references/lead-judgment.md. You have more context than the reviewers, so trace call sites before accepting a hypothetical input problem. Sort each finding into one bucket only, and record next to it which seats reported it plus a single-line justification:

  • Act on: a real correctness, security, or maintainability defect given the stated intent, serious enough to hold the merge.
  • Consider: valid, but the fix may not be worth its cost now. The user decides.
  • Noted: true but not actionable now, for example context-dependent or low impact.
  • Dismissed: wrong, a nitpick, or caused by missing context, with the reason.

6. Report

Reply in this order:

  1. The intent paragraph, quoted.
  2. The roster: one line per seat with its model (or stance, on a single-model panel) and its finding count.
  3. Act on: each finding with location, the seats behind it, and why it matters.
  4. Consider: each finding with the seats behind it and the tradeoff.
  5. Noted: a short list.
  6. Dismissed: each finding with its reason. Tell the user to read this section, since a wrong dismissal is the most expensive mistake a lead reviewer makes.
  7. Agreement map: where the seats agreed, where they split, and what the split suggests.

Do not edit code, commit, or post review comments.

Done when

Every finding from every seat sits in exactly one bucket with attribution and a reason, and the report is delivered.

Related

  • The tarique-mode skill can call this skill as a review step.
  • The architect skill can run it on a design sketch before coding starts.
  • The setup-endostack skill writes the reviewer roster.
  • The rubric draws on principle-boundary-discipline, principle-fix-root-causes, principle-make-operations-idempotent, principle-separate-before-serializing-shared-state, principle-prove-it-works, principle-encode-lessons-in-structure, principle-migrate-callers-then-delete-legacy-apis, principle-subtract-before-you-add, and principle-treat-input-as-untrusted.

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.