perttool 0.5.5 → 0.7.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.
Files changed (265) hide show
  1. package/CHANGELOG.md +71 -1
  2. package/README.md +128 -30
  3. package/dist/application/advance-history.d.ts +48 -0
  4. package/dist/application/advance-history.d.ts.map +1 -0
  5. package/dist/application/advance-history.js +263 -0
  6. package/dist/application/advance-history.js.map +1 -0
  7. package/dist/application/contract6-mutation.d.ts +3 -2
  8. package/dist/application/contract6-mutation.d.ts.map +1 -1
  9. package/dist/application/contract6-mutation.js +2 -1
  10. package/dist/application/contract6-mutation.js.map +1 -1
  11. package/dist/application/contract6-projection.d.ts +2 -1
  12. package/dist/application/contract6-projection.d.ts.map +1 -1
  13. package/dist/application/contract6-projection.js +31 -1
  14. package/dist/application/contract6-projection.js.map +1 -1
  15. package/dist/application/contract7-assurance.d.ts +57 -0
  16. package/dist/application/contract7-assurance.d.ts.map +1 -0
  17. package/dist/application/contract7-assurance.js +248 -0
  18. package/dist/application/contract7-assurance.js.map +1 -0
  19. package/dist/application/contract7-mermaid.d.ts +9 -0
  20. package/dist/application/contract7-mermaid.d.ts.map +1 -0
  21. package/dist/application/contract7-mermaid.js +73 -0
  22. package/dist/application/contract7-mermaid.js.map +1 -0
  23. package/dist/application/contract7-mutation.d.ts +21 -0
  24. package/dist/application/contract7-mutation.d.ts.map +1 -0
  25. package/dist/application/contract7-mutation.js +181 -0
  26. package/dist/application/contract7-mutation.js.map +1 -0
  27. package/dist/application/contract7-project.d.ts +10 -0
  28. package/dist/application/contract7-project.d.ts.map +1 -0
  29. package/dist/application/contract7-project.js +29 -0
  30. package/dist/application/contract7-project.js.map +1 -0
  31. package/dist/application/contract7-projection.d.ts +9 -0
  32. package/dist/application/contract7-projection.d.ts.map +1 -0
  33. package/dist/application/contract7-projection.js +100 -0
  34. package/dist/application/contract7-projection.js.map +1 -0
  35. package/dist/application/contract7-source.d.ts +24 -0
  36. package/dist/application/contract7-source.d.ts.map +1 -0
  37. package/dist/application/contract7-source.js +54 -0
  38. package/dist/application/contract7-source.js.map +1 -0
  39. package/dist/application/contract7-unit-migration.d.ts +13 -0
  40. package/dist/application/contract7-unit-migration.d.ts.map +1 -0
  41. package/dist/application/contract7-unit-migration.js +13 -0
  42. package/dist/application/contract7-unit-migration.js.map +1 -0
  43. package/dist/application/init.d.ts +1 -1
  44. package/dist/application/init.js +3 -3
  45. package/dist/application/mutate.d.ts +5 -1
  46. package/dist/application/mutate.d.ts.map +1 -1
  47. package/dist/application/mutate.js +2 -2
  48. package/dist/application/mutate.js.map +1 -1
  49. package/dist/application/target-actuals-analysis.d.ts +5 -4
  50. package/dist/application/target-actuals-analysis.d.ts.map +1 -1
  51. package/dist/application/target-actuals-analysis.js +18 -11
  52. package/dist/application/target-actuals-analysis.js.map +1 -1
  53. package/dist/application/target-actuals-mutation.d.ts +5 -3
  54. package/dist/application/target-actuals-mutation.d.ts.map +1 -1
  55. package/dist/application/target-actuals-mutation.js +16 -8
  56. package/dist/application/target-actuals-mutation.js.map +1 -1
  57. package/dist/application/target-actuals-write.d.ts +2 -1
  58. package/dist/application/target-actuals-write.d.ts.map +1 -1
  59. package/dist/application/target-actuals-write.js.map +1 -1
  60. package/dist/application/target-assurance-advance-history.d.ts +19 -0
  61. package/dist/application/target-assurance-advance-history.d.ts.map +1 -0
  62. package/dist/application/target-assurance-advance-history.js +61 -0
  63. package/dist/application/target-assurance-advance-history.js.map +1 -0
  64. package/dist/application/target-assurance-analysis.d.ts +34 -0
  65. package/dist/application/target-assurance-analysis.d.ts.map +1 -0
  66. package/dist/application/target-assurance-analysis.js +103 -0
  67. package/dist/application/target-assurance-analysis.js.map +1 -0
  68. package/dist/application/target-assurance-inspection.d.ts +38 -0
  69. package/dist/application/target-assurance-inspection.d.ts.map +1 -0
  70. package/dist/application/target-assurance-inspection.js +356 -0
  71. package/dist/application/target-assurance-inspection.js.map +1 -0
  72. package/dist/application/target-assurance-write.d.ts +22 -0
  73. package/dist/application/target-assurance-write.d.ts.map +1 -0
  74. package/dist/application/target-assurance-write.js +73 -0
  75. package/dist/application/target-assurance-write.js.map +1 -0
  76. package/dist/application/target-governance-init.d.ts +3 -3
  77. package/dist/application/target-governance-init.d.ts.map +1 -1
  78. package/dist/application/target-governance-init.js +14 -10
  79. package/dist/application/target-governance-init.js.map +1 -1
  80. package/dist/application/target-governance-project.d.ts +6 -4
  81. package/dist/application/target-governance-project.d.ts.map +1 -1
  82. package/dist/application/target-governance-project.js +18 -4
  83. package/dist/application/target-governance-project.js.map +1 -1
  84. package/dist/application/target-mutate.d.ts +7 -1
  85. package/dist/application/target-mutate.d.ts.map +1 -1
  86. package/dist/application/target-mutate.js +50 -3
  87. package/dist/application/target-mutate.js.map +1 -1
  88. package/dist/application/target-project-history.d.ts +4 -4
  89. package/dist/application/target-project-history.d.ts.map +1 -1
  90. package/dist/application/target-project-history.js +1 -1
  91. package/dist/application/target-project-history.js.map +1 -1
  92. package/dist/application/target-unit-migration-candidate.d.ts +29 -6
  93. package/dist/application/target-unit-migration-candidate.d.ts.map +1 -1
  94. package/dist/application/target-unit-migration-candidate.js +204 -3
  95. package/dist/application/target-unit-migration-candidate.js.map +1 -1
  96. package/dist/application/target-unit-migration-result.d.ts +2 -2
  97. package/dist/application/target-unit-migration-result.d.ts.map +1 -1
  98. package/dist/application/target-unit-migration-result.js +4 -2
  99. package/dist/application/target-unit-migration-result.js.map +1 -1
  100. package/dist/application/target-velocity-observation.d.ts +1 -1
  101. package/dist/application/target-velocity-observation.js +1 -1
  102. package/dist/assurance/advance.d.ts +45 -0
  103. package/dist/assurance/advance.d.ts.map +1 -0
  104. package/dist/assurance/advance.js +507 -0
  105. package/dist/assurance/advance.js.map +1 -0
  106. package/dist/assurance/authority.d.ts +86 -0
  107. package/dist/assurance/authority.d.ts.map +1 -0
  108. package/dist/assurance/authority.js +269 -0
  109. package/dist/assurance/authority.js.map +1 -0
  110. package/dist/assurance/canonical.d.ts +13 -0
  111. package/dist/assurance/canonical.d.ts.map +1 -0
  112. package/dist/assurance/canonical.js +320 -0
  113. package/dist/assurance/canonical.js.map +1 -0
  114. package/dist/assurance/compatibility.d.ts +62 -0
  115. package/dist/assurance/compatibility.d.ts.map +1 -0
  116. package/dist/assurance/compatibility.js +163 -0
  117. package/dist/assurance/compatibility.js.map +1 -0
  118. package/dist/assurance/evaluate.d.ts +4 -0
  119. package/dist/assurance/evaluate.d.ts.map +1 -0
  120. package/dist/assurance/evaluate.js +631 -0
  121. package/dist/assurance/evaluate.js.map +1 -0
  122. package/dist/assurance/governance.d.ts +42 -0
  123. package/dist/assurance/governance.d.ts.map +1 -0
  124. package/dist/assurance/governance.js +95 -0
  125. package/dist/assurance/governance.js.map +1 -0
  126. package/dist/assurance/mermaid.d.ts +40 -0
  127. package/dist/assurance/mermaid.d.ts.map +1 -0
  128. package/dist/assurance/mermaid.js +401 -0
  129. package/dist/assurance/mermaid.js.map +1 -0
  130. package/dist/assurance/mutation.d.ts +96 -0
  131. package/dist/assurance/mutation.d.ts.map +1 -0
  132. package/dist/assurance/mutation.js +757 -0
  133. package/dist/assurance/mutation.js.map +1 -0
  134. package/dist/assurance/source.d.ts +20 -0
  135. package/dist/assurance/source.d.ts.map +1 -0
  136. package/dist/assurance/source.js +313 -0
  137. package/dist/assurance/source.js.map +1 -0
  138. package/dist/assurance/types.d.ts +166 -0
  139. package/dist/assurance/types.d.ts.map +1 -0
  140. package/dist/assurance/types.js +3 -0
  141. package/dist/assurance/types.js.map +1 -0
  142. package/dist/cli.js +431 -72
  143. package/dist/cli.js.map +1 -1
  144. package/dist/command/actuals-discovery.d.ts.map +1 -1
  145. package/dist/command/actuals-discovery.js +50 -4
  146. package/dist/command/actuals-discovery.js.map +1 -1
  147. package/dist/command/assurance-discovery.d.ts +17 -0
  148. package/dist/command/assurance-discovery.d.ts.map +1 -0
  149. package/dist/command/assurance-discovery.js +287 -0
  150. package/dist/command/assurance-discovery.js.map +1 -0
  151. package/dist/command/assurance-usage.d.ts +20 -0
  152. package/dist/command/assurance-usage.d.ts.map +1 -0
  153. package/dist/command/assurance-usage.js +66 -0
  154. package/dist/command/assurance-usage.js.map +1 -0
  155. package/dist/conversion/mermaid.d.ts +2 -1
  156. package/dist/conversion/mermaid.d.ts.map +1 -1
  157. package/dist/conversion/mermaid.js +2 -2
  158. package/dist/conversion/mermaid.js.map +1 -1
  159. package/dist/formatter/source-formatter.d.ts +1 -1
  160. package/dist/formatter/source-formatter.d.ts.map +1 -1
  161. package/dist/formatter/source-formatter.js +56 -4
  162. package/dist/formatter/source-formatter.js.map +1 -1
  163. package/dist/formatter/target-source-formatter.d.ts +2 -1
  164. package/dist/formatter/target-source-formatter.d.ts.map +1 -1
  165. package/dist/formatter/target-source-formatter.js +18 -2
  166. package/dist/formatter/target-source-formatter.js.map +1 -1
  167. package/dist/help/assurance-guide.d.ts +10 -0
  168. package/dist/help/assurance-guide.d.ts.map +1 -0
  169. package/dist/help/assurance-guide.js +115 -0
  170. package/dist/help/assurance-guide.js.map +1 -0
  171. package/dist/help/guide.d.ts +1 -1
  172. package/dist/help/guide.d.ts.map +1 -1
  173. package/dist/help/registry.d.ts.map +1 -1
  174. package/dist/help/registry.js +11 -1
  175. package/dist/help/registry.js.map +1 -1
  176. package/dist/history/advance-history.d.ts +46 -0
  177. package/dist/history/advance-history.d.ts.map +1 -0
  178. package/dist/history/advance-history.js +425 -0
  179. package/dist/history/advance-history.js.map +1 -0
  180. package/dist/history/git-probe.d.ts +40 -0
  181. package/dist/history/git-probe.d.ts.map +1 -1
  182. package/dist/history/git-probe.js +330 -0
  183. package/dist/history/git-probe.js.map +1 -1
  184. package/dist/history/project-history.d.ts +14 -5
  185. package/dist/history/project-history.d.ts.map +1 -1
  186. package/dist/history/project-history.js +25 -18
  187. package/dist/history/project-history.js.map +1 -1
  188. package/dist/index.d.ts +31 -25
  189. package/dist/index.d.ts.map +1 -1
  190. package/dist/index.js +12 -14
  191. package/dist/index.js.map +1 -1
  192. package/dist/io/target-safe-write.d.ts +4 -1
  193. package/dist/io/target-safe-write.d.ts.map +1 -1
  194. package/dist/io/target-safe-write.js +19 -1
  195. package/dist/io/target-safe-write.js.map +1 -1
  196. package/dist/migration/grammar-boundary.d.ts +1 -1
  197. package/dist/migration/grammar-boundary.d.ts.map +1 -1
  198. package/dist/migration/grammar-boundary.js +7 -3
  199. package/dist/migration/grammar-boundary.js.map +1 -1
  200. package/dist/model/declaration-fields.d.ts +12 -0
  201. package/dist/model/declaration-fields.d.ts.map +1 -1
  202. package/dist/model/declaration-fields.js +45 -0
  203. package/dist/model/declaration-fields.js.map +1 -1
  204. package/dist/model/syntax.d.ts +17 -1
  205. package/dist/model/syntax.d.ts.map +1 -1
  206. package/dist/model/syntax.js.map +1 -1
  207. package/dist/mutation/actuals.js +1 -1
  208. package/dist/mutation/actuals.js.map +1 -1
  209. package/dist/mutation/advance-deletion.d.ts +14 -0
  210. package/dist/mutation/advance-deletion.d.ts.map +1 -0
  211. package/dist/mutation/advance-deletion.js +53 -0
  212. package/dist/mutation/advance-deletion.js.map +1 -0
  213. package/dist/mutation/advance.d.ts +18 -1
  214. package/dist/mutation/advance.d.ts.map +1 -1
  215. package/dist/mutation/advance.js +28 -25
  216. package/dist/mutation/advance.js.map +1 -1
  217. package/dist/mutation/project.d.ts +2 -1
  218. package/dist/mutation/project.d.ts.map +1 -1
  219. package/dist/mutation/project.js +21 -0
  220. package/dist/mutation/project.js.map +1 -1
  221. package/dist/parser/document-parser.d.ts +7 -0
  222. package/dist/parser/document-parser.d.ts.map +1 -1
  223. package/dist/parser/document-parser.js +227 -12
  224. package/dist/parser/document-parser.js.map +1 -1
  225. package/dist/recommendation/override-types.d.ts +2 -2
  226. package/dist/recommendation/override.d.ts +2 -2
  227. package/dist/recommendation/override.d.ts.map +1 -1
  228. package/dist/recommendation/override.js +13 -5
  229. package/dist/recommendation/override.js.map +1 -1
  230. package/dist/schema/registry.d.ts +1 -1
  231. package/dist/schema/registry.d.ts.map +1 -1
  232. package/dist/schema/registry.js +8 -6
  233. package/dist/schema/registry.js.map +1 -1
  234. package/dist/semantic/target-validator.d.ts +12 -1
  235. package/dist/semantic/target-validator.d.ts.map +1 -1
  236. package/dist/semantic/target-validator.js +47 -2
  237. package/dist/semantic/target-validator.js.map +1 -1
  238. package/dist/semantic/validator.d.ts +1 -0
  239. package/dist/semantic/validator.d.ts.map +1 -1
  240. package/dist/semantic/validator.js +304 -0
  241. package/dist/semantic/validator.js.map +1 -1
  242. package/dist/version.d.ts +1 -1
  243. package/dist/version.js +1 -1
  244. package/package.json +1 -1
  245. package/schemas/Perttool.AdvanceResult.v2.schema.json +334 -0
  246. package/schemas/Perttool.AgentGuidanceResult.v1.schema.json +1 -1
  247. package/schemas/{Perttool.AnalysisResult.v4.schema.json → Perttool.AnalysisResult.v5.schema.json} +10 -6
  248. package/schemas/{Perttool.CheckResult.v3.schema.json → Perttool.CheckResult.v4.schema.json} +14 -6
  249. package/schemas/Perttool.CliError.v1.schema.json +1 -1
  250. package/schemas/Perttool.CommandHelpResult.v1.schema.json +2 -2
  251. package/schemas/Perttool.Common.v1.schema.json +300 -4
  252. package/schemas/Perttool.ExportResult.v1.schema.json +1 -1
  253. package/schemas/Perttool.FormatResult.v1.schema.json +1 -1
  254. package/schemas/Perttool.GuideResult.v1.schema.json +1 -1
  255. package/schemas/Perttool.ImportResult.v1.schema.json +1 -1
  256. package/schemas/Perttool.InitResult.v1.schema.json +1 -1
  257. package/schemas/{Perttool.MutationResult.v3.schema.json → Perttool.MutationResult.v4.schema.json} +16 -5
  258. package/schemas/{Perttool.NextResult.v5.schema.json → Perttool.NextResult.v6.schema.json} +53 -8
  259. package/schemas/Perttool.OverrideDecision.v1.schema.json +1 -1
  260. package/schemas/Perttool.PlanAssuranceResult.v1.schema.json +77 -0
  261. package/schemas/Perttool.ProjectHistoryResult.v1.schema.json +1 -1
  262. package/schemas/{Perttool.ProjectResult.v3.schema.json → Perttool.ProjectResult.v4.schema.json} +15 -7
  263. package/schemas/Perttool.SchemaResult.v1.schema.json +1 -1
  264. package/schemas/Perttool.UnitMigrationResult.v3.schema.json +5 -3
  265. package/schemas/Perttool.VelocityObservationResult.v1.schema.json +1 -1
package/CHANGELOG.md CHANGED
@@ -4,6 +4,74 @@ This project records its notable changes here. The format is based on [Keep a Ch
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.7.0] - 2026-08-04
8
+
9
+ Grammar 6 and CLI Contract 7 beta minor. This version adds conditional plan
10
+ assurance as a semantic SHA-256 commitment chain while preserving Grammar 1
11
+ through 5 compatibility.
12
+
13
+ ### Added
14
+
15
+ - Added Grammar 6 plan-assurance declarations, default `both`, explicit
16
+ `planning_only` and `execution_only` relations, component seals, outcome
17
+ commitments, frontier receipts, complete cause paths, and fixed semantic
18
+ hash vectors that exclude lifecycle status and non-semantic trivia.
19
+ - Added ten preview-first assurance commands for inspection, scalar hash
20
+ lookup, sealing, selected resealing, planning-dependency maintenance, and
21
+ task-outcome maintenance.
22
+ - Added `Perttool.PlanAssuranceResult.v1`, complete Draft 2020-12 schemas for
23
+ all 20 result roots, package-root assurance APIs, Contract 7 help and Guide
24
+ projections, and Mermaid semantic profile 2 round trips.
25
+
26
+ ### Changed
27
+
28
+ - Changed the public boundary atomically to CLI Contract 7 and the
29
+ assurance-aware `Perttool.CheckResult.v4`, `Perttool.ProjectResult.v4`,
30
+ `Perttool.AnalysisResult.v5`, `Perttool.NextResult.v6`,
31
+ `Perttool.MutationResult.v4`, `Perttool.AdvanceResult.v2`, and nested
32
+ `Perttool.GovernanceDecision.v2` identities.
33
+ - Changed normal new-task authority to fail closed when an enabled assurance
34
+ chain is unknown, unsealed, or mismatched. Raw recommendation ranking remains
35
+ available separately from the authoritative startable set.
36
+ - Changed `dag advance` to compose history-loss protection independently with
37
+ assurance validation, contraction, and exact frontier-receipt rebuilding.
38
+
39
+ ## [0.6.0] - 2026-07-31
40
+
41
+ Grammar 5 and CLI Contract 6 beta minor. This version protects destructive
42
+ in-place `dag advance` writes with exact read-only Git evidence and publishes a
43
+ separate closed advance-result identity.
44
+
45
+ ### Added
46
+
47
+ - Added history-safety model 1 for changed destructive in-place advance
48
+ writes, including exact current-to-`HEAD` and stage-0 proof, retained-dirty
49
+ handling, source/repository race rejection, human-readable modification
50
+ time, byte-size, diff, and entity context, and stable `PTADV-*` diagnostics.
51
+ - Added the exact write-only `--force-history-loss` recovery option. It
52
+ bypasses only an initial history assessment and does not bypass governance,
53
+ warning policy, expected digests, races, validation, or atomic replacement.
54
+ - Added the complete `Perttool.AdvanceResult.v1` Draft 2020-12 artifact,
55
+ command/schema discovery, package APIs, and installed-package validation.
56
+
57
+ ### Changed
58
+
59
+ - Changed only `dag advance` from the closed published
60
+ `Perttool.MutationResult.v3` identity to `Perttool.AdvanceResult.v1`,
61
+ preserving every prior field and adding required nullable `history_guard`.
62
+ Direct, lifecycle, and batch mutations remain MutationResult v3; Grammar 5
63
+ and CLI Contract 6 remain active.
64
+ - Changed the package-root `AdvanceResult` alias to `AdvanceResultV1` and kept
65
+ `AdvanceResultV3` as a deprecated source-compatibility alias.
66
+
67
+ ### Fixed
68
+
69
+ - Made one eventful `dag advance` candidate own only the newly orphaned blank
70
+ separator prefixes in its terminal removed-declaration suffix. Preview,
71
+ separate output, and in-place write now produce the same repository-clean
72
+ bytes without a formatter or manual cleanup, while the history guard proves
73
+ the same expanded destructive ranges.
74
+
7
75
  ## [0.5.5] - 2026-07-30
