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,146 +0,0 @@
|
|
|
1
|
-
# QA Acceptance Tests
|
|
2
|
-
|
|
3
|
-
## Test Strategy
|
|
4
|
-
|
|
5
|
-
Planr needs fast deterministic tests around graph correctness, plan parsing, MCP contracts, package import/export, and schema upgrades. The smallest relevant test should run before broader suites.
|
|
6
|
-
|
|
7
|
-
## Unit Tests
|
|
8
|
-
|
|
9
|
-
### State Machine
|
|
10
|
-
|
|
11
|
-
- REQ-QA-001: Valid transitions succeed.
|
|
12
|
-
- REQ-QA-002: Invalid transitions return `invalid_transition`.
|
|
13
|
-
- REQ-QA-003: Parent item cannot close while required child review is open.
|
|
14
|
-
- REQ-QA-004: Review annotation and feedback ingestion persist item-linked evidence without auto-closing or auto-approving work.
|
|
15
|
-
- REQ-QA-005: Closing a review writes a `.planr/reviews/*.review.md` artifact and registers it as a review artifact.
|
|
16
|
-
|
|
17
|
-
### Dependency Readiness
|
|
18
|
-
|
|
19
|
-
- REQ-QA-010: Item with no blockers becomes ready.
|
|
20
|
-
- REQ-QA-011: Item with unfinished upstream remains pending.
|
|
21
|
-
- REQ-QA-012: Completing upstream promotes downstream in the same transaction.
|
|
22
|
-
- REQ-QA-013: Soft relationship does not block readiness.
|
|
23
|
-
|
|
24
|
-
### Claiming
|
|
25
|
-
|
|
26
|
-
- REQ-QA-020: Two concurrent picks for one item produce exactly one winner.
|
|
27
|
-
- REQ-QA-021: Picked item cannot be picked by another agent.
|
|
28
|
-
- REQ-QA-022: Timeout/release policy is explicit and tested.
|
|
29
|
-
- REQ-QA-023: Heartbeat updates move picked work to running and record `last_heartbeat_at`.
|
|
30
|
-
- REQ-QA-024: Progress, pause, and resume preserve the worker claim while updating runtime state.
|
|
31
|
-
- REQ-QA-025: Stale picked work can be detected and intentionally released for re-pick.
|
|
32
|
-
- REQ-QA-026: Requested or denied approvals block close; approved approvals allow close when other gates pass.
|
|
33
|
-
- REQ-QA-027: Recovery sweep previews stale, timed-out, and retryable work before applying changes.
|
|
34
|
-
- REQ-QA-028: Recovery apply records recovery events and preserves manual pre/post condition visibility.
|
|
35
|
-
|
|
36
|
-
### Plan Parser
|
|
37
|
-
|
|
38
|
-
- REQ-QA-030: Valid `.plan.md` parses frontmatter and sections.
|
|
39
|
-
- REQ-QA-031: Invalid frontmatter records parse error without rewriting file.
|
|
40
|
-
- REQ-QA-032: Unknown frontmatter fields are preserved.
|
|
41
|
-
|
|
42
|
-
## Integration Tests
|
|
43
|
-
|
|
44
|
-
### CLI
|
|
45
|
-
|
|
46
|
-
- `planr project init` creates database and `.planr` pack.
|
|
47
|
-
- `planr plan new` creates a plan package.
|
|
48
|
-
- `planr plan split` creates a deterministic build plan file.
|
|
49
|
-
- `planr item create` creates a map item.
|
|
50
|
-
- `planr pick` picks next ready item.
|
|
51
|
-
- `planr log add` creates log.
|
|
52
|
-
- `planr close` closes item and promotes downstream.
|
|
53
|
-
- `planr map show --json` returns valid JSON.
|
|
54
|
-
- `planr recover sweep` previews and applies explicit recovery actions.
|
|
55
|
-
- `planr review evidence` records item-scoped Git evidence without source content.
|
|
56
|
-
- `planr prompt cli|mcp|http` prints setup text and does not edit global config.
|
|
57
|
-
- `planr export` and `planr import --preview/--confirm` preserve templates, graph state, logs, plan snapshots, and review artifacts.
|
|
58
|
-
|
|
59
|
-
### MCP
|
|
60
|
-
|
|
61
|
-
- MCP server starts over stdio.
|
|
62
|
-
- Tool list includes required Planr tools.
|
|
63
|
-
- Read-only resource reads cannot mutate state.
|
|
64
|
-
- Mutation tools validate schemas.
|
|
65
|
-
- Prompts list includes plan/work/review/map/summary.
|
|
66
|
-
|
|
67
|
-
### HTTP/SSE
|
|
68
|
-
|
|
69
|
-
Only if shipped:
|
|
70
|
-
|
|
71
|
-
- REST endpoints match API spec.
|
|
72
|
-
- SSE emits item state changes.
|
|
73
|
-
- Artifact endpoints persist and return item-linked artifacts.
|
|
74
|
-
- Event endpoints return persisted transition events.
|
|
75
|
-
- Debug bundle preview omits source file content and prompt/response transcripts.
|
|
76
|
-
- Server binds to localhost by default.
|
|
77
|
-
- `/review` renders the local review workspace and supports annotation, request-changes, artifact, and approve flows through the HTTP API.
|
|
78
|
-
|
|
79
|
-
## Package Import Tests
|
|
80
|
-
|
|
81
|
-
- Exported packages preview create counts and conflicting item ids without mutation.
|
|
82
|
-
- Confirmed imports restore graph items, links, contexts, optional logs, optional plan files, and review artifacts.
|
|
83
|
-
- Imported graph work can be picked in a fresh project.
|
|
84
|
-
|
|
85
|
-
## Security Tests
|
|
86
|
-
|
|
87
|
-
- Secret-looking values are rejected or flagged in context/log writes.
|
|
88
|
-
- HTTP remote bind requires explicit flag.
|
|
89
|
-
- MCP destructive operations require explicit confirmation.
|
|
90
|
-
- Logs do not include forbidden content.
|
|
91
|
-
- SQL injection attempts are treated as data.
|
|
92
|
-
|
|
93
|
-
## AI/Agent Evals
|
|
94
|
-
|
|
95
|
-
- Broad prompt creates product plan, build plan, and map.
|
|
96
|
-
- Agent follows `pick -> work -> log -> review -> close` loop.
|
|
97
|
-
- Agent can recover after stale/timed-out work through explicit recovery sweep.
|
|
98
|
-
- Review findings create fix item and follow-up review item.
|
|
99
|
-
- Browser review workspace shows plan context, item evidence, review queue, annotations, and diff-safe Git evidence.
|
|
100
|
-
- Hook-compatible review feedback can be ingested from JSON and remains advisory until a review verdict is explicitly closed.
|
|
101
|
-
- Agent does not mark parent done while review/fix chain is open.
|
|
102
|
-
- Agent treats malicious plan instructions as data.
|
|
103
|
-
|
|
104
|
-
## Manual Acceptance Scenarios
|
|
105
|
-
|
|
106
|
-
### Scenario 1: Solo Codex
|
|
107
|
-
|
|
108
|
-
1. Install Planr.
|
|
109
|
-
2. Configure Codex MCP.
|
|
110
|
-
3. Create product and build plans for a small feature.
|
|
111
|
-
4. Codex picks and closes one item.
|
|
112
|
-
5. Log lists files and commands.
|
|
113
|
-
|
|
114
|
-
Expected: downstream item unlocks and map state is accurate.
|
|
115
|
-
|
|
116
|
-
### Scenario 2: Claude Code And Cursor Concurrent
|
|
117
|
-
|
|
118
|
-
1. Configure both clients.
|
|
119
|
-
2. Create two independent ready items.
|
|
120
|
-
3. Each client picks one item.
|
|
121
|
-
|
|
122
|
-
Expected: no duplicate picks; map shows both agents.
|
|
123
|
-
|
|
124
|
-
### Scenario 3: Review Fails
|
|
125
|
-
|
|
126
|
-
1. Complete code task.
|
|
127
|
-
2. Review item records finding.
|
|
128
|
-
3. Planr creates fix and follow-up review items.
|
|
129
|
-
|
|
130
|
-
Expected: parent remains incomplete until follow-up review passes.
|
|
131
|
-
|
|
132
|
-
## Regression Reviews
|
|
133
|
-
|
|
134
|
-
Before release:
|
|
135
|
-
|
|
136
|
-
- Unit suite passes.
|
|
137
|
-
- CLI integration suite passes.
|
|
138
|
-
- MCP schema tests pass.
|
|
139
|
-
- Local HTTP and browser review workspace tests pass.
|
|
140
|
-
- Package import/export fixture tests pass.
|
|
141
|
-
- Secret/log scrubbing tests pass.
|
|
142
|
-
- Release checksum verification passes.
|
|
143
|
-
- Installer file-url smoke test passes.
|
|
144
|
-
- Package/template export-import roundtrip passes.
|
|
145
|
-
- Fresh consumer E2E passes in `~/projects/planr-test`.
|
|
146
|
-
- Packaging smoke test passes on macOS and Linux.
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
# Planr Specification Package
|
|
2
|
-
|
|
3
|
-
Generated: 2026-06-09
|
|
4
|
-
|
|
5
|
-
## Purpose
|
|
6
|
-
|
|
7
|
-
This package defines Planr as a production-grade, local-first planning and execution coordination tool for coding agents. Planr combines product plans, build plans, and a live dependency-aware map with reviewable logs and integration surfaces for Codex, Claude Code, Cursor, and other MCP-capable agents.
|
|
8
|
-
|
|
9
|
-
## Package Contents
|
|
10
|
-
|
|
11
|
-
- PRODUCT_SPEC.md: product scope, flow, users, features, non-goals, and requirements.
|
|
12
|
-
- UX_FLOWS.md: CLI, MCP, and optional dashboard flows.
|
|
13
|
-
- DESIGN_SYSTEM_SPEC.md: UI and TUI design direction.
|
|
14
|
-
- TECH_ARCHITECTURE.md: system architecture and core ownership boundaries.
|
|
15
|
-
- ADRS.md: major product and architecture decisions.
|
|
16
|
-
- AI_SPEC.md: agent behavior, prompts, context, and evals.
|
|
17
|
-
- SAFETY_PRIVACY_SECURITY.md: data, privacy, security, and tool execution boundaries.
|
|
18
|
-
- API_AND_DATA_MODEL.md: project, plan, map, item, log, review, and API contracts.
|
|
19
|
-
- EVAL_CONTRACT_V1.md: frozen EvalSuite, evidence, v1.1 attempt-lineage and efficiency metrics, verdict, reason, CLI/MCP, database, and safety contract.
|
|
20
|
-
- CLIENT_IMPLEMENTATION_SPEC.md: CLI, TUI, editor, and agent-client surfaces.
|
|
21
|
-
- BACKEND_IMPLEMENTATION_SPEC.md: local service, MCP server, HTTP/SSE, and storage implementation.
|
|
22
|
-
- ANALYTICS_OBSERVABILITY_SPEC.md: no-content telemetry, local logs, and diagnostics.
|
|
23
|
-
- QA_ACCEPTANCE_TESTS.md: acceptance suites and regression strategy.
|
|
24
|
-
- RELEASE_READINESS.md: packaging, install, upgrade, and release checks.
|
|
25
|
-
- V1_1_DIFFERENTIATION_CONTRACT.md: V1.1 product differentiation requirements, acceptance criteria, and final verification contract.
|
|
26
|
-
- TASKS.md: executable implementation tasks for coding agents.
|
|
27
|
-
- REFERENCES.md: sources and source-derived assumptions.
|
|
28
|
-
|
|
29
|
-
## Global Assumptions
|
|
30
|
-
|
|
31
|
-
- V1 is a local-first developer tool, not a hosted SaaS.
|
|
32
|
-
- The first implementation may be a Rust CLI and local daemon using SQLite.
|
|
33
|
-
- Codex, Claude Code, and Cursor should all work through standard CLI and MCP integration paths.
|
|
34
|
-
- Existing `.planr` data may be imported, but the V1 CLI, data model, and docs define the final product API.
|
|
35
|
-
- Planr should ship with its own name, code, docs, and architecture.
|
|
36
|
-
|
|
37
|
-
## Global Non-Goals
|
|
38
|
-
|
|
39
|
-
- Do not build cloud accounts, billing, team sync, or hosted dashboards in V1.
|
|
40
|
-
- Do not depend on unowned coordination-layer code.
|
|
41
|
-
- Do not make the map graph the only planning artifact; product and build plans are first-class.
|
|
42
|
-
- Do not store full prompts, private code, or agent transcripts by default.
|
|
43
|
-
- Do not make Codex the only supported client.
|
|
44
|
-
|
|
45
|
-
## Critical Invariants
|
|
46
|
-
|
|
47
|
-
- The map database is the source of truth for item state, links, picks, approvals, reviews, and closure.
|
|
48
|
-
- Product plans are the source of PRD, architecture, UX, security, QA, and release context.
|
|
49
|
-
- Build plans are the source of implementation-level scope, ownership, acceptance criteria, and narrative decisions.
|
|
50
|
-
- Agent closures require log: changed files, commands run, review outcome, and remaining blockers.
|
|
51
|
-
- Multiple agents must not pick the same ready item.
|
|
52
|
-
- Every external command/tool execution path must be explicit, inspectable, and attributable.
|
|
53
|
-
- Parent items are completion gates. Executable code, test, and review work should live in child items, and downstream work should depend on the parent gate when review cleanliness matters.
|
|
54
|
-
- Story logs and handoff documents explain narrative history only. They never override map state, logs, reviews, or plan acceptance criteria.
|
|
55
|
-
|
|
56
|
-
## How Coding Agents Should Use This Package
|
|
57
|
-
|
|
58
|
-
1. Read PRODUCT_SPEC.md, TECH_ARCHITECTURE.md, API_AND_DATA_MODEL.md, and TASKS.md first.
|
|
59
|
-
2. Use UX_FLOWS.md and CLIENT_IMPLEMENTATION_SPEC.md when implementing the CLI, TUI, MCP prompts, or dashboard.
|
|
60
|
-
3. Use AI_SPEC.md for agent prompt, context, and review-loop behavior.
|
|
61
|
-
4. Treat TASKS.md acceptance criteria as the build checklist.
|
|
62
|
-
5. Keep implementation aligned with ADRS.md unless a new ADR supersedes a decision.
|
|
63
|
-
|
|
64
|
-
## Operating References
|
|
65
|
-
|
|
66
|
-
- `../OPERATING_MODEL.md`: daily operator flow, parent gates, completion rules, and recovery.
|
|
67
|
-
- `../TASK_GRAPH_MODEL.md`: map objects, readiness, links, picks, reviews, and evidence.
|
|
68
|
-
- `../HANDOFFS_AND_STORIES.md`: log, context, note, story, and handoff policy.
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
# References
|
|
2
|
-
|
|
3
|
-
## Official External Sources
|
|
4
|
-
|
|
5
|
-
- OpenAI Codex CLI help on this machine, checked 2026-06-09 with `codex --help`, `codex exec --help`, `codex review --help`, and `codex mcp --help`.
|
|
6
|
-
- OpenAI Docs MCP: https://platform.openai.com/docs/docs-mcp
|
|
7
|
-
- Used for current Codex MCP setup concept and Codex/IDE shared MCP configuration note.
|
|
8
|
-
- OpenAI Codex CLI Help Center: https://help.openai.com/en/articles/11096431
|
|
9
|
-
- Used for Codex CLI local coding agent and approval workflow positioning.
|
|
10
|
-
- Claude Code MCP docs: https://code.claude.com/docs/en/mcp
|
|
11
|
-
- Used for Claude Code MCP integration and project/user configuration assumptions.
|
|
12
|
-
- Cursor MCP docs: https://docs.cursor.com/context/model-context-protocol
|
|
13
|
-
- Used for Cursor MCP transports, `.cursor/mcp.json`, global config, and security guidance.
|
|
14
|
-
- Model Context Protocol docs: https://modelcontextprotocol.io/specification/draft/server/prompts
|
|
15
|
-
- Used for MCP prompt behavior and prompt security requirements.
|
|
16
|
-
- Model Context Protocol docs: https://modelcontextprotocol.io/specification/2025-03-26/server/tools
|
|
17
|
-
- Used for MCP tool behavior and model-controlled tool concepts.
|
|
18
|
-
- Model Context Protocol docs: https://modelcontextprotocol.io/specification/draft/client/elicitation
|
|
19
|
-
- Used for sensitive information constraints and elicitation safety assumptions.
|
|
20
|
-
|
|
21
|
-
## Source Freshness Notes
|
|
22
|
-
|
|
23
|
-
- MCP and coding-agent client behavior changes frequently. Re-check Codex, Claude Code, Cursor, and MCP docs before implementing install helpers or promising exact config commands.
|
|
24
|
-
- The spec intentionally prefers stable integration concepts over vendor-specific hidden config internals.
|
|
25
|
-
|
|
26
|
-
## Product Independence Notes
|
|
27
|
-
|
|
28
|
-
- Planr docs, command names, assets, and implementation should remain original.
|
|
29
|
-
- Any retained code or asset must have its license recorded before release.
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
# Release Readiness
|
|
2
|
-
|
|
3
|
-
## Release Channels
|
|
4
|
-
|
|
5
|
-
- Source build from GitHub.
|
|
6
|
-
- Prebuilt binaries for macOS arm64/x86_64 and Linux arm64/x86_64.
|
|
7
|
-
- Homebrew formula after initial stable release.
|
|
8
|
-
- npm wrapper optional only if Node-based install convenience is needed.
|
|
9
|
-
|
|
10
|
-
## Versioning
|
|
11
|
-
|
|
12
|
-
- Semantic versioning.
|
|
13
|
-
- Database schema version stored in SQLite.
|
|
14
|
-
- MCP contract version exposed by `planr mcp --version` or initialize metadata.
|
|
15
|
-
|
|
16
|
-
## Packaging Requirements
|
|
17
|
-
|
|
18
|
-
- REQ-REL-001: Release binaries must be checksummed.
|
|
19
|
-
- REQ-REL-002: Install script must be readable, idempotent, and avoid hidden global config edits.
|
|
20
|
-
- REQ-REL-003: Agent integration commands must support dry-run.
|
|
21
|
-
- REQ-REL-004: Upgrade must not rewrite `.planr` files without an explicit Planr write command.
|
|
22
|
-
- REQ-REL-005: Download installs must verify `SHA256SUMS` from the same release location by default.
|
|
23
|
-
- REQ-REL-006: `PLANR_SKIP_CHECKSUM=1` may exist only as an explicit development-mirror escape hatch.
|
|
24
|
-
- REQ-REL-007: Release docs must distinguish release installs, Homebrew after tap publication, source builds, and Windows/WSL expectations.
|
|
25
|
-
|
|
26
|
-
## Upgrade Readiness
|
|
27
|
-
|
|
28
|
-
- Open current Planr workspaces without rewriting Markdown artifacts.
|
|
29
|
-
- Back up the SQLite database before schema upgrades.
|
|
30
|
-
- Report package import/export results before mutation.
|
|
31
|
-
- Provide rollback instructions for binary and database backups.
|
|
32
|
-
|
|
33
|
-
## Documentation Readiness
|
|
34
|
-
|
|
35
|
-
Required:
|
|
36
|
-
|
|
37
|
-
- README.
|
|
38
|
-
- Install guide.
|
|
39
|
-
- CLI reference generated from actual help.
|
|
40
|
-
- MCP integration guide.
|
|
41
|
-
- Codex guide.
|
|
42
|
-
- Claude Code guide.
|
|
43
|
-
- Cursor guide.
|
|
44
|
-
- Package import/export guide.
|
|
45
|
-
- Security and privacy notes.
|
|
46
|
-
- Troubleshooting/doctor guide.
|
|
47
|
-
|
|
48
|
-
## Security Review
|
|
49
|
-
|
|
50
|
-
Before public release:
|
|
51
|
-
|
|
52
|
-
- Review install script.
|
|
53
|
-
- Review MCP mutation tools.
|
|
54
|
-
- Review HTTP bind/auth behavior.
|
|
55
|
-
- Review log scrubbing.
|
|
56
|
-
- Review secret detection.
|
|
57
|
-
- Review dependency supply chain.
|
|
58
|
-
|
|
59
|
-
## QA Release Checklist
|
|
60
|
-
|
|
61
|
-
- `planr project init` smoke test in empty repo.
|
|
62
|
-
- Package import/export smoke test.
|
|
63
|
-
- Codex MCP registration smoke test.
|
|
64
|
-
- Claude Code MCP config smoke test.
|
|
65
|
-
- Cursor MCP config smoke test.
|
|
66
|
-
- Concurrent pick test.
|
|
67
|
-
- Review/fix loop test.
|
|
68
|
-
- Recovery sweep test.
|
|
69
|
-
- Local browser review workspace smoke test.
|
|
70
|
-
- Git/PR review evidence test.
|
|
71
|
-
- Export/import roundtrip test.
|
|
72
|
-
- Template package import preview and confirm test.
|
|
73
|
-
- `scripts/build-release.sh`, checksum verification, installer file-url smoke test, and `npm pack --dry-run`.
|
|
74
|
-
|
|
75
|
-
## Rollback
|
|
76
|
-
|
|
77
|
-
- Binary rollback: install previous version.
|
|
78
|
-
- Database rollback: restore the automatic backup created before schema upgrades.
|
|
79
|
-
- Plan files: never silently rewritten.
|
|
80
|
-
|
|
81
|
-
## Legal/Platform Items
|
|
82
|
-
|
|
83
|
-
- Confirm license review for any retained code, docs, or assets.
|
|
84
|
-
- Ensure final product docs use Planr-owned naming, examples, and command vocabulary.
|
|
85
|
-
- Ensure README states local privacy behavior clearly.
|
|
86
|
-
|
|
87
|
-
## Launch Criteria
|
|
88
|
-
|
|
89
|
-
- All regression reviews pass.
|
|
90
|
-
- Docs cover first-run setup for Codex, Claude Code, and Cursor.
|
|
91
|
-
- `planr doctor --client all` produces actionable output.
|
|
92
|
-
- `planr prompt cli|mcp|http` prints actionable instructions without editing config.
|
|
93
|
-
- Fresh consumer E2E passes in `~/projects/planr-test`.
|
|
94
|
-
- No content telemetry.
|
|
95
|
-
- Release smoke tests do not rewrite workspace files unexpectedly.
|
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
# Safety, Privacy, And Security
|
|
2
|
-
|
|
3
|
-
## Data Inventory
|
|
4
|
-
|
|
5
|
-
### Project Metadata
|
|
6
|
-
|
|
7
|
-
- Classification: INTERNAL.
|
|
8
|
-
- Collected from: repo path, user commands.
|
|
9
|
-
- Stored where: SQLite.
|
|
10
|
-
- Sent to: nowhere by default.
|
|
11
|
-
- Retention: until project is deleted.
|
|
12
|
-
- Analytics allowed: local aggregate only.
|
|
13
|
-
- Logging allowed: yes, without source content.
|
|
14
|
-
|
|
15
|
-
### Map Graph
|
|
16
|
-
|
|
17
|
-
- Classification: INTERNAL, may become SENSITIVE if item text includes private details.
|
|
18
|
-
- Stored where: SQLite.
|
|
19
|
-
- Sent to: MCP clients only when requested by local user/agent.
|
|
20
|
-
- Retention: until deleted/exported.
|
|
21
|
-
- Analytics allowed: counts only.
|
|
22
|
-
- Logging allowed: metadata only.
|
|
23
|
-
|
|
24
|
-
### Plans
|
|
25
|
-
|
|
26
|
-
- Classification: INTERNAL or SENSITIVE depending on repo content.
|
|
27
|
-
- Stored where: `.planr/`.
|
|
28
|
-
- Sent to: local MCP clients when requested.
|
|
29
|
-
- Retention: Git/repo controlled.
|
|
30
|
-
- Analytics allowed: no content analytics.
|
|
31
|
-
- Logging allowed: path/hash only.
|
|
32
|
-
|
|
33
|
-
### Log
|
|
34
|
-
|
|
35
|
-
- Classification: INTERNAL or SENSITIVE depending on content.
|
|
36
|
-
- Stored where: SQLite.
|
|
37
|
-
- Sent to: local clients.
|
|
38
|
-
- Retention: until deleted/exported.
|
|
39
|
-
- Analytics allowed: status/counts only.
|
|
40
|
-
- Logging allowed: command metadata, not command output by default.
|
|
41
|
-
|
|
42
|
-
### Secrets
|
|
43
|
-
|
|
44
|
-
- Classification: SECRET.
|
|
45
|
-
- Stored where: never in Planr.
|
|
46
|
-
- Sent to: never intentionally.
|
|
47
|
-
- Logging allowed: no.
|
|
48
|
-
|
|
49
|
-
## Data Classification
|
|
50
|
-
|
|
51
|
-
- PUBLIC: public docs, release metadata.
|
|
52
|
-
- INTERNAL: item ids, statuses, event types, local metrics.
|
|
53
|
-
- PERSONAL: username, machine path if it identifies a person.
|
|
54
|
-
- SENSITIVE: private code plans, private tickets, prompts, transcripts, review content.
|
|
55
|
-
- SECRET: tokens, API keys, credentials, signing keys.
|
|
56
|
-
|
|
57
|
-
## Local Data
|
|
58
|
-
|
|
59
|
-
REQ-SEC-001: Planr stores V1 data locally under the repository or configured Planr home.
|
|
60
|
-
|
|
61
|
-
REQ-SEC-002: Planr must respect filesystem permissions and avoid writing outside configured paths except explicit install/config commands.
|
|
62
|
-
|
|
63
|
-
## Server Data
|
|
64
|
-
|
|
65
|
-
No server-side Planr storage in V1.
|
|
66
|
-
|
|
67
|
-
## Third-Party/Provider Data
|
|
68
|
-
|
|
69
|
-
Planr does not call AI providers by default. Agent clients may send Planr-provided context to their providers according to those clients' policies. Planr must minimize context and allow users to inspect what is returned to agents.
|
|
70
|
-
|
|
71
|
-
## Analytics Data
|
|
72
|
-
|
|
73
|
-
Allowed local diagnostics:
|
|
74
|
-
|
|
75
|
-
- command name;
|
|
76
|
-
- status code;
|
|
77
|
-
- duration;
|
|
78
|
-
- db schema version;
|
|
79
|
-
- number of items;
|
|
80
|
-
- event type;
|
|
81
|
-
- client integration type.
|
|
82
|
-
|
|
83
|
-
Forbidden analytics:
|
|
84
|
-
|
|
85
|
-
- source code;
|
|
86
|
-
- prompt/response text;
|
|
87
|
-
- plan body content;
|
|
88
|
-
- command output containing source or secrets;
|
|
89
|
-
- secrets, tokens, env vars;
|
|
90
|
-
- file contents.
|
|
91
|
-
|
|
92
|
-
## Consent And Disclosure Requirements
|
|
93
|
-
|
|
94
|
-
- REQ-SEC-010: Transcript capture requires explicit opt-in.
|
|
95
|
-
- REQ-SEC-011: Remote HTTP mode, if added, must require explicit opt-in and authentication.
|
|
96
|
-
- REQ-SEC-012: Install commands must show what files they will create or modify.
|
|
97
|
-
|
|
98
|
-
## Retention Policy
|
|
99
|
-
|
|
100
|
-
- SQLite map graph: retained until `planr project delete` or manual file removal.
|
|
101
|
-
- `.planr` Markdown: retained under user Git/repo policy.
|
|
102
|
-
- Debug logs: bounded retention; default 14 days if enabled.
|
|
103
|
-
- Transcript capture: disabled by default; retention user-configurable.
|
|
104
|
-
|
|
105
|
-
## Export And Deletion Policy
|
|
106
|
-
|
|
107
|
-
- `planr export` must produce map graph, plans, contexts, and logs.
|
|
108
|
-
- `planr project delete` must remove local database records and optionally `.planr` files with explicit confirmation.
|
|
109
|
-
- `planr scrub` must detect likely secrets in contexts and logs.
|
|
110
|
-
|
|
111
|
-
## Logging Policy
|
|
112
|
-
|
|
113
|
-
Allowed logs:
|
|
114
|
-
|
|
115
|
-
- item id;
|
|
116
|
-
- project id;
|
|
117
|
-
- worker id;
|
|
118
|
-
- command name;
|
|
119
|
-
- exit code;
|
|
120
|
-
- duration;
|
|
121
|
-
- status transition.
|
|
122
|
-
|
|
123
|
-
Forbidden logs:
|
|
124
|
-
|
|
125
|
-
- API keys and tokens;
|
|
126
|
-
- env var values;
|
|
127
|
-
- full prompts/responses;
|
|
128
|
-
- source file content;
|
|
129
|
-
- private plan body content by default.
|
|
130
|
-
|
|
131
|
-
## Security Controls
|
|
132
|
-
|
|
133
|
-
- REQ-SEC-020: SQLite writes must use parameterized queries.
|
|
134
|
-
- REQ-SEC-021: MCP mutation tools must validate schemas and item state transitions.
|
|
135
|
-
- REQ-SEC-022: HTTP server binds to localhost by default.
|
|
136
|
-
- REQ-SEC-023: Shell/agent runner commands must be explicit and auditable.
|
|
137
|
-
- REQ-SEC-024: Destructive operations require preview or confirmation.
|
|
138
|
-
- REQ-SEC-025: Database schema upgrades must be tested against existing schemas.
|
|
139
|
-
|
|
140
|
-
## Abuse Prevention
|
|
141
|
-
|
|
142
|
-
Planr is local-first, so abuse risk is mostly local command execution and data exfiltration through agent clients. Mitigations:
|
|
143
|
-
|
|
144
|
-
- separate read and mutation tools;
|
|
145
|
-
- no implicit shell execution from plan files;
|
|
146
|
-
- no hidden remote sync;
|
|
147
|
-
- content minimization in MCP responses;
|
|
148
|
-
- optional policy to deny mutation tools in review-only clients.
|
|
149
|
-
|
|
150
|
-
## Safety Risk Taxonomy
|
|
151
|
-
|
|
152
|
-
Planr is generally S1/S2:
|
|
153
|
-
|
|
154
|
-
- S1: wrong item state may waste developer time.
|
|
155
|
-
- S2: private code or item text may be exposed if sent to agent providers.
|
|
156
|
-
|
|
157
|
-
Planr must not make medical, legal, financial, or regulated-domain decisions.
|
|
158
|
-
|
|
159
|
-
## Compliance Notes
|
|
160
|
-
|
|
161
|
-
- V1 does not claim SOC 2, GDPR compliance, or enterprise compliance.
|
|
162
|
-
- Privacy policy and security documentation are required before any hosted service.
|
|
163
|
-
|
|
164
|
-
## Legal/Platform Review Checklist
|
|
165
|
-
|
|
166
|
-
- Review license obligations for any retained code, docs, or assets.
|
|
167
|
-
- Review MCP tool permissions and security copy.
|
|
168
|
-
- Review privacy disclosures for transcript capture.
|
|
169
|
-
- Review package-manager install scripts for supply-chain risk.
|