Story: Board Card Traceability (pal-e-app)

story-pal-e-app-board-card-traceability User Story

active user-story

story: Board Card Traceability

Role

Lucas (platform owner / operator)

Key

board-card-traceability

Want

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 via overflow-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.
  • 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 (per convention-architecture-ids) since the board page is the SvelteKit rendering surface.
  • project-pal-e-app — parent project page
  • board-pal-e-app — board where execution tickets live
  • convention-architecture-ids — defines canonical arch: labels used in the drawer's link resolution
  • feedback_traceability_triangle — the platform principle this story dogfoods
  • feedback_no_tailwind — drives the modal cleanup acceptance criterion
  • feedback_block_component_model — documents the Board as the renderer exception
  • Future: convention-admin-surface-ui (to be created from this work, applied to westside-admin next)