8
76
 
9
77
  Compatible CLI Contract 6 and Grammar 5 beta patch. This version makes the
@@ -299,7 +367,9 @@ First public development preview. Intended to evaluate the DSL and CLI, read-onl
299
367
  - Not published to the npm registry; use the GitHub Release asset
300
368
  - Requires Node.js 24 or later
301
369
 
302
- [Unreleased]: https://github.com/mako10k/perttool/compare/v0.5.5...HEAD
370
+ [Unreleased]: https://github.com/mako10k/perttool/compare/v0.7.0...HEAD
371
+ [0.7.0]: https://github.com/mako10k/perttool/compare/v0.6.0...v0.7.0
372
+ [0.6.0]: https://github.com/mako10k/perttool/compare/v0.5.5...v0.6.0
303
373
  [0.5.5]: https://github.com/mako10k/perttool/compare/v0.5.4...v0.5.5
304
374
  [0.5.4]: https://github.com/mako10k/perttool/compare/v0.5.3...v0.5.4
305
375
  [0.5.3]: https://github.com/mako10k/perttool/compare/v0.5.2...v0.5.3
package/README.md CHANGED
@@ -5,7 +5,7 @@ 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.5` beta implements Grammar 5 and CLI Contract 6,
8
+ Version `0.6.0` 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
11
  complete Draft 2020-12 artifacts for every active Contract 6 result and the
@@ -13,9 +13,21 @@ public OverrideDecision result, selectable full and outline schema views,
13
13
  Git 2.54 UTC compatibility, and scope-bound human-readable confirmation
14
14
  guidance. It warns when an owner-confirmation assertion is supplied for a
15
15
  governance-not-applicable candidate and when a governed preview already
16
- carries one. npm `beta` resolves to `0.5.5`; `latest` remains on the
17
- separately accepted `0.5.1`. Beta releases may contain breaking CLI or schema
18
- changes. Version `0.5.5` requires Node.js 22 or later.
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 the npm `latest` compatibility line for this beta
20
+ release.
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`, and `beta` is its
28
+ publication channel. This release does not move npm `latest` from Contract 6
29
+ `0.6.0`; channel promotion remains a separate decision. Both versions require
30
+ Node.js 22 or later.
19
31
  The complete-schema Contract 6 artifact remains available by pinning `0.5.2`,
