@omnicoreos/planka-mcp 0.2.0 → 0.3.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 (195) hide show
  1. package/.agents/plugins/marketplace.json +20 -0
  2. package/.claude-plugin/marketplace.json +26 -0
  3. package/.claude-plugin/plugin.json +45 -0
  4. package/.codex-plugin/mcp.json +16 -0
  5. package/.codex-plugin/plugin.json +27 -0
  6. package/.mcp.json +17 -0
  7. package/CHANGELOG.md +510 -0
  8. package/README.es.md +294 -55
  9. package/README.md +293 -55
  10. package/dist/cli/init.d.ts +101 -0
  11. package/dist/cli/init.d.ts.map +1 -0
  12. package/dist/cli/init.js +481 -0
  13. package/dist/cli/init.js.map +1 -0
  14. package/dist/client.d.ts +32 -4
  15. package/dist/client.d.ts.map +1 -1
  16. package/dist/client.js +106 -32
  17. package/dist/client.js.map +1 -1
  18. package/dist/config/policy.d.ts +82 -0
  19. package/dist/config/policy.d.ts.map +1 -0
  20. package/dist/config/policy.js +226 -0
  21. package/dist/config/policy.js.map +1 -0
  22. package/dist/errors.d.ts +5 -1
  23. package/dist/errors.d.ts.map +1 -1
  24. package/dist/errors.js +62 -5
  25. package/dist/errors.js.map +1 -1
  26. package/dist/identity.generated.d.ts +2 -1
  27. package/dist/identity.generated.d.ts.map +1 -1
  28. package/dist/identity.generated.js +2 -1
  29. package/dist/identity.generated.js.map +1 -1
  30. package/dist/index.js +85 -10
  31. package/dist/index.js.map +1 -1
  32. package/dist/instructions.d.ts +21 -0
  33. package/dist/instructions.d.ts.map +1 -0
  34. package/dist/instructions.js +37 -0
  35. package/dist/instructions.js.map +1 -0
  36. package/dist/operations/actions.d.ts +654 -0
  37. package/dist/operations/actions.d.ts.map +1 -0
  38. package/dist/operations/actions.js +154 -0
  39. package/dist/operations/actions.js.map +1 -0
  40. package/dist/operations/archive.d.ts +28 -0
  41. package/dist/operations/archive.d.ts.map +1 -0
  42. package/dist/operations/archive.js +74 -0
  43. package/dist/operations/archive.js.map +1 -0
  44. package/dist/operations/attachments.d.ts +1 -1
  45. package/dist/operations/attachments.d.ts.map +1 -1
  46. package/dist/operations/attachments.js +3 -1
  47. package/dist/operations/attachments.js.map +1 -1
  48. package/dist/operations/board-id.d.ts +1 -1
  49. package/dist/operations/board-id.d.ts.map +1 -1
  50. package/dist/operations/board-id.js +13 -7
  51. package/dist/operations/board-id.js.map +1 -1
  52. package/dist/operations/boards.d.ts +96 -19
  53. package/dist/operations/boards.d.ts.map +1 -1
  54. package/dist/operations/boards.js +377 -93
  55. package/dist/operations/boards.js.map +1 -1
  56. package/dist/operations/card-brief.d.ts +91 -0
  57. package/dist/operations/card-brief.d.ts.map +1 -0
  58. package/dist/operations/card-brief.js +79 -0
  59. package/dist/operations/card-brief.js.map +1 -0
  60. package/dist/operations/cards.d.ts +34 -9
  61. package/dist/operations/cards.d.ts.map +1 -1
  62. package/dist/operations/cards.js +60 -14
  63. package/dist/operations/cards.js.map +1 -1
  64. package/dist/operations/comments.d.ts +61 -4
  65. package/dist/operations/comments.d.ts.map +1 -1
  66. package/dist/operations/comments.js +91 -8
  67. package/dist/operations/comments.js.map +1 -1
  68. package/dist/operations/duplicate.d.ts +16 -0
  69. package/dist/operations/duplicate.d.ts.map +1 -0
  70. package/dist/operations/duplicate.js +43 -0
  71. package/dist/operations/duplicate.js.map +1 -0
  72. package/dist/operations/labels.d.ts +1 -1
  73. package/dist/operations/labels.d.ts.map +1 -1
  74. package/dist/operations/labels.js +7 -4
  75. package/dist/operations/labels.js.map +1 -1
  76. package/dist/operations/lists.d.ts +63 -1
  77. package/dist/operations/lists.d.ts.map +1 -1
  78. package/dist/operations/lists.js +97 -2
  79. package/dist/operations/lists.js.map +1 -1
  80. package/dist/operations/members.d.ts +39 -0
  81. package/dist/operations/members.d.ts.map +1 -0
  82. package/dist/operations/members.js +107 -0
  83. package/dist/operations/members.js.map +1 -0
  84. package/dist/operations/projects.d.ts +16 -0
  85. package/dist/operations/projects.d.ts.map +1 -1
  86. package/dist/operations/projects.js +54 -9
  87. package/dist/operations/projects.js.map +1 -1
  88. package/dist/operations/tasks.d.ts +1 -1
  89. package/dist/operations/tasks.d.ts.map +1 -1
  90. package/dist/operations/tasks.js +5 -3
  91. package/dist/operations/tasks.js.map +1 -1
  92. package/dist/operations/users.d.ts +123 -0
  93. package/dist/operations/users.d.ts.map +1 -0
  94. package/dist/operations/users.js +180 -0
  95. package/dist/operations/users.js.map +1 -0
  96. package/dist/operations/verify.d.ts +84 -0
  97. package/dist/operations/verify.d.ts.map +1 -0
  98. package/dist/operations/verify.js +124 -0
  99. package/dist/operations/verify.js.map +1 -0
  100. package/dist/prompts.d.ts +48 -0
  101. package/dist/prompts.d.ts.map +1 -0
  102. package/dist/prompts.js +155 -0
  103. package/dist/prompts.js.map +1 -0
  104. package/dist/resources.d.ts +38 -0
  105. package/dist/resources.d.ts.map +1 -0
  106. package/dist/resources.js +127 -0
  107. package/dist/resources.js.map +1 -0
  108. package/dist/schemas/entities.d.ts +115 -24
  109. package/dist/schemas/entities.d.ts.map +1 -1
  110. package/dist/schemas/entities.js +48 -0
  111. package/dist/schemas/entities.js.map +1 -1
  112. package/dist/schemas/requests.d.ts +121 -46
  113. package/dist/schemas/requests.d.ts.map +1 -1
  114. package/dist/schemas/requests.js +57 -12
  115. package/dist/schemas/requests.js.map +1 -1
  116. package/dist/schemas/responses.d.ts +541 -186
  117. package/dist/schemas/responses.d.ts.map +1 -1
  118. package/dist/schemas/responses.js +13 -2
  119. package/dist/schemas/responses.js.map +1 -1
  120. package/dist/tools/activity.d.ts +150 -0
  121. package/dist/tools/activity.d.ts.map +1 -0
  122. package/dist/tools/activity.js +198 -0
  123. package/dist/tools/activity.js.map +1 -0
  124. package/dist/tools/annotations.d.ts +52 -0
  125. package/dist/tools/annotations.d.ts.map +1 -0
  126. package/dist/tools/annotations.js +214 -0
  127. package/dist/tools/annotations.js.map +1 -0
  128. package/dist/tools/attachments.d.ts +28 -4
  129. package/dist/tools/attachments.d.ts.map +1 -1
  130. package/dist/tools/attachments.js +53 -34
  131. package/dist/tools/attachments.js.map +1 -1
  132. package/dist/tools/card-ops.d.ts +232 -0
  133. package/dist/tools/card-ops.d.ts.map +1 -0
  134. package/dist/tools/card-ops.js +333 -0
  135. package/dist/tools/card-ops.js.map +1 -0
  136. package/dist/tools/cards.d.ts +90 -8
  137. package/dist/tools/cards.d.ts.map +1 -1
  138. package/dist/tools/cards.js +411 -128
  139. package/dist/tools/cards.js.map +1 -1
  140. package/dist/tools/comments.d.ts +226 -22
  141. package/dist/tools/comments.d.ts.map +1 -1
  142. package/dist/tools/comments.js +163 -134
  143. package/dist/tools/comments.js.map +1 -1
  144. package/dist/tools/dispatch.d.ts +47 -0
  145. package/dist/tools/dispatch.d.ts.map +1 -0
  146. package/dist/tools/dispatch.js +63 -0
  147. package/dist/tools/dispatch.js.map +1 -0
  148. package/dist/tools/guard.d.ts +9 -0
  149. package/dist/tools/guard.d.ts.map +1 -0
  150. package/dist/tools/guard.js +20 -0
  151. package/dist/tools/guard.js.map +1 -0
  152. package/dist/tools/index.d.ts +748 -450
  153. package/dist/tools/index.d.ts.map +1 -1
  154. package/dist/tools/index.js +136 -17
  155. package/dist/tools/index.js.map +1 -1
  156. package/dist/tools/labels.d.ts +213 -18
  157. package/dist/tools/labels.d.ts.map +1 -1
  158. package/dist/tools/labels.js +218 -203
  159. package/dist/tools/labels.js.map +1 -1
  160. package/dist/tools/lists.d.ts +222 -15
  161. package/dist/tools/lists.d.ts.map +1 -1
  162. package/dist/tools/lists.js +175 -156
  163. package/dist/tools/lists.js.map +1 -1
  164. package/dist/tools/members.d.ts +128 -0
  165. package/dist/tools/members.d.ts.map +1 -0
  166. package/dist/tools/members.js +150 -0
  167. package/dist/tools/members.js.map +1 -0
  168. package/dist/tools/navigation.d.ts +22 -2
  169. package/dist/tools/navigation.d.ts.map +1 -1
  170. package/dist/tools/navigation.js +60 -15
  171. package/dist/tools/navigation.js.map +1 -1
  172. package/dist/tools/queries.d.ts +196 -166
  173. package/dist/tools/queries.d.ts.map +1 -1
  174. package/dist/tools/queries.js +125 -155
  175. package/dist/tools/queries.js.map +1 -1
  176. package/dist/tools/tasks.d.ts +26 -6
  177. package/dist/tools/tasks.d.ts.map +1 -1
  178. package/dist/tools/tasks.js +110 -55
  179. package/dist/tools/tasks.js.map +1 -1
  180. package/dist/tools/users.d.ts +130 -0
  181. package/dist/tools/users.d.ts.map +1 -0
  182. package/dist/tools/users.js +165 -0
  183. package/dist/tools/users.js.map +1 -0
  184. package/docs/planka-2x-gotchas.md +121 -5
  185. package/docs/tools.md +771 -187
  186. package/docs/troubleshooting.md +137 -5
  187. package/hooks/hooks.json +15 -0
  188. package/hooks/preflight.mjs +100 -0
  189. package/package.json +6 -1
  190. package/scripts/setup.sh +8 -26
  191. package/scripts/sync-identity.mjs +55 -1
  192. package/server.json +87 -6
  193. package/tests/smoke/planka-smoke.mjs +512 -72
  194. package/workflow/skills/planka-close-card/SKILL.md +18 -5
  195. package/workflow/skills/planka-orchestrator/SKILL.md +36 -7
