kanbango 2.0.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.md +606 -0
- package/API.md +177 -0
- package/CHANGELOG.md +122 -0
- package/LICENSE +21 -0
- package/LLM_AGENTS.md +484 -0
- package/README.md +360 -0
- package/bin/kanban-cmd.js +40 -0
- package/bin/kanban.js +462 -0
- package/index.html +1095 -0
- package/index.js +15 -0
- package/kanban.js +625 -0
- package/kanbango.md +48 -0
- package/mcp-server.js +489 -0
- package/package.json +41 -0
- package/planv2.md +307 -0
- package/tests/run.js +19 -0
package/API.md
ADDED
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
# Kanban API for AI Agents
|
|
2
|
+
|
|
3
|
+
Documentation for interacting with local Kanban system (kanban.py).
|
|
4
|
+
|
|
5
|
+
## Available Functions
|
|
6
|
+
|
|
7
|
+
```json
|
|
8
|
+
{
|
|
9
|
+
"type": "function",
|
|
10
|
+
"name": "kanban_list",
|
|
11
|
+
"description": "Get list of all tasks from kanban. Optionally filter by column or epic group.",
|
|
12
|
+
"parameters": {
|
|
13
|
+
"type": "object",
|
|
14
|
+
"properties": {
|
|
15
|
+
"col": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"enum": ["active", "planned", "icebox", "done"],
|
|
18
|
+
"description": "Optionally filter by column"
|
|
19
|
+
},
|
|
20
|
+
"epic": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"description": "Optionally filter by epic group"
|
|
23
|
+
},
|
|
24
|
+
"as_json": {
|
|
25
|
+
"type": "boolean",
|
|
26
|
+
"default": true,
|
|
27
|
+
"description": "Return result as JSON"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"additionalProperties": false
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
```json
|
|
36
|
+
{
|
|
37
|
+
"type": "function",
|
|
38
|
+
"name": "kanban_show",
|
|
39
|
+
"description": "Get detailed information about a specific task, including subtask list.",
|
|
40
|
+
"parameters": {
|
|
41
|
+
"type": "object",
|
|
42
|
+
"properties": {
|
|
43
|
+
"task_id": {
|
|
44
|
+
"type": "string",
|
|
45
|
+
"description": "Task ID (e.g. 'PI-014-google-calendar')"
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"required": ["task_id"],
|
|
49
|
+
"additionalProperties": false
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
```json
|
|
55
|
+
{
|
|
56
|
+
"type": "function",
|
|
57
|
+
"name": "kanban_add",
|
|
58
|
+
"description": "Create new task in kanban in specified column and optional epic group.",
|
|
59
|
+
"parameters": {
|
|
60
|
+
"type": "object",
|
|
61
|
+
"properties": {
|
|
62
|
+
"title": {
|
|
63
|
+
"type": "string",
|
|
64
|
+
"description": "Title of new task"
|
|
65
|
+
},
|
|
66
|
+
"col": {
|
|
67
|
+
"type": "string",
|
|
68
|
+
"enum": ["active", "planned", "icebox", "done"],
|
|
69
|
+
"default": "planned",
|
|
70
|
+
"description": "Column to place task in"
|
|
71
|
+
},
|
|
72
|
+
"epic": {
|
|
73
|
+
"type": "string",
|
|
74
|
+
"default": "—",
|
|
75
|
+
"description": "Epic group (optional)"
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
"required": ["title"],
|
|
79
|
+
"additionalProperties": false
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
```json
|
|
85
|
+
{
|
|
86
|
+
"type": "function",
|
|
87
|
+
"name": "kanban_move",
|
|
88
|
+
"description": "Move existing task to different column.",
|
|
89
|
+
"parameters": {
|
|
90
|
+
"type": "object",
|
|
91
|
+
"properties": {
|
|
92
|
+
"task_id": {
|
|
93
|
+
"type": "string",
|
|
94
|
+
"description": "Task ID to move"
|
|
95
|
+
},
|
|
96
|
+
"column": {
|
|
97
|
+
"type": "string",
|
|
98
|
+
"enum": ["active", "planned", "icebox", "done"],
|
|
99
|
+
"description": "New column"
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
"required": ["task_id", "column"],
|
|
103
|
+
"additionalProperties": false
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
```json
|
|
109
|
+
{
|
|
110
|
+
"type": "function",
|
|
111
|
+
"name": "kanban_toggle",
|
|
112
|
+
"description": "Toggle checkbox state for subtask (done/not done).",
|
|
113
|
+
"parameters": {
|
|
114
|
+
"type": "object",
|
|
115
|
+
"properties": {
|
|
116
|
+
"task_id": {
|
|
117
|
+
"type": "string",
|
|
118
|
+
"description": "Parent task ID"
|
|
119
|
+
},
|
|
120
|
+
"idx": {
|
|
121
|
+
"type": "integer",
|
|
122
|
+
"description": "Subtask index (starting from 0)"
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
"required": ["task_id", "idx"],
|
|
126
|
+
"additionalProperties": false
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## Usage Examples
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
# List all tasks (JSON)
|
|
135
|
+
python kanban.py list --json
|
|
136
|
+
|
|
137
|
+
# List only active tasks
|
|
138
|
+
python kanban.py list --col active --json
|
|
139
|
+
|
|
140
|
+
# Show task details
|
|
141
|
+
python kanban.py show PI-014-google-calendar
|
|
142
|
+
|
|
143
|
+
# Add new task
|
|
144
|
+
python kanban.py add "New function" --col planned --epic "Faza 6"
|
|
145
|
+
|
|
146
|
+
# Move task to different column
|
|
147
|
+
python kanban.py move PI-014-google-calendar active
|
|
148
|
+
|
|
149
|
+
# Toggle subtask
|
|
150
|
+
python kanban.py toggle PI-014-google-calendar 0
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## Kanban Columns
|
|
154
|
+
|
|
155
|
+
- `active` - in progress (max 1-2 tasks)
|
|
156
|
+
- `planned` - planned for implementation
|
|
157
|
+
- `icebox` - frozen / nice-to-have
|
|
158
|
+
- `done` - completed
|
|
159
|
+
|
|
160
|
+
## Data Models
|
|
161
|
+
|
|
162
|
+
### Task
|
|
163
|
+
```json
|
|
164
|
+
{
|
|
165
|
+
"id": "string",
|
|
166
|
+
"title": "string",
|
|
167
|
+
"column": "active|planned|icebox|done",
|
|
168
|
+
"epic_group": "string",
|
|
169
|
+
"created": "string",
|
|
170
|
+
"tasks": [
|
|
171
|
+
{
|
|
172
|
+
"done": "boolean",
|
|
173
|
+
"text": "string"
|
|
174
|
+
}
|
|
175
|
+
]
|
|
176
|
+
}
|
|
177
|
+
```
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to kanbango will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [2.0.0] - 2026-07-07
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- `kanban migrate` CLI command to convert `.md` task files to `.json`
|
|
12
|
+
- `migrateAll()` exported function in the core module
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
- **Breaking rename:** package renamed from `markdown-kanban` to `kanbango`
|
|
16
|
+
- All npm/npx references updated to `kanbango`
|
|
17
|
+
- MCP server name updated to `kanbango`
|
|
18
|
+
- Repository URLs updated to `k0r81/kanbango`
|
|
19
|
+
|
|
20
|
+
## [1.4.1] - 2026-03-17
|
|
21
|
+
|
|
22
|
+
### Added
|
|
23
|
+
- `npm test` now runs a simple test runner that includes regression tests
|
|
24
|
+
- Regression test for updating task lists
|
|
25
|
+
|
|
26
|
+
### Fixed
|
|
27
|
+
- `doUpdate` now replaces the `## Taski` section instead of appending duplicates
|
|
28
|
+
|
|
29
|
+
## [1.5.0] - 2026-07-07
|
|
30
|
+
|
|
31
|
+
### Added
|
|
32
|
+
- JSON-first task storage with rich task fields: `description`, `specs`, `acceptance_criteria`, `notes`
|
|
33
|
+
- Rich subtask descriptions in storage, MCP responses, and the web GUI
|
|
34
|
+
- MCP read shaping via `view` presets and explicit `fields`
|
|
35
|
+
- Structured MCP error responses with `code`, `message`, `hint`, `details`, and `retryable`
|
|
36
|
+
- Regression tests for read shaping, Markdown migration, and MCP responses
|
|
37
|
+
|
|
38
|
+
### Changed
|
|
39
|
+
- New tasks are now written as `.json` files in `backlog/<column>/`
|
|
40
|
+
- `kanban_update` supports patch-style updates and compact `return` payloads
|
|
41
|
+
- Web GUI editor now supports rich task planning fields and subtask descriptions
|
|
42
|
+
|
|
43
|
+
### Fixed
|
|
44
|
+
- Existing Markdown task files remain readable during transition and are migrated to JSON on write
|
|
45
|
+
|
|
46
|
+
## [1.3.1] - 2026-03-16
|
|
47
|
+
|
|
48
|
+
### Added
|
|
49
|
+
- `kanban mcp-init` command to generate project MCP configs for Claude Code and OpenCode
|
|
50
|
+
- Documentation for MCP per-project automation in README and LLM_AGENTS.md
|
|
51
|
+
- MCP GUI control tools: `kanban_gui_start`, `kanban_gui_stop`, `kanban_gui_status`
|
|
52
|
+
- README + LLM_AGENTS updates for GUI tools and npm package details
|
|
53
|
+
|
|
54
|
+
## [1.2.0] - 2026-03-16
|
|
55
|
+
|
|
56
|
+
### Added
|
|
57
|
+
- **LLM Agents documentation**: New `LLM_AGENTS.md` with complete guide for AI assistants
|
|
58
|
+
- Comprehensive tool examples with request/response patterns
|
|
59
|
+
- Usage patterns for common workflows (discovery, creation, progression, epic management)
|
|
60
|
+
- Best practices guide for LLM agents
|
|
61
|
+
- Error handling documentation
|
|
62
|
+
- **AGENTS.md**: Complete guide for AI coding agents with build/lint/test commands
|
|
63
|
+
|
|
64
|
+
### Improved
|
|
65
|
+
- Enhanced README reference to LLM agent documentation
|
|
66
|
+
- Better integration instructions for different MCP clients
|
|
67
|
+
|
|
68
|
+
### Note
|
|
69
|
+
- **npm publish requires 2FA**: Publishing to npm requires two-factor authentication enabled
|
|
70
|
+
- Use `npm publish --auth-token YOUR_TOKEN` with an automation token for CI/CD
|
|
71
|
+
- Or use OTP (one-time password) with `npm login --auth-type=legacy`
|
|
72
|
+
|
|
73
|
+
## [1.1.0] - 2026-03-16
|
|
74
|
+
|
|
75
|
+
### Changed
|
|
76
|
+
- **Major rewrite**: Migrated from Python to pure JavaScript
|
|
77
|
+
- Removed Python dependency - now requires only Node.js 16+
|
|
78
|
+
- All functionality now works natively in JavaScript
|
|
79
|
+
- **Consolidated MCP tools**: Reduced from 5 to 3 universal tools (read, create, update)
|
|
80
|
+
- Easier to implement across different MCP clients
|
|
81
|
+
|
|
82
|
+
### Added
|
|
83
|
+
- **MCP server integration**: Full Model Context Protocol support
|
|
84
|
+
- 3 unified MCP tools with operation-based approach:
|
|
85
|
+
- `kanban_read` - list tasks, filter, or get details (replaces list+show)
|
|
86
|
+
- `kanban_create` - create new tasks
|
|
87
|
+
- `kanban_update` - move, toggle, or edit tasks (replaces move+toggle)
|
|
88
|
+
- Enhanced tool descriptions with more context
|
|
89
|
+
- GitHub repository links in package.json
|
|
90
|
+
|
|
91
|
+
### Improved
|
|
92
|
+
- **Better UX**: 3 tools instead of 5, easier to understand at first glance
|
|
93
|
+
- Operation-based design allows for future extensibility
|
|
94
|
+
- Clearer purpose for each MCP tool
|
|
95
|
+
- Updated documentation with MCP configuration examples
|
|
96
|
+
|
|
97
|
+
### Removed
|
|
98
|
+
- Python runtime requirement
|
|
99
|
+
- `kanban.py` and `kanban-cmd.py` files (replaced by pure JS)
|
|
100
|
+
|
|
101
|
+
## [1.0.0] - 2026-03-15
|
|
102
|
+
|
|
103
|
+
### Added
|
|
104
|
+
- Initial release
|
|
105
|
+
- Markdown-based Kanban board
|
|
106
|
+
- Web GUI with swimlanes
|
|
107
|
+
- Full CLI support
|
|
108
|
+
- JSON output for AI agents
|
|
109
|
+
- Epic grouping
|
|
110
|
+
- Subtask progress tracking
|
|
111
|
+
- Cross-platform support (Windows, macOS, Linux)
|
|
112
|
+
- NPM package support
|
|
113
|
+
- `kanban` and `kanban-cmd` commands
|
|
114
|
+
|
|
115
|
+
### Features
|
|
116
|
+
- Four columns: active, planned, icebox, done
|
|
117
|
+
- Drag-and-drop interface
|
|
118
|
+
- Inline editing
|
|
119
|
+
- Real-time checkbox toggling
|
|
120
|
+
- Progress bars
|
|
121
|
+
- Toast notifications
|
|
122
|
+
- Responsive design
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|