agentleFS
kontouraikontourai/station/tests/AGENTS.md

station / tests

AGENTS.md3 starsChanged 12 days agoApache-2.0View on GitHub

Tests prove observable contracts, not implementation accidents. Read the matching source scope as well as this file. Keep fixtures hermetic; tests that start child processes or own shared output require the declared resource classification. Testing guidance owns lanes and escalation. For fixture and cleanup work, follow Fixture fidelity and test effectiveness. Use helpers/connection-fixtures.ts for engine identity and helpers/runtime-conversation-fixture.ts for explicit conversation-open authority. Route unknown mock requests through rejectUnexpectedFixtureRequest and import the audited test from helpers/fixture-audit.ts; never answer an unmodeled API…

Files
AGENTS.md

Test scope

Tests prove observable contracts, not implementation accidents. Read the matching source scope as well as this file. Keep fixtures hermetic; tests that start child processes or own shared output require the declared resource classification. Testing guidance owns lanes and escalation.

For fixture and cleanup work, follow Fixture fidelity and test effectiveness. Use helpers/connection-fixtures.ts for engine identity and helpers/runtime-conversation-fixture.ts for explicit conversation-open authority. Route unknown mock requests through rejectUnexpectedFixtureRequest and import the audited test from helpers/fixture-audit.ts; never answer an unmodeled API read with an empty success. Use ordinary Playwright actions for user journeys. Forced clicks, synthetic click dispatch, removing disabled/inert, and visibility-based early success hide the behavior under test. Domain-event injection (provider SSE, clipboard payload tests) is a separate, explicitly named fixture seam.

Run npm run typecheck:e2e and npm run test:fixtures:check before the focused browser journey; a successful UI bundle build does not typecheck browser fixtures. A source guard's PASS does not qualify legacy baseline sites or replace the runtime journey. Use npm run test:journeys:profile for raw CPU/allocation profiles and npm run test:mutation:smoke to prove the curated critical assertions fail under a known defect.

For unsaved-navigation tests, exercise the real navigation store and observe the committed URL before and after confirmation. A navigation spy alone cannot prove the registered guard ran. Use the runtime destination registry for route coverage instead of extracting literal strings; routes may be computed. Keep browser action deadlines separate from long provider/reference test budgets, and wait for actual animation settlement before comparing geometry.

Conversation fixtures must advance the current execution consistently across dispatch receipts, conversation-open responses, and history windows. Copied fork events retain their source provenance; they do not make the parent the child's current execution. Reader-transition tests must include the disabled interval before a new conversation starts its first execution, and assert the destination chat's stored identity and pending choice as well as the rendered transcript. For shared dialogs, assert dialog semantics and user interaction rather than DOM ancestry through a portal.

Build example plugins through buildExamplePlugin in helpers/install-plugin.ts. The private packages/cli/src/cli.ts module is not an executable entry point; process fixtures use the supported source bootstrap.

Launcher bootstrap fragments are single-use. For a fresh browser context, use pairBrowser in live/helpers/station-instance.mjs to mint and exchange a fresh fragment, and await authenticated boot. An absent access-gate element before initialization is not authentication proof. Stateful pairing journeys must own their Station instance when shared-suite traffic would consume its real request quota; never bypass or raise security limits for fixture convenience.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.