openplanr 3.5.0 → 3.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (217) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/dist/cli/commands/backlog-commands.d.ts +3 -0
  3. package/dist/cli/commands/backlog-commands.d.ts.map +1 -0
  4. package/dist/cli/commands/backlog-commands.js +60 -0
  5. package/dist/cli/commands/backlog-commands.js.map +1 -0
  6. package/dist/cli/commands/company.d.ts.map +1 -1
  7. package/dist/cli/commands/company.js +17 -0
  8. package/dist/cli/commands/company.js.map +1 -1
  9. package/dist/cli/commands/planning-artifacts.d.ts.map +1 -1
  10. package/dist/cli/commands/planning-artifacts.js +13 -5
  11. package/dist/cli/commands/planning-artifacts.js.map +1 -1
  12. package/dist/dashboard/.vite/manifest.json +1 -1
  13. package/dist/dashboard/assets/{index-B-l_941W.js → index-C_OquZVk.js} +2 -2
  14. package/dist/dashboard/assets/{index-B-l_941W.js.map → index-C_OquZVk.js.map} +1 -1
  15. package/dist/dashboard/dashboard-manifest.json +8 -8
  16. package/dist/dashboard/index.html +1 -1
  17. package/dist/services/artifact-service.d.ts.map +1 -1
  18. package/dist/services/artifact-service.js +13 -6
  19. package/dist/services/artifact-service.js.map +1 -1
  20. package/dist/services/company-export-service.d.ts +41 -0
  21. package/dist/services/company-export-service.d.ts.map +1 -0
  22. package/dist/services/company-export-service.js +429 -0
  23. package/dist/services/company-export-service.js.map +1 -0
  24. package/dist/services/company-sync-service.d.ts +24 -1
  25. package/dist/services/company-sync-service.d.ts.map +1 -1
  26. package/dist/services/company-sync-service.js +36 -19
  27. package/dist/services/company-sync-service.js.map +1 -1
  28. package/docs/CLI.md +97 -1
  29. package/lib/backlog-item.d.mts +45 -1
  30. package/lib/backlog-item.mjs +302 -34
  31. package/lib/host-packages/adapter-registry.json +4 -4
  32. package/lib/host-packages/capability-map.json +1 -1
  33. package/lib/host-packages/claude/.claude-plugin/marketplace.json +2 -2
  34. package/lib/host-packages/claude/openplanr/.claude-plugin/icon.png +0 -0
  35. package/lib/host-packages/claude/openplanr/.claude-plugin/plugin.json +1 -1
  36. package/lib/host-packages/claude/openplanr/.openplanr-content.json +77 -77
  37. package/lib/host-packages/claude/openplanr/README.md +1 -1
  38. package/lib/host-packages/claude/openplanr/skills/ceo-review/references/note-checklist.md +131 -0
  39. package/lib/host-packages/claude/openplanr/skills/ceo-review/references/operate-advisor-contract.md +2 -7
  40. package/lib/host-packages/claude/openplanr/skills/chair-review/SKILL.md +2 -7
  41. package/lib/host-packages/claude/openplanr/skills/chair-review/references/note-checklist.md +131 -0
  42. package/lib/host-packages/claude/openplanr/skills/challenger-review/SKILL.md +3 -7
  43. package/lib/host-packages/claude/openplanr/skills/challenger-review/references/note-checklist.md +131 -0
  44. package/lib/host-packages/claude/openplanr/skills/cmo-review/references/note-checklist.md +131 -0
  45. package/lib/host-packages/claude/openplanr/skills/cmo-review/references/operate-advisor-contract.md +2 -7
  46. package/lib/host-packages/claude/openplanr/skills/coo-review/references/note-checklist.md +131 -0
  47. package/lib/host-packages/claude/openplanr/skills/coo-review/references/operate-advisor-contract.md +2 -7
  48. package/lib/host-packages/claude/openplanr/skills/cpo-review/references/note-checklist.md +131 -0
  49. package/lib/host-packages/claude/openplanr/skills/cpo-review/references/operate-advisor-contract.md +2 -7
  50. package/lib/host-packages/claude/openplanr/skills/cto-review/references/note-checklist.md +131 -0
  51. package/lib/host-packages/claude/openplanr/skills/cto-review/references/operate-advisor-contract.md +2 -7
  52. package/lib/host-packages/claude/openplanr/skills/investigate/SKILL.md +2 -3
  53. package/lib/host-packages/claude/openplanr/skills/investigate/references/backlog-filing.md +102 -0
  54. package/lib/host-packages/claude/openplanr/skills/investigate/references/findings.md +8 -16
  55. package/lib/host-packages/claude/openplanr/skills/operate/SKILL.md +73 -84
  56. package/lib/host-packages/claude/openplanr/skills/operate/references/note-checklist.md +131 -0
  57. package/lib/host-packages/claude/openplanr/skills/operate/references/return-contract.md +10 -0
  58. package/lib/host-packages/claude/openplanr/skills/plan/SKILL.md +16 -17
  59. package/lib/host-packages/claude/openplanr/skills/plan/references/planning-ids.md +53 -0
  60. package/lib/host-packages/claude/openplanr/skills/plan/references/return-contract.md +10 -0
  61. package/lib/host-packages/claude/openplanr/skills/plan-review/SKILL.md +6 -6
  62. package/lib/host-packages/claude/openplanr/skills/plan-review/references/return-contract.md +10 -0
  63. package/lib/host-packages/claude/openplanr/skills/release/SKILL.md +40 -139
  64. package/lib/host-packages/claude/openplanr/skills/release/references/cadence.md +10 -0
  65. package/lib/host-packages/claude/openplanr/skills/release/references/release-notes.md +1 -1
  66. package/lib/host-packages/claude/openplanr/skills/release/references/return-contract.md +10 -0
  67. package/lib/host-packages/claude/openplanr/skills/release/references/schemes.md +4 -2
  68. package/lib/host-packages/claude/openplanr/skills/ship/SKILL.md +37 -24
  69. package/lib/host-packages/claude/openplanr/skills/ship/references/backlog-filing.md +102 -0
  70. package/lib/host-packages/claude/openplanr/skills/ship/references/findings.md +8 -16
  71. package/lib/host-packages/claude/openplanr/skills/ship/references/return-contract.md +10 -0
  72. package/lib/host-packages/claude/openplanr/skills/spec/SKILL.md +9 -9
  73. package/lib/host-packages/claude/openplanr/skills/spec/references/return-contract.md +10 -0
  74. package/lib/host-packages/cursor/openplanr/.openplanr-content.json +74 -74
  75. package/lib/host-packages/cursor/openplanr/manifest.json +1 -1
  76. package/lib/host-packages/cursor/openplanr/rules/planr-ceo-review/references/note-checklist.md +131 -0
  77. package/lib/host-packages/cursor/openplanr/rules/planr-ceo-review/references/operate-advisor-contract.md +2 -7
  78. package/lib/host-packages/cursor/openplanr/rules/planr-chair-review/references/note-checklist.md +131 -0
  79. package/lib/host-packages/cursor/openplanr/rules/planr-chair-review.mdc +2 -7
  80. package/lib/host-packages/cursor/openplanr/rules/planr-challenger-review/references/note-checklist.md +131 -0
  81. package/lib/host-packages/cursor/openplanr/rules/planr-challenger-review.mdc +3 -7
  82. package/lib/host-packages/cursor/openplanr/rules/planr-cmo-review/references/note-checklist.md +131 -0
  83. package/lib/host-packages/cursor/openplanr/rules/planr-cmo-review/references/operate-advisor-contract.md +2 -7
  84. package/lib/host-packages/cursor/openplanr/rules/planr-coo-review/references/note-checklist.md +131 -0
  85. package/lib/host-packages/cursor/openplanr/rules/planr-coo-review/references/operate-advisor-contract.md +2 -7
  86. package/lib/host-packages/cursor/openplanr/rules/planr-cpo-review/references/note-checklist.md +131 -0
  87. package/lib/host-packages/cursor/openplanr/rules/planr-cpo-review/references/operate-advisor-contract.md +2 -7
  88. package/lib/host-packages/cursor/openplanr/rules/planr-cto-review/references/note-checklist.md +131 -0
  89. package/lib/host-packages/cursor/openplanr/rules/planr-cto-review/references/operate-advisor-contract.md +2 -7
  90. package/lib/host-packages/cursor/openplanr/rules/planr-investigate/references/backlog-filing.md +102 -0
  91. package/lib/host-packages/cursor/openplanr/rules/planr-investigate/references/findings.md +8 -16
  92. package/lib/host-packages/cursor/openplanr/rules/planr-investigate.mdc +2 -3
  93. package/lib/host-packages/cursor/openplanr/rules/planr-operate/references/note-checklist.md +131 -0
  94. package/lib/host-packages/cursor/openplanr/rules/planr-operate/references/return-contract.md +10 -0
  95. package/lib/host-packages/cursor/openplanr/rules/planr-operate.mdc +73 -84
  96. package/lib/host-packages/cursor/openplanr/rules/planr-plan/references/planning-ids.md +53 -0
  97. package/lib/host-packages/cursor/openplanr/rules/planr-plan/references/return-contract.md +10 -0
  98. package/lib/host-packages/cursor/openplanr/rules/planr-plan-review/references/return-contract.md +10 -0
  99. package/lib/host-packages/cursor/openplanr/rules/planr-plan-review.mdc +6 -6
  100. package/lib/host-packages/cursor/openplanr/rules/planr-plan.mdc +16 -17
  101. package/lib/host-packages/cursor/openplanr/rules/planr-release/references/cadence.md +10 -0
  102. package/lib/host-packages/cursor/openplanr/rules/planr-release/references/release-notes.md +1 -1
  103. package/lib/host-packages/cursor/openplanr/rules/planr-release/references/return-contract.md +10 -0
  104. package/lib/host-packages/cursor/openplanr/rules/planr-release/references/schemes.md +4 -2
  105. package/lib/host-packages/cursor/openplanr/rules/planr-release.mdc +40 -139
  106. package/lib/host-packages/cursor/openplanr/rules/planr-ship/references/backlog-filing.md +102 -0
  107. package/lib/host-packages/cursor/openplanr/rules/planr-ship/references/findings.md +8 -16
  108. package/lib/host-packages/cursor/openplanr/rules/planr-ship/references/return-contract.md +10 -0
  109. package/lib/host-packages/cursor/openplanr/rules/planr-ship.mdc +37 -24
  110. package/lib/host-packages/cursor/openplanr/rules/planr-spec/references/return-contract.md +10 -0
  111. package/lib/host-packages/cursor/openplanr/rules/planr-spec.mdc +9 -9
  112. package/lib/host-packages/openai/.claude-plugin/marketplace.json +2 -2
  113. package/lib/host-packages/openai/openplanr/.codex-plugin/plugin.json +1 -1
  114. package/lib/host-packages/openai/openplanr/.openplanr-content.json +89 -89
  115. package/lib/host-packages/openai/openplanr/skills/ceo-review/openplanr.skill.json +4 -4
  116. package/lib/host-packages/openai/openplanr/skills/ceo-review/references/note-checklist.md +131 -0
  117. package/lib/host-packages/openai/openplanr/skills/ceo-review/references/operate-advisor-contract.md +2 -7
  118. package/lib/host-packages/openai/openplanr/skills/chair-review/SKILL.md +2 -7
  119. package/lib/host-packages/openai/openplanr/skills/chair-review/openplanr.skill.json +4 -4
  120. package/lib/host-packages/openai/openplanr/skills/chair-review/references/note-checklist.md +131 -0
  121. package/lib/host-packages/openai/openplanr/skills/challenger-review/SKILL.md +3 -7
  122. package/lib/host-packages/openai/openplanr/skills/challenger-review/openplanr.skill.json +4 -4
  123. package/lib/host-packages/openai/openplanr/skills/challenger-review/references/note-checklist.md +131 -0
  124. package/lib/host-packages/openai/openplanr/skills/cmo-review/openplanr.skill.json +4 -4
  125. package/lib/host-packages/openai/openplanr/skills/cmo-review/references/note-checklist.md +131 -0
  126. package/lib/host-packages/openai/openplanr/skills/cmo-review/references/operate-advisor-contract.md +2 -7
  127. package/lib/host-packages/openai/openplanr/skills/coo-review/openplanr.skill.json +4 -4
  128. package/lib/host-packages/openai/openplanr/skills/coo-review/references/note-checklist.md +131 -0
  129. package/lib/host-packages/openai/openplanr/skills/coo-review/references/operate-advisor-contract.md +2 -7
  130. package/lib/host-packages/openai/openplanr/skills/cpo-review/openplanr.skill.json +4 -4
  131. package/lib/host-packages/openai/openplanr/skills/cpo-review/references/note-checklist.md +131 -0
  132. package/lib/host-packages/openai/openplanr/skills/cpo-review/references/operate-advisor-contract.md +2 -7
  133. package/lib/host-packages/openai/openplanr/skills/cto-review/openplanr.skill.json +4 -4
  134. package/lib/host-packages/openai/openplanr/skills/cto-review/references/note-checklist.md +131 -0
  135. package/lib/host-packages/openai/openplanr/skills/cto-review/references/operate-advisor-contract.md +2 -7
  136. package/lib/host-packages/openai/openplanr/skills/investigate/SKILL.md +2 -3
  137. package/lib/host-packages/openai/openplanr/skills/investigate/openplanr.skill.json +4 -4
  138. package/lib/host-packages/openai/openplanr/skills/investigate/references/backlog-filing.md +102 -0
  139. package/lib/host-packages/openai/openplanr/skills/investigate/references/findings.md +8 -16
  140. package/lib/host-packages/openai/openplanr/skills/operate/SKILL.md +73 -84
  141. package/lib/host-packages/openai/openplanr/skills/operate/openplanr.skill.json +15 -4
  142. package/lib/host-packages/openai/openplanr/skills/operate/references/note-checklist.md +131 -0
  143. package/lib/host-packages/openai/openplanr/skills/operate/references/return-contract.md +10 -0
  144. package/lib/host-packages/openai/openplanr/skills/plan/SKILL.md +16 -17
  145. package/lib/host-packages/openai/openplanr/skills/plan/openplanr.skill.json +15 -4
  146. package/lib/host-packages/openai/openplanr/skills/plan/references/planning-ids.md +53 -0
  147. package/lib/host-packages/openai/openplanr/skills/plan/references/return-contract.md +10 -0
  148. package/lib/host-packages/openai/openplanr/skills/plan-review/SKILL.md +6 -6
  149. package/lib/host-packages/openai/openplanr/skills/plan-review/openplanr.skill.json +12 -1
  150. package/lib/host-packages/openai/openplanr/skills/plan-review/references/return-contract.md +10 -0
  151. package/lib/host-packages/openai/openplanr/skills/release/SKILL.md +40 -139
  152. package/lib/host-packages/openai/openplanr/skills/release/openplanr.skill.json +4 -4
  153. package/lib/host-packages/openai/openplanr/skills/release/references/cadence.md +10 -0
  154. package/lib/host-packages/openai/openplanr/skills/release/references/release-notes.md +1 -1
  155. package/lib/host-packages/openai/openplanr/skills/release/references/return-contract.md +10 -0
  156. package/lib/host-packages/openai/openplanr/skills/release/references/schemes.md +4 -2
  157. package/lib/host-packages/openai/openplanr/skills/ship/SKILL.md +37 -24
  158. package/lib/host-packages/openai/openplanr/skills/ship/openplanr.skill.json +9 -9
  159. package/lib/host-packages/openai/openplanr/skills/ship/references/backlog-filing.md +102 -0
  160. package/lib/host-packages/openai/openplanr/skills/ship/references/findings.md +8 -16
  161. package/lib/host-packages/openai/openplanr/skills/ship/references/return-contract.md +10 -0
  162. package/lib/host-packages/openai/openplanr/skills/spec/SKILL.md +9 -9
  163. package/lib/host-packages/openai/openplanr/skills/spec/openplanr.skill.json +12 -1
  164. package/lib/host-packages/openai/openplanr/skills/spec/references/return-contract.md +10 -0
  165. package/package.json +1 -1
  166. package/lib/host-packages/claude/openplanr/.claude-plugin/icon.svg +0 -11
  167. package/lib/host-packages/claude/openplanr/runtime/operate/scripts/errors.mjs +0 -8
  168. package/lib/host-packages/claude/openplanr/runtime/operate/scripts/operate-review-contract.mjs +0 -428
  169. package/lib/host-packages/claude/openplanr/runtime/operate/scripts/operate-review-note.mjs +0 -686
  170. package/lib/host-packages/claude/openplanr/runtime/operate/scripts/validate-note.mjs +0 -39
  171. package/lib/host-packages/claude/openplanr/skills/ceo-review/scripts/validate-note.mjs +0 -12
  172. package/lib/host-packages/claude/openplanr/skills/chair-review/scripts/validate-note.mjs +0 -12
  173. package/lib/host-packages/claude/openplanr/skills/challenger-review/scripts/validate-note.mjs +0 -12
  174. package/lib/host-packages/claude/openplanr/skills/cmo-review/scripts/validate-note.mjs +0 -12
  175. package/lib/host-packages/claude/openplanr/skills/coo-review/scripts/validate-note.mjs +0 -12
  176. package/lib/host-packages/claude/openplanr/skills/cpo-review/scripts/validate-note.mjs +0 -12
  177. package/lib/host-packages/claude/openplanr/skills/cto-review/scripts/validate-note.mjs +0 -12
  178. package/lib/host-packages/claude/openplanr/skills/investigate/scripts/backlog-item.mjs +0 -339
  179. package/lib/host-packages/claude/openplanr/skills/operate/scripts/validate-note.mjs +0 -12
  180. package/lib/host-packages/claude/openplanr/skills/plan/scripts/planning-ids.mjs +0 -166
  181. package/lib/host-packages/claude/openplanr/skills/release/scripts/collect_changes.sh +0 -85
  182. package/lib/host-packages/claude/openplanr/skills/ship/scripts/backlog-item.mjs +0 -339
  183. package/lib/host-packages/claude/openplanr/skills/ship/scripts/discover-verification.mjs +0 -108
  184. package/lib/host-packages/cursor/openplanr/rules/planr-ceo-review/scripts/validate-note.mjs +0 -12
  185. package/lib/host-packages/cursor/openplanr/rules/planr-chair-review/scripts/validate-note.mjs +0 -12
  186. package/lib/host-packages/cursor/openplanr/rules/planr-challenger-review/scripts/validate-note.mjs +0 -12
  187. package/lib/host-packages/cursor/openplanr/rules/planr-cmo-review/scripts/validate-note.mjs +0 -12
  188. package/lib/host-packages/cursor/openplanr/rules/planr-coo-review/scripts/validate-note.mjs +0 -12
  189. package/lib/host-packages/cursor/openplanr/rules/planr-cpo-review/scripts/validate-note.mjs +0 -12
  190. package/lib/host-packages/cursor/openplanr/rules/planr-cto-review/scripts/validate-note.mjs +0 -12
  191. package/lib/host-packages/cursor/openplanr/rules/planr-investigate/scripts/backlog-item.mjs +0 -339
  192. package/lib/host-packages/cursor/openplanr/rules/planr-operate/scripts/validate-note.mjs +0 -12
  193. package/lib/host-packages/cursor/openplanr/rules/planr-plan/scripts/planning-ids.mjs +0 -166
  194. package/lib/host-packages/cursor/openplanr/rules/planr-release/scripts/collect_changes.sh +0 -85
  195. package/lib/host-packages/cursor/openplanr/rules/planr-ship/scripts/backlog-item.mjs +0 -339
  196. package/lib/host-packages/cursor/openplanr/rules/planr-ship/scripts/discover-verification.mjs +0 -108
  197. package/lib/host-packages/cursor/openplanr/runtime/operate/scripts/errors.mjs +0 -8
  198. package/lib/host-packages/cursor/openplanr/runtime/operate/scripts/operate-review-contract.mjs +0 -428
  199. package/lib/host-packages/cursor/openplanr/runtime/operate/scripts/operate-review-note.mjs +0 -686
  200. package/lib/host-packages/cursor/openplanr/runtime/operate/scripts/validate-note.mjs +0 -39
  201. package/lib/host-packages/openai/openplanr/runtime/operate/scripts/errors.mjs +0 -8
  202. package/lib/host-packages/openai/openplanr/runtime/operate/scripts/operate-review-contract.mjs +0 -428
  203. package/lib/host-packages/openai/openplanr/runtime/operate/scripts/operate-review-note.mjs +0 -686
  204. package/lib/host-packages/openai/openplanr/runtime/operate/scripts/validate-note.mjs +0 -39
  205. package/lib/host-packages/openai/openplanr/skills/ceo-review/scripts/validate-note.mjs +0 -12
  206. package/lib/host-packages/openai/openplanr/skills/chair-review/scripts/validate-note.mjs +0 -12
  207. package/lib/host-packages/openai/openplanr/skills/challenger-review/scripts/validate-note.mjs +0 -12
  208. package/lib/host-packages/openai/openplanr/skills/cmo-review/scripts/validate-note.mjs +0 -12
  209. package/lib/host-packages/openai/openplanr/skills/coo-review/scripts/validate-note.mjs +0 -12
  210. package/lib/host-packages/openai/openplanr/skills/cpo-review/scripts/validate-note.mjs +0 -12
  211. package/lib/host-packages/openai/openplanr/skills/cto-review/scripts/validate-note.mjs +0 -12
  212. package/lib/host-packages/openai/openplanr/skills/investigate/scripts/backlog-item.mjs +0 -339
  213. package/lib/host-packages/openai/openplanr/skills/operate/scripts/validate-note.mjs +0 -12
  214. package/lib/host-packages/openai/openplanr/skills/plan/scripts/planning-ids.mjs +0 -166
  215. package/lib/host-packages/openai/openplanr/skills/release/scripts/collect_changes.sh +0 -85
  216. package/lib/host-packages/openai/openplanr/skills/ship/scripts/backlog-item.mjs +0 -339
  217. package/lib/host-packages/openai/openplanr/skills/ship/scripts/discover-verification.mjs +0 -108
