Workflow integration¶
Summarizes SPEC.md §15; SPEC.md is authoritative.
Git¶
- Commit everything except
.vouch/cache/. vouch initadds.gitattributesentries marking generated fileslinguist-generated=true.- After a merge conflict in a generated file, take either side and run
vouch build. - Run records are one file per run id, so parallel experiment branches rarely conflict.
Pre-commit¶
vouch hook installwrites.git/hooks/pre-commit, honoringcore.hooksPath. It runsvouch check --quiet, plus--strictif[hook] strict.- The vouch repo also ships a
.pre-commit-hooks.yaml(id: vouch-check) for the pre-commit framework. - The hook must stay fast enough that nobody reaches for
--no-verify—vouch checktargets under a second.
CI¶
# .github/workflows/paper.yml
name: paper
on: [push, pull_request]
jobs:
vouch:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with: { python-version: "3.12" }
- run: pip install -e path/to/vouch # wherever vouch comes from
- run: vouch check --strict
Overleaf¶
- Everything LaTeX needs lives in the paper directory:
vouch.sty, the values file and the tables. These sync through Overleaf's git bridge. - Co-authors editing on Overleaf cite existing keys (from the committed catalog); unknown keys show
??key. - The build and check run locally or in CI.
arXiv and camera-ready¶
Use \usepackage[final]{vouch} and upload vouch.sty plus the generated files.
final loads no extra packages and leaks no paths.
Clusters¶
Records are plain files. Copy .vouch/runs/<id>.json (and any artifacts) back
from the cluster. Set VOUCH_ROOT if jobs run from another working directory.
Paths are always stored relative to the project root.
See also: vouch hook, Checks and lints.