kanbango 3.8.0 → 5.1.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/agent-playbook.js CHANGED
@@ -8,16 +8,18 @@ const DROP_IN_RULE = [
8
8
  'Kanbango MCP — token rules:',
9
9
  '- hierarchy: epic (context) → task (work+plan) → subtasks (steps)',
10
10
  '- list: col filter, view=summary; keep task_ids; no full-board re-list after writes',
11
- '- context: one-shot compass (active or next unblocked planned, else idle); optional epic=E001; prefer over list+show',
12
- '- context next_action: advance|evidence|move_testing|move_review|move_done|fix_gate|start|idle',
13
- '- list_epics default = live only (hides done + archived); include_archived / status to widen',
14
- '- list tasks default hides tasks under done/archived epics; show/show_epic by id always works',
15
- '- show: view=execution while coding; full only if needed',
16
- '- show task returns epic_goals (parent compass); empty string if no epic/goals check drift vs goal',
11
+ '- context: omit operation = context (wake compass: unblocked active, failed/blocked gate, manual testing/review, else next unblocked planned, else idle); optional epic=E001; prefer over list+show',
12
+ '- after context: one show view=planning (SPEC) or view=execution (coding); do not re-list the board',
13
+ '- context next_action: advance|evidence|move_testing|move_review|move_done|fix_gate|start|idle; evidence/gates need diff|summary|test_command',
14
+ '- PARSE_ERROR: corrupt JSON on list/context/all is an error with file path; never a partial board or idle',
15
+ '- list_epics default = live only (hides done + archived); include_archived / include_done / status to widen',
16
+ '- list default hides column=done and tasks under done/archived epics; include_done/include_archived or col=done to widen; show/show_epic by id always works',
17
+ '- show: view=planning for SPEC; view=execution while coding; full only if needed',
18
+ '- show planning/full task views may return epic_goals (parent compass); empty fields are omitted — check drift vs goal',
17
19
  '- log architecture decisions: update adr={decision,why} append; show_epic full rolls up adrs',
18
20
  '- epic_create with description/goals; create tasks with epic=E001 (prefer id)',
19
21
  '- create once with description,specs,in_scope,out_of_scope,acceptance_criteria',
20
- '- move/update/delete: return=none; subtasks=full array replace',
22
+ '- move/update/delete/plan_*: return=none (no full card / subtasks / evidence echo); return=summary|full only when needed',
21
23
  '- cleanup: delete (task), epic_delete (cascade tasks), epic_archive / epic_unarchive',
22
24
  '- steps on create/plan_create become subtasks (no forced TDD steps); test runner optional (null if none)',
23
25
  '- optional plan_*: plan_create → plan_advance → plan_evidence (diff|summary|test_command) → plan_done',
@@ -29,47 +31,17 @@ const DROP_IN_RULE = [
29
31
  '- default allowed: icebox→planned; planned→active|icebox|testing; active→planned|testing|icebox; testing→active|review; review→active|done; done→active',
30
32
  '- backlog/kanbango.json may disable testing/review columns (labels + migrate cards to planned) and/or disable QA/Temida spawn (manual gate)',
31
33
  '- do not skip enabled gates: active→done illegal when testing|review on; gates spawn agents only when workflow+agent enabled',
32
- '- gui: status before start; stop only owned; external_running = do not kill'
34
+ '- enter testing|review (and done when gates on) only with evidence[] having diff|summary|test_command; fail/blocked cannot skip forward — EVIDENCE_REQUIRED',
35
+ '- gui: status before start; stop only owned; external_running = do not kill',
36
+ '- errors: next_tool_call only when repair is unique (TASK_NOT_FOUND, INVALID_TRANSITION); omit otherwise'
33
37
  ].join('\n');
34
38
 
35
39
  const TOOL_DESCRIPTIONS = {
36
- kanban_read: [
37
- 'Read board. TOKEN RULES: list defaults to view=summary (id/title/col/progress only).',
38
- 'Hierarchy: epic (container/context) → task (work) → subtasks (steps).',
39
- 'Always pass col when possible. Prefer operation=context on wake, then show+view=execution over full.',
40
- 'show task (planning/execution/full) includes epic_goals (parent epic goals; "" if none) — use as compass; check progress toward goal.',
41
- 'execution/full also include adr[]; show_epic full rolls up child adrs (not stored on epic file).',
42
- 'list_epics default live only (empty|planned|active; hides done+archived).',
43
- 'Pass include_archived=true or status=done|archived to see closed initiatives.',
44
- 'list hides tasks under done/archived epics unless include_archived/include_done; show/show_epic by id always works.',
45
- 'Do not re-list the whole board after every write — keep task_id from create/move.',
46
- 'Task IDs numeric ("014"); epic IDs "E001". views: summary|planning|execution|full; fields[] overrides view.',
47
- 'operation=context returns compact next_action (advance|evidence|move_*|fix_gate|start|idle); optional epic filter.',
48
- 'planning/execution/full include blocked, unmet_dependencies, blocks; summary includes blocked.',
49
- 'operation=help returns this playbook as short text (no board I/O).'
50
- ].join(' '),
40
+ kanban_read:
41
+ 'Read board. TOKEN RULES: omit operation=context on wake; list view=summary; operation=help for the playbook.',
51
42
 
52
- kanban_manage: [
53
- 'Write board / plan. TOKEN RULES: one create with all planning fields beats many updates;',
54
- 'after write use return=none (or summary). Do not dump full task unless needed.',
55
- 'Actions: create|move|update|delete (daily); epic_create|epic_update|epic_archive|epic_unarchive|epic_delete;',
56
- 'optional plan_create→plan_advance→plan_evidence→plan_done (plan_done → first enabled gate or done).',
57
- 'After implement: move testing when enabled (return=none). Illegal move → INVALID_TRANSITION with allowed_columns.',
58
- 'depends_on must be done before active/gates (TASK_BLOCKED). Cycle → CIRCULAR_DEPENDENCY.',
59
- 'files[] stores touched paths. move to done returns unblocked_tasks.',
60
- 'Default transitions: icebox→planned; planned→active|icebox|testing; active→planned|testing|icebox;',
61
- 'testing→active|review; review→active|done; done→active. Project may disable testing/review via backlog/kanbango.json.',
62
- 'epic_create: title + description/goals/in_scope/out_of_scope. Link tasks via epic=E001.',
63
- 'Log architecture decisions on the task: update with adr={decision,why} appends one entry (why this choice).',
64
- 'delete: task_id (hard remove). epic_delete: epic_id, always cascades child tasks.',
65
- 'epic_archive/epic_unarchive: epic_id — hide/restore initiative without deleting history.',
66
- 'create/plan_create: title required; also send description,specs,in_scope,out_of_scope,acceptance_criteria',
67
- '(missing → warnings, not failure). steps[] → subtasks (create when subtasks omitted; plan_create as-is, no forced TDD).',
68
- 'plan_create runner optional (null if none). move: task_id+column. update: task_id + fields or subtasks[] full list',
69
- '(no toggle). plan_evidence: at least one of diff|summary|test_command; stdout/stderr/exit_code optional — truncate logs.',
70
- 'Example create: {"action":"create","title":"Ship image","epic":"E001","description":"...","specs":"...",',
71
- '"in_scope":["CLI"],"out_of_scope":["GUI"],"acceptance_criteria":["done"],"steps":["Impl"],"col":"planned"}'
72
- ].join(' '),
43
+ kanban_manage:
44
+ 'Write board / plan. TOKEN RULES: one create beats many updates; after write return=none; kanban_read operation=help for the playbook.',
73
45
 
74
46
  kanban_gui: [
75
47
  'Web GUI control. Prefer status before start. stop only kills GUI this MCP spawned;',
@@ -82,19 +54,8 @@ const MUST_CONTAIN = [
82
54
  'TOKEN RULES',
83
55
  'view=summary',
84
56
  'return=none',
85
- 'plan_create',
86
- 'external_running',
87
- 'subtasks',
88
- 'epic_create',
89
- 'epic_archive',
90
- 'epic_delete',
91
- 'epic_goals',
92
- 'adr',
93
- 'context',
94
- 'depends_on',
95
- 'TASK_BLOCKED',
96
- 'CIRCULAR_DEPENDENCY',
97
- 'unblocked_tasks'
57
+ 'help',
58
+ 'external_running'
98
59
  ];
99
60
 
100
61
  function playbookHelpPayload() {