@olegkoval/agent-skills 1.59.2 → 1.60.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/copilot-instructions.md +1 -0
- package/.github/prompts/ingest-publication-slice.prompt.md +43 -0
- package/.github/prompts/self-critique.prompt.md +167 -43
- package/.kiro/steering/ingest-publication-slice.md +42 -0
- package/.windsurf/rules/ingest-publication-slice.md +41 -0
- package/README.md +5 -3
- package/adapters/claude/olko-product/skills/ingest-publication-slice/SKILL.md +44 -0
- package/adapters/claude/olko-reflection/skills/self-critique/SKILL.md +167 -43
- package/adapters/claude/olko-reflection/skills/self-critique/scripts/claim-ledger.mjs +159 -0
- package/adapters/claude/olko-reflection/skills/self-critique/scripts/rule-store.mjs +193 -0
- package/adapters/codex/olko-product/README.md +1 -0
- package/adapters/cursor/olko-product/skills/ingest-publication-slice/SKILL.md +44 -0
- package/adapters/cursor/olko-reflection/skills/self-critique/SKILL.md +167 -43
- package/adapters/cursor/olko-reflection/skills/self-critique/scripts/claim-ledger.mjs +159 -0
- package/adapters/cursor/olko-reflection/skills/self-critique/scripts/rule-store.mjs +193 -0
- package/adapters/grok/olko-product/skills/ingest-publication-slice/SKILL.md +44 -0
- package/adapters/grok/olko-reflection/skills/self-critique/SKILL.md +167 -43
- package/adapters/grok/olko-reflection/skills/self-critique/scripts/claim-ledger.mjs +159 -0
- package/adapters/grok/olko-reflection/skills/self-critique/scripts/rule-store.mjs +193 -0
- package/adapters/hermes/olko-product/README.md +1 -0
- package/catalog/skills.json +23 -1
- package/docs/superpowers/plans/2026-10-27-self-critique-v2.md +306 -0
- package/docs/superpowers/specs/2026-10-27-self-critique-v2-spec.md +104 -0
- 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-product/skills/ingest-publication-slice/SKILL.md +43 -0
- package/plugins/olko-reflection/.claude-plugin/plugin.json +1 -1
- package/plugins/olko-reflection/skills/self-critique/SKILL.md +167 -43
- package/plugins/olko-reflection/skills/self-critique/scripts/claim-ledger.mjs +159 -0
- package/plugins/olko-reflection/skills/self-critique/scripts/rule-store.mjs +193 -0
- 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
- package/scripts/lib/catalog.mjs +1 -1
|
@@ -31,6 +31,7 @@ Available reusable prompt files:
|
|
|
31
31
|
- release-day: .github/prompts/release-day.prompt.md
|
|
32
32
|
- changelog-generator: .github/prompts/changelog-generator.prompt.md
|
|
33
33
|
- store-listing-copy: .github/prompts/store-listing-copy.prompt.md
|
|
34
|
+
- ingest-publication-slice: .github/prompts/ingest-publication-slice.prompt.md
|
|
34
35
|
- product-builder: .github/prompts/product-builder.prompt.md
|
|
35
36
|
- mvp-oneshot: .github/prompts/mvp-oneshot.prompt.md
|
|
36
37
|
- ux-ui-audit-loop: .github/prompts/ux-ui-audit-loop.prompt.md
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
<!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
description: "Build and verify a small end-to-end publication path for validated ingested data, including atomic persistence, read fallback, and static artifact precedence."
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Use the olko:ingest-publication-slice skill.
|
|
8
|
+
|
|
9
|
+
> 🤖 *Auto-generated by **weekly-pattern-learner** · Repeatedly implement a validated ingest-to-publication flow with atomic persistence, fallback reads, and static artifact precedence.*
|
|
10
|
+
|
|
11
|
+
# Ingest Publication Slice
|
|
12
|
+
|
|
13
|
+
Use this workflow when an ingest pipeline must make a validated record available immediately while a static or cached publication artifact may be generated later.
|
|
14
|
+
|
|
15
|
+
## Define the contract
|
|
16
|
+
|
|
17
|
+
Before changing code, read the repository instructions and trace the current path from ingest entry point through validation, job completion, persistence, request handling, and static artifact generation. Record existing invariants and preserve unrelated work.
|
|
18
|
+
|
|
19
|
+
Write acceptance criteria for one complete slice:
|
|
20
|
+
|
|
21
|
+
- Only a completed, validated active dataset can be published.
|
|
22
|
+
- The persistent publication record and terminal ingest state commit atomically.
|
|
23
|
+
- The canonical read path can serve from the persistent record when no static artifact exists.
|
|
24
|
+
- A static artifact remains authoritative once present, if that is the established product contract.
|
|
25
|
+
- Retries are idempotent, and collisions, invalid states, hidden records, and takedowns cannot publish.
|
|
26
|
+
|
|
27
|
+
Adapt these criteria to the actual product contract. Do not invent a static-artifact precedence rule if the system has none.
|
|
28
|
+
|
|
29
|
+
## Implement test-first
|
|
30
|
+
|
|
31
|
+
Use the repository's required test command and style. Add focused failing tests before implementation for:
|
|
32
|
+
|
|
33
|
+
1. A valid ingest publishes the record and terminal state together.
|
|
34
|
+
2. A failure between writes leaves neither half committed.
|
|
35
|
+
3. The canonical read path uses the persisted record when the artifact is absent.
|
|
36
|
+
4. The artifact wins when both sources exist, when precedence is required.
|
|
37
|
+
5. Repeated delivery is safe and invalid, hidden, colliding, or withdrawn records stay unpublished.
|
|
38
|
+
|
|
39
|
+
Test the production boundary and transaction behavior, not only helper functions. Keep the change to the smallest vertical slice; avoid unrelated schema or routing refactors.
|
|
40
|
+
|
|
41
|
+
## Verify the composed path
|
|
42
|
+
|
|
43
|
+
Run the focused tests, then the repository's required broader checks. Inspect the final diff and trace the completed path again from ingest through the canonical response. Confirm behavior for retries, partial failures, and transitions from no artifact to artifact present. Report any unavailable integration or deployment evidence explicitly.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
|
|
2
2
|
|
|
3
3
|
---
|
|
4
|
-
description: "Adversarially critique your own last answer:
|
|
4
|
+
description: "Adversarially critique your own last answer: a blind critic agent re-derives and verifies every claim against live sources, the score is computed from a labelled claim ledger, you revise under a ratchet, restate the corrected answer, and turn each caught error into a durable rule with a fire counter."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
Use the olko:self-critique skill.
|
|
@@ -33,40 +33,102 @@ durable rule has bought every answer after it.
|
|
|
33
33
|
Do not use for trivial one-shot replies or simple chat. The overhead only pays off on load-bearing
|
|
34
34
|
answers.
|
|
35
35
|
|
|
36
|
+
**Standalone Cursor installation.** Use the generated Cursor adapter or the full skill package,
|
|
37
|
+
including its `scripts/` directory. Copying only `SKILL.md` is insufficient for this workflow,
|
|
38
|
+
which calls the bundled scripts.
|
|
39
|
+
|
|
36
40
|
## Procedure
|
|
37
41
|
|
|
38
|
-
1. **Snapshot the target.** Capture your last substantial answer verbatim
|
|
39
|
-
|
|
42
|
+
1. **Snapshot the target.** Capture your last substantial answer verbatim and the original task
|
|
43
|
+
text. This is `v1`.
|
|
40
44
|
|
|
41
|
-
Write
|
|
45
|
+
Write your claim list before you re-read the answer's prose, and put a real receipt against each
|
|
42
46
|
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 `
|
|
47
|
+
A claim you cannot receipt at snapshot time is already a finding - mark it `unverifiable` yourself
|
|
44
48
|
rather than waiting for the critic to find it. Grep output, a file name, a path, an endpoint
|
|
45
49
|
string, or the behaviour of a sibling module are not receipts for what code does; they prove
|
|
46
50
|
those things exist, not what they do.
|
|
47
51
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
52
|
+
Save the list to `.self-critique/author-claims.json` as an array of
|
|
53
|
+
`{ id, text, load_bearing, receipt }`. Do NOT show it to the critic in round one.
|
|
54
|
+
|
|
55
|
+
**Replay pass.** Before spawning the critic, check the answer against every stored rule. Resolve
|
|
56
|
+
the memory dir as the auto-memory dir for the current project, else the repo's `.claude/memory`;
|
|
57
|
+
if neither exists, skip replay, evidence-check, and prune with a one-line note. Run
|
|
58
|
+
`node <skill>/scripts/rule-store.mjs checklist --dir <memory dir>`, then open each listed rule's
|
|
59
|
+
memory file and read its body before testing the answer against it. The checklist's names and
|
|
60
|
+
descriptions alone are insufficient. Tag each hit `(recurring)` in the report and record it with
|
|
61
|
+
`node <skill>/scripts/rule-store.mjs fire <name> --dir <memory dir> --date <today>`.
|
|
62
|
+
Fire counters and pruning apply only to rules in this memory directory. Rules routed to
|
|
63
|
+
`CLAUDE.md`, `AGENTS.md`, or the shared store are neither counted nor pruned.
|
|
64
|
+
|
|
65
|
+
2. **Spawn the critic (blind).** Launch one independent agent with live-source access (issue tracker,
|
|
66
|
+
code host, error monitor, the repo). Round one input is the original task text and the answer
|
|
67
|
+
verbatim, nothing else: the critic extracts the claims itself and never sees your list or sources.
|
|
68
|
+
Use the prompt template below. The critic must return one fenced JSON block with `claims` (its own
|
|
69
|
+
list, each `{ text, load_bearing, status, checked_by, receipt }`), `missed`, `where_wrong`,
|
|
70
|
+
`shapes` and `verdict` (AGREE / AGREE-WITH-CAVEATS / DISAGREE). There is no `score` field: the
|
|
71
|
+
score is computed in Step 2b.
|
|
72
|
+
|
|
73
|
+
2b. **Merge into the ledger.** Match the critic's claims to yours by meaning and set `origin` on
|
|
74
|
+
each: `both`, `author` (only you found it), `critic` (only the critic found it). Every critic
|
|
75
|
+
finding with `checked_by: inferred` must be re-verified by you before it may become `verified`
|
|
76
|
+
or `refuted`; if you cannot verify it, it stays `inferred`. Both statuses require
|
|
77
|
+
`checked_by: command` or `checked_by: read` and a non-empty receipt; validation rejects inferred evidence or a missing
|
|
78
|
+
receipt. Save `.self-critique/ledger-v1.json`, then run
|
|
79
|
+
`node <skill>/scripts/claim-ledger.mjs score .self-critique/ledger-v1.json` and
|
|
80
|
+
`node <skill>/scripts/claim-ledger.mjs summary .self-critique/ledger-v1.json` (an invalid ledger
|
|
81
|
+
exits 2 and prints the errors as JSON).
|
|
82
|
+
Claims found by only one side are reported under their own heading, "Asymmetric claims".
|
|
83
|
+
|
|
84
|
+
Ledger shape (`version` is always `1`):
|
|
85
|
+
|
|
86
|
+
```json
|
|
87
|
+
{ "version": 1,
|
|
88
|
+
"claims": [{ "id": "c1", "text": "...", "load_bearing": true, "origin": "both",
|
|
89
|
+
"status": "verified", "checked_by": "command", "receipt": "quoted output" }],
|
|
90
|
+
"missed": [{ "id": "m1", "text": "...", "load_bearing": false, "checked_by": "read" }] }
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
- `origin`: `author` | `critic` | `both`
|
|
94
|
+
- `status`: `verified` | `refuted` | `unverifiable` | `inferred`
|
|
95
|
+
- `checked_by`: `command` (run, output quoted) | `read` (file or record opened, quoted) |
|
|
96
|
+
`inferred` (reasoning only). Required on `missed` items too; an `inferred` missed item is not
|
|
97
|
+
penalised. A `verified` or `refuted` claim may not use inferred evidence and requires a
|
|
98
|
+
non-empty receipt.
|
|
99
|
+
|
|
100
|
+
3. **Decide and loop.** Accept a score of at least 90 only after all fixable findings are resolved
|
|
101
|
+
or explicitly qualified in the answer and report; otherwise continue the critique loop. Stop
|
|
102
|
+
when that condition holds, OR no ledger item is left that a revision could fix, OR 3 rounds have run.
|
|
103
|
+
Otherwise revise the answer to produce `v2`, write `ledger-v2.json`, and run
|
|
104
|
+
`node <skill>/scripts/claim-ledger.mjs ratchet .self-critique/ledger-v1.json .self-critique/ledger-v2.json`
|
|
105
|
+
on the previous and new ledger: a lower re-score discards the revision, and you keep the winner. Round
|
|
106
|
+
two and later hand the critic your receipts for the still-open claims (it is no longer blind).
|
|
57
107
|
**Hard cap: 3 critic rounds.** (A known ceiling: raise it only if a round is still finding real,
|
|
58
108
|
fixable defects.)
|
|
59
109
|
|
|
60
|
-
|
|
110
|
+
**Cost.** The critic runs on a mid-tier model (Sonnet class) by default. Escalate one tier only
|
|
111
|
+
when a mid-tier round found nothing and the answer is load-bearing. When the budget is tight,
|
|
112
|
+
verify load-bearing claims first.
|
|
113
|
+
|
|
114
|
+
4. **Report, always, even after a single round.** In this order:
|
|
115
|
+
- **Corrected answer (`v_final`)** - restated in full, not as a diff, so the user can act on it
|
|
116
|
+
without reading anything else. After a single round with no revision, restate `v1` unchanged.
|
|
117
|
+
- **Claim ledger** - run `node <skill>/scripts/claim-ledger.mjs summary <ledger for v_final>`
|
|
118
|
+
and `node <skill>/scripts/claim-ledger.mjs score <ledger for v_final>` using the ledger for
|
|
119
|
+
whichever version the ratchet accepted (for example, `.self-critique/ledger-v2.json`). Report
|
|
120
|
+
that table and its computed score.
|
|
61
121
|
- **Where you were wrong** - consolidated, each item with the receipt the critic cited.
|
|
62
|
-
- **
|
|
63
|
-
|
|
64
|
-
- **
|
|
65
|
-
|
|
66
|
-
|
|
122
|
+
- **Asymmetric claims** - claims only you found, and claims only the critic found.
|
|
123
|
+
- **Recurring rules fired** - each stored rule the replay pass hit, with its new `fires` count.
|
|
124
|
+
- **Iterations to satisfy** - how many critic rounds it took (1 means it was solid first pass).
|
|
125
|
+
- **Score trajectory** - for example `72 -> 88 -> 94 (+22 pts)`, all computed scores. If only one
|
|
126
|
+
round ran, state `no revision needed`.
|
|
67
127
|
- **Unverifiable** - anything you should not present as fact.
|
|
68
|
-
- **Declined
|
|
69
|
-
|
|
128
|
+
- **Declined findings** - ledger items you chose not to fix, with the reason. Silently dropping
|
|
129
|
+
one looks identical to missing it.
|
|
130
|
+
- **Rules written** - where each rule went and what it says (see Step 5).
|
|
131
|
+
- **Rules proposed for deletion** - the candidates from the prune pass, or `none`.
|
|
70
132
|
|
|
71
133
|
5. **Convert the outcome into a durable rule.** See below. Skipping this step is what makes the
|
|
72
134
|
same critique necessary again next week.
|
|
@@ -117,31 +179,50 @@ Before writing to shared persistence, redact the incident evidence, including wh
|
|
|
117
179
|
`context-repo` or `shared-knowledge-artifact`, while still including the incident and its dated
|
|
118
180
|
receipt. This redaction requirement does not apply to local agent memory or repository-rule writes.
|
|
119
181
|
|
|
120
|
-
**Dedupe before writing.** Read the store first. If a rule of the same shape exists,
|
|
121
|
-
|
|
122
|
-
|
|
182
|
+
**Dedupe before writing.** Read the store first. If a rule of the same shape exists, add one dated
|
|
183
|
+
evidence line to it instead of creating a second entry, with at most three evidence lines per rule.
|
|
184
|
+
A fourth incident means the rule named the incident, not the shape: rewrite the rule text and keep
|
|
185
|
+
the three most recent evidence lines. Link related rules instead of restating them. Only when the
|
|
186
|
+
memory directory resolved in Step 1 exists, run
|
|
187
|
+
`node <skill>/scripts/rule-store.mjs evidence-check --dir <memory dir>` before writing and report
|
|
188
|
+
any rule it flags. Skip this command when neither supported memory directory exists.
|
|
189
|
+
|
|
190
|
+
**Memory rule identity and counters.** Mark each rule stored by this workflow with
|
|
191
|
+
`rule_store: self-critique` under `metadata:` in its memory file's frontmatter. Mark an existing
|
|
192
|
+
rule only after reading it and confirming it belongs to this workflow. Only marked rules are
|
|
193
|
+
pruning candidates; unrelated project and user memories are excluded. A memory rule's `fires` and
|
|
194
|
+
`last_fired` live under `metadata:` and are written only by `fire`. Rules routed to `CLAUDE.md`,
|
|
195
|
+
`AGENTS.md`, or the shared store are neither counted nor pruned.
|
|
196
|
+
|
|
197
|
+
**Prune pass.** At the end of this step, only when a valid memory directory is available, run
|
|
198
|
+
`node <skill>/scripts/rule-store.mjs prune --dir <memory dir> --idle-days 60`. List the candidates
|
|
199
|
+
in the report under "Rules proposed for deletion". Skip this command when neither supported memory
|
|
200
|
+
directory exists. Never delete a rule without the user's reply.
|
|
123
201
|
|
|
124
202
|
**Then close the loop.** State in your report where the rule was written and what it says, so the
|
|
125
203
|
user can veto it. A rule the user has not seen is a rule they cannot correct.
|
|
126
204
|
|
|
127
205
|
## Critic prompt template
|
|
128
206
|
|
|
129
|
-
Pass this to the critic agent, filling in the two placeholders. It is deliberately adversarial:
|
|
207
|
+
Pass this to the critic agent, filling in the two placeholders (`{{TASK}}`, `{{ANSWER}}`). It is deliberately adversarial:
|
|
130
208
|
the default stance is that the answer is wrong until a live source proves otherwise.
|
|
131
209
|
|
|
132
210
|
> You are an adversarial reviewer. Your job is to verify and, where possible, **refute** the answer
|
|
133
211
|
> below. Default to skepticism: assume a claim is wrong until a live source proves it. Address every
|
|
134
212
|
> comment **directly to the author** ("You claimed X; the source says Y").
|
|
135
213
|
>
|
|
214
|
+
> **The task the author was given (verbatim):**
|
|
215
|
+
> {{TASK}}
|
|
216
|
+
>
|
|
136
217
|
> **The answer under review (verbatim):**
|
|
137
218
|
> {{ANSWER}}
|
|
138
219
|
>
|
|
139
|
-
>
|
|
140
|
-
> {{CLAIMS_AND_SOURCES}}
|
|
220
|
+
> You are not given the author's claims or sources. Extract the claims yourself.
|
|
141
221
|
>
|
|
142
222
|
> **Do this:**
|
|
143
|
-
> 1.
|
|
144
|
-
>
|
|
223
|
+
> 1. List every claim the answer makes, marking each `load_bearing` (the user would act on it).
|
|
224
|
+
> Re-verify each against the **live** source (issue tracker / code host / error monitor / the
|
|
225
|
+
> repo) - never trust the answer's own summary. Quote the field, line, PR body, or issue you
|
|
145
226
|
> checked.
|
|
146
227
|
> 2. **Check similar and related issues, and find patterns.** Is this part of a cluster? Is there a
|
|
147
228
|
> closer sibling, parent epic, or duplicate the answer should have surfaced but did not? Name it
|
|
@@ -151,19 +232,62 @@ the default stance is that the answer is wrong until a live source proves otherw
|
|
|
151
232
|
> a proven root cause?
|
|
152
233
|
> 4. List exactly **where the author was wrong or imprecise**, and what they **missed**.
|
|
153
234
|
> 5. Flag any claim you **could not verify** so it is not presented as fact.
|
|
235
|
+
> 6. Label every finding with `checked_by`: `command` (you ran it and quote the output), `read` (you
|
|
236
|
+
> opened the file or record and quote it), `inferred` (reasoning only).
|
|
154
237
|
>
|
|
155
|
-
> **Output, terse,
|
|
156
|
-
> - `
|
|
157
|
-
>
|
|
158
|
-
>
|
|
159
|
-
>
|
|
160
|
-
> - `where_wrong`: bullet list, each with its source receipt
|
|
161
|
-
> - `missed`: related issues or patterns the author failed to surface, with IDs
|
|
162
|
-
> - `unverifiable`: claims that need a source you do not have
|
|
163
|
-
> - `fixes`: ranked, actionable - what to change to raise the score
|
|
238
|
+
> **Output, terse, one fenced JSON block, a receipt for every item:**
|
|
239
|
+
> - `claims`: your own list, each `{ text, load_bearing, status, checked_by, receipt }` with `status`
|
|
240
|
+
> one of `verified` | `refuted` | `unverifiable` | `inferred`
|
|
241
|
+
> - `missed`: related issues or patterns the author failed to surface, each
|
|
242
|
+
> `{ text, load_bearing, checked_by, receipt }`, with IDs
|
|
243
|
+
> - `where_wrong`: bullet list, each with its source receipt and `checked_by`
|
|
164
244
|
> - `shapes`: for each item in `where_wrong`, the class of reasoning that produced it, stated so it
|
|
165
245
|
> would apply to a different task ("a conclusion drawn from evidence that does not cover the
|
|
166
246
|
> claim"), not the incident itself. Say `one-off` when the error has no reusable shape.
|
|
247
|
+
> - `verdict`: AGREE | AGREE-WITH-CAVEATS | DISAGREE
|
|
248
|
+
>
|
|
249
|
+
> Do not output a score. It is computed from your claims.
|
|
250
|
+
|
|
251
|
+
### Score anchors
|
|
252
|
+
|
|
253
|
+
The score is `100` minus penalties, floored at 0. Calibrate against these three ledgers (all claims
|
|
254
|
+
`origin: both`; `node <skill>/scripts/claim-ledger.mjs anchors` prints them as JSON).
|
|
255
|
+
|
|
256
|
+
**Strong, score 95**
|
|
257
|
+
|
|
258
|
+
| id | load_bearing | status | checked_by |
|
|
259
|
+
| --- | --- | --- | --- |
|
|
260
|
+
| a1 | no | inferred | inferred |
|
|
261
|
+
|
|
262
|
+
**Middling, score 72**
|
|
263
|
+
|
|
264
|
+
| id | load_bearing | status | checked_by |
|
|
265
|
+
| --- | --- | --- | --- |
|
|
266
|
+
| b1 | no | refuted | read |
|
|
267
|
+
| b2 | no | refuted | read |
|
|
268
|
+
| b3 | no | unverifiable | read |
|
|
269
|
+
| b4 | no | unverifiable | read |
|
|
270
|
+
|
|
271
|
+
**Weak, score 40**
|
|
272
|
+
|
|
273
|
+
| id | load_bearing | status | checked_by |
|
|
274
|
+
| --- | --- | --- | --- |
|
|
275
|
+
| c1 | yes | refuted | read |
|
|
276
|
+
| c2 | yes | refuted | read |
|
|
277
|
+
| c3 | yes | unverifiable | read |
|
|
278
|
+
|
|
279
|
+
Penalties:
|
|
280
|
+
|
|
281
|
+
| Finding | Points off |
|
|
282
|
+
| --- | --- |
|
|
283
|
+
| refuted, load-bearing | 25 |
|
|
284
|
+
| refuted | 10 |
|
|
285
|
+
| unverifiable, load-bearing | 10 |
|
|
286
|
+
| unverifiable | 4 |
|
|
287
|
+
| inferred, accepted | 5 |
|
|
288
|
+
| missed, load-bearing | 15 |
|
|
289
|
+
| missed | 5 |
|
|
290
|
+
| verified but found only by the critic | 5 |
|
|
167
291
|
|
|
168
292
|
## Optional: auto-offer via a Claude Code Stop hook
|
|
169
293
|
|
|
@@ -209,10 +333,10 @@ message.
|
|
|
209
333
|
`iterations: 1, no revision needed` and the single score rather than forcing a revision.
|
|
210
334
|
- Diversity beats redundancy: if a claim can fail in more than one way, give the critic distinct
|
|
211
335
|
lenses (correctness, completeness, does-it-reproduce) instead of repeating the same check.
|
|
212
|
-
- The critic verifies against live sources; it does not rewrite the answer. You revise;
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
claims still standing instead of re-deriving the ones already settled.
|
|
336
|
+
- The critic verifies against live sources; it does not rewrite the answer or score it. You revise;
|
|
337
|
+
the score is recomputed from the ledger.
|
|
338
|
+
- In round two, hand the critic your receipts for the claims still open, so it spends its budget on
|
|
339
|
+
the claims still standing instead of re-deriving the ones already settled.
|
|
216
340
|
- A critic finding you disagree with is worth one challenge. Put the reasoning to it and let it rule;
|
|
217
341
|
if it concedes, that is a real answer for the report, and the reasoning is what the user needs to
|
|
218
342
|
see either way.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
<!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
inclusion: manual
|
|
5
|
+
description: "Build and verify a small end-to-end publication path for validated ingested data, including atomic persistence, read fallback, and static artifact precedence."
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
> 🤖 *Auto-generated by **weekly-pattern-learner** · Repeatedly implement a validated ingest-to-publication flow with atomic persistence, fallback reads, and static artifact precedence.*
|
|
9
|
+
|
|
10
|
+
# Ingest Publication Slice
|
|
11
|
+
|
|
12
|
+
Use this workflow when an ingest pipeline must make a validated record available immediately while a static or cached publication artifact may be generated later.
|
|
13
|
+
|
|
14
|
+
## Define the contract
|
|
15
|
+
|
|
16
|
+
Before changing code, read the repository instructions and trace the current path from ingest entry point through validation, job completion, persistence, request handling, and static artifact generation. Record existing invariants and preserve unrelated work.
|
|
17
|
+
|
|
18
|
+
Write acceptance criteria for one complete slice:
|
|
19
|
+
|
|
20
|
+
- Only a completed, validated active dataset can be published.
|
|
21
|
+
- The persistent publication record and terminal ingest state commit atomically.
|
|
22
|
+
- The canonical read path can serve from the persistent record when no static artifact exists.
|
|
23
|
+
- A static artifact remains authoritative once present, if that is the established product contract.
|
|
24
|
+
- Retries are idempotent, and collisions, invalid states, hidden records, and takedowns cannot publish.
|
|
25
|
+
|
|
26
|
+
Adapt these criteria to the actual product contract. Do not invent a static-artifact precedence rule if the system has none.
|
|
27
|
+
|
|
28
|
+
## Implement test-first
|
|
29
|
+
|
|
30
|
+
Use the repository's required test command and style. Add focused failing tests before implementation for:
|
|
31
|
+
|
|
32
|
+
1. A valid ingest publishes the record and terminal state together.
|
|
33
|
+
2. A failure between writes leaves neither half committed.
|
|
34
|
+
3. The canonical read path uses the persisted record when the artifact is absent.
|
|
35
|
+
4. The artifact wins when both sources exist, when precedence is required.
|
|
36
|
+
5. Repeated delivery is safe and invalid, hidden, colliding, or withdrawn records stay unpublished.
|
|
37
|
+
|
|
38
|
+
Test the production boundary and transaction behavior, not only helper functions. Keep the change to the smallest vertical slice; avoid unrelated schema or routing refactors.
|
|
39
|
+
|
|
40
|
+
## Verify the composed path
|
|
41
|
+
|
|
42
|
+
Run the focused tests, then the repository's required broader checks. Inspect the final diff and trace the completed path again from ingest through the canonical response. Confirm behavior for retries, partial failures, and transitions from no artifact to artifact present. Report any unavailable integration or deployment evidence explicitly.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
<!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
description: "Build and verify a small end-to-end publication path for validated ingested data, including atomic persistence, read fallback, and static artifact precedence."
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
> 🤖 *Auto-generated by **weekly-pattern-learner** · Repeatedly implement a validated ingest-to-publication flow with atomic persistence, fallback reads, and static artifact precedence.*
|
|
8
|
+
|
|
9
|
+
# Ingest Publication Slice
|
|
10
|
+
|
|
11
|
+
Use this workflow when an ingest pipeline must make a validated record available immediately while a static or cached publication artifact may be generated later.
|
|
12
|
+
|
|
13
|
+
## Define the contract
|
|
14
|
+
|
|
15
|
+
Before changing code, read the repository instructions and trace the current path from ingest entry point through validation, job completion, persistence, request handling, and static artifact generation. Record existing invariants and preserve unrelated work.
|
|
16
|
+
|
|
17
|
+
Write acceptance criteria for one complete slice:
|
|
18
|
+
|
|
19
|
+
- Only a completed, validated active dataset can be published.
|
|
20
|
+
- The persistent publication record and terminal ingest state commit atomically.
|
|
21
|
+
- The canonical read path can serve from the persistent record when no static artifact exists.
|
|
22
|
+
- A static artifact remains authoritative once present, if that is the established product contract.
|
|
23
|
+
- Retries are idempotent, and collisions, invalid states, hidden records, and takedowns cannot publish.
|
|
24
|
+
|
|
25
|
+
Adapt these criteria to the actual product contract. Do not invent a static-artifact precedence rule if the system has none.
|
|
26
|
+
|
|
27
|
+
## Implement test-first
|
|
28
|
+
|
|
29
|
+
Use the repository's required test command and style. Add focused failing tests before implementation for:
|
|
30
|
+
|
|
31
|
+
1. A valid ingest publishes the record and terminal state together.
|
|
32
|
+
2. A failure between writes leaves neither half committed.
|
|
33
|
+
3. The canonical read path uses the persisted record when the artifact is absent.
|
|
34
|
+
4. The artifact wins when both sources exist, when precedence is required.
|
|
35
|
+
5. Repeated delivery is safe and invalid, hidden, colliding, or withdrawn records stay unpublished.
|
|
36
|
+
|
|
37
|
+
Test the production boundary and transaction behavior, not only helper functions. Keep the change to the smallest vertical slice; avoid unrelated schema or routing refactors.
|
|
38
|
+
|
|
39
|
+
## Verify the composed path
|
|
40
|
+
|
|
41
|
+
Run the focused tests, then the repository's required broader checks. Inspect the final diff and trace the completed path again from ingest through the canonical response. Confirm behavior for retries, partial failures, and transitions from no artifact to artifact present. Report any unavailable integration or deployment evidence explicitly.
|
package/README.md
CHANGED
|
@@ -32,7 +32,7 @@ These skills are opinionated by design. They encode working defaults, preferred
|
|
|
32
32
|
|
|
33
33
|
## Start here
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
Eleven skills across different plugins that cover the most common jobs. Full catalog is below.
|
|
36
36
|
|
|
37
37
|
| What you're doing | Skill | Key principle |
|
|
38
38
|
|--------------------|-------|----------------|
|
|
@@ -43,6 +43,7 @@ Ten skills across different plugins that cover the most common jobs. Full catalo
|
|
|
43
43
|
| Closing out a finished piece of work | [wrap-up](plugins/olko-reflection/skills/wrap-up/SKILL.md) (`olko:wrap-up`) | Verify the objective and propose safe cleanup |
|
|
44
44
|
| Running a recurring engineering retrospective | [retro-analysis](plugins/olko-reflection/skills/retro-analysis/SKILL.md) (`olko:retro-analysis`) | Evidence from delivery and code, not vibes |
|
|
45
45
|
| Going from idea to a shippable MVP | [mvp-oneshot](plugins/olko-product/skills/mvp-oneshot/SKILL.md) (`olko:mvp-oneshot`) | Scope for one week, not the whole roadmap |
|
|
46
|
+
| Publishing validated ingested data immediately | [ingest-publication-slice](plugins/olko-product/skills/ingest-publication-slice/SKILL.md) (`olko:ingest-publication-slice`) | Test the atomic write, fallback read, and artifact precedence end to end |
|
|
46
47
|
| Ramping up on an unfamiliar codebase fast | [crash-course](plugins/olko-reflection/skills/crash-course/SKILL.md) (`olko:crash-course`) | Source-grounded, timed, and testable |
|
|
47
48
|
| Cutting a release from ready-code to submitted-build | [release-day](plugins/olko-release/skills/release-day/SKILL.md) (`olko:release-day`) | One orchestrated pass, not five manual steps |
|
|
48
49
|
| Starting the workday with the queue synced | [morning-routine](plugins/olko-obsidian/skills/morning-routine/SKILL.md) (`olko:morning-routine`) | Chain the routines instead of running them separately |
|
|
@@ -264,7 +265,7 @@ Ship a release: semantic-release setup, changelogs, store listing copy, release-
|
|
|
264
265
|
| [changelog-generator](plugins/olko-release/skills/changelog-generator/SKILL.md) | Transforms git commits into polished user-facing changelogs by categorising changes and rewriting technical commit messages | Preparing release notes, a CHANGELOG entry, or "what changed since the last release"; for setting up the release pipeline itself use semantic-release-beta |
|
|
265
266
|
| [store-listing-copy](plugins/olko-release/skills/store-listing-copy/SKILL.md) | Generates platform-validated App Store, Google Play, and Connect IQ store listing copy (title, subtitle, description, what's new, keywords) from a git changelog | Writing store copy before submitting to apple-store-submit or the garmin-watchface store workflow |
|
|
266
267
|
|
|
267
|
-
### olko-product (
|
|
268
|
+
### olko-product (7)
|
|
268
269
|
|
|
269
270
|
Take a product idea to a shippable build: MVP passes, full-stack scaffolds, UX/UI quality loops, launch plans.
|
|
270
271
|
|
|
@@ -275,6 +276,7 @@ Take a product idea to a shippable build: MVP passes, full-stack scaffolds, UX/U
|
|
|
275
276
|
| [ux-ui-audit-loop](plugins/olko-product/skills/ux-ui-audit-loop/SKILL.md) | Audits and improves a web UI through browser evidence, severity triage, minimal fixes, and before/after verification | The user says "audit this UI", "fix the UX", "review this page visually", "make this page polished", or asks for an autonomous screenshot-and-fix loop |
|
|
276
277
|
| [frontend-direction](plugins/olko-product/skills/frontend-direction/SKILL.md) | Chooses a distinctive, coherent visual direction and source-backed components before writing frontend code | Building a new page or a substantial UI redesign, or making an interface less generic; small fixes keep the existing design |
|
|
277
278
|
| [starter-rules](plugins/olko-product/skills/starter-rules/SKILL.md) | Loads and enforces hard rules for every oleg-koval/* starter | Ensuring 300-line files, E2E tests, pre-commit hooks, Vertical Slice architecture, and KISS/DRY/SOLID |
|
|
279
|
+
| [ingest-publication-slice](plugins/olko-product/skills/ingest-publication-slice/SKILL.md) | Builds a test-first ingest-to-publication path with atomic persistence, read fallback, and static artifact precedence | Publishing validated ingested data before a static artifact exists |
|
|
278
280
|
| [viral-launch](plugins/olko-product/skills/viral-launch/SKILL.md) | Sets up a project repository and launch plan for shareable marketing, public launch readiness, and growth loops | Preparing a repo, product, or package for public launch ("prep for Product Hunt", "write the launch post", "make this shareable"); for building the thing itself use mvp-oneshot or product-builder |
|
|
279
281
|
|
|
280
282
|
### olko-skill-meta (8)
|
|
@@ -298,7 +300,7 @@ Look back and improve: self-critique, retrospectives, performance review, rapid
|
|
|
298
300
|
|
|
299
301
|
| Skill | What it does | Use when |
|
|
300
302
|
|-------|-------------|----------|
|
|
301
|
-
| [self-critique](plugins/olko-reflection/skills/self-critique/SKILL.md) | Adversarially critiques your own last answer:
|
|
303
|
+
| [self-critique](plugins/olko-reflection/skills/self-critique/SKILL.md) | Adversarially critiques your own last answer: a blind critic agent re-derives and verifies every claim against live sources, the score is computed from a labelled claim ledger, you revise under a ratchet, restate the corrected answer, and turn each caught error into a durable rule with a fire counter | Checking a substantial answer before the user has to |
|
|
302
304
|
| [review-past-performance](plugins/olko-reflection/skills/review-past-performance/SKILL.md) | Pulls 24h of ICM memories, git history, and skill analytics; detects repeated mistakes and slow workflows; proposes 1-3 concrete fixes | Daily self-improvement loop or codifying a repeated workflow |
|
|
303
305
|
| [retro-analysis](plugins/olko-reflection/skills/retro-analysis/SKILL.md) | Produces repository, comparison, and cross-project retrospectives from delivery, code-quality, work-pattern, and trend evidence | The user asks for a retro over shipped work ("run a retrospective", "how did this quarter go", "what did we ship") or a scheduled retro job fires; for agent-operations retros use agent-ops-retro, for a single finished change use wrap-up |
|
|
304
306
|
| [agent-ops-retro](plugins/olko-reflection/skills/agent-ops-retro/SKILL.md) | Retrospective on how the agents themselves are being operated: mines local transcripts and reads the reports other jobs already produce to surface what the human keeps repeating, what the guardrails caught, and where delivery leaked, carrying unactioned findings forward | Checking agent usage, delegation cost, or repeating corrections across sessions rather than shipped code |
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ingest-publication-slice
|
|
3
|
+
description: Build and verify a small end-to-end publication path for validated ingested data, including atomic persistence, read fallback, and static artifact precedence.
|
|
4
|
+
source: weekly-pattern-learner
|
|
5
|
+
source_reason: "Repeatedly implement a validated ingest-to-publication flow with atomic persistence, fallback reads, and static artifact precedence."
|
|
6
|
+
source_date: "2026-10-24"
|
|
7
|
+
---
|
|
8
|
+
<!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
|
|
9
|
+
|
|
10
|
+
> 🤖 *Auto-generated by **weekly-pattern-learner** · Repeatedly implement a validated ingest-to-publication flow with atomic persistence, fallback reads, and static artifact precedence.*
|
|
11
|
+
|
|
12
|
+
# Ingest Publication Slice
|
|
13
|
+
|
|
14
|
+
Use this workflow when an ingest pipeline must make a validated record available immediately while a static or cached publication artifact may be generated later.
|
|
15
|
+
|
|
16
|
+
## Define the contract
|
|
17
|
+
|
|
18
|
+
Before changing code, read the repository instructions and trace the current path from ingest entry point through validation, job completion, persistence, request handling, and static artifact generation. Record existing invariants and preserve unrelated work.
|
|
19
|
+
|
|
20
|
+
Write acceptance criteria for one complete slice:
|
|
21
|
+
|
|
22
|
+
- Only a completed, validated active dataset can be published.
|
|
23
|
+
- The persistent publication record and terminal ingest state commit atomically.
|
|
24
|
+
- The canonical read path can serve from the persistent record when no static artifact exists.
|
|
25
|
+
- A static artifact remains authoritative once present, if that is the established product contract.
|
|
26
|
+
- Retries are idempotent, and collisions, invalid states, hidden records, and takedowns cannot publish.
|
|
27
|
+
|
|
28
|
+
Adapt these criteria to the actual product contract. Do not invent a static-artifact precedence rule if the system has none.
|
|
29
|
+
|
|
30
|
+
## Implement test-first
|
|
31
|
+
|
|
32
|
+
Use the repository's required test command and style. Add focused failing tests before implementation for:
|
|
33
|
+
|
|
34
|
+
1. A valid ingest publishes the record and terminal state together.
|
|
35
|
+
2. A failure between writes leaves neither half committed.
|
|
36
|
+
3. The canonical read path uses the persisted record when the artifact is absent.
|
|
37
|
+
4. The artifact wins when both sources exist, when precedence is required.
|
|
38
|
+
5. Repeated delivery is safe and invalid, hidden, colliding, or withdrawn records stay unpublished.
|
|
39
|
+
|
|
40
|
+
Test the production boundary and transaction behavior, not only helper functions. Keep the change to the smallest vertical slice; avoid unrelated schema or routing refactors.
|
|
41
|
+
|
|
42
|
+
## Verify the composed path
|
|
43
|
+
|
|
44
|
+
Run the focused tests, then the repository's required broader checks. Inspect the final diff and trace the completed path again from ingest through the canonical response. Confirm behavior for retries, partial failures, and transitions from no artifact to artifact present. Report any unavailable integration or deployment evidence explicitly.
|