@@ -1,7 +1,9 @@
1
1
  ---
2
2
  name: planka-close-card
3
3
  description: This skill should be used when the user asks to "close this Planka card", "ship this card", "finish the card", "record the card handoff", or confirms "tested ok" for a workflow card. It verifies evidence, records a durable closing comment, and performs only the merge or board transition owned by the current role.
4
- version: 0.1.0
4
+ license: MIT
5
+ metadata:
6
+ version: 0.3.0
5
7
  ---
6
8
 
7
9
  # Close a Planka workflow card
@@ -11,10 +13,16 @@ because implementation stopped.
11
13
 
12
14
  ## Read first
13
15
 
14
- 1. Read the card description and every comment.
15
- 2. Read the repository's contribution and verification instructions.
16
- 3. Resolve the `<!-- agent-work -->` branch and worktree against real Git state.
17
- 4. Determine your role:
16
+ 1. Read the card description and every comment: `planka_get_card` with
17
+ `withComments`, or `planka_get_comments`. `get_card` is a digest and returns no
18
+ comments unless asked, and comments page 50 at a time keep paging while
19
+ `hasMore` is true instead of trusting one answer. The description says how the
20
+ card was born; the comments say where it stands today, and the last one wins.
21
+ 2. If you are picking up a card someone else worked on, run `planka_board_activity`
22
+ or `planka_card_history` first: they say what moved and who moved it.
23
+ 3. Read the repository's contribution and verification instructions.
24
+ 4. Resolve the `<!-- agent-work -->` branch and worktree against real Git state.
25
+ 5. Determine your role:
18
26
  - worker: edits, verifies, commits, and writes the handoff;
