@basementuniverse/kanbn 2.0.0 → 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 +2 -1
- package/docs/advanced-configuration.md +23 -0
- package/docs/commands/add.txt +9 -0
- package/docs/commands/archive.txt +5 -0
- package/docs/commands/board.txt +5 -0
- package/docs/commands/boards.txt +34 -0
- package/docs/commands/burndown.txt +6 -0
- package/docs/commands/comment.txt +5 -0
- package/docs/commands/edit.txt +5 -0
- package/docs/commands/find.txt +11 -0
- package/docs/commands/gantt.txt +5 -0
- package/docs/commands/help.txt +1 -0
- package/docs/commands/history.txt +5 -0
- package/docs/commands/init.txt +13 -0
- package/docs/commands/move.txt +9 -0
- 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 +5 -0
- 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 +15 -0
- package/docs/index-structure.md +26 -0
- package/docs/index.md +3 -1
- package/docs/multiple-boards.md +258 -0
- package/docs/quick-start.md +21 -1
- package/docs/task-structure.md +22 -1
- package/example/README.md +23 -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/package.json +9 -7
- 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 +32 -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 +18 -5
- package/skills/kanbn-plan/SKILL.md +10 -1
- package/skills/kanbn-replan/SKILL.md +6 -1
- package/src/board.js +1 -1
- package/src/controller/add.js +52 -46
- package/src/controller/archive.js +8 -4
- package/src/controller/board.js +8 -9
- 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 +9 -5
- 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 +8 -4
- package/src/controller/task.js +22 -9
- package/src/controller/validate.js +60 -7
- package/src/git-user-name.js +19 -0
- package/src/main.d.ts +184 -6
- package/src/main.js +1333 -63
- package/src/parse-index.js +14 -0
- package/src/parse-task.js +16 -0
- package/src/utility.js +140 -0
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@ A CLI kanban board application.
|
|
|
4
4
|
|
|
5
5
|
Documentation can be found [here](./docs/index.md).
|
|
6
6
|
|
|
7
|
-
Ready-to-run example
|
|
7
|
+
Ready-to-run example workspaces live in [`example`](./example) - a [basic board](./example/basic), one demonstrating [views and lanes](./example/views), one demonstrating [multiple boards](./example/boards), and one demonstrating [advanced configuration](./example/advanced).
|
|
8
8
|
|
|
9
9
|
## Installation
|
|
10
10
|
|
|
@@ -24,6 +24,7 @@ Where <command> is one of:
|
|
|
24
24
|
version ....... Show package version
|
|
25
25
|
init .......... Initialise kanbn board
|
|
26
26
|
board ......... Show the kanbn board
|
|
27
|
+
boards ........ List the boards in this workspace
|
|
27
28
|
task .......... Show a kanbn task
|
|
28
29
|
add ........... Add a kanbn task
|
|
29
30
|
edit .......... Edit a kanbn task
|
|
@@ -8,6 +8,8 @@ If any project options are added to the index file, then the next time Kanbn wri
|
|
|
8
8
|
|
|
9
9
|
_Note: in future, it might be possible to split project options between the index and configuration files, but for now configuration must be saved inside only one of these files._
|
|
10
10
|
|
|
11
|
+
This applies to the **main board**. In a workspace with [several boards](multiple-boards.md), a secondary board's own options always live in that board file's front matter, and a board-local operation never writes to the configuration file.
|
|
12
|
+
|
|
11
13
|
_Note: Kanbn rewrites whichever file holds the project options every time it saves them (`kanbn add`, `kanbn move`, `kanbn sort --save`, `kanbn validate --save`, and so on). The YAML is regenerated, so formatting and comments in that file are not preserved._
|
|
12
14
|
|
|
13
15
|
## Configuring default locations
|
|
@@ -48,3 +50,24 @@ This will rename the folder where tasks are stored. By default this is `tasks`.
|
|
|
48
50
|
### `archiveFolder`
|
|
49
51
|
|
|
50
52
|
This will rename the archive folder where archived tasks are stored. By default this is `archive`. It is relative to the main folder.
|
|
53
|
+
|
|
54
|
+
## Multiple boards
|
|
55
|
+
|
|
56
|
+
Two more workspace-scoped options control [multiple boards](multiple-boards.md): `defaultBoard` names the board that commands target when `-b` isn't given, and `boards` controls discovery, display order and per-board options.
|
|
57
|
+
|
|
58
|
+
```yaml
|
|
59
|
+
defaultBoard: design
|
|
60
|
+
boards:
|
|
61
|
+
exclude:
|
|
62
|
+
- notes.md
|
|
63
|
+
order:
|
|
64
|
+
- index
|
|
65
|
+
- design
|
|
66
|
+
design:
|
|
67
|
+
hiddenColumns:
|
|
68
|
+
- Ideas
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Note that `indexFile` also sets the **main board's slug**: with `indexFile: board.md`, the main board's slug is `board`, and `main` / `default` still resolve to it.
|
|
72
|
+
|
|
73
|
+
Where a configuration file exists, everything in it is inherited by every board — it is workspace-level by construction, so a board-scoped option declared there is a deliberate statement about all boards. Where there is no configuration file, the workspace options live in the main board's front matter, and only the workspace-scoped ones propagate; `startedColumns`, `views` and the rest stay with the main board.
|
package/docs/commands/add.txt
CHANGED
|
@@ -70,3 +70,12 @@ Examples:
|
|
|
70
70
|
|
|
71
71
|
{b}kanbn a -ui -f "my-task-3" -f "my-task-4" -c "Done"{b}
|
|
72
72
|
Interactively adds untracked tasks "my-task-3.md" and "my-task-4.md" to the "Done" column.
|
|
73
|
+
|
|
74
|
+
{b}kanbn add --board "board-slug"{b}
|
|
75
|
+
{b}kanbn add -b "board-slug"{b}
|
|
76
|
+
Add the task to a board other than the main one. This option can be repeated to put one task on
|
|
77
|
+
several boards at once - the task file is created once and every board named references it:
|
|
78
|
+
{b}kanbn add -n "Task" -b index -b design -c Todo -c Designing{b}
|
|
79
|
+
Each {b}-b{b} pairs with the {b}-c{b} in the same position; boards with no {b}-c{b} of their own
|
|
80
|
+
use the first one given, and a board that hasn't got that column falls back to its first column
|
|
81
|
+
with a notice. With a single board an unknown column is still an error.
|
|
@@ -10,3 +10,8 @@ Options:
|
|
|
10
10
|
{b}kanbn archive --list{b}
|
|
11
11
|
{b}kanbn archive -l{b}
|
|
12
12
|
Show a list of archived task filenames.
|
|
13
|
+
|
|
14
|
+
{b}kanbn archive "task-id" --board "board-slug"{b}
|
|
15
|
+
{b}kanbn archive "task-id" -b "board-slug"{b}
|
|
16
|
+
Target a board other than the main one. Falls back to the KANBN_BOARD environment variable and
|
|
17
|
+
then to the defaultBoard option. See {b}kanbn boards{b} for the list of boards.
|
package/docs/commands/board.txt
CHANGED
|
@@ -13,3 +13,8 @@ Options:
|
|
|
13
13
|
{b}kanbn board -j{b}
|
|
14
14
|
Output raw data instead of rendering the board. The data will be returned in JSON format.
|
|
15
15
|
This is the quickest way to check what a view's filters actually match.
|
|
16
|
+
|
|
17
|
+
{b}kanbn board --board "board-slug"{b}
|
|
18
|
+
{b}kanbn board -b "board-slug"{b}
|
|
19
|
+
Target a board other than the main one. Falls back to the KANBN_BOARD environment variable and
|
|
20
|
+
then to the defaultBoard option. See {b}kanbn boards{b} for the list of boards.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{b}kanbn boards{b}
|
|
2
|
+
|
|
3
|
+
List the boards in this workspace.
|
|
4
|
+
|
|
5
|
+
A board is a markdown file directly inside the kanbn folder, in the same format as the index. The
|
|
6
|
+
index file is the main board; every other markdown file beside it is a secondary board. All boards
|
|
7
|
+
share one task folder, so a task can appear on several boards, in a different column on each.
|
|
8
|
+
|
|
9
|
+
Create a board with {b}kanbn init -b "board-slug"{b}, and target one with {b}-b "board-slug"{b} on
|
|
10
|
+
any board-scoped command.
|
|
11
|
+
|
|
12
|
+
Options:
|
|
13
|
+
{b}kanbn boards --tasks{b}
|
|
14
|
+
{b}kanbn boards -t{b}
|
|
15
|
+
Show every task that appears on more than one board, with the column it occupies on each.
|
|
16
|
+
|
|
17
|
+
{b}kanbn boards --tasks --all{b}
|
|
18
|
+
{b}kanbn boards -t -a{b}
|
|
19
|
+
Show every tracked task, not only the ones on more than one board.
|
|
20
|
+
|
|
21
|
+
{b}kanbn boards --rename "board-slug" --name "Board Name"{b}
|
|
22
|
+
{b}kanbn boards -r "board-slug" -n "Board Name"{b}
|
|
23
|
+
Rename a board. The positional argument is the new slug, and {b}--name{b} sets the display name:
|
|
24
|
+
{b}kanbn boards --rename design ux --name "UX Pipeline"{b}
|
|
25
|
+
Either the new slug or {b}--name{b} may be omitted, but not both. The main board can't be renamed.
|
|
26
|
+
|
|
27
|
+
{b}kanbn boards --delete "board-slug"{b}
|
|
28
|
+
{b}kanbn boards -d "board-slug"{b}
|
|
29
|
+
Delete a board file. Task files are never deleted, but tasks referenced only by this board become
|
|
30
|
+
untracked - if that would happen, the tasks are listed and {b}-f{b} is required to go ahead.
|
|
31
|
+
|
|
32
|
+
{b}kanbn boards --json{b}
|
|
33
|
+
{b}kanbn boards -j{b}
|
|
34
|
+
Output the board list, or the cross-board task overview, in JSON format.
|
|
@@ -37,3 +37,9 @@ Options:
|
|
|
37
37
|
{b}kanbn burndown --n "days"|"hours"|"minutes"|"seconds"{b}
|
|
38
38
|
Normalise dates. Task event times (history events or legacy created/started/completed dates) will be rounded down to the nearest day, hour, minute or second. This may cause task events to be grouped together.
|
|
39
39
|
If this option is set to a blank or unsupported value, the normalisation mode will be automatically selected based on the date range.
|
|
40
|
+
|
|
41
|
+
{b}kanbn burndown --board "board-slug"{b}
|
|
42
|
+
{b}kanbn burndown -b "board-slug"{b}
|
|
43
|
+
Chart a board other than the main one. Burndown measures work in flight, so a board that
|
|
44
|
+
declares no {b}startedColumns{b} has nothing to chart and says so rather than drawing an empty
|
|
45
|
+
chart.
|
|
@@ -15,3 +15,8 @@ Options:
|
|
|
15
15
|
{b}kanbn comment "task-id" --text "text"{b}
|
|
16
16
|
{b}kanbn comment "task-id" -t "text"{b}
|
|
17
17
|
Set the comment text.
|
|
18
|
+
|
|
19
|
+
{b}kanbn comment "task-id" --board "board-slug"{b}
|
|
20
|
+
{b}kanbn comment "task-id" -b "board-slug"{b}
|
|
21
|
+
Target a board other than the main one. Falls back to the KANBN_BOARD environment variable and
|
|
22
|
+
then to the defaultBoard option. See {b}kanbn boards{b} for the list of boards.
|
package/docs/commands/edit.txt
CHANGED
|
@@ -78,3 +78,8 @@ Options:
|
|
|
78
78
|
|
|
79
79
|
{b}kanbn edit --remove-<custom field name>{b}
|
|
80
80
|
Remove a custom metadata field.
|
|
81
|
+
|
|
82
|
+
{b}kanbn edit "task-id" --board "board-slug"{b}
|
|
83
|
+
{b}kanbn edit "task-id" -b "board-slug"{b}
|
|
84
|
+
Target a board other than the main one. Falls back to the KANBN_BOARD environment variable and
|
|
85
|
+
then to the defaultBoard option. See {b}kanbn boards{b} for the list of boards.
|
package/docs/commands/find.txt
CHANGED
|
@@ -137,3 +137,14 @@ Examples:
|
|
|
137
137
|
|
|
138
138
|
{b}kanbn find --count-sub-tasks 1 --count-sub-tasks 99 --progress 0 -q{b}
|
|
139
139
|
List the ids of tasks that have sub-tasks but no progress yet.
|
|
140
|
+
|
|
141
|
+
{b}kanbn find --board "board-slug"{b}
|
|
142
|
+
{b}kanbn find -b "board-slug"{b}
|
|
143
|
+
Target a board other than the main one. Falls back to the KANBN_BOARD environment variable and
|
|
144
|
+
then to the defaultBoard option. See {b}kanbn boards{b} for the list of boards.
|
|
145
|
+
|
|
146
|
+
{b}kanbn find --all-boards{b}
|
|
147
|
+
Search every board in the workspace. A task on several boards appears once, annotated with the
|
|
148
|
+
board and column it occupies on each. Without this, the search is scoped to the target board.
|
|
149
|
+
This can't be combined with {b}--sprint{b}: sprint numbers and names are relative to one board's
|
|
150
|
+
list, so there is no sensible answer across several.
|
package/docs/commands/gantt.txt
CHANGED
|
@@ -30,3 +30,8 @@ Options:
|
|
|
30
30
|
{b}kanbn gantt --now "date"{b}
|
|
31
31
|
{b}kanbn gantt -n "date"{b}
|
|
32
32
|
Mock the current date used for the "now" line and single-date range filtering.
|
|
33
|
+
|
|
34
|
+
{b}kanbn gantt --board "board-slug"{b}
|
|
35
|
+
{b}kanbn gantt -b "board-slug"{b}
|
|
36
|
+
Target a board other than the main one. Falls back to the KANBN_BOARD environment variable and
|
|
37
|
+
then to the defaultBoard option. See {b}kanbn boards{b} for the list of boards.
|
package/docs/commands/help.txt
CHANGED
|
@@ -7,6 +7,7 @@ Where {b}<command>{b} is one of:
|
|
|
7
7
|
{b}version{b} {d}.......{d} Show package version
|
|
8
8
|
{b}init{b} {d}..........{d} Initialise kanbn board
|
|
9
9
|
{b}board{b} {d}.........{d} Show the kanbn board
|
|
10
|
+
{b}boards{b} {d}........{d} List the boards in this workspace
|
|
10
11
|
{b}task{b} {d}..........{d} Show a kanbn task
|
|
11
12
|
{b}add{b} {d}...........{d} Add a kanbn task
|
|
12
13
|
{b}edit{b} {d}..........{d} Edit a kanbn task
|
|
@@ -27,3 +27,8 @@ Options:
|
|
|
27
27
|
{b}kanbn history -t "task-id"{b}
|
|
28
28
|
Filter for one or more task ids.
|
|
29
29
|
This option can be repeated.
|
|
30
|
+
|
|
31
|
+
{b}kanbn history --board "board-slug"{b}
|
|
32
|
+
{b}kanbn history -b "board-slug"{b}
|
|
33
|
+
Target a board other than the main one. Falls back to the KANBN_BOARD environment variable and
|
|
34
|
+
then to the defaultBoard option. See {b}kanbn boards{b} for the list of boards.
|
package/docs/commands/init.txt
CHANGED
|
@@ -19,3 +19,16 @@ Options:
|
|
|
19
19
|
{b}kanbn init --column "column"{b}
|
|
20
20
|
{b}kanbn init -c "column"{b}
|
|
21
21
|
Initialise a kanbn board and add the specified column. This option can be repeated to add multiple columns.
|
|
22
|
+
|
|
23
|
+
{b}kanbn init --board "board-slug"{b}
|
|
24
|
+
{b}kanbn init -b "board-slug"{b}
|
|
25
|
+
Create a secondary board beside the main one, at {b}.kanbn/board-slug.md{b}. Secondary boards
|
|
26
|
+
share the main board's task folder, so a task can appear on several boards, in a different
|
|
27
|
+
column on each. Combine with {b}-n{b}, {b}-d{b} and {b}-c{b} to set the board's name,
|
|
28
|
+
description and columns:
|
|
29
|
+
{b}kanbn init -b design -n "Design Pipeline" -c Ideas -c Designing -c "Signed Off"{b}
|
|
30
|
+
Running it again on an existing board updates its name, description and columns, exactly as
|
|
31
|
+
{b}kanbn init{b} does for the main board. A new board only picks up the default started and
|
|
32
|
+
completed columns if it actually has columns by those names, so a board with its own workflow
|
|
33
|
+
doesn't silently inherit "In Progress" and "Done".
|
|
34
|
+
The workspace has to exist first - run {b}kanbn init{b} with no {b}-b{b} to create it.
|
package/docs/commands/move.txt
CHANGED
|
@@ -21,3 +21,12 @@ Options:
|
|
|
21
21
|
Move the task to a position relative to its current position in the target column.
|
|
22
22
|
When specifying a negative value for N, the negative sign can be escaped with '/' or '\\' to prevent the value being recognised as an option. For example:
|
|
23
23
|
{b}kanbn mv "task-1" -p \\-1 --relative{b}
|
|
24
|
+
|
|
25
|
+
{b}kanbn move "task-id" --board "board-slug"{b}
|
|
26
|
+
{b}kanbn move "task-id" -b "board-slug"{b}
|
|
27
|
+
Move the task on a board other than the main one. If the task isn't on that board yet it is
|
|
28
|
+
added, with a notice - so pulling work onto a board is one command rather than two.
|
|
29
|
+
|
|
30
|
+
{b}kanbn move "task-id" -b "board-slug" --no-add{b}
|
|
31
|
+
Refuse to move a task that isn't on the target board, instead of adding it.
|
|
32
|
+
The main board never adds implicitly: moving an untracked task there is an error either way.
|
package/docs/commands/remove.txt
CHANGED
|
@@ -1,12 +1,23 @@
|
|
|
1
1
|
{b}kanbn remove "task-id"{b}
|
|
2
2
|
{b}kanbn rm "task-id"{b}
|
|
3
3
|
|
|
4
|
-
Remove an existing task.
|
|
4
|
+
Remove an existing task. This deletes the task file and its index entry.
|
|
5
5
|
|
|
6
6
|
Options:
|
|
7
7
|
{b}kanbn remove "task-id" --index{b}
|
|
8
|
+
{b}kanbn remove "task-id" -x{b}
|
|
8
9
|
Only remove the task from the index. The task file will not be deleted.
|
|
9
10
|
|
|
10
11
|
{b}kanbn remove "task-id" --force{b}
|
|
11
12
|
{b}kanbn remove "task-id" -f{b}
|
|
12
13
|
Force remove the task without asking for confirmation.
|
|
14
|
+
|
|
15
|
+
{b}kanbn remove "task-id" --board "board-slug"{b}
|
|
16
|
+
{b}kanbn remove "task-id" -b "board-slug"{b}
|
|
17
|
+
Remove the task from that board. Combine this with {b}--index{b} to remove it from that board
|
|
18
|
+
only - boards own membership, so the task file and its entries on every other board are
|
|
19
|
+
untouched.
|
|
20
|
+
|
|
21
|
+
{b}kanbn remove "task-id" --all-boards{b}
|
|
22
|
+
Task files are shared between boards, so deleting one while another board still references it is
|
|
23
|
+
refused. This removes the task from every board that references it, then deletes the file.
|
package/docs/commands/rename.txt
CHANGED
|
@@ -11,3 +11,8 @@ Options:
|
|
|
11
11
|
{b}kanbn rename "task-id" --name "name"{b}
|
|
12
12
|
{b}kanbn rename "task-id" -n "name"{b}
|
|
13
13
|
Rename the task with the specified name. This option is required if not renaming a task interactively.
|
|
14
|
+
|
|
15
|
+
{b}kanbn rename "task-id" --board "board-slug"{b}
|
|
16
|
+
{b}kanbn rename "task-id" -b "board-slug"{b}
|
|
17
|
+
Target a board other than the main one. Falls back to the KANBN_BOARD environment variable and
|
|
18
|
+
then to the defaultBoard option. See {b}kanbn boards{b} for the list of boards.
|
|
@@ -10,3 +10,9 @@ Options:
|
|
|
10
10
|
{b}kanbn restore "task-id" --column "column"{b}
|
|
11
11
|
{b}kanbn restore "task-id" -c "column"{b}
|
|
12
12
|
Restore a task from the archive and place it in the specified column.
|
|
13
|
+
|
|
14
|
+
{b}kanbn restore "task-id" --board "board-slug"{b}
|
|
15
|
+
{b}kanbn restore "task-id" -b "board-slug"{b}
|
|
16
|
+
Restore the task to that board only. Without this, the task goes back to every board it was on
|
|
17
|
+
when it was archived, in the column it occupied on each. A board that has since been deleted is
|
|
18
|
+
reported and skipped rather than failing the restore.
|
package/docs/commands/sort.txt
CHANGED
|
@@ -107,3 +107,8 @@ Examples:
|
|
|
107
107
|
|
|
108
108
|
{b}kanbn sort "Todo" -z -n --count-tags{b}
|
|
109
109
|
Sort tasks in the "Todo" column first by name, then by the number of tags, all in descending order
|
|
110
|
+
|
|
111
|
+
{b}kanbn sort "column" --board "board-slug"{b}
|
|
112
|
+
{b}kanbn sort "column" -b "board-slug"{b}
|
|
113
|
+
Target a board other than the main one. Falls back to the KANBN_BOARD environment variable and
|
|
114
|
+
then to the defaultBoard option. See {b}kanbn boards{b} for the list of boards.
|
package/docs/commands/sprint.txt
CHANGED
|
@@ -15,3 +15,12 @@ Options:
|
|
|
15
15
|
{b}kanbn sprint --description "description"{b}
|
|
16
16
|
{b}kanbn sprint -d "description"{b}
|
|
17
17
|
Start a new sprint with the specified description.
|
|
18
|
+
|
|
19
|
+
{b}kanbn sprint --board "board-slug"{b}
|
|
20
|
+
{b}kanbn sprint -b "board-slug"{b}
|
|
21
|
+
Add a sprint from the context of another board. Sprints are workspace-level by default, so this
|
|
22
|
+
appends to the workspace list and says so. A board that declares its own {b}sprints{b} in its
|
|
23
|
+
front matter gets the sprint appended there instead, auto-named {b}{Board name} Sprint {n}{b} so
|
|
24
|
+
that two boards' sprints can't be confused.
|
|
25
|
+
A board with its own list can't see the workspace sprints at all - that's the cost of forking,
|
|
26
|
+
and it's why forking is a deliberate front-matter edit rather than a flag.
|
package/docs/commands/status.txt
CHANGED
|
@@ -15,7 +15,11 @@ Options:
|
|
|
15
15
|
|
|
16
16
|
{b}kanbn status --untracked{b}
|
|
17
17
|
{b}kanbn status -u{b}
|
|
18
|
-
Show a list of untracked task filenames.
|
|
18
|
+
Show a list of untracked task filenames. "Untracked" is workspace-scoped: a task is tracked if
|
|
19
|
+
any board references it, so this lists task files that are on no board at all.
|
|
20
|
+
When other boards track tasks that the target board doesn't, they're listed separately under
|
|
21
|
+
{b}tasksOnOtherBoards{b}, with the column each one occupies - the "what could I pull onto this
|
|
22
|
+
board" list.
|
|
19
23
|
|
|
20
24
|
{b}kanbn status --due{b}
|
|
21
25
|
{b}kanbn status -e{b}
|
|
@@ -33,3 +37,8 @@ Options:
|
|
|
33
37
|
This option can be repeated - if multiple dates are specified, show task workloads for tasks between the earliest and latest dates.
|
|
34
38
|
The date can be in (almost) any format.
|
|
35
39
|
This option will be ignored if the --quiet or --sprint options are set.
|
|
40
|
+
|
|
41
|
+
{b}kanbn status --board "board-slug"{b}
|
|
42
|
+
{b}kanbn status -b "board-slug"{b}
|
|
43
|
+
Target a board other than the main one. Falls back to the KANBN_BOARD environment variable and
|
|
44
|
+
then to the defaultBoard option. See {b}kanbn boards{b} for the list of boards.
|
package/docs/commands/task.txt
CHANGED
|
@@ -7,3 +7,8 @@ Options:
|
|
|
7
7
|
{b}kanbn task "task-id" --json{b}
|
|
8
8
|
{b}kanbn task "task-id" -j{b}
|
|
9
9
|
Show task information in JSON format.
|
|
10
|
+
|
|
11
|
+
{b}kanbn task "task-id" --board "board-slug"{b}
|
|
12
|
+
{b}kanbn task "task-id" -b "board-slug"{b}
|
|
13
|
+
Target a board other than the main one. Falls back to the KANBN_BOARD environment variable and
|
|
14
|
+
then to the defaultBoard option. See {b}kanbn boards{b} for the list of boards.
|
|
@@ -21,3 +21,18 @@ Options:
|
|
|
21
21
|
{b}kanbn validate --json{b}
|
|
22
22
|
{b}kanbn validate -j{b}
|
|
23
23
|
Output validation errors in JSON format.
|
|
24
|
+
|
|
25
|
+
{b}kanbn validate --board "board-slug"{b}
|
|
26
|
+
{b}kanbn validate -b "board-slug"{b}
|
|
27
|
+
Target a board other than the main one. Falls back to the KANBN_BOARD environment variable and
|
|
28
|
+
then to the defaultBoard option. See {b}kanbn boards{b} for the list of boards.
|
|
29
|
+
|
|
30
|
+
{b}kanbn validate --all-boards{b}
|
|
31
|
+
Validate every board in the workspace and the tasks each of them references, rather than just
|
|
32
|
+
the target board.
|
|
33
|
+
|
|
34
|
+
In a workspace with more than one board, {b}validate{b} also reports multi-board warnings - a
|
|
35
|
+
workspace-scoped option in a board file, several boards stamping the same shared date, sprints out
|
|
36
|
+
of order, a task on no board at all, history naming a board that has been deleted, and markdown
|
|
37
|
+
files beside the boards that don't parse as one. These are warnings, not errors: each describes a
|
|
38
|
+
workspace that still works, just not the way its author probably meant it to.
|
package/docs/index-structure.md
CHANGED
|
@@ -130,10 +130,36 @@ customFields:
|
|
|
130
130
|
|
|
131
131
|
Set to `false` to suppress hints and notices printed alongside normal output, such as the reminder shown when tasks have dates that don't match their column. Defaults to `true`. Hints are never shown when using `--json`.
|
|
132
132
|
|
|
133
|
+
### `defaultBoard`
|
|
134
|
+
|
|
135
|
+
The board that commands target when `-b` isn't given and `KANBN_BOARD` isn't set. Workspace-scoped: it belongs in the config file, or in the main board's front matter when there is no config file.
|
|
136
|
+
|
|
137
|
+
See [multiple boards](multiple-boards.md).
|
|
138
|
+
|
|
139
|
+
### `boards`
|
|
140
|
+
|
|
141
|
+
Board discovery settings. `exclude` lists markdown files in the kanbn folder that aren't boards, `order` sets the display order for `kanbn boards`, and any other key is a board slug whose value is that board's options.
|
|
142
|
+
|
|
143
|
+
```yaml
|
|
144
|
+
boards:
|
|
145
|
+
exclude:
|
|
146
|
+
- notes.md
|
|
147
|
+
order:
|
|
148
|
+
- index
|
|
149
|
+
- design
|
|
150
|
+
design:
|
|
151
|
+
hiddenColumns:
|
|
152
|
+
- Ideas
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
Workspace-scoped. See [multiple boards](multiple-boards.md).
|
|
156
|
+
|
|
133
157
|
### `sprints`
|
|
134
158
|
|
|
135
159
|
A list of sprints. Each sprint will have `start`, `name` and `description` properties.
|
|
136
160
|
|
|
161
|
+
A board can declare its own `sprints` in its front matter, which **replaces** the workspace list for that board entirely. See [multiple boards](multiple-boards.md#per-board-sprints).
|
|
162
|
+
|
|
137
163
|
Run `kanbn sprint --help` for more information.
|
|
138
164
|
|
|
139
165
|
### `defaultTaskWorkload`
|
package/docs/index.md
CHANGED
|
@@ -9,6 +9,7 @@ To get started quickly, check out the [Quick Start](quick-start.md) guide.
|
|
|
9
9
|
- [Quick Start](quick-start.md)
|
|
10
10
|
- [Index Structure](index-structure.md) — the board file and all project options
|
|
11
11
|
- [Task Structure](task-structure.md) — task files, metadata, sub-tasks, relations, comments and history
|
|
12
|
+
- [Multiple Boards](multiple-boards.md) — several boards over one shared pool of tasks
|
|
12
13
|
- [Views](views.md) — custom board layouts, columns and lanes
|
|
13
14
|
- [Filtering and Sorting](filtering-and-sorting.md) — the filter and sorter model shared by `find`, `sort` and views
|
|
14
15
|
- [Advanced Configuration](advanced-configuration.md)
|
|
@@ -16,12 +17,13 @@ To get started quickly, check out the [Quick Start](quick-start.md) guide.
|
|
|
16
17
|
|
|
17
18
|
## Examples
|
|
18
19
|
|
|
19
|
-
The [`example`](../example) directory contains ready-to-run
|
|
20
|
+
The [`example`](../example) directory contains ready-to-run workspaces:
|
|
20
21
|
|
|
21
22
|
| Example | Demonstrates |
|
|
22
23
|
| --- | --- |
|
|
23
24
|
| [`example/basic`](../example/basic) | A typical board: columns, tags, workload, sprints |
|
|
24
25
|
| [`example/views`](../example/views) | Views, lanes, filters and sorters |
|
|
26
|
+
| [`example/boards`](../example/boards) | Multiple boards over one shared pool of tasks, with per-board state fields |
|
|
25
27
|
| [`example/advanced`](../example/advanced) | A `kanbn.yml` config file, custom fields, column sorting and a custom task template |
|
|
26
28
|
|
|
27
29
|
Run any Kanbn command from inside one of those directories to try it out.
|