Onboard a Non-TypeScript Repository
Colony is language-agnostic. For each worktree it either uses an explicit setup command or detects a common project manifest. Current detection covers Gemfile, requirements.txt, pyproject.toml, go.mod, Cargo.toml, composer.json, and JavaScript package manifests and lockfiles. Configure an explicit command when the repository needs a different tool, flags, private registry setup, or multiple ecosystems.
1. Make a clean worktree buildable
Section titled “1. Make a clean worktree buildable”workspace.setup_command runs after Colony creates a worktree. workspace.prebuild_command is an optional follow-up for generation or compilation. The default setup timeout is 300 seconds.
| Stack | Example explicit setup | Optional prebuild |
|---|---|---|
| Python with uv | uv sync | — |
| Python with pip | pip install -r requirements.txt | — |
| Go | go mod download | go build ./... |
| Rust | cargo fetch | cargo build |
| Ruby | bundle install | — |
Run the exact command in a clean checkout before giving it to Colony. Include non-interactive authentication and language-version activation where needed, but keep secrets in the deployment’s secret store rather than the repository.
2. Add deterministic review checks
Section titled “2. Add deterministic review checks”review.checks is a named command map. An empty map means there is no local deterministic gate; the reviewer then relies on repository context, provider CI, and model judgment.
review: format_command: 'ruff format .' checks: test: 'pytest' lint: 'ruff check .' type: 'mypy src' ci_required_checks: - pytest-ciUse commands that work from the worktree root and return non-zero on failure. format_command may modify files, so use an idempotent formatter. ci_required_checks names provider checks Colony must wait for before merge; spelling must match the provider’s reported check names.
Typical checks include go test ./..., go vet ./..., cargo test, cargo clippy -- -D warnings, bundle exec rspec, and bundle exec rubocop.
3. Record repository conventions
Section titled “3. Record repository conventions”Commit .colony/conventions.md with the facts an agent cannot reliably infer: supported language versions, architecture boundaries, generated-code rules, test commands, style constraints, and repository-specific patterns. Keep it short enough to remain current.
For self-hosted Colony, colony colonize can generate or refresh repository conventions. Review the result before committing it. The issue-writing guidance in Writing for Colony complements conventions but is not a conventions-file schema.
Apply and verify
Section titled “Apply and verify”- Open the repository’s Settings page.
- Set explicit setup and prebuild commands only when auto-detection is insufficient.
- Configure repository review checks, format command, timeouts, and required CI checks. Organization defaults under Settings → Agents still apply where the repository does not override them.
- Save, then run one small issue and inspect setup and check output.
Add global defaults or repository overrides to the Colony installation’s colony.config.yaml, then validate with:
colony status --checkSupported workspace and review changes can hot-reload. Check colony status for the reload result, and restart the Worker only if the deployment reports that a restart is required.