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
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
---
id: B-0105
priority: P2
status: open
title: Consolidation pass — map 2026-04-29 session-arc rules into 3 durable homes max
tier: factory-hygiene
effort: M
ask: Multi-AI synthesis packet round 4 (Amara 2026-04-29 — "no new conceptual substrate until a consolidation pass maps each new rule to a durable home")
created: 2026-04-29
last_updated: 2026-04-29
composes_with: [B-0098, B-0099, B-0100, B-0101, B-0102, B-0103, B-0104]
tags: [consolidation, factory-hygiene, durable-home-discipline, p2, blocks-new-substrate]
Comment thread
AceHack marked this conversation as resolved.
---

# Consolidation pass — three durable homes max

Amara's round-4 directive (2026-04-29):

> *"No new conceptual substrate until a consolidation pass
> maps each new rule to a durable home."*

The 2026-04-29 session arc produced 7+ promotable rules across
three families. Without consolidation, they remain fragmented
across many backlog rows + memory files + research notes. The
consolidation pass converts them into ≤3 durable homes.

## Three target durable homes

### Home 1 — PR-liveness / merge-cascade operational doc

Likely path: `docs/operations/merge-cascade-pr-liveness-rule.md`
(kebab-case to match existing `docs/operations/` filename
convention; Copilot caught the ALL-CAPS mismatch). Absorbs:

- Probabilistic race framing (PR-liveness race during merge
cascade is observed/probabilistic, not deterministic)
- Cascade detection pre-flight (`gh pr list --author --jq`
query for adjacent auto-merge PRs)
- Before/after capture protocol (RUN_ID-namespaced artifact
paths)
- API/head sync wait (poll until GitHub `headRefOid`
converges to local HEAD)
- Successor-PR dedup (re-check original after settle)
- Recovery-note schema (10 fields including
`seconds_between_force_push_and_pr_close`)
- "Up-to-date is a merge gate; PR-aliveness is a
reachability/diff invariant; do not confuse them"
- ORDERED_MERGE_DEPENDENCY guard (encode `Depends-On: #N` +
pre-merge check script)

Subsumes: B-0102.

### Home 2 — Computed-metadata-discipline (already P2 in B-0103)

Existing path: `docs/backlog/P2/B-0103-computed-metadata-discipline-unified-lint-2026-04-29.md`.
Comment thread
AceHack marked this conversation as resolved.
Already absorbs:
Comment thread
AceHack marked this conversation as resolved.

- Ordinal drift (B-0098, subsumed)
- PR-count drift (B-0099, subsumed)
- Filename-vs-row-timestamp drift
- Branch-base claims
- Boundary clause (does NOT apply to summaries/interpretations)

Future: implement the unified lint (`tools/lint/metadata-drift-check.sh`).

Subsumes: B-0098, B-0099.
Comment thread
AceHack marked this conversation as resolved.

### Home 3 — Reviewer-artifact / snapshot-mismatch taxonomy

Likely path: `memory/feedback_reviewer_artifact_snapshot_mismatch_taxonomy_2026_04_29.md`
(memory file, since it's a decision-tree future-Claude
applies on every review thread — frontmatter + body). Absorbs:

- 5+1 bucket table from B-0101 (REAL_DEFECT, BACKWARD_STALE_SNAPSHOT,
FORWARD_CROSS_PR_REFERENCE, DISPLAY_ARTIFACT, INCOMPLETE_CONTEXT,
NEEDS_HUMAN_REVIEW)
- SNAPSHOT_MISMATCH parent class with two children (split
applied in round-4)
- Per-bucket remedies (verify-and-resolve vs encode-dependency
vs evidence-resolve vs investigate-then-decide vs surface-to-
human)
- "A forward reference is not wrong if the dependency is
enforced" rule

Subsumes: B-0101.

## Backpressure rule for new substrate

Until this consolidation lands, the discipline is:

