KB-468F

F2 — Information Unit / Smart Brick + Temp Store / Candidate — Reuse Survey Packet

28 min read Revision 1
laws-newf2information-unitsmart-bricktemp-storecandidateiu-stagingreuse-surveypacketnon-authorizing2026-06-16

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_STAMP are 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ạichư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-payloadstaging.metadata jsonb (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 boundarynhậ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_id concept 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_ref CHƯA được chứng minh — framework §4 marks both iu_staging_record and iu_staging_payload UNKNOWN→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 unprovenSTG-012 TODO / BLOCKER: who actually calls fn_iu_staging_cleanup (cron/flow/worker) or whether it is manual + proof it runs (no pg_cron). TTL fail-safe unproven until then.
  • packet_hash coverage undefinedSTG-015 PARTIAL / BLOCKER: must define whether packet_hash covers cell_id + stamps (option a/b) and how it is computed. Affects tamper-binding of the candidate packet.
  • Staging sufficiency unprovenSTG-REUSE-001 TODO / BLOCKER: whether iu_staging_record / iu_staging_payload are sufficient as the shared kho tạm for every tier v0.1.
  • blob_ref orphan / cleanup risk (RISK-GC) and CASCADE / 10 MiB cap (RISK-CAP) — payload blob_ref binding by candidate_id not verified.
  • CONS-003 + CELL-003/004/007 still block cell placement — F2 may not treat the brick's cell/coordinate as solved; cell_id materialization is forbidden here.
  • TEMP_ID live home not proven — the identity root is confirmed as a concept (F1), but its live home is iu_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_refonly 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_id materialization) — 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 inherited TEMP_ID identity 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_ID inherited (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_STAMP close (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_catalog as 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_role materialization; 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:

  1. 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.
  2. Evidence — per-asset documentary-vs-live label; iu_staging_* row counts marked [GR] documentary unless a separately-authorized Phase-1 proves live; "ANSWERED" old-survey STG rows kept documentary (framework §18 ca 13).
  3. 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.
  4. 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.
  5. Runtime — record what is NOT proven without Phase-1 (live staging schema/lifecycle/TTL/cleanup behavior); do not infer runtime from documentary.
  6. Provenance — distinguish current-pass vs prior-session ("old survey" STG rows); carry the F0/F1 decision lineage.
  7. Safety lock — restate the F2 boundary (brick = subject, temp-store = place; TEMP_ID inherited, no canonical birth; no new registry/store; no cell_id materialization); 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-GCiu_staging_payload.blob_ref orphan/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/007cell_id dimension 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-BYPASSfn_birth_gate warning + 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_role as 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:

  1. "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).
  2. "Each layer already has a temp store ready to use." → REJECT → CONFLICT/UNKNOWN; no new temp-store/table (framework §18 ca 16).
  3. "The IU lifecycle is implemented." → REJECT (DOCUMENTARY_ONLY; live IU lifecycle chưa proven; framework D4).
  4. "Bury the brick in the temp-store." → REJECT (D4: temp-store is the place, not the brick).
  5. "Create an Information Unit registry to organize IU." → REJECT (D4 Forbidden; no new sổ; prove 5 conditions first).
  6. "Make the IU a giant object model." → REJECT (D4 Forbidden; minimal brick only).
  7. "The candidate packet needs a new store/ledger." → REJECT (STG-REUSE-002/003: view logic on existing metadata; de-bai §V.13).
  8. "cell_id is solved, so place the brick in its cell." → REJECT (CONS-003 + CELL-003/004/007 BLOCKER).
  9. "TEMP_ID = canonical birth, so write BIRTH_STAMP at candidate." → REJECT (pre-promote vs post-promote; de-bai §V.10; canonical birth = F4).
  10. "blob_ref cleanup is handled, reuse freely." → REJECT (RISK-GC; STG-012 cleanup scheduler unverified BLOCKER).
  11. "Documentary row counts / old-survey 'ANSWERED' rows prove live." → REJECT (documentary ≠ live; framework §18 ca 13).
  12. "Promote the candidate without checker / Owner gate." → REJECT (D4 Forbidden; verdict-only checker + Atomic Promote Contract + Owner gate).
  13. "Reading staging schema live is fine because it's read-only." → REJECT (Phase-1 separately Owner-gated).
  14. "Use system_issues / meta_catalog as 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)

  1. Preserved the 3 Owner questions (Q1 reuse-now / Q2 repair-verify / Q3 add-later) — ✅
  2. Kept F2 as Information Unit / Smart Brick + Temp Store / Candidate (brick = subject, temp-store = place) — ✅
  3. No live DB / runtime / Phase-1 touched; iu_staging_* untouched (HOLD-1) — ✅
  4. No canonical birth write / BIRTH_STAMP (deferred to F4) — ✅
  5. No cell_id materialization; CONS-003 / CELL-003/004/007 carried, not resolved — ✅
  6. No new Information Unit registry / temp-store table / packet store created — ✅
  7. Documentary vs live proof distinguished throughout — ✅
  8. Internal gate (§10) defined as the precondition for the F2 execution report — ✅
  9. 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.