Playground overhaul 4/4: Cleanup + component doc verification #88

Closed
opened 2026-03-26 15:22:31 +00:00 by forgejo_admin · 3 comments

Type

Feature

Lineage

Decomposed from westside-app#84. Parent note: westside-playground-overhaul

Repo

forgejo_admin/westside-playground

User Story

As a superuser, I want every playground page documented with route, auth, and data contract information so that Svelte promotion is a mechanical copy-paste, not a guessing game.

story:WS-S26

Context

Final cleanup after sub-tickets 1-3 land. Remove stale files, verify every page has component docs, verify nav consistency across all pages. This is the gate before declaring the playground source-of-truth complete.

File Targets

Files to remove:

  • tryouts.html — stale (tryouts cancelled)
  • westside-index.html — stale copy from earlier session
  • original-index.html — stale copy from west-side-basketball

Files to verify (all 24 pages):

  • Every page has HTML comment block at top with: @route, @auth (public/admin/coach/parent), @api (data contracts), @nav (which nav item active)
  • All nav links resolve
  • No broken CSS/JS references
  • No stale tryout content

Acceptance Criteria

  • Stale files removed (3 files)
  • Every page has complete component doc comment
  • All nav links work across all 24 pages
  • grep for broken hrefs returns zero
  • ls *.html matches exactly the 24 expected pages
  • Lucas final phone walkthrough of entire site

Test Expectations

  • Click every nav link on every page — zero 404s
  • Visual: spot check all pages on 390px
  • grep -r "tryout" returns zero (except schedule TBD)

Constraints

  • Depends on sub-tickets 1, 2, and 3 all being complete
  • This is the FINAL gate before Svelte promotion

Checklist

  • Stale files removed
  • Docs verified on all pages
  • Nav verified
  • Lucas final walkthrough
  • Declared source-of-truth complete
  • westside-playground-overhaul — parent decomposition note
  • westside-app#84 — parent issue
### Type Feature ### Lineage Decomposed from westside-app#84. Parent note: `westside-playground-overhaul` ### Repo `forgejo_admin/westside-playground` ### User Story As a superuser, I want every playground page documented with route, auth, and data contract information so that Svelte promotion is a mechanical copy-paste, not a guessing game. story:WS-S26 ### Context Final cleanup after sub-tickets 1-3 land. Remove stale files, verify every page has component docs, verify nav consistency across all pages. This is the gate before declaring the playground source-of-truth complete. ### File Targets Files to remove: - `tryouts.html` — stale (tryouts cancelled) - `westside-index.html` — stale copy from earlier session - `original-index.html` — stale copy from west-side-basketball Files to verify (all 24 pages): - Every page has HTML comment block at top with: @route, @auth (public/admin/coach/parent), @api (data contracts), @nav (which nav item active) - All nav links resolve - No broken CSS/JS references - No stale tryout content ### Acceptance Criteria - [ ] Stale files removed (3 files) - [ ] Every page has complete component doc comment - [ ] All nav links work across all 24 pages - [ ] grep for broken hrefs returns zero - [ ] `ls *.html` matches exactly the 24 expected pages - [ ] Lucas final phone walkthrough of entire site ### Test Expectations - [ ] Click every nav link on every page — zero 404s - [ ] Visual: spot check all pages on 390px - [ ] grep -r "tryout" returns zero (except schedule TBD) ### Constraints - Depends on sub-tickets 1, 2, and 3 all being complete - This is the FINAL gate before Svelte promotion ### Checklist - [ ] Stale files removed - [ ] Docs verified on all pages - [ ] Nav verified - [ ] Lucas final walkthrough - [ ] Declared source-of-truth complete ### Related - `westside-playground-overhaul` — parent decomposition note - westside-app#84 — parent issue
Author
Owner

Scope Review: NEEDS_REFINEMENT

Review note: review-384-2026-03-25
Page count is wrong (says 24, sub-tickets define 22), two orphaned files (signin.html, success.html) unaccounted for, and the broken-href acceptance criterion needs a concrete test command.

  • Page count mismatch: #86 (8 pages) + #87 (14 pages) = 22, not 24. Enumerate the exact expected filenames.
  • signin.html + success.html orphaned: Not in any sub-ticket's page list. signin.html is replaced by login.html (#86) but not listed for removal. success.html has no home.
  • Broken-href criterion underspecified: Need a concrete grep/script command the agent can run.
  • Repo placement note: Issue filed on westside-app but work targets westside-playground. Body's Repo field is correct; not a blocker.
