--- name: context description: > Add and evolve Counterfact context classes in _.context.ts files, including required unit test coverage for context behavior. applyTo: - "**/_.context.{ts,js}" - "**/routes/**/_.context.ts" - "**/*context.{ts,js}" - "packages/counterfact/test/**/*.test.ts" --- # Context Skill ## Purpose Define and maintain stateful business logic in `_.context.ts` files. ## What `_.context.ts` is for A `_.context.ts` file owns state and business rules for a route subtree. Handlers call methods on `$.context`; they should not implement core logic inline. ## Context class API expectations - Expose methods for domain actions (create/read/update/delete/query). - Keep state private where possible. - Return plain values that route handlers can map to HTTP responses. - Use clear method names that describe behavior (not transport concerns). ## Required rules - Any new or modified context method must include unit tests. - Test the Context class directly (no server boot required). - Do not populate dummy data directly in context changes. - Delegate dummy data creation/seeding to scenario modules under `scenarios/`. ## Step-by-step 1. Update or add methods in `routes/**/_.context.ts`. 2. Keep route files calling these methods via `$.context`. 3. Add/adjust unit tests for the changed context methods. 4. If sample data is needed, add/update a scenario function instead of hardcoding defaults in context constructors. ## References - https://counterfact.dev/docs/features/state.html