wowbagger 0.1.0-alpha.2 → 0.1.0-alpha.4

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
@@ -7,6 +7,35 @@ consolidation. The first tagged release inherits this file.
7
7
 
8
8
  ## Unreleased
9
9
 
10
+ ## 0.1.0-alpha.4 - 2026-08-14
11
+
12
+ ### Added
13
+
14
+ - `report` validates a ledger and atomically writes a deterministic,
15
+ self-contained HTML report from `.wowbagger/report.json`. The report includes
16
+ canonical readiness, semantic-field search, filters, sorting, grouping,
17
+ three detail levels, terminal history, and optional area-diverse swarm
18
+ batches. This repository includes a local report configuration and ignores
19
+ the generated artifact.
20
+
21
+ ### Fixed
22
+
23
+ - The Claude Code adapter now declares Darwin `supported`. Native Darwin
24
+ conformance passes all 183 common-vector assertions across all 15 cases, so
25
+ configured consumer workspaces can invoke the published adapter read path.
26
+
27
+ ## 0.1.0-alpha.3 - 2026-08-12
28
+
29
+ ### Fixed
30
+
31
+ - Published install and upgrade guidance now names this release's immutable Git
32
+ tag and uses the prerelease `next` npm channel instead of the older `latest`
33
+ artifact. Item 62.
34
+ - The installed plugin skill now requires the exact core distribution version
35
+ that shipped with it, in addition to core contract version 2. This detects an
36
+ older core that shares the contract number but lacks behavior required by the
37
+ newer skill. Item 64; item 63 records the rejected capability-schema change.
38
+
10
39
  ## 0.1.0-alpha.2 - 2026-08-12
11
40
 
12
41
  ### Fixed
package/README.md CHANGED
@@ -14,13 +14,15 @@ putting a database or hosted service inside your repository.
14
14
  > scope is deliberately narrow: cooperative writers in one working copy, one
15
15
  > item at a time. A Claude Code adapter and plugin ship from this
16
16
  > repository; the adapter answers the negotiation surface of the harness-neutral
17
- > contract and passes all 183 assertions across all 15 cases on native Darwin,
18
- > although no manifest platform is claimed `supported` yet. The shipped core
19
- > mutation contract and adapter contract are version 2; their frozen version 1
20
- > definitions are not silently negotiated.
17
+ > contract and passes all 183 assertions across all 15 cases on native Darwin.
18
+ > The Claude Code adapter declares Darwin `supported`; all other shipped adapter
19
+ > platform declarations remain `unverified`. The shipped core mutation contract
20
+ > and adapter contract are version 2; their frozen version 1 definitions are not
21
+ > silently negotiated.
21
22
  >
22
- > On Git-backed ledgers, work claims coordinate cooperating agents through a
23
- > durable journal in Git's shared common directory. `claim acquire` uses
23
+ > A work claim is not a lock or an exclusive dispatch lease. On Git-backed
24
+ > ledgers, claims coordinate cooperating agents through a durable journal in
25
+ > Git's shared common directory. `claim acquire` uses
24
26
  > observed-state compare-and-swap. `publish-claimed` fences one item against
25
27
  > the active owner generation and expected revision. `claim-verify` reconciles
26
28
  > response-loss and post-merge outcomes. This is **merge-coordinated**, not
@@ -34,7 +36,7 @@ Install the core CLI, then verify it:
34
36
  ```sh
35
37
  npm install -g wowbagger@next # public npm prerelease
36
38
  # or, from this release's Git tag:
37
- # npm install -g github:lstutzman/wowbagger#v0.1.0-alpha.1
39
+ # npm install -g github:lstutzman/wowbagger#v0.1.0-alpha.4
38
40
  wowbagger capabilities --json
39
41
  ```
40
42
 
@@ -45,11 +47,12 @@ In Claude Code, add the plugin:
45
47
  /plugin install wowbagger@wowbagger
