Skip to content

Noema document multimodal envelope + proofreading checklist (#2280) - #2281

Open
seonghobae wants to merge 35 commits into
mainfrom
seonghobae/noema-doc-multimodal-extract
Open

seonghobae wants to merge 35 commits into
mainfrom
seonghobae/noema-doc-multimodal-extract

Conversation

@seonghobae

@seonghobae seonghobae commented Sep 19, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Deliver bounded DOCX/HWPX text, tables, and embedded figures to Noema review context; the text-only path fails closed when figures are present.
  • DOCX resolves word/_rels/document.xml.rels + a:blip order. HWPX resolves Contents/content.hpf manifest/spine + section binaryItemIDRef order.
  • Both formats ignore orphan archive media, preserve reused-image source positions, emit stable relationship/media locators, and reject duplicate, unresolved, external, traversal, malformed, unreadable, empty, or unsupported evidence.
  • Synthetic fixtures only; no research originals or participant material.
  • Record the contextual-orchestrator owner boundary and Proposed delivery state in doctoring, CHANGELOG, and the canonical Gap baseline.

Exact evidence

  • Current head: 20f75242dec54dff558c5b7f9ed1a4c4d474ed71.
  • Protected base: main@e6334e229581a918e2f22de18733b76fa65d7e71; compare is 35 ahead / 0 behind, mergeable, with 16 effective paths.
  • DOCX source-order implementation: 4513708f47ee44b51d431272f91af753dda8a882.
  • HWPX RED 21eae9d5e9ce4ee43ee692776a1062c13c9f1a98 proves filename-order inference, orphan admission, reused-target positions, table/text-run positions, duplicate IDs/entries, external/traversal/unresolved relationships, malformed XML, missing sections, and unreadable/empty media boundaries.
  • HWPX GREEN 768860076068384552c9dfdb02bec1d8996962be, tree 3b8b28e6b815ec7b635458c456f0deb921a49ec8, replaces suffix scanning with manifest-bound section traversal and stable locators.
  • Focused warnings-as-errors: 79 passed / 2 skipped; owned reader: 381/381 statements and 134/134 branches (100%).
  • Pre-repair 59b23d96… document/Gap contract: 75 passed / 2 skipped / 4 subtests with warnings as errors; git diff --check passed. Later commits include the two CI/fixture repairs below, so that predecessor evidence is not transferred to current head; hosted acceptance remains required.
  • Predecessor implementation tree 72f14e70…, warnings-as-errors: 3,433 passed / 28 skipped / 40 subtests in 199.31s; source paths are unchanged by the current documentation-only owner-evidence commit. Current exact-head hosted execution remains required.
  • Owner-lineage preservation RED 290c292aac34ddeef097e009839aef83d65e4eef failed because the current owner row had dropped judge-failover RED/GREEN 7f69bacb… / 37435b5e…; GREEN 79a0a3e6d4a48ccb54622192ec42305097f44605 retains those milestones alongside source-truncation/role-preflight GREEN b7440092… and current owner 9dbfb49b….
  • Owner-currentness RED 68160b178598eb9e448a2cc141b5322380844788 rejects predecessor owner 9dbfb49b…; GREEN 59b23d961abc55f30a9163f294feec221e4aa6c2 binds current owner exact 5fa1c8b8…, tree 027ee33b…, while retaining every functional milestone.
  • Gap-baseline authority remains additive: all 59/59 protected level-two headings and the preservation contract remain present.
  • Trusted-uv RCA: run 35459690722, job 105941203532, passed 108 focused tests at 100% coverage, then failed complete-suite collection because 11 document-test modules could not import defusedxml. RED 4614971896… binds the missing lock contract; GREEN 5521b812… installs both immutable requirement locks in path/cache/install authority.
  • Runtime RCA: run 35459690876, job 105941203883, proved the production Strix gate correctly failed closed while synthetic repositories omitted strix_evidence_binding.py. GREEN 346e1160… materializes that production dependency in all 25 model-utils fixture roots, including all 24 direct gate roots, without weakening admission.
  • Exact remote structure at current head: workflow carries the Noema document lock in both path filters, cache, and install command; the contract requires all three; gate fixture copies are 24/24 covered; protected Gap headings remain 59/59.

Fresh exact-head workflows are nonterminal:

Ownership and remaining gates

  1. Canonical multimodal routing owner is ContextualWisdomLab/contextual-orchestrator#1203, current exact head ad45a74f0acdddcd023646661413e76a120b88e3; consumer-currentness RED 0770baac… and GREEN 20f75242… retain its mode-alias RED 10f96453… → GREEN c3e4e94c…. Source GREEN b7440092d1cda47008271ed658fe372f536dd58f restores complete source blob 1dd97e36fe1579c434413317a5366f9f27d6e766 and preserves role-aware worker preflight. Current owner e4846673… additionally normalizes durable case-variant input:* tags after restart while keeping explicit-modality precedence. It remains open/Draft/unreleased without terminal exact-head hosted acceptance or independent approval.
  2. fix(actions): deduplicate workflow-run scheduler scans #1203 must merge under ordinary protection, produce an immutable owner release, and be pinned by this consumer before the route contract is complete. Mutable sibling source is not consumer authority.
  3. HWPX extraction is repaired in current ancestry, but this PR remains Draft/Proposed until current-head hosted Checks and qualifying independent review complete.
  4. Merge additionally requires zero unresolved valid findings and an independent non-author approval. Devin/CodeRabbit transport success is not approval.

Refs #2280.

…).

