- Runtime shape and fail-closed host execution:
docs/architecture.md - User CLI and providers:
README.md - Docker image contract:
docs/docker.md - How to run evals:
docs/testing-guide.md - Contributor setup:
CONTRIBUTING.md - Next product work:
ROADMAP.md plans/is historical. Do not treat those files as open work.
- New behavior: write a failing Minitest under
test/, run that file, then write the minimum code to pass. - File test:
bundle exec ruby -Itest test/<path>_test.rb - Full suite:
bundle exec rake test - Every
.rbfile starts with# frozen_string_literal: true. - Service objects expose
.calland return{ success:, response: }. - Leave
repomix-output.*andcoverage/uncommitted.
Use these tools before dumping whole files or grepping the tree.
- If
.codegraph/exists, runcodegraph explore "<symbol or question>"(or the CodeGraph MCP tools). - If
graphify-out/graph.jsonexists, use Graphify (graphify explain,graphify path, or the Graphify MCP). - For a whole-repo pack, run
repomixusingrepomix.config.json. Do not commitrepomix-output.*. - Regenerate Graphify with
graphify extract . --backend deepseek --no-cluster(DeepSeek is the global LLM). Rust workspaces also pass--cargo.