perttool 0.5.1 → 0.5.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 (32) hide show
  1. package/CHANGELOG.md +20 -1
  2. package/README.md +40 -25
  3. package/dist/cli.js +18 -1
  4. package/dist/cli.js.map +1 -1
  5. package/dist/command/actuals-discovery.d.ts.map +1 -1
  6. package/dist/command/actuals-discovery.js +25 -3
  7. package/dist/command/actuals-discovery.js.map +1 -1
  8. package/dist/index.d.ts +1 -1
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js.map +1 -1
  11. package/dist/schema/registry.d.ts +19 -2
  12. package/dist/schema/registry.d.ts.map +1 -1
  13. package/dist/schema/registry.js +194 -4
  14. package/dist/schema/registry.js.map +1 -1
  15. package/dist/version.d.ts +1 -1
  16. package/dist/version.js +1 -1
  17. package/package.json +1 -1
  18. package/schemas/Perttool.AgentGuidanceResult.v1.schema.json +461 -6
  19. package/schemas/Perttool.AnalysisResult.v4.schema.json +685 -19
  20. package/schemas/Perttool.CheckResult.v3.schema.json +46 -2
  21. package/schemas/Perttool.CliError.v1.schema.json +40 -4
  22. package/schemas/Perttool.CommandHelpResult.v1.schema.json +218 -6
  23. package/schemas/Perttool.Common.v1.schema.json +1460 -75
  24. package/schemas/Perttool.GuideResult.v1.schema.json +36 -2
  25. package/schemas/Perttool.MutationResult.v3.schema.json +57 -6
  26. package/schemas/Perttool.NextResult.v5.schema.json +1137 -12
  27. package/schemas/Perttool.OverrideDecision.v1.schema.json +236 -4
  28. package/schemas/Perttool.ProjectHistoryResult.v1.schema.json +204 -60
  29. package/schemas/Perttool.ProjectResult.v3.schema.json +74 -1
  30. package/schemas/Perttool.SchemaResult.v1.schema.json +56 -3
  31. package/schemas/Perttool.UnitMigrationResult.v3.schema.json +152 -14
  32. package/schemas/Perttool.VelocityObservationResult.v1.schema.json +201 -2
package/CHANGELOG.md CHANGED
@@ -4,6 +4,24 @@ This project records its notable changes here. The format is based on [Keep a Ch
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.5.2] - 2026-07-30
8
+
9
+ Compatible CLI Contract 6 and Grammar 5 beta patch. This version completes
10
+ the bundled result schemas and adds selectable full and reference-based
11
+ outline projections without changing existing result identities or runtime
12
+ payload meanings.
13
+
14
+ ### Added
15
+
16
+ - Added full and reference-based outline views to `perttool schema`, including
17
+ separate lookup of one bundled `$ref` detail without changing default
18
+ complete-artifact output.
19
+
20
+ ### Fixed
21
+
22
+ - Replaced underspecified nested JSON Schema object placeholders with complete
23
+ closed record definitions and added nested unknown-field rejection coverage.
24
+
7
25
  ## [0.5.1] - 2026-07-30
8
26
 
9
27
  Compatible CLI Contract 6 and Grammar 5 beta patch. This version adds
@@ -234,7 +252,8 @@ First public development preview. Intended to evaluate the DSL and CLI, read-onl
234
252
  - Not published to the npm registry; use the GitHub Release asset
235
253
  - Requires Node.js 24 or later
236
254
 
237
- [Unreleased]: https://github.com/mako10k/perttool/compare/v0.5.1...HEAD
255
+ [Unreleased]: https://github.com/mako10k/perttool/compare/v0.5.2...HEAD
256
+ [0.5.2]: https://github.com/mako10k/perttool/compare/v0.5.1...v0.5.2
238
257
  [0.5.1]: https://github.com/mako10k/perttool/compare/v0.5.0...v0.5.1
239
258
  [0.5.0]: https://github.com/mako10k/perttool/compare/v0.4.0...v0.5.0
240
259
  [0.4.0]: https://github.com/mako10k/perttool/compare/v0.3.0...v0.4.0
package/README.md CHANGED
@@ -5,35 +5,36 @@ It validates an Activity-on-Arrow plan, calculates precedence and
5
5
  resource-constrained schedules, recommends the next task, and applies
6
6
  source-preserving changes through preview-first commands.
