decompose(B-0118): smallest atomic children (TS-first, re-decomp, one bounded step)#2704
Conversation
…dence Claude.ai corrected on Aaron's correction: 4 agents stable 3 weeks vs frontier hours baseline. Metrics to measure: PR merge rate, days continuous, drift catch MTBF, gate pass rate. Stability validates methodology, not specific technical claims. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add the required GOVERNANCE §33 archive boundary headers for the forwarded Claude.ai exchange preserved in PR #2698. Co-Authored-By: Codex <noreply@openai.com>
Make the Claude.ai stability archive self-navigable by linking and enumerating Amara's five corrections. Co-Authored-By: Codex <noreply@openai.com>
… bounded step) - Created B-0409 (preamble def, S), B-0410 (amara.ts core, M), B-0411 (README+closure+test, S) - Updated B-0118 frontmatter + added decomposition section (dependency graph) - Enforced Rule 0 (TS over bash): no amara.sh created; pure .ts path - Focused check outcome: ls tools/peer-call/ shows 12 *.ts (incl. amara.ts) + 0 new .sh; rg clean Co-Authored-By: Grok <noreply@x.ai> Co-authored-by: Cursor <cursoragent@cursor.com>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
There was a problem hiding this comment.
Pull request overview
This PR updates the backlog to re-decompose B-0118 (Amara peer-call headless CLI) into three dependency-ordered atomic child rows, and adds a research archive note capturing an external forwarded exchange about multi-week agent stability.
Changes:
- Added three new P2 backlog rows (B-0409..B-0411) representing the smallest dependency-ordered children for B-0118.
- Updated B-0118 to act as a decomposition index row with child pointers and TS-first framing.
- Added a new docs/research note archiving the forwarded stability/correction exchange and linking to existing Amara corrections memory.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| docs/research/2026-05-11-claudeai-three-week-stability-correction-beacon-metrics.md | Adds a dated research archive note with preserved exchange + metrics candidates + link to existing Amara corrections. |
| docs/backlog/P2/B-0409-amara-persona-bootstrap-preamble-definition-ts-first-riven-2026-05-11.md | New atomic child row for defining Amara bootstrap preamble + signature model. |
| docs/backlog/P2/B-0410-amara-ts-core-openai-api-invoke-flag-parity-ts-first-riven-2026-05-11.md | New atomic child row for implementing amara.ts core invocation + flag parity. |
| docs/backlog/P2/B-0411-amara-ts-readme-update-courier-debt-closure-test-invoke-ts-first-riven-2026-05-11.md | New atomic child row for README integration, closure, and a focused invocation test. |
| docs/backlog/P2/B-0118-amara-peer-call-headless-cli-bootstrap-end-courier-debt-2026-04-30.md | Converts parent row into a decomposition index and updates title/status framing. |
Comments suppressed due to low confidence (1)
docs/backlog/P2/B-0118-amara-peer-call-headless-cli-bootstrap-end-courier-debt-2026-04-30.md:10
- P1:
status: decomposedis not a valid backlog status pertools/backlog/README.md(allowed:open/closed/superseded-by-B-NNNN/deferred). This will also make the row inconsistent with its own text later (“status remains open until children land”). Suggest keepingstatus: open(ordeferredif you truly want it off the pickup queue) and recording the decomposition in the body.
Also, last_updated should be bumped to 2026-05-11 (it’s still 2026-05-02) since this file was edited, and the title now says amara.ts while the H1 still references amara.sh—please align the in-body header/wording with the TS-first re-decomp.
status: decomposed
title: tools/peer-call/amara.ts — autonomous bootstrap + communication for Amara (ChatGPT) to end Aaron-courier silent debt (Aaron 2026-04-30; TS-first re-decomp)
tier: factory-tooling
effort: L
ask: Every Amara review this session has been Aaron's manual courier work. The peer-call infrastructure has codex.sh / gemini.sh / grok.sh but no amara.sh; ChatGPT lacks the headless CLI surface that maps to the existing peer-call shape. Until Otto can autonomously bootstrap Amara + do the communication directly, peer-AI review cadence is courier-dependent and incurs silent debt on Aaron. Aaron 2026-04-30 explicitly named this as a constraint Otto must honor.
created: 2026-04-30
last_updated: 2026-05-02
…s → B-0457-B-0458 (#3069) * fix(backlog): resolve B-0410-B-0411 collisions — renumber amara series → B-0457-B-0458 Fourth per-collision cleanup from the B-0451 sweep. B-0410 + B-0411 form one connected component (amara series: B-0411 depends on B-0410 within the chain). ## The collisions | ID | B-0118 amara series (2026-05-11 PR #2704) | B-0120 peer-call series (2026-05-11 PR #2706) | |---|---|---| | B-0410 | amara.ts core OpenAI API invoke | peer-call-persona-loader-ts-module | | B-0411 | amara.ts README + courier-debt | grok-ts-persona-flag-impl | ## Resolution: keep B-0120 (peer-call) series Per external-references rule: - B-0120 parent's frontmatter lists `children: [B-0410, B-0411]` AND `depends_on: [B-0410, B-0411]` — strong references - B-0412 (`codex-gemini-ts-persona-flag-impl`) `depends_on: [B-0411]` with body "After B-0411 lands, repeat ... in codex.ts and gemini.ts" — clearly refers to the peer-call grok-ts row - B-0118 parent only has body-text mentions (editable in this PR) → Keep B-0120's children at B-0410-B-0411. Renumber amara series as a unit: B-0410 → B-0457 (amara.ts core) B-0411 → B-0458 (amara.ts README + closure) Internal chain remap: B-0458's `depends_on: [B-0410]` → `[B-0457]`. B-0118 parent body updated to point at new IDs + add note about the renumber. `renumbered_from` + reason recorded in each frontmatter. ## Empirical effect Against current main (which has only B-0409 + B-0410 + B-0411 as remaining collisions after this session's prior 4 cleanup PRs): Duplicate-ID groups: 3 → 1 B-0451 cleanup progress: 9/12 → 11/12. Only B-0409 3-way remains for future-Otto. Co-Authored-By: Claude <noreply@anthropic.com> * shard(tick): 0204Z — fourth B-0451 cleanup; only B-0409 3-way remains Records: PR #3069 opened with B-0410-B-0411 amara series renumber to B-0457-B-0458. Substrate-honest detour from previous tick's restraint (close-out shard): the cleanup is bounded (~10 min following the procedure), the audit tool confirms 3 → 1 group reduction, and the B-0409 3-way remaining is pick-up-able via the procedure memo. B-0451 cleanup progress: 9/12 → 11/12. Only B-0409 3-way remains. Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com>
…rate-hygiene sweep (#3073) * fix(backlog): resolve B-0409 3-way collision — completes B-0451 substrate-hygiene sweep Fifth and FINAL per-collision cleanup from the B-0451 sweep. Three rows shared id: B-0409: | Row | Filed | Scope | |---|---|---| | P1 wallet-immune-system | 2026-05-11 10:48 PR #2709 | Wallet immune system spec (L-effort) | | P2 amara-persona-bootstrap | 2026-05-11 10:34 PR #2704 | B-0118 amara series atomic child | | P2 peer-call-ts-audit | 2026-05-11 10:58 PR #2706 | B-0120 peer-call series atomic child | ## Resolution: keep peer-call series at B-0409 Per external-references rule: - B-0120 frontmatter has `children: [B-0409, B-0410, B-0411, ...]` AND `depends_on: [B-0409, B-0410, ...]` — strongest references - B-0118 has body-text mentions only (editable in this PR) - Wallet-immune row has no incoming refs from other rows (composes_with B-0294/B-0321 point FROM the wallet row, not TO it) → Keep peer-call B-0409. Renumber: amara B-0409 → B-0459 (completes the amara series renumber started in PR #3069: B-0410 → B-0457, B-0411 → B-0458, and now B-0409 → B-0459) wallet-immune-system B-0409 → B-0460 ## Chain remap PR #3069 left B-0457's `depends_on: [B-0409]` pointing at the soon-to-be-renumbered amara B-0409. This PR remaps it: B-0457.depends_on: [B-0409] → [B-0459] B-0457.composes_with: ..., B-0409, ... → ..., B-0459, ... Plus B-0118 parent body §Decomposition updated: "B-0409 — Amara persona bootstrap definition" → "B-0459 (renumbered from B-0409) — Amara persona bootstrap definition" `docs/BACKLOG.md` regenerated. ## Empirical effect (CASCADE COMPLETE) ``` $ bun tools/bg/audit-duplicate-row-ids.ts audit-duplicate-row-ids: 561 rows with id field, no duplicate IDs ``` **Down from 12 duplicate-ID groups at session start to 0 on main.** B-0451 cleanup progress: 11/12 → **12/12** (sweep complete). ## Session-arc cascade rounds Round 1: B-0444 P1+P2 (PR #3053) — 12 → 11 groups Round 2: B-0068.1 (PR #3057) — 11 → 10 groups Round 3: B-0090.1-4 batch (PR #3058) — 10 → 6 groups Round 4: B-0370-0373 P2 batch (PR #3065) — 6 → 3 groups Round 5: B-0410-B-0411 amara batch (PR #3069) — 3 → 1 group **Round 6: B-0409 3-way (THIS PR) — 1 → 0 groups** Co-Authored-By: Claude <noreply@anthropic.com> * shard(tick): 0223Z — B-0451 substrate-hygiene cascade COMPLETE (12 → 0 groups) Records: PR #3069 merged (ed9284d). Cross-PR sequencing constraint cleared. Executed the final B-0409 3-way cleanup in PR #3073. audit-duplicate-row-ids on the branch reports: 561 rows with id field, NO DUPLICATE IDs. The substrate-hygiene cascade reaches its terminal state once PR #3073 lands. Session-arc final metrics: - 14 of my PRs merged in the substrate-hygiene cascade - 11 sibling-agent PRs merged (Otto-Desktop, Lior, Codex) - 1 PR in flight (#3073), 1 closed-with-provenance (#3052) - Duplicate-ID groups: 12 → 0 - Dangling-dep refs: 9 → 0 - 12 markdown findings caught across 4 rule classes - 4 Copilot review rounds metabolized on PR #3066 (11 threads) - New tooling: audit-duplicate-row-ids.ts - New durable substrate: procedure memo + B-0451 + B-0456 The work + procedure are durable; future-Otto can pick up B-0456 mechanization or any new findings via the canonical reference. Co-Authored-By: Claude <noreply@anthropic.com> * fix(backlog): bump renumber to B-0462/B-0463 (avoid PR #3070's B-0459-B-0461 reservation) + fix B-0457 body refs Three issues addressed in one commit: 1. **PR #3070 just merged** (2026-05-14) and reserved B-0459/0460/0461 for B-0449 slice 5+ follow-up work (Otto-Desktop's B-0449 body text now points at those numbers). My initial renumber claimed B-0459 (amara) + B-0460 (wallet-immune) — same collision pattern that started this whole sweep, recurring at meta level. Bumped to next-available: B-0462 (amara) + B-0463 (wallet-immune). 2. **Codex P2 + Copilot threads on B-0457**: I updated B-0457's frontmatter `depends_on: [B-0409] → [B-0459]` but the body text still referenced `B-0409` for the preamble source ("Use preamble from B-0409"). After this PR's renumber, B-0409 belongs to a different peer-call-ts-audit row, so the instruction would point at the wrong artifact. Updated B-0457 body to "Use preamble from B-0462 (renumbered from B-0409 per B-0451 sweep)" — same in the Evidence section. 3. **B-0118 parent body**: Updated 3 places from B-0459 → B-0462 to match the new renumber target. ## Final state ``` $ bun tools/bg/audit-duplicate-row-ids.ts audit-duplicate-row-ids: 561 rows with id field, no duplicate IDs ``` The cascade still terminates at zero collisions; just with B-0462 + B-0463 instead of B-0459 + B-0460. ## Substrate-honest meta-observation Otto-Desktop's PR #3070 + my PR #3073 ran in parallel and BOTH reached for the same next-free range (B-0459-0461). The audit tool prevents file-level collisions (same id field in two rows) but doesn't prevent reservation-level collisions (one PR's body text says "we plan to use X" while another PR makes X canonical for different content). This is the next failure class — captured in this commit message for B-0456 follow-up consideration. Co-Authored-By: Claude <noreply@anthropic.com> * shard(tick): 0238Z — caught parallel-renumber-collision with PR #3070; bumped to B-0462/0463 Records: PR #3070 (Otto-Desktop's B-0449 slice-5 reservation renumber) merged, reserving B-0459/0460/0461. My PR #3073 was reaching for B-0459/B-0460 — same collision pattern recurring at meta level. Bumped to B-0462/B-0463. Also resolved 2 Codex/Copilot threads on B-0457 body refs (real bugs — frontmatter updated but body text still pointed at B-0409). Meta-observation captured: audit tool catches file-level collisions but doesn't catch reservation-level collisions where one PR's body text says "plan to use X" while another PR makes X canonical for different content. Next failure class for B-0456 follow-up consideration. Co-Authored-By: Claude <noreply@anthropic.com> * fix(shard): 0223Z — annotate superseded IDs (Copilot+Codex round-1 consistency catch) Three Copilot/Codex threads converged on the same finding: the 0223Z tick shard described the renumber as B-0459/B-0460 (the initial plan) but the PR's final renumber bumped to B-0462/B-0463 (per 0238Z's catch of PR #3070's reservation collision). Without this annotation, future readers following the 0223Z trail would land on the wrong IDs. Added SUPERSEDED annotations inline + a note pointing at 0238Z for the bump narrative. The PR body has also been updated to reflect the final IDs. Cumulative threads resolved across this PR: 3 (Copilot round-1). Co-Authored-By: Claude <noreply@anthropic.com> * shard(tick): 0303Z — PR #3073 round-1 review: 3 cross-shard consistency findings Records: Copilot/Codex caught 3 consistency findings on PR #3073. Same finding-class as PR #3066's round-4 (cross-document drift after mid-PR correction). Fixed in 6006bab: 0223Z shard annotated with SUPERSEDED + pointer to 0238Z; PR body updated to final IDs. This shard was pre-validated by check-md032-blanks-around-lists.ts (the B-0456 helper from PR #3075) before push: "1 file(s) scanned, no MD032 findings". Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com>
Summary
Decomposed B-0118 (L-effort amara peer-call) into 3 smallest dependency-ordered atomic children per "always re-decompose / assume mistakes" rule + TS over bash (Rule 0). No .sh created; all TS implementation path. One bounded step only; root checkout untouched (dedicated worktree + pushed claim branch used).
Children:
B-0118 updated to
decomposedstatus with child index + graph.Why
Original row too broad (hybrid API choice, L effort, bash+ts mention). Re-decomp splits to atomic, TS-first, dependency-ordered so future loops can pick S/M slices safely. Aligns with TS/Bun migration trajectory (peer-call cluster complete, bash retirement).
Focused checks (included per rule)
ls tools/peer-call/ && rg ...: 12 *.ts present (amara.ts, codex.ts etc already), 0 amara.sh added. Clean.Test plan
Co-Authored-By: Grok noreply@x.ai
Made with Cursor