2026-02-06 07:12:27 +00:00
|
|
|
---
|
|
|
|
|
paths:
|
|
|
|
|
- "tests/**"
|
|
|
|
|
- "codeflash/**/*test*.py"
|
|
|
|
|
---
|
|
|
|
|
|
chore: rebuild .claude config from scratch
Delete all existing .claude/ tracked files and recreate from scratch,
adapting patterns from codeflash-agent.
Hooks (6, up from 1):
- bash-guard: blocks grep/find/cat in Bash, redirects to dedicated tools
- require-read + track-read: enforces Read-before-Write/Edit
- post-compact: injects git state + project conventions into compaction
- post-edit-lint: runs prek on edited Python files (kept)
- status-line: shows user, area, branch, dirty state
Rules (10, up from 8):
- New: sessions, debugging, github (from codeflash-agent)
- Rewrote: code-style (absorbed source-code), git (added sizing/hygiene)
- Removed: source-code (folded into code-style)
Settings: permissions allowlist, attribution, includeCoAuthoredBy, full
hook wiring, status line, enableAllProjectMcpServers.
.gitignore: whitelist .claude/skills/ for tracking.
2026-04-23 09:31:04 +00:00
|
|
|
# Testing
|
2026-02-06 07:12:27 +00:00
|
|
|
|
chore: rebuild .claude config from scratch
Delete all existing .claude/ tracked files and recreate from scratch,
adapting patterns from codeflash-agent.
Hooks (6, up from 1):
- bash-guard: blocks grep/find/cat in Bash, redirects to dedicated tools
- require-read + track-read: enforces Read-before-Write/Edit
- post-compact: injects git state + project conventions into compaction
- post-edit-lint: runs prek on edited Python files (kept)
- status-line: shows user, area, branch, dirty state
Rules (10, up from 8):
- New: sessions, debugging, github (from codeflash-agent)
- Rewrote: code-style (absorbed source-code), git (added sizing/hygiene)
- Removed: source-code (folded into code-style)
Settings: permissions allowlist, attribution, includeCoAuthoredBy, full
hook wiring, status line, enableAllProjectMcpServers.
.gitignore: whitelist .claude/skills/ for tracking.
2026-04-23 09:31:04 +00:00
|
|
|
- Full string equality for context extraction/replacement tests — no substring matching
|
|
|
|
|
- Use pytest's `tmp_path` fixture — not `tempfile.mkdtemp()` or `NamedTemporaryFile`
|
|
|
|
|
- Always call `.resolve()` on Path objects before passing to functions under test
|
|
|
|
|
- Use `.as_posix()` when converting resolved paths to strings
|
|
|
|
|
- New features and bug fixes must have test cases
|
|
|
|
|
- The pytest plugin patches `time`, `random`, `uuid`, `datetime` for deterministic execution
|
|
|
|
|
- `conftest.py` autouse fixture calls `reset_current_language()` — tests start with Python as default
|
|
|
|
|
- Prefer running individual tests over full suites: `uv run pytest tests/test_foo.py::TestBar::test_baz -v`
|
|
|
|
|
- Only run the full suite when explicitly asked or before pushing
|