openplanr 3.0.1 → 3.1.1

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.
Files changed (232) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/README.md +1 -1
  3. package/dist/cli/commands/doctor.d.ts.map +1 -1
  4. package/dist/cli/commands/doctor.js +24 -1
  5. package/dist/cli/commands/doctor.js.map +1 -1
  6. package/dist/cli/commands/init-deterministic.d.ts.map +1 -1
  7. package/dist/cli/commands/init-deterministic.js +49 -6
  8. package/dist/cli/commands/init-deterministic.js.map +1 -1
  9. package/dist/dashboard/.vite/manifest.json +2 -2
  10. package/dist/dashboard/assets/{index-Bk8DyO_2.css → index-BU5fzjyz.css} +1 -1
  11. package/dist/dashboard/assets/index-G7ygVDGg.js +572 -0
  12. package/dist/dashboard/assets/index-G7ygVDGg.js.map +1 -0
  13. package/dist/dashboard/dashboard-manifest.json +14 -14
  14. package/dist/dashboard/index.html +2 -2
  15. package/dist/models/types.d.ts +0 -46
  16. package/dist/models/types.d.ts.map +1 -1
  17. package/dist/services/capability-map-service.d.ts +4 -0
  18. package/dist/services/capability-map-service.d.ts.map +1 -1
  19. package/dist/services/capability-map-service.js +7 -1
  20. package/dist/services/capability-map-service.js.map +1 -1
  21. package/dist/services/claude-plugin-service.d.ts +6 -1
  22. package/dist/services/claude-plugin-service.d.ts.map +1 -1
  23. package/dist/services/claude-plugin-service.js +54 -15
  24. package/dist/services/claude-plugin-service.js.map +1 -1
  25. package/dist/services/config-service.d.ts +24 -1
  26. package/dist/services/config-service.d.ts.map +1 -1
  27. package/dist/services/config-service.js +69 -2
  28. package/dist/services/config-service.js.map +1 -1
  29. package/dist/services/git-service.d.ts +5 -0
  30. package/dist/services/git-service.d.ts.map +1 -1
  31. package/dist/services/git-service.js +27 -0
  32. package/dist/services/git-service.js.map +1 -1
  33. package/dist/services/global-install-service.d.ts +24 -0
  34. package/dist/services/global-install-service.d.ts.map +1 -0
  35. package/dist/services/global-install-service.js +68 -0
  36. package/dist/services/global-install-service.js.map +1 -0
  37. package/dist/services/linear-pull-service.d.ts.map +1 -1
  38. package/dist/services/linear-pull-service.js +1 -2
  39. package/dist/services/linear-pull-service.js.map +1 -1
  40. package/dist/services/pipeline-package-service.d.ts +2 -0
  41. package/dist/services/pipeline-package-service.d.ts.map +1 -1
  42. package/dist/services/pipeline-package-service.js +2 -1
  43. package/dist/services/pipeline-package-service.js.map +1 -1
  44. package/dist/services/runtime-change-summary.d.ts.map +1 -1
  45. package/dist/services/runtime-change-summary.js +4 -0
  46. package/dist/services/runtime-change-summary.js.map +1 -1
  47. package/dist/services/runtime-manager-service.d.ts.map +1 -1
  48. package/dist/services/runtime-manager-service.js +14 -3
  49. package/dist/services/runtime-manager-service.js.map +1 -1
  50. package/dist/services/spec-service.d.ts.map +1 -1
  51. package/dist/services/spec-service.js +11 -22
  52. package/dist/services/spec-service.js.map +1 -1
  53. package/dist/services/upgrade-service.d.ts +15 -1
  54. package/dist/services/upgrade-service.d.ts.map +1 -1
  55. package/dist/services/upgrade-service.js +105 -14
  56. package/dist/services/upgrade-service.js.map +1 -1
  57. package/dist/templates/rules/shared/capability-map.md.hbs +2 -2
  58. package/lib/host-packages/adapter-registry.json +5 -5
  59. package/lib/host-packages/capability-map.json +89 -29
  60. package/lib/host-packages/claude/.claude-plugin/marketplace.json +2 -2
  61. package/lib/host-packages/claude/openplanr/.claude-plugin/plugin.json +1 -1
  62. package/lib/host-packages/claude/openplanr/.openplanr-content.json +69 -37
  63. package/lib/host-packages/claude/openplanr/CONNECTORS.md +62 -0
  64. package/lib/host-packages/claude/openplanr/README.md +1 -1
  65. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-share.mjs +1 -1
  66. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-shared-protocol-contracts-31a760fc.mjs +259 -36
  67. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/notices/THIRD_PARTY_NOTICES.txt +54 -54
  68. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/lib/artifact/ui/studio-shell.css +1 -1
  69. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/03-protocol-contracts.js +259 -36
  70. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources.json +4 -4
  71. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/package.json +3 -3
  72. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/02-react.js +43 -24
  73. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/03-react-dom-client-fiber-foundations.js +279 -58
  74. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/04-react-dom-client-reconciliation-hooks.js +50 -42
  75. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/05-react-dom-client-render-phases.js +282 -146
  76. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/06-react-dom-client-commit-effects.js +949 -316
  77. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/07-react-dom-client-work-loop-scheduling.js +143 -87
  78. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/08-react-dom-client-dom-events-properties-hydration.js +930 -183
  79. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/09-react-dom-client-public-roots.js +17 -15
  80. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/14-interface-primitives.js +375 -191
  81. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/15-interface-primitives.js +140 -105
  82. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources.json +23 -23
  83. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/protocol/package.json +4 -4
  84. package/lib/host-packages/claude/openplanr/runtime/plan/scripts/design-protocol-contracts.mjs +259 -36
  85. package/lib/host-packages/claude/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +4 -4
  86. package/lib/host-packages/claude/openplanr/skills/connect/SKILL.md +60 -0
  87. package/lib/host-packages/claude/openplanr/skills/connect/references/connectors.md +62 -0
  88. package/lib/host-packages/claude/openplanr/skills/openplanr/SKILL.md +4 -0
  89. package/lib/host-packages/claude/openplanr/skills/plan/SKILL.md +4 -1
  90. package/lib/host-packages/claude/openplanr/skills/plan/scripts/planning-ids.mjs +49 -3
  91. package/lib/host-packages/claude/openplanr/skills/share/SKILL.md +87 -0
  92. package/lib/host-packages/claude/openplanr/skills/share/references/connectors.md +62 -0
  93. package/lib/host-packages/claude/openplanr/skills/ship/SKILL.md +6 -3
  94. package/lib/host-packages/claude/openplanr/skills/ship/scripts/discover-verification.mjs +2 -1
  95. package/lib/host-packages/claude/openplanr/skills/sprint/SKILL.md +15 -6
  96. package/lib/host-packages/claude/openplanr/skills/sprint/references/connectors.md +62 -0
  97. package/lib/host-packages/claude/openplanr/skills/sprint/references/tracker-connections.md +9 -13
  98. package/lib/host-packages/claude/openplanr/skills/status/SKILL.md +14 -3
  99. package/lib/host-packages/claude/openplanr/skills/status/references/connectors.md +62 -0
  100. package/lib/host-packages/claude/openplanr/skills/status/references/tracker-connections.md +9 -13
  101. package/lib/host-packages/claude/openplanr/skills/sync/SKILL.md +25 -10
  102. package/lib/host-packages/claude/openplanr/skills/sync/references/connectors.md +62 -0
  103. package/lib/host-packages/claude/openplanr/skills/sync/references/tracker-connections.md +9 -13
  104. package/lib/host-packages/cursor/openplanr/.openplanr-content.json +68 -36
  105. package/lib/host-packages/cursor/openplanr/CONNECTORS.md +62 -0
  106. package/lib/host-packages/cursor/openplanr/manifest.json +4 -2
  107. package/lib/host-packages/cursor/openplanr/rules/planr-connect/references/connectors.md +62 -0
  108. package/lib/host-packages/cursor/openplanr/rules/planr-connect.mdc +58 -0
  109. package/lib/host-packages/cursor/openplanr/rules/planr-openplanr.mdc +4 -0
  110. package/lib/host-packages/cursor/openplanr/rules/planr-plan/scripts/planning-ids.mjs +49 -3
  111. package/lib/host-packages/cursor/openplanr/rules/planr-plan.mdc +4 -1
  112. package/lib/host-packages/cursor/openplanr/rules/planr-share/references/connectors.md +62 -0
  113. package/lib/host-packages/cursor/openplanr/rules/planr-share.mdc +85 -0
  114. package/lib/host-packages/cursor/openplanr/rules/planr-ship/scripts/discover-verification.mjs +2 -1
  115. package/lib/host-packages/cursor/openplanr/rules/planr-ship.mdc +6 -3
  116. package/lib/host-packages/cursor/openplanr/rules/planr-sprint/references/connectors.md +62 -0
  117. package/lib/host-packages/cursor/openplanr/rules/planr-sprint/references/tracker-connections.md +9 -13
  118. package/lib/host-packages/cursor/openplanr/rules/planr-sprint.mdc +15 -6
  119. package/lib/host-packages/cursor/openplanr/rules/planr-status/references/connectors.md +62 -0
  120. package/lib/host-packages/cursor/openplanr/rules/planr-status/references/tracker-connections.md +9 -13
  121. package/lib/host-packages/cursor/openplanr/rules/planr-status.mdc +14 -3
  122. package/lib/host-packages/cursor/openplanr/rules/planr-sync/references/connectors.md +62 -0
  123. package/lib/host-packages/cursor/openplanr/rules/planr-sync/references/tracker-connections.md +9 -13
  124. package/lib/host-packages/cursor/openplanr/rules/planr-sync.mdc +25 -10
  125. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-share.mjs +1 -1
  126. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-shared-protocol-contracts-31a760fc.mjs +259 -36
  127. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/notices/THIRD_PARTY_NOTICES.txt +54 -54
  128. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/lib/artifact/ui/studio-shell.css +1 -1
  129. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/03-protocol-contracts.js +259 -36
  130. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources.json +4 -4
  131. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/package.json +3 -3
  132. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/02-react.js +43 -24
  133. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/03-react-dom-client-fiber-foundations.js +279 -58
  134. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/04-react-dom-client-reconciliation-hooks.js +50 -42
  135. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/05-react-dom-client-render-phases.js +282 -146
  136. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/06-react-dom-client-commit-effects.js +949 -316
  137. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/07-react-dom-client-work-loop-scheduling.js +143 -87
  138. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/08-react-dom-client-dom-events-properties-hydration.js +930 -183
  139. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/09-react-dom-client-public-roots.js +17 -15
  140. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/14-interface-primitives.js +375 -191
  141. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/15-interface-primitives.js +140 -105
  142. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources.json +23 -23
  143. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/protocol/package.json +4 -4
  144. package/lib/host-packages/cursor/openplanr/runtime/plan/scripts/design-protocol-contracts.mjs +259 -36
  145. package/lib/host-packages/cursor/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +4 -4
  146. package/lib/host-packages/openai/.claude-plugin/marketplace.json +2 -2
  147. package/lib/host-packages/openai/openplanr/.codex-plugin/plugin.json +1 -1
  148. package/lib/host-packages/openai/openplanr/.openplanr-content.json +87 -39
  149. package/lib/host-packages/openai/openplanr/CONNECTORS.md +62 -0
  150. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-share.mjs +1 -1
  151. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-shared-protocol-contracts-31a760fc.mjs +259 -36
  152. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/notices/THIRD_PARTY_NOTICES.txt +54 -54
  153. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/lib/artifact/ui/studio-shell.css +1 -1
  154. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/03-protocol-contracts.js +259 -36
  155. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources.json +4 -4
  156. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/package.json +3 -3
  157. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/02-react.js +43 -24
  158. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/03-react-dom-client-fiber-foundations.js +279 -58
  159. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/04-react-dom-client-reconciliation-hooks.js +50 -42
  160. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/05-react-dom-client-render-phases.js +282 -146
  161. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/06-react-dom-client-commit-effects.js +949 -316
  162. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/07-react-dom-client-work-loop-scheduling.js +143 -87
  163. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/08-react-dom-client-dom-events-properties-hydration.js +930 -183
  164. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/09-react-dom-client-public-roots.js +17 -15
  165. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/14-interface-primitives.js +375 -191
  166. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/15-interface-primitives.js +140 -105
  167. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources.json +23 -23
  168. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/protocol/package.json +4 -4
  169. package/lib/host-packages/openai/openplanr/runtime/plan/scripts/design-protocol-contracts.mjs +259 -36
  170. package/lib/host-packages/openai/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +4 -4
  171. package/lib/host-packages/openai/openplanr/skills/connect/SKILL.md +59 -0
  172. package/lib/host-packages/openai/openplanr/skills/connect/agents/openai.yaml +6 -0
  173. package/lib/host-packages/openai/openplanr/skills/connect/openplanr.skill.json +37 -0
  174. package/lib/host-packages/openai/openplanr/skills/connect/references/connectors.md +62 -0
  175. package/lib/host-packages/openai/openplanr/skills/openplanr/SKILL.md +4 -0
  176. package/lib/host-packages/openai/openplanr/skills/plan/SKILL.md +4 -1
  177. package/lib/host-packages/openai/openplanr/skills/plan/scripts/planning-ids.mjs +49 -3
  178. package/lib/host-packages/openai/openplanr/skills/share/SKILL.md +86 -0
  179. package/lib/host-packages/openai/openplanr/skills/share/agents/openai.yaml +6 -0
  180. package/lib/host-packages/openai/openplanr/skills/share/openplanr.skill.json +37 -0
  181. package/lib/host-packages/openai/openplanr/skills/share/references/connectors.md +62 -0
  182. package/lib/host-packages/openai/openplanr/skills/ship/SKILL.md +6 -3
  183. package/lib/host-packages/openai/openplanr/skills/ship/scripts/discover-verification.mjs +2 -1
  184. package/lib/host-packages/openai/openplanr/skills/sprint/SKILL.md +15 -6
  185. package/lib/host-packages/openai/openplanr/skills/sprint/openplanr.skill.json +11 -0
  186. package/lib/host-packages/openai/openplanr/skills/sprint/references/connectors.md +62 -0
  187. package/lib/host-packages/openai/openplanr/skills/sprint/references/tracker-connections.md +9 -13
  188. package/lib/host-packages/openai/openplanr/skills/status/SKILL.md +14 -3
  189. package/lib/host-packages/openai/openplanr/skills/status/openplanr.skill.json +11 -0
  190. package/lib/host-packages/openai/openplanr/skills/status/references/connectors.md +62 -0
  191. package/lib/host-packages/openai/openplanr/skills/status/references/tracker-connections.md +9 -13
  192. package/lib/host-packages/openai/openplanr/skills/sync/SKILL.md +25 -10
  193. package/lib/host-packages/openai/openplanr/skills/sync/openplanr.skill.json +11 -0
  194. package/lib/host-packages/openai/openplanr/skills/sync/references/connectors.md +62 -0
  195. package/lib/host-packages/openai/openplanr/skills/sync/references/tracker-connections.md +9 -13
  196. package/lib/json-schema.mjs +313 -36
  197. package/lib/schemas/v1.0.0/spec.schema.json +120 -0
  198. package/lib/schemas/v1.0.0/story.schema.json +95 -0
  199. package/lib/schemas/v1.0.0/task.schema.json +171 -0
  200. package/lib/schemas/v1.7.0/spec.schema.json +117 -0
  201. package/lib/schemas/v1.7.0/story.schema.json +107 -0
  202. package/lib/schemas/v1.7.0/task.schema.json +217 -0
  203. package/package.json +31 -31
  204. package/dist/dashboard/assets/index-n08LJ6bK.js +0 -557
  205. package/dist/dashboard/assets/index-n08LJ6bK.js.map +0 -1
  206. package/dist/services/audit-log-service.d.ts +0 -47
  207. package/dist/services/audit-log-service.d.ts.map +0 -1
  208. package/dist/services/audit-log-service.js +0 -211
  209. package/dist/services/audit-log-service.js.map +0 -1
  210. package/dist/services/delta-apply-service.d.ts +0 -16
  211. package/dist/services/delta-apply-service.d.ts.map +0 -1
  212. package/dist/services/delta-apply-service.js +0 -74
  213. package/dist/services/delta-apply-service.js.map +0 -1
  214. package/dist/services/evidence-verifier.d.ts +0 -71
  215. package/dist/services/evidence-verifier.d.ts.map +0 -1
  216. package/dist/services/evidence-verifier.js +0 -174
  217. package/dist/services/evidence-verifier.js.map +0 -1
  218. package/dist/services/revise-apply-service.d.ts +0 -55
  219. package/dist/services/revise-apply-service.d.ts.map +0 -1
  220. package/dist/services/revise-apply-service.js +0 -265
  221. package/dist/services/revise-apply-service.js.map +0 -1
  222. package/dist/services/revise-cache-service.d.ts +0 -46
  223. package/dist/services/revise-cache-service.d.ts.map +0 -1
  224. package/dist/services/revise-cache-service.js +0 -89
  225. package/dist/services/revise-cache-service.js.map +0 -1
  226. package/dist/services/revise-plan-service.d.ts +0 -38
  227. package/dist/services/revise-plan-service.d.ts.map +0 -1
  228. package/dist/services/revise-plan-service.js +0 -153
  229. package/dist/services/revise-plan-service.js.map +0 -1
  230. /package/lib/host-packages/claude/openplanr/runtime/design/scripts/{design-runtime-support-336900df0d39.mjs → design-runtime-support-e34c388a8e59.mjs} +0 -0
  231. /package/lib/host-packages/cursor/openplanr/runtime/design/scripts/{design-runtime-support-336900df0d39.mjs → design-runtime-support-e34c388a8e59.mjs} +0 -0
  232. /package/lib/host-packages/openai/openplanr/runtime/design/scripts/{design-runtime-support-336900df0d39.mjs → design-runtime-support-e34c388a8e59.mjs} +0 -0
