See workspace policy: /Users/home/Workspace/CLAUDE.md
/Users/home/Workspace/CLAUDE.md/Users/home/Workspace/Apps/AGENTS.md/Users/home/Workspace/Apps/Papyrus/AGENTS.md← nearest, wins on conflicts- Relevant
~/.skills/guides
- Purpose: Native macOS HTML→PDF conversion app — fetches article HTML (readability-lxml + bs4), renders to PDF via Playwright headless Chromium (PySide6 GUI)
- Package:
papyrus| Entry:python -m papyrus.main - Launch dev:
./run_preview.sh| Launch full app:./run_papyrus.sh - Build:
papyrusbuildorrazorbuild Papyrus| Push:papyruspushorrazorpush Papyrus - Toolchain:
uv sync→uv run ruff check .→uv run ty check src --python-version 3.13 - Tests:
uv run pytest tests/ -v - razorcore: editable dep at
../.razorcore ⚠️ Playwright browser required: Runuv run playwright install chromiumonce afteruv sync— without it, PDF rendering raisesBrowserNotFoundError
ui/composer.py— all widget classes, ColorTheme, stylesheet (build_stylesheet())core/orchestrator.py— pipeline coordination (PapyrusOrchestrator)core/converter.py— pure HTML→PDF conversion (no UI dependencies)core/app.py— thin QMainWindow entry point (~89 lines), wiring only