utterplan 0.1.1__tar.gz → 0.1.2__tar.gz

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 (173) hide show
  1. {utterplan-0.1.1 → utterplan-0.1.2}/.github/workflows/tests.yml +3 -0
  2. utterplan-0.1.2/.ledger/releaseledger/data/ledgers/main/events/events.jsonl +20 -0
  3. {utterplan-0.1.1 → utterplan-0.1.2}/.ledger/releaseledger/data/ledgers/main/releases/0.1.0/release.md +3 -3
  4. utterplan-0.1.2/.ledger/releaseledger/data/ledgers/main/releases/0.1.1/entries/entry-0001.md +24 -0
  5. utterplan-0.1.2/.ledger/releaseledger/data/ledgers/main/releases/0.1.1/release.md +27 -0
  6. utterplan-0.1.2/.ledger/releaseledger/data/ledgers/main/releases/0.1.2/audit/commit-audit.yaml +164 -0
  7. utterplan-0.1.2/.ledger/releaseledger/data/ledgers/main/releases/0.1.2/entries/entry-0001.md +32 -0
  8. utterplan-0.1.2/.ledger/releaseledger/data/ledgers/main/releases/0.1.2/entries/entry-0002.md +33 -0
  9. utterplan-0.1.2/.ledger/releaseledger/data/ledgers/main/releases/0.1.2/entries/entry-0003.md +37 -0
  10. utterplan-0.1.2/.ledger/releaseledger/data/ledgers/main/releases/0.1.2/release.md +27 -0
  11. utterplan-0.1.2/.ledger/releaseledger/work/0.1.2/audit-decisions.yaml +52 -0
  12. utterplan-0.1.2/.ledger/releaseledger/work/0.1.2/audit.yaml +128 -0
  13. utterplan-0.1.2/.ledger/releaseledger/work/0.1.2/entries.yaml +56 -0
  14. utterplan-0.1.2/.ledger/releaseledger/work/0.1.2/evidence/2c64e29.patch +1740 -0
  15. utterplan-0.1.2/.ledger/releaseledger/work/0.1.2/evidence/4022753.patch +677 -0
  16. utterplan-0.1.2/.ledger/releaseledger/work/0.1.2/evidence/66a88b6.patch +2657 -0
  17. utterplan-0.1.2/.ledger/releaseledger/work/0.1.2/evidence/manifest.json +116 -0
  18. utterplan-0.1.2/.ledger/releaseledger/work/0.1.2/range.json +13 -0
  19. {utterplan-0.1.1 → utterplan-0.1.2}/AGENTS.md +5 -0
  20. {utterplan-0.1.1 → utterplan-0.1.2}/PKG-INFO +5 -1
  21. {utterplan-0.1.1 → utterplan-0.1.2}/README.md +4 -0
  22. {utterplan-0.1.1 → utterplan-0.1.2}/docs/architecture.md +25 -0
  23. {utterplan-0.1.1 → utterplan-0.1.2}/docs/changelog.md +22 -3
  24. {utterplan-0.1.1 → utterplan-0.1.2}/docs/cli.md +25 -0
  25. {utterplan-0.1.1 → utterplan-0.1.2}/docs/consumer-guide.md +16 -0
  26. {utterplan-0.1.1 → utterplan-0.1.2}/docs/debugging.md +3 -1
  27. {utterplan-0.1.1 → utterplan-0.1.2}/docs/format.md +15 -1
  28. {utterplan-0.1.1 → utterplan-0.1.2}/docs/phase-a-completion.md +1 -2
  29. utterplan-0.1.2/docs/pykokoro-reference.md +57 -0
  30. {utterplan-0.1.1 → utterplan-0.1.2}/docs/python-api.md +20 -0
  31. {utterplan-0.1.1 → utterplan-0.1.2}/pyproject.toml +1 -1
  32. utterplan-0.1.2/spec/schemas/v1.schema.json +278 -0
  33. {utterplan-0.1.1/utterplan → utterplan-0.1.2/spec}/utterplan.schema.json +20 -2
  34. utterplan-0.1.2/tests/migration/cases.py +58 -0
  35. utterplan-0.1.2/tests/migration/goldens/multilingual_preparation.json +29 -0
  36. utterplan-0.1.2/tests/migration/goldens/spokenform_numbers.json +6 -0
  37. utterplan-0.1.2/tests/migration/goldens/ssmd_break.json +47 -0
  38. utterplan-0.1.2/tests/migration/goldens/ssmd_language_detection.json +4 -0
  39. utterplan-0.1.2/tests/migration/goldens/ssmd_marker.json +15 -0
  40. utterplan-0.1.2/tests/migration/goldens/ssmd_pronunciation.json +35 -0
  41. utterplan-0.1.2/tests/migration/test_pykokoro_frontend_parity.py +110 -0
  42. utterplan-0.1.2/tests/reference/dump_pykokoro_frontend.py +266 -0
  43. utterplan-0.1.2/tests/reference/test_pykokoro_parity.py +232 -0
  44. utterplan-0.1.2/tests/schema_history/README.md +10 -0
  45. utterplan-0.1.2/tests/schema_history/v1/basic.json +128 -0
  46. utterplan-0.1.2/tests/schema_history/v1/directives.json +165 -0
  47. utterplan-0.1.2/tests/schema_history/v1/markers.json +201 -0
  48. utterplan-0.1.2/tests/schema_history/v1/multilingual.json +225 -0
  49. utterplan-0.1.2/tests/schema_history/v1/parenthetical.json +293 -0
  50. utterplan-0.1.2/tests/schema_history/v1/spokenform_offsets.json +218 -0
  51. utterplan-0.1.2/tests/schema_history/v1/ssmd_breaks.json +226 -0
  52. {utterplan-0.1.1 → utterplan-0.1.2}/tests/test_cli.py +88 -0
  53. {utterplan-0.1.1 → utterplan-0.1.2}/tests/test_consumer_contract.py +40 -0
  54. {utterplan-0.1.1 → utterplan-0.1.2}/tests/test_consumer_readiness.py +23 -0
  55. utterplan-0.1.2/tests/test_directives.py +97 -0
  56. utterplan-0.1.2/tests/test_explain.py +122 -0
  57. utterplan-0.1.2/tests/test_migration_framework.py +124 -0
  58. {utterplan-0.1.1 → utterplan-0.1.2}/tests/test_pauses.py +59 -0
  59. utterplan-0.1.2/tests/test_schema_history.py +39 -0
  60. utterplan-0.1.2/tests/test_schema_registry.py +38 -0
  61. {utterplan-0.1.1 → utterplan-0.1.2}/utterplan/__init__.py +19 -0
  62. {utterplan-0.1.1 → utterplan-0.1.2}/utterplan/_version.py +3 -3
  63. {utterplan-0.1.1 → utterplan-0.1.2}/utterplan/cli.py +90 -11
  64. {utterplan-0.1.1 → utterplan-0.1.2}/utterplan/directives.py +33 -20
  65. {utterplan-0.1.1 → utterplan-0.1.2}/utterplan/exceptions.py +17 -1
  66. utterplan-0.1.2/utterplan/explain.py +366 -0
  67. {utterplan-0.1.1 → utterplan-0.1.2}/utterplan/format.py +5 -5
  68. utterplan-0.1.2/utterplan/migration.py +232 -0
  69. utterplan-0.1.2/utterplan/migrations/__init__.py +5 -0
  70. utterplan-0.1.2/utterplan/migrations/registry.py +16 -0
  71. {utterplan-0.1.1 → utterplan-0.1.2}/utterplan/model.py +17 -6
  72. {utterplan-0.1.1 → utterplan-0.1.2}/utterplan/parsers.py +39 -2
  73. {utterplan-0.1.1 → utterplan-0.1.2}/utterplan/planner.py +62 -2
  74. utterplan-0.1.2/utterplan/schema_registry.py +28 -0
  75. utterplan-0.1.2/utterplan/schemas/v1.schema.json +278 -0
  76. utterplan-0.1.2/utterplan/stages/preparation/__init__.py +0 -0
  77. utterplan-0.1.2/utterplan/stages/segmentation/__init__.py +0 -0
  78. {utterplan-0.1.1/spec → utterplan-0.1.2/utterplan}/utterplan.schema.json +20 -2
  79. utterplan-0.1.2/utterplan/versioning.py +9 -0
  80. {utterplan-0.1.1 → utterplan-0.1.2}/utterplan.egg-info/PKG-INFO +5 -1
  81. {utterplan-0.1.1 → utterplan-0.1.2}/utterplan.egg-info/SOURCES.txt +45 -1
  82. {utterplan-0.1.1 → utterplan-0.1.2}/utterplan.egg-info/scm_file_list.json +46 -2
  83. utterplan-0.1.2/utterplan.egg-info/scm_version.json +8 -0
  84. utterplan-0.1.1/.ledger/releaseledger/data/ledgers/main/events/events.jsonl +0 -8
  85. utterplan-0.1.1/docs/pykokoro-reference.md +0 -54
  86. utterplan-0.1.1/repairledger.toml +0 -9
  87. utterplan-0.1.1/tests/reference/dump_pykokoro_frontend.py +0 -127
  88. utterplan-0.1.1/tests/reference/test_pykokoro_parity.py +0 -73
  89. utterplan-0.1.1/tests/test_directives.py +0 -26
  90. utterplan-0.1.1/utterplan.egg-info/scm_version.json +0 -8
  91. {utterplan-0.1.1 → utterplan-0.1.2}/.codecrate.toml +0 -0
  92. {utterplan-0.1.1 → utterplan-0.1.2}/.github/workflows/codecov.yml +0 -0
  93. {utterplan-0.1.1 → utterplan-0.1.2}/.github/workflows/pre-commit.yml +0 -0
  94. {utterplan-0.1.1 → utterplan-0.1.2}/.github/workflows/python-publish.yml +0 -0
  95. {utterplan-0.1.1 → utterplan-0.1.2}/.gitignore +0 -0
  96. {utterplan-0.1.1 → utterplan-0.1.2}/.ledger/ledger.toml +0 -0
  97. {utterplan-0.1.1 → utterplan-0.1.2}/.ledger/releaseledger/.ledger-project.toml +0 -0
  98. {utterplan-0.1.1 → utterplan-0.1.2}/.ledger/releaseledger/config.toml +0 -0
  99. {utterplan-0.1.1 → utterplan-0.1.2}/.ledger/releaseledger/data/.ledger-project.toml +0 -0
  100. {utterplan-0.1.1 → utterplan-0.1.2}/.ledger/releaseledger/data/ledgers/main/releases/0.1.0/entries/entry-0001.md +0 -0
  101. {utterplan-0.1.1 → utterplan-0.1.2}/.ledger/releaseledger/data/ledgers/main/releases/0.1.0/entries/entry-0002.md +0 -0
  102. {utterplan-0.1.1 → utterplan-0.1.2}/.ledger/releaseledger/data/ledgers/main/releases/0.1.0/entries/entry-0003.md +0 -0
  103. {utterplan-0.1.1 → utterplan-0.1.2}/.ledger/releaseledger/data/ledgers/main/releases/0.1.0/entries/entry-0004.md +0 -0
  104. /utterplan-0.1.1/tests/__init__.py → /utterplan-0.1.2/.ledger/releaseledger/write.lock +0 -0
  105. {utterplan-0.1.1 → utterplan-0.1.2}/.ledger/taskledger/.ledger-project.toml +0 -0
  106. {utterplan-0.1.1 → utterplan-0.1.2}/.ledger/taskledger/config.toml +0 -0
  107. {utterplan-0.1.1 → utterplan-0.1.2}/.pre-commit-config.yaml +0 -0
  108. {utterplan-0.1.1 → utterplan-0.1.2}/LICENSE +0 -0
  109. {utterplan-0.1.1 → utterplan-0.1.2}/NOTICE +0 -0
  110. {utterplan-0.1.1 → utterplan-0.1.2}/docs/Makefile +0 -0
  111. {utterplan-0.1.1 → utterplan-0.1.2}/docs/conf.py +0 -0
  112. {utterplan-0.1.1 → utterplan-0.1.2}/docs/coordinate-spaces.md +0 -0
  113. {utterplan-0.1.1 → utterplan-0.1.2}/docs/getting-started.md +0 -0
  114. {utterplan-0.1.1 → utterplan-0.1.2}/docs/index.md +0 -0
  115. {utterplan-0.1.1 → utterplan-0.1.2}/docs/make.bat +0 -0
  116. {utterplan-0.1.1 → utterplan-0.1.2}/docs/pykokoro-integration.md +0 -0
  117. {utterplan-0.1.1 → utterplan-0.1.2}/docs/requirements.txt +0 -0
  118. {utterplan-0.1.1 → utterplan-0.1.2}/examples/basic.py +0 -0
  119. {utterplan-0.1.1 → utterplan-0.1.2}/examples/compile_file.py +0 -0
  120. {utterplan-0.1.1 → utterplan-0.1.2}/examples/inspect_plan.py +0 -0
  121. {utterplan-0.1.1 → utterplan-0.1.2}/examples/multilingual.py +0 -0
  122. {utterplan-0.1.1 → utterplan-0.1.2}/examples/ssmd.py +0 -0
  123. {utterplan-0.1.1 → utterplan-0.1.2}/setup.cfg +0 -0
  124. {utterplan-0.1.1/tests/reference → utterplan-0.1.2/tests}/__init__.py +0 -0
  125. {utterplan-0.1.1 → utterplan-0.1.2}/tests/golden/basic_en.utterplan.json +0 -0
  126. {utterplan-0.1.1 → utterplan-0.1.2}/tests/golden/directives.utterplan.json +0 -0
  127. {utterplan-0.1.1 → utterplan-0.1.2}/tests/golden/markers.utterplan.json +0 -0
  128. {utterplan-0.1.1 → utterplan-0.1.2}/tests/golden/multilingual.utterplan.json +0 -0
  129. {utterplan-0.1.1 → utterplan-0.1.2}/tests/golden/parenthetical.utterplan.json +0 -0
  130. {utterplan-0.1.1 → utterplan-0.1.2}/tests/golden/spokenform_offsets.utterplan.json +0 -0
  131. {utterplan-0.1.1 → utterplan-0.1.2}/tests/golden/ssmd_breaks.utterplan.json +0 -0
  132. {utterplan-0.1.1/utterplan/stages → utterplan-0.1.2/tests/migration}/__init__.py +0 -0
  133. {utterplan-0.1.1/utterplan/stages/document → utterplan-0.1.2/tests/reference}/__init__.py +0 -0
  134. {utterplan-0.1.1 → utterplan-0.1.2}/tests/reference/cases.py +0 -0
  135. {utterplan-0.1.1 → utterplan-0.1.2}/tests/test_boundaries.py +0 -0
  136. {utterplan-0.1.1 → utterplan-0.1.2}/tests/test_coordinates.py +0 -0
  137. {utterplan-0.1.1 → utterplan-0.1.2}/tests/test_fake_renderer.py +0 -0
  138. {utterplan-0.1.1 → utterplan-0.1.2}/tests/test_format.py +0 -0
  139. {utterplan-0.1.1 → utterplan-0.1.2}/tests/test_golden.py +0 -0
  140. {utterplan-0.1.1 → utterplan-0.1.2}/tests/test_identity_units.py +0 -0
  141. {utterplan-0.1.1 → utterplan-0.1.2}/tests/test_import_boundaries.py +0 -0
  142. {utterplan-0.1.1 → utterplan-0.1.2}/tests/test_language.py +0 -0
  143. {utterplan-0.1.1 → utterplan-0.1.2}/tests/test_linguistics.py +0 -0
  144. {utterplan-0.1.1 → utterplan-0.1.2}/tests/test_planner.py +0 -0
  145. {utterplan-0.1.1 → utterplan-0.1.2}/tests/test_preparation.py +0 -0
  146. {utterplan-0.1.1 → utterplan-0.1.2}/tests/test_public_identity.py +0 -0
  147. {utterplan-0.1.1 → utterplan-0.1.2}/tests/test_schema_strict.py +0 -0
  148. {utterplan-0.1.1 → utterplan-0.1.2}/tests/test_version.py +0 -0
  149. {utterplan-0.1.1 → utterplan-0.1.2}/utterplan/__main__.py +0 -0
  150. {utterplan-0.1.1 → utterplan-0.1.2}/utterplan/config.py +0 -0
  151. {utterplan-0.1.1 → utterplan-0.1.2}/utterplan/diagnostics.py +0 -0
  152. {utterplan-0.1.1 → utterplan-0.1.2}/utterplan/hashing.py +0 -0
  153. {utterplan-0.1.1 → utterplan-0.1.2}/utterplan/language.py +0 -0
  154. {utterplan-0.1.1 → utterplan-0.1.2}/utterplan/linguistics.py +0 -0
  155. {utterplan-0.1.1 → utterplan-0.1.2}/utterplan/pauses.py +0 -0
  156. {utterplan-0.1.1 → utterplan-0.1.2}/utterplan/preparation.py +0 -0
  157. {utterplan-0.1.1 → utterplan-0.1.2}/utterplan/py.typed +0 -0
  158. {utterplan-0.1.1 → utterplan-0.1.2}/utterplan/serialization.py +0 -0
  159. {utterplan-0.1.1 → utterplan-0.1.2}/utterplan/spacy_models.py +0 -0
  160. {utterplan-0.1.1 → utterplan-0.1.2}/utterplan/spans.py +0 -0
  161. {utterplan-0.1.1/utterplan/stages/preparation → utterplan-0.1.2/utterplan/stages}/__init__.py +0 -0
  162. {utterplan-0.1.1/utterplan/stages/segmentation → utterplan-0.1.2/utterplan/stages/document}/__init__.py +0 -0
  163. {utterplan-0.1.1 → utterplan-0.1.2}/utterplan/stages/document/plain.py +0 -0
  164. {utterplan-0.1.1 → utterplan-0.1.2}/utterplan/stages/document/ssmd.py +0 -0
  165. {utterplan-0.1.1 → utterplan-0.1.2}/utterplan/stages/preparation/identity.py +0 -0
  166. {utterplan-0.1.1 → utterplan-0.1.2}/utterplan/stages/preparation/spokenform.py +0 -0
  167. {utterplan-0.1.1 → utterplan-0.1.2}/utterplan/stages/protocols.py +0 -0
  168. {utterplan-0.1.1 → utterplan-0.1.2}/utterplan/stages/segmentation/phrasplit.py +0 -0
  169. {utterplan-0.1.1 → utterplan-0.1.2}/utterplan/units.py +0 -0
  170. {utterplan-0.1.1 → utterplan-0.1.2}/utterplan.egg-info/dependency_links.txt +0 -0
  171. {utterplan-0.1.1 → utterplan-0.1.2}/utterplan.egg-info/entry_points.txt +0 -0
  172. {utterplan-0.1.1 → utterplan-0.1.2}/utterplan.egg-info/requires.txt +0 -0
  173. {utterplan-0.1.1 → utterplan-0.1.2}/utterplan.egg-info/top_level.txt +0 -0
@@ -76,6 +76,7 @@ jobs:
76
76
  names = set(ZipFile(wheel).namelist())
77
77
  assert "utterplan/py.typed" in names
78
78
  assert "utterplan/utterplan.schema.json" in names
79
+ assert "utterplan/schemas/v1.schema.json" in names
79
80
  PY
80
81
  - name: Install wheel in clean environment
81
82
  run: |
@@ -90,5 +91,7 @@ jobs:
90
91
  "$RUNNER_TEMP/utterplan-wheel-venv/bin/utterplan" compile \
91
92
  "Doctor Smith bought 5 kg." --lang en-us --json > "$RUNNER_TEMP/utterplan.json"
92
93
  "$RUNNER_TEMP/utterplan-wheel-venv/bin/utterplan" validate "$RUNNER_TEMP/utterplan.json"
94
+ "$RUNNER_TEMP/utterplan-wheel-venv/bin/utterplan" migrate \
95
+ "$GITHUB_WORKSPACE/tests/schema_history/v1/basic.json" --check
93
96
  "$RUNNER_TEMP/utterplan-wheel-venv/bin/utterplan" inspect \
94
97
  "$RUNNER_TEMP/utterplan.json" --segment 0
@@ -0,0 +1,20 @@
1
+ {"data":{"status":"planned"},"event":"release.created","event_id":"event-0001","record_revisions":{"release:0.1.0":1},"release_version":"0.1.0","schema_version":2}
2
+ {"data":{"kind":"added","status":"accepted"},"entry_id":"entry-0001","event":"entry.added","event_id":"event-0002","record_revisions":{"entry:0.1.0/entry-0001":1,"release:0.1.0":2},"release_version":"0.1.0","schema_version":2}
3
+ {"data":{"kind":"changed","status":"accepted"},"entry_id":"entry-0002","event":"entry.added","event_id":"event-0003","record_revisions":{"entry:0.1.0/entry-0002":1,"release:0.1.0":3},"release_version":"0.1.0","schema_version":2}
4
+ {"data":{"kind":"docs","status":"accepted"},"entry_id":"entry-0003","event":"entry.added","event_id":"event-0004","record_revisions":{"entry:0.1.0/entry-0003":1,"release:0.1.0":4},"release_version":"0.1.0","schema_version":2}
5
+ {"data":{"kind":"quality","status":"accepted"},"entry_id":"entry-0004","event":"entry.added","event_id":"event-0005","record_revisions":{"entry:0.1.0/entry-0004":1,"release:0.1.0":5},"release_version":"0.1.0","schema_version":2}
6
+ {"data":{"fields":["note","title"]},"event":"release.updated","event_id":"event-0006","record_revisions":{"release:0.1.0":6},"release_version":"0.1.0","schema_version":2}
7
+ {"data":{"added_source_refs":[],"fields":["paths"],"reason":"Update release paths after package rename.","removed_source_refs":[],"source_refs_mode":"unchanged"},"entry_id":"entry-0001","event":"entry.updated","event_id":"event-0007","record_revisions":{"entry:0.1.0/entry-0001":2},"release_version":"0.1.0","schema_version":2}
8
+ {"data":{"added_source_refs":[],"fields":["paths"],"reason":"Update release paths after package rename.","removed_source_refs":[],"source_refs_mode":"unchanged"},"entry_id":"entry-0002","event":"entry.updated","event_id":"event-0008","record_revisions":{"entry:0.1.0/entry-0002":2},"release_version":"0.1.0","schema_version":2}
9
+ {"data":{"status":"planned"},"event":"release.created","event_id":"event-0009","record_revisions":{"release:0.1.2":1},"release_version":"0.1.2","schema_version":2}
10
+ {"data":{"fields":["git_base_ref","git_base_sha","git_commit_count","git_head_ref","git_head_sha","git_range"]},"event":"release.updated","event_id":"event-0010","record_revisions":{"release:0.1.2":2},"release_version":"0.1.2","schema_version":2}
11
+ {"data":{"row_count":3},"event":"audit.created","event_id":"event-0011","record_revisions":{"commit_audit_sheet":1},"release_version":"0.1.2","schema_version":2}
12
+ {"data":{"updated_rows":3},"event":"audit.updated","event_id":"event-0012","record_revisions":{"commit_audit_sheet":2},"release_version":"0.1.2","schema_version":2}
13
+ {"data":{"entry_ids":["entry-0001","entry-0002","entry-0003"],"synced_audit_rows":3},"event":"entry.batch_added","event_id":"event-0013","record_revisions":{"commit_audit_sheet":3,"entry:0.1.2/entry-0001":1,"entry:0.1.2/entry-0002":1,"entry:0.1.2/entry-0003":1,"release:0.1.2":3},"release_version":"0.1.2","schema_version":2}
14
+ {"data":{"status":"released"},"event":"release.created","event_id":"event-0014","record_revisions":{"release:0.1.1":1},"release_version":"0.1.1","schema_version":2}
15
+ {"data":{"fields":["git_base_ref","git_base_sha","git_commit_count","git_head_ref","git_head_sha","git_range"]},"event":"release.updated","event_id":"event-0015","record_revisions":{"release:0.1.1":2},"release_version":"0.1.1","schema_version":2}
16
+ {"data":{"changed_releases":["0.1.1","0.1.0","0.1.2"]},"event":"release.chain_repaired","event_id":"event-0016","record_revisions":{"release:0.1.0":7,"release:0.1.1":3,"release:0.1.2":4},"schema_version":2}
17
+ {"data":{"released_at":"2026-09-16"},"event":"release.finalized","event_id":"event-0017","record_revisions":{"release:0.1.0":8},"release_version":"0.1.0","schema_version":2}
18
+ {"data":{"changed_releases":["0.1.0","0.1.1","0.1.2"]},"event":"release.chain_repaired","event_id":"event-0018","record_revisions":{"release:0.1.0":9,"release:0.1.1":4,"release:0.1.2":5},"schema_version":2}
19
+ {"data":{"kind":"changed","status":"accepted"},"entry_id":"entry-0001","event":"entry.added","event_id":"event-0019","record_revisions":{"entry:0.1.1/entry-0001":1,"release:0.1.1":5},"release_version":"0.1.1","schema_version":2}
20
+ {"data":{"fields":["git_base_ref","git_base_sha","git_commit_count","git_range"]},"event":"release.updated","event_id":"event-0020","record_revisions":{"release:0.1.1":6},"release_version":"0.1.1","schema_version":2}
@@ -3,12 +3,12 @@ schema_version: 2
3
3
  object_type: release
4
4
  versioning:
5
5
  schema_version: 1
6
- revision: 6
6
+ revision: 9
7
7
  version: 0.1.0
8
- status: planned
8
+ status: released
9
9
  history_state: curated
10
10
  title: UtterPlan v0.1.0
11
- released_at: null
11
+ released_at: "2026-09-16"
12
12
  previous_version: null
13
13
  cancel_reason: null
14
14
  superseded_by: null
@@ -0,0 +1,24 @@
1
+ ---
2
+ schema_version: 2
3
+ object_type: release_entry
4
+ versioning:
5
+ schema_version: 1
6
+ revision: 1
7
+ entry_id: entry-0001
8
+ release_version: 0.1.1
9
+ kind: changed
10
+ summary: Renamed package from wandler to utterplan
11
+ status: accepted
12
+ audience: null
13
+ scopes: []
14
+ source_refs:
15
+ - git:a56a3513d403d3d3e0eddccc10990f32d1a1b367
16
+ paths: []
17
+ issues: []
18
+ prs: []
19
+ sources: []
20
+ contributors: []
21
+ breaking: false
22
+ internal: false
23
+ order: 1
24
+ ---
@@ -0,0 +1,27 @@
1
+ ---
2
+ schema_version: 2
3
+ object_type: release
4
+ versioning:
5
+ schema_version: 1
6
+ revision: 6
7
+ version: 0.1.1
8
+ status: released
9
+ history_state: discovered
10
+ title: null
11
+ released_at: "2026-09-16"
12
+ previous_version: 0.1.0
13
+ cancel_reason: null
14
+ superseded_by: null
15
+ changelog_file: null
16
+ boundary_ref: null
17
+ source_refs: []
18
+ source_count: null
19
+ entry_count: 1
20
+ artifact_count: 0
21
+ git_base_ref: v0.1.0
22
+ git_base_sha: cb464479461d1b8206b14fd1abf2ca3606706d45
23
+ git_head_ref: v0.1.1
24
+ git_head_sha: a56a3513d403d3d3e0eddccc10990f32d1a1b367
25
+ git_range: cb464479461d1b8206b14fd1abf2ca3606706d45..a56a3513d403d3d3e0eddccc10990f32d1a1b367
26
+ git_commit_count: 1
27
+ ---
@@ -0,0 +1,164 @@
1
+ schema_version: 1
2
+ object_type: commit_audit_sheet
3
+ versioning:
4
+ schema_version: 1
5
+ revision: 3
6
+ release_version: 0.1.2
7
+ git_base_ref: v0.1.1
8
+ git_base_sha: a56a3513d403d3d3e0eddccc10990f32d1a1b367
9
+ git_head_ref: HEAD
10
+ git_head_sha: 66a88b6a7fbe4cf9e0247cfd81675050f5934fea
11
+ git_range: a56a3513d403d3d3e0eddccc10990f32d1a1b367..66a88b6a7fbe4cf9e0247cfd81675050f5934fea
12
+ commit_count: 3
13
+ rows:
14
+ - sha: 402275374979b9372c1491072c4e29b642da523f
15
+ source_ref: git:402275374979b9372c1491072c4e29b642da523f
16
+ short_sha: "4022753"
17
+ changed_paths:
18
+ - README.md
19
+ - docs/cli.md
20
+ - docs/debugging.md
21
+ - repairledger.toml
22
+ - tests/test_cli.py
23
+ - tests/test_explain.py
24
+ - utterplan/cli.py
25
+ - utterplan/explain.py
26
+ stats:
27
+ files_changed: 8
28
+ insertions: 560
29
+ deletions: 10
30
+ inspected: true
31
+ inspected_paths:
32
+ - README.md
33
+ - docs/cli.md
34
+ - docs/debugging.md
35
+ - tests/test_cli.py
36
+ - tests/test_explain.py
37
+ - utterplan/cli.py
38
+ - utterplan/explain.py
39
+ observed_behavior:
40
+ Added explain CLI command that renders compiled plans as human-readable
41
+ speech narratives with optional detail mode
42
+ public_impact: public
43
+ decision: accepted
44
+ stale: false
45
+ evidence_subject: "feat: explain command added"
46
+ target_entry_key: entry-0001
47
+ target_entry_id: entry-0001
48
+ notes: ""
49
+ - sha: 2c64e291f0e568310afb7ca5e770ef2b691d9452
50
+ source_ref: git:2c64e291f0e568310afb7ca5e770ef2b691d9452
51
+ short_sha: 2c64e29
52
+ changed_paths:
53
+ - docs/cli.md
54
+ - docs/consumer-guide.md
55
+ - docs/phase-a-completion.md
56
+ - docs/pykokoro-reference.md
57
+ - spec/utterplan.schema.json
58
+ - tests/migration/__init__.py
59
+ - tests/migration/cases.py
60
+ - tests/migration/goldens/multilingual_preparation.json
61
+ - tests/migration/goldens/spokenform_numbers.json
62
+ - tests/migration/goldens/ssmd_break.json
63
+ - tests/migration/goldens/ssmd_language_detection.json
64
+ - tests/migration/goldens/ssmd_marker.json
65
+ - tests/migration/goldens/ssmd_pronunciation.json
66
+ - tests/migration/test_pykokoro_frontend_parity.py
67
+ - tests/reference/dump_pykokoro_frontend.py
68
+ - tests/reference/test_pykokoro_parity.py
69
+ - tests/test_consumer_contract.py
70
+ - tests/test_consumer_readiness.py
71
+ - tests/test_directives.py
72
+ - tests/test_explain.py
73
+ - tests/test_pauses.py
74
+ - utterplan/cli.py
75
+ - utterplan/directives.py
76
+ - utterplan/explain.py
77
+ - utterplan/model.py
78
+ - utterplan/parsers.py
79
+ - utterplan/planner.py
80
+ - utterplan/utterplan.schema.json
81
+ stats:
82
+ files_changed: 28
83
+ insertions: 1119
84
+ deletions: 153
85
+ inspected: true
86
+ inspected_paths:
87
+ - docs/consumer-guide.md
88
+ - docs/phase-a-completion.md
89
+ - docs/pykokoro-reference.md
90
+ - utterplan/directives.py
91
+ - utterplan/model.py
92
+ - utterplan/parsers.py
93
+ - utterplan/planner.py
94
+ observed_behavior:
95
+ Expanded consumer contract with stable renderer input view, improved
96
+ directive handling, pause policy, and PyKokoro migration parity
97
+ public_impact: public
98
+ decision: accepted
99
+ stale: false
100
+ evidence_subject: "feat: prepare for use in pykokoro"
101
+ target_entry_key: entry-0002
102
+ target_entry_id: entry-0002
103
+ notes: ""
104
+ - sha: 66a88b6a7fbe4cf9e0247cfd81675050f5934fea
105
+ source_ref: git:66a88b6a7fbe4cf9e0247cfd81675050f5934fea
106
+ short_sha: 66a88b6
107
+ changed_paths:
108
+ - .github/workflows/tests.yml
109
+ - AGENTS.md
110
+ - README.md
111
+ - docs/architecture.md
112
+ - docs/cli.md
113
+ - docs/format.md
114
+ - docs/python-api.md
115
+ - pyproject.toml
116
+ - spec/schemas/v1.schema.json
117
+ - spec/utterplan.schema.json
118
+ - tests/schema_history/README.md
119
+ - tests/schema_history/v1/basic.json
120
+ - tests/schema_history/v1/directives.json
121
+ - tests/schema_history/v1/markers.json
122
+ - tests/schema_history/v1/multilingual.json
123
+ - tests/schema_history/v1/parenthetical.json
124
+ - tests/schema_history/v1/spokenform_offsets.json
125
+ - tests/schema_history/v1/ssmd_breaks.json
126
+ - tests/test_cli.py
127
+ - tests/test_migration_framework.py
128
+ - tests/test_schema_history.py
129
+ - tests/test_schema_registry.py
130
+ - utterplan/__init__.py
131
+ - utterplan/cli.py
132
+ - utterplan/exceptions.py
133
+ - utterplan/format.py
134
+ - utterplan/migration.py
135
+ - utterplan/migrations/__init__.py
136
+ - utterplan/migrations/registry.py
137
+ - utterplan/model.py
138
+ - utterplan/schema_registry.py
139
+ - utterplan/schemas/v1.schema.json
140
+ - utterplan/utterplan.schema.json
141
+ - utterplan/versioning.py
142
+ stats:
143
+ files_changed: 34
144
+ insertions: 2755
145
+ deletions: 28
146
+ inspected: true
147
+ inspected_paths:
148
+ - utterplan/migration.py
149
+ - utterplan/schema_registry.py
150
+ - utterplan/schemas/v1.schema.json
151
+ - tests/schema_history/
152
+ - tests/test_migration_framework.py
153
+ - tests/test_schema_history.py
154
+ - tests/test_schema_registry.py
155
+ observed_behavior:
156
+ Added schema versioning with frozen v1 schema, migration framework,
157
+ registry, and historical fixture coverage
158
+ public_impact: public
159
+ decision: accepted
160
+ stale: false
161
+ evidence_subject: "feat: versioning schema"
162
+ target_entry_key: entry-0003
163
+ target_entry_id: entry-0003
164
+ notes: ""
@@ -0,0 +1,32 @@
1
+ ---
2
+ schema_version: 2
3
+ object_type: release_entry
4
+ versioning:
5
+ schema_version: 1
6
+ revision: 1
7
+ entry_id: entry-0001
8
+ release_version: 0.1.2
9
+ kind: added
10
+ summary:
11
+ Added explain CLI command that renders compiled plans as human-readable speech
12
+ narratives
13
+ status: accepted
14
+ audience: null
15
+ scopes: []
16
+ source_refs:
17
+ - git:402275374979b9372c1491072c4e29b642da523f
18
+ paths:
19
+ - utterplan/explain.py
20
+ - utterplan/cli.py
21
+ - docs/cli.md
22
+ - docs/debugging.md
23
+ issues: []
24
+ prs: []
25
+ sources: []
26
+ contributors: []
27
+ breaking: false
28
+ internal: false
29
+ order: 1
30
+ ---
31
+
32
+ The explain command presents prepared wording, render units, languages, resolved pauses, directives, markers, and warnings. The --details flag adds IDs, offsets, provenance, hashes, and plan identity information.
@@ -0,0 +1,33 @@
1
+ ---
2
+ schema_version: 2
3
+ object_type: release_entry
4
+ versioning:
5
+ schema_version: 1
6
+ revision: 1
7
+ entry_id: entry-0002
8
+ release_version: 0.1.2
9
+ kind: changed
10
+ summary:
11
+ Improved consumer contract with stable renderer input view and directive
12
+ handling
13
+ status: accepted
14
+ audience: null
15
+ scopes: []
16
+ source_refs:
17
+ - git:2c64e291f0e568310afb7ca5e770ef2b691d9452
18
+ paths:
19
+ - utterplan/directives.py
20
+ - utterplan/model.py
21
+ - utterplan/parsers.py
22
+ - utterplan/planner.py
23
+ - docs/consumer-guide.md
24
+ issues: []
25
+ prs: []
26
+ sources: []
27
+ contributors: []
28
+ breaking: false
29
+ internal: false
30
+ order: 2
31
+ ---
32
+
33
+ Consumers may now rely on documented plan-level fields for renderer input. Directive handling was improved with better pause policy and PyKokoro migration parity. The consumer guide documents the immutability contract for completed plans.
@@ -0,0 +1,37 @@
1
+ ---
2
+ schema_version: 2
3
+ object_type: release_entry
4
+ versioning:
5
+ schema_version: 1
6
+ revision: 1
7
+ entry_id: entry-0003
8
+ release_version: 0.1.2
9
+ kind: added
10
+ summary: Added schema versioning with frozen v1 schema and migration framework
11
+ status: accepted
12
+ audience: null
13
+ scopes: []
14
+ source_refs:
15
+ - git:66a88b6a7fbe4cf9e0247cfd81675050f5934fea
16
+ paths:
17
+ - utterplan/migration.py
18
+ - utterplan/schema_registry.py
19
+ - utterplan/schemas/v1.schema.json
20
+ - tests/schema_history/v1/basic.json
21
+ - tests/schema_history/v1/directives.json
22
+ - tests/schema_history/v1/markers.json
23
+ - tests/schema_history/v1/multilingual.json
24
+ - tests/schema_history/v1/parenthetical.json
25
+ - tests/schema_history/v1/spokenform_offsets.json
26
+ - tests/schema_history/v1/ssmd_breaks.json
27
+ - tests/test_migration_framework.py
28
+ issues: []
29
+ prs: []
30
+ sources: []
31
+ contributors: []
32
+ breaking: false
33
+ internal: false
34
+ order: 3
35
+ ---
36
+
37
+ Schema v1 is frozen and packaged under a versioned schema-history path. UtterPlan can inspect and migrate supported historical plan JSON before constructing the current UtterancePlan. Migration is representation conversion, not replanning. The migrate command supports --check and refuses output overwrite unless --force is supplied.
@@ -0,0 +1,27 @@
1
+ ---
2
+ schema_version: 2
3
+ object_type: release
4
+ versioning:
5
+ schema_version: 1
6
+ revision: 5
7
+ version: 0.1.2
8
+ status: planned
9
+ history_state: curated
10
+ title: null
11
+ released_at: null
12
+ previous_version: 0.1.1
13
+ cancel_reason: null
14
+ superseded_by: null
15
+ changelog_file: null
16
+ boundary_ref: null
17
+ source_refs: []
18
+ source_count: null
19
+ entry_count: 3
20
+ artifact_count: 0
21
+ git_base_ref: v0.1.1
22
+ git_base_sha: a56a3513d403d3d3e0eddccc10990f32d1a1b367
23
+ git_head_ref: HEAD
24
+ git_head_sha: 66a88b6a7fbe4cf9e0247cfd81675050f5934fea
25
+ git_range: a56a3513d403d3d3e0eddccc10990f32d1a1b367..66a88b6a7fbe4cf9e0247cfd81675050f5934fea
26
+ git_commit_count: 3
27
+ ---
@@ -0,0 +1,52 @@
1
+ rows:
2
+ - sha: 402275374979b9372c1491072c4e29b642da523f
3
+ inspected: true
4
+ inspected_paths:
5
+ - README.md
6
+ - docs/cli.md
7
+ - docs/debugging.md
8
+ - tests/test_cli.py
9
+ - tests/test_explain.py
10
+ - utterplan/cli.py
11
+ - utterplan/explain.py
12
+ observed_behavior: Added explain CLI command that renders compiled plans as human-readable speech narratives with optional detail mode
13
+ public_impact: public
14
+ decision: accepted
15
+ target_entry_key: entry-0001
16
+ target_entry_id: null
17
+ notes: ""
18
+ stale: false
19
+ - sha: 2c64e291f0e568310afb7ca5e770ef2b691d9452
20
+ inspected: true
21
+ inspected_paths:
22
+ - docs/consumer-guide.md
23
+ - docs/phase-a-completion.md
24
+ - docs/pykokoro-reference.md
25
+ - utterplan/directives.py
26
+ - utterplan/model.py
27
+ - utterplan/parsers.py
28
+ - utterplan/planner.py
29
+ observed_behavior: Expanded consumer contract with stable renderer input view, improved directive handling, pause policy, and PyKokoro migration parity
30
+ public_impact: public
31
+ decision: accepted
32
+ target_entry_key: entry-0002
33
+ target_entry_id: null
34
+ notes: ""
35
+ stale: false
36
+ - sha: 66a88b6a7fbe4cf9e0247cfd81675050f5934fea
37
+ inspected: true
38
+ inspected_paths:
39
+ - utterplan/migration.py
40
+ - utterplan/schema_registry.py
41
+ - utterplan/schemas/v1.schema.json
42
+ - tests/schema_history/
43
+ - tests/test_migration_framework.py
44
+ - tests/test_schema_history.py
45
+ - tests/test_schema_registry.py
46
+ observed_behavior: Added schema versioning with frozen v1 schema, migration framework, registry, and historical fixture coverage
47
+ public_impact: public
48
+ decision: accepted
49
+ target_entry_key: entry-0003
50
+ target_entry_id: null
51
+ notes: ""
52
+ stale: false
@@ -0,0 +1,128 @@
1
+ schema_version: 1
2
+ object_type: commit_audit_sheet
3
+ versioning:
4
+ schema_version: 1
5
+ revision: 1
6
+ release_version: 0.1.2
7
+ git_base_ref: v0.1.1
8
+ git_base_sha: a56a3513d403d3d3e0eddccc10990f32d1a1b367
9
+ git_head_ref: HEAD
10
+ git_head_sha: 66a88b6a7fbe4cf9e0247cfd81675050f5934fea
11
+ git_range: a56a3513d403d3d3e0eddccc10990f32d1a1b367..66a88b6a7fbe4cf9e0247cfd81675050f5934fea
12
+ commit_count: 3
13
+ rows:
14
+ - sha: 402275374979b9372c1491072c4e29b642da523f
15
+ source_ref: git:402275374979b9372c1491072c4e29b642da523f
16
+ short_sha: "4022753"
17
+ changed_paths:
18
+ - README.md
19
+ - docs/cli.md
20
+ - docs/debugging.md
21
+ - repairledger.toml
22
+ - tests/test_cli.py
23
+ - tests/test_explain.py
24
+ - utterplan/cli.py
25
+ - utterplan/explain.py
26
+ stats:
27
+ files_changed: 8
28
+ insertions: 560
29
+ deletions: 10
30
+ inspected: false
31
+ inspected_paths: []
32
+ observed_behavior: ""
33
+ public_impact: unknown
34
+ decision: needs_review
35
+ stale: false
36
+ evidence_subject: "feat: explain command added"
37
+ - sha: 2c64e291f0e568310afb7ca5e770ef2b691d9452
38
+ source_ref: git:2c64e291f0e568310afb7ca5e770ef2b691d9452
39
+ short_sha: 2c64e29
40
+ changed_paths:
41
+ - docs/cli.md
42
+ - docs/consumer-guide.md
43
+ - docs/phase-a-completion.md
44
+ - docs/pykokoro-reference.md
45
+ - spec/utterplan.schema.json
46
+ - tests/migration/__init__.py
47
+ - tests/migration/cases.py
48
+ - tests/migration/goldens/multilingual_preparation.json
49
+ - tests/migration/goldens/spokenform_numbers.json
50
+ - tests/migration/goldens/ssmd_break.json
51
+ - tests/migration/goldens/ssmd_language_detection.json
52
+ - tests/migration/goldens/ssmd_marker.json
53
+ - tests/migration/goldens/ssmd_pronunciation.json
54
+ - tests/migration/test_pykokoro_frontend_parity.py
55
+ - tests/reference/dump_pykokoro_frontend.py
56
+ - tests/reference/test_pykokoro_parity.py
57
+ - tests/test_consumer_contract.py
58
+ - tests/test_consumer_readiness.py
59
+ - tests/test_directives.py
60
+ - tests/test_explain.py
61
+ - tests/test_pauses.py
62
+ - utterplan/cli.py
63
+ - utterplan/directives.py
64
+ - utterplan/explain.py
65
+ - utterplan/model.py
66
+ - utterplan/parsers.py
67
+ - utterplan/planner.py
68
+ - utterplan/utterplan.schema.json
69
+ stats:
70
+ files_changed: 28
71
+ insertions: 1119
72
+ deletions: 153
73
+ inspected: false
74
+ inspected_paths: []
75
+ observed_behavior: ""
76
+ public_impact: unknown
77
+ decision: needs_review
78
+ stale: false
79
+ evidence_subject: "feat: prepare for use in pykokoro"
80
+ - sha: 66a88b6a7fbe4cf9e0247cfd81675050f5934fea
81
+ source_ref: git:66a88b6a7fbe4cf9e0247cfd81675050f5934fea
82
+ short_sha: 66a88b6
83
+ changed_paths:
84
+ - .github/workflows/tests.yml
85
+ - AGENTS.md
86
+ - README.md
87
+ - docs/architecture.md
88
+ - docs/cli.md
89
+ - docs/format.md
90
+ - docs/python-api.md
91
+ - pyproject.toml
92
+ - spec/schemas/v1.schema.json
93
+ - spec/utterplan.schema.json
94
+ - tests/schema_history/README.md
95
+ - tests/schema_history/v1/basic.json
96
+ - tests/schema_history/v1/directives.json
97
+ - tests/schema_history/v1/markers.json
98
+ - tests/schema_history/v1/multilingual.json
99
+ - tests/schema_history/v1/parenthetical.json
100
+ - tests/schema_history/v1/spokenform_offsets.json
101
+ - tests/schema_history/v1/ssmd_breaks.json
102
+ - tests/test_cli.py
103
+ - tests/test_migration_framework.py
104
+ - tests/test_schema_history.py
105
+ - tests/test_schema_registry.py
106
+ - utterplan/__init__.py
107
+ - utterplan/cli.py
108
+ - utterplan/exceptions.py
109
+ - utterplan/format.py
110
+ - utterplan/migration.py
111
+ - utterplan/migrations/__init__.py
112
+ - utterplan/migrations/registry.py
113
+ - utterplan/model.py
114
+ - utterplan/schema_registry.py
115
+ - utterplan/schemas/v1.schema.json
116
+ - utterplan/utterplan.schema.json
117
+ - utterplan/versioning.py
118
+ stats:
119
+ files_changed: 34
120
+ insertions: 2755
121
+ deletions: 28
122
+ inspected: false
123
+ inspected_paths: []
124
+ observed_behavior: ""
125
+ public_impact: unknown
126
+ decision: needs_review
127
+ stale: false
128
+ evidence_subject: "feat: versioning schema"
@@ -0,0 +1,56 @@
1
+ entries:
2
+ - kind: added
3
+ summary: Added explain CLI command that renders compiled plans as human-readable speech narratives
4
+ body: >
5
+ The explain command presents prepared wording, render units, languages,
6
+ resolved pauses, directives, markers, and warnings. The --details flag
7
+ adds IDs, offsets, provenance, hashes, and plan identity information.
8
+ status: accepted
9
+ source_refs:
10
+ - git:402275374979b9372c1491072c4e29b642da523f
11
+ paths:
12
+ - utterplan/explain.py
13
+ - utterplan/cli.py
14
+ - docs/cli.md
15
+ - docs/debugging.md
16
+
17
+ - kind: changed
18
+ summary: Improved consumer contract with stable renderer input view and directive handling
19
+ body: >
20
+ Consumers may now rely on documented plan-level fields for renderer input.
21
+ Directive handling was improved with better pause policy and PyKokoro
22
+ migration parity. The consumer guide documents the immutability contract
23
+ for completed plans.
24
+ status: accepted
25
+ source_refs:
26
+ - git:2c64e291f0e568310afb7ca5e770ef2b691d9452
27
+ paths:
28
+ - utterplan/directives.py
29
+ - utterplan/model.py
30
+ - utterplan/parsers.py
31
+ - utterplan/planner.py
32
+ - docs/consumer-guide.md
33
+
34
+ - kind: added
35
+ summary: Added schema versioning with frozen v1 schema and migration framework
36
+ body: >
37
+ Schema v1 is frozen and packaged under a versioned schema-history path.
38
+ UtterPlan can inspect and migrate supported historical plan JSON before
39
+ constructing the current UtterancePlan. Migration is representation
40
+ conversion, not replanning. The migrate command supports --check and
41
+ refuses output overwrite unless --force is supplied.
42
+ status: accepted
43
+ source_refs:
44
+ - git:66a88b6a7fbe4cf9e0247cfd81675050f5934fea
45
+ paths:
46
+ - utterplan/migration.py
47
+ - utterplan/schema_registry.py
48
+ - utterplan/schemas/v1.schema.json
49
+ - tests/schema_history/v1/basic.json
50
+ - tests/schema_history/v1/directives.json
51
+ - tests/schema_history/v1/markers.json
52
+ - tests/schema_history/v1/multilingual.json
53
+ - tests/schema_history/v1/parenthetical.json
54
+ - tests/schema_history/v1/spokenform_offsets.json
55
+ - tests/schema_history/v1/ssmd_breaks.json
56
+ - tests/test_migration_framework.py