openplanr 3.2.0 → 3.3.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/CHANGELOG.md +21 -0
- package/dist/cli/commands/spec.d.ts +2 -1
- package/dist/cli/commands/spec.d.ts.map +1 -1
- package/dist/cli/commands/spec.js +45 -5
- package/dist/cli/commands/spec.js.map +1 -1
- package/dist/dashboard/.vite/manifest.json +1 -1
- package/dist/dashboard/assets/index-B_96uzCl.js +572 -0
- package/dist/dashboard/assets/index-B_96uzCl.js.map +1 -0
- package/dist/dashboard/dashboard-manifest.json +10 -10
- package/dist/dashboard/index.html +1 -1
- package/dist/services/claude-plugin-service.d.ts +5 -0
- package/dist/services/claude-plugin-service.d.ts.map +1 -1
- package/dist/services/claude-plugin-service.js +18 -2
- package/dist/services/claude-plugin-service.js.map +1 -1
- package/dist/services/codex-plugin-service.d.ts.map +1 -1
- package/dist/services/codex-plugin-service.js +11 -3
- package/dist/services/codex-plugin-service.js.map +1 -1
- package/dist/services/runtime-manager/codex-discovery.d.ts +1 -3
- package/dist/services/runtime-manager/codex-discovery.d.ts.map +1 -1
- package/dist/services/runtime-manager/codex-discovery.js +3 -16
- package/dist/services/runtime-manager/codex-discovery.js.map +1 -1
- package/dist/services/runtime-manager/doctor.d.ts +25 -0
- package/dist/services/runtime-manager/doctor.d.ts.map +1 -1
- package/dist/services/runtime-manager/doctor.js +480 -0
- package/dist/services/runtime-manager/doctor.js.map +1 -1
- package/dist/services/runtime-manager/errors.d.ts +12 -0
- package/dist/services/runtime-manager/errors.d.ts.map +1 -0
- package/dist/services/runtime-manager/errors.js +14 -0
- package/dist/services/runtime-manager/errors.js.map +1 -0
- package/dist/services/runtime-manager/global-state.d.ts +7 -0
- package/dist/services/runtime-manager/global-state.d.ts.map +1 -1
- package/dist/services/runtime-manager/global-state.js +116 -0
- package/dist/services/runtime-manager/global-state.js.map +1 -1
- package/dist/services/runtime-manager/host-version-probe.d.ts +8 -0
- package/dist/services/runtime-manager/host-version-probe.d.ts.map +1 -0
- package/dist/services/runtime-manager/host-version-probe.js +14 -0
- package/dist/services/runtime-manager/host-version-probe.js.map +1 -0
- package/dist/services/runtime-manager/install-plan.d.ts +25 -0
- package/dist/services/runtime-manager/install-plan.d.ts.map +1 -1
- package/dist/services/runtime-manager/install-plan.js +305 -0
- package/dist/services/runtime-manager/install-plan.js.map +1 -1
- package/dist/services/runtime-manager/inventory.d.ts +6 -0
- package/dist/services/runtime-manager/inventory.d.ts.map +1 -1
- package/dist/services/runtime-manager/inventory.js +16 -1
- package/dist/services/runtime-manager/inventory.js.map +1 -1
- package/dist/services/runtime-manager/legacy-adapters.d.ts +9 -0
- package/dist/services/runtime-manager/legacy-adapters.d.ts.map +1 -0
- package/dist/services/runtime-manager/legacy-adapters.js +187 -0
- package/dist/services/runtime-manager/legacy-adapters.js.map +1 -0
- package/dist/services/runtime-manager/paths.d.ts +18 -0
- package/dist/services/runtime-manager/paths.d.ts.map +1 -0
- package/dist/services/runtime-manager/paths.js +83 -0
- package/dist/services/runtime-manager/paths.js.map +1 -0
- package/dist/services/runtime-manager/runtime-package.d.ts +21 -0
- package/dist/services/runtime-manager/runtime-package.d.ts.map +1 -1
- package/dist/services/runtime-manager/runtime-package.js +77 -0
- package/dist/services/runtime-manager/runtime-package.js.map +1 -1
- package/dist/services/runtime-manager/storage.d.ts +47 -0
- package/dist/services/runtime-manager/storage.d.ts.map +1 -0
- package/dist/services/runtime-manager/storage.js +604 -0
- package/dist/services/runtime-manager/storage.js.map +1 -0
- package/dist/services/runtime-manager-service.d.ts +7 -17
- package/dist/services/runtime-manager-service.d.ts.map +1 -1
- package/dist/services/runtime-manager-service.js +32 -1695
- package/dist/services/runtime-manager-service.js.map +1 -1
- package/dist/services/ship-checks/contract.d.ts +13 -1
- package/dist/services/ship-checks/contract.d.ts.map +1 -1
- package/dist/services/ship-checks/contract.js +1 -1
- package/dist/services/ship-checks/contract.js.map +1 -1
- package/dist/services/ship-checks/coverage.d.ts +4 -0
- package/dist/services/ship-checks/coverage.d.ts.map +1 -0
- package/dist/services/ship-checks/coverage.js +113 -0
- package/dist/services/ship-checks/coverage.js.map +1 -0
- package/dist/services/ship-checks/discover.d.ts.map +1 -1
- package/dist/services/ship-checks/discover.js +3 -0
- package/dist/services/ship-checks/discover.js.map +1 -1
- package/dist/services/spec-service.d.ts +18 -0
- package/dist/services/spec-service.d.ts.map +1 -1
- package/dist/services/spec-service.js +174 -9
- package/dist/services/spec-service.js.map +1 -1
- package/dist/templates/spec/spec-shaped.md.hbs +1 -1
- package/dist/templates/spec/spec.md.hbs +2 -2
- package/docs/CLI.md +49 -2
- package/lib/host-packages/adapter-registry.json +5 -5
- package/lib/host-packages/capability-map.json +3 -3
- package/lib/host-packages/claude/.claude-plugin/marketplace.json +2 -2
- package/lib/host-packages/claude/openplanr/.claude-plugin/plugin.json +1 -1
- package/lib/host-packages/claude/openplanr/.openplanr-content.json +50 -46
- package/lib/host-packages/claude/openplanr/README.md +1 -1
- package/lib/host-packages/claude/openplanr/agents/planr-qa.md +5 -3
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-document.mjs +87 -2
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-handoff.mjs +1 -1
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-share.mjs +1 -1
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-shared-artifact-support-dependencies-design-support-protocol-contracts-3d9b1a86.mjs +102 -9
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-shared-protocol-contracts-b5f28f94.mjs +130 -1
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design.mjs +271 -28
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/notices/THIRD_PARTY_NOTICES.txt +32 -32
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/03-protocol-contracts.js +77 -1
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources.json +4 -4
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/package.json +4 -4
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/02-react.js +2 -2
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/09-react-dom-client-public-roots.js +5 -5
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/12-protocol-contracts.js +72 -2
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/13-design-review-experience.js +14 -7
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/15-canvas-engine.js +71 -34
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/21-design-studio.js +28 -14
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources.json +12 -12
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/protocol/package.json +2 -2
- package/lib/host-packages/{cursor/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.20.0 → claude/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.22.0}/design-document.schema.json +131 -4
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.22.0/design-review-bundle.schema.json +822 -0
- package/lib/host-packages/claude/openplanr/runtime/plan/scripts/design-protocol-contracts.mjs +78 -1
- package/lib/host-packages/claude/openplanr/runtime/plan/scripts/design.mjs +30 -2
- package/lib/host-packages/claude/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +2 -2
- package/lib/host-packages/claude/openplanr/skills/design/references/design-system.md +17 -2
- package/lib/host-packages/claude/openplanr/skills/design/references/generation.md +60 -2
- package/lib/host-packages/claude/openplanr/skills/design/references/utilities.md +11 -1
- package/lib/host-packages/claude/openplanr/skills/design/schemas/design-document.schema.json +131 -4
- package/lib/host-packages/claude/openplanr/skills/design-loop/references/design-system.md +17 -2
- package/lib/host-packages/claude/openplanr/skills/design-loop/references/generation.md +60 -2
- package/lib/host-packages/claude/openplanr/skills/design-loop/references/utilities.md +11 -1
- package/lib/host-packages/claude/openplanr/skills/design-loop/schemas/design-document.schema.json +131 -4
- package/lib/host-packages/claude/openplanr/skills/design-review/references/design-system.md +17 -2
- package/lib/host-packages/claude/openplanr/skills/design-review/references/generation.md +60 -2
- package/lib/host-packages/claude/openplanr/skills/design-review/references/utilities.md +11 -1
- package/lib/host-packages/claude/openplanr/skills/design-review/schemas/design-document.schema.json +131 -4
- package/lib/host-packages/claude/openplanr/skills/investigate/SKILL.md +1 -1
- package/lib/host-packages/claude/openplanr/skills/plan/SKILL.md +21 -11
- package/lib/host-packages/claude/openplanr/skills/plan/schemas/design-document.schema.json +131 -4
- package/lib/host-packages/claude/openplanr/skills/ship/SKILL.md +31 -10
- package/lib/host-packages/claude/openplanr/skills/spec/SKILL.md +6 -0
- package/lib/host-packages/claude/openplanr/skills/spec/references/specification-contract.md +3 -1
- package/lib/host-packages/cursor/openplanr/.openplanr-content.json +48 -44
- package/lib/host-packages/cursor/openplanr/manifest.json +1 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-design/references/design-system.md +17 -2
- package/lib/host-packages/cursor/openplanr/rules/planr-design/references/generation.md +60 -2
- package/lib/host-packages/cursor/openplanr/rules/planr-design/references/utilities.md +11 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-design/schemas/design-document.schema.json +131 -4
- package/lib/host-packages/cursor/openplanr/rules/planr-design-loop/references/design-system.md +17 -2
- package/lib/host-packages/cursor/openplanr/rules/planr-design-loop/references/generation.md +60 -2
- package/lib/host-packages/cursor/openplanr/rules/planr-design-loop/references/utilities.md +11 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-design-loop/schemas/design-document.schema.json +131 -4
- package/lib/host-packages/cursor/openplanr/rules/planr-design-review/references/design-system.md +17 -2
- package/lib/host-packages/cursor/openplanr/rules/planr-design-review/references/generation.md +60 -2
- package/lib/host-packages/cursor/openplanr/rules/planr-design-review/references/utilities.md +11 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-design-review/schemas/design-document.schema.json +131 -4
- package/lib/host-packages/cursor/openplanr/rules/planr-investigate.mdc +1 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-plan/schemas/design-document.schema.json +131 -4
- package/lib/host-packages/cursor/openplanr/rules/planr-plan.mdc +21 -11
- package/lib/host-packages/cursor/openplanr/rules/planr-ship.mdc +31 -10
- package/lib/host-packages/cursor/openplanr/rules/planr-spec/references/specification-contract.md +3 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-spec.mdc +6 -0
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-document.mjs +87 -2
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-handoff.mjs +1 -1
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-share.mjs +1 -1
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-shared-artifact-support-dependencies-design-support-protocol-contracts-3d9b1a86.mjs +102 -9
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-shared-protocol-contracts-b5f28f94.mjs +130 -1
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design.mjs +271 -28
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/notices/THIRD_PARTY_NOTICES.txt +32 -32
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/03-protocol-contracts.js +77 -1
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources.json +4 -4
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/package.json +4 -4
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/02-react.js +2 -2
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/09-react-dom-client-public-roots.js +5 -5
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/12-protocol-contracts.js +72 -2
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/13-design-review-experience.js +14 -7
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/15-canvas-engine.js +71 -34
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/21-design-studio.js +28 -14
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources.json +12 -12
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/protocol/package.json +2 -2
- package/lib/host-packages/{openai/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.20.0 → cursor/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.22.0}/design-document.schema.json +131 -4
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.22.0/design-review-bundle.schema.json +822 -0
- package/lib/host-packages/cursor/openplanr/runtime/plan/scripts/design-protocol-contracts.mjs +78 -1
- package/lib/host-packages/cursor/openplanr/runtime/plan/scripts/design.mjs +30 -2
- package/lib/host-packages/cursor/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +2 -2
- package/lib/host-packages/openai/.claude-plugin/marketplace.json +2 -2
- package/lib/host-packages/openai/openplanr/.codex-plugin/plugin.json +1 -1
- package/lib/host-packages/openai/openplanr/.openplanr-content.json +54 -50
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-document.mjs +87 -2
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-handoff.mjs +1 -1
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-share.mjs +1 -1
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-shared-artifact-support-dependencies-design-support-protocol-contracts-3d9b1a86.mjs +102 -9
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-shared-protocol-contracts-b5f28f94.mjs +130 -1
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design.mjs +271 -28
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/notices/THIRD_PARTY_NOTICES.txt +32 -32
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/03-protocol-contracts.js +77 -1
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources.json +4 -4
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/package.json +4 -4
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/02-react.js +2 -2
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/09-react-dom-client-public-roots.js +5 -5
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/12-protocol-contracts.js +72 -2
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/13-design-review-experience.js +14 -7
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/15-canvas-engine.js +71 -34
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/21-design-studio.js +28 -14
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources.json +12 -12
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/protocol/package.json +2 -2
- package/lib/host-packages/{claude/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.20.0 → openai/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.22.0}/design-document.schema.json +131 -4
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.22.0/design-review-bundle.schema.json +822 -0
- package/lib/host-packages/openai/openplanr/runtime/plan/scripts/design-protocol-contracts.mjs +78 -1
- package/lib/host-packages/openai/openplanr/runtime/plan/scripts/design.mjs +30 -2
- package/lib/host-packages/openai/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +2 -2
- package/lib/host-packages/openai/openplanr/skills/design/references/design-system.md +17 -2
- package/lib/host-packages/openai/openplanr/skills/design/references/generation.md +60 -2
- package/lib/host-packages/openai/openplanr/skills/design/references/utilities.md +11 -1
- package/lib/host-packages/openai/openplanr/skills/design/schemas/design-document.schema.json +131 -4
- package/lib/host-packages/openai/openplanr/skills/design-loop/references/design-system.md +17 -2
- package/lib/host-packages/openai/openplanr/skills/design-loop/references/generation.md +60 -2
- package/lib/host-packages/openai/openplanr/skills/design-loop/references/utilities.md +11 -1
- package/lib/host-packages/openai/openplanr/skills/design-loop/schemas/design-document.schema.json +131 -4
- package/lib/host-packages/openai/openplanr/skills/design-review/references/design-system.md +17 -2
- package/lib/host-packages/openai/openplanr/skills/design-review/references/generation.md +60 -2
- package/lib/host-packages/openai/openplanr/skills/design-review/references/utilities.md +11 -1
- package/lib/host-packages/openai/openplanr/skills/design-review/schemas/design-document.schema.json +131 -4
- package/lib/host-packages/openai/openplanr/skills/investigate/SKILL.md +1 -1
- package/lib/host-packages/openai/openplanr/skills/investigate/agents/openai.yaml +1 -1
- package/lib/host-packages/openai/openplanr/skills/investigate/openplanr.skill.json +1 -1
- package/lib/host-packages/openai/openplanr/skills/plan/SKILL.md +21 -11
- package/lib/host-packages/openai/openplanr/skills/plan/openplanr.skill.json +1 -1
- package/lib/host-packages/openai/openplanr/skills/plan/schemas/design-document.schema.json +131 -4
- package/lib/host-packages/openai/openplanr/skills/ship/SKILL.md +31 -10
- package/lib/host-packages/openai/openplanr/skills/ship/agents/openai.yaml +1 -1
- package/lib/host-packages/openai/openplanr/skills/ship/openplanr.skill.json +1 -1
- package/lib/host-packages/openai/openplanr/skills/spec/SKILL.md +6 -0
- package/lib/host-packages/openai/openplanr/skills/spec/openplanr.skill.json +1 -1
- package/lib/host-packages/openai/openplanr/skills/spec/references/specification-contract.md +3 -1
- package/lib/json-schema.mjs +4 -0
- package/package.json +12 -12
- package/dist/dashboard/assets/index-L8qtwqv6.js +0 -572
- package/dist/dashboard/assets/index-L8qtwqv6.js.map +0 -1
- /package/lib/host-packages/claude/openplanr/runtime/design/scripts/{design-runtime-support-6774fd3d5d02.mjs → design-runtime-support-25485dbf1cb2.mjs} +0 -0
- /package/lib/host-packages/cursor/openplanr/runtime/design/scripts/{design-runtime-support-6774fd3d5d02.mjs → design-runtime-support-25485dbf1cb2.mjs} +0 -0
- /package/lib/host-packages/openai/openplanr/runtime/design/scripts/{design-runtime-support-6774fd3d5d02.mjs → design-runtime-support-25485dbf1cb2.mjs} +0 -0
package/lib/host-packages/cursor/openplanr/rules/planr-design-review/references/generation.md
CHANGED
|
@@ -10,7 +10,8 @@ Use a versioned `design-document.json` and the bundled schema exposed by the
|
|
|
10
10
|
local HTML/CSS/JavaScript, assets, screen order, responsive frames, interaction
|
|
11
11
|
flows, selected direction, brief provenance and design-system references. Inspect
|
|
12
12
|
the schema before creating the document; validate it before rendering. Use
|
|
13
|
-
`schemaVersion: "1.
|
|
13
|
+
`schemaVersion: "1.1.0"` for documents with screen or variant props. Documents without
|
|
14
|
+
props may keep `schemaVersion: "1.0.0"`.
|
|
14
15
|
|
|
15
16
|
Read [team-review.md](team-review.md) and author a sibling `review-context.json`
|
|
16
17
|
for every new design. Its welcome purpose and review questions belong to this
|
|
@@ -19,7 +20,9 @@ design, updating only what changed. Render it with the same revision as the
|
|
|
19
20
|
screens so the shared welcome and implementation guidance describe that revision.
|
|
20
21
|
|
|
21
22
|
Place source in a sibling `source/` directory. Shared CSS and components belong in
|
|
22
|
-
shared source
|
|
23
|
+
shared source. Distinct design directions may use disjoint directories; theme,
|
|
24
|
+
partial and state instances share a screen source through typed props. Preserve
|
|
25
|
+
IDs during evolution.
|
|
23
26
|
All document source paths are local and relative to its directory; import the
|
|
24
27
|
required asset snapshots rather than referring outside it or to remote resources.
|
|
25
28
|
Fonts are asset snapshots too; follow [design-system.md](design-system.md).
|
|
@@ -57,6 +60,61 @@ observable. If the requested deliverable is an architecture or decision diagram
|
|
|
57
60
|
rather than a product interface, route that content to the diagram workflow instead
|
|
58
61
|
of styling documentation as a product screen.
|
|
59
62
|
|
|
63
|
+
## Typed screen props
|
|
64
|
+
|
|
65
|
+
Declare reusable screen state in `screens[].props`. An enum declaration requires
|
|
66
|
+
`type: "enum"`, nonempty unique string `options`, and a `default` from those options.
|
|
67
|
+
A boolean declaration requires `type: "boolean"` and a boolean `default`. Prop names,
|
|
68
|
+
enum options and enum defaults must be lowercase tokens matching
|
|
69
|
+
`^[a-z][a-z0-9-]*$`, with at most 128 characters. Use `is-dark` and `dark-mode`,
|
|
70
|
+
for example; uppercase letters, spaces and underscores are invalid. Use props for
|
|
71
|
+
theme, partial content and state variants instead of copying HTML sources.
|
|
72
|
+
|
|
73
|
+
Set instance values in `variants[].props`, keyed first by screen ID and then prop
|
|
74
|
+
name. Omitted values use the screen defaults. For example:
|
|
75
|
+
|
|
76
|
+
```json
|
|
77
|
+
{
|
|
78
|
+
"schemaVersion": "1.1.0",
|
|
79
|
+
"screens": [
|
|
80
|
+
{
|
|
81
|
+
"id": "overview",
|
|
82
|
+
"title": "Overview",
|
|
83
|
+
"source": { "html": "source/overview.html" },
|
|
84
|
+
"props": {
|
|
85
|
+
"theme": { "type": "enum", "options": ["light", "dark"], "default": "light" },
|
|
86
|
+
"partial": { "type": "boolean", "default": false }
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
],
|
|
90
|
+
"variants": [
|
|
91
|
+
{ "id": "light", "label": "Light", "status": "ready" },
|
|
92
|
+
{
|
|
93
|
+
"id": "dark",
|
|
94
|
+
"label": "Dark",
|
|
95
|
+
"status": "ready",
|
|
96
|
+
"props": { "overview": { "theme": "dark", "partial": true } }
|
|
97
|
+
}
|
|
98
|
+
]
|
|
99
|
+
}
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Each source with props needs exactly one explicit `<body>` screen root. The
|
|
103
|
+
renderer writes effective values onto that body as `data-prop-theme="dark"`,
|
|
104
|
+
`data-prop-partial="true"`, `prop-theme-dark` and `prop-partial-true`; false booleans
|
|
105
|
+
also receive an attribute and class. Names and values are written unchanged,
|
|
106
|
+
without case conversion or encoding. A prop named `is-dark` becomes
|
|
107
|
+
`data-prop-is-dark="true"` and `prop-is-dark-true`; scripts read it as
|
|
108
|
+
`document.body.dataset.propIsDark`. Branch CSS and local scripts on these values.
|
|
109
|
+
A `variants[].sources[screenId]` override still selects the source; props
|
|
110
|
+
apply to that selected source, otherwise to `screens[].source`. Board keys,
|
|
111
|
+
screen order, responsive frames and existing source overrides retain their roles.
|
|
112
|
+
|
|
113
|
+
Lint warns about copied screens only when their source files are byte-identical
|
|
114
|
+
after removing body `data-theme="light"` or `data-theme="dark"` attributes and
|
|
115
|
+
`theme-light` or `theme-dark` body classes. Other markup, styles, scripts and assets
|
|
116
|
+
must match. Use a shared source with a theme prop for those instances.
|
|
117
|
+
|
|
60
118
|
## Views
|
|
61
119
|
|
|
62
120
|
| View | Purpose | Required behavior |
|
package/lib/host-packages/cursor/openplanr/rules/planr-design-review/references/utilities.md
CHANGED
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Run the linked design helper from the skill entrypoint relative to the skill's
|
|
4
4
|
directory. It contains deterministic operations and all required assets. It needs
|
|
5
|
-
Node.js 22.13 or later, with no global CLI
|
|
5
|
+
Node.js 22.13 or later, with no global CLI or provider credentials. Only `fonts fetch`
|
|
6
|
+
downloads anything, and only when run; nothing is fetched when a design opens.
|
|
6
7
|
Use `--help` to inspect the installed command interface before writing documents
|
|
7
8
|
or invoking operations; the installed contract is authoritative.
|
|
8
9
|
|
|
@@ -15,8 +16,17 @@ node scripts/design.mjs feedback <design-document.json> --action inspect --json
|
|
|
15
16
|
node scripts/design.mjs view-context <design-document.json> --json
|
|
16
17
|
node scripts/design.mjs studio <design-document.json> --action status --json
|
|
17
18
|
node scripts/design.mjs studio <design-document.json> --action stop --json
|
|
19
|
+
node scripts/design.mjs fonts fetch --family "<Name>:<weights>" [--family ...] --dest <design>/source/assets/fonts --json
|
|
18
20
|
```
|
|
19
21
|
|
|
22
|
+
`fonts fetch` snapshots at most two OFL or Apache families, three weights each, as
|
|
23
|
+
Latin `woff2` files with their license files and a local `fonts.css`. It needs network
|
|
24
|
+
access; ask the user to approve that one command. A host that allowlists domains needs
|
|
25
|
+
`raw.githubusercontent.com` (license check), `fonts.googleapis.com` (font CSS) and
|
|
26
|
+
`fonts.gstatic.com` (font files). It refuses an existing non-empty
|
|
27
|
+
`--dest` and leaves nothing behind when any request fails. See
|
|
28
|
+
[design-system.md](design-system.md) for the fallback.
|
|
29
|
+
|
|
20
30
|
Use `--view prototype` or `--view walkthrough` to select the initial presentation.
|
|
21
31
|
When an `openplanr` CLI is available, prefer its public `openplanr artifact` route for
|
|
22
32
|
opening the document; otherwise use this bundled script. Both compose the same
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"$id": "https://openplanr.dev/schemas/v1.
|
|
3
|
+
"$id": "https://openplanr.dev/schemas/v1.22.0/design-document.schema.json",
|
|
4
4
|
"x-openplanr-contract": {
|
|
5
5
|
"id": "design-document",
|
|
6
|
-
"version": "1.
|
|
6
|
+
"version": "1.22.0"
|
|
7
7
|
},
|
|
8
8
|
"title": "OpenPlanr authored design document",
|
|
9
9
|
"type": "object",
|
|
@@ -26,7 +26,10 @@
|
|
|
26
26
|
"const": "openplanr-design-document"
|
|
27
27
|
},
|
|
28
28
|
"schemaVersion": {
|
|
29
|
-
"
|
|
29
|
+
"enum": [
|
|
30
|
+
"1.0.0",
|
|
31
|
+
"1.1.0"
|
|
32
|
+
]
|
|
30
33
|
},
|
|
31
34
|
"id": {
|
|
32
35
|
"$ref": "#/$defs/id"
|
|
@@ -158,6 +161,66 @@
|
|
|
158
161
|
},
|
|
159
162
|
"anchors": {
|
|
160
163
|
"$ref": "#/$defs/ids"
|
|
164
|
+
},
|
|
165
|
+
"props": {
|
|
166
|
+
"type": "object",
|
|
167
|
+
"propertyNames": {
|
|
168
|
+
"type": "string",
|
|
169
|
+
"minLength": 1,
|
|
170
|
+
"maxLength": 128,
|
|
171
|
+
"pattern": "^[a-z][a-z0-9-]*(?![\\s\\S])"
|
|
172
|
+
},
|
|
173
|
+
"additionalProperties": {
|
|
174
|
+
"oneOf": [
|
|
175
|
+
{
|
|
176
|
+
"type": "object",
|
|
177
|
+
"additionalProperties": false,
|
|
178
|
+
"required": [
|
|
179
|
+
"type",
|
|
180
|
+
"options",
|
|
181
|
+
"default"
|
|
182
|
+
],
|
|
183
|
+
"properties": {
|
|
184
|
+
"type": {
|
|
185
|
+
"const": "enum"
|
|
186
|
+
},
|
|
187
|
+
"options": {
|
|
188
|
+
"type": "array",
|
|
189
|
+
"minItems": 1,
|
|
190
|
+
"uniqueItems": true,
|
|
191
|
+
"items": {
|
|
192
|
+
"type": "string",
|
|
193
|
+
"minLength": 1,
|
|
194
|
+
"maxLength": 128,
|
|
195
|
+
"pattern": "^[a-z][a-z0-9-]*(?![\\s\\S])"
|
|
196
|
+
}
|
|
197
|
+
},
|
|
198
|
+
"default": {
|
|
199
|
+
"type": "string",
|
|
200
|
+
"minLength": 1,
|
|
201
|
+
"maxLength": 128,
|
|
202
|
+
"pattern": "^[a-z][a-z0-9-]*(?![\\s\\S])"
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"type": "object",
|
|
208
|
+
"additionalProperties": false,
|
|
209
|
+
"required": [
|
|
210
|
+
"type",
|
|
211
|
+
"default"
|
|
212
|
+
],
|
|
213
|
+
"properties": {
|
|
214
|
+
"type": {
|
|
215
|
+
"const": "boolean"
|
|
216
|
+
},
|
|
217
|
+
"default": {
|
|
218
|
+
"type": "boolean"
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
]
|
|
223
|
+
}
|
|
161
224
|
}
|
|
162
225
|
}
|
|
163
226
|
}
|
|
@@ -232,6 +295,34 @@
|
|
|
232
295
|
"additionalProperties": {
|
|
233
296
|
"$ref": "#/$defs/source"
|
|
234
297
|
}
|
|
298
|
+
},
|
|
299
|
+
"props": {
|
|
300
|
+
"type": "object",
|
|
301
|
+
"propertyNames": {
|
|
302
|
+
"$ref": "#/$defs/id"
|
|
303
|
+
},
|
|
304
|
+
"additionalProperties": {
|
|
305
|
+
"type": "object",
|
|
306
|
+
"propertyNames": {
|
|
307
|
+
"type": "string",
|
|
308
|
+
"minLength": 1,
|
|
309
|
+
"maxLength": 128,
|
|
310
|
+
"pattern": "^[a-z][a-z0-9-]*(?![\\s\\S])"
|
|
311
|
+
},
|
|
312
|
+
"additionalProperties": {
|
|
313
|
+
"anyOf": [
|
|
314
|
+
{
|
|
315
|
+
"type": "string",
|
|
316
|
+
"minLength": 1,
|
|
317
|
+
"maxLength": 128,
|
|
318
|
+
"pattern": "^[a-z][a-z0-9-]*(?![\\s\\S])"
|
|
319
|
+
},
|
|
320
|
+
{
|
|
321
|
+
"type": "boolean"
|
|
322
|
+
}
|
|
323
|
+
]
|
|
324
|
+
}
|
|
325
|
+
}
|
|
235
326
|
}
|
|
236
327
|
},
|
|
237
328
|
"if": {
|
|
@@ -375,5 +466,41 @@
|
|
|
375
466
|
"minimum": -10000000,
|
|
376
467
|
"maximum": 10000000
|
|
377
468
|
}
|
|
378
|
-
}
|
|
469
|
+
},
|
|
470
|
+
"allOf": [
|
|
471
|
+
{
|
|
472
|
+
"if": {
|
|
473
|
+
"properties": {
|
|
474
|
+
"schemaVersion": {
|
|
475
|
+
"const": "1.1.0"
|
|
476
|
+
}
|
|
477
|
+
},
|
|
478
|
+
"required": [
|
|
479
|
+
"schemaVersion"
|
|
480
|
+
]
|
|
481
|
+
},
|
|
482
|
+
"else": {
|
|
483
|
+
"properties": {
|
|
484
|
+
"screens": {
|
|
485
|
+
"items": {
|
|
486
|
+
"not": {
|
|
487
|
+
"required": [
|
|
488
|
+
"props"
|
|
489
|
+
]
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
},
|
|
493
|
+
"variants": {
|
|
494
|
+
"items": {
|
|
495
|
+
"not": {
|
|
496
|
+
"required": [
|
|
497
|
+
"props"
|
|
498
|
+
]
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
]
|
|
379
506
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: "Diagnose a bug, regression, error, or unexplained behavior and optionally implement a bounded fix. Use for root-cause investigation, not planned feature delivery."
|
|
2
|
+
description: "Diagnose a bug, regression, error, or unexplained behavior and optionally implement a bounded fix. Use for root-cause investigation, including before any fix, not planned feature delivery."
|
|
3
3
|
alwaysApply: false
|
|
4
4
|
---
|
|
5
5
|
|
package/lib/host-packages/cursor/openplanr/rules/planr-plan/schemas/design-document.schema.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"$id": "https://openplanr.dev/schemas/v1.
|
|
3
|
+
"$id": "https://openplanr.dev/schemas/v1.22.0/design-document.schema.json",
|
|
4
4
|
"x-openplanr-contract": {
|
|
5
5
|
"id": "design-document",
|
|
6
|
-
"version": "1.
|
|
6
|
+
"version": "1.22.0"
|
|
7
7
|
},
|
|
8
8
|
"title": "OpenPlanr authored design document",
|
|
9
9
|
"type": "object",
|
|
@@ -26,7 +26,10 @@
|
|
|
26
26
|
"const": "openplanr-design-document"
|
|
27
27
|
},
|
|
28
28
|
"schemaVersion": {
|
|
29
|
-
"
|
|
29
|
+
"enum": [
|
|
30
|
+
"1.0.0",
|
|
31
|
+
"1.1.0"
|
|
32
|
+
]
|
|
30
33
|
},
|
|
31
34
|
"id": {
|
|
32
35
|
"$ref": "#/$defs/id"
|
|
@@ -158,6 +161,66 @@
|
|
|
158
161
|
},
|
|
159
162
|
"anchors": {
|
|
160
163
|
"$ref": "#/$defs/ids"
|
|
164
|
+
},
|
|
165
|
+
"props": {
|
|
166
|
+
"type": "object",
|
|
167
|
+
"propertyNames": {
|
|
168
|
+
"type": "string",
|
|
169
|
+
"minLength": 1,
|
|
170
|
+
"maxLength": 128,
|
|
171
|
+
"pattern": "^[a-z][a-z0-9-]*(?![\\s\\S])"
|
|
172
|
+
},
|
|
173
|
+
"additionalProperties": {
|
|
174
|
+
"oneOf": [
|
|
175
|
+
{
|
|
176
|
+
"type": "object",
|
|
177
|
+
"additionalProperties": false,
|
|
178
|
+
"required": [
|
|
179
|
+
"type",
|
|
180
|
+
"options",
|
|
181
|
+
"default"
|
|
182
|
+
],
|
|
183
|
+
"properties": {
|
|
184
|
+
"type": {
|
|
185
|
+
"const": "enum"
|
|
186
|
+
},
|
|
187
|
+
"options": {
|
|
188
|
+
"type": "array",
|
|
189
|
+
"minItems": 1,
|
|
190
|
+
"uniqueItems": true,
|
|
191
|
+
"items": {
|
|
192
|
+
"type": "string",
|
|
193
|
+
"minLength": 1,
|
|
194
|
+
"maxLength": 128,
|
|
195
|
+
"pattern": "^[a-z][a-z0-9-]*(?![\\s\\S])"
|
|
196
|
+
}
|
|
197
|
+
},
|
|
198
|
+
"default": {
|
|
199
|
+
"type": "string",
|
|
200
|
+
"minLength": 1,
|
|
201
|
+
"maxLength": 128,
|
|
202
|
+
"pattern": "^[a-z][a-z0-9-]*(?![\\s\\S])"
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"type": "object",
|
|
208
|
+
"additionalProperties": false,
|
|
209
|
+
"required": [
|
|
210
|
+
"type",
|
|
211
|
+
"default"
|
|
212
|
+
],
|
|
213
|
+
"properties": {
|
|
214
|
+
"type": {
|
|
215
|
+
"const": "boolean"
|
|
216
|
+
},
|
|
217
|
+
"default": {
|
|
218
|
+
"type": "boolean"
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
]
|
|
223
|
+
}
|
|
161
224
|
}
|
|
162
225
|
}
|
|
163
226
|
}
|
|
@@ -232,6 +295,34 @@
|
|
|
232
295
|
"additionalProperties": {
|
|
233
296
|
"$ref": "#/$defs/source"
|
|
234
297
|
}
|
|
298
|
+
},
|
|
299
|
+
"props": {
|
|
300
|
+
"type": "object",
|
|
301
|
+
"propertyNames": {
|
|
302
|
+
"$ref": "#/$defs/id"
|
|
303
|
+
},
|
|
304
|
+
"additionalProperties": {
|
|
305
|
+
"type": "object",
|
|
306
|
+
"propertyNames": {
|
|
307
|
+
"type": "string",
|
|
308
|
+
"minLength": 1,
|
|
309
|
+
"maxLength": 128,
|
|
310
|
+
"pattern": "^[a-z][a-z0-9-]*(?![\\s\\S])"
|
|
311
|
+
},
|
|
312
|
+
"additionalProperties": {
|
|
313
|
+
"anyOf": [
|
|
314
|
+
{
|
|
315
|
+
"type": "string",
|
|
316
|
+
"minLength": 1,
|
|
317
|
+
"maxLength": 128,
|
|
318
|
+
"pattern": "^[a-z][a-z0-9-]*(?![\\s\\S])"
|
|
319
|
+
},
|
|
320
|
+
{
|
|
321
|
+
"type": "boolean"
|
|
322
|
+
}
|
|
323
|
+
]
|
|
324
|
+
}
|
|
325
|
+
}
|
|
235
326
|
}
|
|
236
327
|
},
|
|
237
328
|
"if": {
|
|
@@ -375,5 +466,41 @@
|
|
|
375
466
|
"minimum": -10000000,
|
|
376
467
|
"maximum": 10000000
|
|
377
468
|
}
|
|
378
|
-
}
|
|
469
|
+
},
|
|
470
|
+
"allOf": [
|
|
471
|
+
{
|
|
472
|
+
"if": {
|
|
473
|
+
"properties": {
|
|
474
|
+
"schemaVersion": {
|
|
475
|
+
"const": "1.1.0"
|
|
476
|
+
}
|
|
477
|
+
},
|
|
478
|
+
"required": [
|
|
479
|
+
"schemaVersion"
|
|
480
|
+
]
|
|
481
|
+
},
|
|
482
|
+
"else": {
|
|
483
|
+
"properties": {
|
|
484
|
+
"screens": {
|
|
485
|
+
"items": {
|
|
486
|
+
"not": {
|
|
487
|
+
"required": [
|
|
488
|
+
"props"
|
|
489
|
+
]
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
},
|
|
493
|
+
"variants": {
|
|
494
|
+
"items": {
|
|
495
|
+
"not": {
|
|
496
|
+
"required": [
|
|
497
|
+
"props"
|
|
498
|
+
]
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
]
|
|
379
506
|
}
|
|
@@ -6,9 +6,9 @@ alwaysApply: false
|
|
|
6
6
|
# OpenPlanr Plan
|
|
7
7
|
|
|
8
8
|
Turn a decision-complete specification or clear product request into
|
|
9
|
-
implementation-ready stories and tasks
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
implementation-ready stories and tasks in this active coding session. Do not
|
|
10
|
+
delegate semantic planning to a command-line or model subprocess. Plan ends with a
|
|
11
|
+
Ship handoff; it never starts implementation
|
|
12
12
|
automatically.
|
|
13
13
|
|
|
14
14
|
## Resolve context directly
|
|
@@ -63,14 +63,24 @@ host has no structured question interface, ask one concise chat question.
|
|
|
63
63
|
|
|
64
64
|
## Apply PO lenses in-session
|
|
65
65
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
66
|
+
The main session owns the plan, decisions, and integration. Keep small coherent
|
|
67
|
+
planning work in this session. Delegate only a self-contained outcome that
|
|
68
|
+
benefits from context isolation, a distinct capability boundary, or independent
|
|
69
|
+
parallel work; agent availability alone is not a reason to dispatch.
|
|
70
|
+
|
|
71
|
+
Use specification for a distinct planning assignment or completeness review,
|
|
72
|
+
designer for a separate design deliverable or critique, and database only for
|
|
73
|
+
authorized read-only live introspection when repository schemas are insufficient.
|
|
74
|
+
Do not have two planners decompose the same request. Entity scaffolding remains
|
|
75
|
+
manual, on explicit request.
|
|
76
|
+
|
|
77
|
+
Select the exact registered identity from the host's roster; Claude plugin
|
|
78
|
+
agents use names such as `planr:planr-specification`. Give each worker its outcome,
|
|
79
|
+
authoritative paths, relevant decisions, file ownership, verification requirements,
|
|
80
|
+
and concise return expectations. Parallel workers need disjoint writes or an
|
|
81
|
+
agreed interface. Explain the delegation's purpose briefly in commentary.
|
|
82
|
+
When the host lacks the native role, perform the work sequentially in this session
|
|
83
|
+
and disclose capability limitations; never claim an unavailable specialist ran.
|
|
74
84
|
|
|
75
85
|
## Author the decomposition
|
|
76
86
|
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: "Implement an OpenPlanr plan, specification, task, or clearly stated request end to end in the current repository. Use when the user asks to build, implement, fix, finish, or ship local work."
|
|
2
|
+
description: "Implement an OpenPlanr plan, specification, task, or clearly stated request end to end in the current repository. Use when the user asks to build, implement, fix, finish, or ship local work, or to plan and implement an accepted change. Invoke before editing files for the requested change. Not for planning only, landing, release, or work handed to another coding agent."
|
|
3
3
|
alwaysApply: false
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# OpenPlanr Ship
|
|
7
7
|
|
|
8
|
-
Produce an implementation-complete local repository in this active coding
|
|
9
|
-
|
|
8
|
+
Produce an implementation-complete local repository in this active coding session.
|
|
9
|
+
Landing and release preparation belong to `planr-land`. Ordinary
|
|
10
10
|
Ship stays host-native. Do not delegate implementation to a command-line or model subprocess. If the user explicitly asks another coding agent to implement,
|
|
11
11
|
hand off to `planr-delegate` before implementation. That separate opt-in workflow
|
|
12
12
|
previews the selected context, writable repository, profile, and destination;
|
|
@@ -39,13 +39,34 @@ context is sufficient; missing planning files do not create a gate.
|
|
|
39
39
|
|
|
40
40
|
## Implement with native roles
|
|
41
41
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
42
|
+
The main session owns scope, decisions, integration, and final verification.
|
|
43
|
+
Use the host's read, edit, shell, browser, and test capabilities inside this session.
|
|
44
|
+
Keep small coherent changes in this session. Delegate only a self-contained
|
|
45
|
+
outcome that benefits from context isolation, a distinct capability boundary,
|
|
46
|
+
or independent parallel work; agent availability alone is not a reason to dispatch.
|
|
47
|
+
|
|
48
|
+
Frontend and backend own substantial bounded implementation assignments.
|
|
49
|
+
Persistence implementation, including a task carrying the legacy `db-agent`
|
|
50
|
+
identity, belongs to backend with the relevant database guidance; preserve the
|
|
51
|
+
task's recorded identity. Database is optional read-only introspection when
|
|
52
|
+
repository schemas are insufficient, never migration implementation. Keep small
|
|
53
|
+
documentation updates with their implementation; delegate substantial documentation
|
|
54
|
+
or requested configuration work separately. DevOps never deploys. Entity
|
|
55
|
+
scaffolding remains manual, on explicit request.
|
|
56
|
+
|
|
57
|
+
Use a separate QA reviewer for authorization, credentials, data-loss risk,
|
|
58
|
+
migrations, public contracts, release behavior, or substantial delegated
|
|
59
|
+
implementation. Small low-risk edits use focused verification in the main session.
|
|
60
|
+
QA retains verification tools, subject to role policy and session permissions.
|
|
61
|
+
|
|
62
|
+
Select the exact registered identity from the host's roster; Claude plugin
|
|
63
|
+
agents use names such as `planr:planr-backend` and `planr:planr-qa`. Give each worker
|
|
64
|
+
its outcome, authoritative paths, relevant decisions, file ownership, verification
|
|
65
|
+
requirements, and concise return expectations. Parallel workers need disjoint
|
|
66
|
+
writes or an agreed interface. Explain the delegation's purpose briefly in
|
|
67
|
+
commentary. Host-native workers do not invoke the separate `planr-delegate` helper.
|
|
68
|
+
When the host lacks the native role, perform the work sequentially in this session
|
|
69
|
+
and disclose capability limitations; never claim an unavailable specialist ran.
|
|
49
70
|
|
|
50
71
|
Integrate the complete change, then verify behavior. `reviewRisks` and
|
|
51
72
|
`browserSurfaces` select useful checks; empty arrays are normal and neither field
|
package/lib/host-packages/cursor/openplanr/rules/planr-spec/references/specification-contract.md
CHANGED
|
@@ -30,7 +30,9 @@ template:
|
|
|
30
30
|
|
|
31
31
|
Keep evidence and rollback as useful planning context, not approval gates or
|
|
32
32
|
receipt requirements. A risk-specialist section may be empty when no specialist
|
|
33
|
-
lens applies.
|
|
33
|
+
lens applies. Under `## Notes for Decomposition`, list each decision made without
|
|
34
|
+
an answer as a bullet starting `Assumption:` that names the decision and the
|
|
35
|
+
alternative not taken.
|
|
34
36
|
|
|
35
37
|
For a repository intentionally using default mode, write
|
|
36
38
|
`input/specs/spec-{slug}.md` and preserve its active schema. Do not create a
|
|
@@ -22,6 +22,12 @@ mutually exclusive questions at once and put the recommended option first. If
|
|
|
22
22
|
the host lacks that interface, ask one concise chat question. Do not present a
|
|
23
23
|
long prose questionnaire.
|
|
24
24
|
|
|
25
|
+
If no one can answer, as in a headless run, do not ask: choose the
|
|
26
|
+
repository-backed default, or the recommended one when the repository does not
|
|
27
|
+
settle it, and record each such choice as a bullet starting `Assumption:` under
|
|
28
|
+
`## Notes for Decomposition`, naming the decision and the alternative not taken.
|
|
29
|
+
Record a decision you settle inside a functional requirement the same way.
|
|
30
|
+
|
|
25
31
|
When native agents are available, use the specification role to consolidate the
|
|
26
32
|
contract and dispatch database or designer roles only when their lens affects
|
|
27
33
|
the decision. Otherwise perform those lenses sequentially in the active agent.
|