@ssheleg/agent-stack 0.24.1 → 0.24.3
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
CHANGED
|
@@ -1,3 +1,35 @@
|
|
|
1
|
+
## 0.24.3 — the budget stops being estimated, and two skills stop naming a file they do not ship
|
|
2
|
+
|
|
3
|
+
Hygiene from the 2026-09-13 family audit (HK-11).
|
|
4
|
+
|
|
5
|
+
- **The body budget is MEASURED.** This gate divided by a calibrated 3.9 chars/token; the
|
|
6
|
+
calibration drifted. Measured 2026-09-14 against the authority's tokenizer:
|
|
7
|
+
`agent-evals` estimated **~4961** and measured **4374**; `agent-orchestrator` estimated
|
|
8
|
+
**~4762** and measured **4309** — two files reported past the working limit with 300+
|
|
9
|
+
tokens of real headroom. make-skill v0.28.0 closed the same defect in the family
|
|
10
|
+
auditor by measuring. With no tokenizer installed the check now **discloses** rather
|
|
11
|
+
than issuing a verdict from the wrong instrument.
|
|
12
|
+
- **`agent-harness` and `agent-interop` named `test/validate.py`** — a repository file
|
|
13
|
+
that does not ship inside a skill, so it resolves at the repo root and nowhere an
|
|
14
|
+
installed reader stands. Both say "this pack's repository validator" now.
|
|
15
|
+
- **`agent-harness` declares `compatibility`**: it ships `scripts/audit_agent.py`, and a
|
|
16
|
+
skill that needs an interpreter says so in front matter.
|
|
17
|
+
- **`plugin.json`'s homepage** matches `package.json` and the forge
|
|
18
|
+
(`skills.sshlg.me/skills/agent-stack/`) instead of the GitHub URL.
|
|
19
|
+
- **The README names what loads on demand** — 27 reference files, counted per skill from
|
|
20
|
+
the tree, not stated — and both invocation forms (`/agent-stack:<skill>` and
|
|
21
|
+
`/<skill>`), because which one resolves depends on how the pack was installed. The
|
|
22
|
+
installer line said "both skills" over a pack of four.
|
|
23
|
+
|
|
24
|
+
## v0.24.2 — the ledger section names the version it ships
|
|
25
|
+
|
|
26
|
+
The previous patch wrote the ledger section BEFORE bumping the version, so the
|
|
27
|
+
section named the version that was being replaced and the lag it existed to
|
|
28
|
+
close survived it. Order matters here: bump, then write the section against what
|
|
29
|
+
is now declared.
|
|
30
|
+
|
|
31
|
+
Nothing else changed.
|
|
32
|
+
|
|
1
33
|
## v0.24.1 — the ledger catches up to the version it ships
|
|
2
34
|
|
|
3
35
|
A member's ledger is fixed in that member's own release. The umbrella's ratchet
|
package/README.md
CHANGED
|
@@ -160,7 +160,7 @@ waterfall, and model-routing precedence.
|
|
|
160
160
|
/plugin install agent-stack@agent-stack
|
|
161
161
|
```
|
|
162
162
|
|
|
163
|
-
**npm installer** — copies
|
|
163
|
+
**npm installer** — copies all four skills into `~/.claude/skills/`:
|
|
164
164
|
|
|
165
165
|
```bash
|
|
166
166
|
npx @ssheleg/agent-stack
|
|
@@ -180,6 +180,26 @@ npx --yes sshlg-skills@latest update
|
|
|
180
180
|
|
|
181
181
|
Restart your agent afterwards — skills load at session start.
|
|
182
182
|
|
|
183
|
+
**Reaching a skill by name.** Claude Code routes on the description, and both
|
|
184
|
+
invocation forms work: `/agent-stack:agent-orchestrator` names the plugin's copy
|
|
185
|
+
explicitly, `/agent-orchestrator` the plain one. Which resolves depends on how this
|
|
186
|
+
pack was installed, so both are written here rather than one promised.
|
|
187
|
+
|
|
188
|
+
### What loads on demand
|
|
189
|
+
|
|
190
|
+
Twenty-seven reference files ship with the four skills, each with a load trigger in
|
|
191
|
+
its skill body. By skill:
|
|
192
|
+
|
|
193
|
+
| Skill | References |
|
|
194
|
+
|---|---|
|
|
195
|
+
| `agent-orchestrator` | 12 — the tool-calling loop, memory and retrieval, context budgets, provider routing, the work graph, the resale wallet and the saga across database and provider API |
|
|
196
|
+
| `agent-harness` | 7, plus `scripts/audit_agent.py` |
|
|
197
|
+
| `agent-interop` | 6 — one per protocol surface, each pinning the revision it was read at |
|
|
198
|
+
| `agent-evals` | 2 — `otel-genai.md` (the semantic conventions an eval reads) and `statistics.md` (when a difference is a difference) |
|
|
199
|
+
|
|
200
|
+
A file with no load trigger in a body is a defect, not a bonus: the skill audit
|
|
201
|
+
refuses one.
|
|
202
|
+
|
|
183
203
|
---
|
|
184
204
|
|
|
185
205
|
## When it triggers
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ssheleg/agent-stack",
|
|
3
|
-
"version": "0.24.
|
|
3
|
+
"version": "0.24.3",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"test": "python3 test/validate.py && python3 test/plant_guard_test.py && node test/installer_test.js && npm run test:audit",
|
|
6
6
|
"test:audit": "for t in test/audit_regressions/*.py; do python3 \"$t\" || exit 1; done"
|
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
"name": "agent-stack",
|
|
4
4
|
"displayName": "Agent Stack",
|
|
5
5
|
"description": "Four skills: agent-orchestrator — tool-calling loops, pipelines with checkpoints, provider routing with fallback, memory architecture, plus the wallet side of reselling LLM access; agent-evals — run/trace/thread evals, LLM judges, and fixtures grown from production; agent-interop — MCP servers and clients, A2A agent cards, the MCP Registry, and gateways; agent-harness — system prompts, tool shaping, workflow-vs-agent, and auditing an agent system.",
|
|
6
|
-
"version": "0.24.
|
|
6
|
+
"version": "0.24.3",
|
|
7
7
|
"author": {
|
|
8
8
|
"name": "ssheleg",
|
|
9
9
|
"url": "https://x.com/sshlg93"
|
|
10
10
|
},
|
|
11
|
-
"homepage": "https://
|
|
11
|
+
"homepage": "https://skills.sshlg.me/skills/agent-stack/",
|
|
12
12
|
"repository": "https://github.com/ssheleg/agent-stack",
|
|
13
13
|
"license": "MIT",
|
|
14
14
|
"keywords": [
|
|
@@ -14,6 +14,9 @@ description: >-
|
|
|
14
14
|
"аудит агента", "встроить агента". Not for the loop's plumbing, its evals, or its
|
|
15
15
|
protocols — those are siblings.
|
|
16
16
|
license: MIT
|
|
17
|
+
compatibility: >-
|
|
18
|
+
scripts/audit_agent.py runs with python3 (standard library only); no network,
|
|
19
|
+
no package install. Everything else in this skill is prose and needs nothing.
|
|
17
20
|
---
|
|
18
21
|
|
|
19
22
|
# Agent harness — what the agent is told, and how to audit what someone else told theirs
|
|
@@ -119,7 +122,7 @@ because a decision table with two homes is one that will disagree with itself.
|
|
|
119
122
|
## References
|
|
120
123
|
|
|
121
124
|
Each opens with its own **Load this when** line and a revision stamp — this material moves,
|
|
122
|
-
and
|
|
125
|
+
and this pack's repository validator fails the build on a reference that does not say when it was read.
|
|
123
126
|
|
|
124
127
|
| File | Read it when |
|
|
125
128
|
|---|---|
|
|
@@ -41,7 +41,7 @@ against the live specification rather than recalled:
|
|
|
41
41
|
still introduced `binds` as a core concept as of 2026-08-13.
|
|
42
42
|
|
|
43
43
|
So: **every reference in this skill opens with a `**Spec pinned:**` line**, and
|
|
44
|
-
|
|
44
|
+
This pack's repository validator fails the build without one. That is a mechanical check, not an
|
|
45
45
|
aspiration — the class of error it prevents is the one where prose reads as current
|
|
46
46
|
because nothing on the page says otherwise.
|
|
47
47
|
|