with — the test suite in this
directory. **The tests are the normative artifact**; this document is the
index that maps every specified behavior to the test that asserts it. Both
changes to streams code, check whether the change requires updates to
any of these documentation files:
- **`README.md`** — if the change alters stream classification (e.g. new stream type),
state machine behavior
bindings: see `src/rust/jsg/` and `src/rust/jsg-macros/`; full macro reference in `src/rust/AGENTS.md`; GC tracing (`Traced` + `GarbageCollected`) documented in `src/rust/jsg-macros/README.md`
## INVARIANTS
These rules MUST be followed when writing or modifying JSG code
forward-compatibility is genuinely required (e.g., the API frequently adds new fields across releases). Document the reason in a JSDoc comment. Do not add index signatures by default.
- **Add JSDoc
child doc.
**Two-phase tool loading** (mode-agnostic `getActors()` vs mode-dependent
`getToolsForServerMode()`) is documented once in
[`../DEVELOPMENT.md`](../DEVELOPMENT.md) — read it before touching tool loading.
After any change
what was tried and why nothing else works. Do not implement it first.
## Reference Documentation
- [Span Attributes](https://develop.sentry.dev/sdk/telemetry/attributes.md)
- [Scopes (global, isolation, current)](https://develop.sentry.dev/sdk/telemetry/scopes.md)
## Skills
Task-specific
Size
Bundle size is critical. Be mindful of imports and tree-shaking.
- [Bundle size documentation](https://develop.sentry.dev/sdk/platform-specifics/javascript-sdks/bundle-size.md)
- [Browser tracing documentation](https://develop.sentry.dev/sdk/platform-specifics/javascript-sdks/browser-tracing.md)
## CDN Bundles
Use `/add-cdn-bundle` skill
shared_ptr` to avoid deciding ownership. When independent
shared owners are necessary, document why and break cycles with `std::weak_ptr`.
- **MUST** treat raw pointers and references as non-owning
argument. Use `mongo.SessionFromContext(ctx)` (v2 pattern) — not the old `mongo.SessionContext`.
- **BSON**: `bson.D` for ordered documents and commands. `bson.M` only when order genuinely doesn't matter. `bsoncore.Document` in hot paths (zero
Agent Development Guide - Strands Agents Monorepo
This document provides guidance for AI agents working in the Strands Agents monorepo. For human contributor guidelines, see [CONTRIBUTING.md](CONTRIBUTING.md).
This file is shared
Agent Development Guide - Python Package
This document provides context and conventions for AI coding assistants working on the Strands harness Python package (`harness-py/`). For human contributors, see [CONTRIBUTING.md](../CONTRIBUTING.md
Agent Development Guide - TypeScript Package
This document provides context and conventions for AI coding assistants working on the Strands harness TypeScript package (`harness-ts/`). For human contributors, see [CONTRIBUTING.md](../CONTRIBUTING.md
Agent Development Guide - Documentation Site
This document provides guidance for AI agents working on the Strands Agents documentation site (the `site/` directory). For human contributor guidelines, see [CONTRIBUTING.md](CONTRIBUTING.md).
## Purpose
Agent Development Guide - CLI Package
This document provides context and conventions for AI coding assistants working on the Strands CLI (`strands-cli/`). For human contributors, see [CONTRIBUTING.md](../CONTRIBUTING.md).
> **Cross-package
Agent Development Guide - Python SDK
This document provides context, patterns, and guidelines for AI coding assistants working on the Strands Python SDK (`strands-py/`). For human contributors, see [CONTRIBUTING.md](../CONTRIBUTING.md
Agent Development Guide - TypeScript SDK
This document provides guidance for AI agents working on the Strands TypeScript SDK (`strands-ts/`). For human contributor guidelines, see [CONTRIBUTING.md](../CONTRIBUTING.md).
> **Cross-SDK rules
remove instead. The experimental wt step promote is the sole branch-exchange operation.
## Documentation
Behavior changes require documentation updates. src/cli/mod.rs is primary for command help and generated command pages; docs/AGENTS.md
Benchmark guidelines
Bench groups and examples are documented at the top of their Rust files. Criterion takes a positional substring filter or --exact; it has no --skip. For example, cargo
Documentation site
The site uses Astro and Starlight. The project hook installs dependencies, fetches assets, and starts the dev server; wt list shows this worktree's URL. Site checks