utterplan 0.3.0__tar.gz → 0.3.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 (228) hide show
  1. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/data/ledgers/main/events/events.jsonl +13 -0
  2. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/data/ledgers/main/releases/0.3.0/release.md +4 -4
  3. utterplan-0.3.2/.ledger/releaseledger/data/ledgers/main/releases/0.3.1/audit/commit-audit.yaml +57 -0
  4. utterplan-0.3.2/.ledger/releaseledger/data/ledgers/main/releases/0.3.1/entries/entry-0001.md +42 -0
  5. utterplan-0.3.2/.ledger/releaseledger/data/ledgers/main/releases/0.3.1/release.md +27 -0
  6. utterplan-0.3.2/.ledger/releaseledger/data/ledgers/main/releases/0.3.2/audit/commit-audit.yaml +105 -0
  7. utterplan-0.3.2/.ledger/releaseledger/data/ledgers/main/releases/0.3.2/entries/entry-0001.md +32 -0
  8. utterplan-0.3.2/.ledger/releaseledger/data/ledgers/main/releases/0.3.2/entries/entry-0002.md +41 -0
  9. utterplan-0.3.2/.ledger/releaseledger/data/ledgers/main/releases/0.3.2/release.md +27 -0
  10. utterplan-0.3.2/.ledger/releaseledger/work/0.3.1/audit-decisions.yaml +23 -0
  11. utterplan-0.3.2/.ledger/releaseledger/work/0.3.1/audit.yaml +40 -0
  12. utterplan-0.3.2/.ledger/releaseledger/work/0.3.1/entries.yaml +37 -0
  13. utterplan-0.3.2/.ledger/releaseledger/work/0.3.1/evidence/70adac0.patch +916 -0
  14. utterplan-0.3.2/.ledger/releaseledger/work/0.3.1/evidence/manifest.json +36 -0
  15. utterplan-0.3.2/.ledger/releaseledger/work/0.3.1/range.json +13 -0
  16. utterplan-0.3.2/.ledger/releaseledger/work/0.3.2/audit-decisions.yaml +48 -0
  17. utterplan-0.3.2/.ledger/releaseledger/work/0.3.2/audit.yaml +75 -0
  18. utterplan-0.3.2/.ledger/releaseledger/work/0.3.2/entries.yaml +54 -0
  19. utterplan-0.3.2/.ledger/releaseledger/work/0.3.2/evidence/6c2a1ac.patch +64 -0
  20. utterplan-0.3.2/.ledger/releaseledger/work/0.3.2/evidence/a2bc20d.patch +1923 -0
  21. utterplan-0.3.2/.ledger/releaseledger/work/0.3.2/evidence/ba3b5af.patch +414 -0
  22. utterplan-0.3.2/.ledger/releaseledger/work/0.3.2/evidence/manifest.json +57 -0
  23. utterplan-0.3.2/.ledger/releaseledger/work/0.3.2/range.json +13 -0
  24. {utterplan-0.3.0/utterplan.egg-info → utterplan-0.3.2}/PKG-INFO +1 -1
  25. {utterplan-0.3.0 → utterplan-0.3.2}/docs/changelog.md +21 -1
  26. {utterplan-0.3.0 → utterplan-0.3.2}/docs/consumer-guide.md +19 -3
  27. {utterplan-0.3.0 → utterplan-0.3.2}/docs/python-api.md +19 -0
  28. {utterplan-0.3.0 → utterplan-0.3.2}/tests/golden/ssmd_09_comprehensive.utterplan.json +2 -1
  29. {utterplan-0.3.0 → utterplan-0.3.2}/tests/migration/goldens/multilingual_preparation.json +1 -0
  30. {utterplan-0.3.0 → utterplan-0.3.2}/tests/migration/goldens/spokenform_numbers.json +1 -0
  31. {utterplan-0.3.0 → utterplan-0.3.2}/tests/migration/goldens/ssmd_break.json +1 -0
  32. {utterplan-0.3.0 → utterplan-0.3.2}/tests/migration/goldens/ssmd_language_detection.json +1 -0
  33. {utterplan-0.3.0 → utterplan-0.3.2}/tests/migration/goldens/ssmd_marker.json +1 -0
  34. {utterplan-0.3.0 → utterplan-0.3.2}/tests/migration/goldens/ssmd_pronunciation.json +1 -0
  35. {utterplan-0.3.0 → utterplan-0.3.2}/tests/test_consumer_contract.py +20 -0
  36. {utterplan-0.3.0 → utterplan-0.3.2}/tests/test_consumer_readiness.py +31 -0
  37. {utterplan-0.3.0 → utterplan-0.3.2}/tests/test_directives.py +21 -0
  38. {utterplan-0.3.0 → utterplan-0.3.2}/tests/test_fake_renderer.py +21 -0
  39. {utterplan-0.3.0 → utterplan-0.3.2}/tests/test_format.py +18 -0
  40. utterplan-0.3.2/tests/test_identity_units.py +42 -0
  41. utterplan-0.3.2/tests/test_planner.py +268 -0
  42. utterplan-0.3.2/tests/test_preparation.py +179 -0
  43. {utterplan-0.3.0 → utterplan-0.3.2}/tests/test_ssmd_09_parser.py +58 -0
  44. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/_version.py +3 -3
  45. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/parsers.py +154 -5
  46. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/planner.py +305 -12
  47. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/preparation.py +9 -1
  48. {utterplan-0.3.0 → utterplan-0.3.2/utterplan.egg-info}/PKG-INFO +1 -1
  49. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan.egg-info/SOURCES.txt +21 -2
  50. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan.egg-info/scm_file_list.json +21 -2
  51. utterplan-0.3.2/utterplan.egg-info/scm_version.json +8 -0
  52. utterplan-0.3.0/01_todo.md +0 -1796
  53. utterplan-0.3.0/plan.md +0 -111
  54. utterplan-0.3.0/tests/test_identity_units.py +0 -21
  55. utterplan-0.3.0/tests/test_planner.py +0 -52
  56. utterplan-0.3.0/tests/test_preparation.py +0 -57
  57. utterplan-0.3.0/utterplan.egg-info/scm_version.json +0 -8
  58. {utterplan-0.3.0 → utterplan-0.3.2}/.codecrate.toml +0 -0
  59. {utterplan-0.3.0 → utterplan-0.3.2}/.github/workflows/codecov.yml +0 -0
  60. {utterplan-0.3.0 → utterplan-0.3.2}/.github/workflows/pre-commit.yml +0 -0
  61. {utterplan-0.3.0 → utterplan-0.3.2}/.github/workflows/python-publish.yml +0 -0
  62. {utterplan-0.3.0 → utterplan-0.3.2}/.github/workflows/tests.yml +0 -0
  63. {utterplan-0.3.0 → utterplan-0.3.2}/.gitignore +0 -0
  64. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/ledger.toml +0 -0
  65. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/.ledger-project.toml +0 -0
  66. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/config.toml +0 -0
  67. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/data/.ledger-project.toml +0 -0
  68. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/data/ledgers/main/releases/0.1.0/entries/entry-0001.md +0 -0
  69. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/data/ledgers/main/releases/0.1.0/entries/entry-0002.md +0 -0
  70. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/data/ledgers/main/releases/0.1.0/entries/entry-0003.md +0 -0
  71. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/data/ledgers/main/releases/0.1.0/entries/entry-0004.md +0 -0
  72. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/data/ledgers/main/releases/0.1.0/release.md +0 -0
  73. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/data/ledgers/main/releases/0.1.1/entries/entry-0001.md +0 -0
  74. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/data/ledgers/main/releases/0.1.1/release.md +0 -0
  75. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/data/ledgers/main/releases/0.1.3/audit/commit-audit.yaml +0 -0
  76. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/data/ledgers/main/releases/0.1.3/entries/entry-0001.md +0 -0
  77. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/data/ledgers/main/releases/0.1.3/entries/entry-0002.md +0 -0
  78. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/data/ledgers/main/releases/0.1.3/entries/entry-0003.md +0 -0
  79. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/data/ledgers/main/releases/0.1.3/entries/entry-0004.md +0 -0
  80. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/data/ledgers/main/releases/0.1.3/entries/entry-0005.md +0 -0
  81. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/data/ledgers/main/releases/0.1.3/entries/entry-0006.md +0 -0
  82. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/data/ledgers/main/releases/0.1.3/release.md +0 -0
  83. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/audit/commit-audit.yaml +0 -0
  84. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/entries/entry-0001.md +0 -0
  85. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/entries/entry-0002.md +0 -0
  86. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/entries/entry-0003.md +0 -0
  87. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/entries/entry-0004.md +0 -0
  88. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/data/ledgers/main/releases/0.2.0/release.md +0 -0
  89. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/data/ledgers/main/releases/0.3.0/audit/commit-audit.yaml +0 -0
  90. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/data/ledgers/main/releases/0.3.0/entries/entry-0001.md +0 -0
  91. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/data/ledgers/main/releases/0.3.0/entries/entry-0002.md +0 -0
  92. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/data/ledgers/main/releases/0.3.0/entries/entry-0003.md +0 -0
  93. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/data/ledgers/main/releases/0.3.0/entries/entry-0004.md +0 -0
  94. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/data/ledgers/main/releases/0.3.0/entries/entry-0005.md +0 -0
  95. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/data/ledgers/main/releases/0.3.0/entries/entry-0006.md +0 -0
  96. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/work/0.1.2/audit-decisions.yaml +0 -0
  97. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/work/0.1.2/audit.yaml +0 -0
  98. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/work/0.1.2/entries.yaml +0 -0
  99. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/work/0.1.2/evidence/2c64e29.patch +0 -0
  100. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/work/0.1.2/evidence/4022753.patch +0 -0
  101. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/work/0.1.2/evidence/66a88b6.patch +0 -0
  102. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/work/0.1.2/evidence/manifest.json +0 -0
  103. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/work/0.1.2/range.json +0 -0
  104. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/work/0.2.0/audit-decisions.yaml +0 -0
  105. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/work/0.2.0/audit.yaml +0 -0
  106. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/work/0.2.0/entries.yaml +0 -0
  107. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/work/0.2.0/evidence/9637182.patch +0 -0
  108. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/work/0.2.0/evidence/c52aa68.patch +0 -0
  109. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/work/0.2.0/evidence/e49a6dd.patch +0 -0
  110. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/work/0.2.0/evidence/manifest.json +0 -0
  111. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/work/0.2.0/range.json +0 -0
  112. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/work/0.3.0/audit-decisions.yaml +0 -0
  113. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/work/0.3.0/audit.yaml +0 -0
  114. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/work/0.3.0/entries.yaml +0 -0
  115. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/work/0.3.0/evidence/49023f0.patch +0 -0
  116. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/work/0.3.0/evidence/manifest.json +0 -0
  117. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/work/0.3.0/range.json +0 -0
  118. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/releaseledger/write.lock +0 -0
  119. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/taskledger/.ledger-project.toml +0 -0
  120. {utterplan-0.3.0 → utterplan-0.3.2}/.ledger/taskledger/config.toml +0 -0
  121. {utterplan-0.3.0 → utterplan-0.3.2}/.pre-commit-config.yaml +0 -0
  122. {utterplan-0.3.0 → utterplan-0.3.2}/AGENTS.md +0 -0
  123. {utterplan-0.3.0 → utterplan-0.3.2}/LICENSE +0 -0
  124. {utterplan-0.3.0 → utterplan-0.3.2}/NOTICE +0 -0
  125. {utterplan-0.3.0 → utterplan-0.3.2}/README.md +0 -0
  126. {utterplan-0.3.0 → utterplan-0.3.2}/docs/Makefile +0 -0
  127. {utterplan-0.3.0 → utterplan-0.3.2}/docs/architecture.md +0 -0
  128. {utterplan-0.3.0 → utterplan-0.3.2}/docs/cli.md +0 -0
  129. {utterplan-0.3.0 → utterplan-0.3.2}/docs/conf.py +0 -0
  130. {utterplan-0.3.0 → utterplan-0.3.2}/docs/coordinate-spaces.md +0 -0
  131. {utterplan-0.3.0 → utterplan-0.3.2}/docs/debugging.md +0 -0
  132. {utterplan-0.3.0 → utterplan-0.3.2}/docs/format.md +0 -0
  133. {utterplan-0.3.0 → utterplan-0.3.2}/docs/getting-started.md +0 -0
  134. {utterplan-0.3.0 → utterplan-0.3.2}/docs/index.md +0 -0
  135. {utterplan-0.3.0 → utterplan-0.3.2}/docs/make.bat +0 -0
  136. {utterplan-0.3.0 → utterplan-0.3.2}/docs/phase-a-completion.md +0 -0
  137. {utterplan-0.3.0 → utterplan-0.3.2}/docs/pykokoro-integration.md +0 -0
  138. {utterplan-0.3.0 → utterplan-0.3.2}/docs/requirements.txt +0 -0
  139. {utterplan-0.3.0 → utterplan-0.3.2}/examples/basic.py +0 -0
  140. {utterplan-0.3.0 → utterplan-0.3.2}/examples/chapter.ssmd +0 -0
  141. {utterplan-0.3.0 → utterplan-0.3.2}/examples/compile_file.py +0 -0
  142. {utterplan-0.3.0 → utterplan-0.3.2}/examples/inspect_plan.py +0 -0
  143. {utterplan-0.3.0 → utterplan-0.3.2}/examples/multilingual.py +0 -0
  144. {utterplan-0.3.0 → utterplan-0.3.2}/examples/ssmd_example.py +0 -0
  145. {utterplan-0.3.0 → utterplan-0.3.2}/pyproject.toml +0 -0
  146. {utterplan-0.3.0 → utterplan-0.3.2}/setup.cfg +0 -0
  147. {utterplan-0.3.0 → utterplan-0.3.2}/spec/schemas/v1.schema.json +0 -0
  148. {utterplan-0.3.0 → utterplan-0.3.2}/spec/schemas/v2.schema.json +0 -0
  149. {utterplan-0.3.0 → utterplan-0.3.2}/spec/schemas/v3.schema.json +0 -0
  150. {utterplan-0.3.0 → utterplan-0.3.2}/spec/utterplan.schema.json +0 -0
  151. {utterplan-0.3.0 → utterplan-0.3.2}/tests/__init__.py +0 -0
  152. {utterplan-0.3.0 → utterplan-0.3.2}/tests/fixtures/ssmd_09_comprehensive.ssmd +0 -0
  153. {utterplan-0.3.0 → utterplan-0.3.2}/tests/golden/basic_en.utterplan.json +0 -0
  154. {utterplan-0.3.0 → utterplan-0.3.2}/tests/golden/directives.utterplan.json +0 -0
  155. {utterplan-0.3.0 → utterplan-0.3.2}/tests/golden/markers.utterplan.json +0 -0
  156. {utterplan-0.3.0 → utterplan-0.3.2}/tests/golden/multilingual.utterplan.json +0 -0
  157. {utterplan-0.3.0 → utterplan-0.3.2}/tests/golden/parenthetical.utterplan.json +0 -0
  158. {utterplan-0.3.0 → utterplan-0.3.2}/tests/golden/spokenform_offsets.utterplan.json +0 -0
  159. {utterplan-0.3.0 → utterplan-0.3.2}/tests/golden/ssmd_breaks.utterplan.json +0 -0
  160. {utterplan-0.3.0 → utterplan-0.3.2}/tests/migration/__init__.py +0 -0
  161. {utterplan-0.3.0 → utterplan-0.3.2}/tests/migration/cases.py +0 -0
  162. {utterplan-0.3.0 → utterplan-0.3.2}/tests/migration/test_semantic_migration_regressions.py +0 -0
  163. {utterplan-0.3.0 → utterplan-0.3.2}/tests/schema_history/README.md +0 -0
  164. {utterplan-0.3.0 → utterplan-0.3.2}/tests/schema_history/v1/basic.json +0 -0
  165. {utterplan-0.3.0 → utterplan-0.3.2}/tests/schema_history/v1/directives.json +0 -0
  166. {utterplan-0.3.0 → utterplan-0.3.2}/tests/schema_history/v1/markers.json +0 -0
  167. {utterplan-0.3.0 → utterplan-0.3.2}/tests/schema_history/v1/multilingual.json +0 -0
  168. {utterplan-0.3.0 → utterplan-0.3.2}/tests/schema_history/v1/parenthetical.json +0 -0
  169. {utterplan-0.3.0 → utterplan-0.3.2}/tests/schema_history/v1/spokenform_offsets.json +0 -0
  170. {utterplan-0.3.0 → utterplan-0.3.2}/tests/schema_history/v1/ssmd_breaks.json +0 -0
  171. {utterplan-0.3.0 → utterplan-0.3.2}/tests/schema_history/v2/directives.json +0 -0
  172. {utterplan-0.3.0 → utterplan-0.3.2}/tests/test_boundaries.py +0 -0
  173. {utterplan-0.3.0 → utterplan-0.3.2}/tests/test_cli.py +0 -0
  174. {utterplan-0.3.0 → utterplan-0.3.2}/tests/test_coordinates.py +0 -0
  175. {utterplan-0.3.0 → utterplan-0.3.2}/tests/test_explain.py +0 -0
  176. {utterplan-0.3.0 → utterplan-0.3.2}/tests/test_golden.py +0 -0
  177. {utterplan-0.3.0 → utterplan-0.3.2}/tests/test_import_boundaries.py +0 -0
  178. {utterplan-0.3.0 → utterplan-0.3.2}/tests/test_language.py +0 -0
  179. {utterplan-0.3.0 → utterplan-0.3.2}/tests/test_linguistics.py +0 -0
  180. {utterplan-0.3.0 → utterplan-0.3.2}/tests/test_migration_framework.py +0 -0
  181. {utterplan-0.3.0 → utterplan-0.3.2}/tests/test_pauses.py +0 -0
  182. {utterplan-0.3.0 → utterplan-0.3.2}/tests/test_public_identity.py +0 -0
  183. {utterplan-0.3.0 → utterplan-0.3.2}/tests/test_schema_history.py +0 -0
  184. {utterplan-0.3.0 → utterplan-0.3.2}/tests/test_schema_registry.py +0 -0
  185. {utterplan-0.3.0 → utterplan-0.3.2}/tests/test_schema_strict.py +0 -0
  186. {utterplan-0.3.0 → utterplan-0.3.2}/tests/test_version.py +0 -0
  187. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/__init__.py +0 -0
  188. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/__main__.py +0 -0
  189. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/cli.py +0 -0
  190. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/config.py +0 -0
  191. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/diagnostics.py +0 -0
  192. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/directives.py +0 -0
  193. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/exceptions.py +0 -0
  194. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/explain.py +0 -0
  195. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/format.py +0 -0
  196. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/hashing.py +0 -0
  197. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/language.py +0 -0
  198. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/linguistics.py +0 -0
  199. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/migration.py +0 -0
  200. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/migrations/__init__.py +0 -0
  201. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/migrations/registry.py +0 -0
  202. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/migrations/v1_to_v2.py +0 -0
  203. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/migrations/v2_to_v3.py +0 -0
  204. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/model.py +0 -0
  205. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/pauses.py +0 -0
  206. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/py.typed +0 -0
  207. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/schema_registry.py +0 -0
  208. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/schemas/v1.schema.json +0 -0
  209. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/schemas/v2.schema.json +0 -0
  210. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/schemas/v3.schema.json +0 -0
  211. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/serialization.py +0 -0
  212. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/spacy_models.py +0 -0
  213. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/spans.py +0 -0
  214. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/stages/__init__.py +0 -0
  215. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/stages/document/__init__.py +0 -0
  216. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/stages/document/plain.py +0 -0
  217. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/stages/document/ssmd.py +0 -0
  218. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/stages/preparation/__init__.py +0 -0
  219. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/stages/preparation/identity.py +0 -0
  220. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/stages/preparation/spokenform.py +0 -0
  221. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/stages/protocols.py +0 -0
  222. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/units.py +0 -0
  223. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/utterplan.schema.json +0 -0
  224. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan/versioning.py +0 -0
  225. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan.egg-info/dependency_links.txt +0 -0
  226. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan.egg-info/entry_points.txt +0 -0
  227. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan.egg-info/requires.txt +0 -0
  228. {utterplan-0.3.0 → utterplan-0.3.2}/utterplan.egg-info/top_level.txt +0 -0
