Skip to content
Open
Show file tree
Hide file tree
Changes from 14 commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
25118f5
Add instructions for the use of AI coding tools
samsrabin Oct 27, 2026
b943765
AGENTS.md: Fix case of a path.
samsrabin Oct 28, 2026
d822d27
AGENTS.md: Clarify: Allowed to draft issues/PRs but not touch them.
samsrabin Oct 28, 2026
edb2bc5
AGENTS.md: Prompt human to keep description updated.
samsrabin Oct 28, 2026
f962503
AI disclosure section now consistent throughout repo.
samsrabin Oct 28, 2026
a21691f
AGENTS.md: Clarify "contribute to" in GitHub section.
samsrabin Oct 28, 2026
45d4fe5
AGENTS.md: Don't fetch EVERYTHING linked in CONTRIBUTING.md.
samsrabin Oct 28, 2026
4dfbe59
AGENTS.md: Give example Co-Authored-By.
samsrabin Oct 28, 2026
3fa8461
AGENTS.md: Clarify "The CTSM repo" means ESCOMP's.
samsrabin Oct 28, 2026
63a3f87
AGENTS.md: Finish a sentence
samsrabin Oct 28, 2026
803ab61
AGENTS.md: More clarifications in GitHub section.
samsrabin Oct 28, 2026
7b6708c
Don't allow blank issues; force use of a template.
samsrabin Oct 28, 2026
1b47c4a
CONTRIBUTING.md: Clarify "assisting with a contribution."
samsrabin Oct 28, 2026
e22579d
AGENTS.md: Fix refs to AI disclosure section name.
samsrabin Oct 28, 2026
41ddc3d
GH templates: Add example AI usages
samsrabin Oct 30, 2026
27f5a89
Bug report template: Confirm it's real
samsrabin Oct 30, 2026
4de9ce9
CONTRIBUTING.md: Rework order of AI section
samsrabin Oct 30, 2026
e8f23bf
CONTRIBUTING.md: Require issues first.
samsrabin Oct 30, 2026
d8a8551
AGENTS.md: reword, not amend
samsrabin Oct 30, 2026
91bba3b
AGENTS.md: Require *them* to remove planning docs
samsrabin Oct 30, 2026
5a6d5a3
AGENTS.md: No exceptions to editing issues/PRs.
samsrabin Oct 30, 2026
dd3c065
Add clm-coding-conventions.md.
samsrabin Oct 30, 2026
d9a138e
clm-coding-conventions.md: No numbers > H3.
samsrabin Oct 30, 2026
2c417c8
clm-coding-conventions.md: Remove outdated emails
samsrabin Oct 30, 2026
e8e0bfa
clm-coding-conventions.md: Now orphan
samsrabin Oct 30, 2026
4d69270
clm-coding-conventions.md: Update Fortran feature support list.
samsrabin Oct 30, 2026
3708e93
clm-coding-conventions.md: Remove references to "CMTs".
samsrabin Oct 30, 2026
302b329
clm-coding-conventions.md: Remove reference to Yellowstone.
samsrabin Oct 30, 2026
0708800
clm-coding-conventions.md: Update refs to XML files
samsrabin Oct 30, 2026
17a9905
clm-coding-conventions.md: Make most code blocks fortran.
samsrabin Oct 30, 2026
9ab2ab3
Refer to new coding guidelines page.
samsrabin Oct 30, 2026
acb2d3f
Add bug report issue form.
samsrabin Oct 30, 2026
9dba65a
Add other issue forms.
samsrabin Oct 30, 2026
096ed27
Docs issue form: Add question about docs version.
samsrabin Oct 30, 2026
3826095
Delete GitHub issue templates; use forms instead.
samsrabin Oct 30, 2026
81c2a82
clm-coding-conventions.md: Remove refs to clmtype.
samsrabin Oct 30, 2026
8e39b2c
PR template: Link to new coding conventions webpage.
samsrabin Oct 30, 2026
38b258a
clm-coding-conventions.md: Add link to CLM4.5 refactoring page.
samsrabin Oct 30, 2026
7e367d4
clm-coding-conventions.md: Remove "previous page" ref.
samsrabin Oct 30, 2026
060b3dd
clm-coding-conventions.md: Fix a contradictory .lt.
samsrabin Oct 30, 2026
b7393e4
clm-coding-conventions.md: Remove `== .true` example
samsrabin Oct 30, 2026
37cafd8
AGENTS.md: Try to soften contradiction about refs to plan docs
samsrabin Oct 30, 2026
60c883c
AGENTS.md: Delete a repetitive sentence.
samsrabin Oct 30, 2026
6b6611b
AGENTS.md: Better signal "example" for co-authored-by.
samsrabin Oct 30, 2026
3a91aa4
AGENTS.md: Use rebasing to remove (refs to) planning docs.
samsrabin Oct 30, 2026
951c086
CONTRIBUTING.md: Add links to new issue, discussion pages.
samsrabin Oct 30, 2026
0b07c9d
clm-coding-conventions.md: Fix a reference
samsrabin Oct 30, 2026
60ece91
AGENTS.md: Typo fix
samsrabin Oct 30, 2026
302dd9a
AGENTS.md: Explain what to do if if human asks AI to do GitHub stuff.
samsrabin Oct 31, 2026
fedddf2
AGENTS.md: Add Co-Authored By example for Gemini.
samsrabin Oct 31, 2026
4469ada
CONTRIBUTING.md: Clarify that AI usage example is PR template.
samsrabin Oct 31, 2026
7e24ef5
AGENTS.md: Add instructions for non-interactive rebase.
samsrabin Oct 31, 2026
354a765
CONTRIBUTING.md: Delete a stray colon
samsrabin Oct 31, 2026
80a77dc
AGENTS.md: PRs: Never check boxes on human's behalf.
samsrabin Oct 31, 2026
2b0bce7
CONTRIBUTING.md: Explain checkboxes
samsrabin Oct 31, 2026
f74c5c9
AGENTS.md: Correct email address for Gemini.
samsrabin Oct 31, 2026
7395179
AGENTS.md: Clarify that link for GEMINI emails.
samsrabin Nov 2, 2026
4c43299
AGENTS.md: Add a missing close quote
samsrabin Nov 2, 2026
abe8f45
AGENTS.md: Add Co-Authored-By for ChatGPT
samsrabin Nov 2, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .github/ISSUE_TEMPLATE/01_bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,15 @@ about: Report a problem with the code

