openplanr 3.2.0 → 3.4.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 +73 -0
- package/dist/cli/commands/artifact-design-share.d.ts +9 -0
- package/dist/cli/commands/artifact-design-share.d.ts.map +1 -0
- package/dist/cli/commands/artifact-design-share.js +200 -0
- package/dist/cli/commands/artifact-design-share.js.map +1 -0
- package/dist/cli/commands/artifact.d.ts.map +1 -1
- package/dist/cli/commands/artifact.js +5 -18
- package/dist/cli/commands/artifact.js.map +1 -1
- package/dist/cli/commands/ship.d.ts.map +1 -1
- package/dist/cli/commands/ship.js +2 -0
- package/dist/cli/commands/ship.js.map +1 -1
- 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 +2 -2
- package/dist/dashboard/assets/index-Cv4Vwhuw.css +2 -0
- package/dist/dashboard/assets/index-CvQAlBy3.js +75 -0
- package/dist/dashboard/assets/index-CvQAlBy3.js.map +1 -0
- package/dist/dashboard/dashboard-manifest.json +14 -14
- package/dist/dashboard/index.html +2 -2
- 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/design-artifact-service.d.ts +20 -1
- package/dist/services/design-artifact-service.d.ts.map +1 -1
- package/dist/services/design-artifact-service.js +137 -18
- package/dist/services/design-artifact-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 +15 -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 +5 -1
- package/dist/services/ship-checks/discover.js.map +1 -1
- package/dist/services/ship-checks/package-contents.d.ts +4 -0
- package/dist/services/ship-checks/package-contents.d.ts.map +1 -0
- package/dist/services/ship-checks/package-contents.js +91 -0
- package/dist/services/ship-checks/package-contents.js.map +1 -0
- package/dist/services/ship-checks/packages.d.ts +2 -0
- package/dist/services/ship-checks/packages.d.ts.map +1 -1
- package/dist/services/ship-checks/packages.js +4 -0
- package/dist/services/ship-checks/packages.js.map +1 -1
- package/dist/services/ship-checks/scope.js +2 -1
- package/dist/services/ship-checks/scope.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/dist/utils/splice-managed-block.js +1 -1
- package/dist/utils/splice-managed-block.js.map +1 -1
- package/docs/CLI.md +86 -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 +3 -3
- package/lib/host-packages/claude/openplanr/.claude-plugin/plugin.json +6 -6
- package/lib/host-packages/claude/openplanr/.openplanr-content.json +94 -146
- package/lib/host-packages/claude/openplanr/README.md +12 -12
- package/lib/host-packages/claude/openplanr/agents/planr-qa.md +5 -3
- package/lib/host-packages/claude/openplanr/references/agents/shared/modes/shared/task-context-resolution.md +4 -4
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-artifact-shell.mjs +2 -4
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-document.mjs +110 -25
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-handoff.mjs +851 -57
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-review-state-store.mjs +45 -0
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-review.mjs +65 -74
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-runtime-home.mjs +0 -1
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-share-cli-bridge.mjs +321 -0
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-shared-artifact-support-dependencies-design-support-protocol-contracts-d707e49b.mjs +1652 -0
- package/lib/host-packages/{openai/openplanr/runtime/design/scripts/design-shared-artifact-support-protocol-contracts-ea2cd15e.mjs → claude/openplanr/runtime/design/scripts/design-shared-artifact-support-protocol-contracts-9f6918b0.mjs} +537 -5
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-shared-design-support-0bac378d.mjs +137 -0
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design.mjs +374 -61
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/notices/THIRD_PARTY_NOTICES.txt +32 -59
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/02-artifact-review-ui.js +138 -133
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/03-protocol-contracts.js +1 -5608
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/04-artifact-review-ui.js +2568 -0
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources.json +10 -74
- 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/share.js +8 -2
- 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 +6 -2
- package/lib/host-packages/{openai/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 +616 -4775
- package/lib/host-packages/claude/openplanr/runtime/plan/scripts/design.mjs +219 -424
- package/lib/host-packages/claude/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +6 -2
- package/lib/host-packages/claude/openplanr/skills/delegate/SKILL.md +2 -1
- package/lib/host-packages/claude/openplanr/skills/delegate/references/integration-review.md +26 -20
- package/lib/host-packages/claude/openplanr/skills/delegate/references/operator-guide.md +25 -1
- package/lib/host-packages/claude/openplanr/skills/delegate/references/run-handoff.md +2 -2
- package/lib/host-packages/claude/openplanr/skills/delegate/references/worktree-custody.md +17 -9
- package/lib/host-packages/claude/openplanr/skills/delegate/scripts/adapters/claude.mjs +15 -3
- package/lib/host-packages/claude/openplanr/skills/delegate/scripts/adapters/codex.mjs +38 -2
- package/lib/host-packages/claude/openplanr/skills/delegate/scripts/adapters/native.mjs +5 -0
- package/lib/host-packages/claude/openplanr/skills/delegate/scripts/custody.mjs +217 -10
- package/lib/host-packages/claude/openplanr/skills/delegate/scripts/handoff.mjs +1080 -0
- package/lib/host-packages/claude/openplanr/skills/delegate/scripts/integrate.mjs +96 -201
- package/lib/host-packages/claude/openplanr/skills/delegate/scripts/integration-files.mjs +3 -382
- package/lib/host-packages/claude/openplanr/skills/delegate/scripts/presentation.mjs +29 -12
- package/lib/host-packages/claude/openplanr/skills/delegate/scripts/run-contract.mjs +11 -0
- package/lib/host-packages/claude/openplanr/skills/delegate/scripts/run-execution.mjs +1 -1
- package/lib/host-packages/claude/openplanr/skills/delegate/scripts/run-lifecycle.mjs +14 -10
- package/lib/host-packages/claude/openplanr/skills/delegate/scripts/run-preparation.mjs +4 -0
- package/lib/host-packages/claude/openplanr/skills/delegate/scripts/run-record.mjs +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 +23 -7
- 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 +23 -7
- 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 +23 -7
- 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 +2 -1
- package/lib/host-packages/claude/openplanr/skills/investigate/references/fail-first.md +40 -0
- 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 +51 -18
- package/lib/host-packages/claude/openplanr/skills/ship/references/fail-first.md +40 -0
- package/lib/host-packages/claude/openplanr/skills/ship/references/result-contract.md +7 -3
- 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 +91 -143
- package/lib/host-packages/cursor/openplanr/manifest.json +1 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/references/integration-review.md +26 -20
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/references/operator-guide.md +25 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/references/run-handoff.md +2 -2
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/references/worktree-custody.md +17 -9
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/adapters/claude.mjs +15 -3
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/adapters/codex.mjs +38 -2
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/adapters/native.mjs +5 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/custody.mjs +217 -10
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/handoff.mjs +1080 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/integrate.mjs +96 -201
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/integration-files.mjs +3 -382
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/presentation.mjs +29 -12
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/run-contract.mjs +11 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/run-execution.mjs +1 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/run-lifecycle.mjs +14 -10
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/run-preparation.mjs +4 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/run-record.mjs +2 -2
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate.mdc +2 -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 +23 -7
- 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 +23 -7
- 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 +23 -7
- 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/references/fail-first.md +40 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-investigate.mdc +2 -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/references/fail-first.md +40 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-ship/references/result-contract.md +7 -3
- package/lib/host-packages/cursor/openplanr/rules/planr-ship.mdc +51 -18
- 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-artifact-shell.mjs +2 -4
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-document.mjs +110 -25
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-handoff.mjs +851 -57
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-review-state-store.mjs +45 -0
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-review.mjs +65 -74
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-runtime-home.mjs +0 -1
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-share-cli-bridge.mjs +321 -0
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-shared-artifact-support-dependencies-design-support-protocol-contracts-d707e49b.mjs +1652 -0
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/{design-shared-artifact-support-protocol-contracts-ea2cd15e.mjs → design-shared-artifact-support-protocol-contracts-9f6918b0.mjs} +537 -5
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-shared-design-support-0bac378d.mjs +137 -0
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design.mjs +374 -61
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/notices/THIRD_PARTY_NOTICES.txt +32 -59
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/02-artifact-review-ui.js +138 -133
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/03-protocol-contracts.js +1 -5608
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/04-artifact-review-ui.js +2568 -0
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources.json +10 -74
- 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/share.js +8 -2
- 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 +6 -2
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/{v1.20.0 → 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 +616 -4775
- package/lib/host-packages/cursor/openplanr/runtime/plan/scripts/design.mjs +219 -424
- package/lib/host-packages/cursor/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +6 -2
- package/lib/host-packages/openai/.claude-plugin/marketplace.json +3 -3
- package/lib/host-packages/openai/openplanr/.codex-plugin/plugin.json +2 -2
- package/lib/host-packages/openai/openplanr/.openplanr-content.json +98 -150
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-artifact-shell.mjs +2 -4
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-document.mjs +110 -25
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-handoff.mjs +851 -57
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-review-state-store.mjs +45 -0
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-review.mjs +65 -74
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-runtime-home.mjs +0 -1
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-share-cli-bridge.mjs +321 -0
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-shared-artifact-support-dependencies-design-support-protocol-contracts-d707e49b.mjs +1652 -0
- package/lib/host-packages/{claude/openplanr/runtime/design/scripts/design-shared-artifact-support-protocol-contracts-ea2cd15e.mjs → openai/openplanr/runtime/design/scripts/design-shared-artifact-support-protocol-contracts-9f6918b0.mjs} +537 -5
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-shared-design-support-0bac378d.mjs +137 -0
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design.mjs +374 -61
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/notices/THIRD_PARTY_NOTICES.txt +32 -59
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/02-artifact-review-ui.js +138 -133
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/03-protocol-contracts.js +1 -5608
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/04-artifact-review-ui.js +2568 -0
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources.json +10 -74
- 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/share.js +8 -2
- 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 +6 -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 +616 -4775
- package/lib/host-packages/openai/openplanr/runtime/plan/scripts/design.mjs +219 -424
- package/lib/host-packages/openai/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +6 -2
- package/lib/host-packages/openai/openplanr/skills/delegate/SKILL.md +2 -1
- package/lib/host-packages/openai/openplanr/skills/delegate/openplanr.skill.json +1 -1
- package/lib/host-packages/openai/openplanr/skills/delegate/references/integration-review.md +26 -20
- package/lib/host-packages/openai/openplanr/skills/delegate/references/operator-guide.md +25 -1
- package/lib/host-packages/openai/openplanr/skills/delegate/references/run-handoff.md +2 -2
- package/lib/host-packages/openai/openplanr/skills/delegate/references/worktree-custody.md +17 -9
- package/lib/host-packages/openai/openplanr/skills/delegate/scripts/adapters/claude.mjs +15 -3
- package/lib/host-packages/openai/openplanr/skills/delegate/scripts/adapters/codex.mjs +38 -2
- package/lib/host-packages/openai/openplanr/skills/delegate/scripts/adapters/native.mjs +5 -0
- package/lib/host-packages/openai/openplanr/skills/delegate/scripts/custody.mjs +217 -10
- package/lib/host-packages/openai/openplanr/skills/delegate/scripts/handoff.mjs +1080 -0
- package/lib/host-packages/openai/openplanr/skills/delegate/scripts/integrate.mjs +96 -201
- package/lib/host-packages/openai/openplanr/skills/delegate/scripts/integration-files.mjs +3 -382
- package/lib/host-packages/openai/openplanr/skills/delegate/scripts/presentation.mjs +29 -12
- package/lib/host-packages/openai/openplanr/skills/delegate/scripts/run-contract.mjs +11 -0
- package/lib/host-packages/openai/openplanr/skills/delegate/scripts/run-execution.mjs +1 -1
- package/lib/host-packages/openai/openplanr/skills/delegate/scripts/run-lifecycle.mjs +14 -10
- package/lib/host-packages/openai/openplanr/skills/delegate/scripts/run-preparation.mjs +4 -0
- package/lib/host-packages/openai/openplanr/skills/delegate/scripts/run-record.mjs +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 +23 -7
- 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 +23 -7
- 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 +23 -7
- 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 +2 -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 +12 -1
- package/lib/host-packages/openai/openplanr/skills/investigate/references/fail-first.md +40 -0
- 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 +51 -18
- package/lib/host-packages/openai/openplanr/skills/ship/agents/openai.yaml +1 -1
- package/lib/host-packages/openai/openplanr/skills/ship/openplanr.skill.json +12 -1
- package/lib/host-packages/openai/openplanr/skills/ship/references/fail-first.md +40 -0
- package/lib/host-packages/openai/openplanr/skills/ship/references/result-contract.md +7 -3
- 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 +16 -16
- package/dist/dashboard/assets/index-BU5fzjyz.css +0 -1
- 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-chunked-workspace-client.mjs +0 -555
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-compression.mjs +0 -4180
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-encrypted-workspace-client.mjs +0 -647
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-owner-custody.mjs +0 -129
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-resource-pack.mjs +0 -698
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-runtime-support-6774fd3d5d02.mjs +0 -24
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-share.mjs +0 -1993
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-shared-artifact-support-dependencies-design-support-protocol-contracts-3d9b1a86.mjs +0 -1020
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-shared-protocol-contracts-75a938cc.mjs +0 -222
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-shared-protocol-contracts-b5f28f94.mjs +0 -5778
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-upload-spool.mjs +0 -198
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/04-compression.js +0 -4175
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/05-artifact-sharing.js +0 -65
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/06-artifact-review-ui.js +0 -1755
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/07-artifact-sharing.js +0 -62
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/08-artifact-review-ui.js +0 -2633
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.1.0/artifact-paste.schema.json +0 -49
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.9.0/design-review-workspace.schema.json +0 -108
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.9.0/design-workspace-create.schema.json +0 -170
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.9.0/design-workspace-event.schema.json +0 -97
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.9.0/design-workspace-revision.schema.json +0 -56
- package/lib/host-packages/claude/openplanr/skills/delegate/scripts/integration-transaction.mjs +0 -958
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/integration-transaction.mjs +0 -958
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-chunked-workspace-client.mjs +0 -555
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-compression.mjs +0 -4180
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-encrypted-workspace-client.mjs +0 -647
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-owner-custody.mjs +0 -129
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-resource-pack.mjs +0 -698
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-runtime-support-6774fd3d5d02.mjs +0 -24
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-share.mjs +0 -1993
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-shared-artifact-support-dependencies-design-support-protocol-contracts-3d9b1a86.mjs +0 -1020
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-shared-protocol-contracts-75a938cc.mjs +0 -222
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-shared-protocol-contracts-b5f28f94.mjs +0 -5778
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-upload-spool.mjs +0 -198
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/04-compression.js +0 -4175
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/05-artifact-sharing.js +0 -65
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/06-artifact-review-ui.js +0 -1755
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/07-artifact-sharing.js +0 -62
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/08-artifact-review-ui.js +0 -2633
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.1.0/artifact-paste.schema.json +0 -49
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.9.0/design-review-workspace.schema.json +0 -108
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.9.0/design-workspace-create.schema.json +0 -170
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.9.0/design-workspace-event.schema.json +0 -97
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.9.0/design-workspace-revision.schema.json +0 -56
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-chunked-workspace-client.mjs +0 -555
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-compression.mjs +0 -4180
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-encrypted-workspace-client.mjs +0 -647
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-owner-custody.mjs +0 -129
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-resource-pack.mjs +0 -698
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-runtime-support-6774fd3d5d02.mjs +0 -24
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-share.mjs +0 -1993
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-shared-artifact-support-dependencies-design-support-protocol-contracts-3d9b1a86.mjs +0 -1020
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-shared-protocol-contracts-75a938cc.mjs +0 -222
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-shared-protocol-contracts-b5f28f94.mjs +0 -5778
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-upload-spool.mjs +0 -198
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/04-compression.js +0 -4175
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/05-artifact-sharing.js +0 -65
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/06-artifact-review-ui.js +0 -1755
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/07-artifact-sharing.js +0 -62
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/08-artifact-review-ui.js +0 -2633
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.1.0/artifact-paste.schema.json +0 -49
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.9.0/design-review-workspace.schema.json +0 -108
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.9.0/design-workspace-create.schema.json +0 -170
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.9.0/design-workspace-event.schema.json +0 -97
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.9.0/design-workspace-revision.schema.json +0 -56
- package/lib/host-packages/openai/openplanr/skills/delegate/scripts/integration-transaction.mjs +0 -958
|
@@ -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 |
|
|
@@ -2,7 +2,10 @@
|
|
|
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
|
|
5
|
+
Node.js 22.13 or later, with no provider credentials. Local design work needs no global
|
|
6
|
+
CLI. Sharing a design for company review runs in the `openplanr` CLI, which holds the
|
|
7
|
+
owner keys. Only `fonts fetch` downloads anything, and only when run; nothing is
|
|
8
|
+
fetched when a design opens.
|
|
6
9
|
Use `--help` to inspect the installed command interface before writing documents
|
|
7
10
|
or invoking operations; the installed contract is authoritative.
|
|
8
11
|
|
|
@@ -15,8 +18,17 @@ node scripts/design.mjs feedback <design-document.json> --action inspect --json
|
|
|
15
18
|
node scripts/design.mjs view-context <design-document.json> --json
|
|
16
19
|
node scripts/design.mjs studio <design-document.json> --action status --json
|
|
17
20
|
node scripts/design.mjs studio <design-document.json> --action stop --json
|
|
21
|
+
node scripts/design.mjs fonts fetch --family "<Name>:<weights>" [--family ...] --dest <design>/source/assets/fonts --json
|
|
18
22
|
```
|
|
19
23
|
|
|
24
|
+
`fonts fetch` snapshots at most two OFL or Apache families, three weights each, as
|
|
25
|
+
Latin `woff2` files with their license files and a local `fonts.css`. It needs network
|
|
26
|
+
access; ask the user to approve that one command. A host that allowlists domains needs
|
|
27
|
+
`raw.githubusercontent.com` (license check), `fonts.googleapis.com` (font CSS) and
|
|
28
|
+
`fonts.gstatic.com` (font files). It refuses an existing non-empty
|
|
29
|
+
`--dest` and leaves nothing behind when any request fails. See
|
|
30
|
+
[design-system.md](design-system.md) for the fallback.
|
|
31
|
+
|
|
20
32
|
Use `--view prototype` or `--view walkthrough` to select the initial presentation.
|
|
21
33
|
When an `openplanr` CLI is available, prefer its public `openplanr artifact` route for
|
|
22
34
|
opening the document; otherwise use this bundled script. Both compose the same
|
|
@@ -98,12 +110,16 @@ The design remains accessible when the local machine is offline. Owner authority
|
|
|
98
110
|
saves automatically in a protected user-level file outside the project; recovery
|
|
99
111
|
export is optional. Only copy the reviewer token through the explicit Share controls.
|
|
100
112
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
113
|
+
Sharing needs the OpenPlanr CLI (`npm install -g openplanr`). The bundled utility's
|
|
114
|
+
`share`, `publish`, `sync` and `manage` commands, the studio's Share dialog, and handoff
|
|
115
|
+
decisions on a shared design all run `openplanr artifact` for the network step, so the
|
|
116
|
+
helper itself reads no owner keys. `share` creates or retries a review, `publish` sends
|
|
117
|
+
an explicitly requested new revision to the existing URL, and `sync` retrieves
|
|
118
|
+
authenticated feedback. You can also run the CLI directly: `openplanr artifact share`,
|
|
119
|
+
`publish`, `sync`, `status`, `manage`, `feedback` and `handoff`. Without the CLI,
|
|
120
|
+
sharing commands stop with `E_DESIGN_SHARE_CLI_REQUIRED`, and feedback inspection
|
|
121
|
+
still works but reports that sync was skipped. A helper and CLI with different sharing
|
|
122
|
+
formats refuse with `E_DESIGN_SHARE_RUNTIME_MISMATCH`; update whichever is older.
|
|
107
123
|
|
|
108
124
|
Retention is until the owner revokes or deletes the review, while the service is
|
|
109
125
|
maintained. The owner can pause comments and rotate access tokens. Rotation blocks
|
package/lib/host-packages/openai/openplanr/skills/design/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
|
}
|
|
@@ -54,8 +54,23 @@ while authoring:
|
|
|
54
54
|
- at most two families and three weights each; one variable file can cover a
|
|
55
55
|
family's weights.
|
|
56
56
|
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
Snapshot with the bundled helper, run from the skill directory (see
|
|
58
|
+
[utilities.md](utilities.md)):
|
|
59
|
+
|
|
60
|
+
```sh
|
|
61
|
+
node scripts/design.mjs fonts fetch --family "Inter:400,600" --family "Source Serif 4:400" --dest <design>/source/assets/fonts
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
It is the one command to ask approval for. A host that allowlists network access by
|
|
65
|
+
domain needs `raw.githubusercontent.com`, `fonts.googleapis.com` and
|
|
66
|
+
`fonts.gstatic.com`. It enforces the rules above, verifies each
|
|
67
|
+
license from the Google Fonts catalog, writes `fonts.css`, and prints the files and
|
|
68
|
+
total bytes. Start the design stylesheet with `@import "assets/fonts/fonts.css";`
|
|
69
|
+
(relative to that stylesheet), then use the families by name. Nothing is fetched when
|
|
70
|
+
a design opens.
|
|
71
|
+
|
|
72
|
+
When the host denies network access, the command fails, or it refuses a license, use
|
|
73
|
+
the role's system stack and name that fallback in the return:
|
|
59
74
|
|
|
60
75
|
| Role | System stack |
|
|
61
76
|
| --- | --- |
|
|
@@ -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 |
|
|
@@ -2,7 +2,10 @@
|
|
|
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
|
|
5
|
+
Node.js 22.13 or later, with no provider credentials. Local design work needs no global
|
|
6
|
+
CLI. Sharing a design for company review runs in the `openplanr` CLI, which holds the
|
|
7
|
+
owner keys. Only `fonts fetch` downloads anything, and only when run; nothing is
|
|
8
|
+
fetched when a design opens.
|
|
6
9
|
Use `--help` to inspect the installed command interface before writing documents
|
|
7
10
|
or invoking operations; the installed contract is authoritative.
|
|
8
11
|
|
|
@@ -15,8 +18,17 @@ node scripts/design.mjs feedback <design-document.json> --action inspect --json
|
|
|
15
18
|
node scripts/design.mjs view-context <design-document.json> --json
|
|
16
19
|
node scripts/design.mjs studio <design-document.json> --action status --json
|
|
17
20
|
node scripts/design.mjs studio <design-document.json> --action stop --json
|
|
21
|
+
node scripts/design.mjs fonts fetch --family "<Name>:<weights>" [--family ...] --dest <design>/source/assets/fonts --json
|
|
18
22
|
```
|
|
19
23
|
|
|
24
|
+
`fonts fetch` snapshots at most two OFL or Apache families, three weights each, as
|
|
25
|
+
Latin `woff2` files with their license files and a local `fonts.css`. It needs network
|
|
26
|
+
access; ask the user to approve that one command. A host that allowlists domains needs
|
|
27
|
+
`raw.githubusercontent.com` (license check), `fonts.googleapis.com` (font CSS) and
|
|
28
|
+
`fonts.gstatic.com` (font files). It refuses an existing non-empty
|
|
29
|
+
`--dest` and leaves nothing behind when any request fails. See
|
|
30
|
+
[design-system.md](design-system.md) for the fallback.
|
|
31
|
+
|
|
20
32
|
Use `--view prototype` or `--view walkthrough` to select the initial presentation.
|
|
21
33
|
When an `openplanr` CLI is available, prefer its public `openplanr artifact` route for
|
|
22
34
|
opening the document; otherwise use this bundled script. Both compose the same
|
|
@@ -98,12 +110,16 @@ The design remains accessible when the local machine is offline. Owner authority
|
|
|
98
110
|
saves automatically in a protected user-level file outside the project; recovery
|
|
99
111
|
export is optional. Only copy the reviewer token through the explicit Share controls.
|
|
100
112
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
113
|
+
Sharing needs the OpenPlanr CLI (`npm install -g openplanr`). The bundled utility's
|
|
114
|
+
`share`, `publish`, `sync` and `manage` commands, the studio's Share dialog, and handoff
|
|
115
|
+
decisions on a shared design all run `openplanr artifact` for the network step, so the
|
|
116
|
+
helper itself reads no owner keys. `share` creates or retries a review, `publish` sends
|
|
117
|
+
an explicitly requested new revision to the existing URL, and `sync` retrieves
|
|
118
|
+
authenticated feedback. You can also run the CLI directly: `openplanr artifact share`,
|
|
119
|
+
`publish`, `sync`, `status`, `manage`, `feedback` and `handoff`. Without the CLI,
|
|
120
|
+
sharing commands stop with `E_DESIGN_SHARE_CLI_REQUIRED`, and feedback inspection
|
|
121
|
+
still works but reports that sync was skipped. A helper and CLI with different sharing
|
|
122
|
+
formats refuse with `E_DESIGN_SHARE_RUNTIME_MISMATCH`; update whichever is older.
|
|
107
123
|
|
|
108
124
|
Retention is until the owner revokes or deletes the review, while the service is
|
|
109
125
|
maintained. The owner can pause comments and rotate access tokens. Rotation blocks
|
package/lib/host-packages/openai/openplanr/skills/design-loop/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
|
}
|
|
@@ -54,8 +54,23 @@ while authoring:
|
|
|
54
54
|
- at most two families and three weights each; one variable file can cover a
|
|
55
55
|
family's weights.
|
|
56
56
|
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
Snapshot with the bundled helper, run from the skill directory (see
|
|
58
|
+
[utilities.md](utilities.md)):
|
|
59
|
+
|
|
60
|
+
```sh
|
|
61
|
+
node scripts/design.mjs fonts fetch --family "Inter:400,600" --family "Source Serif 4:400" --dest <design>/source/assets/fonts
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
It is the one command to ask approval for. A host that allowlists network access by
|
|
65
|
+
domain needs `raw.githubusercontent.com`, `fonts.googleapis.com` and
|
|
66
|
+
`fonts.gstatic.com`. It enforces the rules above, verifies each
|
|
67
|
+
license from the Google Fonts catalog, writes `fonts.css`, and prints the files and
|
|
68
|
+
total bytes. Start the design stylesheet with `@import "assets/fonts/fonts.css";`
|
|
69
|
+
(relative to that stylesheet), then use the families by name. Nothing is fetched when
|
|
70
|
+
a design opens.
|
|
71
|
+
|
|
72
|
+
When the host denies network access, the command fails, or it refuses a license, use
|
|
73
|
+
the role's system stack and name that fallback in the return:
|
|
59
74
|
|
|
60
75
|
| Role | System stack |
|
|
61
76
|
| --- | --- |
|