openplanr 2.2641.0 → 2.2641.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +34 -0
- package/README.md +14 -14
- package/bin/openplanr.js +13 -0
- package/bin/planr.js +5 -11
- package/dist/cli/commands/artifact.d.ts.map +1 -1
- package/dist/cli/commands/artifact.js +6 -5
- package/dist/cli/commands/artifact.js.map +1 -1
- package/dist/cli/commands/checklist.d.ts.map +1 -1
- package/dist/cli/commands/checklist.js +4 -3
- package/dist/cli/commands/checklist.js.map +1 -1
- package/dist/cli/commands/company.d.ts.map +1 -1
- package/dist/cli/commands/company.js +3 -2
- package/dist/cli/commands/company.js.map +1 -1
- package/dist/cli/commands/context.d.ts +1 -1
- package/dist/cli/commands/context.js +1 -1
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +11 -5
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/export.d.ts +1 -1
- package/dist/cli/commands/export.js +1 -1
- package/dist/cli/commands/github.d.ts +1 -1
- package/dist/cli/commands/github.d.ts.map +1 -1
- package/dist/cli/commands/github.js +16 -18
- package/dist/cli/commands/github.js.map +1 -1
- package/dist/cli/commands/init-deterministic.d.ts.map +1 -1
- package/dist/cli/commands/init-deterministic.js +2 -1
- package/dist/cli/commands/init-deterministic.js.map +1 -1
- package/dist/cli/commands/linear.d.ts +2 -2
- package/dist/cli/commands/linear.d.ts.map +1 -1
- package/dist/cli/commands/linear.js +29 -28
- package/dist/cli/commands/linear.js.map +1 -1
- package/dist/cli/commands/operate/registrars/index.d.ts +1 -1
- package/dist/cli/commands/operate/registrars/index.d.ts.map +1 -1
- package/dist/cli/commands/operate/registrars/index.js +1 -1
- package/dist/cli/commands/operate/registrars/index.js.map +1 -1
- package/dist/cli/commands/operate/render.d.ts.map +1 -1
- package/dist/cli/commands/operate/render.js +2 -1
- package/dist/cli/commands/operate/render.js.map +1 -1
- package/dist/cli/commands/operate.d.ts.map +1 -1
- package/dist/cli/commands/operate.js +2 -1
- package/dist/cli/commands/operate.js.map +1 -1
- package/dist/cli/commands/planning-artifacts.d.ts.map +1 -1
- package/dist/cli/commands/planning-artifacts.js +2 -1
- package/dist/cli/commands/planning-artifacts.js.map +1 -1
- package/dist/cli/commands/quick/interaction.d.ts +1 -1
- package/dist/cli/commands/quick/interaction.d.ts.map +1 -1
- package/dist/cli/commands/quick/interaction.js +1 -1
- package/dist/cli/commands/quick/interaction.js.map +1 -1
- package/dist/cli/commands/quick/project.d.ts +1 -1
- package/dist/cli/commands/quick/project.d.ts.map +1 -1
- package/dist/cli/commands/quick/project.js +1 -1
- package/dist/cli/commands/quick/project.js.map +1 -1
- package/dist/cli/commands/report-linter.d.ts +1 -1
- package/dist/cli/commands/report-linter.js +1 -1
- package/dist/cli/commands/report.d.ts +1 -1
- package/dist/cli/commands/report.d.ts.map +1 -1
- package/dist/cli/commands/report.js +32 -35
- package/dist/cli/commands/report.js.map +1 -1
- package/dist/cli/commands/setup.d.ts.map +1 -1
- package/dist/cli/commands/setup.js +5 -4
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/commands/spec.d.ts +11 -11
- package/dist/cli/commands/spec.d.ts.map +1 -1
- package/dist/cli/commands/spec.js +34 -33
- package/dist/cli/commands/spec.js.map +1 -1
- package/dist/cli/commands/sprint-refinement.d.ts.map +1 -1
- package/dist/cli/commands/sprint-refinement.js +2 -1
- package/dist/cli/commands/sprint-refinement.js.map +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +2 -1
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/story/interaction.d.ts +1 -1
- package/dist/cli/commands/story/interaction.d.ts.map +1 -1
- package/dist/cli/commands/story/interaction.js +1 -1
- package/dist/cli/commands/story/interaction.js.map +1 -1
- package/dist/cli/commands/story/project.d.ts +1 -1
- package/dist/cli/commands/story/project.d.ts.map +1 -1
- package/dist/cli/commands/story/project.js +1 -1
- package/dist/cli/commands/story/project.js.map +1 -1
- package/dist/cli/commands/sync.d.ts +1 -1
- package/dist/cli/commands/sync.d.ts.map +1 -1
- package/dist/cli/commands/sync.js +3 -2
- package/dist/cli/commands/sync.js.map +1 -1
- package/dist/cli/commands/template.d.ts +1 -1
- package/dist/cli/commands/template.js +10 -10
- package/dist/cli/commands/template.js.map +1 -1
- package/dist/cli/commands/update.d.ts +1 -1
- package/dist/cli/commands/update.js +1 -1
- package/dist/cli/commands/upgrade.d.ts +1 -1
- package/dist/cli/commands/upgrade.d.ts.map +1 -1
- package/dist/cli/commands/upgrade.js +3 -2
- package/dist/cli/commands/upgrade.js.map +1 -1
- package/dist/cli/commands/voice.d.ts +1 -1
- package/dist/cli/commands/voice.js +1 -1
- package/dist/cli/index.js +6 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/dashboard/.vite/manifest.json +1 -1
- package/dist/dashboard/assets/{index-D7R6tnlX.js → index-DI_TKz9J.js} +115 -115
- package/dist/dashboard/assets/index-DI_TKz9J.js.map +1 -0
- package/dist/dashboard/dashboard-manifest.json +10 -10
- package/dist/dashboard/index.html +1 -1
- package/dist/generators/cursor-generator.js +1 -1
- package/dist/generators/cursor-generator.js.map +1 -1
- package/dist/models/schema.d.ts +0 -4
- package/dist/models/schema.d.ts.map +1 -1
- package/dist/models/schema.js +2 -3
- package/dist/models/schema.js.map +1 -1
- package/dist/models/types.d.ts +13 -16
- package/dist/models/types.d.ts.map +1 -1
- package/dist/services/artifact-service.d.ts +1 -1
- package/dist/services/artifact-service.js +2 -2
- package/dist/services/artifact-service.js.map +1 -1
- package/dist/services/audit-log-service.d.ts.map +1 -1
- package/dist/services/audit-log-service.js +2 -1
- package/dist/services/audit-log-service.js.map +1 -1
- package/dist/services/claude-plugin-service.d.ts +3 -1
- package/dist/services/claude-plugin-service.d.ts.map +1 -1
- package/dist/services/claude-plugin-service.js +9 -5
- 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 +3 -2
- package/dist/services/codex-plugin-service.js.map +1 -1
- package/dist/services/company-auth-service.d.ts.map +1 -1
- package/dist/services/company-auth-service.js +2 -1
- package/dist/services/company-auth-service.js.map +1 -1
- package/dist/services/company-sync-service.d.ts.map +1 -1
- package/dist/services/company-sync-service.js +9 -8
- package/dist/services/company-sync-service.js.map +1 -1
- package/dist/services/config-service.d.ts +6 -1
- package/dist/services/config-service.d.ts.map +1 -1
- package/dist/services/config-service.js +19 -4
- package/dist/services/config-service.js.map +1 -1
- package/dist/services/credentials-service.js +2 -2
- package/dist/services/credentials-service.js.map +1 -1
- package/dist/services/delivery-status-service.d.ts +1 -1
- package/dist/services/delivery-status-service.d.ts.map +1 -1
- package/dist/services/delivery-status-service.js +3 -2
- package/dist/services/delivery-status-service.js.map +1 -1
- package/dist/services/diagram-authoring-service.d.ts.map +1 -1
- package/dist/services/diagram-authoring-service.js +2 -1
- package/dist/services/diagram-authoring-service.js.map +1 -1
- package/dist/services/diagram-pipeline-service.d.ts.map +1 -1
- package/dist/services/diagram-pipeline-service.js +6 -5
- package/dist/services/diagram-pipeline-service.js.map +1 -1
- package/dist/services/distribution-service.d.ts +1 -4
- package/dist/services/distribution-service.d.ts.map +1 -1
- package/dist/services/distribution-service.js +3 -61
- package/dist/services/distribution-service.js.map +1 -1
- package/dist/services/github-service.d.ts +8 -5
- package/dist/services/github-service.d.ts.map +1 -1
- package/dist/services/github-service.js +23 -21
- package/dist/services/github-service.js.map +1 -1
- package/dist/services/graph-integrity.d.ts +1 -1
- package/dist/services/graph-integrity.js +1 -1
- package/dist/services/landing/landing-service.d.ts.map +1 -1
- package/dist/services/landing/landing-service.js +4 -1
- package/dist/services/landing/landing-service.js.map +1 -1
- package/dist/services/landing/receipt-custody.d.ts.map +1 -1
- package/dist/services/landing/receipt-custody.js +3 -2
- package/dist/services/landing/receipt-custody.js.map +1 -1
- package/dist/services/linear/errors.d.ts.map +1 -1
- package/dist/services/linear/errors.js +2 -1
- package/dist/services/linear/errors.js.map +1 -1
- package/dist/services/linear/plan-builders.d.ts +3 -3
- package/dist/services/linear/plan-builders.d.ts.map +1 -1
- package/dist/services/linear/plan-builders.js +2 -2
- package/dist/services/linear/strategy-context.d.ts.map +1 -1
- package/dist/services/linear/strategy-context.js +6 -5
- package/dist/services/linear/strategy-context.js.map +1 -1
- package/dist/services/linear-mapping-service.d.ts +1 -1
- package/dist/services/linear-mapping-service.d.ts.map +1 -1
- package/dist/services/linear-mapping-service.js +3 -2
- package/dist/services/linear-mapping-service.js.map +1 -1
- package/dist/services/linear-pull-service.d.ts +1 -1
- package/dist/services/linear-pull-service.d.ts.map +1 -1
- package/dist/services/linear-pull-service.js +10 -9
- package/dist/services/linear-pull-service.js.map +1 -1
- package/dist/services/linear-push-service.d.ts +5 -6
- package/dist/services/linear-push-service.d.ts.map +1 -1
- package/dist/services/linear-push-service.js +22 -22
- package/dist/services/linear-push-service.js.map +1 -1
- package/dist/services/linear-service.d.ts +2 -2
- package/dist/services/linear-service.js +2 -2
- package/dist/services/linear-team-service.d.ts.map +1 -1
- package/dist/services/linear-team-service.js +2 -1
- package/dist/services/linear-team-service.js.map +1 -1
- package/dist/services/operate/assignment-packet-service.d.ts.map +1 -1
- package/dist/services/operate/assignment-packet-service.js +2 -1
- package/dist/services/operate/assignment-packet-service.js.map +1 -1
- package/dist/services/operate/delivery-evidence.d.ts.map +1 -1
- package/dist/services/operate/delivery-evidence.js +2 -1
- package/dist/services/operate/delivery-evidence.js.map +1 -1
- package/dist/services/operate/measurement-schedule-service.d.ts.map +1 -1
- package/dist/services/operate/measurement-schedule-service.js +2 -1
- package/dist/services/operate/measurement-schedule-service.js.map +1 -1
- package/dist/services/operate/path-custody.d.ts.map +1 -1
- package/dist/services/operate/path-custody.js +2 -1
- package/dist/services/operate/path-custody.js.map +1 -1
- package/dist/services/operate/pinned-legacy-replay-runner.d.ts.map +1 -1
- package/dist/services/operate/pinned-legacy-replay-runner.js +3 -2
- package/dist/services/operate/pinned-legacy-replay-runner.js.map +1 -1
- package/dist/services/operate/planning-handoff-service.d.ts.map +1 -1
- package/dist/services/operate/planning-handoff-service.js +3 -2
- package/dist/services/operate/planning-handoff-service.js.map +1 -1
- package/dist/services/operate/project-transaction-lock.d.ts.map +1 -1
- package/dist/services/operate/project-transaction-lock.js +2 -1
- package/dist/services/operate/project-transaction-lock.js.map +1 -1
- package/dist/services/operate/repository-read-service.d.ts.map +1 -1
- package/dist/services/operate/repository-read-service.js +5 -4
- package/dist/services/operate/repository-read-service.js.map +1 -1
- package/dist/services/operate/screened-evidence-service.d.ts.map +1 -1
- package/dist/services/operate/screened-evidence-service.js +5 -4
- package/dist/services/operate/screened-evidence-service.js.map +1 -1
- package/dist/services/operate/storage-layout.d.ts.map +1 -1
- package/dist/services/operate/storage-layout.js +8 -7
- package/dist/services/operate/storage-layout.js.map +1 -1
- package/dist/services/operate/store.d.ts.map +1 -1
- package/dist/services/operate/store.js +7 -6
- package/dist/services/operate/store.js.map +1 -1
- package/dist/services/pipeline-package-service.js +1 -1
- package/dist/services/pipeline-package-service.js.map +1 -1
- package/dist/services/provenance-service.d.ts.map +1 -1
- package/dist/services/provenance-service.js +2 -1
- package/dist/services/provenance-service.js.map +1 -1
- package/dist/services/report-linter-service.js +1 -1
- package/dist/services/report-linter-service.js.map +1 -1
- package/dist/services/revise-cache-service.d.ts.map +1 -1
- package/dist/services/revise-cache-service.js +2 -1
- package/dist/services/revise-cache-service.js.map +1 -1
- package/dist/services/runtime-manager/doctor.d.ts +13 -0
- package/dist/services/runtime-manager/doctor.d.ts.map +1 -1
- package/dist/services/runtime-manager/doctor.js +50 -3
- package/dist/services/runtime-manager/doctor.js.map +1 -1
- package/dist/services/runtime-manager/inventory.d.ts +1 -0
- package/dist/services/runtime-manager/inventory.d.ts.map +1 -1
- package/dist/services/runtime-manager/inventory.js +3 -1
- package/dist/services/runtime-manager/inventory.js.map +1 -1
- package/dist/services/runtime-manager-service.d.ts +4 -2
- package/dist/services/runtime-manager-service.d.ts.map +1 -1
- package/dist/services/runtime-manager-service.js +52 -33
- package/dist/services/runtime-manager-service.js.map +1 -1
- package/dist/services/server-lifecycle-service.d.ts.map +1 -1
- package/dist/services/server-lifecycle-service.js +14 -9
- package/dist/services/server-lifecycle-service.js.map +1 -1
- package/dist/services/spec-service.d.ts +4 -4
- package/dist/services/spec-service.d.ts.map +1 -1
- package/dist/services/spec-service.js +43 -77
- package/dist/services/spec-service.js.map +1 -1
- package/dist/services/sprint-refinement-service.d.ts +6 -6
- package/dist/services/sprint-refinement-service.d.ts.map +1 -1
- package/dist/services/sprint-refinement-service.js +16 -16
- package/dist/services/sprint-refinement-service.js.map +1 -1
- package/dist/services/template-service.d.ts.map +1 -1
- package/dist/services/template-service.js +3 -1
- package/dist/services/template-service.js.map +1 -1
- package/dist/services/upgrade-offer-service.d.ts +2 -2
- package/dist/services/upgrade-offer-service.d.ts.map +1 -1
- package/dist/services/upgrade-offer-service.js +4 -3
- package/dist/services/upgrade-offer-service.js.map +1 -1
- package/dist/services/upgrade-report.d.ts +1 -1
- package/dist/services/upgrade-report.d.ts.map +1 -1
- package/dist/services/upgrade-report.js +5 -4
- package/dist/services/upgrade-report.js.map +1 -1
- package/dist/services/upgrade-service.d.ts +5 -5
- package/dist/services/upgrade-service.d.ts.map +1 -1
- package/dist/services/upgrade-service.js +14 -13
- package/dist/services/upgrade-service.js.map +1 -1
- package/dist/templates/backlog/backlog-item.md.hbs +1 -1
- package/dist/templates/checklists/agile-checklist.md.hbs +6 -6
- package/dist/templates/epics/epic.md.hbs +1 -1
- package/dist/templates/export/planning-report.html.hbs +1 -1
- package/dist/templates/export/planning-report.md.hbs +1 -1
- package/dist/templates/features/feature.md.hbs +1 -1
- package/dist/templates/guides/estimation.md.hbs +3 -12
- package/dist/templates/quick/quick-task.md.hbs +1 -1
- package/dist/templates/rules/cursor/create-epic.mdc.hbs +1 -1
- package/dist/templates/rules/cursor/create-features.mdc.hbs +1 -1
- package/dist/templates/rules/cursor/create-user-story.mdc.hbs +1 -1
- package/dist/templates/rules/cursor/openplanr.mdc.hbs +1 -1
- package/dist/templates/rules/shared/capability-map.md.hbs +1 -1
- package/dist/templates/rules/shared/host-native-guidance.md.hbs +1 -1
- package/dist/templates/spec/spec-shaped.md.hbs +1 -1
- package/dist/templates/spec/spec.md.hbs +1 -1
- package/dist/templates/sprints/sprint-tasks.md.hbs +1 -1
- package/dist/templates/sprints/sprint.md.hbs +1 -1
- package/dist/templates/stories/user-story.md.hbs +1 -1
- package/dist/utils/constants.d.ts +8 -4
- package/dist/utils/constants.d.ts.map +1 -1
- package/dist/utils/constants.js +10 -4
- package/dist/utils/constants.js.map +1 -1
- package/docs/ARTIFACT_REVIEW.md +13 -13
- package/docs/CLI.md +258 -262
- package/docs/CROSS_RUNTIME_SETUP.md +33 -33
- package/docs/TROUBLESHOOTING.md +28 -28
- package/install.ps1 +2 -2
- package/install.sh +3 -3
- package/lib/host-packages/adapter-registry.json +5 -5
- package/lib/host-packages/capability-map.json +9 -9
- 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 +109 -89
- package/lib/host-packages/claude/openplanr/README.md +13 -17
- package/lib/host-packages/claude/openplanr/agents/planr-backend.md +49 -55
- package/lib/host-packages/claude/openplanr/agents/planr-database.md +56 -92
- package/lib/host-packages/claude/openplanr/agents/planr-designer.md +35 -51
- package/lib/host-packages/claude/openplanr/agents/planr-devops.md +37 -51
- package/lib/host-packages/claude/openplanr/agents/planr-documentation.md +29 -52
- package/lib/host-packages/claude/openplanr/agents/planr-entity-scaffold.md +24 -23
- package/lib/host-packages/claude/openplanr/agents/planr-frontend.md +46 -58
- package/lib/host-packages/claude/openplanr/agents/planr-qa.md +4 -2
- package/lib/host-packages/claude/openplanr/agents/planr-specification.md +54 -51
- package/lib/host-packages/claude/openplanr/references/agents/shared/modes/default/backend.md +21 -65
- package/lib/host-packages/claude/openplanr/references/agents/shared/modes/default/designer.md +5 -6
- package/lib/host-packages/claude/openplanr/references/agents/shared/modes/default/devops.md +2 -3
- package/lib/host-packages/claude/openplanr/references/agents/shared/modes/default/doc-gen.md +3 -4
- package/lib/host-packages/claude/openplanr/references/agents/shared/modes/default/frontend.md +19 -64
- package/lib/host-packages/claude/openplanr/references/agents/shared/modes/default/specification.md +10 -12
- package/lib/host-packages/claude/openplanr/references/agents/shared/modes/spec-driven/backend.md +19 -62
- package/lib/host-packages/claude/openplanr/references/agents/shared/modes/spec-driven/designer.md +5 -6
- package/lib/host-packages/claude/openplanr/references/agents/shared/modes/spec-driven/devops.md +2 -3
- package/lib/host-packages/claude/openplanr/references/agents/shared/modes/spec-driven/doc-gen.md +2 -3
- package/lib/host-packages/claude/openplanr/references/agents/shared/modes/spec-driven/frontend.md +16 -59
- package/lib/host-packages/claude/openplanr/references/agents/shared/modes/spec-driven/specification.md +9 -11
- package/lib/host-packages/claude/openplanr/references/pipeline/stacks/database/mongodb.md +4 -4
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-owner-custody.mjs +8 -0
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-review.mjs +105 -55
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-share.mjs +12 -7
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/package.json +3 -3
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/share.js +1 -1
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/protocol/package.json +9 -1
- package/lib/host-packages/claude/openplanr/runtime/plan/scripts/design.mjs +11 -4
- package/lib/host-packages/claude/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +9 -1
- package/lib/host-packages/claude/openplanr/skills/artifact/SKILL.md +14 -14
- package/lib/host-packages/claude/openplanr/skills/artifact/references/company-review.md +9 -9
- package/lib/host-packages/claude/openplanr/skills/artifact/references/design-sharing.md +1 -1
- package/lib/host-packages/claude/openplanr/skills/artifact/references/diagram-sharing.md +4 -4
- package/lib/host-packages/claude/openplanr/skills/ceo-review/SKILL.md +0 -1
- package/lib/host-packages/claude/openplanr/skills/ceo-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/claude/openplanr/skills/chair-review/SKILL.md +6 -2
- package/lib/host-packages/claude/openplanr/skills/challenger-review/SKILL.md +6 -2
- package/lib/host-packages/claude/openplanr/skills/cmo-review/SKILL.md +0 -1
- package/lib/host-packages/claude/openplanr/skills/cmo-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/claude/openplanr/skills/coo-review/SKILL.md +0 -1
- package/lib/host-packages/claude/openplanr/skills/coo-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/claude/openplanr/skills/cpo-review/SKILL.md +0 -1
- package/lib/host-packages/claude/openplanr/skills/cpo-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/claude/openplanr/skills/cto-review/SKILL.md +0 -1
- package/lib/host-packages/claude/openplanr/skills/cto-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/claude/openplanr/skills/dashboard/SKILL.md +1 -1
- package/lib/host-packages/claude/openplanr/skills/delegate/SKILL.md +7 -0
- package/lib/host-packages/claude/openplanr/skills/delegate/references/capsule-contract.md +16 -1
- package/lib/host-packages/claude/openplanr/skills/delegate/references/operator-guide.md +8 -6
- package/lib/host-packages/claude/openplanr/skills/delegate/scripts/adapters/claude.mjs +11 -4
- package/lib/host-packages/claude/openplanr/skills/delegate/scripts/adapters/native.mjs +1 -1
- package/lib/host-packages/claude/openplanr/skills/delegate/scripts/backend-diagnostics.mjs +14 -48
- package/lib/host-packages/claude/openplanr/skills/delegate/scripts/context.mjs +84 -22
- package/lib/host-packages/claude/openplanr/skills/delegate/scripts/credentials.mjs +167 -0
- package/lib/host-packages/claude/openplanr/skills/delegate/scripts/presentation.mjs +3 -2
- package/lib/host-packages/claude/openplanr/skills/delegate/scripts/run-contract.mjs +5 -7
- package/lib/host-packages/claude/openplanr/skills/delegate/scripts/run-preparation.mjs +2 -0
- package/lib/host-packages/claude/openplanr/skills/delegate/scripts/run-record.mjs +2 -3
- package/lib/host-packages/claude/openplanr/skills/design/SKILL.md +1 -1
- package/lib/host-packages/claude/openplanr/skills/design/references/team-review.md +1 -1
- package/lib/host-packages/claude/openplanr/skills/design/references/utilities.md +4 -4
- package/lib/host-packages/claude/openplanr/skills/design-loop/SKILL.md +1 -1
- package/lib/host-packages/claude/openplanr/skills/design-loop/references/team-review.md +1 -1
- package/lib/host-packages/claude/openplanr/skills/design-loop/references/utilities.md +4 -4
- package/lib/host-packages/claude/openplanr/skills/design-review/SKILL.md +1 -1
- package/lib/host-packages/claude/openplanr/skills/design-review/references/team-review.md +1 -1
- package/lib/host-packages/claude/openplanr/skills/design-review/references/utilities.md +4 -4
- package/lib/host-packages/claude/openplanr/skills/diagram/SKILL.md +15 -15
- package/lib/host-packages/claude/openplanr/skills/diagram/references/diagram-document.md +1 -1
- package/lib/host-packages/claude/openplanr/skills/diagram/references/diagram-intent-to-ir.md +1 -1
- package/lib/host-packages/claude/openplanr/skills/diagram/references/diagram-sharing.md +4 -4
- package/lib/host-packages/claude/openplanr/skills/doctor/SKILL.md +9 -9
- package/lib/host-packages/claude/openplanr/skills/doctor/references/upgrade.md +18 -16
- package/lib/host-packages/claude/openplanr/skills/land/SKILL.md +2 -2
- package/lib/host-packages/claude/openplanr/skills/operate/SKILL.md +5 -3
- package/lib/host-packages/claude/openplanr/skills/plan/SKILL.md +8 -2
- package/lib/host-packages/claude/openplanr/skills/plan/references/artifact-contract.md +5 -0
- package/lib/host-packages/claude/openplanr/skills/spec/references/specification-contract.md +5 -0
- package/lib/host-packages/claude/openplanr/skills/sprint/SKILL.md +16 -15
- package/lib/host-packages/claude/openplanr/skills/sprint/references/refinement-contract.md +5 -5
- package/lib/host-packages/claude/openplanr/skills/sprint/references/sprint-formats.md +8 -8
- package/lib/host-packages/claude/openplanr/skills/sprint/references/tracker-connections.md +70 -0
- package/lib/host-packages/claude/openplanr/skills/sprint/schemas/refinement.schema.json +3 -3
- package/lib/host-packages/claude/openplanr/skills/status/SKILL.md +5 -4
- package/lib/host-packages/claude/openplanr/skills/status/references/tracker-connections.md +70 -0
- package/lib/host-packages/claude/openplanr/skills/sync/SKILL.md +11 -20
- package/lib/host-packages/claude/openplanr/skills/sync/references/tracker-connections.md +70 -0
- package/lib/host-packages/claude/openplanr/skills/sync/scripts/names.mjs +8 -0
- package/lib/host-packages/claude/openplanr/skills/sync/scripts/sync.mjs +3 -2
- package/lib/host-packages/cursor/openplanr/.openplanr-content.json +81 -61
- package/lib/host-packages/cursor/openplanr/manifest.json +1 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-artifact/references/company-review.md +9 -9
- package/lib/host-packages/cursor/openplanr/rules/planr-artifact/references/design-sharing.md +1 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-artifact/references/diagram-sharing.md +4 -4
- package/lib/host-packages/cursor/openplanr/rules/planr-artifact.mdc +14 -14
- package/lib/host-packages/cursor/openplanr/rules/planr-ceo-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/cursor/openplanr/rules/planr-chair-review.mdc +6 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-challenger-review.mdc +6 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-cmo-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/cursor/openplanr/rules/planr-coo-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/cursor/openplanr/rules/planr-cpo-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/cursor/openplanr/rules/planr-cto-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/cursor/openplanr/rules/planr-dashboard.mdc +1 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/references/capsule-contract.md +16 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/references/operator-guide.md +8 -6
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/adapters/claude.mjs +11 -4
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/adapters/native.mjs +1 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/backend-diagnostics.mjs +14 -48
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/context.mjs +84 -22
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/credentials.mjs +167 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/presentation.mjs +3 -2
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/run-contract.mjs +5 -7
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/run-preparation.mjs +2 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/run-record.mjs +2 -3
- package/lib/host-packages/cursor/openplanr/rules/planr-delegate.mdc +7 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-design/references/team-review.md +1 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-design/references/utilities.md +4 -4
- package/lib/host-packages/cursor/openplanr/rules/planr-design-loop/references/team-review.md +1 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-design-loop/references/utilities.md +4 -4
- package/lib/host-packages/cursor/openplanr/rules/planr-design-loop.mdc +1 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-design-review/references/team-review.md +1 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-design-review/references/utilities.md +4 -4
- package/lib/host-packages/cursor/openplanr/rules/planr-design-review.mdc +1 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-design.mdc +1 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-diagram/references/diagram-document.md +1 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-diagram/references/diagram-intent-to-ir.md +1 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-diagram/references/diagram-sharing.md +4 -4
- package/lib/host-packages/cursor/openplanr/rules/planr-diagram.mdc +15 -15
- package/lib/host-packages/cursor/openplanr/rules/planr-doctor/references/upgrade.md +18 -16
- package/lib/host-packages/cursor/openplanr/rules/planr-doctor.mdc +9 -9
- package/lib/host-packages/cursor/openplanr/rules/planr-land.mdc +2 -2
- package/lib/host-packages/cursor/openplanr/rules/planr-operate.mdc +5 -3
- package/lib/host-packages/cursor/openplanr/rules/planr-plan/references/artifact-contract.md +5 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-plan.mdc +8 -2
- package/lib/host-packages/cursor/openplanr/rules/planr-spec/references/specification-contract.md +5 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-sprint/references/refinement-contract.md +5 -5
- package/lib/host-packages/cursor/openplanr/rules/planr-sprint/references/sprint-formats.md +8 -8
- package/lib/host-packages/cursor/openplanr/rules/planr-sprint/references/tracker-connections.md +70 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-sprint/schemas/refinement.schema.json +3 -3
- package/lib/host-packages/cursor/openplanr/rules/planr-sprint.mdc +16 -15
- package/lib/host-packages/cursor/openplanr/rules/planr-status/references/tracker-connections.md +70 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-status.mdc +5 -4
- package/lib/host-packages/cursor/openplanr/rules/planr-sync/references/tracker-connections.md +70 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-sync/scripts/names.mjs +8 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-sync/scripts/sync.mjs +3 -2
- package/lib/host-packages/cursor/openplanr/rules/planr-sync.mdc +11 -20
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-owner-custody.mjs +8 -0
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-review.mjs +105 -55
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-share.mjs +12 -7
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/package.json +3 -3
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/share.js +1 -1
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/protocol/package.json +9 -1
- package/lib/host-packages/cursor/openplanr/runtime/plan/scripts/design.mjs +11 -4
- package/lib/host-packages/cursor/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +9 -1
- 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 +90 -70
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-owner-custody.mjs +8 -0
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-review.mjs +105 -55
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-share.mjs +12 -7
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/package.json +3 -3
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/share.js +1 -1
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/protocol/package.json +9 -1
- package/lib/host-packages/openai/openplanr/runtime/plan/scripts/design.mjs +11 -4
- package/lib/host-packages/openai/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +9 -1
- package/lib/host-packages/openai/openplanr/skills/artifact/SKILL.md +14 -14
- package/lib/host-packages/openai/openplanr/skills/artifact/references/company-review.md +9 -9
- package/lib/host-packages/openai/openplanr/skills/artifact/references/design-sharing.md +1 -1
- package/lib/host-packages/openai/openplanr/skills/artifact/references/diagram-sharing.md +4 -4
- package/lib/host-packages/openai/openplanr/skills/ceo-review/SKILL.md +0 -1
- package/lib/host-packages/openai/openplanr/skills/ceo-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/openai/openplanr/skills/chair-review/SKILL.md +6 -2
- package/lib/host-packages/openai/openplanr/skills/challenger-review/SKILL.md +6 -2
- package/lib/host-packages/openai/openplanr/skills/cmo-review/SKILL.md +0 -1
- package/lib/host-packages/openai/openplanr/skills/cmo-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/openai/openplanr/skills/coo-review/SKILL.md +0 -1
- package/lib/host-packages/openai/openplanr/skills/coo-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/openai/openplanr/skills/cpo-review/SKILL.md +0 -1
- package/lib/host-packages/openai/openplanr/skills/cpo-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/openai/openplanr/skills/cto-review/SKILL.md +0 -1
- package/lib/host-packages/openai/openplanr/skills/cto-review/references/operate-advisor-contract.md +25 -4
- package/lib/host-packages/openai/openplanr/skills/dashboard/SKILL.md +1 -1
- package/lib/host-packages/openai/openplanr/skills/delegate/SKILL.md +7 -0
- package/lib/host-packages/openai/openplanr/skills/delegate/openplanr.skill.json +11 -0
- package/lib/host-packages/openai/openplanr/skills/delegate/references/capsule-contract.md +16 -1
- package/lib/host-packages/openai/openplanr/skills/delegate/references/operator-guide.md +8 -6
- package/lib/host-packages/openai/openplanr/skills/delegate/scripts/adapters/claude.mjs +11 -4
- package/lib/host-packages/openai/openplanr/skills/delegate/scripts/adapters/native.mjs +1 -1
- package/lib/host-packages/openai/openplanr/skills/delegate/scripts/backend-diagnostics.mjs +14 -48
- package/lib/host-packages/openai/openplanr/skills/delegate/scripts/context.mjs +84 -22
- package/lib/host-packages/openai/openplanr/skills/delegate/scripts/credentials.mjs +167 -0
- package/lib/host-packages/openai/openplanr/skills/delegate/scripts/presentation.mjs +3 -2
- package/lib/host-packages/openai/openplanr/skills/delegate/scripts/run-contract.mjs +5 -7
- package/lib/host-packages/openai/openplanr/skills/delegate/scripts/run-preparation.mjs +2 -0
- package/lib/host-packages/openai/openplanr/skills/delegate/scripts/run-record.mjs +2 -3
- package/lib/host-packages/openai/openplanr/skills/design/SKILL.md +1 -1
- package/lib/host-packages/openai/openplanr/skills/design/references/team-review.md +1 -1
- package/lib/host-packages/openai/openplanr/skills/design/references/utilities.md +4 -4
- package/lib/host-packages/openai/openplanr/skills/design-loop/SKILL.md +1 -1
- package/lib/host-packages/openai/openplanr/skills/design-loop/references/team-review.md +1 -1
- package/lib/host-packages/openai/openplanr/skills/design-loop/references/utilities.md +4 -4
- package/lib/host-packages/openai/openplanr/skills/design-review/SKILL.md +1 -1
- package/lib/host-packages/openai/openplanr/skills/design-review/references/team-review.md +1 -1
- package/lib/host-packages/openai/openplanr/skills/design-review/references/utilities.md +4 -4
- package/lib/host-packages/openai/openplanr/skills/diagram/SKILL.md +15 -15
- package/lib/host-packages/openai/openplanr/skills/diagram/references/diagram-document.md +1 -1
- package/lib/host-packages/openai/openplanr/skills/diagram/references/diagram-intent-to-ir.md +1 -1
- package/lib/host-packages/openai/openplanr/skills/diagram/references/diagram-sharing.md +4 -4
- package/lib/host-packages/openai/openplanr/skills/doctor/SKILL.md +9 -9
- package/lib/host-packages/openai/openplanr/skills/doctor/references/upgrade.md +18 -16
- package/lib/host-packages/openai/openplanr/skills/land/SKILL.md +2 -2
- package/lib/host-packages/openai/openplanr/skills/operate/SKILL.md +5 -3
- package/lib/host-packages/openai/openplanr/skills/plan/SKILL.md +8 -2
- package/lib/host-packages/openai/openplanr/skills/plan/references/artifact-contract.md +5 -0
- package/lib/host-packages/openai/openplanr/skills/spec/references/specification-contract.md +5 -0
- package/lib/host-packages/openai/openplanr/skills/sprint/SKILL.md +16 -15
- package/lib/host-packages/openai/openplanr/skills/sprint/openplanr.skill.json +11 -0
- package/lib/host-packages/openai/openplanr/skills/sprint/references/refinement-contract.md +5 -5
- package/lib/host-packages/openai/openplanr/skills/sprint/references/sprint-formats.md +8 -8
- package/lib/host-packages/openai/openplanr/skills/sprint/references/tracker-connections.md +70 -0
- package/lib/host-packages/openai/openplanr/skills/sprint/schemas/refinement.schema.json +3 -3
- package/lib/host-packages/openai/openplanr/skills/status/SKILL.md +5 -4
- package/lib/host-packages/openai/openplanr/skills/status/openplanr.skill.json +11 -0
- package/lib/host-packages/openai/openplanr/skills/status/references/tracker-connections.md +70 -0
- package/lib/host-packages/openai/openplanr/skills/sync/SKILL.md +11 -20
- package/lib/host-packages/openai/openplanr/skills/sync/openplanr.skill.json +22 -0
- package/lib/host-packages/openai/openplanr/skills/sync/references/tracker-connections.md +70 -0
- package/lib/host-packages/openai/openplanr/skills/sync/scripts/names.mjs +8 -0
- package/lib/host-packages/openai/openplanr/skills/sync/scripts/sync.mjs +3 -2
- package/lib/integrations.mjs +3 -2
- package/lib/names.d.mts +4 -0
- package/lib/names.mjs +8 -0
- package/lib/planning-folder.d.mts +14 -0
- package/lib/planning-folder.mjs +40 -0
- package/package.json +5 -5
- package/dist/dashboard/assets/index-D7R6tnlX.js.map +0 -1
- package/dist/services/connectors/adapters/business-metrics.d.ts +0 -5
- package/dist/services/connectors/adapters/business-metrics.d.ts.map +0 -1
- package/dist/services/connectors/adapters/business-metrics.js +0 -41
- package/dist/services/connectors/adapters/business-metrics.js.map +0 -1
- package/dist/services/connectors/adapters/deployment-health.d.ts +0 -18
- package/dist/services/connectors/adapters/deployment-health.d.ts.map +0 -1
- package/dist/services/connectors/adapters/deployment-health.js +0 -67
- package/dist/services/connectors/adapters/deployment-health.js.map +0 -1
- package/dist/services/connectors/adapters/github.d.ts +0 -5
- package/dist/services/connectors/adapters/github.d.ts.map +0 -1
- package/dist/services/connectors/adapters/github.js +0 -31
- package/dist/services/connectors/adapters/github.js.map +0 -1
- package/dist/services/connectors/adapters/linear-jira.d.ts +0 -5
- package/dist/services/connectors/adapters/linear-jira.d.ts.map +0 -1
- package/dist/services/connectors/adapters/linear-jira.js +0 -26
- package/dist/services/connectors/adapters/linear-jira.js.map +0 -1
- package/dist/services/connectors/adapters/posthog.d.ts +0 -5
- package/dist/services/connectors/adapters/posthog.d.ts.map +0 -1
- package/dist/services/connectors/adapters/posthog.js +0 -31
- package/dist/services/connectors/adapters/posthog.js.map +0 -1
- package/dist/services/connectors/adapters/sentry.d.ts +0 -5
- package/dist/services/connectors/adapters/sentry.d.ts.map +0 -1
- package/dist/services/connectors/adapters/sentry.js +0 -31
- package/dist/services/connectors/adapters/sentry.js.map +0 -1
- package/dist/services/connectors/checkpoint-custody.d.ts +0 -45
- package/dist/services/connectors/checkpoint-custody.d.ts.map +0 -1
- package/dist/services/connectors/checkpoint-custody.js +0 -496
- package/dist/services/connectors/checkpoint-custody.js.map +0 -1
- package/dist/services/connectors/connector-registry.d.ts +0 -144
- package/dist/services/connectors/connector-registry.d.ts.map +0 -1
- package/dist/services/connectors/connector-registry.js +0 -423
- package/dist/services/connectors/connector-registry.js.map +0 -1
- package/dist/services/connectors/connector-runtime.d.ts +0 -208
- package/dist/services/connectors/connector-runtime.d.ts.map +0 -1
- package/dist/services/connectors/connector-runtime.js +0 -1305
- package/dist/services/connectors/connector-runtime.js.map +0 -1
- package/dist/services/connectors/credential-custody.d.ts +0 -96
- package/dist/services/connectors/credential-custody.d.ts.map +0 -1
- package/dist/services/connectors/credential-custody.js +0 -390
- package/dist/services/connectors/credential-custody.js.map +0 -1
- package/dist/templates/voice/standup.md.hbs +0 -20
- /package/lib/host-packages/claude/openplanr/runtime/design/scripts/{design-runtime-support-5cb7531bede8.mjs → design-runtime-support-336900df0d39.mjs} +0 -0
- /package/lib/host-packages/cursor/openplanr/runtime/design/scripts/{design-runtime-support-5cb7531bede8.mjs → design-runtime-support-336900df0d39.mjs} +0 -0
- /package/lib/host-packages/openai/openplanr/runtime/design/scripts/{design-runtime-support-5cb7531bede8.mjs → design-runtime-support-336900df0d39.mjs} +0 -0
package/docs/CLI.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
#
|
|
1
|
+
# openplanr CLI reference
|
|
2
2
|
|
|
3
|
-
> Every command and flag of the `
|
|
4
|
-
> Package: `openplanr` | Binary: `
|
|
3
|
+
> Every command and flag of the `openplanr` CLI.
|
|
4
|
+
> Package: `openplanr` | Binary: `openplanr` (alias: `opr`)
|
|
5
5
|
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
npm install -g openplanr
|
|
12
12
|
|
|
13
13
|
# Verify
|
|
14
|
-
|
|
14
|
+
openplanr --version
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
---
|
|
@@ -22,11 +22,11 @@ The CLI auto-detects non-TTY environments (CI, coding agents) and skips interact
|
|
|
22
22
|
|
|
23
23
|
```bash
|
|
24
24
|
# Explicit flag
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
openplanr epic create --title "My App" --yes
|
|
26
|
+
openplanr task create --story US-001 --title "Implement approved story" --yes
|
|
27
27
|
|
|
28
28
|
# Auto-detected (no TTY)
|
|
29
|
-
echo "" |
|
|
29
|
+
echo "" | openplanr epic create --title "My App"
|
|
30
30
|
```
|
|
31
31
|
|
|
32
32
|
**Behavior in non-interactive mode:**
|
|
@@ -54,12 +54,12 @@ These options apply to **all** commands:
|
|
|
54
54
|
|
|
55
55
|
## Commands
|
|
56
56
|
|
|
57
|
-
### `
|
|
57
|
+
### `openplanr company`
|
|
58
58
|
|
|
59
59
|
The company route connects an explicitly configured workspace to selected local artifacts. Existing encrypted token shares remain separate. Sign in through the browser and choose the organization in the identity provider's consent screen:
|
|
60
60
|
|
|
61
61
|
```bash
|
|
62
|
-
|
|
62
|
+
openplanr company login
|
|
63
63
|
```
|
|
64
64
|
|
|
65
65
|
The normal customer flow needs no service URL or output flag. For a remote or
|
|
@@ -67,17 +67,17 @@ headless session, print the authorization URL instead of launching it:
|
|
|
67
67
|
|
|
68
68
|
```bash
|
|
69
69
|
# Print the browser URL instead of launching it; open it on this same computer
|
|
70
|
-
|
|
70
|
+
openplanr company login --no-open --timeout 300
|
|
71
71
|
```
|
|
72
72
|
|
|
73
73
|
Successful sign-in and sign-out show a short confirmation. To switch accounts,
|
|
74
|
-
run `
|
|
74
|
+
run `openplanr company logout` before signing in again. Recovery and cleanup warnings
|
|
75
75
|
remain visible. Structured output with status details and error codes is available
|
|
76
76
|
for automation:
|
|
77
77
|
|
|
78
78
|
```bash
|
|
79
|
-
|
|
80
|
-
|
|
79
|
+
openplanr company login --json
|
|
80
|
+
openplanr company logout --json
|
|
81
81
|
```
|
|
82
82
|
|
|
83
83
|
Hosted commands use `https://api.openplanr.dev` by default. `--api-url <origin>` is an advanced override for local development, staging, and self-hosted testing; customers do not need to copy a service URL.
|
|
@@ -91,28 +91,28 @@ Logout revokes saved refresh and access tokens before removing their local refer
|
|
|
91
91
|
Publication selects one repository-relative JSON, Markdown, SVG or HTML file, up to 1 MiB. An authored `openplanr-design-document` selected with `--kind design` packages the complete design: its declared screens, frames, variants, and supported local assets. The entire packaged revision must fit within the same 1 MiB limit. Single HTML/SVG designs remain supported.
|
|
92
92
|
|
|
93
93
|
```bash
|
|
94
|
-
|
|
94
|
+
openplanr company preview .planr/designs/checkout/design-document.json \
|
|
95
95
|
--kind design --title "Checkout experience" \
|
|
96
96
|
--project <project-id>
|
|
97
|
-
|
|
97
|
+
openplanr company publish <preview-id> --json
|
|
98
98
|
```
|
|
99
99
|
|
|
100
100
|
Review the exact selected files, content and publication size before publishing. `--json` includes the complete content for inspection; the default design preview gives a compact file list and screen/frame/variant counts. Source hashes are stored in private local state. Publication rebuilds the package and refuses any changed source or newly referenced file until a fresh preview is reviewed. No directory scan, render cache, or unrelated repository content is published.
|
|
101
101
|
|
|
102
|
-
The returned binding remembers its source document and accepted remote revision. `company push <binding-id> --preview` rebuilds the design package and lists the selected files; `company push <binding-id>` publishes that exact reviewed update against the bound base. Each later expansion of referenced content needs a fresh preview. See `
|
|
102
|
+
The returned binding remembers its source document and accepted remote revision. `company push <binding-id> --preview` rebuilds the design package and lists the selected files; `company push <binding-id>` publishes that exact reviewed update against the bound base. Each later expansion of referenced content needs a fresh preview. See `openplanr company --help` for connection and publication options.
|
|
103
103
|
|
|
104
|
-
Company publication retries preserve their original IDs and return `already-published` when completing from saved receipts. `synchronization: "not-checked"` means the current remote head has not been read; run `
|
|
104
|
+
Company publication retries preserve their original IDs and return `already-published` when completing from saved receipts. `synchronization: "not-checked"` means the current remote head has not been read; run `openplanr company status <binding-id>` before describing the workspace as synchronized.
|
|
105
105
|
|
|
106
106
|
Read-only retrieval uses an existing publication binding:
|
|
107
107
|
|
|
108
108
|
```bash
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
109
|
+
openplanr company status <binding-id> --json
|
|
110
|
+
openplanr company pull <binding-id> --preview --json
|
|
111
|
+
openplanr company pull <binding-id> --json
|
|
112
112
|
|
|
113
113
|
# Intentionally inspect a historical immutable revision
|
|
114
|
-
|
|
115
|
-
|
|
114
|
+
openplanr company pull <binding-id> --preview --revision <revision-id> --json
|
|
115
|
+
openplanr company pull <binding-id> --json
|
|
116
116
|
```
|
|
117
117
|
|
|
118
118
|
The preview reports the selected revision, digest, byte size, content, and whether local or remote content has changed. Pull verifies authorization and exact bytes again, then saves an inert `.txt` copy under `.local/company/remote-content/` with a retrieval receipt. It does not replace the repository file, advance the accepted binding, apply a proposal, or resolve feedback. Divergent or missing local files remain untouched. A changed local file or latest remote head requires a fresh preview. An explicitly selected historical revision stays pinned even if newer revisions appear.
|
|
@@ -127,14 +127,14 @@ Retrieved content is untrusted input, including HTML and SVG. Inspect it as data
|
|
|
127
127
|
Initialize project-local storage, then create planning artifacts from explicit flags or a JSON object:
|
|
128
128
|
|
|
129
129
|
```bash
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
130
|
+
openplanr init --name "my-project"
|
|
131
|
+
openplanr epic create "Platform renewal"
|
|
132
|
+
openplanr feature create "OAuth sign-in" --epic EPIC-001
|
|
133
|
+
openplanr story create "Sign in with the company identity provider" --feature FEAT-001
|
|
134
|
+
openplanr task create "Implement approved sign-in flow" --story US-001
|
|
135
|
+
openplanr quick create "Fix the callback error"
|
|
136
|
+
openplanr backlog add "Add callback rate limits" --priority high --tag security
|
|
137
|
+
openplanr sprint create "Sprint 1" --duration 2w
|
|
138
138
|
```
|
|
139
139
|
|
|
140
140
|
Every planning type provides `list`, `show <id>`, and `update <id>`. Creation accepts `--title`, `--data <path>` (or `-` for stdin), the deprecated `--file` alias, and `--json`. Parent IDs may be supplied by flags or JSON:
|
|
@@ -152,24 +152,24 @@ Every planning type provides `list`, `show <id>`, and `update <id>`. Creation ac
|
|
|
152
152
|
Use deterministic JSON when an agent or integration supplies complete fields:
|
|
153
153
|
|
|
154
154
|
```bash
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
155
|
+
openplanr epic create --data epic.json --json
|
|
156
|
+
openplanr feature create --data feature.json --json
|
|
157
|
+
openplanr task create --data - --json < task.json
|
|
158
158
|
```
|
|
159
159
|
|
|
160
|
-
`
|
|
160
|
+
`openplanr update <ids...>` supports bulk status changes. `--all-done` and `--all-pending` also update canonical task checkboxes for task and quick-task artifacts. Use each command's `--help` output for its exact options.
|
|
161
161
|
|
|
162
|
-
### `
|
|
162
|
+
### `openplanr sprint` refinement
|
|
163
163
|
|
|
164
164
|
The `planr:sprint` skill judges every open item and selects a sprint; these commands store what it decides. Sprint statuses are `planned`, `active` and `closed`.
|
|
165
165
|
|
|
166
166
|
```bash
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
167
|
+
openplanr sprint create --data sprint.json --json # name, releaseCut, capacityDays, optional batches
|
|
168
|
+
openplanr sprint refinement SPRINT-004 --data refinement.json # validate, store, fill the sprint body
|
|
169
|
+
openplanr sprint diff SPRINT-003 SPRINT-004 # what moved between two runs
|
|
170
|
+
openplanr sprint apply SPRINT-004 --dry-run # preview the status write-back
|
|
171
|
+
openplanr sprint apply SPRINT-004 --yes --commit # write it as one commit
|
|
172
|
+
openplanr sprint close SPRINT-004 # record leftovers for the next run
|
|
173
173
|
```
|
|
174
174
|
|
|
175
175
|
| Command | Behaviour |
|
|
@@ -179,34 +179,34 @@ planr sprint close SPRINT-004 # record leftovers for
|
|
|
179
179
|
| `apply <id>` | Writes each item's `targetStatus` and `targetPriority` (backlog only) and the `blockedBy` note of blocked items to the artifacts. Statuses must belong to the type's vocabulary unless `--force`. Needs `--yes` (or `--dry-run`); with `--commit` the touched files are committed as `chore(planr): refine backlog for <id>`. |
|
|
180
180
|
| `close <id>` | Sets `status: closed` and `closedAt`, and records `leftovers[]` (unchecked or unfinished `taskIds`) in `refinement.json` for the next run. |
|
|
181
181
|
|
|
182
|
-
Every command accepts `--json`. Failures use bounded codes such as `E_SPRINT_NOT_FOUND`, `E_SPRINT_REFINEMENT_INVALID` (with `$`-rooted diagnostics), `E_SPRINT_REFINEMENT_MISSING`, `E_SPRINT_APPLY_CONFIRMATION_REQUIRED`, `E_SPRINT_APPLY_STATUS_INVALID`, `E_SPRINT_CLOSED` and `E_SPRINT_ALREADY_CLOSED`. `
|
|
182
|
+
Every command accepts `--json`. Failures use bounded codes such as `E_SPRINT_NOT_FOUND`, `E_SPRINT_REFINEMENT_INVALID` (with `$`-rooted diagnostics), `E_SPRINT_REFINEMENT_MISSING`, `E_SPRINT_APPLY_CONFIRMATION_REQUIRED`, `E_SPRINT_APPLY_STATUS_INVALID`, `E_SPRINT_CLOSED` and `E_SPRINT_ALREADY_CLOSED`. `openplanr status` lists the active sprint first with its release cut and checkbox progress, and `openplanr status --json` exposes it as `sprint`.
|
|
183
183
|
|
|
184
184
|
|
|
185
|
-
### `
|
|
185
|
+
### `openplanr spec`
|
|
186
186
|
|
|
187
187
|
Spec-driven planning mode — third posture alongside agile + QT, designed for **planning *for* AI coding agents**. Each spec is a self-contained directory at `.planr/specs/SPEC-NNN-{slug}/` containing the spec doc, decomposed User Stories, decomposed Tasks, and any UI design assets. The artifact schema mirrors the [planr-pipeline](https://github.com/openplanr/OpenPlanr/tree/main/packages/pipeline) canonical protocol schemas under `schemas/v1.0.0/` — file Create/Modify/Preserve lists, Type=UI|Tech, agent assignment, DoD with build/test commands. The two products use one artifact contract; no conversion adapter ever.
|
|
188
188
|
|
|
189
189
|
The generated artifact contract and command examples in this section are the
|
|
190
190
|
packaged source of truth for spec-driven mode.
|
|
191
191
|
|
|
192
|
-
#### `
|
|
192
|
+
#### `openplanr spec init`
|
|
193
193
|
|
|
194
194
|
Activate spec-driven mode in the current project. Creates `.planr/specs/`. Adds `spec: SPEC` to `idPrefix` if missing. Idempotent.
|
|
195
195
|
|
|
196
196
|
```bash
|
|
197
|
-
|
|
197
|
+
openplanr spec init
|
|
198
198
|
```
|
|
199
199
|
|
|
200
200
|
---
|
|
201
201
|
|
|
202
|
-
#### `
|
|
202
|
+
#### `openplanr spec create`
|
|
203
203
|
|
|
204
204
|
Create a new spec — a self-contained directory with `stories/`, `tasks/`, `design/` subfolders.
|
|
205
205
|
|
|
206
206
|
```bash
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
207
|
+
openplanr spec create "Auth flow"
|
|
208
|
+
openplanr spec create --title "Auth flow" --slug auth --priority P0 --milestone v1.0
|
|
209
|
+
openplanr spec create "User Onboarding" --po @AsemDevs
|
|
210
210
|
```
|
|
211
211
|
|
|
212
212
|
| Option | Description | Required |
|
|
@@ -222,12 +222,12 @@ planr spec create "User Onboarding" --po @AsemDevs
|
|
|
222
222
|
|
|
223
223
|
---
|
|
224
224
|
|
|
225
|
-
#### `
|
|
225
|
+
#### `openplanr spec shape`
|
|
226
226
|
|
|
227
227
|
Interactive 4-question authoring of a spec's body. Walks the PO through Context, Functional Requirements, Business Rules, and Acceptance Criteria. Optionally captures Out-of-Scope items and Decomposition Notes. Updates `status: pending → shaping`.
|
|
228
228
|
|
|
229
229
|
```bash
|
|
230
|
-
|
|
230
|
+
openplanr spec shape SPEC-001
|
|
231
231
|
```
|
|
232
232
|
|
|
233
233
|
**Refused in `--no-interactive` mode** — this command is interactive by design (it asks 4 sequential questions).
|
|
@@ -243,14 +243,14 @@ planr spec shape SPEC-001
|
|
|
243
243
|
|
|
244
244
|
---
|
|
245
245
|
|
|
246
|
-
#### `
|
|
246
|
+
#### `openplanr spec sync`
|
|
247
247
|
|
|
248
248
|
Validate spec integrity and auto-fix safe inconsistencies. Use after manual edits, interrupted work, or when in doubt.
|
|
249
249
|
|
|
250
250
|
```bash
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
251
|
+
openplanr spec sync # scan all specs
|
|
252
|
+
openplanr spec sync SPEC-001 # scope to one spec
|
|
253
|
+
openplanr spec sync --dry-run # report findings without writing fixes
|
|
254
254
|
```
|
|
255
255
|
|
|
256
256
|
| Option | Description | Required |
|
|
@@ -266,66 +266,66 @@ planr spec sync --dry-run # report findings without writing fixes
|
|
|
266
266
|
|
|
267
267
|
---
|
|
268
268
|
|
|
269
|
-
#### `
|
|
269
|
+
#### `openplanr spec list`
|
|
270
270
|
|
|
271
271
|
List all specs with title, status, and decomposition counts.
|
|
272
272
|
|
|
273
273
|
```bash
|
|
274
|
-
|
|
274
|
+
openplanr spec list
|
|
275
275
|
```
|
|
276
276
|
|
|
277
277
|
---
|
|
278
278
|
|
|
279
|
-
#### `
|
|
279
|
+
#### `openplanr spec show`
|
|
280
280
|
|
|
281
281
|
Print a spec's metadata, body summary, and the full US/Task decomposition tree.
|
|
282
282
|
|
|
283
283
|
```bash
|
|
284
|
-
|
|
284
|
+
openplanr spec show SPEC-001
|
|
285
285
|
```
|
|
286
286
|
|
|
287
287
|
---
|
|
288
288
|
|
|
289
|
-
#### `
|
|
289
|
+
#### `openplanr spec status`
|
|
290
290
|
|
|
291
291
|
Decomposition state. Without args: aggregate report across all specs. With a spec ID: focused view.
|
|
292
292
|
|
|
293
293
|
```bash
|
|
294
|
-
|
|
295
|
-
|
|
294
|
+
openplanr spec status # aggregate
|
|
295
|
+
openplanr spec status SPEC-001 # focused
|
|
296
296
|
```
|
|
297
297
|
|
|
298
298
|
---
|
|
299
299
|
|
|
300
|
-
#### `
|
|
300
|
+
#### `openplanr spec destroy`
|
|
301
301
|
|
|
302
302
|
Remove a spec entirely. Because each spec is a self-contained directory, this is a single `rm -rf`. Prompts for confirmation (use `--yes` to skip).
|
|
303
303
|
|
|
304
304
|
```bash
|
|
305
|
-
|
|
306
|
-
|
|
305
|
+
openplanr spec destroy SPEC-001
|
|
306
|
+
openplanr spec destroy SPEC-001 --yes
|
|
307
307
|
```
|
|
308
308
|
|
|
309
309
|
---
|
|
310
310
|
|
|
311
|
-
#### `
|
|
311
|
+
#### `openplanr spec attach-design`
|
|
312
312
|
|
|
313
313
|
Copy PNG mockup files into the spec's `design/` subdirectory and update
|
|
314
314
|
`ui_files` frontmatter on the SPEC. The `planr:plan` host skill reads these
|
|
315
315
|
inputs while it builds the reviewed implementation plan.
|
|
316
316
|
|
|
317
317
|
```bash
|
|
318
|
-
|
|
318
|
+
openplanr spec attach-design SPEC-001 --files login.png signup.png
|
|
319
319
|
```
|
|
320
320
|
|
|
321
321
|
---
|
|
322
322
|
|
|
323
|
-
#### `
|
|
323
|
+
#### `openplanr spec promote`
|
|
324
324
|
|
|
325
325
|
Validate that a spec is ready for handoff to `planr-pipeline` (has stories, tasks, non-trivial body) and print the next-step pipeline command. Updates SPEC frontmatter `status: ready-for-pipeline`.
|
|
326
326
|
|
|
327
327
|
```bash
|
|
328
|
-
|
|
328
|
+
openplanr spec promote SPEC-001
|
|
329
329
|
```
|
|
330
330
|
|
|
331
331
|
After promotion, run from any configured runtime:
|
|
@@ -337,24 +337,24 @@ $planr:plan # Codex
|
|
|
337
337
|
|
|
338
338
|
---
|
|
339
339
|
|
|
340
|
-
### `
|
|
340
|
+
### `openplanr template list`
|
|
341
341
|
|
|
342
342
|
List all available task templates (built-in and custom).
|
|
343
343
|
|
|
344
344
|
```bash
|
|
345
|
-
|
|
345
|
+
openplanr template list
|
|
346
346
|
```
|
|
347
347
|
|
|
348
348
|
Shows template name, description, task count, and whether it's built-in or custom.
|
|
349
349
|
|
|
350
350
|
---
|
|
351
351
|
|
|
352
|
-
### `
|
|
352
|
+
### `openplanr template show`
|
|
353
353
|
|
|
354
354
|
Preview a template's contents and variables.
|
|
355
355
|
|
|
356
356
|
```bash
|
|
357
|
-
|
|
357
|
+
openplanr template show rest-endpoint
|
|
358
358
|
```
|
|
359
359
|
|
|
360
360
|
| Argument | Description | Required |
|
|
@@ -363,13 +363,13 @@ planr template show rest-endpoint
|
|
|
363
363
|
|
|
364
364
|
---
|
|
365
365
|
|
|
366
|
-
### `
|
|
366
|
+
### `openplanr template use`
|
|
367
367
|
|
|
368
368
|
Generate a task list from a template with variable substitution.
|
|
369
369
|
|
|
370
370
|
```bash
|
|
371
|
-
|
|
372
|
-
|
|
371
|
+
openplanr template use rest-endpoint --title "User Profile API"
|
|
372
|
+
openplanr template use react-component --title "Dashboard Widget"
|
|
373
373
|
```
|
|
374
374
|
|
|
375
375
|
| Argument/Option | Description | Required |
|
|
@@ -393,12 +393,12 @@ Template variables (e.g., `{{entityName}}`, `{{componentName}}`) are prompted in
|
|
|
393
393
|
|
|
394
394
|
---
|
|
395
395
|
|
|
396
|
-
### `
|
|
396
|
+
### `openplanr template save`
|
|
397
397
|
|
|
398
398
|
Save an existing task list as a reusable custom template.
|
|
399
399
|
|
|
400
400
|
```bash
|
|
401
|
-
|
|
401
|
+
openplanr template save TASK-001 --name my-pattern
|
|
402
402
|
```
|
|
403
403
|
|
|
404
404
|
| Argument/Option | Description | Required |
|
|
@@ -410,12 +410,12 @@ planr template save TASK-001 --name my-pattern
|
|
|
410
410
|
|
|
411
411
|
---
|
|
412
412
|
|
|
413
|
-
### `
|
|
413
|
+
### `openplanr template delete`
|
|
414
414
|
|
|
415
415
|
Remove a custom template.
|
|
416
416
|
|
|
417
417
|
```bash
|
|
418
|
-
|
|
418
|
+
openplanr template delete my-pattern
|
|
419
419
|
```
|
|
420
420
|
|
|
421
421
|
| Argument | Description | Required |
|
|
@@ -426,12 +426,12 @@ Prompts for confirmation before deleting. Only custom templates can be deleted.
|
|
|
426
426
|
|
|
427
427
|
---
|
|
428
428
|
|
|
429
|
-
### `
|
|
429
|
+
### `openplanr checklist show`
|
|
430
430
|
|
|
431
431
|
Display the agile development checklist.
|
|
432
432
|
|
|
433
433
|
```bash
|
|
434
|
-
|
|
434
|
+
openplanr checklist show
|
|
435
435
|
```
|
|
436
436
|
|
|
437
437
|
Shows the full 5-phase checklist:
|
|
@@ -444,34 +444,34 @@ Shows the full 5-phase checklist:
|
|
|
444
444
|
|
|
445
445
|
---
|
|
446
446
|
|
|
447
|
-
### `
|
|
447
|
+
### `openplanr checklist toggle`
|
|
448
448
|
|
|
449
449
|
Interactively toggle checklist items. Presents a multi-select prompt where you can check/uncheck items, then writes changes back to the file with a progress summary.
|
|
450
450
|
|
|
451
451
|
```bash
|
|
452
|
-
|
|
452
|
+
openplanr checklist toggle
|
|
453
453
|
```
|
|
454
454
|
|
|
455
455
|
---
|
|
456
456
|
|
|
457
|
-
### `
|
|
457
|
+
### `openplanr checklist reset`
|
|
458
458
|
|
|
459
459
|
Reset the checklist back to its initial state.
|
|
460
460
|
|
|
461
461
|
```bash
|
|
462
|
-
|
|
462
|
+
openplanr checklist reset
|
|
463
463
|
```
|
|
464
464
|
|
|
465
465
|
---
|
|
466
466
|
|
|
467
|
-
### `
|
|
467
|
+
### `openplanr init`
|
|
468
468
|
|
|
469
|
-
Initialize deterministic project storage in `.planr/`. Runtime installation belongs to `
|
|
469
|
+
Initialize deterministic project storage in `.planr/`. Runtime installation belongs to `openplanr setup`.
|
|
470
470
|
|
|
471
471
|
```bash
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
472
|
+
openplanr init
|
|
473
|
+
openplanr init --name my-project
|
|
474
|
+
openplanr init --force
|
|
475
475
|
```
|
|
476
476
|
|
|
477
477
|
| Option | Description |
|
|
@@ -481,18 +481,18 @@ planr init --force
|
|
|
481
481
|
|
|
482
482
|
---
|
|
483
483
|
|
|
484
|
-
### `
|
|
484
|
+
### `openplanr setup`, `openplanr runtime`, and `openplanr doctor`
|
|
485
485
|
|
|
486
486
|
```bash
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
487
|
+
openplanr setup
|
|
488
|
+
openplanr setup --runtime auto --scope user --yes
|
|
489
|
+
openplanr setup --dry-run
|
|
490
|
+
openplanr setup --minimal
|
|
491
|
+
openplanr runtime detect
|
|
492
|
+
openplanr runtime install codex --scope user
|
|
493
|
+
openplanr runtime update claude --scope user
|
|
494
|
+
openplanr runtime rollback
|
|
495
|
+
openplanr doctor --strict
|
|
496
496
|
```
|
|
497
497
|
|
|
498
498
|
Interactive setup guides coding-agent and scope selection. It installs the OpenPlanr skills bundled with the CLI. User scope is
|
|
@@ -508,7 +508,7 @@ operations. After confirmation, setup registers the generated local marketplace
|
|
|
508
508
|
(`openplanr-local`) that ships inside the installed `openplanr` package and
|
|
509
509
|
installs or updates `planr@openplanr-local` from it, so the plugin always matches
|
|
510
510
|
this CLI. Setup never reads `openplanr/marketplace` for versions.
|
|
511
|
-
`
|
|
511
|
+
`openplanr doctor` checks the installed plugin's version and stable manifest identity
|
|
512
512
|
without mutating Claude Code, and warns about older `openplanr@…` and
|
|
513
513
|
`planr-pipeline@…` plugins. `doctor --fix` preserves saved scopes and discovery
|
|
514
514
|
mode while previewing owned-file, managed native plugin and stale-daemon repairs.
|
|
@@ -527,7 +527,7 @@ Use one Claude Code channel per machine; see
|
|
|
527
527
|
Use the corresponding `planr:*` skills through the installed runtime adapter.
|
|
528
528
|
Semantic workflows are not duplicated as utility CLI commands.
|
|
529
529
|
|
|
530
|
-
### `
|
|
530
|
+
### `openplanr operate`
|
|
531
531
|
|
|
532
532
|
The public Operate namespace supports two distinct products. The installed
|
|
533
533
|
`$planr-operate` skill runs a guidance-first local seven-lens review with no
|
|
@@ -535,7 +535,7 @@ named-owner, receipt, evidence-ledger, or blocking-validation prerequisite.
|
|
|
535
535
|
Its optional note checker reports bounded structural diagnostics:
|
|
536
536
|
|
|
537
537
|
```bash
|
|
538
|
-
|
|
538
|
+
openplanr operate validate-note <note.md> --profile advisor|challenger|chair|board-report --contract-version 2.0.0 --json
|
|
539
539
|
```
|
|
540
540
|
|
|
541
541
|
Diagnostics are editing help. Missing or malformed lens output remains a
|
|
@@ -543,20 +543,20 @@ visible issue with its impact and next action; it does not discard other useful
|
|
|
543
543
|
findings or force a correction loop. `--contract-version auto` is the default;
|
|
544
544
|
it detects declared or structurally identifiable v1 and v2 Markdown notes.
|
|
545
545
|
|
|
546
|
-
The other `
|
|
546
|
+
The other `openplanr operate` commands expose the durable Protocol 2.0 stateful
|
|
547
547
|
runtime. For that interface, first discover the installed domains. The command
|
|
548
548
|
returns canonical `domainId`/`domainVersion` pairs and registered roles without
|
|
549
549
|
opening project runtime storage:
|
|
550
550
|
|
|
551
551
|
```bash
|
|
552
|
-
|
|
552
|
+
openplanr operate domains --json
|
|
553
553
|
```
|
|
554
554
|
|
|
555
555
|
Pass one exact returned identity to Cycle start. Do not substitute the protocol
|
|
556
556
|
version for the domain version.
|
|
557
557
|
|
|
558
558
|
```bash
|
|
559
|
-
|
|
559
|
+
openplanr operate start \
|
|
560
560
|
--scope <scopeId> \
|
|
561
561
|
--domain <domainId> \
|
|
562
562
|
--domain-version <domainVersion> \
|
|
@@ -569,9 +569,9 @@ Codex full setup installs every canonical, manifest-owned `planr-*` skill in the
|
|
|
569
569
|
The durable runtime's issued executors use this file-based packet protocol only:
|
|
570
570
|
|
|
571
571
|
```bash
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
572
|
+
openplanr operate assignment prepare <assignmentId> --actor <agentId> --runtime codex --json
|
|
573
|
+
openplanr operate assignment validate <packetId> --content-file <resultPath|-> --json
|
|
574
|
+
openplanr operate assignment submit <packetId> --content-file <resultPath|-> --json
|
|
575
575
|
```
|
|
576
576
|
|
|
577
577
|
`prepare` claims idempotently and returns the exact packet paths. `validate`
|
|
@@ -584,45 +584,45 @@ Useful read-only and recovery surfaces:
|
|
|
584
584
|
|
|
585
585
|
| Command | Purpose |
|
|
586
586
|
| --- | --- |
|
|
587
|
-
| `
|
|
588
|
-
| `
|
|
589
|
-
| `
|
|
590
|
-
| `
|
|
587
|
+
| `openplanr operate cycle <cycleId> --actor <humanActorId> --json` | Read the exact owner-bound Cycle experience |
|
|
588
|
+
| `openplanr operate dashboard <cycleId> --actor <humanActorId>` | Open the loopback dashboard |
|
|
589
|
+
| `openplanr operate recovery storage-status --json` | Inspect neutral storage and migration status |
|
|
590
|
+
| `openplanr operate assignment recover --json` | Clear only runtime-confirmed abandoned packets |
|
|
591
591
|
|
|
592
592
|
Failures from packet commands are bounded in both human and `--json` output;
|
|
593
593
|
machine output contains `ok`, `code`, and `problem` without stack traces or host
|
|
594
|
-
paths. For setup or command parity failures, run `
|
|
595
|
-
Use `
|
|
594
|
+
paths. For setup or command parity failures, run `openplanr doctor --strict --json`.
|
|
595
|
+
Use `openplanr upgrade status`, then `openplanr upgrade apply` when doctor reports an
|
|
596
596
|
incompatible installed CLI. `upgrade apply` prints the new version, up to five
|
|
597
597
|
highlights per release (`--notes full` prints every entry), and the command that
|
|
598
598
|
updates each installed coding agent. The published compatible set is read from the npm
|
|
599
599
|
registry's `latest` CLI document (its version and the exact `planr-pipeline` it
|
|
600
600
|
bundles); `OPENPLANR_ECOSYSTEM_SOURCE` points the check at another URL or file.
|
|
601
601
|
|
|
602
|
-
### `
|
|
602
|
+
### `openplanr artifact`
|
|
603
603
|
|
|
604
604
|
Open, share, import, and export native diagrams, designs, and HTML reviews:
|
|
605
605
|
|
|
606
606
|
```bash
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
607
|
+
openplanr artifact <file>
|
|
608
|
+
openplanr artifact open <file> [--title <title>] [--root <asset-root>] [--theme auto|light|dark] [--presentation auto|document|canvas] [--port <port>] [--no-open] [--json]
|
|
609
|
+
openplanr artifact share <file> [--title <title>] [--root <asset-root>] [--presentation auto|document|canvas] [--snapshot] [--short] [--ttl 1d|7d|30d] [--secret-output <private-file>] [--no-open] [--json] [--yes]
|
|
610
|
+
openplanr artifact publish <diagram-manifest|diagram-bundle|design-document> [--yes] [--json]
|
|
611
|
+
openplanr artifact sync <diagram-manifest|diagram-bundle|design-document> [--json]
|
|
612
|
+
openplanr artifact import --secret-input <private-file|-> [--output <path>] [--allow-stale] [--json] [--yes]
|
|
613
|
+
openplanr artifact export <session-id> [--format json|markdown] [--output <path>]
|
|
614
614
|
```
|
|
615
615
|
|
|
616
616
|
Diagram manifests and authoring bundles share directly to one permanent native
|
|
617
617
|
review per stable `/diagram/<id>` link, with a separate reviewer access token.
|
|
618
618
|
The local studio's **Share diagram** dialog copies the link and token separately.
|
|
619
|
-
Owner
|
|
619
|
+
Owner keys stay privately outside the repository. Publish revisions
|
|
620
620
|
explicitly; `sync` imports revision-bound feedback without changing the diagram.
|
|
621
621
|
Native diagram sharing does not accept `--snapshot`, `--short`, or `--ttl`;
|
|
622
622
|
export HTML first to choose the generic snapshot transport.
|
|
623
623
|
|
|
624
624
|
When `--root` is omitted, the artifact file's directory is the asset root. This
|
|
625
|
-
makes `
|
|
625
|
+
makes `openplanr artifact share /absolute/path/to/artifact.html` work without
|
|
626
626
|
changing directories or supplying a redundant root. Supported public HTTPS
|
|
627
627
|
dependencies are bundled into the immutable artifact automatically; runtime
|
|
628
628
|
network access remains blocked in the review sandbox.
|
|
@@ -650,17 +650,17 @@ invisible opaque-origin Blob sandbox; it is not standalone website publishing.
|
|
|
650
650
|
|
|
651
651
|
---
|
|
652
652
|
|
|
653
|
-
### `
|
|
653
|
+
### `openplanr rules generate`
|
|
654
654
|
|
|
655
655
|
Generate AI agent rule files for Cursor, Claude Code, and/or Codex. Two flags: **`--target`** (which runtime) and **`--scope`** (which workflow — agile or pipeline).
|
|
656
656
|
|
|
657
657
|
```bash
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
658
|
+
openplanr rules generate # all targets, agile scope (default)
|
|
659
|
+
openplanr rules generate --target cursor # cursor only, agile scope
|
|
660
|
+
openplanr rules generate --target cursor --scope pipeline # cursor pipeline rules (Cursor adapter for planr-pipeline)
|
|
661
|
+
openplanr rules generate --target codex --scope pipeline # AGENTS.md with pipeline orchestration section
|
|
662
|
+
openplanr rules generate --target all --scope all # everything for everyone
|
|
663
|
+
openplanr rules generate --dry-run # preview without writing
|
|
664
664
|
```
|
|
665
665
|
|
|
666
666
|
| Option | Description | Default |
|
|
@@ -682,7 +682,7 @@ planr rules generate --dry-run # preview without wri
|
|
|
682
682
|
| `claude` × `agile` | `CLAUDE.md` (agile context-gathering protocol) |
|
|
683
683
|
| `claude` × `pipeline` | `CLAUDE.md` with the pipeline block and the `## OpenPlanr capabilities` skill map |
|
|
684
684
|
| `codex` × `agile` | `AGENTS.md` (agile context) |
|
|
685
|
-
| `codex` × `pipeline` | `AGENTS.md` project policy with the `## OpenPlanr capabilities` skill map; `
|
|
685
|
+
| `codex` × `pipeline` | `AGENTS.md` project policy with the `## OpenPlanr capabilities` skill map; `openplanr setup` installs the skills |
|
|
686
686
|
| `* × all` | Both scopes side-by-side |
|
|
687
687
|
|
|
688
688
|
**Cross-runtime support:** v1.0 artifacts plus v1.1 capability contracts run on
|
|
@@ -691,13 +691,13 @@ Cursor uses Composer handoff with sequential fallback.
|
|
|
691
691
|
|
|
692
692
|
---
|
|
693
693
|
|
|
694
|
-
### `
|
|
694
|
+
### `openplanr sync`
|
|
695
695
|
|
|
696
696
|
Validate and repair cross-references across all artifacts.
|
|
697
697
|
|
|
698
698
|
```bash
|
|
699
|
-
|
|
700
|
-
|
|
699
|
+
openplanr sync # fix broken cross-references
|
|
700
|
+
openplanr sync --dry-run # preview changes without writing
|
|
701
701
|
```
|
|
702
702
|
|
|
703
703
|
With the pipeline scope, `CLAUDE.md` and `AGENTS.md` also receive a generated
|
|
@@ -720,13 +720,13 @@ Handles both story-level and feature-level task relationships.
|
|
|
720
720
|
|
|
721
721
|
---
|
|
722
722
|
|
|
723
|
-
### `
|
|
723
|
+
### `openplanr status`
|
|
724
724
|
|
|
725
725
|
Show project planning progress with tree view, completion metrics, and color-coded progress.
|
|
726
726
|
|
|
727
727
|
```bash
|
|
728
|
-
|
|
729
|
-
|
|
728
|
+
openplanr status
|
|
729
|
+
openplanr status --all
|
|
730
730
|
```
|
|
731
731
|
|
|
732
732
|
| Option | Description | Default |
|
|
@@ -743,13 +743,13 @@ planr status --all
|
|
|
743
743
|
|
|
744
744
|
---
|
|
745
745
|
|
|
746
|
-
### `
|
|
746
|
+
### `openplanr graph`
|
|
747
747
|
|
|
748
748
|
Emit the OpenPlanr artifact graph. `--json` is the stable machine-readable
|
|
749
749
|
contract consumed by `planr-pipeline` dashboard and ecosystem conformance.
|
|
750
750
|
|
|
751
751
|
```bash
|
|
752
|
-
|
|
752
|
+
openplanr graph --json
|
|
753
753
|
```
|
|
754
754
|
|
|
755
755
|
| Option | Description | Default |
|
|
@@ -760,23 +760,23 @@ The JSON output follows `planr-pipeline/schemas/v1.0.0/graph.schema.json`.
|
|
|
760
760
|
|
|
761
761
|
---
|
|
762
762
|
|
|
763
|
-
### `
|
|
763
|
+
### `openplanr config show`
|
|
764
764
|
|
|
765
765
|
Display the current deterministic project configuration.
|
|
766
766
|
|
|
767
767
|
```bash
|
|
768
|
-
|
|
768
|
+
openplanr config show
|
|
769
769
|
```
|
|
770
770
|
|
|
771
771
|
---
|
|
772
772
|
|
|
773
|
-
### `
|
|
773
|
+
### `openplanr config set-agent`
|
|
774
774
|
|
|
775
775
|
Set the default coding agent for task implementation guidance.
|
|
776
776
|
|
|
777
777
|
```bash
|
|
778
|
-
|
|
779
|
-
|
|
778
|
+
openplanr config set-agent # interactive prompt
|
|
779
|
+
openplanr config set-agent cursor # set directly
|
|
780
780
|
```
|
|
781
781
|
|
|
782
782
|
| Argument | Description | Required |
|
|
@@ -785,25 +785,25 @@ planr config set-agent cursor # set directly
|
|
|
785
785
|
|
|
786
786
|
---
|
|
787
787
|
|
|
788
|
-
### `
|
|
788
|
+
### `openplanr linear init`
|
|
789
789
|
|
|
790
790
|
Authenticate to [Linear](https://linear.app) with a personal access token, then allow one, several, or all accessible teams. When several teams are enabled, choose the default used by commands that omit `--team`. OpenPlanr saves the allowed `linear.teams` plus the backward-compatible default `linear.teamId` and `linear.teamKey` in `.planr/config.json`. The token is stored via the credentials service (or the `PLANR_LINEAR_TOKEN` environment variable) and is never written into `config.json`.
|
|
791
791
|
|
|
792
792
|
```bash
|
|
793
|
-
|
|
793
|
+
openplanr linear init
|
|
794
794
|
```
|
|
795
795
|
|
|
796
|
-
`
|
|
796
|
+
`openplanr linear push <artifact> --team <id-or-key>` targets any team selected during init. A push always targets one team; OpenPlanr does not duplicate an artifact across every team because each artifact has one authoritative Linear linkage.
|
|
797
797
|
|
|
798
|
-
### `
|
|
798
|
+
### `openplanr linear sync`
|
|
799
799
|
|
|
800
|
-
**Two steps in one command:** (1) **bidirectional workflow status sync** for every Feature, Story, Quick task, and Backlog item with a `linearIssueId` — three-way merge between local frontmatter, Linear's workflow state, and a stored baseline; (2) run **task checklist** sync (`TASK-*.md` ↔ Linear) for all task files that share a `linearIssueId` (see `
|
|
800
|
+
**Two steps in one command:** (1) **bidirectional workflow status sync** for every Feature, Story, Quick task, and Backlog item with a `linearIssueId` — three-way merge between local frontmatter, Linear's workflow state, and a stored baseline; (2) run **task checklist** sync (`TASK-*.md` ↔ Linear) for all task files that share a `linearIssueId` (see `openplanr linear tasklist-sync`). Use `--verbose` to log per-artifact work.
|
|
801
801
|
|
|
802
802
|
```bash
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
803
|
+
openplanr linear sync
|
|
804
|
+
openplanr linear sync --dry-run
|
|
805
|
+
openplanr linear sync --on-conflict linear
|
|
806
|
+
openplanr --verbose linear sync
|
|
807
807
|
```
|
|
808
808
|
|
|
809
809
|
| Option | Description |
|
|
@@ -823,7 +823,7 @@ Each artifact's status decision considers three values: `local` (current frontma
|
|
|
823
823
|
| Both diverged from `base` (or `base` missing and they disagree) | **Conflict** → resolve per `--on-conflict`. |
|
|
824
824
|
| Backlog local is `promoted` | Never overwritten (`promoted` is local-only and implies a target pointer Linear can't know about). |
|
|
825
825
|
|
|
826
|
-
`
|
|
826
|
+
`openplanr quick update --status <v>` and `openplanr backlog update --status <v>` automatically clear `linearStatusReconciled` so the next sync sees a local change and pushes it up.
|
|
827
827
|
|
|
828
828
|
**Status sync coverage**
|
|
829
829
|
|
|
@@ -834,7 +834,7 @@ Each artifact's status decision considers three values: `local` (current frontma
|
|
|
834
834
|
| backlog (`BL-`) | `open` · `closed` · `promoted` | ✅ (never auto-overwrites `promoted`) |
|
|
835
835
|
| task (`TASK-`) | `pending` · `in-progress` · `done` (per-file) | ✅ push (aggregated to merged TaskList issue); pull deferred — see below |
|
|
836
836
|
|
|
837
|
-
**TASK aggregation on push.** A single Linear TaskList issue aggregates every `TASK-NNN.md` file under one feature (one issue, multiple checkbox lists merged). `
|
|
837
|
+
**TASK aggregation on push.** A single Linear TaskList issue aggregates every `TASK-NNN.md` file under one feature (one issue, multiple checkbox lists merged). `openplanr linear push` resolves a single workflow stateId for that issue using the rule:
|
|
838
838
|
|
|
839
839
|
| Local task-file statuses | Linear TaskList state |
|
|
840
840
|
|---|---|
|
|
@@ -843,9 +843,9 @@ Each artifact's status decision considers three values: `local` (current frontma
|
|
|
843
843
|
| Mix of `done` + `pending` (no in-progress) | In Progress (`started`) — work has begun |
|
|
844
844
|
| All `pending` | Todo (`unstarted`) |
|
|
845
845
|
|
|
846
|
-
The `--all-done` flag on `
|
|
846
|
+
The `--all-done` flag on `openplanr task update` (see above) is the recommended path: flipping every checkbox in a task file to `[x]` and setting `status: done` makes the next `openplanr linear push FEAT-XXX` move the merged TaskList issue to Done.
|
|
847
847
|
|
|
848
|
-
**Pull-side TASK propagation** (Linear → all task files under feature) is tracked separately — partial-disagreement guards aren't trivial. `
|
|
848
|
+
**Pull-side TASK propagation** (Linear → all task files under feature) is tracked separately — partial-disagreement guards aren't trivial. `openplanr linear tasklist-sync` continues to handle per-checkbox sync as today.
|
|
849
849
|
|
|
850
850
|
**Baseline frontmatter fields** (written by sync, optional; missing = no prior sync):
|
|
851
851
|
|
|
@@ -856,7 +856,7 @@ The `--all-done` flag on `planr task update` (see above) is the recommended path
|
|
|
856
856
|
|
|
857
857
|
**Estimate sync**
|
|
858
858
|
|
|
859
|
-
`
|
|
859
|
+
`openplanr linear push` also writes an artifact's reviewed `estimatedPoints` or `storyPoints` to Linear's native Issue estimation field, per the team's configured scale:
|
|
860
860
|
|
|
861
861
|
| Team scale | Behavior |
|
|
862
862
|
|---|---|
|
|
@@ -868,11 +868,11 @@ The `--all-done` flag on `planr task update` (see above) is the recommended path
|
|
|
868
868
|
|
|
869
869
|
Applies to FEAT / US / QT / BL pushes. TASK is intentionally out of scope — one Linear TaskList issue aggregates multiple local `TASK-*.md` files (same rationale as the TASK status deferral), so estimate aggregation rules are tracked as a follow-up.
|
|
870
870
|
|
|
871
|
-
The team scale is auto-detected per push run and cached. Set a reviewed `estimatedPoints: <n>` in the artifact frontmatter, then `
|
|
871
|
+
The team scale is auto-detected per push run and cached. Set a reviewed `estimatedPoints: <n>` in the artifact frontmatter, then `openplanr linear push` sends it.
|
|
872
872
|
|
|
873
873
|
**Status-name aliases (push side):** values like `completed`, `cancelled`, `canceled`, and `todo` on a QT/feature/story are transparently treated as `done`/`pending` so hand-edited frontmatter using Linear's native vocabulary still works.
|
|
874
874
|
|
|
875
|
-
**Zero-config auto-derive:** on every push run, `
|
|
875
|
+
**Zero-config auto-derive:** on every push run, `openplanr linear push` fetches the team's workflow states once and auto-derives a status→stateId map from Linear's canonical state **types** (`backlog` / `unstarted` / `started` / `completed` / `canceled`). You don't need to configure anything for basic status sync to work — the first `pending`/`open` state of each canonical type becomes the default. Configure `linear.pushStateIds` only when you want non-default routing (e.g., push `done` to "Released" instead of the first `completed` state).
|
|
876
876
|
|
|
877
877
|
**Config:** `linear.statusMap` — keys are Linear state names (e.g. `"Code Review"`), values are one of `pending`, `in-progress`, `done` for tasks/stories/features/QT, or one of `open`, `closed`, `promoted` for BL. `linear.pushStateIds` — local status → Linear workflow state UUID; takes precedence over the auto-derived defaults. For backlog, use `open`/`closed`/`promoted` keys directly (BL has no implicit coercion to the task vocabulary).
|
|
878
878
|
|
|
@@ -893,33 +893,33 @@ The team scale is auto-detected per push run and cached. Set a reviewed `estimat
|
|
|
893
893
|
}
|
|
894
894
|
```
|
|
895
895
|
|
|
896
|
-
### `
|
|
896
|
+
### `openplanr linear status`
|
|
897
897
|
|
|
898
898
|
**Local only** — no Linear API. Prints a text table: OpenPlanr id, Linear identifier, URL, last-known `status` (or em dash for epics), and a note for malformed or stale `linearIssueId` values (e.g. a workflow state uuid mistaken for an issue id).
|
|
899
899
|
|
|
900
900
|
```bash
|
|
901
|
-
|
|
902
|
-
|
|
901
|
+
openplanr linear status
|
|
902
|
+
openplanr linear status --scope EPIC-001
|
|
903
903
|
```
|
|
904
904
|
|
|
905
|
-
### `
|
|
905
|
+
### `openplanr linear push`
|
|
906
906
|
|
|
907
|
-
Create or update Linear entities for any planning artifact, at the smallest scope the id implies. Accepts any supported prefix — `EPIC-`, `FEAT-`, `US-`, `TASK-`, `QT-`, `BL-` — and writes `linearProject*` / `linearIssue*` / `linearMilestoneId` / `linearLabelId` / `linearProjectMilestoneId` / `linearLabelIds` / `linearTaskChecklistSyncedAt` back to artifact frontmatter. Requires `
|
|
907
|
+
Create or update Linear entities for any planning artifact, at the smallest scope the id implies. Accepts any supported prefix — `EPIC-`, `FEAT-`, `US-`, `TASK-`, `QT-`, `BL-` — and writes `linearProject*` / `linearIssue*` / `linearMilestoneId` / `linearLabelId` / `linearProjectMilestoneId` / `linearLabelIds` / `linearTaskChecklistSyncedAt` back to artifact frontmatter. Requires `openplanr linear init` and a team id in config.
|
|
908
908
|
|
|
909
909
|
```bash
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
910
|
+
openplanr linear push EPIC-001 # full subtree: project + features + stories + tasklists + linked QT/BL
|
|
911
|
+
openplanr linear push FEAT-015 # just one feature + its stories + its tasklist
|
|
912
|
+
openplanr linear push US-054 # just one story
|
|
913
|
+
openplanr linear push TASK-015 # just one tasklist sub-issue
|
|
914
|
+
openplanr linear push QT-007 # standalone quick task (or epic-linked if QT has epicId)
|
|
915
|
+
openplanr linear push BL-001 # backlog item (auto `backlog` label)
|
|
916
|
+
openplanr linear push EPIC-001 --dry-run # local preview only; no Linear API calls
|
|
917
|
+
openplanr linear push EPIC-001 --update-only # only update existing linked entities
|
|
918
|
+
openplanr linear push FEAT-015 --push-parents # if the parent epic isn't pushed yet, push it first (upward attachment only)
|
|
919
|
+
openplanr linear push FEAT-015 --no-cascade # push only this feature — skip its stories and tasklist
|
|
920
|
+
openplanr linear push EPIC-001 --no-cascade # push only the epic project — no features
|
|
921
|
+
openplanr linear push TASK-004 --push-parents # push parent feature (no sibling stories) + this tasklist
|
|
922
|
+
openplanr linear push EPIC-001 --as milestone-of:<projectId># first-time mapping strategy override
|
|
923
923
|
```
|
|
924
924
|
|
|
925
925
|
| Argument / option | Description | Required |
|
|
@@ -967,21 +967,21 @@ Quick tasks and backlog items push as top-level issues in a user-chosen standalo
|
|
|
967
967
|
|
|
968
968
|
**Epic-linked QT / BL**
|
|
969
969
|
|
|
970
|
-
A QT or BL file with `epicId: "EPIC-XXX"` (or legacy `parentEpic`) in frontmatter is pulled into that epic's Linear container instead of the standalone project. `
|
|
970
|
+
A QT or BL file with `epicId: "EPIC-XXX"` (or legacy `parentEpic`) in frontmatter is pulled into that epic's Linear container instead of the standalone project. `openplanr linear push EPIC-XXX` cascades to every linked QT/BL. Unlinked ones stay in the standalone project. `openplanr quick create --epic` and `openplanr backlog add --epic` set the link at creation time.
|
|
971
971
|
|
|
972
|
-
**Mapping:** Epic → Linear project (or milestone / label — see strategies above); feature → top-level issue; story → sub-issue of the feature issue; per-feature merged task list → sub-issue; linked QT/BL → top-level issue in the epic's container. Optional `linear.pushStateIds` maps `pending` / `in-progress` / `done` to Linear workflow **state id** (uuid). Optional `linear.defaultProjectLead` is the Linear user id for project `leadId`. See `
|
|
972
|
+
**Mapping:** Epic → Linear project (or milestone / label — see strategies above); feature → top-level issue; story → sub-issue of the feature issue; per-feature merged task list → sub-issue; linked QT/BL → top-level issue in the epic's container. Optional `linear.pushStateIds` maps `pending` / `in-progress` / `done` to Linear workflow **state id** (uuid). Optional `linear.defaultProjectLead` is the Linear user id for project `leadId`. See `openplanr linear sync` for pulling status **from** Linear into frontmatter.
|
|
973
973
|
|
|
974
974
|
**Idempotency:** Re-running the command updates the same project and issues when Linear ids are already stored in frontmatter. No duplicate creates.
|
|
975
975
|
|
|
976
976
|
**Resilience:** A malformed artifact file (unparseable frontmatter, missing title, broken YAML) is skipped with a clear warning and the rest of the push proceeds — one broken file no longer aborts the whole run.
|
|
977
977
|
|
|
978
|
-
### `
|
|
978
|
+
### `openplanr linear tasklist-sync`
|
|
979
979
|
|
|
980
980
|
Bidirectionally sync **checkbox** state between local `TASK-*.md` files and the corresponding Linear **TaskList** issues (`linearIssueId` in frontmatter). OpenPlanr reuses a single Linear issue for multiple task files in the same feature by using `## TASK-...` sections; a single file maps to the whole description. A three-way merge uses `linearChecklistReconciled` in each task’s frontmatter as the last known agreement; on divergence you can be prompted, or set `--on-conflict local` or `--on-conflict linear` (e.g. in CI).
|
|
981
981
|
|
|
982
982
|
```bash
|
|
983
|
-
|
|
984
|
-
|
|
983
|
+
openplanr linear tasklist-sync
|
|
984
|
+
openplanr linear tasklist-sync --on-conflict linear
|
|
985
985
|
```
|
|
986
986
|
|
|
987
987
|
| Argument / option | Description | Required |
|
|
@@ -990,14 +990,14 @@ planr linear tasklist-sync --on-conflict linear
|
|
|
990
990
|
|
|
991
991
|
---
|
|
992
992
|
|
|
993
|
-
### `
|
|
993
|
+
### `openplanr github push`
|
|
994
994
|
|
|
995
995
|
Push planning artifacts to GitHub Issues. Requires `gh` CLI to be installed and authenticated (`gh auth login`).
|
|
996
996
|
|
|
997
997
|
```bash
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
998
|
+
openplanr github push EPIC-001 # push a single artifact
|
|
999
|
+
openplanr github push --epic EPIC-001 # push all artifacts under an epic
|
|
1000
|
+
openplanr github push --all # push all artifacts
|
|
1001
1001
|
```
|
|
1002
1002
|
|
|
1003
1003
|
| Argument/Option | Description | Required |
|
|
@@ -1016,15 +1016,15 @@ planr github push --all # push all artifacts
|
|
|
1016
1016
|
|
|
1017
1017
|
---
|
|
1018
1018
|
|
|
1019
|
-
### `
|
|
1019
|
+
### `openplanr github sync`
|
|
1020
1020
|
|
|
1021
1021
|
Bi-directional status sync between local artifacts and GitHub Issues.
|
|
1022
1022
|
|
|
1023
1023
|
```bash
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1024
|
+
openplanr github sync # interactive conflict resolution (both directions)
|
|
1025
|
+
openplanr github sync --direction pull # GitHub → local (update local status from issue state)
|
|
1026
|
+
openplanr github sync --direction push # local → GitHub (update issue state from local status)
|
|
1027
|
+
openplanr github sync --direction both # both with interactive conflict resolution (default)
|
|
1028
1028
|
```
|
|
1029
1029
|
|
|
1030
1030
|
| Option | Description | Default |
|
|
@@ -1033,40 +1033,40 @@ planr github sync --direction both # both with interactive conflict resolut
|
|
|
1033
1033
|
|
|
1034
1034
|
**Status mapping:**
|
|
1035
1035
|
|
|
1036
|
-
-
|
|
1037
|
-
-
|
|
1038
|
-
|
|
1039
|
-
-
|
|
1036
|
+
- An issue is closed when its item is `done` and open for every other status.
|
|
1037
|
+
- `--direction pull`: a closed issue marks its item `done`, and an open issue for a `done` item
|
|
1038
|
+
marks it `in-progress`. Other statuses stay as they are.
|
|
1039
|
+
- `--direction push`: a `done` item closes its issue; any other status reopens it.
|
|
1040
|
+
- `--direction both`: asks which side wins for each item whose status and issue state disagree.
|
|
1040
1041
|
|
|
1041
1042
|
---
|
|
1042
1043
|
|
|
1043
|
-
### `
|
|
1044
|
+
### `openplanr github status`
|
|
1044
1045
|
|
|
1045
1046
|
Show sync status of all linked artifacts.
|
|
1046
1047
|
|
|
1047
1048
|
```bash
|
|
1048
|
-
|
|
1049
|
+
openplanr github status
|
|
1049
1050
|
```
|
|
1050
1051
|
|
|
1051
1052
|
Displays a table of all artifacts that have a `githubIssue` field, showing local status vs GitHub issue state and whether they are in sync.
|
|
1052
1053
|
|
|
1053
1054
|
---
|
|
1054
1055
|
|
|
1055
|
-
### `
|
|
1056
|
+
### `openplanr report`
|
|
1056
1057
|
|
|
1057
1058
|
Generate a stakeholder report from `.planr/` artifacts and (optionally) recent
|
|
1058
1059
|
GitHub activity. The commands below define the packaged reporting surface.
|
|
1059
1060
|
|
|
1060
1061
|
```bash
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
planr report sprint --push github # archive as a planr:report GitHub issue
|
|
1062
|
+
openplanr report weekly # markdown to .planr/reports/
|
|
1063
|
+
openplanr report sprint --sprint SPRINT-001 # sprint summary for one sprint
|
|
1064
|
+
openplanr report executive --format html # HTML wrapper around the markdown
|
|
1065
|
+
openplanr report weekly --stdout # print to stdout, no file
|
|
1066
|
+
openplanr report weekly --no-github # skip the gh API calls
|
|
1067
|
+
openplanr report weekly --lint # run the quality linter on the output
|
|
1068
|
+
openplanr report weekly --strict-evidence # fail if bullet claims lack URLs or #issue refs
|
|
1069
|
+
openplanr report sprint --push github # archive as a planr:report GitHub issue
|
|
1070
1070
|
```
|
|
1071
1071
|
|
|
1072
1072
|
| Option | Description | Default |
|
|
@@ -1080,8 +1080,8 @@ planr report sprint --push github # archive as a planr:repor
|
|
|
1080
1080
|
| `--stdout` | Print markdown to stdout instead of writing a file | `false` |
|
|
1081
1081
|
| `--lint` | Run the report quality linter on the generated markdown | `false` |
|
|
1082
1082
|
| `--strict-evidence` | Fail if substantive bullets under `##` (except **Evidence**) lack URLs or `#NNN` refs; skips full-line `_placeholder_` bullets | `false` |
|
|
1083
|
-
| `--push <targets>` | Comma-separated channels: `github
|
|
1084
|
-
| `--dry-run` | With `--push`, show actions without sending
|
|
1083
|
+
| `--push <targets>` | Comma-separated channels: `github` | None |
|
|
1084
|
+
| `--dry-run` | With `--push`, show actions without sending | `false` |
|
|
1085
1085
|
|
|
1086
1086
|
**Output files:** `.planr/reports/<YYYY-MM-DD>-<reportType>-report.md` (and `.html` when `--format html`, same basename). Example: `2026-04-19-weekly-report.md`.
|
|
1087
1087
|
|
|
@@ -1097,25 +1097,21 @@ planr report sprint --push github # archive as a planr:repor
|
|
|
1097
1097
|
"Compliance": "SOC2 controls verified weekly."
|
|
1098
1098
|
}
|
|
1099
1099
|
},
|
|
1100
|
-
"templateOverrides": "./reports-overrides"
|
|
1101
|
-
"distribution": {
|
|
1102
|
-
"slackWebhookUrl": "https://hooks.slack.com/services/...",
|
|
1103
|
-
"slackChannel": "#eng-updates"
|
|
1104
|
-
}
|
|
1100
|
+
"templateOverrides": "./reports-overrides"
|
|
1105
1101
|
}
|
|
1106
1102
|
```
|
|
1107
1103
|
|
|
1108
|
-
|
|
1104
|
+
All blocks are optional; the command works against a freshly initialized project.
|
|
1109
1105
|
|
|
1110
1106
|
---
|
|
1111
1107
|
|
|
1112
|
-
### `
|
|
1108
|
+
### `openplanr report-linter`
|
|
1113
1109
|
|
|
1114
|
-
Lint an existing stakeholder markdown file (or stdin) against the same rules `
|
|
1110
|
+
Lint an existing stakeholder markdown file (or stdin) against the same rules `openplanr report --lint` runs.
|
|
1115
1111
|
|
|
1116
1112
|
```bash
|
|
1117
|
-
|
|
1118
|
-
cat drafts/sprint.md |
|
|
1113
|
+
openplanr report-linter ./drafts/weekly.md --type weekly
|
|
1114
|
+
cat drafts/sprint.md | openplanr report-linter --type sprint
|
|
1119
1115
|
```
|
|
1120
1116
|
|
|
1121
1117
|
| Option | Description | Default |
|
|
@@ -1145,14 +1141,14 @@ Each `pattern` is a case-insensitive regular expression. A pattern that does not
|
|
|
1145
1141
|
|
|
1146
1142
|
---
|
|
1147
1143
|
|
|
1148
|
-
### `
|
|
1144
|
+
### `openplanr context`
|
|
1149
1145
|
|
|
1150
1146
|
Print the report context pack — artifacts, sprint state, GitHub signals, and the flat evidence index — as JSON for piping into other tools.
|
|
1151
1147
|
|
|
1152
1148
|
```bash
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1149
|
+
openplanr context --report-type weekly
|
|
1150
|
+
openplanr context --report-type sprint --sprint SPRINT-001 --days 14
|
|
1151
|
+
openplanr context --report-type weekly | jq '.evidence | length'
|
|
1156
1152
|
```
|
|
1157
1153
|
|
|
1158
1154
|
| Option | Description | Default |
|
|
@@ -1166,16 +1162,16 @@ The JSON payload is written to stdout; a one-line summary (`context: <n> evidenc
|
|
|
1166
1162
|
|
|
1167
1163
|
---
|
|
1168
1164
|
|
|
1169
|
-
### `
|
|
1165
|
+
### `openplanr voice standup`
|
|
1170
1166
|
|
|
1171
1167
|
Convert a transcript file (or stdin) into structured standup markdown using a heuristic Yesterday / Today / Blockers parser. Live microphone capture and bundled speech-to-text are intentionally **not** part of v1 — pair this with any STT or OS dictation tool that produces text.
|
|
1172
1168
|
|
|
1173
1169
|
```bash
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1170
|
+
openplanr voice standup --file standups/2026-04-19.txt
|
|
1171
|
+
openplanr voice standup --file t.txt --lint
|
|
1172
|
+
openplanr voice standup --file t.txt --append-story US-029
|
|
1173
|
+
openplanr voice standup --file t.txt --edit # interactive: open $EDITOR before saving
|
|
1174
|
+
openplanr voice standup --file t.txt --reload-file # interactive: re-read file after editing externally
|
|
1179
1175
|
```
|
|
1180
1176
|
|
|
1181
1177
|
| Option | Description | Default |
|
|
@@ -1191,16 +1187,16 @@ Per-segment audio replay is reserved (`TranscriptSegment.audioOffsetMs` exists i
|
|
|
1191
1187
|
|
|
1192
1188
|
---
|
|
1193
1189
|
|
|
1194
|
-
### `
|
|
1190
|
+
### `openplanr export`
|
|
1195
1191
|
|
|
1196
1192
|
Generate a consolidated planning report in markdown, JSON, or HTML format.
|
|
1197
1193
|
|
|
1198
1194
|
```bash
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1195
|
+
openplanr export # markdown report in current directory
|
|
1196
|
+
openplanr export --format html # self-contained HTML report
|
|
1197
|
+
openplanr export --format json # machine-readable JSON
|
|
1198
|
+
openplanr export --format html --scope EPIC-001 # only artifacts under one epic
|
|
1199
|
+
openplanr export --output ./reports # custom output directory
|
|
1204
1200
|
```
|
|
1205
1201
|
|
|
1206
1202
|
| Option | Description | Default |
|
|
@@ -1223,29 +1219,29 @@ planr export --output ./reports # custom output directory
|
|
|
1223
1219
|
Use the CLI to maintain deterministic repository artifacts; invoke host skills for semantic planning and implementation:
|
|
1224
1220
|
|
|
1225
1221
|
```text
|
|
1226
|
-
|
|
1227
|
-
└─
|
|
1228
|
-
└─
|
|
1229
|
-
└─
|
|
1230
|
-
└─
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1222
|
+
openplanr init
|
|
1223
|
+
└─ openplanr epic create "Platform renewal"
|
|
1224
|
+
└─ openplanr feature create "OAuth sign-in" --epic EPIC-001
|
|
1225
|
+
└─ openplanr story create "Company sign-in" --feature FEAT-001
|
|
1226
|
+
└─ openplanr task create "Implement approved flow" --story US-001
|
|
1227
|
+
|
|
1228
|
+
openplanr backlog add "Investigate callback failures" --priority high
|
|
1229
|
+
openplanr backlog list
|
|
1230
|
+
openplanr backlog update BL-001 --status closed
|
|
1231
|
+
|
|
1232
|
+
openplanr sprint create "Sprint 1" --duration 2w
|
|
1233
|
+
openplanr sprint list
|
|
1234
|
+
openplanr sprint show SPRINT-001
|
|
1235
|
+
openplanr sprint refinement SPRINT-001 --data refinement.json
|
|
1236
|
+
openplanr sprint apply SPRINT-001 --yes --commit
|
|
1237
|
+
openplanr sprint close SPRINT-001
|
|
1238
|
+
|
|
1239
|
+
openplanr sync
|
|
1240
|
+
openplanr status
|
|
1241
|
+
openplanr rules generate
|
|
1242
|
+
openplanr github push --all
|
|
1243
|
+
openplanr github sync
|
|
1244
|
+
openplanr export --format html
|
|
1249
1245
|
```
|
|
1250
1246
|
|
|
1251
1247
|
For semantic decomposition, invoke the installed `planr:plan` skill. After reviewing the plan, invoke `planr:ship` separately.
|