your plan step by step
- Write clean, idiomatic code that matches existing patterns
- Run tests after each significant change
- If tests fail, debug and fix before moving on
- Update your
skills, sandbox bootstrap, and slash-command surface.
For monorepo-wide conventions (commit titles, lint, testing, docs, CI, benchmarks), see the root `AGENTS.md`. For a high-level map of the package
aggregate-only`.
- `pytest_reporter` rewrites pytest's session exit status to `0` even when
tests fail, so `pytest_returncode` is not a reliable failure signal —
use `counts.failed.mean` instead.
Per-trial
name. Each partner package is independently versioned and owns its environment, `pyproject.toml`, `Makefile`, and tests.
## Adding a partner package
Wire a new partner into all relevant repository surfaces:
- Area options
real credentials, customer data, private prompts or responses, tool payloads, or recordings in code, tests, snapshots, logs, documentation, or shared artifacts. Use approved credential injection only for explicitly authorized live
Build and zip the extension package
npm run typecheck # Typecheck all packages
npm run test # Run unit tests across all workspaces
npm run lint # ESLint
```
## Architecture
### Monorepo Structure
Source-first
JavaScript Test Code Conventions
### Assertion Library
ALWAYS use our own assertion library that is defined at `src/mongo/shell/assert.js` and
automatically loaded into the global scope before running each test.
ALWAYS wrap
color, spacing, radius or component pattern may be invented in feature code.
- **A test has to be able to fail for a reason a reviewer would care about**: see [When
types`
Do not manually edit shared/remote-types.ts, instead edit crates/remote/src/bin/remote-generate-types.rs (see crates/remote/AGENTS.md for details).
## Build, Test, and Development Commands
- Install: `pnpm i`
- Run dev (web app + backend with ports auto-assigned
realistic data instead of placeholder values
- Include expected outputs and results for verification
- Test all code examples thoroughly before publishing
- Specify language and include filename when relevant
- Add explanatory comments
package management)
## Development Setup
```bash
uv sync --locked # Base dependencies
uv sync --locked --extra test --extra dev # Test + dev tools
uv sync --locked --extra all # Everything
git lfs install
Issue Tracking** - How to use bd for work management
- **Development Guidelines** - Code standards and testing
- **Project Scope** - Read [engdocs/PROJECT_CHARTER.md](engdocs/PROJECT_CHARTER.md) before adding new feature surface area
- **Visual Design System** - Status
generated release composition manifest.
## Validation
Run the fast host, patch-fixture, script, and protocol tests before review. Release candidates additionally require a full Chromium build, generated Chromium third-party notices
bash
./scripts/verify-cmux-tui-hosted.sh --filter
./scripts/verify-cmux-tui-hosted.sh --full
```
Use `--filter` during focused development. It accepts one Rust test-name substring and verifies that the filter selects at least one test on hosted Linux
wired into a Linux guard lane. Do not put new
iOS-only Node tests under `scripts/lib/`: the main CI change router treats that
tree as macOS-relevant, which can queue
java 21-tem`. If SDKMAN is not installed, see https://sdkman.io/install.
- **Test**: `bun test` from `packages/opencode/` (NOT from root -- root blocks tests)
- **Single test**: `bun test ./test/tool/tool-define.test.ts` from `packages/opencode
recovery together before editing.
- Follow `docs/logging.md` for logging conventions and required issue/session context fields.
## Tests and Validation
Run targeted tests while iterating, then run full gates before handoff.
- Prefer narrow