7
7
 
8
- Version `0.5.1` beta implements Grammar 5 and CLI Contract 6,
8
+ Version `0.5.2` beta implements Grammar 5 and CLI Contract 6,
9
9
  including explicit task work events, lifecycle commands, read-only Git
10
10
  history, observed velocity, AnalysisResult v4, and NextResult v5. It adds
11
- Draft 2020-12 artifacts for every active Contract 6 result and the public
12
- OverrideDecision result, plus Git 2.54 UTC compatibility. npm `beta` resolves
13
- to `0.5.1`, while `latest` remains on Contract 5 `0.4.0`. Beta releases may
14
- contain breaking CLI or schema changes. Version `0.5.1` requires Node.js 22
15
- or later. The compatible pre-schema Contract 6 artifact remains available by
16
- pinning `0.5.0`; Contract 5, Contract 4, and Contract 3 remain available by
17
- pinning `0.4.0`, `0.3.0`, and `0.2.0`, respectively.
11
+ complete Draft 2020-12 artifacts for every active Contract 6 result and the
12
+ public OverrideDecision result, selectable full and outline schema views,
13
+ and Git 2.54 UTC compatibility. npm `beta` resolves to `0.5.2`; `latest`
14
+ remains on the separately accepted `0.5.1`. Beta releases may contain
15
+ breaking CLI or schema changes. Version `0.5.2` requires Node.js 22 or later.
16
+ The first machine-schema Contract 6 artifact remains available by pinning
17
+ `0.5.1`; Contract 5, Contract 4, and Contract 3 remain available by pinning
18
+ `0.4.0`, `0.3.0`, and `0.2.0`, respectively.
18
19
 
19
20
  ## Run without installing
20
21
 
21
22
  Use `npx` for an occasional invocation and select Contract 6 explicitly:
22
23
 
23
24
  ```sh
24
- npx --yes --package=perttool@0.5.1 -- perttool --version
25
- npx --yes --package=perttool@0.5.1 -- perttool document check PLAN.pert
26
- npx --yes --package=perttool@0.5.1 -- perttool dag next PLAN.pert --format json
27
- npx --yes --package=perttool@0.5.1 -- perttool project history PLAN.pert --format json
25
+ npx --yes --package=perttool@0.5.2 -- perttool --version
26
+ npx --yes --package=perttool@0.5.2 -- perttool document check PLAN.pert
27
+ npx --yes --package=perttool@0.5.2 -- perttool dag next PLAN.pert --format json
28
+ npx --yes --package=perttool@0.5.2 -- perttool project history PLAN.pert --format json
28
29
  ```
29
30
 
30
31
  The equivalent explicit `npm exec` form is:
31
32
 
32
33
  ```sh
33
- npm exec --yes --package=perttool@0.5.1 -- perttool --version
34
- npm exec --yes --package=perttool@0.5.1 -- perttool document check PLAN.pert
35
- npm exec --yes --package=perttool@0.5.1 -- perttool dag analyze PLAN.pert
36
- npm exec --yes --package=perttool@0.5.1 -- perttool project history PLAN.pert --format json
34
+ npm exec --yes --package=perttool@0.5.2 -- perttool --version
35
+ npm exec --yes --package=perttool@0.5.2 -- perttool document check PLAN.pert
36
+ npm exec --yes --package=perttool@0.5.2 -- perttool dag analyze PLAN.pert
37
+ npm exec --yes --package=perttool@0.5.2 -- perttool project history PLAN.pert --format json
37
38
  ```
38
39
 
39
40
  `npx` and `npm exec` may download the selected package version into the npm
@@ -46,14 +47,15 @@ Contract 3.
46
47
  Install the CLI globally when it is used regularly:
47
48
 
48
49
  ```sh
49
- npm install --global perttool@0.5.1
50
+ npm install --global perttool
50
51
  perttool --version
51
52
  ```
52
53
 
53
- npm `beta` resolves to Contract 6 `0.5.1`, while `latest` remains on
54
- Contract 5 `0.4.0`. The prior Contract 6 artifact remains available as
55
- `perttool@0.5.0`; Contract 5, Contract 4, and Contract 3 remain available as
56
- exact pins `perttool@0.4.0`, `perttool@0.3.0`, and `perttool@0.2.0`.
54
+ npm `beta` resolves to Contract 6 `0.5.2`; `latest` remains on accepted
55
+ Contract 6 `0.5.1`. The pre-schema Contract 6 artifact remains available as
56
+ `perttool@0.5.0`; Contract 5,
57
+ Contract 4, and Contract 3 remain available as exact pins
58
+ `perttool@0.4.0`, `perttool@0.3.0`, and `perttool@0.2.0`.
57
59
 
