Beta -- DevRail is under active development. Standards, tooling, and templates may change without notice. See STABILITY.md for details.
A new project bootstrapped from the DevRail GitHub template.
- Click "Use this template" on github.com/devrail-dev/github-repo-template to create a new repository.
- Edit
.devrail.ymland uncomment the languages used in your project. - Run
make install-hooksto set up pre-commit hooks.
The Makefile is the universal execution interface. Every target produces consistent behavior whether invoked by a developer, CI pipeline, or AI agent.
| Target | Purpose |
|---|---|
make help |
Show available targets (default) |
make lint |
Run all linters for declared languages |
make format |
Run all formatters for declared languages |
make test |
Run project test suite |
make security |
Run language-specific security scanners |
make scan |
Run universal scanning (trivy, gitleaks) |
make docs |
Generate documentation |
make check |
Run all of the above; report composite summary |
make install-hooks |
Install pre-commit hooks |
All targets except help and install-hooks delegate to the dev-toolchain Docker container (ghcr.io/devrail-dev/dev-toolchain:v1).
Every DevRail-managed repository includes a .devrail.yml file at the repo root. This file declares the project's languages and settings, and is read by the Makefile, CI pipelines, and AI agents.
languages:
- python
- bash
fail_fast: false
log_format: jsonUncomment the languages used in your project and configure settings as needed.
To enforce CI checks before merging pull requests:
- Go to Settings > Branches > Branch protection rules
- Add a rule for the
mainbranch - Enable "Require status checks to pass before merging"
- Select all five status checks:
lint,format,security,test,docs
This repo is configured as a GitHub template. To enable this on your fork:
- Go to Settings > General
- Check "Template repository" under the repository name section
- Users will then see a "Use this template" button on the repo page
See DEVELOPMENT.md for development standards, coding conventions, and contribution guidelines.
To add a new language ecosystem to DevRail, see the Contributing a New Language Ecosystem guide.
This project follows Conventional Commits. All commits use the type(scope): description format.
To add DevRail standards to an existing GitHub repository:
- Copy
.devrail.ymland uncomment your project's languages - Copy
.editorconfig - Merge
.gitignorepatterns into your existing .gitignore - Copy
Makefile(or merge targets if you have an existing Makefile)
- Copy
.pre-commit-config.yamland uncomment hooks for your languages - Run
make install-hooks
- Copy
DEVELOPMENT.md,CLAUDE.md,AGENTS.md,.cursorrules - Copy
.opencode/agents.yaml
- Copy
.github/workflows/directory (lint.yml, format.yml, security.yml, test.yml, docs.yml) - Configure branch protection: Settings > Branches > Require status checks
- Copy
.github/PULL_REQUEST_TEMPLATE.md - Copy
.github/CODEOWNERSand configure for your team - Copy
CHANGELOG.mdif not already present
- Run
make checkand fix any issues - Create a test commit to verify pre-commit hooks fire
- Create a test PR to verify CI workflows run
This project is licensed under the MIT License. See LICENSE for details.