diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..49c53ab --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,14 @@ +# CLAUDE.md โ€” ChainWeaver + +This file is the entry point for Claude Code. All project context, architecture details, +coding conventions, and guardrails are maintained in a single canonical source: + +โ†’ **Read [AGENTS.md](AGENTS.md) before making any changes.** + +## Quick invariants (also in AGENTS.md ยง Core invariants) + +1. No LLM calls in `executor.py` โ€” deterministic by design. +2. All exceptions inherit from `ChainWeaverError`. +3. All public symbols exported in `chainweaver/__init__.py` `__all__`. +4. `from __future__ import annotations` at the top of every module. +5. All new code must pass: `ruff check`, `ruff format --check`, `mypy`, `pytest`.