planr 1.7.0 → 1.7.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 +47 -22
- package/docs/ARCHITECTURE.md +3 -2
- package/docs/RELEASE.md +50 -7
- package/docs/SWITCHLOOM_COMPATIBILITY.md +46 -0
- package/docs/documentation/CONTRACT.md +7 -7
- package/docs/documentation/COVERAGE.md +5 -3
- package/docs/documentation/INFORMATION_ARCHITECTURE.md +5 -2
- package/npm/native/darwin-arm64/planr +0 -0
- package/npm/native/darwin-x86_64/planr +0 -0
- package/npm/native/linux-arm64/planr +0 -0
- package/npm/native/linux-x86_64/planr +0 -0
- package/package.json +5 -1
- package/plugins/planr/.claude-plugin/plugin.json +1 -1
- package/plugins/planr/.codex-plugin/plugin.json +1 -1
- package/plugins/planr/agents/planr-worker.md +1 -1
- package/plugins/planr/skills/planr-goal/SKILL.md +21 -49
- package/plugins/planr/skills/planr-loop/SKILL.md +28 -94
- package/plugins/planr/skills/planr-loop/agents/planr-worker.md +1 -1
- package/plugins/planr/skills/planr-loop/references/host-dispatch.md +10 -0
- package/plugins/planr/skills/planr-loop/references/recovery-and-verification.md +24 -0
- package/plugins/planr/skills/planr-task-graph/SKILL.md +21 -190
- package/docs/CI.md +0 -55
- package/docs/CLAUDE_CODE.md +0 -52
- package/docs/CLI_REFERENCE.md +0 -170
- package/docs/CODEX.md +0 -56
- package/docs/CURSOR.md +0 -114
- package/docs/EXAMPLE_WEBAPP.md +0 -103
- package/docs/GOALS.md +0 -175
- package/docs/HANDOFFS_AND_STORIES.md +0 -121
- package/docs/HOOKS.md +0 -34
- package/docs/IMPORT.md +0 -23
- package/docs/INSTALL.md +0 -115
- package/docs/MCP_CONTRACT.md +0 -78
- package/docs/MCP_GUIDE.md +0 -40
- package/docs/MODEL_ROUTING.md +0 -33
- package/docs/NPM.md +0 -40
- package/docs/OPERATING_MODEL.md +0 -250
- package/docs/ROUTING_BUNDLES.md +0 -15
- package/docs/SECURITY.md +0 -8
- package/docs/SKILLS.md +0 -261
- package/docs/TASK_GRAPH_MODEL.md +0 -272
- package/docs/TESTING.md +0 -87
- package/docs/TROUBLESHOOTING.md +0 -30
- package/docs/planr-spec/ADRS.md +0 -160
- package/docs/planr-spec/AI_SPEC.md +0 -138
- package/docs/planr-spec/ANALYTICS_OBSERVABILITY_SPEC.md +0 -124
- package/docs/planr-spec/API_AND_DATA_MODEL.md +0 -519
- package/docs/planr-spec/BACKEND_IMPLEMENTATION_SPEC.md +0 -178
- package/docs/planr-spec/CLIENT_IMPLEMENTATION_SPEC.md +0 -119
- package/docs/planr-spec/DESIGN_SYSTEM_SPEC.md +0 -102
- package/docs/planr-spec/PRODUCT_SPEC.md +0 -193
- package/docs/planr-spec/QA_ACCEPTANCE_TESTS.md +0 -146
- package/docs/planr-spec/README.md +0 -68
- package/docs/planr-spec/REFERENCES.md +0 -29
- package/docs/planr-spec/RELEASE_READINESS.md +0 -95
- package/docs/planr-spec/SAFETY_PRIVACY_SECURITY.md +0 -169
- package/docs/planr-spec/TASKS.md +0 -932
- package/docs/planr-spec/TECH_ARCHITECTURE.md +0 -145
- package/docs/planr-spec/UX_FLOWS.md +0 -235
- package/docs/release-candidates/planr-v1.5.2.md +0 -156
- /package/docs/{planr-spec → contracts}/EVAL_CONTRACT_V1.md +0 -0
- /package/docs/{planr-spec → contracts}/V1_1_DIFFERENTIATION_CONTRACT.md +0 -0
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
# Backend Implementation Specification
|
|
2
|
-
|
|
3
|
-
## Backend Scope
|
|
4
|
-
|
|
5
|
-
The backend is a local engine embedded in the `planr` binary. It owns map state, plan parsing, search, MCP tools, optional HTTP/SSE, and integration runners.
|
|
6
|
-
|
|
7
|
-
## Language And Runtime
|
|
8
|
-
|
|
9
|
-
Recommended default:
|
|
10
|
-
|
|
11
|
-
- Rust 2021 or newer.
|
|
12
|
-
- `rusqlite` or equivalent SQLite binding.
|
|
13
|
-
- `clap` for CLI.
|
|
14
|
-
- `serde` for JSON.
|
|
15
|
-
- `tokio` and `axum` only if HTTP/SSE ships in V1.
|
|
16
|
-
|
|
17
|
-
## Core Modules
|
|
18
|
-
|
|
19
|
-
```text
|
|
20
|
-
src/
|
|
21
|
-
core/
|
|
22
|
-
graph.rs
|
|
23
|
-
state_machine.rs
|
|
24
|
-
readiness.rs
|
|
25
|
-
log.rs
|
|
26
|
-
reviews.rs
|
|
27
|
-
search.rs
|
|
28
|
-
storage/
|
|
29
|
-
schema.rs
|
|
30
|
-
upgrades.rs
|
|
31
|
-
sqlite.rs
|
|
32
|
-
planpack/
|
|
33
|
-
markdown.rs
|
|
34
|
-
frontmatter.rs
|
|
35
|
-
project_pack.rs
|
|
36
|
-
packages.rs
|
|
37
|
-
cli/
|
|
38
|
-
mcp/
|
|
39
|
-
server/
|
|
40
|
-
agents/
|
|
41
|
-
codex.rs
|
|
42
|
-
claude_code.rs
|
|
43
|
-
cursor.rs
|
|
44
|
-
git/
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
## State Machine
|
|
48
|
-
|
|
49
|
-
REQ-BE-001: State transitions must be centralized.
|
|
50
|
-
|
|
51
|
-
Required transitions:
|
|
52
|
-
|
|
53
|
-
```text
|
|
54
|
-
pending -> ready
|
|
55
|
-
ready -> picked
|
|
56
|
-
picked -> running
|
|
57
|
-
running -> picked
|
|
58
|
-
running -> closed
|
|
59
|
-
running -> blocked
|
|
60
|
-
running -> failed
|
|
61
|
-
failed -> ready
|
|
62
|
-
running -> cancelled
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
Lenient single-agent convenience may allow `ready -> closed` only when no other active pick exists and the worker id is explicit.
|
|
66
|
-
|
|
67
|
-
## Readiness Engine
|
|
68
|
-
|
|
69
|
-
REQ-BE-010: Readiness must be recomputed transactionally after item creation, link changes, and closure.
|
|
70
|
-
|
|
71
|
-
REQ-BE-011: An item is ready only when all blocking and feeds-into links are closed or closed_partial.
|
|
72
|
-
|
|
73
|
-
REQ-BE-012: Parent item closure must check required children and reviews.
|
|
74
|
-
|
|
75
|
-
## Atomic Picking
|
|
76
|
-
|
|
77
|
-
REQ-BE-020: Picking must use an atomic update equivalent to:
|
|
78
|
-
|
|
79
|
-
```sql
|
|
80
|
-
UPDATE items
|
|
81
|
-
SET status = 'picked',
|
|
82
|
-
worker_id = ?,
|
|
83
|
-
pick_token = ?,
|
|
84
|
-
picked_at = CURRENT_TIMESTAMP,
|
|
85
|
-
last_heartbeat_at = CURRENT_TIMESTAMP
|
|
86
|
-
WHERE id = ? AND status = 'ready';
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
The caller succeeds only when exactly one row changes.
|
|
90
|
-
|
|
91
|
-
REQ-BE-021: Heartbeat updates must require the same worker owner when an owner exists, move `picked` to `running`, and refresh `last_heartbeat_at`.
|
|
92
|
-
|
|
93
|
-
REQ-BE-022: Progress, pause, and resume must preserve `worker_id` and `pick_token`.
|
|
94
|
-
|
|
95
|
-
REQ-BE-023: Stale detection must compare `last_heartbeat_at`, `picked_at`, or `updated_at` against an explicit threshold and release only when the caller requests release.
|
|
96
|
-
|
|
97
|
-
## Approval Gates
|
|
98
|
-
|
|
99
|
-
REQ-BE-025: Approval request must store status `requested`, request time, and optional reason.
|
|
100
|
-
|
|
101
|
-
REQ-BE-026: Approval approve and deny must store the decision maker and optional comment.
|
|
102
|
-
|
|
103
|
-
REQ-BE-027: Close must reject items with approval status `requested` or `denied`.
|
|
104
|
-
|
|
105
|
-
## Markdown Plan Parser
|
|
106
|
-
|
|
107
|
-
REQ-BE-030: Parser must support YAML frontmatter and Markdown headings.
|
|
108
|
-
|
|
109
|
-
REQ-BE-031: Parser must preserve files on parse errors and store a parse error record.
|
|
110
|
-
|
|
111
|
-
REQ-BE-032: Parser must map headings to stable section ids using slug + heading depth + ordinal.
|
|
112
|
-
|
|
113
|
-
REQ-BE-033: Parser must not execute instructions contained in plan files.
|
|
114
|
-
|
|
115
|
-
## Search
|
|
116
|
-
|
|
117
|
-
REQ-BE-040: Search must index:
|
|
118
|
-
|
|
119
|
-
- item title/description;
|
|
120
|
-
- context content;
|
|
121
|
-
- plan title/manifest/frontmatter/headings;
|
|
122
|
-
- log summary;
|
|
123
|
-
- review findings summary.
|
|
124
|
-
|
|
125
|
-
REQ-BE-041: Search results must identify source type and path/id.
|
|
126
|
-
|
|
127
|
-
## MCP Server
|
|
128
|
-
|
|
129
|
-
REQ-BE-050: MCP stdio server must start with `planr mcp`.
|
|
130
|
-
|
|
131
|
-
REQ-BE-051: Tool schemas must validate all mutation inputs.
|
|
132
|
-
|
|
133
|
-
REQ-BE-052: Tools must return compact JSON optimized for agent context.
|
|
134
|
-
|
|
135
|
-
REQ-BE-053: Resources must expose read-only project, item, plan, and log data.
|
|
136
|
-
|
|
137
|
-
REQ-BE-054: Prompts must expose Planr workflow prompts.
|
|
138
|
-
|
|
139
|
-
## HTTP/SSE Server
|
|
140
|
-
|
|
141
|
-
Optional V1:
|
|
142
|
-
|
|
143
|
-
- `planr serve --port 7526`.
|
|
144
|
-
- localhost default bind.
|
|
145
|
-
- JSON REST API.
|
|
146
|
-
- SSE stream for events.
|
|
147
|
-
- no remote auth in V1 unless explicitly implemented.
|
|
148
|
-
|
|
149
|
-
## Package Import
|
|
150
|
-
|
|
151
|
-
REQ-BE-060: Import must consume Planr JSON packages created by `planr export`.
|
|
152
|
-
|
|
153
|
-
REQ-BE-061: Import preview must report package metadata, create counts, and conflicting item ids without mutating state.
|
|
154
|
-
|
|
155
|
-
REQ-BE-062: Confirmed import must restore package graph items, links, contexts, optional logs, optional plan file snapshots, and review artifacts.
|
|
156
|
-
|
|
157
|
-
## Agent Runners
|
|
158
|
-
|
|
159
|
-
Runner wrappers are optional but expected after core V1:
|
|
160
|
-
|
|
161
|
-
- Codex: `codex exec`, `codex review`.
|
|
162
|
-
- Claude Code: command runner or MCP-only guidance.
|
|
163
|
-
- Cursor: `cursor-agent` where available or MCP-only guidance.
|
|
164
|
-
|
|
165
|
-
REQ-BE-070: Runners must record run metadata and log.
|
|
166
|
-
|
|
167
|
-
REQ-BE-071: Runners must not hide approval, sandbox, or command failures.
|
|
168
|
-
|
|
169
|
-
## Verification
|
|
170
|
-
|
|
171
|
-
Backend must include:
|
|
172
|
-
|
|
173
|
-
- unit tests for state transitions;
|
|
174
|
-
- integration tests for atomic pick races;
|
|
175
|
-
- integration tests for heartbeat, progress, pause, resume, stale release, and approval-blocked closure;
|
|
176
|
-
- parser tests for valid and invalid plan files;
|
|
177
|
-
- MCP tool schema tests;
|
|
178
|
-
- import fixture tests for existing `.planr` layouts.
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
# Client Implementation Specification
|
|
2
|
-
|
|
3
|
-
## Client Surfaces
|
|
4
|
-
|
|
5
|
-
- CLI: primary V1 interface.
|
|
6
|
-
- MCP client: primary agent integration.
|
|
7
|
-
- Optional TUI/dashboard: local visual inspection.
|
|
8
|
-
- Install helpers: client-specific setup for Codex, Claude Code, Cursor.
|
|
9
|
-
|
|
10
|
-
## CLI Requirements
|
|
11
|
-
|
|
12
|
-
- REQ-CLI-001: Every command that mutates state must support `--json`.
|
|
13
|
-
- REQ-CLI-002: Human output must include next actions without hiding failure causes.
|
|
14
|
-
- REQ-CLI-003: Commands must be composable in shell scripts.
|
|
15
|
-
- REQ-CLI-004: `--db` or equivalent must allow alternate database paths.
|
|
16
|
-
- REQ-CLI-005: Planr must derive a stable worker id automatically from client/session context where available.
|
|
17
|
-
- REQ-CLI-006: `planr prompt` must print client-ready CLI, MCP, or HTTP instructions and report that global config was not edited.
|
|
18
|
-
- REQ-CLI-007: Recovery, import, cancellation, and replan commands must support preview-first workflows before destructive mutations.
|
|
19
|
-
|
|
20
|
-
## Command Groups
|
|
21
|
-
|
|
22
|
-
```text
|
|
23
|
-
planr project ...
|
|
24
|
-
planr plan ...
|
|
25
|
-
planr map ...
|
|
26
|
-
planr item ...
|
|
27
|
-
planr pick
|
|
28
|
-
planr log ...
|
|
29
|
-
planr review ...
|
|
30
|
-
planr recover ...
|
|
31
|
-
planr prompt cli|mcp|http
|
|
32
|
-
planr close
|
|
33
|
-
planr context ...
|
|
34
|
-
planr search
|
|
35
|
-
planr doctor
|
|
36
|
-
planr mcp
|
|
37
|
-
planr serve
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
## MCP Client Requirements
|
|
41
|
-
|
|
42
|
-
- REQ-CLIENT-010: MCP tools must have stable names and JSON schemas.
|
|
43
|
-
- REQ-CLIENT-011: MCP prompts must expose plan/work/review/map/summary workflows.
|
|
44
|
-
- REQ-CLIENT-012: MCP resources must be read-only.
|
|
45
|
-
- REQ-CLIENT-013: Mutation tools must return compact log summaries and next-action hints.
|
|
46
|
-
|
|
47
|
-
## Codex Integration
|
|
48
|
-
|
|
49
|
-
V1 must provide:
|
|
50
|
-
|
|
51
|
-
- `planr install codex` or `planr doctor --client codex`.
|
|
52
|
-
- MCP registration instructions compatible with Codex CLI.
|
|
53
|
-
- Optional AGENTS.md snippet.
|
|
54
|
-
- Optional `planr codex run` post-V1 wrapper for `codex exec`.
|
|
55
|
-
|
|
56
|
-
Acceptance:
|
|
57
|
-
|
|
58
|
-
- REQ-CLIENT-020: A Codex user can see Planr MCP registration command and verify it with `codex mcp list`.
|
|
59
|
-
- REQ-CLIENT-021: Codex prompts must not assume Codex is the only agent in the project.
|
|
60
|
-
|
|
61
|
-
## Claude Code Integration
|
|
62
|
-
|
|
63
|
-
V1 must provide:
|
|
64
|
-
|
|
65
|
-
- `.mcp.json` project-scoped config example.
|
|
66
|
-
- `claude mcp add` command example where available.
|
|
67
|
-
- Prompt/skill instructions that preserve Planr graph SSOT.
|
|
68
|
-
|
|
69
|
-
Acceptance:
|
|
70
|
-
|
|
71
|
-
- REQ-CLIENT-030: Claude Code install output must explain project vs user scope.
|
|
72
|
-
- REQ-CLIENT-031: Claude Code prompt package must include plan/work/review/map/summary workflows.
|
|
73
|
-
|
|
74
|
-
## Cursor Integration
|
|
75
|
-
|
|
76
|
-
V1 must provide:
|
|
77
|
-
|
|
78
|
-
- `.cursor/mcp.json` project config example.
|
|
79
|
-
- Global `~/.cursor/mcp.json` example.
|
|
80
|
-
- Cursor Agent usage notes.
|
|
81
|
-
|
|
82
|
-
Acceptance:
|
|
83
|
-
|
|
84
|
-
- REQ-CLIENT-040: Cursor install output must distinguish stdio, SSE, and streamable HTTP options when relevant.
|
|
85
|
-
- REQ-CLIENT-041: Cursor prompts must avoid relying on Codex-only skill behavior.
|
|
86
|
-
|
|
87
|
-
## Optional TUI/Dashboard
|
|
88
|
-
|
|
89
|
-
If implemented:
|
|
90
|
-
|
|
91
|
-
- read-only by default;
|
|
92
|
-
- optional mutation actions behind confirmation;
|
|
93
|
-
- graph and list views;
|
|
94
|
-
- live event updates;
|
|
95
|
-
- local-only server.
|
|
96
|
-
|
|
97
|
-
The implemented local browser review workspace is served at `/review` with data from `/v1/review-workspace`.
|
|
98
|
-
|
|
99
|
-
## Offline Behavior
|
|
100
|
-
|
|
101
|
-
All V1 client flows must work without internet once the binary is installed.
|
|
102
|
-
|
|
103
|
-
## Error Handling
|
|
104
|
-
|
|
105
|
-
Errors must include:
|
|
106
|
-
|
|
107
|
-
- machine-readable code;
|
|
108
|
-
- plain-language message;
|
|
109
|
-
- affected object id/path;
|
|
110
|
-
- suggested next command when safe.
|
|
111
|
-
|
|
112
|
-
## Client Tests
|
|
113
|
-
|
|
114
|
-
- CLI golden output tests.
|
|
115
|
-
- JSON schema output tests.
|
|
116
|
-
- MCP tool discovery tests.
|
|
117
|
-
- Config-generation fixture tests for Codex, Claude Code, and Cursor.
|
|
118
|
-
- Prompt output tests for CLI, MCP, HTTP, and per-client wording.
|
|
119
|
-
- Browser workspace smoke tests against localhost.
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
# Design System Specification
|
|
2
|
-
|
|
3
|
-
## Design Principles
|
|
4
|
-
|
|
5
|
-
- Operational, not decorative.
|
|
6
|
-
- Dense enough for repeated developer use.
|
|
7
|
-
- Log-first: status, blockers, files, and verification are always scannable.
|
|
8
|
-
- Calm hierarchy: avoid dashboards that obscure the next action.
|
|
9
|
-
- Text remains copyable and useful in terminals.
|
|
10
|
-
|
|
11
|
-
## Brand Tone
|
|
12
|
-
|
|
13
|
-
Planr should sound precise, direct, and practical:
|
|
14
|
-
|
|
15
|
-
- "picked i-api by codex-1"
|
|
16
|
-
- "blocked: t-schema is not done"
|
|
17
|
-
- "review found 2 issues"
|
|
18
|
-
|
|
19
|
-
Avoid hype, gamification, and vague success language.
|
|
20
|
-
|
|
21
|
-
## Visual Direction
|
|
22
|
-
|
|
23
|
-
- CLI/TUI: high-contrast, compact, status-color restrained.
|
|
24
|
-
- Web dashboard: work-focused, table/graph hybrid, no oversized hero sections.
|
|
25
|
-
- Cards only for repeated items, log, and item summaries.
|
|
26
|
-
- Radius: 6px maximum unless platform default requires otherwise.
|
|
27
|
-
|
|
28
|
-
## Color System
|
|
29
|
-
|
|
30
|
-
- Neutral background.
|
|
31
|
-
- Status colors:
|
|
32
|
-
- ready: blue or cyan.
|
|
33
|
-
- running/picked: amber.
|
|
34
|
-
- done: green.
|
|
35
|
-
- blocked/failed: red.
|
|
36
|
-
- review: violet only as accent, not dominant palette.
|
|
37
|
-
- Provide no-color output mode.
|
|
38
|
-
|
|
39
|
-
## Typography
|
|
40
|
-
|
|
41
|
-
- CLI: terminal default.
|
|
42
|
-
- Dashboard: system UI font for text, monospace for ids/commands.
|
|
43
|
-
- No viewport-scaled text.
|
|
44
|
-
- Long ids and paths must wrap or truncate with copy affordance.
|
|
45
|
-
|
|
46
|
-
## Spacing And Layout
|
|
47
|
-
|
|
48
|
-
- Item rows must keep stable height in tables.
|
|
49
|
-
- Graph nodes must have predictable min/max widths.
|
|
50
|
-
- Side panels should show details without covering the primary queue.
|
|
51
|
-
- Mobile dashboard, if implemented, uses stacked list/detail, not dense graph canvas.
|
|
52
|
-
|
|
53
|
-
## Component System
|
|
54
|
-
|
|
55
|
-
- Status badge.
|
|
56
|
-
- Item row.
|
|
57
|
-
- Dependency edge.
|
|
58
|
-
- Plan link.
|
|
59
|
-
- Log card.
|
|
60
|
-
- Command log block.
|
|
61
|
-
- Review finding row.
|
|
62
|
-
- Agent run row.
|
|
63
|
-
- Search result row.
|
|
64
|
-
- Doctor diagnostic item.
|
|
65
|
-
|
|
66
|
-
## Motion And Haptics
|
|
67
|
-
|
|
68
|
-
- No required motion.
|
|
69
|
-
- Dashboard transitions must respect reduced motion.
|
|
70
|
-
- Live updates may pulse once but must not animate continuously.
|
|
71
|
-
|
|
72
|
-
## Iconography And Illustration
|
|
73
|
-
|
|
74
|
-
- Use simple icons only for status, actions, and diagnostics.
|
|
75
|
-
- Do not use decorative illustrations in the product UI.
|
|
76
|
-
|
|
77
|
-
## Data Visualization Rules
|
|
78
|
-
|
|
79
|
-
- Graph view must distinguish containment from dependency edges.
|
|
80
|
-
- Critical path must be visually separable from general edges.
|
|
81
|
-
- Hidden nodes must be indicated with counts.
|
|
82
|
-
- Graph view must have an equivalent text/table representation.
|
|
83
|
-
|
|
84
|
-
## Accessibility Requirements
|
|
85
|
-
|
|
86
|
-
- REQ-DES-001: All dashboard actions must be keyboard reachable.
|
|
87
|
-
- REQ-DES-002: Color cannot be the only status indicator.
|
|
88
|
-
- REQ-DES-003: Command blocks must be selectable and copyable.
|
|
89
|
-
- REQ-DES-004: Graph state must be available as text for screen readers.
|
|
90
|
-
|
|
91
|
-
## Platform-Specific UI Conventions
|
|
92
|
-
|
|
93
|
-
- CLI follows Unix command conventions.
|
|
94
|
-
- MCP prompt names are stable and descriptive.
|
|
95
|
-
- Cursor/Claude/Codex instructions should use each client's standard config paths and avoid hidden global edits unless requested.
|
|
96
|
-
|
|
97
|
-
## Do Not Do
|
|
98
|
-
|
|
99
|
-
- Do not build a marketing landing page as the product surface.
|
|
100
|
-
- Do not use a single purple gradient theme.
|
|
101
|
-
- Do not hide blockers behind cheerful progress summaries.
|
|
102
|
-
- Do not put UI cards inside cards.
|
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
# Product Specification
|
|
2
|
-
|
|
3
|
-
## Vision
|
|
4
|
-
|
|
5
|
-
Planr is the planning and coordination layer coding agents are missing: a local-first system that turns an app idea into a production plan, narrows it into a build plan, and runs the work on a dependency-aware map with log-backed review.
|
|
6
|
-
|
|
7
|
-
## Product Promise
|
|
8
|
-
|
|
9
|
-
Planr turns broad product ideas and coding work into a coherent flow: product plan -> build plan -> map -> pick -> log -> review/evidence -> recovery/package -> close. It prevents duplicate work through atomic picks and makes closure auditable through logs, reviews, verification, and explicit recovery.
|
|
10
|
-
|
|
11
|
-
## Target Users
|
|
12
|
-
|
|
13
|
-
- Individual developers running one or more coding agents locally.
|
|
14
|
-
- Power users coordinating Codex, Claude Code, Cursor, Gemini CLI, or custom MCP agents in the same repo.
|
|
15
|
-
- Teams that want repo-local planning artifacts before adopting a hosted workflow.
|
|
16
|
-
- Agent builders who need a small coordination primitive for local or CI-based agent workers.
|
|
17
|
-
|
|
18
|
-
## Problems Solved
|
|
19
|
-
|
|
20
|
-
- Agents lose context across sessions, compaction, and handoffs.
|
|
21
|
-
- Flat todo lists cannot model dependency order or safe parallelism.
|
|
22
|
-
- Markdown plans have rich context but weak live status and no atomic picking unless connected to a map.
|
|
23
|
-
- Issue trackers are too human-centric for fast, mid-flight agent replanning.
|
|
24
|
-
- Agent completions often lack proof: no files, commands, review, or blocked-state record.
|
|
25
|
-
|
|
26
|
-
## Product Principles
|
|
27
|
-
|
|
28
|
-
- Local first: the repository plus a local database should be enough.
|
|
29
|
-
- Product plans capture intent, build plans capture implementation context, and the map coordinates live work.
|
|
30
|
-
- Log over optimism: completion is proven, not declared.
|
|
31
|
-
- Cross-agent by default: Codex, Claude Code, Cursor, and MCP clients are peers.
|
|
32
|
-
- Hard-cut bias: avoid duplicate sources of truth and transitional shells.
|
|
33
|
-
- Human-readable artifacts: all important plans and decisions must be inspectable without a proprietary UI.
|
|
34
|
-
|
|
35
|
-
## V1 Scope
|
|
36
|
-
|
|
37
|
-
- A `planr` CLI.
|
|
38
|
-
- A local SQLite map graph with items, links, picks, contexts, artifacts, logs, reviews, runs, and events.
|
|
39
|
-
- A `.planr/` repo pack for plans, project context, review artifacts, and skill/prompt templates.
|
|
40
|
-
- MCP server exposing tools, resources, and prompts for Claude Code, Cursor, Codex, and compatible clients.
|
|
41
|
-
- Optional HTTP/SSE local server for dashboard and automation clients.
|
|
42
|
-
- Codex, Claude Code, and Cursor install/config helpers.
|
|
43
|
-
- Import of existing `.planr` data.
|
|
44
|
-
- Export/import of map graph and Markdown plan packs.
|
|
45
|
-
- Explicit recovery sweeps for stale, timed-out, and retryable work.
|
|
46
|
-
- Scoped Git/PR review evidence and a local browser review workspace.
|
|
47
|
-
- Reusable template packages with preview-first import.
|
|
48
|
-
- Prompt output for CLI, MCP, and HTTP agent setup without hidden global config edits.
|
|
49
|
-
|
|
50
|
-
## Explicit Non-Goals
|
|
51
|
-
|
|
52
|
-
- REQ-PROD-001: V1 must not require a cloud account, hosted database, or network service.
|
|
53
|
-
- REQ-PROD-002: V1 must not depend on unowned coordination-layer packages or hosted services.
|
|
54
|
-
- REQ-PROD-003: V1 must not be a general project management SaaS.
|
|
55
|
-
- REQ-PROD-004: V1 must not store full agent transcripts by default.
|
|
56
|
-
- REQ-PROD-005: V1 must not privilege one vendor as the only supported workflow.
|
|
57
|
-
|
|
58
|
-
## User Personas
|
|
59
|
-
|
|
60
|
-
- Solo operator: runs Codex and Claude Code in one repo and wants clean handoffs.
|
|
61
|
-
- Multi-agent power user: launches several workers and wants atomic picking plus conflict visibility.
|
|
62
|
-
- Reviewer: audits whether an item is actually closed against a plan, diff, log, and tests.
|
|
63
|
-
- Toolsmith: wants MCP/HTTP primitives to embed Planr in another agent system.
|
|
64
|
-
|
|
65
|
-
## Product Flow
|
|
66
|
-
|
|
67
|
-
The canonical Planr flow is:
|
|
68
|
-
|
|
69
|
-
```text
|
|
70
|
-
idea -> product plan -> build plan -> map -> pick -> log -> review/evidence -> recovery/package -> close
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
- Idea: raw user request, startup concept, feature request, bug, refactor, or product slice.
|
|
74
|
-
- Product plan: broad product/spec package for app ideas and major initiatives.
|
|
75
|
-
- Build plan: focused implementation contract for a buildable slice.
|
|
76
|
-
- Map: live dependency graph of executable items.
|
|
77
|
-
- Pick: atomic assignment of one ready item to one agent.
|
|
78
|
-
- Log: proof bundle for implementation, verification, review, or handoff.
|
|
79
|
-
- Review: approval or audit condition that blocks closure until satisfied.
|
|
80
|
-
- Evidence: scoped Git, PR URL, file, command, test, and artifact proof attached to the item.
|
|
81
|
-
- Recovery: explicit preview/apply operation for stale, timed-out, retryable, or condition-gated work.
|
|
82
|
-
- Package: reusable local export/import bundle for graph state, plans, logs, contexts, and review artifacts.
|
|
83
|
-
- Close: log-backed completion of an item or parent slice.
|
|
84
|
-
|
|
85
|
-
## Core Objects And Vocabulary
|
|
86
|
-
|
|
87
|
-
- Project: one repository or multi-root project tracked by Planr.
|
|
88
|
-
- Plan: Markdown artifact under `.planr/plans/` with an internal stage such as `product`, `build`, or `review`.
|
|
89
|
-
- Map: live graph for work items, links, picks, reviews, log, and status.
|
|
90
|
-
- Item: graph node with status, work type, owner, acceptance summary, and optional plan links.
|
|
91
|
-
- Link: directed relationship between items; blocking or non-blocking.
|
|
92
|
-
- Context: project-wide discovery, decision, constraint, or pattern.
|
|
93
|
-
- Log: proof bundle produced when an agent implements, verifies, reviews, or hands off work.
|
|
94
|
-
- Run: one agent execution attempt against an item.
|
|
95
|
-
- Review: approval node or policy requiring log before closure.
|
|
96
|
-
|
|
97
|
-
## Core User Journeys
|
|
98
|
-
|
|
99
|
-
- Initialize Planr in a repo and configure Codex, Claude Code, and Cursor.
|
|
100
|
-
- Create a plan from a broad app idea or PRD request.
|
|
101
|
-
- Convert product plan slices into build plans.
|
|
102
|
-
- Seed map items from a plan.
|
|
103
|
-
- Pick and execute the next ready item.
|
|
104
|
-
- Run multiple agents concurrently without duplicate picks.
|
|
105
|
-
- Add log with files, commands, tests, and result summary.
|
|
106
|
-
- Review an item against its plan and create fix/review follow-up items when needed.
|
|
107
|
-
- Inspect item-scoped Git evidence and optional PR URL context before approving work.
|
|
108
|
-
- Recover safely after interruption with explicit stale-pick and retry sweeps.
|
|
109
|
-
- Export a reusable package/template and preview import before mutating a project.
|
|
110
|
-
- Resume after interruption and see the current map, active plans, and blockers.
|
|
111
|
-
|
|
112
|
-
## Feature Requirements
|
|
113
|
-
|
|
114
|
-
### Initialization
|
|
115
|
-
|
|
116
|
-
- REQ-PROD-010: `planr project init` must create `.planr/`, `.planr/project/`, `.planr/plans/`, `.planr/reviews/`, and a local database without overwriting user content unless `--force` is provided.
|
|
117
|
-
- REQ-PROD-011: `planr project init --client codex|claude|cursor|all` must print or apply integration instructions for the selected client.
|
|
118
|
-
- REQ-PROD-012: Initialization must detect existing `.planr` data and offer import commands.
|
|
119
|
-
|
|
120
|
-
### Product Plans
|
|
121
|
-
|
|
122
|
-
- REQ-PROD-020: Product plans must support PRD/product spec, UX flows, design system plan, technical architecture, ADRs, AI spec where relevant, safety/privacy/security, API/data model, implementation specs, QA, release readiness, executable task checklist, and references.
|
|
123
|
-
- REQ-PROD-021: Product plan generation must ask only blocking questions and mark assumptions explicitly.
|
|
124
|
-
- REQ-PROD-022: Product plan requirements must use stable IDs and testable language.
|
|
125
|
-
- REQ-PROD-023: Product plan work lists must be convertible into build plans or map candidate items, but must not automatically become live map commitments without user/agent selection.
|
|
126
|
-
|
|
127
|
-
### Build Plans
|
|
128
|
-
|
|
129
|
-
- REQ-PROD-030: Build plans must support frontmatter, source, scope decision, ownership target, existing leverage, phases, verification, acceptance criteria, out-of-scope, and notes.
|
|
130
|
-
- REQ-PROD-031: A build plan may be linked to one or more map items.
|
|
131
|
-
- REQ-PROD-032: The project context pack must preserve product, ownership, flows, state SSOT, constraints, and quality checks.
|
|
132
|
-
- REQ-PROD-033: Plan closure claims must be reconciled against map item state and log.
|
|
133
|
-
|
|
134
|
-
### Map Planning
|
|
135
|
-
|
|
136
|
-
- REQ-PROD-040: Map items must support statuses: pending, ready, picked, running, in_review, blocked, closed, closed_partial, failed, cancelled.
|
|
137
|
-
- REQ-PROD-041: Links must support hard blocking order and soft contextual relationships.
|
|
138
|
-
- REQ-PROD-042: Item readiness must be computed from map graph state, not from Markdown checkboxes.
|
|
139
|
-
- REQ-PROD-043: Picking a ready item must be atomic across concurrent agents.
|
|
140
|
-
- REQ-PROD-044: Parent items must not close until required child code, fix, and review items are closed.
|
|
141
|
-
|
|
142
|
-
### Agent Execution
|
|
143
|
-
|
|
144
|
-
- REQ-PROD-050: Planr must provide agent-specific prompts or MCP prompts for Codex, Claude Code, and Cursor.
|
|
145
|
-
- REQ-PROD-051: Runs must record worker id, client, model/profile when available, item id, command surface, start/end time, and result status.
|
|
146
|
-
- REQ-PROD-052: Item closure must require or allow a log entry with files changed, tests run, commands run, result summary, and blocked/unverified items.
|
|
147
|
-
- REQ-PROD-053: Review findings must create fix items rather than failing ordinary code items.
|
|
148
|
-
- REQ-PROD-054: `planr prompt` must expose CLI, MCP, and HTTP operating instructions without editing global configuration.
|
|
149
|
-
|
|
150
|
-
### Search And Recall
|
|
151
|
-
|
|
152
|
-
- REQ-PROD-060: Planr must search items, plans, contexts, logs, and review artifacts.
|
|
153
|
-
- REQ-PROD-061: Picking an item must surface relevant upstream context and linked plan sections.
|
|
154
|
-
- REQ-PROD-062: Recovery sweep must preview stale, timed-out, retryable, and condition-gated work before applying mutations.
|
|
155
|
-
- REQ-PROD-063: Review evidence must distinguish item-scoped changed files from unrelated dirty worktree files.
|
|
156
|
-
- REQ-PROD-064: Package import must be preview-first and confirmed explicitly.
|
|
157
|
-
|
|
158
|
-
## Plans, Tiers, Monetization
|
|
159
|
-
|
|
160
|
-
- V1 is an open-source local tool.
|
|
161
|
-
- Commercial hosted sync, team dashboards, or enterprise policy packs are explicitly post-V1.
|
|
162
|
-
|
|
163
|
-
## Integrations
|
|
164
|
-
|
|
165
|
-
- Codex CLI and Codex MCP configuration.
|
|
166
|
-
- Claude Code MCP project/user configuration.
|
|
167
|
-
- Cursor MCP project/global configuration.
|
|
168
|
-
- Generic MCP clients via stdio and optional streamable HTTP.
|
|
169
|
-
- Git worktrees and Git diff logs.
|
|
170
|
-
- Optional CI invocation for verification tasks.
|
|
171
|
-
|
|
172
|
-
## Content, Moderation, And Safety Boundaries
|
|
173
|
-
|
|
174
|
-
Planr handles developer artifacts and may reference private code. It must minimize stored content and avoid collecting prompts, responses, source file contents, secrets, or private transcripts unless the user explicitly enables retention.
|
|
175
|
-
|
|
176
|
-
## Success Metrics
|
|
177
|
-
|
|
178
|
-
- A broad request can become a product plan, build plan, and map items without manual file editing.
|
|
179
|
-
- Two or more agents can pick independent items without collision.
|
|
180
|
-
- A reviewer can determine what changed, why, what was verified, and what remains.
|
|
181
|
-
- A repo can be resumed after interruption using only Planr state and Git state.
|
|
182
|
-
- A fresh consumer project can prove CLI, MCP, HTTP, review workspace, recovery, package, and installer behavior without relying on maintainer-only state.
|
|
183
|
-
|
|
184
|
-
## Analytics Constraints
|
|
185
|
-
|
|
186
|
-
- V1 analytics are local diagnostics only.
|
|
187
|
-
- No source code, prompt text, response text, file contents, secrets, or private plan body text may be sent to analytics.
|
|
188
|
-
|
|
189
|
-
## Open Decisions
|
|
190
|
-
|
|
191
|
-
- OD-PROD-001: Final implementation language: Rust is assumed, but Go remains viable.
|
|
192
|
-
- OD-PROD-002: Whether the local HTTP server ships in V1 or behind a feature flag.
|
|
193
|
-
- OD-PROD-003: Whether Codex-specific worker orchestration is V1 or V1.1.
|