Context
This issue was refreshed after PR #166 and production probe #167. The old preview-only metadata audit is stale; use the verified production findings here.
Production was sampled on 2026-07-03 after PR #166 deployed to https://www.punkrockai.com/.
Verified current gaps:
site/favicon.ico exists, but sampled HTML pages do not include explicit favicon/basic icon <link> tags.
/ has canonical URL and description, but no og:image in sampled production HTML.
/library has canonical URL and description, but no og:url and no og:image in sampled production HTML.
/widgets/conductor, /widgets/cutting-room-buckets, and /widgets/receipt-tells have canonical URLs, descriptions, and og:url, but no og:image.
Acceptance Criteria
Tests/Evals
Run:
npm run eval
npm run seo:index-hygiene
Then verify local or production HTML for the sampled pages includes the expected metadata:
curl -L https://www.punkrockai.com/ | rg -i "canonical|og:url|og:image|description|icon"
curl -L https://www.punkrockai.com/library | rg -i "canonical|og:url|og:image|description|icon"
curl -L https://www.punkrockai.com/widgets/conductor | rg -i "canonical|og:url|og:image|description|icon"
curl -L https://www.punkrockai.com/widgets/cutting-room-buckets | rg -i "canonical|og:url|og:image|description|icon"
curl -L https://www.punkrockai.com/widgets/receipt-tells | rg -i "canonical|og:url|og:image|description|icon"
Verification
Before opening a PR, confirm:
npm run eval exits 0.
npm run seo:index-hygiene exits 0.
- The five sampled URLs expose the expected icon, canonical,
og:url, description, and og:image tags.
- The PR body lists exact pages changed and any intentionally deferred metadata gaps.
Agent Instructions
Make the smallest static HTML changes needed to satisfy the acceptance criteria. Prefer existing assets:
- Homepage:
https://www.punkrockai.com/public/slides/neither-are-we.webp or another already-used homepage hero/section image.
/library: https://www.punkrockai.com/public/slides/taste-full.webp.
/widgets/conductor: https://www.punkrockai.com/public/slides/taste-full.webp.
/widgets/cutting-room-buckets: https://www.punkrockai.com/public/slides/taste-drip.webp.
/widgets/receipt-tells: https://www.punkrockai.com/public/slides/feed-machine-stamp.webp.
Keep canonical URLs and clean URL behavior unchanged. Do not rewrite page copy unless a metadata value is genuinely missing or wrong.
Out of Scope
- Creating new image assets.
- Changing sitemap, redirects, or canonical URL policy.
- Search Console validation.
- Merch, Release Day submission smoke tests, or unrelated SEO cleanup.
Related Evidence
Context
This issue was refreshed after PR #166 and production probe #167. The old preview-only metadata audit is stale; use the verified production findings here.
Production was sampled on 2026-07-03 after PR #166 deployed to
https://www.punkrockai.com/.Verified current gaps:
site/favicon.icoexists, but sampled HTML pages do not include explicit favicon/basic icon<link>tags./has canonical URL and description, but noog:imagein sampled production HTML./libraryhas canonical URL and description, but noog:urland noog:imagein sampled production HTML./widgets/conductor,/widgets/cutting-room-buckets, and/widgets/receipt-tellshave canonical URLs, descriptions, andog:url, but noog:image.Acceptance Criteria
site/favicon.icoasset./,/library,/widgets/conductor,/widgets/cutting-room-buckets, and/widgets/receipt-tellsincludeog:imagevalues using existing assets./libraryincludesog:urlequal tohttps://www.punkrockai.com/library.npm run evalpasses.npm run seo:index-hygienepasses.og:imageoutside the sampled pages is either fixed or documented as intentionally out of scope in the PR body.Tests/Evals
Run:
npm run eval npm run seo:index-hygieneThen verify local or production HTML for the sampled pages includes the expected metadata:
Verification
Before opening a PR, confirm:
npm run evalexits 0.npm run seo:index-hygieneexits 0.og:url, description, andog:imagetags.Agent Instructions
Make the smallest static HTML changes needed to satisfy the acceptance criteria. Prefer existing assets:
https://www.punkrockai.com/public/slides/neither-are-we.webpor another already-used homepage hero/section image./library:https://www.punkrockai.com/public/slides/taste-full.webp./widgets/conductor:https://www.punkrockai.com/public/slides/taste-full.webp./widgets/cutting-room-buckets:https://www.punkrockai.com/public/slides/taste-drip.webp./widgets/receipt-tells:https://www.punkrockai.com/public/slides/feed-machine-stamp.webp.Keep canonical URLs and clean URL behavior unchanged. Do not rewrite page copy unless a metadata value is genuinely missing or wrong.
Out of Scope
Related Evidence