**Configurations affected:** [Fill this in if known.]

### AI disclosure

- [ ] Was AI used in this contribution? **Yes/no**:
Comment thread
samsrabin marked this conversation as resolved.
Resolved
<!-- If the answer above is "no," delete the rest of this section.-->
If yes:
- [ ] Types of work:
- Provider (optional):
- Model (optional):

Comment thread
samsrabin marked this conversation as resolved.
Resolved
### Details of bug

[Fill in details here.]
Expand Down
11 changes: 11 additions & 0 deletions .github/ISSUE_TEMPLATE/02_science_discussion.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,15 @@ about: We encourage the use of issues to discuss CTSM science developments

---

### Brief summary

### Further details

### AI disclosure

- [ ] Was AI used in this contribution? **Yes/no**:
Comment thread
samsrabin marked this conversation as resolved.
Resolved
<!-- If the answer above is "no," delete the rest of this section.-->
If yes:
- [ ] Types of work:
- Provider (optional):
- Model (optional):
9 changes: 9 additions & 0 deletions .github/ISSUE_TEMPLATE/03_documentation.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,12 @@ A clear and concise description of what is missing or wrong.

### Additional context (optional)
Add any other context or screenshots about the issue here.

### AI disclosure

- [ ] Was AI used in this contribution? **Yes/no**:
<!-- If the answer above is "no," delete the rest of this section.-->
If yes:
- [ ] Types of work:
- Provider (optional):
- Model (optional):
11 changes: 11 additions & 0 deletions .github/ISSUE_TEMPLATE/04_other.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,15 @@ about: Other issues (enhancement, cleanup, etc.)

---

### Brief summary

### Further details

### AI disclosure

