Atlas Plan
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

On this page