openplanr 1.3.0 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/README.md +23 -0
  2. package/dist/ai/prompts/prompt-builder.d.ts +14 -0
  3. package/dist/ai/prompts/prompt-builder.d.ts.map +1 -1
  4. package/dist/ai/prompts/prompt-builder.js +32 -1
  5. package/dist/ai/prompts/prompt-builder.js.map +1 -1
  6. package/dist/ai/prompts/system-prompts.d.ts +1 -0
  7. package/dist/ai/prompts/system-prompts.d.ts.map +1 -1
  8. package/dist/ai/prompts/system-prompts.js +110 -0
  9. package/dist/ai/prompts/system-prompts.js.map +1 -1
  10. package/dist/ai/schemas/ai-response-schemas.d.ts +62 -0
  11. package/dist/ai/schemas/ai-response-schemas.d.ts.map +1 -1
  12. package/dist/ai/schemas/ai-response-schemas.js +50 -0
  13. package/dist/ai/schemas/ai-response-schemas.js.map +1 -1
  14. package/dist/cli/commands/spec.d.ts +28 -0
  15. package/dist/cli/commands/spec.d.ts.map +1 -0
  16. package/dist/cli/commands/spec.js +542 -0
  17. package/dist/cli/commands/spec.js.map +1 -0
  18. package/dist/cli/index.js +2 -0
  19. package/dist/cli/index.js.map +1 -1
  20. package/dist/models/schema.d.ts +1 -0
  21. package/dist/models/schema.d.ts.map +1 -1
  22. package/dist/models/schema.js +1 -0
  23. package/dist/models/schema.js.map +1 -1
  24. package/dist/models/types.d.ts +9 -0
  25. package/dist/models/types.d.ts.map +1 -1
  26. package/dist/services/config-service.d.ts.map +1 -1
  27. package/dist/services/config-service.js +1 -0
  28. package/dist/services/config-service.js.map +1 -1
  29. package/dist/services/spec-service.d.ts +292 -0
  30. package/dist/services/spec-service.d.ts.map +1 -0
  31. package/dist/services/spec-service.js +805 -0
  32. package/dist/services/spec-service.js.map +1 -0
  33. package/dist/templates/spec/spec-shaped.md.hbs +89 -0
  34. package/dist/templates/spec/spec.md.hbs +68 -0
  35. package/dist/templates/spec/story.md.hbs +51 -0
  36. package/dist/templates/spec/task.md.hbs +98 -0
  37. package/dist/utils/constants.d.ts +18 -0
  38. package/dist/utils/constants.d.ts.map +1 -1
  39. package/dist/utils/constants.js +25 -0
  40. package/dist/utils/constants.js.map +1 -1
  41. package/package.json +1 -1
package/README.md CHANGED
@@ -144,6 +144,29 @@ planr rules generate --dry-run # preview
144
144
  | `planr template save TASK-001 --name my-pattern` | Save existing tasks as template |
145
145
  | `planr template show rest-endpoint` | Preview template contents |
146
146
 
