openplanr 1.5.0 → 1.5.2
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.
- package/README.md +17 -17
- package/dist/ai/prompts/prompt-builder.d.ts +1 -1
- package/dist/ai/prompts/prompt-builder.js +1 -1
- package/dist/ai/prompts/system-prompts.d.ts +1 -1
- package/dist/ai/prompts/system-prompts.d.ts.map +1 -1
- package/dist/ai/prompts/system-prompts.js +2 -2
- package/dist/ai/prompts/system-prompts.js.map +1 -1
- package/dist/ai/schemas/ai-response-schemas.js +4 -4
- package/dist/ai/schemas/ai-response-schemas.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +4 -4
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/rules.d.ts.map +1 -1
- package/dist/cli/commands/rules.js +33 -1
- package/dist/cli/commands/rules.js.map +1 -1
- package/dist/cli/commands/spec.d.ts +1 -1
- package/dist/cli/commands/spec.js +9 -9
- package/dist/cli/commands/spec.js.map +1 -1
- package/dist/generators/claude-generator.js +2 -2
- package/dist/generators/claude-generator.js.map +1 -1
- package/dist/generators/cursor-generator.js +7 -7
- package/dist/generators/cursor-generator.js.map +1 -1
- package/dist/models/types.d.ts +3 -3
- package/dist/services/spec-service.d.ts +5 -5
- package/dist/services/spec-service.js +7 -7
- package/dist/services/spec-service.js.map +1 -1
- package/dist/templates/rules/claude/CLAUDE.md.hbs +5 -5
- package/dist/templates/rules/claude/{openplanr-pipeline.md.hbs → planr-pipeline.md.hbs} +7 -7
- package/dist/templates/rules/codex/_pipeline-section.md.hbs +3 -3
- package/dist/templates/rules/cursor/agents/backend-agent.md +2 -2
- package/dist/templates/rules/cursor/agents/db-agent.md +3 -3
- package/dist/templates/rules/cursor/agents/designer-agent.md +6 -6
- package/dist/templates/rules/cursor/agents/devops-agent.md +4 -4
- package/dist/templates/rules/cursor/agents/doc-gen-agent.md +4 -4
- package/dist/templates/rules/cursor/agents/frontend-agent.md +2 -2
- package/dist/templates/rules/cursor/agents/qa-agent.md +4 -4
- package/dist/templates/rules/cursor/agents/specification-agent.md +8 -8
- package/dist/templates/rules/cursor/{openplanr-pipeline-plan.mdc.hbs → planr-pipeline-plan.mdc.hbs} +2 -2
- package/dist/templates/rules/cursor/{openplanr-pipeline-ship.mdc.hbs → planr-pipeline-ship.mdc.hbs} +3 -3
- package/dist/templates/rules/cursor/{openplanr-pipeline.mdc.hbs → planr-pipeline.mdc.hbs} +10 -10
- package/dist/templates/spec/spec-shaped.md.hbs +1 -1
- package/dist/templates/spec/spec.md.hbs +3 -3
- package/dist/templates/spec/task.md.hbs +1 -1
- package/dist/utils/constants.d.ts +6 -6
- package/dist/utils/constants.js +6 -6
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,15 +4,15 @@
|
|
|
4
4
|
|
|
5
5
|
### The planning layer for AI coding agents
|
|
6
6
|
|
|
7
|
-
**Plan once. Ship with agents.** Works natively on **Claude Code**, **Cursor**, and **Codex** via the runtime-agnostic [OpenPlanr Protocol v1.0.0](https://github.com/openplanr/
|
|
7
|
+
**Plan once. Ship with agents.** Works natively on **Claude Code**, **Cursor**, and **Codex** via the runtime-agnostic [OpenPlanr Protocol v1.0.0](https://github.com/openplanr/planr-pipeline/tree/main/docs/protocol).
|
|
8
8
|
|
|
9
9
|
[](https://www.npmjs.com/package/openplanr)
|
|
10
10
|
[](https://nodejs.org)
|
|
11
11
|
[](https://github.com/openplanr/OpenPlanr/blob/main/LICENSE)
|
|
12
|
-
[](https://github.com/openplanr/
|
|
13
|
-
[](https://github.com/openplanr/
|
|
12
|
+
[](https://github.com/openplanr/planr-pipeline/tree/main/docs/protocol)
|
|
13
|
+
[](https://github.com/openplanr/planr-pipeline/blob/main/docs/compatibility-matrix.md)
|
|
14
14
|
|
|
15
|
-
**[Website](https://openplanr.dev)** · **[Pipeline plugin](https://github.com/openplanr/
|
|
15
|
+
**[Website](https://openplanr.dev)** · **[Pipeline plugin](https://github.com/openplanr/planr-pipeline)** · **[Compatibility matrix](https://github.com/openplanr/planr-pipeline/blob/main/docs/compatibility-matrix.md)** · **[Protocol spec](https://github.com/openplanr/planr-pipeline/tree/main/docs/protocol)** · **[CLI reference](docs/CLI.md)**
|
|
16
16
|
|
|
17
17
|
</div>
|
|
18
18
|
|
|
@@ -38,9 +38,9 @@ That's the whole onboarding.
|
|
|
38
38
|
AI coding agents are powerful but lack structured planning context. Without a clear plan, they generate code that drifts from requirements, churn on the same problem across sessions, and can't be audited. OpenPlanr fixes this with four properties:
|
|
39
39
|
|
|
40
40
|
1. **Markdown artifacts in your repo** — plans live next to your code, version-controlled, gittable, gradable. No external SaaS, no DB.
|
|
41
|
-
2. **One contract, every runtime** — author once; Claude Code, Cursor, and Codex all consume the same artifacts via [OpenPlanr Protocol v1.0.0](https://github.com/openplanr/
|
|
41
|
+
2. **One contract, every runtime** — author once; Claude Code, Cursor, and Codex all consume the same artifacts via [OpenPlanr Protocol v1.0.0](https://github.com/openplanr/planr-pipeline/tree/main/docs/protocol).
|
|
42
42
|
3. **Three planning postures** — pick the ceremony level that matches the work: agile (epic → feature → story → task), quick task (one-off chores), or spec-driven (handoff to an AI factory).
|
|
43
|
-
4. **Hard rules at the tool layer** — when paired with the [
|
|
43
|
+
4. **Hard rules at the tool layer** — when paired with the [planr-pipeline](https://github.com/openplanr/planr-pipeline) Claude Code plugin, agent tool restrictions are enforced in the manifest, not just the prompt. Production-grade audit trail via the `.pipeline-shipped` execution marker.
|
|
44
44
|
|
|
45
45
|
---
|
|
46
46
|
|
|
@@ -52,7 +52,7 @@ AI coding agents are powerful but lack structured planning context. Without a cl
|
|
|
52
52
|
| **Quick task** | Solo dev, one-off chores, no ceremony | `.planr/quick/QT-NNN-*.md` (a single checklist file) |
|
|
53
53
|
| **Spec-driven** | Handing a feature to an AI agent factory | `.planr/specs/SPEC-NNN-{slug}/{stories,tasks,design}/` |
|
|
54
54
|
|
|
55
|
-
Pick one per project, mix per task. The spec-driven posture is the bridge to the [
|
|
55
|
+
Pick one per project, mix per task. The spec-driven posture is the bridge to the [planr-pipeline](https://github.com/openplanr/planr-pipeline) — same artifact contract, no conversion adapter.
|
|
56
56
|
|
|
57
57
|
---
|
|
58
58
|
|
|
@@ -62,11 +62,11 @@ Pick one per project, mix per task. The spec-driven posture is the bridge to the
|
|
|
62
62
|
|
|
63
63
|
| Runtime | What gets installed | How the workflow activates |
|
|
64
64
|
|---|---|---|
|
|
65
|
-
| **Claude Code** | `CLAUDE.md` + sibling `
|
|
66
|
-
| **Cursor** | `.cursor/rules/
|
|
67
|
-
| **Codex** | `AGENTS.md` with `##
|
|
65
|
+
| **Claude Code** | `CLAUDE.md` + sibling `planr-pipeline.md` reference card. Optional: install the `planr-pipeline` plugin for full manifest-enforced subagents. | `/planr-pipeline:plan {feature}` and `/planr-pipeline:ship {feature}` slash commands |
|
|
66
|
+
| **Cursor** | `.cursor/rules/planr-pipeline.mdc` + `agents/{8 role bodies}.md` | User says "plan {feature}" or "ship {feature}" — Composer dispatches the pipeline subagents |
|
|
67
|
+
| **Codex** | `AGENTS.md` with `## Planr Pipeline Orchestration` section | User says "plan {feature}" — Codex adopts the role personas |
|
|
68
68
|
|
|
69
|
-
Same artifacts (`.planr/specs/SPEC-NNN-{slug}/`). Same `.pipeline-shipped` proof markers. Cross-runtime spec portability works out of the box. See the [compatibility matrix](https://github.com/openplanr/
|
|
69
|
+
Same artifacts (`.planr/specs/SPEC-NNN-{slug}/`). Same `.pipeline-shipped` proof markers. Cross-runtime spec portability works out of the box. See the [compatibility matrix](https://github.com/openplanr/planr-pipeline/blob/main/docs/compatibility-matrix.md) for per-capability parity.
|
|
70
70
|
|
|
71
71
|
---
|
|
72
72
|
|
|
@@ -119,7 +119,7 @@ planr quick create "add OAuth login"
|
|
|
119
119
|
planr spec create "Auth flow" --slug auth
|
|
120
120
|
planr spec shape SPEC-001 # 4 questions, no $EDITOR
|
|
121
121
|
# Then in Claude Code / Cursor / Codex:
|
|
122
|
-
# /
|
|
122
|
+
# /planr-pipeline:plan auth → human review → /planr-pipeline:ship auth
|
|
123
123
|
```
|
|
124
124
|
|
|
125
125
|
---
|
|
@@ -128,7 +128,7 @@ planr spec shape SPEC-001 # 4 questions, no $EDITOR
|
|
|
128
128
|
|
|
129
129
|
### Spec-driven mode
|
|
130
130
|
|
|
131
|
-
Third planning posture — designed for handing features to AI coding agents. Specs decompose into User Stories and Tasks with explicit file Create / Modify / Preserve lists, `Type: UI | Tech`, agent assignment, and DoD with build / test commands. Schema matches [OpenPlanr Protocol v1.0.0](https://github.com/openplanr/
|
|
131
|
+
Third planning posture — designed for handing features to AI coding agents. Specs decompose into User Stories and Tasks with explicit file Create / Modify / Preserve lists, `Type: UI | Tech`, agent assignment, and DoD with build / test commands. Schema matches [OpenPlanr Protocol v1.0.0](https://github.com/openplanr/planr-pipeline/tree/main/docs/protocol).
|
|
132
132
|
|
|
133
133
|
| Command | Description |
|
|
134
134
|
|---|---|
|
|
@@ -200,7 +200,7 @@ Built-in templates: `rest-endpoint`, `react-component`, `database-migration`, `a
|
|
|
200
200
|
| `planr rules generate --target all --scope all` | Everything for every runtime |
|
|
201
201
|
| `planr rules generate --dry-run` | Preview without writing |
|
|
202
202
|
|
|
203
|
-
`--scope agile` (default) writes the agile workflow rules. `--scope pipeline` writes the rule files that drive the [
|
|
203
|
+
`--scope agile` (default) writes the agile workflow rules. `--scope pipeline` writes the rule files that drive the [planr-pipeline](https://github.com/openplanr/planr-pipeline) two-phase spec-driven flow on the chosen runtime. `--scope all` produces both. `planr init` auto-runs `--scope all` by default — opt out with `planr init --no-pipeline-rules`.
|
|
204
204
|
|
|
205
205
|
### Integrations
|
|
206
206
|
|
|
@@ -259,10 +259,10 @@ my-project/
|
|
|
259
259
|
│ └── checklists/ # Agile development checklist
|
|
260
260
|
├── .cursor/rules/
|
|
261
261
|
│ ├── agile-checklist.mdc # Agile workflow rules
|
|
262
|
-
│ ├──
|
|
262
|
+
│ ├── planr-pipeline.mdc # Pipeline rules (default-on)
|
|
263
263
|
│ └── agents/ # 8 subagent body files
|
|
264
264
|
├── CLAUDE.md # Claude Code rules
|
|
265
|
-
├──
|
|
265
|
+
├── planr-pipeline.md # Pipeline reference card (Claude Code)
|
|
266
266
|
└── AGENTS.md # Codex rules + pipeline orchestration
|
|
267
267
|
```
|
|
268
268
|
|
|
@@ -318,7 +318,7 @@ OpenPlanr is one of four components:
|
|
|
318
318
|
| Component | Role | Repo |
|
|
319
319
|
|---|---|---|
|
|
320
320
|
| **`planr` CLI** | Authoring surface — generates `.planr/` artifacts and runtime rule files | this repo |
|
|
321
|
-
| **`
|
|
321
|
+
| **`planr-pipeline`** | Claude Code plugin — canonical executor (8 subagents, manifest-enforced tool restrictions) | [openplanr/planr-pipeline](https://github.com/openplanr/planr-pipeline) |
|
|
322
322
|
| **`openplanr` skill** | Routing playbook — teaches Claude when to use which surface | [openplanr/skills](https://github.com/openplanr/skills) |
|
|
323
323
|
| **`openplanr/marketplace`** | Distribution — Claude Code plugin registry | [openplanr/marketplace](https://github.com/openplanr/marketplace) |
|
|
324
324
|
|
|
@@ -122,7 +122,7 @@ export declare function buildRevisePrompt(ctx: RevisePromptContext): AIMessage[]
|
|
|
122
122
|
*
|
|
123
123
|
* Produces a 2-message conversation that asks the AI to decompose a spec
|
|
124
124
|
* body into N User Stories with 1-2 Tasks each, matching the
|
|
125
|
-
*
|
|
125
|
+
* planr-pipeline plugin's specification-agent contract.
|
|
126
126
|
*
|
|
127
127
|
* @param specBody Raw spec markdown (PO-authored, untrusted — wrapped via wrapUserInput)
|
|
128
128
|
* @param hasPNGs If true, instructs the AI to emit 2 tasks per US (UI + Tech)
|
|
@@ -266,7 +266,7 @@ export function buildRevisePrompt(ctx) {
|
|
|
266
266
|
*
|
|
267
267
|
* Produces a 2-message conversation that asks the AI to decompose a spec
|
|
268
268
|
* body into N User Stories with 1-2 Tasks each, matching the
|
|
269
|
-
*
|
|
269
|
+
* planr-pipeline plugin's specification-agent contract.
|
|
270
270
|
*
|
|
271
271
|
* @param specBody Raw spec markdown (PO-authored, untrusted — wrapped via wrapUserInput)
|
|
272
272
|
* @param hasPNGs If true, instructs the AI to emit 2 tasks per US (UI + Tech)
|
|
@@ -37,5 +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
|
|
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 planr-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.";
|
|
41
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;AAWtE,eAAO,MAAM,4BAA4B,
|
|
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,orLAqG4B,CAAC"}
|
|
@@ -403,7 +403,7 @@ Respond with JSON only, no markdown or explanation outside the JSON.`;
|
|
|
403
403
|
// ---------------------------------------------------------------------------
|
|
404
404
|
// Spec-driven decomposition (planr spec decompose)
|
|
405
405
|
//
|
|
406
|
-
// Ports the
|
|
406
|
+
// Ports the planr-pipeline plugin's specification-agent prompt into a
|
|
407
407
|
// planr-CLI execution context (no Claude Code Task tool — direct provider
|
|
408
408
|
// call via ai-service.ts). Output is validated against
|
|
409
409
|
// aiSpecDecomposeResponseSchema. See docs/proposals/spec-driven-mode.md.
|
|
@@ -421,7 +421,7 @@ typical agile tasks:
|
|
|
421
421
|
- Every task names **specific files** to Create / Modify / Preserve
|
|
422
422
|
- Every task is classified as Type **UI** or **Tech**
|
|
423
423
|
- Every task is assigned to an **agent** (default subagent names from the
|
|
424
|
-
|
|
424
|
+
planr-pipeline plugin: \`frontend-agent\` for UI, \`backend-agent\` for Tech)
|
|
425
425
|
- Every task has concrete **objective**, **technicalSpec**, and **testRequirements**
|
|
426
426
|
|
|
427
427
|
## Hard rules (do not violate)
|
|
@@ -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;AAEtE,8EAA8E;AAC9E,mDAAmD;AACnD,EAAE;AACF,
|
|
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,sEAAsE;AACtE,0EAA0E;AAC1E,uDAAuD;AACvD,yEAAyE;AACzE,8EAA8E;AAE9E,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAG,YAAY;EACzD,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qEAoGmD,CAAC"}
|
|
@@ -213,19 +213,19 @@ export const aiReviseDecisionSchema = z
|
|
|
213
213
|
});
|
|
214
214
|
// --- Spec-driven decomposition ---
|
|
215
215
|
// Schemas for `planr spec decompose <SPEC-id>`. Output matches the
|
|
216
|
-
//
|
|
216
|
+
// planr-pipeline plugin's specification-agent contract: User Stories
|
|
217
217
|
// each containing 1-2 Tasks with explicit file Create/Modify/Preserve lists,
|
|
218
218
|
// Type=UI|Tech, agent assignment, and DoD-grade test requirements.
|
|
219
219
|
export const aiSpecTaskSchema = z.object({
|
|
220
220
|
title: z.string().min(1),
|
|
221
221
|
/**
|
|
222
|
-
* Per docs/proposals/spec-driven-mode.md and
|
|
222
|
+
* Per docs/proposals/spec-driven-mode.md and planr-pipeline rule R2:
|
|
223
223
|
* task-1 is UI when PNGs present, otherwise Tech. task-2 is always Tech
|
|
224
224
|
* and is only emitted when PNGs were attached to the spec.
|
|
225
225
|
*/
|
|
226
226
|
type: z.enum(['UI', 'Tech']),
|
|
227
227
|
/**
|
|
228
|
-
* Free-form agent label. Defaults match
|
|
228
|
+
* Free-form agent label. Defaults match planr-pipeline subagent names
|
|
229
229
|
* (`frontend-agent`, `backend-agent`) so the pipeline can route directly,
|
|
230
230
|
* but the field is open so other tools (Cursor, Codex) can use their own
|
|
231
231
|
* vocabularies.
|
|
@@ -248,7 +248,7 @@ export const aiSpecStorySchema = z.object({
|
|
|
248
248
|
acceptanceCriteria: z.array(z.string().min(1)).min(1),
|
|
249
249
|
/**
|
|
250
250
|
* 1 task if no PNG attached; 2 tasks if PNG present (UI + Tech).
|
|
251
|
-
* Hard cap at 2 to match
|
|
251
|
+
* Hard cap at 2 to match planr-pipeline rule R2.
|
|
252
252
|
*/
|
|
253
253
|
tasks: z.array(aiSpecTaskSchema).min(1).max(2),
|
|
254
254
|
});
|
|
@@ -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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBzC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBzC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,QA2LnD"}
|
|
@@ -21,7 +21,7 @@ export function registerInitCommand(program) {
|
|
|
21
21
|
.description('Initialize Planr in the current project')
|
|
22
22
|
.option('--name <name>', 'project name')
|
|
23
23
|
.option('--no-ai', 'skip AI setup')
|
|
24
|
-
.option('--no-pipeline-rules', 'skip
|
|
24
|
+
.option('--no-pipeline-rules', 'skip planr-pipeline rules (generates agile rules only — equivalent to running `planr rules generate --scope agile` post-init)')
|
|
25
25
|
.action(async (opts) => {
|
|
26
26
|
const projectDir = program.opts().projectDir;
|
|
27
27
|
const configPath = path.join(projectDir, CONFIG_FILENAME);
|
|
@@ -106,12 +106,12 @@ export function registerInitCommand(program) {
|
|
|
106
106
|
logger.success('Created estimation guide');
|
|
107
107
|
}
|
|
108
108
|
// Decide rule scope: agile (default agile workflow rules) or all (agile +
|
|
109
|
-
//
|
|
109
|
+
// planr-pipeline rules so Cursor/Codex/Claude pick up the spec-driven
|
|
110
110
|
// workflow automatically). Interactive default is `true` to give every new
|
|
111
111
|
// project a complete cross-runtime experience without an extra command.
|
|
112
112
|
const includePipelineRules = opts.pipelineRules === false
|
|
113
113
|
? false
|
|
114
|
-
: await promptConfirm('Generate
|
|
114
|
+
: await promptConfirm('Generate planr-pipeline rules (auto-activates spec-driven workflow in Cursor and Codex)?', true);
|
|
115
115
|
const ruleScope = includePipelineRules ? 'all' : 'agile';
|
|
116
116
|
// Generate AI agent rules
|
|
117
117
|
const generators = createGenerators(config, projectDir);
|
|
@@ -157,7 +157,7 @@ export function registerInitCommand(program) {
|
|
|
157
157
|
logger.dim(' planr epic create — Create your first epic');
|
|
158
158
|
logger.dim(' planr quick "description" — Quick standalone task list (no agile ceremony)');
|
|
159
159
|
if (includePipelineRules) {
|
|
160
|
-
logger.dim(' planr spec create — Author a spec for the
|
|
160
|
+
logger.dim(' planr spec create — Author a spec for the planr-pipeline workflow');
|
|
161
161
|
}
|
|
162
162
|
logger.dim(' planr rules generate — Regenerate AI agent rules after changes');
|
|
163
163
|
logger.dim(' planr config show — View configuration');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAEzE,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAC5F,OAAO,EACL,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,UAAU,GACX,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,yCAAyC,CAAC;SACtD,MAAM,CAAC,eAAe,EAAE,cAAc,CAAC;SACvC,MAAM,CAAC,SAAS,EAAE,eAAe,CAAC;SAClC,MAAM,CACL,qBAAqB,EACrB,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/rules.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/rules.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqBzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,QAmFpD"}
|
|
@@ -1,8 +1,19 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
2
|
import { createGenerator, createGenerators } from '../../generators/generator-factory.js';
|
|
3
3
|
import { loadConfig } from '../../services/config-service.js';
|
|
4
|
-
import { ensureDir, writeFile } from '../../utils/fs.js';
|
|
4
|
+
import { ensureDir, fileExists, writeFile } from '../../utils/fs.js';
|
|
5
5
|
import { logger } from '../../utils/logger.js';
|
|
6
|
+
/**
|
|
7
|
+
* Filenames generated by openplanr v1.5.0 (before the planr-pipeline rename).
|
|
8
|
+
* If detected in a project, we surface a one-line cleanup hint — but never
|
|
9
|
+
* auto-delete, to avoid surprising users with destructive behavior.
|
|
10
|
+
*/
|
|
11
|
+
const LEGACY_CURSOR_RULES = [
|
|
12
|
+
'openplanr-pipeline.mdc',
|
|
13
|
+
'openplanr-pipeline-plan.mdc',
|
|
14
|
+
'openplanr-pipeline-ship.mdc',
|
|
15
|
+
];
|
|
16
|
+
const LEGACY_CLAUDE_REF = 'openplanr-pipeline.md';
|
|
6
17
|
const VALID_SCOPES = ['agile', 'pipeline', 'all'];
|
|
7
18
|
export function registerRulesCommand(program) {
|
|
8
19
|
program
|
|
@@ -52,6 +63,27 @@ export function registerRulesCommand(program) {
|
|
|
52
63
|
}
|
|
53
64
|
}
|
|
54
65
|
logger.success(`${opts.dryRun ? 'Would generate' : 'Generated'} ${totalFiles} rule file(s)`);
|
|
66
|
+
// Legacy cleanup hint (planr-pipeline rename, v1.5.1)
|
|
67
|
+
if (!opts.dryRun) {
|
|
68
|
+
const stale = [];
|
|
69
|
+
for (const name of LEGACY_CURSOR_RULES) {
|
|
70
|
+
const p = path.join(projectDir, config.outputPaths.cursorRules, name);
|
|
71
|
+
if (await fileExists(p))
|
|
72
|
+
stale.push(p);
|
|
73
|
+
}
|
|
74
|
+
const claudeStale = path.join(projectDir, config.outputPaths.claudeConfig, LEGACY_CLAUDE_REF);
|
|
75
|
+
if (await fileExists(claudeStale))
|
|
76
|
+
stale.push(claudeStale);
|
|
77
|
+
if (stale.length > 0) {
|
|
78
|
+
logger.dim('');
|
|
79
|
+
logger.warn(`Detected ${stale.length} legacy rule file(s) from before the planr-pipeline rename:`);
|
|
80
|
+
for (const p of stale)
|
|
81
|
+
logger.dim(` ${p}`);
|
|
82
|
+
logger.dim('');
|
|
83
|
+
logger.dim(' Safe to delete — they were generated by an earlier CLI version.');
|
|
84
|
+
logger.dim(' Not auto-deleted to avoid surprising users.');
|
|
85
|
+
}
|
|
86
|
+
}
|
|
55
87
|
});
|
|
56
88
|
}
|
|
57
89
|
//# sourceMappingURL=rules.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../../../src/cli/commands/rules.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAE1F,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../../../src/cli/commands/rules.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* The third planning posture alongside agile (epic/feature/story/task) and
|
|
5
5
|
* QT (quick task). Specs decompose into nested User Stories and Tasks with
|
|
6
|
-
* the same artifact contract as the `
|
|
6
|
+
* the same artifact contract as the `planr-pipeline` Claude Code plugin
|
|
7
7
|
* (file Create/Modify/Preserve lists, Type=UI|Tech, agent assignment, DoD
|
|
8
8
|
* with build/test commands). Pairs with the pipeline plugin via shared
|
|
9
9
|
* schema — no conversion layer ever.
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* The third planning posture alongside agile (epic/feature/story/task) and
|
|
5
5
|
* QT (quick task). Specs decompose into nested User Stories and Tasks with
|
|
6
|
-
* the same artifact contract as the `
|
|
6
|
+
* the same artifact contract as the `planr-pipeline` Claude Code plugin
|
|
7
7
|
* (file Create/Modify/Preserve lists, Type=UI|Tech, agent assignment, DoD
|
|
8
8
|
* with build/test commands). Pairs with the pipeline plugin via shared
|
|
9
9
|
* schema — no conversion layer ever.
|
|
@@ -32,7 +32,7 @@ import { display, logger } from '../../utils/logger.js';
|
|
|
32
32
|
export function registerSpecCommand(program) {
|
|
33
33
|
const spec = program
|
|
34
34
|
.command('spec')
|
|
35
|
-
.description('Spec-driven planning mode — author specs that decompose into agent-executable tasks. Pairs with
|
|
35
|
+
.description('Spec-driven planning mode — author specs that decompose into agent-executable tasks. Pairs with planr-pipeline.');
|
|
36
36
|
// ------------------------------------------------------------------------
|
|
37
37
|
// planr spec init
|
|
38
38
|
// ------------------------------------------------------------------------
|
|
@@ -74,7 +74,7 @@ export function registerSpecCommand(program) {
|
|
|
74
74
|
display.line(' 3. Decompose: planr spec decompose <SPEC-id> (AI-driven US + Tasks)');
|
|
75
75
|
display.line(' 4. Review: planr spec show <SPEC-id>');
|
|
76
76
|
display.line(' 5. Promote: planr spec promote <SPEC-id>');
|
|
77
|
-
display.line(' 6. Ship via plugin: /
|
|
77
|
+
display.line(' 6. Ship via plugin: /planr-pipeline:plan <slug> (in Claude Code)');
|
|
78
78
|
});
|
|
79
79
|
// ------------------------------------------------------------------------
|
|
80
80
|
// planr spec create
|
|
@@ -226,7 +226,7 @@ export function registerSpecCommand(program) {
|
|
|
226
226
|
// ------------------------------------------------------------------------
|
|
227
227
|
spec
|
|
228
228
|
.command('decompose')
|
|
229
|
-
.description('AI-driven decomposition of a SPEC into User Stories + Tasks (matches
|
|
229
|
+
.description('AI-driven decomposition of a SPEC into User Stories + Tasks (matches planr-pipeline schema)')
|
|
230
230
|
.argument('<specId>', 'spec ID (e.g., SPEC-001)')
|
|
231
231
|
.option('--force', 'overwrite existing US/Task files (use after `planr spec destroy` failed)')
|
|
232
232
|
.option('--no-code-context', 'skip the codebase scanner (faster; tasks reference generic paths)')
|
|
@@ -349,7 +349,7 @@ export function registerSpecCommand(program) {
|
|
|
349
349
|
}
|
|
350
350
|
}
|
|
351
351
|
display.line('');
|
|
352
|
-
display.line(` Pipeline handoff: /
|
|
352
|
+
display.line(` Pipeline handoff: /planr-pipeline:plan ${spec.slug}`);
|
|
353
353
|
});
|
|
354
354
|
// ------------------------------------------------------------------------
|
|
355
355
|
// planr spec status [id]
|
|
@@ -441,7 +441,7 @@ export function registerSpecCommand(program) {
|
|
|
441
441
|
}
|
|
442
442
|
logger.dim('');
|
|
443
443
|
logger.dim(`Design directory: ${designDir}`);
|
|
444
|
-
logger.dim(`When you run /
|
|
444
|
+
logger.dim(`When you run /planr-pipeline:plan, the designer-agent will analyze these PNGs into design/design-spec.md.`);
|
|
445
445
|
}
|
|
446
446
|
catch (err) {
|
|
447
447
|
logger.error(err.message);
|
|
@@ -470,13 +470,13 @@ export function registerSpecCommand(program) {
|
|
|
470
470
|
if (!spec)
|
|
471
471
|
return; // unreachable if validation passed
|
|
472
472
|
await updateSpecFields(projectDir, config, specId, { status: 'ready-for-pipeline' });
|
|
473
|
-
logger.success(`${specId} is ready for
|
|
473
|
+
logger.success(`${specId} is ready for planr-pipeline.`);
|
|
474
474
|
logger.dim('');
|
|
475
475
|
display.line('Next: in Claude Code, run:');
|
|
476
|
-
display.line(` /
|
|
476
|
+
display.line(` /planr-pipeline:plan ${spec.slug}`);
|
|
477
477
|
display.line('');
|
|
478
478
|
display.line('After human review of the decomposition:');
|
|
479
|
-
display.line(` /
|
|
479
|
+
display.line(` /planr-pipeline:ship ${spec.slug}`);
|
|
480
480
|
display.line('');
|
|
481
481
|
logger.dim(`(The pipeline plugin reads .planr/specs/${spec.id}-${spec.slug}/ directly when spec mode is active.)`);
|
|
482
482
|
});
|