perttool 0.10.5 → 0.11.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 +52 -1
- package/README.md +274 -606
- package/dist/application/cli-facade.d.ts +4 -10
- package/dist/application/cli-facade.d.ts.map +1 -1
- package/dist/application/cli-facade.js +1 -1
- package/dist/application/cli-facade.js.map +1 -1
- package/dist/application/contract10-candidate.d.ts +33 -0
- package/dist/application/contract10-candidate.d.ts.map +1 -0
- package/dist/application/contract10-candidate.js +38 -0
- package/dist/application/contract10-candidate.js.map +1 -0
- package/dist/application/contract10-planning-history.d.ts +4 -0
- package/dist/application/contract10-planning-history.d.ts.map +1 -0
- package/dist/application/contract10-planning-history.js +28 -0
- package/dist/application/contract10-planning-history.js.map +1 -0
- package/dist/application/contract10-planning.d.ts +61 -0
- package/dist/application/contract10-planning.d.ts.map +1 -0
- package/dist/application/contract10-planning.js +165 -0
- package/dist/application/contract10-planning.js.map +1 -0
- package/dist/application/contract10-runtime.d.ts +185 -0
- package/dist/application/contract10-runtime.d.ts.map +1 -0
- package/dist/application/contract10-runtime.js +236 -0
- package/dist/application/contract10-runtime.js.map +1 -0
- package/dist/application/contract8-milestone-acceptance.d.ts +6 -22
- package/dist/application/contract8-milestone-acceptance.d.ts.map +1 -1
- package/dist/application/contract8-milestone-acceptance.js +21 -99
- package/dist/application/contract8-milestone-acceptance.js.map +1 -1
- package/dist/application/contract8-milestone-read.d.ts +25 -0
- package/dist/application/contract8-milestone-read.d.ts.map +1 -0
- package/dist/application/contract8-milestone-read.js +111 -0
- package/dist/application/contract8-milestone-read.js.map +1 -0
- package/dist/application/contract9-assurance-evaluate.d.ts +3 -0
- package/dist/application/contract9-assurance-evaluate.d.ts.map +1 -0
- package/dist/application/contract9-assurance-evaluate.js +75 -0
- package/dist/application/contract9-assurance-evaluate.js.map +1 -0
- package/dist/application/contract9-assurance.d.ts +1 -2
- package/dist/application/contract9-assurance.d.ts.map +1 -1
- package/dist/application/contract9-assurance.js +2 -56
- package/dist/application/contract9-assurance.js.map +1 -1
- package/dist/application/contract9-candidate.d.ts +8 -0
- package/dist/application/contract9-candidate.d.ts.map +1 -1
- package/dist/application/contract9-candidate.js +36 -11
- package/dist/application/contract9-candidate.js.map +1 -1
- package/dist/application/contract9-mixed-mutation.d.ts +3 -0
- package/dist/application/contract9-mixed-mutation.d.ts.map +1 -1
- package/dist/application/contract9-mixed-mutation.js +5 -4
- package/dist/application/contract9-mixed-mutation.js.map +1 -1
- package/dist/application/contract9-temporal.js +1 -1
- package/dist/application/contract9-temporal.js.map +1 -1
- package/dist/application/target-actuals-analysis.d.ts.map +1 -1
- package/dist/application/target-actuals-analysis.js +10 -6
- package/dist/application/target-actuals-analysis.js.map +1 -1
- package/dist/application/target-temporal-analysis.d.ts +1 -0
- package/dist/application/target-temporal-analysis.d.ts.map +1 -1
- package/dist/application/target-temporal-analysis.js +5 -1
- package/dist/application/target-temporal-analysis.js.map +1 -1
- package/dist/cli.js +761 -87
- package/dist/cli.js.map +1 -1
- package/dist/command/contract10-discovery.d.ts +17 -0
- package/dist/command/contract10-discovery.d.ts.map +1 -0
- package/dist/command/contract10-discovery.js +304 -0
- package/dist/command/contract10-discovery.js.map +1 -0
- package/dist/command/contract10-usage.d.ts +24 -0
- package/dist/command/contract10-usage.d.ts.map +1 -0
- package/dist/command/contract10-usage.js +49 -0
- package/dist/command/contract10-usage.js.map +1 -0
- package/dist/core/index.d.ts +11 -2
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +3 -1
- package/dist/core/index.js.map +1 -1
- package/dist/help/assurance-guide.js +1 -1
- package/dist/help/assurance-guide.js.map +1 -1
- package/dist/help/contract10-guide.d.ts +10 -0
- package/dist/help/contract10-guide.d.ts.map +1 -0
- package/dist/help/contract10-guide.js +244 -0
- package/dist/help/contract10-guide.js.map +1 -0
- package/dist/index.d.ts +18 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -5
- package/dist/index.js.map +1 -1
- package/dist/milestone-acceptance/advance.d.ts +9 -0
- package/dist/milestone-acceptance/advance.d.ts.map +1 -1
- package/dist/milestone-acceptance/advance.js +29 -2
- package/dist/milestone-acceptance/advance.js.map +1 -1
- package/dist/milestone-acceptance/mutation.d.ts +2 -0
- package/dist/milestone-acceptance/mutation.d.ts.map +1 -1
- package/dist/milestone-acceptance/mutation.js +60 -20
- package/dist/milestone-acceptance/mutation.js.map +1 -1
- package/dist/model/source-result.d.ts +12 -0
- package/dist/model/source-result.d.ts.map +1 -0
- package/dist/model/source-result.js +16 -0
- package/dist/model/source-result.js.map +1 -0
- package/dist/mutation/advance-deletion.d.ts +1 -0
- package/dist/mutation/advance-deletion.d.ts.map +1 -1
- package/dist/mutation/advance-deletion.js +4 -1
- package/dist/mutation/advance-deletion.js.map +1 -1
- package/dist/mutation/validated-source.d.ts +30 -0
- package/dist/mutation/validated-source.d.ts.map +1 -0
- package/dist/mutation/validated-source.js +58 -0
- package/dist/mutation/validated-source.js.map +1 -0
- package/dist/node/planning-token-store.d.ts +3 -0
- package/dist/node/planning-token-store.d.ts.map +1 -0
- package/dist/node/planning-token-store.js +90 -0
- package/dist/node/planning-token-store.js.map +1 -0
- package/dist/parser/document-parser.d.ts +1 -0
- package/dist/parser/document-parser.d.ts.map +1 -1
- package/dist/parser/document-parser.js +1 -1
- package/dist/parser/document-parser.js.map +1 -1
- package/dist/perttool-vscode-private-0.0.0-d1578b9.vsix +0 -0
- package/dist/planning-pool/advance.d.ts +10 -0
- package/dist/planning-pool/advance.d.ts.map +1 -0
- package/dist/planning-pool/advance.js +158 -0
- package/dist/planning-pool/advance.js.map +1 -0
- package/dist/planning-pool/format.d.ts +12 -0
- package/dist/planning-pool/format.d.ts.map +1 -0
- package/dist/planning-pool/format.js +199 -0
- package/dist/planning-pool/format.js.map +1 -0
- package/dist/planning-pool/history-guard.d.ts +19 -0
- package/dist/planning-pool/history-guard.d.ts.map +1 -0
- package/dist/planning-pool/history-guard.js +123 -0
- package/dist/planning-pool/history-guard.js.map +1 -0
- package/dist/planning-pool/history-types.d.ts +174 -0
- package/dist/planning-pool/history-types.d.ts.map +1 -0
- package/dist/planning-pool/history-types.js +2 -0
- package/dist/planning-pool/history-types.js.map +1 -0
- package/dist/planning-pool/history.d.ts +11 -0
- package/dist/planning-pool/history.d.ts.map +1 -0
- package/dist/planning-pool/history.js +977 -0
- package/dist/planning-pool/history.js.map +1 -0
- package/dist/planning-pool/human.d.ts +9 -0
- package/dist/planning-pool/human.d.ts.map +1 -0
- package/dist/planning-pool/human.js +305 -0
- package/dist/planning-pool/human.js.map +1 -0
- package/dist/planning-pool/intent-types.d.ts +76 -0
- package/dist/planning-pool/intent-types.d.ts.map +1 -0
- package/dist/planning-pool/intent-types.js +2 -0
- package/dist/planning-pool/intent-types.js.map +1 -0
- package/dist/planning-pool/intent.d.ts +7 -0
- package/dist/planning-pool/intent.d.ts.map +1 -0
- package/dist/planning-pool/intent.js +590 -0
- package/dist/planning-pool/intent.js.map +1 -0
- package/dist/planning-pool/observation-types.d.ts +143 -0
- package/dist/planning-pool/observation-types.d.ts.map +1 -0
- package/dist/planning-pool/observation-types.js +2 -0
- package/dist/planning-pool/observation-types.js.map +1 -0
- package/dist/planning-pool/observation.d.ts +8 -0
- package/dist/planning-pool/observation.d.ts.map +1 -0
- package/dist/planning-pool/observation.js +582 -0
- package/dist/planning-pool/observation.js.map +1 -0
- package/dist/planning-pool/projection.d.ts +28 -0
- package/dist/planning-pool/projection.d.ts.map +1 -0
- package/dist/planning-pool/projection.js +148 -0
- package/dist/planning-pool/projection.js.map +1 -0
- package/dist/planning-pool/public-core.d.ts +32 -0
- package/dist/planning-pool/public-core.d.ts.map +1 -0
- package/dist/planning-pool/public-core.js +122 -0
- package/dist/planning-pool/public-core.js.map +1 -0
- package/dist/planning-pool/reshape-normalize.d.ts +15 -0
- package/dist/planning-pool/reshape-normalize.d.ts.map +1 -0
- package/dist/planning-pool/reshape-normalize.js +688 -0
- package/dist/planning-pool/reshape-normalize.js.map +1 -0
- package/dist/planning-pool/reshape-token.d.ts +20 -0
- package/dist/planning-pool/reshape-token.d.ts.map +1 -0
- package/dist/planning-pool/reshape-token.js +193 -0
- package/dist/planning-pool/reshape-token.js.map +1 -0
- package/dist/planning-pool/reshape-types.d.ts +183 -0
- package/dist/planning-pool/reshape-types.d.ts.map +1 -0
- package/dist/planning-pool/reshape-types.js +2 -0
- package/dist/planning-pool/reshape-types.js.map +1 -0
- package/dist/planning-pool/reshape.d.ts +13 -0
- package/dist/planning-pool/reshape.d.ts.map +1 -0
- package/dist/planning-pool/reshape.js +1434 -0
- package/dist/planning-pool/reshape.js.map +1 -0
- package/dist/planning-pool/source-lexical.d.ts +30 -0
- package/dist/planning-pool/source-lexical.d.ts.map +1 -0
- package/dist/planning-pool/source-lexical.js +158 -0
- package/dist/planning-pool/source-lexical.js.map +1 -0
- package/dist/planning-pool/source-types.d.ts +169 -0
- package/dist/planning-pool/source-types.d.ts.map +1 -0
- package/dist/planning-pool/source-types.js +2 -0
- package/dist/planning-pool/source-types.js.map +1 -0
- package/dist/planning-pool/source-values.d.ts +16 -0
- package/dist/planning-pool/source-values.d.ts.map +1 -0
- package/dist/planning-pool/source-values.js +120 -0
- package/dist/planning-pool/source-values.js.map +1 -0
- package/dist/planning-pool/source.d.ts +18 -0
- package/dist/planning-pool/source.d.ts.map +1 -0
- package/dist/planning-pool/source.js +811 -0
- package/dist/planning-pool/source.js.map +1 -0
- package/dist/planning-pool/window-types.d.ts +133 -0
- package/dist/planning-pool/window-types.d.ts.map +1 -0
- package/dist/planning-pool/window-types.js +2 -0
- package/dist/planning-pool/window-types.js.map +1 -0
- package/dist/planning-pool/window.d.ts +6 -0
- package/dist/planning-pool/window.d.ts.map +1 -0
- package/dist/planning-pool/window.js +625 -0
- package/dist/planning-pool/window.js.map +1 -0
- package/dist/schema/registry.d.ts +1 -1
- package/dist/schema/registry.d.ts.map +1 -1
- package/dist/schema/registry.js +17 -3
- package/dist/schema/registry.js.map +1 -1
- package/dist/temporal-schedule/format.d.ts.map +1 -1
- package/dist/temporal-schedule/format.js +4 -54
- package/dist/temporal-schedule/format.js.map +1 -1
- package/dist/temporal-schedule/source-lexical.d.ts +9 -0
- package/dist/temporal-schedule/source-lexical.d.ts.map +1 -1
- package/dist/temporal-schedule/source-lexical.js +21 -10
- package/dist/temporal-schedule/source-lexical.js.map +1 -1
- package/dist/temporal-schedule/source.d.ts.map +1 -1
- package/dist/temporal-schedule/source.js +3 -13
- package/dist/temporal-schedule/source.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.AdvanceResult.v3.schema.json → Perttool.AdvanceResult.v4.schema.json} +42 -4
- package/schemas/Perttool.AgentGuidanceResult.v1.schema.json +1 -1
- package/schemas/Perttool.AnalysisResult.v7.schema.json +1 -1
- package/schemas/Perttool.CheckResult.v6.schema.json +1 -1
- package/schemas/Perttool.CliError.v1.schema.json +1 -1
- package/schemas/Perttool.CommandHelpResult.v1.schema.json +2 -2
- package/schemas/Perttool.ExportResult.v1.schema.json +1 -1
- package/schemas/Perttool.FormatResult.v1.schema.json +1 -1
- package/schemas/Perttool.GuideResult.v1.schema.json +1 -1
- package/schemas/Perttool.HistoricalGraphResult.v1.schema.json +1 -1
- package/schemas/Perttool.ImportResult.v1.schema.json +1 -1
- package/schemas/Perttool.InitResult.v1.schema.json +1 -1
- package/schemas/Perttool.MilestoneAcceptanceMigrationResult.v1.schema.json +1 -1
- package/schemas/Perttool.MilestoneAcceptanceResult.v1.schema.json +1 -1
- package/schemas/Perttool.MutationResult.v6.schema.json +1 -1
- package/schemas/Perttool.NextResult.v8.schema.json +7 -4
- package/schemas/Perttool.PlanAssuranceResult.v2.schema.json +1 -1
- package/schemas/Perttool.PlanningMutationResult.v1.schema.json +567 -0
- package/schemas/Perttool.PlanningObservationRequest.v1.schema.json +6 -0
- package/schemas/Perttool.PlanningPoolResult.v1.schema.json +469 -0
- package/schemas/Perttool.PlanningReshapePreflightResult.v1.schema.json +906 -0
- package/schemas/Perttool.PlanningReshapeRequest.v1.schema.json +19 -0
- package/schemas/Perttool.ProjectHistoryResult.v1.schema.json +1 -1
- package/schemas/Perttool.ProjectResult.v5.schema.json +1 -1
- package/schemas/Perttool.SchemaResult.v1.schema.json +1 -1
- package/schemas/{Perttool.UnitMigrationResult.v4.schema.json → Perttool.UnitMigrationResult.v5.schema.json} +42 -17
- package/schemas/Perttool.VelocityObservationResult.v1.schema.json +1 -1
- package/schemas/Perttool.WindowMutationRequest.v1.schema.json +6 -0
package/README.md
CHANGED
|
@@ -1,240 +1,45 @@
|
|
|
1
1
|
# perttool
|
|
2
2
|
|
|
3
|
-
`perttool` is a local
|
|
4
|
-
It validates
|
|
5
|
-
resource-constrained schedules, recommends the next task, and
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
Version `0.6.0` implements Grammar 5 and CLI Contract 6,
|
|
9
|
-
including explicit task work events, lifecycle commands, read-only Git
|
|
10
|
-
history, observed velocity, AnalysisResult v4, and NextResult v5. It adds
|
|
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
|
-
Git 2.54 UTC compatibility, and scope-bound human-readable confirmation
|
|
14
|
-
guidance. It warns when an owner-confirmation assertion is supplied for a
|
|
15
|
-
governance-not-applicable candidate and when a governed preview already
|
|
16
|
-
carries one. It also protects destructive in-place `dag advance` writes with
|
|
17
|
-
exact `HEAD` and stage-0 evidence, returns `Perttool.AdvanceResult.v1`, and
|
|
18
|
-
keeps preview, separate output, and written candidates repository-clean and
|
|
19
|
-
byte-identical. It remains available as the exact Contract 6 compatibility
|
|
20
|
-
pin `perttool@0.6.0`.
|
|
21
|
-
Beta releases may contain breaking CLI or schema changes.
|
|
22
|
-
|
|
23
|
-
Version `0.7.0` beta atomically activates Grammar 6 and CLI Contract 7
|
|
24
|
-
conditional plan assurance. It exposes 44 commands, 20 root schemas,
|
|
25
|
-
`Perttool.PlanAssuranceResult.v1`, assurance-aware Check/Project/Analysis/Next/
|
|
26
|
-
Mutation/Advance results, `Perttool.GovernanceDecision.v2`, and Mermaid
|
|
27
|
-
semantic profile 2. Its package and CLI identity is `0.7.0`. At its publication
|
|
28
|
-
boundary, this release does not move npm `latest` from Contract 6 `0.6.0`;
|
|
29
|
-
one separately authorized post-publication operation later made
|
|
30
|
-
`beta=latest=0.7.0`. These Contract 6 and Contract 7 releases require Node.js
|
|
31
|
-
22 or later.
|
|
32
|
-
Version `0.7.1` is a backward-compatible Contract 7 patch that corrects the
|
|
33
|
-
installed Guide, command Help examples, and diagnostic navigation. It retains
|
|
34
|
-
all 44 command paths, 20 root schemas, result and payload identities,
|
|
35
|
-
package-root exports, and authority policies. Its beta publication does not
|
|
36
|
-
move npm `latest`; one separately authorized post-publication operation later
|
|
37
|
-
made `beta=latest=0.7.1`. Version `0.7.0` remains the exact rollback pin.
|
|
38
|
-
The complete-schema Contract 6 artifact remains available by pinning `0.5.2`,
|
|
39
|
-
and the first machine-schema Contract 6 artifact remains available by pinning
|
|
40
|
-
`0.5.1`; Contract 5, Contract 4, and Contract 3 remain available by pinning
|
|
41
|
-
`0.4.0`, `0.3.0`, and `0.2.0`, respectively. npm has no maintained `alpha`
|
|
42
|
-
dist-tag; historical `0.1.0-alpha.2` remains available by exact pin.
|
|
43
|
-
|
|
44
|
-
Version `0.8.0` adds the public `perttool/core` and `perttool/node` subpaths,
|
|
45
|
-
the read-only `dag history` command, `Perttool.HistoricalGraphResult.v1`, and
|
|
46
|
-
the declaration-identity correction without changing Grammar 6 or CLI
|
|
47
|
-
Contract 7. It exposes 45 commands, 21 root schemas, 122 reference-identical
|
|
48
|
-
root and Node runtime exports, and 45 portable Core runtime exports. Its beta
|
|
49
|
-
publication moved only npm `beta` and left independently managed
|
|
50
|
-
`latest=0.7.1`; one separately authorized post-acceptance operation later made
|
|
51
|
-
`beta=latest=0.8.0`. Use `0.7.1` as the exact rollback pin.
|
|
52
|
-
The repository-only VSIX also adds separately negotiated historical snapshot,
|
|
53
|
-
proved-lineage, and timeline views for trusted local Git workspaces plus
|
|
54
|
-
verified read-only immutable source navigation. Those adapter results are not
|
|
55
|
-
CLI schemas or public package exports, and no public VSIX release is selected.
|
|
56
|
-
The private DAG presentation additionally bundles a deterministic left-to-right
|
|
57
|
-
Dagre layout, one-step historical defaults, bounded zoom/fit/scroll/pan, and a
|
|
58
|
-
separately negotiated exact current-frontier and NextResult v6 start-authority
|
|
59
|
-
focus result. Compact `Mnn`/`Tnn`/`Gnn` graph labels link to original-identity
|
|
60
|
-
details, and exact residual, resource-remaining, and task-time summaries keep
|
|
61
|
-
qualified Point forecasts distinct. Layout never becomes project semantics.
|
|
62
|
-
|
|
63
|
-
Version `0.8.1` is a backward-compatible Contract 7 patch for `dag advance`.
|
|
64
|
-
It preserves assurance frontier receipts when all terminal work events belong
|
|
65
|
-
to removed tasks, while retaining the `0.8.0` command, schema, package-export,
|
|
66
|
-
and authority boundaries. It remains available by exact pin; use `0.8.0` as
|
|
67
|
-
the prior Contract 7 rollback pin.
|
|
68
|
-
|
|
69
|
-
Version `0.9.0` is the published Grammar 7 and CLI Contract 8
|
|
70
|
-
milestone-acceptance beta. It exposes 53
|
|
71
|
-
commands, 23 root schemas, 129 root and Node runtime exports,
|
|
72
|
-
`Perttool.CheckResult.v5`,
|
|
73
|
-
`Perttool.AnalysisResult.v6`, `Perttool.NextResult.v7`,
|
|
74
|
-
`Perttool.MutationResult.v5`, `Perttool.AdvanceResult.v3`, committed migration,
|
|
75
|
-
criterion-set replacement, caller-asserted receipts, and acceptance-aware
|
|
76
|
-
canonical advance. Its accepted release commit, annotated tag, GitHub
|
|
77
|
-
prerelease, and npm artifact agree, and npm reports the pre-publication
|
|
78
|
-
baseline `latest=beta=0.10.4` with no `alpha`. Version `0.10.0` is the
|
|
79
|
-
published Grammar 8 and CLI Contract 9 beta. Source is prepared for the
|
|
80
|
-
compatible `0.10.5` Issue #23 assurance-recovery patch. Version
|
|
81
|
-
`0.8.1` remains the
|
|
82
|
-
exact Grammar 6 and CLI Contract 7 rollback pin.
|
|
83
|
-
|
|
84
|
-
Version `0.9.1` is the durably accepted compatible Contract 8 patch for
|
|
85
|
-
`ACT-003` and GitHub Issue #8. It makes declared velocity observation use the
|
|
86
|
-
exact current operand, including a just-written uncommitted finish, while
|
|
87
|
-
keeping Git-recorded evidence bound to the selected first-parent revision. It
|
|
88
|
-
retains all 53 commands, 23 root schemas, 129 root and Node exports, 45 Core
|
|
89
|
-
exports, result and schema identities, and authority. Release commit, peeled
|
|
90
|
-
tag, GitHub prerelease, npm artifact, and installed regression agree; Issue #8
|
|
91
|
-
is closed.
|
|
92
|
-
|
|
93
|
-
Version `0.9.2` is the durably accepted compatible Contract 8 emergency patch
|
|
94
|
-
for `ANALYSIS-001` and GitHub Issue #15. It keeps valid Point plans without a
|
|
95
|
-
declared velocity Point-valued through `dag analyze` and `dag next`, leaves
|
|
96
|
-
velocity forecasts null, and reports calendar conversion as unavailable
|
|
97
|
-
without inventing a rate. It retains all public identities and authority;
|
|
98
|
-
Issue #15 is closed, and `0.9.2` remains the exact rollback pin for `0.9.3`.
|
|
99
|
-
|
|
100
|
-
Version `0.9.3` is the published compatible Contract 8 emergency patch for
|
|
101
|
-
GitHub Issues #14, #16, and #17. It restores Grammar 7 `plan-assurance
|
|
102
|
-
show|hash`, composes acceptance-aware terminal deletions without weakening the
|
|
103
|
-
shared edit guard, and preserves complete criterion-set/receipt evidence for
|
|
104
|
-
retained reached milestones. It retains all public identities and authority.
|
|
105
|
-
The accepted release commit, annotated tag, GitHub prerelease, and npm
|
|
106
|
-
artifact agree; at its publication npm reported `beta=0.9.3`,
|
|
107
|
-
`latest=0.9.0`, and no `alpha`.
|
|
108
|
-
Issues #14, #16, and #17 are closed with release evidence. Plan advance,
|
|
109
|
-
public VSIX publication, and unrelated work remain separate.
|
|
110
|
-
|
|
111
|
-
Version `0.9.4` is the compatible Contract 8 emergency patch for GitHub Issue
|
|
112
|
-
#19. It is published and preserves criterion sets and receipts for every milestone retained by
|
|
113
|
-
`dag advance`, validates the complete final candidate before history or
|
|
114
|
-
persistence decisions, and projects deterministic candidate diagnostics. It
|
|
115
|
-
also makes pinned jscpd duplicate and Lizard complexity ratchets part of the
|
|
116
|
-
repository and CI static-analysis gate. Grammar 7, CLI Contract 8, all 53
|
|
117
|
-
commands, 23 root schemas, 129 root and Node exports, 45 Core exports, public
|
|
118
|
-
authority, and force semantics remain unchanged. Its release commit, peeled
|
|
119
|
-
tag, Node.js 22 and 24 CI, GitHub prerelease, npm artifact, and common
|
|
120
|
-
SHA-256 `63a12ddf...d6fe53b` agree. npm reports `beta=0.9.4`,
|
|
121
|
-
`latest=0.9.0`, and no `alpha`; Issue #19 is closed with release evidence.
|
|
122
|
-
The completed release plan was migrated with committed provenance, given six
|
|
123
|
-
artifact-bound criteria and receipts, and canonically advanced. Its residual
|
|
124
|
-
retains only accepted reached `RELEASE_094_ACCEPTED` and has no diagnostic or
|
|
125
|
-
task. Version `0.9.3` is the exact rollback pin.
|
|
126
|
-
|
|
127
|
-
The private adapters now project that same Contract 8 acceptance model without
|
|
128
|
-
adding write authority. The LSP negotiates a separate version-bound milestone
|
|
129
|
-
acceptance result, the VSIX presents criteria, blockers, and receipt provenance
|
|
130
|
-
with verified source navigation, and the MCP check, analysis, and Next tools
|
|
131
|
-
retain acceptance in their unchanged wire v1 envelopes. The public npm package
|
|
132
|
-
still excludes all three private adapter workspaces.
|
|
133
|
-
|
|
134
|
-
The complete milestone-acceptance cross-surface gate passes. All milestone criteria and
|
|
135
|
-
receipts were separately owner-confirmed, and the completed plan was
|
|
136
|
-
canonically advanced from its committed pre-advance snapshot. The residual
|
|
137
|
-
plan has no diagnostics, remaining task, recommendation, or startable task.
|
|
138
|
-
Candidate acceptance, publication, and remote writes remain separate.
|
|
139
|
-
|
|
140
|
-
## Run without installing
|
|
141
|
-
|
|
142
|
-
After beta publication, use `npx` for an occasional Contract 8 invocation and
|
|
143
|
-
select the version explicitly:
|
|
3
|
+
`perttool` is a local command-line tool for keeping PERT/CPM plans in
|
|
4
|
+
reviewable text files. It validates plans, calculates precedence and
|
|
5
|
+
resource-constrained schedules, recommends the next task, and previews every
|
|
6
|
+
change before writing it.
|
|
144
7
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
The equivalent explicit `npm exec` form is:
|
|
153
|
-
|
|
154
|
-
```sh
|
|
155
|
-
npm exec --yes --package=perttool@0.9.4 -- perttool --version
|
|
156
|
-
npm exec --yes --package=perttool@0.9.4 -- perttool document check PLAN.pert
|
|
157
|
-
npm exec --yes --package=perttool@0.9.4 -- perttool dag analyze PLAN.pert
|
|
158
|
-
npm exec --yes --package=perttool@0.9.4 -- perttool plan-assurance hash PLAN.pert WORK --kind contract
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
`npx` and `npm exec` may download the selected package version into the npm
|
|
162
|
-
cache. Pinning `0.6.0` selects Contract 6 and omits Grammar 6 assurance;
|
|
163
|
-
`0.4.0` selects Contract 5, `0.3.0` selects Contract 4, and `0.2.0` selects
|
|
164
|
-
Contract 3.
|
|
8
|
+
The recommended npm `latest` release is `0.10.5`; npm `beta` is the compatible
|
|
9
|
+
`0.10.6` Issue #36 correction. Both require Node.js 22 or later and use Grammar
|
|
10
|
+
8 and CLI Contract 9. The repository source is prepared as `0.11.0` with
|
|
11
|
+
Grammar 9 and CLI Contract 10 for the Work-centered Planning Pool; candidate
|
|
12
|
+
acceptance and publication remain separate.
|
|
165
13
|
|
|
166
14
|
## Install
|
|
167
15
|
|
|
168
|
-
Install the
|
|
169
|
-
regularly:
|
|
16
|
+
Install the current release for your user-managed Node.js environment:
|
|
170
17
|
|
|
171
18
|
```sh
|
|
172
|
-
npm install --global perttool@
|
|
19
|
+
npm install --global perttool@latest
|
|
173
20
|
perttool --version
|
|
174
21
|
```
|
|
175
22
|
|
|
176
|
-
|
|
177
|
-
`0.9.4` publication changes only npm `beta`; until an independent promotion is
|
|
178
|
-
authorized, an unqualified global installation continues to select `0.9.0`.
|
|
179
|
-
The exact `0.9.4` pin is the reproducible form for the Issue #19 correction.
|
|
180
|
-
Version `0.9.3` remains the rollback pin for the Issues #14, #16, and #17
|
|
181
|
-
corrections.
|
|
182
|
-
Contract 6 remains available by exact pinning `perttool@0.6.0`; the pre-schema
|
|
183
|
-
Contract 6 artifact remains available as
|
|
184
|
-
`perttool@0.5.0`. Contract 5,
|
|
185
|
-
Contract 4, and Contract 3 remain available as exact pins
|
|
186
|
-
`perttool@0.4.0`, `perttool@0.3.0`, and `perttool@0.2.0`. The retired alpha
|
|
187
|
-
preview remains installable only as the exact pin
|
|
188
|
-
`perttool@0.1.0-alpha.2`.
|
|
189
|
-
|
|
190
|
-
## Library subpaths in `0.8.0`
|
|
191
|
-
|
|
192
|
-
Version `0.8.0` provides two additive library boundaries:
|
|
193
|
-
|
|
194
|
-
```js
|
|
195
|
-
import {
|
|
196
|
-
analyzeDocumentSnapshot,
|
|
197
|
-
createDocumentSession,
|
|
198
|
-
createDocumentSnapshot,
|
|
199
|
-
documentOffsetToPosition,
|
|
200
|
-
documentPositionToOffset,
|
|
201
|
-
formatDocument,
|
|
202
|
-
getGuide,
|
|
203
|
-
parseDocument,
|
|
204
|
-
validateDocument,
|
|
205
|
-
} from "perttool/core";
|
|
206
|
-
import {
|
|
207
|
-
getJsonSchemaCatalog,
|
|
208
|
-
readDocumentFile,
|
|
209
|
-
} from "perttool/node";
|
|
210
|
-
```
|
|
23
|
+
Run it without installing:
|
|
211
24
|
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
cancellation-safe caches without filesystem or editor access. The caller
|
|
217
|
-
supplies the SHA-256 function. Its runtime closure has no Node builtin or
|
|
218
|
-
external package. `perttool/node` exposes the same 122 runtime values as the
|
|
219
|
-
existing `perttool` root, including file, schema, Git, hashing, and safe-write
|
|
220
|
-
APIs that still require Node.js 22 or later. Bundled JSON artifacts remain
|
|
221
|
-
available through `perttool/schemas/<schema-id>.schema.json`.
|
|
25
|
+
```sh
|
|
26
|
+
npx --yes --package=perttool@latest -- perttool --version
|
|
27
|
+
npx --yes --package=perttool@latest -- perttool document check PLAN.pert
|
|
28
|
+
```
|
|
222
29
|
|
|
223
|
-
|
|
224
|
-
[
|
|
225
|
-
|
|
226
|
-
[Document Session Core](docs/specs/document-session.md).
|
|
30
|
+
Use an exact version such as `perttool@0.10.6` when reproducibility matters.
|
|
31
|
+
See [CHANGELOG.md](CHANGELOG.md) and the [release records](docs/process/) for
|
|
32
|
+
older releases and rollback pins.
|
|
227
33
|
|
|
228
|
-
##
|
|
34
|
+
## Create your first plan
|
|
229
35
|
|
|
230
|
-
|
|
231
|
-
readable. This temporal plan has one one-day forecast from a one-Point task:
|
|
36
|
+
You can author the current canonical structure directly:
|
|
232
37
|
|
|
233
|
-
```
|
|
38
|
+
```pert
|
|
234
39
|
project EXAMPLE:
|
|
235
|
-
version
|
|
40
|
+
version 9
|
|
236
41
|
title "Example plan"
|
|
237
|
-
as_of 2026-
|
|
42
|
+
as_of 2026-08-21
|
|
238
43
|
duration_unit point
|
|
239
44
|
velocity 1p/1d
|
|
240
45
|
finish DONE
|
|
@@ -244,51 +49,24 @@ milestone NOW:
|
|
|
244
49
|
state reached
|
|
245
50
|
|
|
246
51
|
milestone DONE:
|
|
247
|
-
title "
|
|
248
|
-
deadline 2026-07-28
|
|
52
|
+
title "Work completed"
|
|
249
53
|
|
|
250
54
|
task WORK NOW -> DONE:
|
|
251
55
|
title "Do the work"
|
|
252
56
|
duration 1p
|
|
253
|
-
|
|
254
|
-
deadline 2026-07-27
|
|
57
|
+
status planned
|
|
255
58
|
```
|
|
256
59
|
|
|
257
|
-
Save it as `PLAN.pert`, then
|
|
60
|
+
Save it as `PLAN.pert`, then validate and canonically format it:
|
|
258
61
|
|
|
259
62
|
```sh
|
|
260
63
|
perttool document check PLAN.pert
|
|
261
|
-
perttool
|
|
262
|
-
perttool dag analyze PLAN.pert
|
|
263
|
-
perttool dag next PLAN.pert --format json
|
|
64
|
+
perttool document format PLAN.pert --diff
|
|
264
65
|
```
|
|
265
66
|
|
|
266
|
-
|
|
267
|
-
project-wide velocity such as `20p/10d`; analysis then keeps the exact Point
|
|
268
|
-
result and reports the time conversion separately as a velocity forecast.
|
|
269
|
-
Without velocity, Point analysis remains available without a time forecast.
|
|
270
|
-
The compatible `day` and `hour` units are deprecated and emit `PTSEM-114` with
|
|
271
|
-
`project migrate-unit --to-unit point` guidance. Grammar version 3 also accepts
|
|
272
|
-
an exact Fraction such as `1/3p`;
|
|
273
|
-
versions 1 and 2 continue to accept Decimal duration tokens. Grammar version 5
|
|
274
|
-
adds explicit task-owned work events and the `suspended` lifecycle state.
|
|
275
|
-
Grammar version 6 adds conditional plan assurance records and the separate
|
|
276
|
-
planning-dependency modes `both`, `execution_only`, and `planning_only`.
|
|
277
|
-
|
|
278
|
-
## Maintain a plan through the CLI
|
|
279
|
-
|
|
280
|
-
Read the file for its complete human-facing state. Use CLI maintenance commands
|
|
281
|
-
so that each candidate is parsed and semantically checked before it can be
|
|
282
|
-
written. To bootstrap a plan without hand-authoring syntax, preview the
|
|
283
|
-
smallest valid document and then create a new file exclusively:
|
|
67
|
+
Alternatively, `project init` can create the smallest valid starter file:
|
|
284
68
|
|
|
285
69
|
```sh
|
|
286
|
-
perttool project init EXAMPLE \
|
|
287
|
-
--title "Example plan" \
|
|
288
|
-
--initial-milestone NOW \
|
|
289
|
-
--initial-milestone-title "Current frontier" \
|
|
290
|
-
--finish NOW
|
|
291
|
-
|
|
292
70
|
perttool project init EXAMPLE \
|
|
293
71
|
--title "Example plan" \
|
|
294
72
|
--initial-milestone NOW \
|
|
@@ -297,443 +75,333 @@ perttool project init EXAMPLE \
|
|
|
297
75
|
--out PLAN.pert
|
|
298
76
|
```
|
|
299
77
|
|
|
300
|
-
For an existing plan
|
|
78
|
+
For an existing plan, preview a change, read the current source digest, and
|
|
79
|
+
repeat the reviewed command with `--write` and `--expect-digest`:
|
|
301
80
|
|
|
302
81
|
```sh
|
|
303
|
-
# Preview a source-preserving change.
|
|
304
82
|
perttool task set PLAN.pert WORK --status active --diff
|
|
305
|
-
|
|
306
|
-
# Obtain the current digest for optimistic locking.
|
|
307
83
|
perttool project show PLAN.pert --format json
|
|
308
84
|
|
|
309
|
-
# Apply the reviewed change atomically.
|
|
310
85
|
perttool task set PLAN.pert WORK \
|
|
311
86
|
--status active \
|
|
312
|
-
--not-before 2026-07-26 \
|
|
313
|
-
--deadline 2026-07-27 \
|
|
314
87
|
--write \
|
|
315
88
|
--expect-digest 'sha256:...'
|
|
89
|
+
```
|
|
316
90
|
|
|
317
|
-
|
|
318
|
-
|
|
91
|
+
`--out` creates a new file exclusively. `--write` atomically replaces the
|
|
92
|
+
input only when the supplied digest still matches. Existing files are never
|
|
93
|
+
silently overwritten.
|
|
94
|
+
|
|
95
|
+
## Inspect and schedule a plan
|
|
96
|
+
|
|
97
|
+
```sh
|
|
98
|
+
perttool document check PLAN.pert
|
|
99
|
+
perttool project show PLAN.pert
|
|
100
|
+
perttool dag analyze PLAN.pert
|
|
101
|
+
perttool dag next PLAN.pert
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Use JSON for scripts and agents:
|
|
105
|
+
|
|
106
|
+
```sh
|
|
319
107
|
perttool dag next PLAN.pert --format json
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Only `temporal.authority.startable_recommended_task_ids` grants new-start
|
|
111
|
+
authority. Every ID in that set is also in `groups.runnable_now`; a raw
|
|
112
|
+
recommendation outside that group is informational and non-executable in the
|
|
113
|
+
current result. Do not treat a raw recommendation or a ready task as
|
|
114
|
+
equivalent to permission to start it.
|
|
115
|
+
|
|
116
|
+
Task estimates use Point values by default. A plan can declare a velocity such
|
|
117
|
+
as `20p/10d` to add time forecasts. Point analysis still works when no velocity
|
|
118
|
+
is declared; only the time forecast is unavailable.
|
|
119
|
+
|
|
120
|
+
## Update work safely
|
|
121
|
+
|
|
122
|
+
Mutation commands preview by default:
|
|
123
|
+
|
|
124
|
+
```sh
|
|
125
|
+
perttool task set PLAN.pert WORK --status active --diff
|
|
126
|
+
perttool task finish PLAN.pert WORK --diff
|
|
320
127
|
perttool dag advance PLAN.pert --diff
|
|
321
|
-
perttool dag advance PLAN.pert \
|
|
322
|
-
--write \
|
|
323
|
-
--expect-digest 'sha256:...'
|
|
324
128
|
```
|
|
325
129
|
|
|
326
|
-
|
|
327
|
-
input through the safe-write path, while `--out` exclusively creates a new
|
|
328
|
-
file. A changed in-place `dag advance` additionally verifies removed or
|
|
329
|
-
replaced entity ranges against the target path in Git `HEAD` and the stage-0
|
|
330
|
-
index. Dirty ranges retained by the candidate are allowed; uncommitted
|
|
331
|
-
destructive overlap or unavailable proof returns `PTADV-101` without writing.
|
|
332
|
-
`Perttool.AdvanceResult.v3.history_guard` reports the status, modification
|
|
333
|
-
time, byte sizes, diff counts, and affected IDs before supplemental digests.
|
|
334
|
-
If the source, `HEAD`, or stage-0 index changes after assessment, `PTADV-102`
|
|
335
|
-
returns exit 5 without writing.
|
|
336
|
-
The exceptional `--force-history-loss` option bypasses only that initial
|
|
337
|
-
history block for the exact in-place request, emits `PTADV-103`, and does not
|
|
338
|
-
bypass governance, warnings-as-errors, expected digests, source/`HEAD`/index
|
|
339
|
-
rechecks, or atomic-write validation.
|
|
340
|
-
For a terminal sequence of removed tasks and task-owned work events, the same
|
|
341
|
-
candidate also removes only its newly orphaned blank separator prefixes. The
|
|
342
|
-
preview, separate output, and in-place write therefore remain byte-identical
|
|
343
|
-
and do not require a formatter or a second whitespace edit before
|
|
344
|
-
`git diff --check`. Consecutive terminal assurance records and work events are
|
|
345
|
-
processed in source order so each separator byte belongs to at most one
|
|
346
|
-
deletion range.
|
|
347
|
-
|
|
348
|
-
Gate maintenance uses the same base controls:
|
|
130
|
+
After review, apply the exact candidate with optimistic locking:
|
|
349
131
|
|
|
350
132
|
```sh
|
|
351
|
-
perttool
|
|
352
|
-
--
|
|
353
|
-
--
|
|
133
|
+
perttool task set PLAN.pert WORK \
|
|
134
|
+
--status active \
|
|
135
|
+
--write \
|
|
136
|
+
--expect-digest 'sha256:...'
|
|
354
137
|
```
|
|
355
138
|
|
|
139
|
+
`dag advance` also protects removed history with Git `HEAD` and index evidence.
|
|
140
|
+
Commit the plan before advancing it. If local changes overlap history that the
|
|
141
|
+
candidate would remove, the command fails without writing. The exceptional
|
|
142
|
+
`--force-history-loss` option bypasses only the initial history-loss block; it
|
|
143
|
+
does not bypass governance, digest, race, or atomic-write checks.
|
|
144
|
+
|
|
356
145
|
Use `batch apply` when several changes must become valid atomically:
|
|
357
146
|
|
|
358
147
|
```sh
|
|
359
148
|
perttool batch apply PLAN.pert --request changes.json --diff
|
|
360
|
-
perttool batch apply PLAN.pert \
|
|
361
|
-
--request changes.json \
|
|
362
|
-
--write \
|
|
363
|
-
--expect-digest 'sha256:...'
|
|
364
149
|
```
|
|
365
150
|
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
`Perttool.ProjectResult.v2` to `Perttool.ProjectResult.v3`; mutation and
|
|
371
|
-
advance change from `Perttool.MutationResult.v1` to
|
|
372
|
-
`Perttool.MutationResult.v2` and include a
|
|
373
|
-
`Perttool.GovernanceDecision.v1`. Consumers must reject unknown identities
|
|
374
|
-
rather than treating the new fields as optional.
|
|
375
|
-
|
|
376
|
-
Grammar 4 adds declared goal/DAG owners and delegates. Persistent goal or DAG
|
|
377
|
-
changes require `--actor`; an effective owner or delegate has direct
|
|
378
|
-
authority, while another actor supplies repeatable `--accepted-by-owner`
|
|
379
|
-
caller assertions for every affected effective owner. The digest-bound
|
|
380
|
-
pre-change document determines owners and delegates, and an atomic batch must
|
|
381
|
-
satisfy every affected scope. These assertions are not authentication,
|
|
382
|
-
verified identity, signatures, or a durable approval audit.
|
|
383
|
-
|
|
384
|
-
Treat each `--accepted-by-owner` value as a single-candidate, scope-bound
|
|
385
|
-
caller assertion rather than workstream or session authority. First preview
|
|
386
|
-
without it. Omit it when the result reports `governance.applicable=false`.
|
|
387
|
-
Before a non-direct governed write, identify the operation, affected scopes,
|
|
388
|
-
required owners, available modification time, byte size before and after, diff
|
|
389
|
-
counts, and semantic candidate summary. Keep source and candidate digests as
|
|
390
|
-
supplemental machine identity rather than the primary human explanation;
|
|
391
|
-
never copy the assertion to later maintenance, a changed candidate, or the
|
|
392
|
-
next `dag advance`. See the
|
|
393
|
-
[loose assertion scope experiment](docs/process/governance-assertion-scope-experiment.md).
|
|
394
|
-
If a valid candidate is not governance-applicable but still receives an owner
|
|
395
|
-
assertion, `PTGOV-103` makes that likely boilerplate visible. It is a warning
|
|
396
|
-
and does not change default write authority; `--warnings-as-errors` prevents
|
|
397
|
-
the write. If a governed preview already carries an owner assertion,
|
|
398
|
-
`PTGOV-104` directs the caller back to an assertion-free first preview. Its
|
|
399
|
-
default preview still succeeds; `--warnings-as-errors` exits 1 while retaining
|
|
400
|
-
the candidate and governance decision. Persistent governed authority is
|
|
401
|
-
unchanged.
|
|
402
|
-
|
|
403
|
-
Contract 5 previews may still omit actor and owner confirmation. A Contract 4
|
|
404
|
-
runtime fails closed on Grammar 4 and governance options; there is no
|
|
405
|
-
`--cli-contract 4` switch, compatibility alias, or environment toggle. Pin
|
|
406
|
-
`perttool@0.3.0` when a consumer is not ready to migrate. See the
|
|
407
|
-
[Contract 4-to-5 migration guide](docs/process/cli-contract-5-migration.md)
|
|
408
|
-
for the complete boundary.
|
|
409
|
-
|
|
410
|
-
For example, preview and then persist a DAG change as its effective owner:
|
|
151
|
+
## Record actual work
|
|
152
|
+
|
|
153
|
+
Lifecycle commands record explicit event times and can include active time and
|
|
154
|
+
effort:
|
|
411
155
|
|
|
412
156
|
```sh
|
|
413
|
-
perttool
|
|
414
|
-
--
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
--
|
|
419
|
-
|
|
420
|
-
--
|
|
157
|
+
perttool task start PLAN.pert WORK \
|
|
158
|
+
--at 2026-08-21T09:00:00+09:00 --diff
|
|
159
|
+
perttool task suspend PLAN.pert WORK \
|
|
160
|
+
--at 2026-08-21T11:00:00+09:00 --reason "review" --diff
|
|
161
|
+
perttool task resume PLAN.pert WORK \
|
|
162
|
+
--at 2026-08-21T12:00:00+09:00 --diff
|
|
163
|
+
perttool task finish PLAN.pert WORK \
|
|
164
|
+
--at 2026-08-21T15:00:00+09:00 \
|
|
165
|
+
--active-time 5 --effort 6 --diff
|
|
421
166
|
```
|
|
422
167
|
|
|
423
|
-
|
|
168
|
+
`perttool` never substitutes the system clock for a missing event time.
|
|
169
|
+
Project history is read-only:
|
|
424
170
|
|
|
425
|
-
```
|
|
426
|
-
|
|
171
|
+
```sh
|
|
172
|
+
perttool project history PLAN.pert --task WORK --format json
|
|
173
|
+
perttool project observe-velocity PLAN.pert \
|
|
174
|
+
--task WORK --evidence all --format json
|
|
175
|
+
perttool dag history PLAN.pert --view timeline --format json
|
|
427
176
|
```
|
|
428
177
|
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
review remain external controls.
|
|
178
|
+
Observed velocity is evidence only. Adopting it is a separate reviewed
|
|
179
|
+
`project set --velocity` change.
|
|
432
180
|
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
181
|
+
## Migrate an existing plan
|
|
182
|
+
|
|
183
|
+
Check the file first. Diagnostics include the applicable migration route:
|
|
436
184
|
|
|
437
185
|
```sh
|
|
438
|
-
perttool
|
|
439
|
-
|
|
440
|
-
|
|
186
|
+
perttool document check PLAN.pert
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
Preview a complete migration to the current Grammar 9 form:
|
|
190
|
+
|
|
191
|
+
```sh
|
|
192
|
+
perttool document migrate PLAN.pert --target-grammar 9 --diff
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
Then apply the reviewed candidate:
|
|
196
|
+
|
|
197
|
+
```sh
|
|
198
|
+
perttool document migrate PLAN.pert \
|
|
199
|
+
--target-grammar 9 \
|
|
441
200
|
--write \
|
|
442
201
|
--expect-digest 'sha256:...'
|
|
202
|
+
```
|
|
443
203
|
|
|
444
|
-
|
|
204
|
+
For deprecated `day` or `hour` plans, migrate duration values to Points
|
|
205
|
+
separately:
|
|
206
|
+
|
|
207
|
+
```sh
|
|
208
|
+
perttool project migrate-unit PLAN.pert --to-unit point --diff
|
|
445
209
|
perttool project migrate-unit PLAN.pert \
|
|
446
210
|
--to-unit point \
|
|
447
211
|
--replacement-velocity 20p/10d \
|
|
448
|
-
--
|
|
212
|
+
--write \
|
|
213
|
+
--expect-digest 'sha256:...'
|
|
449
214
|
```
|
|
450
215
|
|
|
451
|
-
|
|
452
|
-
|
|
216
|
+
Automatic migration is not required. You may edit a copy manually, then run
|
|
217
|
+
`perttool document format` and `perttool document check` to obtain and verify
|
|
218
|
+
the canonical target form. Detailed compatibility guidance is in the
|
|
219
|
+
[`0.9.4` to `0.10.0` migration guide](docs/process/0.9.4-to-0.10.0-migration.md)
|
|
220
|
+
and the built-in migration Guide:
|
|
221
|
+
|
|
222
|
+
```sh
|
|
223
|
+
perttool guide editing unit-migration --level detail
|
|
224
|
+
```
|
|
453
225
|
|
|
454
|
-
|
|
226
|
+
## Start a Planning Pool
|
|
455
227
|
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
explicit caller input; perttool does not substitute the system clock or Git
|
|
459
|
-
commit time.
|
|
228
|
+
The prepared `0.11.0` Grammar 9 source adds Work and bounded planning Windows
|
|
229
|
+
without changing strict Task execution. Migrate a Grammar 8 document first:
|
|
460
230
|
|
|
461
231
|
```sh
|
|
462
|
-
perttool
|
|
463
|
-
|
|
464
|
-
perttool
|
|
465
|
-
--
|
|
466
|
-
perttool task resume PLAN.pert WORK \
|
|
467
|
-
--at 2026-07-29T12:00:00+09:00 --diff
|
|
468
|
-
perttool task finish PLAN.pert WORK \
|
|
469
|
-
--at 2026-07-29T15:00:00+09:00 \
|
|
470
|
-
--active-time 5 --effort 6 --diff
|
|
232
|
+
SOURCE_DIGEST=$(perttool document check PLAN.pert --format json | jq -r .source_digest)
|
|
233
|
+
perttool document migrate PLAN.pert --target-grammar 9 --diff
|
|
234
|
+
perttool document migrate PLAN.pert --target-grammar 9 \
|
|
235
|
+
--write --expect-digest "$SOURCE_DIGEST"
|
|
471
236
|
```
|
|
472
237
|
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
238
|
+
Exact `perttool@0.10.6` remains the rollback pin for Grammar 8 plans. It cannot
|
|
239
|
+
read Planning Pool declarations and there is no automatic Grammar 9 to 8
|
|
240
|
+
downgrade, so retain the pre-migration Git revision before adopting Work,
|
|
241
|
+
Event, Activity, or Window declarations.
|
|
476
242
|
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
243
|
+
Routine changes use one closed, source-bound intent request. They still run
|
|
244
|
+
through the same complete reshape preflight and opaque-token binding as a
|
|
245
|
+
low-level request:
|
|
480
246
|
|
|
481
247
|
```sh
|
|
482
|
-
perttool
|
|
483
|
-
|
|
484
|
-
|
|
248
|
+
perttool work reshape preflight PLAN.pert \
|
|
249
|
+
--intent-request intent.json --format json > preflight.json
|
|
250
|
+
perttool work reshape apply PLAN.pert \
|
|
251
|
+
--intent-request intent.json \
|
|
252
|
+
--preflight-hash "$(jq -r .preflight_hash preflight.json)" \
|
|
253
|
+
--preflight-token "$(jq -r .preflight_token preflight.json)" \
|
|
254
|
+
--diff
|
|
485
255
|
```
|
|
486
256
|
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
257
|
+
The intent builder never infers meaning, dependencies, projection, deferral,
|
|
258
|
+
or carry-over. Review the compiled `normalized_request` and the final candidate
|
|
259
|
+
before writing. The complete first-Work, first-Window, projection, deferral,
|
|
260
|
+
carry-over, and recovery workflow is in
|
|
261
|
+
[Planning Pool intent workflows](docs/examples/planning-pool-intents.md).
|
|
262
|
+
Low-level integrations can discover and validate the three closed request
|
|
263
|
+
contracts through `perttool schema`; complete valid documents are in
|
|
264
|
+
[Planning Pool request schema examples](docs/examples/planning-pool-requests.md).
|
|
265
|
+
|
|
266
|
+
Default text output is designed for human review: lists remain compact;
|
|
267
|
+
`work show`, `event show`, `activity show`, and `window show` expose their
|
|
268
|
+
semantic facts; observations split
|
|
269
|
+
refinement, execution, outcome, organization, temporal, and global-execution
|
|
270
|
+
facts, and reshape preflight ends with the required next action. Use
|
|
271
|
+
`--format json` when a script needs the complete stable result contract:
|
|
272
|
+
|
|
273
|
+
```sh
|
|
274
|
+
perttool work show PLAN.pert WORK_ID
|
|
275
|
+
perttool event show PLAN.pert EVENT_ID
|
|
276
|
+
perttool activity show PLAN.pert ACTIVITY_ID
|
|
277
|
+
perttool window observe PLAN.pert --request observation.json
|
|
278
|
+
perttool work reshape preflight PLAN.pert --intent-request intent.json
|
|
279
|
+
perttool schema Perttool.PlanningReshapeRequest.v1
|
|
280
|
+
```
|
|
492
281
|
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
282
|
+
Planning Pool retention is advisory. Remaining Work does not block
|
|
283
|
+
`project.finish`, and Work or Window observations do not prove Final Milestone
|
|
284
|
+
Goal obligation coverage, goal completion, or Window objective achievement.
|
|
285
|
+
Execution scope changes only through an explicit governed strict-DAG candidate.
|
|
286
|
+
The nontechnical retained-Work example is in
|
|
287
|
+
[Planning Pool intent workflows](docs/examples/planning-pool-intents.md);
|
|
288
|
+
[Issue #24](https://github.com/mako10k/perttool/issues/24) separately owns the
|
|
289
|
+
future Goal Obligation, Goal Coverage, and Goal Seal boundary.
|
|
498
290
|
|
|
499
|
-
|
|
291
|
+
## Plan assurance
|
|
500
292
|
|
|
501
|
-
|
|
502
|
-
|
|
293
|
+
Plan assurance is optional. Initial sealing records reviewed task contracts
|
|
294
|
+
and planning bases atomically:
|
|
503
295
|
|
|
504
296
|
```sh
|
|
505
297
|
perttool plan-assurance seal PLAN.pert \
|
|
506
298
|
--reason "Initial reviewed planning baseline" --diff
|
|
507
299
|
perttool plan-assurance show PLAN.pert --format json
|
|
508
|
-
perttool plan-assurance hash PLAN.pert WORK --kind computed-basis
|
|
509
300
|
```
|
|
510
301
|
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
execution-and-planning relation, or to add a planning-only relation:
|
|
302
|
+
After changing reviewed work, inspect the affected closure and reseal only the
|
|
303
|
+
selected tasks:
|
|
514
304
|
|
|
515
305
|
```sh
|
|
516
|
-
perttool plan-
|
|
517
|
-
--
|
|
518
|
-
|
|
519
|
-
--
|
|
306
|
+
perttool plan-assurance reseal PLAN.pert \
|
|
307
|
+
--task WORK \
|
|
308
|
+
--reason "Accepted the updated plan" \
|
|
309
|
+
--diff
|
|
520
310
|
```
|
|
521
311
|
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
new-start authority from unsealed, review-required, or unavailable plans.
|
|
312
|
+
In `0.10.5`, selected reseal also covers a newly added unsealed task when plan
|
|
313
|
+
assurance is already enabled. A plan with assurance entirely disabled still
|
|
314
|
+
uses the atomic `seal` command. Completed tasks require explicit
|
|
315
|
+
`task-outcome` records; status and Git history do not imply conformance.
|
|
527
316
|
|
|
528
|
-
##
|
|
317
|
+
## Ownership and review
|
|
529
318
|
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
| Discover or read JSON Schemas | `perttool schema [schema-id]` |
|
|
534
|
-
| Read domain guidance | `perttool guide [topic [subtopic]]` |
|
|
535
|
-
| Validate a document | `perttool document check <file>` |
|
|
536
|
-
| Canonically format it | `perttool document format <file>` |
|
|
537
|
-
| Initialize a project | `perttool project init ...` |
|
|
538
|
-
| Read project metadata | `perttool project show <file>` |
|
|
539
|
-
| Reconstruct task actuals | `perttool project history <file> ...` |
|
|
540
|
-
| Observe project performance | `perttool project observe-velocity <file> ...` |
|
|
541
|
-
| Change project metadata | `perttool project set <file> ...` |
|
|
542
|
-
| Migrate project units exactly | `perttool project migrate-unit <file> ...` |
|
|
543
|
-
| Analyze schedules | `perttool dag analyze <file>` |
|
|
544
|
-
| Select next work | `perttool dag next <file>` |
|
|
545
|
-
| Remove completed history | `perttool dag advance <file>` |
|
|
546
|
-
| Reconstruct committed DAG history | `perttool dag history <file> ...` |
|
|
547
|
-
| Inspect plan assurance | `perttool plan-assurance show|hash <file> ...` |
|
|
548
|
-
| Seal or reseal reviewed plans | `perttool plan-assurance seal|reseal <file> ...` |
|
|
549
|
-
| Maintain planning dependencies | `perttool plan-dependency add|set|remove` |
|
|
550
|
-
| Maintain task outcomes | `perttool task-outcome add|set|remove` |
|
|
551
|
-
| Export or import Mermaid | `perttool dag render`, `perttool dag import` |
|
|
552
|
-
| Maintain tasks | `perttool task add|set|remove|start|suspend|resume|finish` |
|
|
553
|
-
| Maintain gates | `perttool gate add|set|remove` |
|
|
554
|
-
| Maintain milestones | `perttool milestone add|set|remove` |
|
|
555
|
-
| Maintain milestone acceptance | `perttool milestone acceptance show|replace|verify|fail|unavailable|revoke|waive` |
|
|
556
|
-
| Maintain resources | `perttool resource add|set|remove` |
|
|
557
|
-
| Apply an atomic batch | `perttool batch apply` |
|
|
558
|
-
| Read coding-agent guidance | `perttool agent help` |
|
|
559
|
-
|
|
560
|
-
Run `perttool --help` for the text command catalog. `help` is the complete
|
|
561
|
-
command contract for humans and machine consumers, while `guide` explains
|
|
562
|
-
domain concepts. Both run without a document:
|
|
319
|
+
A plan may declare goal and DAG owners. Preview first without owner assertions.
|
|
320
|
+
If the result reports that governance applies, repeat the exact candidate with
|
|
321
|
+
`--actor` and any required `--accepted-by-owner` values:
|
|
563
322
|
|
|
564
323
|
```sh
|
|
565
|
-
perttool
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
perttool
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
324
|
+
perttool gate add PLAN.pert APPROVAL NOW DONE \
|
|
325
|
+
--reason "Approval required" \
|
|
326
|
+
--diff
|
|
327
|
+
|
|
328
|
+
perttool gate add PLAN.pert APPROVAL NOW DONE \
|
|
329
|
+
--reason "Approval required" \
|
|
330
|
+
--actor user \
|
|
331
|
+
--write \
|
|
332
|
+
--expect-digest 'sha256:...'
|
|
573
333
|
```
|
|
574
334
|
|
|
575
|
-
|
|
335
|
+
Owner confirmations are caller assertions, not authentication or durable
|
|
336
|
+
approval records. Treat each value as a single-candidate, scope-bound
|
|
337
|
+
assertion. It
|
|
338
|
+
applies only to the exact candidate being reviewed and must not be reused
|
|
339
|
+
automatically.
|
|
576
340
|
|
|
577
|
-
|
|
578
|
-
Supplying a schema identity returns its Draft 2020-12 artifact in the
|
|
579
|
-
`schema` field of `Perttool.SchemaResult.v1`:
|
|
341
|
+
Generated plans include this reminder:
|
|
580
342
|
|
|
581
|
-
```
|
|
582
|
-
|
|
343
|
+
```pert
|
|
344
|
+
# Existing .pert plans should normally be maintained through perttool commands; direct DSL editing bypasses goal/DAG owner-confirmation checks.
|
|
583
345
|
```
|
|
584
346
|
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
347
|
+
This warning is guidance, not technical prevention; Git and human review remain
|
|
348
|
+
external controls.
|
|
349
|
+
|
|
350
|
+
## Find commands and guidance
|
|
351
|
+
|
|
352
|
+
The CLI is the complete current command reference:
|
|
589
353
|
|
|
590
354
|
```sh
|
|
591
|
-
perttool
|
|
592
|
-
perttool
|
|
593
|
-
|
|
355
|
+
perttool --help
|
|
356
|
+
perttool task set --help
|
|
357
|
+
perttool help dag next
|
|
358
|
+
perttool help work reshape preflight
|
|
359
|
+
perttool guide workflows --level detail
|
|
360
|
+
perttool schema --format json
|
|
594
361
|
```
|
|
595
362
|
|
|
596
|
-
|
|
597
|
-
`perttool
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
`
|
|
610
|
-
|
|
611
|
-
`
|
|
612
|
-
`
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
`
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
rest of a result.
|
|
630
|
-
Version `0.8.0` adds `dag history`, `Perttool.HistoricalGraphResult.v1`, and
|
|
631
|
-
the Core and Node subpaths without changing CLI Contract 7; see the
|
|
632
|
-
[`0.7.1` to `0.8.0` migration](docs/process/0.7.1-to-0.8.0-migration.md).
|
|
633
|
-
Version `0.8.1` retains those interfaces and corrects assurance-receipt
|
|
634
|
-
placement in an advance-owned terminal deletion suffix. Versions `0.9.0`,
|
|
635
|
-
`0.9.1`, `0.9.2`, `0.9.3`, and `0.9.4` use CLI Contract 8.
|
|
636
|
-
A complete, known, non-truncated `Perttool.NextResult.v7` with policy
|
|
637
|
-
`recommendation_v1_plus_release_gate_plus_plan_assurance_v1` is required for
|
|
638
|
-
the current source. Start only task IDs in
|
|
639
|
-
`temporal.authority.startable_recommended_task_ids`; do not infer start
|
|
640
|
-
authority from the raw recommended set, the text summary, or `ready` alone.
|
|
641
|
-
Suspended tasks are reported separately and require an explicit `task resume`;
|
|
642
|
-
they are not new-start recommendations.
|
|
643
|
-
|
|
644
|
-
Mutation JSON returns the candidate text, unified diff, UTF-16 text edits,
|
|
645
|
-
source digest, updated digest, diagnostics, and write result in one envelope.
|
|
646
|
-
Direct, lifecycle, batch, and assurance mutations use
|
|
647
|
-
`Perttool.MutationResult.v5`; milestone acceptance mutations use that same
|
|
648
|
-
identity, and `dag advance` uses `Perttool.AdvanceResult.v3`. Current-source
|
|
649
|
-
advance requires Grammar 7; migrate a committed older document with
|
|
650
|
-
`perttool document migrate --target-grammar 7`, then declare criteria through
|
|
651
|
-
the milestone acceptance commands before relying on canonical advance.
|
|
652
|
-
Unknown schema versions, incomplete recommendation traces, `PTREC-*`
|
|
653
|
-
diagnostics, and future or unavailable temporal eligibility must fail closed.
|
|
654
|
-
|
|
655
|
-
## Documentation
|
|
656
|
-
|
|
657
|
-
- [Temporal and Unit Interface Contract (CLI Contract 4)](docs/specs/temporal-unit-interface.md)
|
|
658
|
-
- [Owner-Aware Governance Interface Contract (CLI Contract 5)](docs/specs/governance-interface.md)
|
|
659
|
-
- [Project Actuals and Git History Contract (CLI Contract 6)](docs/specs/project-actuals.md)
|
|
660
|
-
- [Advance History Safety Contract (ADV-001 target)](docs/specs/advance-history-safety.md)
|
|
661
|
-
- [Advance History Safety source acceptance](docs/process/advance-history-acceptance.md)
|
|
662
|
-
- [Conditional Plan Assurance Contract (retained Grammar 6 / CLI Contract 7 boundary)](docs/specs/plan-assurance.md)
|
|
663
|
-
- [Conditional Plan Assurance Interface Contract](docs/specs/plan-assurance-interface.md)
|
|
664
|
-
- [Milestone Acceptance Contract (active Grammar 7 / CLI Contract 8 source)](docs/specs/milestone-acceptance.md)
|
|
665
|
-
- [Conditional Plan Assurance public-contract acceptance](docs/process/plan-assurance-public-contract-acceptance.md)
|
|
666
|
-
- [`0.6.0` to `0.7.0` migration](docs/process/0.6.0-to-0.7.0-migration.md)
|
|
667
|
-
- [`v0.7.0` release procedure](docs/process/0.7.0-release.md)
|
|
668
|
-
- [`v0.7.1` Help and Guide consistency patch procedure](docs/process/0.7.1-release.md)
|
|
669
|
-
- [`0.7.1` to `0.8.0` migration](docs/process/0.7.1-to-0.8.0-migration.md)
|
|
670
|
-
- [`v0.8.0` release procedure](docs/process/0.8.0-release.md)
|
|
671
|
-
- [`v0.8.1` release procedure](docs/process/0.8.1-release.md)
|
|
672
|
-
- [`0.8.1` to `0.9.0` migration](docs/process/0.8.1-to-0.9.0-migration.md)
|
|
673
|
-
- [`v0.9.0` release procedure](docs/process/0.9.0-release.md)
|
|
674
|
-
- [`v0.9.1` release procedure](docs/process/0.9.1-release.md)
|
|
675
|
-
- [`v0.9.1` durable release acceptance](docs/process/0.9.1-release-acceptance.md)
|
|
676
|
-
- [`v0.9.2` release procedure](docs/process/0.9.2-release.md)
|
|
677
|
-
- [`v0.9.2` durable release acceptance](docs/process/0.9.2-release-acceptance.md)
|
|
678
|
-
- [`v0.9.3` release procedure](docs/process/0.9.3-release.md)
|
|
679
|
-
- [`v0.9.3` publication record](docs/process/0.9.3-publish.md)
|
|
680
|
-
- [`v0.9.3` durable release acceptance](docs/process/0.9.3-release-acceptance.md)
|
|
681
|
-
- [`v0.9.4` release procedure](docs/process/0.9.4-release.md)
|
|
682
|
-
- [`v0.10.2` release procedure](docs/process/0.10.2-release.md)
|
|
683
|
-
- [`v0.10.3` release procedure](docs/process/0.10.3-release.md)
|
|
684
|
-
- [`v0.10.4` release procedure](docs/process/0.10.4-release.md)
|
|
685
|
-
- [`v0.10.5` release procedure](docs/process/0.10.5-release.md)
|
|
686
|
-
- [Conditional Plan Assurance interface acceptance](docs/process/plan-assurance-interface-acceptance.md)
|
|
687
|
-
- [Shared Library Boundary](docs/specs/shared-library.md)
|
|
688
|
-
- [Editor Protocol Contract](docs/specs/editor-protocol.md)
|
|
689
|
-
- [Historical Editor Protocol Contract](docs/specs/historical-editor-protocol.md)
|
|
690
|
-
- [DAG Presentation and Focus Contract](docs/specs/dag-presentation.md)
|
|
691
|
-
- [DAG presentation and focus acceptance](docs/process/dag-presentation-acceptance.md)
|
|
692
|
-
- [DAG Compact Labels and Exact Time Summary Contract](docs/specs/dag-compact-presentation.md)
|
|
693
|
-
- [DAG compact presentation acceptance](docs/process/dag-compact-presentation-acceptance.md)
|
|
694
|
-
- [Document Session Core](docs/specs/document-session.md)
|
|
695
|
-
- [Conditional Plan Assurance internal hash Core acceptance](docs/process/plan-assurance-hash-core-acceptance.md)
|
|
696
|
-
- [Conditional Plan Assurance internal source Core acceptance](docs/process/plan-assurance-source-core-acceptance.md)
|
|
697
|
-
- [Conditional Plan Assurance internal mutation Core acceptance](docs/process/plan-assurance-mutation-core-acceptance.md)
|
|
698
|
-
- [Conditional Plan Assurance internal authority Core acceptance](docs/process/plan-assurance-authority-core-acceptance.md)
|
|
699
|
-
- [Conditional Plan Assurance internal advance contraction acceptance](docs/process/plan-assurance-advance-contraction-acceptance.md)
|
|
700
|
-
- [Conditional Plan Assurance internal compatibility acceptance](docs/process/plan-assurance-compatibility-acceptance.md)
|
|
701
|
-
- [Conditional Plan Assurance internal hash inspection acceptance](docs/process/plan-assurance-hash-inspection-acceptance.md)
|
|
702
|
-
- [Conditional Plan Assurance design review](docs/process/plan-assurance-design-review.md)
|
|
703
|
-
- [Conditional Plan Assurance implementation plan](plans/plan-assurance.pert)
|
|
704
|
-
- [Help and Guide consistency correction](docs/specs/help-guide-consistency.md)
|
|
705
|
-
- [Help and Guide consistency implementation plan](plans/help-guide-consistency.pert)
|
|
706
|
-
- [`v0.7.1` release plan](plans/release-0.7.1.pert)
|
|
707
|
-
- [`v0.8.0` release plan](plans/release-0.8.0.pert)
|
|
708
|
-
- [`v0.9.0` release plan](plans/release-0.9.0.pert)
|
|
709
|
-
- [`v0.9.1` release plan](plans/release-0.9.1.pert)
|
|
710
|
-
- [`v0.9.2` release plan](plans/release-0.9.2.pert)
|
|
711
|
-
- [`v0.9.3` release plan](plans/release-0.9.3.pert)
|
|
712
|
-
- [`v0.9.4` release plan](plans/release-0.9.4.pert)
|
|
713
|
-
- [JSON Schema Artifact Contract](docs/specs/json-schema.md)
|
|
714
|
-
- [JSON Schema source acceptance](docs/process/json-schema-acceptance.md)
|
|
715
|
-
- [Contract 5-to-6 migration](docs/process/cli-contract-6-migration.md)
|
|
716
|
-
- [Contract 4-to-5 migration](docs/process/cli-contract-5-migration.md)
|
|
717
|
-
- [Issue #4 governance implementation acceptance](docs/process/governance-acceptance.md)
|
|
718
|
-
- [CLI Contract 3 compatibility baseline](docs/specs/cli-contract-3.md)
|
|
719
|
-
- [DSL grammar](docs/specs/dsl-grammar.md)
|
|
720
|
-
- [Graph semantics](docs/specs/graph-semantics.md)
|
|
721
|
-
- [Analysis semantics](docs/specs/analysis.md)
|
|
722
|
-
- [Mutation semantics](docs/specs/mutation.md)
|
|
723
|
-
- [Recommendation semantics](docs/specs/recommendation.md)
|
|
363
|
+
Compound command Help accepts the same natural path segments as the command.
|
|
364
|
+
An incomplete prefix such as `perttool help work reshape` fails with
|
|
365
|
+
`PTHLP-003` and lists `apply` and `preflight`; structured callers that already
|
|
366
|
+
pass `reshape preflight` as one action argument remain compatible.
|
|
367
|
+
|
|
368
|
+
Common commands:
|
|
369
|
+
|
|
370
|
+
| Goal | Command |
|
|
371
|
+
| --- | --- |
|
|
372
|
+
| Validate or format | `document check`, `document format` |
|
|
373
|
+
| Create or inspect a project | `project init`, `project show` |
|
|
374
|
+
| Analyze or select work | `dag analyze`, `dag next` |
|
|
375
|
+
| Maintain the graph | `task`, `gate`, `milestone`, `resource` |
|
|
376
|
+
| Record lifecycle events | `task start`, `suspend`, `resume`, `finish` |
|
|
377
|
+
| Inspect history | `project history`, `dag history` |
|
|
378
|
+
| Maintain assurance | `plan-assurance`, `plan-dependency`, `task-outcome` |
|
|
379
|
+
| Migrate documents | `document migrate`, `project migrate-unit` |
|
|
380
|
+
| Discover machine contracts | `help --format json`, `schema` |
|
|
381
|
+
|
|
382
|
+
## Library use
|
|
383
|
+
|
|
384
|
+
The package exposes a platform-neutral `perttool/core` subpath and a Node.js
|
|
385
|
+
`perttool/node` subpath. JSON Schema artifacts are available through
|
|
386
|
+
`perttool/schemas/<schema-id>.schema.json`.
|
|
387
|
+
|
|
388
|
+
See the [Shared Library Boundary](docs/specs/shared-library.md),
|
|
389
|
+
[Document Session Core](docs/specs/document-session.md), and
|
|
390
|
+
[JSON Schema contract](docs/specs/json-schema.md) for API details. Automation
|
|
391
|
+
must check each result's `schema_version` and `cli_contract_version`; it must
|
|
392
|
+
not infer compatibility from `tool_version` alone.
|
|
393
|
+
|
|
394
|
+
## More documentation
|
|
395
|
+
|
|
724
396
|
- [Examples](docs/examples/README.md)
|
|
397
|
+
- [Current changelog and older versions](CHANGELOG.md)
|
|
398
|
+
- [Migration guides and release records](docs/process/)
|
|
399
|
+
- [Normative specifications](docs/specs/)
|
|
725
400
|
- [Developer guide](docs/development.md)
|
|
726
401
|
- [Product backlog](docs/backlog.md)
|
|
402
|
+
- [Security policy](SECURITY.md)
|
|
403
|
+
|
|
404
|
+
Repository setup, testing, architecture, contribution, and release procedures
|
|
405
|
+
belong in the developer and process documents rather than this user guide.
|
|
727
406
|
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
Report vulnerabilities privately according to [SECURITY.md](SECURITY.md).
|
|
731
|
-
perttool is released under the [MIT License](LICENSE). See
|
|
732
|
-
[CHANGELOG.md](CHANGELOG.md) for release changes and known limitations.
|
|
733
|
-
The current repository source identifies `0.10.5` and retains Grammar 8,
|
|
734
|
-
CLI Contract 9, 56 commands, and 23 root schemas. It makes the Issue #23
|
|
735
|
-
`replan_and_reseal` recovery executable for newly added unsealed tasks while
|
|
736
|
-
preserving atomic initial enablement. Version `0.10.4` remains the exact
|
|
737
|
-
rollback pin.
|
|
738
|
-
Migration guidance is in
|
|
739
|
-
[`0.9.4-to-0.10.0-migration.md`](docs/process/0.9.4-to-0.10.0-migration.md).
|
|
407
|
+
perttool is released under the [MIT License](LICENSE).
|