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
Steady8 mentions in 2 weeks
No other project uses it yet
268k3mo agoReviewMountCreate a free account to mount
delivery.
- Keep recurrence arithmetic pure. Production uses platform wall time and segmented timers; tests use explicit samples or restored fake timers
268k3mo agoReviewMountCreate a free account to mount
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
Steady8 mentions in 2 weeks
4 projects use a version of this
268k3mo agoReviewMountCreate a free account to mount
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
Steady8 mentions in 2 weeks
1 project uses a version of this
268k3mo agoReviewMountCreate a free account to mount
project.
Reply in short, plain sentences and state the result first.
Run the narrowest test that covers a change before reporting it as done.
Never commit, push, or delete branches
268k3mo agoReviewMountCreate a free account to mount
block because tab switching is unavailable; the [code-group adapter](.vitepress/code-groups.ts) and its [focused tests](tests/code-groups.spec.ts) own this behavior.
Long tables with at least ten data rows receive independent text
268k3mo agoReviewMountCreate a free account to mount
CHILD_ENV_MARKER` valued as the fenced Kanban board root, not a bare flag.
## Tests
Loop/phase tests go in `tests/agent/`; patch the binding the phase actually reads (siblings often
`from
No other project uses it yet
259k30d agoReviewMountCreate a free account to mount
refactors; extending before duplicating (3+ PRs in one category → an ABC +
orchestrator); behaviour-contract tests; E2E with real imports against a temp `HERMES_HOME` for
resolution, config, security
Steady3 mentions in 2 weeks
No other project uses it yet
259k30d agoReviewMountCreate a free account to mount
root, so a child working against a scratch `HERMES_HOME` keeps a writable board.
## Tests
`tests/cron/`, `tests/hermes_cli/test_kanban*.py`, `tests/tools/test_kanban*.py`. Schedule parsing
and catch-up windows are pure functions — test
259k30d agoReviewMountCreate a free account to mount
exists. A sealed native stream is a
regular message — `chat.update` works (live-verified).
Contract tests: `tests/gateway/test_stream_final_contract.py` (mutation-checked). Slack ground
truth: `chat.*Stream` speaks STANDARD markdown, not mrkdwn; `stopStream.markdown_text
259k30d agoReviewMountCreate a free account to mount
ROOT_KEYS`). For a new
key: `rg -n '" "' hermes_cli/config_defaults.py` AND `rg -n ' ' --glob '!tests' .` both hit,
and one invariant test sets it in a temp `config.yaml` and asserts
259k30d agoReviewMountCreate a free account to mount
process warning, documented replacement + migration note, ≥ 2 subsequent
minor releases before removal.
- Compat tests load **frozen plugins through the real discovery path** and assert outcomes — never
exact registry/catalog counts, source
259k30d agoReviewMountCreate a free account to mount
plugin
may move a transitive core package within core's declared ranges
(`tests/pm/test_workspace_build_inputs.py::test_plugin_can_move_compatible_transitive_but_not_exact_requirement`).
Plugin `python_dependencies` follow the plugin
Steady3 mentions in 2 weeks
No other project uses it yet
259k30d agoReviewMountCreate a free account to mount
every call — ship a helper script and reference it by skill-relative path.
7. **Tests at `tests/skills/test_ _skill.py`**, stdlib + pytest + `unittest.mock` only, no
live network. Run `scripts/run_tests.sh tests/skills/test_ _skill.py
Steady3 mentions in 2 weeks
No other project uses it yet
259k30d agoReviewMountCreate a free account to mount
tests/ — how Hermes tests are written and run
Applies on top of the root `AGENTS.md`. Read it before adding or changing any test.
## Running tests
**ALWAYS use `scripts/run_tests.sh`**, never bare
No other project uses it yet
259k30d agoReviewMountCreate a free account to mount
skills, terminal, todo,
tts, video, vision, web, yuanbao` (don't assert the list in tests). Per-platform enable/disable via
`hermes tools` (curses) or `tools. .enabled/disabled` in config.yaml. `browser_exec
259k30d agoReviewMountCreate a free account to mount
import; the dispatcher rejects unknown param keys
(`4000` + key path) and, under `HERMES_TEST_ISOLATION=1`, raises `ContractViolation` when a handler's
result or an emitted payload does not match
259k30d agoReviewMountCreate a free account to mount
surface; a new surface is a new `web_routers/ .py`, not a growing
`web_server.py`.
- Tests: Python in `tests/hermes_cli/` (routers, pty bridge); JS in the `web/` vitest suite. Python
tests must
259k30d agoReviewMountCreate a free account to mount