/excel, /ppt, /doc, /pdf, /ocr → RippleP builds files from plain-English briefs.
User types `/excel monthly expenses Jan-Mar` → Leb parses intent → emits `EXCEL:{...}` dispatch → RippleP handler generates file → logs to generated/manifest.json with Telegram file_id → delivers to chat.
Manifest keeps file_id mapping so "send that Excel again" is instant — no regen.
`/ocr session` runs the mum's badminton session parser → auto-writes attendance + payments to Google Sheets.