import type { StepScope } from "./context-scope.js"; import type { ModelBackend, WorkKind } from "./model-roster.js"; /** * The per-work-kind instructions, as runtime values — configuration like * RepoLayout and CommandCatalog. The orchestrator resolves each step's * prompt from this catalog and PASSES IT INTO the role method as part of * its WorkOrder: a role implementation launches Claude Code with exactly * this text (plus the step's concrete inputs) and cannot forget its * instructions, because they arrive as an argument. * * Prompts teach by example, not only by description: `{example}/...` * references a file or directory under the EXAMPLE PROJECT. The catalog * text is static — written before any run exists — so it carries the * placeholder; workOrderFor substitutes it when resolving the order, and * WorkOrder.prompt arrives at the role FULLY RESOLVED to absolute paths. * Every referenced file is a worked, correct instance of the pattern the * step must produce. */ export type PromptCatalog = Record; /** * What the orchestrator hands to every model-performing role method: * which kind of work this is, the instructions for it, and the model * backend to run it on (resolved from the policy and roster). */ export interface WorkOrder { kind: WorkKind; prompt: string; model: ModelBackend; /** * Absolute path to the example project — a repository with the same * architecture where every pattern this step must produce already * exists, done right. The prompt above already has it substituted in; * this field lets the step explore the example project beyond the * cited files. For the boilerplate itself this is the repo's own root. */ examplePath: string; /** * The narrowest slice of the repository this kind of work needs (see * context-scope.ts) — resolved from the layout by workOrderFor and * appended to the session prompt by the leaf executor. Client-bound * kinds carry the all-clients form here; a role that knows its * platform narrows it with contextScopeFor(layout, kind, platform). */ scope?: StepScope; } export declare const DEFAULT_PROMPTS: PromptCatalog;