Update Code Guidelines and Standards authored by Michael Thomas's avatar Michael Thomas
...@@ -249,3 +249,65 @@ Python may be a good fit depending on application scope and library use. ...@@ -249,3 +249,65 @@ Python may be a good fit depending on application scope and library use.
Other languages may be a good fit. For example, we have started using Go for areas with high concurrency and network loads. Other languages may be a good fit. For example, we have started using Go for areas with high concurrency and network loads.
Kernel code right now is C. Kernel code right now is C.
# AI Code Attribution Standard
This document defines the standard for commit attribution when working with AI coding assistants (Claude Code, etc.).
## Principles
1. **Honesty in authorship**: The entity that wrote the majority of the code should be credited as Author
2. **Human accountability**: A human must always sign off on and take responsibility for every commit
3. **Transparency**: AI involvement in code generation should be clearly indicated
## Attribution Format
### When AI wrote the majority of the code
```
Author: Claude <claude@anthropic.com>
Co-Authored-By: Your Name <your.email@ligo.org>
Signed-Off-By: Your Name <your.email@ligo.org>
```
### When you wrote the majority of the code (AI assisted with review/suggestions)
```
Author: Your Name <your.email@ligo.org>
Co-Authored-By: Claude <claude@anthropic.com>
Signed-Off-By: Your Name <your.email@ligo.org>
```
## Guidelines for Determining Primary Author
- **AI is primary author** when: AI generated the implementation, wrote the logic, or produced the bulk of the patch
- **Human is primary author** when: You wrote the code yourself and AI provided review, caught bugs, or suggested minor improvements
- When in doubt, consider: "Who would I credit if this were a human collaborator?"
## Commit Message Format
```
<type>: <subject>
<body>
Co-Authored-By: <name> <email>
Signed-Off-By: Your Name <your.email@ligo.org>
```
## Implementation
When creating commits, follow these rules:
1. Always include `Signed-Off-By` with the human reviewer's name and email
2. Set `Author` based on who wrote the majority of the code
3. Include `Co-Authored-By` to credit the other contributor
4. Never commit without human review and sign-off
## For Claude Code
When using `/commit` or when Claude creates commits automatically, Claude should:
1. Recognize that it wrote the code and set itself as Author
2. Prompt for or include the human's information in `Co-Authored-By` and `Signed-Off-By`
3. Never create commits without human sign-off attribution
\ No newline at end of file