wal: flush 20260809T2218
This commit is contained in:
@ -0,0 +1,422 @@
|
||||
# script-arm @bookend-close S185 — SAU-harvest (f-bis re-measure)
|
||||
|
||||
## 1. measure-agent-memory (f-bis — số SAU-append)
|
||||
{
|
||||
"measured_at_note": "run date stamped by caller (Date.now unavailable in workflow scripts)",
|
||||
"soft_cap_l1_bytes": 30720,
|
||||
"autoinject_cap_bytes": 25600,
|
||||
"agents": [
|
||||
{
|
||||
"agent": "back-end-reviewer-style",
|
||||
"l1_hot_bytes": 3908,
|
||||
"l2_verbatim_bytes": 0,
|
||||
"l2_index_bytes": 0,
|
||||
"l2_gist_bytes": 0,
|
||||
"l1_over_30kb": false
|
||||
},
|
||||
{
|
||||
"agent": "cicd-monitor",
|
||||
"l1_hot_bytes": 23798,
|
||||
"l2_verbatim_bytes": 264257,
|
||||
"l2_index_bytes": 23588,
|
||||
"l2_gist_bytes": 122471,
|
||||
"l1_over_30kb": false
|
||||
},
|
||||
{
|
||||
"agent": "ctx-audit",
|
||||
"l1_hot_bytes": 24924,
|
||||
"l2_verbatim_bytes": 0,
|
||||
"l2_index_bytes": 0,
|
||||
"l2_gist_bytes": 0,
|
||||
"l1_over_30kb": false
|
||||
},
|
||||
{
|
||||
"agent": "ctx-curator",
|
||||
"l1_hot_bytes": 13340,
|
||||
"l2_verbatim_bytes": 0,
|
||||
"l2_index_bytes": 0,
|
||||
"l2_gist_bytes": 0,
|
||||
"l1_over_30kb": false
|
||||
},
|
||||
{
|
||||
"agent": "ctx-verifier",
|
||||
"l1_hot_bytes": 19205,
|
||||
"l2_verbatim_bytes": 0,
|
||||
"l2_index_bytes": 0,
|
||||
"l2_gist_bytes": 0,
|
||||
"l1_over_30kb": false
|
||||
},
|
||||
{
|
||||
"agent": "database-agent",
|
||||
"l1_hot_bytes": 9038,
|
||||
"l2_verbatim_bytes": 0,
|
||||
"l2_index_bytes": 0,
|
||||
"l2_gist_bytes": 0,
|
||||
"l1_over_30kb": false
|
||||
},
|
||||
{
|
||||
"agent": "database-reviewer-style",
|
||||
"l1_hot_bytes": 4376,
|
||||
"l2_verbatim_bytes": 0,
|
||||
"l2_index_bytes": 0,
|
||||
"l2_gist_bytes": 0,
|
||||
"l1_over_30kb": false
|
||||
},
|
||||
{
|
||||
"agent": "frontend-designer",
|
||||
"l1_hot_bytes": 19869,
|
||||
"l2_verbatim_bytes": 19050,
|
||||
"l2_index_bytes": 2435,
|
||||
"l2_gist_bytes": 3231,
|
||||
"l1_over_30kb": false
|
||||
},
|
||||
{
|
||||
"agent": "front-end-reviewer-style",
|
||||
"l1_hot_bytes": 3857,
|
||||
"l2_verbatim_bytes": 0,
|
||||
"l2_index_bytes": 0,
|
||||
"l2_gist_bytes": 0,
|
||||
"l1_over_30kb": false
|
||||
},
|
||||
{
|
||||
"agent": "harness-audit",
|
||||
"l1_hot_bytes": 16622,
|
||||
"l2_verbatim_bytes": 0,
|
||||
"l2_index_bytes": 0,
|
||||
"l2_gist_bytes": 0,
|
||||
"l1_over_30kb": false
|
||||
},
|
||||
{
|
||||
"agent": "harness-eval",
|
||||
"l1_hot_bytes": 15469,
|
||||
"l2_verbatim_bytes": 0,
|
||||
"l2_index_bytes": 0,
|
||||
"l2_gist_bytes": 0,
|
||||
"l1_over_30kb": false
|
||||
},
|
||||
{
|
||||
"agent": "harness-refine",
|
||||
"l1_hot_bytes": 15126,
|
||||
"l2_verbatim_bytes": 0,
|
||||
"l2_index_bytes": 0,
|
||||
"l2_gist_bytes": 0,
|
||||
"l1_over_30kb": false
|
||||
},
|
||||
{
|
||||
"agent": "harvest-curator",
|
||||
"l1_hot_bytes": 28071,
|
||||
"l2_verbatim_bytes": 78576,
|
||||
"l2_index_bytes": 8325,
|
||||
"l2_gist_bytes": 20317,
|
||||
"l1_over_30kb": false
|
||||
},
|
||||
{
|
||||
"agent": "implementer-backend",
|
||||
"l1_hot_bytes": 25515,
|
||||
"l2_verbatim_bytes": 86134,
|
||||
"l2_index_bytes": 10487,
|
||||
"l2_gist_bytes": 84345,
|
||||
"l1_over_30kb": false
|
||||
},
|
||||
{
|
||||
"agent": "implementer-frontend",
|
||||
"l1_hot_bytes": 16441,
|
||||
"l2_verbatim_bytes": 47796,
|
||||
"l2_index_bytes": 5844,
|
||||
"l2_gist_bytes": 44764,
|
||||
"l1_over_30kb": false
|
||||
},
|
||||
{
|
||||
"agent": "investigator-api",
|
||||
"l1_hot_bytes": 9021,
|
||||
"l2_verbatim_bytes": 0,
|
||||
"l2_index_bytes": 0,
|
||||
"l2_gist_bytes": 0,
|
||||
"l1_over_30kb": false
|
||||
},
|
||||
{
|
||||
"agent": "investigator-codebase",
|
||||
"l1_hot_bytes": 18199,
|
||||
"l2_verbatim_bytes": 171476,
|
||||
"l2_index_bytes": 12448,
|
||||
"l2_gist_bytes": 107741,
|
||||
"l1_over_30kb": false
|
||||
},
|
||||
{
|
||||
"agent": "lead-gap-auditor",
|
||||
"l1_hot_bytes": 24241,
|
||||
"l2_verbatim_bytes": 22645,
|
||||
"l2_index_bytes": 1234,
|
||||
"l2_gist_bytes": 7112,
|
||||
"l1_over_30kb": false
|
||||
},
|
||||
{
|
||||
"agent": "lead-stale-auditor",
|
||||
"l1_hot_bytes": 30852,
|
||||
"l2_verbatim_bytes": 0,
|
||||
"l2_index_bytes": 0,
|
||||
"l2_gist_bytes": 0,
|
||||
"l1_over_30kb": true
|
||||
},
|
||||
{
|
||||
"agent": "office-document",
|
||||
"l1_hot_bytes": 3323,
|
||||
"l2_verbatim_bytes": 0,
|
||||
"l2_index_bytes": 0,
|
||||
"l2_gist_bytes": 0,
|
||||
"l1_over_30kb": false
|
||||
},
|
||||
{
|
||||
"agent": "reviewer",
|
||||
"l1_hot_bytes": 31341,
|
||||
"l2_verbatim_bytes": 243035,
|
||||
"l2_index_bytes": 13941,
|
||||
"l2_gist_bytes": 69925,
|
||||
"l1_over_30kb": true
|
||||
},
|
||||
{
|
||||
"agent": "ring1-audit",
|
||||
"l1_hot_bytes": 23874,
|
||||
"l2_verbatim_bytes": 0,
|
||||
"l2_index_bytes": 0,
|
||||
"l2_gist_bytes": 0,
|
||||
"l1_over_30kb": false
|
||||
},
|
||||
{
|
||||
"agent": "ring2-audit",
|
||||
"l1_hot_bytes": 31781,
|
||||
"l2_verbatim_bytes": 0,
|
||||
"l2_index_bytes": 0,
|
||||
"l2_gist_bytes": 0,
|
||||
"l1_over_30kb": true
|
||||
},
|
||||
{
|
||||
"agent": "ring4-audit",
|
||||
"l1_hot_bytes": 3349,
|
||||
"l2_verbatim_bytes": 0,
|
||||
"l2_index_bytes": 0,
|
||||
"l2_gist_bytes": 0,
|
||||
"l1_over_30kb": false
|
||||
},
|
||||
{
|
||||
"agent": "score-count-auditor",
|
||||
"l1_hot_bytes": 2330,
|
||||
"l2_verbatim_bytes": 0,
|
||||
"l2_index_bytes": 0,
|
||||
"l2_gist_bytes": 0,
|
||||
"l1_over_30kb": false
|
||||
},
|
||||
{
|
||||
"agent": "score-counter",
|
||||
"l1_hot_bytes": 2366,
|
||||
"l2_verbatim_bytes": 0,
|
||||
"l2_index_bytes": 0,
|
||||
"l2_gist_bytes": 0,
|
||||
"l1_over_30kb": false
|
||||
},
|
||||
{
|
||||
"agent": "test-specialist",
|
||||
"l1_hot_bytes": 18914,
|
||||
"l2_verbatim_bytes": 37615,
|
||||
"l2_index_bytes": 6170,
|
||||
"l2_gist_bytes": 33811,
|
||||
"l1_over_30kb": false
|
||||
},
|
||||
{
|
||||
"agent": "tooling-auditor",
|
||||
"l1_hot_bytes": 30981,
|
||||
"l2_verbatim_bytes": 72498,
|
||||
"l2_index_bytes": 3672,
|
||||
"l2_gist_bytes": 18760,
|
||||
"l1_over_30kb": true
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
## 2. mfe-eval
|
||||
|
||||
=== MFE (Memory-Fidelity-EVAL) - Harness-16 - 2026-08-09 ===
|
||||
(coverage/retention eval; NOT memoryDelta-routing-fidelity H6.7)
|
||||
lead hot-feed cap (live) = 380000 tok | mem-sub cap = 60000 tok
|
||||
|
||||
[LEAD] must-remember denominator (deduped, merge_guard_to_as=True):
|
||||
marks(Active+High)=11 AS-classes=15 net-extra-guards=5 net-extra-recurring-gotchas=7
|
||||
=> DENOMINATOR = 38 items (raw before dedup: marks 11 + AS 15 + guards 16 + recurring 8)
|
||||
|
||||
[LEAD] Coverage-FIT (does the set FIT the hot-feed cap?):
|
||||
span bytes=30945 => ~7736 - 10315 tok (RANGE, see caveat) / cap 380000 tok = 2.71% worst-case
|
||||
FIT = PASS (worst-case fits; headroom huge - must-remember set is tiny vs cap)
|
||||
CAVEAT: char/4 is NOT real tokens; VN-diacritic ~3.0-3.5 byte/tok => byte/4 = upper-bound headroom.
|
||||
Reported as a RANGE [bytes/4 .. bytes/3.0]; FIT uses bytes/3.0 (worst). Real count inside the band.
|
||||
|
||||
[LEAD] age-band (FLAG only - age=false-proxy, mark RC-...10-29-11):
|
||||
marks with parseable date=11; >30d old but still Active=4 -> KEPT (status-driven, age-blind)
|
||||
(guards/gotchas carry session-refs not dates -> age = status-driven only; drop on status-change, never by age)
|
||||
|
||||
[LEAD] Goodhart anchor (NO self-grading - real recurring-error signal):
|
||||
error-ledger: strikes_total=25 RCA_entries=16 AS-classes=15
|
||||
(rule: if strikes rise across runs while coverage stays high -> the score lies. warn-baseline=25 last_run_strikes=25)
|
||||
|
||||
[SUB] per-role memory coverage (denominator = role-file anti-patterns/baseline; numerator = carried in diary):
|
||||
match = exact-id OR >=2 distinct content-words after stop-list (leading-verb-only = false-max, defeated)
|
||||
|
||||
back-end-reviewer-style N/A (no numbered anti-pattern / NEVER block in role-file to extract)
|
||||
cicd-monitor 10/10 = 100% (MEASURED, not target-then-force)
|
||||
ctx-audit 10/10 = 100% (MEASURED, not target-then-force)
|
||||
ctx-curator 6/6 = 100% (MEASURED, not target-then-force)
|
||||
ctx-verifier 7/7 = 100% (MEASURED, not target-then-force)
|
||||
database-agent 7/7 = 100% (MEASURED, not target-then-force)
|
||||
database-reviewer-style N/A (no numbered anti-pattern / NEVER block in role-file to extract)
|
||||
front-end-reviewer-style N/A (no numbered anti-pattern / NEVER block in role-file to extract)
|
||||
frontend-designer 2/2 = 100% (MEASURED, not target-then-force)
|
||||
harness-audit 5/5 = 100% (MEASURED, not target-then-force)
|
||||
harness-eval 5/5 = 100% (MEASURED, not target-then-force)
|
||||
harness-refine 5/5 = 100% (MEASURED, not target-then-force)
|
||||
harvest-curator 7/7 = 100% (MEASURED, not target-then-force)
|
||||
implementer-backend 18/18 = 100% (MEASURED, not target-then-force)
|
||||
implementer-frontend 12/13 = 92% (MEASURED, not target-then-force)
|
||||
investigator-api 7/7 = 100% (MEASURED, not target-then-force)
|
||||
investigator-codebase 8/8 = 100% (MEASURED, not target-then-force)
|
||||
lead-gap-auditor 6/6 = 100% (MEASURED, not target-then-force)
|
||||
lead-stale-auditor 6/6 = 100% (MEASURED, not target-then-force)
|
||||
office-document 6/6 = 100% (MEASURED, not target-then-force)
|
||||
reviewer 8/8 = 100% (MEASURED, not target-then-force)
|
||||
ring1-audit 5/5 = 100% (MEASURED, not target-then-force)
|
||||
ring2-audit 5/5 = 100% (MEASURED, not target-then-force)
|
||||
ring4-audit 5/5 = 100% (MEASURED, not target-then-force)
|
||||
score-count-auditor N/A (no numbered anti-pattern / NEVER block in role-file to extract)
|
||||
score-counter N/A (no numbered anti-pattern / NEVER block in role-file to extract)
|
||||
test-specialist 6/6 = 100% (MEASURED, not target-then-force)
|
||||
tooling-auditor 8/8 = 100% (MEASURED, not target-then-force)
|
||||
|
||||
[SUB-WORKFLOW] N/A by design: fan-out workflow agents (hmw.js sub-<role>-<i>) are EPHEMERAL
|
||||
(no persistent diary; their only memory channel is the lead-injected memory-pack -> source-vs-cap is meaningless).
|
||||
|
||||
=== MFE done (deterministic block; READ-ONLY on budget; exit 0) ===
|
||||
|
||||
## 3. memory-archive-gate DRY
|
||||
============================================================
|
||||
memory-archive-gate.ps1 - Harness-11 PART-A
|
||||
mode : DRY-RUN (no writes at all)
|
||||
cap : 25600 bytes (autoinject_cap)
|
||||
low-water : 21760 bytes (A4 hysteresis drain target = ratio 0.85)
|
||||
keep-floor : 5 newest entries (A5)
|
||||
strike-need : 2 consecutive over-cap runs to PROPOSE (A6)
|
||||
============================================================
|
||||
|
||||
### PASS 1 - hot-tier over-cap planner (FLAG ONLY, no moves)
|
||||
|
||||
sub bytes over? entries strike after-est resolve
|
||||
------------------------ --------- ----- ---------- ------- ------------ -------
|
||||
back-end-reviewer-style 3908 no 0 0 - ok
|
||||
cicd-monitor 23798 no 19 0 - ok
|
||||
ctx-audit 24924 no 3 0 - ok
|
||||
ctx-curator 13340 no 0 0 - ok
|
||||
ctx-verifier 19205 no 2 0 - ok
|
||||
database-agent 9038 no 6 0 - ok
|
||||
database-reviewer-style 4376 no 0 0 - ok
|
||||
frontend-designer 19869 no 7 0 - ok
|
||||
front-end-reviewer-style 3857 no 0 0 - ok
|
||||
harness-audit 16622 no 7 0 - ok
|
||||
harness-eval 15469 no 7 0 - ok
|
||||
harness-refine 15126 no 7 0 - ok
|
||||
harvest-curator 28071 YES 9 1 ~27224 WARN value-floor hit: over-cap but every drainable entry is value-protected/keep-floor - condense high-value BY HAND (do NOT age-archive)
|
||||
[D3 value-gate] 5 value-protected logical entr(y/ies) HARD-SKIPPED from the drain set (kept regardless of position/age); move-set = lowest-value only. NOTE: 9-token grep = lower-bound; em-main must value-scan the WHOLE proposed set (paraphrase/spine leak remains).
|
||||
implementer-backend 25515 no 24 0 - ok
|
||||
implementer-frontend 16441 no 11 0 - ok
|
||||
investigator-api 9021 no 10 0 - ok
|
||||
investigator-codebase 18199 no 10 0 - ok
|
||||
lead-gap-auditor 24241 no 7 0 - ok
|
||||
lead-stale-auditor 30852 YES 6 1 ~30214 WARN keep-floor hit (5); cannot auto-drain - SPLIT/condense entries by hand
|
||||
[D3 value-gate] 1 value-protected logical entr(y/ies) HARD-SKIPPED from the drain set (kept regardless of position/age); move-set = lowest-value only. NOTE: 9-token grep = lower-bound; em-main must value-scan the WHOLE proposed set (paraphrase/spine leak remains).
|
||||
office-document 3323 no 3 0 - ok
|
||||
reviewer 31341 YES 8 1 ~30982 WARN value-floor hit: over-cap but every drainable entry is value-protected/keep-floor - condense high-value BY HAND (do NOT age-archive)
|
||||
[D3 value-gate] 5 value-protected logical entr(y/ies) HARD-SKIPPED from the drain set (kept regardless of position/age); move-set = lowest-value only. NOTE: 9-token grep = lower-bound; em-main must value-scan the WHOLE proposed set (paraphrase/spine leak remains).
|
||||
ring1-audit 23874 no 6 0 - ok
|
||||
ring2-audit 31781 YES 7 2 ~23102 PROPOSE archive (strike 2>=2): move 2 lowest-value (position tiebreak) -> curate L1->L2 by hand
|
||||
[D3 value-gate] 1 value-protected logical entr(y/ies) HARD-SKIPPED from the drain set (kept regardless of position/age); move-set = lowest-value only. NOTE: 9-token grep = lower-bound; em-main must value-scan the WHOLE proposed set (paraphrase/spine leak remains).
|
||||
ring4-audit 3349 no 2 0 - ok
|
||||
score-count-auditor 2330 no 0 0 - ok
|
||||
score-counter 2366 no 0 0 - ok
|
||||
test-specialist 18914 no 7 0 - ok
|
||||
tooling-auditor 30981 YES 11 1 ~30134 WARN value-floor hit: over-cap but every drainable entry is value-protected/keep-floor - condense high-value BY HAND (do NOT age-archive)
|
||||
[D3 value-gate] 4 value-protected logical entr(y/ies) HARD-SKIPPED from the drain set (kept regardless of position/age); move-set = lowest-value only. NOTE: 9-token grep = lower-bound; em-main must value-scan the WHOLE proposed set (paraphrase/spine leak remains).
|
||||
|
||||
[A6] DRY-RUN: strike counters NOT persisted (run with -Apply to advance strikes)
|
||||
|
||||
### PASS 2 - A7 archive-integrity gate (NO-API: grep + measure only)
|
||||
|
||||
[cicd-monitor] _INDEX.md + 14 archive file(s)
|
||||
-> PASS pointers 112 resolved 112 failed 0
|
||||
[frontend-designer] _INDEX.md + 2 archive file(s)
|
||||
-> PASS pointers 9 resolved 9 failed 0
|
||||
[harvest-curator] _INDEX.md + 4 archive file(s)
|
||||
-> PASS pointers 48 resolved 48 failed 0
|
||||
[implementer-backend] _INDEX.md + 13 archive file(s)
|
||||
-> PASS pointers 43 resolved 43 failed 0
|
||||
[implementer-frontend] _INDEX.md + 4 archive file(s)
|
||||
-> PASS pointers 44 resolved 44 failed 0
|
||||
[investigator-codebase] _INDEX.md + 14 archive file(s)
|
||||
-> PASS pointers 56 resolved 56 failed 0
|
||||
[lead-gap-auditor] _INDEX.md + 2 archive file(s)
|
||||
-> PASS pointers 7 resolved 7 failed 0
|
||||
[reviewer] _INDEX.md + 10 archive file(s)
|
||||
-> PASS pointers 57 resolved 57 failed 0
|
||||
[test-specialist] _INDEX.md + 4 archive file(s)
|
||||
-> PASS pointers 33 resolved 33 failed 0
|
||||
[tooling-auditor] _INDEX.md + 4 archive file(s)
|
||||
-> PASS pointers 20 resolved 20 failed 0
|
||||
|
||||
------------------------------------------------------------
|
||||
A7 GATE PASS - total pointers 429, resolved 429, failed 0
|
||||
------------------------------------------------------------
|
||||
|
||||
## 4. crystallized-backfill
|
||||
============================================================
|
||||
crystallized-backfill.ps1 - measure-then-fill (DRY planner)
|
||||
tier : lead
|
||||
budget.json : D:\Dropbox\CONG_VIEC\SOLUTION\SOLUTION_ERP\.claude\agent-memory\memory-budget.json
|
||||
cb config : present (target + hotload_sources read LIVE)
|
||||
============================================================
|
||||
|
||||
### hot-load sources (LIVE byte-measure, UTF8)
|
||||
|
||||
source bytes state
|
||||
-------------------------------------------- ---------- --------
|
||||
docs/STATUS.md 234644 ok
|
||||
docs/HANDOFF.md 196350 ok
|
||||
.claude/governance/ACTIVE-MARKS.md 36153 ok
|
||||
docs/changelog/migration-todos.md 88151 ok
|
||||
docs/gotchas.md 120260 ok
|
||||
.claude/agents/README.md 60723 ok
|
||||
TOTAL 736281
|
||||
|
||||
### budget numbers (Upgrade-1) - ALL live-read, 0 hardcoded
|
||||
|
||||
Tran tong (live cap) : 380000 tok
|
||||
hotload measured : 736281 bytes
|
||||
tok RANGE [low..high] : [184070 .. 245427] tok (bytes/4 .. bytes/3.0)
|
||||
measured_headroom : 134573 tok (cap - tok_high, worst-case)
|
||||
target (owner) : 210000 tok
|
||||
expected_backfill : 134573 tok (min(target,headroom)=headroom => headroom binds (target exceeds room))
|
||||
|
||||
### value-gated backfill source-order (planner / DRY - no pour)
|
||||
|
||||
precondition MET (target>0 AND headroom>0): would pull up to 134573 tok in order:
|
||||
1. gist → archive/*.gist.md (4-field distilled)
|
||||
2. value-marked → archive lines carrying gotcha# / anti-pattern / root-cause
|
||||
3. curated RAG → search_memory high-value hits
|
||||
(each stage DEDUP vs the hot-load sources above; stop at expected_backfill)
|
||||
|
||||
------------------------------------------------------------
|
||||
HONEST CAVEAT
|
||||
char/4 is NOT a real token count; VN-diacritic hot-memory ~3.0-3.5 byte/tok.
|
||||
Headroom is a RANGE [bytes/4 .. bytes/3.0]; this planner uses bytes/3.0 (worst).
|
||||
backfill defaults to 0 = TAT until the OWNER sets target>0 AND measured headroom>0.
|
||||
Every budget number is the OWNER's authority; this script is READ-ONLY (never tunes/writes).
|
||||
HEADROOM is measured over a STABLE FILE-FLOOR (the configured hotload_sources) = an UPPER BOUND.
|
||||
The PEAK hot-feed also loads session-variable task-context NOT in this list; real headroom is SMALLER.
|
||||
------------------------------------------------------------
|
||||
|
||||
## 5. nhip-no-probe
|
||||
NHIP-NO: kiem light 3/6 deep 19/15 OVERDUE:deep | tran-bo-nho 5 over-cap l2idx 0 over | run-chua-gom 1 | pull-cach 4 ngay | so-yc treo 5 / nhac2+ 2 (muc 13, gop 5 dong nhac-lai)
|
||||
Reference in New Issue
Block a user