loom-critique
Critique is the adversarial review layer.
It applies to code changes and to Loom artifacts.
This skill exists so review has the same durability and rigor as execution.
What This Skill Owns
- critique records
- critique packets
- findings and verdicts
- code review and artifact review
- direct artifact critique
- packetized implementation critique
- named critique profiles
- review severity and critique-owned finding state
- follow-up pressure on tickets, specs, plans, and wiki pages
Naming
Create new direct critique records as .loom/critique/<YYYYMMDD>-<slug>.md.
The canonical ID remains critique:<slug> without the date prefix. Use the
record creation date for the filename prefix so critique records support temporal
discovery and future retention or cleanup decisions.
Critique owns findings and verdicts. Tickets own live execution state,
acceptance disposition, accepted risk, and closure.
Critique packets use kind: packet with packet_kind: critique under
.loom/packets/critique/. They are critique-owned review contracts, not Ralph
implementation packets, and they do not use Ralph verification_posture unless
this skill later defines a critique-specific field.
Use This Skill When
- code changes need review before acceptance
- implementation claims need pressure-testing
- behavior changes need review against a spec or acceptance target
- Loom artifacts need review for owner-layer, scope, evidence, or clarity risk
- accepted-shape claims feel risky
- evidence may be weaker than the prose suggests
- the change class calls for review before acceptance
- a wiki page may be overstating certainty
Do Not Use This Skill When
- the next move is clearly implementation
- you only need a tiny local sanity check
- you want to silently mutate the ticket instead of leaving a review record
Critique Posture
Critique should be:
- skeptical but fair
- evidence-oriented
- explicit about severity and confidence
- durable enough for future agents to inspect
Default Procedure
- choose the review target and record it in the family-appropriate shape
- classify the review shape
- choose critique profiles proportional to the risk
- inspect the relevant diff, files, records, tests, evidence, and packet output
- write findings with severity, confidence, and challenged claims when relevant
- record the verdict and required follow-up
- link the critique back to the target ticket and related artifacts
For implementation review, read the verification story before the implementation
details when possible: tests, evidence, before/after observations, screenshots,
or performance numbers reveal what the author believes changed. Then inspect the
diff against correctness, simplicity, architecture, security/trust boundary,
performance, and owner-layer fit. Do not rubber-stamp because checks passed.
Review Target Grammar
- Direct critique records use scalar
review_target frontmatter: one
grep-friendly record ref, path, PR, branch, commit, diff range, or concise
target summary. Put longer target explanation in the # Review Target body
section, not in nested frontmatter.
- Critique packets use structured
review_target frontmatter because a bounded
fresh-context review contract benefits from target type, stable reference, diff
handle, and optional paths. Keep the packet summary field human-readable and
grep-friendly.
Review Shapes
Direct artifact critique
Use for reviewing a Loom artifact as an artifact: ticket clarity, plan
sequence, spec acceptance, packet quality, wiki certainty, evidence strength, or
external summary fidelity.
Do not compile a packet by default. Read the artifact, read enough owner context
to judge it, and write a critique record if the findings should persist.
Packetized implementation critique
Use for reviewing code or behavior changes, especially after a Ralph iteration.
The parent normally compiles a critique packet that includes:
- target ticket
- parent plan or initiative
- relevant spec, research, and evidence
- prior Ralph packet output
- acceptance or claim coverage targets
- git diff or changed-file summary
- required critique profiles
The reviewer should use the packet and the diff as the main review surface.
Common Rationalizations
- Rationalization: "LGTM is enough."
- Reality: Durable critique needs target, evidence reviewed, verdict, residual risks, and findings or an explicit no-findings statement.
- Rationalization: "Tests passed, so critique should pass."
- Reality: Tests are evidence. Critique reviews evidence sufficiency, scope, design, risks, and owner-layer truth.
- Rationalization: "Visual/product quality is taste."
- Reality: Taste still has inspectable signals: primary task clarity, hierarchy, affordance, density, and before/after evidence.
- Rationalization: "The ticket can disposition findings later."
- Reality: Critique owns findings and verdict now; tickets consume dispositions before closure.
- Rationalization: "External or subagent feedback is automatically right."
- Reality: Review feedback is a claim to verify against project reality, specs, evidence, and code before implementing or rejecting it.
Red Flags
- review target is vague or not tied to actual files, records, diff, or artifact
- critique summarizes implementer output without inspecting the source surface
- findings lack severity, confidence, or follow-up
- UI/product review ignores the baseline and primary user task
- mandatory critique is marked complete before final verdict and evidence review
- review feedback is implemented blindly without checking whether it is correct
for this codebase, ticket scope, or owner-record truth
Verification
Done Means
- the review target is explicit
- the verdict is explicit
- the major findings are explicit
- code findings cite files or lines when practical
- follow-up implications are explicit
- when packetized critique used a critique packet,
# Parent Merge Notes say how
the reviewer output was reconciled into owner layers or why it was rejected
- owner-layer reconciliation is explicit: critique owns findings and verdicts,
tickets own live execution state and acceptance disposition, and evidence/wiki
receive only the truths their layers own
- after parent reconciliation of a used critique packet, packet
status is moved
from compiled to the truthful terminal packet status: consumed,
superseded, or abandoned
Read In This Order
Read immediately for any substantive critique:
references/critique-lens.md when choosing review profiles or deciding what
evidence the target type needs.
references/review-pass-splitting.md when the review may need multiple
passes or when deciding direct artifact critique vs packetized
implementation review.
Then read conditionally:
references/finding-format.md before writing durable findings or tracking
finding dispositions.
skills/loom-evidence/SKILL.md when evidence strength, observed artifacts, or
claim support/challenge need direct inspection.
templates/critique.md when creating a critique record.
templates/critique-packet.md only for packetized implementation/code
review or high-risk fresh-context artifact review.
1---2name: loom-critique3description: Run adversarial review. Use for PR/diff/code/security/UX/API/performance/design review, or when behavior, records, evidence, risks, or acceptance claims need pressure-testing before acceptance.4---5
6# loom-critique
7
8Critique is the adversarial review layer.
9
10It applies to code changes and to Loom artifacts.
11This skill exists so review has the same durability and rigor as execution.
12
13## What This Skill Owns
14
15- critique records
16- critique packets
17- findings and verdicts
18- code review and artifact review
19- direct artifact critique
20- packetized implementation critique
21- named critique profiles
22- review severity and critique-owned finding state
23- follow-up pressure on tickets, specs, plans, and wiki pages
24
25## Naming
26
27Create new direct critique records as `.loom/critique/<YYYYMMDD>-<slug>.md`.
28The canonical ID remains `critique:<slug>` without the date prefix. Use the
29record creation date for the filename prefix so critique records support temporal
30discovery and future retention or cleanup decisions.
31
32Critique owns findings and verdicts. Tickets own live execution state,
33acceptance disposition, accepted risk, and closure.
34
35Critique packets use `kind: packet` with `packet_kind: critique` under
36`.loom/packets/critique/`. They are critique-owned review contracts, not Ralph
37implementation packets, and they do not use Ralph `verification_posture` unless
38this skill later defines a critique-specific field.
39
40## Use This Skill When
41
42- code changes need review before acceptance
43- implementation claims need pressure-testing
44- behavior changes need review against a spec or acceptance target
45- Loom artifacts need review for owner-layer, scope, evidence, or clarity risk
46- accepted-shape claims feel risky
47- evidence may be weaker than the prose suggests
48- the change class calls for review before acceptance
49- a wiki page may be overstating certainty
50
51## Do Not Use This Skill When
52
53- the next move is clearly implementation
54- you only need a tiny local sanity check
55- you want to silently mutate the ticket instead of leaving a review record
56
57## Critique Posture
58
59Critique should be:
60
61- skeptical but fair
62- evidence-oriented
63- explicit about severity and confidence
64- durable enough for future agents to inspect
65
66## Default Procedure
67
681. choose the review target and record it in the family-appropriate shape
692. classify the review shape
703. choose critique profiles proportional to the risk
714. inspect the relevant diff, files, records, tests, evidence, and packet output
725. write findings with severity, confidence, and challenged claims when relevant
736. record the verdict and required follow-up
747. link the critique back to the target ticket and related artifacts
75
76For implementation review, read the verification story before the implementation
77details when possible: tests, evidence, before/after observations, screenshots,
78or performance numbers reveal what the author believes changed. Then inspect the
79diff against correctness, simplicity, architecture, security/trust boundary,
80performance, and owner-layer fit. Do not rubber-stamp because checks passed.
81
82## Review Target Grammar
83
84- Direct critique records use scalar `review_target` frontmatter: one
85 grep-friendly record ref, path, PR, branch, commit, diff range, or concise
86 target summary. Put longer target explanation in the `# Review Target` body
87 section, not in nested frontmatter.
88- Critique packets use structured `review_target` frontmatter because a bounded
89 fresh-context review contract benefits from target type, stable reference, diff
90 handle, and optional paths. Keep the packet `summary` field human-readable and
91 grep-friendly.
92
93## Review Shapes
94
95### Direct artifact critique
96
97Use for reviewing a Loom artifact as an artifact: ticket clarity, plan
98sequence, spec acceptance, packet quality, wiki certainty, evidence strength, or
99external summary fidelity.
100
101Do not compile a packet by default. Read the artifact, read enough owner context
102to judge it, and write a critique record if the findings should persist.
103
104### Packetized implementation critique
105
106Use for reviewing code or behavior changes, especially after a Ralph iteration.
107
108The parent normally compiles a critique packet that includes:
109
110- target ticket
111- parent plan or initiative
112- relevant spec, research, and evidence
113- prior Ralph packet output
114- acceptance or claim coverage targets
115- git diff or changed-file summary
116- required critique profiles
117
118The reviewer should use the packet and the diff as the main review surface.
119
120## Common Rationalizations
121
122- Rationalization: "LGTM is enough."
123 - Reality: Durable critique needs target, evidence reviewed, verdict, residual risks, and findings or an explicit no-findings statement.
124- Rationalization: "Tests passed, so critique should pass."
125 - Reality: Tests are evidence. Critique reviews evidence sufficiency, scope, design, risks, and owner-layer truth.
126- Rationalization: "Visual/product quality is taste."
127 - Reality: Taste still has inspectable signals: primary task clarity, hierarchy, affordance, density, and before/after evidence.
128- Rationalization: "The ticket can disposition findings later."
129 - Reality: Critique owns findings and verdict now; tickets consume dispositions before closure.
130- Rationalization: "External or subagent feedback is automatically right."
131 - Reality: Review feedback is a claim to verify against project reality, specs, evidence, and code before implementing or rejecting it.
132
133## Red Flags
134
135- review target is vague or not tied to actual files, records, diff, or artifact
136- critique summarizes implementer output without inspecting the source surface
137- findings lack severity, confidence, or follow-up
138- UI/product review ignores the baseline and primary user task
139- mandatory critique is marked complete before final verdict and evidence review
140- review feedback is implemented blindly without checking whether it is correct
141 for this codebase, ticket scope, or owner-record truth
142
143## Verification
144
145- [ ] Review target and profiles are explicit.
146- [ ] Actual files, records, tests, evidence, screenshots, or diffs were inspected.
147- [ ] Findings have severity, confidence, and challenged claims when relevant.
148- [ ] Residual risks and acceptance recommendation are explicit.
149- [ ] Ticket-owned dispositions remain in the ticket, not the critique record.
150
151## Done Means
152
153- the review target is explicit
154- the verdict is explicit
155- the major findings are explicit
156- code findings cite files or lines when practical
157- follow-up implications are explicit
158- when packetized critique used a critique packet, `# Parent Merge Notes` say how
159 the reviewer output was reconciled into owner layers or why it was rejected
160- owner-layer reconciliation is explicit: critique owns findings and verdicts,
161 tickets own live execution state and acceptance disposition, and evidence/wiki
162 receive only the truths their layers own
163- after parent reconciliation of a used critique packet, packet `status` is moved
164 from `compiled` to the truthful terminal packet status: `consumed`,
165 `superseded`, or `abandoned`
166
167## Read In This Order
168
169Read immediately for any substantive critique:
170
1711. `references/critique-lens.md` when choosing review profiles or deciding what
172 evidence the target type needs.
1732. `references/review-pass-splitting.md` when the review may need multiple
174 passes or when deciding direct artifact critique vs packetized
175 implementation review.
176
177Then read conditionally:
178
1793. `references/finding-format.md` before writing durable findings or tracking
180 finding dispositions.
1814. `skills/loom-evidence/SKILL.md` when evidence strength, observed artifacts, or
182 claim support/challenge need direct inspection.
1835. `templates/critique.md` when creating a critique record.
1846. `templates/critique-packet.md` only for packetized implementation/code
185 review or high-risk fresh-context artifact review.