{"owner":"trinodb","repo":"trino","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["CLAUDE.md"],"skills":{"CLAUDE.md":"# Trino — Claude guidance\n\n**Before writing Java code, you must first read [`.github/DEVELOPMENT.md`](.github/DEVELOPMENT.md)\nin full** — it's the authoritative source for code-style rules (mocks, `var`, switch statements,\nmethod naming, `format()`, `TrinoException` error codes, AssertJ, Guava immutables, and more).\nThis file intentionally does not duplicate those rules; skipping the read means missing them.\nViolations are also caught mechanically by modernizer\n([`.mvn/modernizer/violations.xml`](.mvn/modernizer/violations.xml)), checkstyle (from Airbase),\nand IntelliJ inspections via `mcp__idea__get_file_problems`.\n\nFor other topics not covered here (Web UI build, release process, Vector API, IDE setup rationale),\nsee the same `DEVELOPMENT.md`.\n\n## JetBrains MCP server\n\nTrino is developed in IntelliJ. If you run Claude Code with the JetBrains MCP server enabled,\nthe assistant can drive the IDE directly. Install: https://github.com/JetBrains/mcp-jetbrains.\n\nWhen available, Claude should prefer these over shell equivalents:\n- `mcp__idea__get_file_problems` before committing — surfaces IntelliJ inspection results\n  (error-prone, unused imports, nullability) without a full Maven build.\n- `mcp__idea__search_symbol` / `mcp__idea__get_symbol_info` for symbol navigation in a codebase\n  with many overloaded names like `Metadata`, `Session`, `Block`.\n- `mcp__idea__rename_refactoring` for API renames — safer than text substitution.\n\n## Building\n\nFastest full build and install:\n\n```bash\n./mvnw clean install -T 2C -nsu -DskipTests -Dmaven.javadoc.skip=true -Dair.check.skip-all=true\n```\n\nIt skips tests, Javadoc, and the airbase checks — run `./mvnw validate` before opening a PR.\n\n## Java formatting\n\nRun `mvnd airstyle:format` after Java edits — the `airstyle-maven-plugin` (`io.airlift:airstyle-maven-plugin`)\napplies the canonical Airstyle scheme, which is what CI checks. Scope a single file with\n`mvnd -pl <module> airstyle:format -Dincludes=**/FileName.java`, and use `airstyle:check` to verify\nwithout rewriting. Rules not covered by the formatter:\n\n- No wildcard imports (e.g. `import io.trino.spi.*`) — checkstyle catches these on build; easier\n  to avoid writing them.\n- Braces required around single-statement `if` / `for` / `while` bodies — the formatter does not\n  add missing braces.\n- No `@author` in JavaDoc — commit history is the record.\n\nTopic-specific conventions live under [`.claude/rules/`](.claude/rules/) and auto-load when Claude\nreads matching files (e.g. `*Config.java` triggers the config-properties rule).\n"},"files":{"CLAUDE.md":"# Trino — Claude guidance\n\n**Before writing Java code, you must first read [`.github/DEVELOPMENT.md`](.github/DEVELOPMENT.md)\nin full** — it's the authoritative source for code-style rules (mocks, `var`, switch statements,\nmethod naming, `format()`, `TrinoException` error codes, AssertJ, Guava immutables, and more).\nThis file intentionally does not duplicate those rules; skipping the read means missing them.\nViolations are also caught mechanically by modernizer\n([`.mvn/modernizer/violations.xml`](.mvn/modernizer/violations.xml)), checkstyle (from Airbase),\nand IntelliJ inspections via `mcp__idea__get_file_problems`.\n\nFor other topics not covered here (Web UI build, release process, Vector API, IDE setup rationale),\nsee the same `DEVELOPMENT.md`.\n\n## JetBrains MCP server\n\nTrino is developed in IntelliJ. If you run Claude Code with the JetBrains MCP server enabled,\nthe assistant can drive the IDE directly. Install: https://github.com/JetBrains/mcp-jetbrains.\n\nWhen available, Claude should prefer these over shell equivalents:\n- `mcp__idea__get_file_problems` before committing — surfaces IntelliJ inspection results\n  (error-prone, unused imports, nullability) without a full Maven build.\n- `mcp__idea__search_symbol` / `mcp__idea__get_symbol_info` for symbol navigation in a codebase\n  with many overloaded names like `Metadata`, `Session`, `Block`.\n- `mcp__idea__rename_refactoring` for API renames — safer than text substitution.\n\n## Building\n\nFastest full build and install:\n\n```bash\n./mvnw clean install -T 2C -nsu -DskipTests -Dmaven.javadoc.skip=true -Dair.check.skip-all=true\n```\n\nIt skips tests, Javadoc, and the airbase checks — run `./mvnw validate` before opening a PR.\n\n## Java formatting\n\nRun `mvnd airstyle:format` after Java edits — the `airstyle-maven-plugin` (`io.airlift:airstyle-maven-plugin`)\napplies the canonical Airstyle scheme, which is what CI checks. Scope a single file with\n`mvnd -pl <module> airstyle:format -Dincludes=**/FileName.java`, and use `airstyle:check` to verify\nwithout rewriting. Rules not covered by the formatter:\n\n- No wildcard imports (e.g. `import io.trino.spi.*`) — checkstyle catches these on build; easier\n  to avoid writing them.\n- Braces required around single-statement `if` / `for` / `while` bodies — the formatter does not\n  add missing braces.\n- No `@author` in JavaDoc — commit history is the record.\n\nTopic-specific conventions live under [`.claude/rules/`](.claude/rules/) and auto-load when Claude\nreads matching files (e.g. `*Config.java` triggers the config-properties rule).\n"},"items":[{"name":"CLAUDE.md","path":"CLAUDE.md","title":"CLAUDE.md","content":"# Trino — Claude guidance\n\n**Before writing Java code, you must first read [`.github/DEVELOPMENT.md`](.github/DEVELOPMENT.md)\nin full** — it's the authoritative source for code-style rules (mocks, `var`, switch statements,\nmethod naming, `format()`, `TrinoException` error codes, AssertJ, Guava immutables, and more).\nThis file intentionally does not duplicate those rules; skipping the read means missing them.\nViolations are also caught mechanically by modernizer\n([`.mvn/modernizer/violations.xml`](.mvn/modernizer/violations.xml)), checkstyle (from Airbase),\nand IntelliJ inspections via `mcp__idea__get_file_problems`.\n\nFor other topics not covered here (Web UI build, release process, Vector API, IDE setup rationale),\nsee the same `DEVELOPMENT.md`.\n\n## JetBrains MCP server\n\nTrino is developed in IntelliJ. If you run Claude Code with the JetBrains MCP server enabled,\nthe assistant can drive the IDE directly. Install: https://github.com/JetBrains/mcp-jetbrains.\n\nWhen available, Claude should prefer these over shell equivalents:\n- `mcp__idea__get_file_problems` before committing — surfaces IntelliJ inspection results\n  (error-prone, unused imports, nullability) without a full Maven build.\n- `mcp__idea__search_symbol` / `mcp__idea__get_symbol_info` for symbol navigation in a codebase\n  with many overloaded names like `Metadata`, `Session`, `Block`.\n- `mcp__idea__rename_refactoring` for API renames — safer than text substitution.\n\n## Building\n\nFastest full build and install:\n\n```bash\n./mvnw clean install -T 2C -nsu -DskipTests -Dmaven.javadoc.skip=true -Dair.check.skip-all=true\n```\n\nIt skips tests, Javadoc, and the airbase checks — run `./mvnw validate` before opening a PR.\n\n## Java formatting\n\nRun `mvnd airstyle:format` after Java edits — the `airstyle-maven-plugin` (`io.airlift:airstyle-maven-plugin`)\napplies the canonical Airstyle scheme, which is what CI checks. Scope a single file with\n`mvnd -pl <module> airstyle:format -Dincludes=**/FileName.java`, and use `airstyle:check` to verify\nwithout rewriting. Rules not covered by the formatter:\n\n- No wildcard imports (e.g. `import io.trino.spi.*`) — checkstyle catches these on build; easier\n  to avoid writing them.\n- Braces required around single-statement `if` / `for` / `while` bodies — the formatter does not\n  add missing braces.\n- No `@author` in JavaDoc — commit history is the record.\n\nTopic-specific conventions live under [`.claude/rules/`](.claude/rules/) and auto-load when Claude\nreads matching files (e.g. `*Config.java` triggers the config-properties rule).\n","category":"root","tokens":638}]}