These guidelines apply to anyone (human or AI assistant) working on caseforge.
cmd/— CLI entry points and command handlersinternal/— internal packages (not importable by external code)docs/— user-facing documentationscripts/— automation scripts (acceptance, release)testdata/— test fixturesexamples/— usage examples
Every meaningful change must run the acceptance suite before commit:
./scripts/acceptance.shRules:
- All scenarios must pass before pushing to
main. - When adding a new command or feature, add corresponding scenario(s) to
docs/acceptance/acceptance-tests.mdand a matchingcontains/runcall inscripts/acceptance.shin the same commit. - If a scenario fails, determine the root cause:
- Code bug → fix the code, re-run the suite.
- Environment issue (no API key, no running server) → document in the Expected column as "expected failure" and ensure the scenario tests the error path, not the happy path.
go test ./... # all packages must pass
go build -o caseforge . # binary builds clean
./scripts/acceptance.sh # behavior-level checksSee CONTRIBUTING.md for the full contribution workflow.