Skip to content

Commit deebbea

Browse files
committed
docs: add AI attribution policy
Documents the project's AI tool policy across contributor-facing locations: optional Assisted-by trailer for humans, default-on for AI assistants, and an Attribution checkbox in all PR templates. Assisted-by: Claude Code Signed-off-by: Alex Bozarth <ajbozart@us.ibm.com>
1 parent 301ca3e commit deebbea

8 files changed

Lines changed: 47 additions & 6 deletions

File tree

.github/PULL_REQUEST_TEMPLATE/component.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,6 @@ Use this template when adding or modifying components in `mellea/stdlib/componen
2525
- [ ] Tests added to `tests/components/`
2626
- [ ] New code has 100% coverage
2727
- [ ] Ensure existing tests and github automation passes (a maintainer will kick off the github automation when the rest of the PR is populated)
28+
29+
### Attribution
30+
- [ ] AI tools used (Assisted-by trailer added to commits)

.github/PULL_REQUEST_TEMPLATE/misc.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,6 @@
1616
- [ ] Tests added to the respective file if code was changed
1717
- [ ] New code has 100% coverage if code as added
1818
- [ ] Ensure existing tests and github automation passes (a maintainer will kick off the github automation when the rest of the PR is populated)
19+
20+
### Attribution
21+
- [ ] AI tools used (Assisted-by trailer added to commits)

.github/PULL_REQUEST_TEMPLATE/requirement.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,6 @@ Use this template when adding or modifying requirements in `mellea/stdlib/requir
2828
- [ ] Tests added to `tests/requirements/`
2929
- [ ] New code has 100% coverage
3030
- [ ] Ensure existing tests and github automation passes (a maintainer will kick off the github automation when the rest of the PR is populated)
31+
32+
### Attribution
33+
- [ ] AI tools used (Assisted-by trailer added to commits)

.github/PULL_REQUEST_TEMPLATE/sampling.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,6 @@ Use this template when adding or modifying sampling strategies in `mellea/stdlib
2626
- [ ] Tests added to `tests/sampling/`
2727
- [ ] New code has 100% coverage
2828
- [ ] Ensure existing tests and github automation passes (a maintainer will kick off the github automation when the rest of the PR is populated)
29+
30+
### Attribution
31+
- [ ] AI tools used (Assisted-by trailer added to commits)

.github/PULL_REQUEST_TEMPLATE/tool.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,6 @@ Use this template when adding or modifying components in `mellea/stdlib/tools/`.
2020
- [ ] Tests added to `tests/stdlib/tools/`
2121
- [ ] New code has 100% coverage
2222
- [ ] Ensure existing tests and github automation passes (a maintainer will kick off the github automation when the rest of the PR is populated)
23+
24+
### Attribution
25+
- [ ] AI tools used (Assisted-by trailer added to commits)

AGENTS.md

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -95,33 +95,44 @@ mkdir -p .bob && ln -s ../.agents/skills .bob/skills
9595

9696
Pre-commit runs: ruff, mypy, uv-lock, codespell
9797

98-
## 7. Timing
98+
## 7. AI Attribution
99+
100+
AI tools are welcome for development work in this project.
101+
102+
**For AI assistants:** The project requires sign-offs — use `-s` when committing. Do not add a separate `Signed-off-by` line in the AI's own name. Add an `Assisted-by:` trailer to the commit footer by default:
103+
104+
```text
105+
Assisted-by: Claude Code
106+
Assisted-by: IBM Bob
107+
```
108+
109+
## 8. Timing
99110
> **Don't cancel**: `pytest` (full) and `pre-commit --all-files` may take minutes. Canceling mid-run can corrupt state.
100111
101-
## 8. Common Issues
112+
## 9. Common Issues
102113
| Problem | Fix |
103114
|---------|-----|
104115
| `ComponentParseError` | Add examples to docstring |
105116
| `uv.lock` out of sync | Run `uv sync` |
106117
| Ollama refused | Run `ollama serve` |
107118
| Telemetry import errors | Run `uv sync` to install OpenTelemetry deps |
108119

109-
## 9. Self-Review (before notifying user)
120+
## 10. Self-Review (before notifying user)
110121
1. `uv run pytest test/ -m "not qualitative"` passes?
111122
2. `ruff format` and `ruff check` clean?
112123
3. New functions typed with concise docstrings?
113124
4. Unit tests added for new functionality?
114125
5. Avoided over-engineering?
115126

116-
## 10. Writing Tests
127+
## 11. Writing Tests
117128

118129
- Place tests in `test/` mirroring source structure
119130
- Name files `test_*.py` (required for pydocstyle)
120131
- Use `gh_run` fixture for CI-aware tests (see `test/conftest.py`)
121132
- Mark tests checking LLM output quality with `@pytest.mark.qualitative`
122133
- If a test fails, fix the **code**, not the test (unless the test was wrong)
123134

124-
## 11. Writing Docs
135+
## 12. Writing Docs
125136

126137
If you are modifying or creating pages under `docs/docs/`, follow the writing
127138
conventions in [`docs/docs/guide/CONTRIBUTING.md`](docs/docs/guide/CONTRIBUTING.md).
@@ -139,7 +150,7 @@ Key rules that differ from typical Markdown habits:
139150
mellea source; mark forward-looking content with `> **Coming soon:**`
140151
- **No visible TODOs** — if content is missing, open a GitHub issue instead
141152

142-
## 12. Feedback Loop
153+
## 13. Feedback Loop
143154

144155
Found a bug, workaround, or pattern? Update the docs:
145156

CONTRIBUTING.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,17 @@ Closes #123
283283
git commit -s -m "feat: your commit message"
284284
```
285285

286+
### AI Tools
287+
288+
AI-assisted development is welcome. You are responsible for reviewing and understanding every change before submitting.
289+
290+
AI tools following project guidelines add an `Assisted-by:` trailer to commit messages by default, identifying which tool was used:
291+
292+
```text
293+
Assisted-by: Claude Code
294+
Assisted-by: IBM Bob
295+
```
296+
286297
### Pre-commit Hooks
287298

288299
Pre-commit hooks run automatically before each commit and check:

docs/docs/community/contributing-guide.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,10 @@ git commit -s -m "feat: your commit message"
171171

172172
**Branch naming:** `feat/topic`, `fix/issue-id`, `docs/topic`
173173

174+
### AI tools
175+
176+
AI-assisted development is welcome. You are responsible for reviewing and understanding every change before submitting. AI tools following project guidelines will add an `Assisted-by:` trailer to commit messages by default.
177+
174178
### Pre-commit hooks
175179

176180
Pre-commit hooks run automatically before each commit and check:

0 commit comments

Comments
 (0)