147
+ ### Spec-Driven Mode (planning *for* AI agents)
148
+
149
+ Third planning posture alongside agile + QT. Specs decompose into User Stories
150
+ and Tasks with the **same artifact contract as the
151
+ [openplanr-pipeline](https://github.com/openplanr/openplanr-pipeline)** Claude
152
+ Code plugin — file Create/Modify/Preserve lists, Type=UI|Tech, agent
153
+ assignment, DoD with build/test commands. Plan in `planr`, ship in the pipeline.
154
+ See [`docs/proposals/spec-driven-mode.md`](docs/proposals/spec-driven-mode.md).
155
+
156
+ | Command | Description |
157
+ | ------------------------------------------------------- | ------------------------------------------------- |
158
+ | `planr spec init` | Activate spec-driven mode (creates `.planr/specs/`) |
159
+ | `planr spec create "Auth flow"` | Create a self-contained `SPEC-NNN-{slug}/` directory |
160
+ | `planr spec shape <SPEC-id>` | Interactive 4-question authoring (Context, Functional Reqs, Business Rules, Acceptance) |
161
+ | `planr spec decompose <SPEC-id>` | AI-driven decomposition into User Stories + Tasks (matches openplanr-pipeline schema) |
162
+ | `planr spec sync [<SPEC-id>]` | Validate integrity (orphaned tasks, missing `specId`, schema drift); auto-fixes safe issues |
163
+ | `planr spec list` | List all specs with status + decomposition counts |
164
+ | `planr spec show <SPEC-id>` | Print a spec + its US/Task tree |
165
+ | `planr spec status [<SPEC-id>]` | Decomposition state across one/all specs |
166
+ | `planr spec destroy <SPEC-id>` | Remove a spec entirely (clean `rm -rf`) |
167
+ | `planr spec attach-design <SPEC-id> --files <png>...` | Attach UI mockups for the pipeline's designer-agent |
168
+ | `planr spec promote <SPEC-id>` | Validate + print the `/openplanr-pipeline:plan {slug}` handoff |
169
+
147
170
  ### Planning Tools
148
171
 
149
172
  | Command | Description |
@@ -117,4 +117,18 @@ export interface RevisePromptContext {
117
117
  * the agent can distinguish "checked and empty" from "not provided."
118
118
  */
119
119
  export declare function buildRevisePrompt(ctx: RevisePromptContext): AIMessage[];
120
+ /**
121
+ * Build the prompt for `planr spec decompose <SPEC-id>`.
122
+ *
123
+ * Produces a 2-message conversation that asks the AI to decompose a spec
124
+ * body into N User Stories with 1-2 Tasks each, matching the
125
+ * openplanr-pipeline plugin's specification-agent contract.
126
+ *
127
+ * @param specBody Raw spec markdown (PO-authored, untrusted — wrapped via wrapUserInput)
128
+ * @param hasPNGs If true, instructs the AI to emit 2 tasks per US (UI + Tech)
129
+ * @param stackInfo Optional tech stack hints from input/tech/stack.md (untrusted, wrapped)
130
+ * @param codebaseContext Optional preformatted codebase context (system-generated, NOT wrapped)
131
+ * @param maxStories Soft cap on story count (1-8); included as a directive in the user prompt
132
+ */
133
+ export declare function buildSpecDecomposePrompt(specBody: string, hasPNGs: boolean, stackInfo?: string, codebaseContext?: string, maxStories?: number): AIMessage[];
120
134
  //# sourceMappingURL=prompt-builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-builder.d.ts","sourceRoot":"","sources":["../../../src/ai/prompts/prompt-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-builder.d.ts","sourceRoot":"","sources":["../../../src/ai/prompts/prompt-builder.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@
8
8
  * Existing sibling titles are injected to prevent the AI from
9
9
  * generating duplicate artifacts.
10
10
  */
11
- import { BACKLOG_PRIORITIZE_SYSTEM_PROMPT, EPIC_SYSTEM_PROMPT, ESTIMATE_SYSTEM_PROMPT, FEATURES_SYSTEM_PROMPT, QUICK_TASKS_SYSTEM_PROMPT, REFINE_SYSTEM_PROMPT, REVISE_SYSTEM_PROMPT, SPRINT_AUTO_SELECT_SYSTEM_PROMPT, STORIES_SYSTEM_PROMPT, TASKS_SYSTEM_PROMPT, } from './system-prompts.js';
11
+ import { BACKLOG_PRIORITIZE_SYSTEM_PROMPT, EPIC_SYSTEM_PROMPT, ESTIMATE_SYSTEM_PROMPT, FEATURES_SYSTEM_PROMPT, QUICK_TASKS_SYSTEM_PROMPT, REFINE_SYSTEM_PROMPT, REVISE_SYSTEM_PROMPT, SPEC_DECOMPOSE_SYSTEM_PROMPT, SPRINT_AUTO_SELECT_SYSTEM_PROMPT, STORIES_SYSTEM_PROMPT, TASKS_SYSTEM_PROMPT, } from './system-prompts.js';
12
12
  /** Input exceeding this many lines is treated as a detailed document (PRD, spec, etc.). */
13
13
  const DETAILED_INPUT_LINE_THRESHOLD = 5;
14
14
  /**
@@ -261,4 +261,35 @@ export function buildRevisePrompt(ctx) {
261
261
  { role: 'user', content: sections.join('\n\n') },
262
262
  ];
263
263
  }
264
+ /**
265
+ * Build the prompt for `planr spec decompose <SPEC-id>`.
266
+ *
267
+ * Produces a 2-message conversation that asks the AI to decompose a spec
268
+ * body into N User Stories with 1-2 Tasks each, matching the
269
+ * openplanr-pipeline plugin's specification-agent contract.
270
+ *
271
+ * @param specBody Raw spec markdown (PO-authored, untrusted — wrapped via wrapUserInput)
272
+ * @param hasPNGs If true, instructs the AI to emit 2 tasks per US (UI + Tech)
273
+ * @param stackInfo Optional tech stack hints from input/tech/stack.md (untrusted, wrapped)
274
+ * @param codebaseContext Optional preformatted codebase context (system-generated, NOT wrapped)
275
+ * @param maxStories Soft cap on story count (1-8); included as a directive in the user prompt
276
+ */
277
+ export function buildSpecDecomposePrompt(specBody, hasPNGs, stackInfo, codebaseContext, maxStories) {
278
+ const sections = [];
279
+ sections.push(`Decompose the following Detailed Functional Spec into User Stories and Tasks.\n\n${hasPNGs
280
+ ? 'PNG mockups ARE attached to this spec — emit **2 tasks per US** (task-1 = UI, task-2 = Tech).'
281
+ : 'No PNG mockups attached — emit **1 task per US** (Type=Tech) per RULE 1.'}${maxStories ? `\n\nCap your output at ${maxStories} stories.` : ''}`);
282
+ sections.push(`--- Spec body ---\n${wrapUserInput(specBody)}`);
283
+ if (stackInfo?.trim()) {
284
+ sections.push(`--- Tech Stack (from input/tech/stack.md) ---\n${wrapUserInput(stackInfo)}`);
285
+ }
286
+ if (codebaseContext?.trim()) {
287
+ // Codebase context is system-generated (not user-supplied), so it's NOT wrapped.
288
+ sections.push(`--- Codebase Context ---\n${codebaseContext}`);
289
+ }
290
+ return [
291
+ { role: 'system', content: SPEC_DECOMPOSE_SYSTEM_PROMPT },
292
+ { role: 'user', content: sections.join('\n\n') },
293
+ ];
294
+ }
264
295
  //# sourceMappingURL=prompt-builder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-builder.js","sourceRoot":"","sources":["../../../src/ai/prompts/prompt-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-builder.js","sourceRoot":"","sources":["../../../src/ai/prompts/prompt-builder.ts"],"names":[],"mappings":"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"}
@@ -37,4 +37,5 @@ export declare const REFINE_SYSTEM_PROMPT = "You are an expert agile planning co
37
37
  * Output conforms to aiReviseDecisionSchema, not free-form prose.
38
38
  */
39
39
  export declare const REVISE_SYSTEM_PROMPT = "You are an expert agile planning consultant with deep experience in software development, product management, and technical architecture. You help teams create clear, actionable, and well-structured planning artifacts.\n\nYour task is to actively revise an existing agile artifact so it matches repo reality. You are an auditor *and* editor: you detect drift between the artifact and the code, parent chain, siblings, and declared sources \u2014 and you rewrite the artifact to eliminate that drift.\n\n## Inputs you will receive (labeled sections)\n\n- [TARGET_ARTIFACT] \u2014 the artifact to revise, full markdown with frontmatter\n- [PARENT_CHAIN] \u2014 parent artifacts (epic \u2192 feature \u2192 story), top-down\n- [SIBLINGS] \u2014 other artifacts at the same hierarchy level within the scope\n- [CODEBASE_CONTEXT] \u2014 tech stack, folder tree, architecture files, and keyword-matched source snippets\n- [DECLARED_SOURCES] \u2014 PRDs, design references, ADRs, and rule files configured in .planr/revise.yaml\n- [TEMPLATE_STRUCTURE] \u2014 canonical ## section names for the target artifact type (from the project template)\n- [WRITABLE_SCOPE] \u2014 which parts of the target you may modify: \"prose\" | \"references\" | \"paths\" | \"all\"\n\n## Your decision (return exactly one)\n\n- \"revise\" \u2014 you detected drift and produced a corrected full-artifact markdown. REQUIRES non-empty \"revisedMarkdown\" AND at least one \"evidence\" entry citing what proved the drift.\n- \"skip\" \u2014 no drift detected, the artifact already matches reality. MUST have no \"revisedMarkdown\" and no \"ambiguous\" entries.\n- \"flag\" \u2014 you detected drift but cannot resolve it without a human decision (intent conflict, contradictory sources). REQUIRES at least one \"ambiguous\" entry describing the conflict.\n\n## CRITICAL RULE: Facts vs. intent\n\n- **Facts win from code.** Paths, file existence, stack names, actual symbol names, implemented behavior, concrete cross-references \u2192 rewrite these to match the codebase and siblings without hesitation.\n- **Intent stays from the plan.** What the feature is *supposed to do*, the user value, the product decision, the @v1 / @v2 split \u2192 do NOT rewrite. If code contradicts stated intent, that is drift-in-the-code, not drift-in-the-plan; emit a \"flag\" decision with an \"ambiguous\" entry, never a \"revise\".\n\n## CRITICAL RULE: Template structure conformance\n\n- **Do NOT add sections outside the [TEMPLATE_STRUCTURE] list.** Epics, features, stories, and tasks each have a canonical section set \u2014 adding a section from one level to an artifact at another level (e.g., putting a \"## Relevant Files\" section on an epic, which is a task-level convention) is *scope creep*, not drift repair.\n- **Sections already present in the TARGET_ARTIFACT that fall outside the list are user-maintained customs** \u2014 preserve them byte-for-byte unless the user's evidence explicitly asks you to remove them.\n- If codebase evidence seems to motivate a new section, emit a \"flag\" decision with an ambiguous entry describing the opportunity. Do not add the section yourself.\n- When [TEMPLATE_STRUCTURE] is absent, preserve the TARGET_ARTIFACT's existing section structure and only rewrite within it.\n\n## Evidence taxonomy (every citation MUST use one of these types)\n\n- \"file_exists\" \u2014 ref is a relative file path that appears in CODEBASE_CONTEXT\n- \"file_absent\" \u2014 ref is a relative file path NOT in CODEBASE_CONTEXT (and not mentioned in folder tree / source inventory)\n- \"grep_match\" \u2014 ref is a symbol / literal found in CODEBASE_CONTEXT; supply the matching line as \"quote\"\n- \"sibling_artifact\" \u2014 ref is another artifact id from SIBLINGS or PARENT_CHAIN; supply the quoted excerpt as \"quote\"\n- \"source_quote\" \u2014 ref is a DECLARED_SOURCES path or URL; supply the quoted excerpt as \"quote\"\n- \"pattern_rule\" \u2014 ref is a pattern rule id from CODEBASE_CONTEXT's architectural patterns\n\n## Hallucination guardrails (load-bearing)\n\n- NEVER cite a file path, symbol, artifact id, or quote unless it appears verbatim in one of the provided sections.\n- The post-flight verifier will drop any change whose evidence cannot be confirmed against the actual repo. Inventing evidence wastes the run.\n- When unsure whether a change is supported, prefer \"flag\" with an \"ambiguous\" entry over \"revise\" with weak evidence.\n\n## Writable scope\n\n- \"prose\" \u2014 you may rewrite descriptions, requirements, risks, success criteria, notes. You may NOT touch parent/child link lists, Relevant Files sections, or frontmatter.\n- \"references\" \u2014 adds permission to rewrite cross-reference sections (## Features / ## User Stories / ## Tasks) when a link points at a non-existent artifact or is missing a real one.\n- \"paths\" \u2014 adds permission to rewrite Relevant Files sections in task artifacts when cited paths do not exist or real paths are missing.\n- \"all\" \u2014 everything above, plus frontmatter fields that are non-identity (updatedAt, owner). Never modify id, createdAt, or parent-id fields (epicId, featureId, storyId).\n\nIf WRITABLE_SCOPE excludes a category, do NOT emit revisions that touch it \u2014 flag instead.\n\n## Output contract\n\nYou MUST respond with a valid JSON object matching this shape exactly:\n\n{\n \"artifactId\": \"<the id from TARGET_ARTIFACT frontmatter>\",\n \"action\": \"revise\" | \"skip\" | \"flag\",\n \"revisedMarkdown\": \"<full artifact markdown, with --- frontmatter, when action === 'revise'; omit otherwise>\",\n \"rationale\": \"<one paragraph: what drift, why you made this call>\",\n \"evidence\": [{ \"type\": \"<one of six>\", \"ref\": \"<path|id|rule-id>\", \"quote\": \"<optional verbatim snippet>\" }],\n \"ambiguous\": [{ \"section\": \"<section name>\", \"reason\": \"<why human decision needed>\" }]\n}\n\nRules for revisedMarkdown:\n- It MUST be a plain markdown string, NOT a JSON object or fenced code block.\n- It MUST preserve YAML frontmatter between --- delimiters.\n- It MUST preserve id, createdAt, and parent-id frontmatter fields (epicId/featureId/storyId) byte-for-byte.\n- The structure (## sections) MAY change only within WRITABLE_SCOPE.\n\nRespond with JSON only, no markdown or explanation outside the JSON.";
40
+ export declare const SPEC_DECOMPOSE_SYSTEM_PROMPT = "You are an expert agile planning consultant with deep experience in software development, product management, and technical architecture. You help teams create clear, actionable, and well-structured planning artifacts.\n\n## CRITICAL: Scope Discipline \u2014 Do NOT Over-Engineer\n\n- Generate ONLY what the input explicitly describes. Do NOT invent features, services, middleware, abstractions, or capabilities the user did not ask for.\n- A 3-line fix should NOT become a 40-task plan. Scale output to match input complexity.\n- Prefer modifying existing files over creating new ones. Do NOT create new services, utilities, or abstraction layers unless the requirements explicitly demand them.\n- Fewer well-scoped items are ALWAYS better than many vague ones. If you can cover the requirements in 3 tasks, do not generate 10.\n- Do NOT pad output with boilerplate like \"create documentation\", \"add logging\", \"set up monitoring\", or \"establish coding standards\" unless the user specifically requested those things.\n- Do NOT treat every concern as needing its own service/module. A helper function in an existing file is usually the right answer.\n- Do NOT enumerate every file as a separate subtask. Batch similar work into one subtask (e.g., \"Add JSDoc to all exported service functions\" NOT one subtask per file; \"Add error hints to all command handlers\" NOT one subtask per command).\n\n## Your task: spec-driven decomposition for AI agent execution\n\nYou receive a Detailed Functional Spec (DFS) and decompose it into a tree of\nUser Stories and Tasks designed for **AI coding agents to execute directly**\n(not for human estimation or sprint tracking). The contract is richer than\ntypical agile tasks:\n\n- Every task names **specific files** to Create / Modify / Preserve\n- Every task is classified as Type **UI** or **Tech**\n- Every task is assigned to an **agent** (default subagent names from the\n openplanr-pipeline plugin: `frontend-agent` for UI, `backend-agent` for Tech)\n- Every task has concrete **objective**, **technicalSpec**, and **testRequirements**\n\n## Hard rules (do not violate)\n\nRULE 1 \u2014 Task count per User Story:\n IF the spec includes UI mockups (ui_files non-empty in spec frontmatter):\n tasks_per_us = 2 (task-1 = UI, task-2 = Tech)\n ELSE:\n tasks_per_us = 1 (single Tech task)\n NEVER emit more than 2 tasks per User Story.\n\nRULE 2 \u2014 Story count:\n Decompose into **1-6 User Stories** (hard cap 8).\n Each US must map to one coherent user-facing capability.\n Avoid micro-US (too granular) and mega-US (too broad).\n\nRULE 3 \u2014 File specificity:\n Every task MUST name specific file paths under `filesCreate` / `filesModify` / `filesPreserve`.\n \u274C \"Create a service\" \u2014 INSUFFICIENT\n \u2705 \"src/features/{feature}/services/{Feature}Service.ts\" \u2014 REQUIRED\n Use the codebase context provided to reference REAL files when possible.\n Use the stack/framework conventions visible in the codebase context to\n generate correct paths (e.g., NestJS: `src/features/{feature}/{feature}.service.ts`;\n Next.js App Router: `src/app/{route}/page.tsx`).\n\nRULE 4 \u2014 Stack alignment:\n All file paths, naming conventions, and technology references MUST match\n the project's actual stack as inferred from the codebase context. Do NOT\n invent file paths that contradict the existing project layout.\n\nRULE 5 \u2014 Agent assignment:\n task.type === 'UI' \u2192 task.agent = 'frontend-agent'\n task.type === 'Tech' \u2192 task.agent = 'backend-agent'\n (Override only if the user's spec explicitly names a different agent.)\n\nRULE 6 \u2014 Acceptance criteria:\n Every User Story MUST have at least 1 acceptance criterion.\n Use Given/When/Then format when natural; plain assertions otherwise.\n\n## Codebase awareness\n\nThe user prompt may include a `Codebase Context` section showing the\ndetected tech stack, folder tree, and related files. Use this to:\n- Pick the right file paths and conventions\n- Reference existing files in `filesModify` when extending behavior\n- List existing files in `filesPreserve` when the task should NOT touch them\n\n## Stack hints\n\nIf the user prompt includes a `Tech Stack` section (from `input/tech/stack.md`),\nprefer those framework/ORM choices over codebase guesses.\n\n## Out-of-scope is sacred\n\nIf the spec lists \"Out of Scope\" items, do NOT generate stories or tasks for them.\nThe Out of Scope list is the user's explicit boundary.\n\n## Output contract\n\nRespond with a valid JSON object matching this shape:\n\n{\n \"stories\": [\n {\n \"title\": \"string (short, action-oriented)\",\n \"roleAction\": \"string (\\\"As a {role}, I want to {action}\\\" \u2014 first half of US sentence)\",\n \"benefit\": \"string (\\\"so that {outcome}\\\" \u2014 second half)\",\n \"scope\": \"string (2-4 sentences: what's IN, what's explicitly OUT for this US)\",\n \"acceptanceCriteria\": [\"string\", ...],\n \"tasks\": [\n {\n \"title\": \"string (task title)\",\n \"type\": \"UI\" | \"Tech\",\n \"agent\": \"frontend-agent\" | \"backend-agent\" | \"<other>\",\n \"filesCreate\": [\"src/path/to/new-file.ext\", ...],\n \"filesModify\": [\"src/path/to/existing-file.ext\", ...],\n \"filesPreserve\": [\"src/path/to/protected-file.ext\", ...],\n \"objective\": \"string (one paragraph)\",\n \"technicalSpec\": \"string (multi-paragraph, optional)\",\n \"testRequirements\": \"string (multi-paragraph, optional)\"\n }\n ]\n }\n ],\n \"decompositionNotes\": \"string (optional notes about decomposition decisions, edge cases, ambiguities)\"\n}\n\nRespond with JSON only, no markdown or explanation outside the JSON.";
40
41
  //# sourceMappingURL=system-prompts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"system-prompts.d.ts","sourceRoot":"","sources":["../../../src/ai/prompts/system-prompts.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAmBH,eAAO,MAAM,kBAAkB,47CAkBqB,CAAC;AAErD,eAAO,MAAM,sBAAsB,2pFAyBiB,CAAC;AAErD,eAAO,MAAM,qBAAqB,m3HA4BkB,CAAC;AAErD,eAAO,MAAM,mBAAmB,ktKAgDoB,CAAC;AAErD,eAAO,MAAM,yBAAyB,+8JAgDc,CAAC;AAErD,eAAO,MAAM,sBAAsB,shFAyCiB,CAAC;AAErD,eAAO,MAAM,gCAAgC,42CAsBO,CAAC;AAErD,eAAO,MAAM,gCAAgC,4iCAgBO,CAAC;AAErD,eAAO,MAAM,oBAAoB,8jEA2BmB,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,oBAAoB,gsMA2EoC,CAAC"}
1
+ {"version":3,"file":"system-prompts.d.ts","sourceRoot":"","sources":["../../../src/ai/prompts/system-prompts.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAmBH,eAAO,MAAM,kBAAkB,47CAkBqB,CAAC;AAErD,eAAO,MAAM,sBAAsB,2pFAyBiB,CAAC;AAErD,eAAO,MAAM,qBAAqB,m3HA4BkB,CAAC;AAErD,eAAO,MAAM,mBAAmB,ktKAgDoB,CAAC;AAErD,eAAO,MAAM,yBAAyB,+8JAgDc,CAAC;AAErD,eAAO,MAAM,sBAAsB,shFAyCiB,CAAC;AAErD,eAAO,MAAM,gCAAgC,42CAsBO,CAAC;AAErD,eAAO,MAAM,gCAAgC,4iCAgBO,CAAC;AAErD,eAAO,MAAM,oBAAoB,8jEA2BmB,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,oBAAoB,gsMA2EoC,CAAC;AAWtE,eAAO,MAAM,4BAA4B,wrLAqG4B,CAAC"}
@@ -399,5 +399,115 @@ Rules for revisedMarkdown:
399
399
  - It MUST preserve id, createdAt, and parent-id frontmatter fields (epicId/featureId/storyId) byte-for-byte.
400
400
  - The structure (## sections) MAY change only within WRITABLE_SCOPE.
401
401
 
402
+ Respond with JSON only, no markdown or explanation outside the JSON.`;
403
+ // ---------------------------------------------------------------------------
404
+ // Spec-driven decomposition (planr spec decompose)
405
+ //
406
+ // Ports the openplanr-pipeline plugin's specification-agent prompt into a
407
+ // planr-CLI execution context (no Claude Code Task tool — direct provider
408
+ // call via ai-service.ts). Output is validated against
409
+ // aiSpecDecomposeResponseSchema. See docs/proposals/spec-driven-mode.md.
410
+ // ---------------------------------------------------------------------------
411
+ export const SPEC_DECOMPOSE_SYSTEM_PROMPT = `${BASE_PERSONA}
412
+ ${SCOPE_DISCIPLINE}
413
+
414
+ ## Your task: spec-driven decomposition for AI agent execution
415
+
416
+ You receive a Detailed Functional Spec (DFS) and decompose it into a tree of
417
+ User Stories and Tasks designed for **AI coding agents to execute directly**
418
+ (not for human estimation or sprint tracking). The contract is richer than
419
+ typical agile tasks:
420
+
421
+ - Every task names **specific files** to Create / Modify / Preserve
422
+ - Every task is classified as Type **UI** or **Tech**
423
+ - Every task is assigned to an **agent** (default subagent names from the
424
+ openplanr-pipeline plugin: \`frontend-agent\` for UI, \`backend-agent\` for Tech)
425
+ - Every task has concrete **objective**, **technicalSpec**, and **testRequirements**
426
+
427
+ ## Hard rules (do not violate)
428
+
429
+ RULE 1 — Task count per User Story:
430
+ IF the spec includes UI mockups (ui_files non-empty in spec frontmatter):
431
+ tasks_per_us = 2 (task-1 = UI, task-2 = Tech)
432
+ ELSE:
433
+ tasks_per_us = 1 (single Tech task)
434
+ NEVER emit more than 2 tasks per User Story.
435
+
436
+ RULE 2 — Story count:
437
+ Decompose into **1-6 User Stories** (hard cap 8).
438
+ Each US must map to one coherent user-facing capability.
439
+ Avoid micro-US (too granular) and mega-US (too broad).
440
+
441
+ RULE 3 — File specificity:
442
+ Every task MUST name specific file paths under \`filesCreate\` / \`filesModify\` / \`filesPreserve\`.
443
+ ❌ "Create a service" — INSUFFICIENT
444
+ ✅ "src/features/{feature}/services/{Feature}Service.ts" — REQUIRED
445
+ Use the codebase context provided to reference REAL files when possible.
446
+ Use the stack/framework conventions visible in the codebase context to
447
+ generate correct paths (e.g., NestJS: \`src/features/{feature}/{feature}.service.ts\`;
448
+ Next.js App Router: \`src/app/{route}/page.tsx\`).
449
+
450
+ RULE 4 — Stack alignment:
451
+ All file paths, naming conventions, and technology references MUST match
452
+ the project's actual stack as inferred from the codebase context. Do NOT
453
+ invent file paths that contradict the existing project layout.
454
+
455
+ RULE 5 — Agent assignment:
456
+ task.type === 'UI' → task.agent = 'frontend-agent'
457
+ task.type === 'Tech' → task.agent = 'backend-agent'
458
+ (Override only if the user's spec explicitly names a different agent.)
459
+
460
+ RULE 6 — Acceptance criteria:
461
+ Every User Story MUST have at least 1 acceptance criterion.
462
+ Use Given/When/Then format when natural; plain assertions otherwise.
463
+
464
+ ## Codebase awareness
465
+
466
+ The user prompt may include a \`Codebase Context\` section showing the
467
+ detected tech stack, folder tree, and related files. Use this to:
468
+ - Pick the right file paths and conventions
469
+ - Reference existing files in \`filesModify\` when extending behavior
470
+ - List existing files in \`filesPreserve\` when the task should NOT touch them
471
+
472
+ ## Stack hints
473
+
474
+ If the user prompt includes a \`Tech Stack\` section (from \`input/tech/stack.md\`),
475
+ prefer those framework/ORM choices over codebase guesses.
476
+
477
+ ## Out-of-scope is sacred
478
+
479
+ If the spec lists "Out of Scope" items, do NOT generate stories or tasks for them.
480
+ The Out of Scope list is the user's explicit boundary.
481
+
482
+ ## Output contract
483
+
484
+ Respond with a valid JSON object matching this shape:
485
+
486
+ {
487
+ "stories": [
488
+ {
489
+ "title": "string (short, action-oriented)",
490
+ "roleAction": "string (\\"As a {role}, I want to {action}\\" — first half of US sentence)",
491
+ "benefit": "string (\\"so that {outcome}\\" — second half)",
492
+ "scope": "string (2-4 sentences: what's IN, what's explicitly OUT for this US)",
493
+ "acceptanceCriteria": ["string", ...],
494
+ "tasks": [
495
+ {
496
+ "title": "string (task title)",
497
+ "type": "UI" | "Tech",
498
+ "agent": "frontend-agent" | "backend-agent" | "<other>",
499
+ "filesCreate": ["src/path/to/new-file.ext", ...],
500
+ "filesModify": ["src/path/to/existing-file.ext", ...],
501
+ "filesPreserve": ["src/path/to/protected-file.ext", ...],
502
+ "objective": "string (one paragraph)",
503
+ "technicalSpec": "string (multi-paragraph, optional)",
504
+ "testRequirements": "string (multi-paragraph, optional)"
505
+ }
506
+ ]
507
+ }
508
+ ],
509
+ "decompositionNotes": "string (optional notes about decomposition decisions, edge cases, ambiguities)"
510
+ }
511
+
402
512
  Respond with JSON only, no markdown or explanation outside the JSON.`;
403
513
  //# sourceMappingURL=system-prompts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"system-prompts.js","sourceRoot":"","sources":["../../../src/ai/prompts/system-prompts.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,YAAY,GAAG,4NAA4N,CAAC;AAElP;;;GAGG;AACH,MAAM,gBAAgB,GAAG;;;;;;;;;gPASuN,CAAC;AAEjP,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,YAAY;;;;;;;;;;;;;;;;;;oDAkBG,CAAC;AAErD,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,YAAY;;;;;;;;;;;;;;;;;;EAkBnD,gBAAgB;;;;;;;oDAOkC,CAAC;AAErD,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,YAAY;;;;;;;;;;;;;;;;;;;;;EAqBlD,gBAAgB;;;;;;;oDAOkC,CAAC;AAErD,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwChD,gBAAgB;;;;;;;;oDAQkC,CAAC;AAErD,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgCtD,gBAAgB;;;;;;;;;;;;;;;;oDAgBkC,CAAC;AAErD,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oDAyCD,CAAC;AAErD,MAAM,CAAC,MAAM,gCAAgC,GAAG,GAAG,YAAY;;;;;;;;;;;;;;;;;;;;;;oDAsBX,CAAC;AAErD,MAAM,CAAC,MAAM,gCAAgC,GAAG,GAAG,YAAY;;;;;;;;;;;;;;;;oDAgBX,CAAC;AAErD,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;oDA2BC,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qEA2EkB,CAAC"}
1
+ {"version":3,"file":"system-prompts.js","sourceRoot":"","sources":["../../../src/ai/prompts/system-prompts.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,YAAY,GAAG,4NAA4N,CAAC;AAElP;;;GAGG;AACH,MAAM,gBAAgB,GAAG;;;;;;;;;gPASuN,CAAC;AAEjP,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,YAAY;;;;;;;;;;;;;;;;;;oDAkBG,CAAC;AAErD,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,YAAY;;;;;;;;;;;;;;;;;;EAkBnD,gBAAgB;;;;;;;oDAOkC,CAAC;AAErD,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,YAAY;;;;;;;;;;;;;;;;;;;;;EAqBlD,gBAAgB;;;;;;;oDAOkC,CAAC;AAErD,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwChD,gBAAgB;;;;;;;;oDAQkC,CAAC;AAErD,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgCtD,gBAAgB;;;;;;;;;;;;;;;;oDAgBkC,CAAC;AAErD,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oDAyCD,CAAC;AAErD,MAAM,CAAC,MAAM,gCAAgC,GAAG,GAAG,YAAY;;;;;;;;;;;;;;;;;;;;;;oDAsBX,CAAC;AAErD,MAAM,CAAC,MAAM,gCAAgC,GAAG,GAAG,YAAY;;;;;;;;;;;;;;;;oDAgBX,CAAC;AAErD,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;oDA2BC,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qEA2EkB,CAAC;AAEtE,8EAA8E;AAC9E,mDAAmD;AACnD,EAAE;AACF,0EAA0E;AAC1E,0EAA0E;AAC1E,uDAAuD;AACvD,yEAAyE;AACzE,8EAA8E;AAE9E,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAG,YAAY;EACzD,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qEAoGmD,CAAC"}
@@ -265,4 +265,66 @@ export declare const aiReviseDecisionSchema: z.ZodObject<{
265
265
  }, z.core.$strip>>>;
266
266
  }, z.core.$strip>;
267
267
  export type AIReviseDecisionResponse = z.infer<typeof aiReviseDecisionSchema>;
268
+ export declare const aiSpecTaskSchema: z.ZodObject<{
269
+ title: z.ZodString;
270
+ type: z.ZodEnum<{
271
+ UI: "UI";
272
+ Tech: "Tech";
273
+ }>;
274
+ agent: z.ZodString;
275
+ filesCreate: z.ZodDefault<z.ZodArray<z.ZodString>>;
276
+ filesModify: z.ZodDefault<z.ZodArray<z.ZodString>>;
277
+ filesPreserve: z.ZodDefault<z.ZodArray<z.ZodString>>;
278
+ objective: z.ZodString;
279
+ technicalSpec: z.ZodDefault<z.ZodString>;
280
+ testRequirements: z.ZodDefault<z.ZodString>;
281
+ }, z.core.$strip>;
282
+ export type AISpecTask = z.infer<typeof aiSpecTaskSchema>;
283
+ export declare const aiSpecStorySchema: z.ZodObject<{
284
+ title: z.ZodString;
285
+ roleAction: z.ZodString;
286
+ benefit: z.ZodString;
287
+ scope: z.ZodDefault<z.ZodString>;
288
+ acceptanceCriteria: z.ZodArray<z.ZodString>;
289
+ tasks: z.ZodArray<z.ZodObject<{
290
+ title: z.ZodString;
291
+ type: z.ZodEnum<{
292
+ UI: "UI";
293
+ Tech: "Tech";
294
+ }>;
295
+ agent: z.ZodString;
296
+ filesCreate: z.ZodDefault<z.ZodArray<z.ZodString>>;
297
+ filesModify: z.ZodDefault<z.ZodArray<z.ZodString>>;
298
+ filesPreserve: z.ZodDefault<z.ZodArray<z.ZodString>>;
299
+ objective: z.ZodString;
300
+ technicalSpec: z.ZodDefault<z.ZodString>;
301
+ testRequirements: z.ZodDefault<z.ZodString>;
302
+ }, z.core.$strip>>;
303
+ }, z.core.$strip>;
304
+ export type AISpecStory = z.infer<typeof aiSpecStorySchema>;
305
+ export declare const aiSpecDecomposeResponseSchema: z.ZodObject<{
306
+ stories: z.ZodArray<z.ZodObject<{
307
+ title: z.ZodString;
308
+ roleAction: z.ZodString;
309
+ benefit: z.ZodString;
310
+ scope: z.ZodDefault<z.ZodString>;
311
+ acceptanceCriteria: z.ZodArray<z.ZodString>;
312
+ tasks: z.ZodArray<z.ZodObject<{
313
+ title: z.ZodString;
314
+ type: z.ZodEnum<{
315
+ UI: "UI";
316
+ Tech: "Tech";
317
+ }>;
318
+ agent: z.ZodString;
319
+ filesCreate: z.ZodDefault<z.ZodArray<z.ZodString>>;
320
+ filesModify: z.ZodDefault<z.ZodArray<z.ZodString>>;
321
+ filesPreserve: z.ZodDefault<z.ZodArray<z.ZodString>>;
322
+ objective: z.ZodString;
323
+ technicalSpec: z.ZodDefault<z.ZodString>;
324
+ testRequirements: z.ZodDefault<z.ZodString>;
325
+ }, z.core.$strip>>;
326
+ }, z.core.$strip>>;
327
+ decompositionNotes: z.ZodDefault<z.ZodString>;
328
+ }, z.core.$strip>;
329
+ export type AISpecDecomposeResponse = z.infer<typeof aiSpecDecomposeResponseSchema>;
268
330
  //# sourceMappingURL=ai-response-schemas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai-response-schemas.d.ts","sourceRoot":"","sources":["../../../src/ai/schemas/ai-response-schemas.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,oBAAoB;;;;;;;;;;;iBAuB/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAIlE,eAAO,MAAM,eAAe;;;;;;;;iBAQ1B,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;iBAEnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAI1E,eAAO,MAAM,uBAAuB;;;;;iBAKlC,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;;;;;;;iBAOxB,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;iBAElC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAIxE,eAAO,MAAM,eAAe;;;iBAG1B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;iBAI5B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;iBAI5B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;iBAI/B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;iBAKhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAIpE,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;iBAIrC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAM9E,eAAO,MAAM,wBAAwB;;;;;;;;;;;iBAYnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAI1E,eAAO,MAAM,8BAA8B;;;;;;;;;;;iBAMzC,CAAC;AAEH,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;iBAG5C,CAAC;AAEH,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAI5F,eAAO,MAAM,gCAAgC;;;;iBAI3C,CAAC;AAEH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAI1F,eAAO,MAAM,sBAAsB;;;;iBAIjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAItE,eAAO,MAAM,oBAAoB;;;;EAAqC,CAAC;AAEvE,eAAO,MAAM,0BAA0B;;;;;;;EAOrC,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;iBAIjC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;iBAGlC,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;iBAiD/B,CAAC;AAEL,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
1
+ {"version":3,"file":"ai-response-schemas.d.ts","sourceRoot":"","sources":["../../../src/ai/schemas/ai-response-schemas.ts"],"names":[],"mappings":"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"}
@@ -211,4 +211,54 @@ export const aiReviseDecisionSchema = z
211
211
  }
212
212
  }
213
213
  });
214
+ // --- Spec-driven decomposition ---
215
+ // Schemas for `planr spec decompose <SPEC-id>`. Output matches the
216
+ // openplanr-pipeline plugin's specification-agent contract: User Stories
217
+ // each containing 1-2 Tasks with explicit file Create/Modify/Preserve lists,
218
+ // Type=UI|Tech, agent assignment, and DoD-grade test requirements.
219
+ export const aiSpecTaskSchema = z.object({
220
+ title: z.string().min(1),
221
+ /**
222
+ * Per docs/proposals/spec-driven-mode.md and openplanr-pipeline rule R2:
223
+ * task-1 is UI when PNGs present, otherwise Tech. task-2 is always Tech
224
+ * and is only emitted when PNGs were attached to the spec.
225
+ */
226
+ type: z.enum(['UI', 'Tech']),
227
+ /**
228
+ * Free-form agent label. Defaults match openplanr-pipeline subagent names
229
+ * (`frontend-agent`, `backend-agent`) so the pipeline can route directly,
230
+ * but the field is open so other tools (Cursor, Codex) can use their own
231
+ * vocabularies.
232
+ */
233
+ agent: z.string().min(1),
234
+ filesCreate: z.array(z.string().min(1)).default([]),
235
+ filesModify: z.array(z.string().min(1)).default([]),
236
+ filesPreserve: z.array(z.string().min(1)).default([]),
237
+ objective: z.string().min(1),
238
+ technicalSpec: z.string().default(''),
239
+ testRequirements: z.string().default(''),
240
+ });
241
+ export const aiSpecStorySchema = z.object({
242
+ title: z.string().min(1),
243
+ /** "As a {role}, I want to {action}" — first half of the User Story sentence. */
244
+ roleAction: z.string().min(1),
245
+ /** "so that {benefit}" — second half. */
246
+ benefit: z.string().min(1),
247
+ scope: z.string().default(''),
248
+ acceptanceCriteria: z.array(z.string().min(1)).min(1),
249
+ /**
250
+ * 1 task if no PNG attached; 2 tasks if PNG present (UI + Tech).
251
+ * Hard cap at 2 to match openplanr-pipeline rule R2.
252
+ */
253
+ tasks: z.array(aiSpecTaskSchema).min(1).max(2),
254
+ });
255
+ export const aiSpecDecomposeResponseSchema = z.object({
256
+ /**
257
+ * 1-8 stories. Soft cap at 8 to keep within the taskFeature token budget
258
+ * (32k); larger specs should be split or use --max-stories N to chunk.
259
+ */
260
+ stories: z.array(aiSpecStorySchema).min(1).max(8),
261
+ /** Optional notes from the AI about its decomposition decisions. */
262
+ decompositionNotes: z.string().default(''),
263
+ });
214
264
  //# sourceMappingURL=ai-response-schemas.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai-response-schemas.js","sourceRoot":"","sources":["../../../src/ai/schemas/ai-response-schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-response-schemas.js","sourceRoot":"","sources":["../../../src/ai/schemas/ai-response-schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * `planr spec` command group — spec-driven planning mode.
3
+ *
4
+ * The third planning posture alongside agile (epic/feature/story/task) and
5
+ * QT (quick task). Specs decompose into nested User Stories and Tasks with
6
+ * the same artifact contract as the `openplanr-pipeline` Claude Code plugin
7
+ * (file Create/Modify/Preserve lists, Type=UI|Tech, agent assignment, DoD
8
+ * with build/test commands). Pairs with the pipeline plugin via shared
9
+ * schema — no conversion layer ever.
10
+ *
11
+ * See `docs/proposals/spec-driven-mode.md` for the full design.
12
+ *
13
+ * Subcommands:
14
+ * - planr spec init Activate spec-driven mode
15
+ * - planr spec create <title> Create a new SPEC artifact (self-contained dir)
16
+ * - planr spec shape <id> Interactive 4-question SPEC authoring
17
+ * - planr spec decompose <id> AI-driven US + Task generation
18
+ * - planr spec sync [id] Validate integrity + auto-fix safe issues
19
+ * - planr spec list List all specs
20
+ * - planr spec show <id> Print a spec + its US/Task tree
21
+ * - planr spec status [id] Decomposition state per spec
22
+ * - planr spec destroy <id> rm -rf one self-contained spec dir
23
+ * - planr spec attach-design <id> --files <png>... Attach UI mockups
24
+ * - planr spec promote <id> Validate + print pipeline handoff
25
+ */
26
+ import type { Command } from 'commander';
27
+ export declare function registerSpecCommand(program: Command): void;
28
+ //# sourceMappingURL=spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/spec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwBzC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,QA2mBnD"}