| Dimension | Shared | Only in A | Only in B | Overlap |
|---|---|---|---|---|
| Sections | 0 | 1 | 4 | 0% |
| Commands | 0 | 0 | 2 | 0% |
| Section tags | 0 | 1 | 4 | 0% |
What each file covers
Sections
0 shared · 1 only in A · 4 only in B- − Claude Code
- + Python Standards
- + Configuration, not magic numbers
- + ❌ BAD — hard-coded in a worker/route
- + ✅ GOOD — typed, env-driven, documented in .env.example
Commands
0 shared · 0 only in A · 2 only in B- + docker-compose.yml
- + ruff check .
Section tags
0 shared · 1 only in A · 4 only in B- − agent-behaviour
- + lint-format
- + api
- + do-not
- + docs
Line diff
jleist-clemson/acheron · CLAUDE.md
@@ −1 @@
1@AGENTS.md
2
3@.claude/rules/python-standards.md
4@.claude/rules/api-routes.md
5@.claude/rules/testing.md
6@.claude/rules/elasticsearch-mapping.md
7@.claude/rules/background-tasks.md
8
9## Claude Code
10
11Shared, vendor-neutral project context lives in `AGENTS.md` (imported above).
12Project conventions live in `.claude/rules/` and are **imported above** so they
13load every session — Claude Code has no glob-scoped rules directory, so each
14file simply names the paths it applies to in an "Applies to" line. They mirror
15the Cursor rules in `.cursor/rules/` (which *are* glob-scoped via `globs:`); if
16you change a convention, update **both** mirrors and the relevant section of
17`ARCHITECTURE.md` so the tools and docs don't drift.
18
jleist-clemson/acheron · .cursor/rules/python-standards.mdc
@@ +1 @@
1---
2description: Python style and configuration conventions
3globs: app/**/*.py
4alwaysApply: false
5---
6
7# Python Standards
8
9- Start every module with `from __future__ import annotations`.
10- Every module, class, and public function has a docstring in **Google style**
11 (enforced by ruff `D` rules, `pydocstyle` convention = google). Document
12 `Args:`, `Returns:`, and `Raises:` for non-trivial functions.
13- A module docstring should state the module's job; reference the relevant
14 `ARCHITECTURE.md` section when it explains a non-obvious design choice.
15
16# Configuration, not magic numbers
17
18All tunables (timeouts, batch sizes, TTLs, intervals, limits) live in
19`app/config.py` `Settings` and are read from the environment. Defaults should
20match `docker-compose.yml` where the var is set there; `.env.example` is the
21original frozen subset (do not modify), so newer tunables live in `Settings`
22with a sensible default only.
23
24```python
25# ❌ BAD — hard-coded in a worker/route
26await asyncio.sleep(0.5)
27ttl = 15
28
29# ✅ GOOD — typed, env-driven, documented in .env.example
30delay = settings.retry_base_delay_seconds
31ttl = settings.realtime_cache_ttl_seconds
32```
33
34Run `ruff check .` before considering a change done.
35
@@ −1 +1 @@
1−@AGENTS.md
1+---
2+description: Python style and configuration conventions
3+globs: app/**/*.py
4+alwaysApply: false
5+---
26
3−@.claude/rules/python-standards.md
4−@.claude/rules/api-routes.md
5−@.claude/rules/testing.md
6−@.claude/rules/elasticsearch-mapping.md
7−@.claude/rules/background-tasks.md
7+# Python Standards
88
9−## Claude Code
9+- Start every module with `from __future__ import annotations`.
10+- Every module, class, and public function has a docstring in **Google style**
11+ (enforced by ruff `D` rules, `pydocstyle` convention = google). Document
12+ `Args:`, `Returns:`, and `Raises:` for non-trivial functions.
13+- A module docstring should state the module's job; reference the relevant
14+ `ARCHITECTURE.md` section when it explains a non-obvious design choice.
1015
11−Shared, vendor-neutral project context lives in `AGENTS.md` (imported above).
12−Project conventions live in `.claude/rules/` and are **imported above** so they
13−load every session — Claude Code has no glob-scoped rules directory, so each
14−file simply names the paths it applies to in an "Applies to" line. They mirror
15−the Cursor rules in `.cursor/rules/` (which *are* glob-scoped via `globs:`); if
16−you change a convention, update **both** mirrors and the relevant section of
17−`ARCHITECTURE.md` so the tools and docs don't drift.
16+# Configuration, not magic numbers
17+
18+All tunables (timeouts, batch sizes, TTLs, intervals, limits) live in
19+`app/config.py` `Settings` and are read from the environment. Defaults should
20+match `docker-compose.yml` where the var is set there; `.env.example` is the
21+original frozen subset (do not modify), so newer tunables live in `Settings`
22+with a sensible default only.
23+
24+```python
25+# ❌ BAD — hard-coded in a worker/route
26+await asyncio.sleep(0.5)
27+ttl = 15
28+
29+# ✅ GOOD — typed, env-driven, documented in .env.example
30+delay = settings.retry_base_delay_seconds
31+ttl = settings.realtime_cache_ttl_seconds
32+```
33+
34+Run `ruff check .` before considering a change done.
1835
