Skip to content

docs: Add AI-assisted contributions policy to contributing guidelines#4051

Merged
johanneskoester merged 1 commit intosnakemake:mainfrom
matthewfeickert:docs/add-automated-contributions-guidelines
Mar 13, 2026
Merged

docs: Add AI-assisted contributions policy to contributing guidelines#4051
johanneskoester merged 1 commit intosnakemake:mainfrom
matthewfeickert:docs/add-automated-contributions-guidelines

Conversation

@matthewfeickert
Copy link
Copy Markdown
Member

@matthewfeickert matthewfeickert commented Mar 11, 2026

Note that the Awkward Array language is more pro-AI-usage while the Scikit-learn language is more neutral.

Context

This was discussed in the AI section of the 2026 Snakemake Hackathon at TUM (GitHub project board).

QC

  • [N/A] The PR contains a test case for the changes or the changes are already covered by an existing test case.
  • The documentation (docs/) is updated to reflect the changes or this is not necessary (e.g. if the change does neither modify the language nor the behavior or functionalities of Snakemake).

Summary by CodeRabbit

  • Documentation
    • Added an "AI-assisted contributions" subsection to the contribution guide covering attribution, limits on automation, reviewer expectations, and when to disclose significant AI assistance.
    • Updated the pull request template to include an AI-assistance disclosure section and checklist to ensure contributors declare use of AI tools during submission and review.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Mar 11, 2026

📝 Walkthrough

Walkthrough

Adds AI-assistance disclosure guidance: a new checklist and disclosure block in the PR template, and a new "AI-assisted contributions" subsection in the contributing guide outlining attribution and disclosure practices.

Changes

Cohort / File(s) Summary
PR template
.github/pull_request_template.md
Inserted an AI-assistance disclosure block under QC with policy reference text and a checklist of AI-assistance options.
Contributing guide
docs/project_info/contributing.rst
Added an "AI-assisted contributions" subsection describing attribution, limits on end-to-end automation, reviewer-time considerations, and disclosure expectations.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately and concisely describes the main change: adding an AI-assisted contributions policy to the contributing guidelines, which is the primary objective of this PR.
Description check ✅ Passed The description provides context, references, and notes on the policy approach. It includes the QC checklist with documentation confirmed as updated, though test case status is marked N/A.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@matthewfeickert matthewfeickert force-pushed the docs/add-automated-contributions-guidelines branch from 6677775 to c69cfe9 Compare March 11, 2026 11:03
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
docs/project_info/contributing.rst (1)

91-92: Add an explicit anchor for this new subsection.

This new second-level section is missing a .. _...: target, so any link back to the policy has to rely on generated heading IDs instead of the stable cross-reference style documented later in this file.

Suggested change
+.. _project_info-ai_assisted_contributions:
+
 AI-assisted contributions
 -------------------------

As per coding guidelines, "Provide hyperlink targets <...>, at least for the first two section levels."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/project_info/contributing.rst` around lines 91 - 92, Add an explicit
reStructuredText target anchor immediately above the "AI-assisted contributions"
second-level heading so links can use a stable cross-reference; create a target
named ai-assisted-contributions (or similar) and place it on the line directly
before the "AI-assisted contributions" heading so other parts of the docs can
reference it by name.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@docs/project_info/contributing.rst`:
- Around line 91-92: Add an explicit reStructuredText target anchor immediately
above the "AI-assisted contributions" second-level heading so links can use a
stable cross-reference; create a target named ai-assisted-contributions (or
similar) and place it on the line directly before the "AI-assisted
contributions" heading so other parts of the docs can reference it by name.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: cfcfaaf9-fa81-44d4-8744-a1a38180e06e

📥 Commits

Reviewing files that changed from the base of the PR and between 6677775 and c69cfe9.

📒 Files selected for processing (2)
  • .github/pull_request_template.md
  • docs/project_info/contributing.rst
🚧 Files skipped from review as they are similar to previous changes (1)
  • .github/pull_request_template.md

@jonasfreimuth
Copy link
Copy Markdown
Contributor

Cool, thanks for setting this up!

* Add an AI-assisted contributions policy taken mostly from Awkward Array's
  (https://github.com/scikit-hep/awkward/), which was based on Scikit-learn's
  Automated Contributions Policy.
* Add AI-assistance disclosure checkboxes to pull request template.
* c.f.
   - https://github.com/scikit-hep/awkward/ PR 3831
   - https://github.com/scikit-learn/scikit-learn/ PR 2566

Co-authored-by: Johannes Köster <johannes.koester@uni-due.de>
@matthewfeickert matthewfeickert force-pushed the docs/add-automated-contributions-guidelines branch from 052389a to 194b324 Compare March 11, 2026 15:34
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
.github/pull_request_template.md (1)

16-20: Add an explicit “no AI assistance” option.

As written, an entirely unchecked section is ambiguous between “no AI was used” and “the author skipped the disclosure.” Adding a dedicated checkbox for the no-AI case would make the template easier to interpret and enforce consistently.

✏️ Proposed tweak
 I used AI assistance for:
+* [ ] No AI assistance
 * [ ] Code generation (e.g., when writing an implementation or fixing a bug)
 * [ ] Test/benchmark generation
 * [ ] Documentation (including examples)
 * [ ] Research and understanding
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/pull_request_template.md around lines 16 - 20, Add an explicit "No
AI assistance" checkbox to the existing "I used AI assistance for:" checklist so
an unchecked list cannot be confused with skipping disclosure; specifically,
update the checklist under the "I used AI assistance for:" heading to include a
distinct option like "* [ ] No AI assistance used" (in addition to the current
items such as "Code generation", "Test/benchmark generation", "Documentation",
"Research and understanding") and adjust the template copy to make it clear one
box should be selected before submitting.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In @.github/pull_request_template.md:
- Around line 16-20: Add an explicit "No AI assistance" checkbox to the existing
"I used AI assistance for:" checklist so an unchecked list cannot be confused
with skipping disclosure; specifically, update the checklist under the "I used
AI assistance for:" heading to include a distinct option like "* [ ] No AI
assistance used" (in addition to the current items such as "Code generation",
"Test/benchmark generation", "Documentation", "Research and understanding") and
adjust the template copy to make it clear one box should be selected before
submitting.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: bd90cf7a-a28d-4693-ab39-26330d970b93

📥 Commits

Reviewing files that changed from the base of the PR and between 052389a and 194b324.

📒 Files selected for processing (2)
  • .github/pull_request_template.md
  • docs/project_info/contributing.rst
🚧 Files skipped from review as they are similar to previous changes (1)
  • docs/project_info/contributing.rst

@matthewfeickert
Copy link
Copy Markdown
Member Author

Not necessarily actionable information for this PR, but interesting post that was shared on the Scientific Python Discord: https://redmonk.com/kholterhoff/2026/02/26/generative-ai-policy-landscape-in-open-source/

@johanneskoester johanneskoester merged commit dd70526 into snakemake:main Mar 13, 2026
60 checks passed
@johanneskoester
Copy link
Copy Markdown
Contributor

Thanks!

johanneskoester pushed a commit that referenced this pull request Mar 13, 2026
🤖 I have created a release *beep* *boop*
---


##
[9.17.0](v9.16.3...v9.17.0)
(2026-03-13)


### Features

* Allow storing snakemake metadata in files or databases
([#4012](#4012))
([dd75f31](dd75f31))
* Allow to specify comparison command per-unit test
([#3956](#3956))
([b88171c](b88171c))
* job table orderd topological when run is started
([#4018](#4018))
([75cf506](75cf506))
* lambda functions for priority in rules
([#3253](#3253))
([d2aa226](d2aa226))
* Make on... directive of modules accessible
([#4050](#4050))
([e9f2e1c](e9f2e1c))


### Bug Fixes

* adjust conda tests to not fail on apple silicon; fix
[#4040](#4040)
([#4049](#4049))
([f5b0142](f5b0142))
* allow "--containerize apptainer" to output apptainer format instead of
dockerfile ([#4030](#4030))
([f5cac30](f5cac30))
* apptainer command not recognized when singularity is absent
([#4010](#4010))
([b8162e2](b8162e2))
* capture stderr when tests fail
([#3995](#3995))
([97d74ba](97d74ba))
* **docs:** make Data-dependent conditional execution a complete example
([#4043](#4043))
([3a1d7f2](3a1d7f2))
* don't build the DAG when running unlock. Fixes
[#4000](#4000) and
[#198](#198)
([#4007](#4007))
([acf79fd](acf79fd))
* Ensure pixi tasks may be run as advertised
([#4046](#4046))
([88253c2](88253c2))
* fix checkpoint handling corner cases
([#3870](#3870) and
[#3559](#3559))
([#4015](#4015))
([63f4257](63f4257))
* issue 3642
([#4054](#4054))
([76e6fc2](76e6fc2))
* issue 3815
([#4026](#4026))
([b0eec96](b0eec96))
* logging None in shellcmd context causes error
([#4064](#4064))
([d0652cd](d0652cd))
* lookup function returns default value for empty DataFrame queries
([#4056](#4056))
([f71de97](f71de97))
* make `cache: omit-software` a rule specific property
([#4085](#4085))
([034a9e7](034a9e7))
* reduce number of tests leaving temporary files behind
([#4033](#4033))
([a3a1c97](a3a1c97))
* regression in dynamic resource handling
([#4038](#4038))
([f2c554a](f2c554a))
* somewhat shorter announce message
([#4080](#4080))
([57efc71](57efc71))


### Performance Improvements

* switch reretry with tenacity; decouple container classes (with Python
3.7 compat for old scripts) from rest of the codebase (enabling moving
to newer python versions)
([#4032](#4032))
([ffb19e7](ffb19e7))


### Documentation

* Add AI-assisted contributions policy to contributing guidelines
([#4051](#4051))
([dd70526](dd70526))
* **codebase:** Update & simplify plugin architecture section
([#4052](#4052))
([176cf63](176cf63))
* Correct workflow.source_path() description in documentation
([#4036](#4036))
([45883c5](45883c5))
* fixed wrong code example for collect() function
([#4037](#4037))
([5c85ed8](5c85ed8))
* Minor docs improvements
([#4089](#4089))
([29ea226](29ea226))
* switch to sphinx_design for tabs
([#3976](#3976))
([9674614](9674614))
* typo in the migration table breaking a pip install command
([#4024](#4024))
([66f9dda](66f9dda))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
@matthewfeickert matthewfeickert deleted the docs/add-automated-contributions-guidelines branch March 13, 2026 16:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants