openplanr 3.1.0
Minor Changes
The status, sprint and sync skills say what they do with nothing connected and what a connected project tracker or source control adds. Before sprint or sync changes any tracker issue, they list every issue they will create, update, close or reopen, write only on your request or approval, and then report the items that were not updated.
The Claude, Codex and Cursor plugins include
CONNECTORS.md, which lists the chat, project tracker and source control products OpenPlanr works with and the step to connect each one in your host. The status, sprint and sync skills now refer to a project tracker or source control connection and point to that list when one is missing.openplanr init --repairadds a missingtargetsorcreatedAtto an existing.planr/config.jsonand keeps every other setting. It shows each field and value before writing and asks to confirm. A config error now names.planr/config.jsonand points to the repair, andopenplanr initon an existing project fails withE_ALREADY_INITIALIZED, suggesting--repairor--force.Two new skills, both run only when you invoke them.
/shareturns the status report, the current sprint or the latest release notes into a team update, shows you the exact text and destination, and creates a chat draft for you to send once you approve; with no chat connected it prints the update ready to paste./connectreports which chat, project tracker and source control connections your host has and shows how to connect the missing ones through the host. Neither asks for or stores a credential.Skills can be marked as run only when you ask for them by name. Claude Code skills marked this way carry
disable-model-invocation: true, Codex skills setallow_implicit_invocation: false, and Cursor rules apply only when you mention them. The generatedCLAUDE.mdandAGENTS.mdlist such skills as user-invoked, so the agent points you to them instead of running them.
Patch Changes
openplanr setup --runtime claudeno longer fails when the local Claude plugin marketplace was registered by another OpenPlanr install. Setup now shows both locations and points the marketplace at the install you are running. Your plugin data is kept.openplanr doctorreports when the marketplace points at a different install.The npm package keywords describe OpenPlanr as agent skills for Claude Code, Codex and Cursor.
- The dashboard's command palette button and Operate inbox tabs now have accessible names that match their visible text, so voice control and screen readers find them by what's on screen.
- The diagram studio fits the drawing after its toolbar finishes laying out, so the first view no longer opens slightly zoomed out.
- The dashboard and the diagram and design studios now bundle React 19.3 and radix-ui 1.8.
The plan skill's ID helper now accepts only the planning folder your
.planr/config.jsonconfigures, including an empty one in a new project. For any other folder it stops with an error naming the config it checked and the folder it expects, instead of offeringUS-001andT-001. It no longer creates the folder when reserving IDs.After a user-scope
openplanr setup,openplanr doctorin another project no longer warns that no managed runtime setup was found, andopenplanr initno longer suggests installing a host plugin that is already set up./shareformats a Slack draft in the standard Markdown that Slack's connector expects, and keeps Slack's own syntax for text you paste. It treats a chat app name such asslackas the app rather than a channel and still asks where to post. With no OpenPlanr project in the folder, it asks which project to use instead of guessing./connectaccepts a product name such aslinear, and reports a connector that is set up but not signed in, with a pointer to the host's connector settings./shipruns each check on its own or withset -o pipefail, so shortening a check's output no longer hides a failure. Ship now names the verification helper's--projectand--taskarguments, and the helper prints its usage when it gets a plain path.The CLI now ships the Protocol spec, story and task schemas, so it validates planning frontmatter without the optional
planr-pipelinepackage, for example afterinstall.sh --minimal. Invalid frontmatter is rejected before anything is written.The JSON Schema validator now enforces
exclusiveMinimum,maxProperties,dependentRequiredandunevaluatedProperties. Data that breaks these constraints in the packaged schemas is rejected. A schema keyword orformatthe validator doesn't support is now reported as an error instead of being ignored.The JSON Schema validator now reports a
$refit cannot resolve, or one that loops, even insidenot,if,anyOforoneOf, where it used to pass silently. A supported keyword with a malformed value, such asminimum: "3"orrequired: "id", is now an error instead of being ignored.A schema that refers to itself now validates data that nests through it, such as a tree of nodes, instead of reporting a circular reference.