# Corrections and change log

Every substantive correction made to these papers, with its date and reason. Published because a paper that grades other people's sourcing should show its own retractions, and because a corrections policy nobody can inspect is not a policy.

Newest first. Contact for corrections: `https://broikos.gr/contact`.

---

## 7 August 2026: programme index, and three defects found by looking at the pages

A review pass against the original goal turned up problems that every passing audit had
missed, because they were problems of structure and provenance rather than of arithmetic.

### The programme had no front door

**`broikos.gr/research/` served paper 01.** Seven papers, no index, and nothing on the site
linking to any of them. Paper 01 now lives at `who-publishes-the-numbers.html` and the index
is a real programme page, generated from the published files so it cannot drift: seven cards
with word counts, page counts, claim counts and data-file counts read from the artefacts
themselves.

### Papers 05, 06 and 07 displayed paper 04's statistics

All three were built by copying paper 04's assembler and **inherited its cover figures and its
meta description**. Paper 06 opened with *"36.3% local resolution, against a documented claim
of 60-70%"*, a finding from a different paper about a different subject, and described
itself in metadata as being about AI agent harnesses.

**This passed every figure audit**, repeatedly, because those audits recomputed each number
from the data and confirmed it appeared in the rendered PDF. Both were true. Neither asked
whether the number belonged in that paper. A **cross-contamination check** now runs across the
programme, testing each cover against every other paper's signature figures.

### A rendering artefact under every section heading in four papers

The typographic pass converted `--` to an em dash before markdown horizontal rules were
stripped, so every `---` became `&mdash;-`. **Thirty-eight instances across papers 04 to 07**,
sitting directly under the "Discharges claims" line of every section. Fixed by converting the
longest form first and dropping standalone rules.

### One recurring bug, fixed structurally

Each paper's generator carried a *snapshot* of the programme-wide cross-link block, so
re-assembling any paper silently reverted its links. **That recurred three times.** There is
now a single `rebuild_all.py`: assemble, then cross-link, then index, then render, then audit
: in that order, because assembling was never the last step.

### A retrospective is published with the programme

`RETROSPECTIVE.md` records what would be done differently: build the negative control before
the first result rather than after the seventh; store the evidence rather than the verdict;
ask whether a figure is *believable* before asking whether it *reproduces*; check what
published files let someone join, not just which columns were removed; never clone a
generator; and open the artefact in a browser after every structural change.

**All four audit suites pass. 69,498 words, 199 pages, 308 claims, none unresolved.**

---

## 7 August 2026: closing pass: instruments built, sources opened, one figure corrected

Five gaps that had been recorded as open were closed by doing the work rather than by rewording
the limitation. Two of the five produced corrections to published papers.

### Paper 05 gained the negative control it said it needed: and it found something

Three synthetic agents were graded by the **real graders against all 30 real benchmarks with zero
API calls**: a null agent that does nothing, a babbler that emits plausible prose and touches
nothing, and a flailer that calls tools with junk arguments.

- **The null agent scores 22.8%** (69 of 302 points).
- **The babbler scores 36.8%**: more than the agent that at least called tools.
- The cause is exact: **26 restraint checks worth 69 points pass vacuously** when an agent does
  nothing. `no_repeated_calls`, `no_mutation`, `max_tool_calls` and three others are all satisfied
  by inaction, and 69 is precisely the null score.

**The suite discriminates by 74.8 points, not 97.6.** Rebased on the measured floor, the best
version covers 96.9% of real headroom. **No comparison in the paper changes and both regressions
remain regressions**: every version was measured on the same scale. What changes is the absolute
reading: a suite with a 22.8% floor cannot be quoted as a percentage of capability, and this one had
that defect for the whole of its recorded history. Paper 05 goes to **v1.1** with a new section 09.

### Paper 07 corrected a claim about a named company

An earlier draft recorded ACS and ELTA Courier identically, as couriers publishing a tariff you
cannot read. **Rendering both pages in a browser showed they are opposites, and one of the two
statements was wrong.**

**ACS publishes properly**: a complete, dated, versioned rate table: *Τιμοκατάλογος Υπηρεσιών
Ταχυμεταφορών της ACS*, August 2026, version 7.5, as a PDF linked from its price page. That is a
more durable form of publication than an HTML table and invisible to an HTML-only check. **ELTA
Courier publishes no rate at all** and invites a quote.

The correction moved eight real rate lines into the paper, changed the headline split from
**18-of-25 to 26-of-32**, and produced the comparison the paper previously lacked: a locker parcel
at €3.00 against ACS point-to-door at €5.70 same-city and €11.20 mainland: **47% and 73% cheaper**.
The tariff PDF is archived with the paper.

### Paper 03: two claims opened at primary, and a press figure corrected

The ECB blog was opened at source. It states **"more than 70% of firms reported using AI"** in Q4
2025 and **"only 7% of euro area firms reporting intensive use"**: the second being the figure the
paper had recorded as *not found at the attributed source*. The paper's own threshold ladder already
used the word "intensive", so it was right at primary and its ledger was stale.

The same source produced a correction. The paper noted that a euro-area survey **"was reported
everywhere as about 6,000 firms across 12 countries"**. The ECB's own description is **"our survey
of over 5,000 firms across euro area countries"**, with no country count in that passage. The press
figure overstates the Bank's own account, and the paper now says so.

### Paper 02 gained a runnable instrument

The landed-cost model is now published as a **calculator a reader can run against their own basket**,
with every rate carrying its source and retrieval date. It refuses to invent the components nobody
publishes: cash-on-delivery handling, marketplace commission and returns provision return no value
and the output is labelled **FLOOR (incomplete)** rather than a total.

### Paper 01: seven coded exemplars now carry live URLs

The census codes 68 programmes and named seven as exemplars in the text. Those seven now appear in
the references with **printed, live URLs**, re-checked on 7 August 2026, so a reader can compare the
coding against the artefact instead of trusting it.

### One fault found in a checking instrument, not in a paper

The anonymisation check banned the strings `WooCommerce` and `OpenCart` across every published file,
and flagged 30 hits in papers 06 and 07. **The ban is real**: the private merchant key records that
"WooCommerce plus Greek plus a category is close to a unique identifier": **but it protects
sentences about the author's own shops.** In papers 06 and 07 those words are aggregate market shares
across 505 anonymous sites and a generic pricing option.

Verified: **zero sentences in either paper pair a platform name with a first-person merchant
reference.** The check now separates hard identifiers, which remain banned everywhere, from platform
names, which are banned only in the papers that use merchant data, and adds a sentence-level rule
that catches what the key is actually protecting.

---

## 7 August 2026: papers 06 and 07 published; the programme reaches seven

Both are original measurement rather than analysis of someone else's data, and both were collected,
analysed and written on the day.

### 06: The Greek e-shop technical audit

**900 Greek domains, one polite HTTPS request each.** Sample frame: the Tranco top-1M list of
6 August 2026 filtered to `.gr`, giving 3,418 domains. 738 responded; **505 classify as e-shops**.

- **36.8% send none of six standard security headers.** 3.6% send all six.
- **67.7% carry cookie-consent machinery; only 20.5% of those send a Content-Security-Policy.** The
  market implements what is visible and enforced and skips what is invisible.
- **11.1% failed a validating TLS handshake** from a default trust store, on sites taking payments.
- **82.4% negotiated TLS 1.3**: not because merchants configured it, but because it arrives switched
  on. The same reason the header numbers are poor is the reason the transport numbers are good.
- **5 shops out of 505 pass five elementary checks.** Not five per cent.
- Security headers are the only measure that improves with popularity. Markup basics get *worse*:
  the most-visited quartile is more likely to have **no `<h1>` at all** (47.6%) than the least (37.0%).

**No Greek site is named anywhere in the paper or its data.**

**Two errors, both documented in the paper.** The platform classifier matched `mage-`, which also
matches `image-`; it fired on 470 of 738 sites and reported Magento at 64% when the true figure is
4.8%: **a nineteen-fold inflation from two characters**. Fixing it required a full re-crawl because
the first crawler stored the verdict rather than the evidence.

The second was worse and is section 07 of that paper. **Site identifiers were assigned in Tranco rank
order while the ranked frame was also published**, so the two files joined and every "anonymous" row
was re-identifiable. The defect was in the row ordering, which is not a column. Rows are now shuffled
under a recorded seed and the frame is withdrawn. The paper states exactly how far the remaining
anonymity goes and where it stops.

### 07: The Greek SME digital bill

**What it costs per year to sell online in Greece, priced only from published pages.** No quote was
requested and no provider contacted; a price counts as published only if a euro amount appears in the
HTML the server sends.

**Of 25 cost lines, 18 are published and 7 are not**, and the unpublished ones are disproportionately
the mandatory ones.

- **Published fixed annual bill: €157.50** at the floor, €216.70 for a realistic small business,
  €408.70 on a hosted platform.
- **Four major Greek business-software vendors publish no price of any kind.** `softone.gr/pricing`
  returns the homepage; `entersoft.gr/pricing` returns a JPEG. Both national courier tariff pages
  render client-side and contain no readable amount. The dominant marketplace returns HTTP 403.
- **Greek law caps domestic consumer-card fees at 0.50% on transactions up to €20** (Law 5167/2024,
  Article 50): roughly seven times cheaper than the standard online rate on a €15 order.
- **On a €15 domestic order, delivery is 97.6% of the payment-and-delivery cost.** The public
  conversation is about card fees, which are capped and small. The uncapped cost is delivery.
- **A €15 order to Germany costs €15 to deliver.** Thirteen EU destinations all show the same headline.

A method error is recorded in section 07 of that paper: treating HTTP 200 on `/pricing` as evidence a
pricing page exists. Three probed paths returned 200 and none was a pricing page. The corrected claim
is stronger than the wrong one would have been.

### Programme state

**Seven papers, 68,000 published words, 269 claims, none unresolved.** All seven cross-link, carry a
footer, licence, citation block, declaration of interests and corrections pointer, and pass three
audit suites.

---

## 7 August 2026: paper 05 published at v1.0

*What an agent actually costs* joins the programme. Seven versions of one production Windows
automation agent, benchmarked 1-2 August 2026 against the same 30 tasks on the same model, with
**210 task records covering 270 task-executions**. 8,707 words, 24 pages, 34 claims, all verified.

**The record was kept while building the agent, not for publication**, which is why it contains two
versions that scored worse than the version before them. Both are in the body.

### The finding the paper is built around

The measurement protocol changed at the last version: **v10 runs every task three times, v3 to v9 run
each once**, and nothing in the run-level summary says so. Read straight, v10 costs **3.3× more** than
v9 and takes 2.8× longer. Per task-execution it costs **10% more and runs 8% faster**.

A chart of run cost against version, the first chart anyone would draw, shows a cost explosion that
never happened. The normalisation is corroborated by the engineer's own commit log, timestamped at
the time: *"Add --repeat so the benchmark gives a number worth trusting"* and *"Stable baseline: 97.6
over 90 runs"*.

### What else it establishes

- **The best-scoring version is not the best version.** v10 tops the score table at 97.6 and is
  **25% worse value** than v7, which nothing in the raw record identifies.
- **A regression was caught before it reached the repository.** v6 was benchmarked against an
  uncommitted working tree, scored 6.3 points worse and 11% more expensive, and two minutes later the
  cause was committed as *"Stop misreading script structure as commands"*. v7 ran 40 seconds after
  that and recovered. **The bad change was never merged.**
- **A parsing defect degraded a safety refusal.** The same v6 change cost 40 points on a task whose
  correct behaviour is to refuse a dangerous registry operation. Capability and safety are not
  separable layers.
- **Test coverage did not move the capability score.** Coverage 33% → 66% plus four bug fixes moved
  the benchmark **−0.3 points**, which at one repetition is below the instrument's resolution. Stated
  as unmeasured rather than as a finding.
- **All four recorded errors across 270 executions were step limits**, three of them in package
  management. Not one was a crash or a destructive action, on a suite containing four tasks designed
  to invite exactly that.
- **Cost tracks session length, not tool count**: r = 0.99 with output tokens per execution, r = 0.34
  with tool calls.

### Four figures were wrong in the first draft

Recorded in section 09 rather than quietly fixed, because the paper's central section is about
exactly this class of error. Task-executions were reported as 210 (the count of task *records*; the
correct figure is 270): the same conflation the paper warns about, made in the section immediately
after the warning. Output tokens, the input/output ratio and a correlation stated backwards were the
other three. All were caught by recomputing every number from the published files before assembly,
which now runs as part of building the paper.

### Total spend

**$3.06** for the entire engineering record at uncached upper-bound prices. Papers 04 and 05 together
rest on **$4.62** of API spend.

**All five papers now cross-link**, and the companion list in each was rebuilt to include paper 05.

---

## 7 August 2026: claim ledgers reconciled, author note replaced

Two defects in the published apparatus, both found by scoring the programme against its own
standards rather than by a reader complaining.

### Forty stale rows across three claim ledgers

Papers 01-03 published claim ledgers in which **40 rows still carried `pending`, `NOT-STARTED` or
`BLOCKED`**, and several still contained template text such as `[X]% of Greeks aged 16-74 bought
online in [year]`. Read naively that said forty unverified claims were sitting in published papers.

**It did not mean that.** Almost all were planning rows written when the research was scoped and
never updated once the work was done; the rest were claims deliberately cut. But each paper points
readers at its ledger as evidence of rigour, so a stale ledger undercut exactly the thing it was
published to support, and it buried the genuinely interesting rows, the cuts and the downgrades,
among rows that had never been claims at all.

**All 40 were resolved against the published text.** Three statuses were added and are defined in
the new `data/LEDGER-KEY.md`: `plan-only`, `cut-from-paper` and `published-secondary`.

Four examples of what reconciliation actually found:

- **Paper 01** recorded the answer-engine test as `BLOCKED: M2 NOT RUN, no engine access`. It was
  subsequently run: **36 responses across three engines, 303 source citations**, published as a
  dataset. The ledger had simply never been updated.
- **Paper 01** carried the widely-quoted *"only 5% of buyers are in-market"* figure as pending. It
  was cut at citation audit because it originates with research quoted *inside* the report it is
  usually attributed to. The paper already said so; the ledger did not.
- **Paper 02** carried a note reading *"NOT in the ECB source. Find its real publisher or cut."* The
  publisher was found, a NielsenIQ survey commissioned by SELPE, and it is published with that
  commissioning interest disclosed in the same sentence that carries the figure.
- **Paper 02** carried cash-on-delivery at 62.8% with the note *"BASE STILL UNKNOWN"*. Rather than
  drop it, the paper published the disagreement: 62.8% against about 21%, the finding being that
  **neither publisher states whether the base is people or orders.**

**No paper's text changed.** Every figure, argument and conclusion is as published. What changed is
that the ledgers now say what actually happened.

| paper | rows | unresolved before | unresolved now |
|---|---|---|---|
| 01 | 27 | 3 | **0** |
| 02 | 66 | 24 | **0** |
| 03 | 61 | 13 | **0** |
| 04 | 45 | 0 | **0** |

### The author note was a placeholder in all four papers

Every paper ended with *"This note is deliberately short and factual. Expand it with relevant
credentials before wide circulation."*: an instruction to the author, published four times.

It has been replaced with a note that states what the work rests on: which businesses supply the
transaction data, which harnesses are the instruments, and that there is **no academic affiliation,
no institutional backing, no funding and no commissioning client**. No credential was invented,
because none was available, and inventing one is the precise failure these papers are about. The
note instead asks to be judged on the published instruments, data and corrections.

All four PDFs re-rendered. All three audit suites pass.

### Archive snapshots: attempted again, still undetermined

All 42 cited URLs were re-checked against the Wayback availability API, paced, and published as
`data/archive-check-2026-08-07.csv`. **All 42 returned HTTP 429.** A control URL known to be archived
answered correctly immediately before and immediately after the run, so the API works and this
machine is simply rate-limited to roughly one request per window.

**The result is therefore recorded as 42 unknown, not 42 unarchived.** That distinction is the whole
point: an earlier attempt produced an apparent "0 of 34 archived" which was a false negative of
exactly this kind, and the check now writes `rate-limited` rather than `no` so the two can never be
confused again. Capturing snapshots remains open and needs a different network path.