DOCX/HWPX figures now flow through ReviewContext into call_llm as data-URL image_url parts with fail-closed omission guards, and the reviewer prompt reuses humanize-korean and source-check proofreading rules.

Co-authored-by: Cursor <cursoragent@cursor.com>
@coderabbitai

coderabbitai Bot commented Sep 19, 2026 •

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

Next included review available in 48 seconds.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: d17b8c18-fc89-4670-b3c1-e76e4e5c4fda

📥 Commits

Reviewing files that changed from the base of the PR and between e6334e2 and 20f7524.

📒 Files selected for processing (16)
  • .github/workflows/agent-review-runtime-quality-ci.yml
  • .github/workflows/trusted-uv-materializer-quality-ci.yml
  • CHANGELOG.md
  • docs/doctoring/noema-document-multimodal-proofreading.md
  • docs/product-technical-gap-baseline.md
  • scripts/ci/noema_review_document.py
  • scripts/ci/noema_review_gate.py
  • scripts/ci/test_strix_quick_gate.sh
  • tests/test_noema_document_review_context.py
  • tests/test_noema_removed_file_context.py
  • tests/test_noema_review_document_multimodal.py
  • tests/test_noema_review_gate.py
  • tests/test_product_technical_gap_baseline.py
  • tests/test_repository_branch_coverage_javascript_and_noema.py
  • tests/test_repository_branch_coverage_reporting_edges.py
  • tests/test_trusted_uv_materializer_quality_workflow_contract.py

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.

Matches the contextual-orchestrator multimodal contract confirmed for free-pool image_url data-URI envelopes.

Co-authored-by: Cursor <cursoragent@cursor.com>

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Fleet review — exact head 183a2d8773ae023cc1d8285329c6459507bec072.

이 generation은 figure omission을 fail-closed로 바꾸는 방향 자체는 맞지만, 현재 상태를 merge-ready multimodal contract로 볼 수는 없습니다. 두 owner 경계가 아직 뒤섞여 있습니다.

첫째, .github가 DocumentImage.to_multimodal_parts()와 _user_message_content()에서 OpenAI-style text/image_url wire schema를 직접 생성합니다. CWL의 LLM wire/capability owner는 contextual-orchestrator(CO)이고, 이 PR이 명시적으로 짝지은 CO #1203도 현재 exact head 1cd4d3058cf8667270eb54988e43d04e39dcf84a의 open/unreleased prerequisite입니다. 소비자가 mutable sibling head의 wire shape를 source-copy해서 먼저 Ready가 되면 released-contract/ACL 원칙과 역전됩니다. CO가 document/image content-part schema + client/adapter를 immutable release로 제공하고, .github는 orchestrator/free + gateway token을 쓰는 thin caller로 그 released surface만 소비해야 합니다. capability가 아직 없다면 이 lane은 fail closed/Draft로 남기고 CO owner를 먼저 완성해야 합니다.

