agentsclimarketplace

Research critic

Skill jajupmochi/agent-harness/skills/general/research-critic

Linlin's curated AI agent harness configuration: workflow rules, skills, hooks, plugin recommendations, tooling preferences, and project templates. Loadable into any new project so a fresh /init can pick the relevant subset.

Install
npx -y skills add jajupmochi/agent-harness --skill research-critic

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Use AT EVERY RESEARCH STEP (hypothesis design, experiment setup, result interpretation, conclusion writing) to challenge soundness BEFORE committing the step. Catches confirmation bias, p-hacking, leakage, weak baselines, ungrounded claims, ad-hoc thresholds, survivorship bias. Apply automatically whenever about to write a paper claim, design an ablation, interpret a number, or update a results doc. Pairs with code-verifier (which audits artifact authenticity).

SKILL.md

7.8 KB, as published. Nobody here has run it

/research-critic

Adversarial review of the inferential chain BEFORE a claim is published.

Master TOC

Core principle

A real experiment can still be interpreted wrongly. Numbers don't speak for themselves — they require a chain of inference from {data, method, comparison} to {claim}. Each link is a place to lie to yourself. This skill challenges each link adversarially before the claim is published.

When to invoke

Before ANY of:

  • Writing a result line in a paper draft / RESULTS.md
  • Closing an experiment ticket as "done"
  • Adding a number to a table or figure
  • Saying "our method beats X" or "our method matches Y"
  • Concluding from an ablation
  • Committing a "headline" milestone in git
  • Sharing results with a collaborator / advisor

The Six-Question Audit

Run all six. Each NO answer is a STOP — fix before claiming.

Q1. Is the hypothesis falsifiable?

SufficientInsufficient
"Method X lifts metric Y by ≥ Z pp over baseline on dataset D, N folds""Method X improves Y" (improves how? on what?)
"Coverage matches target 1−α within Δ across α∈{...}""Calibration works"

Red flags: vague verbs (improves, outperforms, works); no specific magnitude; no specific dataset / metric / comparator.

Q2. Does the experiment design test the hypothesis?

Check that:

  • Independent variable changes ONLY the thing under test
  • All other knobs (seed, encoder checkpoint, pool, split, threshold, normalisation) are matched between conditions
  • Dependent variable measures what the claim says (mAP vs recall@1 vs precision are different)
  • Sample size sufficient for the claimed effect size

Common breaks:

  • "Method A: 60%, Method B: 65%" but A used 4 folds and B used 1 fold → not comparable
  • "Cross-domain transfer X%" but no in-domain baseline at SAME pool size → ambiguous denominator
  • "Our method works at scale" tested only on 200 samples
  • "Multi-seed × narrow-TTA helps" but no anti-control (variants may anti-compound)

Q3. Is the comparison fair?

FairUnfair
Same pool, same metric, same code path, only the named knob differsOld baseline number from a different setup
Both numbers from runs in this commitOne from prior paper, one from new code
Statistical test acknowledges variance"X > Y by 0.1 pp" claimed as a win with σ ≈ 1 pp

Anti-pattern: "free improvement" trap. If method B looks better than A "for free", check whether B was tuned (knob search) while A was the first config tried. Random initialization can give 1-2 pp swings; tuning B but not A is unfair.

Q4. Could the result be explained by leakage / artifact?

Audit:

  • Training set ∩ Test set must be empty (string identity ok; semantic identity not enough — e.g. same writer in train and test still leaks)
  • Validation set used to tune hyperparams must be held out from test-set metrics
  • Per-class evaluation: are test classes ever seen during training? (Closed-vocab vs open-vocab)
  • For ranking metrics: is the ranking model trained on the same query-relevance signal it's evaluated on?
  • For cross-domain transfer: truly never exposed to eval domain? (Including via pretrained weights.)

Q5. Is the conclusion proportional to the evidence?

ConclusionEvidence required
✅ "Method X +A pp over Y (N-fold paired test, p<0.05)"N-fold mean+std, paired test
⚠ "X is the best alignment method"Tested vs Chamfer & TPS; not vs ICP, RANSAC, all alternatives
❌ "X solves task T"Single benchmark only

Rules of thumb:

  • 1 dataset → "we observe on X"
  • 2-3 datasets → "we observe across X, Y, Z"
  • 4+ datasets with diverse properties → "generalises" (still hedge: under conditions Z)
  • Never: "solves", "best", "universal" without proof of impossibility for alternatives

Q6. Does the result survive plausible alternative explanations?

For each headline claim, list at least TWO alternative explanations and rule them out:

Claim: "Cross-domain transfer is 79.2%"

Alt 1: "Maybe pretrained encoder is doing all the work, not the alignment module"
  Rule out: Run with raw baseline → if comparable, alignment adds nothing
  Status: ✅ raw is 12%, with alignment 13.3% → adds 1.3pp

Alt 2: "Maybe transfer ratio is high because in-domain reference is also poor"
  Rule out: Check absolute in-domain numbers
  Status: ⚠ in-domain is 16.8% → ratio high partly because BOTH are low; reframe

Alt 3: "Maybe noise — single training run"
  Rule out: Multi-seed
  Status: ❌ only 1 seed. Caveat the claim or rerun.

If ANY alt is not ruled out, the claim is over-stated.

Anti-bias checklist

Applies to every result line:

  • Pre-registered prediction? (or at least: designed before seeing data?)
  • All conditions disclosed, not just winners
  • Effect size given, not just "significant"
  • Variance / std reported
  • Random seed disclosure (multi-seed if practical)
  • Baseline strength documented (not a strawman)
  • Code + data available for replication (commit hash, data version)
  • Ablation isolates each contributing component

Output format when critic flags an issue

[RESEARCH CRITIC — FLAG]

Question: Q<N>. <question summary>
Claim under audit:
  "<exact wording from draft / table / commit>"

Issue:
  <which assumption is violated or unverified>

Evidence needed to support claim:
  - <experiment / number / control>
  - <experiment / number / control>

Conservative restatement (if claim cannot be fully supported):
  "<weaker but defensible claim>"

Action:
  [ ] Run additional experiment: <command>
  [ ] OR weaken claim and proceed

Quick check (single line)

Before pasting any number into a paper / RESULTS.md / commit:

"Can I defend this number against an adversarial reviewer who knows the field, the data, and my code? If not — what's missing?"

If the answer involves wishful thinking ("they probably won't ask", "reviewers usually accept this", "it's standard"), STOP. Fix or weaken.

Anti-rationalisation

ExcuseReality
"It's the trend that matters"Then claim the trend, not the number
"Reviewers won't notice"They will
"Standard in the field"Standard ≠ correct
"Just for this draft"Drafts ossify into papers
"It's only 0.1 pp"Then say "no difference"
"Pool size doesn't matter much"Then test it
"Run another seed later"Run it now or hedge now

Companion

  • code-verifier — audits artifact authenticity (Layer 1-3). Use BEFORE this skill (genuine artifact, then check inferential chain).
  • always-on-verification rule (in this lib) — when to invoke both.
  • The superpowers:requesting-code-review skill complements with external review of the code path producing the numbers.

Provenance

Originally authored as a user-level always-on gate; consolidated into agent-harness for cross-project reuse. Pairs with code-verifier for full claim-defensibility coverage.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.