Plans006 2026 02 20 Present Service
Completed
- T-001: Scaffold @services/present package
- T-002: Define PresentAdapter interface and output types
- T-003: Implement PptxAdapter
- T-004: slides/cover.ts
- T-005: slides/revenue-comparison.ts
- T-006: slides/key-comparison.ts
- T-007: slides/program-progress.ts
- T-008: slides/school-progress.ts
- T-009: slides/channel-marketing.ts
- T-010: generator.ts — Slide orchestrator
- T-011: PDF conversion via LibreOffice CLI
- T-012: index.ts — CLI entry point
- T-013: Add root scripts and AGENTS.md
- T-014: bun install + type-check
- T-015: End-to-end verification
In Progress
- None
Blocked
- None
Pending
- None
Learnings
- pptxgenjs table typings require object-shaped fill values and strict valign: middle.
- Using Bun.spawn for LibreOffice conversion keeps PDF generation optional; CLI warns gracefully when libreoffice is not in $PATH.
- slides/common.ts shared helper (added during execution) reduces style drift across 6 slide modules.
- output/monthly/2026-02.pptx produced at 5.3MB — real deck with all slides.
- PDF skipped: LibreOffice not installed on local dev machine. Install to enable.
Questions
- Should the CLI skip PDF if LibreOffice is not installed (warn only — currently implemented) or hard-fail?
- Should Google Slides and NotebookLM adapter stubs live in this package or separate packages?
Next
- Optional: install LibreOffice locally to test PDF conversion end-to-end
- Optional: visually review output/monthly/2026-02.pptx against source/Contoh punya TM WLC.pdf
- Optional: implement Google Slides or NotebookLM adapter when component reuse decision is made