@olegkoval/agent-skills 1.48.0 → 1.49.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/prompts/self-critique.prompt.md +85 -4
- package/adapters/claude/olko-reflection/skills/self-critique/SKILL.md +86 -5
- package/adapters/cursor/olko-reflection/skills/self-critique/SKILL.md +86 -5
- package/adapters/grok/olko-reflection/skills/self-critique/SKILL.md +86 -5
- package/package.json +1 -1
- package/plugins/olko-apple-kit/.claude-plugin/plugin.json +1 -1
- package/plugins/olko-creative/.claude-plugin/plugin.json +1 -1
- package/plugins/olko-garmin-kit/.claude-plugin/plugin.json +1 -1
- package/plugins/olko-git-tools/.claude-plugin/plugin.json +1 -1
- package/plugins/olko-github-pr/.claude-plugin/plugin.json +1 -1
- package/plugins/olko-obsidian/.claude-plugin/plugin.json +1 -1
- package/plugins/olko-product/.claude-plugin/plugin.json +1 -1
- package/plugins/olko-reflection/.claude-plugin/plugin.json +1 -1
- package/plugins/olko-reflection/skills/self-critique/SKILL.md +86 -5
- package/plugins/olko-release/.claude-plugin/plugin.json +1 -1
- package/plugins/olko-skill-meta/.claude-plugin/plugin.json +1 -1
- package/plugins/olko-web-ops/.claude-plugin/plugin.json +1 -1
|
@@ -15,10 +15,13 @@ Run an adversarial review of **your own previous answer** and report the result
|
|
|
15
15
|
A confident answer is not a verified one. This skill turns your last substantial reply into the
|
|
16
16
|
subject of a hostile review: a separate critic agent tries to refute it against live sources, hunts
|
|
17
17
|
for the related issue or pattern you missed, and scores it. You then revise and re-score until the
|
|
18
|
-
score stops moving,
|
|
18
|
+
score stops moving, report the outcome honestly, including where you were wrong, and convert what
|
|
19
|
+
the critic caught into a rule that survives the session.
|
|
19
20
|
|
|
20
|
-
The point is to surface error before the user does,
|
|
21
|
-
quantity instead of a vibe
|
|
21
|
+
The point is to surface error before the user does, to make "is this actually right?" a measured
|
|
22
|
+
quantity instead of a vibe, and to make the same mistake cost less the second time than it did the
|
|
23
|
+
first. A critique that ends at a score has bought one corrected answer. A critique that ends at a
|
|
24
|
+
durable rule has bought every answer after it.
|
|
22
25
|
|
|
23
26
|
## When to Use
|
|
24
27
|
|
|
@@ -35,11 +38,19 @@ answers.
|
|
|
35
38
|
1. **Snapshot the target.** Capture your last substantial answer verbatim, plus the concrete claims
|
|
36
39
|
it makes and the source each claim rests on. This is `v1`.
|
|
37
40
|
|
|
41
|
+
Write the claim list before you re-read the answer's prose, and put a real receipt against each
|
|
42
|
+
claim: a quoted field, a `file:line` whose body you actually opened, a command and its output.
|
|
43
|
+
A claim you cannot receipt at snapshot time is already a finding - mark it `unverified` yourself
|
|
44
|
+
rather than waiting for the critic to find it. Grep output, a file name, a path, an endpoint
|
|
45
|
+
string, or the behaviour of a sibling module are not receipts for what code does; they prove
|
|
46
|
+
those things exist, not what they do.
|
|
47
|
+
|
|
38
48
|
2. **Spawn the critic.** Launch one independent agent with live-source access (issue tracker, code
|
|
39
49
|
host, error monitor, the repo). Use the prompt template below. The critic must return: `score`
|
|
40
50
|
(0-100), `verdict` (AGREE / AGREE-WITH-CAVEATS / DISAGREE), `where_wrong` (list), `missed`
|
|
41
51
|
(related issues or patterns you failed to surface), `unverifiable` (claims it could not confirm),
|
|
42
|
-
|
|
52
|
+
`fixes` (ranked, actionable), and `shapes` (the reusable class of reasoning behind each
|
|
53
|
+
`where_wrong` item, which Step 5 turns into the rule).
|
|
43
54
|
|
|
44
55
|
3. **Decide and loop.** Stop if `score >= 90` OR no actionable `fixes` remain. Otherwise revise the
|
|
45
56
|
answer using the fixes to produce `v2`, then re-spawn the critic to score `v2`. Repeat.
|
|
@@ -54,6 +65,64 @@ answers.
|
|
|
54
65
|
If only one round ran, state `no revision needed`.
|
|
55
66
|
- **Final score** - the critic's last score and verdict.
|
|
56
67
|
- **Unverifiable** - anything you should not present as fact.
|
|
68
|
+
- **Declined fixes** - any ranked fix you chose not to take, and the reason. Silently dropping a
|
|
69
|
+
fix looks identical to missing it.
|
|
70
|
+
|
|
71
|
+
5. **Convert the outcome into a durable rule.** See below. Skipping this step is what makes the
|
|
72
|
+
same critique necessary again next week.
|
|
73
|
+
|
|
74
|
+
## Step 5: turn the critique into something that outlives the session
|
|
75
|
+
|
|
76
|
+
A score is a measurement, not an improvement. The improvement is the rule you write down, in a
|
|
77
|
+
place a future session actually reads, before you move on.
|
|
78
|
+
|
|
79
|
+
**Not every finding earns a rule.** Write one only when the finding passes both gates:
|
|
80
|
+
|
|
81
|
+
- **Recurrence** - the same *shape* of mistake could plausibly happen again on a different task.
|
|
82
|
+
- **Cost** - it would have reached the user, cost real rework, or damaged their credibility with
|
|
83
|
+
someone else.
|
|
84
|
+
|
|
85
|
+
A one-off factual slip, a typo, or a finding fully explained by this task's specifics fails both.
|
|
86
|
+
Writing a rule for it pollutes the store, and a littered store is worse than a thin one, because
|
|
87
|
+
the next session stops reading it.
|
|
88
|
+
|
|
89
|
+
**Write the shape, not the incident.** The incident is the evidence; the shape is the rule. Ask
|
|
90
|
+
what class of reasoning produced the error, then name that class:
|
|
91
|
+
|
|
92
|
+
| Incident | Shape worth keeping |
|
|
93
|
+
| --- | --- |
|
|
94
|
+
| Called an endpoint a read because the path was a noun and a sibling module imported | A conclusion drawn from evidence that does not cover the claim |
|
|
95
|
+
| Priced an open design question as "small" in the same sentence that asked which design was wanted | Never attach a size to an answer you are simultaneously asking for |
|
|
96
|
+
| Described a batch from the one member that was checked | Check the risk-deciding field on every member before describing the set |
|
|
97
|
+
|
|
98
|
+
**Route it to the narrowest store the host has**, in this order, and only one of them:
|
|
99
|
+
|
|
100
|
+
1. The user's or project's agent memory, when the rule is about how to work with this user or this
|
|
101
|
+
project.
|
|
102
|
+
2. The repository's own `CLAUDE.md` / `AGENTS.md`, when the rule is true only inside that codebase.
|
|
103
|
+
3. A shared, cross-session store, when the rule holds across projects. Use `context-repo` to resolve
|
|
104
|
+
it, or `shared-knowledge-artifact` when several agents need to read the same ledger.
|
|
105
|
+
|
|
106
|
+
Broadening a rule's scope so it qualifies for a wider store is the failure mode to avoid: one
|
|
107
|
+
incident on one afternoon is not standing policy. Let the evidence decide where it lands.
|
|
108
|
+
|
|
109
|
+
**Each rule carries three things.** Without all three the next session cannot act on it:
|
|
110
|
+
|
|
111
|
+
- **The rule**, stated as the shape, in the imperative.
|
|
112
|
+
- **Why**, with the incident and its receipt, dated. A rule with no cost attached gets argued away.
|
|
113
|
+
- **How to apply**, naming the moment the rule fires ("before drafting outbound text", "before
|
|
114
|
+
describing a batch"), not just the principle.
|
|
115
|
+
|
|
116
|
+
Before writing to shared persistence, redact the incident evidence, including when using
|
|
117
|
+
`context-repo` or `shared-knowledge-artifact`, while still including the incident and its dated
|
|
118
|
+
receipt. This redaction requirement does not apply to local agent memory or repository-rule writes.
|
|
119
|
+
|
|
120
|
+
**Dedupe before writing.** Read the store first. If a rule of the same shape exists, sharpen it and
|
|
121
|
+
add this incident as further evidence rather than creating a second entry. Link related rules
|
|
122
|
+
instead of restating them.
|
|
123
|
+
|
|
124
|
+
**Then close the loop.** State in your report where the rule was written and what it says, so the
|
|
125
|
+
user can veto it. A rule the user has not seen is a rule they cannot correct.
|
|
57
126
|
|
|
58
127
|
## Critic prompt template
|
|
59
128
|
|
|
@@ -92,6 +161,9 @@ the default stance is that the answer is wrong until a live source proves otherw
|
|
|
92
161
|
> - `missed`: related issues or patterns the author failed to surface, with IDs
|
|
93
162
|
> - `unverifiable`: claims that need a source you do not have
|
|
94
163
|
> - `fixes`: ranked, actionable - what to change to raise the score
|
|
164
|
+
> - `shapes`: for each item in `where_wrong`, the class of reasoning that produced it, stated so it
|
|
165
|
+
> would apply to a different task ("a conclusion drawn from evidence that does not cover the
|
|
166
|
+
> claim"), not the incident itself. Say `one-off` when the error has no reusable shape.
|
|
95
167
|
|
|
96
168
|
## Optional: auto-offer via a Claude Code Stop hook
|
|
97
169
|
|
|
@@ -138,3 +210,12 @@ message.
|
|
|
138
210
|
- Diversity beats redundancy: if a claim can fail in more than one way, give the critic distinct
|
|
139
211
|
lenses (correctness, completeness, does-it-reproduce) instead of repeating the same check.
|
|
140
212
|
- The critic verifies against live sources; it does not rewrite the answer. You revise; it re-scores.
|
|
213
|
+
- Re-score by messaging the same critic rather than spawning a fresh one, and hand it the receipts
|
|
214
|
+
for whatever it could not verify in the earlier round, so round two spends its budget on the
|
|
215
|
+
claims still standing instead of re-deriving the ones already settled.
|
|
216
|
+
- A critic finding you disagree with is worth one challenge. Put the reasoning to it and let it rule;
|
|
217
|
+
if it concedes, that is a real answer for the report, and the reasoning is what the user needs to
|
|
218
|
+
see either way.
|
|
219
|
+
- The honest test of Step 5 is not that a rule was written, it is that the next task of the same
|
|
220
|
+
class does not need this skill to catch the same thing. If it does, the rule named the incident
|
|
221
|
+
instead of the shape - rewrite it, do not add another.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: self-critique
|
|
3
|
-
description: Adversarially critique your own last substantial answer before the user has to. Spawn a critic agent that verifies every claim against live sources, checks similar and related issues, finds patterns, and addresses comments directly to you. Loop (revise, re-score) until satisfied,
|
|
3
|
+
description: Adversarially critique your own last substantial answer before the user has to. Spawn a critic agent that verifies every claim against live sources, checks similar and related issues, finds patterns, and addresses comments directly to you. Loop (revise, re-score) until satisfied, report where you were wrong, iterations-to-satisfy, the numeric improvement and a final score, then convert what the critic caught into a durable rule so the next session does not repeat it. Use when the user asks you to criticize, challenge, stress-test, or red-team your own answer, or accepts a "critical-thinking review" offer.
|
|
4
4
|
license: MIT
|
|
5
5
|
compatibility: Codex, Claude Code, Cursor, and other Agent Skills compatible tools.
|
|
6
6
|
metadata:
|
|
@@ -24,10 +24,13 @@ Run an adversarial review of **your own previous answer** and report the result
|
|
|
24
24
|
A confident answer is not a verified one. This skill turns your last substantial reply into the
|
|
25
25
|
subject of a hostile review: a separate critic agent tries to refute it against live sources, hunts
|
|
26
26
|
for the related issue or pattern you missed, and scores it. You then revise and re-score until the
|
|
27
|
-
score stops moving,
|
|
27
|
+
score stops moving, report the outcome honestly, including where you were wrong, and convert what
|
|
28
|
+
the critic caught into a rule that survives the session.
|
|
28
29
|
|
|
29
|
-
The point is to surface error before the user does,
|
|
30
|
-
quantity instead of a vibe
|
|
30
|
+
The point is to surface error before the user does, to make "is this actually right?" a measured
|
|
31
|
+
quantity instead of a vibe, and to make the same mistake cost less the second time than it did the
|
|
32
|
+
first. A critique that ends at a score has bought one corrected answer. A critique that ends at a
|
|
33
|
+
durable rule has bought every answer after it.
|
|
31
34
|
|
|
32
35
|
## When to Use
|
|
33
36
|
|
|
@@ -44,11 +47,19 @@ answers.
|
|
|
44
47
|
1. **Snapshot the target.** Capture your last substantial answer verbatim, plus the concrete claims
|
|
45
48
|
it makes and the source each claim rests on. This is `v1`.
|
|
46
49
|
|
|
50
|
+
Write the claim list before you re-read the answer's prose, and put a real receipt against each
|
|
51
|
+
claim: a quoted field, a `file:line` whose body you actually opened, a command and its output.
|
|
52
|
+
A claim you cannot receipt at snapshot time is already a finding - mark it `unverified` yourself
|
|
53
|
+
rather than waiting for the critic to find it. Grep output, a file name, a path, an endpoint
|
|
54
|
+
string, or the behaviour of a sibling module are not receipts for what code does; they prove
|
|
55
|
+
those things exist, not what they do.
|
|
56
|
+
|
|
47
57
|
2. **Spawn the critic.** Launch one independent agent with live-source access (issue tracker, code
|
|
48
58
|
host, error monitor, the repo). Use the prompt template below. The critic must return: `score`
|
|
49
59
|
(0-100), `verdict` (AGREE / AGREE-WITH-CAVEATS / DISAGREE), `where_wrong` (list), `missed`
|
|
50
60
|
(related issues or patterns you failed to surface), `unverifiable` (claims it could not confirm),
|
|
51
|
-
|
|
61
|
+
`fixes` (ranked, actionable), and `shapes` (the reusable class of reasoning behind each
|
|
62
|
+
`where_wrong` item, which Step 5 turns into the rule).
|
|
52
63
|
|
|
53
64
|
3. **Decide and loop.** Stop if `score >= 90` OR no actionable `fixes` remain. Otherwise revise the
|
|
54
65
|
answer using the fixes to produce `v2`, then re-spawn the critic to score `v2`. Repeat.
|
|
@@ -63,6 +74,64 @@ answers.
|
|
|
63
74
|
If only one round ran, state `no revision needed`.
|
|
64
75
|
- **Final score** - the critic's last score and verdict.
|
|
65
76
|
- **Unverifiable** - anything you should not present as fact.
|
|
77
|
+
- **Declined fixes** - any ranked fix you chose not to take, and the reason. Silently dropping a
|
|
78
|
+
fix looks identical to missing it.
|
|
79
|
+
|
|
80
|
+
5. **Convert the outcome into a durable rule.** See below. Skipping this step is what makes the
|
|
81
|
+
same critique necessary again next week.
|
|
82
|
+
|
|
83
|
+
## Step 5: turn the critique into something that outlives the session
|
|
84
|
+
|
|
85
|
+
A score is a measurement, not an improvement. The improvement is the rule you write down, in a
|
|
86
|
+
place a future session actually reads, before you move on.
|
|
87
|
+
|
|
88
|
+
**Not every finding earns a rule.** Write one only when the finding passes both gates:
|
|
89
|
+
|
|
90
|
+
- **Recurrence** - the same *shape* of mistake could plausibly happen again on a different task.
|
|
91
|
+
- **Cost** - it would have reached the user, cost real rework, or damaged their credibility with
|
|
92
|
+
someone else.
|
|
93
|
+
|
|
94
|
+
A one-off factual slip, a typo, or a finding fully explained by this task's specifics fails both.
|
|
95
|
+
Writing a rule for it pollutes the store, and a littered store is worse than a thin one, because
|
|
96
|
+
the next session stops reading it.
|
|
97
|
+
|
|
98
|
+
**Write the shape, not the incident.** The incident is the evidence; the shape is the rule. Ask
|
|
99
|
+
what class of reasoning produced the error, then name that class:
|
|
100
|
+
|
|
101
|
+
| Incident | Shape worth keeping |
|
|
102
|
+
| --- | --- |
|
|
103
|
+
| Called an endpoint a read because the path was a noun and a sibling module imported | A conclusion drawn from evidence that does not cover the claim |
|
|
104
|
+
| Priced an open design question as "small" in the same sentence that asked which design was wanted | Never attach a size to an answer you are simultaneously asking for |
|
|
105
|
+
| Described a batch from the one member that was checked | Check the risk-deciding field on every member before describing the set |
|
|
106
|
+
|
|
107
|
+
**Route it to the narrowest store the host has**, in this order, and only one of them:
|
|
108
|
+
|
|
109
|
+
1. The user's or project's agent memory, when the rule is about how to work with this user or this
|
|
110
|
+
project.
|
|
111
|
+
2. The repository's own `CLAUDE.md` / `AGENTS.md`, when the rule is true only inside that codebase.
|
|
112
|
+
3. A shared, cross-session store, when the rule holds across projects. Use `context-repo` to resolve
|
|
113
|
+
it, or `shared-knowledge-artifact` when several agents need to read the same ledger.
|
|
114
|
+
|
|
115
|
+
Broadening a rule's scope so it qualifies for a wider store is the failure mode to avoid: one
|
|
116
|
+
incident on one afternoon is not standing policy. Let the evidence decide where it lands.
|
|
117
|
+
|
|
118
|
+
**Each rule carries three things.** Without all three the next session cannot act on it:
|
|
119
|
+
|
|
120
|
+
- **The rule**, stated as the shape, in the imperative.
|
|
121
|
+
- **Why**, with the incident and its receipt, dated. A rule with no cost attached gets argued away.
|
|
122
|
+
- **How to apply**, naming the moment the rule fires ("before drafting outbound text", "before
|
|
123
|
+
describing a batch"), not just the principle.
|
|
124
|
+
|
|
125
|
+
Before writing to shared persistence, redact the incident evidence, including when using
|
|
126
|
+
`context-repo` or `shared-knowledge-artifact`, while still including the incident and its dated
|
|
127
|
+
receipt. This redaction requirement does not apply to local agent memory or repository-rule writes.
|
|
128
|
+
|
|
129
|
+
**Dedupe before writing.** Read the store first. If a rule of the same shape exists, sharpen it and
|
|
130
|
+
add this incident as further evidence rather than creating a second entry. Link related rules
|
|
131
|
+
instead of restating them.
|
|
132
|
+
|
|
133
|
+
**Then close the loop.** State in your report where the rule was written and what it says, so the
|
|
134
|
+
user can veto it. A rule the user has not seen is a rule they cannot correct.
|
|
66
135
|
|
|
67
136
|
## Critic prompt template
|
|
68
137
|
|
|
@@ -101,6 +170,9 @@ the default stance is that the answer is wrong until a live source proves otherw
|
|
|
101
170
|
> - `missed`: related issues or patterns the author failed to surface, with IDs
|
|
102
171
|
> - `unverifiable`: claims that need a source you do not have
|
|
103
172
|
> - `fixes`: ranked, actionable - what to change to raise the score
|
|
173
|
+
> - `shapes`: for each item in `where_wrong`, the class of reasoning that produced it, stated so it
|
|
174
|
+
> would apply to a different task ("a conclusion drawn from evidence that does not cover the
|
|
175
|
+
> claim"), not the incident itself. Say `one-off` when the error has no reusable shape.
|
|
104
176
|
|
|
105
177
|
## Optional: auto-offer via a Claude Code Stop hook
|
|
106
178
|
|
|
@@ -147,3 +219,12 @@ message.
|
|
|
147
219
|
- Diversity beats redundancy: if a claim can fail in more than one way, give the critic distinct
|
|
148
220
|
lenses (correctness, completeness, does-it-reproduce) instead of repeating the same check.
|
|
149
221
|
- The critic verifies against live sources; it does not rewrite the answer. You revise; it re-scores.
|
|
222
|
+
- Re-score by messaging the same critic rather than spawning a fresh one, and hand it the receipts
|
|
223
|
+
for whatever it could not verify in the earlier round, so round two spends its budget on the
|
|
224
|
+
claims still standing instead of re-deriving the ones already settled.
|
|
225
|
+
- A critic finding you disagree with is worth one challenge. Put the reasoning to it and let it rule;
|
|
226
|
+
if it concedes, that is a real answer for the report, and the reasoning is what the user needs to
|
|
227
|
+
see either way.
|
|
228
|
+
- The honest test of Step 5 is not that a rule was written, it is that the next task of the same
|
|
229
|
+
class does not need this skill to catch the same thing. If it does, the rule named the incident
|
|
230
|
+
instead of the shape - rewrite it, do not add another.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: self-critique
|
|
3
|
-
description: Adversarially critique your own last substantial answer before the user has to. Spawn a critic agent that verifies every claim against live sources, checks similar and related issues, finds patterns, and addresses comments directly to you. Loop (revise, re-score) until satisfied,
|
|
3
|
+
description: Adversarially critique your own last substantial answer before the user has to. Spawn a critic agent that verifies every claim against live sources, checks similar and related issues, finds patterns, and addresses comments directly to you. Loop (revise, re-score) until satisfied, report where you were wrong, iterations-to-satisfy, the numeric improvement and a final score, then convert what the critic caught into a durable rule so the next session does not repeat it. Use when the user asks you to criticize, challenge, stress-test, or red-team your own answer, or accepts a "critical-thinking review" offer.
|
|
4
4
|
license: MIT
|
|
5
5
|
compatibility: Codex, Claude Code, Cursor, and other Agent Skills compatible tools.
|
|
6
6
|
metadata:
|
|
@@ -24,10 +24,13 @@ Run an adversarial review of **your own previous answer** and report the result
|
|
|
24
24
|
A confident answer is not a verified one. This skill turns your last substantial reply into the
|
|
25
25
|
subject of a hostile review: a separate critic agent tries to refute it against live sources, hunts
|
|
26
26
|
for the related issue or pattern you missed, and scores it. You then revise and re-score until the
|
|
27
|
-
score stops moving,
|
|
27
|
+
score stops moving, report the outcome honestly, including where you were wrong, and convert what
|
|
28
|
+
the critic caught into a rule that survives the session.
|
|
28
29
|
|
|
29
|
-
The point is to surface error before the user does,
|
|
30
|
-
quantity instead of a vibe
|
|
30
|
+
The point is to surface error before the user does, to make "is this actually right?" a measured
|
|
31
|
+
quantity instead of a vibe, and to make the same mistake cost less the second time than it did the
|
|
32
|
+
first. A critique that ends at a score has bought one corrected answer. A critique that ends at a
|
|
33
|
+
durable rule has bought every answer after it.
|
|
31
34
|
|
|
32
35
|
## When to Use
|
|
33
36
|
|
|
@@ -44,11 +47,19 @@ answers.
|
|
|
44
47
|
1. **Snapshot the target.** Capture your last substantial answer verbatim, plus the concrete claims
|
|
45
48
|
it makes and the source each claim rests on. This is `v1`.
|
|
46
49
|
|
|
50
|
+
Write the claim list before you re-read the answer's prose, and put a real receipt against each
|
|
51
|
+
claim: a quoted field, a `file:line` whose body you actually opened, a command and its output.
|
|
52
|
+
A claim you cannot receipt at snapshot time is already a finding - mark it `unverified` yourself
|
|
53
|
+
rather than waiting for the critic to find it. Grep output, a file name, a path, an endpoint
|
|
54
|
+
string, or the behaviour of a sibling module are not receipts for what code does; they prove
|
|
55
|
+
those things exist, not what they do.
|
|
56
|
+
|
|
47
57
|
2. **Spawn the critic.** Launch one independent agent with live-source access (issue tracker, code
|
|
48
58
|
host, error monitor, the repo). Use the prompt template below. The critic must return: `score`
|
|
49
59
|
(0-100), `verdict` (AGREE / AGREE-WITH-CAVEATS / DISAGREE), `where_wrong` (list), `missed`
|
|
50
60
|
(related issues or patterns you failed to surface), `unverifiable` (claims it could not confirm),
|
|
51
|
-
|
|
61
|
+
`fixes` (ranked, actionable), and `shapes` (the reusable class of reasoning behind each
|
|
62
|
+
`where_wrong` item, which Step 5 turns into the rule).
|
|
52
63
|
|
|
53
64
|
3. **Decide and loop.** Stop if `score >= 90` OR no actionable `fixes` remain. Otherwise revise the
|
|
54
65
|
answer using the fixes to produce `v2`, then re-spawn the critic to score `v2`. Repeat.
|
|
@@ -63,6 +74,64 @@ answers.
|
|
|
63
74
|
If only one round ran, state `no revision needed`.
|
|
64
75
|
- **Final score** - the critic's last score and verdict.
|
|
65
76
|
- **Unverifiable** - anything you should not present as fact.
|
|
77
|
+
- **Declined fixes** - any ranked fix you chose not to take, and the reason. Silently dropping a
|
|
78
|
+
fix looks identical to missing it.
|
|
79
|
+
|
|
80
|
+
5. **Convert the outcome into a durable rule.** See below. Skipping this step is what makes the
|
|
81
|
+
same critique necessary again next week.
|
|
82
|
+
|
|
83
|
+
## Step 5: turn the critique into something that outlives the session
|
|
84
|
+
|
|
85
|
+
A score is a measurement, not an improvement. The improvement is the rule you write down, in a
|
|
86
|
+
place a future session actually reads, before you move on.
|
|
87
|
+
|
|
88
|
+
**Not every finding earns a rule.** Write one only when the finding passes both gates:
|
|
89
|
+
|
|
90
|
+
- **Recurrence** - the same *shape* of mistake could plausibly happen again on a different task.
|
|
91
|
+
- **Cost** - it would have reached the user, cost real rework, or damaged their credibility with
|
|
92
|
+
someone else.
|
|
93
|
+
|
|
94
|
+
A one-off factual slip, a typo, or a finding fully explained by this task's specifics fails both.
|
|
95
|
+
Writing a rule for it pollutes the store, and a littered store is worse than a thin one, because
|
|
96
|
+
the next session stops reading it.
|
|
97
|
+
|
|
98
|
+
**Write the shape, not the incident.** The incident is the evidence; the shape is the rule. Ask
|
|
99
|
+
what class of reasoning produced the error, then name that class:
|
|
100
|
+
|
|
101
|
+
| Incident | Shape worth keeping |
|
|
102
|
+
| --- | --- |
|
|
103
|
+
| Called an endpoint a read because the path was a noun and a sibling module imported | A conclusion drawn from evidence that does not cover the claim |
|
|
104
|
+
| Priced an open design question as "small" in the same sentence that asked which design was wanted | Never attach a size to an answer you are simultaneously asking for |
|
|
105
|
+
| Described a batch from the one member that was checked | Check the risk-deciding field on every member before describing the set |
|
|
106
|
+
|
|
107
|
+
**Route it to the narrowest store the host has**, in this order, and only one of them:
|
|
108
|
+
|
|
109
|
+
1. The user's or project's agent memory, when the rule is about how to work with this user or this
|
|
110
|
+
project.
|
|
111
|
+
2. The repository's own `CLAUDE.md` / `AGENTS.md`, when the rule is true only inside that codebase.
|
|
112
|
+
3. A shared, cross-session store, when the rule holds across projects. Use `context-repo` to resolve
|
|
113
|
+
it, or `shared-knowledge-artifact` when several agents need to read the same ledger.
|
|
114
|
+
|
|
115
|
+
Broadening a rule's scope so it qualifies for a wider store is the failure mode to avoid: one
|
|
116
|
+
incident on one afternoon is not standing policy. Let the evidence decide where it lands.
|
|
117
|
+
|
|
118
|
+
**Each rule carries three things.** Without all three the next session cannot act on it:
|
|
119
|
+
|
|
120
|
+
- **The rule**, stated as the shape, in the imperative.
|
|
121
|
+
- **Why**, with the incident and its receipt, dated. A rule with no cost attached gets argued away.
|
|
122
|
+
- **How to apply**, naming the moment the rule fires ("before drafting outbound text", "before
|
|
123
|
+
describing a batch"), not just the principle.
|
|
124
|
+
|
|
125
|
+
Before writing to shared persistence, redact the incident evidence, including when using
|
|
126
|
+
`context-repo` or `shared-knowledge-artifact`, while still including the incident and its dated
|
|
127
|
+
receipt. This redaction requirement does not apply to local agent memory or repository-rule writes.
|
|
128
|
+
|
|
129
|
+
**Dedupe before writing.** Read the store first. If a rule of the same shape exists, sharpen it and
|
|
130
|
+
add this incident as further evidence rather than creating a second entry. Link related rules
|
|
131
|
+
instead of restating them.
|
|
132
|
+
|
|
133
|
+
**Then close the loop.** State in your report where the rule was written and what it says, so the
|
|
134
|
+
user can veto it. A rule the user has not seen is a rule they cannot correct.
|
|
66
135
|
|
|
67
136
|
## Critic prompt template
|
|
68
137
|
|
|
@@ -101,6 +170,9 @@ the default stance is that the answer is wrong until a live source proves otherw
|
|
|
101
170
|
> - `missed`: related issues or patterns the author failed to surface, with IDs
|
|
102
171
|
> - `unverifiable`: claims that need a source you do not have
|
|
103
172
|
> - `fixes`: ranked, actionable - what to change to raise the score
|
|
173
|
+
> - `shapes`: for each item in `where_wrong`, the class of reasoning that produced it, stated so it
|
|
174
|
+
> would apply to a different task ("a conclusion drawn from evidence that does not cover the
|
|
175
|
+
> claim"), not the incident itself. Say `one-off` when the error has no reusable shape.
|
|
104
176
|
|
|
105
177
|
## Optional: auto-offer via a Claude Code Stop hook
|
|
106
178
|
|
|
@@ -147,3 +219,12 @@ message.
|
|
|
147
219
|
- Diversity beats redundancy: if a claim can fail in more than one way, give the critic distinct
|
|
148
220
|
lenses (correctness, completeness, does-it-reproduce) instead of repeating the same check.
|
|
149
221
|
- The critic verifies against live sources; it does not rewrite the answer. You revise; it re-scores.
|
|
222
|
+
- Re-score by messaging the same critic rather than spawning a fresh one, and hand it the receipts
|
|
223
|
+
for whatever it could not verify in the earlier round, so round two spends its budget on the
|
|
224
|
+
claims still standing instead of re-deriving the ones already settled.
|
|
225
|
+
- A critic finding you disagree with is worth one challenge. Put the reasoning to it and let it rule;
|
|
226
|
+
if it concedes, that is a real answer for the report, and the reasoning is what the user needs to
|
|
227
|
+
see either way.
|
|
228
|
+
- The honest test of Step 5 is not that a rule was written, it is that the next task of the same
|
|
229
|
+
class does not need this skill to catch the same thing. If it does, the rule named the incident
|
|
230
|
+
instead of the shape - rewrite it, do not add another.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: self-critique
|
|
3
|
-
description: Adversarially critique your own last substantial answer before the user has to. Spawn a critic agent that verifies every claim against live sources, checks similar and related issues, finds patterns, and addresses comments directly to you. Loop (revise, re-score) until satisfied,
|
|
3
|
+
description: Adversarially critique your own last substantial answer before the user has to. Spawn a critic agent that verifies every claim against live sources, checks similar and related issues, finds patterns, and addresses comments directly to you. Loop (revise, re-score) until satisfied, report where you were wrong, iterations-to-satisfy, the numeric improvement and a final score, then convert what the critic caught into a durable rule so the next session does not repeat it. Use when the user asks you to criticize, challenge, stress-test, or red-team your own answer, or accepts a "critical-thinking review" offer.
|
|
4
4
|
license: MIT
|
|
5
5
|
compatibility: Codex, Claude Code, Cursor, and other Agent Skills compatible tools.
|
|
6
6
|
metadata:
|
|
@@ -24,10 +24,13 @@ Run an adversarial review of **your own previous answer** and report the result
|
|
|
24
24
|
A confident answer is not a verified one. This skill turns your last substantial reply into the
|
|
25
25
|
subject of a hostile review: a separate critic agent tries to refute it against live sources, hunts
|
|
26
26
|
for the related issue or pattern you missed, and scores it. You then revise and re-score until the
|
|
27
|
-
score stops moving,
|
|
27
|
+
score stops moving, report the outcome honestly, including where you were wrong, and convert what
|
|
28
|
+
the critic caught into a rule that survives the session.
|
|
28
29
|
|
|
29
|
-
The point is to surface error before the user does,
|
|
30
|
-
quantity instead of a vibe
|
|
30
|
+
The point is to surface error before the user does, to make "is this actually right?" a measured
|
|
31
|
+
quantity instead of a vibe, and to make the same mistake cost less the second time than it did the
|
|
32
|
+
first. A critique that ends at a score has bought one corrected answer. A critique that ends at a
|
|
33
|
+
durable rule has bought every answer after it.
|
|
31
34
|
|
|
32
35
|
## When to Use
|
|
33
36
|
|
|
@@ -44,11 +47,19 @@ answers.
|
|
|
44
47
|
1. **Snapshot the target.** Capture your last substantial answer verbatim, plus the concrete claims
|
|
45
48
|
it makes and the source each claim rests on. This is `v1`.
|
|
46
49
|
|
|
50
|
+
Write the claim list before you re-read the answer's prose, and put a real receipt against each
|
|
51
|
+
claim: a quoted field, a `file:line` whose body you actually opened, a command and its output.
|
|
52
|
+
A claim you cannot receipt at snapshot time is already a finding - mark it `unverified` yourself
|
|
53
|
+
rather than waiting for the critic to find it. Grep output, a file name, a path, an endpoint
|
|
54
|
+
string, or the behaviour of a sibling module are not receipts for what code does; they prove
|
|
55
|
+
those things exist, not what they do.
|
|
56
|
+
|
|
47
57
|
2. **Spawn the critic.** Launch one independent agent with live-source access (issue tracker, code
|
|
48
58
|
host, error monitor, the repo). Use the prompt template below. The critic must return: `score`
|
|
49
59
|
(0-100), `verdict` (AGREE / AGREE-WITH-CAVEATS / DISAGREE), `where_wrong` (list), `missed`
|
|
50
60
|
(related issues or patterns you failed to surface), `unverifiable` (claims it could not confirm),
|
|
51
|
-
|
|
61
|
+
`fixes` (ranked, actionable), and `shapes` (the reusable class of reasoning behind each
|
|
62
|
+
`where_wrong` item, which Step 5 turns into the rule).
|
|
52
63
|
|
|
53
64
|
3. **Decide and loop.** Stop if `score >= 90` OR no actionable `fixes` remain. Otherwise revise the
|
|
54
65
|
answer using the fixes to produce `v2`, then re-spawn the critic to score `v2`. Repeat.
|
|
@@ -63,6 +74,64 @@ answers.
|
|
|
63
74
|
If only one round ran, state `no revision needed`.
|
|
64
75
|
- **Final score** - the critic's last score and verdict.
|
|
65
76
|
- **Unverifiable** - anything you should not present as fact.
|
|
77
|
+
- **Declined fixes** - any ranked fix you chose not to take, and the reason. Silently dropping a
|
|
78
|
+
fix looks identical to missing it.
|
|
79
|
+
|
|
80
|
+
5. **Convert the outcome into a durable rule.** See below. Skipping this step is what makes the
|
|
81
|
+
same critique necessary again next week.
|
|
82
|
+
|
|
83
|
+
## Step 5: turn the critique into something that outlives the session
|
|
84
|
+
|
|
85
|
+
A score is a measurement, not an improvement. The improvement is the rule you write down, in a
|
|
86
|
+
place a future session actually reads, before you move on.
|
|
87
|
+
|
|
88
|
+
**Not every finding earns a rule.** Write one only when the finding passes both gates:
|
|
89
|
+
|
|
90
|
+
- **Recurrence** - the same *shape* of mistake could plausibly happen again on a different task.
|
|
91
|
+
- **Cost** - it would have reached the user, cost real rework, or damaged their credibility with
|
|
92
|
+
someone else.
|
|
93
|
+
|
|
94
|
+
A one-off factual slip, a typo, or a finding fully explained by this task's specifics fails both.
|
|
95
|
+
Writing a rule for it pollutes the store, and a littered store is worse than a thin one, because
|
|
96
|
+
the next session stops reading it.
|
|
97
|
+
|
|
98
|
+
**Write the shape, not the incident.** The incident is the evidence; the shape is the rule. Ask
|
|
99
|
+
what class of reasoning produced the error, then name that class:
|
|
100
|
+
|
|
101
|
+
| Incident | Shape worth keeping |
|
|
102
|
+
| --- | --- |
|
|
103
|
+
| Called an endpoint a read because the path was a noun and a sibling module imported | A conclusion drawn from evidence that does not cover the claim |
|
|
104
|
+
| Priced an open design question as "small" in the same sentence that asked which design was wanted | Never attach a size to an answer you are simultaneously asking for |
|
|
105
|
+
| Described a batch from the one member that was checked | Check the risk-deciding field on every member before describing the set |
|
|
106
|
+
|
|
107
|
+
**Route it to the narrowest store the host has**, in this order, and only one of them:
|
|
108
|
+
|
|
109
|
+
1. The user's or project's agent memory, when the rule is about how to work with this user or this
|
|
110
|
+
project.
|
|
111
|
+
2. The repository's own `CLAUDE.md` / `AGENTS.md`, when the rule is true only inside that codebase.
|
|
112
|
+
3. A shared, cross-session store, when the rule holds across projects. Use `context-repo` to resolve
|
|
113
|
+
it, or `shared-knowledge-artifact` when several agents need to read the same ledger.
|
|
114
|
+
|
|
115
|
+
Broadening a rule's scope so it qualifies for a wider store is the failure mode to avoid: one
|
|
116
|
+
incident on one afternoon is not standing policy. Let the evidence decide where it lands.
|
|
117
|
+
|
|
118
|
+
**Each rule carries three things.** Without all three the next session cannot act on it:
|
|
119
|
+
|
|
120
|
+
- **The rule**, stated as the shape, in the imperative.
|
|
121
|
+
- **Why**, with the incident and its receipt, dated. A rule with no cost attached gets argued away.
|
|
122
|
+
- **How to apply**, naming the moment the rule fires ("before drafting outbound text", "before
|
|
123
|
+
describing a batch"), not just the principle.
|
|
124
|
+
|
|
125
|
+
Before writing to shared persistence, redact the incident evidence, including when using
|
|
126
|
+
`context-repo` or `shared-knowledge-artifact`, while still including the incident and its dated
|
|
127
|
+
receipt. This redaction requirement does not apply to local agent memory or repository-rule writes.
|
|
128
|
+
|
|
129
|
+
**Dedupe before writing.** Read the store first. If a rule of the same shape exists, sharpen it and
|
|
130
|
+
add this incident as further evidence rather than creating a second entry. Link related rules
|
|
131
|
+
instead of restating them.
|
|
132
|
+
|
|
133
|
+
**Then close the loop.** State in your report where the rule was written and what it says, so the
|
|
134
|
+
user can veto it. A rule the user has not seen is a rule they cannot correct.
|
|
66
135
|
|
|
67
136
|
## Critic prompt template
|
|
68
137
|
|
|
@@ -101,6 +170,9 @@ the default stance is that the answer is wrong until a live source proves otherw
|
|
|
101
170
|
> - `missed`: related issues or patterns the author failed to surface, with IDs
|
|
102
171
|
> - `unverifiable`: claims that need a source you do not have
|
|
103
172
|
> - `fixes`: ranked, actionable - what to change to raise the score
|
|
173
|
+
> - `shapes`: for each item in `where_wrong`, the class of reasoning that produced it, stated so it
|
|
174
|
+
> would apply to a different task ("a conclusion drawn from evidence that does not cover the
|
|
175
|
+
> claim"), not the incident itself. Say `one-off` when the error has no reusable shape.
|
|
104
176
|
|
|
105
177
|
## Optional: auto-offer via a Claude Code Stop hook
|
|
106
178
|
|
|
@@ -147,3 +219,12 @@ message.
|
|
|
147
219
|
- Diversity beats redundancy: if a claim can fail in more than one way, give the critic distinct
|
|
148
220
|
lenses (correctness, completeness, does-it-reproduce) instead of repeating the same check.
|
|
149
221
|
- The critic verifies against live sources; it does not rewrite the answer. You revise; it re-scores.
|
|
222
|
+
- Re-score by messaging the same critic rather than spawning a fresh one, and hand it the receipts
|
|
223
|
+
for whatever it could not verify in the earlier round, so round two spends its budget on the
|
|
224
|
+
claims still standing instead of re-deriving the ones already settled.
|
|
225
|
+
- A critic finding you disagree with is worth one challenge. Put the reasoning to it and let it rule;
|
|
226
|
+
if it concedes, that is a real answer for the report, and the reasoning is what the user needs to
|
|
227
|
+
see either way.
|
|
228
|
+
- The honest test of Step 5 is not that a rule was written, it is that the next task of the same
|
|
229
|
+
class does not need this skill to catch the same thing. If it does, the rule named the incident
|
|
230
|
+
instead of the shape - rewrite it, do not add another.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: self-critique
|
|
3
|
-
description: Adversarially critique your own last substantial answer before the user has to. Spawn a critic agent that verifies every claim against live sources, checks similar and related issues, finds patterns, and addresses comments directly to you. Loop (revise, re-score) until satisfied,
|
|
3
|
+
description: Adversarially critique your own last substantial answer before the user has to. Spawn a critic agent that verifies every claim against live sources, checks similar and related issues, finds patterns, and addresses comments directly to you. Loop (revise, re-score) until satisfied, report where you were wrong, iterations-to-satisfy, the numeric improvement and a final score, then convert what the critic caught into a durable rule so the next session does not repeat it. Use when the user asks you to criticize, challenge, stress-test, or red-team your own answer, or accepts a "critical-thinking review" offer.
|
|
4
4
|
license: MIT
|
|
5
5
|
compatibility: Codex, Claude Code, Cursor, and other Agent Skills compatible tools.
|
|
6
6
|
metadata:
|
|
@@ -23,10 +23,13 @@ Run an adversarial review of **your own previous answer** and report the result
|
|
|
23
23
|
A confident answer is not a verified one. This skill turns your last substantial reply into the
|
|
24
24
|
subject of a hostile review: a separate critic agent tries to refute it against live sources, hunts
|
|
25
25
|
for the related issue or pattern you missed, and scores it. You then revise and re-score until the
|
|
26
|
-
score stops moving,
|
|
26
|
+
score stops moving, report the outcome honestly, including where you were wrong, and convert what
|
|
27
|
+
the critic caught into a rule that survives the session.
|
|
27
28
|
|
|
28
|
-
The point is to surface error before the user does,
|
|
29
|
-
quantity instead of a vibe
|
|
29
|
+
The point is to surface error before the user does, to make "is this actually right?" a measured
|
|
30
|
+
quantity instead of a vibe, and to make the same mistake cost less the second time than it did the
|
|
31
|
+
first. A critique that ends at a score has bought one corrected answer. A critique that ends at a
|
|
32
|
+
durable rule has bought every answer after it.
|
|
30
33
|
|
|
31
34
|
## When to Use
|
|
32
35
|
|
|
@@ -43,11 +46,19 @@ answers.
|
|
|
43
46
|
1. **Snapshot the target.** Capture your last substantial answer verbatim, plus the concrete claims
|
|
44
47
|
it makes and the source each claim rests on. This is `v1`.
|
|
45
48
|
|
|
49
|
+
Write the claim list before you re-read the answer's prose, and put a real receipt against each
|
|
50
|
+
claim: a quoted field, a `file:line` whose body you actually opened, a command and its output.
|
|
51
|
+
A claim you cannot receipt at snapshot time is already a finding - mark it `unverified` yourself
|
|
52
|
+
rather than waiting for the critic to find it. Grep output, a file name, a path, an endpoint
|
|
53
|
+
string, or the behaviour of a sibling module are not receipts for what code does; they prove
|
|
54
|
+
those things exist, not what they do.
|
|
55
|
+
|
|
46
56
|
2. **Spawn the critic.** Launch one independent agent with live-source access (issue tracker, code
|
|
47
57
|
host, error monitor, the repo). Use the prompt template below. The critic must return: `score`
|
|
48
58
|
(0-100), `verdict` (AGREE / AGREE-WITH-CAVEATS / DISAGREE), `where_wrong` (list), `missed`
|
|
49
59
|
(related issues or patterns you failed to surface), `unverifiable` (claims it could not confirm),
|
|
50
|
-
|
|
60
|
+
`fixes` (ranked, actionable), and `shapes` (the reusable class of reasoning behind each
|
|
61
|
+
`where_wrong` item, which Step 5 turns into the rule).
|
|
51
62
|
|
|
52
63
|
3. **Decide and loop.** Stop if `score >= 90` OR no actionable `fixes` remain. Otherwise revise the
|
|
53
64
|
answer using the fixes to produce `v2`, then re-spawn the critic to score `v2`. Repeat.
|
|
@@ -62,6 +73,64 @@ answers.
|
|
|
62
73
|
If only one round ran, state `no revision needed`.
|
|
63
74
|
- **Final score** - the critic's last score and verdict.
|
|
64
75
|
- **Unverifiable** - anything you should not present as fact.
|
|
76
|
+
- **Declined fixes** - any ranked fix you chose not to take, and the reason. Silently dropping a
|
|
77
|
+
fix looks identical to missing it.
|
|
78
|
+
|
|
79
|
+
5. **Convert the outcome into a durable rule.** See below. Skipping this step is what makes the
|
|
80
|
+
same critique necessary again next week.
|
|
81
|
+
|
|
82
|
+
## Step 5: turn the critique into something that outlives the session
|
|
83
|
+
|
|
84
|
+
A score is a measurement, not an improvement. The improvement is the rule you write down, in a
|
|
85
|
+
place a future session actually reads, before you move on.
|
|
86
|
+
|
|
87
|
+
**Not every finding earns a rule.** Write one only when the finding passes both gates:
|
|
88
|
+
|
|
89
|
+
- **Recurrence** - the same *shape* of mistake could plausibly happen again on a different task.
|
|
90
|
+
- **Cost** - it would have reached the user, cost real rework, or damaged their credibility with
|
|
91
|
+
someone else.
|
|
92
|
+
|
|
93
|
+
A one-off factual slip, a typo, or a finding fully explained by this task's specifics fails both.
|
|
94
|
+
Writing a rule for it pollutes the store, and a littered store is worse than a thin one, because
|
|
95
|
+
the next session stops reading it.
|
|
96
|
+
|
|
97
|
+
**Write the shape, not the incident.** The incident is the evidence; the shape is the rule. Ask
|
|
98
|
+
what class of reasoning produced the error, then name that class:
|
|
99
|
+
|
|
100
|
+
| Incident | Shape worth keeping |
|
|
101
|
+
| --- | --- |
|
|
102
|
+
| Called an endpoint a read because the path was a noun and a sibling module imported | A conclusion drawn from evidence that does not cover the claim |
|
|
103
|
+
| Priced an open design question as "small" in the same sentence that asked which design was wanted | Never attach a size to an answer you are simultaneously asking for |
|
|
104
|
+
| Described a batch from the one member that was checked | Check the risk-deciding field on every member before describing the set |
|
|
105
|
+
|
|
106
|
+
**Route it to the narrowest store the host has**, in this order, and only one of them:
|
|
107
|
+
|
|
108
|
+
1. The user's or project's agent memory, when the rule is about how to work with this user or this
|
|
109
|
+
project.
|
|
110
|
+
2. The repository's own `CLAUDE.md` / `AGENTS.md`, when the rule is true only inside that codebase.
|
|
111
|
+
3. A shared, cross-session store, when the rule holds across projects. Use `context-repo` to resolve
|
|
112
|
+
it, or `shared-knowledge-artifact` when several agents need to read the same ledger.
|
|
113
|
+
|
|
114
|
+
Broadening a rule's scope so it qualifies for a wider store is the failure mode to avoid: one
|
|
115
|
+
incident on one afternoon is not standing policy. Let the evidence decide where it lands.
|
|
116
|
+
|
|
117
|
+
**Each rule carries three things.** Without all three the next session cannot act on it:
|
|
118
|
+
|
|
119
|
+
- **The rule**, stated as the shape, in the imperative.
|
|
120
|
+
- **Why**, with the incident and its receipt, dated. A rule with no cost attached gets argued away.
|
|
121
|
+
- **How to apply**, naming the moment the rule fires ("before drafting outbound text", "before
|
|
122
|
+
describing a batch"), not just the principle.
|
|
123
|
+
|
|
124
|
+
Before writing to shared persistence, redact the incident evidence, including when using
|
|
125
|
+
`context-repo` or `shared-knowledge-artifact`, while still including the incident and its dated
|
|
126
|
+
receipt. This redaction requirement does not apply to local agent memory or repository-rule writes.
|
|
127
|
+
|
|
128
|
+
**Dedupe before writing.** Read the store first. If a rule of the same shape exists, sharpen it and
|
|
129
|
+
add this incident as further evidence rather than creating a second entry. Link related rules
|
|
130
|
+
instead of restating them.
|
|
131
|
+
|
|
132
|
+
**Then close the loop.** State in your report where the rule was written and what it says, so the
|
|
133
|
+
user can veto it. A rule the user has not seen is a rule they cannot correct.
|
|
65
134
|
|
|
66
135
|
## Critic prompt template
|
|
67
136
|
|
|
@@ -100,6 +169,9 @@ the default stance is that the answer is wrong until a live source proves otherw
|
|
|
100
169
|
> - `missed`: related issues or patterns the author failed to surface, with IDs
|
|
101
170
|
> - `unverifiable`: claims that need a source you do not have
|
|
102
171
|
> - `fixes`: ranked, actionable - what to change to raise the score
|
|
172
|
+
> - `shapes`: for each item in `where_wrong`, the class of reasoning that produced it, stated so it
|
|
173
|
+
> would apply to a different task ("a conclusion drawn from evidence that does not cover the
|
|
174
|
+
> claim"), not the incident itself. Say `one-off` when the error has no reusable shape.
|
|
103
175
|
|
|
104
176
|
## Optional: auto-offer via a Claude Code Stop hook
|
|
105
177
|
|
|
@@ -146,3 +218,12 @@ message.
|
|
|
146
218
|
- Diversity beats redundancy: if a claim can fail in more than one way, give the critic distinct
|
|
147
219
|
lenses (correctness, completeness, does-it-reproduce) instead of repeating the same check.
|
|
148
220
|
- The critic verifies against live sources; it does not rewrite the answer. You revise; it re-scores.
|
|
221
|
+
- Re-score by messaging the same critic rather than spawning a fresh one, and hand it the receipts
|
|
222
|
+
for whatever it could not verify in the earlier round, so round two spends its budget on the
|
|
223
|
+
claims still standing instead of re-deriving the ones already settled.
|
|
224
|
+
- A critic finding you disagree with is worth one challenge. Put the reasoning to it and let it rule;
|
|
225
|
+
if it concedes, that is a real answer for the report, and the reasoning is what the user needs to
|
|
226
|
+
see either way.
|
|
227
|
+
- The honest test of Step 5 is not that a rule was written, it is that the next task of the same
|
|
228
|
+
class does not need this skill to catch the same thing. If it does, the rule named the incident
|
|
229
|
+
instead of the shape - rewrite it, do not add another.
|