@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.
Files changed (146) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +41 -52
  3. package/dist/assets/architecture-YZFGNWBL-C1MoQeSs.js +1 -0
  4. package/dist/assets/{architectureDiagram-Q4EWVU46-DSQ1_74_.js → architectureDiagram-Q4EWVU46-DUEfvDBu.js} +1 -1
  5. package/dist/assets/{blockDiagram-DXYQGD6D-DfOGNphI.js → blockDiagram-DXYQGD6D-DQzEOPT2.js} +1 -1
  6. package/dist/assets/{chunk-2KRD3SAO-9yt00aGC.js → chunk-2KRD3SAO-C2e-_49I.js} +1 -1
  7. package/dist/assets/{chunk-4TB4RGXK-DF8yJBFl.js → chunk-4TB4RGXK-AZq3s1Dh.js} +1 -1
  8. package/dist/assets/{chunk-67CJDMHE-5wFKo04G.js → chunk-67CJDMHE-B1-M78qu.js} +1 -1
  9. package/dist/assets/{chunk-7N4EOEYR-BRRGX_NC.js → chunk-7N4EOEYR-D7mYFpz-.js} +1 -1
  10. package/dist/assets/{chunk-AA7GKIK3-DUZv_pNI.js → chunk-AA7GKIK3-VWI9k39i.js} +1 -1
  11. package/dist/assets/{chunk-CIAEETIT-mA5aM_d7.js → chunk-CIAEETIT-hnu4zamm.js} +1 -1
  12. package/dist/assets/{chunk-FOC6F5B3-B-cqGCPC.js → chunk-FOC6F5B3-BJsh9nO9.js} +1 -1
  13. package/dist/assets/{chunk-K5T4RW27-BLRDzioh.js → chunk-K5T4RW27-BLIPdXaZ.js} +1 -1
  14. package/dist/assets/{chunk-KGLVRYIC-CTkQSeKy.js → chunk-KGLVRYIC-DvaW2TkT.js} +1 -1
  15. package/dist/assets/{chunk-LIHQZDEY-Cf34Nu3J.js → chunk-LIHQZDEY-CUsM0M11.js} +1 -1
  16. package/dist/assets/{chunk-ORNJ4GCN-D3uXgbay.js → chunk-ORNJ4GCN-CfluNV0_.js} +1 -1
  17. package/dist/assets/{chunk-OYMX7WX6-syQho5jf.js → chunk-OYMX7WX6-CkWzw4JX.js} +1 -1
  18. package/dist/assets/{classDiagram-6PBFFD2Q-CotFZI8-.js → classDiagram-6PBFFD2Q-Dx_f-9b7.js} +1 -1
  19. package/dist/assets/{classDiagram-v2-HSJHXN6E-DAPzeDGn.js → classDiagram-v2-HSJHXN6E-CSfvZ-nt.js} +1 -1
  20. package/dist/assets/clone-CXokakwV.js +1 -0
  21. package/dist/assets/{dagre-rhyPjnsQ.js → dagre-Do0eD9eI.js} +1 -1
  22. package/dist/assets/{dagre-KV5264BT-BBqulDtd.js → dagre-KV5264BT-lveZDhBf.js} +1 -1
  23. package/dist/assets/{diagram-5BDNPKRD-Ky3EXXj0.js → diagram-5BDNPKRD-Dq5yM_uY.js} +1 -1
  24. package/dist/assets/{diagram-G4DWMVQ6-t7LbT0Uz.js → diagram-G4DWMVQ6-D-SYOmKm.js} +1 -1
  25. package/dist/assets/{diagram-MMDJMWI5-CdnLXEMx.js → diagram-MMDJMWI5-lU5t9BZA.js} +1 -1
  26. package/dist/assets/{diagram-TYMM5635-CnzTqJBM.js → diagram-TYMM5635-6tfUbY3R.js} +1 -1
  27. package/dist/assets/{erDiagram-SMLLAGMA-BN5eJerP.js → erDiagram-SMLLAGMA-dx09stuy.js} +1 -1
  28. package/dist/assets/{flatten-C5NL-f24.js → flatten-B2BZ0pzY.js} +1 -1
  29. package/dist/assets/{flowDiagram-DWJPFMVM-CbFskc8S.js → flowDiagram-DWJPFMVM-CJi2WISS.js} +1 -1
  30. package/dist/assets/gitGraph-7Q5UKJZL-BXTuQaDM.js +1 -0
  31. package/dist/assets/{gitGraphDiagram-UUTBAWPF-wpqI2kyI.js → gitGraphDiagram-UUTBAWPF-Bjj94M12.js} +1 -1
  32. package/dist/assets/{graphlib-COiJG5Qv.js → graphlib-BIlXYGdM.js} +1 -1
  33. package/dist/assets/{index-lyyIVcc_.js → index-CZZuue3D.js} +5 -5
  34. package/dist/assets/info-OMHHGYJF-BeeKt8-X.js +1 -0
  35. package/dist/assets/{infoDiagram-42DDH7IO-BbvTdpSV.js → infoDiagram-42DDH7IO-wq_opQKO.js} +1 -1
  36. package/dist/assets/{ishikawaDiagram-UXIWVN3A-Epc23N_0.js → ishikawaDiagram-UXIWVN3A-Cnc1bwBo.js} +1 -1
  37. package/dist/assets/{kanban-definition-6JOO6SKY-C8dW_26n.js → kanban-definition-6JOO6SKY-CwHbIze0.js} +1 -1
  38. package/dist/assets/{mermaid-parser.core-6Tn8epr_.js → mermaid-parser.core-DrLhKJ48.js} +2 -2
  39. package/dist/assets/{mindmap-definition-QFDTVHPH-CvpNtrKT.js → mindmap-definition-QFDTVHPH-DswAJiEd.js} +1 -1
  40. package/dist/assets/packet-4T2RLAQJ-DQ-H9_jd.js +1 -0
  41. package/dist/assets/pie-ZZUOXDRM-BSj0Jsyj.js +1 -0
  42. package/dist/assets/{pieDiagram-DEJITSTG-eENymoXZ.js → pieDiagram-DEJITSTG-DgQTCddl.js} +1 -1
  43. package/dist/assets/radar-PYXPWWZC-B7-oRPFL.js +1 -0
  44. package/dist/assets/{reduce-BDOBPIXr.js → reduce-Uumu9GdR.js} +1 -1
  45. package/dist/assets/{requirementDiagram-MS252O5E-CmRO3hLp.js → requirementDiagram-MS252O5E-D1moa23Z.js} +1 -1
  46. package/dist/assets/{sequenceDiagram-FGHM5R23-B7qNcwNo.js → sequenceDiagram-FGHM5R23-Dvhj7HGn.js} +1 -1
  47. package/dist/assets/{stateDiagram-FHFEXIEX-CYfGMoR8.js → stateDiagram-FHFEXIEX-Dx5CjenB.js} +1 -1
  48. package/dist/assets/{stateDiagram-v2-QKLJ7IA2-CO1W_n55.js → stateDiagram-v2-QKLJ7IA2-C_PkrTdc.js} +1 -1
  49. package/dist/assets/{timeline-definition-GMOUNBTQ-CQWqDPGG.js → timeline-definition-GMOUNBTQ-z-IncVmK.js} +1 -1
  50. package/dist/assets/treeView-SZITEDCU-CFXle9Az.js +1 -0
  51. package/dist/assets/treemap-W4RFUUIX-CAW3vWh8.js +1 -0
  52. package/dist/assets/{vennDiagram-DHZGUBPP-BjTbuhcb.js → vennDiagram-DHZGUBPP-CT1ehozU.js} +1 -1
  53. package/dist/assets/wardley-RL74JXVD-7q3ju4kc.js +1 -0
  54. package/dist/assets/{wardleyDiagram-NUSXRM2D-DNhPIFCg.js → wardleyDiagram-NUSXRM2D-D-kouujI.js} +1 -1
  55. package/dist/assets/{xychartDiagram-5P7HB3ND-BDblAZ11.js → xychartDiagram-5P7HB3ND-D1lnM0pL.js} +1 -1
  56. package/dist/index.html +1 -1
  57. package/package.json +101 -92
  58. package/scripts/postinstall-message.mjs +160 -0
  59. package/scripts/stubs/node-domexception/index.cjs +18 -0
  60. package/scripts/stubs/node-domexception/package.json +7 -0
  61. package/skills/hiro-task-manager-cli/SKILL.md +97 -0
  62. package/skills/hiro-task-manager-cli/reference/boards.md +143 -0
  63. package/skills/hiro-task-manager-cli/reference/cli-access-policy.md +72 -0
  64. package/skills/hiro-task-manager-cli/reference/errors.md +85 -0
  65. package/skills/hiro-task-manager-cli/reference/lists.md +106 -0
  66. package/skills/hiro-task-manager-cli/reference/releases.md +87 -0
  67. package/skills/hiro-task-manager-cli/reference/search.md +38 -0
  68. package/skills/hiro-task-manager-cli/reference/statuses.md +25 -0
  69. package/skills/hiro-task-manager-cli/reference/tasks.md +144 -0
  70. package/skills/hiro-task-manager-cli/reference/trash.md +50 -0
  71. package/src/cli/bootstrap/launcher.test.ts +66 -0
  72. package/src/cli/bootstrap/launcher.ts +375 -35
  73. package/src/cli/bootstrap/program.ts +4 -0
  74. package/src/cli/bootstrap/runtime.test.ts +15 -0
  75. package/src/cli/bootstrap/runtime.ts +27 -1
  76. package/src/cli/commands/query.ts +56 -56
  77. package/src/cli/commands/server.ts +27 -19
  78. package/src/cli/handlers/boards.test.ts +669 -669
  79. package/src/cli/handlers/cli-wiring.test.ts +1 -1
  80. package/src/cli/handlers/search.test.ts +374 -374
  81. package/src/cli/handlers/search.ts +17 -17
  82. package/src/cli/handlers/server.test.ts +55 -13
  83. package/src/cli/handlers/server.ts +16 -3
  84. package/src/cli/lib/api-client.test.ts +35 -2
  85. package/src/cli/lib/api-client.ts +43 -10
  86. package/src/cli/lib/cli-http-errors.test.ts +85 -85
  87. package/src/cli/lib/command-helpers.ts +161 -154
  88. package/src/cli/lib/config.ts +4 -0
  89. package/src/cli/lib/launcherUi.ts +166 -0
  90. package/src/cli/lib/process.test.ts +24 -5
  91. package/src/cli/lib/process.ts +86 -55
  92. package/src/cli/ports/process.ts +8 -2
  93. package/src/cli/subprocess.real-stack.test.ts +611 -598
  94. package/src/cli/subprocess.smoke.test.ts +954 -969
  95. package/src/cli/types/config.ts +2 -6
  96. package/src/client/components/auth/AuthScreen.tsx +3 -3
  97. package/src/client/components/board/BoardStatsChips.tsx +233 -233
  98. package/src/client/components/board/BoardStatsContext.tsx +41 -41
  99. package/src/client/components/board/boardHeaderButtonStyles.ts +38 -38
  100. package/src/client/components/board/shortcuts/useBoardShortcutKeydown.ts +49 -49
  101. package/src/client/components/board/useBoardCanvasPanScroll.ts +108 -108
  102. package/src/client/components/board/useBoardTaskContainerDroppableReact.ts +33 -33
  103. package/src/client/components/board/useBoardTaskSortableReact.ts +26 -26
  104. package/src/client/components/multi-select.tsx +1206 -1206
  105. package/src/client/components/routing/BoardPage.tsx +20 -20
  106. package/src/client/components/routing/NavigationRegistrar.tsx +13 -13
  107. package/src/client/components/settings/SettingsPage.tsx +1 -1
  108. package/src/client/components/task/TaskCard.tsx +643 -643
  109. package/src/client/components/ui/badge.tsx +49 -49
  110. package/src/client/components/ui/button.tsx +65 -65
  111. package/src/client/components/ui/command.tsx +193 -193
  112. package/src/client/components/ui/dialog.tsx +163 -163
  113. package/src/client/components/ui/input-group.tsx +155 -155
  114. package/src/client/components/ui/input.tsx +19 -19
  115. package/src/client/components/ui/popover.tsx +87 -87
  116. package/src/client/components/ui/separator.tsx +28 -28
  117. package/src/client/components/ui/textarea.tsx +18 -18
  118. package/src/client/index.css +248 -248
  119. package/src/client/lib/appNavigate.ts +16 -16
  120. package/src/client/lib/taskCardDate.ts +111 -111
  121. package/src/client/lib/utils.ts +6 -6
  122. package/src/server/auth.ts +351 -302
  123. package/src/server/bootstrapDev.ts +11 -2
  124. package/src/server/bootstrapInstalled.ts +6 -1
  125. package/src/server/index.ts +33 -7
  126. package/src/server/migrations/013_cli_policy_and_provenance.ts +2 -2
  127. package/src/server/migrations/019_cli_global_create_board_default_on.ts +14 -0
  128. package/src/server/migrations/registry.ts +43 -41
  129. package/src/server/parseBootstrapProfile.ts +42 -0
  130. package/src/server/storage/cliPolicy.ts +2 -1
  131. package/src/shared/runtimeConfig.ts +256 -237
  132. package/src/shared/runtimeIdentity.test.ts +47 -0
  133. package/src/shared/runtimeIdentity.ts +35 -0
  134. package/src/shared/serverStatus.ts +21 -0
  135. package/src/shared/skillsInstall.ts +71 -0
  136. package/src/shared/terminalColors.ts +24 -0
  137. package/dist/assets/architecture-YZFGNWBL-3h1eIYfB.js +0 -1
  138. package/dist/assets/clone-BRQpYu_n.js +0 -1
  139. package/dist/assets/gitGraph-7Q5UKJZL-CG8f8JF7.js +0 -1
  140. package/dist/assets/info-OMHHGYJF-C8_SHoRO.js +0 -1
  141. package/dist/assets/packet-4T2RLAQJ-BvpAX0kJ.js +0 -1
  142. package/dist/assets/pie-ZZUOXDRM-Ow26Yf-E.js +0 -1
  143. package/dist/assets/radar-PYXPWWZC-e_ron5jQ.js +0 -1
  144. package/dist/assets/treeView-SZITEDCU-DsEr3xeq.js +0 -1
  145. package/dist/assets/treemap-W4RFUUIX-DV7nk2AB.js +0 -1
  146. 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.