@@ -17,10 +17,11 @@ plain Ship never launches its helper. Keep the work local; do not publish or dep
17
17
 
18
18
  For a selector, locate exactly one task and read it completely. Then follow its
19
19
  `storyId` and `specId` to the parent story, acceptance criteria, Gherkin file
20
- when present, and specification. Also read repository instructions, ADRs,
21
- planning rules, applicable stack guidance, relevant design/database context,
22
- implementation code, tests, and interfaces produced by declared dependencies. Read any
23
- `.planr/conventions/<area>.md`, indexed from AGENTS.md, for the areas this task touches.
20
+ when present, and specification. Read the files the task names, plus `AGENTS.md` and
21
+ `CLAUDE.md` when tracked, in one batch, and any `.planr/conventions/<area>.md` indexed
22
+ from AGENTS.md for the areas this task touches. Expand only for a missing contract, a
23
+ dependency's interface or a contradiction, and stop when each claim has evidence or a
24
+ named gap.
24
25
 
25
26
  Read [the design lineage contract](references/design-lineage.md). If the selected
26
27
  planning root contains `design-lineage.json`, load only the selected task's mapped
@@ -78,29 +79,43 @@ its `changed` list with `git diff --name-only` plus untracked files; report any
78
79
 
79
80
  ## Discover and run verification
