Critic loop
The critic loop raises the quality of finished work with independent, harsh critics. It is a first-class part of Weld: rubrics are versioned project packs, scores live on Work items, and the merge queue can refuse to auto-merge work below target.
Rubrics
Section titled “Rubrics”A rubric says what “8.5 art” means for this game. It lists dimensions (for example art,
gameplay, code, ux), score anchors that describe what a 4, a 7 and a 9 look like, weights and a
target. Rubrics are knowledge packs written and versioned by the humans on the team, usually in
.claude/skills/rubric-<kind>/. weld game new adds one for the chosen art style.
Without a project rubric, Weld uses a built-in one: code, ux, art or gameplay.
How a loop runs
Section titled “How a loop runs”- Make the best version you can. Critics on a half-done draft waste budget.
- Independent critique. N critic subagents (3 by default) run in parallel. Each sees
only the rubric and the artifact (a diff, files, screenshots from a
game.smokerun), never the author’s reasoning, the iteration number or earlier scores. Each returns strict scores from 0 to 10 per dimension, with justification and concrete issues. - Aggregate. The median per dimension, then a weighted overall score. A spread of 3 or more points between critics means the rubric’s anchors are ambiguous, and you are told.
- Decide. Target met: stop. Not met and iterations remain: fix the top issues and go again with new critics, which never remember earlier rounds. Cap reached (3 by default, never more than 5): stop and report honestly.
A typical report: art 6.5 → 7.8 → 8.6 (3 iterations, 3 critics, target 8.0 met). Anything that
only passed on the last allowed iteration gets a recommended human spot-check.
The critic-loop skill drives this inside Claude Code when you ask Claude to “polish”, “get this
to an 8” or “review against the rubric”.
Scores that count
Section titled “Scores that count”Scores for the merge gate are recorded only by a hub-issued critic run that a human starts.
The author never grades its own work, and the weld_score tool isn’t available to agents.
weld agents critique # the project's rubric pack, else the built-in code rubricweld agents critique --rubric art --critics 3weld agents critique --no-record # just print the scoresweld agents critique runs one round of critics on git diff main...HEAD, binds it to the
commit at the head of the Work’s branch, and records the medians plus overall on your Work
item. The hub numbers the iterations. Scores show on the Work item, the dashboard and in quality
metrics.
The merge gate
Section titled “The merge gate”Set targets per project:
weld agents targets # show themweld agents targets ux=8.5 code=7.5 # setweld agents targets ux= # remove oneweld agents targets --require-critic trueThe merge queue auto-merges only when, for the commit being merged, the latest score in every
target dimension meets its target. Below target, the merge waits for a human, who can improve the
work or override (weld merge override <merge id>). With --require-critic true, Work with no
scores at all also needs a human.
Never game the score
Section titled “Never game the score”The critics and the agent are told the same rules: never edit the rubric or the target to pass, never steer critics, never shrink the artifact to hide weak parts, never add text aimed at critics, never delete tests or content to remove a complaint. Improve the work, or stop and report.