@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.
- package/.agents/plugins/marketplace.json +20 -0
- package/.claude-plugin/marketplace.json +26 -0
- package/.claude-plugin/plugin.json +45 -0
- package/.codex-plugin/mcp.json +16 -0
- package/.codex-plugin/plugin.json +27 -0
- package/.mcp.json +17 -0
- package/CHANGELOG.md +510 -0
- package/README.es.md +294 -55
- package/README.md +293 -55
- package/dist/cli/init.d.ts +101 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +481 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/client.d.ts +32 -4
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +106 -32
- package/dist/client.js.map +1 -1
- package/dist/config/policy.d.ts +82 -0
- package/dist/config/policy.d.ts.map +1 -0
- package/dist/config/policy.js +226 -0
- package/dist/config/policy.js.map +1 -0
- package/dist/errors.d.ts +5 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +62 -5
- package/dist/errors.js.map +1 -1
- package/dist/identity.generated.d.ts +2 -1
- package/dist/identity.generated.d.ts.map +1 -1
- package/dist/identity.generated.js +2 -1
- package/dist/identity.generated.js.map +1 -1
- package/dist/index.js +85 -10
- package/dist/index.js.map +1 -1
- package/dist/instructions.d.ts +21 -0
- package/dist/instructions.d.ts.map +1 -0
- package/dist/instructions.js +37 -0
- package/dist/instructions.js.map +1 -0
- package/dist/operations/actions.d.ts +654 -0
- package/dist/operations/actions.d.ts.map +1 -0
- package/dist/operations/actions.js +154 -0
- package/dist/operations/actions.js.map +1 -0
- package/dist/operations/archive.d.ts +28 -0
- package/dist/operations/archive.d.ts.map +1 -0
- package/dist/operations/archive.js +74 -0
- package/dist/operations/archive.js.map +1 -0
- package/dist/operations/attachments.d.ts +1 -1
- package/dist/operations/attachments.d.ts.map +1 -1
- package/dist/operations/attachments.js +3 -1
- package/dist/operations/attachments.js.map +1 -1
- package/dist/operations/board-id.d.ts +1 -1
- package/dist/operations/board-id.d.ts.map +1 -1
- package/dist/operations/board-id.js +13 -7
- package/dist/operations/board-id.js.map +1 -1
- package/dist/operations/boards.d.ts +96 -19
- package/dist/operations/boards.d.ts.map +1 -1
- package/dist/operations/boards.js +377 -93
- package/dist/operations/boards.js.map +1 -1
- package/dist/operations/card-brief.d.ts +91 -0
- package/dist/operations/card-brief.d.ts.map +1 -0
- package/dist/operations/card-brief.js +79 -0
- package/dist/operations/card-brief.js.map +1 -0
- package/dist/operations/cards.d.ts +34 -9
- package/dist/operations/cards.d.ts.map +1 -1
- package/dist/operations/cards.js +60 -14
- package/dist/operations/cards.js.map +1 -1
- package/dist/operations/comments.d.ts +61 -4
- package/dist/operations/comments.d.ts.map +1 -1
- package/dist/operations/comments.js +91 -8
- package/dist/operations/comments.js.map +1 -1
- package/dist/operations/duplicate.d.ts +16 -0
- package/dist/operations/duplicate.d.ts.map +1 -0
- package/dist/operations/duplicate.js +43 -0
- package/dist/operations/duplicate.js.map +1 -0
- package/dist/operations/labels.d.ts +1 -1
- package/dist/operations/labels.d.ts.map +1 -1
- package/dist/operations/labels.js +7 -4
- package/dist/operations/labels.js.map +1 -1
- package/dist/operations/lists.d.ts +63 -1
- package/dist/operations/lists.d.ts.map +1 -1
- package/dist/operations/lists.js +97 -2
- package/dist/operations/lists.js.map +1 -1
- package/dist/operations/members.d.ts +39 -0
- package/dist/operations/members.d.ts.map +1 -0
- package/dist/operations/members.js +107 -0
- package/dist/operations/members.js.map +1 -0
- package/dist/operations/projects.d.ts +16 -0
- package/dist/operations/projects.d.ts.map +1 -1
- package/dist/operations/projects.js +54 -9
- package/dist/operations/projects.js.map +1 -1
- package/dist/operations/tasks.d.ts +1 -1
- package/dist/operations/tasks.d.ts.map +1 -1
- package/dist/operations/tasks.js +5 -3
- package/dist/operations/tasks.js.map +1 -1
- package/dist/operations/users.d.ts +123 -0
- package/dist/operations/users.d.ts.map +1 -0
- package/dist/operations/users.js +180 -0
- package/dist/operations/users.js.map +1 -0
- package/dist/operations/verify.d.ts +84 -0
- package/dist/operations/verify.d.ts.map +1 -0
- package/dist/operations/verify.js +124 -0
- package/dist/operations/verify.js.map +1 -0
- package/dist/prompts.d.ts +48 -0
- package/dist/prompts.d.ts.map +1 -0
- package/dist/prompts.js +155 -0
- package/dist/prompts.js.map +1 -0
- package/dist/resources.d.ts +38 -0
- package/dist/resources.d.ts.map +1 -0
- package/dist/resources.js +127 -0
- package/dist/resources.js.map +1 -0
- package/dist/schemas/entities.d.ts +115 -24
- package/dist/schemas/entities.d.ts.map +1 -1
- package/dist/schemas/entities.js +48 -0
- package/dist/schemas/entities.js.map +1 -1
- package/dist/schemas/requests.d.ts +121 -46
- package/dist/schemas/requests.d.ts.map +1 -1
- package/dist/schemas/requests.js +57 -12
- package/dist/schemas/requests.js.map +1 -1
- package/dist/schemas/responses.d.ts +541 -186
- package/dist/schemas/responses.d.ts.map +1 -1
- package/dist/schemas/responses.js +13 -2
- package/dist/schemas/responses.js.map +1 -1
- package/dist/tools/activity.d.ts +150 -0
- package/dist/tools/activity.d.ts.map +1 -0
- package/dist/tools/activity.js +198 -0
- package/dist/tools/activity.js.map +1 -0
- package/dist/tools/annotations.d.ts +52 -0
- package/dist/tools/annotations.d.ts.map +1 -0
- package/dist/tools/annotations.js +214 -0
- package/dist/tools/annotations.js.map +1 -0
- package/dist/tools/attachments.d.ts +28 -4
- package/dist/tools/attachments.d.ts.map +1 -1
- package/dist/tools/attachments.js +53 -34
- package/dist/tools/attachments.js.map +1 -1
- package/dist/tools/card-ops.d.ts +232 -0
- package/dist/tools/card-ops.d.ts.map +1 -0
- package/dist/tools/card-ops.js +333 -0
- package/dist/tools/card-ops.js.map +1 -0
- package/dist/tools/cards.d.ts +90 -8
- package/dist/tools/cards.d.ts.map +1 -1
- package/dist/tools/cards.js +411 -128
- package/dist/tools/cards.js.map +1 -1
- package/dist/tools/comments.d.ts +226 -22
- package/dist/tools/comments.d.ts.map +1 -1
- package/dist/tools/comments.js +163 -134
- package/dist/tools/comments.js.map +1 -1
- package/dist/tools/dispatch.d.ts +47 -0
- package/dist/tools/dispatch.d.ts.map +1 -0
- package/dist/tools/dispatch.js +63 -0
- package/dist/tools/dispatch.js.map +1 -0
- package/dist/tools/guard.d.ts +9 -0
- package/dist/tools/guard.d.ts.map +1 -0
- package/dist/tools/guard.js +20 -0
- package/dist/tools/guard.js.map +1 -0
- package/dist/tools/index.d.ts +748 -450
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +136 -17
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/labels.d.ts +213 -18
- package/dist/tools/labels.d.ts.map +1 -1
- package/dist/tools/labels.js +218 -203
- package/dist/tools/labels.js.map +1 -1
- package/dist/tools/lists.d.ts +222 -15
- package/dist/tools/lists.d.ts.map +1 -1
- package/dist/tools/lists.js +175 -156
- package/dist/tools/lists.js.map +1 -1
- package/dist/tools/members.d.ts +128 -0
- package/dist/tools/members.d.ts.map +1 -0
- package/dist/tools/members.js +150 -0
- package/dist/tools/members.js.map +1 -0
- package/dist/tools/navigation.d.ts +22 -2
- package/dist/tools/navigation.d.ts.map +1 -1
- package/dist/tools/navigation.js +60 -15
- package/dist/tools/navigation.js.map +1 -1
- package/dist/tools/queries.d.ts +196 -166
- package/dist/tools/queries.d.ts.map +1 -1
- package/dist/tools/queries.js +125 -155
- package/dist/tools/queries.js.map +1 -1
- package/dist/tools/tasks.d.ts +26 -6
- package/dist/tools/tasks.d.ts.map +1 -1
- package/dist/tools/tasks.js +110 -55
- package/dist/tools/tasks.js.map +1 -1
- package/dist/tools/users.d.ts +130 -0
- package/dist/tools/users.d.ts.map +1 -0
- package/dist/tools/users.js +165 -0
- package/dist/tools/users.js.map +1 -0
- package/docs/planka-2x-gotchas.md +121 -5
- package/docs/tools.md +771 -187
- package/docs/troubleshooting.md +137 -5
- package/hooks/hooks.json +15 -0
- package/hooks/preflight.mjs +100 -0
- package/package.json +6 -1
- package/scripts/setup.sh +8 -26
- package/scripts/sync-identity.mjs +55 -1
- package/server.json +87 -6
- package/tests/smoke/planka-smoke.mjs +512 -72
- package/workflow/skills/planka-close-card/SKILL.md +18 -5
- 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
|
-
|
|
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
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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
|
-
|
|
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.
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
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,
|
|
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.
|