- [ ] Was AI used in this contribution? **Yes/no**:
<!-- If the answer above is "no," delete the rest of this section.-->
If yes:
- [ ] Types of work:
- Provider (optional):
- Model (optional):
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/config.yml
Comment thread
samsrabin marked this conversation as resolved.
Resolved
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
blank_issues_enabled: true
blank_issues_enabled: false
Comment thread
samsrabin marked this conversation as resolved.
Resolved
contact_links:
- name: CESM forums
url: https://bb.cgd.ucar.edu/cesm/forums/ctsm-clm-mosart-rtm.134/
Expand Down
9 changes: 9 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,15 @@ the list of common problems to watch out for
- [ ] (Replace this text and add more list items as needed)
<!-- (List what testing you did to show your changes worked as expected) -->

### AI disclosure

- [ ] Was AI used in this contribution? **Yes or no**
<!-- If the answer above is "no," delete the rest of this section.-->
If yes:
- [ ] Types of work:
- Provider (optional):
- Model (optional):



### Requirements before merge:
Expand Down
24 changes: 24 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# AGENTS.md

**Read and obey all standards described in `CONTRIBUTING.md`, including the webpage linked under "Coding Practices and Style."**
Comment thread
samsrabin marked this conversation as resolved.
Resolved

## General rules
- You must assume that any development design or implementation plan documents will not be brought into the repository upon merge. It's fine to commit them, but the maintainers will remove them before merge. Therefore, all work you do -- code comments, persistent documentation, commit messages -- must stand on their own without reference to those documents.
Comment thread
samsrabin marked this conversation as resolved.
Resolved

