← E2T System V1 portal

22 — ASSEMBLE / GROUP

Join independently produced evidence into canonical page and issue packages using immutable IDs.

ACTIVE Built and verified

3 tool files copied and hash-verified against the original.

Deterministic Products 0 archived step 22 of 26

Where this output sits

Source evidenceCandidate evidenceHuman decisionAudit acceptanceReleaseProduction

Source evidence, candidate evidence, human decision, audit acceptance, release and production are six separate things. This step produces the highlighted one and nothing further.

Scope

Joins the page model, substrate, exact captured text, graphs, tags and instrument states into one canonical package, matching strictly on stable content-bound identifiers and rejecting any artifact from a different run or version.

This role is allowed to

How it works

Inputs
Page model and swept substrateCAP, ORDER, ISSUE-LINK, TAG and critical statesPIC/TABLE assets and provenance
Deterministic Deterministic ID-based assembler.

No internal sequence is documented for this step — only the contract above and below it. Nothing was invented to fill the gap.

Must pass
  • All parent hashes and IDs resolve
  • Exact token ownership rechecked at assembly
  • Mixed authority fails
passes →
Outputs
Canonical PagePackageCanonical IssuePackageRender-unit and article-unit bindings
hands off to QA · PDF · DGTL · ARCH
fails →
HOLD
ASSEMBLE_MIXED_RUNASSEMBLE_PARENT_MISMATCHASSEMBLE_DANGLING_REFERENCEASSEMBLE_OWNERSHIP_FAILURE

Nothing continues on a failed gate. Uncertainty becomes an explicit HOLD, and no later step may read an unanswered item as an accepted one.

Non-scope — what this role does NOT own

Explicitly forbidden

Dependencies and position

Starts
After required page/content/reconstruction and instrument states are available.
Previous step
21 SWEEP
Next step
23 QA
Hands off to
QA, PDF, DGTL, ARCH

Exact inputs

Exact outputs

Performer and AI/ML boundary

Performer
Deterministic ID-based assembler.
Class
Deterministic
AI boundary
None.

Training information

Not a trained component. No model, no weights, no training corpus. Behaviour is fixed by code and configuration, and identical inputs must produce identical outputs.

Deterministic validation and acceptance gates

HOLD and failure behaviour

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.

Downstream handoff

QA, PDF, DGTL, ARCH

Active tool

Status
Active tool
Run / inspect
python BUILDER_STAGE_B.py
Input
artifacts bound to one sealed run
Output
review_data.json — canonical page and issue package

Dependencies

Why this is the active version

The builder joins by stable content-bound IDs and records INPUT_HASHES and SOURCE_HASHES, which is the V8 gate — mixed run, version or parent hashes are rejected. Evidenced at scale: 146 groups across 68 sequential pages in the issue-4547 package, with 13,815 anchors each owned exactly once.

Copied files — source receipt

FileOriginal SHA-256BytesCopy
BUILDER_STAGE_B.py 3ce3f956bacd8c35… 19,136 verified
INPUT_HASHES.json c72d484064741882… 8,902 verified
SOURCE_HASHES.json 9dd0a696d95033e1… 9,031 verified

3 file(s), all hash-verified against the original. Full detail in tool/SOURCE_RECEIPT.json. Copy-only: the historical source is never modified.

Archived versions

No superseded versions recorded for this role.

Known limitations

Security and privacy

Operates on frozen local artifacts. No credentials required. No data leaves the machine.

Cost behaviour

No provider calls. No metered cost. Compute is local.

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.

Provenance

Registry
registry/roles.json (schema marsoom.e2t.roles.v1)
Derivation
28 legacy roles - VER - HUMAN + REV = 27 active steps
Legacy role id
ASSEMBLE
Legacy source SHA-256
6f5d5d7ed8869e45307424c2193f95ffab84abc44a6a188f5c7f98c2a48ec64d
Generated
2026-09-04T22:13:12.433Z

Feedback and decisions

Feedback is recorded per source and never merged into an invented consensus. Where sources disagree, both positions stand and the owner decides.

SourceEvents
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

Recorded events

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.