

Also from Kynth Studios


Also from Kynth Studios


Also from Kynth Studios
1# OpenProject Coding Agent Instructions23See [AGENTS.md](../AGENTS.md) for all agent instructions.45## Additional Context for GitHub Copilot67### Common Issues and Workarounds89#### Database Configuration10- **Issue**: Docker fails with "database.yml exists"11- **Fix**: Delete or rename `config/database.yml` when using Docker1213#### Memory Issues in Docker14- **Issue**: Frontend container exits with status 13715- **Fix**: Increase Docker memory limit to at least 4GB1617#### Test Failures on CI but Passing Locally18- Run with `CI=true` environment variable (eager loads app)19- Check for `OPENPROJECT_*` environment variables20- Match the random seed: `bundle exec rspec --seed 18352`21- Use `--bisect` to find order-dependent failures22- View browser tests with `OPENPROJECT_TESTING_NO_HEADLESS=1`2324#### Frontend Build Issues25- **Issue**: "jQuery not defined", frontend asset errors, or blank page26- **Fix**: Run `bin/setup_dev` to rebuild frontend completely2728#### Parallel Test Failures29- Tests run in parallel on CI with different random seeds per group30- Check `tmp/parallel_runtime.log` for execution times31- **Flaky specs**: Some tests may fail randomly; see [`docs/development/testing/handling-flaky-tests/README.md`](../docs/development/testing/handling-flaky-tests/README.md) for the full playbook, including the Turbo-aware waiting helpers and a pattern→fix table for feature specs32 - Use `script/bulk_run_rspec` to run tests multiple times to identify flaky behavior3334### Extended Details3536#### Service Objects and Result Modeling37- Return results using the `ServiceResult` class (well-documented in codebase)38- Some services use monads via [dry-monads](https://github.com/dry-rb/dry-monads) for result modeling3940#### Testing with Capybara41- Feature specs use Capybara (with Cuprite and Selenium WebDriver)42- Feature specs can use A11y selectors ([capybara_accessible_selectors](https://github.com/citizensadvice/capybara_accessible_selectors)), test IDs, or page objects (in `spec/support/pages/`)4344#### Database Migrations45- OpenProject implements migration "squashing" between major releases46- See `docs/development/migrations/` for details on the squashing process47- Migrations are consolidated to manage database changes across major versions48- OpenProject does not currently aim for zero downtime migrations4950#### Design System Components51- [primer_view_components](https://github.com/opf/primer_view_components) - OpenProject's fork of Primer Rails/ViewComponent52- [openproject-octicons](https://github.com/opf/openproject-octicons) - OpenProject's fork of Primer Octicons53- [commonmark-ckeditor-build](https://github.com/opf/commonmark-ckeditor-build) - Custom CKEditor build with CommonMark Markdown support5455#### Enterprise and BIM Editions56- **Enterprise Edition**: Includes additional features like Single sign-on (OIDC & SAML), LDAP, Nextcloud integration, SCIM API, and more (requires token for development)57- **BIM Edition**: Tailored for construction industry needs. Code in `modules/bim/`, docs in `docs/bim-guide/`. Existing instances can be switched to BIM edition.5859#### GitHub Actions CI/CD60- **test-core.yml** - Main test suite (units + features, ~40 min, runs on all PRs)61- **rubocop-core.yml** - Ruby linting (runs on all PRs with Ruby changes)62- **eslint-core.yml** - JS/TS linting (runs on all PRs with JS/TS changes)63- **test-frontend-unit.yml** - Frontend unit tests64- **brakeman-scan-core.yml** - Security scanning65- **codeql-scan-core.yml** - Code quality/security analysis66- **Skip CI**: Add `[ci skip]` to commit message to skip CI (use sparingly)6768#### Performance Considerations69- Main test suite: 40 minutes timeout70- Full Docker build: ~10-15 minutes (first time)71- Bundle install: ~2-5 minutes72- npm install: ~3-7 minutes7374### Additional Commands7576```bash77# Database78bundle exec rake db:migrate:status # Check migration status7980# Frontend81bundle exec rails openproject:plugins:register_frontend assets:export_locales8283# Docker84bin/compose run # Run with backend in foreground85docker compose run --rm backend-test "bundle exec rspec spec/features/work_package_show_spec.rb"86```8788For detailed documentation, consult:89- `docs/development/` - Development documentation90- `docs/development/running-tests/` - Testing guide91- `docs/development/code-review-guidelines/` - Code review standards92- `CONTRIBUTING.md` - Contribution workflow93
One repository carrying more than one format is the comparison this product exists for: does anyone actually write different content in each file, or is one a copy of the other?
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| opf/openprojectAGENTS.md · 16k | AGENTS.md | setuplint-formatarchtypes+3 | 90/100 | 9 days ago | |
| opf/openprojectapp/AGENTS.md · 16k | AGENTS.md | stylearch | 52/100 | 14 days ago | |
| opf/openprojectdb/AGENTS.md · 16k | AGENTS.md | styledatabase | 55/100 | 14 days ago | |
| opf/openprojectdocker/dev/AGENTS.md · 16k | AGENTS.md | setuptestdatabase | 74/100 | 14 days ago | |
| opf/openprojectfrontend/AGENTS.md · 16k | AGENTS.md | setuptestlint-formatstyle+3 | 88/100 | 14 days ago | |
| opf/openprojectspec/AGENTS.md · 16k | AGENTS.md | teststylearch | 77/100 | 14 days ago | |
| opf/openprojectconfig/AGENTS.md · 16k | AGENTS.md | no sections | 46/100 | 14 days ago |
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| activeadmin/activeadmin.github/copilot-instructions.md · 9.7k | Copilot instructions | setupbuildtestlint-format+5 | 89/100 | 13 days ago | |
| we-promise/sure.github/copilot-instructions.md · 9.3k | Copilot instructions | setuptestlint-formatstyle+10 | 88/100 | 13 days ago | |
| dotCMS/core.github/copilot-instructions.md · 949 | Copilot instructions | setupbuildtestlint-format+11 | 84/100 | 11 days ago | |
| abpframework/abpnpm/ng-packs/packages/schematics/src/commands/ai-config/files/copilot/.github/copilot-instructions.md · 14k | Copilot instructions | testlint-formatstylearch+8 | 76/100 | 13 days ago | |
| forem/forem.github/copilot-instructions.md · 23k | Copilot instructions | teststyletypesdatabase+4 | 71/100 | 14 days ago | |
| dotCMS/core.github/instructions/frontend.instructions.md · 949 | Copilot instructions | testlint-formatstylearch+3 | 69/100 | 14 days ago | |
| abpframework/abp.github/copilot-instructions.md · 14k | Copilot instructions | teststyletypesgit+4 | 61/100 | 13 days ago | |
| realm/SwiftLint.github/copilot-instructions.md · 20k | Copilot instructions | no sections | 45/100 | 14 days ago |
A badge carrying the measured quality of the strongest agent config file in this repository, out of 100. It reads from this index every time somebody loads your page, so it changes when the measurement changes and there is nothing to keep up to date. Free, no account, and the value is not something you or we can set by hand.
[](https://rulestack.kynth.studio/configs/opf-openproject-github-copilot-instructions)Would rather not hotlink us? Every badge is also served in shields.io’s endpoint schema, so shields renders the image and your readers never talk to our domain:
Published by Toolproof, the masthead over this index and eight others. The method behind the number is at toolproof.kynth.studio/methodology, and the whole thing is readable as JSON with no key at /api.
Directory