@harborppm/cli 0.36.0 → 0.38.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 +35 -2
- package/dist/app.mjs +4091 -898
- package/lib/cli.mjs +223 -2
- package/lib/format.mjs +70 -4
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -61,6 +61,32 @@ Your harbor is the same one at [harborppm.com](https://harborppm.com/today?utm_s
|
|
|
61
61
|
|
|
62
62
|
The website has the commands too: turn on **Command line at the bottom** in your menu, press `/`, and type `mine`, `add "Call the mill" #ridge @sam --due fri` or `done RR-12`.
|
|
63
63
|
|
|
64
|
+
## Your plan in your repository
|
|
65
|
+
|
|
66
|
+
`harbor init` in a code project writes a `.harbor/` folder at the top of the repository: one plain file per task in a project, with its title, status, owner, due date, priority and what it waits on, and its notes below. Edit them by hand, review them in pull requests, keep them in git like any code.
|
|
67
|
+
|
|
68
|
+
```sh
|
|
69
|
+
harbor init "Cedar site" # or its key: harbor init CS
|
|
70
|
+
$EDITOR .harbor/tasks/CS-4.md # status: doing, owner: Sam, due: 2026-11-07…
|
|
71
|
+
harbor sync # sends the edits, brings the website's back
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
```md
|
|
75
|
+
---
|
|
76
|
+
title: Move checkout to the new API
|
|
77
|
+
status: doing
|
|
78
|
+
owner: Sam Rivera
|
|
79
|
+
due: 2026-11-07
|
|
80
|
+
priority: high
|
|
81
|
+
waits: [CS-2]
|
|
82
|
+
---
|
|
83
|
+
Old endpoints go away on Nov 20.
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
A new file with any name is a new task: `harbor sync` adds it and renames it to its key. A field changed in a file and not on the website goes to Harbor; one changed in both places keeps the website's and says so. Removing a file doesn't delete the task (mark it done instead). On a fresh clone, run `harbor sync` before editing. `harbor init --hook` adds a git post-commit hook that syncs after each commit.
|
|
87
|
+
|
|
88
|
+
No account? `harbor init --local` makes a plan that lives only in the folder (the rest of it in `.harbor/plan.json`), and `harbor` in that folder opens it full screen, offline and free. Later, `harbor init PROJECT` moves its tasks into a project on harborppm.com.
|
|
89
|
+
|
|
64
90
|
## In your shell prompt
|
|
65
91
|
|
|
66
92
|
`harbor prompt` prints a few characters for your prompt: `⚓ 2 today · 1 late`, with late work in coral, and nothing at all when you're clear. It never waits on the network: it shows the counts it kept and fetches new ones in the background when they're more than five minutes old, or after you change a task. `harbor prompt --init zsh` (or `bash`, `fish`, `starship`) prints the lines to add to your shell's setup, so `harbor prompt --init starship >> ~/.config/starship.toml` does it in one go:
|
|
@@ -125,11 +151,18 @@ harbor issue "TITLE" --project P|--program P [--impact 1-5] [--owner NAME]
|
|
|
125
151
|
harbor decision "TITLE" --project P|--program P [--owner NAME] [--due DATE]
|
|
126
152
|
harbor risks [words] [--kind risk,issue,decision] [--project P] [--closed]
|
|
127
153
|
harbor brief [--portfolio P] [--say] the weekly brief, ready to send
|
|
128
|
-
harbor report PROGRAM a program's status report
|
|
154
|
+
harbor report PROGRAM a program's status report, as Markdown
|
|
155
|
+
harbor export tasks PROJECT|risks|review [--all]
|
|
156
|
+
a spreadsheet (CSV) to stdout
|
|
157
|
+
harbor import FILE [--project P] [--portfolio P] [--no-people]
|
|
158
|
+
add tasks from a CSV file
|
|
129
159
|
harbor premortem PROJECT ["WHAT WENT WRONG"] [--start]
|
|
130
160
|
harbor voyage PROJECT ["YOUR LINE"]
|
|
131
161
|
harbor note PROJECT ["NOTE"] [--opens DATE|--milestone NAME|--off-track]
|
|
132
162
|
harbor limit PROJECT [COLUMN N|none]
|
|
163
|
+
harbor init [PROJECT] [--hook] a project's tasks as files in this repository
|
|
164
|
+
harbor init --local [NAME] a plan in this folder alone, no account
|
|
165
|
+
harbor sync [--quiet] the files and the website, in step both ways
|
|
133
166
|
harbor handover PERSON [--to NAME] [--until DATE] [--note TEXT] [--keep ID,ID] [--confirm]
|
|
134
167
|
harbor handback PERSON
|
|
135
168
|
harbor agent [--agent NAME]
|
|
@@ -152,7 +185,7 @@ When you belong to more than one harbor, say which: `--harbor NAME` on the comma
|
|
|
152
185
|
|
|
153
186
|
Harbor holds back what it would hold back in the app: finishing a task that still waits on another, or going past a column's limit. The CLI says so and names the flag that goes ahead (`--confirm`, `--over-limit`).
|
|
154
187
|
|
|
155
|
-
Every change shows in Harbor's History as yours, "via Harbor CLI". The commands never delete anything; the full-screen app can, as the website can, and asks first.
|
|
188
|
+
Every change shows in Harbor's History as yours, "via Harbor CLI". The commands never delete anything (`harbor sync` included: removing a task's file brings it back); the full-screen app can, as the website can, and asks first.
|
|
156
189
|
|
|
157
190
|
## Another server
|
|
158
191
|
|