This guide lists actions that an automated agent must not perform without an explicit, in-context instruction from the user. Local, reversible work (editing files, running tests, formatting) needs no special permission. The actions below are different: they are irreversible, externally visible, or scientifically consequential.
git pushto any remote, including the agent's own branch.git push --force(always, including on agent-owned branches).git commit --amendon a commit that has already been pushed.git rebaseonto a different base, or any interactive rebase.git reset --hard,git checkout --,git restore ., orgit clean -fdwhen uncommitted changes exist.- Deleting branches (local or remote).
- Creating, merging, or closing pull requests.
- Adding labels, assignees, or reviewers; commenting on issues or PRs.
- Tagging a release, or pushing tags.
- Bumping
versioninProject.toml. Version bumps belong to release PRs and are owned by maintainers. - Editing
Manifest.toml. Treat the manifest as derived state. Most CliMA repos do not commit it; if a repo does, do not modify it without explicit instruction. - Adding, removing, or relaxing
[compat]entries inProject.toml. - Adding new entries to
[deps]for an unrelated capability. Pkg.update()against the project environment.
- Editing reference counters or reference data in any reproducibility-test directory (e.g.,
reproducibility_tests/in ClimaAtmos). These reference values gate scientific reproducibility; only update them in response to a deliberate, user-confirmed output change. - Editing MSE tolerance thresholds.
- Editing recorded checksums or golden output files.
- Editing
.buildkite/pipeline.ymljob definitions or job names. - Editing
.github/workflows/*or any CI configuration that affects what runs on every PR. - Adding or removing CI jobs.
- Disabling tests (
@test_skip, commenting out a@testset, removing a file fromruntests.jl). - Skipping pre-commit or git hooks (
--no-verify).
- Renaming or removing exported symbols.
- Renaming, removing, or changing the units of a diagnostic.
- Changing default values of user-visible config keys.
- Removing config keys, even if they appear unused.
For contrast, the following are routine and do not require permission:
- Reading any file in the repository.
- Editing source under
src/,test/,docs/,ext/. - Running
juliato type-check, run tests, or reproduce a bug. - Running the formatter (
JuliaFormatter) over changed files. - Creating new local commits on the current working branch.
- Adding new tests that exercise a bug or new feature.
- Adding
NEWS.mdentries for changes the agent has made.
If an action could be visible to other contributors, change scientific output, or be hard to reverse, ask. The cost of a one-line confirmation is small; the cost of an unwanted force-push or a silently shifted reference value is large.
If this guide is discovered to be stale or missing a pattern, update it.