Gerbang Kualitas Chunk Vault

Script untuk menjaga kebenaran korpus chunk vault-index/semantic/ yang dihasilkan oleh pipeline subagent vault-indexing.

Audit Anchor (scripts/check-anchors.mjs)

Memverifikasi bahwa setiap anchor [path:LN] dalam chunk semantik menunjuk ke baris nyata yang memuat kata-kata kutipan secara verbatim. Ada empat mode kegagalan senyap yang dicegahnya: zero-count yang hampa (bracket yang tidak seimbang menelan pola), kutipan rekaan (kata kunci yang tumpang tindih ≠ verbatim), padding harness sintetis (kutipan yang diambil dari blok session-event: synthetic), dan sisi anchor yang salah (komentar diletakkan sebelum [path:LN], bukan sesudahnya).

bun scripts/check-anchors.mjs rem-154          # one chunk, exit 1 on any failure
bun scripts/check-anchors.mjs --all            # full corpus, report only
bun scripts/check-anchors.mjs --all --quiet    # only chunks with failures

Pemindaian anchor melacak kedalaman [ ], karena grup [ses_…] di ujung sebuah path harus tertutup lebih dulu sebelum anchor-nya tertutup. Dulu pelacakan itu berjalan maju dari setiap [ untuk mencari penutupnya. Cara itu benar tetapi kuadratik: satu [ yang tidak seimbang membuat penelusuran berjalan sampai ujung string, dan [ berikutnya mengulang perjalanan yang sama. Pengukuran dilakukan pada text [more words here and there\n yang diulang-ulang (prosa biasa dengan satu bracket tanpa penutup, yang memang seperti itulah wujud catatan sesi penuh link markdown ketika bracket penutupnya berada di luar rentang kutipan):

InputLamaBaru
63 KB123 ms2,3 ms
125 KB759 ms8,1 ms
250 KB3032 ms1,4 ms
200 KB, sepenuhnya tidak seimbang96 stidak dicatat

Stack bracket menjawab pertanyaan yang sama dalam satu kali lintasan dan setara secara konstruksi: ] yang membawa kedalaman ke 0 dari posisi i tepat merupakan bracket pasangan i menurut pencocokan standar. scripts/check-anchors-perf.test.mjs memverifikasi kesetaraan itu pada korpus berisi 22 kasus dan mengukur ulang kontrol kuadratiknya, sehingga klaim ini tetap bisa difalsifikasi alih-alih hanya menjadi komentar.

Perbaikan Anchor (scripts/repair-anchors.mjs)

Memperbaiki secara otomatis anchor pra-§4a yang gagal dalam uji verbatim, dengan strategi bertingkat:

TierStrategi
T1Kutipan memang verbatim di suatu tempat dalam file: tulis ulang anchor ke nomor baris yang benar.
T2Kutipan membentang di dua baris berturut-turut: pecah menjadi dua anchor sesuai §4a.
T3Kutipan tidak ada, tetapi source_location menyebut baris pendukung: ganti dengan potongan verbatim.
T4Tidak ada yang bisa diverifikasi: dibiarkan dan dilaporkan, tidak pernah ditebak.
bun scripts/repair-anchors.mjs --survey            # tier counts, no writes
bun scripts/repair-anchors.mjs --tier 1 --apply    # rewrite correct line numbers
bun scripts/repair-anchors.mjs --chunk 037 --apply # one chunk, any tier

Validasi & Penerimaan Chunk (scripts/verify-chunk.sh, scripts/accept-chunks.sh)

Helper gather-and-synthesize di sisi parent:

./scripts/verify-chunk.sh rem-090              # validate one chunk with cross-chunk link resolution
./scripts/accept-chunks.sh rem-127 075         # dry run: gate + structural diff
./scripts/accept-chunks.sh --commit -m 'msg' rem-127
./scripts/accept-chunks.sh --commit            # all dirty chunks

accept-chunks.sh memastikan node id, urutan, dan array links sama dengan HEAD, kecuali chunk tersebut mendeklarasikan penghapusan case-3, satu-satunya perubahan yang boleh mengubah struktur.