Review: Clean up pal-e-playground repo

review-402-2026-03-27 Review

review needs-refinement

Verdict: NEEDS_REFINEMENT

Template Completeness

  • [x] Type — Feature
  • [x] Lineage — standalone, playground overhaul scoped 2026-03-26
  • [x] Repo — forgejo_admin/pal-e-playground
  • [x] User Story — clear, well-formed
  • [x] Context — sufficient background
  • [x] File Targets — files to keep and remove listed
  • [x] Acceptance Criteria — 4 items
  • [x] Test Expectations — 2 items
  • [x] Constraints — present
  • [x] Checklist — present
  • [x] Related — references project-frontend-playground and project-capacitor-mobile

Traceability

  • [x] story:superuser-deploy label — present on board item #402
  • [x] arch:tailscale-funnel label — present, playground is served via Tailscale funnel
  • [x] Forgejo issue — forgejo_admin/pal-e-platform/issues/180, open

File Targets

  • [x] index.html — verified: 506-line approved landing page exists at ~/pal-e-playground/index.html (22KB)
  • [x] README.md — verified: exists (650 bytes), ticket says update it
  • [x] guide/ — verified: exists, contains index.html (1,144 lines, 48KB). Content confirmed mergeable.
  • [x] pal-e-app/ — verified: exists (29MB), contains node_modules and package.json. Confirmed cruft.
  • [x] westside-logo.jpeg — verified: exists (3.7KB)
  • [x] westside-logo.png — verified: exists (1.2MB)
  • [x] .current-issue — verified: exists (2 bytes, contains "1")
  • [ ] Landing page does NOT reference /guide/, westside logos, or .current-issue — safe to remove from repo

Branch Verification

Ticket lists 6 branches to delete. Forgejo API shows only 4 non-main branches:
  • [x] 45-kanban-board-playground — exists
  • [x] 46-svelte-kanban-board-prototype — exists
  • [x] 5-sync-westside-contract-html-with-deploye — exists
  • [x] add-mcd-tracker-link — exists
  • [ ] 1-scaffold-repo — DOES NOT EXIST on remote (already deleted)
  • [ ] 3-feat-add-asset-upload-card-to-playground — DOES NOT EXIST on remote (already deleted)
Minor inaccuracy — 2 of the 6 listed branches are already gone. Not a blocker, agent will skip them.

Repo Placement

ISSUE: Forgejo issue is filed on forgejo_admin/pal-e-platform but the actual work targets forgejo_admin/pal-e-playground. The ticket correctly states ### Repo: forgejo_admin/pal-e-playground so the agent will know where to work, but this is a cross-repo mismatch. Acceptable for platform-board-tracked item.

Dependencies

CRITICAL: nginx configmap in pal-e-deployments needs updating.
The playground is served via an nginx container that mounts ~/pal-e-playground as a hostPath volume. The nginx config at pal-e-deployments/overlays/playground/prod/configmap.yaml has a location /guide/ block (lines 19-24) that aliases to /usr/share/nginx/html/guide/. After removing the guide/ directory, this route will 404.
The ticket does NOT mention updating the nginx configmap. This is a second repo change (pal-e-deployments) that must happen alongside or after the playground cleanup.
No board-level blockers found — item #402 is not blocked by any in_progress items.

Acceptance Criteria

  • [x] "Repo contains only index.html and README.md" — verifiable via ls
  • [x] "playground.tail5b443a.ts.net renders the approved landing page" — verifiable via curl/browser
  • [x] "All stale branches deleted" — verifiable via Forgejo API
  • [x] "No node_modules, no package.json, no build artifacts" — verifiable via ls
  • [ ] MISSING: "nginx /guide/ location block removed from configmap" — without this, the deployment has a stale route

Blast Radius

  • pal-e-deploymentsoverlays/playground/prod/configmap.yaml has a /guide/ route that will break. Needs a companion PR or the configmap update must be part of this ticket's scope.
  • pal-e-deployments deployment.yaml — mounts the entire ~/pal-e-playground directory as the nginx docroot. Removing files from the repo is sufficient; the deployment will automatically reflect the change on next pod restart.
  • No other repos reference the guide directory or westside logos in pal-e-playground.
  • Playwright logs show historical 404s for /assets/shared-DUP1U2fx.css and /favicon.ico — the landing page should include an inline favicon or the acceptance criteria should note that favicon 404 is acceptable.

Decomposition (5-minute rule)

  • 2 file targets across 2 repos (pal-e-playground + pal-e-deployments configmap) — borderline
  • 4 acceptance criteria + 1 missing — within bounds
  • Estimated agent work: ~3 minutes for repo cleanup, ~2 minutes for configmap update — fits in a single pass if scoped to include both
Does not need decomposition if the configmap update is added to scope.

Recommendation

  • Add nginx configmap cleanup to scope: Update pal-e-deployments/overlays/playground/prod/configmap.yaml to remove the location /guide/ block (lines 19-24). Add as a file target and acceptance criterion.
  • Correct branch list: Remove 1-scaffold-repo and 3-feat-add-asset-upload-card-to-playground from the branch deletion list (already gone), or note they may already be deleted.
  • Document cross-repo placement: Note that the Forgejo issue is on pal-e-platform but work is on pal-e-playground (and pal-e-deployments). This is acceptable for platform-board-tracked item but the agent needs explicit repo targets for all three repos.