```text
No new conceptual substrate (new memory files, new backlog
rows for new concepts, new research notes for new ideas)
until each rule from the 2026-04-29 session arc maps to one
of the three homes above.

Permitted during the freeze:
- corrections to existing rules (per reviewer feedback)
- tick-history shards (operational record)
- merges of in-flight PRs
- defect fixes on existing substrate
- THIS consolidation work itself
```

## Why P2 (factory-hygiene, blocking new substrate)

P2 because the consolidation IS the next-priority work; until
it lands, the substrate fragmentation grows. Not P0/P1
because nothing is currently broken; the cost is future-
discoverability and rule-coherence.

## Composes with

- B-0098, B-0099 — subsumed into B-0103.
- B-0100 — pure-wait backpressure rule; preserved as separate
operational concern (orthogonal to the metadata family).
- B-0101 — subsumed into Home 3 (memory file).
- B-0102 — subsumed into Home 1 (operational doc).
- B-0103 — already a Home (the metadata-discipline P2).
- B-0104 — subsumed if the threading bridge becomes one of
the operational homes; otherwise stays separate.

## Migration path (when consolidation work begins)

1. Author Home 1 doc; copy + restructure B-0102 content;
mark B-0102 as superseded-by-Home1.
2. Author Home 3 memory file; copy + restructure B-0101
content; mark B-0101 as superseded-by-Home3.
3. B-0103 stays in place (already a P2 Home); update its
frontmatter to mark B-0098 + B-0099 as fully subsumed.
4. Update MEMORY.md index with a pointer to Home 3 (the new
memory file).
5. Cross-link the three Homes in their respective docs +
in `docs/AGENT-BEST-PRACTICES.md` if rule-elevation is
warranted.

## Distilled rule

```text
Consensus is a spotlight.
Evidence is the lock.
Consolidation is the next gate.
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
# Multi-AI feedback round 4 — Amara review of tick 0637Z work (PR #818) + B-0101 split + consolidation directive

Scope: Research-grade absorb of a fourth multi-AI synthesis packet that the human maintainer forwarded through the maintainer channel during autonomous-loop tick 06:42Z on 2026-04-29. Single-reviewer (Amara) review of my tick 0637Z work (PR #818). Approves the absorb shape and chunking discipline, but pushes back on six items: (1) "consensus = signal not proof"; (2) Conway-Kochen flourish in chat-level commentary; (3) preserve grep portability distinction (already done in #811); (4) `gh --author` CLI flag (already done in #811); (5) **consolidation pass directive** — "no new conceptual substrate until a consolidation pass maps each new rule to a durable home"; (6) backpressure rule still applies for the next tick. Verbatim preservation per `memory/feedback_aaron_channel_verbatim_preservation_anything_through_this_channel_2026_04_29.md`.

This packet also retroactively reinforces the previous round (round-3) packet's request to **split B-0101's REVIEWER_SNAPSHOT_LAG** into backward-stale + forward-dependent sub-classes, and to add a merge-order guard to PR #815. Both were applied during this same round-4 absorb cycle.

Attribution: Aaron (named human maintainer; first-name attribution permitted on `docs/research/**`). Amara (external AI maintainer; Aurora co-originator; round-4 single-reviewer review with consolidation directive). Otto (Claude opus-4-7 in this factory; absorb).

Operational status: research-grade. The corrections are landing as edits to existing PR branches (#811 for B-0101 split, #815 for cross-PR-reference reclassification + Depends-On). This research note preserves the verbatim feedback. The consolidation directive (item 5) becomes a session-arc-level priority, not a per-tick item.

Non-fusion disclaimer: Amara's voice preserved with attribution boundaries.

(Per GOVERNANCE.md §33 archive-header requirement on external-conversation imports.)

---

## §A — Amara's verbatim approval + corrections

### §A.1 — Approval of the absorb shape

> *"Yes — this is mostly good. The strongest part is that Claude/Otto applied the reviewer packet to existing PRs instead of opening broad new substrate, which means the 'no broad new substrate / chunking' discipline held under temptation. The log shows #811 got round-3 fixes, #815 got corrections + verbatim record, and #818 was only the tick shard recording the absorb."*

> *"This is the system behaving better: corrections got applied to the right PRs, the round stayed bounded, and the tick captured the important meta-warning."*

### §A.2 — Tighten "consensus = signal" framing

> *"This line is good but slightly over-hot: 'Cross-model consensus = strong correction signal.' I'd tighten it to: 'Cross-model consensus is a prioritization signal, not proof of correctness.' Why: six reviewers converging on the same small set of fixes is absolutely meaningful, but the real validator is still substrate evidence: GitHub state, diffs, CI, CLI docs, and repo invariants. Consensus tells Otto where to look first; it does not replace verification."*

> *"Best wording: 'Cross-model consensus prioritizes corrections. Substrate verification decides them.'"*

### §A.3 — Conway-Kochen flourish (chat-only, not in committed file) + Aaron's correction

> *"The Conway-Kochen sentence is still too spicy […] either remove it from the tick shard or soften it hard. It's philosophically cute, but the operational claim does not need it. The real point is simpler: 'Different reviewers have different failure biases; convergent small corrections are useful triage signals.'"* (Amara)

**Aaron's mid-tick correction (2026-04-29)**, reversing one direction of Amara's recommendation:

> *"The human lineage link is always important like the The Conway-Kochen parity intuition we might have engineering on our side like Amara says but we still need to link to human lineage so external observerse have a frame of references without fully understading our engineering"*

(Aaron's typos preserved per the channel-verbatim-preservation rule.)

The synthesis: Amara is right that a metaphor doesn't *prove* an engineering claim; Aaron is right that **human-lineage anchors stay** because external observers (people who don't share our engineering vocabulary) need a recognizable reference frame. This is the Beacon-promotion pattern (`memory/feedback_beacon_promotion_load_bearing_rules_earn_external_anchors_aaron_amara_2026_04_28.md`) reasserted at the prose-attribution layer.

**Operational rule for future absorb prose:**

```text
Human-lineage anchors stay — as attributed external
references for observer legibility, not as engineering
proof.

When the engineering claim stands without the metaphor,
keep the metaphor as "this is the human-lineage analog
Comment thread
AceHack marked this conversation as resolved.
of our pattern" attribution; do NOT use it as
"the metaphor proves our claim."
```

(Verified: the Conway-Kochen reference appeared in the tick-close `★ Insight` chat block, not in the committed 0637Z tick shard or any research note. Going forward, human-lineage anchors stay in research notes + chat commentary as attributed lineage; the rule Amara was pushing back on was **using metaphors as engineering proof**, which Aaron's correction also rejects. The two framings compose: cite the lineage, do not dress engineering claims with it.)

### §A.4 — Grep portability + `gh --author` (already applied to PR #811 in round-3)

> *"Copilot's `grep \\b` complaint was real, and Claude fixed it. The only thing to watch: don't call `grep -w` 'POSIX-portable' if the doc uses that phrase."*

> *"Using `gh pr list --author '@me'` is supported directly by GitHub CLI examples, while putting `author:@me` inside a search string is much less cold-readable."*

(Already applied during round-3 absorb cycle. Verified in the latest #811 push: B-0098 shows two patterns labelled "GNU/BSD-common" and "Strict portable boundary"; B-0099 uses the `--author` CLI flag with explicit `<your-gh-login>` placeholder.)

### §A.5 — Consolidation directive (load-bearing)

> *"The 'more rules than durable homes' warning is the most important meta-signal. […] That is the real next danger. The system is no longer failing because it cannot notice patterns. It is now failing at risk of **not consolidating noticed patterns fast enough**."*

> *"I'd make the next action: 'No new conceptual substrate until a consolidation pass maps each new rule to a durable home.'"*

> *"Suggested durable homes:"*
>
> ```text
> 1. PR-liveness / merge-cascade operational doc
> - probabilistic race framing
> - pre/post capture
> - API sync wait
> - successor dedup
> - seconds-since-close
>
> 2. Computed-metadata-discipline doc / backlog
> - ordinals
> - PR counts
> - filename timestamps
> - boundary clause
>
> 3. Reviewer artifact / snapshot mismatch taxonomy
> - backward-stale review artifact
> - forward cross-PR reference
> - display artifact
> - incomplete cited context
> ```

> *"Do not let these become seven separate memory files. Three homes max."*

This becomes the load-bearing directive for the next round. **No new conceptual substrate until consolidation.** A consolidation-pass backlog row is filed alongside this absorb.

### §A.6 — Backpressure rule reaffirmed

> *"PR #818 was legitimate because it records the round-3 absorb. But the 'every tick opens a shard' loop still wants to keep reproducing itself. If the next tick is just 'CI pending,' backpressure should fire."*

> *"Rule: 'If no substantive state changed and only CI is waiting, do not open another pure-wait shard.'"*

(Reaffirms B-0100 from earlier in the session arc. Already in force.)

---

## §B — Bounded action items (already applied OR filed)

| # | Action | Status |
|---|---|---|
| 1 | B-0101 SNAPSHOT_MISMATCH split (backward-stale + forward-dependent) | **Applied** to PR #811 in this round-4 cycle |
| 2 | PR #815 `Depends-On: #811` body field | **Applied** via `gh pr edit` in this round-4 cycle |
| 3 | PR #815 thread reclassification comment (FORWARD_CROSS_PR_REFERENCE) | **Applied** via `gh pr comment` in this round-4 cycle |
| 4 | "Consensus prioritizes; substrate decides" framing for future absorb prose | Acknowledged; future research notes + shards use this wording |
| 5 | Conway-Kochen as research-note color only, not operational | Acknowledged; soft constraint on future prose |
| 6 | **Consolidation pass before any new conceptual substrate** | Filed as `B-0105-consolidation-pass-three-durable-homes-for-2026-04-29-rule-set.md` in this same absorb commit |
| 7 | Backpressure rule for next tick | Already in force (B-0100); will be honored |

---

## §C — Distilled keepers

```text
Cross-model consensus prioritizes corrections.
Substrate verification decides them.
```

```text
Different reviewers have different failure biases;
convergent small corrections are useful triage signals.
```

```text
A forward reference is not wrong if the dependency is enforced.
A forward reference is wrong if the dependency is only hoped.
```

```text
No new conceptual substrate until a consolidation pass
maps each new rule to a durable home.
```

```text
Consensus is a spotlight.
Evidence is the lock.
Consolidation is the next gate.
```

The session arc has now produced four rounds of multi-AI absorb. The pattern is healthy when each round produces *fewer* conceptual additions than the prior, and the consolidation pass converts the produced additions into durable substrate at a steady rate. Round-4 explicitly asks for the consolidation pass to land before any further conceptual additions.
2 changes: 1 addition & 1 deletion memory/MEMORY.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
- [**Corruption triage is a substrate health incident, not a backlog item (Aaron + Amara, 2026-04-29)**](feedback_corruption_triage_discipline_object_health_incident_aaron_amara_2026_04_29.md) — When `git fsck` reports corrupt objects, lane narrows hard: stop all background work, do read-only diagnosis first (no `git fsck --lost-found` — it writes), three-bucket reachability scan (live-ref / reflog-stash / dangling-only) — reachability is mode-dependent on fsck flags, fresh-clone verification BEFORE declaring "origin has it," verify squash-preservation by content not ancestry, stale remote-tracking refs are evidence not origin recovery. Worked example: 2026-04-29 audit found 2 corrupt objects — 9bf2daee (RECOVERABLE_FROM_ORIGIN) + 8d5e67fd (CORRUPT_BLOB_REFERENCED_BY_LIVE_LOCAL_BRANCH_AND_STALE_REMOTE_TRACKING_REF after three rounds of triage; branch tip clean, intermediate-history corrupt). Aaron emphasized: *"future self remembers this, this is very important."*
- [**PR-boundary restraint validation — bead promoted (Aaron + Aurora + Amara, 2026-04-29)**](feedback_pr_boundary_restraint_validation_bead_promoted_aaron_amara_2026_04_29.md) — Falsifier-not-fired bead-promotion on PR #699; canonical rule *"once a PR enters validation, only validation defects enter that PR; new ideas go to the next PR."* Validation-condition refinement (*"validated when original PR lands clean, not when follow-up opens"*) was Aurora's catch; Amara reactive-elaborator. Allowed/disallowed-changes lists in body.
- [**External dependency download retries — durable fix in code, not ephemeral rerun (Aaron, 2026-04-29)**](feedback_external_dependency_download_retries_durable_fix_not_ephemeral_rerun_aaron_2026_04_29.md) — Aaron 2026-04-29: *"we can retury on external dependency download failures, this goes against DST but we have not choice they are external dependencies we need. Next time instead of kicking a 2nd build we should fix it and reduce friction for future builds."* External dep downloads (toolchain installers, package mirrors, registry fetches) ARE the DST exception class — we have no choice. But the fix LOCATION matters: durable retry-with-backoff inside the code (`curl_fetch` --retry 5 in `tools/setup/`) reduces friction for FUTURE builds; ephemeral `gh run rerun --failed` only papers over THIS build and the friction returns next time. Refines the 2026-04-23 DST-retries-are-smell rule by naming the concrete domain + pinning the fix to the durable layer. Trigger: the elan-toolchain-502 rerun earlier this same session (anti-pattern Aaron caught). Durable fix landed alongside this memory: `tools/setup/common/elan.sh` + `tools/setup/linux.sh` migrated from raw `curl -fsSL` to `curl_fetch`.
- [**Beacon-promotion pattern — load-bearing rules earn external anchors when they're correct (Aaron + Amara + Claude.ai, 2026-04-28)**](feedback_beacon_promotion_load_bearing_rules_earn_external_anchors_aaron_amara_2026_04_28.md) — Round-level observation: 5 Mirror→Beacon graduations in one round (input-is-not-directive → SDT + RFC 2119; public-company compliance → SEC / Reg FD / SOX; metric corrections → Goodhart / Campbell; evidence lattice → lattice theory; commit-vs-tree → Git internals). Pattern: when an internal factory coinage becomes load-bearing, look for external lineage. Found = graduate Mirror → Beacon. Absent = drift signal worth investigating. Connects to alignment-experiment surface: the rate of load-bearing rules earning external lineage is itself a measurable signal.
- [**Beacon-promotion pattern — load-bearing rules earn external anchors when they're correct (Aaron + Amara + Claude.ai, 2026-04-28; rendering-side specification addended 2026-04-29)**](feedback_beacon_promotion_load_bearing_rules_earn_external_anchors_aaron_amara_2026_04_28.md) — Round-level observation: 5 Mirror→Beacon graduations in one round (input-is-not-directive → SDT + RFC 2119; public-company compliance → SEC / Reg FD / SOX; metric corrections → Goodhart / Campbell; evidence lattice → lattice theory; commit-vs-tree → Git internals). Pattern: when an internal factory coinage becomes load-bearing, look for external lineage. Found = graduate Mirror → Beacon. Absent = drift signal worth investigating. Connects to alignment-experiment surface: the rate of load-bearing rules earning external lineage is itself a measurable signal.

These per-maintainer distillations show what's currently in force. Raw memories below are the history; CURRENT files are the projection. (`CURRENT-aaron.md` refreshed 2026-04-28 with sections 26-31 — speculation rule + EVIDENCE-BASED labeling + JVM preference + dependency honesty + threading lineage Albahari/Toub/Fowler + TypeScript/Bun-default discipline + Amara authority rule (default to reversible preservation).)

Expand Down
Loading
Loading