Skip to content
Merged
Show file tree
Hide file tree
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
52 changes: 52 additions & 0 deletions .lane/reports/fix-pagehead-self-decl-reverify-lane1-20260821.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Lane 1 report: /agents /pricing /specimen page-head self-declaration re-verify (2026-08-21)

Item: "[unreviewed-by-opus] /agents, /pricing, /specimen page-head canonical
+ og:url + JSON-LD WebPage @id all self-decl" (item id `c6f9cf8040`).

## Result

Source: **already fixed and guarded on origin/main** (PR #218 / `ed2b1a9`,
merged 2026-08-19; preceded by `df69628` and `3ff1398`). All three pages
self-declare their clean URLs in canonical, `og:url`, and JSON-LD `WebPage`
`@id`/`url`. `npm run check` passes.

Live: **still stale** — the deployed site serves the pre-fix `.html` head
declarations on exactly these three pages, verified 2026-08-21 with
cache-busted `curl` probes:

```
/agents -> canonical https://tinystudio.io/agents.html (og:url, @id same)
/pricing -> canonical https://tinystudio.io/pricing.html (og:url, @id same)
/specimen -> canonical https://tinystudio.io/specimen.html(og:url, @id same)
```

The live deployment is also stale on other 2026-08-19+ fixes (/pricing
band lost its signup form and footer still says "The Tiny Studio"), while
/audit and / serve correct clean canonicals — consistent with a deploy from
before the 2026-08-19 merge batch, or a partial deploy.

## What this lane changed

No source changes were needed or made. Evidence only:

- `docs/evidence/pagehead-self-decl-reverify-2026-08-21.md` — full
re-verify receipt (source table, live table, probe method, staleness
markers).
- `.lane/reports/fix-pagehead-self-decl-reverify-lane1-20260821.md` — this
report.

## Remaining action (outside this repo lane)

Redeploy origin/main (`npm run deploy` — manual wrangler deploy per this
domain's convention). Until then the live site's three pages keep declaring
the redirecting `.html` forms, and the live /pricing page keeps its missing
form / stale footer.

## Verification method

- `git log` on origin/main: `ed2b1a9` is an ancestor of `origin/main`
(`git merge-base --is-ancestor ed2b1a9 origin/main` -> yes).
- `npm run check` on this worktree (origin/main `92d55c3`): "TinyStudio.io
checks passed."
- Live probes: `curl -s -H 'Cache-Control: no-cache'` for canonical /
og:url / JSON-LD on all three pages; `curl -sI` for the `.html` 307s.
79 changes: 79 additions & 0 deletions docs/evidence/pagehead-self-decl-reverify-2026-08-21.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
# Page-head self-declaration on /agents, /pricing, /specimen — re-verify (2026-08-21)

Item: "[unreviewed-by-opus] /agents, /pricing, /specimen page-head canonical +
og:url + JSON-LD WebPage @id all self-decl" (finding item `c6f9cf8040`,
lane-1 packet 2026-08-21).

## What the item asks

Each of the three appraisal pages must declare its own clean URL in all three
machine-readable head surfaces:

- `<link rel="canonical">` -> the page's clean extensionless URL
- `<meta property="og:url">` -> the same clean URL
- JSON-LD `WebPage` `@id`/`url` -> the same clean URL (`@id` with `#webpage`)

The clean forms are the addresses that serve 200; the `.html` twins 307 to
them, so declaring a `.html` form would hand search engines and social
scrapers a redirecting address.

## Source state (origin/main @ 92d55c3, 2026-08-21)

All three pages self-declare correctly in source. This was fixed by PR #218
(commit `ed2b1a9`, "point appraisal-page canonicals and JSON-LD WebPage @ids
at the clean non-307 URLs", merged 2026-08-19), preceded by the lane-1 fix
commit `df69628` (2026-08-15) and its re-landing `3ff1398`.

| Page | canonical | og:url | WebPage `@id` | WebPage `url` |
|---|---|---|---|---|
| /agents | `https://tinystudio.io/agents` | same | `https://tinystudio.io/agents#webpage` | `https://tinystudio.io/agents` |
| /pricing | `https://tinystudio.io/pricing` | same | `https://tinystudio.io/pricing#webpage` | `https://tinystudio.io/pricing` |
| /specimen | `https://tinystudio.io/specimen` | same | `https://tinystudio.io/specimen#webpage` | `https://tinystudio.io/specimen` |

`npm run check` passes ("TinyStudio.io checks passed") on this worktree at
origin/main `92d55c3`. The canonical guard (`scripts/check-site.mjs`) asserts
exactly one canonical per page naming the clean URL, and the structured-data
guard asserts the `WebPage` `@id`/`url` bindings.

## Live state (2026-08-21)

The deployed site still serves the pre-fix `.html` self-declarations on
exactly these three pages:

| Live URL | canonical | og:url | WebPage `@id` | WebPage `url` |
|---|---|---|---|---|
| `https://tinystudio.io/agents` | `https://tinystudio.io/agents.html` | same | `.../agents.html#webpage` | `https://tinystudio.io/agents.html` |
| `https://tinystudio.io/pricing` | `https://tinystudio.io/pricing.html` | same | `.../pricing.html#webpage` | `https://tinystudio.io/pricing.html` |
| `https://tinystudio.io/specimen` | `https://tinystudio.io/specimen.html` | same | `.../specimen.html#webpage` | `https://tinystudio.io/specimen.html` |

Probed 2026-08-21 ~04:26 UTC with `curl -s -H 'Cache-Control: no-cache'`
against `https://tinystudio.io/{agents,pricing,specimen}`. The `.html` twins
307 to the clean forms (verified `curl -sI`), so the live pages' own
declarations point at addresses that redirect.

The same probes show the deployment is stale beyond this item:

- `/pricing` closing `.band` has no signup form (the `form.lead` fixed by PR
#194 / #219 is absent; only the heading, sub, note and CTA-less note
remain), and the footer still reads `The Tiny Studio` (fixed by #112).
- `/agents`, `/pricing`, `/specimen` all serve the old `.html` head
declarations (this item).
- `/audit` and `/` serve the correct clean canonicals, and the
`/brief-requested` page carries the apple-touch-icon — so the deployment
is not uniformly ancient; it appears to be a partial deploy (or one from a
branch that carried the newer /audit work but not the 2026-08-19 merge of
#218/#112).

## Verdict

The source fix for this item is complete and merged on origin/main; CI
guards (`npm run check`) enforce it. The item's fault is no longer present
in the repository. What remains is deployment staleness: the live site has
not been redeployed from current main, so it still serves the pre-fix head
declarations on /agents, /pricing and /specimen.

No further source change is proposed by this lane. The lane report
(`.lane/reports/fix-pagehead-self-decl-reverify-lane1-20260821.md`) records
the same findings; a deploy of origin/main (`npm run deploy`, manual per the
domain's deployment convention) is the remaining action to make the live
site match the source.
Loading