config.example.json was the tracked seed for the gitignored config.json, but the base ships zero compose overlays and every reader (Makefile, install.sh, banner.sh) tolerates a missing config.json via jq fallbacks. Remove the file and its now-dead seeding block in install.sh. Closes #323 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
scripts/
Orchestrator scripts that run on the host, not inside the sandbox. Provisioning, Ralph execution, and the cron runtime live here.
| File | Purpose |
|---|---|
install.sh |
Curl-piped installer — bootstraps a fresh harness checkout |
ralph.sh |
Ralph loop runner: scripts/ralph.sh [--harness=…] <taskdesc> |
cron-runtime.ts |
Croner runtime — scans crons/*.md, schedules, fires each job |
__tests__/ |
Vitest unit tests (vitest.config.ts at repo root targets this) |
Conventions
- Bash scripts use
set -euo pipefailand anERRtrap so silent exits surface asERROR:lines (seeinstall.shheader for the pattern). - TypeScript scripts are run via
tsxfrom the rootpackage.jsonscripts; tests run viapnpm test. - Scripts here are orchestrator-scope only. Anything an in-sandbox
agent needs lives under
workspace/orinstall/. PerCLAUDE.md, application code does not belong inscripts/.
Adding a script
- Drop it in
scripts/with a one-line purpose comment in its header. - Add a row to the table above.
- If it's TypeScript, add a unit test under
scripts/__tests__/. - If it's a long-running entry point, wire a
pnpmscript in the rootpackage.jsonrather than expecting users to invoke it directly.