KB-19F8

dot-iu-cutter v0.5 — Constitution Nuxt Source Grounding + Repeatability (raw UNSTABLE, normalized content checksum STABLE x3)

7 min read Revision 1
dot-iu-cutterv0.5constitution-fixturenuxt-parser-checksumgroundingrepeatabilityread-onlyb6dieu442026-05-18

dot-iu-cutter v0.5 — Constitution Nuxt Source Grounding + Repeatability

Phase: v0_5_constitution_nuxt_parser_checksum_ratification · Date: 2026-05-18 · doc 2 of 5

http_method_used: GET only (read-only) x3 ; redirects: 0 ; mutation: none
source_mutated: false ; production_mutated: false ; kb_mutated: false (except 5 package uploads)
dml: none ; dry_run: none ; cut: none ; verify: none ; secrets_recorded: none
scratch: /tmp temp files used for hashing, deleted after measurement
decision_authority: GPT / User ONLY ; self_advance: PROHIBITED

1. Method

Three consecutive read-only HTTP GETs of the registered source URL, ~20 s apart, this session, with full response headers and exact body bytes captured to local temp scratch for hashing, then scratch deleted. No mutation of source, KB (beyond the 5 authored package files), production, Directus, or filesystem.

source_url: https://vps.incomexsaigoncorp.vn/knowledge/dev/laws/constitution

2. Transport observations (identical across all 3 fetches)

http_status: 200
content_type: text/html;charset=utf-8
server: nginx/1.29.5
x_powered_by: Nuxt                 # confirms Nuxt SSR/SPA (consistent w/ ratification grounding)
cache_control: no-cache            # server re-renders each request -> raw volatility expected
num_redirects: 0
csp/hsts/x-frame: present (security headers; not content)

3. Raw fetch checksum — UNSTABLE (the core B6 evidence)

fetch1: bytes=1197088  raw_sha256=2bd08424c710a6a004dc92100eef52c08c3ac8df4a03af402a79068cb0b849cc
fetch2: bytes=1197088  raw_sha256=2bd08424c710a6a004dc92100eef52c08c3ac8df4a03af402a79068cb0b849cc   # == fetch1
fetch3: bytes=1196999  raw_sha256=031a0171fd0a93fb7ef2efce17685df5faccdceb36f32adfad8c04193fc9619a   # DIFFERS
raw_diff: first differing byte ≈ offset 303313 ; ~859,949 bytes differ ; Content-Length changed (1197088 -> 1196999)
volatility_locus: the post-SSR script / Nuxt hydration region (window.__NUXT__ /
  <script type="application/json" id="__NUXT_DATA__">), NOT the rendered document body
verdict: raw_fetch_checksum is NON-DETERMINISTIC across same-session re-renders
  -> it CANNOT be the persisted content identity (would false-fire drift on every "Cắt Hiến pháp")

(Prior-session raw observation d196795…e041b26 @ 1,186,671 bytes differs again from this session — further confirms raw volatility / living-document drift over time.)

4. Rendered structure (fetch1; representative)

container_tags_present: html, head, body, header(x2), nav(x3), main(x1), article(x1),
  section(x1), aside(x1), footer(x2), script(x4..6), style(x8..10)
nuxt_hydration_markers: id="__nuxt", id="__NUXT_DATA__", window.__NUXT__ (x2), <script type="application/json">
authoritative_body_container: <article> (server-rendered) — equivalently <main> (same normalized text)
observed_title: "Hiến pháp Kiến trúc Hệ thống Incomex v4.6.3 BAN HÀNH" (H1 in <article>)
observed_version_label: v4.6.3 BAN HÀNH
breadcrumb_chrome_in_article (HEAD): "Knowledge / Phát triển / Laws / Hiến pháp …" — Nuxt chrome
backlink_chrome_in_article (TAIL): "Back to Knowledge Hub knowledge/dev/laws/constitution.md" — Nuxt chrome
content_anchors_present: NGUYÊN TẮC, KIẾN TRÚC HẠ TẦNG, MỤC LỤC LUẬT, 2 CHIỀU QUẢN LÝ,
  THUẬT NGỮ, CHANGELOG, "BAN HÀNH" (x21) — stable content anchors EXIST
note_completeness: the SSR <article> is the rendered `constitution.md` (architecture
  constitution: principles + infra + law INDEX + changelog). It is a complete, coherent
  document (H1 → CHANGELOG → backlink); it is principle/architecture-centric and does
  NOT inline a full enumerated Điều 0..44 clause tree (consistent with fixture identity;
  the earlier "189 Điều N" count was over the volatile raw payload, not the body).
  -> SSR <article> is a strong authoritative-span candidate; completeness-vs-hydration
     is flagged for OD-SR2 confirmation (doc 3 / doc 4).

5. Candidate normalized content checksum — STABLE across all 3 fetches

Extraction = inner of server-rendered <article>; drop <script>/<style>; strip tags; HTML-unescape; normalize = UTF-8 NFC + strip BOM + CRLF→LF + collapse intra-line whitespace + trim line ends + collapse blank-line runs; status markers preserved by exact codepoint.

candidate_A_inclusive (article incl. breadcrumb+backlink chrome):
  norm_text_len: 18127 (identical x3)
  norm_sha256:   d94a977dd338f0c3cf87baa05a7724e2e0ab1412e695d45fb66cd9813a69b231   # IDENTICAL fetch1=fetch2=fetch3
candidate_B_authoritative_span (H1 "HIẾN PHÁP" .. before "Back to Knowledge Hub"):
  norm_text_len: 17791 (identical x3)
  norm_sha256:   f9d22d0571fa296cbc8e308c46acde93804ffcfb4a19a2e7f55dabd8657d1689   # IDENTICAL fetch1=fetch2=fetch3
status_markers_codepoint_exact (normalized, SSR article):
  "✅"=19  "📋"=1  "📝"=1  "⛔"=1   (identical across all 3 fetches; QG5 satisfied)
KEY RESULT:
  raw_checksum:        UNSTABLE  (fetch3 ≠ fetch1/2)
  normalized_checksum: STABLE    (both candidate spans identical across all 3 fetches)
  => the determinism MECHANISM works: chrome-strip + normalization removes Nuxt
     volatility while preserving content + markers. G1/G3/G4 (doc 1) are achievable.

6. Repeatability verdict

repeatability_tested: YES (3 same-session GETs, ~20s window)
raw: NOT repeatable
normalized_content (candidate A and B): repeatable / PASS within this session
caveats (why this is PARTIAL not yet CLOSED):
  - 3 fetches over ~20s only; NOT proven across days / Nuxt deploys / version bumps
  - exact authoritative span (exclude breadcrumb + "Back to Knowledge Hub" + footer)
    not yet GPT-ratified (OD-SR2); candidate B is a proposal, not a ruling
  - SSR-article completeness vs client-hydrated view to be confirmed at ratification
no production mutation; no checksum inserted anywhere; scratch deleted.

7. Statement

  • Actual source grounded read-only x3 (QG2). raw_fetch_checksum vs normalized_content_checksum distinguished and measured (QG3). Repeated normalized checksum is stable within the tested window (QG6). Markers preserved codepoint-exact (QG5).
  • No source seed/DML/dry-run/cut/verify (QG7). doc 2 of 5; STOP after package → route GPT/User. Self-advance PROHIBITED.

Companion: parser-operational-framing, authoritative-extraction-and-normalization-design, parser-profile-and-ruling-request, ratification-report.

Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/v0.5-constitution-nuxt-parser-checksum-ratification/dot-iu-cutter-v0.5-constitution-nuxt-source-grounding-and-repeatability-2026-05-18.md