Publication Presentation Video Implementation Plan
For agentic workers: REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (
- [ ]) syntax for tracking.
Goal: Render sheet-provided presentation videos in P1 publications while preserving all existing actions.
Architecture: Update the existing publication schema, normalizer, and action renderer. Keep the Apps Script contract, offline snapshot, tests, and editing documentation aligned with A:U.
Tech Stack: JavaScript, Google Apps Script, Jekyll, Python unittest, Firefox WebDriver
Spec: docs/superpowers/specs/2026-10-29-publication-presentation-video-design.md
Global Constraints
- Do not hardcode YouTube URLs.
- Place Presentation after Slides and before Cite.
- Preserve backward compatibility with
Slides_link.
Review Focus
- A row with a video renders Presentation in a new tab.
- A row without a video does not render Presentation.
- Slides and Cite retain their behavior and order.
- Both current and legacy slide headers normalize correctly.
- Offline fallback remains valid when the remote API is unavailable.
Task 1: A:U publication contract and renderer
Files:
- Modify:
tests/test_portfolio_data.py - Modify:
tests/test_browser_smoke.py -
Modify:
assets/js/portfolio-data.js - Add failing schema and browser assertions.
- Run targeted tests and confirm the missing feature fails.
- Add normalization and Presentation action rendering.
- Run targeted tests and confirm they pass.
Task 2: Saved data and Apps Script contract
Files:
- Modify:
assets/data/portfolio-data.json - Modify:
scripts/build_content_model.py - Modify:
docs/google-sheets-code.gs - Modify:
docs/GOOGLE_SHEETS_DEPLOYMENT.md -
Modify:
docs/GOOGLE_SHEETS_QUICK_EDIT_KO.txt - Migrate the saved publication rows to the A:U key order.
- Update builder and Apps Script required headers.
- Update A:T editing references to A:U.
- Run the full test suite.
Task 3: Deploy both sites
- Verify scoped diffs and full tests in P1 and P2.
- Commit only task-related files in each repository.
- Push both
mainbranches and verify remote commit IDs.