## Commits
- Commits must, as much as possible, do one "thing" and do it completely. It's fine for commits to work in multiple places across the codebase, if this is necessary to perform one coherent step of development.
- The "headline" of commit messages must, as much as possible, be written in plain language that can be understood by someone familiar with CTSM but not necessarily with the issue being addressed.
- No part of any commit message may reference development plan documents without at least explaining the referent. E.g., "Task 2 Step 4" is not acceptable without saying what that *is* (e.g., "Separate xyz functionality into a separate subroutine). Ideally, though, such references would be stripped by rebasing before requesting review on a PR.
- Commit messages that you as an LLM write must include a "Co-Authored-By" credit at the end naming your model and version. This also applies to messages a human writes for commits containing *material* that you wrote -- make sure the human complies, or ask to amend commits to add it as necessary. For example:
Comment thread
samsrabin marked this conversation as resolved.
Resolved
```
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
```

## GitHub issues and pull requests
"The CTSM repo" in this section specifically refers to the GitHub repo ESCOMP/CTSM, not forks.

- **You may never submit, edit, or comment on an issue or PR in the CTSM repo, with one exception.** The maintainers are humans who will take the time and care to use their human brains to work with the contributing human. The only exception is that you may edit the "AI disclosure" section to keep it accurate as the issue or PR evolves.
Comment thread
samsrabin marked this conversation as resolved.
Resolved
- You *are* allowed to help draft issues and PRs. If doing so, first read the standards described under the AI section in `CONTRIBUTING.md`. Make sure the human user understands and follows these rules during the contribution process. Then follow the repository templates: `.github/PULL_REQUEST_TEMPLATE.md` for PRs and the relevant template under `.github/ISSUE_TEMPLATE/` for issues. Preserve the template's sections and checklist, filling in or adapting placeholders as needed.
- You are also allowed to read issues and PRs in the CTSM repo, including ones your human submits. Prompt your human to keep the entire description up to date as the issue or PR evolves. Remember, you are not allowed to edit an issue or PR description except for the "AI disclosure" section.
- Unless your user tells you otherwise, you are also allowed to push to branches in forks, including branches that have associated PRs in ESCOMP/CTSM.
- Contributions (both issues and pull requests) often have implications for our documentation. You must ensure that our documentation has been reviewed for such implications and that these are accounted for in the contribution. Our documentation is mostly at `doc/source/`; make sure to look at the "documentation documentation" at `doc/source/users_guide/working-with-documentation/`. Also consider in-code documentation (docstrings, type annotations, and comments) as well as READMEs.
29 changes: 29 additions & 0 deletions CONTRIBUTING.md
Comment thread
samsrabin marked this conversation as resolved.
Resolved
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,39 @@ This also allows your changes to be planned for and slated for a time to come in
cases you won't merge the Pull Request yourself, but a software engineer responsible for CTSM will do
additional testing and bring the changes to CTSM master.

Please keep pull requests focused and small enough for the very busy maintainers to understand and review.

### CTSM Developers Guide:

https://wiki.ucar.edu/display/ccsm/Community+Land+Model+Developers+Guide

## AI Usage Policies

Comment thread
samsrabin marked this conversation as resolved.
Resolved
AI tools make it very easy to find apparent issues and submit suggested changes. If what you have found is not already an issue in this repo, we **strongly recommend** opening an issue or discussion here, as described at the top of this document.
Comment thread
samsrabin marked this conversation as resolved.
Resolved

We permit generative AI assistance, but responsibility remains with people. AI assistance must not shift the work of understanding, debugging, or validating a contribution onto maintainers. The same quality, licensing, and reproducibility standards apply whether or not AI is used.

In this policy, "you" refers to the human contributor. AI tools drafting an issue or PR (or whose humans say they will be opening one) should direct their human operator to this policy and remind them to personally review and understand an issue before submission, or the complete set of changes in a PR before requesting review. An AI tool must not claim that the operator has done so unless the operator confirms it.
Comment thread
samsrabin marked this conversation as resolved.
Resolved

Before requesting review on a PR, personally review and understand the complete set of changes in the PR, whether or not AI was used. This includes code, tests, configuration, documentation, and generated files. If your PR does not yet satisfy this requirement, leave it as a draft.

You must be able to explain why the changes are correct, how they fit CTSM, and how they were validated. AI review and passing automated checks do not replace human understanding or project review. You remain responsible for your contribution and for personally addressing review feedback.

**Do not submit unreviewed AI output to this repository.** Issue and PR descriptions, comments, and review responses must reflect your own reasoning and understanding. Translation, grammar, and phrasing assistance are welcome, provided you verify the meaning.

**Do not delegate conversations with maintainers to an agent.** The maintainers of this repo are human beings who will use their human brains to review every single line of your contribution. Please show them the same courtesy when discussing an issue or PR.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We do want to aspire to reviewing every line of code carefully. But, realistically as humans we won't be able to do that for large changes, or lines we can't advise on. So I think maybe we soften the wording a bit? But, also giving the expectation that every line is reviewed by a human might also help people to NOT submit huge changes. So maybe we leave it in.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I also wonder about giving a ballpark limitation on the size of a PR. For example, saying something like

Contributions that exceed reasonable size for humans to review may be rejected (many tens of thousand lines of changes).

@samsrabin samsrabin Oct 29, 2026 •

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I would say that, if people aren't sure about the acceptable size of a PR, they should discuss that with us on the issue page they're supposed to have opened. We could also add something here like, "We may ask you to break up large PRs into smaller pieces," without giving any sort of number. ("Many tens of thousands of lines of changes" is way, way too high of a number anyway in my opinion.)

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Also:

We do want to aspire to reviewing every line of code carefully. But, realistically as humans we won't be able to do that for large changes, or lines we can't advise on

That's an argument for (1) not letting people bring in large changes and (2) bringing in subject-matter experts to review the things that we as SEs can't—not for letting people bring in code we don't understand.


Every issue and PR must state whether generative AI was used in preparing the contribution, including research, code, tests, documentation, or language assistance. If AI was used, briefly describe how it was used; this description is required. Provider and model are optional. Keep the disclosure current as the PR changes, even if generated material was subsequently rewritten. Ordinary formatters, compilers, and test runners do not require AI disclosure. For example:

> - [x] Was AI used in this contribution? **Yes**:
> If yes:
> - [x] Types of work: Designing changes, writing tests.
> - Provider (optional): Anthropic
> - Model (optional): Claude Opus 5.5 (extra-high effort)

Further instructions can be found in `AGENTS.md`.


## Getting Started:

The following resources give you information on the project and how to get started.
Expand Down
Loading