Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 74 additions & 0 deletions docs/evidence/ai-answer-readiness-2026-08-09.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,3 +95,77 @@ now declares, per controlled question, the preferred source page an engine
should read first, and CI fails if that declaration drifts, unmaps a
question, names an unserved page, or lets a price question point anywhere
but `pricing.html`.

### Closeout re-verification (added 2026-08-11)

Re-verified against the current origin/main head (8b42e0a,
"docs(evidence): close out apple touch icon finding 98a7bf8e08fc against
current main and live (#77)") after thirteen further commits touched main
since the 2026-08-09 closeout. Four of them touched the public surface or
Comment on lines +101 to +104

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Update the claimed current-main baseline

The reviewed commit's first parent is 16efd20, so 8b42e0a is no longer the current-main head against which this receipt lands, and there are fourteen—not thirteen—commits after 95d2248. Even though the omitted commit only changes another evidence document, this makes the re-verification's provenance and stated comparison range inaccurate; update the base hash/count and account for 16efd20 before describing the receipt as verified against current main.

Useful? React with 👍 / 👎.

the guard file: c5e2f2b (de-index the retired Agent Desk: `agent-desk.html`
plus a new `check-site.mjs` guard block), ac05bec (mobile tap targets:
CSS-only plus a new tap-target guard block in `check-site.mjs`), f9f0b0f
(footer daily-reads link on home), 1cc7a4e (audit-page canonical/og:url/
JSON-LD cleanup). None regressed the Answer Readiness declaration:
`public/llms.txt`, `public/offer.md`, `scripts/test-agent-ui.mjs` and
`evidence-fixtures/ai-search/` are byte-identical to the closeout commit
95d2248 (`git diff 95d2248..HEAD -- <file>` is empty for each), and the only
`check-site.mjs` edit in that range touching the guard's neighborhood is a
comment refresh in 1cc7a4e on the sitemap-membership note — the
`ANSWER_READINESS_HEADING` section, its question-coverage loop, its
exactly-one-page rule, its served-page membership check, its price-ownership
rule and its mirror check are all unchanged. The audit-page embed was not
touched (1cc7a4e changes only canonical, `og:url` and JSON-LD `@id`/`url`
lines).

Three checks:

1. Source checks on this head: `npm run check` passes — the "AI Answer
Readiness (dogfood 4473a99a9bc9)" guard in `scripts/check-site.mjs`
requires both `llms.txt` and `offer.md` to carry the `## Answer
Readiness: Preferred Source Pages` section, maps every controlled
question in the fixture to exactly one served page (sitemap membership,
either spelling), forces the price questions (q2, q7) to `pricing.html`,
and fails if `offer.md` mirrors a different page — and the full `npm

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Stop claiming the mirror guard rejects every divergent mapping

The inspected checks do not establish this claim: both scripts/check-site.mjs and the named UI subtest only require the matching offer.md line to includes(preferred). If that line retains the preferred URL but adds a second conflicting URL, both checks still pass even though the files no longer carry identical question-to-page mappings. Either compare the parsed URL sets exactly or avoid presenting mirror drift as CI-guarded.

Useful? React with 👍 / 👎.

test` suite passes (check, headings, sitemap, worker 53/53, UI 16/16
including the "every controlled question maps to a preferred source
page" subtest, contract 8/8; 90 tests total). `git diff --check` is
clean.

2. Fresh live measurement of the deployed site (2026-08-11, HTTPS fetch
against `https://tinystudio.io`, same deterministic checks the source
guard runs, applied to the served bytes):

| URL | HTTP | content-type | CSP header | bytes | Answer Readiness section |
|---|---|---|---|---|---|
| `/llms.txt` | 200 | text/plain | yes | 4076 | present |
| `/offer.md` | 200 | text/markdown | yes | 3319 | present |
| `/sitemap.xml` | 200 | — | — | — | used for membership |

The live section carries all seven controlled questions, each mapped to
exactly one served page: q1 → `https://tinystudio.io/` (homepage), q2 →
`https://tinystudio.io/pricing.html`, q3 → `https://tinystudio.io/audit.html`,
q4 → `https://tinystudio.io/audit.html`, q5 →
`https://tinystudio.io/` (homepage), q6 → `https://tinystudio.io/audit.html`,
q7 → `https://tinystudio.io/pricing.html`. Both price questions point at
`pricing.html`, which owns the price; every mapped page is a served page
per the live sitemap; and `offer.md` mirrors the identical
Comment on lines +145 to +152

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Point preferred sources at non-redirecting URLs

The claimed live membership is incorrect for five of the seven mappings: public/sitemap.xml contains the clean /audit and /pricing URLs, while the repository's verified live receipt in docs/evidence/internal-links-2026-08-09.md records that every .html form returns 307 to its clean twin. The source guard only passes because it manufactures .html aliases from sitemap entries rather than probing them. Closing the answer-readiness finding on this basis preserves redirecting preferred-source URLs; update the declarations and guard to use the final clean URLs before claiming every mapping is a served sitemap page.

Useful? React with 👍 / 👎.

question-to-page mapping. The served bytes are byte-identical to
`public/llms.txt` and `public/offer.md` on this head, so the deployed
pair and the guarded source cannot drift without changing the served
bytes themselves.

3. The fixture is untouched: `evidence-fixtures/ai-search/controlled-questions.json`
and `evidence.json` remain byte-identical to the closeout commit, so the
checks above ran against the same question registry the 2026-08-09 pass
used.

## Limitation (unchanged)

This is still a repository-side declaration plus a served-bytes measurement,
not a live engine run: nothing here claims that any engine now cites the
preferred page or answers the price. That question remains a future
controlled re-run recorded through the same fixture, with a captured answer,
cited sources and a strict state — and the tracker cannot re-open the
declaration itself, because it is now guarded on both sides of the deploy
boundary.
Comment on lines +169 to +171

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Remove the unsupported deploy-side guard claim

A one-time live byte comparison is a measurement, not a guard on the deployment side. The inspected CI workflow only runs repository tests, a render-blocking browser check, and wrangler deploy --dry-run; nothing continuously compares live /llms.txt and /offer.md with the checked-out source or blocks/reopens on drift. A stale or separately deployed Worker can therefore diverge after this receipt, so stating that the tracker cannot reopen the finding because both sides are guarded overstates the protection.

Useful? React with 👍 / 👎.

Loading