Skip to content

board: route the ARCHIVE? batch — 3/3 were false positives, all live - #1046

Merged
AdaWorldAPI merged 2 commits into
mainfrom
claude/routing-pass-archive-batch
Aug 26, 2026
Merged

board: route the ARCHIVE? batch — 3/3 were false positives, all live#1046
AdaWorldAPI merged 2 commits into
mainfrom
claude/routing-pass-archive-batch

Conversation

@AdaWorldAPI

Copy link
Copy Markdown
Owner

First routing pass over SUPERSESSION-INDEX.md, starting with the ARCHIVE? batch because it was the smallest and looked the most decided. Every member was wrong. Archiving on the route would have retired work in flight.

The classifier searched the whole status string for a shipped-word, so it had no notion of what shipped:

plan matched on what the word actually predicated
cognitive-substrate-convergence-v2 COMPLETE a phase — the status opens ACTIVE, next word is (pending merges)
odoo-savant-reasoners-v2 SHIPPED its predecessorPROPOSAL. v1 SHIPPED in PR #420
unified-soa-rubikon-integration-v1 SHIPPED a legendStatus legend: defining what ✅ means

Checked against STATUS_BOARD.md rather than the headers: one plan is 12-shipped with a stale 4-row tail citing #388/#390, one has all five D-ids Queued, one is Queued/OBE. All three name a RETIRE symbol → all three are RESCOPE. ARCHIVE? 0, RESCOPE 47 → 50, READ unchanged.

The fix is an anchor, not a longer word list. Any alternation matching COMPLETE fires on case 1; any matching SHIPPED fires on case 2. Only the status's leading token predicates the plan. STATUS additionally refuses Status legend:.

Both halves falsified rather than assumed — fires on SHIPPED in #420, DONE (2026-06-01), ✅ SHIPPED, Superseded by v3; silent on all three false positives. The rule is not dead: odoo-source-extraction-v1 carries a leading-shipped status tree-wide, so a category reading 0 inside the table is a measurement.

The correction is generated into the legend, not hand-written, so #1044's self-reproduction invariant still holds (verified idempotent).

Two limits recorded and left open: crate hit-counts include tombstone comments (CollapseGateEmission reads 5 files and is gone), and nothing reconciles a board row against its PR's real outcome.

🤖 Generated with Claude Code

https://claude.ai/code/session_01AGVLyRZNEKKBSfBDJfbY3V


Generated by Claude Code

First routing pass over SUPERSESSION-INDEX.md. Took the ARCHIVE? batch first
because it was smallest and looked most decided; every member was wrong, and
archiving on the route would have retired work in flight.

The classifier searched the whole status string for a shipped-word, so it had
no notion of WHAT shipped: it matched a phase inside an ACTIVE status, a
predecessor inside a PROPOSAL, and a `Status legend:` defining the tick mark.
Verified against STATUS_BOARD.md instead of the headers -- one plan is 12
shipped with a stale 4-row tail citing #388/#390, one has all five D-ids
Queued, one is Queued/OBE. All three name a RETIRE symbol, so all three are
RESCOPE. ARCHIVE? 0, RESCOPE 47->50, READ unchanged.

The fix is an anchor, not a longer word list: any alternation matching
COMPLETE fires on case 1, any matching SHIPPED fires on case 2. Only the
status's leading token predicates the plan. Both halves falsified -- fires on
real shipped statuses, silent on all three -- and the rule is not dead:
odoo-source-extraction-v1 carries a leading-shipped status tree-wide.

The correction is generated into the legend, not hand-written, so the
self-reproduction invariant from #1044 still holds (verified idempotent).

Two limits recorded and left open: crate hit-counts include tombstone comments
(CollapseGateEmission reads 5 files and is gone), and nothing reconciles a
board row against its PR's real outcome.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AGVLyRZNEKKBSfBDJfbY3V
@coderabbitai

coderabbitai Bot commented Aug 26, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 6c681a66-ce02-4583-8efe-69c10eb04c0a


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@cursor

cursor Bot commented Aug 26, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_9b95cd53-77bb-47ec-a303-ce00785f2b9f)

@AdaWorldAPI
AdaWorldAPI marked this pull request as ready for review August 26, 2026 08:01

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8334dcf4ef

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .claude/tools/supersession_index.py Outdated
# first ARCHIVE? batch were that error (2026-08-26 routing pass).
SHIPPED = re.compile(r'^\W*(SHIPPED|COMPLETE[D]?|SUPERSEDED|DONE|CLOSED|LANDED)\b', re.I)
# `(?!\s*legend)` so "Status legend:** OK SHIPPED (verified...)" is not read as a status.
STATUS = re.compile(r'[Ss]tatus(?!\s*legend):?\*{0,2}\s*([^\n|]{0,52})')

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Restrict status extraction to plan metadata

