*Epic CLI Manual — [index](../MANUAL.md)*

# 1. What Epic CLI is

Epic CLI is the PDF engine that EpicERP (`php-heatapplied`) and DrivenARC (`php-driven-arc`)
shell out to for everything involving customer artwork: intake preflight, ink inspection,
plate renaming, page transforms, gang-sheet imposition, flow layouts (team names/numbers),
raster tracing, vector extraction, design compilation, derivative generation, production
backer plates, and print spooling.

It is **infrastructure, not a product**. Its stdout JSON, flag names, and exit codes are
parsed directly by production PHP — they are contracts. Everything in this manual that says
"exactly one JSON object on stdout" or "exit 3 means X" is something another codebase relies
on.

Internally it vendors its own fork of Apache PDFBox (the `org.apache.pdfbox` sources in this
repo), tuned for bounded memory on large production files, and it absorbs the former
`java-epic-rvp` project as the `--vectorize` family. One jar, no external runtime
dependencies beyond a JRE.

## The processing domains

| Domain | Modes |
|---|---|
| Intake / inspection | `--preflight`, `--list-spot-colors`, `--list-process-colors`, `--thin-line` |
| Page transforms | `--rotate90/180/270`, `--mirror`, `--resize`, `--create`, `--split` |
| Ink management | `--swap-spot-colors`, per-placement `recolor` in `--imposition` |
| Sheet building | `--imposition` (placements, flow layouts, registration marks) |
| Design generation | `--compile` (Artwork Designer), `--derivatives`, `--backers` |
| Vector tooling | `--vectorize`/`--rvp`, `--extract-objects`, `--simplify-curves` |
| Output | `--spool` |
