VacantAn accountability layer for AIGitHub

Limits · Changes / claim downgrades and corrections ·

Corrections log

Every claim that was downgraded or refuted, every number that was corrected, and every sentence we were asked to delete, all in chronological order. From "blocked at the exit" to KS-1, this is the part of the whole research most worth reading.

This page cites 3 verdicts: Overstated 1 · Same sign, unresolved 1 · Not re-verified 1click one to jump to its claim card

#Why this page exists

Because a system that claims to be accountable must first be able to be accountable to itself.

This page is the form in which the project puts that into practice: every downgraded claim, every corrected number, every deleted phrasing, in chronological order. The full cross-reference is in the evidence ledger.

#2026-10-07 — Site data audit

We checked the site's numbers one by one against their sources (the project's _index/claims.json, the thesis, and the Vacant repo's decision and conclusion documents), and changed the following:

  • The denominators for zero.reminder_default_off were attached to the wrong batch: the denominators written next to "share of correct answer files about 82% → 65%" (A 119, C37 161, C37R 211) belong to the 10-02 Colab v3.7 batch, not the 09-26 local batch. The two batches are now written separately: the local batch uses the decision document's original wording, with no denominator attached; the Colab batch is A 97/119 = 81.5%, C37 123/161 = 76.4%, C37R 139/211 = 65.9%.
  • The lab-notes index showed the stat "55 claims with no measurable difference": the code had concatenated 5 and 5 as strings; the correct total is 10. And adding "No discernible difference" and "Same sign, unresolved" together in the first place violates the definitions of the verdict values. That cell has been removed and replaced with a verdict distribution bar that keeps the two values separate.
  • The page label for no_effect is now uniformly "No discernible difference" (the thesis's term). Previously the site also showed the variant "indistinguishable effect" (original: 「無可分辨效應」).
  • "34 claims" was stale: the home page, the archive, the docs index, the lab-notes index, the FAQ, the methods page, this page and four posts still said 34 claims; the current count is 58 (34 in the official index + 24 repo verdicts). Numbers on the hand-written pages are now computed by the build.
  • The defense-axis summary said "6 of 12 refuted": it is 3 refuted and 3 overstated, and those are two different verdict values.
  • The counts in the evidence ledger's "where the verdicts cluster" covered only the 34 claims in the official index; the denominator is now stated.
  • The source document for zero.v37_gguf_not_replicated is on the docs/gguf-replication-results branch of the Vacant repo, which as of 10-03 had not yet been merged into main; this is now noted in the source field.

#2026-10-03 — Zero-config v3.7 released (v0.9.0)

  • vacant-network v0.9.0 released, tag v0.9.0: the product line is zero-config — it works as soon as it's installed, with no configuration.
  • The results of all four zero-config batches are written up in Zero-config Vacant: in the DABstep paid batch neither model showed a measured difference (p=0.21 / 0.29); local 711 cells p=0.021 but concentrated in 6 tasks; Colab 920 tasks p=0.387; u274 p=1.0.
  • v3.7's p=0.0028 did not replicate once the engine was switched: Colab +11.3 pp (p=0.0028), LM Studio GGUF −0.4 pp (p=0.84). So we do not claim that "v3.7 makes the agent do better."
  • In the 920-task batch, 96% of send-backs were mistaken (455 of 472 send-backs happened only because sh run_tests.sh was not recognized) — this is exactly what v3.7's first defect fix addresses.
  • After u274's missing-file send-backs, of 31 runs: 0 correct, 17 wrong, 14 still with no file — this is what v3.7's third defect fix addresses.
  • New product line: accountable trace (Accountable trace). Two layers of attribution, five levels, three conditions for provable; end to end 33/33, 25/25, 16/16 (all L-fake).
  • Three gaps in the native platforms (Native platforms and silently not taking effect): W1 the key-variable allowlist; W2 opencode has no stop event (a full case history of 37 steps, zero verdicts); W3 the harness did not pass --dir.
  • Seven measurement errors in the A/B harness for the interactive TUI (plus two more that exist only in code comments), every one of which made the numbers look better than they really were.
  • Five silent defects in the universal intake point; among them, Codex refuses to start because of the leftover key profile = "vacant".
  • From this round on, the site's claim index has two tiers: the 34 claims imported from the project (claims.json), and the 24 transcribed from the Vacant repo's decision documents (claims-repo.json). The latter are marked "repo verdict" in the ledger, meaning they are not yet in the official index.

#2026-09-24 — Thesis finalized and full audit

  • The full thesis was finalized (Vacant_可究責層_畢業專題論文.docx / .pdf).
  • The data index _index/ was completed: 34 claims, and a sha256 manifest of 3,322 files (1,550,582 lines, 325,111,980 bytes).
  • Fact-check report completed: 8 ERRORs, 22 WARNs, 16 NITs.
  • This site was restructured: docs / lab notes / evidence ledger went live.

#2026-09-20 — "Blocked at the exit" refuted; the five-level vocabulary rewritten

The ABPI audit (391 cells) found:

CheckResult
Server-side conversationall 2,755 turns match
Receipt chain195 / 195 verify
Receipt gradeAll grade C
"Blocked at the exit"Does not hold

Fact: refused delivery is only a flag and an exit code. The outer script does not read the exit code, and in 7 of the 59 refused cells, the files were copied out and scored.

Correction: the project switched to the five-level vocabulary (Observed / Decided / Withheld / Mediated / Attested), and requires each level to declare its own coverage. The furthest we can claim publicly is Decided.

Design response: release / publish capability separation. publish is the only component able to write outward, and it does not read the exit code.

Same day: a field test of framework hooks showed that an agent can delete its own hook configuration → hooks can serve only as an enhancement, not as a root of trust. The first grade-A receipt from a real agent was signed.

#2026-09-18 — R532 amendments one and two

AMEND1: the analyzer checked only significance, not direction, and so labeled the result EFFECTIVE. That label is voided. Only RULED_OUT may be cited (this round's threshold: interval upper bound < +2.0 pp), and it is explicitly forbidden to say "the loop is harmful".

AMEND2: the premise of a "stronger model" does not hold — the 27B OFF arm at 74.8% vs the 12B at 75.2%. We did not actually compare against a stronger model.

A number was corrected at the same time: the gate cuts false delivery by roughly 40%, not by half. The original thesis said "halved," which was judged ERROR E6 — the two rates used different denominators (120/836 = 14.4% vs 211/836 = 25.2%).

#2026-09-13 — R460R: the headline claim loses to its own stability rule

Full details

H-MIX − CONFORM+5.83 / +4.17 / +0.83 / +2.50 / +4.31 pp
Holm p.6301 / .9165 / 1.0000 / .6776 / .9224
Passed0 / 5

Status: downgraded from "supported" to Same sign, unresolved.

Five mandatory accompanying statements: same sign all five times; zero passes of Holm; all five uncorrected intervals overlap R460; all five upper bounds are below +13.33; the cross-task-bank result also did not pass Holm.

Banned phrasings: "replication is stable," "replication failed," "the effect disappeared," "equivalent," "a tie," "the loop is useless." No pooling n, no averaging, no picking one run to report.

Same day: the main hypothesis of R529 across four task-bank sets (716 tasks) did not hold (+1.12 pp, Holm p=.3409). Only afterwards did we discover that the two hosts had different reasoning settings.

#2026-09-09 — The first sentence we were asked to delete

In the R440P audit on 2026-09-03, the "reviewer committee" role was deleted.

The analysis at the time (reviewer accuracy 0.7552 vs a zero-intelligence baseline of 0.7522, a gap of +0.29 pp) led the project to use the customer's own executable acceptance tests as the referee instead.

Execution replaces opinion; receipts replace votes.

#2026-09-03 — R440P: the gate is born; R440Q: a premise is refuted

  • R440P: removed the reviewer committee and the single-round revision (saving 3 + 1 calls per task), and switched to the visible acceptance gate.
  • R440Q: in LCB v1, 91/91 hidden test sets are supersets of the visible tests (V ⊆ GT), so "passes hidden but fails visible" is impossible by construction. This refuted the first premise of R440P §7.

Upgraded to a main conclusion:

If a requirement cannot be run, there is no free referee; the mechanism degrades into "ask a model" — and that is exactly the thing that measured worst.

#2026-09-01 — Two hypotheses proposed, then ruled out

  • H-A, ceiling: the 35b worker is too strong → switching to 12b will reveal the gain. Ruled out. ON vs OFF5 p = 1.0000.
  • H-B, hard tasks: MBPP+ is too easy → switching to LiveCodeBench will reveal the gain. Ruled out. ON vs OFF5 p = 0.4244.

hypotheses-excluded

#2026-08-30 — Experiment G: the committee loses to majority vote

The three pre-stated criteria of R437:

CriterionVerdict
① The gauge has a signal✓ 26.44%
② The three arms differ discerniblyNot measured
③ ON beats OFF5 at equal budget✓ The answer is no

A data-quality claim was downgraded at the same time:

"The first clean, complete dataset" → changed to "no known bug contamination, paired subset n=101." ON-arm infra_void 66/179 = 36.9%, equal_budget_comparison_valid = false.

Another counterexample: ON 75.25% vs OFF5 77.23% (−1.98 pp); after fixing an unrelated typing allowlist bug it became 84.16% vs 81.19% (+2.97 pp). The direction of the point estimate flipped because an unrelated bug was fixed.

#2026-08-06 — The "novel attack" claim withdrawn

The pulse attack is Srivatsa et al.'s (2005, TrustGuard) strategic oscillation; Hoffman et al. (2009, ACM Computing Surveys §5.4) list it as a named category, oscillation attack.

Even our headline had been anticipated: Srivatsa measured attacker cost ratios across four oscillation models of 1 : 2.28 : 2.08 : 1.36, and proved that an attacker who knows the memory window maxH does best by oscillating with period = maxH. Our "1.81×" is both older and weaker, and we had already judged it ourselves to be noise (permutation test p=0.115, statistical power 25%).

Six of the seven components already have equivalent prior work.

#2026-08-06 — Six pulse conclusions: three refuted, two downgraded

aggregate-decomposition

Original conclusionVerdict
Temporal structure barely affects the total take (1.81×)Overstated — decomposed, it is exposure 6.06× and efficiency 8.45× offsetting each other in opposite directions; statistical power 25%
The blind spot matters far more than parameter choicesOverstated — propped up by the degenerate endpoint blind=1.0; the interaction η²=0.264 is 4 times the main effect
Once the blind spot exceeds 0.5–0.75, pulsing does worse than sustained bad behaviorRefuted — paired difference −0.57, CI crosses 0; the measured 81/84/87 are all above 79
A larger audit cannot rescue the blind spotRefuted — at blind spot 0.5, audit 0.1→1.0 cuts the total take by 82%, p=5.5e-6
Caught once = permanently delistedOverstated — confounded; slash 0.9 comes back at round 177
At equal budget, crude beats pulseRefuted — E19 was never an equal-budget comparison; correctly tied at budget=2 it is 1.67 vs 0.97, p=0.0015

Two were kept: the detection probability is a single product, (1 − blind spot) × sampling rate × accuracy; and the blind spot × temporal structure interaction, η² = 0.264.

Also: the original report said 1,741 per-round records; the correct number is 1,740.

#2026-08-03 — The silent damage of config-digest

SimConfig.digest() is both the RNG seed and a hash of every field. The consequence: "adding one optional parameter" silently shifts every number in E1–E16.

Fix: fields left at their default values are excluded from the digest; the three digests for whitewash / patient / sybil are pinned so they reproduce bit for bit.

#2026-07-26 — Independent review: four sentences we were asked to delete

The review targeted commit f9a381a. Verdict: what this architecture currently increases is accountability, not trust.

Three necessary conditions; two do not hold:

StatusEvidence
① Signals cannot be cheaply forgedDoes not holdImpersonation inherits reputation: 0.50 → 0.7417
② Punishment actually bitesDoes not holdFor low scorers, slash is a reward: 0.0161 → 0.0312 → 0.0588 → 0.1053
③ The audit anchor is crediblePartly holdsThe sampling seed is hard-coded and publicly predictable

The four sentences we were asked to delete:

  1. "Teeth give wrongdoing real consequences" (original: 「牙齒讓作惡有真實後果」)
  2. "Credit follows the memory, not the body" (original: 「credit 跟記憶走、不跟身體走」)
  3. "Putting the substrate into the key blocks cross-brain laundering" (original: 「substrate 進 key 堵住跨腦洗白」)
  4. "Sybil attacks require paying a cost" (original: 「Sybil 攻擊需要付出成本」) (reason: the anonymous attack is 0.05 × N, linear; at N=200, total weight 10.0)

Two more bugs in the statistics tools:

  • The normal-approximation branch of wilcoxon_signed_rank_exact double-counted the tie correction: with n=30, 20 positive and 10 negative, the code said p=0.0288 (significant), while the exact value is 0.0987 (not significant).
  • The bootstrap CI used hash() as its seed, which is not reproducible across processes: the same data produced 53,478 and 1,628.

Fix branch: 4 P0 + 6 P1 items, TDD. 361 passed / 1 skipped (baseline 330), tests mapped to 29/29 review comments, attacks blocked 12/12 on both the Mac and the VM. 6 structural gaps were deliberately left, the first being "identity is still free."

#2026-07-26 — Entry cost: neither road should be taken

14 mechanism simulations. An exogenous entry fee is actively harmful (stake=0 blocks everything; stake=2 take 5.00, ROI 2.354), and endorsement with joint liability is a pure net loss (at λ=0.9 honest participants lose 0.691 while the gain is 0).

The real constraint is reviewer accuracy: at acc = 0, take 16.65, ROI 1.04 — the only cell in the whole table where "wrongdoing starts to pay."

Verdict: the premise was wrong.

#2026-07-09 — A record downgraded by ourselves

Going back to check the 2026-07-05 end-to-end record, we found that model I/O persistence had never taken effect at all (/tmp/vac_app.jsonl was only 357 bytes).

That record was reclassified from "evidence" to "single-case demonstration."

#2026-06-30 — Network contamination disclosed

The first a2hard round of the group-routing re-verification printed ✓, but a per-call I/O audit caught calls 20–23 (exactly good_1's 4 peer reviews) hitting Connection refused / reset by peer; the empty strings were matched as passes by the negated \bYES\b pattern, good_1's peer reputation was wrongly pushed to 0.50, peer agreement with ground truth fell from 88% to 75%, and the catch rate fell to 71%.

The apparent "−4%" was network noise.

What was fixed was the measurement, not the experiment: call() got retry×4. Clean rerun: 0 errors, 0 empty strings, 0 reasoning leaks, reviewers 16 YES + 16 NO.

#2026-06-28 — KS-1: both main validation designs killed

The two designs were sent into adversarial workflows of 17 and 10 agents respectively. Both were killed.

On a frozen, stateless language model, "making the consequences real" and "writing the consequences in the prompt so they sound more real" are the same intervention. Vacant's real mechanisms — signatures, decentralized peers, persistent reputation, lineage — not one of them entered any experimental arm.

This later became the methodological core of the whole project (the KS-1 invariant), and led directly to the experimental designs of the memory layer and the trust layer.

Citation errors in the same round: I-CALM's "hallucinations −50%, accuracy +2–8%" is not in the original paper; Trust Over Fear had no effect at baseline; 2510.08624 is from 2025; Tetlock's cheap talk was applied in the wrong context.

#2026-07-17 — External anchors registered

The original texts and sources of 114 external references were registered into the references folder, each one archived and registered with a SHA-256. The key passages of Appraisal of Human Trust (Ebrahimi et al.) were compared word for word, Chinese against English.

#2026-07-03 — The main line redefined as "memory is responsibility"

Research history has the full table of milestones.

#Major changes on the site side

DateChange
2026-10-07One shared navigation across the whole site; the docs and lab-notes indexes gained four "I want to…" entry points and the verdict distribution bar; the evidence ledger can be filtered by axis / verdict; the lab-notes index can be filtered by verdict; each page's header lists the verdicts the page cites; missing glyphs in the heading font filled in; old-site pages removed, with the 404 page pointing visitors back.
2026-09-24Site restructured into three layers: / (identity and story), /docs/ (in-depth documentation), /blog/ (lab notes). The 34 verdicts are computed from a single data file, and the sitemap covers every page.
2026-09-13Home page turned into the clay theatre; text cut to 53%.
2026-09-12The archive became a page of its own.
2026-09-07data/status.json is now produced by a script in the main Vacant repo, and outputs only independently recomputable quantities.

#Next

Last updated: · about 12 min read · this page cites 3 adjudicated claims

Shih Hsin UniversityDepartment of Information and Communications, Shih Hsin UniversityVacant

Department of Information and Communications, Shih Hsin University · 2026 capstone project · on-site exhibition