openplanr 0.9.0 → 1.0.0
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 +142 -58
- package/dist/agents/index.d.ts +1 -5
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +1 -4
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/task-parser.d.ts +4 -1
- package/dist/agents/task-parser.d.ts.map +1 -1
- package/dist/agents/task-parser.js +6 -3
- package/dist/agents/task-parser.js.map +1 -1
- package/dist/agents/utils.d.ts +0 -4
- package/dist/agents/utils.d.ts.map +1 -1
- package/dist/agents/utils.js +3 -24
- package/dist/agents/utils.js.map +1 -1
- package/dist/ai/codebase/context-builder.d.ts +22 -3
- package/dist/ai/codebase/context-builder.d.ts.map +1 -1
- package/dist/ai/codebase/context-builder.js +202 -14
- package/dist/ai/codebase/context-builder.js.map +1 -1
- package/dist/ai/codebase/file-reader.d.ts.map +1 -1
- package/dist/ai/codebase/file-reader.js +7 -3
- package/dist/ai/codebase/file-reader.js.map +1 -1
- package/dist/ai/codebase/index.d.ts +3 -1
- package/dist/ai/codebase/index.d.ts.map +1 -1
- package/dist/ai/codebase/index.js +3 -1
- package/dist/ai/codebase/index.js.map +1 -1
- package/dist/ai/codebase/pattern-rules.d.ts +28 -0
- package/dist/ai/codebase/pattern-rules.d.ts.map +1 -0
- package/dist/ai/codebase/pattern-rules.js +186 -0
- package/dist/ai/codebase/pattern-rules.js.map +1 -0
- package/dist/ai/codebase/rules-reader.d.ts +14 -0
- package/dist/ai/codebase/rules-reader.d.ts.map +1 -0
- package/dist/ai/codebase/rules-reader.js +25 -0
- package/dist/ai/codebase/rules-reader.js.map +1 -0
- package/dist/ai/codebase/stack-detector.d.ts.map +1 -1
- package/dist/ai/codebase/stack-detector.js +4 -1
- package/dist/ai/codebase/stack-detector.js.map +1 -1
- package/dist/ai/codebase/tree-generator.d.ts.map +1 -1
- package/dist/ai/codebase/tree-generator.js +5 -2
- package/dist/ai/codebase/tree-generator.js.map +1 -1
- package/dist/ai/errors.js +1 -1
- package/dist/ai/errors.js.map +1 -1
- package/dist/ai/prompts/prompt-builder.d.ts +12 -0
- package/dist/ai/prompts/prompt-builder.d.ts.map +1 -1
- package/dist/ai/prompts/prompt-builder.js +38 -3
- package/dist/ai/prompts/prompt-builder.js.map +1 -1
- package/dist/ai/prompts/system-prompts.d.ts +4 -2
- package/dist/ai/prompts/system-prompts.d.ts.map +1 -1
- package/dist/ai/prompts/system-prompts.js +72 -12
- package/dist/ai/prompts/system-prompts.js.map +1 -1
- package/dist/ai/schemas/ai-response-schemas.d.ts +48 -2
- package/dist/ai/schemas/ai-response-schemas.d.ts.map +1 -1
- package/dist/ai/schemas/ai-response-schemas.js +19 -0
- package/dist/ai/schemas/ai-response-schemas.js.map +1 -1
- package/dist/ai/types.d.ts +3 -1
- package/dist/ai/types.d.ts.map +1 -1
- package/dist/ai/types.js +2 -0
- package/dist/ai/types.js.map +1 -1
- package/dist/ai/validation/dependency-chains.d.ts +21 -0
- package/dist/ai/validation/dependency-chains.d.ts.map +1 -0
- package/dist/ai/validation/dependency-chains.js +114 -0
- package/dist/ai/validation/dependency-chains.js.map +1 -0
- package/dist/ai/validation/index.d.ts +3 -0
- package/dist/ai/validation/index.d.ts.map +1 -0
- package/dist/ai/validation/index.js +3 -0
- package/dist/ai/validation/index.js.map +1 -0
- package/dist/ai/validation/task-validator.d.ts +37 -0
- package/dist/ai/validation/task-validator.d.ts.map +1 -0
- package/dist/ai/validation/task-validator.js +89 -0
- package/dist/ai/validation/task-validator.js.map +1 -0
- package/dist/cli/commands/backlog.d.ts +10 -0
- package/dist/cli/commands/backlog.d.ts.map +1 -0
- package/dist/cli/commands/backlog.js +292 -0
- package/dist/cli/commands/backlog.js.map +1 -0
- package/dist/cli/commands/checklist.js +4 -4
- package/dist/cli/commands/checklist.js.map +1 -1
- package/dist/cli/commands/config.js +13 -13
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/epic.d.ts.map +1 -1
- package/dist/cli/commands/epic.js +29 -23
- package/dist/cli/commands/epic.js.map +1 -1
- package/dist/cli/commands/estimate.d.ts.map +1 -1
- package/dist/cli/commands/estimate.js +40 -39
- package/dist/cli/commands/estimate.js.map +1 -1
- package/dist/cli/commands/export.js +6 -4
- package/dist/cli/commands/export.js.map +1 -1
- package/dist/cli/commands/feature.js +9 -9
- package/dist/cli/commands/feature.js.map +1 -1
- package/dist/cli/commands/github.d.ts.map +1 -1
- package/dist/cli/commands/github.js +30 -27
- package/dist/cli/commands/github.js.map +1 -1
- package/dist/cli/commands/plan.d.ts.map +1 -1
- package/dist/cli/commands/plan.js +27 -42
- package/dist/cli/commands/plan.js.map +1 -1
- package/dist/cli/commands/quick.d.ts.map +1 -1
- package/dist/cli/commands/quick.js +37 -107
- package/dist/cli/commands/quick.js.map +1 -1
- package/dist/cli/commands/refine.js +21 -21
- package/dist/cli/commands/refine.js.map +1 -1
- package/dist/cli/commands/search.d.ts.map +1 -1
- package/dist/cli/commands/search.js +18 -7
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/sprint.d.ts +9 -0
- package/dist/cli/commands/sprint.d.ts.map +1 -0
- package/dist/cli/commands/sprint.js +519 -0
- package/dist/cli/commands/sprint.js.map +1 -0
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +77 -32
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/story.js +15 -15
- package/dist/cli/commands/story.js.map +1 -1
- package/dist/cli/commands/sync.js +11 -7
- package/dist/cli/commands/sync.js.map +1 -1
- package/dist/cli/commands/task.d.ts +0 -2
- package/dist/cli/commands/task.d.ts.map +1 -1
- package/dist/cli/commands/task.js +14 -169
- package/dist/cli/commands/task.js.map +1 -1
- package/dist/cli/commands/template.d.ts +10 -0
- package/dist/cli/commands/template.d.ts.map +1 -0
- package/dist/cli/commands/template.js +269 -0
- package/dist/cli/commands/template.js.map +1 -0
- package/dist/cli/helpers/task-creation.d.ts +89 -0
- package/dist/cli/helpers/task-creation.d.ts.map +1 -0
- package/dist/cli/helpers/task-creation.js +140 -0
- package/dist/cli/helpers/task-creation.js.map +1 -0
- package/dist/cli/index.js +25 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/models/schema.d.ts +2 -0
- package/dist/models/schema.d.ts.map +1 -1
- package/dist/models/schema.js +2 -0
- package/dist/models/schema.js.map +1 -1
- package/dist/models/types.d.ts +32 -1
- package/dist/models/types.d.ts.map +1 -1
- package/dist/services/artifact-gathering.d.ts +2 -0
- package/dist/services/artifact-gathering.d.ts.map +1 -1
- package/dist/services/artifact-gathering.js +26 -7
- package/dist/services/artifact-gathering.js.map +1 -1
- package/dist/services/artifact-service.d.ts +5 -5
- package/dist/services/artifact-service.d.ts.map +1 -1
- package/dist/services/artifact-service.js +4 -0
- package/dist/services/artifact-service.js.map +1 -1
- package/dist/services/config-service.d.ts.map +1 -1
- package/dist/services/config-service.js +2 -0
- package/dist/services/config-service.js.map +1 -1
- package/dist/services/credential-backends.d.ts.map +1 -1
- package/dist/services/credential-backends.js +15 -7
- package/dist/services/credential-backends.js.map +1 -1
- package/dist/services/credentials-service.d.ts.map +1 -1
- package/dist/services/credentials-service.js +6 -3
- package/dist/services/credentials-service.js.map +1 -1
- package/dist/services/github-service.d.ts +2 -2
- package/dist/services/github-service.d.ts.map +1 -1
- package/dist/services/github-service.js +9 -4
- package/dist/services/github-service.js.map +1 -1
- package/dist/services/template-service.d.ts +2 -1
- package/dist/services/template-service.d.ts.map +1 -1
- package/dist/services/template-service.js +2 -1
- package/dist/services/template-service.js.map +1 -1
- package/dist/templates/backlog/backlog-item.md.hbs +40 -0
- package/dist/templates/checklists/agile-checklist.md.hbs +1 -1
- package/dist/templates/quick/quick-task.md.hbs +1 -1
- package/dist/templates/rules/claude/CLAUDE.md.hbs +78 -35
- package/dist/templates/rules/codex/AGENTS.md.hbs +73 -17
- package/dist/templates/rules/cursor/2101-implement-task-list.mdc.hbs +66 -14
- package/dist/templates/sprints/sprint.md.hbs +42 -0
- package/dist/templates/task-templates/api-integration.json +45 -0
- package/dist/templates/task-templates/auth-flow.json +48 -0
- package/dist/templates/task-templates/database-migration.json +44 -0
- package/dist/templates/task-templates/react-component.json +45 -0
- package/dist/templates/task-templates/rest-endpoint.json +53 -0
- package/dist/templates/tasks/task-list.md.hbs +1 -1
- package/dist/utils/constants.d.ts +4 -0
- package/dist/utils/constants.d.ts.map +1 -1
- package/dist/utils/constants.js +4 -0
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/logger.d.ts +31 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +92 -9
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/markdown.d.ts +3 -2
- package/dist/utils/markdown.d.ts.map +1 -1
- package/dist/utils/markdown.js +3 -1
- package/dist/utils/markdown.js.map +1 -1
- package/dist/utils/slugify.d.ts +8 -1
- package/dist/utils/slugify.d.ts.map +1 -1
- package/dist/utils/slugify.js +18 -2
- package/dist/utils/slugify.js.map +1 -1
- package/package.json +14 -3
- package/dist/agents/agent-factory.d.ts +0 -7
- package/dist/agents/agent-factory.d.ts.map +0 -1
- package/dist/agents/agent-factory.js +0 -22
- package/dist/agents/agent-factory.js.map +0 -1
- package/dist/agents/claude-agent.d.ts +0 -18
- package/dist/agents/claude-agent.d.ts.map +0 -1
- package/dist/agents/claude-agent.js +0 -183
- package/dist/agents/claude-agent.js.map +0 -1
- package/dist/agents/codex-agent.d.ts +0 -17
- package/dist/agents/codex-agent.d.ts.map +0 -1
- package/dist/agents/codex-agent.js +0 -124
- package/dist/agents/codex-agent.js.map +0 -1
- package/dist/agents/cursor-agent.d.ts +0 -14
- package/dist/agents/cursor-agent.d.ts.map +0 -1
- package/dist/agents/cursor-agent.js +0 -49
- package/dist/agents/cursor-agent.js.map +0 -1
- package/dist/agents/implementation-bridge.d.ts +0 -30
- package/dist/agents/implementation-bridge.d.ts.map +0 -1
- package/dist/agents/implementation-bridge.js +0 -256
- package/dist/agents/implementation-bridge.js.map +0 -1
- package/dist/agents/progress.d.ts +0 -62
- package/dist/agents/progress.d.ts.map +0 -1
- package/dist/agents/progress.js +0 -155
- package/dist/agents/progress.js.map +0 -1
- package/dist/agents/prompt-composer.d.ts +0 -30
- package/dist/agents/prompt-composer.d.ts.map +0 -1
- package/dist/agents/prompt-composer.js +0 -81
- package/dist/agents/prompt-composer.js.map +0 -1
- package/dist/agents/types.d.ts +0 -25
- package/dist/agents/types.d.ts.map +0 -1
- package/dist/agents/types.js +0 -8
- package/dist/agents/types.js.map +0 -1
- package/dist/utils/error-context.d.ts +0 -23
- package/dist/utils/error-context.d.ts.map +0 -1
- package/dist/utils/error-context.js +0 -94
- package/dist/utils/error-context.js.map +0 -1
package/README.md
CHANGED
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
[](https://github.com/TechArc-io/OpenPlanr/blob/main/LICENSE)
|
|
5
5
|
[](https://nodejs.org)
|
|
6
6
|
|
|
7
|
-
**
|
|
7
|
+
**AI-powered planning CLI for developers.** Capture ideas, plan sprints, generate tasks, estimate effort, and sync with GitHub — all from your terminal.
|
|
8
8
|
|
|
9
|
-
Planr
|
|
9
|
+
Planr replaces heavyweight project management tools with a fast, file-based workflow. Artifacts live in your repo as markdown, version-controlled alongside your code. AI generates structured plans and teaches your coding agent (Cursor, Claude Code, Codex) how to follow them.
|
|
10
10
|
|
|
11
11
|
---
|
|
12
12
|
|
|
@@ -14,9 +14,14 @@ Planr brings structured agile planning to AI coding workflows. Create planning a
|
|
|
14
14
|
|
|
15
15
|
AI coding assistants are powerful but lack structured planning. Without a clear plan, they generate code that drifts from requirements. Planr solves this by:
|
|
16
16
|
|
|
17
|
-
1. **
|
|
18
|
-
2. **
|
|
19
|
-
3. **
|
|
17
|
+
1. **Capturing ideas instantly** — `planr backlog add` captures work items without breaking your flow
|
|
18
|
+
2. **Structuring your planning** — epics, features, stories, and tasks in markdown
|
|
19
|
+
3. **Sprint planning** — time-boxed iterations with velocity tracking and AI task selection
|
|
20
|
+
4. **Reusable patterns** — task templates for common workflows (REST endpoints, React components, etc.)
|
|
21
|
+
5. **AI-powered estimation** — story points, effort hours, and complexity analysis
|
|
22
|
+
6. **Generating AI rules** — rule files that give your AI assistant context about the plan
|
|
23
|
+
7. **GitHub integration** — push artifacts to issues, bi-directional sync, export reports
|
|
24
|
+
8. **Keeping everything in your repo** — artifacts live alongside your code, version-controlled
|
|
20
25
|
|
|
21
26
|
## Quick Start
|
|
22
27
|
|
|
@@ -28,14 +33,21 @@ npm install -g openplanr
|
|
|
28
33
|
cd my-project
|
|
29
34
|
planr init
|
|
30
35
|
|
|
31
|
-
#
|
|
32
|
-
planr
|
|
36
|
+
# Capture an idea
|
|
37
|
+
planr backlog add "add user profiles" --priority high --tag feature
|
|
33
38
|
|
|
34
|
-
#
|
|
39
|
+
# Or jump straight into planning
|
|
40
|
+
planr epic create
|
|
35
41
|
planr feature create --epic EPIC-001
|
|
36
42
|
planr story create --feature FEAT-001
|
|
37
|
-
planr task create --
|
|
38
|
-
|
|
43
|
+
planr task create --feature FEAT-001
|
|
44
|
+
|
|
45
|
+
# Generate tasks from a template
|
|
46
|
+
planr template use rest-endpoint --title "User Profile API"
|
|
47
|
+
|
|
48
|
+
# Start a sprint
|
|
49
|
+
planr sprint create --name "Sprint 1" --duration 2w
|
|
50
|
+
planr sprint add TASK-001 QT-001
|
|
39
51
|
|
|
40
52
|
# Generate AI rules for your editor
|
|
41
53
|
planr rules generate
|
|
@@ -43,20 +55,27 @@ planr rules generate
|
|
|
43
55
|
|
|
44
56
|
## How It Works
|
|
45
57
|
|
|
46
|
-
```
|
|
58
|
+
```text
|
|
59
|
+
Backlog → Agile Hierarchy → Sprint → Implementation
|
|
60
|
+
|
|
61
|
+
planr backlog add "..." # Capture ideas as they come
|
|
62
|
+
planr backlog prioritize # AI sorts by impact/effort
|
|
63
|
+
planr backlog promote BL-001 --quick # Move to task when ready
|
|
64
|
+
|
|
47
65
|
planr init
|
|
48
|
-
└── planr epic create
|
|
49
|
-
└── planr feature create --epic EPIC-001
|
|
50
|
-
└── planr story create --feature FEAT-001
|
|
51
|
-
|
|
52
|
-
└── planr task create --feature FEAT-001 # Tasks from all stories in the feature (+ same context, wider scope; larger AI budget)
|
|
66
|
+
└── planr epic create # Define the big picture
|
|
67
|
+
└── planr feature create --epic EPIC-001
|
|
68
|
+
└── planr story create --feature FEAT-001
|
|
69
|
+
└── planr task create --feature FEAT-001
|
|
53
70
|
|
|
54
|
-
planr
|
|
55
|
-
|
|
71
|
+
planr sprint create --name "Sprint 1" --duration 2w
|
|
72
|
+
planr sprint add TASK-001 QT-001 # Assign tasks (or --auto for AI)
|
|
73
|
+
planr sprint status # Track progress
|
|
56
74
|
|
|
57
|
-
|
|
75
|
+
planr rules generate # Generate .cursor/rules, CLAUDE.md, AGENTS.md
|
|
76
|
+
```
|
|
58
77
|
|
|
59
|
-
Or use `planr plan` to run the full flow in a single command:
|
|
78
|
+
Or use `planr plan` to run the full agile flow in a single command:
|
|
60
79
|
|
|
61
80
|
```bash
|
|
62
81
|
planr plan # start from scratch
|
|
@@ -65,11 +84,11 @@ planr plan --epic EPIC-001 # cascade from an existing epic
|
|
|
65
84
|
|
|
66
85
|
## Supported AI Targets
|
|
67
86
|
|
|
68
|
-
| Target | Generated File(s)
|
|
69
|
-
|
|
70
|
-
| Cursor | `.cursor/rules/*.mdc` | Cursor IDE
|
|
71
|
-
| Claude | `CLAUDE.md`
|
|
72
|
-
| Codex
|
|
87
|
+
| Target | Generated File(s) | Used By |
|
|
88
|
+
| ------ | --------------------- | ---------------- |
|
|
89
|
+
| Cursor | `.cursor/rules/*.mdc` | Cursor IDE |
|
|
90
|
+
| Claude | `CLAUDE.md` | Claude Code CLI |
|
|
91
|
+
| Codex | `AGENTS.md` | OpenAI Codex CLI |
|
|
73
92
|
|
|
74
93
|
```bash
|
|
75
94
|
planr rules generate # all targets
|
|
@@ -79,37 +98,81 @@ planr rules generate --dry-run # preview
|
|
|
79
98
|
|
|
80
99
|
## Commands
|
|
81
100
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
|
85
|
-
|
|
|
86
|
-
| `planr
|
|
87
|
-
| `planr
|
|
88
|
-
| `planr
|
|
89
|
-
| `planr
|
|
90
|
-
| `planr
|
|
91
|
-
| `planr
|
|
92
|
-
| `planr
|
|
93
|
-
| `planr
|
|
94
|
-
| `planr
|
|
95
|
-
| `planr
|
|
96
|
-
| `planr
|
|
97
|
-
| `planr
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
|
102
|
-
|
|
|
103
|
-
| `planr
|
|
104
|
-
| `planr
|
|
105
|
-
| `planr
|
|
106
|
-
| `planr
|
|
107
|
-
| `planr
|
|
108
|
-
| `planr
|
|
109
|
-
| `planr
|
|
110
|
-
| `planr
|
|
111
|
-
| `planr
|
|
112
|
-
| `planr
|
|
101
|
+
### Backlog & Sprint
|
|
102
|
+
|
|
103
|
+
| Command | Description |
|
|
104
|
+
| ----------------------------------------------------- | ------------------------------------------- |
|
|
105
|
+
| `planr backlog add "desc" --priority high --tag bug` | Capture a backlog item |
|
|
106
|
+
| `planr backlog list --tag bug --priority high` | List/filter backlog items |
|
|
107
|
+
| `planr backlog prioritize` | AI sorts open items by impact and effort |
|
|
108
|
+
| `planr backlog promote BL-001 --quick` | Promote to quick task or story |
|
|
109
|
+
| `planr backlog close BL-001` | Close/archive an item |
|
|
110
|
+
| `planr sprint create --name "Sprint 1" --duration 2w` | Create a time-boxed sprint |
|
|
111
|
+
| `planr sprint add TASK-001 QT-001` | Assign tasks to active sprint |
|
|
112
|
+
| `planr sprint add --auto` | AI selects tasks by priority and velocity |
|
|
113
|
+
| `planr sprint status` | Progress dashboard with completion % |
|
|
114
|
+
| `planr sprint close` | Archive sprint, carry over incomplete tasks |
|
|
115
|
+
| `planr sprint list` | List all sprints |
|
|
116
|
+
| `planr sprint history` | Velocity chart across past sprints |
|
|
117
|
+
|
|
118
|
+
### Agile Hierarchy
|
|
119
|
+
|
|
120
|
+
| Command | Description |
|
|
121
|
+
| ----------------------------------- | ----------------------------------------------------- |
|
|
122
|
+
| `planr epic create` | Create a new epic (supports `--file <path>` for PRDs) |
|
|
123
|
+
| `planr epic list` | List all epics |
|
|
124
|
+
| `planr feature create --epic <ID>` | Create features from an epic |
|
|
125
|
+
| `planr feature list` | List all features |
|
|
126
|
+
| `planr story create --feature <ID>` | Create user stories from a feature |
|
|
127
|
+
| `planr story create --epic <ID>` | Batch-generate stories for all features under an epic |
|
|
128
|
+
| `planr story list` | List all user stories |
|
|
129
|
+
| `planr task create --story <ID>` | AI task list from one story |
|
|
130
|
+
| `planr task create --feature <ID>` | AI task list from all stories under a feature |
|
|
131
|
+
| `planr task list` | List all task lists |
|
|
132
|
+
### Quick Tasks & Templates
|
|
133
|
+
|
|
134
|
+
| Command | Description |
|
|
135
|
+
| ----------------------------------------------------- | ---------------------------------- |
|
|
136
|
+
| `planr quick create "description"` | AI-generated standalone task list |
|
|
137
|
+
| `planr quick create --file spec.md` | Task list from a PRD or spec file |
|
|
138
|
+
| `planr quick promote <ID> --story US-001` | Move into agile hierarchy |
|
|
139
|
+
| `planr template list` | List built-in and custom templates |
|
|
140
|
+
| `planr template use rest-endpoint --title "User API"` | Generate tasks from a template |
|
|
141
|
+
| `planr template save TASK-001 --name my-pattern` | Save existing tasks as template |
|
|
142
|
+
| `planr template show rest-endpoint` | Preview template contents |
|
|
143
|
+
|
|
144
|
+
### Planning Tools
|
|
145
|
+
|
|
146
|
+
| Command | Description |
|
|
147
|
+
| ---------------------- | --------------------------------------------------------- |
|
|
148
|
+
| `planr plan` | Full automated flow: Epic -> Features -> Stories -> Tasks |
|
|
149
|
+
| `planr estimate <ID>` | AI effort estimation (story points, hours, complexity) |
|
|
150
|
+
| `planr refine <ID>` | AI-powered review and improvements |
|
|
151
|
+
| `planr search <query>` | Full-text search across all artifacts |
|
|
152
|
+
| `planr sync` | Validate and fix cross-references |
|
|
153
|
+
| `planr status` | Planning progress with tree view and metrics |
|
|
154
|
+
|
|
155
|
+
### GitHub & Export
|
|
156
|
+
|
|
157
|
+
| Command | Description |
|
|
158
|
+
| ---------------------------- | ------------------------------------------------ |
|
|
159
|
+
| `planr github push [ID]` | Push artifacts to GitHub Issues |
|
|
160
|
+
| `planr github sync` | Bi-directional status sync with GitHub |
|
|
161
|
+
| `planr github status` | Show sync status of linked artifacts |
|
|
162
|
+
| `planr export --format html` | Export planning report (markdown, JSON, or HTML) |
|
|
163
|
+
|
|
164
|
+
### Setup & config commands
|
|
165
|
+
|
|
166
|
+
| Command | Description |
|
|
167
|
+
| ----------------------------------- | ------------------------------------------------------ |
|
|
168
|
+
| `planr init` | Initialize project with config and directory structure |
|
|
169
|
+
| `planr config show` | Display current configuration |
|
|
170
|
+
| `planr config set-provider` | Set AI provider (anthropic, openai, ollama) |
|
|
171
|
+
| `planr config set-key` | Store API key securely |
|
|
172
|
+
| `planr config set-model` | Set AI model |
|
|
173
|
+
| `planr config set-agent` | Set default coding agent |
|
|
174
|
+
| `planr rules generate` | Generate AI agent rule files |
|
|
175
|
+
| `planr checklist show/toggle/reset` | Agile development checklist |
|
|
113
176
|
|
|
114
177
|
See [docs/CLI.md](docs/CLI.md) for the full command reference with all options and flags.
|
|
115
178
|
|
|
@@ -117,7 +180,7 @@ See [docs/CLI.md](docs/CLI.md) for the full command reference with all options a
|
|
|
117
180
|
|
|
118
181
|
After running `planr init` and creating artifacts:
|
|
119
182
|
|
|
120
|
-
```
|
|
183
|
+
```text
|
|
121
184
|
my-project/
|
|
122
185
|
├── planr.config.json
|
|
123
186
|
├── docs/agile/
|
|
@@ -125,6 +188,10 @@ my-project/
|
|
|
125
188
|
│ ├── features/ # FEAT-001-*.md
|
|
126
189
|
│ ├── stories/ # US-001-*.md + US-001-gherkin.feature
|
|
127
190
|
│ ├── tasks/ # TASK-001-*.md
|
|
191
|
+
│ ├── quick/ # QT-001-*.md
|
|
192
|
+
│ ├── backlog/ # BL-001-*.md
|
|
193
|
+
│ ├── sprints/ # SPRINT-001-*.md
|
|
194
|
+
│ ├── templates/ # Custom task templates
|
|
128
195
|
│ ├── adrs/ # Architecture Decision Records
|
|
129
196
|
│ ├── checklists/ # Agile development checklist
|
|
130
197
|
│ └── diagrams/ # UML, C4, sequence diagrams
|
|
@@ -151,11 +218,28 @@ my-project/
|
|
|
151
218
|
"epic": "EPIC",
|
|
152
219
|
"feature": "FEAT",
|
|
153
220
|
"story": "US",
|
|
154
|
-
"task": "TASK"
|
|
221
|
+
"task": "TASK",
|
|
222
|
+
"quick": "QT",
|
|
223
|
+
"backlog": "BL",
|
|
224
|
+
"sprint": "SPRINT"
|
|
155
225
|
}
|
|
156
226
|
}
|
|
157
227
|
```
|
|
158
228
|
|
|
229
|
+
## Built-in Task Templates
|
|
230
|
+
|
|
231
|
+
| Template | Description |
|
|
232
|
+
| -------------------- | ------------------------------------------------------- |
|
|
233
|
+
| `rest-endpoint` | CRUD endpoint with validation, auth, tests, docs |
|
|
234
|
+
| `react-component` | Component, stories, tests, types |
|
|
235
|
+
| `database-migration` | Schema change, migration, rollback, seed data |
|
|
236
|
+
| `api-integration` | External API client, retry logic, error handling, tests |
|
|
237
|
+
| `auth-flow` | Authentication flow with login, signup, password reset |
|
|
238
|
+
|
|
239
|
+
```bash
|
|
240
|
+
planr template use rest-endpoint --title "User Profile API"
|
|
241
|
+
```
|
|
242
|
+
|
|
159
243
|
## Development
|
|
160
244
|
|
|
161
245
|
```bash
|
package/dist/agents/index.d.ts
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
export { createAgent } from './agent-factory.js';
|
|
2
|
-
export { executeFollowUp, executeImplementation } from './implementation-bridge.js';
|
|
3
|
-
export { createProgressSpinner, describeActivity } from './progress.js';
|
|
4
|
-
export { composeImplementationPrompt } from './prompt-composer.js';
|
|
5
1
|
export { findSubtasks, getNextPending, parseTaskMarkdown } from './task-parser.js';
|
|
6
|
-
export
|
|
2
|
+
export { which } from './utils.js';
|
|
7
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/agents/index.js
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
export { createAgent } from './agent-factory.js';
|
|
2
|
-
export { executeFollowUp, executeImplementation } from './implementation-bridge.js';
|
|
3
|
-
export { createProgressSpinner, describeActivity } from './progress.js';
|
|
4
|
-
export { composeImplementationPrompt } from './prompt-composer.js';
|
|
5
1
|
export { findSubtasks, getNextPending, parseTaskMarkdown } from './task-parser.js';
|
|
2
|
+
export { which } from './utils.js';
|
|
6
3
|
//# sourceMappingURL=index.js.map
|
package/dist/agents/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -16,7 +16,10 @@ export interface ParsedSubtask {
|
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
18
|
* Parse a task list markdown file into structured subtasks.
|
|
19
|
-
* Expected format:
|
|
19
|
+
* Expected format:
|
|
20
|
+
* `- [x] **1.0** Task title` (bold group IDs)
|
|
21
|
+
* `- [x] 1.0 Task title` (plain group IDs)
|
|
22
|
+
* ` - [ ] 1.1 Subtask title` (indented subtasks)
|
|
20
23
|
*/
|
|
21
24
|
export declare function parseTaskMarkdown(content: string): ParsedSubtask[];
|
|
22
25
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-parser.d.ts","sourceRoot":"","sources":["../../src/agents/task-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;CACf;AAED
|
|
1
|
+
{"version":3,"file":"task-parser.d.ts","sourceRoot":"","sources":["../../src/agents/task-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,EAAE,CA+BlE;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,EAAE,CAgBnF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,aAAa,GAAG,IAAI,CAE3E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAStF"}
|
|
@@ -9,15 +9,18 @@
|
|
|
9
9
|
*/
|
|
10
10
|
/**
|
|
11
11
|
* Parse a task list markdown file into structured subtasks.
|
|
12
|
-
* Expected format:
|
|
12
|
+
* Expected format:
|
|
13
|
+
* `- [x] **1.0** Task title` (bold group IDs)
|
|
14
|
+
* `- [x] 1.0 Task title` (plain group IDs)
|
|
15
|
+
* ` - [ ] 1.1 Subtask title` (indented subtasks)
|
|
13
16
|
*/
|
|
14
17
|
export function parseTaskMarkdown(content) {
|
|
15
18
|
const tasks = [];
|
|
16
19
|
const lines = content.split('\n');
|
|
17
20
|
let currentGroupId = null;
|
|
18
21
|
for (const line of lines) {
|
|
19
|
-
// Match: - [x] 1.0 Task title OR - [ ] 1.1 Subtask title
|
|
20
|
-
const match = line.match(/^(\s*)- \[(x| )\]\s
|
|
22
|
+
// Match: - [x] **1.0** Task title OR - [x] 1.0 Task title OR - [ ] 1.1 Subtask title
|
|
23
|
+
const match = line.match(/^(\s*)- \[(x| )\]\s+\*{0,2}(\d+\.\d+)\*{0,2}\s+(.+)$/);
|
|
21
24
|
if (!match)
|
|
22
25
|
continue;
|
|
23
26
|
const indent = match[1].length;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-parser.js","sourceRoot":"","sources":["../../src/agents/task-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAUH
|
|
1
|
+
{"version":3,"file":"task-parser.js","sourceRoot":"","sources":["../../src/agents/task-parser.ts"],"names":[],"mappings":"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"}
|
package/dist/agents/utils.d.ts
CHANGED
|
@@ -6,8 +6,4 @@
|
|
|
6
6
|
* Returns the path to the command or null.
|
|
7
7
|
*/
|
|
8
8
|
export declare function which(command: string): Promise<string | null>;
|
|
9
|
-
export declare const MAX_RETRIES = 2;
|
|
10
|
-
export declare const RETRY_DELAY_MS = 3000;
|
|
11
|
-
export declare function isRetryableError(stderr: string): boolean;
|
|
12
|
-
export declare function sleep(ms: number): Promise<void>;
|
|
13
9
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/agents/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/agents/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH;;;GAGG;AACH,wBAAsB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CASnE"}
|
package/dist/agents/utils.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { execFile } from 'node:child_process';
|
|
5
5
|
import { promisify } from 'node:util';
|
|
6
|
+
import { logger } from '../utils/logger.js';
|
|
6
7
|
const execFileAsync = promisify(execFile);
|
|
7
8
|
/**
|
|
8
9
|
* Check if a command exists on the system PATH.
|
|
@@ -14,31 +15,9 @@ export async function which(command) {
|
|
|
14
15
|
const { stdout } = await execFileAsync(cmd, [command]);
|
|
15
16
|
return stdout.trim() || null;
|
|
16
17
|
}
|
|
17
|
-
catch {
|
|
18
|
+
catch (err) {
|
|
19
|
+
logger.debug('Command lookup failed', err);
|
|
18
20
|
return null;
|
|
19
21
|
}
|
|
20
22
|
}
|
|
21
|
-
// ---------------------------------------------------------------------------
|
|
22
|
-
// Retry helpers (shared across agent adapters)
|
|
23
|
-
// ---------------------------------------------------------------------------
|
|
24
|
-
export const MAX_RETRIES = 2;
|
|
25
|
-
export const RETRY_DELAY_MS = 3000;
|
|
26
|
-
/** Patterns in stderr that indicate a transient/retryable API error */
|
|
27
|
-
const RETRYABLE_PATTERNS = [
|
|
28
|
-
'tool use concurrency',
|
|
29
|
-
'overloaded',
|
|
30
|
-
'429',
|
|
31
|
-
'500',
|
|
32
|
-
'503',
|
|
33
|
-
'rate limit',
|
|
34
|
-
'econnreset',
|
|
35
|
-
'socket hang up',
|
|
36
|
-
];
|
|
37
|
-
export function isRetryableError(stderr) {
|
|
38
|
-
const lower = stderr.toLowerCase();
|
|
39
|
-
return RETRYABLE_PATTERNS.some((p) => lower.includes(p));
|
|
40
|
-
}
|
|
41
|
-
export function sleep(ms) {
|
|
42
|
-
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
43
|
-
}
|
|
44
23
|
//# sourceMappingURL=utils.js.map
|
package/dist/agents/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/agents/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/agents/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,OAAe;IACzC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QAC7D,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QACvD,OAAO,MAAM,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;IAC/B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -1,16 +1,35 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Orchestrates codebase awareness into a single context string.
|
|
3
3
|
*
|
|
4
|
-
* Combines tech stack detection, folder tree,
|
|
5
|
-
* into a formatted block for
|
|
6
|
-
*
|
|
4
|
+
* Combines tech stack detection, folder tree, architecture files,
|
|
5
|
+
* and keyword-matched file snippets into a formatted block for
|
|
6
|
+
* inclusion in AI prompts. Respects a token budget to avoid overflow.
|
|
7
|
+
*
|
|
8
|
+
* Architecture files are always included — they define the patterns
|
|
9
|
+
* the AI must follow when generating implementation tasks.
|
|
7
10
|
*/
|
|
11
|
+
import { type PatternRule } from './pattern-rules.js';
|
|
8
12
|
import { type TechStack } from './stack-detector.js';
|
|
9
13
|
export interface CodebaseContext {
|
|
10
14
|
techStack: TechStack | null;
|
|
11
15
|
folderTree: string;
|
|
16
|
+
/** Compact listing of all source files in key directories. */
|
|
17
|
+
sourceInventory: string;
|
|
18
|
+
/** Core pattern files that define how the project is structured. */
|
|
19
|
+
architectureFiles: Map<string, string>;
|
|
20
|
+
/** Keyword-matched files relevant to the specific task. */
|
|
12
21
|
relatedFiles: Map<string, string>;
|
|
22
|
+
/** User-defined rules from `.planr/rules.md`. */
|
|
23
|
+
projectRules: string | null;
|
|
24
|
+
/** Auto-detected architectural patterns. */
|
|
25
|
+
patternRules: PatternRule[];
|
|
13
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Discover architecture files that exist in the project.
|
|
29
|
+
* Tries each candidate path per pattern — first match wins.
|
|
30
|
+
* Returns a map of relative paths → labeled, truncated content.
|
|
31
|
+
*/
|
|
32
|
+
export declare function findArchitectureFiles(projectDir: string): Promise<Map<string, string>>;
|
|
14
33
|
/**
|
|
15
34
|
* Build a complete codebase context for AI prompt enrichment.
|
|
16
35
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-builder.d.ts","sourceRoot":"","sources":["../../../src/ai/codebase/context-builder.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"context-builder.d.ts","sourceRoot":"","sources":["../../../src/ai/codebase/context-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE1E,OAAO,EAAoC,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAKvF,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,eAAe,EAAE,MAAM,CAAC;IACxB,oEAAoE;IACpE,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,2DAA2D;IAC3D,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,iDAAiD;IACjD,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,4CAA4C;IAC5C,YAAY,EAAE,WAAW,EAAE,CAAC;CAC7B;AA2DD;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAe5F;AA6ED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,EAClB,QAAQ,GAAE,MAAM,EAAO,GACtB,OAAO,CAAC,eAAe,CAAC,CA6B1B;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CA0ElE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CA0BzD"}
|