80
81
 
81
- Discover checks in this order:
82
+ Inspect these sources directly, in this order:
82
83
 
83
84
  1. task Test Requirements;
84
85
  2. repository instructions;
85
86
  3. package and task-runner scripts;
86
- 4. applicable CI and pre-commit configuration.
87
-
88
- Run `openplanr ship checks --json --task <task-path>` (omit `--task` for a direct
89
- request; add `--tier story` or `--tier push` before pushing) and run its `checks`
90
- from each `cwd`. The command never executes checks or writes files. When
87
+ 4. applicable CI configuration, the pre-commit hook (for example lint-staged) and the
88
+ pre-push hook, when present, whatever the change touches.
89
+
90
+ List each candidate check with its `cwd` and the source that named it. Discovery
91
+ only reads sources: never build, install or execute a check while discovering;
92
+ running checks is a later step. Then run the candidates from each `cwd`. Let the change pick checks: when it touches a build input (a
93
+ `tsconfig*.json`, a bundler config, or a package's `main`, `exports`, `bin` or
94
+ `build` scripts), include the build CI runs; prefer tests related to the changed
95
+ files. Before pushing, include every CI job whose triggers and path filters fire
96
+ for the changed paths, and for a published package that gains non-code files, a
97
+ dry-run pack that confirms they are packed. When a workflow selects jobs at
98
+ runtime (a `changes` or paths-filter job whose outputs gate other jobs), list every job it
99
+ gates and mark each conditional. Run a conditional job when a local equivalent command
100
+ exists; otherwise report it as "conditional, not run". Never drop one silently or by
101
+ reading the paths yourself. Read every workflow file whose triggers fire for the
102
+ change, not only the main one: dedicated browser, end-to-end and sandbox workflows are sources too. List a git hook as
103
+ its own command and, when it delegates to a script, also each check that script runs.
104
+ Discovery lists what the sources define whatever the size or kind of the change, a
105
+ documentation-only change included; the change picks only which listed checks you run.
106
+ Missing commands are diagnostics, not a reason to invent or
107
+ skip all verification.
108
+
109
+ If `openplanr` is already on `PATH`, `openplanr ship checks --json --task <task-path>`
110
+ (omit `--task` for a direct request; add `--tier story` or `--tier push` before
111
+ pushing) adds `complete` and diagnostics. The command never executes checks or writes files. When
91
112
  `complete` is `false`, report its error diagnostics and treat the check set as
92
113
  incomplete: a pass is not CI-equivalent. Act on warning diagnostics too; each names
93
114
  the files or checks it affects. A diagnostic that a check could not run, such as
94
115
  `TYPESCRIPT_UNAVAILABLE`, is not a pass: name that check in `checks` and verify its
95
116
  concern yourself where you can (for a new test file, confirm some tsconfig includes
96
117
  it). For a `package-contents` check, account for every `expectFiles` entry in the
97
- tarball's `files`: packed or deliberately left out. Without
98
- the CLI, the packaged read-only [verification discovery helper](scripts/discover-verification.mjs)
99
- may list candidates. Resolve it relative to this `SKILL.md` and run
100
- `node <helper> --project <repository-root> --task <task-path>`; omit `--task` for a
101
- direct request. It never executes checks or writes files. If both are unavailable,
102
- inspect those four sources directly. Missing commands are diagnostics, not a
103
- reason to invent or skip all verification.
118
+ tarball's `files`: packed or deliberately left out.
104
119
 
105
120
  Run the strongest applicable focused checks while working, then the relevant
106
121
  regression checks. Run each check on its own or under `set -o pipefail`, and judge
@@ -111,9 +126,9 @@ For an acceptance check written or changed for this task, follow
111
126
  Read [the result contract](references/result-contract.md) before reporting.
112
127
 
113
128
  Report defects you notice outside the task as [findings](references/findings.md),
114
- and never fix them in this change unless they block it. The packaged
115
- [backlog helper](scripts/backlog-item.mjs) lists and files backlog items when no
116
- CLI is installed; resolve it relative to this `SKILL.md`.
129
+ and never fix them in this change unless they block it.
130
+ [Backlog filing](references/backlog-filing.md) lists and files backlog items with
131
+ your own file tools.
117
132
 
118
133
  Do not write progress into an approved design package. The studio derives
119
134
  approved, planned, implementing, and verified state from canonical planning and
@@ -135,10 +150,8 @@ results instead of reproducing them in chat.
135
150
  - **Issues:** blockers with problem, impact, and next action, or `none`; then
136
151
  findings outside the task, each with its disposition.
137
152
 
138
- Keep the five machine fields unchanged. A human summary may omit empty or unavailable fields,
139
- but must make partial, blocked or unverified work clear and give the smallest
140
- recovery action. Preserve native transcripts; never require another execution
141
- or correction just to change summary wording.
153
+ Keep the five machine fields unchanged. Follow [the shared return rules](references/return-contract.md);
154
+ the summary must make partial, blocked or unverified work clear.
142
155
 
143
156
  Suggest `planr-land` only when a landing step remains in the requested workflow.
144
157
  Do not add a next action when the requested scope is fulfilled. This guidance