둘째, 현재 DOCX extraction은 실제 문서 관계/배치를 읽지 않고 word/media/*를 filename 정렬로 전부 image로 간주합니다. 새 test도 word/media/figure1.png를 넣지만 word/_rels/document.xml.rels와 a:blip r:embed=...가 없는 orphan media fixture입니다. 따라서 지금 GREEN은 ‘ZIP 안에 이미지 파일이 있으면 model payload에 들어간다’를 증명할 뿐, ‘문서에 실제로 배치된 figure가 정확한 source position/provenance와 함께 전달된다’를 증명하지 않습니다. 편집 과정에서 남은 미사용 media가 모델로 전송될 수 있고, 두 이미지의 문서 순서/문단·표·캡션 관계도 figure-N locator로 유실됩니다. HWPX도 suffix 기반 archive-wide media scan이라 같은 provenance 문제가 있습니다.

RED를 실제 OOXML relationship semantics로 고정해 주세요. 최소한 (a) 두 이미지의 lexical media filename 순서와 document drawing 순서가 반대인 DOCX, (b) word/media/ 안 orphan image 1개, (c) paragraph/table/caption 주변 drawing, (d) missing/duplicate/external or traversal relationship target을 포함한 fixture에서 실제로 r:embed로 참조된 image만 document order로 전달되고 orphan은 제외되며, locator가 path + document position + relationship id/target에 재현 가능하게 연결되고 unsafe/broken relationship은 fail closed여야 합니다. HWPX도 실제 section/reference contract에 같은 수준의 source/image position provenance를 요구합니다.

GREEN은 1) CO released multimodal schema/client prerequisite, 2) relationship-bound image selection, 3) source-position/provenance fixture, 4) exact-head consumer E2E에서 orchestrator/free가 그 released envelope를 실제 수신하고 image-capability absence에서 fail closed하는 것까지입니다. synthetic fixture는 unit/contract test에는 적절하지만, release acceptance에서 ‘figure review가 실제 문서 의미를 보존한다’는 claim은 right-cleared realistic document로 별도 확인해야 합니다.

현재 판정: multimodal omission prevention은 방향성 PASS, canonical-owner/released-dependency 및 source-image provenance는 FAIL. source-neutral restamp나 mutable CO head pin으로 GREEN 처리하지 말고 ordinary-forward로 수리해 주세요.

Copy link
Copy Markdown
Contributor Author

Lifecycle correction — exact head 183a2d8773ae023cc1d8285329c6459507bec072 is now Draft / Proposed.

Verified prerequisite state:

  • canonical CO owner ContextualWisdomLab/contextual-orchestrator#1203 is still open/unreleased at exact head d37b6f153a2589a2dc2b5b4be3d3c0b6a080ca3b (the body’s 1cd4d305... is predecessor evidence only);
  • current-head fleet review is COMMENTED, not approval, and records two substantive blockers: consumer-owned OpenAI-style wire construction before a released CO contract, and archive-wide/filename-ordered media selection without DOCX/HWPX relationship plus source-position provenance;
  • six hosted workflows are queued, not GREEN.

Acceptance remains owner-first: CO RED → released multimodal schema/client contract → immutable version/pin → this consumer’s thin orchestrator/free integration; and document fixtures must prove relationship-bound referenced images in document order, exclude orphan media, preserve reproducible locator/provenance, and fail closed on broken/external/traversal relationships. No mutable sibling head, source copy, predecessor check, or Ready state is merge authority.

@seonghobae
seonghobae marked this pull request as draft September 19, 2026 13:32

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Fleet currentness follow-up on exact .github#2281@183a2d8773ae023cc1d8285329c6459507bec072; the earlier relationship/source-position finding remains open, and two moving prerequisites have changed since that review.

  1. Protected .github/main is now e6334e229581a918e2f22de18733b76fa65d7e71 after verified merge of #2279. This PR still reports base 64aa08d7fa487deacd41c761c36277ca68cab6c9, so eventual exact-head acceptance must occur only after an ordinary/non-force adoption/reconciliation of the intervening protected-main delta. Pre-reconciliation local/hosted evidence cannot be terminal merge evidence for the reconciled generation.
  2. CO #1203 has advanced beyond the body’s recorded 1cd4d305...; the live PR head is now 1a9e066f619f5a56e9d75028c1050c8ff25c4fd9 (two commits beyond its own currently documented f8783af...). Its new exact-head Security/Semgrep/CodeQL runs are queued, and it remains Draft/unreleased. The #2281 dependency line therefore must not treat the older head as current owner authority or pin a mutable predecessor.

RED: exact-head release/readiness evidence must fail currentness if consumer ancestry omits the live protected base or if the recorded owner prerequisite SHA is no longer the live/released authority. GREEN order remains: CO #1203 reaches normal protected merge + immutable release/versioned schema/client → this lane adopts that released contract and current protected .github/main by ordinary/non-force ancestry → retain/fix the still-open OOXML/HWPX relationship + source-position provenance contract → reacquire all exact-head checks and independent review.

Do not use a source-neutral restamp or rerun on unchanged stale ancestry. This follow-up changes only prerequisite/ancestry acceptance; it does not supersede the prior figure-provenance review.

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

TRACEABILITY/current-owner finding on exact .github#2281@f3ab09d95c7bf2f435d4d4610737a8debf8a51c2.

The DOCX relationship/source-order repair is now materially better, and the Gap baseline correctly keeps HWPX provenance + immutable CO release as Proposed. However the same exact generation records three different upstream CO generations as if they were current: the PR body still says #1203 last checked at 1cd4d305…, the doctoring/gap docs record 1a9e066f…, while live canonical owner #1203 is now 0b80ab4933feaa443590baed4acfcf45b02eacce. #1203 itself is still Draft/unreleased, so none of those mutable SHAs is consumable release authority.

RED: one exact consumer generation must not present an older mutable owner SHA as current while a newer canonical owner head exists; hosted contract/E2E evidence must be bound to the immutable owner release/pin eventually consumed, not transferred from 1cd…/1a9e….

GREEN: in the existing .github owner lane, currentize coordination/TRACEABILITY to #1203@0b80ab49… (or fresh-read whatever succeeds it at mutation time), explicitly mark historical SHAs as historical evidence, and keep the consumer pin unchanged until ordinary protected merge + immutable CO release. After release, bump the released version/SHA once and rerun exact consumer API-schema/E2E/model-behavior/security/SBOM/provenance checks. Do not vendor/copy the mutable CO wire implementation into .github.

The remaining HWPX relationship/source-position provenance blocker is correctly still open; do not downgrade it merely because DOCX is repaired.

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Re-review on exact 711b92d4aa385d082d4c74d63fbaa4aee605f508 after owner repair.

TRACEABILITY/current-owner: PASS. This generation now records the live canonical contextual-orchestrator owner as #1203@0b80ab4933feaa443590baed4acfcf45b02eacce, distinguishes mutable owner state from released authority, and keeps consumer pinning blocked until ordinary protected integration plus immutable CO release. Historical focused/full local evidence is correctly bound to this .github generation rather than treated as CO release authority.

DOCX figure provenance/source order: source-level PASS candidate. The current body and source/test lineage now bind DOCX figures through document.xml.rels, preserve a:blip source order, ignore orphan media, and fail closed on unresolved/out-of-bound targets. The focused 57 passed, 2 skipped and full 3376 passed, 28 skipped, 40 subtests are useful local exact-tree evidence, not substitutes for hosted/current independent review.

Remaining blocker: HWPX provenance FAIL. HWPX still discovers images by archive suffix rather than the authoritative section relationship/source-position mapping. RED should include archive filename order differing from section order, orphan media, reused relationship targets, broken/external/traversal targets, figures in table/text-run order, and duplicate binary reuse with distinct source positions. GREEN is relationship-bound extraction that emits the semantic unit plus section/paragraph/table/image position and provenance without filename-order inference.

Keep Draft/Proposed. Merge remains blocked on: #1203 exact-head acceptance → ordinary protected merge → immutable owner release/client/schema → one consumer pin update → fresh .github API-schema/E2E/model-behavior/security/SBOM/provenance evidence, plus the HWPX source-position repair and qualifying independent current-head approval. No mutable sibling-head consumption.

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Exact-head review for 7a02d5e794b8c6484ff74bd05b5858921caca4c8 (tree 5881f563425c15df842d88beced529e72b4cd938).

The concurrent source-order repair and main-integration commits were preserved before this review. A test-first follow-up found four remaining relationship-boundary defects in the live implementation: duplicate IDs were last-write-wins, a traversal could normalize out of and back into word/media, lowercase external target mode was admitted, and the locator omitted relationship/media provenance. The four-case RED was 4 failed / 34 deselected.

The minimal repair rejects those ambiguous relationships before archive reads and binds each locator to body position + relationship ID + resolved media path. Verification on the exact integrated tree:

  • document focused: 53 passed / 2 skipped;
  • owned document reader: 294/294 statements and 106/106 branches (100%);
  • full repository warnings-as-errors: 3,417 passed / 28 skipped / 40 subtests;
  • compileall and diff check: PASS;
  • protected main compare: 8 ahead / 0 behind, mergeable;
  • unresolved review threads: 0 at review time.

No new source finding remains from this review. This COMMENT is exact-head evidence, not self-approval. The PR remains Draft/Proposed because contextual-orchestrator#1203 is unreleased/unpinned, HWPX authoritative source-order provenance remains open, hosted exact-head Checks are non-terminal, and an independent approval is absent.

Copy link
Copy Markdown
Contributor Author

Exact-head evidence receipt — 7a02d5e794b8c6484ff74bd05b5858921caca4c8

  • tree: 5881f563425c15df842d88beced529e72b4cd938 (remote Git tree equals independently verified tree)
  • preserved concurrent ancestry: source-order repair 4513708f47ee44b51d431272f91af753dda8a882, owner evidence refresh 3865949d4432c1d071ec6dc82f55ae63dee3858f, protected main@e6334e229581a918e2f22de18733b76fa65d7e71
  • additional causal RED: 4 failed / 34 deselected
  • focused GREEN: 53 passed / 2 skipped
  • owned production coverage: 294/294 statements, 106/106 branches — 100%
  • exact integrated full suite: 3,417 passed / 28 skipped / 40 subtests
  • compileall + diff check: PASS
  • compare to protected main: 8 ahead / 0 behind, 12 effective paths, mergeable
  • exact-head review: Noema document multimodal envelope + proofreading checklist (#2280) #2281 (review)

This receipt is not merge authority. Draft/Proposed remains correct until the canonical contextual-orchestrator contract is ordinarily merged, immutably released and pinned; HWPX source-order provenance is resolved; exact-head hosted Checks are terminal GREEN; and an independent non-author approval exists.

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Exact-head review at 19dcbc820e7b5c8869a75872e027ec050907e6dc.

RCA: predecessor dc47aa82faf4a838b96b63a84a459efea7e91c84 replaced the central Gap baseline by +11/-1,897, removing 28 of 59 protected level-two sections. This contradicted the repository's own PRD/TRD/governance authority while the leaf runtime diff remained otherwise independent.

RED 9ba78fe89f2d2dd19477650c5a26d42df5e4bd24 extends the existing baseline contract with six representative protected authorities. GREEN 19dcbc820e7b5c8869a75872e027ec050907e6dc restores protected main, adds the three Proposed Noema/owner/preservation rows, and updates the mutable owner trace to contextual-orchestrator#1203@9d0fa9a5….

Direct exact-blob verification: baseline compare is now +8/-0; 59/59 protected headings remain; all six new regression markers, the preservation Gap row, and current owner head are present. No leaf runtime file changed in this repair.

This is not an approval. The PR remains Draft because HWPX relationship/source-position provenance, owner merge/release/pin, six fresh hosted checks, and independent approval are still open.

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

P0 baseline-authority RED is live on the current exact head 9ba78fe89f2d2dd19477650c5a26d42df5e4bd24; the PR body is ahead of the branch state.

Fresh compare against protected main@e6334e229581a918e2f22de18733b76fa65d7e71 shows docs/product-technical-gap-baseline.md is still +11 / -1,897 on the actual head. The current head commit is only test(gap): preserve protected baseline authority with parent dc47aa82...; it adds the preservation RED but does not restore the deleted canonical sections. Therefore the new test is correctly a RED generation, not a completed repair. The PR body currently records dc47aa82... as “current head” and describes a later selected/docs-only repair that is not in the live branch ancestry.

The exact-head Actions evidence is also non-terminal: the current 9ba78fe... Agent Review Runtime Quality CI, Python Security, Semgrep, Security Scan, CodeQL and trusted-uv runs were cancelled. CodeRabbit/Devin status success does not replace the missing repository gates.

RED: keep test_baseline_preserves_protected_main_authority_sections failing against this generation and preserve the compare evidence that 1,897 baseline lines / protected authorities are missing.

GREEN: ordinary-forward from 9ba78fe...; restore the complete protected-main docs/product-technical-gap-baseline.md authority first, then add only the Noema/CO Proposed rows on top. The exact base→new-head compare for this file must show no unexplained protected-authority deletion, the preservation test must pass at the new exact head, and the PR body/doctoring must be updated to that actual head/tree rather than a future or stale generation. Reacquire fresh exact-head quality/security/CodeQL plus independent non-author review after the causal repair. Do not use an empty/no-op wake commit and do not transfer cancelled/predecessor checks.

Separate blockers remain unchanged after that repair: HWPX relationship/source-position provenance is still unresolved, and contextual-orchestrator#1203 is open/unreleased, so mutable owner source is not consumer authority.

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Exact-head traceability review at 523b201f913c3e9f8c07bd06de8641ba45635e74.

The previous source ledger still bound CONTROL-NOEMA-MULTIMODAL-OWNER-02 to predecessor contextual-orchestrator#1203@5767e73c… after the owner advanced. Ordinary-forward commit 523b201f… updates that single Gap row to owner exact 4e596eb4…, tree 459bddcb…, and distinguishes the parent 117-test evidence from the current test-only Chat/Responses × "false"/0 matrix.

Compare 183b2a5f…→523b201f… is ahead 1 / behind 0 and changes one baseline line only. Direct exact-tree comparison against protected main@e6334e22… preserves all 59/59 level-two headings with none missing. Fresh six hosted runs are queued/nonterminal; this is not approval. Draft / Proposed remains correct because HWPX relationship/source-order provenance, terminal gates, independent approval, owner merge/release, and consumer pin are still absent.

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Exact-head traceability review at dd4b7094988073d9c51079ade391cb8925ac6b30 (tree 4be2ab6301218d03d0f7cd9f08f0d59087eb9ffe).

Concurrent HWPX work was preserved rather than overwritten: RED 21eae9d5e9ce4ee43ee692776a1062c13c9f1a98 adds manifest/spine/section-order, orphan, reused-target, table-position and hostile package-boundary cases; GREEN 768860076068384552c9dfdb02bec1d8996962be replaces archive-suffix ordering with manifest-bound section traversal and stable source locators. The docs-only successor updates the canonical owner ledger to contextual-orchestrator#1203 exact 37435b5e82e9fe53abc67b032c67df83425c0250, including RED 7f69bacb… → GREEN 37435b5e… for free/image-qualified judge failover isolation.

Direct current-tree checks: compare to protected main@e6334e22… is 19 ahead / 0 behind; all 59/59 protected level-two Gap headings remain; unresolved threads are 0. Six exact-head workflows are queued/nonterminal, independent approval is absent, and contextual-orchestrator#1203 remains open/unreleased. This COMMENT is current evidence, not approval; Draft/Proposed remains correct.

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Exact-head currentness repair at 765e92b67010587e9ced947b104ced47215eade8 (tree 7cd20542c26c0116d922d8b2cacfe4f567d3c469). The prior body named parent ec19054d… as current; 765e92b6… is its ordinary-forward docs-only child and updates only the canonical contextual-orchestrator owner row. The body now binds owner #1203 exact 9dbfb49b…, tree 5363cdc4…, while keeping source GREEN b7440092… and predecessor test evidence explicitly scoped. Compare to protected main@e6334e22… is 24 ahead / 0 behind across 13 paths; unresolved threads remain 0. Six exact-head workflows are queued and independent approval is absent, so Draft/Proposed remains correct.

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Exact-head cross-file authority repair at 79a0a3e6d4a48ccb54622192ec42305097f44605 (tree 28a56cc1080a693bbf2c6c1003f8511fdaf0e395). RCA: the latest current-owner rewrite retained #1203 role-preflight/source-truncation evidence but silently dropped the independently verified judge-failover RED 7f69bacb… → GREEN 37435b5e…. RED 290c292a… adds an executable owner-row invariant and fails on exactly those two missing milestones. GREEN 79a0a3e6… carries all four required owner revisions: 7f69bacb…, 37435b5e…, b7440092…, and current 9dbfb49b….

Direct exact-blob evaluation has no missing milestone; compare to protected main@e6334e22… is 26 ahead / 0 behind across 13 paths; protected level-two headings remain 59/59; unresolved threads are 0. Six exact-head workflows are queued/nonterminal and independent approval is absent. This COMMENT is evidence, not approval; Draft/Proposed remains correct.

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Exact-head traceability review for 79a0a3e6d4a48ccb54622192ec42305097f44605.

The current generation is an ordinary two-commit successor of 765e92b6… (ahead 2 / behind 0) and changes only the CONTROL-NOEMA-MULTIMODAL-OWNER-02 gap-baseline row plus its focused preservation test. The test binds that exact row to the complete verified owner lineage:

  • judge-failover RED 7f69bacb0d35f00e6902df8e440efeafbe08dbe3
  • judge-failover GREEN 37435b5e82e9fe53abc67b032c67df83425c0250
  • source/role/truncation GREEN b7440092d1cda47008271ed658fe372f536dd58f
  • live canonical owner head ContextualWisdomLab/contextual-orchestrator#1203@9dbfb49b3eccd6b9dfc8c418e5826cb69234b8de

The upstream owner is still open/unreleased, so this review does not transfer or claim its hosted evidence. Against protected main@e6334e22…, this PR is ahead 26 / behind 0 with 13 effective paths, and there are no unresolved review threads.

No new source-level finding surfaced in this narrow lineage-preservation delta. Keep the PR Draft until the canonical owner is merged/released and pinned here, the current exact-head six-lane checks are terminal passing, and an independent approval is present. The currently queued runs are not passing evidence.

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Exact-head owner-currentness GREEN at 59b23d961abc55f30a9163f294feec221e4aa6c2 (tree 3c6be342d41f6b61d87c6e01c9e3761d55984a9a). RED 68160b17… updates the executable leaf invariant from predecessor owner 9dbfb49b… to current contextual-orchestrator#1203 exact 5fa1c8b8…; the then-current baseline fails that currentness check. GREEN 59b23d96… advances only the owner evidence row to tree 027ee33b… and retains judge-failover 7f69bacb…→37435b5e… plus role-preflight/source restoration b7440092….

Direct exact-blob evaluation has no missing required owner milestone; compare to protected main@e6334e22… is 28 ahead / 0 behind across 13 paths; all 59/59 protected headings remain; unresolved threads are 0. Six exact-head workflows are queued/nonterminal and independent approval is absent. This is not approval; Draft/Proposed remains correct.

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Exact-head review at 4f10b3bc748a780cc23f2f9fa36e98adce6f1e0e.

Two terminal hosted failures were causal repository defects, not transient runner noise.

  1. Trusted uv run 35459690722, job 105941203532, passed 108 focused tests with 100% coverage and then failed complete-suite collection in 11 Noema document modules because defusedxml was absent. RED 4614971896dac7f52871eec4501f32338cca0375 requires the document hash lock in trigger paths, setup-python cache authority, and the immutable install command. GREEN 5521b8128c90d374eb05533aa00da31cc619eaa7 installs both hash-locked requirement sets before the full suite.

  2. Runtime Quality run 35459690876, job 105941203883, showed the production Strix gate correctly failing closed because synthetic repositories copied strix_quick_gate.sh and strix_model_utils.sh but omitted required strix_evidence_binding.py. GREEN 346e1160174926c59995e748f4d9ecb0652c1f41 materializes that production dependency in all 25 model-utils fixture roots; all 24 direct gate roots are covered without weakening production admission.

Direct exact-blob verification: the workflow has the Noema lock in both path filters, cache, and install command; its executable contract requires all three; gate/binder fixture coverage is 24/24; the canonical Gap baseline remains 59/59 protected level-two headings and records both repair lineages. Compare to protected main@e6334e22… is 33 ahead / 0 behind across 16 effective paths. Unresolved review threads are 0.

Fresh exact-head Runtime Quality, Trusted uv, Python Security, Security Scan, SAST, and CodeQL are queued/pending. Independent approvals are 0. This COMMENT is evidence, not approval; Draft/Proposed remains correct and no merge authority exists yet.

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Exact-head consumer-currentness review at 20f75242dec54dff558c5b7f9ed1a4c4d474ed71 (COMMENT, not approval).

The prior owner row named both 5fa1c8b8… and e4846673… as current while live contextual-orchestrator #1203 had advanced to ad45a74f…; it also omitted the new explicit-mode authority lineage.

RED 0770baaca8d9b0c516d0b0b5e83fcc2d57006f04 extends the existing owner-row contract with CO mode-alias RED 10f96453a6050ab47575e4975aa068cb4f899e23, GREEN c3e4e94cf6566f6a0187c502d279dccc6989d4a1, and current owner exact ad45a74f0acdddcd023646661413e76a120b88e3. GREEN 20f75242dec54dff558c5b7f9ed1a4c4d474ed71 makes 5fa1c8b8… and e4846673… explicitly historical, while preserving judge failover, role-aware preflight/source restoration, durable modality normalization, and current mode authority.

Direct exact-blob verification: all required owner milestones are present in the one canonical row; protected Gap headings remain 59/59; compare to protected main@e6334e22… is 35 ahead / 0 behind across 16 paths; unresolved threads are 0 and approvals are 0.

Six fresh exact-head runs are queued/pending. This is traceability evidence only. #2281 remains Draft/Proposed until the owner reaches ordinary protected merge + immutable release, the consumer pins that release, current hosted gates pass, and qualifying independent approval exists.

@opencode-agent opencode-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

OpenCode reviewed the current-head product diff. Coverage is a separate gate.

Changed files

  • .github/workflows/agent-review-runtime-quality-ci.yml — GitHub Actions review job
  • .github/workflows/trusted-uv-materializer-quality-ci.yml — GitHub Actions review job
  • CHANGELOG.md — repository behavior
  • docs/doctoring/noema-document-multimodal-proofreading.md — operator or user guidance
  • docs/product-technical-gap-baseline.md — operator or user guidance
  • scripts/ci/noema_review_document.py — review and security gate shell path
  • scripts/ci/noema_review_gate.py — review and security gate shell path
  • scripts/ci/test_strix_quick_gate.sh — review and security gate shell path
  • tests/test_noema_document_review_context.py — regression suite
  • tests/test_noema_removed_file_context.py — regression suite
  • tests/test_noema_review_document_multimodal.py — regression suite
  • tests/test_noema_review_gate.py — regression suite
  • tests/test_product_technical_gap_baseline.py — regression suite
  • tests/test_repository_branch_coverage_javascript_and_noema.py — regression suite
  • tests/test_repository_branch_coverage_reporting_edges.py — regression suite
  • tests/test_trusted_uv_materializer_quality_workflow_contract.py — regression suite

Changed behavior

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Workflow: agent-review-runtime-quality-ci.yml"]
  S1 --> I1["GitHub Actions review job"]
  I1 --> R1["Review risk: Workflow: agent-review-runtime-quality-ci.yml"]
  R1 --> V1["actionlint plus required checks"]
  Evidence --> S2["Workflow: trusted-uv-materializer-quality-ci.yml"]
  S2 --> I2["GitHub Actions review job"]
  I2 --> R2["Review risk: Workflow: trusted-uv-materializer-quality-ci.yml"]
  R2 --> V2["actionlint plus required checks"]
  Evidence --> S3["Repository file: CHANGELOG.md"]
  S3 --> I3["repository behavior"]
  I3 --> R3["Review risk: Repository file: CHANGELOG.md"]
  R3 --> V3["required checks"]
  Evidence --> S4["Docs: noema-document-multimodal-proofreading.md (2 files)"]
  S4 --> I4["operator or user guidance"]
  I4 --> R4["Review risk: Docs: noema-document-multimodal-proofreading.md (2 files)"]
  R4 --> V4["docs review"]
  Evidence --> S5["CI script: noema_review_document.py"]
  S5 --> I5["review and security gate shell path"]
  I5 --> R5["Review risk: CI script: noema_review_document.py"]
  R5 --> V5["bash -n plus Strix self-test"]
  Evidence --> S6["CI script: noema_review_gate.py"]
  S6 --> I6["review and security gate shell path"]
  I6 --> R6["Review risk: CI script: noema_review_gate.py"]
  R6 --> V6["bash -n plus Strix self-test"]
  Evidence --> S7["CI script: test_strix_quick_gate.sh"]
  S7 --> I7["review and security gate shell path"]
  I7 --> R7["Review risk: CI script: test_strix_quick_gate.sh"]
  R7 --> V7["bash -n plus Strix self-test"]
  Evidence --> S8["Test: test_noema_document_review_context.py (8 files)"]
  S8 --> I8["regression suite"]
  I8 --> R8["Review risk: Test: test_noema_document_review_context.py (8 files)"]
  R8 --> V8["targeted test run"]
Loading

Findings

No source-backed product finding is synthesized from the coverage gate. A coverage miss belongs in the status comment.

  • Head SHA: 20f75242dec54dff558c5b7f9ed1a4c4d474ed71
  • Workflow run: 35735869267
  • Workflow attempt: 1
  • Coverage gate: failure

Review outcome

Coverage is a gate, not the review. This body reviews the changed product files.

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Workflow: agent-review-runtime-quality-ci.yml"]
  S1 --> I1["GitHub Actions review job"]
  I1 --> R1["Review risk: Workflow: agent-review-runtime-quality-ci.yml"]
  R1 --> V1["actionlint plus required checks"]
  Evidence --> S2["Workflow: trusted-uv-materializer-quality-ci.yml"]
  S2 --> I2["GitHub Actions review job"]
  I2 --> R2["Review risk: Workflow: trusted-uv-materializer-quality-ci.yml"]
  R2 --> V2["actionlint plus required checks"]
  Evidence --> S3["Repository file: CHANGELOG.md"]
  S3 --> I3["repository behavior"]
  I3 --> R3["Review risk: Repository file: CHANGELOG.md"]
  R3 --> V3["required checks"]
  Evidence --> S4["Docs: noema-document-multimodal-proofreading.md (2 files)"]
  S4 --> I4["operator or user guidance"]
  I4 --> R4["Review risk: Docs: noema-document-multimodal-proofreading.md (2 files)"]
  R4 --> V4["docs review"]
  Evidence --> S5["CI script: noema_review_document.py"]
  S5 --> I5["review and security gate shell path"]
  I5 --> R5["Review risk: CI script: noema_review_document.py"]
  R5 --> V5["bash -n plus Strix self-test"]
  Evidence --> S6["CI script: noema_review_gate.py"]
  S6 --> I6["review and security gate shell path"]
  I6 --> R6["Review risk: CI script: noema_review_gate.py"]
  R6 --> V6["bash -n plus Strix self-test"]
  Evidence --> S7["CI script: test_strix_quick_gate.sh"]
  S7 --> I7["review and security gate shell path"]
  I7 --> R7["Review risk: CI script: test_strix_quick_gate.sh"]
  R7 --> V7["bash -n plus Strix self-test"]
  Evidence --> S8["Test: test_noema_document_review_context.py (8 files)"]
  S8 --> I8["regression suite"]
  I8 --> R8["Review risk: Test: test_noema_document_review_context.py (8 files)"]
  R8 --> V8["targeted test run"]
Loading

@opencode-agent

opencode-agent Bot commented Sep 22, 2026 •

Copy link
Copy Markdown
Contributor

OpenCode Review Overview

Coverage evidence did not pass, so approval is blocked. The formal pull-request review is the source-backed diff review, not this status comment.

This branch has not been deployed

No deployments
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.

1 participant