Repository navigation
feat: events - Load approved event content from Markdown #378
Description
Outcome
Populate event records from approved Markdown using the agreed model.
Verified context
Existing event Markdown does not populate the active page; mock events duplicate structured content.
Scope
Implement E1 mappings through shared validation/loading without altering unverified facts.
Acceptance criteria
- Approved sources load with stable IDs and source links.
- Metadata/body support agreed profile/edition fields.
- Optional data renders safely; invalid identities, dates and relationships have diagnostics.
- Fixtures cover existing shapes, duplicates and absent edition/media data without inventing records.
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/events-markdown-loading - 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 27 audit addendum
- Repository:
lightspeedwp/ThisOneTimeOnAcidCom; implementing target: this event-loading issue, counterpart GitHub issue 378. - Proposed branch:
feat/events-markdown-loading; base: refresheddevelop, checked at4ecdb26d9655a48bf000a7c89da2f70383edce87(D). Organisation baseline:8f28eca80bff198879f7aaf496717dc0551bb32e(O). - Branch state: proposed new branch, not created/reused. Complete returned branch/open-PR listings and exact-head search found no match. Refresh before work; reuse requires verified equivalent scope. No automatic reset/rename/reuse of unrelated work.
- Naming: local guide, validator and organisation strategy authorise feat/type-scope-title. Static inspection only; older no-conventions claims conflict with current files.
- Template: shared Feature template. Local routing suggests it/applies a label, not body insertion. Verify selection separately; no local/locked-template edits or automatic metadata/closing examples.
- Parent context: preserve hierarchy; omit coordination-parent identifiers/URLs from branches, PR metadata and coding prompts while effects remain unverified. Never use parent as native development/closing target.
- Allowed closing targets: none for this provisional contribution. Partial work cannot close the issue; future references/associations need separate review.
- Governance PR346 is context, not delivered infrastructure or reuse branch. No repository edits, branch/PR operations, execution, merge or deployment authorised.
Expected file changes
Provisional adapter plan, not implementation authority. Existing evidence inspected at D; new destinations proposed. Specification-first work remains prerequisite: catalogue lists 001/002; competing 003 proposals remain unreserved. Agree allocation and preview exact specification/research/plan/tasks paths and catalogue changes before creation. No number/directory allocated here; this is not a complete implementation plan.
| Operation | Path | Intended change | Evidence/revision | Approval or dependency |
|---|---|---|---|---|
| Create, proposed | src/app/utils/eventContentLoader.ts |
Adapter over approved shared loading: stable identity/source links, agreed metadata/body mappings and invalid-record diagnostics | D: four event Markdown profiles, loader precedent and utils directory | Approved event model/eligibility, schemas/validation and delivered browser-safe API; no guessed exports/independent parser |
| Edit, conditional | src/app/data/types/events.ts |
Only agreed profile/edition compatibility changes; preserve consumers | D: required image/order/edition fields exceed source profiles | Model/compatibility approval; omit if unnecessary |
| Create, proposed | src/app/utils/__tests__/eventContentLoader.test.mjs |
Test-only identity/duplicate/relationship/date, missing edition/media and exclusion fixtures | D: node:test precedent; Jest does not discover this path | Approved runner/tsx invocation and glob isolation; no harness changes assumed |
| Create, proposed | docs/events-content-loading.md |
Mappings, diagnostics, source/publication boundaries and view handoff | D: data README/types/tracked profiles | Reviewed contracts; supplied text is not verified fact |
No moves/deletions. Event-model, schema, validation, shared-loading and media decisions remain outstanding; applied plans are not delivered dependencies. Resolve historical-content import restrictions. Flat profiles do not establish editions, dates, confirmed appearances or publication approval. Keep TBC unresolved; do not invent facts.
Active events destination uses a hardcoded book-site page; legacy aggregation includes only Origin. View/route integration remains separate work, not this adapter contribution.
Exclude editorial migration, mock replacement, routes/UI, JSON-LD, dependencies/configuration, protected assets/references/fallback component, Supabase, attribution/changelog, managed workflows and external services. Resolve changelog handling separately. Default prompt/report/task writes deferred under draft-only scope. No commands, installs, tests, builds, scripts, hooks or cloud operations performed. Extra paths/material 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.
Metadata
Metadata
Assignees
Labels
Type
Fields
Priority
Activity
linear-code commentedon Oct 18, 2026
TOA-326