Put the language in design document names and add a sync mode

This commit is contained in:
Jan Doubravský
2026-08-18 13:26:19 +02:00
parent 950e946004
commit 6737a27fa0
11 changed files with 306 additions and 89 deletions
+12 -9
View File
@@ -1,19 +1,22 @@
# AI Agents - Project Rules
**Document Version:** v7 (independent, incremented on structural changes)
**Document Version:** v8 (independent, incremented on structural changes)
Language-agnostic rules for AI assistants (Claude Code, Cursor, Copilot, etc.).
Everything language-specific — package manager, formatter, linter, test framework,
logging library, line length, project layout — lives in the matching design document:
| Project type | Design document |
|--------------------|------------------------------|
| Python application | `DESIGN_DOCUMENT.md` |
| Python library | `DESIGN_DOCUMENT_MODULE.md` |
| Rust application | `DESIGN_DOCUMENT.md` |
| Rust library | `DESIGN_DOCUMENT_LIB.md` |
| Godot | `DESIGN_DOCUMENT_GODOT.md` |
| Project type | Design document |
|--------------------|------------------------------------|
| Python application | `DESIGN_DOCUMENT_PYTHON.md` |
| Python library | `DESIGN_DOCUMENT_PYTHON_MODULE.md` |
| Rust application | `DESIGN_DOCUMENT_RUST.md` |
| Rust library | `DESIGN_DOCUMENT_RUST_LIB.md` |
| Godot | `DESIGN_DOCUMENT_GODOT.md` |
The language is part of the file name, so a project that mixes languages carries one design document
per language and nothing collides.
Where this file and a design document disagree, **the design document wins**.
@@ -67,7 +70,7 @@ Where this file and a design document disagree, **the design document wins**.
- **Commit the lock file for applications, do not commit it for libraries**
- **Every core document is committed**, including the shared ones (`CLAUDE.md`, `AGENTS.md`, `DESIGN_DOCUMENT*.md`). A checkout then carries the rules that applied to that code, and a fresh clone works standalone.
- **Never edit a shared document inside a project** — it is a copy. Changes belong in the documentation repository and are copied outward; project-specific deviations go in `PROJECT.md`.
- Synchronising the copies is its own commit (`docs: sync guidelines to AGENTS v7 / DESIGN_DOCUMENT v10`) and is **not** recorded in the project `CHANGELOG.md` — it is not a change to the product
- Synchronising the copies is its own commit (`docs: sync guidelines to AGENTS v8 / DESIGN_DOCUMENT_PYTHON v11`) and is **not** recorded in the project `CHANGELOG.md` — it is not a change to the product
### Commit messages
+2 -2
View File
@@ -1,6 +1,6 @@
# CLAUDE.md
**Document Version:** v2 (independent, incremented on structural changes)
**Document Version:** v3 (independent, incremented on structural changes)
## First-time setup
@@ -11,4 +11,4 @@
- `AGENTS.md`
- `PROJECT.md`
- `CHANGELOG.md`
- `DESIGN_DOCUMENT*.md` (`DESIGN_DOCUMENT.md`, `DESIGN_DOCUMENT_MODULE.md`, `DESIGN_DOCUMENT_LIB.md` or `DESIGN_DOCUMENT_GODOT.md`)
- `DESIGN_DOCUMENT*.md` — one per language used in the project (`DESIGN_DOCUMENT_PYTHON.md`, `DESIGN_DOCUMENT_PYTHON_MODULE.md`, `DESIGN_DOCUMENT_RUST.md`, `DESIGN_DOCUMENT_RUST_LIB.md`, `DESIGN_DOCUMENT_GODOT.md`)