|
ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
|
Hard rule, no exceptions. Zero AI attribution anywhere in this codebase. The pre-commit gate scripts/checks/check_no_ai_attribution.py enforces this STRICTLY.
This is a personal, hand-written firmware project. Every line of code, every test, every comment, every doc page is presented as the work of a human developer. AI assistants may be used as a tool (the same way an editor, a debugger, or a search engine is a tool), but the codebase must never attribute itself to an AI system.
Any reference to an AI tool as the author, reviewer, contributor, or generator of an artifact in the repository. This covers:
| Banned token | Notes |
|---|---|
| Claude | Reserved EXCLUSIVELY for the filename CLAUDE.md. Any other usage is banned. The .claude config directory is allowed (it is a path, not an attribution). |
| Anthropic | No legitimate in-tree use. |
| OpenAI | No legitimate in-tree use. |
| Copilot | No legitimate in-tree use. |
| ChatGPT | No legitimate in-tree use. |
| GPT-3, GPT-4, GPT-4o, GPT-3.5, ... | OpenAI product family. The bare token GPT and Renesas channel names GPT0..GPT13, GPT320..GPT323, ra8_gpt, GPT_BASE etc. are ALLOWED – the RA8D2 chip has a GPT (general PWM timer) peripheral, so the dash is what discriminates the AI product from the hardware block. |
| Co-Authored-By: Claude, Co-Authored-By: Anthropic, ... | Banned in commit messages too (CLAUDE.md "Git Commits and Pull Requests" section), but this gate also catches them if they end up in tracked files. |
| Generated by Claude, Generated with GPT, Generated by AI, ... | Same. |
A handful of files (this one, CLAUDE.md, CONTRIBUTING.md) legitimately need to spell the banned tokens in order to quote the policy. Append an HTML comment, line comment, or hash comment containing the literal tag AI-OK: <reason> to the offending line:
The opt-out is per line – it does not span multiple lines. Use it sparingly. Reviewers should reject opt-outs that don't have a clear reason (i.e. "I just wanted to write Claude here" is not acceptable).
scripts/checks/check_no_ai_attribution.py walks every tracked file in the repository, enumerated from git ls-files through the shared first_party_paths helper. The hand-written directory list this used to carry silently exempted tools/, .github/, .devcontainer/, cmake/ and the whole repository root from a ban that applies to any tracked file, so a new top-level directory is now policed the day it lands. For each text file with a recognised extension (.c, .h, .md, .py, .sh, .cmake, .yml, .txt, ...) it scans line by line for the banned patterns and reports each violation as:
The script exits non-zero on any violation. The pre-commit hook (scripts/git/pre-commit) runs it after the existing checks; CI runs it on every PR.
Generated, vendored and build-output trees are skipped. The check is strict from day one – there are no warn-only / grace-period semantics.