@ssheleg/agent-stack 0.12.0 → 0.13.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/CHANGELOG.md +40 -0
- package/package.json +1 -1
- package/plugins/agent-stack/.claude-plugin/plugin.json +1 -1
- package/plugins/agent-stack/skills/agent-evals/SKILL.md +3 -4
- package/plugins/agent-stack/skills/agent-harness/references/audit.md +46 -11
- package/plugins/agent-stack/skills/agent-interop/SKILL.md +5 -5
- package/plugins/agent-stack/skills/agent-orchestrator/SKILL.md +10 -11
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,45 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## v0.13.0 — 2026-08-20 — the audit refused a score and computed one
|
|
4
|
+
|
|
5
|
+
`references/audit.md` said *"a prioritized change plan … **not** a score"* at `:20`, argued
|
|
6
|
+
at `:22-25` that *"a number compresses away the only useful information"*, and then computed
|
|
7
|
+
`P = blast × confidence / effort` at `:114` and ordered the plan by it at `:128`. The
|
|
8
|
+
manifesto backs the refusal in the same words (`manifesto.md:424` — *"these axes are not a
|
|
9
|
+
fake numerical score. They are a reason the team can inspect"*) and names **four** axes at
|
|
10
|
+
`:419-422`: impact, **irreversibility**, uncertainty, **coordination**. Two of them appeared
|
|
11
|
+
nowhere in the pack (`grep -ci irreversib` → 0, `grep -ci coordinat` → 0) and `effort` — a
|
|
12
|
+
cost, not a risk — had been substituted for both.
|
|
13
|
+
|
|
14
|
+
**Position taken: publish the axes, drop the arithmetic.** The number never did what its own
|
|
15
|
+
paragraph claimed — `3 × 1 / 3` and `1 × 1 / 1` both print 1, so two findings a reviewer
|
|
16
|
+
would rank very differently ranked identically.
|
|
17
|
+
|
|
18
|
+
Three more, each with its plant:
|
|
19
|
+
|
|
20
|
+
- **The ledger graded a tree, not an artifact.** Three sections said *unreleased* and
|
|
21
|
+
*"the version stays 0.11.1 and the CHANGELOG is untouched"* over 35 rows reading
|
|
22
|
+
`verified` — while v0.12.0 was tagged and published — against this file's own rule that a
|
|
23
|
+
row sits at `never` until its check has been watched passing **on the shipped artifact**.
|
|
24
|
+
Re-run against `git archive v0.12.0`, both commands exit 0.
|
|
25
|
+
- **Three of four skill descriptions were past the house working limit**, one with five
|
|
26
|
+
characters of headroom before the platform's hard 1024. 1019 / 986 / 983 → **964 / 963 /
|
|
27
|
+
970**, every trigger intact (19→19, 12→12, 14→14), and 970 is a gate now.
|
|
28
|
+
- **`test/plant_guard_test.py` leaked eight nameless temp trees per run and the gate said
|
|
29
|
+
nothing.** `test/residue.py` is **ported** from `make-skill`, not rewritten; the shared
|
|
30
|
+
pile went from growing to flat (2568 → 2576 measured, 0 growth from this suite).
|
|
31
|
+
|
|
32
|
+
**Three guards were wrong first, and watching them fail is the only reason that is known:**
|
|
33
|
+
the scalar check refused the paragraph that records the formula's removal; the ledger check
|
|
34
|
+
read its own citation as a claim; and its `shipped in vX` pattern was **lowercase-only**
|
|
35
|
+
while every real claim is capitalised — so it reported green over a file it had never read.
|
|
36
|
+
|
|
37
|
+
Also corrected: `checks = 9 + len(skill_dirs)` was a hand-bumped literal that five ledger
|
|
38
|
+
rows quote as evidence a guard was added. The true count at v0.12.0 was **10**, not 13.
|
|
39
|
+
|
|
40
|
+
Negative self-tests 19 → **26**.
|
|
41
|
+
|
|
42
|
+
|
|
3
43
|
## v0.12.0 — 2026-08-19
|
|
4
44
|
|
|
5
45
|
Three places where this pack's own doctrine disagreed with the Proof of Done manifesto it
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "agent-stack",
|
|
3
3
|
"displayName": "Agent Stack",
|
|
4
4
|
"description": "Two skills: agent-orchestrator \u2014 tool-calling loops, multi-stage pipelines with checkpoints, provider routing with fallback, four-layer memory, context engineering, plus the wallet side of reselling LLM access; and agent-evals \u2014 run/trace/thread evals, judges, and fixtures grown from production.",
|
|
5
|
-
"version": "0.
|
|
5
|
+
"version": "0.13.0",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "ssheleg",
|
|
8
8
|
"url": "https://x.com/sshlg93"
|
|
@@ -7,12 +7,11 @@ description: >-
|
|
|
7
7
|
evals. Covers the three observability primitives (run, trace, thread) crossed with three
|
|
8
8
|
eval granularities (single-step, full-turn, multi-turn), the offline/online/ad-hoc
|
|
9
9
|
timing axis, pass-fail rubrics over scalar scores, cheap code checks before model
|
|
10
|
-
judges, the checker node as an evaluator
|
|
11
|
-
|
|
12
|
-
possible. Triggers - "agent eval", "eval suite", "LLM judge", "regression fixture",
|
|
10
|
+
judges, the checker node as an evaluator inside the graph, simulated users with adversarial
|
|
11
|
+
personas, annotation queues, and what to instrument for any of it. Triggers - "agent eval", "eval suite", "LLM judge", "regression fixture",
|
|
13
12
|
"trajectory eval", "checker node", "is the agent getting better", "эвалы агента",
|
|
14
13
|
"оценка агента", "LLM-судья", "регрессионный набор", "как проверить агента". Not for
|
|
15
|
-
unit tests of ordinary code, or
|
|
14
|
+
unit tests of ordinary code, or benchmarking a model.
|
|
16
15
|
license: MIT
|
|
17
16
|
---
|
|
18
17
|
|
|
@@ -11,7 +11,7 @@ inherited codebase, or a "why is this unreliable" investigation.
|
|
|
11
11
|
- Run the scanner first
|
|
12
12
|
- Seven tracks
|
|
13
13
|
- Evidence tiers
|
|
14
|
-
- Priority,
|
|
14
|
+
- Priority — four axes, and no scalar
|
|
15
15
|
- The report
|
|
16
16
|
- Traps
|
|
17
17
|
|
|
@@ -109,23 +109,56 @@ Every finding carries one, and the tier is part of the finding:
|
|
|
109
109
|
**Never present judgement as measured.** A finding whose tier is honest survives the meeting
|
|
110
110
|
where it is challenged; one that is inflated loses the whole report.
|
|
111
111
|
|
|
112
|
-
## Priority,
|
|
112
|
+
## Priority — four axes, and no scalar
|
|
113
113
|
|
|
114
|
-
`P = blast × confidence / effort`
|
|
114
|
+
`P = blast × confidence / effort` used to sit here, and it contradicted the two sections
|
|
115
|
+
above it. "Not a score" and *pass/fail with a named failure condition beats a scalar that
|
|
116
|
+
names no fix* cannot share a file with a number the plan is then ordered by.
|
|
115
117
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
118
|
+
**And the number does not do what it claimed to do.** The section said the ranking "can be
|
|
119
|
+
argued with on its inputs", but multiplication destroys them: `3 × 1 / 3` and `1 × 1 / 1`
|
|
120
|
+
both print **1**, so *harms a user, judgement-tier, its own project* and *annoys a future
|
|
121
|
+
maintainer, judgement-tier, an hour* arrive at one priority and nobody reading the output
|
|
122
|
+
can tell which is which. A product is a one-way function on the very inputs the argument
|
|
123
|
+
needs.
|
|
119
124
|
|
|
120
|
-
|
|
121
|
-
|
|
125
|
+
<!-- priority-axes: impact, irreversibility, uncertainty, coordination -->
|
|
126
|
+
|
|
127
|
+
So the inputs are published and the arithmetic is not. The axes are the manifesto's four
|
|
128
|
+
(`~/DATA/pod-manifesto/manifesto.md:419-422`, under *these axes are not a fake numerical
|
|
129
|
+
score* at `:424`), and two of them were absent here entirely while `effort` — a **cost**,
|
|
130
|
+
not a risk axis — had been substituted into their place:
|
|
131
|
+
|
|
132
|
+
| Axis | Question | High · Medium · Low |
|
|
133
|
+
|---|---|---|
|
|
134
|
+
| **Impact** | What is harmed if the finding is right? | a user of the system · the operator · a future maintainer |
|
|
135
|
+
| **Irreversibility** | How hard is the harm to undo once it lands? | unrecoverable · recoverable with work · trivially reversible |
|
|
136
|
+
| **Uncertainty** | How much of the behaviour cannot be checked deterministically? | unmeasurable here · measurable but unmeasured · measured |
|
|
137
|
+
| **Coordination** | How many agents, repositories, services and owners meet at the fix? | many · two · one |
|
|
138
|
+
|
|
139
|
+
**Ordering rule: the first axis that separates two findings decides, in that order.**
|
|
140
|
+
Impact, then Irreversibility, then Uncertainty, then Coordination. It is inspectable in the
|
|
141
|
+
direction the old formula was not — a reader who disagrees with the order of two findings
|
|
142
|
+
can point at the axis that decided it and argue about that axis alone.
|
|
143
|
+
|
|
144
|
+
**Effort keeps its job and loses its rank.** It is recorded per finding — under an hour · a
|
|
145
|
+
session · its own project — and it never moves a finding up or down. It sizes the *first
|
|
146
|
+
three items of the plan* so they can start immediately, which is the only decision it was
|
|
147
|
+
ever good for. A cost that divides a risk is how "too expensive to fix" becomes "not
|
|
148
|
+
important".
|
|
149
|
+
|
|
150
|
+
**Uncertainty is not the old `confidence` renamed.** `confidence` graded the auditor's
|
|
151
|
+
evidence; the axis grades what the *system* cannot be made to prove. The evidence grade
|
|
152
|
+
still exists and is still required — it is the tier on every finding, one section up — and
|
|
153
|
+
a finding whose tier is `judgement` says so there rather than being quietly discounted here.
|
|
122
154
|
|
|
123
155
|
## The report
|
|
124
156
|
|
|
125
157
|
1. **One paragraph** — what the system is, which layer, and the single most important thing.
|
|
126
158
|
2. **The scanner output**, including its blind-spot list, verbatim.
|
|
127
|
-
3. **Findings by track**, each with observation, tier and
|
|
128
|
-
4. **The plan** — ordered by
|
|
159
|
+
3. **Findings by track**, each with observation, tier, the four axes and its effort.
|
|
160
|
+
4. **The plan** — ordered by the axes above, first separating axis wins, with the first
|
|
161
|
+
three items sized by effort so they can start immediately.
|
|
129
162
|
5. **What was not looked at**, and why. An audit that does not say where it stopped is read
|
|
130
163
|
as complete.
|
|
131
164
|
|
|
@@ -135,7 +168,9 @@ is fixed before lunch, and the ranking can be argued with on its inputs.
|
|
|
135
168
|
is often not in the repository at all — ask where it lives before concluding it is fine.
|
|
136
169
|
- **Filing "no permission model" against a harness that delegates by design.** Check the
|
|
137
170
|
layer first (`layers.md`).
|
|
138
|
-
- **Grading instead of planning.** A score ends the conversation the audit was meant to
|
|
171
|
+
- **Grading instead of planning.** A score ends the conversation the audit was meant to
|
|
172
|
+
start — including a score assembled from honest axes. Publish the axes; do not multiply
|
|
173
|
+
them.
|
|
139
174
|
- **Confusing "no evals" with "not measured yet."** It is the root finding; put it first,
|
|
140
175
|
because every other conclusion inherits it.
|
|
141
176
|
- **Reading a silent scanner as a clean system.** It is silent about what it can see.
|
|
@@ -3,15 +3,15 @@ name: agent-interop
|
|
|
3
3
|
description: >-
|
|
4
4
|
Use when an agent must talk to something outside its own process — building or consuming an
|
|
5
5
|
MCP server, exposing or calling another agent over A2A, publishing to the MCP Registry, or
|
|
6
|
-
putting a gateway in front of agent traffic. Carries the MCP 2026-07-28 wire surface and what
|
|
7
|
-
|
|
8
|
-
subscriptions/listen; sampling, roots, logging and dynamic client registration
|
|
6
|
+
putting a gateway in front of agent traffic. Carries the MCP 2026-07-28 wire surface and what it
|
|
7
|
+
deprecated (server/discover, stateless per-request _meta, elicitation in form and URL mode,
|
|
8
|
+
subscriptions/listen; sampling, roots, logging and dynamic client registration going),
|
|
9
9
|
A2A 1.0 agent cards, task states and three bindings, registry namespaces and server.json, tool
|
|
10
10
|
federation, and what a gateway must do that an API gateway does not. Triggers - "MCP server",
|
|
11
11
|
"MCP client", "A2A", "agent card", "agent interoperability", "MCP registry", "server.json",
|
|
12
12
|
"agentgateway", "tool federation", "MCP-сервер", "карточка агента", "интероперабельность
|
|
13
|
-
агентов", "реестр MCP", "шлюз для агентов". Not for designing one server's tool set,
|
|
14
|
-
|
|
13
|
+
агентов", "реестр MCP", "шлюз для агентов". Not for designing one server's tool set, nor for
|
|
14
|
+
a skill's own construction — that is make-skill.
|
|
15
15
|
---
|
|
16
16
|
|
|
17
17
|
# Agent interop — the protocols an agent speaks outside its own process
|
|
@@ -2,17 +2,16 @@
|
|
|
2
2
|
name: agent-orchestrator
|
|
3
3
|
description: >-
|
|
4
4
|
Use when building an agent system — an orchestrator, an LLM-powered tool, a chatbot with tool
|
|
5
|
-
use, an AI pipeline — or
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
"
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
or for prompt wording.
|
|
5
|
+
use, an AI pipeline — or metering and billing the LLM access it burns. Covers tool-calling
|
|
6
|
+
loops, pipelines with human checkpoints, provider routing with fallback/retry, four-layer
|
|
7
|
+
memory with confidence decay, context budgets, sub-agent coordination, error hierarchies; the
|
|
8
|
+
work as a graph — parallel layers, fake edges, a checker before convergence; for resale:
|
|
9
|
+
tiered wallets, one markup boundary, two-phase commit across database and provider API,
|
|
10
|
+
spend-delta polling, budget and loop guards, per-tenant keys. Triggers - "agent",
|
|
11
|
+
"orchestrator", "tool calling", "sub-agent", "LLM router", "fallback chain", "human in the
|
|
12
|
+
loop", "memory layer", "LLM billing", "token wallet", "checker node", "агент", "оркестратор",
|
|
13
|
+
"суб-агент", "роутер моделей", "человек в цикле", "слой памяти", "биллинг LLM", "граф задач".
|
|
14
|
+
Not for a single LLM call in a script, or prompt wording.
|
|
16
15
|
---
|
|
17
16
|
|
|
18
17
|
# Agent Orchestrator — Production Best Practices
|