@basementuniverse/kanbn 1.1.1 → 2.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/README.md +3 -0
- package/coverage/base.css +224 -0
- package/coverage/block-navigation.js +87 -0
- package/coverage/coverage-summary.json +31 -0
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +146 -0
- package/coverage/kanbn/index.html +116 -0
- package/coverage/kanbn/index.js.html +217 -0
- package/coverage/kanbn/src/board.js.html +646 -0
- package/coverage/kanbn/src/controller/add.js.html +1729 -0
- package/coverage/kanbn/src/controller/archive.js.html +277 -0
- package/coverage/kanbn/src/controller/board.js.html +217 -0
- package/coverage/kanbn/src/controller/burndown.js.html +607 -0
- package/coverage/kanbn/src/controller/comment.js.html +397 -0
- package/coverage/kanbn/src/controller/edit.js.html +2920 -0
- package/coverage/kanbn/src/controller/find.js.html +1597 -0
- package/coverage/kanbn/src/controller/gantt.js.html +1342 -0
- package/coverage/kanbn/src/controller/help.js.html +115 -0
- package/coverage/kanbn/src/controller/history.js.html +400 -0
- package/coverage/kanbn/src/controller/index.html +431 -0
- package/coverage/kanbn/src/controller/init.js.html +511 -0
- package/coverage/kanbn/src/controller/move.js.html +514 -0
- package/coverage/kanbn/src/controller/remove-all.js.html +226 -0
- package/coverage/kanbn/src/controller/remove.js.html +307 -0
- package/coverage/kanbn/src/controller/rename.js.html +397 -0
- package/coverage/kanbn/src/controller/restore.js.html +268 -0
- package/coverage/kanbn/src/controller/sort.js.html +1318 -0
- package/coverage/kanbn/src/controller/sprint.js.html +361 -0
- package/coverage/kanbn/src/controller/status.js.html +310 -0
- package/coverage/kanbn/src/controller/task.js.html +244 -0
- package/coverage/kanbn/src/controller/validate.js.html +367 -0
- package/coverage/kanbn/src/controller/version.js.html +100 -0
- package/coverage/kanbn/src/index.html +191 -0
- package/coverage/kanbn/src/main.js.html +9787 -0
- package/coverage/kanbn/src/parse-index.js.html +1063 -0
- package/coverage/kanbn/src/parse-markdown.js.html +202 -0
- package/coverage/kanbn/src/parse-task.js.html +2191 -0
- package/coverage/kanbn/src/utility.js.html +616 -0
- package/coverage/lcov.info +11837 -0
- package/coverage/prettify.css +1 -0
- package/coverage/prettify.js +2 -0
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +210 -0
- package/coverage/tmp/coverage-214292-1787777191526-0.json +1 -0
- package/coverage/tmp/coverage-214293-1787777184569-0.json +1 -0
- package/docs/advanced-configuration.md +25 -0
- package/docs/commands/add.txt +19 -0
- package/docs/commands/archive.txt +5 -0
- package/docs/commands/board.txt +8 -1
- package/docs/commands/boards.txt +34 -0
- package/docs/commands/burndown.txt +8 -4
- package/docs/commands/comment.txt +5 -0
- package/docs/commands/edit.txt +27 -0
- package/docs/commands/find.txt +56 -1
- package/docs/commands/gantt.txt +5 -0
- package/docs/commands/help.txt +2 -0
- package/docs/commands/history.txt +5 -0
- package/docs/commands/init.txt +13 -0
- package/docs/commands/move.txt +10 -1
- package/docs/commands/remove.txt +12 -1
- package/docs/commands/rename.txt +5 -0
- package/docs/commands/restore.txt +6 -0
- package/docs/commands/sort.txt +18 -2
- package/docs/commands/sprint.txt +9 -0
- package/docs/commands/status.txt +10 -1
- package/docs/commands/task.txt +5 -0
- package/docs/commands/validate.txt +27 -0
- package/docs/filtering-and-sorting.md +218 -0
- package/docs/index-structure.md +94 -19
- package/docs/index.md +28 -2
- package/docs/migration-2.0.md +92 -0
- package/docs/multiple-boards.md +258 -0
- package/docs/quick-start.md +57 -1
- package/docs/task-structure.md +33 -3
- package/docs/views.md +229 -0
- package/example/README.md +93 -0
- package/example/advanced/.kanbn/index.md +26 -0
- package/example/advanced/.kanbn/tasks/add-rate-limiting.md +18 -0
- package/example/advanced/.kanbn/tasks/add-sso-support.md +15 -0
- package/example/advanced/.kanbn/tasks/migrate-to-new-cdn.md +14 -0
- package/example/advanced/.kanbn/tasks/refresh-marketing-site.md +14 -0
- package/example/advanced/.kanbn/tasks/rotate-api-keys.md +15 -0
- package/example/advanced/.kanbn/tasks/split-billing-service.md +17 -0
- package/example/advanced/.kanbn/tasks/upgrade-node-runtime.md +19 -0
- package/example/advanced/kanbn.yml +59 -0
- package/example/boards/.kanbn/design.md +31 -0
- package/example/boards/.kanbn/index.md +44 -0
- package/example/boards/.kanbn/tasks/add-usage-alert-emails.md +19 -0
- package/example/boards/.kanbn/tasks/build-tenant-settings-page.md +43 -0
- package/example/boards/.kanbn/tasks/create-organization-switcher.md +44 -0
- package/example/boards/.kanbn/tasks/design-onboarding-checklist.md +22 -0
- package/example/boards/.kanbn/tasks/refresh-marketing-site.md +28 -0
- package/example/boards/.kanbn/tasks/ship-billing-portal.md +29 -0
- package/example/views/.kanbn/index.md +140 -0
- package/example/views/.kanbn/tasks/add-audit-log-export.md +18 -0
- package/example/views/.kanbn/tasks/add-dark-mode-toggle.md +16 -0
- package/example/views/.kanbn/tasks/build-webhook-retry-queue.md +15 -0
- package/example/views/.kanbn/tasks/fix-avatar-upload-crash.md +13 -0
- package/example/views/.kanbn/tasks/fix-expired-session-redirect.md +15 -0
- package/example/views/.kanbn/tasks/investigate-offline-mode.md +12 -0
- package/example/views/.kanbn/tasks/rewrite-search-indexer.md +12 -0
- package/example/views/.kanbn/tasks/tidy-up-settings-copy.md +12 -0
- package/package.json +12 -9
- package/routes/add.json +35 -11
- package/routes/archive.json +10 -2
- package/routes/board.json +11 -3
- package/routes/boards.json +30 -0
- package/routes/burndown.json +23 -7
- package/routes/comment.json +14 -4
- package/routes/edit.json +33 -10
- package/routes/find.json +37 -12
- package/routes/gantt.json +20 -6
- package/routes/history.json +39 -25
- package/routes/init.json +3 -1
- package/routes/move.json +22 -6
- package/routes/remove.json +15 -4
- package/routes/rename.json +11 -3
- package/routes/restore.json +8 -2
- package/routes/sort.json +35 -11
- package/routes/sprint.json +14 -4
- package/routes/status.json +23 -7
- package/routes/task.json +10 -2
- package/routes/validate.json +19 -4
- package/skills/kanbn-plan/SKILL.md +10 -1
- package/skills/kanbn-plan/references/index-structure.md +1 -0
- package/skills/kanbn-plan/references/task-structure.md +2 -0
- package/skills/kanbn-replan/SKILL.md +6 -1
- package/src/board.js +2 -1
- package/src/controller/add.js +52 -46
- package/src/controller/archive.js +8 -4
- package/src/controller/board.js +9 -4
- package/src/controller/boards.js +140 -0
- package/src/controller/burndown.js +9 -5
- package/src/controller/comment.js +9 -5
- package/src/controller/edit.js +74 -17
- package/src/controller/find.js +12 -9
- package/src/controller/gantt.js +8 -4
- package/src/controller/history.js +8 -4
- package/src/controller/init.js +39 -4
- package/src/controller/move.js +69 -15
- package/src/controller/remove.js +34 -11
- package/src/controller/rename.js +8 -4
- package/src/controller/restore.js +23 -8
- package/src/controller/sort.js +19 -3
- package/src/controller/sprint.js +31 -7
- package/src/controller/status.js +20 -4
- package/src/controller/task.js +22 -9
- package/src/controller/validate.js +139 -23
- package/src/git-user-name.js +19 -0
- package/src/main.d.ts +184 -6
- package/src/main.js +1642 -221
- package/src/parse-index.js +17 -0
- package/src/parse-markdown.js +3 -1
- package/src/parse-task.js +44 -1
- package/src/utility.js +166 -1
- package/PLANS.md +0 -9
- /package/example/{.kanbn → basic/.kanbn}/index.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/add-basic-activity-feed.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/add-passwordless-login-option.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/add-usage-alert-email-thresholds.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/build-email-template-system.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/build-invoice-download-endpoint.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/build-tenant-settings-page.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/create-organization-switcher.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/create-sandbox-environment-provisioner.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/create-self-serve-cancellation-flow.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/define-product-pricing-strategy.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/design-onboarding-checklist.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/design-team-invite-expiry-flow.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/implement-data-retention-policy-jobs.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/implement-feature-flags-foundation.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/implement-project-creation-wizard.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/implement-stripe-webhook-signature-check.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/implement-team-permissions-ui.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/implement-user-signup-and-login.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/integrate-crm-lead-sync.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/legal-review-terms-and-privacy.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/migrate-legacy-events-to-new-schema.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/optimize-dashboard-first-load.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/prototype-report-export-scheduler.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/publish-internal-qa-checklist.md +0 -0
- /package/example/{.kanbn → basic/.kanbn}/tasks/setup-ci-pipeline.md +0 -0
package/routes/comment.json
CHANGED
|
@@ -9,12 +9,22 @@
|
|
|
9
9
|
"interactive"
|
|
10
10
|
],
|
|
11
11
|
"string": [
|
|
12
|
-
"text"
|
|
12
|
+
"text",
|
|
13
|
+
"board"
|
|
13
14
|
],
|
|
14
15
|
"alias": {
|
|
15
|
-
"interactive": [
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
"interactive": [
|
|
17
|
+
"i"
|
|
18
|
+
],
|
|
19
|
+
"author": [
|
|
20
|
+
"a"
|
|
21
|
+
],
|
|
22
|
+
"text": [
|
|
23
|
+
"t"
|
|
24
|
+
],
|
|
25
|
+
"board": [
|
|
26
|
+
"b"
|
|
27
|
+
]
|
|
18
28
|
}
|
|
19
29
|
},
|
|
20
30
|
"controller": "./src/controller/comment",
|
package/routes/edit.json
CHANGED
|
@@ -21,18 +21,41 @@
|
|
|
21
21
|
"due",
|
|
22
22
|
"plannedStart",
|
|
23
23
|
"plannedFinish",
|
|
24
|
-
"progress"
|
|
24
|
+
"progress",
|
|
25
|
+
"unset",
|
|
26
|
+
"board"
|
|
25
27
|
],
|
|
26
28
|
"alias": {
|
|
27
|
-
"interactive": [
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
"
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
"
|
|
34
|
-
|
|
35
|
-
|
|
29
|
+
"interactive": [
|
|
30
|
+
"i"
|
|
31
|
+
],
|
|
32
|
+
"name": [
|
|
33
|
+
"n"
|
|
34
|
+
],
|
|
35
|
+
"description": [
|
|
36
|
+
"d"
|
|
37
|
+
],
|
|
38
|
+
"column": [
|
|
39
|
+
"c"
|
|
40
|
+
],
|
|
41
|
+
"sub-task": [
|
|
42
|
+
"s"
|
|
43
|
+
],
|
|
44
|
+
"tag": [
|
|
45
|
+
"t"
|
|
46
|
+
],
|
|
47
|
+
"relation": [
|
|
48
|
+
"r"
|
|
49
|
+
],
|
|
50
|
+
"due": [
|
|
51
|
+
"e"
|
|
52
|
+
],
|
|
53
|
+
"assigned": [
|
|
54
|
+
"a"
|
|
55
|
+
],
|
|
56
|
+
"board": [
|
|
57
|
+
"b"
|
|
58
|
+
]
|
|
36
59
|
}
|
|
37
60
|
},
|
|
38
61
|
"controller": "./src/controller/edit",
|
package/routes/find.json
CHANGED
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
"boolean": [
|
|
9
9
|
"interactive",
|
|
10
10
|
"quiet",
|
|
11
|
-
"json"
|
|
11
|
+
"json",
|
|
12
|
+
"all-boards"
|
|
12
13
|
],
|
|
13
14
|
"string": [
|
|
14
15
|
"id",
|
|
@@ -32,19 +33,43 @@
|
|
|
32
33
|
"plannedFinish",
|
|
33
34
|
"workload",
|
|
34
35
|
"progress",
|
|
35
|
-
"assigned"
|
|
36
|
+
"assigned",
|
|
37
|
+
"board"
|
|
36
38
|
],
|
|
37
39
|
"alias": {
|
|
38
|
-
"interactive": [
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
"
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
"
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
"
|
|
40
|
+
"interactive": [
|
|
41
|
+
"i"
|
|
42
|
+
],
|
|
43
|
+
"name": [
|
|
44
|
+
"n"
|
|
45
|
+
],
|
|
46
|
+
"description": [
|
|
47
|
+
"d"
|
|
48
|
+
],
|
|
49
|
+
"column": [
|
|
50
|
+
"c"
|
|
51
|
+
],
|
|
52
|
+
"quiet": [
|
|
53
|
+
"q"
|
|
54
|
+
],
|
|
55
|
+
"due": [
|
|
56
|
+
"e"
|
|
57
|
+
],
|
|
58
|
+
"sub-task": [
|
|
59
|
+
"s"
|
|
60
|
+
],
|
|
61
|
+
"tag": [
|
|
62
|
+
"t"
|
|
63
|
+
],
|
|
64
|
+
"relation": [
|
|
65
|
+
"r"
|
|
66
|
+
],
|
|
67
|
+
"json": [
|
|
68
|
+
"j"
|
|
69
|
+
],
|
|
70
|
+
"board": [
|
|
71
|
+
"b"
|
|
72
|
+
]
|
|
48
73
|
}
|
|
49
74
|
},
|
|
50
75
|
"controller": "./src/controller/find",
|
package/routes/gantt.json
CHANGED
|
@@ -12,14 +12,28 @@
|
|
|
12
12
|
"assigned",
|
|
13
13
|
"column",
|
|
14
14
|
"date",
|
|
15
|
-
"now"
|
|
15
|
+
"now",
|
|
16
|
+
"board"
|
|
16
17
|
],
|
|
17
18
|
"alias": {
|
|
18
|
-
"json": [
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
"
|
|
22
|
-
|
|
19
|
+
"json": [
|
|
20
|
+
"j"
|
|
21
|
+
],
|
|
22
|
+
"assigned": [
|
|
23
|
+
"a"
|
|
24
|
+
],
|
|
25
|
+
"column": [
|
|
26
|
+
"c"
|
|
27
|
+
],
|
|
28
|
+
"date": [
|
|
29
|
+
"d"
|
|
30
|
+
],
|
|
31
|
+
"now": [
|
|
32
|
+
"n"
|
|
33
|
+
],
|
|
34
|
+
"board": [
|
|
35
|
+
"b"
|
|
36
|
+
]
|
|
23
37
|
}
|
|
24
38
|
},
|
|
25
39
|
"controller": "./src/controller/gantt",
|
package/routes/history.json
CHANGED
|
@@ -1,27 +1,41 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
2
|
+
"name": "Task History",
|
|
3
|
+
"commands": [
|
|
4
|
+
"history",
|
|
5
|
+
"hi"
|
|
6
|
+
],
|
|
7
|
+
"args": {
|
|
8
|
+
"boolean": [
|
|
9
|
+
"json"
|
|
10
|
+
],
|
|
11
|
+
"string": [
|
|
12
|
+
"date",
|
|
13
|
+
"sprint",
|
|
14
|
+
"assigned",
|
|
15
|
+
"task",
|
|
16
|
+
"board"
|
|
17
|
+
],
|
|
18
|
+
"alias": {
|
|
19
|
+
"json": [
|
|
20
|
+
"j"
|
|
21
|
+
],
|
|
22
|
+
"date": [
|
|
23
|
+
"d"
|
|
24
|
+
],
|
|
25
|
+
"sprint": [
|
|
26
|
+
"p"
|
|
27
|
+
],
|
|
28
|
+
"assigned": [
|
|
29
|
+
"a"
|
|
30
|
+
],
|
|
31
|
+
"task": [
|
|
32
|
+
"t"
|
|
33
|
+
],
|
|
34
|
+
"board": [
|
|
35
|
+
"b"
|
|
36
|
+
]
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"controller": "./src/controller/history",
|
|
40
|
+
"help": "./docs/commands/history.txt"
|
|
27
41
|
}
|
package/routes/init.json
CHANGED
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
"string": [
|
|
9
9
|
"name",
|
|
10
10
|
"description",
|
|
11
|
-
"column"
|
|
11
|
+
"column",
|
|
12
|
+
"board"
|
|
12
13
|
],
|
|
13
14
|
"boolean": [
|
|
14
15
|
"interactive"
|
|
@@ -17,6 +18,7 @@
|
|
|
17
18
|
"name": ["n"],
|
|
18
19
|
"description": ["d"],
|
|
19
20
|
"column": ["c"],
|
|
21
|
+
"board": ["b"],
|
|
20
22
|
"interactive": ["i"]
|
|
21
23
|
}
|
|
22
24
|
},
|
package/routes/move.json
CHANGED
|
@@ -7,17 +7,33 @@
|
|
|
7
7
|
"args": {
|
|
8
8
|
"boolean": [
|
|
9
9
|
"interactive",
|
|
10
|
-
"relative"
|
|
10
|
+
"relative",
|
|
11
|
+
"add"
|
|
11
12
|
],
|
|
12
13
|
"string": [
|
|
13
14
|
"column",
|
|
14
|
-
"position"
|
|
15
|
+
"position",
|
|
16
|
+
"board"
|
|
15
17
|
],
|
|
16
18
|
"alias": {
|
|
17
|
-
"interactive": [
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
"
|
|
19
|
+
"interactive": [
|
|
20
|
+
"i"
|
|
21
|
+
],
|
|
22
|
+
"column": [
|
|
23
|
+
"c"
|
|
24
|
+
],
|
|
25
|
+
"position": [
|
|
26
|
+
"p"
|
|
27
|
+
],
|
|
28
|
+
"relative": [
|
|
29
|
+
"r"
|
|
30
|
+
],
|
|
31
|
+
"board": [
|
|
32
|
+
"b"
|
|
33
|
+
]
|
|
34
|
+
},
|
|
35
|
+
"default": {
|
|
36
|
+
"add": true
|
|
21
37
|
}
|
|
22
38
|
},
|
|
23
39
|
"controller": "./src/controller/move",
|
package/routes/remove.json
CHANGED
|
@@ -7,12 +7,23 @@
|
|
|
7
7
|
"args": {
|
|
8
8
|
"boolean": [
|
|
9
9
|
"force",
|
|
10
|
-
"index"
|
|
10
|
+
"index",
|
|
11
|
+
"all-boards"
|
|
11
12
|
],
|
|
12
13
|
"alias": {
|
|
13
|
-
"force": [
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
"force": [
|
|
15
|
+
"f"
|
|
16
|
+
],
|
|
17
|
+
"index": [
|
|
18
|
+
"x"
|
|
19
|
+
],
|
|
20
|
+
"board": [
|
|
21
|
+
"b"
|
|
22
|
+
]
|
|
23
|
+
},
|
|
24
|
+
"string": [
|
|
25
|
+
"board"
|
|
26
|
+
]
|
|
16
27
|
},
|
|
17
28
|
"controller": "./src/controller/remove",
|
|
18
29
|
"help": "./docs/commands/remove.txt"
|
package/routes/rename.json
CHANGED
|
@@ -9,11 +9,19 @@
|
|
|
9
9
|
"interactive"
|
|
10
10
|
],
|
|
11
11
|
"string": [
|
|
12
|
-
"name"
|
|
12
|
+
"name",
|
|
13
|
+
"board"
|
|
13
14
|
],
|
|
14
15
|
"alias": {
|
|
15
|
-
"interactive": [
|
|
16
|
-
|
|
16
|
+
"interactive": [
|
|
17
|
+
"i"
|
|
18
|
+
],
|
|
19
|
+
"name": [
|
|
20
|
+
"n"
|
|
21
|
+
],
|
|
22
|
+
"board": [
|
|
23
|
+
"b"
|
|
24
|
+
]
|
|
17
25
|
}
|
|
18
26
|
},
|
|
19
27
|
"controller": "./src/controller/rename",
|
package/routes/restore.json
CHANGED
package/routes/sort.json
CHANGED
|
@@ -31,19 +31,43 @@
|
|
|
31
31
|
"plannedFinish",
|
|
32
32
|
"workload",
|
|
33
33
|
"progress",
|
|
34
|
-
"assigned"
|
|
34
|
+
"assigned",
|
|
35
|
+
"board"
|
|
35
36
|
],
|
|
36
37
|
"alias": {
|
|
37
|
-
"interactive": [
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
"
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
"
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
"
|
|
38
|
+
"interactive": [
|
|
39
|
+
"i"
|
|
40
|
+
],
|
|
41
|
+
"name": [
|
|
42
|
+
"n"
|
|
43
|
+
],
|
|
44
|
+
"description": [
|
|
45
|
+
"d"
|
|
46
|
+
],
|
|
47
|
+
"sub-task": [
|
|
48
|
+
"s"
|
|
49
|
+
],
|
|
50
|
+
"tag": [
|
|
51
|
+
"t"
|
|
52
|
+
],
|
|
53
|
+
"relation": [
|
|
54
|
+
"r"
|
|
55
|
+
],
|
|
56
|
+
"due": [
|
|
57
|
+
"e"
|
|
58
|
+
],
|
|
59
|
+
"workload": [
|
|
60
|
+
"w"
|
|
61
|
+
],
|
|
62
|
+
"ascending": [
|
|
63
|
+
"a"
|
|
64
|
+
],
|
|
65
|
+
"descending": [
|
|
66
|
+
"z"
|
|
67
|
+
],
|
|
68
|
+
"board": [
|
|
69
|
+
"b"
|
|
70
|
+
]
|
|
47
71
|
}
|
|
48
72
|
},
|
|
49
73
|
"controller": "./src/controller/sort",
|
package/routes/sprint.json
CHANGED
|
@@ -10,12 +10,22 @@
|
|
|
10
10
|
],
|
|
11
11
|
"string": [
|
|
12
12
|
"name",
|
|
13
|
-
"description"
|
|
13
|
+
"description",
|
|
14
|
+
"board"
|
|
14
15
|
],
|
|
15
16
|
"alias": {
|
|
16
|
-
"interactive": [
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
"interactive": [
|
|
18
|
+
"i"
|
|
19
|
+
],
|
|
20
|
+
"name": [
|
|
21
|
+
"n"
|
|
22
|
+
],
|
|
23
|
+
"description": [
|
|
24
|
+
"d"
|
|
25
|
+
],
|
|
26
|
+
"board": [
|
|
27
|
+
"b"
|
|
28
|
+
]
|
|
19
29
|
}
|
|
20
30
|
},
|
|
21
31
|
"controller": "./src/controller/sprint",
|
package/routes/status.json
CHANGED
|
@@ -13,15 +13,31 @@
|
|
|
13
13
|
],
|
|
14
14
|
"string": [
|
|
15
15
|
"sprint",
|
|
16
|
-
"date"
|
|
16
|
+
"date",
|
|
17
|
+
"board"
|
|
17
18
|
],
|
|
18
19
|
"alias": {
|
|
19
|
-
"untracked": [
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
"
|
|
23
|
-
|
|
24
|
-
|
|
20
|
+
"untracked": [
|
|
21
|
+
"u"
|
|
22
|
+
],
|
|
23
|
+
"quiet": [
|
|
24
|
+
"q"
|
|
25
|
+
],
|
|
26
|
+
"json": [
|
|
27
|
+
"j"
|
|
28
|
+
],
|
|
29
|
+
"due": [
|
|
30
|
+
"e"
|
|
31
|
+
],
|
|
32
|
+
"sprint": [
|
|
33
|
+
"p"
|
|
34
|
+
],
|
|
35
|
+
"date": [
|
|
36
|
+
"d"
|
|
37
|
+
],
|
|
38
|
+
"board": [
|
|
39
|
+
"b"
|
|
40
|
+
]
|
|
25
41
|
}
|
|
26
42
|
},
|
|
27
43
|
"controller": "./src/controller/status",
|
package/routes/task.json
CHANGED
package/routes/validate.json
CHANGED
|
@@ -6,12 +6,27 @@
|
|
|
6
6
|
"args": {
|
|
7
7
|
"boolean": [
|
|
8
8
|
"json",
|
|
9
|
-
"save"
|
|
9
|
+
"save",
|
|
10
|
+
"fix",
|
|
11
|
+
"all-boards"
|
|
10
12
|
],
|
|
11
13
|
"alias": {
|
|
12
|
-
"json": [
|
|
13
|
-
|
|
14
|
-
|
|
14
|
+
"json": [
|
|
15
|
+
"j"
|
|
16
|
+
],
|
|
17
|
+
"save": [
|
|
18
|
+
"s"
|
|
19
|
+
],
|
|
20
|
+
"fix": [
|
|
21
|
+
"f"
|
|
22
|
+
],
|
|
23
|
+
"board": [
|
|
24
|
+
"b"
|
|
25
|
+
]
|
|
26
|
+
},
|
|
27
|
+
"string": [
|
|
28
|
+
"board"
|
|
29
|
+
]
|
|
15
30
|
},
|
|
16
31
|
"controller": "./src/controller/validate",
|
|
17
32
|
"help": "./docs/commands/validate.txt"
|
|
@@ -13,9 +13,18 @@ Do not use this skill to implement the project, edit source code, scaffold files
|
|
|
13
13
|
|
|
14
14
|
Your output must stay inside the Kanbn planning surface:
|
|
15
15
|
|
|
16
|
-
- `.kanbn/index.md`
|
|
16
|
+
- `.kanbn/index.md` — the main board
|
|
17
|
+
- `.kanbn/{board-slug}.md` — any secondary boards, in exactly the same format as the index
|
|
17
18
|
- `.kanbn/tasks/*.md`
|
|
18
19
|
|
|
20
|
+
A workspace may hold several boards over one shared pool of tasks. Every board file is a sibling of
|
|
21
|
+
`index.md` inside `.kanbn/`, and boards own membership: a task can be referenced by several boards,
|
|
22
|
+
in a different column on each. Task files never record which boards they belong to.
|
|
23
|
+
|
|
24
|
+
Unless the user asks for more than one board, plan onto `.kanbn/index.md` alone. When they do want
|
|
25
|
+
several, write each board file yourself in the same format, and make sure any task referenced by a
|
|
26
|
+
board has a file in `.kanbn/tasks/`.
|
|
27
|
+
|
|
19
28
|
Do not create application code, tests, CI files, or documentation unrelated to the Kanbn board.
|
|
20
29
|
|
|
21
30
|
If the user asks for planning plus implementation, complete the planning portion in Kanbn format first and keep the planning files cleanly separated from any later work.
|
|
@@ -38,6 +38,7 @@ Short project summary and planning assumptions.
|
|
|
38
38
|
- After the description, each level-2 heading defines a column.
|
|
39
39
|
- Each column should contain a markdown list of task links.
|
|
40
40
|
- Each task link should point to `tasks/<task-id>.md`.
|
|
41
|
+
- A task placed in a column listed in `startedColumns` or `completedColumns` should carry the matching `started` / `completed` date in its metadata. Kanbn reads task state from those dates, not from the column.
|
|
41
42
|
- The link text should be the task id, not the human-readable title.
|
|
42
43
|
|
|
43
44
|
## Recommended Defaults
|
|
@@ -106,6 +106,8 @@ Usually omit:
|
|
|
106
106
|
|
|
107
107
|
Add metadata only when the user supplied it or when the board already relies on it.
|
|
108
108
|
|
|
109
|
+
The one exception is a task you place in a started or completed column. Kanbn decides whether a task has started or been completed from its `started` and `completed` dates, not from the column it is in, so a task placed in `In Progress` or `Done` without those dates will be reported as drifted and will be missing from burndown charts. If you place a task in one of those columns because the user told you the work is already underway or finished, write the matching date. If you don't know when it happened, leave the task in a column that doesn't imply state.
|
|
110
|
+
|
|
109
111
|
Good uses of metadata:
|
|
110
112
|
|
|
111
113
|
- `tags` for epics, teams, domains, or sizing labels
|
|
@@ -13,9 +13,14 @@ Do not use this skill to redesign scope, rewrite completed tasks, or invent new
|
|
|
13
13
|
|
|
14
14
|
Your output must stay inside the Kanbn task surface:
|
|
15
15
|
|
|
16
|
-
- `.kanbn/index.md`
|
|
16
|
+
- `.kanbn/index.md` — the main board
|
|
17
|
+
- `.kanbn/{board-slug}.md` — any secondary boards, in exactly the same format as the index
|
|
17
18
|
- `.kanbn/tasks/*.md`
|
|
18
19
|
|
|
20
|
+
A workspace may hold several boards over one shared pool of tasks. Rescheduling changes task
|
|
21
|
+
metadata dates, which are shared, so it applies to every board at once — you do not need to touch
|
|
22
|
+
board files unless a task's column changes.
|
|
23
|
+
|
|
19
24
|
You may read the current board and gantt output, but the end result should be a revised schedule for existing tasks, not a new plan.
|
|
20
25
|
|
|
21
26
|
Do not modify completed tasks unless the user explicitly asks to reopen them. Leave completed task descriptions, relations, and completion history intact.
|
package/src/board.js
CHANGED
|
@@ -35,6 +35,7 @@ module.exports = (() => {
|
|
|
35
35
|
started: 'started' in task.metadata ? formatDate(task.metadata.started, dateFormat) : '',
|
|
36
36
|
completed: 'completed' in task.metadata ? formatDate(task.metadata.completed, dateFormat) : '',
|
|
37
37
|
due: 'due' in task.metadata ? formatDate(task.metadata.due, dateFormat) : '',
|
|
38
|
+
assigned: 'assigned' in task.metadata ? task.metadata.assigned : '',
|
|
38
39
|
tags: 'tags' in task.metadata ? task.metadata.tags : [],
|
|
39
40
|
subTasks: task.subTasks,
|
|
40
41
|
relations: task.relations,
|
|
@@ -177,7 +178,7 @@ module.exports = (() => {
|
|
|
177
178
|
borderChars: 'lightRounded',
|
|
178
179
|
borderAttr: { color: 'grey' },
|
|
179
180
|
textAttr: { color: 'white', bgColor: 'default' },
|
|
180
|
-
width: term.width,
|
|
181
|
+
width: utility.terminalWidth(term.width),
|
|
181
182
|
fit: true
|
|
182
183
|
}
|
|
183
184
|
);
|