Assign structural function to each accepted page object.
2 tool files copied and hash-verified against the original.
Source evidence, candidate evidence, human decision, audit acceptance, release and production are six separate things. This step produces the highlighted one and nothing further.
Assigns one structural function to each accepted page object — header, footer, title, subtitle, body, caption, picture, table, advertisement, ornament or furniture — using visual hierarchy and containment, never the meaning of the words.
No internal sequence is documented for this step — only the contract above and below it. Nothing was invented to fill the gap.
Nothing continues on a failed gate. Uncertainty becomes an explicit HOLD, and no later step may read an unanswered item as an accepted one.
06 STYLE08 TITLENot trained by this project. A pinned general model is prompted under a strict response schema. It proposes; deterministic validation accepts or HOLDs. It cannot create text or coordinates.
Failure codes this step may emit:
Uncertainty becomes an explicit HOLD. Omission never converts uncertainty into acceptance, and no downstream step may treat an unanswered item as an accepted one.
TITLE, TYPE, ORDER, TAG, PROTECTION
structural role is emitted by the MAP-AI detail call: field `f` = H|F|R|X (header, footer, rule, other furniture); field `x` = table booleanROLE has no separate binary. It is realised as typed fields inside the MAP-AI detail response schema v65 and validated deterministically against that schema. Recorded ACTIVE because the contract is enforced and the output exists — but the performer is step 03, not an independent classifier, and the report says so.
| File | Original SHA-256 | Bytes | Copy |
|---|---|---|---|
schemas/detail-response.schema.json |
4b73e8c39581ca16… | 2,721 | verified |
config/ontology.json |
15b0da5dcb1df276… | 1,419 | verified |
2 file(s), all hash-verified against the original.
Full detail in tool/SOURCE_RECEIPT.json. Copy-only: the historical source is never modified.
No superseded versions recorded for this role.
Page images and indexed references are sent to an external provider. Credentials live outside this repository. Model output is candidate evidence, never truth.
Metered per call by the provider. Token budget and tier are set per run and recorded in the run receipts.
Copying a tool into this repository does not authorise running it, retraining it, calling a model, or processing a new issue. No paid call may be made without the owner's explicit authorisation and a hard cost cap.
registry/roles.json (schema marsoom.e2t.roles.v1)ROLEFeedback is recorded per source and never merged into an invented consensus. Where sources disagree, both positions stand and the owner decides.
| Source | Events |
|---|---|
| Naser / owner Final authority. Overrides every other source. |
none recorded |
| Codex / orchestrator Architecture and sequencing. |
none recorded |
| Builder / designer Implementation reality and constraints. |
none recorded |
| Independent reviewer Adversarial review of claims. |
none recorded |
| Auditor Evidence verification against artifacts. |
none recorded |
| Human REV reviewer Page-level truth from the review site. |
none recorded |
No feedback events recorded yet. The ledger exists and is append-only:
feedback/FEEDBACK_LEDGER.jsonl.
Editing feedback is not possible: a change is a new event whose
supersedes names the one it replaces, and the original stays exactly as written.
Generated from registry/roles.json by tools/build-reports.mjs.
Do not hand-edit — edit the registry and rebuild.
Original page pixels are the visual authority. CAP owns the exact captured text.