| Dimension | Shared | Only in A | Only in B | Overlap |
|---|---|---|---|---|
| Sections | 0 | 2 | 16 | 0% |
| Commands | 0 | 4 | 6 | 0% |
| Section tags | 0 | 0 | 7 | 0% |
What each file covers
Sections
0 shared · 2 only in A · 16 only in B- − Config
- − Translations
- + OpenProject AI Coding Agent Instructions
- + Repository Overview
- + Critical Setup Requirements
- + Local Development Setup
- + Access at http://localhost:3000
- + Docker Development Setup
- + Project Structure
- + Key Directories
- + Configuration Files
- + Linting (Run Before Committing)
- + Ruby
- + JavaScript/TypeScript
- + ERB Templates
- + Install Git Hooks (recommended)
- + Commit Messages
- + Additional Documentation
Commands
0 shared · 4 only in A · 6 only in B- − bundle exec i18n-tasks missing
- − bundle exec i18n-tasks unused
- − bundle exec i18n-tasks normalize
- − bundle exec i18n-tasks check-consistent-interpolations
- + bundle install
- + bundle exec rails db:migrate
- + bundle exec rubocop
- + bundle exec lefthook install
- + docker/dev/AGENTS.md
- + docker/dev/
Section tags
0 shared · 0 only in A · 7 only in B- + setup
- + lint-format
- + architecture
- + types
- + git-pr
- + agent-behaviour
- + docs
Line diff
opf/openproject · config/AGENTS.md
@@ −1 @@
1# Config
2
3## Translations
4- UI strings must use translation keys (never hard-coded)
5- Source translations in `**/config/locales/en.yml` can be modified directly
6- Other translations managed via Crowdin
7
8```bash
9bundle exec i18n-tasks missing # Show missing translation keys
10bundle exec i18n-tasks unused # Show unused translation keys
11bundle exec i18n-tasks normalize # Fix/normalize translation files
12bundle exec i18n-tasks check-consistent-interpolations # Check interpolation consistency
13```
14
opf/openproject · AGENTS.md
@@ +1 @@
1# OpenProject AI Coding Agent Instructions
2
3> **Note for developers**: You can create `AGENTS.local.md` (or `CLAUDE.local.md`) in this directory to add your own custom instructions or preferences for AI coding agents. These files are git-ignored and will not be committed to the repository.
4
5## Repository Overview
6
7**OpenProject** is a web-based, open-source project management software written in Ruby on Rails with PostgreSQL for data persistence.
8
9- **Size**: Large monorepo (~840MB, ~1M+ lines of code)
10- **Backend**: Ruby 3.4.7, Rails ~8.0.3
11- **Frontend**: Node.js 24.x (>= 24.15.0), npm 11.x, TypeScript
12- **Database**: PostgreSQL (required)
13- **Architecture**: Server-rendered HTML with Hotwire (Turbo + Stimulus). Legacy Angular components exist and are being migrated to custom elements. Uses GitHub's Primer Design System via ViewComponent.
14- **Editions**: Community, Enterprise (SSO, LDAP, SCIM), and BIM (construction industry, code in `modules/bim/`)
15
16## Critical Setup Requirements
17
18**ALWAYS verify versions before building:**
19- Ruby: `3.4.7` (see `.ruby-version`)
20- Node: `^24.15.0` (see `package.json` engines)
21- Bundler: Latest 2.x
22
23### Local Development Setup
24
25```bash
26bundle install # Install Ruby gems
27cd frontend && npm ci && cd .. # Install Node packages
28bundle exec rails db:migrate # Setup database
29bin/dev # Start all services (Rails, frontend, Good Job worker)
30# Access at http://localhost:3000
31```
32
33### Docker Development Setup
34
35See [`docker/dev/AGENTS.md`](docker/dev/AGENTS.md) for full Docker setup and commands.
36
37## Project Structure
38
39### Key Directories
40
41- `app/` — Rails application code
42- `config/` — Rails configuration, routes, locales
43- `db/` — Database migrations and seeds
44- `docker/dev/` — Docker development environment
45- `frontend/` — TypeScript/Angular/Stimulus frontend
46- `lib/` — Ruby libraries and extensions
47- `lookbook/` — ViewComponent previews (<https://qa.openproject-edge.com/lookbook/>)
48- `modules/` — OpenProject plugin modules
49- `spec/` — RSpec test suite
50
51### Configuration Files
52
53- `.ruby-version` - Ruby version
54- `.rubocop.yml` - Ruby linting rules
55- `.erb_lint.yml` - ERB template linting
56- `frontend/eslint.config.mjs` - JavaScript/TypeScript linting
57- `Gemfile` - Ruby dependencies
58- `package.json` / `frontend/package.json` - Node.js dependencies
59- `lefthook.yml` - Git hooks configuration
60
61### Linting (Run Before Committing)
62
63```bash
64# Ruby
65bundle exec rubocop # Check all files
66bin/dirty-rubocop --uncommitted # Check only uncommitted changes
67
68# JavaScript/TypeScript
69cd frontend && npx eslint src/ && cd ..
70
71# ERB Templates
72erb_lint {files}
73
74# Install Git Hooks (recommended)
75bundle exec lefthook install
76```
77
78## Commit Messages
79- First line: < 72 characters, then blank line, then detailed description
80- Reference work packages when applicable
81- Merge strategy: "Merge pull request" (not squash), except single-commit PRs can use "Rebase and merge"
82
83## Additional Documentation
84
85- `docs/development/` — Development documentation
86- `docs/development/running-tests/` — Testing guide
87- `docs/development/code-review-guidelines/` — Code review standards
88- `CONTRIBUTING.md` — Contribution workflow
89- `.github/copilot-instructions.md` — Extended agent instructions with troubleshooting
90
@@ −1 +1 @@
1−# Config
1+# OpenProject AI Coding Agent Instructions
22
3−## Translations
4−- UI strings must use translation keys (never hard-coded)
5−- Source translations in `**/config/locales/en.yml` can be modified directly
6−- Other translations managed via Crowdin
3+> **Note for developers**: You can create `AGENTS.local.md` (or `CLAUDE.local.md`) in this directory to add your own custom instructions or preferences for AI coding agents. These files are git-ignored and will not be committed to the repository.
74
5+## Repository Overview
6+
7+**OpenProject** is a web-based, open-source project management software written in Ruby on Rails with PostgreSQL for data persistence.
8+
9+- **Size**: Large monorepo (~840MB, ~1M+ lines of code)
10+- **Backend**: Ruby 3.4.7, Rails ~8.0.3
11+- **Frontend**: Node.js 24.x (>= 24.15.0), npm 11.x, TypeScript
12+- **Database**: PostgreSQL (required)
13+- **Architecture**: Server-rendered HTML with Hotwire (Turbo + Stimulus). Legacy Angular components exist and are being migrated to custom elements. Uses GitHub's Primer Design System via ViewComponent.
14+- **Editions**: Community, Enterprise (SSO, LDAP, SCIM), and BIM (construction industry, code in `modules/bim/`)
15+
16+## Critical Setup Requirements
17+
18+**ALWAYS verify versions before building:**
19+- Ruby: `3.4.7` (see `.ruby-version`)
20+- Node: `^24.15.0` (see `package.json` engines)
21+- Bundler: Latest 2.x
22+
23+### Local Development Setup
24+
825 ```bash
9−bundle exec i18n-tasks missing # Show missing translation keys
10−bundle exec i18n-tasks unused # Show unused translation keys
11−bundle exec i18n-tasks normalize # Fix/normalize translation files
12−bundle exec i18n-tasks check-consistent-interpolations # Check interpolation consistency
26+bundle install # Install Ruby gems
27+cd frontend && npm ci && cd .. # Install Node packages
28+bundle exec rails db:migrate # Setup database
29+bin/dev # Start all services (Rails, frontend, Good Job worker)
30+# Access at http://localhost:3000
1331 ```
32+
33+### Docker Development Setup
34+
35+See [`docker/dev/AGENTS.md`](docker/dev/AGENTS.md) for full Docker setup and commands.
36+
37+## Project Structure
38+
39+### Key Directories
40+
41+- `app/` — Rails application code
42+- `config/` — Rails configuration, routes, locales
43+- `db/` — Database migrations and seeds
44+- `docker/dev/` — Docker development environment
45+- `frontend/` — TypeScript/Angular/Stimulus frontend
46+- `lib/` — Ruby libraries and extensions
47+- `lookbook/` — ViewComponent previews (<https://qa.openproject-edge.com/lookbook/>)
48+- `modules/` — OpenProject plugin modules
49+- `spec/` — RSpec test suite
50+
51+### Configuration Files
52+
53+- `.ruby-version` - Ruby version
54+- `.rubocop.yml` - Ruby linting rules
55+- `.erb_lint.yml` - ERB template linting
56+- `frontend/eslint.config.mjs` - JavaScript/TypeScript linting
57+- `Gemfile` - Ruby dependencies
58+- `package.json` / `frontend/package.json` - Node.js dependencies
59+- `lefthook.yml` - Git hooks configuration
60+
61+### Linting (Run Before Committing)
62+
63+```bash
64+# Ruby
65+bundle exec rubocop # Check all files
66+bin/dirty-rubocop --uncommitted # Check only uncommitted changes
67+
68+# JavaScript/TypeScript
69+cd frontend && npx eslint src/ && cd ..
70+
71+# ERB Templates
72+erb_lint {files}
73+
74+# Install Git Hooks (recommended)
75+bundle exec lefthook install
76+```
77+
78+## Commit Messages
79+- First line: < 72 characters, then blank line, then detailed description
80+- Reference work packages when applicable
81+- Merge strategy: "Merge pull request" (not squash), except single-commit PRs can use "Rebase and merge"
82+
83+## Additional Documentation
84+
85+- `docs/development/` — Development documentation
86+- `docs/development/running-tests/` — Testing guide
87+- `docs/development/code-review-guidelines/` — Code review standards
88+- `CONTRIBUTING.md` — Contribution workflow
89+- `.github/copilot-instructions.md` — Extended agent instructions with troubleshooting
1490