@@ -41,3 +41,16 @@
41
41
  {"data":{"row_count":1},"event":"audit.created","event_id":"event-0041","record_revisions":{"commit_audit_sheet":1},"release_version":"0.3.0","schema_version":2}
42
42
  {"data":{"updated_rows":1},"event":"audit.updated","event_id":"event-0042","record_revisions":{"commit_audit_sheet":2},"release_version":"0.3.0","schema_version":2}
43
43
  {"data":{"entry_ids":["entry-0001","entry-0002","entry-0003","entry-0004","entry-0005","entry-0006"],"synced_audit_rows":1},"event":"entry.batch_added","event_id":"event-0043","record_revisions":{"commit_audit_sheet":3,"entry:0.3.0/entry-0001":1,"entry:0.3.0/entry-0002":1,"entry:0.3.0/entry-0003":1,"entry:0.3.0/entry-0004":1,"entry:0.3.0/entry-0005":1,"entry:0.3.0/entry-0006":1,"release:0.3.0":3},"release_version":"0.3.0","schema_version":2}
44
+ {"data":{"released_at":"2026-09-24"},"event":"release.finalized","event_id":"event-0044","record_revisions":{"release:0.3.0":4},"release_version":"0.3.0","schema_version":2}
45
+ {"data":{"status":"planned"},"event":"release.created","event_id":"event-0045","record_revisions":{"release:0.3.1":1},"release_version":"0.3.1","schema_version":2}
46
+ {"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-0046","record_revisions":{"release:0.3.1":2},"release_version":"0.3.1","schema_version":2}
47
+ {"data":{"row_count":1},"event":"audit.created","event_id":"event-0047","record_revisions":{"commit_audit_sheet":1},"release_version":"0.3.1","schema_version":2}
48
+ {"data":{"updated_rows":1},"event":"audit.updated","event_id":"event-0048","record_revisions":{"commit_audit_sheet":2},"release_version":"0.3.1","schema_version":2}
49
+ {"data":{"entry_ids":["entry-0001"],"synced_audit_rows":1},"event":"entry.batch_added","event_id":"event-0049","record_revisions":{"commit_audit_sheet":3,"entry:0.3.1/entry-0001":1,"release:0.3.1":3},"release_version":"0.3.1","schema_version":2}
50
+ {"data":{"released_at":"2026-09-27"},"event":"release.finalized","event_id":"event-0050","record_revisions":{"release:0.3.1":4},"release_version":"0.3.1","schema_version":2}
51
+ {"data":{"status":"planned"},"event":"release.created","event_id":"event-0051","record_revisions":{"release:0.3.2":1},"release_version":"0.3.2","schema_version":2}
52
+ {"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-0052","record_revisions":{"release:0.3.2":2},"release_version":"0.3.2","schema_version":2}
53
+ {"data":{"row_count":3},"event":"audit.created","event_id":"event-0053","record_revisions":{"commit_audit_sheet":1},"release_version":"0.3.2","schema_version":2}
54
+ {"data":{"updated_rows":3},"event":"audit.updated","event_id":"event-0054","record_revisions":{"commit_audit_sheet":2},"release_version":"0.3.2","schema_version":2}
55
+ {"data":{"entry_ids":["entry-0001","entry-0002"],"synced_audit_rows":2},"event":"entry.batch_added","event_id":"event-0055","record_revisions":{"commit_audit_sheet":3,"entry:0.3.2/entry-0001":1,"entry:0.3.2/entry-0002":1,"release:0.3.2":3},"release_version":"0.3.2","schema_version":2}
56
+ {"data":{"released_at":"2026-10-03"},"event":"release.finalized","event_id":"event-0056","record_revisions":{"release:0.3.2":4},"release_version":"0.3.2","schema_version":2}
@@ -3,16 +3,16 @@ schema_version: 2
3
3
  object_type: release
