Background
Current production recognition can lag behind the actually released Bastion settlement HUD even when OCRKit main already contains newer layout/parser support. The recent run-code field is the concrete example: OCRKit now has versioned run-code ROIs and a dedicated parser, but current production screenshots still need to be verified against the released game and deployed OCR service.
Do not assume model age is the root cause. The failure may be caused by production image drift, layout/ROI mismatch, preprocessing, parsing, or recognition accuracy.
Goal
Verify the currently released Bastion settlement screenshot contract against both OCRKit main and the deployed OCRKit path, identify the actual failure layer, and make the smallest evidence-driven fix required for reliable recognition.
Required investigation
Using representative private current-release screenshots through trusted/local tooling, compare at minimum:
- OCRKit application/image revision where observable;
model_version;
layout_version;
fields.run_code.status and confidence;
- OCR warnings/quality output;
- trusted debug raw OCR text for the run-code ROIs;
- current 16:9 and 16:10 layouts when both are relevant.
Classify any failure explicitly as one or more of:
- production deployment/image drift;
- layout selection or ROI coordinates;
- preprocessing;
- parser/normalization;
- OCR recognition model accuracy.
Do not jump directly to retraining when a deterministic layout/parser fix is sufficient.
Implementation boundary
- OCRKit owns recognition, ROI/layout support, parsing, confidence, and warnings.
- Bastion owns the visible settlement HUD contract.
- The platform owns submission/business decisions and training-feedback provenance.
- If model retraining is actually required, route production-derived corrections through the existing platform annotation -> reviewed snapshot -> OCRKit importer path. Do not create an ad-hoc production training dataset in this issue.
Regression coverage
Add or update safe regression fixtures/cases representing the currently supported settlement layout without committing private player screenshots or production evidence.
Preserve fail-closed behavior for:
- malformed run codes;
- cropped/missing run-code evidence;
- ambiguous duplicate values;
- low-confidence recognition;
- unsupported layouts.
Existing critical fields such as map, difficulty, player identity, completion state, version, time, deaths/skips, and achievement evidence must not regress as a side effect of the fix.
Acceptance criteria
Non-goals
- Redesigning the model lifecycle.
- Building a new annotation pipeline.
- Automatically training or publishing a model.
- Changing platform approval/mastery/title rules.
- Adding a general-purpose OCR mode.
Background
Current production recognition can lag behind the actually released Bastion settlement HUD even when OCRKit
mainalready contains newer layout/parser support. The recent run-code field is the concrete example: OCRKit now has versioned run-code ROIs and a dedicated parser, but current production screenshots still need to be verified against the released game and deployed OCR service.Do not assume model age is the root cause. The failure may be caused by production image drift, layout/ROI mismatch, preprocessing, parsing, or recognition accuracy.
Goal
Verify the currently released Bastion settlement screenshot contract against both OCRKit
mainand the deployed OCRKit path, identify the actual failure layer, and make the smallest evidence-driven fix required for reliable recognition.Required investigation
Using representative private current-release screenshots through trusted/local tooling, compare at minimum:
model_version;layout_version;fields.run_code.statusand confidence;Classify any failure explicitly as one or more of:
Do not jump directly to retraining when a deterministic layout/parser fix is sufficient.
Implementation boundary
Regression coverage
Add or update safe regression fixtures/cases representing the currently supported settlement layout without committing private player screenshots or production evidence.
Preserve fail-closed behavior for:
Existing critical fields such as map, difficulty, player identity, completion state, version, time, deaths/skips, and achievement evidence must not regress as a side effect of the fix.
Acceptance criteria
mainand the deployed production path with traceable version/layout/model evidence.NNNN-NNNN-NNNNvalue when the visible evidence is readable.Non-goals