@@ -0,0 +1,102 @@
1
+ # Backlog filing
2
+
3
+ List and file backlog items with your own file tools. If `openplanr` is already on
4
+ `PATH`, you may instead send each item as one JSON object on stdin to
5
+ `openplanr --project-dir <repository-root> backlog add --data - --json`.
6
+
7
+ ## Where items live
8
+
9
+ 1. Read `.planr/config.json` at the repository root. If it is missing or is not
10
+ valid JSON, stop and report that the project has no OpenPlanr configuration.
11
+ 2. The backlog folder is `<outputPaths.agile>/backlog`, with `outputPaths.agile`
12
+ defaulting to `.planr`. The ID prefix is `idPrefix.backlog`, default `BL`.
13
+ 3. Issued IDs are empty marker files in `<backlog folder>/.issued-ids/`.
14
+
15
+ ## List open items
16
+
17
+ List the files named `<PREFIX>-NNN-<slug>.md` in the backlog folder and read each
18
+ frontmatter's `id`, `title` and `status`. An item is open unless its `status` is
19
+ `closed` or `done`; a missing `status` counts as open.
20
+
21
+ ## Take an ID
22
+
23
+ Do this immediately before writing each item, never earlier in the run:
24
+
25
+ 1. List the backlog folder and `.issued-ids/` again; create `.issued-ids/` if it is
26
+ missing.
27
+ 2. Find the highest `<PREFIX>-NNN` number among the file names in both. The new
28
+ number is that plus 1, or 1 when there is none, padded to at least 3 digits
29
+ (`BL-007`, `BL-1000`).
30
+ 3. Claim it by creating the empty file `.issued-ids/<ID>`. In a POSIX shell use a
31
+ no-clobber create, `(set -C; : > '<backlog folder>/.issued-ids/<ID>')`, or
32
+ elsewhere any create that fails when the file already exists, and treat a
33
+ failure as the ID being taken.
34
+ 4. If the marker already existed or any `<ID>-*.md` file exists, take the next
35
+ number and repeat step 3.
36
+
37
+ Never overwrite or edit an existing backlog file or marker. A marker outlives its
38
+ item, so the ID of a deleted item is never issued again.
39
+
40
+ ## Write the item
41
+
42
+ Name the file `<ID>-<slug>.md` in the backlog folder. The slug is the title in
43
+ lowercase with every character other than ASCII letters, digits, `_`, `-` and
44
+ whitespace removed, runs of whitespace, `_` and `-` turned into one `-`, and
45
+ leading or trailing `-` removed. When it is longer than 80 characters, cut it at 80, then back to the last
46
+ `-`.
47
+
48
+ The frontmatter needs every field below. Scalar values are double-quoted JSON strings;
49
+ arrays use the flow form shown in the example:
50
+
51
+ - `id`: the claimed ID.
52
+ - `title`: one line.
53
+ - `priority`: `critical`, `high`, `medium` or `low`.
54
+ - `tags`: a list of quoted strings, `[]` when there are none.
55
+ - `status`: `"open"`.
56
+ - `created` and `updated`: today's date as `YYYY-MM-DD`.
57
+ - `when`: `next-unit:<ref>`, `sprint:<SPRINT-NNN or next>`, `trigger:<event>`, or
58
+ `declined:<reason>`. Use a PR number, task ID, backlog ID, or branch for `<ref>`.
59
+ Never store `now`; it is a triage outcome. Trigger forms include
60
+ `date:YYYY-MM-DD`, `closed:<BL-NNN>`, `merged:#<PR>`, `merged:<branch>`, and
61
+ `release:<pkg>@<semver>`; other non-empty event text is allowed.
62
+ - `files`: a list of quoted repo-relative paths, such as `["src/routes/import.ts"]`.
63
+ Omit line numbers, absolute paths and `..` segments. Use distinct paths from
64
+ the evidence, or `[]` when there are none.
65
+
66
+ Older items may omit `when` and `files`. When listing them, derive files from
67
+ body evidence such as `src/routes/import.ts:41` only if `files` is absent.
68
+
69
+ The body is `# <ID>: <title>`, then `## Tags` with one `- <tag>` line per tag
70
+ (omitted when there are none), then the description. A description that starts
71
+ with its own `##` sections stands as written; otherwise it goes under
72
+ `## Description`. End with a `---` line and the close line.
73
+
74
+ ```markdown
75
+ ---
76
+ id: "BL-007"
77
+ title: "Import endpoint has no rate limit"
78
+ priority: "medium"
79
+ tags: ["security", "api"]
80
+ status: "open"
81
+ created: "2026-11-08"
82
+ updated: "2026-11-08"
83
+ when: "next-unit:#612"
84
+ files: ["src/routes/import.ts"]
85
+ ---
86
+
87
+ # BL-007: Import endpoint has no rate limit
88
+
89
+ ## Tags
90
+
91
+ - security
92
+ - api
93
+
94
+ ## Problem
95
+
96
+ `/import` accepts unlimited requests (`src/routes/import.ts:41`).
97
+
98
+ ---
99
+ _Close when done: `openplanr backlog update BL-007 --status closed`_
100
+ ```
101
+
102
+ Report the ID and the repo-relative path of each filed item.
@@ -31,9 +31,8 @@ Merge duplicates within the run. Sort by severity, highest first, and number fro
31
31
 
32
32
  ## Check what is already tracked
33
33
 
34
- Before showing findings, list open backlog items with the backlog helper
35
- linked from SKILL.md, resolved relative to that file: `node <helper> list
36
- --project <repository-root> --open`. A finding about the same problem as an open item,
34
+ Before showing findings, list open backlog items as
35
+ [backlog filing](backlog-filing.md) describes. A finding about the same problem as an open item,
37
36
  normally the same evidence file and an equivalent title, is `tracked`. Never file
38
37
  it again and never edit the existing item.
39
38
 
@@ -52,26 +51,19 @@ rule that applies. File only what it allows.
52
51
  example a print or exec mode), another skill or a delegate runner started this
53
52
  run, or the user said not to ask. Read `findings.unattended` in
54
53
  `.planr/config.json`. Only `file` files every untracked finding. With
55
- `report`, or no setting, do not run `add` at all: mark the findings `reported`.
54
+ `report`, or no setting, do not file at all: mark the findings `reported`.
56
55
 
57
56
  Never ask per finding, never ask mid-run, and never file or drop a finding
58
57
  silently.
59
58
 
60
59
  ## File
61
60
 
62
- Send each item as one JSON object (`title`, `priority`, `tags`, `description`)
63
- on stdin. Never pass `acceptanceCriteria`.
61
+ File each item from its `title`, `priority`, `tags` and `description` as
62
+ [backlog filing](backlog-filing.md) describes. Never add acceptance criteria.
63
+ When the `openplanr` command files it and the result says
64
+ `templateOverrideIgnored`, say the default format was used.
64
65
 
65
- - When an `openplanr` CLI resolves (the project's `node_modules/.bin`, then
66
- `PATH`; never `npx`): `openplanr --project-dir <repository-root> backlog add
67
- --data - --json`.
68
- - Otherwise: `node <helper> add --project <repository-root> --data -`. Its
69
- result can carry `cliHint`; end the result with that line, word for word,
70
- once. Install only if the user says yes then, by running exactly the command in
71
- the line. If the result says `templateOverrideIgnored`, say the default format
72
- was used.
73
-
74
- If filing fails, report the command and its error, and leave the finding
66
+ If filing fails, report the step and its error, and leave the finding
75
67
  `reported`.
76
68
 
77
69
  ## Report
@@ -0,0 +1,10 @@
1
+ # Return rules
2
+
3
+ Shared by Spec, Plan, Plan Review, Ship, Operate and Release. Each skill lists its own fields.
4
+
5
+ - Lead with the outcome: what is ready, prepared or released, then what is partial or blocked.
6
+ - Link durable artifacts by purpose. Keep inventories, command output and transcripts in their files.
7
+ - Report only checks you ran, with their result. Name each check you could not run and what stays unverified.
8
+ - Omit empty fields. Give each open issue its impact and the smallest recovery action.
9
+ - The summary is a human view, not a schema. Different wording never calls for a rerun or a correction pass.
10
+ - Keep any machine-readable field a skill defines unchanged.
@@ -12,10 +12,10 @@ another model process.
12
12
 
13
13
  ## Ground the specification
14
14
 
15
- Read the request, repository instructions, ADRs, product documentation,
16
- existing planning artifacts, relevant implementation code and tests, stack
17
- configuration, design inputs, database context, and current behavior. Infer
18
- facts the repository already answers.
15
+ Read the files the request names, plus `AGENTS.md` and `CLAUDE.md` when tracked,
16
+ in one batch. Expand only for a missing contract, a dependency or a contradiction,
17
+ and stop when each claim has evidence or a named gap. Infer facts the repository
18
+ already answers.
19
19
 