4
4
  versioning:
5
5
  schema_version: 1
6
- revision: 3
6
+ revision: 4
7
7
  version: 0.3.0
8
- status: planned
8
+ status: released
9
9
  history_state: curated
10
10
  title: null
11
- released_at: null
11
+ released_at: "2026-09-24"
12
12
  previous_version: 0.2.0
13
13
  cancel_reason: null
14
14
  superseded_by: null
15
- changelog_file: null
15
+ changelog_file: docs/changelog.md
16
16
  boundary_ref: null
17
17
  source_refs: []
18
18
  source_count: null
@@ -0,0 +1,57 @@
1
+ schema_version: 1
2
+ object_type: commit_audit_sheet
3
+ versioning:
4
+ schema_version: 1
5
+ revision: 3
6
+ release_version: 0.3.1
7
+ git_base_ref: v0.3.0
8
+ git_base_sha: ad398fd2c943113966bb6ad0a247c2c6c90c676b
9
+ git_head_ref: HEAD
10
+ git_head_sha: 70adac05bf008abfed0e8ea46eb9d0973ba1cd82
11
+ git_range: ad398fd2c943113966bb6ad0a247c2c6c90c676b..70adac05bf008abfed0e8ea46eb9d0973ba1cd82
12
+ commit_count: 1
13
+ rows:
14
+ - sha: 70adac05bf008abfed0e8ea46eb9d0973ba1cd82
15
+ source_ref: git:70adac05bf008abfed0e8ea46eb9d0973ba1cd82
16
+ short_sha: 70adac0
17
+ changed_paths:
18
+ - docs/consumer-guide.md
19
+ - docs/python-api.md
20
+ - tests/test_consumer_contract.py
21
+ - tests/test_directives.py
22
+ - tests/test_fake_renderer.py
23
+ - tests/test_format.py
24
+ - tests/test_identity_units.py
25
+ - tests/test_planner.py
26
+ - tests/test_preparation.py
27
+ - tests/test_ssmd_09_parser.py
28
+ - utterplan/parsers.py
29
+ - utterplan/planner.py
30
+ stats:
31
+ files_changed: 12
32
+ insertions: 719
33
+ deletions: 15
34
+ inspected: true
35
+ inspected_paths:
36
+ - docs/consumer-guide.md
37
+ - docs/python-api.md
38
+ - tests/test_consumer_contract.py
39
+ - tests/test_directives.py
40
+ - tests/test_fake_renderer.py
41
+ - tests/test_format.py
42
+ - tests/test_identity_units.py
43
+ - tests/test_planner.py
44
+ - tests/test_preparation.py
45
+ - tests/test_ssmd_09_parser.py
46
+ - utterplan/parsers.py
47
+ - utterplan/planner.py
48
+ observed_behavior:
49
+ Each SSMD audio annotation maps to one renderer-neutral segment;
50
+ audio sources remain opaque, fallback text is optional, zero-width occurrences
51
+ are retained, and unsupported audio topologies fail planning
52
+ public_impact: public
53
+ decision: accepted
54
+ stale: false
55
+ evidence_subject: "feat: handle audio media segments"
56
+ target_entry_id: entry-0001
57
+ notes: ""
@@ -0,0 +1,42 @@
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.3.1
9
+ kind: added
10
+ summary:
11
+ Added renderer-neutral SSMD audio segments with opaque sources and optional
12
+ spoken fallback
13
+ status: accepted
14
+ audience: null
15
+ scopes: []
16
+ source_refs:
17
+ - git:70adac05bf008abfed0e8ea46eb9d0973ba1cd82
18
+ paths:
19
+ - docs/consumer-guide.md
20
+ - docs/python-api.md
21
+ - tests/test_consumer_contract.py
22
+ - tests/test_directives.py
23
+ - tests/test_fake_renderer.py
24
+ - tests/test_format.py
25
+ - tests/test_identity_units.py
26
+ - tests/test_planner.py
27
+ - tests/test_preparation.py
28
+ - tests/test_ssmd_09_parser.py
29
+ - utterplan/parsers.py
30
+ - utterplan/planner.py
31
+ issues: []
32
+ prs: []
33
+ sources:
34
+ - git:70adac05bf008abfed0e8ea46eb9d0973ba1cd82
35
+ contributors:
36
+ - "@holgern"
37
+ breaking: false
38
+ internal: false
39
+ order: 1
40
+ ---
41
+
42
+ Each SSMD audio annotation maps to one segment carrying `directives.audio`; the source remains opaque and `segment.text` is optional fallback (empty when absent). Repeated sources remain distinct occurrences.
@@ -0,0 +1,27 @@
1
+ ---
2
+ schema_version: 2
3
+ object_type: release
4
+ versioning:
5
+ schema_version: 1
6
+ revision: 4
7
+ version: 0.3.1
8
+ status: released
9
+ history_state: curated
10
+ title: null
11
+ released_at: "2026-09-27"
12
+ previous_version: 0.3.0
13
+ cancel_reason: null
14
+ superseded_by: null
15
+ changelog_file: docs/changelog.md
16
+ boundary_ref: null
17
+ source_refs: []
18
+ source_count: null
19
+ entry_count: 1
20
+ artifact_count: 0
21
+ git_base_ref: v0.3.0
22
+ git_base_sha: ad398fd2c943113966bb6ad0a247c2c6c90c676b
23
+ git_head_ref: HEAD
24
+ git_head_sha: 70adac05bf008abfed0e8ea46eb9d0973ba1cd82
25
+ git_range: ad398fd2c943113966bb6ad0a247c2c6c90c676b..70adac05bf008abfed0e8ea46eb9d0973ba1cd82
26
+ git_commit_count: 1
27
+ ---
@@ -0,0 +1,105 @@
1
+ schema_version: 1
2
+ object_type: commit_audit_sheet
3
+ versioning:
4
+ schema_version: 1
5
+ revision: 3
6
+ release_version: 0.3.2
7
+ git_base_ref: v0.3.1
8
+ git_base_sha: b0415758f6c1d1890d8015ce40c1e52d6120cf46
9
+ git_head_ref: HEAD
10
+ git_head_sha: ba3b5afb6c619cf91e482db16b19d53f199eb1e2
11
+ git_range: b0415758f6c1d1890d8015ce40c1e52d6120cf46..ba3b5afb6c619cf91e482db16b19d53f199eb1e2
12
+ commit_count: 3
13
+ rows:
14
+ - sha: 6c2a1ac444c76ea183a791b59af2e92fb60dbb23
15
+ source_ref: git:6c2a1ac444c76ea183a791b59af2e92fb60dbb23
16
+ short_sha: 6c2a1ac
17
+ changed_paths:
18
+ - tests/test_preparation.py
19
+ - utterplan/preparation.py
20
+ stats:
21
+ files_changed: 2
22
+ insertions: 40
23
+ deletions: 1
24
+ inspected: true
25
+ inspected_paths:
26
+ - tests/test_preparation.py
27
+ - utterplan/preparation.py
28
+ observed_behavior:
29
+ Spoken-text preparation protects annotation spans using sub,
30
+ as, say-as, ph, or phonemes from automated replacement while preserving source
31
+ offset mappings.
32
+ public_impact: public
33
+ decision: accepted
34
+ stale: false
35
+ evidence_subject: "feat: improve prepare ssmd"
36
+ target_entry_id: entry-0001
37
+ notes: ""
38
+ - sha: a2bc20d5d25f880688886f1867f0fd398a5b8c7e
39
+ source_ref: git:a2bc20d5d25f880688886f1867f0fd398a5b8c7e
40
+ short_sha: a2bc20d
41
+ changed_paths:
42
+ - 01_todo.md
43
+ - plan.md
44
+ stats:
45
+ files_changed: 2
46
+ insertions: 0
47
+ deletions: 1907
48
+ inspected: true
49
+ inspected_paths:
50
+ - 01_todo.md
51
+ - plan.md
52
+ observed_behavior:
53
+ Removed planning-only repository files; no runtime or public
54
+ package behavior changed.
55
+ public_impact: internal
56
+ decision: internal
57
+ stale: false
58
+ evidence_subject: "chore: remove plan files"
59
+ notes: Repository planning artifacts only, with no user-facing change.
60
+ - sha: ba3b5afb6c619cf91e482db16b19d53f199eb1e2
61
+ source_ref: git:ba3b5afb6c619cf91e482db16b19d53f199eb1e2
62
+ short_sha: ba3b5af
63
+ changed_paths:
64
+ - tests/golden/ssmd_09_comprehensive.utterplan.json
65
+ - tests/migration/goldens/multilingual_preparation.json
66
+ - tests/migration/goldens/spokenform_numbers.json
67
+ - tests/migration/goldens/ssmd_break.json
68
+ - tests/migration/goldens/ssmd_language_detection.json
69
+ - tests/migration/goldens/ssmd_marker.json
70
+ - tests/migration/goldens/ssmd_pronunciation.json
71
+ - tests/test_consumer_readiness.py
72
+ - tests/test_preparation.py
73
+ - tests/test_ssmd_09_parser.py
74
+ - utterplan/parsers.py
75
+ - utterplan/planner.py
76
+ - utterplan/preparation.py
77
+ stats:
78
+ files_changed: 13
79
+ insertions: 183
80
+ deletions: 7
81
+ inspected: true
82
+ inspected_paths:
83
+ - tests/golden/ssmd_09_comprehensive.utterplan.json
84
+ - tests/migration/goldens/multilingual_preparation.json
85
+ - tests/migration/goldens/spokenform_numbers.json
86
+ - tests/migration/goldens/ssmd_break.json
87
+ - tests/migration/goldens/ssmd_language_detection.json
88
+ - tests/migration/goldens/ssmd_marker.json
89
+ - tests/migration/goldens/ssmd_pronunciation.json
90
+ - tests/test_consumer_readiness.py
91
+ - tests/test_preparation.py
92
+ - tests/test_ssmd_09_parser.py
93
+ - utterplan/parsers.py
94
+ - utterplan/planner.py
95
+ - utterplan/preparation.py
96
+ observed_behavior:
97
+ SSMD sequence_fallback_mode accepts spell or preserve, defaults
98
+ to spell, is forwarded to spoken-form preparation and serialized in plan metadata
99
+ and identity, and rejects invalid values.
100
+ public_impact: public
101
+ decision: accepted
102
+ stale: false
103
+ evidence_subject: "feat: parse fallback mode parameter from ssmdconvert settings"
104
+ target_entry_id: entry-0002
105
+ 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.3.2
9
+ kind: fixed
10
+ summary:
11
+ Fixed text preparation so authored SSMD substitutions and say-as annotations
12
+ remain unchanged
13
+ status: accepted
14
+ audience: null
15
+ scopes: []
16
+ source_refs:
17
+ - git:6c2a1ac444c76ea183a791b59af2e92fb60dbb23
18
+ paths:
19
+ - tests/test_preparation.py
20
+ - utterplan/preparation.py
21
+ issues: []
22
+ prs: []
23
+ sources:
24
+ - git:6c2a1ac444c76ea183a791b59af2e92fb60dbb23
25
+ contributors:
26
+ - "@holgern"
27
+ breaking: false
28
+ internal: false
29
+ order: 1
30
+ ---
31
+
32
+ Spoken-text preparation excludes spans with `sub`, `as`, and `say-as` attributes from automatic spoken-form replacement, preserving author-provided text while retaining existing pronunciation protections.
@@ -0,0 +1,41 @@
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.3.2
9
+ kind: added
10
+ summary: Added SSMD sequence fallback mode controls for spoken-form preparation
11
+ status: accepted
12
+ audience: null
13
+ scopes: []
14
+ source_refs:
15
+ - git:ba3b5afb6c619cf91e482db16b19d53f199eb1e2
16
+ paths:
17
+ - tests/golden/ssmd_09_comprehensive.utterplan.json
18
+ - tests/migration/goldens/multilingual_preparation.json
19
+ - tests/migration/goldens/spokenform_numbers.json
20
+ - tests/migration/goldens/ssmd_break.json
21
+ - tests/migration/goldens/ssmd_language_detection.json
22
+ - tests/migration/goldens/ssmd_marker.json
23
+ - tests/migration/goldens/ssmd_pronunciation.json
24
+ - tests/test_consumer_readiness.py
25
+ - tests/test_preparation.py
26
+ - tests/test_ssmd_09_parser.py
27
+ - utterplan/parsers.py
28
+ - utterplan/planner.py
29
+ - utterplan/preparation.py
30
+ issues: []
31
+ prs: []
32
+ sources:
33
+ - git:ba3b5afb6c619cf91e482db16b19d53f199eb1e2
34
+ contributors:
35
+ - "@holgern"
36
+ breaking: false
37
+ internal: false
38
+ order: 2
39
+ ---
40
+
41
+ SSMD headers can choose `spell` or `preserve` for sequence fallback behavior. The default remains `spell`; the selected mode is carried in plan metadata, and invalid values are rejected during planning.
@@ -0,0 +1,27 @@
1
+ ---
2
+ schema_version: 2
3
+ object_type: release
4
+ versioning:
5
+ schema_version: 1
6
+ revision: 4
7
+ version: 0.3.2
8
+ status: released
9
+ history_state: curated
10
+ title: null
11
+ released_at: "2026-10-03"
12
+ previous_version: 0.3.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: 2
20
+ artifact_count: 0
21
+ git_base_ref: v0.3.1
22
+ git_base_sha: b0415758f6c1d1890d8015ce40c1e52d6120cf46
23
+ git_head_ref: HEAD
24
+ git_head_sha: ba3b5afb6c619cf91e482db16b19d53f199eb1e2
25
+ git_range: b0415758f6c1d1890d8015ce40c1e52d6120cf46..ba3b5afb6c619cf91e482db16b19d53f199eb1e2
26
+ git_commit_count: 3
27
+ ---
@@ -0,0 +1,23 @@
1
+ rows:
2
+ - sha: 70adac05bf008abfed0e8ea46eb9d0973ba1cd82
3
+ inspected: true
4
+ inspected_paths:
5
+ - docs/consumer-guide.md
6
+ - docs/python-api.md
7
+ - tests/test_consumer_contract.py
8
+ - tests/test_directives.py
9
+ - tests/test_fake_renderer.py
10
+ - tests/test_format.py
11
+ - tests/test_identity_units.py
12
+ - tests/test_planner.py
13
+ - tests/test_preparation.py
14
+ - tests/test_ssmd_09_parser.py
15
+ - utterplan/parsers.py
16
+ - utterplan/planner.py
17
+ observed_behavior: Each SSMD audio annotation maps to one renderer-neutral segment; audio sources remain opaque, fallback text is optional, zero-width occurrences are retained, and unsupported audio topologies fail planning
18
+ public_impact: public
19
+ decision: accepted
20
+ target_entry_key: null
21
+ target_entry_id: null
22
+ notes: ""
23
+ stale: false
@@ -0,0 +1,40 @@
1
+ schema_version: 1
2
+ object_type: commit_audit_sheet
3
+ versioning:
4
+ schema_version: 1
5
+ revision: 1
6
+ release_version: 0.3.1
7
+ git_base_ref: v0.3.0
8
+ git_base_sha: ad398fd2c943113966bb6ad0a247c2c6c90c676b
9
+ git_head_ref: HEAD
10
+ git_head_sha: 70adac05bf008abfed0e8ea46eb9d0973ba1cd82
11
+ git_range: ad398fd2c943113966bb6ad0a247c2c6c90c676b..70adac05bf008abfed0e8ea46eb9d0973ba1cd82
12
+ commit_count: 1
13
+ rows:
14
+ - sha: 70adac05bf008abfed0e8ea46eb9d0973ba1cd82
15
+ source_ref: git:70adac05bf008abfed0e8ea46eb9d0973ba1cd82
16
+ short_sha: 70adac0
17
+ changed_paths:
18
+ - docs/consumer-guide.md
19
+ - docs/python-api.md
20
+ - tests/test_consumer_contract.py
21
+ - tests/test_directives.py
22
+ - tests/test_fake_renderer.py
23
+ - tests/test_format.py
24
+ - tests/test_identity_units.py
25
+ - tests/test_planner.py
26
+ - tests/test_preparation.py
27
+ - tests/test_ssmd_09_parser.py
28
+ - utterplan/parsers.py
29
+ - utterplan/planner.py
30
+ stats:
31
+ files_changed: 12
32
+ insertions: 719
33
+ deletions: 15
34
+ inspected: false
35
+ inspected_paths: []
36
+ observed_behavior: ""
37
+ public_impact: unknown
38
+ decision: needs_review
39
+ stale: false
40
+ evidence_subject: "feat: handle audio media segments"
@@ -0,0 +1,37 @@
1
+ schema: releaseledger.entry-batch.v1
2
+ operation: create
3
+ schema_version: 1
4
+ object_type: release_entry_batch
5
+ release_version: 0.3.1
6
+ git_base_ref: ad398fd2c943113966bb6ad0a247c2c6c90c676b
7
+ git_base_sha: ad398fd2c943113966bb6ad0a247c2c6c90c676b
8
+ git_head_ref: 70adac05bf008abfed0e8ea46eb9d0973ba1cd82
9
+ git_head_sha: 70adac05bf008abfed0e8ea46eb9d0973ba1cd82
10
+ include_merges: nontrivial
11
+ entries:
12
+ - kind: added
13
+ summary: Added renderer-neutral SSMD audio segments with opaque sources and optional spoken fallback
14
+ status: accepted
15
+ body: >-
16
+ Each SSMD audio annotation maps to one segment carrying `directives.audio`; the source remains opaque and `segment.text` is optional fallback (empty when absent). Repeated sources remain distinct occurrences.
17
+ source_refs:
18
+ - git:70adac05bf008abfed0e8ea46eb9d0973ba1cd82
19
+ paths:
20
+ - docs/consumer-guide.md
21
+ - docs/python-api.md
22
+ - tests/test_consumer_contract.py
23
+ - tests/test_directives.py
24
+ - tests/test_fake_renderer.py
25
+ - tests/test_format.py
26
+ - tests/test_identity_units.py
27
+ - tests/test_planner.py
28
+ - tests/test_preparation.py
29
+ - tests/test_ssmd_09_parser.py
30
+ - utterplan/parsers.py
31
+ - utterplan/planner.py
32
+ sources:
33
+ - git:70adac05bf008abfed0e8ea46eb9d0973ba1cd82
34
+ prs: []
35
+ issues: []
36
+ contributors:
37
+ - "@holgern"