mirror of
https://github.com/boshu2/agentops.git
synced 2026-09-14 15:08:13 +08:00
10f0277bdb
## Legible membrane, Train 2: what a stranger meets Provenance: the 2026-09-02 field audit of this repo against mattpocock/skills, compound-engineering, and the jsm corpus, findings F5 through F9. This train is sized by a consumer inventory built with `rg` on the tip before any lane was written; the promoted-set directory move the audit proposed is deferred because that inventory shows skill-builder backing two blocking gates, swarm pinned by the cathedral gate and a routing golden, using-gc required by Go code, and `ao skills link` unable to install a second root. That inventory is the plan for a later train. **What changes.** - **Archival sweep by consumer disposition.** 172 audit snapshots, 29 pawl receipts, the `evals/workbench` and `evals/membrane` trees with their two bats consumers, four stray scratch docs, four retired eval contracts, and nine caller-less `scripts/check-*.sh` are deleted; git history is the archive. Every machine list that referenced them is pruned (evidence-grounding baseline, preamble grandfather, broken-links allowlist, `.gitattributes`, `.gitignore`, two eval fixtures, the workflow-coverage deferred list). `docs/audits/manifests/` and `.agents/ao/config.yaml` survive because they have live readers. About 48,000 lines. - **Three skills retired.** `goals` (alias of fitness), `shared` (tombstone), and `scope` (folded into plan step 3 as five write-scope checks). Consumers edited; the probe denominator exclusion for goals pruned; Codex package and golden count pins updated. - **Negative routing** on research, codebase-recon, reverse-engineer, premortem, one-way-door, and council, all within the 180-char budget, with a teardown golden (`rq-08`). One wording was changed after the router's prefix stemming showed "repository teardown" leaking into the wrong skill. - **Every promoted skill answers "It's working if"** with observable tells in backticks, and carries a paste-ready `## Prompt` with a concrete subject. Two fictional `ao` subcommands a draft prompt named were caught by the body-ref validator and replaced with real commands. - **Doctrine diet on the core five.** rpi, plan, implement, validate, and anti-ceremony drop from about 5,100 words to 3,600 (bodies from 4,700 to 3,150) by moving the shared ownership boundary, dated incidents, and mechanics tables into step-loaded references (`skills/rpi/references/boundaries.md`, `skills/validate/references/mechanics.md`, `skills/plan/references/ground-truth-routing.md`). Every cathedral canary and every skill validator grep survives unchanged. - **ADR-0018** records the goals, shared, and scope retirement; the cathedral gate tombstone and the routing goldens cite it instead of ADR-0017. - **Router and twins.** `ao skills find` holds a description's "Not for X; that is <sibling>." sentence out of its haystack, so premortem no longer ranks first for "is this live decision reversible" (golden `rq-10` pins the reciprocal of `rq-02`); a penalty variant was tried and reverted because it suppressed skills the caller named outright. A declared trigger phrase of two or more words quoted whole in the query now earns the name weight once, so "check this change" lands on validate rather than on reality-check's name token; a live-catalog test pins seven such queries. Single-quoted YAML descriptions unescape `''`. The Codex catalog keeps the exclusion sentence, and a closing `>` no longer turns `<run-id>/codebase-recon.json` into an invocation. - **Residue the judges found.** handoff, learn, and status open a `## Contract` heading after their tells; validate's prompt names its helper at `skills/validate/scripts/validate.py`; the explicit-skill prompt catalog names only live skills (five stale prompts replaced by nine, floor 20 restored, TESTING.md names the suite); the corpus-delta receipt binds the runner's path and SHA-256 and labels a `live_agent` claim as an unverified caller declaration; the probe README and ledger describe the 12-skill denominator; SKILL-API counts 30 of 54. **Evidence on the tip.** Regen check clean; full gate green with a HEAD-built binary; CI's bats command green; Go build/vet/test green; lint clean; security gate quick PASS; docs-build warnings did not rise. Fresh validation by Fable 5.1 (caller-elected) and a cross-family read by Codex, both recorded in the PR thread. --------- Co-authored-by: Bo <bofuller55@gmail.com>
Learnings Index
Durable observations and rules-derived-from-mistakes extracted from live sessions. Each file is a single learning; the date prefix is the day it was captured.
For canonical contracts (what the system SHOULD do), see
../contracts/. For research deep-dives, see ../brainstorms/ or
../research/. Learnings are the "what we learned by running"
layer in between.
Catalog (chronological, newest first)
| Date | File | One-line takeaway |
|---|---|---|
| 2026-06-12 | epic-close-needs-target-disposition-not-children-closed.md | Epic close requires per-target disposition (LANDED/SCHEDULED/DROPPED); children-all-closed misses never-created children. |
| 2026-06-12 | go-exec-waitdelay-grandchild-pipes.md | exec.CommandContext + buffer pipes needs WaitDelay — deadline kills the child, grandchildren holding pipes block Run(). |
| 2026-06-12 | codex-runtime-review-auth-and-scope.md | Codex runtime receipts need executable auth/schema/evidence guardrails before planning ceremony. |
| 2026-05-30 | claim-green-verify-first.md | Claim a PR is green only AFTER running the gates — self-report-over-verification is the repeat failure mode. |
| 2026-05-13 | cli-wiring-cycle-shape.md | CLI-wiring is a repeatable ~10-min cycle-shape: parent noun + verb subcommand + injectable func; 3 production adapters exposed in 3 cycles. |
| 2026-05-13 | loop-context-drift-87-cycle-observation.md | /loop context accumulates but disk-state ledger protects correctness — soc-wx55q.1 P1 may be P3. |
| 2026-05-13 | substring-sed-rename-overreach.md | Before any bulk sed rename, enumerate ALL substring-containing identifiers and classify by concept. |
| 2026-05-13 | bc-ports-wire-up-arc.md | 12 production adapters in 11 cycles via repeatable file-triplet pattern; 8 distinct adapter shapes proven. |
| 2026-05-12 | parity-surface-inventory-grew-from-4-to-7-across-cycles-64-70.md | The parity surface count between Claude and Codex grew incrementally; tracking the count caught drift. |
| 2026-05-11 | evolve-skill-friction-from-13-cycle-session.md | 6 concrete skills/evolve/SKILL.md patches identified from direct cycle-by-cycle observation. |
| — | orchestrator-compression-anti-pattern.md | Don't collapse /research → /plan → /pre-mortem into a single inlined call; strict delegation matters. |
When to add a learning here
Add a file when one of these is true:
- A long arc landed and the lessons are non-obvious. Example: the cycle-122 BC-ports wire-up arc (12 cycles, 8 adapter shapes proven) — future operators reading just the commit messages would miss the meta-pattern. The arc summary captures it.
- A mistake produced a rule. Example: the cycle-127 substring- sed overreach learning. The mistake was caught, the corrective commit landed, and the rule that prevents repeating it is now durable.
- Empirical observation refines a prior theoretical concern.
Example: cycle-132 documented 87 fires of
/loopshowing the feared context-drop didn't materialize because disk state protects correctness — refining soc-wx55q.1.
Do NOT add a file for:
- One-off bug fixes (the commit message is enough)
- Already-canonical-contract material (put it in
../contracts/) - Status updates on in-progress work (use
bd commentor.agents/evolve/cycle-history.jsonl)
File shape
---
title: <single-sentence statement of the learning>
date: YYYY-MM-DD
tags: [topic1, topic2, ...]
source: <where the observation came from — cycle range, incident, PR>
companion: <optional sibling file>
---
# <repeat title>
<short paragraph: what happened>
## What went wrong / What we learned
<concrete details>
## The rule
<numbered or bulleted, actionable for future cycles>
## See also
<other learnings, contracts, beads>
Frontmatter is required so ao lookup and future indexers can rank.
The body shape is a guideline, not a contract — match what the
observation demands.