20
20
  When a missing decision materially changes scope or observable behavior, use
21
21
  the host's structured question interface. Ask no more than three short,
@@ -45,9 +45,10 @@ out-of-scope boundaries. Record concrete repository paths and verification
45
45
  signals when they are known. Keep unresolved questions out of the saved
46
46
  contract when a repository-backed default exists.
47
47
 
48
- Validate the completed artifact before returning. If a helper is unavailable,
49
- perform the same deterministic checks directly; never fall back to a
50
- model-backed CLI.
48
+ Validate the completed artifact before returning: run `openplanr spec validate <SPEC-ID>`
49
+ when `command -v openplanr` succeeds, otherwise check the path, frontmatter,
50
+ headings and acceptance IDs against the specification contract directly. Never
51
+ fall back to a model-backed CLI.
51
52
 
52
53
  ## Return
53
54
 
@@ -62,5 +63,4 @@ If the specification is partial or blocked, name the missing decision and its im
62
63
  none remains.
63
64
  - **Next:** a copy-ready host-native `planr-plan` invocation for the saved spec.
64
65
 
65
- The summary is a human view of the specification, not another schema or a reason
66
- to rerun a completed operation for different wording.
66
+ Follow [the shared return rules](references/return-contract.md).
@@ -0,0 +1,10 @@
1
+ # Return rules
2
+
3
+ Shared by Spec, Plan, Plan Review, Ship, Operate and Release. Each skill lists its own fields.
4
+
5
+ - Lead with the outcome: what is ready, prepared or released, then what is partial or blocked.
6
+ - Link durable artifacts by purpose. Keep inventories, command output and transcripts in their files.
7
+ - Report only checks you ran, with their result. Name each check you could not run and what stays unverified.
8
+ - Omit empty fields. Give each open issue its impact and the smallest recovery action.
9
+ - The summary is a human view, not a schema. Different wording never calls for a rerun or a correction pass.
10
+ - Keep any machine-readable field a skill defines unchanged.
@@ -16,7 +16,7 @@
16
16
  },
17
17
  {
18
18
  "path": "manifest.json",
19
- "digest": "sha256:1cb18987f5ec32b98ce9422b05c7d3dcf6b2d7ef71f442c8ae0d585c926177f5"
19
+ "digest": "sha256:496051c9baab909a3588763b9124013e9e16b1a3dd1e71ef700a8176a56f1fe2"
20
20
  },
21
21
  {
22
22
  "path": "rules/planr-artifact.mdc",
@@ -43,40 +43,40 @@
43
43
  "digest": "sha256:011360ce26520c660a9c09f15757e35bbc5d151c16ed422873fce4803c7c0a20"
44
44
  },
45
45
  {
46
- "path": "rules/planr-ceo-review/references/operate-advisor-contract.md",
47
- "digest": "sha256:3153403563d422f395add6a2afd6d249737b8807e4ab31db5b830d82d7814fc5"
46
+ "path": "rules/planr-ceo-review/references/note-checklist.md",
47
+ "digest": "sha256:dfdf3cb1fea507a58b9a273561bb66b57f657ba6d9b4f6093170093c70bf9a11"
48
48
  },
49
49
  {
50
- "path": "rules/planr-ceo-review/scripts/validate-note.mjs",
51
- "digest": "sha256:9c3c94842059fb884c9a1b22413395f7a0169f788cded3c04bd3b251acd564ae"
50
+ "path": "rules/planr-ceo-review/references/operate-advisor-contract.md",
51
+ "digest": "sha256:7d33addcfea3e8de7f8fb35862fc1ee70d5b4c1557bb2e35051c48032a4f29cf"
52
52
  },
53
53
  {
54
54
  "path": "rules/planr-chair-review.mdc",
55
- "digest": "sha256:520b773b2186b805222ddb05df380eeba875b42e27c68b559096cc84f2951022"
55
+ "digest": "sha256:33ab47dabc8b882cacc05eb231e100249f163fad5abf1844712fb410e68775e4"
56
56
  },
57
57
  {
58
- "path": "rules/planr-chair-review/scripts/validate-note.mjs",
59
- "digest": "sha256:9c3c94842059fb884c9a1b22413395f7a0169f788cded3c04bd3b251acd564ae"
58
+ "path": "rules/planr-chair-review/references/note-checklist.md",
59
+ "digest": "sha256:dfdf3cb1fea507a58b9a273561bb66b57f657ba6d9b4f6093170093c70bf9a11"
60
60
  },
61
61
  {
62
62
  "path": "rules/planr-challenger-review.mdc",
63
- "digest": "sha256:3de0431436c1530451210ab59e613c88eefc8ce4cb72cb9b6052b55fcb18ef3c"
63
+ "digest": "sha256:bd2296835a92c4f7c363faeee2b9ad05907704d5245be8e4c1201c5495622954"
64
64
  },
65
65
  {
66
- "path": "rules/planr-challenger-review/scripts/validate-note.mjs",
67
- "digest": "sha256:9c3c94842059fb884c9a1b22413395f7a0169f788cded3c04bd3b251acd564ae"
66
+ "path": "rules/planr-challenger-review/references/note-checklist.md",
67
+ "digest": "sha256:dfdf3cb1fea507a58b9a273561bb66b57f657ba6d9b4f6093170093c70bf9a11"
68
68
  },
69
69
  {
70
70
  "path": "rules/planr-cmo-review.mdc",
71
71
  "digest": "sha256:b1974299345d6f9085d355e28f33a6a5f0ffc8a5db46acd9a2221ba1dbef89e4"
72
72
  },
73
73
  {
74
- "path": "rules/planr-cmo-review/references/operate-advisor-contract.md",
75
- "digest": "sha256:3153403563d422f395add6a2afd6d249737b8807e4ab31db5b830d82d7814fc5"
74
+ "path": "rules/planr-cmo-review/references/note-checklist.md",
75
+ "digest": "sha256:dfdf3cb1fea507a58b9a273561bb66b57f657ba6d9b4f6093170093c70bf9a11"
76
76
  },
77
77
  {
78
- "path": "rules/planr-cmo-review/scripts/validate-note.mjs",
79
- "digest": "sha256:9c3c94842059fb884c9a1b22413395f7a0169f788cded3c04bd3b251acd564ae"
78
+ "path": "rules/planr-cmo-review/references/operate-advisor-contract.md",
79
+ "digest": "sha256:7d33addcfea3e8de7f8fb35862fc1ee70d5b4c1557bb2e35051c48032a4f29cf"
80
80
  },
81
81
  {
82
82
  "path": "rules/planr-connect.mdc",
@@ -91,36 +91,36 @@
91
91
  "digest": "sha256:5d1577760ee23f25a89e6e156afe4b6948220bb63243eae40556fe07083e0658"
92
92
  },
93
93
  {
94
- "path": "rules/planr-coo-review/references/operate-advisor-contract.md",
95
- "digest": "sha256:3153403563d422f395add6a2afd6d249737b8807e4ab31db5b830d82d7814fc5"
94
+ "path": "rules/planr-coo-review/references/note-checklist.md",
95
+ "digest": "sha256:dfdf3cb1fea507a58b9a273561bb66b57f657ba6d9b4f6093170093c70bf9a11"
96
96
  },
