Review: Validate step fails: build/index.html doesn't exist for adapter-node
Verdict: APPROVED
Single-line bug fix with verified file targets, complete traceability, and intact backing notes. Ready to advance backlog -> todo.
Template Completeness
Issue body matches
template-issue-bug:- [x] Type -- Bug
- [x] Lineage -- explains pipeline #1 manual trigger as discovery vector; webhook installed ~5 min after #10/#11 merged so latent until manual run
- [x] Repo -- forgejo_admin/westside-admin
- [x] What Broke -- exact step (validate), exact assertion (test -f build/index.html), root cause (adapter mismatch)
- [x] Repro Steps -- 3 numbered steps reproducible against main
- [x] Expected Behavior -- canonical fix specified (test -f build/index.js)
- [x] Environment -- repo + SHA + pipeline ID + adapter + build image
- [x] Acceptance Criteria -- 3 testable checkboxes
- [x] Related -- project, originating PR (#11), and explicit unrelated cross-link to pal-e-platform #321
Traceability
- [x] story:admin-row-crud label -- admin row CRUD story
- [x] story note verified --
story-westside-admin-admin-row-crudlisted inproject-westside-adminuser-stories section (sole story for v1) - [x] arch:ci-pipeline label -- Woodpecker CI per
convention-architecture-idsDeployment Components table - [x] arch note verified --
arch-ci-pipelineexists in pal-e-docs (project: pal-e-platform), describes the shared Woodpecker -> Harbor -> pal-e-deployments -> ArgoCD loop - [x] type:bug label -- correct (regression-style: validate step fails on the artifact actually produced; smoke check encoded the wrong adapter assumption)
- [x] Forgejo issue -- https://forgejo.tail5b443a.ts.net/forgejo_admin/westside-admin/issues/12, open
- Adjacent CI item #1094 (issue #8) used the same story/arch axes -- conventions already proven for this kind of work.
File Targets
- [x]
~/westside-admin/.woodpecker.yaml-- verified at SHA82ac5255a9. Line 33 reads exactly- test -f build/index.htmlinside thevalidatestep (lines 27-35). Bug confirmed in the live tree. - [x]
~/westside-admin/svelte.config.js-- verified@sveltejs/adapter-nodewithout: 'build'(line 1, 8-10). Confirmsbuild/index.htmlis never produced;build/index.jsis the canonical Node entry. - [x]
~/westside-admin/package.json-- verified"start": "node build/index.js"(line 10). Production runtime already targetsbuild/index.js; smoke check should mirror.
Repo Placement
OK. Single-file, single-repo change in
forgejo_admin/westside-admin. No cross-repo coordination needed -- no sibling overlay/registry work, no upstream update-kustomize-tag.sh change required (the script reference in .woodpecker.yaml is unaffected).Dependencies
None active. The originating commits (#10 Dockerfile, #11 .woodpecker.yaml) are merged. Sibling CI item #1094 is in
qa already. No in_progress blockers; no items downstream gated on this fix in the listed board (the next-up coding stories #1, #2, #4 don't depend on green CI to be reviewed, but they will need this fix to actually deploy). Worth fast-tracking so subsequent feature merges have a working pipeline.Acceptance Criteria
All three AC mechanically verifiable:
- AC1 (assertion change) -- grep
.woodpecker.yamlforbuild/index.jsafter merge - AC2 (pipeline reaches build-and-push) -- visible in Woodpecker UI on next push to main
- AC3 (PR runs still gate Kaniko) -- the
validatestep still runs onpull_requestper thewhenblock (line 34-35), and Kaniko'swhenblock already excludespull_requestviaevent: [push, manual](line 53). No structural change required to preserve gating.
Optional: dev agent may add
build/handler.js assertion as defense-in-depth (issue body explicitly allows this).Blast Radius
Searched all sibling SvelteKit + API repos for the same smoke-check pattern:
westside-app: uses adapter-static --test -f build/index.htmlis CORRECT. No change needed.westside-contracts: uses adapter-node, no smoke check at all (separate scoping concern, not a regression).pal-e-app,mcd-tracker-app: adapter-static, no smoke check in.woodpecker.yaml.- Non-SvelteKit repos (basketball-api, pal-e-docs, mcd-tracker-api): N/A.
Conclusion: westside-admin is the only repo with this bug. No fan-out fix required. No downstream consumers of
build/index.html to break (it never existed for this repo).Decomposition Assessment
1 file, 1 line change, 3 AC. Estimated agent work: under 1 minute (edit + commit + PR). No decomposition needed.
Recommendation
No action needed. Ready to advance backlog -> todo.
Related
review-1094-2026-04-25-v2-- adjacent CI ticket APPROVED with the same arch:ci-pipeline label and story:admin-row-crud axesarch-ci-pipeline-- backing architecture note for this workstory-westside-admin-admin-row-crud-- sole user story for westside-admin v1convention-architecture-ids-- confirms arch:ci-pipeline as canonical for Woodpecker CIfeedback_yaml_parse_validation-- dev agent should yaml.safe_load the file before commit; QA must verify