20
32
  and the first machine-schema Contract 6 artifact remains available by pinning
21
33
  `0.5.1`; Contract 5, Contract 4, and Contract 3 remain available by pinning
@@ -24,40 +36,41 @@ dist-tag; historical `0.1.0-alpha.2` remains available by exact pin.
24
36
 
25
37
  ## Run without installing
26
38
 
27
- Use `npx` for an occasional invocation and select Contract 6 explicitly:
39
+ After beta publication, use `npx` for an occasional Contract 7 invocation and
40
+ select the version explicitly:
28
41
 
29
42
  ```sh
30
- npx --yes --package=perttool@0.5.5 -- perttool --version
31
- npx --yes --package=perttool@0.5.5 -- perttool document check PLAN.pert
32
- npx --yes --package=perttool@0.5.5 -- perttool dag next PLAN.pert --format json
33
- npx --yes --package=perttool@0.5.5 -- perttool project history PLAN.pert --format json
43
+ npx --yes --package=perttool@0.7.0 -- perttool --version
44
+ npx --yes --package=perttool@0.7.0 -- perttool document check PLAN.pert
45
+ npx --yes --package=perttool@0.7.0 -- perttool dag next PLAN.pert --format json
46
+ npx --yes --package=perttool@0.7.0 -- perttool plan-assurance show PLAN.pert --format json
34
47
  ```
