F2 — Information Unit / Smart Brick + Temp Store / Candidate — Reuse Survey Packet
F2 — Information Unit / Smart Brick + Temp Store / Candidate — Reuse Survey Packet
Ngày: 2026-06-16 · Soạn: Claude Code CLI (read-only AgentData KB) · Track: knowledge/dev/laws-new/
Control basis: technical-slice-framework.md rev56 §6c (D4 + D5), §6.2/§6.3, §4, §5. Concept basis: de-bai-cai-tien.md rev33 §II/§IV/§V/§VI (Lego Protocol). Catalog basis: cau-hoi-khi-tai-cau-truc.md rev82 §2c/§2d, STG-/STG-REUSE-.
Evidence basis: F1 execution report rev1 + reports/f1/f1-owner-decision-record-2026-06-16.md rev1 + F0 decision record rev1.
Layer: F2 — Information Unit / Smart Brick + Temp Store / Candidate (one layer above F1 in the §6c build/dependency order; sits below F3 — IO Contract + Formula + Assembly Machine / DOT).
1. Status / non-authorization banner
STATUS: PREPARATION PACKET — NON-AUTHORIZING. This is a read-only program package that prepares the F2 layer. It is not an F2 execution authorization on its own (the F2 read-only execution in this Program Macro runs only if the internal safety gate in §10 passes), not a Phase-1 survey, not an implementation authorization. It performs no live DB / runtime query, mutates nothing, creates no schema/table/registry/packet-store, and writes no canonical birth. It is structured around the same 3 reuse-first Owner questions as F0/F1 and is intended for GPT → Codex → Owner review.
Boundary invariants (carried from rev56 §6c + F1 decision record):
- F2 ≠ canonical birth. F2 reuses the minimal identity root (
TEMP_ID/ candidate identity) inherited from F1. Canonical birth +BIRTH_STAMPare OUTPUT at the promote boundary → F4, never F2. - The brick is the subject; the temp-store is only the place. Framework D4: the Information Unit / Smart Brick is the central subject spanning the lifecycle; the temp store (D5) is only where the brick stands — the brick is không chôn trong temp-store (must not be buried in the temp store).
- No new Information Unit registry / temp-store table / packet store by default (framework D4/D5 Forbidden; de-bai §V.13; catalog STG-REUSE-003). Any such change is Owner-gated detailed design, out of this packet.
iu_staging_*is documentary / HOLD-1 only — UNKNOWN→likely-LIVE CONFLICT; never treated as proven live substrate.- Documentary ≠ live proof · Prior-session ≠ current proof · Engineering PASS ≠ Authority PASS · Reuse-now ≠ live-proven.
2. Owner View — 3 câu hỏi reuse-first
Đọc riêng mục này là đủ để Owner/GPT thấy F2 định khảo sát cái gì để dùng lại — chưa làm gì chạm hệ thống. Chi tiết kỹ thuật ở §4–§12. Mục này không ủy quyền bất cứ điều gì.
Q1 — Cái gì đang có và (giả thuyết) dùng lại được ngay? (reuse-now — documentary candidates)
Tất cả mục dưới là ứng viên documentary (framework rev56 §4 / D4 / D5), chưa live-proven. F2 execution phải pin bằng chứng cho từng dòng; nếu bằng chứng yếu thì rớt xuống Q2.
- Khái niệm Information Unit / Smart Brick / "Miếng thông tin" — viên gạch thông minh trung tâm (de-bai §II.1 "viên gạch thông minh", §VI Lego Protocol; framework D4). Reuse-now như concept cho F2; mỗi miếng =
input · output · IO Contract · DOT xử lý/kiểm · rollback · trạng thái promote(de-bai §VI.1). TEMP_ID/ candidate identity inherited from F1 — minimal identity root đã được F1 chốt là in-scope;TEMP_ID_STAMP/candidate_id/workspace_idở kho tạm (de-bai §V.10). Live home (iu_staging_*) = HOLD-1.iu_staging_record/iu_staging_payload— ứng viên documentary #1 cho temp-store / candidate home + candidate packet store (KHÔNG tạo bảng mới). [GR] reported: record 26 cột PK uuid; payload 11 cột, CASCADE, cap 10MiB, cóblob_ref. CONFLICT/UNKNOWN (HOLD-1).- Existing metadata / jsonb / staging-payload —
staging.metadatajsonb (chứa pre-promote stamps), payload multi-part,content_hash— ứng viên lưu candidate packet bằng metadata/jsonb thay vì bảng mới (catalog REUSE-012, STG-REUSE-002). - Candidate packet as view/projection — packet = view/binding logic trên staging metadata/payload (
candidate_id+packet_hash), không store/registry mới (de-bai §V.13; catalog STG-REUSE-002). - IO Contract 5-field boundary —
nhận · trả · schema_min · fail · rollback(de-bai §III.6/§VI.3; framework §6b row 1, D6). Documentary concept reuse-now for "how a brick talks", không Module Contract First. - Reuse functions (documentary) —
fn_iu_cut_from_manifest(~70% reusable per framework D4),fn_iu_staging_create/fn_iu_staging_cleanup(3-pass + dry-run, per catalog STG-011). Reuse via wrapper hypothesis only. cell_idconcept inherited hypothesis (tầng × loài × kho × miền, read-only attribute model) — not solved; carries CONS-003 + CELL-003/004/007.- Reuse-first decision rule (catalog §2c: Decision Rule 1→7 + 5 no-new-creation conditions) and Nhóm 0 baseline
REUSE-001..015— reuse-now as the governing process, scoped to the F2 slice. - F0 frozen source baseline (12 sources) + F0/F1 authority decisions (CONS-004 working precedence; CONS-005 KB-only freeze-candidate accepted) — reuse-now as authority/evidence basis.
Q2 — Cái gì đang có nhưng cần sửa / kiểm chứng mới dùng lại được? (repair / verify-before-reuse)
iu_staging_*live schema / lifecycle / TTL /candidate_id/blob_refCHƯA được chứng minh — framework §4 marks bothiu_staging_recordandiu_staging_payloadUNKNOWN→likely-LIVE (CONFLICT), addendum "HOLD FOR SYSTEM CHECK", Codex checkout ref 0. Reuse needs a Phase-1 read-only verify (Owner-gated) — not done in this macro. HOLD-1.- Cleanup scheduler unproven —
STG-012TODO / BLOCKER: who actually callsfn_iu_staging_cleanup(cron/flow/worker) or whether it is manual + proof it runs (nopg_cron). TTL fail-safe unproven until then. packet_hashcoverage undefined —STG-015PARTIAL / BLOCKER: must define whetherpacket_hashcoverscell_id+ stamps (option a/b) and how it is computed. Affects tamper-binding of the candidate packet.- Staging sufficiency unproven —
STG-REUSE-001TODO / BLOCKER: whetheriu_staging_record/iu_staging_payloadare sufficient as the shared kho tạm for every tier v0.1. blob_reforphan / cleanup risk (RISK-GC) and CASCADE / 10 MiB cap (RISK-CAP) — payloadblob_refbinding bycandidate_idnot verified.- CONS-003 + CELL-003/004/007 still block cell placement — F2 may not treat the brick's cell/coordinate as solved;
cell_idmaterialization is forbidden here. TEMP_IDlive home not proven — the identity root is confirmed as a concept (F1), but its live home isiu_staging_*(HOLD-1) — unproven.- IO Contract examples remain documentary / GAP — framework D6/§6b: real IO examples/templates for a selected slice are chưa biết (not yet identified). DOCUMENTARY_ONLY.
- Scanner / report insufficiency not yet proven — REUSE-014: cannot yet claim that
system_issues+fn_log_issue+ orphan-scan are insufficient (no-new gate condition #4). - Checkout / runtime sync still unproven (CONS-005 caveat) — baseline covers KB only; runtime state not inferable.
- No new staging / table / registry / packet store without proving all 5 no-new conditions (catalog §2c) — default is reuse.
Q3 — Cái gì thật sự phải làm thêm (chỉ khi reuse không đủ)? (add-later — future Owner-gated)
- F2 read-only execution report — produced in this macro only if the internal gate (§10) passes.
- Phase-1 read-only substrate survey for
iu_staging_*— verify schema / lifecycle / TTL /candidate_id/blob_ref— only if Owner later authorizes (separate gate; HOLD-1). - Temp-store wrapper / candidate wrapper (light) — only if existing
iu_staging_*reuse is proven insufficient (REUSE-006). - Candidate-packet view/binding logic — only as view/projection on existing metadata, never a new store (STG-REUSE-002/003).
- Metadata / schema changes (incl.
cell_idmaterialization) — only after reuse-insufficiency proof + Owner-gated detailed design (framework §19 STOP). - No new Information Unit registry / temp-store table / packet ledger by default (framework D4/D5 Forbidden; de-bai §V.13).
- No canonical birth / promote write — F4 only.
3. F2 scope and non-scope
In-scope (read-only, when the §10 gate passes)
- Confirm and pin the documentary state of (a) the Information Unit / Smart Brick concept, (b) the temp-store / candidate substrate (
iu_staging_record/iu_staging_payload, metadata/jsonb,blob_ref,candidate_id, TTL), (c) the inheritedTEMP_IDidentity root, (d) the candidate-packet-as-view hypothesis, and (e) the IO Contract 5-field boundary — from KB sources only (framework §4/§5/§6.2/§6.3/D4/D5; de-bai §II/§V/§VI; catalog STG-/STG-REUSE-) — unless Owner separately authorizes a Phase-1 read-only DB survey. - Classify each candidate asset into Q1 reuse-now / Q2 repair-verify / Q3 add-later with an evidence pin and a clear "documentary vs live" label.
- Restate the F2 boundary: brick = subject, temp-store = place;
TEMP_IDinherited (no canonical birth); no new registry/store. - Carry the open conflicts that gate F2 (CONS-003; CELL-003/004/007; HOLD-1
iu_staging_*; HOLD-2 atomic promote; RISK-BYPASS; RISK-GC; RISK-CAP) as obligations, not resolutions.
Non-scope (forbidden at F2 by default)
- ❌ Canonical birth write /
BIRTH_STAMPclose (F4 output at promote). - ❌ Treating
iu_staging_*as proven-live substrate; querying it; or any live DB / runtime / Directus / PG read (Phase-1 separately Owner-gated). - ❌ Creating a new Information Unit registry, temp-store table, packet store/ledger, schema, index, DOT, checker, scanner.
- ❌ Using
system_issues/meta_catalogas the candidate packet store (framework D5 Forbidden). - ❌ Burying the brick inside the temp-store, or turning the IU into a giant object model (framework D4 Forbidden).
- ❌
cell_id/dot_rolematerialization; resolving CONS-003 / CELL-003/004/007. - ❌ Promote without checker / Owner gate (framework D4 Forbidden); selecting a pilot slice; writing detailed design / implementation.
4. Reuse-now inventory template (Q1 detail)
F2 execution fills
Reuse verdict+Evidence pin (this-pass). Until then every row is a documentary candidate, not a reuse decision. Status column quotes framework rev56 §4 / D4 / D5 and catalog rev82.
| Asset | Documentary status (rev56) | [GR] documentary detail | Reuse-now hypothesis | Catalog reuse Q | Reuse verdict (F1→F2 fills) | Evidence pin (fills) |
|---|---|---|---|---|---|---|
| Information Unit / Smart Brick concept | DOCUMENTARY_ONLY / GAP / CONFLICT (D4) | "viên gạch thông minh" (de-bai §II.1/§VI); species information_unit (Đ38 TAC) |
central subject across lifecycle; minimal brick shape | (D4) | TODO | TODO |
TEMP_ID / candidate identity (inherited F1) |
documentary (concept; F1 in-scope root) | TEMP_ID_STAMP / candidate_id / workspace_id (de-bai §V.10) |
identity root the brick stands on (no canonical birth) | F1 report §7 | TODO | TODO |
iu_staging_record |
UNKNOWN→likely-LIVE (CONFLICT) / HOLD-1 | [GR] live, 26 cột, PK uuid; Codex checkout ref 0; addendum HOLD | temp-store / candidate home (no new table) | STG-REUSE-001 (BLOCKER) |
TODO | TODO |
iu_staging_payload |
UNKNOWN→likely-LIVE (CONFLICT) / HOLD-1 | [GR] live, 11 cột, CASCADE, cap 10MiB, blob_ref |
candidate packet payload (jsonb) not new table | STG-REUSE-001 / REUSE-012 |
TODO | TODO |
staging metadata jsonb + payload parts |
DOCUMENTARY (STG-008/009 "ANSWERED" old survey) | metadata jsonb; payload_json/text/blob_ref; content_hash=sha256(parts) |
store candidate packet by metadata/jsonb | REUSE-012 / STG-REUSE-002 |
TODO | TODO |
| Candidate packet (view/projection) | DOCUMENTARY (de-bai §V.13) | bind candidate_id + packet_hash; verdict-only checker |
packet = view logic, no new store | STG-REUSE-002/003 (BLOCKER if create) |
TODO | TODO |
| IO Contract 5-field | DOCUMENTARY_ONLY (§6b r1 / D6) | nhận · trả · schema_min · fail · rollback |
brick-to-brick boundary; not Module Contract First | REUSE-015 |
TODO | TODO |
fn_iu_cut_from_manifest |
DOCUMENTARY (~70% reusable, D4) | cut IU from manifest | reuse via wrapper | REUSE-004 |
TODO | TODO |
fn_iu_staging_create / fn_iu_staging_cleanup |
DOCUMENTARY (STG-010/011 old survey) | create binds content_hash; cleanup 3-pass + dry-run |
reuse for create/delete-fast | STG-REUSE-004/005 |
TODO | TODO |
cell_id concept (inherited) |
DOCUMENTARY_ONLY (concept; CONS-003 unresolved) | tầng×loài×kho×miền, read-only attribute model |
place-the-brick hypothesis only | CELL-REUSE-001/002 (BLOCKER) |
TODO | TODO |
| F0 source baseline (12) + F0/F1 decisions | accepted (Owner) | CONS-004 precedence; CONS-005 KB-only baseline | authority / evidence basis | F0/F1 decision records | TODO | TODO |
Reuse-first gate (catalog §2c) — recorded, not executed: before proposing anything new, F2 must answer Decision Rule 1→7 and prove all 5 no-new-creation conditions: (1) existing registry/metadata insufficient · (2) iu_staging_* insufficient · (3) IO Contract 5-field insufficient · (4) scanner/report insufficient · (5) reuse slower than new. Material priority order (de-bai §IV.5): metadata/jsonb hiện có → staging payload → DOT nhẹ/wrapper → stamp xác nhận → (chỉ khi bất khả kháng) sửa birth core / tạo registry mới. Nhóm 0 baseline REUSE-001..015 applies, scoped to the F2 slice. No new-creation proposed by this packet.
5. Repair / verify-before-reuse inventory template (Q2 detail)
| Item | Why not reuse-now | Verification needed (Owner-gated; NOT done at F2) | Conflict/HOLD/risk ref |
|---|---|---|---|
iu_staging_record / iu_staging_payload live schema/lifecycle |
DOCUMENTARY / UNKNOWN→likely-LIVE CONFLICT; addendum HOLD; Codex checkout ref 0 | Phase-1 read-only verify schema/lifecycle/TTL/candidate_id/blob_ref (separate Owner gate) |
HOLD-1; framework §18 ca 2 |
| Cleanup scheduler (TTL runs?) | who calls fn_iu_staging_cleanup unknown (no pg_cron) |
identify cron/flow/worker or prove manual + that it runs | STG-012 BLOCKER |
packet_hash coverage |
undefined whether it covers cell_id+stamps |
define option a/b + computation | STG-015 BLOCKER |
| Shared kho tạm sufficiency | not proven adequate for all tiers v0.1 | prove iu_staging_* sufficient as shared temp-store |
STG-REUSE-001 BLOCKER |
blob_ref orphan/cleanup; cap |
binding by candidate_id unverified; 10 MiB / CASCADE |
verify cleanup + cap behavior before trust | RISK-GC / RISK-CAP |
cell_id not materialized; cell placement |
concept only; dimension sources unresolved | resolve dimension sources read-only; no schema change | CELL-003/004/007; CONS-003 |
TEMP_ID live home |
identity concept confirmed, live home is iu_staging_* |
Phase-1 verify (same HOLD-1) | HOLD-1; F1 report §7 |
| IO Contract examples | only the 5-field boundary is documentary; no slice examples | identify real IO examples for a selected slice | framework D6/§6b GAP |
| Scanner/report sufficiency | not proven that listing replaces auto-fix | confirm system_issues/orphan-scan suffices (no-new cond. #4) |
REUSE-014 |
| Checkout/runtime sync | baseline covers KB only | not provable without runtime read (Owner-gated) | CONS-005 caveat |
| Governance in birth/brick P0 | anti-pattern the frame must block | keep governance/canonical-birth at promote boundary | framework D2 / hostile ca 23 |
6. Add-later-only-if-needed template (Q3 detail)
Nothing here is authorized. Each is future Owner-gated, and only if the reuse survey proves reuse is insufficient. Default for all = NO.
| Possible future item | Precondition to even propose | Default |
|---|---|---|
| F2 read-only execution report | This packet passes the §10 internal gate | produced in-macro only if gate passes |
Phase-1 read-only survey of iu_staging_* |
Owner authorizes a separate Phase-1 gate (HOLD-1) | NO by default (Owner-only) |
| Temp-store / candidate wrapper (light) | Existing iu_staging_* reuse proven insufficient (REUSE-006) |
NO by default |
| Candidate-packet view/binding logic | Only as view on existing metadata; never a store | NO new store (STG-REUSE-003) |
Metadata / schema change (incl. cell_id) |
Reuse-insufficiency proof + Owner-gated design (§19 STOP) | NO by default |
| New Information Unit registry / temp-store table / packet ledger | All 5 no-new conditions proven (catalog §2c) | NO (no new sổ — D4/D5 Forbidden) |
Canonical birth write / BIRTH_STAMP |
n/a — belongs to F4 (promote boundary) | NEVER at F2 |
7. F2 evidence obligations
F2 execution (when the gate passes) must produce, for the deep layer, evidence covering sources · evidence · authority · conflict · runtime · provenance · safety lock:
- Sources — pin each F2 asset to its KB source (framework §4/§5/§6.2/§6.3/D4/D5 row · de-bai §II/§V/§VI · catalog STG-/STG-REUSE-/REUSE row), with rev + this-pass currency.
- Evidence — per-asset documentary-vs-live label;
iu_staging_*row counts marked[GR] documentaryunless a separately-authorized Phase-1 proves live; "ANSWERED" old-survey STG rows kept documentary (framework §18 ca 13). - Authority — apply the F0-decided CONS-004 working precedence (KB practical authority for laws-new docs; enacted principles higher; VPS=SSOT runtime; PG/Directus=truth data); flag any cross-class overlap to Owner.
- Conflict — carry CONS-003, CELL-003/004/007, HOLD-1 (
iu_staging_*), HOLD-2 (atomic promote), STG-012, STG-015, STG-REUSE-001/003, RISK-GC, RISK-CAP, RISK-BYPASS as unresolved obligations, not decisions. - Runtime — record what is NOT proven without Phase-1 (live staging schema/lifecycle/TTL/cleanup behavior); do not infer runtime from documentary.
- Provenance — distinguish current-pass vs prior-session ("old survey" STG rows); carry the F0/F1 decision lineage.
- Safety lock — restate the F2 boundary (brick = subject, temp-store = place;
TEMP_IDinherited, no canonical birth; no new registry/store; nocell_idmaterialization); state where execution must STOP.
8. Known risks / stop conditions
- HOLD-1 (
iu_staging_record/iu_staging_payload) — UNKNOWN→likely-LIVE CONFLICT; "HOLD FOR SYSTEM CHECK". F2 must not query or assume live; staging reuse stays a Phase-1 obligation. (framework §18 ca 2 + ca 16: "Each layer already has a temp store" → REJECT → CONFLICT/UNKNOWN; không tạo temp-store/table mới.) - RISK-GC —
iu_staging_payload.blob_reforphan/cleanup risk; cleanup scheduler (STG-012) unverified. - RISK-CAP — payload CASCADE + 10 MiB cap; behavior under load unverified.
- HOLD-2 (atomic promote) — BLOCKED, no transaction; relevant only as the reason canonical birth stays at F4.
- CONS-003 (6-vs-7 tầng CONFLICT) — blocks cell placement until Owner resolves.
- CELL-003/004/007 —
cell_iddimension sources unresolved. - STG-012 / STG-015 / STG-REUSE-001 / STG-REUSE-003 — staging cleanup scheduler, packet_hash coverage, shared-store sufficiency, and no-new-store gate all open.
- RISK-BYPASS —
fn_birth_gatewarning +app.bypass_birth_gate(inherited from F1; relevant at the promote boundary, not F2 candidate state).
Stop conditions (F2 must STOP and report BLOCKED / Owner-decision-needed):
- if any step would require a live DB/runtime read (→ Phase-1, separate Owner gate);
- if any step would materialize
cell_id/dot_roleas a column, or create a temp-store table / IU registry / packet store (→ schema change, Owner-gated); - if any step would write canonical birth or
BIRTH_STAMP(→ F4 only); - if resolving CONS-003 / CELL-003/004/007 is required to proceed;
- if an asset cannot be classified honestly into Q1/Q2/Q3 from available KB evidence.
9. Bad-input / adversarial checks
F2 execution must reject (fail-closed) the following bad assumptions — each must resolve to "rejected", not to a PASS-to-act:
- "
iu_staging_*is live because [GR] / 26-col / 11-col says so." → REJECT (DOCUMENTARY / UNKNOWN→likely-LIVE; Codex checkout ref 0; Phase-1 required; framework §18 ca 2). - "Each layer already has a temp store ready to use." → REJECT → CONFLICT/UNKNOWN; no new temp-store/table (framework §18 ca 16).
- "The IU lifecycle is implemented." → REJECT (DOCUMENTARY_ONLY; live IU lifecycle chưa proven; framework D4).
- "Bury the brick in the temp-store." → REJECT (D4: temp-store is the place, not the brick).
- "Create an Information Unit registry to organize IU." → REJECT (D4 Forbidden; no new sổ; prove 5 conditions first).
- "Make the IU a giant object model." → REJECT (D4 Forbidden; minimal brick only).
- "The candidate packet needs a new store/ledger." → REJECT (STG-REUSE-002/003: view logic on existing metadata; de-bai §V.13).
- "
cell_idis solved, so place the brick in its cell." → REJECT (CONS-003 + CELL-003/004/007 BLOCKER). - "
TEMP_ID= canonical birth, so writeBIRTH_STAMPat candidate." → REJECT (pre-promote vs post-promote; de-bai §V.10; canonical birth = F4). - "
blob_refcleanup is handled, reuse freely." → REJECT (RISK-GC; STG-012 cleanup scheduler unverified BLOCKER). - "Documentary row counts / old-survey 'ANSWERED' rows prove live." → REJECT (documentary ≠ live; framework §18 ca 13).
- "Promote the candidate without checker / Owner gate." → REJECT (D4 Forbidden; verdict-only checker + Atomic Promote Contract + Owner gate).
- "Reading staging schema live is fine because it's read-only." → REJECT (Phase-1 separately Owner-gated).
- "Use
system_issues/meta_catalogas the packet store." → REJECT (framework D5 Forbidden).
Pass criterion: no bad assumption leads to a PASS-to-act or a forbidden action → F2 is not fail-open.
10. Internal gate — when to proceed from packet to F2 execution
This Program Macro authorizes the read-only F2 execution report (Document 3) only if every gate item below is GREEN. If any item is RED, the macro STOPS at PARTIAL/BLOCKED and Document 3 is not created.
| # | Gate item | Pass condition |
|---|---|---|
| G1 | Mandatory sources readable | F1 report, F1 packet, F0 decision/exec, framework rev56, de-bai rev33, catalog rev82, constitution rev44, operating-rules rev51 all read this pass |
| G2 | F1 gate closed first | F1 owner decision record exists and accepts F1 (rev1) |
| G3 | Every F2 asset classifiable honestly | each Q1/Q2/Q3 row maps to a KB evidence pin without inventing live proof |
| G4 | No live DB/runtime/Phase-1 needed | classification is documentary-only; iu_staging_* untouched (HOLD-1) |
| G5 | No conflict resolution needed | CONS-003 / CELL-003/004/007 carried, not resolved |
| G6 | No schema/design/implementation needed | no cell_id materialization, no new registry/store/table, no DOT/checker |
| G7 | Boundary held | brick = subject / temp-store = place; TEMP_ID inherited; no canonical birth / BIRTH_STAMP |
| G8 | 3 Owner questions preserved | Q1/Q2/Q3 present in the execution report |
If all GREEN → run the read-only F2 survey from KB/documentary evidence only and emit Document 3 (STATUS honest — PARTIAL is acceptable and expected where every candidate is documentary-only/HOLD-1).
11. Expected F2 execution report format
When the §10 gate passes, the F2 execution report should mirror the F0/F1 report shape:
- §0 STATUS (one line): PASS / PARTIAL / BLOCKED, honest.
- §1 Owner View — the 3 reuse-first questions (Q1/Q2/Q3) answered at the control surface.
- §2 F2 scope / boundary confirmation (in/non-scope restated).
- §3 F2 asset classification table — Q1/Q2/Q3 with verdict + evidence pin + documentary/live label per row.
- §4 Information Unit / Smart Brick analysis (brick = subject, not buried; minimal shape; no registry/giant object).
- §5 Temp-store / Candidate analysis (
iu_staging_*HOLD-1; candidate packet = view; no new store). - §6 TEMP_ID inheritance from F1 (identity root reused; live home HOLD-1; no canonical birth).
- §7
cell_id/ CONS / CELL blocker handling (carried, not resolved/materialized). - §8 HOLD-1 handling (documentary/Phase-1 obligation).
- §9 Evidence currency table (sources/evidence/authority/conflict/runtime/provenance/safety-lock; documentary vs live).
- §10 Conflict / HOLD log — CONS-003, CELL-003/004/007, HOLD-1, HOLD-2, STG-012/015, STG-REUSE-001/003, RISK-GC/CAP/BYPASS carried.
- §11 Adversarial check — §9 bad-input results (all rejected).
- §12 Non-authorization confirmation + self-check.
- §13 F3 handoff / next-gate recommendation.
PARTIAL is acceptable and honest where evidence is documentary-only or a verification is Owner-gated. Engineering PASS ≠ Authority PASS.
12. How F2 feeds F3
F3 in the §6c order = IO Contract + Formula + Assembly Machine / DOT. F2 hands F3:
- a confirmed Smart Brick / Miếng thông tin shape hypothesis (minimal fields · inherited
candidate_id/TEMP_ID· IO boundary · cell context placeholder · DOT/wrapper path · stamp path · temp-store path · delete/cleanup path) — documentary, not implemented; - the temp-store / candidate reuse map (
iu_staging_record/iu_staging_payload+ metadata/jsonb + candidate-packet-as-view) with HOLD-1 pinned as a Phase-1 obligation, not a reuse decision; - the IO Contract 5-field boundary (
nhận · trả · schema_min · fail · rollback) as the brick-to-brick contract F3 will build the assembly machine / DOT around — without turning it into Module Contract First; - the carried conflicts (CONS-003, CELL-003/004/007) and risks (RISK-GC, RISK-CAP, STG-012, STG-015) as explicit obligations F3 must respect, not inherit as solved.
F2 preparation and execution must again preserve the 3 reuse-first Owner questions and remain non-authorizing until its own GPT → Codex → Owner gate. The Program Macro bundling (packet + internal-gated execution in one task) is an Owner choice already exercised for this F2 run; it does not open F3, Phase-1, or any design/implementation.
13. Self-check (packet discipline)
- Preserved the 3 Owner questions (Q1 reuse-now / Q2 repair-verify / Q3 add-later) — ✅
- Kept F2 as Information Unit / Smart Brick + Temp Store / Candidate (brick = subject, temp-store = place) — ✅
- No live DB / runtime / Phase-1 touched;
iu_staging_*untouched (HOLD-1) — ✅ - No canonical birth write /
BIRTH_STAMP(deferred to F4) — ✅ - No
cell_idmaterialization; CONS-003 / CELL-003/004/007 carried, not resolved — ✅ - No new Information Unit registry / temp-store table / packet store created — ✅
- Documentary vs live proof distinguished throughout — ✅
- Internal gate (§10) defined as the precondition for the F2 execution report — ✅
- Owner/GPT kept as the only phase authority; Codex review is the next gate — ✅
F2 — Information Unit / Smart Brick + Temp Store / Candidate — Reuse Survey Packet | 2026-06-16 | PREPARATION PACKET, NON-AUTHORIZING. Brick = subject, temp-store = place. TEMP_ID inherited (no canonical birth = F4). iu_staging_* = documentary / HOLD-1. CONS-003 / CELL-003/004/007 carried. Documentary ≠ live proof. Engineering PASS ≠ Authority PASS.