The public OSS CLI is useful in CI when you want generated files to become deterministic, portable evidence instead of a loose job workspace.Documentation Index
Fetch the complete documentation index at: https://filepacks.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
Basic CI pattern
- Run a job that generates output files
- Package that directory with
npx filepacks pack - Verify the artifact with
npx filepacks verify - Compare it against a known baseline artifact with
npx filepacks compare - Upload the
.fpkfile as a job artifact for human review if needed
Why this works well in CI
- the artifact is one file you can upload
verifyconfirms integrity before downstream usecomparegives deterministic exit codes for “same”, “changed”, and “failed”- reviewers can inspect the exact same artifact later
Exit handling
For the current public CLI:verifyexits0when the artifact is validverifyexits1when the artifact is invalidcompareexits0when the artifacts are identicalcompareexits20when files differ
Example: strict GitHub Actions gate
Example: preserve artifact and fail only after capture
If you want to keep the candidate artifact even when the output changed, capture the exit code explicitly:20 as “review needed” instead of “tool failure”.
Agent and eval runner workflows
When an AI coding agent or eval runner produces output files, pack the output directory as an artifact immediately after the run:compare exits 0 if the output is structurally identical to the baseline and 20 if anything changed. Either exit code is usable in a script or CI job to decide whether to accept the run.
Use @filepacks/core directly to build this into an eval harness:
What to preserve
For the current OSS workflow, keep at least:candidate.fpk- the baseline artifact used for comparison, if it is not already versioned elsewhere
- the job log that captured the compare summary
Baseline management
The public OSS surface does not define a baseline registry or tag workflow. In CI, store the baseline artifact explicitly and compare against that file path. Common approaches:- commit a known-good
.fpkto the repository and compare against it on each run - upload the accepted run’s
.fpkas a named CI artifact and retrieve it in subsequent jobs
Good fit for CI
filepacks works well when you want:- reproducible build evidence
- a reviewable snapshot of generated files
- a stable baseline-versus-candidate comparison primitive
- one artifact file that humans and automation can both inspect later