RuleStack

Configs

Stacks

Compare

Diff

RuleStack

Configs

Stacks

Compare

Diff

Read API

RuleStack

Configs

Stacks

Compare

Diff

Read API

Diff/jleist-clemson-acheron-claude ↔ jleist-clemson-acheron-cursor-rules-testing

Comparison

A · CLAUDE.md · jleist-clemson/acheronB · Cursor rules · jleist-clemson/acheron
What each file covers, counted
DimensionSharedOnly in AOnly in BOverlap
Sections0130%
Commands0020%
Section tags0140%

What each file covers

Sections

0 shared · 1 only in A · 3 only in B
  • − Claude Code
  • + Testing Conventions
  • + Unit vs integration
  • + What to cover

Commands

0 shared · 0 only in A · 2 only in B
  • + pytest
  • + pytest -m integration

Section tags

0 shared · 1 only in A · 4 only in B
  • − agent-behaviour
  • + test
  • + lint-format
  • + code-style
  • + testing-strategy

Line diff

+26 added−14 removed4 unchanged13.3% identical
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/testing.mdc
@@ +1 @@
1---
2description: Testing conventions (pytest, asyncio, unit vs integration)
3globs: tests/**/*.py
4alwaysApply: false
5---
6 
7# Testing Conventions
 
 
 
 
8 
9- `pytest` with `asyncio_mode = auto` — write `async def test_*` directly, no
10 per-test `@pytest.mark.asyncio` needed.
11- Test functions take **no docstrings** (the name is the description; ruff `D`
12 rules are disabled under `tests/`). Use a clear `test_<behavior>` name instead.
13- Build event payloads via `tests/factories.py`, not inline dicts, so the event
14 shape stays in one place.
15 
16# Unit vs integration
17 
18- **Unit tests** must be hermetic: mock stores/clients, require no Docker, and
19 run under the default `pytest` invocation.
20- **Integration tests** that need real services (testcontainers / Docker) must be
21 marked `@pytest.mark.integration` (or live in a module marked `pytestmark =
22 pytest.mark.integration`). They are deselected by default; run with
23 `pytest -m integration`.
24 
25# What to cover
26 
27Prioritize business logic and error/degradation paths: retry→backoff→DLQ,
28backpressure (`QueueFull` → 429), cache miss→hit, and graceful degradation when
29ES/Redis are down. Don't test framework behavior.
30 
@@ −1 +1 @@
1−@AGENTS.md
1+---
2+description: Testing conventions (pytest, asyncio, unit vs integration)
3+globs: tests/**/*.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+# Testing Conventions
88  
9−## Claude Code
9+- `pytest` with `asyncio_mode = auto` — write `async def test_*` directly, no
10+ per-test `@pytest.mark.asyncio` needed.
11+- Test functions take **no docstrings** (the name is the description; ruff `D`
12+ rules are disabled under `tests/`). Use a clear `test_<behavior>` name instead.
13+- Build event payloads via `tests/factories.py`, not inline dicts, so the event
14+ shape stays in one place.
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+# Unit vs integration
17+ 
18+- **Unit tests** must be hermetic: mock stores/clients, require no Docker, and
19+ run under the default `pytest` invocation.
20+- **Integration tests** that need real services (testcontainers / Docker) must be
21+ marked `@pytest.mark.integration` (or live in a module marked `pytestmark =
22+ pytest.mark.integration`). They are deselected by default; run with
23+ `pytest -m integration`.
24+ 
25+# What to cover
26+ 
27+Prioritize business logic and error/degradation paths: retry→backoff→DLQ,
28+backpressure (`QueueFull` → 429), cache miss→hit, and graceful degradation when
29+ES/Redis are down. Don't test framework behavior.
1830  
RuleStack

Built by

Kynth Studio

Directory

Configs
Stacks
Compare formats
Diff two configs
Best AGENTS.md examples

Formats

AGENTS.md
CLAUDE.md
Cursor rules
Copilot instructions

Reference

Read API
Corpus health
Privacy Policy
Terms

RuleStack

RuleStack

Built by

Kynth Studio

Directory

Configs
Stacks
Compare formats
Diff two configs
Best AGENTS.md examples

Formats

AGENTS.md
CLAUDE.md
Cursor rules
Copilot instructions

Reference

Read API
Corpus health
Privacy Policy
Terms

RuleStack

RuleStack

Built by

Kynth Studio

Directory

Configs
Stacks
Compare formats
Diff two configs
Best AGENTS.md examples

Formats

AGENTS.md
CLAUDE.md
Cursor rules
Copilot instructions

Reference

Read API
Corpus health
Privacy Policy
Terms

RuleStack