46
48
  ```
47
49
 
48
- The plugin drives the installed core rather than bundling one, so a version
49
- mismatch is detectable instead of silent: it reads `contract_version` from
50
- `capabilities` and refuses when the core is absent or reports anything it does
51
- not support. It will not fall back to editing ledger files by hand, because that
52
- would bypass validation and atomic publication.
50
+ The plugin drives the installed core rather than bundling one, so a mismatch is
51
+ detectable instead of silent. Its skill reads `wowbagger --version` and
52
+ `capabilities`; it requires the same distribution version as the plugin and
53
+ core contract version 2. It refuses an absent or incompatible core. It will not
54
+ fall back to editing ledger files by hand, because that would bypass validation
55
+ and atomic publication.
53
56
 
54
57
  For an isolated consumer pilot, create or select the disposable worktree before
55
58
  the agent starts. Then launch a new session with that worktree as its project
@@ -69,29 +72,30 @@ two supported install routes:
69
72
  - **npm registry** — `npm install -g wowbagger@next` installs the current
70
73
  prerelease.
71
74
  - **git tag** —
72
- `npm install -g github:lstutzman/wowbagger#v0.1.0-alpha.1` installs this
75
+ `npm install -g github:lstutzman/wowbagger#v0.1.0-alpha.4` installs this
73
76
  release. Installing at a ref installs the core and every adapter that ref
74
77
  carries.
75
78
 
76
79
  Either route installs the core and the `wowbagger` command. The Claude Code