58
60
  ## Plan files
59
61
 
@@ -309,6 +311,7 @@ perttool task set --help
309
311
  perttool help dag next --format json
310
312
  perttool schema --format json
311
313
  perttool schema Perttool.NextResult.v5 --format json
314
+ perttool schema Perttool.NextResult.v5 --view outline --format json
312
315
  perttool guide editing --level detail --format json
313
316
  ```
314
317
 
@@ -322,6 +325,17 @@ Supplying a schema identity returns its Draft 2020-12 artifact in the
322
325
  perttool schema Perttool.CheckResult.v3 --format json
323
326
  ```
324
327
 
328
+ The default and `--view full` return the complete artifact. For a shorter
329
+ outer shape, `--view outline` replaces complex nested records with absolute
330
+ references to the complete bundled artifact. Pass one local, relative, or
331
+ copied absolute reference back with `--ref` to display that internal layer:
332
+
333
+ ```sh
334
+ perttool schema Perttool.NextResult.v5 --view outline --format json
335
+ perttool schema Perttool.NextResult.v5 --view outline \
336
+ --ref '#/$defs/recommendation' --format json
337
+ ```
338
+
325
339
  Packed installations also expose each artifact at
326
340
  `perttool/schemas/<schema-id>.schema.json`; relative references resolve
327
341
  against the bundled `Perttool.Common.v1.schema.json`. The stable `$id` is an
@@ -333,10 +347,11 @@ select compatibility from each result's `schema_version`, not from
333
347
 
334
348
  ## LLM and automation use
335
349
 
336
- Use `--format json` for machine consumers. `0.5.1` and `0.5.0` consumers must
337
- check `cli_contract_version == 6`; consumers pinned to `0.4.0` must continue
338
- to require Contract 5, and consumers pinned to `0.3.0` must require Contract
339
- 4. Bundled machine-readable result artifacts require `0.5.1`.
350
+ Use `--format json` for machine consumers. `0.5.2`, `0.5.1`, and `0.5.0`
351
+ consumers must check `cli_contract_version == 6`; consumers pinned to `0.4.0`
352
+ must continue to require Contract 5, and consumers pinned to `0.3.0` must
353
+ require Contract 4. Bundled machine-readable result artifacts require
354
+ `0.5.1`; complete nested records and outline/detail views require `0.5.2`.
340
355
  In every case, check the result-specific `schema_version` before reading the
341
356
  rest of a result.
342
357
  A complete, known, non-truncated `Perttool.NextResult.v5` with temporal policy
package/dist/cli.js CHANGED
@@ -2547,8 +2547,25 @@ function runJsonSchema(args) {
2547
2547
  if (parsed.positionals.length > 1) {
2548
2548
  throw new UsageError("schema accepts at most one <schema-id>");
2549
2549
  }
2550
+ const viewValue = parsed.values.get("view");
2551
+ const view = viewValue === undefined || viewValue === "full" || viewValue === "outline"
2552
+ ? viewValue
2553
+ : (() => {
2554
+ throw new UsageError("--view must be full or outline");
2555
+ })();
2556
+ const reference = parsed.values.get("ref");
2557
+ if (parsed.positionals.length === 0 &&
2558
+ (view !== undefined || reference !== undefined)) {
2559
+ throw new UsageError("schema view selection requires one <schema-id>");
2560
+ }
2561
+ if (reference !== undefined && view !== "outline") {
2562
+ throw new UsageError("--ref requires --view outline");
2563
+ }
2550
2564
  const format = outputFormat(parsed.values.get("format"));
2551
- const result = getJsonSchemaResult(parsed.positionals[0] ?? null);
2565
+ const result = getJsonSchemaResult(parsed.positionals[0] ?? null, {
2566
+ ...(view === undefined ? {} : { view }),
2567
+ ...(reference === undefined ? {} : { ref: reference }),
2568
+ });
2552
2569
  if (format === "json") {
2553
2570
  process.stdout.write(serializeJsonSchemaResult(result));
2554
2571
  }