Repository navigation
Releases: ssheleg/agent-stack
Releases · ssheleg/agent-stack
Release list
v0.31.4 — agent-stack
- agent-interop and agent-harness name their subject within the first 57 characters (hub
board row B-285; Hermes shows only that many). agent-interop was "Use when an agent talks to
anything outside its process: MCP server or client, A2A " and is now "Use when an agent speaks
MCP, A2A or a gateway beyond its"; agent-harness was "Use when the question is what the agent
is told, not how its loop is wired: system" and is now "Use when deciding an agent's system
prompt and tools, not". Lengths 283 and 296; the quoted triggers and the Not-for boundaries are
unchanged.
v0.31.3 — agent-stack
- Every skill description now fits a budget of about 300 characters (hub board row B-255 (a)):
Claude Code lists every installed skill's description each session against a shared budget of
about 30,000 characters, and the operator's listing measured 51,178, so less-used skills lost
their descriptions. Measured with whitespace collapsed:agent-evals422 → 294,agent-harness
445 → 291,agent-interop368 → 299,agent-orchestrator458 → 299; total 1693 → 1183. - Each description keeps its router sentence, its boundary against sibling skills, the opt-out
phrase and a short English and Russian trigger list. Every quoted trigger the description
dropped is kept in the body's## Triggerssection, so the family hook's words stay advertised
(test/advertised_check.jsin the hub).
v0.31.2 — agent-stack
test/family_gate.pyadds# diverges: noneunder# shared-mechanism: family-gate; the hub's
cross-repository check requires both lines. No behaviour change.
v0.31.1 — agent-stack
test/family_gate.pyopens with# shared-mechanism: family-gate, as the hub's
cross-repository check requires of every copy of a shared mechanism. No behaviour change.
v0.31.0 — agent-stack
test/family_gate.py, the family's canonical member gate (hub B-108, B-109): the board
parses (every row as wide as its header, no id twice) andrelease.ymlkeeps the tag-ancestry
check (fetch-depth: 0,git merge-base --is-ancestor), each watched failing on a plant by
--self-test. Wired into the gate; a byte-for-byte copy of the hub'smember-gate/family_gate.py.- agent-evals
references/support-quality.md: the support quality standard v1 for agents
that answer people (issue #56). The per-turn record (A1); four metric families per channel
per closed UTC day, a metric not computed is "not measured", never 0 (A2); first-reply p90
targets per channel kind: private chat under 30 s, mail under 4 h, store reviews under 24 h,
group chats within the agent's come-back window; first reply measured from the person's
message to the sent reply; rubric v1 and why factual accuracy is not the judge's job (A3);
the judge, from another vendor, alerting on a check only after 80% human agreement (A4);
support.quality_daily, counts and codes only (A5); autonomy without blocking (A6);
portability (A7). Plus the weekly assessment loop (findings with cause class, owner,
action and priority, compared by finding id), the checks that caught real defects, and
one deployment's baseline labelled as a measurement, not a target. Routed from the
agent-evals references table and an agent-orchestrator checklist line. test/validate.py:check_support_standard_keeps_its_parts(four self-tests) fails
when the standard loses a part heading A1 to A7, a channel kind's target row, or the
"never 0" rule in A2 or A5.- README: the reference count reads 32 (it read 27 while 31 shipped;
agent-harness10,
not 7).
v0.30.2 — agent-stack
- The verification ledger records this version: 0.30.1 shipped with the ledger still headed by the version before it. No skill changes.
v0.30.1 — agent-stack
agent-interop/references/gateway.mdcited files and a commit inside a private repository of the operator's workspace. The citations now name the record without its private path. The trust tiers, money limits and human gates are unchanged.
v0.30.0 — agent-stack
- Every skill description is a router of 368 to 458 characters (was 929 to
939; total 3,742 to 1,693). The operator's Claude Code skill listing measured
29,995 of about 30,000 characters for 134 skills, and 81 skills showed no
description; a plugin skill cannot be hidden, so length is the only lever. Each
description is one "Use when" sentence, four or five English and Russian
triggers, and a "Not for" boundary naming the sibling;agent-orchestrator
carries the refusal phrase.Triggers:takes a colon inside the folded scalar. - Every removed trigger phrase moved verbatim into a
## Triggerssection of
its SKILL.md body (8, 5, 11 and 9 phrases). agent-orchestratorkeeps its scope list in the body. The description's
"Covers" list (the saga across database and provider API among it) was the only
place the body named that scope, andfix-as-01.01reads it; it now sits under
## Triggers.test/validate.py: the member ratchet moves from 940 to the family soft cap
of 500, and a description without a "Not for" boundary fails.
The CI ratchet plant moves with it (500 passes, 501 fails on the ratchet), and
the over-long plant pads past 1024 again.
v0.29.0 — agent-stack
- agent-orchestrator
references/governance.mdgains an incident checklist. Six
published incidents, each with its primary source (read 2026-10-19) and the control
this pack draws from it: egress closed at the DNS resolver with an alert that stops
the run; secrets split into pieces to evade scanners and uploads to public file
hosts; compaction summaries that carried instructions the brief never gave; agents
submitting third-party forms and working around tool limits; found credentials and
a found wallet used without permission; Docker daemons exposed on port 2375 with LLM
provider keys as the attacker's first target. - agent-evals §6: every task is shown solvable before it scores an agent. A
reference solution that passes all graders, a 0% pass rate across many trials read
as a broken task, and a task with no passing reference reported asTEST_ERROR.
Sources: Anthropic's eval guide and METR's investigation, where an estimated 30-40%
impossible targets drove agents to cheat the scorer. New checklist line. - agent-evals
references/multi-agent.md: "Goal met through a prohibited effect"
seed case, with the published precedent of agents invoicing strangers and mass
emailing while chasing a revenue goal. test/validate.py:check_sourced_safety_rows_keep_their_sources(with four
self-tests) fails when an incident row loses its id, row or https source, when the
section loses its read date, or when the solvability rule or the seed case loses
its source. Watched failing with three problems before the doctrine landed.
v0.28.2 — agent-stack
- Resume only an owned stopped worker through the host's supported operation.
A quiet stream does not prove a stall; one failed lane does not authorize
stopping siblings or duplicating their in-flight work. - Reconcile uncertain outward effects before replay. Run IDs and unchanged
arguments do not guarantee cached completion or preserved context. - Record finite attempt and deadline bounds, including host retries, and retain
provider Retry-After/reset timing. Recheck task authority and ownership before
each attempt; preserve the best partial when the series ends. - Keep independent work moving while a watcher handles the eligible retry.
Billing, sign-in, consent and secret-entry gates remain human; no account/key
switching or cap bypass. Focused text controls cover known unsafe instructions,
without claiming observed model or scheduler behavior.