19
27
  - director: audits, merges, cleans, and changes board state;
20
28
  - human confirmation handler: records `tested-ok` and completes the final move.
@@ -22,6 +30,11 @@ because implementation stopped.
22
30
  Do not perform another role's transition unless the user explicitly assigned both
23
31
  roles and the repository allows it.
24
32
 
33
+ Every board write you make (`planka_create_comment`, `planka_move_card`,
34
+ `planka_set_card_labels`, `planka_update_card`) re-reads what it touched and reports
35
+ `verified`. Read that field before claiming the card moved or the comment landed: a
36
+ response without it confirmed nothing.
37
+
25
38
  ## Worker closure
26
39
 
27
40
  The worker must:
@@ -1,7 +1,9 @@
1
1
  ---
2
2
  name: planka-orchestrator
3
3
  description: This skill should be used when the user asks to "orchestrate the Planka board", "run cards in parallel", "act as the director", "dispatch workers from Planka", or "continue the board workflow". It coordinates cards, comments, worktrees, worker ownership, evidence, and safe merges without editing repository files in the director role.
4
- version: 0.1.0
4
+ license: MIT
5
+ metadata:
6
+ version: 0.3.0
5
7
  ---
6
8
 
7
9
  # Planka workflow orchestrator
@@ -29,13 +31,37 @@ The director may:
29
31
 
30
32
  1. Read the repository's agent instructions and workflow documentation.
31
33
  2. Check the base tree and current worktrees without changing them.
32
- 3. Read the full board.
33
- 4. For every candidate card, read the description and all comments in order.
34
- 5. Confirm the card has acceptance criteria and one behavior label.
35
- 6. Resolve `serial` and `zone:*` exclusions before creating anything.
34
+ 3. Open the board with `planka_board_summary`: one call returns every column with
35
+ its card count and every label with its ID. It is the only opening read.
36
+ 4. If you are resuming work you did not start, or the session was compacted, call
37
+ `planka_board_activity` before anything else: it says what moved, and who moved
38
+ it, since a given date. Planka logs card creation, moves, member changes and
39
+ task completion only — comments and edits leave no trace there, so activity
40
+ narrows where to look, it does not replace reading the cards.
41
+ 5. Pull the candidate column with `planka_find_cards` and its `listId`: that reads
42
+ one whole column in a single request, with nothing clipped.
43
+ 6. For every candidate card, read the description and ALL comments in order:
44
+ `planka_get_card` returns a digest and no comments unless you pass
45
+ `withComments`, and `planka_get_comments` pages 50 at a time. Trust `hasMore`
46
+ and `nextBeforeId`, never the count you see in one answer.
47
+ 7. Confirm the card has acceptance criteria and one behavior label.
48
+ 8. Resolve `serial` and `zone:*` exclusions before creating anything.
36
49
 
37
50
  Never trust a suspicious zero-comment result blindly. If the card's state implies a
38
- decision or prior work, use `planka_get_comments` and report an MCP/API mismatch.
51
+ decision or prior work, re-read with `planka_get_comments` and report an MCP/API
52
+ mismatch.
53
+
54
+ Reads are digests by design: descriptions are off unless asked, results are capped,
55
+ and every scoped read reports `total` / `returned` / `hasMore`. A clipped answer is
56
+ never a complete one. `planka_get_board`, `planka_list_lists` and `planka_list_cards`
57
+ are deprecated aliases kept for compatibility — `board_summary` and `find_cards`
58
+ replace all three, and `get_board` in particular costs orders of magnitude more.
59
+
60
+ IDs are strings of digits and are never guessed. They come from
61
+ `planka_board_summary` or `planka_get_structure`, and they all look alike: passing a
62
+ label ID where a list ID belongs answers "Resource not found", not a type error.
63
+ Planka also answers 404 where it means 403, so a "not found" on a write with an ID
64
+ that read fine a moment ago is almost always a missing permission for the agent user.
39
65
 
40
66
  ## Selection
41
67
 
@@ -87,7 +113,10 @@ Audit, do not recreate, the worker's evidence:
87
113
  - confirm the acceptance step matches the card;
88
114
  - inspect visual evidence when the behavior is visual;
89
115
  - confirm the closing comment states omissions and remaining risk honestly;
90
- - confirm the worker changed only its assigned scope.
116
+ - confirm the worker changed only its assigned scope;
117
+ - confirm every board write you made reports `verified` (and `finalLabelIds` where
118
+ labels were touched). Writes re-read what they touched and report what actually
119
+ landed: trust that field, not the arguments you sent.
91
120
 
92
121
  If evidence is incomplete, leave a concrete comment and continue the same worker with
93
122
  one targeted request. Do not mark a theory as a verified result.