with one click
scenario
// Create and update Counterfact scenario modules that seed or mutate context state through reusable scenario functions.
// Create and update Counterfact scenario modules that seed or mutate context state through reusable scenario functions.
Keep contributor changes aligned with repository test patterns, diagnostics, release/versioning workflow, documentation requirements, and compatibility.
Provide Counterfact repository orientation, high-level architecture, and the canonical command reference for install/build/test/lint workflows.
Update Counterfact CLI option behavior, config resolution, telemetry-safe startup handling, and bootstrap/runtime entrypoint flow.
Modify TypeScript generator internals, OpenAPI parsing/schema handling, and generated file writing behavior without regressing regeneration guarantees.
Safely change Counterfact runtime/server internals while preserving module boundaries, hot reload behavior, and backward compatibility guarantees.
Add and evolve Counterfact context classes in _.context.ts files, including required unit test coverage for context behavior.
| name | scenario |
| description | Create and update Counterfact scenario modules that seed or mutate context state through reusable scenario functions. |
| applyTo | ["**/scenarios/**/*.{ts,js}"] |
Create scenario files that seed and manipulate runtime data for Counterfact mocks.
scenarios/.scenarios/index.ts as the primary export surface.startup in scenarios/index.ts for automatic boot-time seeding.A scenario is a function receiving $ and using it to access context and route
helpers.
// Path is relative to the scenarios directory at the generated project root.
import type { Scenario } from "../types/_.context.js";
export const startup: Scenario = ($) => {
$.context.createThing({ name: "example" });
};
Typical $ usage in scenarios:
$.context for state changes$.route("/path") for calling routes from scenario setup flows