For unified-soa-rubikon-integration-v1, excluding the legend does not stop this unanchored search: its next match is the incidental prose current-status (no overclaim) at plan line 181, so the generated table now reports (no overclaim) as the plan's self-declared status. Routing also evaluates this arbitrary later match, allowing a section-level status beginning with a shipped token to recreate the false ARCHIVE? classification; constrain extraction to the plan's header/metadata rather than merely skipping Status legend.

Useful? React with 👍 / 👎.

Skipping `Status legend:` by name was whack-a-mole. STATUS still searched the
whole document and took the first hit anywhere, so unified-soa-rubikon's next
match was the section heading `## 6. Honest status (no overclaim)` at line 181
-- and the table reported `(no overclaim)` as its status. Codex also named the
escalation: a mid-document `## 9. Status: SHIPPED items` recreates the false
ARCHIVE? outright.

A status is metadata, not prose. Extraction now runs over plan_head() -- the
preamble extended through any leading status-titled section, since `## §0 —
Status` is metadata and line 181 is not. Measured against two alternatives: a
strict preamble cut loses self-reasoning-substrate-v1's real status; a 40-line
window's only marginal catch is itself prose.

Nine junk statuses go, not one. Two near-misses recovered by allowing a
parenthetical (`**Status (§0):** PROPOSED`). Twelve rows now read `—`; an
honest absence beats a fabricated status.

Routes unchanged (0/50/12), generation still idempotent, falsifier suite gained
codex's escalation case and stays two-sided.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AGVLyRZNEKKBSfBDJfbY3V

Copy link
Copy Markdown
Owner Author

@codex — verified and fixed in cf1a946. You were right, and the escalation you named was the more important half.

Confirmed the symptom exactly as described: the table was reporting (no overclaim) as unified-soa-rubikon-integration-v1's self-declared status, scraped from ## 6. Honest status (no overclaim) at plan line 181.

The root cause is that I fixed the instance rather than the class. Skipping Status legend: by name left STATUS searching the whole document and taking the first hit anywhere, so it just moved to the next accidental match — and, as you point out, a mid-document ## 9. Status: SHIPPED items would have recreated the false ARCHIVE? outright.

Fix: extraction now runs over plan_head() — the preamble, extended through any leading status-titled section. ## §0 — Status is metadata; line 181 is prose.

I measured two alternatives rather than guessing at the boundary:

head region statuses found note
strict preamble (first ## ) 142 too tight — loses self-reasoning-substrate-v1, whose real status is in a ## §0 — Status section
first 40 lines 144 its one marginal catch over the rule below is itself prose
preamble + leading §Status 143 principled, and beats the magic constant on the evidence

Nine junk statuses go, not one — the table had also been reporting ` (:90), `QueryReference{server_id,ref_versi, ") vs , , **code refs**, and where it , and . as statuses. Two rows were near-misses recovered by allowing a parenthetical (**Status (§0):** PROPOSED). Twelve rows now read ; an honest absence beats a fabricated status.

Routes are unchanged (ARCHIVE? 0 · RESCOPE 50 · READ 12), generation is still idempotent, and the falsifier suite gained your escalation case and stays two-sided — fires on SHIPPED in #420 / DONE (2026-06-01) / SUPERSEDED by v3, silent on all five negatives including ## 9. Status: SHIPPED items.


Generated by Claude Code

@chatgpt-codex-connector

Copy link
Copy Markdown

Review Result

No additional findings on cf1a946. The fix addresses the reported issue at the correct abstraction boundary:

No further code changes were necessary, so I did not create an additional commit or pull request. The existing unrelated modifications to crates/p64-bridge/Cargo.lock and crates/weather-poc/Cargo.lock were left untouched.

Testing

  • python3 .claude/tools/supersession_index.py > "$tmp"; cmp -s "$tmp" .claude/board/SUPERSESSION-INDEX.md — generation is idempotent.
  • python3 -m py_compile .claude/tools/supersession_index.py
  • python3 - <<'PY' … PY — targeted assertions covered leading shipped statuses, Status (§0), legends, (no overclaim), and the escalation case ## 9. Status: SHIPPED items.
  • git diff --check cf1a946^ cf1a946

View task →

@AdaWorldAPI
AdaWorldAPI merged commit 938612f into main Aug 26, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants