AGENTS.md — Profile integration tests
This tree owns cross-package behavior of shipped `dsh` profiles. Start product scenarios through `apps/cli/src/bin.ts` with `--profile ` or the ` ` shorthand; a test-only Loader driver
local diagnostics remain beside their owners and use the `.perf.ts` suffix instead of joining `test:bench`.
- Organize benchmarks by measured user path, one directory per path. Do not mirror
widen that scope. A reference may be exhaustive only about its own subject. Testing mechanisms, fixtures, and harnesses belong at the lowest owning level; higher documents link there.
Classify every
implementation.
- Runtime binary selection has no environment-variable overrides. `NALR_REQUIRE_LANDLOCK` is a test-only enforcement requirement.
- There is no install-time compile fallback. Missing Landlock binaries probe unusable
global service store ([postmortem](../docs/postmortem/0001-acp-default-export-drops-inject.md)).
- **Product-visible plugins require a non-unit REAL-composition test.** Hand-built `ctx.plugin(...)` suites are insufficient. Boot test-only `cordis.yml` through the Loader and app/process
committed render position. Production code never calls the factory or `.create()` outside registration; tests do (that is the sanctioned zero-machinery path).
7. **inject returns plain data and callbacks** from
shipped compositions in CI. Experimental packages may depend on release packages and each other. Tests may use experimental packages through `devDependencies`; examples may load them explicitly.
- Experimental status does
shot prompt.
- Keep recurrence arithmetic pure. Production uses platform wall time and segmented timers; tests use explicit samples or restored fake timers
ownership gates use syntax-aware discovery, guard against an empty or narrowed corpus, and test every admitted/excluded form that changes their detection boundary.
Script specs run in forked workers beside
AGENTS.md — Recorded-session snapshots
This tree contains only tests whose committed session JSONL is replay input and expected persisted output. Keep non-session ARIA, geometry, generator, CLI, and unit expected
pnpm agent:typecheck`. They save full logs and return compact results.
For focused tests, use `pnpm agent:test` or `pnpm agent:playwright`.
Run each command with `--help` for its package
overridden sections) and the full config at `trace`. Keep new config shapes summarizable there.
- **Tests.** `../../../test/node/agentHostPromptRegistry.test.ts` covers the registry/wiring; `../../../test/node/toolInstructions.test.ts` covers the composition/gating. Add cases there, not new harnesses
Agent host unit tests
For tests in this area that touch the SessionDatabase, they MUST use an in-memory database, not a real database file on disk. Use `SessionDatabase.open(':memory
files, and the
`check-env-defaults-blank` pre-commit hook (plus the matching unit test in
`single-container/tests/test_runtime_config.py`, which CI runs) asserts that
the settings listed in `BLANK
here are the general steps you should take:
1. Write some end-to-end tests that assert your win conditions, if they don't already exist
- 1 happy path (more
AUTH_AZURE_AD_ISSUER=
```
Optional features:
```
OPENAI_API_KEY= # For AI-powered semantic search
```
## Testing
Currently no automated tests. When implementing:
- Place tests adjacent to source files or in `__tests
docstrings.
- `make check-repo` — `make typing` plus consistency checks.
- `RUN_SLOW=1 pytest ...` — many tests are marked slow and skipped in CI.
Run `make style` (or `make fix-repo
workflow defaults.
## Repository Gotchas
- Run backend commands through `uv run --project api `.
- Backend integration tests are CI-only and are not expected to run locally.
- Keep `docker/.env.example` limited to variables