Skip to content

docs(verify): refresh the sunao verification map - #11

Merged
paramcodes merged 2 commits into
mainfrom
docs/refresh-verification-map
Oct 17, 2026
Merged

paramcodes merged 2 commits into
mainfrom
docs/refresh-verification-map

Conversation

@paramcodes

@paramcodes paramcodes commented Oct 17, 2026 •

Copy link
Copy Markdown
Owner

What

Refresh .opencode/skills/verify-sunao/ so the map matches the app.

  • New recipes: search, library-playlists, auth, queue-and-mobile, discoverability.
  • Rewritten: home-renders (album grid + song list + shell, not just a greeting), player-bar, data-layer.
  • SKILL.md: port fallback, query scoping, the artifacts/verify-<feature-id>/ evidence path, and the NEXT_PUBLIC_SITE_URL requirement for SEO checks.
  • features/README.md: baseline preconditions, known gaps, and the full index.

Why

The map covered only home, the player bar, and the data layer. Its player-bar recipe still described a placeholder tone and an idle bar that no longer exist. Everything here was re-derived from source and re-driven live.

How it was verified

Against the committed revision (310c99e) on an instance started by the run:

  • 68 live Playwright checks across home, search, library/playlists, auth, the queue/mobile shell, the player bar, and the data layer: 67 pass.
  • node scripts/check-seo.mjs: 31/31 pass (per-route metadata, absolute canonicals, robots.txt, sitemap.xml, share image content type, MusicPlaylist JSON-LD).
  • Evidence (screenshots and text dumps) in artifacts/verify-*/, kept locally and deliberately not committed.

Known product gaps (reported, not fixed here)

  1. Without Supabase, creating a playlist works and it appears in /library and the sidebar, but opening it renders 404: This page could not be found. /playlist/[id] resolves the id server-side from the static PLAYLISTS and calls notFound(), while a new playlist is written only to the in-memory client store. This is the one failing live check; it is recorded in features/library-playlists.md.
  2. Submitting /login or /signup without Supabase env vars gives the user no feedback: the createClient() throw is unhandled and the form's error state never renders. Recorded in features/auth.md.

Scope

.opencode/skills/verify-sunao/ only. No product code.

Cover the user-facing features added since the map was written, and correct
the recipes that had drifted from the app:

- add search, library/playlists, auth, queue/mobile shell, and discoverability
- rewrite player-bar (real iTunes previews, pre-liked songs, the bar is never
  empty) and data-layer (initialData fallback, artwork, in-memory playlists)
- record the backend-less "created playlist detail 404s" as a known gap
- note the port fallback and the NEXT_PUBLIC_SITE_URL requirement for SEO checks

No product code changes.
@vercel

vercel Bot commented Oct 17, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
sunao Ready Ready Preview Oct 17, 2026 1:38pm UTC

Submitting /login without Supabase env vars renders no inline error: the
createClient() throw rejects unhandled before the form's error state is set.
Assert the route only, and record the missing feedback as a second known gap.
@paramcodes
paramcodes merged commit 5c02813 into main Oct 17, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant