Svelte promotion prep: add @svelte-notes annotations to all playground pages #96
Labels
No labels
domain:backend
domain:devops
domain:frontend
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
forgejo_admin/westside-app#96
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Type
Feature
Lineage
Part of public site evolution. Parent note:
westside-playground-overhaulRepo
forgejo_admin/westside-playgroundUser Story
As a dev agent promoting playground HTML to SvelteKit, I want each page to document exactly how its HTML/JS patterns translate to Svelte 5 so that promotion is mechanical copy-paste + rune wiring, not guesswork.
story:agent-promote
Context
The playground pages have
@route,@auth,@nav,@apidoc comments. These tell agents WHAT the page is. Missing:@stateand@svelte-notesthat tell agents HOW to translate it.Every page needs annotations covering:
@state— reactive state variables (e.g.program: 'kings' | 'queens')@api— expanded to show actual endpoint signatures the SvelteKit+page.server.tswill call@svelte-notes— line-by-line translation guide for non-obvious patternsTranslation patterns to document
localStorage.getItem('program')let program = $state(localStorage.getItem('program') ?? 'kings')localStorage.setItem('program', p)$effect(() => localStorage.setItem('program', program))document.body.classList.toggle('queens-active')<svelte:body class:queens-active={program === 'queens'} />data-program-content="kings"show/hide{#if program === 'kings'}...{/if}initKQToggle()in DOMContentLoaded+page.server.tsload function → basketball-apiinitFilterList()search/filter$derivedfiltering on reactive arrayinitTabs()tab switchinglet activeTab = $state('roster')+{#if}blocksinitRegister()form logic$statelet menuOpen = $state(false)+layout.sveltecomponent (rendered once)+layout.sveltecomponentFile Targets
Files to modify — ALL playground HTML pages. Add
@stateand@svelte-notesto the existing component doc comment block at the top of each file.Example for tryouts.html:
Acceptance Criteria
Test Expectations
Constraints
Checklist
Related
westside-playground-overhaul— parent noteproject-svelte-playground— Stage 2 targetarch-sitemap-westside-basketball— page inventoryScope Review: NEEDS_REFINEMENT
Review note:
review-416-2026-03-25Well-structured Feature ticket with all template sections present and excellent translation pattern table, but two fixable issues found.
westside-appbut### Reposayswestside-playgroundand all work targets playground HTML files. Either refile onwestside-playgroundor update the body.story:agent-promotebut board item label isstory:WS-S26(matching the parent note). Update issue body tostory:WS-S26.todountil those close.gear.htmldoesn't exist yet (#94).Scope Review: NEEDS_REFINEMENT (re-review)
Review note:
review-416-2026-03-26Re-review of prior
review-416-2026-03-25. Two of three prior findings resolved, two remain.Resolved since prior review:
gear.htmlnow exists (created by #94)Still open:
westside-appbut### Reposayswestside-playgroundand all work targets playground HTML files. Agent will clone wrong repo.story:agent-promotebut board item label isstory:WS-S26. Update body to match.Once these two items are corrected, ticket is READY.
Scope Update (2026-03-26)
Fixes from review-416-2026-03-26:
westside-appbut the work targetsforgejo_admin/westside-playground. The### Reposection already states this correctly. Agent should clonewestside-playground, notwestside-app.story:agent-promotetostory:WS-S26to align with board item labels.Progress from PR #45 (site-overhaul branch):
All 8 public pages now have complete
@svelte-notesannotations:@apiendpoints with signatures@statereactive variables@svelte-notestranslation guide (toggle→runes, sections→{#each}, etc.)@data-philosophyon teams.html (render partial data gracefully)@data-sourceson schedule.htmlRemaining scope for #96: Authenticated pages (admin, coach, player-profile, parent, team, billing, checkout, jersey, register, login, etc.) still need annotations. Public pages are done pending PR #45 merge.
Dependencies
All 5 dependencies (#91-#95) are now closed.
Scope Review: READY (re-review #3)
Review note:
review-416-2026-03-26(updated)Both prior findings adequately mitigated via scope update comment:
### Reposection sayswestside-playground(correct). Comment clarifies clone target. Refiling would break references. Adequate.story:agent-promotebut board item label (authoritative source) isstory:WS-S26. Comment corrects it. Adequate.All 5 dependencies closed. All 27 HTML files exist. 8 public pages already annotated (PR #45). Remaining scope: 19 authenticated pages. Acceptance criteria grep-verifiable. Low blast radius (comments only).
Ticket is READY for todo → next_up.
Scope Narrowing
Reduced scope to 8 public pages only. Authenticated pages (admin, coach, player-profile, parent, etc.) are Phase 15 work and out of scope for this ticket.
Public pages already annotated in PR forgejo_admin/westside-playground#45:
All have
@api,@state,@svelte-notes. Teams has@data-philosophyand@player-card. Schedule has@data-sources.This ticket is effectively complete pending PR #45 merge.