artshelf 0.8.0 → 0.10.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/CHANGELOG.md CHANGED
@@ -58,6 +58,53 @@
58
58
  pages backed by shared docs-site chrome, search, and navigation.
59
59
  - Added `artshelf update` plus cached npm update notices, with
60
60
  `ARTSHELF_NO_UPDATE_CHECK=1` for no-network scheduled jobs.
61
+ - Rewrote `artshelf help` into a compact, grouped command list (Create, Inspect,
62
+ Review, Clean, System) with one-line summaries and focused per-command help,
63
+ added nested help for `trash`/`ledgers` subcommands plus `artshelf trash help`
64
+ and `artshelf ledgers help` aliases, advertised short `-h`/`-v` flags, and
65
+ reclassified `--ledger`, `--registry`, and `--all` as command-specific scope
66
+ flags instead of global options.
67
+ - Added an `--agent` render mode to `artshelf review`, `status`, and `doctor`: a
68
+ compact, deterministic single-line JSON decision packet (health, counts,
69
+ attention categories or classified decision groups, blockers, the next safe
70
+ action, and a verification command) tuned for agents acting on results.
71
+ `--agent` takes precedence over `--json`, while `--json` stays the full,
72
+ backward-compatible audit report. The default human renders of these three
73
+ commands now lead each ledger and summary line with a `✓`/`⚠` attention glyph
74
+ (plain Unicode, no color) so redirected output stays clean.
75
+
76
+ ## [0.10.0](https://github.com/calvinnwq/artshelf/compare/artshelf-v0.9.0...artshelf-v0.10.0) (2026-06-12)
77
+
78
+
79
+ ### Features
80
+
81
+ * **cli:** add --agent decision-packet render mode for review, status, and doctor ([4d2dee0](https://github.com/calvinnwq/artshelf/commit/4d2dee099569803b887ae49438b0747d1330ec5d))
82
+ * **cli:** add --agent render mode and implement status --agent ([36f8e78](https://github.com/calvinnwq/artshelf/commit/36f8e7839d535fcabddadfc616ba518a9b444114))
83
+ * **cli:** add ✓/⚠ attention glyphs to human renders of status/doctor/review ([6f6cbe8](https://github.com/calvinnwq/artshelf/commit/6f6cbe85d54886cfd137791863e1b3554ca908f0))
84
+ * **cli:** implement artshelf doctor --agent compact decision packet ([d9abd4e](https://github.com/calvinnwq/artshelf/commit/d9abd4e75a7f4b2898eeacc3b3404221f4456bd4))
85
+ * **cli:** implement artshelf review --agent compact decision packet ([6f5476c](https://github.com/calvinnwq/artshelf/commit/6f5476ca987de3190f7a8760c6bb9c1efa8b9fce))
86
+
87
+
88
+ ### Bug Fixes
89
+
90
+ * **cli:** preserve ledger scope in agent next actions ([a583683](https://github.com/calvinnwq/artshelf/commit/a583683064cdd16dd929766dc01f23fc31fa50e7))
91
+
92
+ ## [0.9.0](https://github.com/calvinnwq/artshelf/compare/artshelf-v0.8.0...artshelf-v0.9.0) (2026-06-11)
93
+
94
+
95
+ ### Features
96
+
97
+ * **cli:** rewrite help with grouped commands, focused per-command help, and short flags ([7310638](https://github.com/calvinnwq/artshelf/commit/73106385ce3e3d037921cdb4ff534614d024244f))
98
+ * **cli:** rewrite top-level help with grouped commands, focused per-command help, and subcommand routing ([c8dea22](https://github.com/calvinnwq/artshelf/commit/c8dea2255628915eb629c5cc4cbc2ef1ec31c3a7))
99
+
100
+
101
+ ### Bug Fixes
102
+
103
+ * **cli:** advertise short help flag ([825c4ae](https://github.com/calvinnwq/artshelf/commit/825c4ae38aa61209f22c702a82f51b93c5ea3d09))
104
+ * **cli:** advertise short version flag ([23ca99b](https://github.com/calvinnwq/artshelf/commit/23ca99b0ba7c596a8df89ec3c0384286c55d2a96))
105
+ * **cli:** polish nested help output ([109255d](https://github.com/calvinnwq/artshelf/commit/109255dfa3baa50c6aae837190adb19cfa7249b8))
106
+ * **cli:** support ledgers help subcommand ([18723ce](https://github.com/calvinnwq/artshelf/commit/18723ce384fbdeed33fe066ad0093093d30dc5a5))
107
+ * **cli:** support short help flag ([081b50f](https://github.com/calvinnwq/artshelf/commit/081b50f67a5e0821341aca4f98ab3244ab316338))
61
108
 
62
109
  ## [0.8.0](https://github.com/calvinnwq/artshelf/compare/artshelf-v0.7.0...artshelf-v0.8.0) (2026-06-11)
63
110
 
package/README.md CHANGED
@@ -112,6 +112,8 @@ destructive deletion.
112
112
  - **Trash before delete** — `cleanup=delete` stays refused; physical deletion
113
113
  needs its own reviewed trash purge. No silent deletion, ever.
114
114
  - **`--json` on every command**, so agents can act on structured output.
115
+ - **`--agent` on `review`/`status`/`doctor`**, a compact, token-efficient
116
+ decision packet for agents, while the default render stays human-scannable.
115
117
 
116
118
  ## Reference
117
119
 
@@ -120,8 +122,8 @@ destructive deletion.
120
122
 
121
123
  ```bash
122
124
  artshelf put <path> --reason "debug parser output" --ttl 3d --kind scratch
123
- artshelf ledgers list [--plain]
124
- artshelf ledgers add --ledger <path>
125
+ artshelf ledgers list [--plain] [--json]
126
+ artshelf ledgers add --ledger <path> [--name <project>] [--scope repo|user|other] [--json]
125
127
  artshelf list [--all] [--status active]
126
128
  artshelf find --path <path> --owner <agent-or-runtime> --label <task-or-run-id>
127
129
  artshelf find --all --owner <agent-or-runtime>
@@ -133,15 +135,19 @@ artshelf status [--all]
133
135
  artshelf doctor
134
136
  artshelf update [--json]
135
137
  artshelf cleanup --dry-run [--all]
136
- artshelf cleanup --execute --plan-id <id>
138
+ artshelf cleanup --execute --plan-id <id> [--ledger <path>] [--json]
137
139
  artshelf trash list [--all] [--ledger <path>] [--json]
138
140
  artshelf trash purge --older-than <ttl> --dry-run [--ledger <path>] [--json]
139
141
  artshelf trash purge --execute --plan-id <id> [--ledger <path>] [--json]
140
- artshelf resolve <id> --status resolved --reason "inspected and no longer needed"
142
+ artshelf resolve <id> --status resolved --reason "inspected and no longer needed" [--ledger <path>] [--json]
141
143
  ```
142
144
 
143
- Use `artshelf help` or `artshelf help <command>` for details. All core commands
144
- support `--json`.
145
+ Use `artshelf help` for a grouped command list, then `artshelf <command> --help`
146
+ or `artshelf help <command>` for focused details. Nested commands such as
147
+ `artshelf trash purge --help` and `artshelf ledgers add --help` show only that
148
+ subcommand. All core commands support `--json`; `review`, `status`, and `doctor`
149
+ also take `--agent` for a compact decision packet; `--ledger`, `--registry`, and
150
+ `--all` are scope flags only on commands that list them.
145
151
  </details>
146
152
 
147
153
  <details>
@@ -159,7 +165,7 @@ artshelf list --ledger /tmp/artshelf-ledger.jsonl
159
165
  Artshelf keeps a small global registry of known ledgers at
160
166
  `~/.artshelf/ledgers.json` (override with `--registry <path>` or
161
167
  `ARTSHELF_REGISTRY`). `put` registers its ledger automatically; register an
162
- existing one with `artshelf ledgers add --ledger <path> --name <project>`.
168
+ existing one with `artshelf ledgers add --ledger <path> --name <project> --json`.
163
169
  `artshelf ledgers list` validates each registered ledger by default (ok/missing/invalid
164
170
  status with counts, non-zero exit when broken), so it doubles as a stale-entry
165
171
  check; add `--plain` to skip validation.
package/SPEC.md CHANGED
@@ -36,6 +36,35 @@ somewhere accountable, with an expiry tag and a cleanup plan.
36
36
 
37
37
  ## V1 CLI
38
38
 
39
+ ### Help and option presentation
40
+
41
+ Top-level help is compact and points readers to focused command help.
42
+
43
+ ```bash
44
+ artshelf help
45
+ artshelf --help
46
+ artshelf <command> --help
47
+ artshelf help <command>
48
+ artshelf <command> <subcommand> --help
49
+ artshelf help <command> <subcommand>
50
+ ```
51
+
52
+ Rules:
53
+
54
+ - `artshelf help`, `artshelf --help`, and `artshelf -h` show a grouped command
55
+ list with one-line summaries instead of dumping every command variant.
56
+ - Command groups are `Create`, `Inspect`, `Review`, `Clean`, and `System`.
57
+ - `artshelf <command> --help` and `artshelf help <command>` show focused help
58
+ for that command.
59
+ - Nested help is supported for `trash list`, `trash purge`, `ledgers list`, and
60
+ `ledgers add`.
61
+ - `artshelf trash help` and `artshelf ledgers help` are aliases for the focused
62
+ help of those commands, matching `artshelf help trash` and `artshelf help ledgers`.
63
+ - Top-level help presents `-h, --help` and `-v, --version` as global options,
64
+ `--json` as the output mode, and `--ledger`, `--registry`, and `--all` as
65
+ command-specific scope flags. The short `-h` and `-v` forms work both at the
66
+ top level and after a command.
67
+
39
68
  ### `artshelf put`
40
69
 
41
70
  Records an existing file or directory in the ledger.
@@ -79,8 +108,9 @@ Lists or registers known Artshelf ledgers.
79
108
 
80
109
  ```bash
81
110
  artshelf ledgers list
111
+ artshelf ledgers list --json
82
112
  artshelf ledgers list --plain
83
- artshelf ledgers add --ledger <path> --name <project> --scope repo
113
+ artshelf ledgers add --ledger <path> --name <project> --scope repo --json
84
114
  ```
85
115
 
86
116
  Rules:
@@ -212,7 +242,9 @@ files or writing a plan.
212
242
 
213
243
  ```bash
214
244
  artshelf review --json
245
+ artshelf review --agent
215
246
  artshelf review --all --json
247
+ artshelf review --all --agent
216
248
  ```
217
249
 
218
250
  `review` is the compact report surface for scheduled checks. `--all` reads every
@@ -227,6 +259,16 @@ triage count and states the same next safe action (repair broken ledgers, dry-ru
227
259
  cleanup, inspect missing paths, or nothing to do). Review never writes a plan, so
228
260
  the next action always points at an explicit follow-up command.
229
261
 
262
+ `review`, `status`, and `doctor` share three render modes. The default human
263
+ render leads each ledger and summary line with a `✓`/`⚠` attention glyph; `--json`
264
+ stays the full, backward-compatible audit report; and `--agent` emits a compact,
265
+ deterministic single-line JSON decision packet for agents, taking precedence over
266
+ `--json` when both are passed. For `review`, the packet sorts records into
267
+ ready-for-approval, needs-review-first, and blocked groups. Because review is
268
+ read-only and never mints a cleanup plan, the only exact approval target it emits
269
+ is `resolve missing`; cleanup-eligible records stay needs-review-first and point
270
+ at `cleanup --dry-run`, which mints the reviewed plan id to approve.
271
+
230
272
  ### `artshelf doctor`
231
273
 
232
274
  Reports whether Artshelf is healthy on the current machine without mutating
@@ -235,6 +277,7 @@ anything.
235
277
  ```bash
236
278
  artshelf doctor
237
279
  artshelf doctor --json
280
+ artshelf doctor --agent
238
281
  artshelf doctor --ledger <path>
239
282
  artshelf doctor --registry <path>
240
283
  ```
@@ -254,7 +297,11 @@ A healthy machine exits 0. A broken registry file or any stale or invalid
254
297
  registered ledger exits non-zero with actionable errors. Humans should run
255
298
  `artshelf doctor` after install or when `--all` commands behave unexpectedly; agents
256
299
  may run it on a schedule to catch stale registry entries before relying on
257
- cleanup planning. Doctor never creates plans, receipts, or records.
300
+ cleanup planning. Doctor never creates plans, receipts, or records. Like `review`
301
+ and `status`, `doctor` accepts `--agent` for a compact single-line JSON decision
302
+ packet (health, registry and registered-ledger health, blockers, cleanup-safety
303
+ posture, next action, and a verify command); `--agent` takes precedence over
304
+ `--json`.
258
305
 
259
306
  ### `artshelf status`
260
307
 
@@ -263,7 +310,9 @@ The lightweight daily "what is going on?" view across ledgers.
263
310
  ```bash
264
311
  artshelf status
265
312
  artshelf status --json
313
+ artshelf status --agent
266
314
  artshelf status --all --json
315
+ artshelf status --all --agent
267
316
  artshelf status --all --registry <path> --json
268
317
  ```
269
318
 
@@ -282,7 +331,9 @@ never creates plans or receipts and never mutates records. A healthy machine
282
331
  exits 0. In `--all` mode, a broken registry or any stale or invalid registered
283
332
  ledger exits non-zero. Due entries are normal operational state and do not change
284
333
  the exit code. With single `--ledger`, a not-yet-created ledger reports empty
285
- counts.
334
+ counts. Like `review` and `doctor`, `status` accepts `--agent` for a compact
335
+ single-line JSON decision packet (health, counts, attention categories, blockers,
336
+ next action, and a verify command); `--agent` takes precedence over `--json`.
286
337
 
287
338
  ### `artshelf update`
288
339
 
@@ -361,8 +412,8 @@ plan id.
361
412
  Executes a previously generated cleanup plan.
362
413
 
363
414
  ```bash
364
- artshelf cleanup --execute --plan-id <id>
365
- artshelf cleanup --execute --plan-id <id> --json
415
+ artshelf cleanup --execute --plan-id <id> [--ledger <path>]
416
+ artshelf cleanup --execute --plan-id <id> [--ledger <path>] --json
366
417
  ```
367
418
 
368
419
  Rules:
@@ -743,6 +794,8 @@ human review.
743
794
  - Package includes the deterministic `ArtshelfReviewReport` schema, canonical
744
795
  example, and portable renderer script for agent-rendered review reports.
745
796
  - All core commands support `--json`.
797
+ - `review`, `status`, and `doctor` also support `--agent`, a compact single-line
798
+ JSON decision packet for agents that takes precedence over `--json`.
746
799
  - Tests cover record/list/find/get/status-filter/due/validate/resolve/registry,
747
800
  `artshelf doctor`, the `artshelf status` dashboard, `--all` review, stale-registry,
748
801
  dry-run, global-dry-run, execute-plan, and trash list/purge behavior.