## Scope Review: NEEDS_REFINEMENT Review note: `review-384-2026-03-25` Page count is wrong (says 24, sub-tickets define 22), two orphaned files (signin.html, success.html) unaccounted for, and the broken-href acceptance criterion needs a concrete test command. - **Page count mismatch:** #86 (8 pages) + #87 (14 pages) = 22, not 24. Enumerate the exact expected filenames. - **signin.html + success.html orphaned:** Not in any sub-ticket's page list. signin.html is replaced by login.html (#86) but not listed for removal. success.html has no home. - **Broken-href criterion underspecified:** Need a concrete grep/script command the agent can run. - **Repo placement note:** Issue filed on westside-app but work targets westside-playground. Body's Repo field is correct; not a blocker.
Author
Owner

Refinements from review-384-2026-03-25:

  1. Corrected page count and exact filename list (23 pages):

Public (8):
index.html, staff.html, sponsors.html, schedule.html, login.html, forgot-password.html, reset-password.html, register.html

Authenticated (14):
admin.html, admin-players.html, admin-teams.html, coach.html, coach-profile.html, parent.html, player-profile.html, billing.html, team.html, checkout.html, checkout-success.html, checkout-cancel.html, jersey.html, jersey-success.html

Registration confirmation (1):
success.html — keep, update to unified CSS

Total: 23 pages

  1. Updated stale removal list (4 files):
  • tryouts.html — cancelled
  • westside-index.html — stale copy
  • original-index.html — stale copy
  • signin.html — replaced by login.html
  1. Concrete broken-href test:
# Extract all href values, filter to local .html links, check each exists
grep -ohr 'href="[^"]*\.html"' ~/westside-playground/*.html | sort -u | sed 's/href="//;s/"//' | while read f; do [ -f ~/westside-playground/"$f" ] || echo "BROKEN: $f"; done
  1. success.html disposition: Keep as registration confirmation page. Update to unified CSS in sub-ticket 2 (public pages). Add to #86 file targets as a 9th page to update.
**Refinements from review-384-2026-03-25:** 1. **Corrected page count and exact filename list (23 pages):** Public (8): `index.html`, `staff.html`, `sponsors.html`, `schedule.html`, `login.html`, `forgot-password.html`, `reset-password.html`, `register.html` Authenticated (14): `admin.html`, `admin-players.html`, `admin-teams.html`, `coach.html`, `coach-profile.html`, `parent.html`, `player-profile.html`, `billing.html`, `team.html`, `checkout.html`, `checkout-success.html`, `checkout-cancel.html`, `jersey.html`, `jersey-success.html` Registration confirmation (1): `success.html` — keep, update to unified CSS **Total: 23 pages** 2. **Updated stale removal list (4 files):** - `tryouts.html` — cancelled - `westside-index.html` — stale copy - `original-index.html` — stale copy - `signin.html` — replaced by `login.html` 3. **Concrete broken-href test:** ```bash # Extract all href values, filter to local .html links, check each exists grep -ohr 'href="[^"]*\.html"' ~/westside-playground/*.html | sort -u | sed 's/href="//;s/"//' | while read f; do [ -f ~/westside-playground/"$f" ] || echo "BROKEN: $f"; done ``` 4. **success.html disposition:** Keep as registration confirmation page. Update to unified CSS in sub-ticket 2 (public pages). Add to #86 file targets as a 9th page to update.
Author
Owner

Updated scope from full audit (2026-03-26):

Stale files to remove (4):

  • tryouts.html
  • westside-index.html
  • original-index.html
  • signin.html

Missing file to create (1):

  • reset-password.html — linked from forgot-password.html but doesn't exist (broken link)

Inline CSS violations to fix (3 files):

  • login.html<style> block with auth form styles → move to shared/style.css
  • forgot-password.html<style> block with auth form styles → move to shared/style.css
  • schedule.html — 16 inline style= attributes → extract to classes in shared/style.css

Inline JS violations to fix (2 files):

  • forgot-password.html — inline <script> with showForgotSuccess() → move to shared/app.js
  • admin-teams.html — inline <script> with initTeams() mock data → move to shared/app.js (note: in SvelteKit this becomes +page.server.ts load())

Missing app.js references (2 files):

  • login.html — no <script src="shared/app.js"> include
  • forgot-password.html — no <script src="shared/app.js"> include (uses inline instead)

Inconsistent defer attribute:

  • Some pages use <script src="shared/app.js" defer>, others use <script src="shared/app.js"> without defer. Standardize to defer on all.

Component docs to add/verify (20 files missing):

Pages WITHOUT @route docs: admin.html, admin-players.html, admin-teams.html, billing.html, checkout.html, checkout-cancel.html, checkout-success.html, coach.html, coach-profile.html, jersey.html, jersey-success.html, parent.html, player-profile.html, sponsors.html, staff.html, team.html + 4 stale files being removed.

Every surviving page needs HTML comment at top:

<!--
  @route /admin/players
  @auth admin
  @nav Players (active)
  @api GET /api/admin/players — player list with filtering
-->

Nav consistency check:

  • Verify all public pages use: Home | About | Staff | Sponsors | Schedule | FAQ
  • Verify all admin pages use: Home | Dashboard | Players | Teams | Coaches | Billing | Profile | Logout
  • Verify all coach pages use: Home | Dashboard | My Team | Players | Schedule | Profile | Logout
  • Verify all parent pages use: Home | My Players | Team | Billing | Schedule | Profile | Logout
  • Legacy stale pages (westside-index.html, original-index.html) have old 5-item nav — removed with stale file deletion

Content redundancy (landing page):

  • Remove FAQ section from index.html — every question is answered by a dedicated page
  • Remove sponsor partnership banner from index.html — sponsors have their own page
  • Landing page should be: Hero → About (3 cards) → Marcus quote → How to Join → Bottom CTA

Updated acceptance criteria:

  • 4 stale files removed
  • reset-password.html created
  • Zero <style> tags in any HTML file
  • Zero inline <script> blocks (only <script src="shared/app.js" defer>)
  • Zero style= inline attributes
  • Every page includes <script src="shared/app.js" defer>
  • @route component doc on all 22 surviving pages
  • Nav consistent per role across all pages
  • FAQ section removed from index.html
  • Sponsor banner removed from index.html
  • All nav links resolve (zero broken hrefs)
  • ls *.html | wc -l = 22
**Updated scope from full audit (2026-03-26):** ### Stale files to remove (4): - `tryouts.html` - `westside-index.html` - `original-index.html` - `signin.html` ### Missing file to create (1): - `reset-password.html` — linked from forgot-password.html but doesn't exist (broken link) ### Inline CSS violations to fix (3 files): - `login.html` — `<style>` block with auth form styles → move to `shared/style.css` - `forgot-password.html` — `<style>` block with auth form styles → move to `shared/style.css` - `schedule.html` — 16 inline `style=` attributes → extract to classes in `shared/style.css` ### Inline JS violations to fix (2 files): - `forgot-password.html` — inline `<script>` with `showForgotSuccess()` → move to `shared/app.js` - `admin-teams.html` — inline `<script>` with `initTeams()` mock data → move to `shared/app.js` (note: in SvelteKit this becomes `+page.server.ts load()`) ### Missing app.js references (2 files): - `login.html` — no `<script src="shared/app.js">` include - `forgot-password.html` — no `<script src="shared/app.js">` include (uses inline instead) ### Inconsistent defer attribute: - Some pages use `<script src="shared/app.js" defer>`, others use `<script src="shared/app.js">` without defer. Standardize to `defer` on all. ### Component docs to add/verify (20 files missing): Pages WITHOUT @route docs: `admin.html`, `admin-players.html`, `admin-teams.html`, `billing.html`, `checkout.html`, `checkout-cancel.html`, `checkout-success.html`, `coach.html`, `coach-profile.html`, `jersey.html`, `jersey-success.html`, `parent.html`, `player-profile.html`, `sponsors.html`, `staff.html`, `team.html` + 4 stale files being removed. Every surviving page needs HTML comment at top: ```html <!-- @route /admin/players @auth admin @nav Players (active) @api GET /api/admin/players — player list with filtering --> ``` ### Nav consistency check: - Verify all public pages use: Home | About | Staff | Sponsors | Schedule | FAQ - Verify all admin pages use: Home | Dashboard | Players | Teams | Coaches | Billing | Profile | Logout - Verify all coach pages use: Home | Dashboard | My Team | Players | Schedule | Profile | Logout - Verify all parent pages use: Home | My Players | Team | Billing | Schedule | Profile | Logout - Legacy stale pages (`westside-index.html`, `original-index.html`) have old 5-item nav — removed with stale file deletion ### Content redundancy (landing page): - Remove FAQ section from `index.html` — every question is answered by a dedicated page - Remove sponsor partnership banner from `index.html` — sponsors have their own page - Landing page should be: Hero → About (3 cards) → Marcus quote → How to Join → Bottom CTA ### Updated acceptance criteria: - [ ] 4 stale files removed - [ ] `reset-password.html` created - [ ] Zero `<style>` tags in any HTML file - [ ] Zero inline `<script>` blocks (only `<script src="shared/app.js" defer>`) - [ ] Zero `style=` inline attributes - [ ] Every page includes `<script src="shared/app.js" defer>` - [ ] `@route` component doc on all 22 surviving pages - [ ] Nav consistent per role across all pages - [ ] FAQ section removed from index.html - [ ] Sponsor banner removed from index.html - [ ] All nav links resolve (zero broken hrefs) - [ ] `ls *.html | wc -l` = 22
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
forgejo_admin/westside-app#88
No description provided.