con un clic
kanban-operations
Move kanban cards and query kanban state via direct database access.
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
Move kanban cards and query kanban state via direct database access.
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional SOC
When planning, flag uncertain assumptions and supply a ready-to-run web-research prompt to confirm them.
Local Switchboard management console — drive the board when the VS Code extension is running
Implement with high accuracy and self-review (invest effort up front to minimize rework)
Reconcile and restructure a feature's subtasks — improve each, then merge/delete/rewrite/split to make the set coherent
Deep planning, dependency checks, and adversarial review
Cloud-VM planning mode — plan first, do not auto-code in a remote VM
| name | Kanban Operations |
| description | Move kanban cards and query kanban state via direct database access. |
⚠️ MANUAL FALLBACK ONLY — The
move-card.jsscript is an override/recovery mechanism. Do NOT run it automatically during standard workflow routing. Use it ONLY when the user has explicitly requested a card move. Theget-state.jsscript is read-only and may be used freely.
Move cards and query kanban state by running the provided scripts.
node .agents/skills/kanban_operations/move-card.js <session_id> <target_column>
Example:
node .agents/skills/kanban_operations/move-card.js sess_1777206335666 CODER_CODED
Valid columns: Sourced from VALID_KANBAN_COLUMNS export in KanbanDatabase.ts. Includes all built-in columns (CREATED, BACKLOG, PLAN REVIEWED, CONTEXT GATHERER, INTERN CODED, LEAD CODED, CODER CODED, CODE REVIEWED, ACCEPTANCE TESTED, CODED, COMPLETED) plus any custom agent columns matching the safe-name regex.
Features: When the card is a feature, all of its subtasks cascade to the same column automatically.
How it routes (and why it matters for Linear/ClickUp sync):
POST /kanban/move). The extension performs the move, so it cascades subtasks and pushes the feature + every subtask status to Linear/ClickUp — keeping external trackers in exact sync. When the extension is reachable it is authoritative: a refused move (e.g. an invalid transition) fails rather than silently falling back.node .agents/skills/kanban_operations/create-feature.js <feature_name> <plan_ids_json> [workspace_root] [description]
Example:
node .agents/skills/kanban_operations/create-feature.js "Onboarding revamp" '["a1b2-...","c3d4-..."]' /Users/me/repo
plan_ids_json is a JSON array of planId values (the planId field from get-state.js output) — NOT sessionId. File-watcher-imported plans have an empty session_id, so planId is the only reliable key.{"ok":true,"featurePlanId":"...","featureSessionId":"..."} on success, or {"ok":false,"error":"..."} on failure. Exit code 0/1 matches.move-card.js). Feature creation spans project inheritance, column resolution, a file write, and subtask linking; replicating that in raw DB calls would risk an orphaned feature. If the extension isn't reachable the script fails with a clear message.node .agents/skills/kanban_operations/assign-to-feature.js <feature_plan_id> <plan_ids_json> [workspace_root]
Example:
node .agents/skills/kanban_operations/assign-to-feature.js <featurePlanId-from-create> '["e5f6-..."]' /Users/me/repo
feature_plan_id is the featurePlanId returned by create-feature.js. plan_ids_json is a JSON array of planId values to add.{"ok":true,"assigned":["..."],"skipped":["..."]}. A plan already on another feature (or that is itself a feature / missing) is reported in skipped and left untouched — it does not abort the batch.create-feature.js: requires the running extension (no direct-DB fallback). Feature assignment syncs the newly assigned subtasks as children of the feature's external issue/task IF real-time sync is enabled.improve-plan refinement.group-into-features/SKILL.md for the template).node .agents/skills/kanban_operations/remove-from-feature.js <subtask_plan_id> [workspace_root]
Example:
node .agents/skills/kanban_operations/remove-from-feature.js "e5f6-..." /Users/me/repo
subtask_plan_id is the planId of the subtask to detach from its parent feature.{"ok":true} on success, or {"ok":false,"error":"..."} on failure.node .agents/skills/kanban_operations/delete-feature.js <feature_plan_id> [delete_subtasks] [workspace_root]
Example:
node .agents/skills/kanban_operations/delete-feature.js "a1b2-..." true /Users/me/repo
feature_plan_id is the featurePlanId of the feature to delete.delete_subtasks: true to tombstone all subtasks, false (default) to detach them and leave them on the board.{"ok":true} on success, or {"ok":false,"error":"..."} on failure.node .agents/skills/kanban_operations/split-feature.js <feature_plan_id> <kept_plan_ids_json> <first_feature_name> <second_feature_name> [workspace_root]
Example:
node .agents/skills/kanban_operations/split-feature.js "a1b2-..." '["c3d4-...","e5f6-..."]' "Backend refactor" "Frontend polish" /Users/me/repo
feature_plan_id is the featurePlanId of the feature to split.kept_plan_ids_json is a JSON array of planId values that go to the first new feature. All other subtasks go to the second new feature.first_feature_name and second_feature_name are the names for the two new features.{"ok":true,"firstFeaturePlanId":"...","secondFeaturePlanId":"..."} on success, or {"ok":false,"error":"..."} on failure.Triggered by the SUGGEST FEATURES board button, which copies a prompt to the clipboard. The agent must follow this flow:
get-state.js and look only at pre-coding columns: CREATED, BACKLOG, CONTEXT GATHERER, PLAN REVIEWED. Ignore cards that are already features or already assigned (they carry an featureId).planId and current kanban column. Leave standalone plans ungrouped. Flag any cross-column groupings (plans from different columns in the same feature) with a ⚠ CROSS-COLUMN warning — see group-into-features/SKILL.md for the warning text and replan-button guidance. Then stop.create-feature.js once per approved group, no further confirmation. Use assign-to-feature.js to add more plans later. For any cross-column feature, write the ⚠ Cross-Column Review Note into the feature file (see group-into-features/SKILL.md for the template).node .agents/skills/kanban_operations/get-state.js <workspace_id>
Example:
node .agents/skills/kanban_operations/get-state.js my-workspace-123
Outputs JSON with columns as keys and arrays of plans as values.
When running from a different directory than the target workspace:
# Get state from specific workspace
node .agents/skills/kanban_operations/get-state.js /Users/patrickvuleta/Documents/Gitlab
# Move card in specific workspace
node .agents/skills/kanban_operations/move-card.js <session_id> <column> "" /Users/patrickvuleta/Documents/Gitlab