Analyzing anthropics/anthropic-cookbook...
Checking for context files and running AI analysis
A collection of notebooks/recipes showcasing some fun and effective ways of using Claude.
Excellent context documentation
This repository demonstrates excellent context engineering! Excellent specificity with detailed model naming conventions and Bedrock-specific configurations
Covers most essential aspects including setup, development workflow, dependencies, git conventions, and project structure. Missing some details about testing procedures and deployment/publishing processes.
Highly tailored to the Claude Cookbooks project with specific model names, Bedrock configurations, notebook conventions, and project-specific slash commands. Very little generic boilerplate.
Well-organized with clear sections, logical flow from setup to development to project structure. Good use of code blocks and hierarchical organization.
Provides clear commands and specific instructions, but some areas like notebook quality standards and the registry.yaml format could use more concrete examples.
# Claude Cookbooks
A collection of Jupyter notebooks and Python examples for building with the Claude API.
## Quick Start
```bash
# Install dependencies
uv sync --all-extras
# Install pre-commit hooks
uv run pre-commit install
# Set up API key
cp .env.example .env
# Edit .env and add your ANTHROPIC_API_KEY
```
## Development Commands
```bash
make format # Format code with ruff
make lint # Run linting
make check # Run format-check + lint
make fix # Auto-fix issues + format
make test # Run pytest
```
Or directly with uv:
```bash
uv run ruff format . # Format
uv run ruff check . # Lint
uv run ruff check --fix . # Auto-fix
uv run pre-commit run --all-files
```
## Code Style
- **Line length:** 100 characters
- **Quotes:** Double quotes
- **Formatter:** Ruff
Notebooks have relaxed rules for mid-file imports (E402), redefinitions (F811), and variable naming (N803, N806).
## Git Workflow
**Branch naming:** `<username>/<feature-description>`
**Commit format (conventional commits):**
```
feat(scope): add new feature
fix(scope): fix bug
docs(scope): update documentation
style: lint/format
```
## Key Rules
1. **API Keys:** Never commit `.env` files. Always use `os.environ.get("ANTHROPIC_API_KEY")`
2. **Dependencies:** Use `uv add <package>` or `uv add --dev <package>`. Never edit pyproject.toml directly.
3. **Models:** Use current Claude models. Check docs.anthropic.com for latest versions.
- Sonnet: `claude-sonnet-4-6`
- Haiku: `claude-haiku-4-5`
- Opus: `claude-opus-4-6`
- **Never use dated model IDs** (e.g., `claude-sonnet-4-6-20250514`). Always use the non-dated alias.
- **Bedrock model IDs** follow a different format. Use the base Bedrock model ID from the docs:
- Opus 4.6: `anthropic.claude-opus-4-6-v1`
- Sonnet 4.5: `anthropic.claude-sonnet-4-5-20250929-v1:0`
- Haiku 4.5: `anthropic.claude-haiku-4-5-20251001-v1:0`
- Prepend `global.` for global endpoints (recommended): `global.anthropic.claude-opus-4-6-v1`
- Note: Bedrock models before Opus 4.6 require dated IDs in their Bedrock model ID.
4. **Notebooks:**
- Keep outputs in notebooks (intentional for demonstration)
- One concept per notebook
- Test that notebooks run top-to-bottom without errors
5. **Quality checks:** Run `make check` before committing. Pre-commit hooks validate formatting and notebook structure.
## Slash Commands
These commands are available in Claude Code and CI:
- `/notebook-review` - Review notebook quality
- `/model-check` - Validate Claude model references
- `/link-review` - Check links in changed files
## Project Structure
```
capabilities/ # Core Claude capabilities (RAG, classification, etc.)
skills/ # Advanced skill-based notebooks
tool_use/ # Tool use and integration patterns
multimodal/ # Vision and image processing
misc/ # Batch processing, caching, utilities
third_party/ # Pinecone, Voyage, Wikipedia integrations
extended_thinking/ # Extended reasoning patterns
scripts/ # Validation scripts
.claude/ # Claude Code commands and skills
```
## Adding a New Cookbook
1. Create notebook in the appropriate directory
2. Add entry to `registry.yaml` with title, description, path, authors, categories
3. Add author info to `authors.yaml` if new contributor
4. Run quality checks and submit PR