Conversation
💡 Codex Reviewhttps://github.com/8090-inc/mib-doc-challenge/blob/0df63947c98eb2c1b0e7fd2ed426c225e0e5c7ed/submissions/bmdhodl/predictions.jsonl#L2501 The sequence jumps from ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
There was a problem hiding this comment.
Pull request overview
Adds a new submissions/bmdhodl/ submission package containing the author’s validation predictions plus accompanying submission metadata and a technical memo, aligning with the repository’s pattern of storing self-contained submission artifacts.
Changes:
- Added
predictions.jsonlvalidation predictions output. - Added
SUBMISSION.mdwith build/runtime contract details and generation receipt. - Added
MEMO.mdtechnical memo describing the approach, results, and validation run details.
Reviewed changes
Copilot reviewed 2 out of 3 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| submissions/bmdhodl/predictions.jsonl | Adds the validation prediction rows produced by the submission image. |
| submissions/bmdhodl/SUBMISSION.md | Documents the linked public solution repo, image/commit provenance, and how predictions were generated/validated. |
| submissions/bmdhodl/MEMO.md | Provides a detailed technical write-up of the pipeline, selection disclosures, and validation notes. |
Suppressed comments (2)
submissions/bmdhodl/SUBMISSION.md:76
- This claims the merged file was checked with
--require-complete, but the validator output later in the document showsmissing 1500 expected case ids, which would fail--require-complete. Please adjust this wording to match the shown validator result (or remove--require-completehere).
slices), `103001..104000`, and `104001..105000`. Rows are emitted by the
canonical writer, sorted by `case_id`, with duplicates rejected, and the merged
file was checked against `data/validation_manifest.csv` with
`scripts/validate_submission.py --require-complete`.
submissions/bmdhodl/MEMO.md:136
- This header labels the output as a “5,000-packet receipt”, but the bullet list immediately below reports only 3,500 rows and a validator message about 1,500 missing case IDs. Consider renaming this section to reflect that the output is partial/incomplete.
Final 5,000-packet receipt:
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Fixed within the submission window: Against the current head: 5,000 rows, 5,000 unique case IDs, |
Adds
submissions/bmdhodl/with validation predictions, technical memo, and a link to the public solution repository. No file outside that folder is touched.Solution
Public repository: https://github.com/bmdhodl/mib-doc-solution (MIT)
1846faa62473a2a5691db314ccefe6df82f15268sha256:0b1d33bb47b79b07d113ea890e546637fc094f1b1624e174ae189a7c850d4c06docker image inspect)50001,607,204, against the 25 MiB cap3fb2ff70e4f7937b2db1f78f424177311debdd10e7c199197472fb5a5371fe94Commits after
1846faaonmainchange documentation only. Every runtime fileinside the image was verified byte-identical to the published tree: 24 Python
files, the five calibration artifacts under
mib_pipeline/artifacts/, andrun.sh. Rebuilding that commit reproduces these predictions.Validator output
scripts/validate_submission.pyagainstdata/validation_manifest.csv, runwith
--require-complete:The three figures above and this validator run describe the file at the head of
this branch. An earlier push in this PR carried 3,500 rows; commit
6275bc4completed all 5,000, and this description had continued to describe the
superseded push.
Public training score
Scored with the organizer's
scripts/evaluate.pyagainstdata/train_labels.csv:1,000 of 1,000 cases answered, zero missing, extra, duplicate, or invalid rows.
This is public-training evidence, not a private-test score or ranking claim.
Approach
A render-first pipeline:
pypdfium2rasterizes pages, RapidOCR performs primaryOCR, and bounded Tesseract passes recover difficult regions. Cross-page linking
and precedence rules resolve fields before a conservative adjudication engine and
a calibrated output layer. Raster OCR and visible geometry are the primary
evidence path; decision-changing cues taken from selectable text require
independent raster corroboration.
The solution is derivative and MIT-licensed.
ATTRIBUTION.mdpins every upstreamcommit and names each author. The inherited part is the document-extraction
engine; the added part is the decision and scoring layer above it, which moved the
independently reproduced upstream baseline of 129.8470 to 137.2284.
Disclosures
labels and may overfit.
MEMO.mdandPACKAGING_AUDIT.jsonenumerate everysuch surface. A grouped nested transfer ablation did not show a reliable
positive mean lift, so the public gain is not an unbiased estimate of private
performance. Every one of these surfaces is demotion-only and never creates
APPROVED.exact_case_id_literals: 0,tracked_validation_prediction_files: 0,runtime_case_specific_lookup_artifacts: 0in
PACKAGING_AUDIT.json. No other participant's validation predictions werecopied.
solution.pypartitions input into bounded 1,000-case chunks run in freshinterpreters with no cross-chunk state. These predictions were produced by
running the submitted image once per disjoint 1,000-case subset of the sorted
validation set and concatenating; the subsets are exactly the chunk boundaries
a single 5,000-case invocation would choose. Rows are emitted by the canonical
writer, sorted by
case_id, with duplicates rejected.budget.