INSTALL — JoF-250 Writing Engine
Tested on macOS 27 (Apple Silicon), Python 3.12 via uv, Claude Code 2.1.317.
bash
cd ~/Desktop/UQO/Recherche/Recherche-UQO/methodes/wp45-jof250
uv venv --python 3.12 .venv && uv pip install --python .venv/bin/python -e ".[dev]"
cp .env.example .env # point JOF250_ANTHROPIC_KEY_FILE to a file containing ANTHROPIC_API_KEY=… (never committed)
.venv/bin/jof250 --helpCorpus: config/corpus.yaml → corpus_root (default ~/Desktop/Journal-of-Finance-2018-2020, read-only). The derived artefacts are regenerated by:
bash
make audit # Phase 1 inventory + Crossref verification → data/manifests/
make parse # Phase 2 PyMuPDF structural extraction → data/derived/parsed/ (private, gitignored)
make annotate # Phase 3 LLM annotation (API, budget-capped) → data/annotations/
make profiles # Phase 4 profiles + figures → profiles/*.yaml, figures/
make index # Phase 5 hybrid index → data/derived/index/
make test # pytest (synthetic fixtures only; no API calls)Claude Code integration
- Project scope (already present):
.claude/commands/jof-*.md,.claude/agents/jof-*.md,.claude/skills/jof250/SKILL.md. Open Claude Code inside the repository and type/jof-status. - User scope (optional, makes
/jof-*available in every session):.venv/bin/jof250 install-claude-code --scope user [--force]. It writes only~/.claude/commands/jof-*.md,~/.claude/agents/jof-*.md,~/.claude/skills/jof250/; it never edits~/.claude/settings.json. To uninstall: delete those files. - The commands call the absolute path of this repository's
.venv/bin/jof250; if you move the repository, re-run the install command.
Secrets and spend
API key is read from ANTHROPIC_API_KEY or JOF250_ANTHROPIC_KEY_FILE (see .env.example). Every API call is logged to data/annotations/api_ledger.jsonl; config/models.yaml: budget_usd_cap stops further calls once reached (jof250 status shows spend).