Public-safe showcase repository for a low-noise PPTX brand-compliance reviewer.
This project analyzes uploaded PowerPoint decks and returns conservative, slide-level findings for a human reviewer.
Current vertical slice:
- PPTX upload
- Slide parsing
- Deterministic high-confidence findings
- Reviewer-friendly per-slide workspace
- Optional password gate for the review workspace
- Best-effort slide thumbnails as reviewer aids
- Deterministic checks first
- Low false-positive rate
- Explainable findings
- No deck-specific hardcoding
- No private deck assets committed to git
- Uploaded PPTX files are processed transiently and are not exposed as public assets
apps/api/— FastAPI parsing, findings, and thumbnail pipelineapps/web/— Next.js reviewer UI and same-origin API proxydocs/— architecture, project plan, rule taxonomy, delivery checklistsamples/— synthetic fixtures and local-only placeholders
cd apps/api
uv sync --extra dev
uv run uvicorn --app-dir src brand_reviewer_api.main:app \
--reload \
--host 127.0.0.1 \
--port ${API_PORT:-8000}Backend env vars:
BRAND_REVIEWER_API_WORKDIR_ROOTBRAND_REVIEWER_PROXY_SHARED_SECRETBRAND_REVIEWER_PDF_RENDER_TIMEOUT_SECONDSBRAND_REVIEWER_PNG_RENDER_TIMEOUT_SECONDSBRAND_REVIEWER_MAX_RENDERED_SLIDESBRAND_REVIEWER_MAX_TOTAL_THUMBNAIL_DATA_URL_BYTESBRAND_REVIEWER_MAX_PNG_BYTES_PER_SLIDE
cd apps/web
corepack pnpm install
npm run devFrontend env vars:
BRAND_REVIEWER_API_BASE_URL— default local backend target (http://127.0.0.1:8000)APP_PASSWORD— optional workspace passwordAPP_AUTH_SECRET— server-only HMAC signing secret for the session cookieBRAND_REVIEWER_BACKEND_PROXY_SECRET— server-only secret forwarded by the proxy to/decks
cd apps/api
uv run pytest -q
PYTHONPATH=src uv run python -m compileall -q src tests
cd ../web
npm run typecheck
npm run lint
npm run buildSee docs/PUBLISHING.md for the public GitHub repo setup and first-push flow.
The current deterministic rule set includes:
- visible
DRAFTmarkers Percentile→%ileterminology for the sample ACME brand vocabulary- missing confidentiality language
Incumbent→Executiveterminology- duplicate finding collapse per slide/rule
- Thumbnail rendering is a reviewer aid, not a visual/layout compliance verdict.
- Findings remain text-first even when thumbnails render successfully.
- Large decks can take longer on low-resource environments.
- No database, persistent review state backend, or AI dependency is required.
- The password gate is intentionally simple and is not production-grade authentication.
- richer table/header-aware deterministic checks
- better fixture coverage for ambiguous formatting cases
- optional visual heuristics with strict confidence separation
- exportable review decisions and reviewer notes


