Files
boshu2__agentops/scripts/removed-apparatus.txt
T
Bo 4e4842865d feat(goals): anti-regeneration fitness goal — teardown-removed apparatus stays removed (ag-8ok #anti-regen) (#591)
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/
2026-05-28 20:44:39 -04:00

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)