GPT Review — Description/Birth Discovery + Opus Assessment
GPT Review — Description/Birth Discovery + Opus Assessment
Date: 2026-05-04 Reviewer: GPT-5.5 Thinking / Incomex Hội đồng AI Inputs checked:
knowledge/dev/laws/dieu44-trien-khai/reports/iu0-pack2a-description-birth-contract-discovery.mdrev 1knowledge/dev/laws/dieu44-trien-khai/reviews/opus-assessment-pack2a-description-birth-discovery-2026-05-04.mdrev 1knowledge/dev/laws/dieu44-trien-khai/design/12-iu0-pack2a-dot-governance-registration-execution-pack.mdrev 1
Verdict
Agent report: PASS.
The Agent did the right thing: read-only, 9/9 questions answered, evidence/interpretation/unknowns separated, no write, no DOT execution, no DDL.
Opus assessment: mostly correct, but not enough to dispatch.
Do not dispatch Claude Code write yet. File 12 must be patched to rev2 and a compact 12a decision note must be created.
Confirmed decisions
D1 — governance_role = observed
Approved for Pack 2A as a pilot/readiness state, not as a workaround.
Rationale:
governedwould create HC-SCHEMA risk because IU tables intentionally lack physicaldescriptioncolumn.- IU rows use
identity_profile; Đ44/Đ36/Đ3 alignment is still needed before fullgovernedstatus. observedclears HC-REG/registration gap while not pretending full governance is complete.
File 12 rev2 must state upgrade conditions to governed:
- IU row description strategy resolved: physical
descriptionOR approved amendment that mapsidentity_profileto Description Law. - IU species/modeling decision completed.
- HC-SCHEMA / Đ36 expectations aligned.
- Birth/description guard coverage verified for IU production use.
D2 — migration_state = pilot
Approved. IU-0 remains pilot; 0 production rows.
D3 — Directus exposure = NO
Approved. Pack 2A is registry/governance cleanup only, not Directus integration.
D4 — species = skip for Pack 2A
Approved only because observed is used and no IU data rows are created. Must be recorded as future gating item before governed/production.
D5 — duplicate birth triggers
Non-blocking for Pack 2A because it is pre-existing and the relevant function should be idempotent/ON CONFLICT if designed properly, but file 12 rev2 must verify/report if duplicate birth attempts produce duplicate errors. If tool execution errors due to duplicate triggers, STOP and mini postmortem.
Not approved / needs patch
N1 — source_kind is not resolved
Opus cannot command --source_kind pg_table because Agent showed dot-collection-register whitelist is only:
registry|native|derived|policy
Even if DB has pg_table, the current tool contract may reject it. File 12 rev1 currently uses --source_kind pg_table, so it is not dispatchable.
File 12 rev2 must handle this as follows:
- Do not hardcode unsupported
pg_tablein the command. - Preferred design: inspect source validation exactly, then either:
- use
--source_kind nativewith a documented mapping “existing native PG/Directus table managed by registry,” if supported by source comments or live convention; OR - omit
--source_kindif optional and report resulting value; OR - STOP before registration if neither is legally/semantically justified.
- use
No guessing.
N2 — description provenance cannot be dismissed as harmless tech debt
Agent found all sampled collection_registry rows are PROV-DOT, and dot-collection-register cannot set PROV-AI/PROV-HUMAN. Opus proposed accepting PROV-DOT for AI-authored descriptions.
This is risky under Đ3 §2.5. However Pack 2A does not need rich AI-enriched description; it needs a compliant birth/basic description.
File 12 rev2 should avoid claiming the supplied description is PROV-AI enrichment. Treat it as operator-provided birth description through DOT channel, provenance PROV-DOT by current system convention, and record a separate TD:
TD-IU0-DESC-PROVENANCE: future work to support explicit description provenance when AI/human enrichment updates descriptions.
If User wants strict PROV-AI now, Pack 2A must stop and design/extend tooling first. Default recommendation: proceed with DOT-channel basic/compliant birth descriptions, not AI-enrichment, and log TD.
N3 — rollback cannot be raw DELETE routine
Opus recommends forward-only and --update if wrong. This is acceptable. File 12 rev2 must remove routine raw DELETE rollback and say:
- Forward-only registration by default.
- Correction path =
dot-collection-register --update. - Full unregister/delete is out of scope and requires a separate DOT/tool/legal design.
- No raw DELETE unless a separate admin fallback/legal approval is issued after tool failure.
N4 — storage_role for unit_version
Opus recommends primary for both. This is acceptable enough for design if justified: unit_version is not an operational log table; it is domain data/version table. File 12 rev2 should state why it is not log.
Required next work for Opus/Ocus
Prepare one consolidated package, no more micro-prompts:
-
Create:
knowledge/dev/laws/dieu44-trien-khai/design/12a-iu0-pack2a-description-birth-contract-decision-note.md -
Patch:
knowledge/dev/laws/dieu44-trien-khai/design/12-iu0-pack2a-dot-governance-registration-execution-pack.mdto rev2.
12a should summarize the 9-question discovery and the disposition of the 7 design decisions.
File 12 rev2 must:
- replace
source_kind=pg_tablewith evidence-safe handling (native, omitted, or STOP condition); - set
governance_role=observedwith upgrade conditions; - set
migration_state=pilot; - set
storage_role=primaryfor both, with justification forunit_version; - use compliant descriptions following Đ3 §A.3 collection format;
- state provenance as DOT-channel birth/basic description, not AI-enrichment; log TD for richer provenance;
- remove raw DELETE rollback; use forward-only +
--update, with full unregister as separate design; - include preflight command to verify tool source/whitelist and STOP if source_kind cannot be safely determined;
- include verify/report requirements under Điều 20 v1.2: internal/external evidence, execution cost, mini postmortem on STOP/fail.
Suggested compliant descriptions
These are acceptable starting strings, but Opus should verify against min length and exact command escaping:
-
information_unit:[observed] Chứa đơn vị thông tin có version và identity_profile. Lớp Kho. Thuộc Đ44 (IU-0 pilot). FK anchor tới unit_version. -
unit_version:[observed] Chứa lịch sử version immutable cho information_unit. Lớp Kho. Thuộc Đ44 (IU-0 pilot). FK tới information_unit.
Dispatch status
Not approved yet. After file 12a + file 12 rev2 are uploaded, GPT/User review again. If PASS, dispatch Claude Code write using DOT tools.