{"owner":"opf","repo":"openproject","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["AGENTS.md"],"skills":{"AGENTS.md":"# OpenProject AI Coding Agent Instructions\n\n> **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.\n\n## Repository Overview\n\n**OpenProject** is a web-based, open-source project management software written in Ruby on Rails with PostgreSQL for data persistence.\n\n- **Size**: Large monorepo (~840MB, ~1M+ lines of code)\n- **Backend**: Ruby 3.4.7, Rails ~8.0.3\n- **Frontend**: Node.js 24.x (>= 24.15.0), npm 11.x, TypeScript\n- **Database**: PostgreSQL (required)\n- **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.\n- **Editions**: Community, Enterprise (SSO, LDAP, SCIM), and BIM (construction industry, code in `modules/bim/`)\n\n## Critical Setup Requirements\n\n**ALWAYS verify versions before building:**\n- Ruby: `3.4.7` (see `.ruby-version`)\n- Node: `^24.15.0` (see `package.json` engines)\n- Bundler: Latest 2.x\n\n### Local Development Setup\n\n```bash\nbundle install                    # Install Ruby gems\ncd frontend && npm ci && cd ..   # Install Node packages\nbundle exec rails db:migrate      # Setup database\nbin/dev                          # Start all services (Rails, frontend, Good Job worker)\n# Access at http://localhost:3000\n```\n\n### Docker Development Setup\n\nSee [`docker/dev/AGENTS.md`](docker/dev/AGENTS.md) for full Docker setup and commands.\n\n## Project Structure\n\n### Key Directories\n\n- `app/` — Rails application code\n- `config/` — Rails configuration, routes, locales\n- `db/` — Database migrations and seeds\n- `docker/dev/` — Docker development environment\n- `frontend/` — TypeScript/Angular/Stimulus frontend\n- `lib/` — Ruby libraries and extensions\n- `lookbook/` — ViewComponent previews (<https://qa.openproject-edge.com/lookbook/>)\n- `modules/` — OpenProject plugin modules\n- `spec/` — RSpec test suite\n\n### Configuration Files\n\n- `.ruby-version` - Ruby version\n- `.rubocop.yml` - Ruby linting rules\n- `.erb_lint.yml` - ERB template linting\n- `frontend/eslint.config.mjs` - JavaScript/TypeScript linting\n- `Gemfile` - Ruby dependencies\n- `package.json` / `frontend/package.json` - Node.js dependencies\n- `lefthook.yml` - Git hooks configuration\n\n### Linting (Run Before Committing)\n\n```bash\n# Ruby\nbundle exec rubocop                              # Check all files\nbin/dirty-rubocop --uncommitted                  # Check only uncommitted changes\n\n# JavaScript/TypeScript\ncd frontend && npx eslint src/ && cd ..\n\n# ERB Templates\nerb_lint {files}\n\n# Install Git Hooks (recommended)\nbundle exec lefthook install\n```\n\n### JavaScript and TypeScript Copyright Headers\n\nAll first-party JavaScript and TypeScript files must use the canonical compact\nline-comment copyright header generated from `COPYRIGHT_short`:\n\n```typescript\n//-- copyright\n// OpenProject is an open source project management software.\n// ...\n//++\n\n```\n\nUse `//-- copyright` and `//++` exactly as shown. Prefix non-empty body lines\nwith `// `, prefix empty body lines with `//`, and leave one blank line between\nthe header and the source code. Do not compose or reformat the header manually.\n\nRun `rake copyright:update_typescript` to add or repair headers in `.ts` and\n`.tsx` files. Run `rake copyright:update_js` for `.js`, `.mjs`, and `.cjs`\nfiles. Both commands accept an optional path argument.\n\n## Commit Messages\n- First line: < 72 characters, then blank line, then detailed description\n- Reference work packages when applicable\n- Merge strategy: \"Merge pull request\" (not squash), except single-commit PRs can use \"Rebase and merge\"\n\n## Additional Documentation\n\n- `docs/development/` — Development documentation\n- `docs/development/running-tests/` — Testing guide\n- `docs/development/code-review-guidelines/` — Code review standards\n- `CONTRIBUTING.md` — Contribution workflow\n- `.github/copilot-instructions.md` — Extended agent instructions with troubleshooting\n"},"files":{"AGENTS.md":"# OpenProject AI Coding Agent Instructions\n\n> **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.\n\n## Repository Overview\n\n**OpenProject** is a web-based, open-source project management software written in Ruby on Rails with PostgreSQL for data persistence.\n\n- **Size**: Large monorepo (~840MB, ~1M+ lines of code)\n- **Backend**: Ruby 3.4.7, Rails ~8.0.3\n- **Frontend**: Node.js 24.x (>= 24.15.0), npm 11.x, TypeScript\n- **Database**: PostgreSQL (required)\n- **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.\n- **Editions**: Community, Enterprise (SSO, LDAP, SCIM), and BIM (construction industry, code in `modules/bim/`)\n\n## Critical Setup Requirements\n\n**ALWAYS verify versions before building:**\n- Ruby: `3.4.7` (see `.ruby-version`)\n- Node: `^24.15.0` (see `package.json` engines)\n- Bundler: Latest 2.x\n\n### Local Development Setup\n\n```bash\nbundle install                    # Install Ruby gems\ncd frontend && npm ci && cd ..   # Install Node packages\nbundle exec rails db:migrate      # Setup database\nbin/dev                          # Start all services (Rails, frontend, Good Job worker)\n# Access at http://localhost:3000\n```\n\n### Docker Development Setup\n\nSee [`docker/dev/AGENTS.md`](docker/dev/AGENTS.md) for full Docker setup and commands.\n\n## Project Structure\n\n### Key Directories\n\n- `app/` — Rails application code\n- `config/` — Rails configuration, routes, locales\n- `db/` — Database migrations and seeds\n- `docker/dev/` — Docker development environment\n- `frontend/` — TypeScript/Angular/Stimulus frontend\n- `lib/` — Ruby libraries and extensions\n- `lookbook/` — ViewComponent previews (<https://qa.openproject-edge.com/lookbook/>)\n- `modules/` — OpenProject plugin modules\n- `spec/` — RSpec test suite\n\n### Configuration Files\n\n- `.ruby-version` - Ruby version\n- `.rubocop.yml` - Ruby linting rules\n- `.erb_lint.yml` - ERB template linting\n- `frontend/eslint.config.mjs` - JavaScript/TypeScript linting\n- `Gemfile` - Ruby dependencies\n- `package.json` / `frontend/package.json` - Node.js dependencies\n- `lefthook.yml` - Git hooks configuration\n\n### Linting (Run Before Committing)\n\n```bash\n# Ruby\nbundle exec rubocop                              # Check all files\nbin/dirty-rubocop --uncommitted                  # Check only uncommitted changes\n\n# JavaScript/TypeScript\ncd frontend && npx eslint src/ && cd ..\n\n# ERB Templates\nerb_lint {files}\n\n# Install Git Hooks (recommended)\nbundle exec lefthook install\n```\n\n### JavaScript and TypeScript Copyright Headers\n\nAll first-party JavaScript and TypeScript files must use the canonical compact\nline-comment copyright header generated from `COPYRIGHT_short`:\n\n```typescript\n//-- copyright\n// OpenProject is an open source project management software.\n// ...\n//++\n\n```\n\nUse `//-- copyright` and `//++` exactly as shown. Prefix non-empty body lines\nwith `// `, prefix empty body lines with `//`, and leave one blank line between\nthe header and the source code. Do not compose or reformat the header manually.\n\nRun `rake copyright:update_typescript` to add or repair headers in `.ts` and\n`.tsx` files. Run `rake copyright:update_js` for `.js`, `.mjs`, and `.cjs`\nfiles. Both commands accept an optional path argument.\n\n## Commit Messages\n- First line: < 72 characters, then blank line, then detailed description\n- Reference work packages when applicable\n- Merge strategy: \"Merge pull request\" (not squash), except single-commit PRs can use \"Rebase and merge\"\n\n## Additional Documentation\n\n- `docs/development/` — Development documentation\n- `docs/development/running-tests/` — Testing guide\n- `docs/development/code-review-guidelines/` — Code review standards\n- `CONTRIBUTING.md` — Contribution workflow\n- `.github/copilot-instructions.md` — Extended agent instructions with troubleshooting\n"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","title":"AGENTS.md","content":"# OpenProject AI Coding Agent Instructions\n\n> **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.\n\n## Repository Overview\n\n**OpenProject** is a web-based, open-source project management software written in Ruby on Rails with PostgreSQL for data persistence.\n\n- **Size**: Large monorepo (~840MB, ~1M+ lines of code)\n- **Backend**: Ruby 3.4.7, Rails ~8.0.3\n- **Frontend**: Node.js 24.x (>= 24.15.0), npm 11.x, TypeScript\n- **Database**: PostgreSQL (required)\n- **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.\n- **Editions**: Community, Enterprise (SSO, LDAP, SCIM), and BIM (construction industry, code in `modules/bim/`)\n\n## Critical Setup Requirements\n\n**ALWAYS verify versions before building:**\n- Ruby: `3.4.7` (see `.ruby-version`)\n- Node: `^24.15.0` (see `package.json` engines)\n- Bundler: Latest 2.x\n\n### Local Development Setup\n\n```bash\nbundle install                    # Install Ruby gems\ncd frontend && npm ci && cd ..   # Install Node packages\nbundle exec rails db:migrate      # Setup database\nbin/dev                          # Start all services (Rails, frontend, Good Job worker)\n# Access at http://localhost:3000\n```\n\n### Docker Development Setup\n\nSee [`docker/dev/AGENTS.md`](docker/dev/AGENTS.md) for full Docker setup and commands.\n\n## Project Structure\n\n### Key Directories\n\n- `app/` — Rails application code\n- `config/` — Rails configuration, routes, locales\n- `db/` — Database migrations and seeds\n- `docker/dev/` — Docker development environment\n- `frontend/` — TypeScript/Angular/Stimulus frontend\n- `lib/` — Ruby libraries and extensions\n- `lookbook/` — ViewComponent previews (<https://qa.openproject-edge.com/lookbook/>)\n- `modules/` — OpenProject plugin modules\n- `spec/` — RSpec test suite\n\n### Configuration Files\n\n- `.ruby-version` - Ruby version\n- `.rubocop.yml` - Ruby linting rules\n- `.erb_lint.yml` - ERB template linting\n- `frontend/eslint.config.mjs` - JavaScript/TypeScript linting\n- `Gemfile` - Ruby dependencies\n- `package.json` / `frontend/package.json` - Node.js dependencies\n- `lefthook.yml` - Git hooks configuration\n\n### Linting (Run Before Committing)\n\n```bash\n# Ruby\nbundle exec rubocop                              # Check all files\nbin/dirty-rubocop --uncommitted                  # Check only uncommitted changes\n\n# JavaScript/TypeScript\ncd frontend && npx eslint src/ && cd ..\n\n# ERB Templates\nerb_lint {files}\n\n# Install Git Hooks (recommended)\nbundle exec lefthook install\n```\n\n### JavaScript and TypeScript Copyright Headers\n\nAll first-party JavaScript and TypeScript files must use the canonical compact\nline-comment copyright header generated from `COPYRIGHT_short`:\n\n```typescript\n//-- copyright\n// OpenProject is an open source project management software.\n// ...\n//++\n\n```\n\nUse `//-- copyright` and `//++` exactly as shown. Prefix non-empty body lines\nwith `// `, prefix empty body lines with `//`, and leave one blank line between\nthe header and the source code. Do not compose or reformat the header manually.\n\nRun `rake copyright:update_typescript` to add or repair headers in `.ts` and\n`.tsx` files. Run `rake copyright:update_js` for `.js`, `.mjs`, and `.cjs`\nfiles. Both commands accept an optional path argument.\n\n## Commit Messages\n- First line: < 72 characters, then blank line, then detailed description\n- Reference work packages when applicable\n- Merge strategy: \"Merge pull request\" (not squash), except single-commit PRs can use \"Rebase and merge\"\n\n## Additional Documentation\n\n- `docs/development/` — Development documentation\n- `docs/development/running-tests/` — Testing guide\n- `docs/development/code-review-guidelines/` — Code review standards\n- `CONTRIBUTING.md` — Contribution workflow\n- `.github/copilot-instructions.md` — Extended agent instructions with troubleshooting\n","category":"root","tokens":1025}]}