Use this file as the Claude Code entry point for the OpenSandbox monorepo. Treat AGENTS.md as the canonical router and prefer the nearest local AGENTS.md for task-specific rules.
- Root rules:
AGENTS.md - Server changes:
server/AGENTS.md - SDK changes:
sdks/AGENTS.md - Spec changes:
specs/AGENTS.md - Kubernetes changes:
kubernetes/AGENTS.md - Areas without a local
AGENTS.md: read the nearestREADME.md,DEVELOPMENT.md, and relevant CI workflow.
server/: FastAPI lifecycle control plane, Docker/Kubernetes runtime integration, snapshot metadata, and server testscomponents/execd/: in-sandbox execution daemoncomponents/egress/: per-sandbox network egress policy sidecarcomponents/ingress/: ingress gateway and endpoint routingsdks/: sandbox, code-interpreter, and MCP SDKs plus generated clientsspecs/: public OpenAPI contracts and exampleskubernetes/: Kubernetes operator, CRDs, task-executor, Helm charts, and Kind e2e testscli/:osbcommand-line client and bundled CLI skillstests/: cross-language end-to-end SDK testsdocs/,examples/,sandboxes/,oseps/: documentation, samples, images/environments, and proposals
- Think before coding: state assumptions, surface ambiguity, and ask or push back when the request has conflicting interpretations.
- Simplicity first: implement the smallest solution that satisfies the request; avoid speculative features, one-off abstractions, and unnecessary configurability.
- Surgical changes: touch only files and lines needed for the task, match local style, and do not refactor or delete unrelated pre-existing code.
- Goal-driven execution: translate non-trivial work into verifiable success criteria, add or update focused tests when behavior changes, and loop until checks pass or blockers are clear.
Always:
- Keep changes focused on the user request.
- Keep spec, implementation, SDKs, docs, examples, config, CLI, and Kubernetes behavior aligned when user-visible behavior changes.
- Prefer additive, backward-compatible changes for public interfaces.
- Regenerate derived outputs when source-of-truth files change.
- Update tests when behavior changes or bugs are fixed.
- Prefer focused package/file checks before full-suite validation.
- Mention unrun or blocked verification in the final handoff.
Ask first:
- Breaking public API, SDK, config, protocol, CLI, CRD, annotation, label, Helm value, or deployment changes
- Intentional drift between a public contract and its implementation
- User-visible config or behavior changes without a clear migration story
Never:
- Edit generated output as the only fix.
- Mix unrelated component work into the same change.
- Refactor adjacent code just because it is nearby.
- Prioritize breaking changes in specs, SDK interfaces, config, CLI behavior, CRDs, annotations, labels, and protocols.
- Flag protocol changes that are unnecessary, inconsistent, or hard to implement.
- Flag source-of-truth boundary violations and missing downstream updates.
- Call out missing tests and compatibility risks explicitly.