Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
"displayName": "Agent Stack",
"source": "./plugins/agent-stack",
"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.",
"version": "0.27.1",
"version": "0.27.2",
"author": {
"name": "ssheleg",
"url": "https://x.com/sshlg93"
Expand Down
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,17 @@
## 0.27.2 — owner board and release ancestry checks

- The repository validator now rejects missing boards, shifted rows, duplicate IDs
and declarations hidden outside the primary table. Grouped AG IDs and the
explicitly separate three-column reference summaries retain their own meaning.
- Release validation now requires a full-history checkout and an unconditional
ancestry refusal; conditional, ignored and unreachable guards fail validation.
- Sixteen process controls exercise the real validator. The first eight reproduced
failures on the former gate; independent review found and closed an orphan-row
bypass. AG-06b's command pipe is correctly escaped without changing its meaning.
- Full hosted checks run nightly or on a deliberately promoted frozen candidate,
plus callable release validation. Ordinary pushes and PR edits do not trigger
another full suite. No skill body, routing description or runtime hook changes.

## 0.27.1 — the temp-tree check reads the whole repository, and the old leak can be reaped by content

Closes board rows B-158, AG-06a and AG-06b (sshlg-skills plan R28).
Expand Down
2 changes: 1 addition & 1 deletion SKILL-CARD.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
| Field | Value |
|---|---|
| Pack | `agent-stack` |
| Version | `0.27.1` |
| Version | `0.27.2` |
| Skills | `agent-orchestrator`, `agent-evals`, `agent-interop`, `agent-harness` |
| License | MIT |
| Source | https://github.com/ssheleg/agent-stack |
Expand Down
19 changes: 10 additions & 9 deletions docs/HANDOFF.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
# Current work — R30 owner gates
# Current work — agent-stack 0.27.2

Objective: close agent-stack's missing own-board/release-ancestry checks under the
family's original R30. [Bounded packet and checks](evidence/runs/2026-10-13-r30-owner-gates.md)
is the entry for the next agent. Branch `fix/r30-owner-gates-1013`, basecb8f699.
Eight baseline defects reproduced; candidate16 controls pass after two orphan-row review corrections; independent review and local aggregate pass at7aa4dd3;
hosted integration and publication remain pending. No installed payload changes.
R30 own-board and ancestry validation merged normally through PR47 at
`053c0f8725d28e464c98d063e87618c15174849a`; genuine CI38347333161 passed.
[Release packet](evidence/runs/2026-10-13-release-0.27.2.md) is the current entry.
[Implementation and review](evidence/runs/2026-10-13-r30-owner-gates.md) retain
all reproduced defects and sixteen process controls.

Exact next task: frozen draft-to-ready candidate with genuine hosted checks,
then normal exact-head merge. Preserve nightly CI and normal required
checks. Commit/push and verify exact release source before hub re-pin/install.
Version metadata and changelog now form the bounded0.27.2 candidate. Exact next
task: collect local/strict candidate checks, independent review and eligible PR
checks; normal merge, annotated tag, publication and byte readback, then hub pin
and installed verification. No publication or install completion is claimed yet.
2 changes: 1 addition & 1 deletion docs/evidence/backlog.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ row per line, appended, so two runs closing two rows do not land on the same lin
| AG-06b | **The 2592 existing trees are reported and left alone.** `find "$TMPDIR" -maxdepth 4 -type f -path '*/copy/sub/b.sh' \| wc -l` → **2592** on 2026-08-20, of which **16 were added by this run's own verification** — one run of the leaking fixture before the port, and one of the v0.12.0 archive's copy of it. They are plain `tmpXXXXXXXX` and indistinguishable from every other program's, so they are named rather than swept. The identical fixture still leaks in **`seo-aeo-audit`**, which another agent holds; referred, not edited. | AG-06 port, 2026-08-20; plan R28 of the hub's 2026-10-11 integration waves | 2 | 0 | 1 | **2** | **closed in v0.27.1 (2026-10-12)** — the trees ARE identifiable by content, so they are reapable without claiming another program's directory: `python3 test/residue.py --reap-own` (dry run by default, `--apply` to remove) claims only an `mkdtemp()`-named, non-symlink child of the temp root holding exactly one of the fixture's five end-state file sets and its directory set byte for byte, plus optionally its own manifest, unchanged for 24 h; root, age floor and the removal window hardened after the PR #45 reading (verification.md, v0.27.1). `test/reap_own_test.py` 6/6 in a sandbox temp root; a planted permissive reaper (any tree holding `sub/b.sh`) was refused: `near-misses were claimed as own: ['tmpextrab01', 'tmpextraf01']`. Real `$TMPDIR`, dry, 2026-10-12: `0 tree(s) match`; the `find` count is 0 — the 2592 trees are already gone, and both leaking suites (`agent-stack`, `seo-aeo-audit`) now use `residue.workspace()`. Nothing in the real `$TMPDIR` was deleted |
| B-159 | **`seo-aeo-audit` still has the AG-06a/B-158 hole.** Its temp-tree check reads less than the whole repository and misses aliased calls, and `test/negatives.py:195` makes a bare `tempfile.mkdtemp(prefix="tp-negatives-snap-")` outside any residue ledger (read on its `origin/main`, 2026-10-12). Port agent-stack 0.27.1's whole-repository scan, any-receiver pattern and exact-shape exemptions there, and route that snapshot through the ledger. | agent-stack PR #45 blind reading, 2026-10-12 | 1 | 0 | 1 | **1** | **open** — another repository; referred, not edited |
| B-160 | **make-skill's temp-tree check reads `test/` only.** make-skill 0.31.0 has the any-receiver pattern but walks `test/` alone, so a maker in a shipped script is invisible there exactly as AG-06a described here. Port agent-stack 0.27.1's whole-repository scan with exact-path, exact-count, exact-shape exemptions back to make-skill. | agent-stack PR #45 blind reading, 2026-10-12 | 1 | 0 | 1 | **1** | **open** — another repository; referred, not edited |
| B-161 | **The owner validator accepted duplicate declarations and a disabled release ancestry check.** Eight real-validator plants passed on cb8f699; the same seam also hid an even-backslash Markdown pipe in AG-06b. | hub R30, 2026-10-13 | 2 | 0 | 1 | **2** | **open** — implementation candidate and16 process controls; independent review, integration and release pending. [Packet](runs/2026-10-13-r30-owner-gates.md) |
| B-161 | **The owner validator accepted duplicate declarations and a disabled release ancestry check.** Eight real-validator plants passed on cb8f699; the same seam also hid an even-backslash Markdown pipe in AG-06b. | hub R30, 2026-10-13 | 2 | 0 | 1 | **2** | **open** — implementation,16 process controls and independent review merged in PR47 at053c0f8; publication and installed acceptance pending. [Packet](runs/2026-10-13-r30-owner-gates.md) |

## Open, and why

Expand Down
23 changes: 23 additions & 0 deletions docs/evidence/runs/2026-10-13-release-0.27.2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Agent-stack 0.27.2 release packet

Objective: publish the accepted R30 owner-validation changes from PR47, merged
at `053c0f8725d28e464c98d063e87618c15174849a`. Source implementation and independent
review are in [the R30 packet](2026-10-13-r30-owner-gates.md).

Plan frozen before release edits: align package, marketplace, plugin and skill-card
versions; describe the owner gate and CI admission changes; run local aggregate and
strict manifests; obtain genuine exact-head PR checks and normal merge; create an
annotated tag only on that accepted main commit; watch release and read back every
npm payload byte; pass the published source to the hub's next pin/install wave.

The accepted implementation passed local `npm test` on7aa4dd3 and genuine
[pull-request CI38347333161](https://github.com/ssheleg/agent-stack/actions/runs/38347333161)
on32823f9 (receipt-only successor). New metadata has no check result yet.
No tag, publication or installed state is claimed by this planning record.

Versions0.27.0/0.27.1 ledger text is historical; its local results must not be
silently relabelled as shipped-artifact verification. Their publication receipt
will be appended only after exact source/tag/registry verification.

Exact next task: apply the bounded version changes and collect release-candidate
checks. No skill description/body or provider/runtime behavior changes in this cut.
11 changes: 11 additions & 0 deletions docs/evidence/verification.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,17 @@ This file exists because its absence read as zero exposure. `sshlg-skills` board

---

## Release candidate — v0.27.2 (2026-10-13)

Source integration: PR47 merged at `053c0f8725d28e464c98d063e87618c15174849a`.
[Release packet](runs/2026-10-13-release-0.27.2.md) records exact checks and the
remaining publication/install gates. This heading is not a shipped-artifact claim.

| REQ | What ships | How it was confirmed | Confirmed |
|---|---|---|---|
| B-161 | Header-aware own-board admission and release ancestry guard validation | [R30 packet](runs/2026-10-13-r30-owner-gates.md): eight defects reproduced before fixes, sixteen process controls and independent review passed; genuine CI38347333161 succeeded on32823f9 | observed, source integration; publication pending |
| R30 admission | Nightly, explicit ready-for-review and callable release checks | `.github/workflows/validate.yml`; genuine pull-request run38347333161 | observed, source integration |

## Release candidate — v0.27.1 (2026-10-12)

Board rows B-158, AG-06a, AG-06b (sshlg-skills plan R28). Measured on the branch `fix/ag06`
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@ssheleg/agent-stack",
"version": "0.27.1",
"version": "0.27.2",
"scripts": {
"test": "python3 test/validate.py && python3 test/plant_guard_test.py && python3 test/member_owner_gates_test.py && python3 test/reap_own_test.py && node test/installer_test.js && npm run test:audit",
"test:audit": "for t in test/audit_regressions/*.py; do python3 \"$t\" || exit 1; done"
Expand Down
2 changes: 1 addition & 1 deletion plugins/agent-stack/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"name": "agent-stack",
"displayName": "Agent Stack",
"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.",
"version": "0.27.1",
"version": "0.27.2",
"author": {
"name": "ssheleg",
"url": "https://x.com/sshlg93"
Expand Down
Loading