type SpecOrPlanType = 'spec' | 'plan'; interface DeriveDefaultOutputPathArgs { /** The task type — only 'spec' and 'plan' derive a default output path. */ type: SpecOrPlanType; /** The task prompt (used to slugify the spec filename when self-naming). */ prompt: string; /** All `target.paths` entries in order; undefined/empty for inline. */ paths?: string[] | undefined; /** Today's date as YYYY-MM-DD. Injected so the derivation is pure/testable. */ today: string; } /** * Derive the default artifact output path for a spec or plan task when the caller * did not supply `outputPath`. * * One uniform rule keeps the whole SDLC chain on a single stem `-`: * inherit the stem from the first date-prefixed input, skipping undated scaffolds. * * - spec → `.mma/specs/.md` when a dated input is present (the * exploration); otherwise `.mma/specs/-.md` * (`` = first sentence of the prompt, kebab-cased, ≤60 chars; * falls back to `spec` when the prompt slugifies to empty) * - plan → `.mma/plans/.md` when a dated input is present (the spec); * otherwise `.mma/plans/-.md` from the first input, or * `null` when there is no input at all (inline — caller requires outputPath) * * Returns `null` when no default can be derived. The caller rejects a plan with * inline content and no `target.paths` with HTTP 400 before reaching derivation, so * the null branch is defensive. */ export declare function deriveDefaultOutputPath(args: DeriveDefaultOutputPathArgs): string | null; export {}; //# sourceMappingURL=derive-output-path.d.ts.map