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 +47 -0
- package/README.md +13 -7
- package/SPEC.md +58 -5
- package/dist/src/cli.js +563 -82
- package/docs/agent-monitor.html +11 -3
- package/docs/agent-review.html +8 -2
- package/docs/agent-usage.html +14 -0
- package/docs/agent-usage.md +17 -0
- package/docs/index.html +1 -1
- package/docs/reference.html +69 -12
- package/package.json +1 -1
- package/skills/artshelf/SKILL.md +18 -20
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`
|
|
144
|
-
|
|
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.
|