97
97
  {
98
- "path": "rules/planr-coo-review/scripts/validate-note.mjs",
99
- "digest": "sha256:9c3c94842059fb884c9a1b22413395f7a0169f788cded3c04bd3b251acd564ae"
98
+ "path": "rules/planr-coo-review/references/operate-advisor-contract.md",
99
+ "digest": "sha256:7d33addcfea3e8de7f8fb35862fc1ee70d5b4c1557bb2e35051c48032a4f29cf"
100
100
  },
101
101
  {
102
102
  "path": "rules/planr-cpo-review.mdc",
103
103
  "digest": "sha256:cfb29ed52a0694787223d60d9eecb795f7ae2c50ed25d684d5892429e2af6bc0"
104
104
  },
105
105
  {
106
- "path": "rules/planr-cpo-review/references/operate-advisor-contract.md",
107
- "digest": "sha256:3153403563d422f395add6a2afd6d249737b8807e4ab31db5b830d82d7814fc5"
106
+ "path": "rules/planr-cpo-review/references/note-checklist.md",
107
+ "digest": "sha256:dfdf3cb1fea507a58b9a273561bb66b57f657ba6d9b4f6093170093c70bf9a11"
108
108
  },
109
109
  {
110
- "path": "rules/planr-cpo-review/scripts/validate-note.mjs",
111
- "digest": "sha256:9c3c94842059fb884c9a1b22413395f7a0169f788cded3c04bd3b251acd564ae"
110
+ "path": "rules/planr-cpo-review/references/operate-advisor-contract.md",
111
+ "digest": "sha256:7d33addcfea3e8de7f8fb35862fc1ee70d5b4c1557bb2e35051c48032a4f29cf"
112
112
  },
113
113
  {
114
114
  "path": "rules/planr-cto-review.mdc",
115
115
  "digest": "sha256:df51be3b9b6aa5473191232453c844d7cc732399b93ae4f4d23717d8fbe21e07"
116
116
  },
117
117
  {
118
- "path": "rules/planr-cto-review/references/operate-advisor-contract.md",
119
- "digest": "sha256:3153403563d422f395add6a2afd6d249737b8807e4ab31db5b830d82d7814fc5"
118
+ "path": "rules/planr-cto-review/references/note-checklist.md",
119
+ "digest": "sha256:dfdf3cb1fea507a58b9a273561bb66b57f657ba6d9b4f6093170093c70bf9a11"
120
120
  },
121
121
  {
122
- "path": "rules/planr-cto-review/scripts/validate-note.mjs",
123
- "digest": "sha256:9c3c94842059fb884c9a1b22413395f7a0169f788cded3c04bd3b251acd564ae"
122
+ "path": "rules/planr-cto-review/references/operate-advisor-contract.md",
123
+ "digest": "sha256:7d33addcfea3e8de7f8fb35862fc1ee70d5b4c1557bb2e35051c48032a4f29cf"
124
124
  },
125
125
  {
126
126
  "path": "rules/planr-dashboard.mdc",
@@ -440,7 +440,11 @@
440
440
  },
441
441
  {
442
442
  "path": "rules/planr-investigate.mdc",
443
- "digest": "sha256:b370a09426c36838263d861e424d760cac1784dfeede8d03f71f6ca70c5555b4"
443
+ "digest": "sha256:3eb3d89cb798cbf3da7fc26ac8348fce2e4dffe7a628ba2f83bb04fd2ee778c2"
444
+ },
445
+ {
446
+ "path": "rules/planr-investigate/references/backlog-filing.md",
447
+ "digest": "sha256:4e86fca9f2ad70ab1dfc7f0984009a1fb64e9459666093552c8405aa0d3084be"
444
448
  },
445
449
  {
446
450
  "path": "rules/planr-investigate/references/fail-first.md",
@@ -448,11 +452,7 @@
448
452
  },
449
453
  {
450
454
  "path": "rules/planr-investigate/references/findings.md",
451
- "digest": "sha256:2bee6285c88650a81ae049541eb9a09549c0935210b5ca3eae0b1c99fd52f45f"
452
- },
453
- {
454
- "path": "rules/planr-investigate/scripts/backlog-item.mjs",
455
- "digest": "sha256:4d3ae483819acaa34ef79b1ee3b21f75ceb78bf290366d7a9e095021340a3b68"
455
+ "digest": "sha256:a097b21620a272487758817a52b85bb7cd08d58133d9a704f44cb67870c63c09"
456
456
  },
457
457
  {
458
458
  "path": "rules/planr-land.mdc",
@@ -464,19 +464,27 @@
464
464
  },
465
465
  {
466
466
  "path": "rules/planr-operate.mdc",
467
- "digest": "sha256:f20cabd0fb42523f1bea8bb9ba21d5982994f345e9a5baf5f033229cc2cbca03"
467
+ "digest": "sha256:14ee6a15ce794dd38b73e79e7684e01d8d3eef97a58c4a52e4cbce7a06113d2a"
468
468
  },
469
469
  {
470
- "path": "rules/planr-operate/scripts/validate-note.mjs",
471
- "digest": "sha256:9c3c94842059fb884c9a1b22413395f7a0169f788cded3c04bd3b251acd564ae"
470
+ "path": "rules/planr-operate/references/note-checklist.md",
471
+ "digest": "sha256:dfdf3cb1fea507a58b9a273561bb66b57f657ba6d9b4f6093170093c70bf9a11"
472
+ },
473
+ {
474
+ "path": "rules/planr-operate/references/return-contract.md",
475
+ "digest": "sha256:65081a1dd594dbe5136e2892a64110270e85a6b246a0ee74d43edc1f55d69bde"
472
476
  },
473
477
  {
474
478
  "path": "rules/planr-plan-review.mdc",
475
- "digest": "sha256:b32db8824bdf194b2cc8b432d2839bcb4d0960f8ab315f6158290138a2c054fc"
479
+ "digest": "sha256:025bf0dff74f7790e91c191467fe2082123c131c80628d8cb2d47bea93a0cfcb"
480
+ },
481
+ {
482
+ "path": "rules/planr-plan-review/references/return-contract.md",
483
+ "digest": "sha256:65081a1dd594dbe5136e2892a64110270e85a6b246a0ee74d43edc1f55d69bde"
476
484
  },
477
485
  {
478
486
  "path": "rules/planr-plan.mdc",
479
- "digest": "sha256:5c44552efde4911cf3ecc9ae19150ac1f255d5df3b40475bed912c4f1f65b908"
487
+ "digest": "sha256:ae6cba90f406828b7b1ac2fa96ec38a768b85732042d859ecdbad36e2377793a"
480
488
  },
481
489
  {
482
490
  "path": "rules/planr-plan/references/artifact-contract.md",
@@ -486,6 +494,14 @@
486
494
  "path": "rules/planr-plan/references/design-handoff.md",
487
495
  "digest": "sha256:b918cc16855412a75028e1a014832c2ced59b0349461a24d9e1fdcfc336b9f5f"
488
496
  },
497
+ {
498
+ "path": "rules/planr-plan/references/planning-ids.md",
499
+ "digest": "sha256:5028070be05aefca33e4f835f7dfc096e55e46e976fd1745a2e9adfaa2759527"
500
+ },
501
+ {
502
+ "path": "rules/planr-plan/references/return-contract.md",
503
+ "digest": "sha256:65081a1dd594dbe5136e2892a64110270e85a6b246a0ee74d43edc1f55d69bde"
504
+ },
489
505
  {
490
506
  "path": "rules/planr-plan/schemas/design-document.schema.json",
491
507
  "digest": "sha256:33d74abce73ec6631ee1a4f5037bb49571f81cedaebac5bf37d77d91a170b507"
@@ -498,13 +514,9 @@
498
514
  "path": "rules/planr-plan/schemas/design-review-handoff.schema.json",
499
515
  "digest": "sha256:402b25238f93f8269b98697bf77fa11dda1fd284f44e41d73cdb813f5244a4e0"
500
516
  },
