@olegkoval/agent-skills 1.41.0 → 1.41.1
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/README.md +1 -1
- package/docs/agent-context-store.md +46 -0
- package/docs/assets/context-store-card.html +24 -0
- package/docs/assets/context-store-card.png +0 -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-reflection/.claude-plugin/plugin.json +1 -1
- 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/README.md
CHANGED
|
@@ -342,7 +342,7 @@ When adding or changing a skill:
|
|
|
342
342
|
|
|
343
343
|
### Shared context store
|
|
344
344
|
|
|
345
|
-

|
|
346
346
|
|
|
347
347
|
`retro-analysis` and `shared-knowledge-artifact` share one private GitHub repository,
|
|
348
348
|
resolved through the `context-repo` skill the first time either one runs. It finds a
|
|
@@ -229,6 +229,52 @@ into it:
|
|
|
229
229
|
where they do not conflict with this contract. It cannot override lease acquisition,
|
|
230
230
|
validation, append-only writes, secret handling, or the private-repository requirement.
|
|
231
231
|
|
|
232
|
+
## Reading the store
|
|
233
|
+
|
|
234
|
+
Everything above is the write side, and it is enforced: a lease, a validator, and CI
|
|
235
|
+
that runs the validator again on push. The read side had none of that. For a while the
|
|
236
|
+
only instruction to read the ledger was one sentence in `AGENTS.md`, which is a rule an
|
|
237
|
+
agent has to remember rather than a mechanism. It did not hold. Two notes written on
|
|
238
|
+
2026-08-25 described failures that both recurred by 2026-08-31: one about stating the
|
|
239
|
+
denominator behind a percentage, one about cache reads dominating a long-session bill.
|
|
240
|
+
Recording a lesson and delivering it are different jobs.
|
|
241
|
+
|
|
242
|
+
The store therefore ships a reader, `recipes/tools/ledger-index`, built on the shape
|
|
243
|
+
that already works for per-user memory: a cheap index is always in context, and the
|
|
244
|
+
body is fetched on demand. The index is titles only, roughly 1.9k tokens for 84 notes,
|
|
245
|
+
grouped by scope with traps first. The ledger itself is around 50KB and does not belong
|
|
246
|
+
in every session.
|
|
247
|
+
|
|
248
|
+
```text
|
|
249
|
+
ledger-index the index, grouped by scope
|
|
250
|
+
ledger-index --show n41 one note in full, body and Why
|
|
251
|
+
ledger-index --kind trap --scope shell
|
|
252
|
+
ledger-index --count
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
It resolves the ledger through the same pointer `context-repo` writes, so a machine
|
|
256
|
+
that has resolved the store once needs no further configuration. An explicitly named
|
|
257
|
+
`--ledger` or `LEDGER_PATH` that does not exist is an error rather than a fallback:
|
|
258
|
+
silently reading a different ledger than the one you asked for is the failure this
|
|
259
|
+
whole document exists to prevent.
|
|
260
|
+
|
|
261
|
+
Hosts wire it in their own way and neither owns the format. A Claude `SessionStart`
|
|
262
|
+
hook injects the index once per session; a Codex prompt shells out to the same binary.
|
|
263
|
+
The reference hook is `recipes/hooks/ledger-index.sh`, which prints nothing and exits 0
|
|
264
|
+
when the store is absent, so it can never fail a session.
|
|
265
|
+
|
|
266
|
+
The index states its own horizon. It reads from disk and never fetches, because a
|
|
267
|
+
session start is the wrong place for a network call, so the header carries the commit,
|
|
268
|
+
its age in days, and a plain statement that a newer commit may exist upstream. Past
|
|
269
|
+
three days it prints the `pull --rebase` command for that clone. Age of `HEAD` conflates
|
|
270
|
+
a quiet repository with a checkout that is behind, and only a fetch separates them, so
|
|
271
|
+
the limit is stated rather than implied.
|
|
272
|
+
|
|
273
|
+
One consequence is worth making explicit. The fixed clone path is not a convention, it
|
|
274
|
+
is the point: a second working copy of the store is the copy nothing keeps current, and
|
|
275
|
+
it will be the one an index or an `AGENTS.md` symlink ends up reading. Resolve through
|
|
276
|
+
the pointer and keep one checkout.
|
|
277
|
+
|
|
232
278
|
## What is never committed
|
|
233
279
|
|
|
234
280
|
Raw session content, tokens, private prompts, and customer data never go into the
|
|
@@ -367,6 +367,30 @@
|
|
|
367
367
|
<p class="proof-line">A push that appears to succeed is <strong>not proof</strong>. <strong>CREATED</strong> is claimed only after a <strong>fresh read-back agrees</strong>.</p>
|
|
368
368
|
</section>
|
|
369
369
|
|
|
370
|
+
<section class="state-strip" aria-labelledby="read-title">
|
|
371
|
+
<p class="strip-label" id="read-title">AND ONE WAY IT IS READ</p>
|
|
372
|
+
<div class="state-row">
|
|
373
|
+
<div class="state-item">
|
|
374
|
+
<p class="state-name">LEDGER-INDEX</p>
|
|
375
|
+
<p class="state-detail">titles only, grouped by scope, traps first</p>
|
|
376
|
+
</div>
|
|
377
|
+
<div class="state-item">
|
|
378
|
+
<p class="state-name">--SHOW n41</p>
|
|
379
|
+
<p class="state-detail">one note in full, body and Why</p>
|
|
380
|
+
</div>
|
|
381
|
+
<div class="state-item">
|
|
382
|
+
<p class="state-name">--KIND --SCOPE</p>
|
|
383
|
+
<p class="state-detail">narrow it to the task in front of you</p>
|
|
384
|
+
</div>
|
|
385
|
+
<div class="state-item">
|
|
386
|
+
<p class="state-name">DATED HEADER</p>
|
|
387
|
+
<p class="state-detail">read from disk, no fetch, age stated</p>
|
|
388
|
+
</div>
|
|
389
|
+
<p class="state-copy">A cheap index is always in context; the body is fetched on demand. The ledger never enters a session whole.</p>
|
|
390
|
+
</div>
|
|
391
|
+
<p class="proof-line">A rule that is <strong>recorded but not delivered</strong> is a diary. The index is a <strong>table of contents</strong>, never the rule itself.</p>
|
|
392
|
+
</section>
|
|
393
|
+
|
|
370
394
|
<footer class="closing-band">
|
|
371
395
|
<p class="closing-line">One consented store gives every skill durable context with explicit verification.</p>
|
|
372
396
|
<div class="metadata-line">
|
|
Binary file
|
package/package.json
CHANGED