77
80
  plugin is a separate artifact (see [Start here](#start-here)); the core and the
78
- plugin are installed and versioned independently, and a mismatch is refused by
79
- `contract_version` rather than guessed.
81
+ plugin are installed independently. Install their matching distribution
82
+ versions.
80
83
 
81
84
  ### Compatibility
82
85
 
83
- The behavioural version is `contract_version`, reported by
86
+ The contract version is top-level `contract_version`, reported by
84
87
  `wowbagger capabilities --json`. Contracts change it; refactors do not. The
85
- distribution version is the npm/git version, which names bytes, not behaviour.
86
- Match on `contract_version` never on the package version — when you decide
87
- whether a core supports your request.
88
+ npm/Git distribution version names release bytes. General API consumers
89
+ negotiate the contract version. The shipped plugin skill additionally requires
90
+ the exact core distribution version that shipped with it, because its
91
+ instructions can depend on additive behavior from that release.
88
92
 
89
93
  - **Node.js:** 20 and later. The adapter conformance vectors run against Node
90
94
  20 and the current runtime before each release.
91
- - **Platforms:** the core runs wherever Node.js runs, but a formal `supported`
92
- platform claim is still `unverified` (they become verified per-platform only
93
- with release evidence). Do not assume a platform is officially supported just
94
- because the CLI starts.
95
+ - **Platforms:** the core runs wherever Node.js runs. The Claude Code adapter
96
+ declares Darwin `supported` from native common-vector evidence. Linux,
97
+ Windows, and the other shipped adapter targets remain `unverified`; do not
98
+ infer support only because the CLI starts.
95
99
  - **Other tooling:** `wowbagger` manages a Git-tracked Markdown ledger. It
96
100
  needs an accessible Git checkout for work-claim and namespace operations.
97
101
  Before `provision`, run
@@ -131,8 +135,8 @@ wowbagger core, this is how you move forward safely.
131
135
  Upgrade the pieces you installed:
132
136
 
133
137
  ```sh
134
- npm install -g wowbagger@latest # public npm registry
135
- npm install -g github:lstutzman/wowbagger # or: a direct git-tag install
138
+ npm install -g wowbagger@next # public npm registry
139
+ npm install -g github:lstutzman/wowbagger#v0.1.0-alpha.4 # immutable Git release
136
140
  git pull && npm ci # or: a direct checkout
137
141
  ```
138
142
 
@@ -143,15 +147,15 @@ In Claude Code, update the plugin the same way it was installed:
143
147
  /plugin update wowbagger@wowbagger
144
148
  ```
145
149
 
146
- Then verify, exactly as on first install:
147
-
148
150
  ```sh
151
+ wowbagger --version
149
152
  wowbagger capabilities --json
150
153
  ```
151
154
 
152
- The top-level `contract_version` is the core compatibility gate. The plugin
153
- and adapter refuse a core that reports a version they do not support; if you
154
- automate against the core directly, do the same rather than guessing.
155
+ The plugin requires its exact core distribution version and top-level core
156
+ `contract_version: 2`. Direct API consumers must check the contract version
157
+ they support; installed plugin users must also keep the plugin and core
158
+ distribution versions equal.
155
159
 
156
160
  The shipped adapter selects only adapter contract version 2 and requires core
157
161
  contract version 2. A v1-only consumer receives
@@ -275,6 +279,7 @@ npm ci
275
279
  ./bin/wowbagger.js validate --ledger path/to/ledger --json
276
280
  ./bin/wowbagger.js ready --ledger path/to/ledger --as-of 2030-01-15 --json
277
281
  ./bin/wowbagger.js ready --ledger path/to/ledger --as-of 2030-01-15
282
+ ./bin/wowbagger.js report --ledger path/to/ledger --as-of 2030-01-15 --json
278
283
  ./bin/wowbagger.js capabilities --json
279
284
  ./bin/wowbagger.js mint-id --json
280
285
  ./bin/wowbagger.js inspect --ledger path/to/ledger --id wb_... --json
@@ -314,6 +319,39 @@ directories ending in `.md` remain containers and are traversed. These checks
314
319
  provide deterministic read hygiene; they are not a sandbox against a privileged
315
320
  process racing filesystem changes.
316
321
 
322
+ `report` validates the complete ledger, reads `.wowbagger/report.json`, and
323
+ atomically publishes one self-contained HTML file. The output must be outside
324
+ the ledger. Relative configured output paths resolve from `.wowbagger/`;
325
+ relative `--out` overrides resolve from the caller's working directory.
326
+
327
+ ```json
328
+ {
329
+ "report_version": 1,
330
+ "repository": { "name": "Example repository", "logo": "logo.svg" },
331
+ "title": "Ledger report",
332
+ "output": "../../ledger-report.html",
333
+ "fields": {
334
+ "area": "/priority_area",
335
+ "complexity": "/complexity",
336
+ "rank": "/priority_rank"
337
+ },
338
+ "swarm": { "eligible_complexities": ["small", "medium"] }
339
+ }
340
+ ```
341
+
342
+ `repository.logo`, `fields`, and `swarm` are optional. Field values resolve
343
+ from parsed frontmatter with RFC 6901 JSON Pointers. A swarm requires mapped
344
+ `area` and `complexity` fields. The report shows canonical readiness, filters,
345
+ sorting, grouping, three detail levels, terminal history, and area-diverse
346
+ ready batches. It contains no external runtime dependency.
347
+
348
+ This repository keeps its report configuration in
349
+ `ledger/.wowbagger/report.json`. Generate the ignored local report with:
350
+
351
+ ```sh
352
+ npm run report -- --as-of 2026-08-14
353
+ ```
354
+
317
355
  `inspect` returns a lossless raw-byte snapshot and its SHA-256 revision.
318
356
  `create` publishes only a caller-supplied canonical ID through atomic
319
357
  no-clobber publication — `mint-id` prints one, so no consumer writes base32
@@ -340,8 +378,9 @@ top-level `contract_version` from core `capabilities`. Read
340
378
  `result.operations.work_claim.api_version` from
341
379
  `claim capabilities --ledger <dir> --json`. A claim response's top-level
342
380
  `contract_version` is the legacy claim-envelope marker; do not compare it with
343
- the core version. A consumer that receives an unsupported version refuses
344
- rather than guessing. Direct checkout use—`./bin/wowbagger.js` from a
381
+ the core version. A contract consumer that receives an unsupported version
382
+ refuses rather than guessing. The shipped plugin skill also requires its exact
383
+ core distribution version. Direct checkout use—`./bin/wowbagger.js` from a
345
384
  clone—remains supported and is what this repository's own ledger uses.
346
385
 
347
386
  ## Verify a checkout
@@ -446,9 +485,9 @@ It is the durable work ledger beneath those systems.
446
485
  - Separate optional reusable mechanisms from consumer-specific policy.
447
486
  - Stabilize the machine-readable command contract and compatibility evidence.
448
487
  - Ship Claude Code and Codex adapters. **Claude Code, Codex, and OpenCode
449
- packages share the version 2 engine; the Claude Code Darwin target passes
450
- all 183 assertions, while the other target reports and all manifest platform
451
- declarations remain unverified.**
488
+ packages share the version 2 engine; the Claude Code manifest declares Darwin
489
+ `supported` after passing all 183 native assertions. Other adapter targets and
490
+ platform declarations remain unverified.**
452
491
  - Document the generic tool contract for other agent harnesses.
453
492
  - Implement merge-coordinated work claims for cooperating Git worktrees.
454
493
  **Implemented with durable claim operations, claim-protected single-item
@@ -18,7 +18,7 @@
18
18
  }
19
19
  },
20
20
  "platforms": {
21
- "darwin": "unverified",
21
+ "darwin": "supported",
22
22
  "linux": "unverified",
23
23
  "win32": "unverified"
24
24
  }