Story: Board Card Traceability (pal-e-app)
story: Board Card Traceability
Role
Lucas (platform owner / operator)
Key
board-card-traceabilityWant
As a platform owner, I want to see the full traceability triangle (story / arch / spec / PRs) for any board card I click in pal-e-app.
So That
So that I can navigate from any ticket to why it exists, what part of the system it touches, and what code came from it — without leaving pal-e-app or hand-grepping Forgejo. This is the foundation of "every piece of code known and mapped."
Acceptance Criteria
- [ ] Clicking any board card opens a right-side drawer (does not navigate away)
- [ ] Drawer shows: title, type badge, current column, full label list, linked Forgejo issue (if any), linked note (if note_slug set)
- [ ] Each label in the drawer is a clickable link:
story:X→/notes/story-{project}-X,arch:X→/notes/arch-*-{project}(resolution order documented in the convention) - [ ] Drawer closes on Escape, backdrop click, or close button
- [ ] "Move to column" affordance moves to a button inside the drawer (no longer triggered by tap-on-card)
- [ ] Long unbreakable tokens in card titles (e.g.
draft_tournament_email) wrap correctly viaoverflow-wrap: anywhere - [ ] Create-Item and Delete-Item modals render correctly without Tailwind utility classes — pure CSS vars matching
app.css - [ ] Visually verified on Lucas's phone (mobile-first) and on desktop
Success Metric
Lucas can click any board card on any board and reach all four traceability links (story note, arch note, Forgejo issue, parent project page) in ≤ 1 click each from the drawer. Self-reported "I can find anything" — measured by absence of follow-up complaints in the next two weeks of active use.
Related Architecture
arch-dataflow-pal-e-app— SvelteKit kanban page is the data-flow surface; this story extends it. Components table needs an entry for "Board Renderer" with the drawer pattern (discovered scope, separate ticket).arch-domain-pal-e-app— BoardItem entity carries the labels the drawer surfaces; no schema change needed (data is already there).- Canonical label for tickets:
arch:sveltekit-ssr(perconvention-architecture-ids) since the board page is the SvelteKit rendering surface.
Related
project-pal-e-app— parent project pageboard-pal-e-app— board where execution tickets liveconvention-architecture-ids— defines canonicalarch:labels used in the drawer's link resolutionfeedback_traceability_triangle— the platform principle this story dogfoodsfeedback_no_tailwind— drives the modal cleanup acceptance criterionfeedback_block_component_model— documents the Board as the renderer exception- Future:
convention-admin-surface-ui(to be created from this work, applied towestside-adminnext)