@@ -0,0 +1,87 @@
1
+ ---
2
+ name: share
3
+ description: Share a status report, sprint note or release notes with the team as a chat message draft that the user approves and sends. Use when the user asks to post a planning update to chat.
4
+ argument-hint: "[status|sprint|release] [destination]"
5
+ license: MIT
6
+ disable-model-invocation: true
7
+ ---
8
+
9
+ # OpenPlanr Share
10
+
11
+ Turn the current planning state into a team update and hand it to ~~chat as a
12
+ draft that the user reviews and sends. Perform the work in this session. Nothing
13
+ leaves the session until the user approves the exact text and destination.
14
+
15
+ ## Choose the update
16
+
17
+ The first argument picks the source; default to `status`.
18
+
19
+ - `status`: the delivery report `planr-status` gives. Read the planning artifacts
20
+ directly, or use `openplanr status --json` when it is available.
21
+ - `sprint`: the current sprint under `.planr/sprints/`: the one in progress, else
22
+ the most recent. Use its goal, selected items, progress and leftovers.
23
+ - `release`: the newest release notes or changelog entry, or the version the
24
+ user names.
25
+
26
+ When the working directory has no OpenPlanr planning files for the chosen source,
27
+ say so and ask which project to use, or stop. Never build an update from guesses.
28
+
29
+ The second argument is the destination: a channel or person. When it names a chat
30
+ product from [connectors](references/connectors.md) instead, use that product's
31
+ connection and still ask for the channel or person. When it is missing, ask for it.
32
+ Never pick a destination yourself.
33
+
34
+ ## Write it
35
+
36
+ Lead with the outcome in one line, then at most ten short lines: what finished,
37
+ what is in progress, what is blocked and who can unblock it, and what comes next.
38
+ Use counts and dates, link pull requests or issues when their URLs are known, and
39
+ leave out local file paths, backlog IDs and internal detail the team cannot act
40
+ on. Never include credentials or the contents of secret files.
41
+
42
+ Format the text for where it goes, as listed under "Message format" in
43
+ [connectors](references/connectors.md): when drafting through a connector, use the
44
+ connector's input format, and follow the connector tool's own description when it
45
+ states one; for text the user pastes, use the paste format. Use plain text when no
46
+ format is listed.
47
+
48
+ ## Preview, then ask
49
+
50
+ Show the complete text exactly as it will appear, the destination, and what will
51
+ happen: "create a draft in <destination>; nothing is sent". Ask through the host's
52
+ structured question surface, or one short chat question when there is none:
53
+ create the draft, edit the text, or cancel. Create nothing without a clear yes.
54
+ After an edit, preview again.
55
+
56
+ ## If ~~chat is connected
57
+
58
+ A category is connected when the host exposes a tool for one of its products,
59
+ loaded or deferred. On approval, use that connection to create a message draft
60
+ in the destination, then report where the draft is and that the user sends it
61
+ from the chat app.
62
+
63
+ - Send directly only when the user explicitly asks to send and the connection
64
+ can send; confirm the destination once more first.
65
+ - When the connection cannot create drafts, say so and offer to send on an
66
+ explicit request, or print the text instead.
67
+ - When the connection fails, for example because a workspace admin has not
68
+ approved the app, report the error, print the text ready to paste, and stop.
69
+
70
+ ## With nothing connected
71
+
72
+ Print the update ready to paste and the one connect step for the current host
73
+ from [connectors](references/connectors.md), and suggest `/planr:connect`. Make no
74
+ remote call and do not retry; the user runs this skill again once connected.
75
+
76
+ ## Rules
77
+
78
+ - Never ask for, read, store or print a token, key or password, and never edit
79
+ host configuration.
80
+ - One destination per run.
81
+ - Never change planning files.
82
+
83
+ ## Return
84
+
85
+ Lead with the result: draft created (where), sent (where, on explicit request),
86
+ printed for pasting, or cancelled. Name the source used and any section that was
87
+ empty or unavailable.
@@ -0,0 +1,62 @@
1
+ # Connectors
2
+
3
+ OpenPlanr skills name a kind of service, such as `~~chat`, instead of a product. Connect
4
+ the product your team uses through your host: the vendor publishes the connector, and
5
+ you sign in through the host. OpenPlanr bundles no connectors; they and their credentials
6
+ live in your host. Two optional features need a token: Linear sync (`openplanr linear`) and
7
+ company sign-in (`openplanr company login`). Only when you use them does OpenPlanr store a
8
+ token, in your OS keychain, or in an encrypted file at `~/.planr/credentials.enc` if you set
9
+ `PLANR_CREDENTIAL_FILE_PASSPHRASE`. Tokens are sent only to Linear or to the company server
10
+ you sign in to.
11
+ `openplanr company logout` removes company tokens.
12
+ Every skill also works with nothing connected and reports any remote step it skipped.
13
+
14
+ | Category | Placeholder | Products |
15
+ | --- | --- | --- |
16
+ | Chat | `~~chat` | Slack, Microsoft Teams |
17
+ | Project tracker | `~~project tracker` | Linear, GitHub Issues, Jira, Asana |
18
+ | Source control | `~~source control` | GitHub, GitLab, Bitbucket |
19
+
20
+ Never paste a token into a chat, file or command for OpenPlanr. After you connect a
21
+ service, start a new request so the host loads its tools.
22
+
23
+ ## Chat (`~~chat`)
24
+
25
+ Share a status report, sprint note or release notes as a message draft that you review and send yourself.
26
+
27
+ | Product | Use | Claude Code | Codex | Cursor |
28
+ | --- | --- | --- | --- | --- |
29
+ | Slack | Message drafts | Run `/plugin install slack@claude-plugins-official`, then sign in to Slack from `/mcp`. A workspace admin may need to approve the app. | Install Slack from `/plugins` and sign in when asked. A workspace admin may need to approve the app. | Run `/add-plugin slack`, or install Slack from Customize, then sign in when asked. A workspace admin may need to approve the app. |
30
+
31
+ Message format for Slack, drafting through the connector: standard Markdown, which the connector converts on send ([Slack's messaging guidance](https://github.com/slackapi/slack-mcp-plugin/blob/main/skills/slack-messaging/SKILL.md)): `**bold**`, `_italic_`, `[link text](https://example.com)`, `-` lists, `>` quotes. Do not use mrkdwn's `*bold*` or `<url|text>` here.
32
+
33
+ Message format for Slack, text to paste: Slack mrkdwn ([formatting](https://docs.slack.dev/messaging/formatting-message-text)): `*bold*`, `_italic_`, `<https://example.com|link text>`, lines starting with `•` or `-` for lists, `>` for quotes; no headings or tables; escape `&`, `<` and `>` as `&amp;`, `&lt;` and `&gt;`.
34
+
35
+ Also works with: [Microsoft Teams](https://learn.microsoft.com/en-us/microsoft-copilot-studio/mcp-teams-tools) (read for context). Add the vendor's connector in your host the same way.
36
+
37
+ Verified: [Slack](https://docs.slack.dev/ai/slack-mcp-server) on 2026-10-09, [Microsoft Teams](https://learn.microsoft.com/en-us/microsoft-copilot-studio/mcp-teams-tools) on 2026-10-09.
38
+
39
+ ## Project tracker (`~~project tracker`)
40
+
41
+ Push planning status to linked issues after you approve each change, and read issue state back.
42
+
43
+ | Product | Use | Claude Code | Codex | Cursor |
44
+ | --- | --- | --- | --- | --- |
45
+ | Linear | OpenPlanr syncs with it | Run `/plugin install linear@claude-plugins-official`, then sign in to Linear from `/mcp`. | Install Linear from `/plugins` and sign in when asked. | Run `/add-plugin linear`, or install Linear from Customize, then sign in when asked. |
46
+ | GitHub Issues | OpenPlanr syncs with it | Install the GitHub CLI from cli.github.com and run `gh auth login`. | Install GitHub from `/plugins` and sign in when asked, or install the GitHub CLI and run `gh auth login`. | Install the GitHub CLI from cli.github.com and run `gh auth login`. |
47
+
48
+ Also works with: [Jira](https://support.atlassian.com/atlassian-ai-gateway/docs/get-started-with-the-atlassian-remote-mcp-server/) (read for context), [Asana](https://developers.asana.com/docs/using-asanas-mcp-server) (read for context). Add the vendor's connector in your host the same way.
49
+
50
+ Verified: [Linear](https://linear.app/docs/mcp) on 2026-10-09, [GitHub Issues](https://cli.github.com/manual/gh_auth_login) on 2026-10-09, [Jira](https://support.atlassian.com/atlassian-ai-gateway/docs/get-started-with-the-atlassian-remote-mcp-server/) on 2026-10-09, [Asana](https://developers.asana.com/docs/using-asanas-mcp-server) on 2026-10-09.
51
+
52
+ ## Source control (`~~source control`)
53
+
54
+ Read pull request and branch state for status reports and sprint reviews.
55
+
56
+ | Product | Use | Claude Code | Codex | Cursor |
57
+ | --- | --- | --- | --- | --- |
58
+ | GitHub | Read for context | Install the GitHub CLI from cli.github.com and run `gh auth login`. | Install GitHub from `/plugins` and sign in when asked, or install the GitHub CLI and run `gh auth login`. | Install the GitHub CLI from cli.github.com and run `gh auth login`. |
59
+
60
+ Also works with: [GitLab](https://docs.gitlab.com/user/gitlab_duo/model_context_protocol/mcp_server/) (read for context), [Bitbucket](https://support.atlassian.com/atlassian-ai-gateway/docs/get-started-with-the-atlassian-remote-mcp-server/) (read for context). Add the vendor's connector in your host the same way.
61
+
62
+ Verified: [GitHub](https://cli.github.com/manual/gh_auth_login) on 2026-10-09, [GitLab](https://docs.gitlab.com/user/gitlab_duo/model_context_protocol/mcp_server/) on 2026-10-09, [Bitbucket](https://support.atlassian.com/atlassian-ai-gateway/docs/get-started-with-the-atlassian-remote-mcp-server/) on 2026-10-09.
@@ -62,13 +62,16 @@ Discover checks in this order:
62
62
  4. applicable CI and pre-commit configuration.
63
63
 
64
64
  The packaged read-only [verification discovery helper](scripts/discover-verification.mjs)
65
- may list candidates. Resolve it relative to this `SKILL.md`; pass the repository
66
- root and task path. It never executes checks or writes files. If it is unavailable,
65
+ may list candidates. Resolve it relative to this `SKILL.md` and run
66
+ `node <helper> --project <repository-root> --task <task-path>`; omit `--task` for a
67
+ direct request. It never executes checks or writes files. If it is unavailable,
67
68
  inspect those four sources directly. Missing commands are diagnostics, not a
68
69
  reason to invent or skip all verification.
69
70
 
70
71
  Run the strongest applicable focused checks while working, then the relevant
71
- regression checks. Fix failures caused by the change and rerun affected checks.
72
+ regression checks. Run each check on its own or under `set -o pipefail`, and judge
73
+ it by its own exit code; to shorten output, write it to a log and read the tail.
74
+ Fix failures caused by the change and rerun affected checks.
72
75
  Read [the result contract](references/result-contract.md) before reporting.
73
76
 
74
77
  Do not write progress into an approved design package. The studio derives
@@ -5,6 +5,7 @@ import { resolve } from 'node:path';
5
5
 
6
6
  const COMMAND = /^(?:npm|npx|pnpm|yarn|bun|node|deno|cargo|go|make|just|pytest|python(?:3)?\s+-m|dotnet|mvn|gradle|\.\/gradlew)\b/u;
7
7
  const PRIORITY = Object.freeze(['test', 'test:unit', 'test:integration', 'typecheck', 'check', 'lint', 'build']);
8
+ const USAGE = 'Usage: node discover-verification.mjs --project <repository-root> [--task <task-path>]';
8
9
  const read = (path) => readFileSync(path, 'utf8').replace(/\r\n/gu, '\n');
9
10
 
10
11
  function commands(markdown) {
@@ -57,7 +58,7 @@ function parseArgs(argv) {
57
58
  for (let index = 0; index < argv.length; index += 1) {
58
59
  if (argv[index] === '--project') options.project = argv[++index];
59
60
  else if (argv[index] === '--task') options.task = argv[++index];
60
- else throw new Error(`Unknown argument: ${argv[index]}`);
61
+ else throw new Error(`Unknown argument: ${argv[index]}\n${USAGE}`);
61
62
  }
62
63
  return options;
63
64
  }
@@ -36,7 +36,7 @@ capability; it never blocks the run. Name every degraded input in `Issues`.
36
36
  | Capacity (engineers × working days) | Fit the list and name the overflow | Ask once; default 1 engineer × 10 days, stated in the return |
37
37
  | Previous sprint or refinement note (`.planr/sprints/SPRINT-NNN/refinement.json`) | Carry `leftovers`; `openplanr sprint diff` is possible | First run, no diff |
38
38
  | Last Operate cycle | Rank its unfinished actions alongside | Skipped silently |
39
- | Linear or GitHub connection ([tracker connections](references/tracker-connections.md)) | Update linked issues on approval, read PR state | Local files only; report the external step as not run and name the connection to add |
39
+ | ~~project tracker or ~~source control ([connectors](references/connectors.md)) | Update linked issues on approval, read PR state | Local files only; report the external step as not run and name the category to add |
40
40
 
41
41
  ## Step 0: Frame the run
42
42
 
@@ -135,11 +135,20 @@ openplanr sprint apply SPRINT-NNN --dry-run # show the status and prior
135
135
  openplanr sprint apply SPRINT-NNN --yes --commit # one commit: chore(planr): refine backlog for SPRINT-NNN
136
136
  ```
137
137
 
138
- Then update the issue linked to each changed item through the host's Linear or
139
- GitHub connection, with the status mapping in
140
- [tracker connections](references/tracker-connections.md), and report the items that
141
- were not updated. When the CLI is unavailable, apply the same status changes with
142
- the repository's own vocabulary and commit them with the same message.
138
+ Then, if ~~project tracker is connected, update the issue linked to each changed
139
+ item through the host's connection, with the status mapping in the
140
+ [tracker sync reference](references/tracker-connections.md). Before any remote write,
141
+ list every issue change: each issue to create, update, close or reopen, with its
142
+ title and the status it moves to. Write only when the request explicitly asked for
143
+ that push or the user approves the list. Afterwards, report each item that was not
144
+ updated and why, and name the category and product used.
145
+
146
+ With nothing connected, the local apply is the whole step: report the tracker
147
+ update as not run and give the current host's step from
148
+ [connectors](references/connectors.md).
149
+
150
+ When the CLI is unavailable, apply the same status changes with the repository's
151
+ own vocabulary and commit them with the same message.
143
152
 
144
153
  Close a finished sprint with `openplanr sprint close SPRINT-NNN`; it records the
145
154
  leftovers the next run carries.
@@ -0,0 +1,62 @@
1
+ # Connectors
2
+
3
+ OpenPlanr skills name a kind of service, such as `~~chat`, instead of a product. Connect
4
+ the product your team uses through your host: the vendor publishes the connector, and
5
+ you sign in through the host. OpenPlanr bundles no connectors; they and their credentials
6
+ live in your host. Two optional features need a token: Linear sync (`openplanr linear`) and
7
+ company sign-in (`openplanr company login`). Only when you use them does OpenPlanr store a
8
+ token, in your OS keychain, or in an encrypted file at `~/.planr/credentials.enc` if you set
9
+ `PLANR_CREDENTIAL_FILE_PASSPHRASE`. Tokens are sent only to Linear or to the company server
10
+ you sign in to.
11
+ `openplanr company logout` removes company tokens.
12
+ Every skill also works with nothing connected and reports any remote step it skipped.
13
+
14
+ | Category | Placeholder | Products |
15
+ | --- | --- | --- |
16
+ | Chat | `~~chat` | Slack, Microsoft Teams |
17
+ | Project tracker | `~~project tracker` | Linear, GitHub Issues, Jira, Asana |
18
+ | Source control | `~~source control` | GitHub, GitLab, Bitbucket |
19
+
20
+ Never paste a token into a chat, file or command for OpenPlanr. After you connect a
21
+ service, start a new request so the host loads its tools.
22
+
23
+ ## Chat (`~~chat`)
24
+
25
+ Share a status report, sprint note or release notes as a message draft that you review and send yourself.
26
+
27
+ | Product | Use | Claude Code | Codex | Cursor |
28
+ | --- | --- | --- | --- | --- |
29
+ | Slack | Message drafts | Run `/plugin install slack@claude-plugins-official`, then sign in to Slack from `/mcp`. A workspace admin may need to approve the app. | Install Slack from `/plugins` and sign in when asked. A workspace admin may need to approve the app. | Run `/add-plugin slack`, or install Slack from Customize, then sign in when asked. A workspace admin may need to approve the app. |
30
+
31
+ Message format for Slack, drafting through the connector: standard Markdown, which the connector converts on send ([Slack's messaging guidance](https://github.com/slackapi/slack-mcp-plugin/blob/main/skills/slack-messaging/SKILL.md)): `**bold**`, `_italic_`, `[link text](https://example.com)`, `-` lists, `>` quotes. Do not use mrkdwn's `*bold*` or `<url|text>` here.
32
+
33
+ Message format for Slack, text to paste: Slack mrkdwn ([formatting](https://docs.slack.dev/messaging/formatting-message-text)): `*bold*`, `_italic_`, `<https://example.com|link text>`, lines starting with `•` or `-` for lists, `>` for quotes; no headings or tables; escape `&`, `<` and `>` as `&amp;`, `&lt;` and `&gt;`.
34
+
35
+ Also works with: [Microsoft Teams](https://learn.microsoft.com/en-us/microsoft-copilot-studio/mcp-teams-tools) (read for context). Add the vendor's connector in your host the same way.
36
+
37
+ Verified: [Slack](https://docs.slack.dev/ai/slack-mcp-server) on 2026-10-09, [Microsoft Teams](https://learn.microsoft.com/en-us/microsoft-copilot-studio/mcp-teams-tools) on 2026-10-09.
38
+
39
+ ## Project tracker (`~~project tracker`)
40
+
41
+ Push planning status to linked issues after you approve each change, and read issue state back.
42
+
43
+ | Product | Use | Claude Code | Codex | Cursor |
44
+ | --- | --- | --- | --- | --- |
45
+ | Linear | OpenPlanr syncs with it | Run `/plugin install linear@claude-plugins-official`, then sign in to Linear from `/mcp`. | Install Linear from `/plugins` and sign in when asked. | Run `/add-plugin linear`, or install Linear from Customize, then sign in when asked. |
46
+ | GitHub Issues | OpenPlanr syncs with it | Install the GitHub CLI from cli.github.com and run `gh auth login`. | Install GitHub from `/plugins` and sign in when asked, or install the GitHub CLI and run `gh auth login`. | Install the GitHub CLI from cli.github.com and run `gh auth login`. |
47
+
48
+ Also works with: [Jira](https://support.atlassian.com/atlassian-ai-gateway/docs/get-started-with-the-atlassian-remote-mcp-server/) (read for context), [Asana](https://developers.asana.com/docs/using-asanas-mcp-server) (read for context). Add the vendor's connector in your host the same way.
49
+
50
+ Verified: [Linear](https://linear.app/docs/mcp) on 2026-10-09, [GitHub Issues](https://cli.github.com/manual/gh_auth_login) on 2026-10-09, [Jira](https://support.atlassian.com/atlassian-ai-gateway/docs/get-started-with-the-atlassian-remote-mcp-server/) on 2026-10-09, [Asana](https://developers.asana.com/docs/using-asanas-mcp-server) on 2026-10-09.
51
+
52
+ ## Source control (`~~source control`)
53
+
54
+ Read pull request and branch state for status reports and sprint reviews.
55
+
56
+ | Product | Use | Claude Code | Codex | Cursor |
57
+ | --- | --- | --- | --- | --- |
58
+ | GitHub | Read for context | Install the GitHub CLI from cli.github.com and run `gh auth login`. | Install GitHub from `/plugins` and sign in when asked, or install the GitHub CLI and run `gh auth login`. | Install the GitHub CLI from cli.github.com and run `gh auth login`. |
59
+
60
+ Also works with: [GitLab](https://docs.gitlab.com/user/gitlab_duo/model_context_protocol/mcp_server/) (read for context), [Bitbucket](https://support.atlassian.com/atlassian-ai-gateway/docs/get-started-with-the-atlassian-remote-mcp-server/) (read for context). Add the vendor's connector in your host the same way.
61
+
62
+ Verified: [GitHub](https://cli.github.com/manual/gh_auth_login) on 2026-10-09, [GitLab](https://docs.gitlab.com/user/gitlab_duo/model_context_protocol/mcp_server/) on 2026-10-09, [Bitbucket](https://support.atlassian.com/atlassian-ai-gateway/docs/get-started-with-the-atlassian-remote-mcp-server/) on 2026-10-09.
@@ -1,7 +1,9 @@
1
- # GitHub and Linear connections
1
+ # Tracker sync reference
2
2
 
3
- These skills store and read no GitHub or Linear credentials. Remote steps run through a
4
- connection the host already has; the planning files stay the source of truth.
3
+ These skills store and read no tracker or source control credentials. Remote steps
4
+ run through a connection the host already has; the planning files stay the source of
5
+ truth. OpenPlanr syncs with the trackers marked "OpenPlanr syncs with it" in
6
+ [connectors](connectors.md), and reads other products for context only.
5
7
 
6
8
  ## Use the host's connection
7
9
 
@@ -14,16 +16,10 @@ command, URL or file.
14
16
 
15
17
  ## When a connection is missing
16
18
 
17
- Finish the local work first. Then report the remote step as not run and give the one
18
- line for the current host:
19
-
20
- | Host | Linear | GitHub |
21
- | --- | --- | --- |
22
- | Claude Code | Run `/plugin install linear@claude-plugins-official`, then sign in to Linear from `/mcp`. | Install the GitHub CLI (cli.github.com) and run `gh auth login`. |
23
- | Codex | Run `codex mcp add linear --url https://mcp.linear.app/mcp`, then `codex mcp login linear`. | Install the GitHub plugin from `/plugins`, or run `gh auth login`. |
24
- | Cursor | Add Linear from the Cursor Marketplace and sign in to Linear. | Install the GitHub CLI (cli.github.com) and run `gh auth login`. |
25
-
26
- Ask the user to try again once connected; never retry the remote step on your own.
19
+ Finish the local work first. Then report the remote step as not run, naming the
20
+ category, and give the one connect step for the current host from
21
+ [connectors](connectors.md). Ask the user to try again once connected; never retry the
22
+ remote step on your own.
27
23
 
28
24
  ## Status mapping
29
25
 
@@ -11,9 +11,6 @@ planning artifacts, task statuses, dependency graph, current branch, and relevan
11
11
  runtime markers directly. Use the optional deterministic `openplanr status --json`
12
12
  utility when available, but do not require it or a semantic subprocess.
13
13
 
14
- Add GitHub or Linear lookups only when the user requests live remote state, through
15
- the host's connections as described in [tracker connections](references/tracker-connections.md).
16
- Keep local results useful when a connection is unavailable, and name the one to add.
17
14
  Report counts, ready and blocked work, dependency problems, and the most useful next
18
15
  action. Do not repair artifacts, start Plan or Ship, or change lifecycle state.
19
16
 
@@ -21,6 +18,20 @@ When the OpenPlanr dashboard is running (`planr-dashboard`), the same delivery
21
18
  state is browsable there: `#/overview` for the whole project, `#/detail/<id>`
22
19
  for one feature. This is navigation only.
23
20
 
21
+ ## With nothing connected
22
+
23
+ The report comes entirely from local planning files and git. When the user asks
24
+ for live remote state, report that step as not run, name the category it needs,
25
+ and give the current host's step from [connectors](references/connectors.md).
26
+
27
+ ## If ~~project tracker or ~~source control is connected
28
+
29
+ Add remote lookups only when the user requests live remote state: issue state
30
+ from ~~project tracker, pull request and branch state from ~~source control,
31
+ through the host's connections as described in the
32
+ [tracker sync reference](references/tracker-connections.md). Name the category each
33
+ remote fact came from. Status never writes to a remote service.
34
+
24
35
  ## Return
25
36
 
26
37
  Lead with the current delivery state, then summarize ready, blocked and pending
@@ -0,0 +1,62 @@
1
+ # Connectors
2
+
3
+ OpenPlanr skills name a kind of service, such as `~~chat`, instead of a product. Connect
4
+ the product your team uses through your host: the vendor publishes the connector, and
5
+ you sign in through the host. OpenPlanr bundles no connectors; they and their credentials
6
+ live in your host. Two optional features need a token: Linear sync (`openplanr linear`) and
7
+ company sign-in (`openplanr company login`). Only when you use them does OpenPlanr store a
8
+ token, in your OS keychain, or in an encrypted file at `~/.planr/credentials.enc` if you set
9
+ `PLANR_CREDENTIAL_FILE_PASSPHRASE`. Tokens are sent only to Linear or to the company server
10
+ you sign in to.
11
+ `openplanr company logout` removes company tokens.
12
+ Every skill also works with nothing connected and reports any remote step it skipped.
13
+
14
+ | Category | Placeholder | Products |
15
+ | --- | --- | --- |
16
+ | Chat | `~~chat` | Slack, Microsoft Teams |
17
+ | Project tracker | `~~project tracker` | Linear, GitHub Issues, Jira, Asana |
18
+ | Source control | `~~source control` | GitHub, GitLab, Bitbucket |
19
+
20
+ Never paste a token into a chat, file or command for OpenPlanr. After you connect a
21
+ service, start a new request so the host loads its tools.
22
+
23
+ ## Chat (`~~chat`)
24
+
25
+ Share a status report, sprint note or release notes as a message draft that you review and send yourself.
26
+
27
+ | Product | Use | Claude Code | Codex | Cursor |
28
+ | --- | --- | --- | --- | --- |
29
+ | Slack | Message drafts | Run `/plugin install slack@claude-plugins-official`, then sign in to Slack from `/mcp`. A workspace admin may need to approve the app. | Install Slack from `/plugins` and sign in when asked. A workspace admin may need to approve the app. | Run `/add-plugin slack`, or install Slack from Customize, then sign in when asked. A workspace admin may need to approve the app. |
30
+
31
+ Message format for Slack, drafting through the connector: standard Markdown, which the connector converts on send ([Slack's messaging guidance](https://github.com/slackapi/slack-mcp-plugin/blob/main/skills/slack-messaging/SKILL.md)): `**bold**`, `_italic_`, `[link text](https://example.com)`, `-` lists, `>` quotes. Do not use mrkdwn's `*bold*` or `<url|text>` here.
32
+
33
+ Message format for Slack, text to paste: Slack mrkdwn ([formatting](https://docs.slack.dev/messaging/formatting-message-text)): `*bold*`, `_italic_`, `<https://example.com|link text>`, lines starting with `•` or `-` for lists, `>` for quotes; no headings or tables; escape `&`, `<` and `>` as `&amp;`, `&lt;` and `&gt;`.
34
+
35
+ Also works with: [Microsoft Teams](https://learn.microsoft.com/en-us/microsoft-copilot-studio/mcp-teams-tools) (read for context). Add the vendor's connector in your host the same way.
36
+
37
+ Verified: [Slack](https://docs.slack.dev/ai/slack-mcp-server) on 2026-10-09, [Microsoft Teams](https://learn.microsoft.com/en-us/microsoft-copilot-studio/mcp-teams-tools) on 2026-10-09.
38
+
39
+ ## Project tracker (`~~project tracker`)
40
+
41
+ Push planning status to linked issues after you approve each change, and read issue state back.
42
+
43
+ | Product | Use | Claude Code | Codex | Cursor |
44
+ | --- | --- | --- | --- | --- |
45
+ | Linear | OpenPlanr syncs with it | Run `/plugin install linear@claude-plugins-official`, then sign in to Linear from `/mcp`. | Install Linear from `/plugins` and sign in when asked. | Run `/add-plugin linear`, or install Linear from Customize, then sign in when asked. |
46
+ | GitHub Issues | OpenPlanr syncs with it | Install the GitHub CLI from cli.github.com and run `gh auth login`. | Install GitHub from `/plugins` and sign in when asked, or install the GitHub CLI and run `gh auth login`. | Install the GitHub CLI from cli.github.com and run `gh auth login`. |
47
+
48
+ Also works with: [Jira](https://support.atlassian.com/atlassian-ai-gateway/docs/get-started-with-the-atlassian-remote-mcp-server/) (read for context), [Asana](https://developers.asana.com/docs/using-asanas-mcp-server) (read for context). Add the vendor's connector in your host the same way.
49
+
50
+ Verified: [Linear](https://linear.app/docs/mcp) on 2026-10-09, [GitHub Issues](https://cli.github.com/manual/gh_auth_login) on 2026-10-09, [Jira](https://support.atlassian.com/atlassian-ai-gateway/docs/get-started-with-the-atlassian-remote-mcp-server/) on 2026-10-09, [Asana](https://developers.asana.com/docs/using-asanas-mcp-server) on 2026-10-09.
51
+
52
+ ## Source control (`~~source control`)
53
+
54
+ Read pull request and branch state for status reports and sprint reviews.
55
+
56
+ | Product | Use | Claude Code | Codex | Cursor |
57
+ | --- | --- | --- | --- | --- |
58
+ | GitHub | Read for context | Install the GitHub CLI from cli.github.com and run `gh auth login`. | Install GitHub from `/plugins` and sign in when asked, or install the GitHub CLI and run `gh auth login`. | Install the GitHub CLI from cli.github.com and run `gh auth login`. |
59
+
60
+ Also works with: [GitLab](https://docs.gitlab.com/user/gitlab_duo/model_context_protocol/mcp_server/) (read for context), [Bitbucket](https://support.atlassian.com/atlassian-ai-gateway/docs/get-started-with-the-atlassian-remote-mcp-server/) (read for context). Add the vendor's connector in your host the same way.
61
+
62
+ Verified: [GitHub](https://cli.github.com/manual/gh_auth_login) on 2026-10-09, [GitLab](https://docs.gitlab.com/user/gitlab_duo/model_context_protocol/mcp_server/) on 2026-10-09, [Bitbucket](https://support.atlassian.com/atlassian-ai-gateway/docs/get-started-with-the-atlassian-remote-mcp-server/) on 2026-10-09.
@@ -1,7 +1,9 @@
1
- # GitHub and Linear connections
1
+ # Tracker sync reference
2
2
 
3
- These skills store and read no GitHub or Linear credentials. Remote steps run through a
4
- connection the host already has; the planning files stay the source of truth.
3
+ These skills store and read no tracker or source control credentials. Remote steps
4
+ run through a connection the host already has; the planning files stay the source of
5
+ truth. OpenPlanr syncs with the trackers marked "OpenPlanr syncs with it" in
6
+ [connectors](connectors.md), and reads other products for context only.
5
7
 
6
8
  ## Use the host's connection
7
9
 
@@ -14,16 +16,10 @@ command, URL or file.
14
16
 
15
17
  ## When a connection is missing
16
18
 
17
- Finish the local work first. Then report the remote step as not run and give the one
18
- line for the current host:
19
-
20
- | Host | Linear | GitHub |
21
- | --- | --- | --- |
22
- | Claude Code | Run `/plugin install linear@claude-plugins-official`, then sign in to Linear from `/mcp`. | Install the GitHub CLI (cli.github.com) and run `gh auth login`. |
23
- | Codex | Run `codex mcp add linear --url https://mcp.linear.app/mcp`, then `codex mcp login linear`. | Install the GitHub plugin from `/plugins`, or run `gh auth login`. |
24
- | Cursor | Add Linear from the Cursor Marketplace and sign in to Linear. | Install the GitHub CLI (cli.github.com) and run `gh auth login`. |
25
-
26
- Ask the user to try again once connected; never retry the remote step on your own.
19
+ Finish the local work first. Then report the remote step as not run, naming the
20
+ category, and give the one connect step for the current host from
21
+ [connectors](connectors.md). Ask the user to try again once connected; never retry the
22
+ remote step on your own.
27
23
 
28
24
  ## Status mapping
29
25
 
@@ -6,25 +6,40 @@ license: MIT
6
6
 
7
7
  # OpenPlanr Sync
8
8
 
9
- Reconcile local planning artifacts and, when requested, GitHub or Linear state.
10
- Reason about conflicts in this active session. Local and GitHub work never require
9
+ Reconcile local planning artifacts and, when requested, ~~project tracker state.
10
+ Reason about conflicts in this active session. Local and tracker work never require
11
11
  the OpenPlanr CLI.
12
12
 
13
- Remote steps run through the host's own connections, as described in
14
- [tracker connections](references/tracker-connections.md), which also holds the status
15
- mapping and what to tell the user when a connection is missing:
13
+ Remote steps run through the host's own ~~project tracker connection. The
14
+ [tracker sync reference](references/tracker-connections.md) holds which connection to
15
+ use per tracker, the status mapping, link shapes and what to tell the user when a
16
+ connection is missing; [connectors](references/connectors.md) lists the trackers
17
+ OpenPlanr syncs with and how to connect each in the current host.
16
18
 
17
- - GitHub: the host's GitHub connection, or, when the GitHub CLI is signed in, the
18
- packaged [sync helper](scripts/sync.mjs), which creates and edits issues through `gh`;
19
- close or reopen an issue with `gh issue close` or `gh issue reopen`. `openplanr github`
20
- is an optional equivalent; `openplanr sync` only repairs local cross-references.
21
- - Linear: the host's Linear connection.
19
+ When the GitHub CLI is signed in, the packaged [sync helper](scripts/sync.mjs) creates
20
+ and edits issues through `gh`; close or reopen an issue with `gh issue close` or
21
+ `gh issue reopen`. Other trackers go through the host's connection only.
22
+ `openplanr sync` only repairs local cross-references.
22
23
 
23
24
  Audit is read-only by default. Apply local changes only when the request asks for
24
25
  reconciliation, and push remote changes only when the request asks for external
25
26
  synchronization. If a connection is unavailable, complete local reconciliation
26
27
  and report only the external step that could not run.
27
28
 
29
+ ## With nothing connected
30
+
31
+ Audit and local reconciliation run in full. Report the remote step as not run,
32
+ name ~~project tracker as the category it needs, and give the current host's step
33
+ from [connectors](references/connectors.md).
34
+
35
+ ## If ~~project tracker is connected
36
+
37
+ Before any remote write, list every issue change: each issue to create, update,
38
+ close or reopen, with its title and the status it moves to. Write only when the
39
+ request explicitly asked for that push or the user approves the list. Afterwards,
40
+ report each item that was not updated and why, and name the category and product
41
+ the changes went to.
42
+
28
43
  ## Return
29
44
 
30
45
  Lead with what is aligned, repaired or still blocked. Summarize aligned, locally
@@ -0,0 +1,62 @@
1
+ # Connectors
2
+
3
+ OpenPlanr skills name a kind of service, such as `~~chat`, instead of a product. Connect
4
+ the product your team uses through your host: the vendor publishes the connector, and
5
+ you sign in through the host. OpenPlanr bundles no connectors; they and their credentials
6
+ live in your host. Two optional features need a token: Linear sync (`openplanr linear`) and
7
+ company sign-in (`openplanr company login`). Only when you use them does OpenPlanr store a
8
+ token, in your OS keychain, or in an encrypted file at `~/.planr/credentials.enc` if you set
9
+ `PLANR_CREDENTIAL_FILE_PASSPHRASE`. Tokens are sent only to Linear or to the company server
10
+ you sign in to.
11
+ `openplanr company logout` removes company tokens.
12
+ Every skill also works with nothing connected and reports any remote step it skipped.
13
+
14
+ | Category | Placeholder | Products |
15
+ | --- | --- | --- |
16
+ | Chat | `~~chat` | Slack, Microsoft Teams |
17
+ | Project tracker | `~~project tracker` | Linear, GitHub Issues, Jira, Asana |
18
+ | Source control | `~~source control` | GitHub, GitLab, Bitbucket |
19
+
20
+ Never paste a token into a chat, file or command for OpenPlanr. After you connect a
21
+ service, start a new request so the host loads its tools.
22
+
23
+ ## Chat (`~~chat`)
24
+
25
+ Share a status report, sprint note or release notes as a message draft that you review and send yourself.
26
+
27
+ | Product | Use | Claude Code | Codex | Cursor |
28
+ | --- | --- | --- | --- | --- |
29
+ | Slack | Message drafts | Run `/plugin install slack@claude-plugins-official`, then sign in to Slack from `/mcp`. A workspace admin may need to approve the app. | Install Slack from `/plugins` and sign in when asked. A workspace admin may need to approve the app. | Run `/add-plugin slack`, or install Slack from Customize, then sign in when asked. A workspace admin may need to approve the app. |
30
+
31
+ Message format for Slack, drafting through the connector: standard Markdown, which the connector converts on send ([Slack's messaging guidance](https://github.com/slackapi/slack-mcp-plugin/blob/main/skills/slack-messaging/SKILL.md)): `**bold**`, `_italic_`, `[link text](https://example.com)`, `-` lists, `>` quotes. Do not use mrkdwn's `*bold*` or `<url|text>` here.
32
+
33
+ Message format for Slack, text to paste: Slack mrkdwn ([formatting](https://docs.slack.dev/messaging/formatting-message-text)): `*bold*`, `_italic_`, `<https://example.com|link text>`, lines starting with `•` or `-` for lists, `>` for quotes; no headings or tables; escape `&`, `<` and `>` as `&amp;`, `&lt;` and `&gt;`.
34
+
35
+ Also works with: [Microsoft Teams](https://learn.microsoft.com/en-us/microsoft-copilot-studio/mcp-teams-tools) (read for context). Add the vendor's connector in your host the same way.
36
+
37
+ Verified: [Slack](https://docs.slack.dev/ai/slack-mcp-server) on 2026-10-09, [Microsoft Teams](https://learn.microsoft.com/en-us/microsoft-copilot-studio/mcp-teams-tools) on 2026-10-09.
38
+
39
+ ## Project tracker (`~~project tracker`)
40
+
41
+ Push planning status to linked issues after you approve each change, and read issue state back.
42
+
43
+ | Product | Use | Claude Code | Codex | Cursor |
44
+ | --- | --- | --- | --- | --- |
45
+ | Linear | OpenPlanr syncs with it | Run `/plugin install linear@claude-plugins-official`, then sign in to Linear from `/mcp`. | Install Linear from `/plugins` and sign in when asked. | Run `/add-plugin linear`, or install Linear from Customize, then sign in when asked. |
46
+ | GitHub Issues | OpenPlanr syncs with it | Install the GitHub CLI from cli.github.com and run `gh auth login`. | Install GitHub from `/plugins` and sign in when asked, or install the GitHub CLI and run `gh auth login`. | Install the GitHub CLI from cli.github.com and run `gh auth login`. |
47
+
48
+ Also works with: [Jira](https://support.atlassian.com/atlassian-ai-gateway/docs/get-started-with-the-atlassian-remote-mcp-server/) (read for context), [Asana](https://developers.asana.com/docs/using-asanas-mcp-server) (read for context). Add the vendor's connector in your host the same way.
49
+
50
+ Verified: [Linear](https://linear.app/docs/mcp) on 2026-10-09, [GitHub Issues](https://cli.github.com/manual/gh_auth_login) on 2026-10-09, [Jira](https://support.atlassian.com/atlassian-ai-gateway/docs/get-started-with-the-atlassian-remote-mcp-server/) on 2026-10-09, [Asana](https://developers.asana.com/docs/using-asanas-mcp-server) on 2026-10-09.
51
+
52
+ ## Source control (`~~source control`)
53
+
54
+ Read pull request and branch state for status reports and sprint reviews.
55
+
56
+ | Product | Use | Claude Code | Codex | Cursor |
57
+ | --- | --- | --- | --- | --- |
58
+ | GitHub | Read for context | Install the GitHub CLI from cli.github.com and run `gh auth login`. | Install GitHub from `/plugins` and sign in when asked, or install the GitHub CLI and run `gh auth login`. | Install the GitHub CLI from cli.github.com and run `gh auth login`. |
59
+
60
+ Also works with: [GitLab](https://docs.gitlab.com/user/gitlab_duo/model_context_protocol/mcp_server/) (read for context), [Bitbucket](https://support.atlassian.com/atlassian-ai-gateway/docs/get-started-with-the-atlassian-remote-mcp-server/) (read for context). Add the vendor's connector in your host the same way.
61
+
62
+ Verified: [GitHub](https://cli.github.com/manual/gh_auth_login) on 2026-10-09, [GitLab](https://docs.gitlab.com/user/gitlab_duo/model_context_protocol/mcp_server/) on 2026-10-09, [Bitbucket](https://support.atlassian.com/atlassian-ai-gateway/docs/get-started-with-the-atlassian-remote-mcp-server/) on 2026-10-09.
@@ -1,7 +1,9 @@
1
- # GitHub and Linear connections
1
+ # Tracker sync reference
2
2
 
3
- These skills store and read no GitHub or Linear credentials. Remote steps run through a
4
- connection the host already has; the planning files stay the source of truth.
3
+ These skills store and read no tracker or source control credentials. Remote steps
4
+ run through a connection the host already has; the planning files stay the source of
5
+ truth. OpenPlanr syncs with the trackers marked "OpenPlanr syncs with it" in
6
+ [connectors](connectors.md), and reads other products for context only.
5
7
 
6
8
  ## Use the host's connection
7
9
 
@@ -14,16 +16,10 @@ command, URL or file.
14
16
 
15
17
  ## When a connection is missing
16
18
 
17
- Finish the local work first. Then report the remote step as not run and give the one
18
- line for the current host:
19
-
20
- | Host | Linear | GitHub |
21
- | --- | --- | --- |
22
- | Claude Code | Run `/plugin install linear@claude-plugins-official`, then sign in to Linear from `/mcp`. | Install the GitHub CLI (cli.github.com) and run `gh auth login`. |
23
- | Codex | Run `codex mcp add linear --url https://mcp.linear.app/mcp`, then `codex mcp login linear`. | Install the GitHub plugin from `/plugins`, or run `gh auth login`. |
24
- | Cursor | Add Linear from the Cursor Marketplace and sign in to Linear. | Install the GitHub CLI (cli.github.com) and run `gh auth login`. |
25
-
26
- Ask the user to try again once connected; never retry the remote step on your own.
19
+ Finish the local work first. Then report the remote step as not run, naming the
20
+ category, and give the one connect step for the current host from
21
+ [connectors](connectors.md). Ask the user to try again once connected; never retry the
22
+ remote step on your own.
27
23
 
28
24
  ## Status mapping
29
25