propresenter-php/AGENTS.md
Thorsten Bus 22ba4aff7d refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples
- Move src/, tests/, bin/, generated/, proto/, composer.json, composer.lock, phpunit.xml from php/ to repo root
- Move ref/ to doc/reference_samples/ for better organization
- Remove vendor/ from git tracking (now properly gitignored)
- Update all test file paths (dirname adjustments and ref/ -> doc/reference_samples/)
- Update all documentation paths (AGENTS.md, doc/*.md)
- Remove php.bak/ directory
- All 252 tests pass
2026-03-30 13:26:29 +02:00

2.2 KiB

ProPresenter Parser — Agent Instructions

Documentation

All project documentation lives in doc/. Load only what you need.

Start here: Read doc/INDEX.md for the table of contents and quick navigation.

How to Find What You Need

  1. Check doc/INDEX.md for the topic overview
  2. Use doc/keywords.md to search by keyword
  3. Load the specific doc file — don't load everything

Common Tasks

Task Load
Parse/modify .pro song files doc/api/song.md
Parse/modify .proplaylist files doc/api/playlist.md
Parse/modify .probundle files doc/api/bundle.md
Understand .pro binary format doc/formats/pp_song_spec.md
Understand .proplaylist binary format doc/formats/pp_playlist_spec.md
Understand .probundle binary format doc/formats/pp_bundle_spec.md
Debug or troubleshoot doc/internal/issues.md
Add new documentation doc/CONTRIBUTING.md

Structure

doc/
├── INDEX.md           ← Start here (TOC + navigation)
├── keywords.md        ← Keyword search index
├── CONTRIBUTING.md    ← How to document new things
├── formats/           ← Binary file format specs
│   ├── pp_song_spec.md
│   ├── pp_playlist_spec.md
│   └── pp_bundle_spec.md
├── api/               ← PHP API docs (read/write/generate)
│   ├── song.md
│   ├── playlist.md
│   └── bundle.md
└── internal/          ← Dev notes (learnings, decisions, issues)
    ├── learnings.md
    ├── decisions.md
    └── issues.md

Project Overview

PHP tools for parsing, modifying, and generating ProPresenter 7 files:

  • Songs (.pro) — Protobuf-encoded presentation files with lyrics, groups, slides, arrangements, translations
  • Playlists (.proplaylist) — ZIP64 archives containing playlist metadata and embedded songs
  • Bundles (.probundle) — ZIP archives containing a single presentation with embedded media assets

CLI Tools

php bin/parse-song.php path/to/song.pro
php bin/parse-playlist.php path/to/playlist.proplaylist

Key Source Files

All PHP source code is in src/. Generated protobuf classes are in generated/. Tests are in tests/.