35
48
 
36
49
  The equivalent explicit `npm exec` form is:
37
50
 
38
51
  ```sh
39
- npm exec --yes --package=perttool@0.5.5 -- perttool --version
40
- npm exec --yes --package=perttool@0.5.5 -- perttool document check PLAN.pert
41
- npm exec --yes --package=perttool@0.5.5 -- perttool dag analyze PLAN.pert
42
- npm exec --yes --package=perttool@0.5.5 -- perttool project history PLAN.pert --format json
52
+ npm exec --yes --package=perttool@0.7.0 -- perttool --version
53
+ npm exec --yes --package=perttool@0.7.0 -- perttool document check PLAN.pert
54
+ npm exec --yes --package=perttool@0.7.0 -- perttool dag analyze PLAN.pert
55
+ npm exec --yes --package=perttool@0.7.0 -- perttool plan-assurance hash PLAN.pert WORK --kind contract
43
56
  ```
44
57
 
45
58
  `npx` and `npm exec` may download the selected package version into the npm
46
- cache. Pinning `0.4.0` selects Contract 5 and therefore omits Grammar 5
47
- lifecycle and history; `0.3.0` selects Contract 4, and `0.2.0` selects
59
+ cache. Pinning `0.6.0` selects Contract 6 and omits Grammar 6 assurance;
60
+ `0.4.0` selects Contract 5, `0.3.0` selects Contract 4, and `0.2.0` selects
48
61
  Contract 3.
49
62
 
50
63
  ## Install
51
64
 
52
- Install the CLI globally when it is used regularly:
65
+ Install the Contract 7 CLI globally by exact version when it is used regularly:
53
66
 
54
67
  ```sh
55
- npm install --global perttool
68
+ npm install --global perttool@0.7.0
56
69
  perttool --version
57
70
  ```
58
71
 
59
- npm `beta` resolves to Contract 6 `0.5.5`; `latest` remains on accepted
60
- Contract 6 `0.5.1`. The pre-schema Contract 6 artifact remains available as
72
+ This beta release does not move npm `latest`; an unqualified install therefore
73
+ remains on Contract 6 `0.6.0`. The pre-schema Contract 6 artifact remains available as
61
74
  `perttool@0.5.0`; Contract 5,
62
75
  Contract 4, and Contract 3 remain available as exact pins
63
76
  `perttool@0.4.0`, `perttool@0.3.0`, and `perttool@0.2.0`. The retired alpha
@@ -107,6 +120,8 @@ the exact point result and reports the time conversion separately as a velocity
107
120
  forecast. Grammar version 3 also accepts an exact Fraction such as `1/3d`;
108
121
  versions 1 and 2 continue to accept Decimal duration tokens. Grammar version 5
109
122
  adds explicit task-owned work events and the `suspended` lifecycle state.
123
+ Grammar version 6 adds conditional plan assurance records and the separate
124
+ planning-dependency modes `both`, `execution_only`, and `planning_only`.
110
125
 
111
126
  ## Maintain a plan through the CLI
112
127
 
@@ -153,11 +168,32 @@ perttool task set PLAN.pert WORK \
153
168
  perttool task finish PLAN.pert WORK --diff
154
169
  perttool dag next PLAN.pert --format json
155
170
  perttool dag advance PLAN.pert --diff
171
+ perttool dag advance PLAN.pert \
172
+ --write \
173
+ --expect-digest 'sha256:...'
156
174
  ```
157
175
 
158
176
  All formatter and mutation commands preview by default. `--write` replaces the
159
177
  input through the safe-write path, while `--out` exclusively creates a new
160
- file. Gate maintenance uses the same controls:
178
+ file. A changed in-place `dag advance` additionally verifies removed or
179
+ replaced entity ranges against the target path in Git `HEAD` and the stage-0
180
+ index. Dirty ranges retained by the candidate are allowed; uncommitted
181
+ destructive overlap or unavailable proof returns `PTADV-101` without writing.
182
+ `Perttool.AdvanceResult.v2.history_guard` reports the status, modification
183
+ time, byte sizes, diff counts, and affected IDs before supplemental digests.
184
+ If the source, `HEAD`, or stage-0 index changes after assessment, `PTADV-102`
185
+ returns exit 5 without writing.
186
+ The exceptional `--force-history-loss` option bypasses only that initial
187
+ history block for the exact in-place request, emits `PTADV-103`, and does not
188
+ bypass governance, warnings-as-errors, expected digests, source/`HEAD`/index
189
+ rechecks, or atomic-write validation.
190
+ For a terminal sequence of removed tasks and task-owned work events, the same
191
+ candidate also removes only its newly orphaned blank separator prefixes. The
192
+ preview, separate output, and in-place write therefore remain byte-identical
193
+ and do not require a formatter or a second whitespace edit before
194
+ `git diff --check`.
195
+
196
+ Gate maintenance uses the same base controls:
161
197
 
162
198
  ```sh
163
199
  perttool gate add PLAN.pert APPROVAL NOW DONE \
@@ -302,6 +338,35 @@ See the [Contract 5-to-6 migration
302
338
  guide](docs/process/cli-contract-6-migration.md) for schema and compatibility
303
339
  details.
304
340
 
341
+ ### Conditional plan assurance
342
+
343
+ Assurance is opt-in. Initial sealing upgrades the candidate to Grammar 6 and
344
+ records reviewed task contracts and recursive planning bases:
345
+
346
+ ```sh
347
+ perttool plan-assurance seal PLAN.pert \
348
+ --reason "Initial reviewed planning baseline" --diff
349
+ perttool plan-assurance show PLAN.pert --format json
350
+ perttool plan-assurance hash PLAN.pert WORK --kind computed-basis
351
+ ```
352
+
353
+ The hash command writes exactly one `sha256:` digest plus LF on text success;
354
+ it does not edit or accept a seal. Use `plan-dependency` to qualify the default
355
+ execution-and-planning relation, or to add a planning-only relation:
356
+
357
+ ```sh
358
+ perttool plan-dependency set PLAN.pert REL_A_B \
359
+ --mode execution-only --reason "Execution order only" --diff
360
+ perttool plan-dependency add PLAN.pert REL_C_D C D \
361
+ --mode planning-only --reason "D consumes C planning output" --diff
362
+ ```
363
+
364
+ After reviewing a reported affected closure, use a separate governed
365
+ `plan-assurance reseal` candidate. Completed work needs an explicit
366
+ `task-outcome` record; completion status, Git history, and actual duration do
367
+ not imply outcome conformance. `dag next` preserves raw ranking and withholds
368
+ new-start authority from unsealed, review-required, or unavailable plans.
369
+
305
370
  ## Command map
306
371
 
307
372
  | Goal | Command |
@@ -320,6 +385,10 @@ details.
320
385
  | Analyze schedules | `perttool dag analyze <file>` |
321
386
  | Select next work | `perttool dag next <file>` |
322
387
  | Remove completed history | `perttool dag advance <file>` |
388
+ | Inspect plan assurance | `perttool plan-assurance show|hash <file> ...` |
389
+ | Seal or reseal reviewed plans | `perttool plan-assurance seal|reseal <file> ...` |
390
+ | Maintain planning dependencies | `perttool plan-dependency add|set|remove` |
391
+ | Maintain task outcomes | `perttool task-outcome add|set|remove` |
323
392
  | Export or import Mermaid | `perttool dag render`, `perttool dag import` |
324
393
  | Maintain tasks | `perttool task add|set|remove|start|suspend|resume|finish` |
325
394
  | Maintain gates | `perttool gate add|set|remove` |
@@ -336,8 +405,8 @@ domain concepts. Both run without a document:
336
405
  perttool task set --help
337
406
  perttool help dag next --format json
338
407
  perttool schema --format json
339
- perttool schema Perttool.NextResult.v5 --format json
340
- perttool schema Perttool.NextResult.v5 --view outline --format json
408
+ perttool schema Perttool.NextResult.v6 --format json
409
+ perttool schema Perttool.NextResult.v6 --view outline --format json
341
410
  perttool guide editing --level detail --format json
