mirror of
https://github.com/boshu2/agentops.git
synced 2026-09-14 15:08:13 +08:00
4e4842865d
3.1 teardown **keystone** (ag-8ok), discovered-from ag-097. Makes
subtraction a *measured* fitness outcome so the `/evolve` loop can't
quietly rebuild what the teardown removed.
### The design (NOT a size metric — that's a GOALS.md Anti-Star)
GOALS.md "## Anti Stars" forbids "Goals that measure code metrics
instead of user outcomes." So this is a **stay-removed guard**, not a
"fewer lines/files/jobs is better" ratchet: it fails *only* when a
surface the teardown explicitly removed comes **back**. Legitimate new
growth is fine; only regrowth of specifically-removed apparatus fails.
That's a real outcome ("the slop we removed stays removed"), not a size
metric.
This session is the live evidence ag-8ok predicts: planning regenerated
duplicate P1 beads (ag-cbt/ag-2oi) faster than the system pruned.
Without an anti-regeneration signal, the loop's merge=reward incentive
re-grows apparatus.
### What changed (additive only)
- `scripts/check-no-apparatus-regrowth.sh` — reads a manifest of removed
paths; exit 0 if all stay gone, exit 1 (per-path message) on regrowth.
`--json`/`--manifest`/`--root` flags.
- `scripts/removed-apparatus.txt` — the data-driven manifest (5
surfaces: wikiworker #589, plans/worker #581, gascity + bridge/gc.go
#590). Future teardown waves append here in the same change that lands
the deletion.
- `GOALS.md` — one measurable goal (`no-apparatus-regrowth`, weight 5)
wired to the script + one strategic Directive (D15,
`d-teardown-removed-apparatus-stays-removed`), framed as an outcome. No
North/Anti-Star edits.
- `tests/scripts/check-no-apparatus-regrowth.bats` — 8 tests
(PASS-when-absent, FAIL-when-regrown, json, missing-manifest, and a
guard that the real committed manifest passes on the real tree).
### Verification
- `bash scripts/check-no-apparatus-regrowth.sh` → PASS, all 5 stay
removed, exit 0
- `bats` 8/8 · `shellcheck` clean
- `ao goals measure` (built from source) surfaces
`no-apparatus-regrowth: PASS`; `--directives` lists D15; `goals
validate` valid
Closes-scenario: ag-8ok#anti-regen
Bounded-context: BC1-Corpus
Evidence: spec/teardown-2026-05-28/
21 lines
1.2 KiB
Plaintext
21 lines
1.2 KiB
Plaintext
# removed-apparatus.txt — teardown-removed surfaces that must STAY removed.
|
|
#
|
|
# Consumed by scripts/check-no-apparatus-regrowth.sh (GOALS.md directive D15,
|
|
# anti-regeneration fitness gate). One repo-root-relative path per line. The
|
|
# gate FAILS if any listed path exists again — that means the /evolve loop (or
|
|
# anything else) regrew apparatus the teardown (epic ag-097) deliberately
|
|
# removed. This is a stay-removed OUTCOME guard, NOT a size/line/file metric:
|
|
# legitimate new growth is fine; only the return of these specific surfaces fails.
|
|
#
|
|
# Append a line here in the SAME change that lands a teardown deletion, so the
|
|
# removal is locked in. Lines starting with `#` and blank lines are ignored;
|
|
# an inline `# ...` comment after a path is also stripped.
|
|
#
|
|
# Each entry below was verified ABSENT on this branch before being asserted.
|
|
|
|
cli/internal/wikiworker # removed, PR #589 (ag-jqx, dead caller pkg)
|
|
cli/internal/plans # removed, PR #581 (ag-nxm, S1)
|
|
cli/internal/worker # removed, PR #581 (ag-nxm, S1)
|
|
cli/internal/gascity # removed, PR #590 (ag-hfc, S2 orphan cluster)
|
|
cli/internal/bridge/gc.go # removed, PR #590 (ag-hfc, S2 — GC* symbols; semver helpers kept in bridge/semver.go)
|