Skip to content

docs: refactor AGENTS.md into an entry point, move build mechanics to CONTRIBUTING - #1045

Merged
nielspardon merged 2 commits into
substrait-io:mainfrom
nielspardon:docs/agents-md-high-signal
Aug 4, 2026
Merged

docs: refactor AGENTS.md into an entry point, move build mechanics to CONTRIBUTING#1045
nielspardon merged 2 commits into
substrait-io:mainfrom
nielspardon:docs/agents-md-high-signal

Conversation

@nielspardon

Copy link
Copy Markdown
Member

Aligns this repo's AGENTS.md with the ecosystem convention introduced for the spec repo in substrait-io/substrait#1117: a lean entry point plus the notes agents specifically need, with generally-applicable build and contribution mechanics living in the human-facing docs so there is a single source of truth.

What changes

  • AGENTS.md becomes an entry point. The intro is now a "Start here" pointer to README.md and CONTRIBUTING.md rather than a standalone build guide.
  • Adds "Keep PR descriptions high-signal." Tells agents to drop the noise they tend to add — lists of files touched, claims that CI-verified things pass, implicit process notes — and to keep commit bodies free of git trailers, since the PR title + body become the semantic-release commit message and feed CHANGELOG.md.
  • Moves the general build mechanics to CONTRIBUTING.md. The build/test/format command reference, PMD ruleset and tripwires, and the build-logic included-build note land in a new "Building and testing" section; the JDK 17 daemon-consistency and GraalVM native-image details fold into the existing "Gradle & JDK 17" section. AGENTS.md keeps only the agent-specific verification workflow (build-before-push, cross-module compile check).

The codebase-specific architecture knowledge (module layout, Immutables/visitor/proto-converter patterns, Isthmus/Spark change-safety notes) stays in AGENTS.md — it is this repo's equivalent of the spec PR's "what agents need to get right." No content was lost; the build mechanics were relocated, not removed.

🤖 Generated with AI

… CONTRIBUTING

Bring AGENTS.md in line with the AGENTS.md convention introduced for the spec
repo in substrait-io/substrait#1117: a lean entry point plus the notes agents
specifically need, with generally-applicable build and contribution mechanics
living in the human-facing docs.

- Restructure the AGENTS.md intro into a "Start here" pointer to README.md and
  CONTRIBUTING.md.
- Add a "Keep PR descriptions high-signal" guideline: drop file lists,
  CI-verified-pass claims, and implicit process notes; keep commit bodies free
  of git trailers.
- Move the build/test/format command reference, PMD tripwires, and the
  build-logic included-build note into a new CONTRIBUTING.md "Building and
  testing" section, and fold the JDK 17 daemon-consistency and GraalVM
  native-image details into its "Gradle & JDK 17" section. AGENTS.md keeps only
  the agent-specific verification workflow.

@benbellick benbellick left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! I think this is a great improvement. There may be some more places worth slimming down, but we can save it for a subsequent PR. 🚀

Comment thread AGENTS.md Outdated

For GitHub work (issues, PRs), use the `gh` CLI.

## What this project is

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also think we don't really need this now, it should just be in the README if it isn't already.

Comment thread AGENTS.md Outdated
Comment on lines +127 to +140
## Building and testing

The build / test / format command reference, the PMD ruleset and its tripwires, the JDK 17
daemon consistency rules, and the GraalVM native-image toolchain all live in
[`CONTRIBUTING.md`](CONTRIBUTING.md#building-and-testing). Two habits matter most for agents:

- **Build the whole thing before pushing.** Narrower local tasks pass while CI fails: **PMD**
runs only via `check`/`build` and `javadoc` doclint only via `build`/`javadocJar` — never
via `compileJava` / `test` / `spotlessCheck` — while CI runs the full `./gradlew build
--rerun-tasks`. Run `./gradlew :core:check :core:javadoc` (and the module you touched)
before pushing.
- **When you extend the public expression/visitor API, verify the dependent modules still
compile** — they have their own visitor implementors:
`./gradlew :core:spotlessCheck :isthmus:compileJava :spark:spark-3.5_2.12:compileScala :examples:substrait-spark:compileJava`

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## Building and testing
The build / test / format command reference, the PMD ruleset and its tripwires, the JDK 17
daemon consistency rules, and the GraalVM native-image toolchain all live in
[`CONTRIBUTING.md`](CONTRIBUTING.md#building-and-testing). Two habits matter most for agents:
- **Build the whole thing before pushing.** Narrower local tasks pass while CI fails: **PMD**
runs only via `check`/`build` and `javadoc` doclint only via `build`/`javadocJar` — never
via `compileJava` / `test` / `spotlessCheck` — while CI runs the full `./gradlew build
--rerun-tasks`. Run `./gradlew :core:check :core:javadoc` (and the module you touched)
before pushing.
- **When you extend the public expression/visitor API, verify the dependent modules still
compile** — they have their own visitor implementors:
`./gradlew :core:spotlessCheck :isthmus:compileJava :spark:spark-3.5_2.12:compileScala :examples:substrait-spark:compileJava`

Do we need all of that since its already in the CONTRIBUTING.md? If we find the agent isn't doing this itself, then we can add a single line that says:

run all tests and ensure they are passing before pushing

Comment thread AGENTS.md Outdated
@@ -199,6 +181,19 @@ compile — they have their own visitor implementors:
valid commit message). Scope tags seen in history: `feat(core)`, `feat(pojo)`,

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I also think this whole section can reasonably be removed. Its all stuff you'd want a human to know as well, and there is a section called Commit Conventions already in CONTRIBUTING.md.

Comment thread AGENTS.md
- **Lists of files touched** — they're in the diff.
- **Claims that CI-verified things pass** — e.g. "tests pass", "spotless clean". If they
didn't, the checks would be red.
- **Process notes that are already implicit** — e.g. "opened as draft pending review".

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for adding this bit

Drop the "What this project is" section, which the readme already covers,
and the conventional-commits bullet, which duplicates the Commit
Conventions section in CONTRIBUTING.md. Collapse the build/test notes to a
single build-before-pushing line pointing at CONTRIBUTING.md.

Point the readme links at readme.md; the file is lowercase, so the
README.md links resolved locally on case-insensitive filesystems but 404
on GitHub.
@nielspardon
nielspardon merged commit 33e2f6a into substrait-io:main Aug 4, 2026
13 checks passed
@nielspardon
nielspardon deleted the docs/agents-md-high-signal branch August 4, 2026 06:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants