Skip to content

content-model: videos - Adapt video Markdown and media references #370

Open

Description

@ashleyshaw

Outcome

Map video Markdown into the existing runtime video contract.

Verified context

content/videos/ contains provider/URL metadata and notes, including placeholders; data/types/videos.ts expects a thumbnail and additional optional fields.

Scope

Implement shared-schema mapping without replacing protected media or inventing assets.

Acceptance criteria

  • Mapping settles thumbnail, provider/URL, duration, dates, taxonomy, featured, series/episode and FAQ fields.
  • Caption/transcript references and engagement provenance are explicit decisions, not assumed content.
  • Markdown notes feed runtime records; missing thumbnails/placeholders are surfaced.
  • Tests cover malformed records and publication filtering while reusing media-catalogue contracts.

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-markdown-adapter
  • 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 17 audit addendum

Preserve existing outcomes, criteria, boundaries and hierarchy. This addendum refreshes branch/template evidence and adds a provisional file plan; no implementation authority is granted.

  • Repository: lightspeedwp/ThisOneTimeOnAcidCom; implementing target: this video-mapping issue, verified counterpart GitHub issue 370.
  • Proposed branch: feat/videos-markdown-adapter; base: refreshed develop, checked at 4ecdb26d9655a48bf000a7c89da2f70383edce87 (D). Organisation baseline: 8f28eca80bff198879f7aaf496717dc0551bb32e (O).
  • Branch state: proposed new branch, not created or verified for reuse. Absent from refreshed branches; exact-head PR search returned no matches and no matching open implementation PR identified. Refresh before creation.
  • Naming: local guide, validator and organisation strategy authorise feat/type-scope-title for this runtime capability. Static inspection only; validator not executed.
  • PR template: shared Feature template. Canonical route map and local workflow agree. Workflow suggests a template/applies a label, not body insertion. Native inheritance/named-template loading unverified. No local/locked-template edits, automatic labels or example closing clauses.
  • Parent remains coordination context only; no native development/closing association. Omit parent identifiers, title and URLs from branches, PR metadata and coding prompts.
  • Allowed closing targets: none currently. Partial mapping must not close this issue; future references/associations need separate review and whole-outcome evidence.
  • Governance PR346 is context, not delivered infrastructure, approval or reuse branch. No repository edits, branch operations, PR changes, force-push, merge, deployment or execution authorised.

Expected file changes

Provisional implementation plan, not delivered code. Existing paths/parent directories inspected at D; new destinations proposed and absent.

Operation Path Intended change Evidence/revision Approval or dependency
Create, proposed src/app/utils/videoContentLoader.ts Consume approved shared discovery/parser; map identity, notes, provider/URL, duration, dates, taxonomy, featured, series/episode and FAQ fields; produce actionable missing-media/publication diagnostics D: utils directory, video Markdown and runtime interface Delivered shared loading/contracts; approved publication/media decisions
Edit, conditional src/app/data/types/videos.ts Reconcile agreed optional/missing-field representation and accessibility/media references without silently weakening consumers D: required thumbnail/presentation fields, YouTube/Vimeo platform restriction and optional FAQ/engagement/series fields Explicit contract approval and consumer review
Create, proposed src/app/utils/videoContentLoader.test.ts Mapping, malformed metadata, duplicate IDs, missing thumbnails, placeholder media and publication-exclusion cases; controlled labelled fixtures D: utils directory; filename absent; current Jest inspected Approved TypeScript discovery/transformation and fixture policy
Create, proposed docs/video-content-mapping.md Record mappings, missing-value rules, FAQ extraction, publication decisions, diagnostics and downstream handoff D: docs directory; destination absent Approved decisions; no fabricated metadata/editorial rewrites

No moves or deletions. Sampled Markdown lacks thumbnails, contains unverified engagement and repeated placeholder destinations. A valid URL/date does not establish approved media. Source body FAQs need agreed extraction/duplicate-display handling; do not substitute global FAQs. Do not infer captions, transcripts, dates, rights or series data.

Shared schema, validation and loading remain Todo; initial catalogue modelling In Progress and finalisation Backlog. Plans are not delivered dependencies. Require approved contracts and specification-first planning; no dedicated video specification verified. Catalogue naming/envelope conflicts remain unresolved.

Current Jest discovers JavaScript under scripts/tests and transforms JS/JSX, not the proposed TypeScript test. Harness/configuration/dependency changes need separate approval. Flag stale root-guide runtime/testing/branch claims, editorial-import conflict and constitution authority ambiguity without incidental repair.

Routing, taxonomy counts and playback remain separate work. Exclude protected images/references, mock-entry rewrites, fallback component, Supabase, asset migration, analytics, hooks, workflows, deployment, locked governance and changelog edits; resolve changelog disposition separately. No commands, installs, tests, builds or cloud operations performed. Additional paths/material scope changes require revised preview and approval. Exclude credentials/restricted material from public sync; description approval changes no status, ownership, labels, hierarchy or PR associations and grants no implementation authority.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Fields

Priority

None yet

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions