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.
- package/CHANGELOG.md +20 -1
- package/README.md +40 -25
- package/dist/cli.js +18 -1
- package/dist/cli.js.map +1 -1
- package/dist/command/actuals-discovery.d.ts.map +1 -1
- package/dist/command/actuals-discovery.js +25 -3
- package/dist/command/actuals-discovery.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/schema/registry.d.ts +19 -2
- package/dist/schema/registry.d.ts.map +1 -1
- package/dist/schema/registry.js +194 -4
- package/dist/schema/registry.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/schemas/Perttool.AgentGuidanceResult.v1.schema.json +461 -6
- package/schemas/Perttool.AnalysisResult.v4.schema.json +685 -19
- package/schemas/Perttool.CheckResult.v3.schema.json +46 -2
- package/schemas/Perttool.CliError.v1.schema.json +40 -4
- package/schemas/Perttool.CommandHelpResult.v1.schema.json +218 -6
- package/schemas/Perttool.Common.v1.schema.json +1460 -75
- package/schemas/Perttool.GuideResult.v1.schema.json +36 -2
- package/schemas/Perttool.MutationResult.v3.schema.json +57 -6
- package/schemas/Perttool.NextResult.v5.schema.json +1137 -12
- package/schemas/Perttool.OverrideDecision.v1.schema.json +236 -4
- package/schemas/Perttool.ProjectHistoryResult.v1.schema.json +204 -60
- package/schemas/Perttool.ProjectResult.v3.schema.json +74 -1
- package/schemas/Perttool.SchemaResult.v1.schema.json +56 -3
- package/schemas/Perttool.UnitMigrationResult.v3.schema.json +152 -14
- 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.
|
|
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.
|
|
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
|
|
12
|
-
OverrideDecision result,
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
or
|
|
16
|
-
|
|
17
|
-
|
|
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.
|
|
25
|
-
npx --yes --package=perttool@0.5.
|
|
26
|
-
npx --yes --package=perttool@0.5.
|
|
27
|
-
npx --yes --package=perttool@0.5.
|
|
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.
|
|
34
|
-
npm exec --yes --package=perttool@0.5.
|
|
35
|
-
npm exec --yes --package=perttool@0.5.
|
|
36
|
-
npm exec --yes --package=perttool@0.5.
|
|
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
|
|
50
|
+
npm install --global perttool
|
|
50
51
|
perttool --version
|
|
51
52
|
```
|
|
52
53
|
|
|
53
|
-
npm `beta` resolves to Contract 6 `0.5.
|
|
54
|
-
Contract
|
|
55
|
-
`perttool@0.5.0`; Contract 5,
|
|
56
|
-
|
|
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
|
|
337
|
-
check `cli_contract_version == 6`; consumers pinned to `0.4.0`
|
|
338
|
-
to require Contract 5, and consumers pinned to `0.3.0` must
|
|
339
|
-
4. Bundled machine-readable result artifacts require
|
|
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
|
}
|