@hiroleague/taskmanager 0.0.1 → 0.0.2
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/LICENSE +21 -0
- package/README.md +41 -52
- package/dist/assets/architecture-YZFGNWBL-C1MoQeSs.js +1 -0
- package/dist/assets/{architectureDiagram-Q4EWVU46-DSQ1_74_.js → architectureDiagram-Q4EWVU46-DUEfvDBu.js} +1 -1
- package/dist/assets/{blockDiagram-DXYQGD6D-DfOGNphI.js → blockDiagram-DXYQGD6D-DQzEOPT2.js} +1 -1
- package/dist/assets/{chunk-2KRD3SAO-9yt00aGC.js → chunk-2KRD3SAO-C2e-_49I.js} +1 -1
- package/dist/assets/{chunk-4TB4RGXK-DF8yJBFl.js → chunk-4TB4RGXK-AZq3s1Dh.js} +1 -1
- package/dist/assets/{chunk-67CJDMHE-5wFKo04G.js → chunk-67CJDMHE-B1-M78qu.js} +1 -1
- package/dist/assets/{chunk-7N4EOEYR-BRRGX_NC.js → chunk-7N4EOEYR-D7mYFpz-.js} +1 -1
- package/dist/assets/{chunk-AA7GKIK3-DUZv_pNI.js → chunk-AA7GKIK3-VWI9k39i.js} +1 -1
- package/dist/assets/{chunk-CIAEETIT-mA5aM_d7.js → chunk-CIAEETIT-hnu4zamm.js} +1 -1
- package/dist/assets/{chunk-FOC6F5B3-B-cqGCPC.js → chunk-FOC6F5B3-BJsh9nO9.js} +1 -1
- package/dist/assets/{chunk-K5T4RW27-BLRDzioh.js → chunk-K5T4RW27-BLIPdXaZ.js} +1 -1
- package/dist/assets/{chunk-KGLVRYIC-CTkQSeKy.js → chunk-KGLVRYIC-DvaW2TkT.js} +1 -1
- package/dist/assets/{chunk-LIHQZDEY-Cf34Nu3J.js → chunk-LIHQZDEY-CUsM0M11.js} +1 -1
- package/dist/assets/{chunk-ORNJ4GCN-D3uXgbay.js → chunk-ORNJ4GCN-CfluNV0_.js} +1 -1
- package/dist/assets/{chunk-OYMX7WX6-syQho5jf.js → chunk-OYMX7WX6-CkWzw4JX.js} +1 -1
- package/dist/assets/{classDiagram-6PBFFD2Q-CotFZI8-.js → classDiagram-6PBFFD2Q-Dx_f-9b7.js} +1 -1
- package/dist/assets/{classDiagram-v2-HSJHXN6E-DAPzeDGn.js → classDiagram-v2-HSJHXN6E-CSfvZ-nt.js} +1 -1
- package/dist/assets/clone-CXokakwV.js +1 -0
- package/dist/assets/{dagre-rhyPjnsQ.js → dagre-Do0eD9eI.js} +1 -1
- package/dist/assets/{dagre-KV5264BT-BBqulDtd.js → dagre-KV5264BT-lveZDhBf.js} +1 -1
- package/dist/assets/{diagram-5BDNPKRD-Ky3EXXj0.js → diagram-5BDNPKRD-Dq5yM_uY.js} +1 -1
- package/dist/assets/{diagram-G4DWMVQ6-t7LbT0Uz.js → diagram-G4DWMVQ6-D-SYOmKm.js} +1 -1
- package/dist/assets/{diagram-MMDJMWI5-CdnLXEMx.js → diagram-MMDJMWI5-lU5t9BZA.js} +1 -1
- package/dist/assets/{diagram-TYMM5635-CnzTqJBM.js → diagram-TYMM5635-6tfUbY3R.js} +1 -1
- package/dist/assets/{erDiagram-SMLLAGMA-BN5eJerP.js → erDiagram-SMLLAGMA-dx09stuy.js} +1 -1
- package/dist/assets/{flatten-C5NL-f24.js → flatten-B2BZ0pzY.js} +1 -1
- package/dist/assets/{flowDiagram-DWJPFMVM-CbFskc8S.js → flowDiagram-DWJPFMVM-CJi2WISS.js} +1 -1
- package/dist/assets/gitGraph-7Q5UKJZL-BXTuQaDM.js +1 -0
- package/dist/assets/{gitGraphDiagram-UUTBAWPF-wpqI2kyI.js → gitGraphDiagram-UUTBAWPF-Bjj94M12.js} +1 -1
- package/dist/assets/{graphlib-COiJG5Qv.js → graphlib-BIlXYGdM.js} +1 -1
- package/dist/assets/{index-lyyIVcc_.js → index-CZZuue3D.js} +5 -5
- package/dist/assets/info-OMHHGYJF-BeeKt8-X.js +1 -0
- package/dist/assets/{infoDiagram-42DDH7IO-BbvTdpSV.js → infoDiagram-42DDH7IO-wq_opQKO.js} +1 -1
- package/dist/assets/{ishikawaDiagram-UXIWVN3A-Epc23N_0.js → ishikawaDiagram-UXIWVN3A-Cnc1bwBo.js} +1 -1
- package/dist/assets/{kanban-definition-6JOO6SKY-C8dW_26n.js → kanban-definition-6JOO6SKY-CwHbIze0.js} +1 -1
- package/dist/assets/{mermaid-parser.core-6Tn8epr_.js → mermaid-parser.core-DrLhKJ48.js} +2 -2
- package/dist/assets/{mindmap-definition-QFDTVHPH-CvpNtrKT.js → mindmap-definition-QFDTVHPH-DswAJiEd.js} +1 -1
- package/dist/assets/packet-4T2RLAQJ-DQ-H9_jd.js +1 -0
- package/dist/assets/pie-ZZUOXDRM-BSj0Jsyj.js +1 -0
- package/dist/assets/{pieDiagram-DEJITSTG-eENymoXZ.js → pieDiagram-DEJITSTG-DgQTCddl.js} +1 -1
- package/dist/assets/radar-PYXPWWZC-B7-oRPFL.js +1 -0
- package/dist/assets/{reduce-BDOBPIXr.js → reduce-Uumu9GdR.js} +1 -1
- package/dist/assets/{requirementDiagram-MS252O5E-CmRO3hLp.js → requirementDiagram-MS252O5E-D1moa23Z.js} +1 -1
- package/dist/assets/{sequenceDiagram-FGHM5R23-B7qNcwNo.js → sequenceDiagram-FGHM5R23-Dvhj7HGn.js} +1 -1
- package/dist/assets/{stateDiagram-FHFEXIEX-CYfGMoR8.js → stateDiagram-FHFEXIEX-Dx5CjenB.js} +1 -1
- package/dist/assets/{stateDiagram-v2-QKLJ7IA2-CO1W_n55.js → stateDiagram-v2-QKLJ7IA2-C_PkrTdc.js} +1 -1
- package/dist/assets/{timeline-definition-GMOUNBTQ-CQWqDPGG.js → timeline-definition-GMOUNBTQ-z-IncVmK.js} +1 -1
- package/dist/assets/treeView-SZITEDCU-CFXle9Az.js +1 -0
- package/dist/assets/treemap-W4RFUUIX-CAW3vWh8.js +1 -0
- package/dist/assets/{vennDiagram-DHZGUBPP-BjTbuhcb.js → vennDiagram-DHZGUBPP-CT1ehozU.js} +1 -1
- package/dist/assets/wardley-RL74JXVD-7q3ju4kc.js +1 -0
- package/dist/assets/{wardleyDiagram-NUSXRM2D-DNhPIFCg.js → wardleyDiagram-NUSXRM2D-D-kouujI.js} +1 -1
- package/dist/assets/{xychartDiagram-5P7HB3ND-BDblAZ11.js → xychartDiagram-5P7HB3ND-D1lnM0pL.js} +1 -1
- package/dist/index.html +1 -1
- package/package.json +101 -92
- package/scripts/postinstall-message.mjs +160 -0
- package/scripts/stubs/node-domexception/index.cjs +18 -0
- package/scripts/stubs/node-domexception/package.json +7 -0
- package/skills/hiro-task-manager-cli/SKILL.md +97 -0
- package/skills/hiro-task-manager-cli/reference/boards.md +143 -0
- package/skills/hiro-task-manager-cli/reference/cli-access-policy.md +72 -0
- package/skills/hiro-task-manager-cli/reference/errors.md +85 -0
- package/skills/hiro-task-manager-cli/reference/lists.md +106 -0
- package/skills/hiro-task-manager-cli/reference/releases.md +87 -0
- package/skills/hiro-task-manager-cli/reference/search.md +38 -0
- package/skills/hiro-task-manager-cli/reference/statuses.md +25 -0
- package/skills/hiro-task-manager-cli/reference/tasks.md +144 -0
- package/skills/hiro-task-manager-cli/reference/trash.md +50 -0
- package/src/cli/bootstrap/launcher.test.ts +66 -0
- package/src/cli/bootstrap/launcher.ts +375 -35
- package/src/cli/bootstrap/program.ts +4 -0
- package/src/cli/bootstrap/runtime.test.ts +15 -0
- package/src/cli/bootstrap/runtime.ts +27 -1
- package/src/cli/commands/query.ts +56 -56
- package/src/cli/commands/server.ts +27 -19
- package/src/cli/handlers/boards.test.ts +669 -669
- package/src/cli/handlers/cli-wiring.test.ts +1 -1
- package/src/cli/handlers/search.test.ts +374 -374
- package/src/cli/handlers/search.ts +17 -17
- package/src/cli/handlers/server.test.ts +55 -13
- package/src/cli/handlers/server.ts +16 -3
- package/src/cli/lib/api-client.test.ts +35 -2
- package/src/cli/lib/api-client.ts +43 -10
- package/src/cli/lib/cli-http-errors.test.ts +85 -85
- package/src/cli/lib/command-helpers.ts +161 -154
- package/src/cli/lib/config.ts +4 -0
- package/src/cli/lib/launcherUi.ts +166 -0
- package/src/cli/lib/process.test.ts +24 -5
- package/src/cli/lib/process.ts +86 -55
- package/src/cli/ports/process.ts +8 -2
- package/src/cli/subprocess.real-stack.test.ts +611 -598
- package/src/cli/subprocess.smoke.test.ts +954 -969
- package/src/cli/types/config.ts +2 -6
- package/src/client/components/auth/AuthScreen.tsx +3 -3
- package/src/client/components/board/BoardStatsChips.tsx +233 -233
- package/src/client/components/board/BoardStatsContext.tsx +41 -41
- package/src/client/components/board/boardHeaderButtonStyles.ts +38 -38
- package/src/client/components/board/shortcuts/useBoardShortcutKeydown.ts +49 -49
- package/src/client/components/board/useBoardCanvasPanScroll.ts +108 -108
- package/src/client/components/board/useBoardTaskContainerDroppableReact.ts +33 -33
- package/src/client/components/board/useBoardTaskSortableReact.ts +26 -26
- package/src/client/components/multi-select.tsx +1206 -1206
- package/src/client/components/routing/BoardPage.tsx +20 -20
- package/src/client/components/routing/NavigationRegistrar.tsx +13 -13
- package/src/client/components/settings/SettingsPage.tsx +1 -1
- package/src/client/components/task/TaskCard.tsx +643 -643
- package/src/client/components/ui/badge.tsx +49 -49
- package/src/client/components/ui/button.tsx +65 -65
- package/src/client/components/ui/command.tsx +193 -193
- package/src/client/components/ui/dialog.tsx +163 -163
- package/src/client/components/ui/input-group.tsx +155 -155
- package/src/client/components/ui/input.tsx +19 -19
- package/src/client/components/ui/popover.tsx +87 -87
- package/src/client/components/ui/separator.tsx +28 -28
- package/src/client/components/ui/textarea.tsx +18 -18
- package/src/client/index.css +248 -248
- package/src/client/lib/appNavigate.ts +16 -16
- package/src/client/lib/taskCardDate.ts +111 -111
- package/src/client/lib/utils.ts +6 -6
- package/src/server/auth.ts +351 -302
- package/src/server/bootstrapDev.ts +11 -2
- package/src/server/bootstrapInstalled.ts +6 -1
- package/src/server/index.ts +33 -7
- package/src/server/migrations/013_cli_policy_and_provenance.ts +2 -2
- package/src/server/migrations/019_cli_global_create_board_default_on.ts +14 -0
- package/src/server/migrations/registry.ts +43 -41
- package/src/server/parseBootstrapProfile.ts +42 -0
- package/src/server/storage/cliPolicy.ts +2 -1
- package/src/shared/runtimeConfig.ts +256 -237
- package/src/shared/runtimeIdentity.test.ts +47 -0
- package/src/shared/runtimeIdentity.ts +35 -0
- package/src/shared/serverStatus.ts +21 -0
- package/src/shared/skillsInstall.ts +71 -0
- package/src/shared/terminalColors.ts +24 -0
- package/dist/assets/architecture-YZFGNWBL-3h1eIYfB.js +0 -1
- package/dist/assets/clone-BRQpYu_n.js +0 -1
- package/dist/assets/gitGraph-7Q5UKJZL-CG8f8JF7.js +0 -1
- package/dist/assets/info-OMHHGYJF-C8_SHoRO.js +0 -1
- package/dist/assets/packet-4T2RLAQJ-BvpAX0kJ.js +0 -1
- package/dist/assets/pie-ZZUOXDRM-Ow26Yf-E.js +0 -1
- package/dist/assets/radar-PYXPWWZC-e_ron5jQ.js +0 -1
- package/dist/assets/treeView-SZITEDCU-DsEr3xeq.js +0 -1
- package/dist/assets/treemap-W4RFUUIX-DV7nk2AB.js +0 -1
- package/dist/assets/wardley-RL74JXVD-CrrFU9AE.js +0 -1
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: hiro-task-manager-cli
|
|
3
|
+
description: Use this skill when working with Hiro Task Manager through the `hirotm` CLI to manage tasks, task lists and task boards.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Hiro Task Manager CLI
|
|
7
|
+
|
|
8
|
+
Use this skill when the user wants to work with Hiro Task Manager through the `hirotm` CLI to manage tasks, task lists and task boards.
|
|
9
|
+
|
|
10
|
+
## Use this skill for
|
|
11
|
+
- Creating, updating and deleting tasks.
|
|
12
|
+
- Creating, updating and deleting task lists.
|
|
13
|
+
- Managing boards.
|
|
14
|
+
- listing, searching and filtering tasks, lists and boards.
|
|
15
|
+
- Managing Hiro Task Manager server, to be able to operate on tasks, lists and boards.
|
|
16
|
+
- Delete, purge or restore tasks, lists and boards.
|
|
17
|
+
|
|
18
|
+
## Default operating workflow
|
|
19
|
+
1. Navigate to intended workspace root.
|
|
20
|
+
2. Initially make sure Hiro Task Manager server is running.
|
|
21
|
+
3. Discover the boards, lists or tasks you need to work with.
|
|
22
|
+
4. Narrow down to the entity you need to work with, using search or list/filter.
|
|
23
|
+
5. Use (Identification) to identify yourself in all commands.
|
|
24
|
+
6. Perform the smallest safe mutation using all the available data,
|
|
25
|
+
7. Show the resulting state after the change.
|
|
26
|
+
|
|
27
|
+
## Core rules
|
|
28
|
+
- Use `hirotm` cli command for all operations.
|
|
29
|
+
- use `--help` to get help on any command or sub command `boards --help`, `boards describe --help`.
|
|
30
|
+
- Run commands from the intended workspace root.
|
|
31
|
+
- Inspect current state before making mutations.
|
|
32
|
+
- Use `--client-name` on mutating commands so changes are attributable.
|
|
33
|
+
- Treat delete, purge, and structural changes as sensitive.
|
|
34
|
+
|
|
35
|
+
# Identification
|
|
36
|
+
|
|
37
|
+
Identify yourself in all commands with `--client-name <your-name>`. Your name should reflect the Agent Name, ex: Cursor Agent, Github Copilot Agent, Claude Code Agent, Open Code Agent.
|
|
38
|
+
If you are not sure, use a generic name "AI Agent"
|
|
39
|
+
|
|
40
|
+
## Installation
|
|
41
|
+
|
|
42
|
+
If command is not found, ask the user to [install](https://docs.hiroleague.com/task-manager/get-started/quick-start) it and configure it.
|
|
43
|
+
|
|
44
|
+
# Discovery
|
|
45
|
+
|
|
46
|
+
- use `boards list` to list all boards.
|
|
47
|
+
- use `boards describe <id-or-slug>` to describe all or some board details.
|
|
48
|
+
- use `tasks list --board <board-id-or-slug>` to list and filter tasks in a board.
|
|
49
|
+
|
|
50
|
+
# Finding/Adding/Updating Tasks
|
|
51
|
+
|
|
52
|
+
- When a user refers to an existing task, use `tasks list` with filers, or `search query` to find it.
|
|
53
|
+
- If convenient, use limit, offset, fields, or quiet options to manage and the output shape.
|
|
54
|
+
- When adding a task
|
|
55
|
+
- use any available information such as priority, task group, release, etc...
|
|
56
|
+
- Add proper title (80 characters max) and Emoji if relevant only.
|
|
57
|
+
- use Organized Markdown description if the task body is detailed.
|
|
58
|
+
- use mermaid diagrams if the task includes design diagrams or if the user requests it.
|
|
59
|
+
- If linking to a larger documents in the workspace, make sure to use a proper link from the workspace root.
|
|
60
|
+
|
|
61
|
+
# Access
|
|
62
|
+
|
|
63
|
+
If you are not allowed to access an entity or perform an operation due to CLI Access Control, explain the situation and suggest the user to give you the necessary permissions. Never attempt to bypass the CLI Access Control.
|
|
64
|
+
|
|
65
|
+
# Server Operations
|
|
66
|
+
|
|
67
|
+
- Check Server Status with `server status`
|
|
68
|
+
- Start Server with `server start --background`
|
|
69
|
+
- Stop Server with `server stop`
|
|
70
|
+
|
|
71
|
+
## References
|
|
72
|
+
|
|
73
|
+
- [Installation Guide](https://docs.hiroleague.com/task-manager/get-started/quick-start)
|
|
74
|
+
- Server Commands - Start, stop, and check the server status.
|
|
75
|
+
- [Boards Commands](reference/boards.md) - Create, update, delete, list, describe, and configure boards.
|
|
76
|
+
- [Lists Commands](reference/lists.md) - List, add, update, move, delete, restore, and purge board lists.
|
|
77
|
+
- [Tasks Commands](reference/tasks.md) - List, add, update, move, delete, restore, and purge tasks.
|
|
78
|
+
- [Releases Commands](reference/releases.md) - List, show, add, update, and delete releases.
|
|
79
|
+
- [Trash Commands](reference/trash.md) - Inspect trashed boards, lists, and tasks.
|
|
80
|
+
- [Status Commands](reference/statuses.md) - List workflow statuses and their meanings.
|
|
81
|
+
- [Search Commands](reference/search.md) - Full-text task search with `query search`.
|
|
82
|
+
- [CLI Access Policy](reference/cli-access-policy.md) - Map commands to `cliPolicy` requirements and read/write permissions.
|
|
83
|
+
- [Errors and Exit Codes](reference/errors.md) - Exit codes, stderr fields, and common machine-readable codes.
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
**Safety notes**
|
|
88
|
+
|
|
89
|
+
- Prefer inspect-first workflows.
|
|
90
|
+
- Search before create when overlap is likely.
|
|
91
|
+
- Do not purge unless intent is clearly explicit.
|
|
92
|
+
- Do not bypass the CLI by any other means than the `hirotm` CLI.
|
|
93
|
+
- Respect permission and policy failures instead of working around them unsafely.
|
|
94
|
+
|
|
95
|
+
**References**
|
|
96
|
+
|
|
97
|
+
- [Online Documentation](https://docs.hiroleague.com/task-manager/get-started/quick-start)
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
# Boards Commands
|
|
2
|
+
|
|
3
|
+
Use `hirotm boards` to discover boards, inspect board structure, and manage board-level settings. Use `hirotm tasks list --board <id-or-slug>` for task rows; `boards describe` does not return tasks.
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
## Shared arguments
|
|
7
|
+
|
|
8
|
+
- `<id-or-slug>`: board numeric id or board slug.
|
|
9
|
+
- `--yes`: use for non-interactive destructive or structural commands.
|
|
10
|
+
|
|
11
|
+
### Text input variants
|
|
12
|
+
|
|
13
|
+
Used by board create or update when setting descriptions.
|
|
14
|
+
|
|
15
|
+
- `--description <text>`: inline text.
|
|
16
|
+
- `--description-file <path>`: read text from file.
|
|
17
|
+
- `--description-stdin`: read text from stdin.
|
|
18
|
+
|
|
19
|
+
### JSON input variants
|
|
20
|
+
|
|
21
|
+
Used by `boards configure groups` and `boards configure priorities`. Pass exactly one.
|
|
22
|
+
|
|
23
|
+
- `--json <text>`: inline JSON.
|
|
24
|
+
- `--file <path>`: read JSON from file.
|
|
25
|
+
- `--stdin`: read JSON from stdin.
|
|
26
|
+
|
|
27
|
+
## Commands
|
|
28
|
+
|
|
29
|
+
### `boards list`
|
|
30
|
+
|
|
31
|
+
Format:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
hirotm boards list [--limit <n>] [--offset <n>] [--page-all] [--fields <keys>]
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Use this to discover accessible boards before mutation.
|
|
38
|
+
|
|
39
|
+
- `--limit <n>`: page size.
|
|
40
|
+
- `--offset <n>`: skip rows.
|
|
41
|
+
- `--page-all`: merge all pages.
|
|
42
|
+
- `--fields <keys>`: project only selected fields.
|
|
43
|
+
- Supports global `--quiet` with `--format ndjson`.
|
|
44
|
+
|
|
45
|
+
### `boards describe <id-or-slug>`
|
|
46
|
+
|
|
47
|
+
Format:
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
hirotm boards describe <id-or-slug> [--entities <csv>]
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Use this to inspect one board without loading tasks.
|
|
54
|
+
|
|
55
|
+
- Best source for `listId`, `groupId`, `priority`, `releaseId`, and status ids.
|
|
56
|
+
- `--entities <csv>` accepts `list`, `group`, `priority`, `release`, `status`, `meta`.
|
|
57
|
+
- Omitting `--entities` returns the standard entity sections without `meta`.
|
|
58
|
+
- There is no `boards show`; pair `boards describe` with `tasks list --board` when task rows are needed.
|
|
59
|
+
|
|
60
|
+
### `boards add [name]`
|
|
61
|
+
|
|
62
|
+
Format:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
hirotm boards add [name] [--emoji <text>] [description flags]
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Create a new board.
|
|
69
|
+
|
|
70
|
+
- `[name]`: board name. Optional.
|
|
71
|
+
- `--emoji <text>`: emoji prefix for the board.
|
|
72
|
+
- Description flags are listed once in `Text input variants`.
|
|
73
|
+
|
|
74
|
+
### `boards update <id-or-slug>`
|
|
75
|
+
|
|
76
|
+
Format:
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
hirotm boards update <id-or-slug> [--name <text>] [--emoji <text> | --clear-emoji] [description flags | --clear-description] [--board-color <preset> | --clear-board-color]
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Update board identity or appearance. Pass at least one change.
|
|
83
|
+
|
|
84
|
+
- `--name <text>`: rename the board.
|
|
85
|
+
- `--emoji <text>` or `--clear-emoji`: set or clear emoji.
|
|
86
|
+
- Description flags are listed once in `Text input variants`.
|
|
87
|
+
- `--clear-description`: remove the description.
|
|
88
|
+
- `--board-color <preset>`: one of `stone`, `cyan`, `azure`, `indigo`, `violet`, `rose`, `amber`, `emerald`, `coral`, `sage`.
|
|
89
|
+
- `--clear-board-color`: remove the color preset.
|
|
90
|
+
|
|
91
|
+
### `boards delete <id-or-slug>`
|
|
92
|
+
|
|
93
|
+
Format:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
hirotm boards delete <id-or-slug> --yes
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Move a board to Trash.
|
|
100
|
+
|
|
101
|
+
### `boards restore <id-or-slug>`
|
|
102
|
+
|
|
103
|
+
Format:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
hirotm boards restore <id-or-slug> --yes
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Restore a trashed board.
|
|
110
|
+
|
|
111
|
+
### `boards purge <id-or-slug>`
|
|
112
|
+
|
|
113
|
+
Format:
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
hirotm boards purge <id-or-slug> --yes
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Permanently delete a trashed board. This is irreversible.
|
|
120
|
+
|
|
121
|
+
### `boards configure groups <id-or-slug>`
|
|
122
|
+
|
|
123
|
+
Format:
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
hirotm boards configure groups <id-or-slug> [--json <text> | --file <path> | --stdin] --yes
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
Replace board task groups from JSON input.
|
|
130
|
+
|
|
131
|
+
- JSON input variants are listed once in `JSON input variants`.
|
|
132
|
+
|
|
133
|
+
### `boards configure priorities <id-or-slug>`
|
|
134
|
+
|
|
135
|
+
Format:
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
hirotm boards configure priorities <id-or-slug> [--json <text> | --file <path> | --stdin] --yes
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Replace board priorities from JSON input.
|
|
142
|
+
|
|
143
|
+
- JSON input variants are listed once in `JSON input variants`.
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# CLI Access Policy
|
|
2
|
+
|
|
3
|
+
Use this page to map `hirotm` commands to the board CLI policy checks enforced by Task Manager.
|
|
4
|
+
|
|
5
|
+
## Core rule
|
|
6
|
+
|
|
7
|
+
- `readBoard` is the baseline requirement for board-scoped commands.
|
|
8
|
+
- Trash listings only return rows for boards the CLI can read.
|
|
9
|
+
- If `readBoard` is off, board-scoped reads and writes fail for that board.
|
|
10
|
+
|
|
11
|
+
## Policy flags
|
|
12
|
+
|
|
13
|
+
- `readBoard`: read board-scoped data.
|
|
14
|
+
- `createLists`: create new lists on a board.
|
|
15
|
+
- `createTasks`: create new tasks on a board.
|
|
16
|
+
- `manageCliCreatedLists`: manage lists created by the CLI.
|
|
17
|
+
- `manageAnyLists`: manage lists regardless of creator.
|
|
18
|
+
- `manageCliCreatedTasks`: manage tasks created by the CLI.
|
|
19
|
+
- `manageAnyTasks`: manage tasks regardless of creator.
|
|
20
|
+
- `manageStructure`: manage releases and board structure.
|
|
21
|
+
- `deleteBoard`: delete, restore, and purge boards.
|
|
22
|
+
|
|
23
|
+
## Command mapping
|
|
24
|
+
|
|
25
|
+
### Board reads
|
|
26
|
+
|
|
27
|
+
- `boards list`: `readBoard`
|
|
28
|
+
- `boards describe`: `readBoard`
|
|
29
|
+
|
|
30
|
+
### Board lifecycle
|
|
31
|
+
|
|
32
|
+
- `boards delete`: `readBoard` + `deleteBoard`
|
|
33
|
+
- `boards restore`: `readBoard` + `deleteBoard`
|
|
34
|
+
- `boards purge`: `readBoard` + `deleteBoard`
|
|
35
|
+
|
|
36
|
+
### List commands
|
|
37
|
+
|
|
38
|
+
- `lists add`: `readBoard` + `createLists`
|
|
39
|
+
- `lists delete`: `readBoard` + either `manageCliCreatedLists` for CLI-created lists or `manageAnyLists` for other lists
|
|
40
|
+
- `lists restore`: `readBoard` + either `manageCliCreatedLists` for CLI-created lists or `manageAnyLists` for other lists
|
|
41
|
+
- `lists purge`: `readBoard` + either `manageCliCreatedLists` for CLI-created lists or `manageAnyLists` for other lists
|
|
42
|
+
|
|
43
|
+
### Task commands
|
|
44
|
+
|
|
45
|
+
- `tasks add`: `readBoard` + `createTasks`
|
|
46
|
+
- `tasks delete`: `readBoard` + either `manageCliCreatedTasks` for CLI-created tasks or `manageAnyTasks` for other tasks
|
|
47
|
+
- `tasks restore`: `readBoard` + either `manageCliCreatedTasks` for CLI-created tasks or `manageAnyTasks` for other tasks
|
|
48
|
+
- `tasks purge`: `readBoard` + either `manageCliCreatedTasks` for CLI-created tasks or `manageAnyTasks` for other tasks
|
|
49
|
+
|
|
50
|
+
### Release commands
|
|
51
|
+
|
|
52
|
+
- `releases list`: `readBoard`
|
|
53
|
+
- `releases show`: `readBoard`
|
|
54
|
+
- `releases add`: `readBoard` + `manageStructure`
|
|
55
|
+
- `releases update`: `readBoard` + `manageStructure`
|
|
56
|
+
- `releases delete`: `readBoard` + `manageStructure`
|
|
57
|
+
|
|
58
|
+
### Search and trash
|
|
59
|
+
|
|
60
|
+
- `query search` without `--board`: returns hits only from boards the CLI can read
|
|
61
|
+
- `query search --board <id-or-slug>`: `readBoard` for that board
|
|
62
|
+
- `trash list boards`: `readBoard` for each returned board
|
|
63
|
+
- `trash list lists`: `readBoard` for each row's board
|
|
64
|
+
- `trash list tasks`: `readBoard` for each row's board
|
|
65
|
+
|
|
66
|
+
### Global commands
|
|
67
|
+
|
|
68
|
+
- `statuses list`: not board-scoped
|
|
69
|
+
|
|
70
|
+
## Practical note
|
|
71
|
+
|
|
72
|
+
Use `hirotm boards describe <id-or-slug>` to inspect the current `cliPolicy` values before attempting a write.
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# Errors and Exit Codes
|
|
2
|
+
|
|
3
|
+
Use this page for how `hirotm` reports failures through exit codes and stderr payloads.
|
|
4
|
+
|
|
5
|
+
## Failure output
|
|
6
|
+
|
|
7
|
+
- With `--format ndjson`, failures are JSON on stderr.
|
|
8
|
+
- With `--format human`, failures are plain text on stderr.
|
|
9
|
+
- Prefer the machine-readable `code` field over parsing `error` text.
|
|
10
|
+
|
|
11
|
+
## Common stderr fields
|
|
12
|
+
|
|
13
|
+
- `error`: human-readable summary.
|
|
14
|
+
- `code`: stable machine-readable identifier.
|
|
15
|
+
- `retryable`: whether retry may succeed later.
|
|
16
|
+
- `hint`: recovery hint, such as how to start the server.
|
|
17
|
+
- `status`: HTTP status when the error came from the API.
|
|
18
|
+
- `url`: request URL when relevant.
|
|
19
|
+
- `serverCode`: original API code when the CLI normalized `code`.
|
|
20
|
+
|
|
21
|
+
## Exit codes
|
|
22
|
+
|
|
23
|
+
| Exit | Meaning | Typical action |
|
|
24
|
+
| --- | --- | --- |
|
|
25
|
+
| `0` | Success | Parse stdout and continue. |
|
|
26
|
+
| `1` | Generic failure or unmapped server/API error | Read `error` and `code`; retry only if appropriate. |
|
|
27
|
+
| `2` | Invalid CLI arguments | Fix flags or values; do not retry unchanged. |
|
|
28
|
+
| `3` | Not found | Refresh ids, slugs, or file paths. |
|
|
29
|
+
| `4` | Forbidden | Respect CLI policy; do not retry unchanged. |
|
|
30
|
+
| `5` | Conflict | Skip create, rename differently, or resolve state conflict. |
|
|
31
|
+
| `6` | Server unreachable | Start the server using the provided `hint`, then retry. |
|
|
32
|
+
| `7` | Timeout | Retry after a delay. |
|
|
33
|
+
| `8` | Version mismatch | Update the CLI or app. |
|
|
34
|
+
| `9` | Bad request or validation failure | Fix the request shape or values. |
|
|
35
|
+
| `10` | Unauthenticated | Configure auth when that flow exists. |
|
|
36
|
+
|
|
37
|
+
## Common `code` values
|
|
38
|
+
|
|
39
|
+
### API and permission codes
|
|
40
|
+
|
|
41
|
+
- `bad_request`
|
|
42
|
+
- `unauthenticated`
|
|
43
|
+
- `forbidden`
|
|
44
|
+
- `not_found`
|
|
45
|
+
- `conflict`
|
|
46
|
+
- `request_timeout`
|
|
47
|
+
- `version_mismatch`
|
|
48
|
+
- `rate_limited`
|
|
49
|
+
- `internal_error`
|
|
50
|
+
- `http_error`
|
|
51
|
+
|
|
52
|
+
### Local validation codes
|
|
53
|
+
|
|
54
|
+
- `missing_required`
|
|
55
|
+
- `invalid_value`
|
|
56
|
+
- `mutually_exclusive_options`
|
|
57
|
+
- `conflicting_input_sources`
|
|
58
|
+
- `conflicting_clear_with_input`
|
|
59
|
+
- `invalid_json`
|
|
60
|
+
- `invalid_input_shape`
|
|
61
|
+
- `no_update_fields`
|
|
62
|
+
- `release_not_found_by_name`
|
|
63
|
+
- `emoji_validation_failed`
|
|
64
|
+
|
|
65
|
+
### Connection and process codes
|
|
66
|
+
|
|
67
|
+
- `server_unreachable`
|
|
68
|
+
- `request_timeout`
|
|
69
|
+
- `server_start_timeout`
|
|
70
|
+
- `server_exited`
|
|
71
|
+
- `no_managed_server`
|
|
72
|
+
- `stale_pid`
|
|
73
|
+
- `signal_failed`
|
|
74
|
+
|
|
75
|
+
### Other useful codes
|
|
76
|
+
|
|
77
|
+
- `file_not_found`
|
|
78
|
+
- `response_inconsistent`
|
|
79
|
+
- `internal_error`
|
|
80
|
+
- `confirmation_required`
|
|
81
|
+
- `confirmation_declined`
|
|
82
|
+
|
|
83
|
+
## Recovery rule
|
|
84
|
+
|
|
85
|
+
If the CLI exits with `6`, run the exact `hint` command from stderr, then retry.
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# Lists Commands
|
|
2
|
+
|
|
3
|
+
Use `hirotm lists` to inspect and manage board columns. Lists belong to a board, so most commands require `--board <id-or-slug>`.
|
|
4
|
+
|
|
5
|
+
## Shared arguments
|
|
6
|
+
|
|
7
|
+
- `--board <id-or-slug>`: target board id or slug.
|
|
8
|
+
- `<list-id>`: numeric list id.
|
|
9
|
+
- `--yes`: use for non-interactive delete, restore, and purge commands.
|
|
10
|
+
|
|
11
|
+
### Position flags
|
|
12
|
+
|
|
13
|
+
Used by `lists move`. Pass exactly one.
|
|
14
|
+
|
|
15
|
+
- `--before <list-id>`: place before another list.
|
|
16
|
+
- `--after <list-id>`: place after another list.
|
|
17
|
+
- `--first`: move to the first position.
|
|
18
|
+
- `--last`: move to the last position.
|
|
19
|
+
|
|
20
|
+
## Commands
|
|
21
|
+
|
|
22
|
+
### `lists list`
|
|
23
|
+
|
|
24
|
+
Format:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
hirotm lists list --board <id-or-slug> [--limit <n>] [--offset <n>] [--page-all] [--fields <keys>]
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Use this to discover lists on a board before mutation.
|
|
31
|
+
|
|
32
|
+
- `--limit <n>`: page size.
|
|
33
|
+
- `--offset <n>`: skip rows.
|
|
34
|
+
- `--page-all`: merge all pages.
|
|
35
|
+
- `--fields <keys>`: project only selected fields.
|
|
36
|
+
- Supports global `--quiet` with `--format ndjson`.
|
|
37
|
+
|
|
38
|
+
### `lists add`
|
|
39
|
+
|
|
40
|
+
Format:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
hirotm lists add --board <id-or-slug> [name] [--emoji <text>]
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Create a new list on a board.
|
|
47
|
+
|
|
48
|
+
- `[name]`: list name. Optional.
|
|
49
|
+
- `--emoji <text>`: emoji prefix for the list.
|
|
50
|
+
|
|
51
|
+
### `lists update`
|
|
52
|
+
|
|
53
|
+
Format:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
hirotm lists update --board <id-or-slug> <list-id> [--name <text>] [--color <css> | --clear-color] [--emoji <text> | --clear-emoji]
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Update list fields. Pass at least one change.
|
|
60
|
+
|
|
61
|
+
- `--name <text>`: rename the list.
|
|
62
|
+
- `--color <css>`: set a CSS color value.
|
|
63
|
+
- `--clear-color`: remove the list color.
|
|
64
|
+
- `--emoji <text>` or `--clear-emoji`: set or clear emoji.
|
|
65
|
+
|
|
66
|
+
### `lists move`
|
|
67
|
+
|
|
68
|
+
Format:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
hirotm lists move --board <id-or-slug> <list-id> [--before <list-id> | --after <list-id> | --first | --last]
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Reorder a list within a board.
|
|
75
|
+
|
|
76
|
+
- Position flags are listed once in `Position flags`.
|
|
77
|
+
|
|
78
|
+
### `lists delete`
|
|
79
|
+
|
|
80
|
+
Format:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
hirotm lists delete --board <id-or-slug> <list-id> --yes
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Move a list to Trash.
|
|
87
|
+
|
|
88
|
+
### `lists restore`
|
|
89
|
+
|
|
90
|
+
Format:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
hirotm lists restore <list-id> --yes
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Restore a trashed list.
|
|
97
|
+
|
|
98
|
+
### `lists purge`
|
|
99
|
+
|
|
100
|
+
Format:
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
hirotm lists purge <list-id> --yes
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Permanently delete a trashed list. This is irreversible.
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Releases Commands
|
|
2
|
+
|
|
3
|
+
Use `hirotm releases` to inspect and manage board releases. Releases are board-level labels used to group tasks.
|
|
4
|
+
|
|
5
|
+
## Shared arguments
|
|
6
|
+
|
|
7
|
+
- `--board <id-or-slug>`: target board id or slug.
|
|
8
|
+
- `<release-id>`: numeric release id.
|
|
9
|
+
- `--yes`: use for non-interactive delete commands.
|
|
10
|
+
|
|
11
|
+
### Shared list/read flags
|
|
12
|
+
|
|
13
|
+
Used by `releases list` and partially by `releases show`.
|
|
14
|
+
|
|
15
|
+
- `--limit <n>`: page size.
|
|
16
|
+
- `--offset <n>`: skip rows.
|
|
17
|
+
- `--page-all`: merge all pages.
|
|
18
|
+
- `--fields <keys>`: project only selected fields.
|
|
19
|
+
- `releases list` supports global `--quiet` with `--format ndjson`.
|
|
20
|
+
|
|
21
|
+
### Shared update fields
|
|
22
|
+
|
|
23
|
+
Used by `releases add` and `releases update`.
|
|
24
|
+
|
|
25
|
+
- `--name <text>`: release name.
|
|
26
|
+
- `--color <css>` or `--clear-color`: set or clear release color.
|
|
27
|
+
- `--release-date <text>` or `--clear-release-date`: set or clear the release date.
|
|
28
|
+
|
|
29
|
+
## Commands
|
|
30
|
+
|
|
31
|
+
### `releases list`
|
|
32
|
+
|
|
33
|
+
Format:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
hirotm releases list --board <id-or-slug> [--limit <n>] [--offset <n>] [--page-all] [--fields <keys>]
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Use this to discover releases on a board before setting `--release` or `--release-id` on tasks.
|
|
40
|
+
|
|
41
|
+
### `releases show`
|
|
42
|
+
|
|
43
|
+
Format:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
hirotm releases show --board <id-or-slug> <release-id> [--fields <keys>]
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Inspect one release by id.
|
|
50
|
+
|
|
51
|
+
### `releases add`
|
|
52
|
+
|
|
53
|
+
Format:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
hirotm releases add --board <id-or-slug> --name <text> [--color <css> | --clear-color] [--release-date <text> | --clear-release-date]
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Create a release on a board.
|
|
60
|
+
|
|
61
|
+
- Shared update fields are listed once in `Shared update fields`.
|
|
62
|
+
- Release names must be unique per board.
|
|
63
|
+
|
|
64
|
+
### `releases update`
|
|
65
|
+
|
|
66
|
+
Format:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
hirotm releases update --board <id-or-slug> <release-id> [--name <text>] [--color <css> | --clear-color] [--release-date <text> | --clear-release-date]
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Update release fields. Pass at least one change.
|
|
73
|
+
|
|
74
|
+
- Shared update fields are listed once in `Shared update fields`.
|
|
75
|
+
|
|
76
|
+
### `releases delete`
|
|
77
|
+
|
|
78
|
+
Format:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
hirotm releases delete --board <id-or-slug> <release-id> [--move-tasks-to <id>] --yes
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Delete a release from a board.
|
|
85
|
+
|
|
86
|
+
- `--move-tasks-to <id>`: move tagged tasks to another release before deletion.
|
|
87
|
+
- If omitted, tasks on that release become untagged.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Search Commands
|
|
2
|
+
|
|
3
|
+
Use `hirotm query search` for full-text task search across indexed task fields such as title, body, list name, group label, and status label.
|
|
4
|
+
|
|
5
|
+
## Command
|
|
6
|
+
|
|
7
|
+
### `query search <query...>`
|
|
8
|
+
|
|
9
|
+
Format:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
hirotm query search <query...> [--board <id-or-slug>] [--limit <n>] [--offset <n>] [--page-all] [--no-prefix] [--fields <keys>]
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Search tasks by text.
|
|
16
|
+
|
|
17
|
+
- `<query...>`: search text. Quote phrases when needed.
|
|
18
|
+
- `--board <id-or-slug>`: limit hits to one board.
|
|
19
|
+
- `--limit <n>`: page size. Defaults to `20` when omitted.
|
|
20
|
+
- `--offset <n>`: skip rows.
|
|
21
|
+
- `--page-all`: merge all pages.
|
|
22
|
+
- `--no-prefix`: disable automatic prefix matching on the last token.
|
|
23
|
+
- `--fields <keys>`: project only selected fields.
|
|
24
|
+
- Supports global `--quiet` with `--format ndjson`.
|
|
25
|
+
|
|
26
|
+
## Search behavior
|
|
27
|
+
|
|
28
|
+
- By default, the last token is prefix-matched unless `--no-prefix` is used.
|
|
29
|
+
- Results are ordered by relevance score, best matches first.
|
|
30
|
+
- Invalid search syntax returns an error.
|
|
31
|
+
|
|
32
|
+
## Result fields
|
|
33
|
+
|
|
34
|
+
- `taskId`: global task id.
|
|
35
|
+
- `boardSlug` / `boardName`: where the task lives.
|
|
36
|
+
- `listName`: list name for the hit.
|
|
37
|
+
- `snippet`: short excerpt with match context.
|
|
38
|
+
- `score`: relevance score; lower is better.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Statuses Commands
|
|
2
|
+
|
|
3
|
+
Use `hirotm statuses` to inspect the global workflow status table. These status ids are the values used by task commands for `--status`.
|
|
4
|
+
|
|
5
|
+
## Commands
|
|
6
|
+
|
|
7
|
+
### `statuses list`
|
|
8
|
+
|
|
9
|
+
Format:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
hirotm statuses list [--fields <keys>]
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
List all workflow statuses in display order.
|
|
16
|
+
|
|
17
|
+
- `--fields <keys>`: project only selected fields.
|
|
18
|
+
- Supports global `--quiet` with `--format ndjson`.
|
|
19
|
+
|
|
20
|
+
## Field meaning
|
|
21
|
+
|
|
22
|
+
- `statusId`: value accepted by task commands for `--status`.
|
|
23
|
+
- `label`: human-readable status name.
|
|
24
|
+
- `sortOrder`: workflow display order.
|
|
25
|
+
- `isClosed`: whether the status counts as closed.
|