501
- {
502
- "path": "rules/planr-plan/scripts/planning-ids.mjs",
503
- "digest": "sha256:d7051fab0540e3beb176015f174e0851a3ceb8a24c43344495b43a28d2eaceae"
504
- },
505
517
  {
506
518
  "path": "rules/planr-release.mdc",
507
- "digest": "sha256:a59adfcf3ce309733e8d02402cb8ea87c4b04cc3e631fa3cd3571a53bffc181c"
519
+ "digest": "sha256:47471a905d712d9d283080a49a84b49b0da9685f4fe0f3fed3e21f59ace33afe"
508
520
  },
509
521
  {
510
522
  "path": "rules/planr-release/assets/changelog-template.md",
@@ -516,19 +528,19 @@
516
528
  },
517
529
  {
518
530
  "path": "rules/planr-release/references/cadence.md",
519
- "digest": "sha256:c9d0e67e35aaa4db563a8f520dc3ff441be8a8c54b86be274b44a20dfa363077"
531
+ "digest": "sha256:73786c9d4b5174d66e28d90163a0f705e3a316aa778220119cb3c3326ed5a5dc"
520
532
  },
521
533
  {
522
534
  "path": "rules/planr-release/references/release-notes.md",
523
- "digest": "sha256:9dd1784dc10f40dc4e1962e9eab4373cc0dc04c111935fb8f145772a8f6c2fec"
535
+ "digest": "sha256:15645f09c3906c05d6fe994ef8a97b939742ff31be18a0b4d13465e3ceab8f8d"
524
536
  },
525
537
  {
526
- "path": "rules/planr-release/references/schemes.md",
527
- "digest": "sha256:79769004c106f31ddb6a74a4f7a902b3f1d8c43617fb11d56f9f7455855cfa69"
538
+ "path": "rules/planr-release/references/return-contract.md",
539
+ "digest": "sha256:65081a1dd594dbe5136e2892a64110270e85a6b246a0ee74d43edc1f55d69bde"
528
540
  },
529
541
  {
530
- "path": "rules/planr-release/scripts/collect_changes.sh",
531
- "digest": "sha256:6271a1d8ea7d0a8c86dd52f85fa78666845d7d152cc95ae5148fde68dcd2f652"
542
+ "path": "rules/planr-release/references/schemes.md",
543
+ "digest": "sha256:9279cb628c5fae52d3119b5a229d644131c9699abcff74cf27e2f21af1f4706c"
532
544
  },
533
545
  {
534
546
  "path": "rules/planr-share.mdc",
@@ -540,7 +552,11 @@
540
552
  },
541
553
  {
542
554
  "path": "rules/planr-ship.mdc",
543
- "digest": "sha256:e6b792830f9ab144577794bf1143005f2f42768e89a468f5460c9b782d6fbb1c"
555
+ "digest": "sha256:e76709731cf273b153c0059e9d652248c87027f75ca2e5d9860b5a905e6a8a89"
556
+ },
557
+ {
558
+ "path": "rules/planr-ship/references/backlog-filing.md",
559
+ "digest": "sha256:4e86fca9f2ad70ab1dfc7f0984009a1fb64e9459666093552c8405aa0d3084be"
544
560
  },
545
561
  {
546
562
  "path": "rules/planr-ship/references/design-lineage.md",
@@ -552,23 +568,23 @@
552
568
  },
553
569
  {
554
570
  "path": "rules/planr-ship/references/findings.md",
555
- "digest": "sha256:2bee6285c88650a81ae049541eb9a09549c0935210b5ca3eae0b1c99fd52f45f"
571
+ "digest": "sha256:a097b21620a272487758817a52b85bb7cd08d58133d9a704f44cb67870c63c09"
556
572
  },
557
573
  {
558
574
  "path": "rules/planr-ship/references/result-contract.md",
559
575
  "digest": "sha256:1c8bf48c8bbae9b6a7ef7b6e1d444412c9bf6f3c67fc0233c159c3b084cc7e0e"
560
576
  },
561
577
  {
562
- "path": "rules/planr-ship/scripts/backlog-item.mjs",
563
- "digest": "sha256:4d3ae483819acaa34ef79b1ee3b21f75ceb78bf290366d7a9e095021340a3b68"
578
+ "path": "rules/planr-ship/references/return-contract.md",
579
+ "digest": "sha256:65081a1dd594dbe5136e2892a64110270e85a6b246a0ee74d43edc1f55d69bde"
564
580
  },
565
581
  {
566
- "path": "rules/planr-ship/scripts/discover-verification.mjs",
567
- "digest": "sha256:8805ac8d814a1d94364d455df6da350983d4c8436faa3749717da5f1b3ae63b1"
582
+ "path": "rules/planr-spec.mdc",
583
+ "digest": "sha256:555593f549d7bfef092c1a29c3fc14de254f7d9740b655c326cc8bf3997ccaa4"
568
584
  },
569
585
  {
570
- "path": "rules/planr-spec.mdc",
571
- "digest": "sha256:874e369aff13d4c6fdcd990460a49f153c21ea52846019c617b805cb9ce53266"
586
+ "path": "rules/planr-spec/references/return-contract.md",
587
+ "digest": "sha256:65081a1dd594dbe5136e2892a64110270e85a6b246a0ee74d43edc1f55d69bde"
572
588
  },
573
589
  {
574
590
  "path": "rules/planr-spec/references/specification-contract.md",
@@ -629,23 +645,7 @@
629
645
  {
630
646
  "path": "rules/planr-sync/scripts/sync.mjs",
631
647
  "digest": "sha256:7ef90127444f270dc30d119c88a41c898fe7e0b82b1d72d95b1bffc9393a1492"
632
- },
633
- {
634
- "path": "runtime/operate/scripts/errors.mjs",
635
- "digest": "sha256:6c02fdf441b22fc101a764c928bb0e98fa0a93a602183463c44adc3f8e1d7f79"
636
- },
637
- {
638
- "path": "runtime/operate/scripts/operate-review-contract.mjs",
639
- "digest": "sha256:76de44f9fda5444ad5b4805ae16b21221cde19a99669140ea7a6f032f383edcd"
640
- },
641
- {
642
- "path": "runtime/operate/scripts/operate-review-note.mjs",
643
- "digest": "sha256:10fd0d90e5ec8674a9df0b4dabcb44c0c90ca63a72ea42194d69d365034c94aa"
644
- },
645
- {
646
- "path": "runtime/operate/scripts/validate-note.mjs",
647
- "digest": "sha256:5955daf739c410c970b998913c106c4f147b0eff47e4433c01eaf06471bfd651"
648
648
  }
649
649
  ],
650
- "contentDigest": "sha256:4c43fec7101fd956b09309653612a47d35a5cb88cf5301103dc392b6852781f1"
650
+ "contentDigest": "sha256:53308aeb921e16c61b97fe239172c24a1ceeb12ffde01039fd2fbaf06369f2a8"
651
651
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openplanr",
3
- "version": "3.5.0",
3
+ "version": "3.6.0",
4
4
  "ruleCount": 30,
5
5
  "rules": [
6
6
  "rules/planr-artifact.mdc",