Repository navigation
feat: videos - Connect video archives and detail navigation #371
Description
Outcome
Expose approved video archive/detail/taxonomy and modal journeys.
Verified context
VideosPage.tsx and VideoDetailPage.tsx use mock collections and /video/:slug links absent from active routing.
Scope
Integrate V1 with the existing router and views.
Acceptance criteria
- Canonical destinations, related links and share URLs agree.
- Archive, modal and detail views consume the same eligible records.
- Filters, sorting and category counts match the collection.
- Keyboard navigation, direct loads, empty categories and unknown slugs have focused tests.
Boundaries and sources
Creation defines work only; it does not start implementation. Preserve unrelated code, protected assets, editorial wording and existing records. Do not fabricate content, identity, media, manuscript chapters, dates or engagement data. Use approved repository-native authoring, validation, preview and publication decisions; do not provision an external CMS or database. Existing editorial verification remains with its current issues. All acceptance criteria remain unchecked until evidenced.
Repository evidence was inspected on develop at 4ecdb26d9655a48bf000a7c89da2f70383edce87. Recheck before implementation; no build or browser tests were run for this draft. Follow repository instructions and applicable Spec Kit requirements. Paths below refer to this repository.
Sources: repository instructions, application, editorial content.
Branch instructions
- Repository: lightspeedwp/ThisOneTimeOnAcidCom
- Proposed branch:
feat/videos-route-integration - Base:
develop - Naming policy: local guide, validator, organisation strategy.
- Pull request template: Organisation .github/PULL_REQUEST_TEMPLATE/pr_feature.md, per inspected local routing; recheck before opening a PR.
- Constraints: Preserve unrelated changes; do not force-push, merge or deploy. Complete applicable Spec Kit requirements before implementation.
- Conflicts or missing evidence: Proposed branch, not an existing branch; collision freedom is unverified. Recheck current branch routing and open governance changes, including PR automation: repo-governance - Add governance automation and validation #346. Older instructions claim branch rules are absent; the inspected local guide and executable validator establish the current convention. This draft creates no branch or pull request.
Branch instructions — batch 18 audit addendum
- Repository:
lightspeedwp/ThisOneTimeOnAcidCom; implementing target: this video-routing issue, counterpart GitHub issue 371 in this repository only. - Proposed branch:
feat/videos-route-integration. - Base: refreshed
develop, checked at4ecdb26d9655a48bf000a7c89da2f70383edce87(R). Organisation evidence baseline:8f28eca80bff198879f7aaf496717dc0551bb32e(O). - Branch state: proposed new branch, not created/reused. Absent from inspected remote branches; no matching implementation PR identified. Refresh before implementation; never repurpose unrelated work by assumption.
- Naming evidence: local guide and validator authorise feat and type/scope-title. Static inspection only; validator not executed.
- Template: shared Feature template. Local automation suggests a template/applies a type label, not PR-body insertion. Native loading remains unverified. No template, taxonomy or workflow changes authorised.
- Parent context: preserve hierarchy; omit coordination-parent identifiers/links from branches, PR metadata and coding prompts. Never use the parent as a native development or closing target.
- Allowed closing targets: none currently. Partial contributions cannot close the issue; any future references or associations require separate review.
- Governance PR346 is context only, not delivered infrastructure, approval or a reuse branch. No implementation, branch/PR operations, execution, merge or deployment authorised.
Expected file changes
Provisional implementation plan, not delivered code. Existing paths inspected at R; new test filename proposed. Dependencies: delivered eligible-video collection contract, approved video specification/plan/tasks, canonical paths/book-site origin and UI wording. Prior issue plans and batch 17’s pending description are not delivered dependencies.
| Operation | Path | Intended change | Evidence/revision | Approval or dependency |
|---|---|---|---|---|
| Edit | src/app/routes.ts |
Register existing archive/detail/category/tag pages; preserve unrelated routes | R: no video routes | Approved destinations and source contract |
| Edit | src/app/components/pages/videos/VideosPage.tsx |
Eligible records, consistent modal/detail actions, category queries, counts and keyboard behaviour | R: mock source and unregistered links | Delivered adapter/source contract |
| Edit | src/app/components/pages/videos/VideoDetailPage.tsx |
Consistent lookup/related records, taxonomy/share/canonical links and unknown-slug handling | R: mock lookup and portfolio-domain share fallback | Approved source and book-site origin |
| Edit | src/app/components/pages/videos/VideoCategoryPage.tsx |
Eligible collection/shared filtering; distinguish unknown from empty category | R: unknown category can retain all videos | Approved taxonomy/source rules |
| Edit | src/app/components/pages/videos/VideoTagPage.tsx |
Consistent tag identity, encoded links, sorting and counts | R: mock tags and separate slug generation | Approved tag/source contract |
| Edit, bounded | src/app/components/pages/videos/VideoModal.tsx |
Focus containment/return and keyboard journey integration only | R: Escape exists; claimed focus trap absent | Coordinate separate playback issue; no playback-scope duplication |
| Edit | src/app/utils/contentCounts.ts |
Video counts from eligible collection; preserve other content types | R: video counts use mock imports | Delivered synchronous/asynchronous source contract; revise plan if interface changes needed |
| Edit | src/app/data/mock/ui/videos.ts |
Required empty/unknown/accessibility and sort labels only | R: established UI-string module | Approved wording |
| Create, proposed | e2e/videos.spec.ts |
Direct load/refresh, navigation, queries/taxonomy, sorting/counts, unknown slugs, modal focus/keyboard and share links | R: Playwright e2e discovery and routing-suite precedent; proposed destination | Controlled fixtures and runnable browser environment |
No moves/deletions. Reuse existing filtering/router helpers and BEM components where compatible. Preserve shell landmark structure without duplicate main-content IDs. Provider mapping, playback failures and captions remain separate playback work.
Existing navigation suggests /videos, /video/:slug, /videos/category/:slug and /videos/tag/:slug; obtain explicit canonical-route agreement before implementation. Complete specification-first approval; no video specification verified. Do not invent an adapter API or specification directory. Additional paths, asynchronous interface expansion or materially different scope require revised preview and approval.
Preserve protected assets/imports/references, fallback component, Supabase, attribution/changelog and managed workflows. No editorial rewrite, fabricated records/media/engagement, dependency/configuration/deployment changes included. Changelog handling needs separate disposition. No commands, installations, hooks, tests, builds or cloud operations performed. Exclude credentials/restricted material from public sync. Description approval changes no status, owner, labels, hierarchy or PR associations and grants no implementation authority.
Metadata
Metadata
Assignees
Labels
Type
Fields
Priority
Activity
linear-code commentedon Oct 18, 2026
TOA-319