342
411
  ```
343
412
 
@@ -348,7 +417,7 @@ Supplying a schema identity returns its Draft 2020-12 artifact in the
348
417
  `schema` field of `Perttool.SchemaResult.v1`:
349
418
 
350
419
  ```sh
351
- perttool schema Perttool.CheckResult.v3 --format json
420
+ perttool schema Perttool.CheckResult.v4 --format json
352
421
  ```
353
422
 
354
423
  The default and `--view full` return the complete artifact. For a shorter
@@ -357,8 +426,8 @@ references to the complete bundled artifact. Pass one local, relative, or
357
426
  copied absolute reference back with `--ref` to display that internal layer:
358
427
 
359
428
  ```sh
360
- perttool schema Perttool.NextResult.v5 --view outline --format json
361
- perttool schema Perttool.NextResult.v5 --view outline \
429
+ perttool schema Perttool.NextResult.v6 --view outline --format json
430
+ perttool schema Perttool.NextResult.v6 --view outline \
362
431
  --ref '#/$defs/recommendation' --format json
363
432
  ```
364
433
 
@@ -369,12 +438,14 @@ identifier only: validation does not require network access. Consumers must
369
438
  select compatibility from each result's `schema_version`, not from
370
439
  `tool_version`. See the
371
440
  [JSON Schema Artifact Contract](docs/specs/json-schema.md) for the complete
372
- 18-result inventory and versioning rules.
441
+ 20-root inventory and versioning rules.
373
442
 
374
443
  ## LLM and automation use
375
444
 
376
- Use `--format json` for machine consumers. `0.5.5`, `0.5.4`, `0.5.3`, `0.5.2`,
377
- `0.5.1`, and `0.5.0` consumers must check `cli_contract_version == 6`;
445
+ Use `--format json` for machine consumers. Version `0.7.0` requires
446
+ `cli_contract_version == 7`. Published `0.6.0`, `0.5.5`, `0.5.4`, `0.5.3`,
447
+ `0.5.2`, `0.5.1`, and `0.5.0` consumers must check
448
+ `cli_contract_version == 6`;
378
449
  consumers pinned to `0.4.0`
379
450
  must continue to require Contract 5, and consumers pinned to `0.3.0` must
380
451
  require Contract 4. Bundled machine-readable result artifacts require
@@ -384,10 +455,17 @@ Scope-bound, human-readable loose owner-confirmation guidance requires
384
455
  Runtime `PTGOV-103` visibility for unused owner assertions requires `0.5.4`.
385
456
  Runtime `PTGOV-104` visibility for assertions on governed previews requires
386
457
  `0.5.5`.
458
+ `Perttool.AdvanceResult.v1`, history-safety model 1, and the
459
+ repository-clean advance candidate require `0.6.0`; see the
460
+ [`0.5.5` to `0.6.0` migration](docs/process/0.5.5-to-0.6.0-migration.md).
461
+ Version `0.7.0` changes to Grammar 6, CLI Contract 7, and
462
+ assurance-aware result identities; see the
463
+ [`0.6.0` to `0.7.0` migration](docs/process/0.6.0-to-0.7.0-migration.md).
387
464
  In every case, check the result-specific `schema_version` before reading the
388
465
  rest of a result.
389
- A complete, known, non-truncated `Perttool.NextResult.v5` with temporal policy
390
- `recommendation_v1_plus_release_gate` is required. Start only task IDs in
466
+ A complete, known, non-truncated `Perttool.NextResult.v6` with policy
467
+ `recommendation_v1_plus_release_gate_plus_plan_assurance_v1` is required for
468
+ the current source. Start only task IDs in
391
469
  `temporal.authority.startable_recommended_task_ids`; do not infer start
392
470
  authority from the raw recommended set, the text summary, or `ready` alone.
393
471
  Suspended tasks are reported separately and require an explicit `task resume`;
@@ -395,6 +473,9 @@ they are not new-start recommendations.
395
473
 
396
474
  Mutation JSON returns the candidate text, unified diff, UTF-16 text edits,
397
475
  source digest, updated digest, diagnostics, and write result in one envelope.
476
+ Direct, lifecycle, batch, and assurance mutations use
477
+ `Perttool.MutationResult.v4`; `dag advance` uses
478
+ `Perttool.AdvanceResult.v2`.
398
479
  Unknown schema versions, incomplete recommendation traces, `PTREC-*`
399
480
  diagnostics, and future or unavailable temporal eligibility must fail closed.
400
481
 
@@ -403,6 +484,23 @@ diagnostics, and future or unavailable temporal eligibility must fail closed.
403
484
  - [Temporal and Unit Interface Contract (CLI Contract 4)](docs/specs/temporal-unit-interface.md)
404
485
  - [Owner-Aware Governance Interface Contract (CLI Contract 5)](docs/specs/governance-interface.md)
405
486
  - [Project Actuals and Git History Contract (CLI Contract 6)](docs/specs/project-actuals.md)
487
+ - [Advance History Safety Contract (ADV-001 target)](docs/specs/advance-history-safety.md)
488
+ - [Advance History Safety source acceptance](docs/process/advance-history-acceptance.md)
489
+ - [Conditional Plan Assurance Contract (active Grammar 6 / CLI Contract 7 source)](docs/specs/plan-assurance.md)
490
+ - [Conditional Plan Assurance Interface Contract](docs/specs/plan-assurance-interface.md)
491
+ - [Conditional Plan Assurance public-contract acceptance](docs/process/plan-assurance-public-contract-acceptance.md)
492
+ - [`0.6.0` to `0.7.0` migration](docs/process/0.6.0-to-0.7.0-migration.md)
493
+ - [`v0.7.0` release procedure](docs/process/0.7.0-release.md)
494
+ - [Conditional Plan Assurance interface acceptance](docs/process/plan-assurance-interface-acceptance.md)
495
+ - [Conditional Plan Assurance internal hash Core acceptance](docs/process/plan-assurance-hash-core-acceptance.md)
496
+ - [Conditional Plan Assurance internal source Core acceptance](docs/process/plan-assurance-source-core-acceptance.md)
497
+ - [Conditional Plan Assurance internal mutation Core acceptance](docs/process/plan-assurance-mutation-core-acceptance.md)
498
+ - [Conditional Plan Assurance internal authority Core acceptance](docs/process/plan-assurance-authority-core-acceptance.md)
499
+ - [Conditional Plan Assurance internal advance contraction acceptance](docs/process/plan-assurance-advance-contraction-acceptance.md)
500
+ - [Conditional Plan Assurance internal compatibility acceptance](docs/process/plan-assurance-compatibility-acceptance.md)
501
+ - [Conditional Plan Assurance internal hash inspection acceptance](docs/process/plan-assurance-hash-inspection-acceptance.md)
502
+ - [Conditional Plan Assurance design review](docs/process/plan-assurance-design-review.md)
503
+ - [Conditional Plan Assurance implementation plan](plans/plan-assurance.pert)
406
504
  - [JSON Schema Artifact Contract](docs/specs/json-schema.md)
407
505
  - [JSON Schema source acceptance](docs/process/json-schema-acceptance.md)
408
506
  - [Contract 5-to-6 migration](docs/process/cli-contract-6-migration.md)
@@ -0,0 +1,48 @@
1
+ import { type AdvanceHistoryBaselineCapture, type AdvanceHistoryBaselineDependencies, type AdvanceHistoryBaselineRecheck } from "../history/git-probe.js";
2
+ import type { TargetActualsAdvanceResultV3 } from "./target-actuals-advance.js";
3
+ import type { AdvanceDocumentValidator } from "../mutation/advance.js";
4
+ export declare const ADVANCE_RESULT_SCHEMA_VERSION: "Perttool.AdvanceResult.v1";
5
+ export type AdvanceHistoryGuardStatus = "not_applicable" | "passed" | "blocked" | "forced";
6
+ export type AdvanceHistoryGuardCause = "preview" | "separate_output" | "no_change" | "no_destructive_records" | "authority_denied" | "warning_denied" | "baseline_matches" | "destructive_overlap" | "no_repository" | "no_head" | "untracked_target" | "ambiguous_path" | "unmerged_index" | "git_unavailable" | "baseline_read_failed" | "baseline_invalid" | "correspondence_missing" | "correspondence_ambiguous" | "forced_by_option";
7
+ export interface AdvanceHistoryGuardV1 {
8
+ readonly modelVersion: 1;
9
+ readonly status: AdvanceHistoryGuardStatus;
10
+ readonly cause: AdvanceHistoryGuardCause;
11
+ readonly repositorySnapshotId: string | null;
12
+ readonly repositoryRelativePath: string | null;
13
+ readonly headCommitId: string | null;
14
+ readonly sourceDigest: string;
15
+ readonly candidateDigest: string;
16
+ readonly sourceModifiedAt: string | null;
17
+ readonly sourceBytes: number;
18
+ readonly candidateBytes: number;
19
+ readonly diffAddedLines: number;
20
+ readonly diffRemovedLines: number;
21
+ readonly destructiveEntityIds: readonly string[];
22
+ readonly overlappingEntityIds: readonly string[];
23
+ readonly forceRequested: boolean;
24
+ }
25
+ export interface AdvanceResultV1 extends Omit<TargetActualsAdvanceResultV3, "schemaVersion"> {
26
+ readonly schemaVersion: typeof ADVANCE_RESULT_SCHEMA_VERSION;
27
+ readonly historyGuard: AdvanceHistoryGuardV1 | null;
28
+ }
29
+ export interface AdvanceHistoryPreparationOptions {
30
+ readonly mode: "preview" | "out" | "in_place";
31
+ readonly sourceBytes: Uint8Array;
32
+ readonly sourceModifiedAt: string | null;
33
+ readonly targetPath?: string;
34
+ readonly forceRequested?: boolean;
35
+ readonly warningDenied?: boolean;
36
+ readonly maxDiagnostics?: number;
37
+ readonly baselineDependencies?: AdvanceHistoryBaselineDependencies;
38
+ readonly documentValidator?: AdvanceDocumentValidator;
39
+ }
40
+ export interface PreparedAdvanceHistory {
41
+ readonly result: AdvanceResultV1;
42
+ readonly baseline: AdvanceHistoryBaselineCapture | null;
43
+ }
44
+ export declare function withPreviewAdvanceHistory(text: string, result: TargetActualsAdvanceResultV3): AdvanceResultV1;
45
+ export declare function prepareAdvanceHistory(text: string, result: TargetActualsAdvanceResultV3 | AdvanceResultV1, options: AdvanceHistoryPreparationOptions): Promise<PreparedAdvanceHistory>;
46
+ export declare function withAdvanceHistoryRace(result: AdvanceResultV1, recheck: AdvanceHistoryBaselineRecheck, maxDiagnostics?: number): AdvanceResultV1;
47
+ export declare function renderAdvanceHistoryGuard(value: AdvanceHistoryGuardV1): string;
48
+ //# sourceMappingURL=advance-history.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advance-history.d.ts","sourceRoot":"","sources":["../../src/application/advance-history.ts"],"names":[],"mappings":"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"}