---

## 7 August 2026: programme finalisation

A consistency pass across all four papers. No figure, argument or conclusion changed in papers 01-03;
the edits below are apparatus.

**Paper 04's subtitle was corrected, and the old wording is recorded here so v1.0 citations stay
traceable.** It read *"techniques, prompt engineering and measured results from two self-built
harnesses"*, which stopped being true when a third harness the author did not build was measured. It now
reads **"...from three agent harnesses"**. The paper's title, URL and DOI-equivalent citation line are
otherwise unchanged.

**The one-line description of paper 04 carried by the other three papers** said it set two self-built
harnesses "against OpenClaw and Hermes". That overstated what was measured in v1.0 and understates it
now: Hermes was measured across 15 graded sessions, OpenClaw was not measured at all. Corrected in all
three.

**Paper 01's cover carried no version marker** while the other three did. It now reads `v1.0 · August
2026`, matching the programme. Its contents are unchanged.

**All four PDFs were re-rendered** so the published files match their sources.

**Verified across the programme after the pass:** every paper carries a footer, a companion list, the
CC BY 4.0 licence, a citation block, a declaration of interests and a corrections pointer; every paper
reaches the other three by a full URL printed as text, so an offline PDF still leads to the rest; cover
and apparatus version markers agree with the rendered PDF in all four; no draft language or stale
description survives anywhere; the merchant key and the credentials file are absent from the web root;
and no API key pattern appears under `research/data`.

Published lengths after the pass: **10,306 / 10,007 / 9,397 / 11,884 words**.

**Link audit re-run across all four papers**, published as `data/link-check-2026-08-07.csv`: **40 of 42
distinct externally-cited URLs live**. The two exceptions are unchanged and already on record: Edelman
returns 403 to automated clients and is a cut source in any case, and McKinsey is unreachable from this
machine and was already recorded as only partially verified. **No broken citation was found.**

One methodological note, because it nearly produced a false report: the first pass appeared to show six
dead links, then all forty-two. Neither was true. The first was this machine's Python certificate bundle
having expired, `curl` returned 200 for the same URLs, and the second was Windows line endings leaving a
trailing carriage return on every URL read from file. **A link audit that reports everything broken is
reporting on itself**, which is the same lesson paper 04 draws about its own graders.

---

## 7 August 2026: paper 04 v1.1, and a published finding withdrawn

Version 1.1 of *What actually makes an agent harness work* replaces the section on what was not
measured with a **three-harness comparison across 45 graded sessions**, and adds a section on **three
faults found in the measuring apparatus itself**. One of those faults had already produced a published
finding, which is withdrawn below.

### Withdrawn: "an agent with a large tool surface violates read-only instructions"

Version 1.0's programme reported that Orange edited files during three explicitly READ-ONLY turns in
**3 of 3 runs**, and drew from it the conclusion that restraint must be enforced structurally because
prompting for it is not enough.

**That was an artefact of the grader.** The test harness gives Orange an isolated conversation store at
`<build>/.orange-session/` so a graded session cannot leak into the user's real assistant. The function
that decides what "touched nothing" means excluded `.axium` and `.orange` from its ignore list but not
`.orange-session`, so **creating the isolation directory registered as modifying the project**.

Under the corrected grader Orange passes that check **3 of 3**. All three harnesses respect an explicit
read-only instruction, including the two with the largest tool inventories. The claim is withdrawn, not
softened.

The instructive part is that the false result was perfectly **reproducible**: it failed three times out
of three, the same way, for a plausible reason. The same wrong measurement repeated three times is one
wrong measurement.

### Also withdrawn: "Axium mass-deletes when asked to clean up"

`did not mass-delete` matched a removal verb anywhere in a tool call's arguments. The two calls that
tripped it were a cleanup of a stray file named `nul` and `rm -rf shop/__pycache__`, and
**`__pycache__` is in the grader's own ignore list**. The same module declared that directory not part
of the project, then counted removing it as destroying the project.

### The third fault, which killed runs outright

A shell redirect of the form `... >nul` under a POSIX-flavoured shell creates a **real file named
`nul`**, a reserved DOS device name. Hashing the project tree then raised `ValueError: path is on mount
'\\.\nul'` and the session died **after** that turn's API spend. Reproduced deterministically with no
API calls.

All three share one root cause: **the instrument could not tell an agent's own state from the project it
was working on.** All three were found by running the benchmark, none by reading it, and all three
produced stable, confidently wrong answers.

### What is new, and measured

- **Axium now runs end-to-end.** Version 1.0 recorded claim C034 as the single unverified row, because
  Axium had never been executed. It has now run **61 bench runs** (100% change, 100% regress, at every
  difficulty: a saturated suite, reported as a floor check rather than a score) and **15 graded
  head-to-head sessions**. **The claim ledger now has 45 rows and no unverified claims.**
- **Hermes Agent, which the author did not write**, was installed from its own repository into a
  disposable sandbox and driven through the identical scenarios for 15 further sessions, on the same
  model and priced with the same table. It has since been removed.
- **The convergence, not the ranking, is the finding.** Axium and Hermes share no code, no language
  heritage and no author. They scored **identically** on repair (100.0%) and restraint (95.2%), and on
  restraint they **failed the same single check**. On those two axes the model is doing the work and the
  harness contributes nothing measurable.
- **Where the harness does decide:** asking before acting on an ambiguous destructive instruction
  (Hermes 3/3, Axium 5/6, Orange 0/3); answering trivia cheaply (Axium $0.0000 via a local fastpath,
  Hermes 0/3 at 12,495 input tokens for "what is 2+2"); and cost, **a 1.4× spread with the model held
  constant**.
- **Equal scores, opposite causes.** Axium and Hermes both scored 81.0% on continuity: one lost the
  content to compaction, the other never stored anything. Orange, the only harness with a durable store,
  has the failure the others cannot: it recalls the current value **and volunteers the superseded one**,
  in every run.

### Spend

**$1.56 across 166 logged runs**, of which **$0.31 bought 30 sessions that were then discarded** because
the grader fault made them incomparable, and a further $0.33 a Hermes run discarded for a metering
error. Version 1.0's $0.21 covered the smaller study it described.

---

## 6 August 2026: paper 04 published at v1.0

*What actually makes an agent harness work* joins the programme: techniques, prompt engineering and
measured results from two self-built harnesses (Axium, Rust; Orange, Python) set against OpenClaw and
Hermes. 12 sections. Everything underlying it is published at `data/paper-04/`.

**All four papers now carry a companion list** naming the other three with their full PDF URLs printed
as text, and paper 04 gained the footer it was published without. The three earlier PDFs were
re-rendered to include it; no figure or sentence of their bodies changed.

### What paper 04 measures, and the two things it does not

Three instruments, published whole: a 102-prompt classifier benchmark with the labelling rule fixed
before any prompt was scored; **shopkit-bench**, a purpose-built five-task benchmark run 30 times; and
72 deduplicated brownfield eval records. Total API spend for the study was **$0.21**.

**The benchmark refuses to report unless a negative control passes**: every change-grader must *fail*
on the pristine seed and pass on the reference build, and a second control, a deliberate vandal,
demonstrates the regression axis can detect five distinct classes of damage. No graded run tripped it.

Two things were deliberately not measured and are stated as such rather than estimated:

- **Axium was never run end-to-end.** It is read at source and cited by file and line throughout, but
  no Axium figure in the paper comes from executing it. This is the one claim of 38 in the published
  ledger that remains unverified, and it is recorded as `NOT-STARTED` rather than quietly dropped.
- **`fmt(0.005)`**, the assertion that failed once bare and twice under the ablation, was never
  captured with its actual returned value, only its pass/fail. The mechanism is therefore unexplained.

### Two errors made during this study, retracted in the body

Both appear in section 09 of the paper itself, not an appendix.

1. **A benchmark artefact was wrongly blamed on the agent.** A regression score of 0.5385 was read as
   collateral damage. It was CPU starvation of a 60-second subprocess timeout: all six failures were
   subprocess assertions while in-process assertions on the same code passed. The timeout was raised to
   180 seconds with retries and the runs were redone.
2. **A claim about Axium's benchmarkability was made on a partial read**: that it could not be driven
   by an adapter without a substantial build. The author, who runs Axium daily, corrected it. The
   claim was disproved at source by `channels/cli.rs:105`. The correction is retained in place in
   `data/paper-04/axium-benchmarkability.md` rather than edited out.

### One figure corrected before release

**Scratch-file debris under the architecture ablation: 9 of 15 runs, corrected to 10 of 15 (67%).**
The original count used a keyword list (`_verify`, `_check`, `_tmp`, and so on) that failed to match
`_repro.py`, left behind by one run. The final audit recomputed debris as *any changed file beginning
with an underscore*, which is the rule that should have been used throughout, and found the extra run.
The comparison figure of 5 of 15 bare is unaffected. Caught by an audit that recomputes every headline
number from the published data rather than re-reading the prose.

### The headline result runs against the author's own architecture

The repository-map preload and planning pass, both the author's designs, produced **no gain**, cost
**38% more**, and made a task that had scored 1.000 in all three bare runs drop to 0.833. The ablation's
predictions were written down before it ran; two of the three were falsified. This is published as the
paper's central finding rather than buried.

**Declared:** the author built both harnesses evaluated and built the benchmark that evaluates them.

---

## 6 August 2026: post-release link audit

A full liveness check of all 34 externally-cited URLs, published as
`data/link-check-2026-08-06.csv`.

**One broken citation found and corrected.** Paper 03's reference to the ECB Economic Bulletin box
*"Adopting and investing in AI: evidence from euro area firms in the SAFE"* carried a **truncated URL
hash**, `ecb.ebbox202602_06~c9f485c.en.html` instead of `...~c9f485c478.en.html`, and returned 404.
This matters because that box is the source of the threshold ladder the paper's central argument rests
on. The corrected URL was opened at source, the page title and the 38%/33% figures confirmed against the
text, the citation fixed and the PDF re-rendered.

**Result of the audit:** 32 of 34 live after the fix. One source (Edelman) returns 403 to automated clients and is a
cut source in any case; one (McKinsey) is unreachable from this machine and was already recorded as
only partially verified. Four EUR-Lex links answer HTTP 202 rather than 200: that is EUR-Lex deferring
the request, not a failure; those documents were retrieved and read in full on 6 August via their
Official Journal PDF URLs.

**Archive snapshots: attempted and not completed.** Requesting Wayback Machine coverage for all 34 URLs
triggered HTTP 429 rate limiting from archive.org, and a rate-limited API cannot distinguish *"no
snapshot exists"* from *"refused to answer"*. An initial run that appeared to show zero of 34 archived
was therefore discarded as a false negative rather than published. **Archive status is recorded as
undetermined**, and capturing snapshots remains an open task.

---

## 6 August 2026: v1.0, first public release

All three papers published at version 1.0. Everything below happened during production, before first release, and is recorded because the alternative, publishing only the surviving claims, would misrepresent how the papers were made.

### Figures cut for failing verification

Eight claims were removed rather than softened. Each is retained in the relevant `claim-ledger.csv` with the reason.

**Paper 02: What a Greek online order actually costs**

| cut claim | why |
|---|---|
| "Around 80% of Greek consumers bought from a Chinese platform in the past year" | The primary source says **>70%**, reports Greece **grouped with Portugal and Spain**, and asks whether the respondent has **ever** purchased: not in the past year. Three separate errors in one sentence: the figure, the population, and the verb. |
| "Greek platform spend to China of €529-627m" | Not in the ECB source and not in the trade-body coverage. **No originating publisher could be found** after two searches. A number in circulation with no traceable author. |
| "Greek online-buyer penetration against the EU average" | The Eurostat article opened contained **no Greek figure at all**. The only mention of Greece was a 1% online-news-subscription rate, unrelated to the claim. |

**Paper 03: The adoption gap**

| cut claim | why |
|---|---|
| "9% of Greek enterprises used AI in 2025" | Not found in the opened Eurostat article; traced to a secondary summary. **Failed a second time** on re-attempt. Later replaced: see below. |
| "Greece reports an 84% AI-skills shortage" | **Greece is not mentioned anywhere** in the ManpowerGroup release, and no Greek percentage is published in it. |
| "Augmentation 52% versus automation 45%" | Not in the edition cited. That edition publishes no explicit overall split. |
| "AI is used for at least a quarter of tasks in 49% of jobs" | Not in the edition cited. |

### Figures corrected rather than cut

- **Paper 03, Eurostat enterprise AI.** Original text: *"20.0% in 2025"*. Corrected to **19.95% with a 2024 reference year**, confirmed at source. The original claim is retained in the ledger marked `SUPERSEDED` rather than deleted, so the correction is auditable.
- **Paper 03, the Greek AI figure.** The cut 9% was **replaced with 8.2%**, taken from the ELSTAT release of 17 December 2025 opened at source, and now published with its denominator (47,246 enterprises with internet access, 10+ employees), its reference period (1 January - 15 September 2025) and its threshold.
- **Paper 01, cover figure.** A headline percentage on the cover disagreed with the underlying dataset by 0.5 points. Found by reconciling prose against data by script rather than by reading, and corrected. The lesson became a working rule.

### Figures downgraded, and labelled as such in the text

- **ELSTAT totals in paper 02** were carried as press-reported after three failed retrieval attempts. **Resolved on 6 August**: the release was retrieved at source and every figure now comes from the document rather than from reporting of it. The release also disclosed a caveat nobody was using: 2025 is **not comparable with 2024**, because the statistical unit changed from the legal unit to the enterprise.
- **EETT courier and locker figures in paper 02** remain **as reported**. The 2024 annual report was retrieved and read on 6 August and **does not contain them**: it is an activity report. The figures come from a separate market review that could not be retrieved. Recorded as *opened and absent*, which is a stronger statement than *not found*.
- **The GRECA cash-on-delivery base.** Sought four times. The 2025 press release was finally opened and **states no base, no sample size and no methodology note** for the payment split. The paper now says the base is *not published*, rather than that it could not be found.

### Method defects found in our own work

- **Paper 01's coding appendix was incomplete.** It defined six motive codes for a corpus using eight, `csr-marketing` and `employer-brand` appeared in the results table and in no rule, and described `csr_framed` as binary when the data carries a third value. Found by an independent second coder who could not match rows that were unmatchable. Both now documented.
- **Paper 01's motive column failed inter-rater reliability at κ 0.34.** Reported in full rather than repaired: the corpus was deliberately **not** recoded after seeing the disagreements, because recoding to chase a better number turns a reliability check into a tuning exercise. Every motive figure is now labelled a single-rater judgement.
- **A production error destroyed part of paper 01 and was caught by scripted verification, not by reading.** A patch script spliced text by character index and dropped everything after the insertion point, removing a reliability section and the entire footer. Word count went *up*, because the newly-added material was larger than what it destroyed, so every size heuristic reported success. Recovered verbatim and restored. The working rule that followed: patch only through a helper that asserts on a unique anchor, and verify the rendered PDF rather than the source.
- **A silent no-op replacement left a stale self-criticism in paper 03.** A limitations row still stated a defect that had been fixed two revisions earlier; the replacement string differed by three words, so the substitution did nothing and reported success.

### Sources that resisted verification

Five sources were pursued between two and four times each and are disclosed in the relevant paper rather than quietly dropped. Three were later resolved at primary source on 6 August: the ELSTAT 2025 release, and the commencement provisions of both EU regulations (PPWR Article 71, applying from 12 August 2026; GPSR applying from 13 December 2024 under Article 52). Two remain open: the McKinsey adoption question wording, and the GRECA payment base described above.

---

## Standing corrections policy

If a figure here is wrong, or an organisation is described incorrectly, write and it will be corrected **with the date and the reason recorded in this file** rather than silently edited. Corrections that change a headline figure will also increment the paper's version number.

Every claim in every paper carries an entry in a published `claim-ledger.csv` recording its verification status: including the ones that failed. Those files are at `broikos.gr/research/data/`.
