briefloop 0.15.2__tar.gz → 0.18.0__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 (970) hide show
  1. briefloop-0.18.0/CHANGELOG.md +2207 -0
  2. briefloop-0.18.0/LICENSE +21 -0
  3. briefloop-0.18.0/MANIFEST.in +13 -0
  4. briefloop-0.18.0/PKG-INFO +18 -0
  5. briefloop-0.18.0/README.md +181 -0
  6. briefloop-0.18.0/THIRD_PARTY_NOTICES.md +12 -0
  7. briefloop-0.18.0/VERSION +1 -0
  8. briefloop-0.18.0/bootstrap.py +55 -0
  9. briefloop-0.18.0/docs//344/275/277/347/224/250/346/214/207/345/215/227.md +67 -0
  10. briefloop-0.18.0/docs//345/215/207/347/272/247/350/257/264/346/230/216.md +46 -0
  11. briefloop-0.18.0/docs//345/233/276/350/241/250/344/270/216Excel.md +41 -0
  12. briefloop-0.18.0/docs//345/244/232Runtime/344/270/216/346/250/241/345/236/213.md +60 -0
  13. briefloop-0.18.0/docs//345/244/232/346/250/241/346/200/201/346/235/245/346/272/220.md +32 -0
  14. briefloop-0.18.0/docs//346/212/245/345/221/212/347/274/226/350/276/221/344/270/216/346/250/241/346/235/277.md +52 -0
  15. briefloop-0.18.0/docs//350/241/214/344/270/232/346/212/245/345/221/212.md +60 -0
  16. briefloop-0.18.0/docs//350/257/201/346/215/256/344/270/216/347/273/223/350/256/272/350/277/275/346/272/257.md +30 -0
  17. briefloop-0.18.0/examples/internal-weekly-report/README.md +18 -0
  18. briefloop-0.18.0/examples/internal-weekly-report/report.md +19 -0
  19. briefloop-0.18.0/examples/internal-weekly-report/source.txt +7 -0
  20. briefloop-0.18.0/frontend/app.js +1245 -0
  21. briefloop-0.18.0/frontend/rich-document.js +74 -0
  22. briefloop-0.18.0/package-lock.json +1091 -0
  23. briefloop-0.18.0/package.json +17 -0
  24. briefloop-0.18.0/pyproject.toml +24 -0
  25. briefloop-0.18.0/runtime-bridge/README.md +38 -0
  26. briefloop-0.18.0/runtime-bridge/bridge.test.mjs +19 -0
  27. briefloop-0.18.0/runtime-bridge/build.mjs +6 -0
  28. briefloop-0.18.0/runtime-bridge/catalog.json +197 -0
  29. briefloop-0.18.0/runtime-bridge/main.ts +91 -0
  30. briefloop-0.18.0/src/briefloop/__init__.py +1 -0
  31. briefloop-0.18.0/src/briefloop/__main__.py +2 -0
  32. briefloop-0.18.0/src/briefloop/app_server.py +79 -0
  33. briefloop-0.18.0/src/briefloop/audit_bundle.py +650 -0
  34. briefloop-0.18.0/src/briefloop/backends/__init__.py +43 -0
  35. briefloop-0.18.0/src/briefloop/backends/opencode_server.py +318 -0
  36. briefloop-0.18.0/src/briefloop/bridge_harness.py +189 -0
  37. briefloop-0.18.0/src/briefloop/chat_store.py +126 -0
  38. briefloop-0.18.0/src/briefloop/chat_tools.py +235 -0
  39. briefloop-0.18.0/src/briefloop/cli.py +136 -0
  40. briefloop-0.18.0/src/briefloop/company_context.py +142 -0
  41. briefloop-0.18.0/src/briefloop/conflicts.py +73 -0
  42. briefloop-0.18.0/src/briefloop/default_fonts.py +75 -0
  43. briefloop-0.18.0/src/briefloop/deliverable_spec.py +194 -0
  44. briefloop-0.18.0/src/briefloop/delivery_checks.py +195 -0
  45. briefloop-0.18.0/src/briefloop/document_export.py +149 -0
  46. briefloop-0.18.0/src/briefloop/document_model.py +282 -0
  47. briefloop-0.18.0/src/briefloop/evidence.py +255 -0
  48. briefloop-0.18.0/src/briefloop/execution_records.py +42 -0
  49. briefloop-0.18.0/src/briefloop/export_jobs.py +79 -0
  50. briefloop-0.18.0/src/briefloop/exports.py +87 -0
  51. briefloop-0.18.0/src/briefloop/figure_support.py +63 -0
  52. briefloop-0.18.0/src/briefloop/figures.py +188 -0
  53. briefloop-0.18.0/src/briefloop/harness.py +382 -0
  54. briefloop-0.18.0/src/briefloop/host_bins.py +38 -0
  55. briefloop-0.18.0/src/briefloop/industry_data.py +73 -0
  56. briefloop-0.18.0/src/briefloop/industry_export.py +258 -0
  57. briefloop-0.18.0/src/briefloop/interactive_runtime.py +369 -0
  58. briefloop-0.18.0/src/briefloop/learning.py +298 -0
  59. briefloop-0.18.0/src/briefloop/length.py +56 -0
  60. briefloop-0.18.0/src/briefloop/media.py +283 -0
  61. briefloop-0.18.0/src/briefloop/models.py +313 -0
  62. briefloop-0.18.0/src/briefloop/opencode_harness.py +746 -0
  63. briefloop-0.18.0/src/briefloop/progress.py +80 -0
  64. briefloop-0.18.0/src/briefloop/projections.py +34 -0
  65. briefloop-0.18.0/src/briefloop/release.py +432 -0
  66. briefloop-0.18.0/src/briefloop/report_profiles.py +20 -0
  67. briefloop-0.18.0/src/briefloop/report_tools.py +30 -0
  68. briefloop-0.18.0/src/briefloop/research_budget.py +117 -0
  69. briefloop-0.18.0/src/briefloop/review.py +733 -0
  70. briefloop-0.18.0/src/briefloop/review_learning.py +67 -0
  71. briefloop-0.18.0/src/briefloop/runtime.py +830 -0
  72. briefloop-0.18.0/src/briefloop/runtime_bridge.py +90 -0
  73. briefloop-0.18.0/src/briefloop/scout_tools.py +51 -0
  74. briefloop-0.18.0/src/briefloop/server.py +393 -0
  75. briefloop-0.18.0/src/briefloop/skill_assets/tavily/SKILL.md +56 -0
  76. briefloop-0.18.0/src/briefloop/skills.py +22 -0
  77. briefloop-0.18.0/src/briefloop/source_updates.py +316 -0
  78. briefloop-0.18.0/src/briefloop/sources.py +246 -0
  79. briefloop-0.18.0/src/briefloop/static/app.js +264 -0
  80. briefloop-0.18.0/src/briefloop/static/index.html +15 -0
  81. briefloop-0.18.0/src/briefloop/static/runtime-bridge.LICENSE.txt +201 -0
  82. briefloop-0.18.0/src/briefloop/static/runtime-bridge.NOTICE.txt +29 -0
  83. briefloop-0.18.0/src/briefloop/static/runtime-bridge.mjs +1517 -0
  84. briefloop-0.18.0/src/briefloop/static/style.css +172 -0
  85. briefloop-0.18.0/src/briefloop/store.py +521 -0
  86. briefloop-0.18.0/src/briefloop/task_notify.py +70 -0
  87. briefloop-0.18.0/src/briefloop/tavily.py +183 -0
  88. briefloop-0.18.0/src/briefloop/templates.py +293 -0
  89. briefloop-0.18.0/src/briefloop/word_import.py +163 -0
  90. briefloop-0.18.0/src/briefloop/workbook_figures.py +81 -0
  91. briefloop-0.18.0/src/briefloop/workspaces.py +163 -0
  92. briefloop-0.18.0/src/briefloop.egg-info/PKG-INFO +18 -0
  93. briefloop-0.18.0/src/briefloop.egg-info/SOURCES.txt +343 -0
  94. briefloop-0.18.0/src/briefloop.egg-info/entry_points.txt +2 -0
  95. briefloop-0.18.0/src/briefloop.egg-info/requires.txt +13 -0
  96. briefloop-0.18.0/src/briefloop.egg-info/top_level.txt +2 -0
  97. briefloop-0.18.0/src/wikiskill/__init__.py +2 -0
  98. briefloop-0.18.0/src/wikiskill/__main__.py +2 -0
  99. briefloop-0.18.0/src/wikiskill/_licenses/LICENSE +21 -0
  100. briefloop-0.18.0/src/wikiskill/_licenses/NOTICE.md +11 -0
  101. briefloop-0.18.0/src/wikiskill/_licenses/third_party/acorn/LICENSE +21 -0
  102. briefloop-0.18.0/src/wikiskill/_licenses/third_party/acorn/NOTICE.md +1 -0
  103. briefloop-0.18.0/src/wikiskill/_licenses/third_party/officeqa/LICENSE-APACHE +51 -0
  104. briefloop-0.18.0/src/wikiskill/_licenses/third_party/officeqa/NOTICE +7 -0
  105. briefloop-0.18.0/src/wikiskill/alfworld/__init__.py +0 -0
  106. briefloop-0.18.0/src/wikiskill/alfworld/act.sh +12 -0
  107. briefloop-0.18.0/src/wikiskill/alfworld/rollout.py +242 -0
  108. briefloop-0.18.0/src/wikiskill/alfworld/step.py +103 -0
  109. briefloop-0.18.0/src/wikiskill/benchmarks/__init__.py +0 -0
  110. briefloop-0.18.0/src/wikiskill/benchmarks/alfworld.py +89 -0
  111. briefloop-0.18.0/src/wikiskill/benchmarks/livemath.py +105 -0
  112. briefloop-0.18.0/src/wikiskill/benchmarks/sealqa.py +116 -0
  113. briefloop-0.18.0/src/wikiskill/benchmarks/spreadsheet.py +274 -0
  114. briefloop-0.18.0/src/wikiskill/cli.py +105 -0
  115. briefloop-0.18.0/src/wikiskill/codex_identity.py +113 -0
  116. briefloop-0.18.0/src/wikiskill/engine.py +295 -0
  117. briefloop-0.18.0/src/wikiskill/feedback_loop.py +57 -0
  118. briefloop-0.18.0/src/wikiskill/isolated/__init__.py +1 -0
  119. briefloop-0.18.0/src/wikiskill/isolated/audit.py +121 -0
  120. briefloop-0.18.0/src/wikiskill/isolated/runtime.py +438 -0
  121. briefloop-0.18.0/src/wikiskill/isolated/tools_server.py +192 -0
  122. briefloop-0.18.0/src/wikiskill/jsonl.py +30 -0
  123. briefloop-0.18.0/src/wikiskill/k4_lock.py +38 -0
  124. briefloop-0.18.0/src/wikiskill/livemath/__init__.py +0 -0
  125. briefloop-0.18.0/src/wikiskill/livemath/loop.py +314 -0
  126. briefloop-0.18.0/src/wikiskill/livemath/rollout.py +165 -0
  127. briefloop-0.18.0/src/wikiskill/native_agents.py +201 -0
  128. briefloop-0.18.0/src/wikiskill/officeqa/__init__.py +0 -0
  129. briefloop-0.18.0/src/wikiskill/officeqa/dataset.py +214 -0
  130. briefloop-0.18.0/src/wikiskill/officeqa/fetch.py +90 -0
  131. briefloop-0.18.0/src/wikiskill/officeqa/loop.py +676 -0
  132. briefloop-0.18.0/src/wikiskill/officeqa/retrieval.py +206 -0
  133. briefloop-0.18.0/src/wikiskill/officeqa/reward.py +763 -0
  134. briefloop-0.18.0/src/wikiskill/officeqa/rollout.py +249 -0
  135. briefloop-0.18.0/src/wikiskill/officeqa/scoring.py +37 -0
  136. briefloop-0.18.0/src/wikiskill/officeqa/wiki_agents.py +676 -0
  137. briefloop-0.18.0/src/wikiskill/paper_alignment/__init__.py +1 -0
  138. briefloop-0.18.0/src/wikiskill/paper_alignment/contracts.py +145 -0
  139. briefloop-0.18.0/src/wikiskill/paper_alignment/evidence.py +36 -0
  140. briefloop-0.18.0/src/wikiskill/product.py +495 -0
  141. briefloop-0.18.0/src/wikiskill/product_cli.py +101 -0
  142. briefloop-0.18.0/src/wikiskill/product_install.py +103 -0
  143. briefloop-0.18.0/src/wikiskill/product_views.py +164 -0
  144. briefloop-0.18.0/src/wikiskill/resources/alfworld/id_split/split_manifest.json +17 -0
  145. briefloop-0.18.0/src/wikiskill/resources/alfworld/id_split/test.json +672 -0
  146. briefloop-0.18.0/src/wikiskill/resources/alfworld/id_split/train.json +197 -0
  147. briefloop-0.18.0/src/wikiskill/resources/alfworld/id_split/val.json +92 -0
  148. briefloop-0.18.0/src/wikiskill/resources/alfworld/wiki/SKILL-s0.md +0 -0
  149. briefloop-0.18.0/src/wikiskill/resources/alfworld/wiki/index.md +1 -0
  150. briefloop-0.18.0/src/wikiskill/resources/alfworld/wiki/logs.md +1 -0
  151. briefloop-0.18.0/src/wikiskill/resources/alfworld/wiki/prompts/maintainer.md +76 -0
  152. briefloop-0.18.0/src/wikiskill/resources/alfworld/wiki/prompts/proposer.md +57 -0
  153. briefloop-0.18.0/src/wikiskill/resources/alfworld/wiki/skill-impact.md +1 -0
  154. briefloop-0.18.0/src/wikiskill/resources/isolated/model-catalog-direct.json +84 -0
  155. briefloop-0.18.0/src/wikiskill/resources/livemath/id_split/split_manifest.json +22 -0
  156. briefloop-0.18.0/src/wikiskill/resources/livemath/id_split/test.json +622 -0
  157. briefloop-0.18.0/src/wikiskill/resources/livemath/id_split/train.json +177 -0
  158. briefloop-0.18.0/src/wikiskill/resources/livemath/id_split/val.json +92 -0
  159. briefloop-0.18.0/src/wikiskill/resources/livemath/id_split-v2/split_manifest.json +53 -0
  160. briefloop-0.18.0/src/wikiskill/resources/livemath/id_split-v2/test.json +498 -0
  161. briefloop-0.18.0/src/wikiskill/resources/livemath/id_split-v2/train.json +142 -0
  162. briefloop-0.18.0/src/wikiskill/resources/livemath/id_split-v2/val.json +74 -0
  163. briefloop-0.18.0/src/wikiskill/resources/livemath/protocol.json +45 -0
  164. briefloop-0.18.0/src/wikiskill/resources/livemath/wiki/SKILL-s0.md +0 -0
  165. briefloop-0.18.0/src/wikiskill/resources/livemath/wiki/index.md +1 -0
  166. briefloop-0.18.0/src/wikiskill/resources/livemath/wiki/logs.md +1 -0
  167. briefloop-0.18.0/src/wikiskill/resources/livemath/wiki/prompts/maintainer.md +76 -0
  168. briefloop-0.18.0/src/wikiskill/resources/livemath/wiki/prompts/proposer.md +57 -0
  169. briefloop-0.18.0/src/wikiskill/resources/livemath/wiki/skill-impact.md +1 -0
  170. briefloop-0.18.0/src/wikiskill/resources/officeqa/id_split/split_manifest.json +28 -0
  171. briefloop-0.18.0/src/wikiskill/resources/officeqa/id_split/test.json +1378 -0
  172. briefloop-0.18.0/src/wikiskill/resources/officeqa/id_split/train.json +402 -0
  173. briefloop-0.18.0/src/wikiskill/resources/officeqa/id_split/val.json +194 -0
  174. briefloop-0.18.0/src/wikiskill/resources/officeqa/protocol.json +42 -0
  175. briefloop-0.18.0/src/wikiskill/resources/officeqa/wiki/SKILL-s0.md +0 -0
  176. briefloop-0.18.0/src/wikiskill/resources/officeqa/wiki/index.md +1 -0
  177. briefloop-0.18.0/src/wikiskill/resources/officeqa/wiki/logs.md +1 -0
  178. briefloop-0.18.0/src/wikiskill/resources/officeqa/wiki/prompts/maintainer.md +75 -0
  179. briefloop-0.18.0/src/wikiskill/resources/officeqa/wiki/prompts/proposer.md +56 -0
  180. briefloop-0.18.0/src/wikiskill/resources/officeqa/wiki/skill-impact.md +1 -0
  181. briefloop-0.18.0/src/wikiskill/resources/paper_alignment/README.md +5 -0
  182. briefloop-0.18.0/src/wikiskill/resources/paper_alignment/prompts/maintainer.paper.md +105 -0
  183. briefloop-0.18.0/src/wikiskill/resources/paper_alignment/prompts/officeqa.paper.md +25 -0
  184. briefloop-0.18.0/src/wikiskill/resources/paper_alignment/prompts/proposer.paper.md +67 -0
  185. briefloop-0.18.0/src/wikiskill/resources/paper_alignment/prompts/spreadsheet.paper.md +33 -0
  186. briefloop-0.18.0/src/wikiskill/resources/product/agents/claude-code/wikiskill-executor.md +15 -0
  187. briefloop-0.18.0/src/wikiskill/resources/product/agents/claude-code/wikiskill-maintainer.md +13 -0
  188. briefloop-0.18.0/src/wikiskill/resources/product/agents/claude-code/wikiskill-proposer.md +15 -0
  189. briefloop-0.18.0/src/wikiskill/resources/product/agents/codex/wikiskill-executor.toml +3 -0
  190. briefloop-0.18.0/src/wikiskill/resources/product/agents/codex/wikiskill-maintainer.toml +3 -0
  191. briefloop-0.18.0/src/wikiskill/resources/product/agents/codex/wikiskill-proposer.toml +3 -0
  192. briefloop-0.18.0/src/wikiskill/resources/product/entry-skill/SKILL.md +74 -0
  193. briefloop-0.18.0/src/wikiskill/resources/product/entry-skill/agents/openai.yaml +4 -0
  194. briefloop-0.18.0/src/wikiskill/resources/product/entry-skill/references/native-subagents.md +77 -0
  195. briefloop-0.18.0/src/wikiskill/resources/product/entry-skill/references/workflow.md +155 -0
  196. briefloop-0.18.0/src/wikiskill/resources/product/roles/executor.md +9 -0
  197. briefloop-0.18.0/src/wikiskill/resources/product/roles/maintainer.md +7 -0
  198. briefloop-0.18.0/src/wikiskill/resources/product/roles/proposer.md +9 -0
  199. briefloop-0.18.0/src/wikiskill/resources/research/final-20260907/manifest.json +11 -0
  200. briefloop-0.18.0/src/wikiskill/resources/research/final-20260907/math-episodes.json +2450 -0
  201. briefloop-0.18.0/src/wikiskill/resources/research/final-20260907/sealqa-pairs.json +427 -0
  202. briefloop-0.18.0/src/wikiskill/resources/research/final-20260907/spreadsheet-SKILL.md +28 -0
  203. briefloop-0.18.0/src/wikiskill/resources/research/final-20260907/spreadsheet-pairs.json +1392 -0
  204. briefloop-0.18.0/src/wikiskill/resources/research/final-20260907/summary.json +275 -0
  205. briefloop-0.18.0/src/wikiskill/resources/research/repeatability-20260908/example-provenance.json +14 -0
  206. briefloop-0.18.0/src/wikiskill/resources/research/repeatability-20260908/installed-smoke.json +21 -0
  207. briefloop-0.18.0/src/wikiskill/resources/research/repeatability-20260908/manifest.json +13 -0
  208. briefloop-0.18.0/src/wikiskill/resources/research/repeatability-20260908/repeat1-pairs.json +1392 -0
  209. briefloop-0.18.0/src/wikiskill/resources/research/repeatability-20260908/repeat2-pairs.json +1392 -0
  210. briefloop-0.18.0/src/wikiskill/resources/research/repeatability-20260908/repeat3-pairs.json +1392 -0
  211. briefloop-0.18.0/src/wikiskill/resources/research/repeatability-20260908/summary.json +406 -0
  212. briefloop-0.18.0/src/wikiskill/resources/research/repeatability-20260908/wiki-deliver-the-recalculated-workbook.md +24 -0
  213. briefloop-0.18.0/src/wikiskill/resources/research/skills/livemath/55.md +24 -0
  214. briefloop-0.18.0/src/wikiskill/resources/research/skills/livemath/luna.md +12 -0
  215. briefloop-0.18.0/src/wikiskill/resources/research/skills/officeqa/55.md +42 -0
  216. briefloop-0.18.0/src/wikiskill/resources/research/skills/officeqa/terra.md +15 -0
  217. briefloop-0.18.0/src/wikiskill/resources/research/skills/officeqa-retrieval/55.md +78 -0
  218. briefloop-0.18.0/src/wikiskill/resources/research/skills/officeqa-retrieval/sol.md +93 -0
  219. briefloop-0.18.0/src/wikiskill/resources/research/skills/sealqa/sol.md +52 -0
  220. briefloop-0.18.0/src/wikiskill/resources/research/skills/spreadsheet/55.md +116 -0
  221. briefloop-0.18.0/src/wikiskill/resources/research/skills/spreadsheet/sol.md +49 -0
  222. briefloop-0.18.0/src/wikiskill/resources/research/snapshot.json +5144 -0
  223. briefloop-0.18.0/src/wikiskill/resources/research/snapshot.sha256 +1 -0
  224. briefloop-0.18.0/src/wikiskill/resources/research/update-20260906/livemath-luna-pairs.json +622 -0
  225. briefloop-0.18.0/src/wikiskill/resources/research/update-20260906/livemath-luna-skill.md +14 -0
  226. briefloop-0.18.0/src/wikiskill/resources/research/update-20260906/manifest.json +11 -0
  227. briefloop-0.18.0/src/wikiskill/resources/research/update-20260906/officeqa-luna-skill.md +12 -0
  228. briefloop-0.18.0/src/wikiskill/resources/research/update-20260906/officeqa-sol-skill.md +31 -0
  229. briefloop-0.18.0/src/wikiskill/resources/research/update-20260906/officeqa-sol-v2-pairs.json +452 -0
  230. briefloop-0.18.0/src/wikiskill/resources/research/update-20260906/studies.json +126 -0
  231. briefloop-0.18.0/src/wikiskill/resources/research/update-20260907/effort-analysis.json +174 -0
  232. briefloop-0.18.0/src/wikiskill/resources/research/update-20260907/effort-pairs.json +218 -0
  233. briefloop-0.18.0/src/wikiskill/resources/research/update-20260907/manifest.json +11 -0
  234. briefloop-0.18.0/src/wikiskill/resources/research/update-20260907/officeqa-luna-paper-tools-pairs.json +862 -0
  235. briefloop-0.18.0/src/wikiskill/resources/research/update-20260907/officeqa-luna-paper-tools-skill.md +12 -0
  236. briefloop-0.18.0/src/wikiskill/resources/research/update-20260907/spreadsheet-luna-scoped-python-pairs.json +1392 -0
  237. briefloop-0.18.0/src/wikiskill/resources/research/update-20260907/spreadsheet-luna-scoped-python-skill.md +46 -0
  238. briefloop-0.18.0/src/wikiskill/resources/research/update-20260907/studies.json +97 -0
  239. briefloop-0.18.0/src/wikiskill/resources/runtime/acorn.mjs +6233 -0
  240. briefloop-0.18.0/src/wikiskill/resources/runtime/audit_js.mjs +73 -0
  241. briefloop-0.18.0/src/wikiskill/resources/sealqa/id_split/split_manifest.json +17 -0
  242. briefloop-0.18.0/src/wikiskill/resources/sealqa/id_split/test.json +427 -0
  243. briefloop-0.18.0/src/wikiskill/resources/sealqa/id_split/train.json +82 -0
  244. briefloop-0.18.0/src/wikiskill/resources/sealqa/id_split/val.json +52 -0
  245. briefloop-0.18.0/src/wikiskill/resources/sealqa/protocol.json +28 -0
  246. briefloop-0.18.0/src/wikiskill/resources/sealqa/wiki/SKILL-s0.md +0 -0
  247. briefloop-0.18.0/src/wikiskill/resources/sealqa/wiki/index.md +1 -0
  248. briefloop-0.18.0/src/wikiskill/resources/sealqa/wiki/logs.md +1 -0
  249. briefloop-0.18.0/src/wikiskill/resources/sealqa/wiki/prompts/maintainer.md +39 -0
  250. briefloop-0.18.0/src/wikiskill/resources/sealqa/wiki/prompts/proposer.md +23 -0
  251. briefloop-0.18.0/src/wikiskill/resources/sealqa/wiki/skill-impact.md +1 -0
  252. briefloop-0.18.0/src/wikiskill/resources/spreadsheet/id_split/split_manifest.json +21 -0
  253. briefloop-0.18.0/src/wikiskill/resources/spreadsheet/id_split/test.json +1392 -0
  254. briefloop-0.18.0/src/wikiskill/resources/spreadsheet/id_split/train.json +402 -0
  255. briefloop-0.18.0/src/wikiskill/resources/spreadsheet/id_split/val.json +202 -0
  256. briefloop-0.18.0/src/wikiskill/resources/spreadsheet/protocol.json +16 -0
  257. briefloop-0.18.0/src/wikiskill/resources/spreadsheet/wiki/SKILL-s0.md +0 -0
  258. briefloop-0.18.0/src/wikiskill/resources/spreadsheet/wiki/index.md +1 -0
  259. briefloop-0.18.0/src/wikiskill/resources/spreadsheet/wiki/logs.md +1 -0
  260. briefloop-0.18.0/src/wikiskill/resources/spreadsheet/wiki/prompts/maintainer.md +41 -0
  261. briefloop-0.18.0/src/wikiskill/resources/spreadsheet/wiki/prompts/proposer.md +22 -0
  262. briefloop-0.18.0/src/wikiskill/resources/spreadsheet/wiki/skill-impact.md +1 -0
  263. briefloop-0.18.0/src/wikiskill/results.py +23 -0
  264. briefloop-0.18.0/src/wikiskill/score_rules.py +21 -0
  265. briefloop-0.18.0/src/wikiskill/scorer_trust.py +77 -0
  266. briefloop-0.18.0/src/wikiskill/sealqa/__init__.py +0 -0
  267. briefloop-0.18.0/src/wikiskill/sealqa/loop.py +302 -0
  268. briefloop-0.18.0/src/wikiskill/sealqa/rollout.py +183 -0
  269. briefloop-0.18.0/src/wikiskill/settings.py +6 -0
  270. briefloop-0.18.0/src/wikiskill/skill_proposer.py +76 -0
  271. briefloop-0.18.0/src/wikiskill/spreadsheet/__init__.py +0 -0
  272. briefloop-0.18.0/src/wikiskill/spreadsheet/loop.py +331 -0
  273. briefloop-0.18.0/src/wikiskill/spreadsheet/rollout.py +201 -0
  274. briefloop-0.18.0/src/wikiskill/spreadsheet/study.py +716 -0
  275. briefloop-0.18.0/src/wikiskill/tool_audit.py +76 -0
  276. briefloop-0.18.0/src/wikiskill/wiki.py +147 -0
  277. briefloop-0.18.0/src/wikiskill/wiki_maintainer.py +223 -0
  278. briefloop-0.18.0/start.sh +4 -0
  279. briefloop-0.18.0/tests/test_agent_backend.py +122 -0
  280. briefloop-0.18.0/tests/test_assessment_admission_recovery.py +52 -0
  281. briefloop-0.18.0/tests/test_bridge_harness.py +72 -0
  282. briefloop-0.18.0/tests/test_chat_model_selection.py +66 -0
  283. briefloop-0.18.0/tests/test_core.py +100 -0
  284. briefloop-0.18.0/tests/test_cross_module_regressions.py +82 -0
  285. briefloop-0.18.0/tests/test_delivery_checks.py +102 -0
  286. briefloop-0.18.0/tests/test_evidence.py +95 -0
  287. briefloop-0.18.0/tests/test_execution_records.py +52 -0
  288. briefloop-0.18.0/tests/test_figure_exports.py +84 -0
  289. briefloop-0.18.0/tests/test_figure_flow.py +46 -0
  290. briefloop-0.18.0/tests/test_figures.py +83 -0
  291. briefloop-0.18.0/tests/test_harness.py +177 -0
  292. briefloop-0.18.0/tests/test_host_bins.py +16 -0
  293. briefloop-0.18.0/tests/test_industry_export.py +51 -0
  294. briefloop-0.18.0/tests/test_industry_flow.py +72 -0
  295. briefloop-0.18.0/tests/test_industry_research.py +57 -0
  296. briefloop-0.18.0/tests/test_interactive_runtime.py +222 -0
  297. briefloop-0.18.0/tests/test_length.py +44 -0
  298. briefloop-0.18.0/tests/test_media_sources.py +109 -0
  299. briefloop-0.18.0/tests/test_multimodal_harness.py +120 -0
  300. briefloop-0.18.0/tests/test_multimodal_http.py +32 -0
  301. briefloop-0.18.0/tests/test_opencode_harness.py +418 -0
  302. briefloop-0.18.0/tests/test_opencode_provider.py +69 -0
  303. briefloop-0.18.0/tests/test_pr593_roundtrip.py +66 -0
  304. briefloop-0.18.0/tests/test_progress.py +18 -0
  305. briefloop-0.18.0/tests/test_public_research.py +123 -0
  306. briefloop-0.18.0/tests/test_reader_contract.py +142 -0
  307. briefloop-0.18.0/tests/test_reader_workflow.py +91 -0
  308. briefloop-0.18.0/tests/test_release.py +609 -0
  309. briefloop-0.18.0/tests/test_report_path_regressions.py +57 -0
  310. briefloop-0.18.0/tests/test_research_budget.py +94 -0
  311. briefloop-0.18.0/tests/test_resume_in_place.py +20 -0
  312. briefloop-0.18.0/tests/test_review.py +264 -0
  313. briefloop-0.18.0/tests/test_review_learning.py +144 -0
  314. briefloop-0.18.0/tests/test_review_schema_drift.py +41 -0
  315. briefloop-0.18.0/tests/test_review_visual_input.py +109 -0
  316. briefloop-0.18.0/tests/test_rich_document.py +175 -0
  317. briefloop-0.18.0/tests/test_role_models.py +165 -0
  318. briefloop-0.18.0/tests/test_runtime_settlement.py +206 -0
  319. briefloop-0.18.0/tests/test_source_recovery_regressions.py +42 -0
  320. briefloop-0.18.0/tests/test_source_updates.py +159 -0
  321. briefloop-0.18.0/tests/test_sources_provenance.py +69 -0
  322. briefloop-0.18.0/tests/test_task_notify.py +83 -0
  323. briefloop-0.18.0/tests/test_tavily.py +63 -0
  324. briefloop-0.18.0/tests/test_templates.py +161 -0
  325. briefloop-0.18.0/tests/test_word_import.py +29 -0
  326. briefloop-0.18.0/tests/test_workspaces.py +55 -0
  327. briefloop-0.18.0/third_party/open-design/LICENSE +201 -0
  328. briefloop-0.18.0/third_party/open-design/NOTICE.md +29 -0
  329. briefloop-0.18.0/third_party/open-design/acp/constants.ts +60 -0
  330. briefloop-0.18.0/third_party/open-design/acp/json.ts +147 -0
  331. briefloop-0.18.0/third_party/open-design/acp/models.ts +324 -0
  332. briefloop-0.18.0/third_party/open-design/acp/rpc.ts +327 -0
  333. briefloop-0.18.0/third_party/open-design/acp/session-params.ts +107 -0
  334. briefloop-0.18.0/third_party/open-design/acp/types.ts +18 -0
  335. briefloop-0.18.0/third_party/open-design/byok-reference/byok-opencode.ts +281 -0
  336. briefloop-0.18.0/third_party/open-design/byok-reference/provider-models.ts +427 -0
  337. briefloop-0.18.0/third_party/open-design/core/index.ts +1 -0
  338. briefloop-0.18.0/third_party/open-design/core/json-line-stream.ts +319 -0
  339. briefloop-0.18.0/third_party/open-design/runtime-models/codex-models.ts +110 -0
  340. briefloop-0.18.0/third_party/open-design/runtime-models/fallbacks.json +156 -0
  341. briefloop-0.18.0/third_party/open-design/runtime-models/mmd-routes.ts +166 -0
  342. briefloop-0.18.0/third_party/open-design/runtime-models/models.ts +233 -0
  343. briefloop-0.18.0/third_party/open-design/runtime-models/opencode-models.ts +101 -0
  344. briefloop-0.15.2/LICENSE +0 -22
  345. briefloop-0.15.2/PKG-INFO +0 -585
  346. briefloop-0.15.2/README.md +0 -547
  347. briefloop-0.15.2/pyproject.toml +0 -123
  348. briefloop-0.15.2/setup.py +0 -5
  349. briefloop-0.15.2/src/briefloop.egg-info/PKG-INFO +0 -585
  350. briefloop-0.15.2/src/briefloop.egg-info/SOURCES.txt +0 -625
  351. briefloop-0.15.2/src/briefloop.egg-info/entry_points.txt +0 -3
  352. briefloop-0.15.2/src/briefloop.egg-info/requires.txt +0 -17
  353. briefloop-0.15.2/src/briefloop.egg-info/top_level.txt +0 -1
  354. briefloop-0.15.2/src/multi_agent_brief/__init__.py +0 -36
  355. briefloop-0.15.2/src/multi_agent_brief/analysis_blocks/__init__.py +0 -11
  356. briefloop-0.15.2/src/multi_agent_brief/analysis_blocks/builder.py +0 -206
  357. briefloop-0.15.2/src/multi_agent_brief/analysis_blocks/renderer.py +0 -237
  358. briefloop-0.15.2/src/multi_agent_brief/analysis_blocks/schemas.py +0 -52
  359. briefloop-0.15.2/src/multi_agent_brief/analysis_modules/__init__.py +0 -8
  360. briefloop-0.15.2/src/multi_agent_brief/analysis_modules/base.py +0 -87
  361. briefloop-0.15.2/src/multi_agent_brief/analysis_modules/market_competitor/__init__.py +0 -68
  362. briefloop-0.15.2/src/multi_agent_brief/analysis_modules/market_competitor/auditor.py +0 -290
  363. briefloop-0.15.2/src/multi_agent_brief/analysis_modules/market_competitor/config.py +0 -187
  364. briefloop-0.15.2/src/multi_agent_brief/analysis_modules/market_competitor/event_builder.py +0 -226
  365. briefloop-0.15.2/src/multi_agent_brief/analysis_modules/market_competitor/renderer.py +0 -199
  366. briefloop-0.15.2/src/multi_agent_brief/analysis_modules/market_competitor/schemas.py +0 -518
  367. briefloop-0.15.2/src/multi_agent_brief/analysis_modules/policy_regulatory/__init__.py +0 -7
  368. briefloop-0.15.2/src/multi_agent_brief/analysis_modules/policy_regulatory/audit.py +0 -195
  369. briefloop-0.15.2/src/multi_agent_brief/analysis_modules/policy_regulatory/module.py +0 -387
  370. briefloop-0.15.2/src/multi_agent_brief/analysis_modules/policy_regulatory/schemas.py +0 -129
  371. briefloop-0.15.2/src/multi_agent_brief/analysis_modules/registry.py +0 -73
  372. briefloop-0.15.2/src/multi_agent_brief/audience/__init__.py +0 -19
  373. briefloop-0.15.2/src/multi_agent_brief/audience/profiles.py +0 -246
  374. briefloop-0.15.2/src/multi_agent_brief/audience_memory/__init__.py +0 -23
  375. briefloop-0.15.2/src/multi_agent_brief/audience_memory/profile.py +0 -358
  376. briefloop-0.15.2/src/multi_agent_brief/audit/__init__.py +0 -36
  377. briefloop-0.15.2/src/multi_agent_brief/audit/case_applicability.py +0 -181
  378. briefloop-0.15.2/src/multi_agent_brief/audit/deterministic.py +0 -471
  379. briefloop-0.15.2/src/multi_agent_brief/audit/editorial_governance.py +0 -404
  380. briefloop-0.15.2/src/multi_agent_brief/audit/final_quality.py +0 -764
  381. briefloop-0.15.2/src/multi_agent_brief/audit/harness.py +0 -263
  382. briefloop-0.15.2/src/multi_agent_brief/audit/interfaces.py +0 -96
  383. briefloop-0.15.2/src/multi_agent_brief/audit/limitation_hygiene.py +0 -238
  384. briefloop-0.15.2/src/multi_agent_brief/audit/proposal_boundary.py +0 -34
  385. briefloop-0.15.2/src/multi_agent_brief/audit/redaction.py +0 -27
  386. briefloop-0.15.2/src/multi_agent_brief/audit/rule_packs.py +0 -96
  387. briefloop-0.15.2/src/multi_agent_brief/audit/semantic.py +0 -435
  388. briefloop-0.15.2/src/multi_agent_brief/capabilities/__init__.py +0 -22
  389. briefloop-0.15.2/src/multi_agent_brief/capabilities/catalog.py +0 -215
  390. briefloop-0.15.2/src/multi_agent_brief/capabilities/detect.py +0 -199
  391. briefloop-0.15.2/src/multi_agent_brief/capabilities/models.py +0 -60
  392. briefloop-0.15.2/src/multi_agent_brief/capabilities/recommend.py +0 -206
  393. briefloop-0.15.2/src/multi_agent_brief/cli/__init__.py +0 -2
  394. briefloop-0.15.2/src/multi_agent_brief/cli/authority_guard.py +0 -96
  395. briefloop-0.15.2/src/multi_agent_brief/cli/capability_commands.py +0 -548
  396. briefloop-0.15.2/src/multi_agent_brief/cli/competitors_commands.py +0 -182
  397. briefloop-0.15.2/src/multi_agent_brief/cli/contract_commands.py +0 -90
  398. briefloop-0.15.2/src/multi_agent_brief/cli/core_v2_commands.py +0 -206
  399. briefloop-0.15.2/src/multi_agent_brief/cli/experiments_commands.py +0 -787
  400. briefloop-0.15.2/src/multi_agent_brief/cli/init_commands.py +0 -617
  401. briefloop-0.15.2/src/multi_agent_brief/cli/init_wizard.py +0 -1554
  402. briefloop-0.15.2/src/multi_agent_brief/cli/intake_v2_commands.py +0 -50
  403. briefloop-0.15.2/src/multi_agent_brief/cli/main.py +0 -197
  404. briefloop-0.15.2/src/multi_agent_brief/cli/onboard_commands.py +0 -216
  405. briefloop-0.15.2/src/multi_agent_brief/cli/product_commands.py +0 -1780
  406. briefloop-0.15.2/src/multi_agent_brief/cli/run_commands.py +0 -210
  407. briefloop-0.15.2/src/multi_agent_brief/cli/runtime_commands.py +0 -311
  408. briefloop-0.15.2/src/multi_agent_brief/cli/secrets_commands.py +0 -270
  409. briefloop-0.15.2/src/multi_agent_brief/cli/sources_commands.py +0 -235
  410. briefloop-0.15.2/src/multi_agent_brief/cli/status_commands.py +0 -39
  411. briefloop-0.15.2/src/multi_agent_brief/configs/artifact_contracts.yaml +0 -499
  412. briefloop-0.15.2/src/multi_agent_brief/configs/orchestrator_contract.yaml +0 -180
  413. briefloop-0.15.2/src/multi_agent_brief/configs/policy_packs/default.yaml +0 -65
  414. briefloop-0.15.2/src/multi_agent_brief/configs/policy_profiles/evidence_extract_default.yaml +0 -58
  415. briefloop-0.15.2/src/multi_agent_brief/configs/policy_profiles/finance_default.yaml +0 -44
  416. briefloop-0.15.2/src/multi_agent_brief/configs/policy_profiles/internet_default.yaml +0 -44
  417. briefloop-0.15.2/src/multi_agent_brief/configs/policy_profiles/manufacturing_default.yaml +0 -33
  418. briefloop-0.15.2/src/multi_agent_brief/configs/policy_profiles/solar_manufacturing_default.yaml +0 -64
  419. briefloop-0.15.2/src/multi_agent_brief/configs/report_packs/evidence_extract.yaml +0 -48
  420. briefloop-0.15.2/src/multi_agent_brief/configs/report_packs/management_monthly.yaml +0 -36
  421. briefloop-0.15.2/src/multi_agent_brief/configs/report_packs/market_weekly.yaml +0 -36
  422. briefloop-0.15.2/src/multi_agent_brief/configs/report_packs/solar_industry_periodic.yaml +0 -50
  423. briefloop-0.15.2/src/multi_agent_brief/configs/report_templates/evidence_extract.yaml +0 -55
  424. briefloop-0.15.2/src/multi_agent_brief/configs/report_templates/management_monthly.yaml +0 -48
  425. briefloop-0.15.2/src/multi_agent_brief/configs/report_templates/market_weekly.yaml +0 -49
  426. briefloop-0.15.2/src/multi_agent_brief/configs/report_templates/solar_industry_periodic.yaml +0 -75
  427. briefloop-0.15.2/src/multi_agent_brief/configs/stage_specs.yaml +0 -180
  428. briefloop-0.15.2/src/multi_agent_brief/contracts/__init__.py +0 -236
  429. briefloop-0.15.2/src/multi_agent_brief/contracts/agent_artifact_intake.py +0 -1368
  430. briefloop-0.15.2/src/multi_agent_brief/contracts/artifact_paths.py +0 -159
  431. briefloop-0.15.2/src/multi_agent_brief/contracts/base.py +0 -136
  432. briefloop-0.15.2/src/multi_agent_brief/contracts/errors.py +0 -119
  433. briefloop-0.15.2/src/multi_agent_brief/contracts/json.py +0 -56
  434. briefloop-0.15.2/src/multi_agent_brief/contracts/migrations/__init__.py +0 -5
  435. briefloop-0.15.2/src/multi_agent_brief/contracts/migrations/claim_v1_to_v2.py +0 -33
  436. briefloop-0.15.2/src/multi_agent_brief/contracts/registry.py +0 -159
  437. briefloop-0.15.2/src/multi_agent_brief/contracts/role_topology.py +0 -28
  438. briefloop-0.15.2/src/multi_agent_brief/contracts/runtime_contracts.py +0 -806
  439. briefloop-0.15.2/src/multi_agent_brief/contracts/runtime_errors.py +0 -68
  440. briefloop-0.15.2/src/multi_agent_brief/contracts/schemas/__init__.py +0 -23
  441. briefloop-0.15.2/src/multi_agent_brief/contracts/schemas/atomic_claim_graph.py +0 -304
  442. briefloop-0.15.2/src/multi_agent_brief/contracts/schemas/audit_report.py +0 -80
  443. briefloop-0.15.2/src/multi_agent_brief/contracts/schemas/claim.py +0 -197
  444. briefloop-0.15.2/src/multi_agent_brief/contracts/schemas/claim_draft.py +0 -386
  445. briefloop-0.15.2/src/multi_agent_brief/contracts/schemas/claim_support_matrix.py +0 -334
  446. briefloop-0.15.2/src/multi_agent_brief/contracts/schemas/evidence_span_registry.py +0 -270
  447. briefloop-0.15.2/src/multi_agent_brief/contracts/schemas/policy_profile.py +0 -247
  448. briefloop-0.15.2/src/multi_agent_brief/contracts/schemas/report_spec.py +0 -257
  449. briefloop-0.15.2/src/multi_agent_brief/contracts/schemas/semantic_assessment_report.py +0 -480
  450. briefloop-0.15.2/src/multi_agent_brief/contracts/semantic_assessment_status.py +0 -12
  451. briefloop-0.15.2/src/multi_agent_brief/contracts/source_metadata.py +0 -252
  452. briefloop-0.15.2/src/multi_agent_brief/contracts/v2.py +0 -5401
  453. briefloop-0.15.2/src/multi_agent_brief/contracts/validator.py +0 -225
  454. briefloop-0.15.2/src/multi_agent_brief/control_store/__init__.py +0 -34
  455. briefloop-0.15.2/src/multi_agent_brief/control_store/backup.py +0 -207
  456. briefloop-0.15.2/src/multi_agent_brief/control_store/errors.py +0 -46
  457. briefloop-0.15.2/src/multi_agent_brief/control_store/migrations/0001.sql +0 -379
  458. briefloop-0.15.2/src/multi_agent_brief/control_store/migrations/0002.sql +0 -421
  459. briefloop-0.15.2/src/multi_agent_brief/control_store/migrations/0003.sql +0 -359
  460. briefloop-0.15.2/src/multi_agent_brief/control_store/migrations/0004.sql +0 -301
  461. briefloop-0.15.2/src/multi_agent_brief/control_store/migrations/0005.sql +0 -215
  462. briefloop-0.15.2/src/multi_agent_brief/control_store/migrations/0006.sql +0 -75
  463. briefloop-0.15.2/src/multi_agent_brief/control_store/schema.py +0 -188
  464. briefloop-0.15.2/src/multi_agent_brief/control_store/serialization.py +0 -105
  465. briefloop-0.15.2/src/multi_agent_brief/control_store/sqlite_store.py +0 -6756
  466. briefloop-0.15.2/src/multi_agent_brief/control_store/uow.py +0 -757
  467. briefloop-0.15.2/src/multi_agent_brief/controls/__init__.py +0 -13
  468. briefloop-0.15.2/src/multi_agent_brief/controls/contract.py +0 -106
  469. briefloop-0.15.2/src/multi_agent_brief/core/__init__.py +0 -2
  470. briefloop-0.15.2/src/multi_agent_brief/core/citations.py +0 -336
  471. briefloop-0.15.2/src/multi_agent_brief/core/claim_ledger.py +0 -94
  472. briefloop-0.15.2/src/multi_agent_brief/core/config.py +0 -191
  473. briefloop-0.15.2/src/multi_agent_brief/core/env.py +0 -69
  474. briefloop-0.15.2/src/multi_agent_brief/core/schemas.py +0 -181
  475. briefloop-0.15.2/src/multi_agent_brief/core_run_v2/__init__.py +0 -37
  476. briefloop-0.15.2/src/multi_agent_brief/core_run_v2/artifacts.py +0 -744
  477. briefloop-0.15.2/src/multi_agent_brief/core_run_v2/checkout.py +0 -449
  478. briefloop-0.15.2/src/multi_agent_brief/core_run_v2/claims.py +0 -508
  479. briefloop-0.15.2/src/multi_agent_brief/core_run_v2/errors.py +0 -113
  480. briefloop-0.15.2/src/multi_agent_brief/core_run_v2/gates.py +0 -992
  481. briefloop-0.15.2/src/multi_agent_brief/core_run_v2/integrity.py +0 -581
  482. briefloop-0.15.2/src/multi_agent_brief/core_run_v2/lineage.py +0 -577
  483. briefloop-0.15.2/src/multi_agent_brief/core_run_v2/next_action.py +0 -680
  484. briefloop-0.15.2/src/multi_agent_brief/core_run_v2/policy.py +0 -342
  485. briefloop-0.15.2/src/multi_agent_brief/core_run_v2/publication.py +0 -410
  486. briefloop-0.15.2/src/multi_agent_brief/core_run_v2/publication_platform.py +0 -385
  487. briefloop-0.15.2/src/multi_agent_brief/core_run_v2/recovery.py +0 -1837
  488. briefloop-0.15.2/src/multi_agent_brief/core_run_v2/service.py +0 -2218
  489. briefloop-0.15.2/src/multi_agent_brief/core_run_v2/terminal.py +0 -1779
  490. briefloop-0.15.2/src/multi_agent_brief/core_run_v2/verifier.py +0 -4478
  491. briefloop-0.15.2/src/multi_agent_brief/delivery/__init__.py +0 -6
  492. briefloop-0.15.2/src/multi_agent_brief/delivery/artifact_policy.py +0 -20
  493. briefloop-0.15.2/src/multi_agent_brief/delivery/base.py +0 -36
  494. briefloop-0.15.2/src/multi_agent_brief/delivery/feishu.py +0 -204
  495. briefloop-0.15.2/src/multi_agent_brief/delivery/gws.py +0 -237
  496. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/__init__.py +0 -8
  497. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/approved_guidance_materialized/workspace/config.yaml +0 -18
  498. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/approved_guidance_materialized/workspace/improvement/ledger.jsonl +0 -2
  499. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/approved_guidance_materialized/workspace/sources.yaml +0 -2
  500. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/approved_guidance_materialized/workspace/user.md +0 -4
  501. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/company_event_missing_latest_official_check/workspace/config.yaml +0 -13
  502. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/company_event_missing_latest_official_check/workspace/sources.yaml +0 -9
  503. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/company_event_missing_latest_official_check/workspace/user.md +0 -4
  504. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/control_switchboard_selection_is_not_execution/workspace/config.yaml +0 -12
  505. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/control_switchboard_selection_is_not_execution/workspace/sources.yaml +0 -6
  506. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/control_switchboard_selection_is_not_execution/workspace/user.md +0 -4
  507. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/feedback_triage_required/workspace/config.yaml +0 -6
  508. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/feedback_triage_required/workspace/input/human_feedback.md +0 -1
  509. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/feedback_triage_required/workspace/sources.yaml +0 -2
  510. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/feedback_triage_required/workspace/user.md +0 -3
  511. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/final_abstract_quality_warning_surface/workspace/config.yaml +0 -8
  512. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/final_abstract_quality_warning_surface/workspace/output/brief.md +0 -14
  513. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/final_abstract_quality_warning_surface/workspace/output/intermediate/audit_report.json +0 -1
  514. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/final_abstract_quality_warning_surface/workspace/output/intermediate/audited_brief.md +0 -5
  515. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/final_abstract_quality_warning_surface/workspace/output/intermediate/candidate_claims.json +0 -1
  516. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/final_abstract_quality_warning_surface/workspace/output/intermediate/claim_ledger.json +0 -1
  517. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/final_abstract_quality_warning_surface/workspace/output/intermediate/screened_candidates.json +0 -1
  518. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/final_abstract_quality_warning_surface/workspace/sources.yaml +0 -2
  519. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/final_abstract_quality_warning_surface/workspace/user.md +0 -3
  520. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/formal_release_missing_human_approval/workspace/config.yaml +0 -13
  521. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/formal_release_missing_human_approval/workspace/sources.yaml +0 -9
  522. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/formal_release_missing_human_approval/workspace/user.md +0 -4
  523. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/guidance_manifestation_not_observable/workspace/config.yaml +0 -4
  524. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/guidance_manifestation_not_observable/workspace/sources.yaml +0 -2
  525. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/guidance_manifestation_not_observable/workspace/user.md +0 -3
  526. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/media_only_legal_policy_blocks_research_review/workspace/config.yaml +0 -13
  527. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/media_only_legal_policy_blocks_research_review/workspace/sources.yaml +0 -9
  528. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/media_only_legal_policy_blocks_research_review/workspace/user.md +0 -4
  529. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/mixed_metric_scope_support_blocker/workspace/config.yaml +0 -13
  530. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/mixed_metric_scope_support_blocker/workspace/sources.yaml +0 -9
  531. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/mixed_metric_scope_support_blocker/workspace/user.md +0 -5
  532. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/planned_blocking_issue_cannot_continue/workspace/config.yaml +0 -6
  533. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/planned_blocking_issue_cannot_continue/workspace/output/intermediate/audited_brief.md +0 -3
  534. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/planned_blocking_issue_cannot_continue/workspace/output/intermediate/candidate_claims.json +0 -1
  535. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/planned_blocking_issue_cannot_continue/workspace/output/intermediate/claim_ledger.json +0 -1
  536. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/planned_blocking_issue_cannot_continue/workspace/output/intermediate/feedback_issues.json +0 -25
  537. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/planned_blocking_issue_cannot_continue/workspace/output/intermediate/repair_plan.json +0 -27
  538. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/planned_blocking_issue_cannot_continue/workspace/output/intermediate/screened_candidates.json +0 -1
  539. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/planned_blocking_issue_cannot_continue/workspace/sources.yaml +0 -2
  540. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/planned_blocking_issue_cannot_continue/workspace/user.md +0 -3
  541. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/provenance_projection_minimal/workspace/config.yaml +0 -8
  542. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/provenance_projection_minimal/workspace/output/intermediate/audit_report.json +0 -1
  543. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/provenance_projection_minimal/workspace/output/intermediate/audited_brief.md +0 -3
  544. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/provenance_projection_minimal/workspace/output/intermediate/candidate_claims.json +0 -1
  545. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/provenance_projection_minimal/workspace/output/intermediate/claim_ledger.json +0 -11
  546. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/provenance_projection_minimal/workspace/output/intermediate/quality_gate_report.json +0 -22
  547. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/provenance_projection_minimal/workspace/output/intermediate/screened_candidates.json +0 -1
  548. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/provenance_projection_minimal/workspace/sources.yaml +0 -2
  549. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/provenance_projection_minimal/workspace/user.md +0 -3
  550. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_clean_failed_no_delivery_promotion/workspace/config.yaml +0 -6
  551. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_clean_failed_no_delivery_promotion/workspace/output/delivery/brief.md +0 -3
  552. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_clean_failed_no_delivery_promotion/workspace/output/intermediate/audit_report.json +0 -1
  553. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_clean_failed_no_delivery_promotion/workspace/output/intermediate/audited_brief.md +0 -3
  554. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_clean_failed_no_delivery_promotion/workspace/output/intermediate/claim_ledger.json +0 -1
  555. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_clean_failed_no_delivery_promotion/workspace/output/intermediate/finalize_candidate/tx-reader-clean-fail/reader_brief.md +0 -3
  556. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_clean_failed_no_delivery_promotion/workspace/output/intermediate/finalize_report.json +0 -74
  557. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_clean_failed_no_delivery_promotion/workspace/sources.yaml +0 -9
  558. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_clean_failed_no_delivery_promotion/workspace/user.md +0 -5
  559. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_source_appendix/workspace/config.yaml +0 -13
  560. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_source_appendix/workspace/output/intermediate/audit_report.json +0 -1
  561. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_source_appendix/workspace/output/intermediate/audited_brief.md +0 -5
  562. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_source_appendix/workspace/output/intermediate/candidate_claims.json +0 -1
  563. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_source_appendix/workspace/output/intermediate/claim_ledger.json +0 -40
  564. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_source_appendix/workspace/output/intermediate/screened_candidates.json +0 -1
  565. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_source_appendix/workspace/sources.yaml +0 -3
  566. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_source_appendix/workspace/user.md +0 -3
  567. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_target_relevance/workspace/config.yaml +0 -8
  568. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_target_relevance/workspace/output/brief.md +0 -3
  569. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_target_relevance/workspace/output/intermediate/audit_report.json +0 -1
  570. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_target_relevance/workspace/output/intermediate/audited_brief.md +0 -3
  571. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_target_relevance/workspace/output/intermediate/candidate_claims.json +0 -1
  572. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_target_relevance/workspace/output/intermediate/claim_ledger.json +0 -13
  573. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_target_relevance/workspace/output/intermediate/screened_candidates.json +0 -1
  574. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_target_relevance/workspace/sources.yaml +0 -2
  575. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_target_relevance/workspace/user.md +0 -3
  576. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/release_readiness_forged_event_blocker/workspace/config.yaml +0 -13
  577. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/release_readiness_forged_event_blocker/workspace/output/intermediate/release_readiness_report.json +0 -31
  578. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/release_readiness_forged_event_blocker/workspace/sources.yaml +0 -9
  579. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/release_readiness_forged_event_blocker/workspace/user.md +0 -4
  580. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reverted_entry_removed_from_next_snapshot/workspace/config.yaml +0 -18
  581. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reverted_entry_removed_from_next_snapshot/workspace/improvement/ledger.jsonl +0 -3
  582. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reverted_entry_removed_from_next_snapshot/workspace/improvement/memory.md +0 -3
  583. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reverted_entry_removed_from_next_snapshot/workspace/output/intermediate/improvement_memory_snapshot.md +0 -3
  584. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reverted_entry_removed_from_next_snapshot/workspace/sources.yaml +0 -2
  585. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reverted_entry_removed_from_next_snapshot/workspace/user.md +0 -4
  586. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/config.yaml +0 -12
  587. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/input/sources/source-001.txt +0 -1
  588. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/output/brief.md +0 -37
  589. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/output/delivery/brief.md +0 -37
  590. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/output/intermediate/atomic_claim_graph.json +0 -17
  591. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/output/intermediate/audit_report.json +0 -5
  592. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/output/intermediate/audited_brief.md +0 -37
  593. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/output/intermediate/candidate_claims.json +0 -17
  594. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/output/intermediate/claim_ledger.json +0 -20
  595. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/output/intermediate/evidence_span_registry.json +0 -20
  596. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/output/intermediate/finalize_report.json +0 -40
  597. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/output/intermediate/gates/auditor_quality_gate_report.json +0 -42
  598. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/output/intermediate/gates/finalize_quality_gate_report.json +0 -42
  599. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/output/intermediate/screened_candidates.json +0 -33
  600. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/output/source_appendix.md +0 -12
  601. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/output/source_appendix_trace.md +0 -10
  602. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/report_spec.yaml +0 -24
  603. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/sources.yaml +0 -4
  604. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/user.md +0 -3
  605. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/source_evidence_pack_blocks_non_evidence_file/workspace/config.yaml +0 -13
  606. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/source_evidence_pack_blocks_non_evidence_file/workspace/input/sources/README.md +0 -4
  607. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/source_evidence_pack_blocks_non_evidence_file/workspace/output/intermediate/source_evidence_pack_manifest.json +0 -26
  608. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/source_evidence_pack_blocks_non_evidence_file/workspace/sources.yaml +0 -9
  609. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/source_evidence_pack_blocks_non_evidence_file/workspace/user.md +0 -4
  610. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/stale_current_claim/workspace/config.yaml +0 -9
  611. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/stale_current_claim/workspace/output/intermediate/audit_report.json +0 -1
  612. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/stale_current_claim/workspace/output/intermediate/audited_brief.md +0 -3
  613. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/stale_current_claim/workspace/output/intermediate/candidate_claims.json +0 -1
  614. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/stale_current_claim/workspace/output/intermediate/claim_ledger.json +0 -13
  615. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/stale_current_claim/workspace/output/intermediate/screened_candidates.json +0 -1
  616. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/stale_current_claim/workspace/sources.yaml +0 -2
  617. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/stale_current_claim/workspace/user.md +0 -3
  618. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/third_party_price_snapshot_formal_block/workspace/config.yaml +0 -13
  619. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/third_party_price_snapshot_formal_block/workspace/sources.yaml +0 -9
  620. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/third_party_price_snapshot_formal_block/workspace/user.md +0 -4
  621. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/trajectory_retry_budget_exhausted/workspace/config.yaml +0 -4
  622. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/trajectory_retry_budget_exhausted/workspace/sources.yaml +0 -2
  623. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/trajectory_retry_budget_exhausted/workspace/user.md +0 -3
  624. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/unapproved_entry_not_materialized/workspace/config.yaml +0 -18
  625. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/unapproved_entry_not_materialized/workspace/improvement/ledger.jsonl +0 -1
  626. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/unapproved_entry_not_materialized/workspace/sources.yaml +0 -2
  627. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/unapproved_entry_not_materialized/workspace/user.md +0 -4
  628. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/unauthorized_institution_branding_blocks_release/workspace/config.yaml +0 -18
  629. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/unauthorized_institution_branding_blocks_release/workspace/sources.yaml +0 -9
  630. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/unauthorized_institution_branding_blocks_release/workspace/user.md +0 -5
  631. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/unsupported_material_fact/workspace/config.yaml +0 -8
  632. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/unsupported_material_fact/workspace/output/intermediate/audit_report.json +0 -1
  633. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/unsupported_material_fact/workspace/output/intermediate/audited_brief.md +0 -8
  634. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/unsupported_material_fact/workspace/output/intermediate/candidate_claims.json +0 -1
  635. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/unsupported_material_fact/workspace/output/intermediate/claim_ledger.json +0 -1
  636. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/unsupported_material_fact/workspace/output/intermediate/screened_candidates.json +0 -1
  637. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/unsupported_material_fact/workspace/sources.yaml +0 -2
  638. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/unsupported_material_fact/workspace/user.md +0 -3
  639. briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/manifest.yaml +0 -867
  640. briefloop-0.15.2/src/multi_agent_brief/experiments/__init__.py +0 -2
  641. briefloop-0.15.2/src/multi_agent_brief/experiments/a2_isolation.py +0 -268
  642. briefloop-0.15.2/src/multi_agent_brief/inputs/__init__.py +0 -2
  643. briefloop-0.15.2/src/multi_agent_brief/inputs/classifier.py +0 -322
  644. briefloop-0.15.2/src/multi_agent_brief/inputs/contracts.py +0 -59
  645. briefloop-0.15.2/src/multi_agent_brief/inputs/extractor.py +0 -310
  646. briefloop-0.15.2/src/multi_agent_brief/install/__init__.py +0 -2
  647. briefloop-0.15.2/src/multi_agent_brief/install/writer.py +0 -97
  648. briefloop-0.15.2/src/multi_agent_brief/intake_v2/__init__.py +0 -17
  649. briefloop-0.15.2/src/multi_agent_brief/intake_v2/errors.py +0 -75
  650. briefloop-0.15.2/src/multi_agent_brief/intake_v2/policy.py +0 -216
  651. briefloop-0.15.2/src/multi_agent_brief/intake_v2/scratch.py +0 -197
  652. briefloop-0.15.2/src/multi_agent_brief/intake_v2/service.py +0 -1626
  653. briefloop-0.15.2/src/multi_agent_brief/onboarding/__init__.py +0 -11
  654. briefloop-0.15.2/src/multi_agent_brief/onboarding/io.py +0 -103
  655. briefloop-0.15.2/src/multi_agent_brief/onboarding/mapper.py +0 -483
  656. briefloop-0.15.2/src/multi_agent_brief/onboarding/schema.py +0 -46
  657. briefloop-0.15.2/src/multi_agent_brief/orchestrator/__init__.py +0 -2
  658. briefloop-0.15.2/src/multi_agent_brief/orchestrator/source_evidence.py +0 -43
  659. briefloop-0.15.2/src/multi_agent_brief/orchestrator_contract.py +0 -122
  660. briefloop-0.15.2/src/multi_agent_brief/outputs/__init__.py +0 -2
  661. briefloop-0.15.2/src/multi_agent_brief/outputs/atomic_claim_graph_validation.py +0 -96
  662. briefloop-0.15.2/src/multi_agent_brief/outputs/atomic_reader_projection.py +0 -305
  663. briefloop-0.15.2/src/multi_agent_brief/outputs/evidence_span_validation.py +0 -233
  664. briefloop-0.15.2/src/multi_agent_brief/outputs/finalize.py +0 -1469
  665. briefloop-0.15.2/src/multi_agent_brief/outputs/ib_docx.py +0 -983
  666. briefloop-0.15.2/src/multi_agent_brief/outputs/naming.py +0 -38
  667. briefloop-0.15.2/src/multi_agent_brief/outputs/reader_final_gate.py +0 -614
  668. briefloop-0.15.2/src/multi_agent_brief/outputs/reader_projection.py +0 -567
  669. briefloop-0.15.2/src/multi_agent_brief/outputs/source_appendix.py +0 -765
  670. briefloop-0.15.2/src/multi_agent_brief/outputs/templates/__init__.py +0 -112
  671. briefloop-0.15.2/src/multi_agent_brief/product/__init__.py +0 -49
  672. briefloop-0.15.2/src/multi_agent_brief/product/brief_html/__init__.py +0 -27
  673. briefloop-0.15.2/src/multi_agent_brief/product/brief_html/builder.py +0 -304
  674. briefloop-0.15.2/src/multi_agent_brief/product/brief_html/render.py +0 -184
  675. briefloop-0.15.2/src/multi_agent_brief/product/brief_html/static/THIRD_PARTY_NOTICES.txt +0 -32
  676. briefloop-0.15.2/src/multi_agent_brief/product/brief_html/static/app.js +0 -550
  677. briefloop-0.15.2/src/multi_agent_brief/product/brief_html/static/index.html +0 -51
  678. briefloop-0.15.2/src/multi_agent_brief/product/brief_html/static/provenance.json +0 -18
  679. briefloop-0.15.2/src/multi_agent_brief/product/brief_html/static/style.css +0 -825
  680. briefloop-0.15.2/src/multi_agent_brief/product/bundle_projection.py +0 -686
  681. briefloop-0.15.2/src/multi_agent_brief/product/citation_profile.py +0 -145
  682. briefloop-0.15.2/src/multi_agent_brief/product/init_web/__init__.py +0 -13
  683. briefloop-0.15.2/src/multi_agent_brief/product/init_web/server.py +0 -244
  684. briefloop-0.15.2/src/multi_agent_brief/product/init_web/static/THIRD_PARTY_NOTICES.txt +0 -32
  685. briefloop-0.15.2/src/multi_agent_brief/product/init_web/static/app.js +0 -1281
  686. briefloop-0.15.2/src/multi_agent_brief/product/init_web/static/index.html +0 -80
  687. briefloop-0.15.2/src/multi_agent_brief/product/init_web/static/provenance.json +0 -18
  688. briefloop-0.15.2/src/multi_agent_brief/product/init_web/static/style.css +0 -715
  689. briefloop-0.15.2/src/multi_agent_brief/product/init_web/submit.py +0 -262
  690. briefloop-0.15.2/src/multi_agent_brief/product/materiality_selection.py +0 -475
  691. briefloop-0.15.2/src/multi_agent_brief/product/policy_gate_adapter.py +0 -116
  692. briefloop-0.15.2/src/multi_agent_brief/product/policy_profile.py +0 -39
  693. briefloop-0.15.2/src/multi_agent_brief/product/policy_projection.py +0 -161
  694. briefloop-0.15.2/src/multi_agent_brief/product/policy_registry.py +0 -83
  695. briefloop-0.15.2/src/multi_agent_brief/product/policy_resolver.py +0 -225
  696. briefloop-0.15.2/src/multi_agent_brief/product/quality_closeout.py +0 -188
  697. briefloop-0.15.2/src/multi_agent_brief/product/quality_panel.py +0 -2329
  698. briefloop-0.15.2/src/multi_agent_brief/product/report_pack.py +0 -130
  699. briefloop-0.15.2/src/multi_agent_brief/product/report_pack_aliases.py +0 -68
  700. briefloop-0.15.2/src/multi_agent_brief/product/report_registry.py +0 -101
  701. briefloop-0.15.2/src/multi_agent_brief/product/report_spec.py +0 -181
  702. briefloop-0.15.2/src/multi_agent_brief/product/review_session/__init__.py +0 -28
  703. briefloop-0.15.2/src/multi_agent_brief/product/review_session/contracts.py +0 -323
  704. briefloop-0.15.2/src/multi_agent_brief/product/review_session/launcher.py +0 -51
  705. briefloop-0.15.2/src/multi_agent_brief/product/review_session/resources.py +0 -43
  706. briefloop-0.15.2/src/multi_agent_brief/product/review_session/serialization.py +0 -42
  707. briefloop-0.15.2/src/multi_agent_brief/product/review_session/server.py +0 -299
  708. briefloop-0.15.2/src/multi_agent_brief/product/review_session/static/THIRD_PARTY_NOTICES.txt +0 -32
  709. briefloop-0.15.2/src/multi_agent_brief/product/review_session/static/app.js +0 -15
  710. briefloop-0.15.2/src/multi_agent_brief/product/review_session/static/index.html +0 -33
  711. briefloop-0.15.2/src/multi_agent_brief/product/review_session/static/provenance.json +0 -22
  712. briefloop-0.15.2/src/multi_agent_brief/product/review_session/static/style.css +0 -2
  713. briefloop-0.15.2/src/multi_agent_brief/product/review_session/static_qp.py +0 -60
  714. briefloop-0.15.2/src/multi_agent_brief/product/template_conformance.py +0 -516
  715. briefloop-0.15.2/src/multi_agent_brief/product/template_projection.py +0 -123
  716. briefloop-0.15.2/src/multi_agent_brief/product/template_registry.py +0 -244
  717. briefloop-0.15.2/src/multi_agent_brief/product/template_render_plan.py +0 -315
  718. briefloop-0.15.2/src/multi_agent_brief/product/template_renderer.py +0 -224
  719. briefloop-0.15.2/src/multi_agent_brief/product/trajectory_regulation.py +0 -441
  720. briefloop-0.15.2/src/multi_agent_brief/provenance/__init__.py +0 -5
  721. briefloop-0.15.2/src/multi_agent_brief/provenance/contract.py +0 -21
  722. briefloop-0.15.2/src/multi_agent_brief/provenance/io.py +0 -144
  723. briefloop-0.15.2/src/multi_agent_brief/provenance/model.py +0 -110
  724. briefloop-0.15.2/src/multi_agent_brief/provenance/references.py +0 -43
  725. briefloop-0.15.2/src/multi_agent_brief/provenance/validator.py +0 -135
  726. briefloop-0.15.2/src/multi_agent_brief/quality_gates/__init__.py +0 -19
  727. briefloop-0.15.2/src/multi_agent_brief/quality_gates/contract.py +0 -581
  728. briefloop-0.15.2/src/multi_agent_brief/quality_gates/evaluation.py +0 -1663
  729. briefloop-0.15.2/src/multi_agent_brief/runtime_assets.py +0 -238
  730. briefloop-0.15.2/src/multi_agent_brief/runtime_host_v2/__init__.py +0 -21
  731. briefloop-0.15.2/src/multi_agent_brief/runtime_host_v2/codex.py +0 -224
  732. briefloop-0.15.2/src/multi_agent_brief/runtime_host_v2/contracts.py +0 -249
  733. briefloop-0.15.2/src/multi_agent_brief/runtime_host_v2/errors.py +0 -8
  734. briefloop-0.15.2/src/multi_agent_brief/runtime_host_v2/initialization.py +0 -377
  735. briefloop-0.15.2/src/multi_agent_brief/runtime_host_v2/projections.py +0 -172
  736. briefloop-0.15.2/src/multi_agent_brief/runtime_host_v2/scratch.py +0 -371
  737. briefloop-0.15.2/src/multi_agent_brief/runtime_host_v2/service.py +0 -2444
  738. briefloop-0.15.2/src/multi_agent_brief/runtime_host_v2/source_routes.py +0 -299
  739. briefloop-0.15.2/src/multi_agent_brief/runtime_kits/codex/agents/briefloop-analyst.toml +0 -9
  740. briefloop-0.15.2/src/multi_agent_brief/runtime_kits/codex/agents/briefloop-auditor.toml +0 -9
  741. briefloop-0.15.2/src/multi_agent_brief/runtime_kits/codex/agents/briefloop-claim-ledger.toml +0 -9
  742. briefloop-0.15.2/src/multi_agent_brief/runtime_kits/codex/agents/briefloop-editor.toml +0 -9
  743. briefloop-0.15.2/src/multi_agent_brief/runtime_kits/codex/agents/briefloop-scout.toml +0 -9
  744. briefloop-0.15.2/src/multi_agent_brief/runtime_kits/codex/agents/briefloop-screener.toml +0 -9
  745. briefloop-0.15.2/src/multi_agent_brief/runtime_kits/codex/agents/briefloop-source-planner.toml +0 -9
  746. briefloop-0.15.2/src/multi_agent_brief/runtime_kits/codex/agents/briefloop-source-provider.toml +0 -9
  747. briefloop-0.15.2/src/multi_agent_brief/runtime_kits/codex/config.toml +0 -5
  748. briefloop-0.15.2/src/multi_agent_brief/runtime_kits/codex/skills/briefloop/SKILL.md +0 -33
  749. briefloop-0.15.2/src/multi_agent_brief/runtime_kits/codex/skills/briefloop/references/controlstore-v2.md +0 -214
  750. briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/__init__.py +0 -83
  751. briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/adapter.py +0 -677
  752. briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/adapters/__init__.py +0 -3
  753. briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/adapters/local_proxy_responses.py +0 -38
  754. briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/adapters/openai_responses.py +0 -588
  755. briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/adapters/synthetic_fixture.py +0 -257
  756. briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/admission.py +0 -410
  757. briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/archive.py +0 -1309
  758. briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/baseline.py +0 -375
  759. briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/baselines/structured_checklist_zh_v1.yaml +0 -21
  760. briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/composition.py +0 -462
  761. briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/contracts.py +0 -1591
  762. briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/demo.py +0 -138
  763. briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/errors.py +0 -143
  764. briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/fixtures/synthetic_shadow_v1/bounded_context.json +0 -1
  765. briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/fixtures/synthetic_shadow_v1/instrument.json +0 -1
  766. briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/fixtures/synthetic_shadow_v1/manifest.json +0 -1
  767. briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/fixtures/synthetic_shadow_v1/report.md +0 -13
  768. briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/instrument.py +0 -241
  769. briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/normalization.py +0 -415
  770. briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/parser.py +0 -225
  771. briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/post_final_bridge.py +0 -131
  772. briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/profile.py +0 -185
  773. briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/profiles/research_design_report_zh_v1.yaml +0 -319
  774. briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/prompt_sizer.py +0 -123
  775. briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/prompts/dimension_v1.txt +0 -19
  776. briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/prompts/system_v1.txt +0 -11
  777. briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/prompts.py +0 -311
  778. briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/reader.py +0 -610
  779. briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/resources.py +0 -66
  780. briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/runner.py +0 -984
  781. briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/serialization.py +0 -201
  782. briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/shadow_contracts.py +0 -576
  783. briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/snapshot.py +0 -154
  784. briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/study.py +0 -970
  785. briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/study_contracts.py +0 -462
  786. briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/unit_planner.py +0 -246
  787. briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/validator.py +0 -1394
  788. briefloop-0.15.2/src/multi_agent_brief/sources/__init__.py +0 -16
  789. briefloop-0.15.2/src/multi_agent_brief/sources/api_filings.py +0 -236
  790. briefloop-0.15.2/src/multi_agent_brief/sources/api_news.py +0 -173
  791. briefloop-0.15.2/src/multi_agent_brief/sources/base.py +0 -142
  792. briefloop-0.15.2/src/multi_agent_brief/sources/cached_package.py +0 -120
  793. briefloop-0.15.2/src/multi_agent_brief/sources/cli_provider.py +0 -263
  794. briefloop-0.15.2/src/multi_agent_brief/sources/decider.py +0 -756
  795. briefloop-0.15.2/src/multi_agent_brief/sources/doctor.py +0 -385
  796. briefloop-0.15.2/src/multi_agent_brief/sources/evidence_pack.py +0 -364
  797. briefloop-0.15.2/src/multi_agent_brief/sources/feishu_provider.py +0 -326
  798. briefloop-0.15.2/src/multi_agent_brief/sources/filing_resolver.py +0 -400
  799. briefloop-0.15.2/src/multi_agent_brief/sources/industry_packs.py +0 -130
  800. briefloop-0.15.2/src/multi_agent_brief/sources/join.py +0 -206
  801. briefloop-0.15.2/src/multi_agent_brief/sources/local_signal.py +0 -81
  802. briefloop-0.15.2/src/multi_agent_brief/sources/local_signal_planner.py +0 -636
  803. briefloop-0.15.2/src/multi_agent_brief/sources/manual.py +0 -259
  804. briefloop-0.15.2/src/multi_agent_brief/sources/mcp_provider.py +0 -309
  805. briefloop-0.15.2/src/multi_agent_brief/sources/mineru_provider.py +0 -601
  806. briefloop-0.15.2/src/multi_agent_brief/sources/normalizer.py +0 -95
  807. briefloop-0.15.2/src/multi_agent_brief/sources/opencli_provider.py +0 -282
  808. briefloop-0.15.2/src/multi_agent_brief/sources/planner.py +0 -178
  809. briefloop-0.15.2/src/multi_agent_brief/sources/registry.py +0 -367
  810. briefloop-0.15.2/src/multi_agent_brief/sources/rss.py +0 -190
  811. briefloop-0.15.2/src/multi_agent_brief/sources/search_backends/__init__.py +0 -31
  812. briefloop-0.15.2/src/multi_agent_brief/sources/search_backends/base.py +0 -51
  813. briefloop-0.15.2/src/multi_agent_brief/sources/search_backends/brave.py +0 -192
  814. briefloop-0.15.2/src/multi_agent_brief/sources/search_backends/capabilities.py +0 -94
  815. briefloop-0.15.2/src/multi_agent_brief/sources/search_backends/exa.py +0 -180
  816. briefloop-0.15.2/src/multi_agent_brief/sources/search_backends/firecrawl.py +0 -164
  817. briefloop-0.15.2/src/multi_agent_brief/sources/search_backends/serper.py +0 -241
  818. briefloop-0.15.2/src/multi_agent_brief/sources/search_backends/tavily.py +0 -124
  819. briefloop-0.15.2/src/multi_agent_brief/sources/sourcehub.py +0 -505
  820. briefloop-0.15.2/src/multi_agent_brief/sources/web_search.py +0 -267
  821. briefloop-0.15.2/src/multi_agent_brief/status.py +0 -341
  822. briefloop-0.15.2/src/multi_agent_brief/tools/__init__.py +0 -3
  823. briefloop-0.15.2/src/multi_agent_brief/tools/draft_cleanup.py +0 -197
  824. briefloop-0.15.2/src/multi_agent_brief/workspace/__init__.py +0 -1
  825. briefloop-0.15.2/src/multi_agent_brief/workspace/init_profile.py +0 -133
  826. briefloop-0.15.2/tests/test_069_e2e_stabilization.py +0 -122
  827. briefloop-0.15.2/tests/test_a2_isolation_preflight.py +0 -166
  828. briefloop-0.15.2/tests/test_agent_artifact_intake.py +0 -835
  829. briefloop-0.15.2/tests/test_agent_config_generation.py +0 -226
  830. briefloop-0.15.2/tests/test_agent_onboarding_docs.py +0 -75
  831. briefloop-0.15.2/tests/test_analysis_blocks.py +0 -284
  832. briefloop-0.15.2/tests/test_analysis_module_registry.py +0 -85
  833. briefloop-0.15.2/tests/test_architecture_reference_v04.py +0 -690
  834. briefloop-0.15.2/tests/test_atomic_reader_projection.py +0 -181
  835. briefloop-0.15.2/tests/test_audience_memory.py +0 -140
  836. briefloop-0.15.2/tests/test_audience_profiles.py +0 -280
  837. briefloop-0.15.2/tests/test_audit_semantic.py +0 -360
  838. briefloop-0.15.2/tests/test_b02_search_execution.py +0 -276
  839. briefloop-0.15.2/tests/test_b1416_date_numeric.py +0 -185
  840. briefloop-0.15.2/tests/test_brave_backend.py +0 -263
  841. briefloop-0.15.2/tests/test_brief_html_isolation.py +0 -124
  842. briefloop-0.15.2/tests/test_brief_html_packaging.py +0 -72
  843. briefloop-0.15.2/tests/test_brief_html_pages.py +0 -199
  844. briefloop-0.15.2/tests/test_brief_html_render.py +0 -155
  845. briefloop-0.15.2/tests/test_briefloop_skill_freshness.py +0 -80
  846. briefloop-0.15.2/tests/test_capabilities.py +0 -503
  847. briefloop-0.15.2/tests/test_case_applicability.py +0 -182
  848. briefloop-0.15.2/tests/test_checkout_publication_v2.py +0 -580
  849. briefloop-0.15.2/tests/test_checkout_revision_v2.py +0 -177
  850. briefloop-0.15.2/tests/test_ci_merge_gate.py +0 -260
  851. briefloop-0.15.2/tests/test_citation_parser_home.py +0 -82
  852. briefloop-0.15.2/tests/test_citations.py +0 -184
  853. briefloop-0.15.2/tests/test_claim_ledger.py +0 -60
  854. briefloop-0.15.2/tests/test_cli.py +0 -272
  855. briefloop-0.15.2/tests/test_competitor_onboarding.py +0 -123
  856. briefloop-0.15.2/tests/test_config_contract.py +0 -281
  857. briefloop-0.15.2/tests/test_config_language_compat.py +0 -62
  858. briefloop-0.15.2/tests/test_contract_commands.py +0 -432
  859. briefloop-0.15.2/tests/test_contract_registry.py +0 -322
  860. briefloop-0.15.2/tests/test_contracts.py +0 -1233
  861. briefloop-0.15.2/tests/test_control_contracts_v2.py +0 -631
  862. briefloop-0.15.2/tests/test_control_store.py +0 -2962
  863. briefloop-0.15.2/tests/test_control_store_intake_v2.py +0 -1546
  864. briefloop-0.15.2/tests/test_core_run_v2.py +0 -6217
  865. briefloop-0.15.2/tests/test_core_run_v2_next_action.py +0 -134
  866. briefloop-0.15.2/tests/test_core_run_v2_packaging.py +0 -827
  867. briefloop-0.15.2/tests/test_core_run_v2_recovery.py +0 -2640
  868. briefloop-0.15.2/tests/test_core_run_v2_terminal.py +0 -3310
  869. briefloop-0.15.2/tests/test_core_v2_commands.py +0 -561
  870. briefloop-0.15.2/tests/test_deterministic_audit.py +0 -148
  871. briefloop-0.15.2/tests/test_docs_archive_policy.py +0 -85
  872. briefloop-0.15.2/tests/test_doctor.py +0 -237
  873. briefloop-0.15.2/tests/test_docx_templates.py +0 -226
  874. briefloop-0.15.2/tests/test_editor_cleanup.py +0 -130
  875. briefloop-0.15.2/tests/test_editorial_governance.py +0 -279
  876. briefloop-0.15.2/tests/test_evidence_extract_pack.py +0 -310
  877. briefloop-0.15.2/tests/test_exa_backend.py +0 -331
  878. briefloop-0.15.2/tests/test_experiment_080_public_pilot.py +0 -79
  879. briefloop-0.15.2/tests/test_explicit_runtime_identity.py +0 -163
  880. briefloop-0.15.2/tests/test_fetch_github_review_comments.py +0 -86
  881. briefloop-0.15.2/tests/test_filing_resolver_provider.py +0 -376
  882. briefloop-0.15.2/tests/test_final_quality_audit.py +0 -335
  883. briefloop-0.15.2/tests/test_finalize_delivery_gate.py +0 -2296
  884. briefloop-0.15.2/tests/test_firecrawl_backend.py +0 -299
  885. briefloop-0.15.2/tests/test_generator_boundaries.py +0 -29
  886. briefloop-0.15.2/tests/test_init_from_onboarding.py +0 -353
  887. briefloop-0.15.2/tests/test_init_web_server.py +0 -291
  888. briefloop-0.15.2/tests/test_init_web_submit.py +0 -309
  889. briefloop-0.15.2/tests/test_input_classification_governance.py +0 -460
  890. briefloop-0.15.2/tests/test_install_scripts.py +0 -226
  891. briefloop-0.15.2/tests/test_install_writer.py +0 -117
  892. briefloop-0.15.2/tests/test_intake_v2_commands.py +0 -343
  893. briefloop-0.15.2/tests/test_launch_smoke.py +0 -128
  894. briefloop-0.15.2/tests/test_limitation_hygiene.py +0 -205
  895. briefloop-0.15.2/tests/test_local_signal.py +0 -607
  896. briefloop-0.15.2/tests/test_local_signal_provider.py +0 -144
  897. briefloop-0.15.2/tests/test_market_competitor_audit.py +0 -172
  898. briefloop-0.15.2/tests/test_market_competitor_config.py +0 -178
  899. briefloop-0.15.2/tests/test_market_competitor_events.py +0 -243
  900. briefloop-0.15.2/tests/test_market_competitor_schemas.py +0 -211
  901. briefloop-0.15.2/tests/test_materiality_selection.py +0 -406
  902. briefloop-0.15.2/tests/test_minimal_comparative_eval.py +0 -104
  903. briefloop-0.15.2/tests/test_onboard_commands.py +0 -35
  904. briefloop-0.15.2/tests/test_onboarding_mapper.py +0 -345
  905. briefloop-0.15.2/tests/test_orchestrator_contract_docs.py +0 -279
  906. briefloop-0.15.2/tests/test_package_version.py +0 -43
  907. briefloop-0.15.2/tests/test_policy_profile_dogfood_fixtures.py +0 -74
  908. briefloop-0.15.2/tests/test_policy_profiles.py +0 -498
  909. briefloop-0.15.2/tests/test_policy_regulatory_audit.py +0 -174
  910. briefloop-0.15.2/tests/test_policy_regulatory_module.py +0 -245
  911. briefloop-0.15.2/tests/test_post_final_review_contracts.py +0 -228
  912. briefloop-0.15.2/tests/test_post_final_review_isolation.py +0 -51
  913. briefloop-0.15.2/tests/test_post_final_review_packaging.py +0 -37
  914. briefloop-0.15.2/tests/test_post_final_review_session.py +0 -133
  915. briefloop-0.15.2/tests/test_product_baseline.py +0 -621
  916. briefloop-0.15.2/tests/test_public_product_rename.py +0 -447
  917. briefloop-0.15.2/tests/test_public_safety_scan.py +0 -368
  918. briefloop-0.15.2/tests/test_quality_harness.py +0 -47
  919. briefloop-0.15.2/tests/test_quality_panel.py +0 -487
  920. briefloop-0.15.2/tests/test_reader_final_gate.py +0 -369
  921. briefloop-0.15.2/tests/test_reader_projection.py +0 -352
  922. briefloop-0.15.2/tests/test_release_consistency.py +0 -488
  923. briefloop-0.15.2/tests/test_rendered_output_validation.py +0 -213
  924. briefloop-0.15.2/tests/test_report_bundles.py +0 -766
  925. briefloop-0.15.2/tests/test_report_packs.py +0 -715
  926. briefloop-0.15.2/tests/test_report_template_renderer.py +0 -83
  927. briefloop-0.15.2/tests/test_role_topology.py +0 -187
  928. briefloop-0.15.2/tests/test_rule_packs.py +0 -146
  929. briefloop-0.15.2/tests/test_runtime_assets.py +0 -246
  930. briefloop-0.15.2/tests/test_runtime_host_codex_v2.py +0 -1580
  931. briefloop-0.15.2/tests/test_runtime_host_codex_workspace_binding_v2.py +0 -377
  932. briefloop-0.15.2/tests/test_runtime_host_v2.py +0 -701
  933. briefloop-0.15.2/tests/test_semantic_assessment_dogfood_fixtures.py +0 -75
  934. briefloop-0.15.2/tests/test_semantic_evaluator_adapter.py +0 -562
  935. briefloop-0.15.2/tests/test_semantic_evaluator_admission.py +0 -1014
  936. briefloop-0.15.2/tests/test_semantic_evaluator_archive.py +0 -332
  937. briefloop-0.15.2/tests/test_semantic_evaluator_baseline.py +0 -1065
  938. briefloop-0.15.2/tests/test_semantic_evaluator_contracts.py +0 -184
  939. briefloop-0.15.2/tests/test_semantic_evaluator_demo.py +0 -62
  940. briefloop-0.15.2/tests/test_semantic_evaluator_e2e.py +0 -99
  941. briefloop-0.15.2/tests/test_semantic_evaluator_instrument.py +0 -303
  942. briefloop-0.15.2/tests/test_semantic_evaluator_isolation.py +0 -279
  943. briefloop-0.15.2/tests/test_semantic_evaluator_normalization.py +0 -205
  944. briefloop-0.15.2/tests/test_semantic_evaluator_packaging.py +0 -700
  945. briefloop-0.15.2/tests/test_semantic_evaluator_parser_validator.py +0 -1835
  946. briefloop-0.15.2/tests/test_semantic_evaluator_planner.py +0 -136
  947. briefloop-0.15.2/tests/test_semantic_evaluator_reader.py +0 -378
  948. briefloop-0.15.2/tests/test_semantic_evaluator_runner.py +0 -414
  949. briefloop-0.15.2/tests/test_semantic_evaluator_shadow_cli.py +0 -551
  950. briefloop-0.15.2/tests/test_semantic_evaluator_shadow_contracts.py +0 -138
  951. briefloop-0.15.2/tests/test_semantic_evaluator_study.py +0 -535
  952. briefloop-0.15.2/tests/test_serper_backend.py +0 -318
  953. briefloop-0.15.2/tests/test_skill_contracts.py +0 -76
  954. briefloop-0.15.2/tests/test_source_appendix.py +0 -763
  955. briefloop-0.15.2/tests/test_source_config_fix.py +0 -121
  956. briefloop-0.15.2/tests/test_source_decider.py +0 -730
  957. briefloop-0.15.2/tests/test_source_evidence_pack.py +0 -366
  958. briefloop-0.15.2/tests/test_source_join.py +0 -533
  959. briefloop-0.15.2/tests/test_source_providers.py +0 -1554
  960. briefloop-0.15.2/tests/test_sourcehub_lite.py +0 -260
  961. briefloop-0.15.2/tests/test_start_commands.py +0 -414
  962. briefloop-0.15.2/tests/test_status.py +0 -716
  963. briefloop-0.15.2/tests/test_subagent_first_contract.py +0 -91
  964. briefloop-0.15.2/tests/test_tavily_guidance.py +0 -527
  965. briefloop-0.15.2/tests/test_terms_and_docs.py +0 -101
  966. briefloop-0.15.2/tests/test_trajectory_regulation.py +0 -335
  967. briefloop-0.15.2/tests/test_v1_pilot_evidence.py +0 -246
  968. briefloop-0.15.2/tests/test_web_search_metadata.py +0 -142
  969. {briefloop-0.15.2 → briefloop-0.18.0}/setup.cfg +0 -0
  970. {briefloop-0.15.2 → briefloop-0.18.0}/src/briefloop.egg-info/dependency_links.txt +0 -0
@@ -0,0 +1,2207 @@
1
+ # 变更记录
2
+
3
+ ## 0.18.0 — 2026-09-11
4
+
5
+ - 公开发布身份统一:Python 分发名 `briefloop-local` → `briefloop`,CLI 仍为 `briefloop`。
6
+ - 补丁版 WikiSkill 内联为本发行版的顶层 `wikiskill` 模块,移除未发布的外部依赖;`pip install briefloop` 自包含可用。
7
+ - 同步 README、升级说明与使用指南;修正“已发布到 PyPI”与实际状态不一致的说明。
8
+ - GitHub 仓库简介、主页与 topics 更新为多运行时 Agent 工作台定位。
9
+
10
+ ## 0.17.1 — 2026-09-10
11
+
12
+ - 接入 Codex、OpenCode、Claude、Kimi、Hermes、Reasonix、MiMo,统一模型目录与手填入口。
13
+ - 自定义 API 显式支持 Chat Completions、Responses、Anthropic Messages,保存与测试分开。
14
+ - 独立设置页面,兼顾浏览器窗口和未来 Electron 的共享界面。
15
+ - 报告编辑、版本绑定、证据追溯、独立审阅与 Word 导出。
16
+ - 执行采用用户设置的时限,移除额外的模型测试时限。
17
+ - 添加合成周报示例;本地截图、报告、工作区和凭据不进入源码发布。
18
+
19
+ ## 0.17.0 — 2026-09-09
20
+
21
+ 本版将原工作流工具升级为本地 Codex Agent 工作台。
22
+
23
+ ### 新增
24
+
25
+ - 持久对话、文件附件、消息排队与中途补充、公开工具和子 Agent 活动、上下文用量。
26
+ - 对话归档、回收站、恢复与批量归档已结束对话;相关报告和来源保留。
27
+ - 所有 Scout 共用的工具侧研究预算:Tavily 搜索尝试、候选 URL、全文来源 URL,含用量与耗尽提示。
28
+ - 明确的正文目标字数、上限、自定义数值与已保存稿件计数。
29
+ - Tavily Search/Extract 及 Scout 专属技能,保留原始响应并标明提取来源。
30
+ - Evaluator、Wiki Maintainer、Skill Proposer 的独立配置,以及待验证候选的可见状态。
31
+
32
+ ### 调整
33
+
34
+ - 单仓库执行 `./start.sh`,自动安装随项目提供的 WikiSkill wheel。
35
+ - 模型 ID 与 Codex Responses provider 可自行填写,不限制为 OpenAI 型号。
36
+ - Scout 使用独立输出位置;原文支持范围读取和同轮 URL 复用。
37
+ - Evaluator 优先加载稿件引用来源,移除重复嵌套评价及试验稿的重复单稿评分。
38
+ - 本版统一中文版文档,国际化和行业 Deep Research 延后。
39
+
40
+ ### 兼容边界
41
+
42
+ 旧历史和标签保留,旧工作区不自动迁移。请保留旧目录并新建工作区。本版以 macOS 本地路径为已验证范围。发布包不包含用户工作区、报告、凭据或私有计划;开发验证不调用真实模型或 Tavily。
43
+
44
+ ---
45
+
46
+ ## 历史版本记录(旧架构,保留原文)
47
+
48
+ # Changelog
49
+
50
+ All notable changes to the multi-agent-brief-workflow project will be documented in this file.
51
+
52
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
53
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
54
+
55
+ ## [Unreleased]
56
+
57
+ ### Changed
58
+
59
+ - Removed every issuer identity from packaged defaults: the solar watchlist
60
+ now ships global peers only and `briefloop new solar-stock-periodic`
61
+ requires an explicit `--core-ticker` (optional `--core-name`), so the
62
+ subject search task is derived from Human input instead of a packaged
63
+ constant. The issuer-named implications section intent is now
64
+ `core_implications`.
65
+ - Renamed the issuer-named workbook profile to `solar-weekly-v1`. The
66
+ parser matches the subject detail sheet by its `周明细` suffix and resolves
67
+ the subject trend column without any issuer name. Fresh workspaces only.
68
+ - `scripts/check_public_safety.py` now enforces case-insensitive default
69
+ banned identity terms over tracked files (CI and pre-push), so packaged
70
+ defaults cannot regain a real-issuer identity.
71
+
72
+ ### Added
73
+
74
+ - Added an experimental CLI surface gate: the `experiments`, `eval`, `new`,
75
+ `packs`, `validate-report-spec`, `extract`, and `quality` commands are
76
+ hidden from default help behind `BRIEFLOOP_EXPERIMENTAL=1` while staying
77
+ callable for existing scripts.
78
+ - Added the experimental `multi_agent_brief.evaluation_v2` agent-rollout
79
+ evaluation stack: strict case contracts with per-defect blocking levels and
80
+ derived case-level blocking, packaged corpus loading with production
81
+ composition thresholds, the paired reward
82
+ `R = defect_recall * true_negative_rate` (warning-level detections count
83
+ toward recall), an injectable-rollout split runner, and an offline
84
+ findings-to-outcome mapping for recorded quality-gate reports. The corpus
85
+ ships as an empty skeleton with 16 generator specs ported from the legacy
86
+ fixtures; superseded by the entries below (the adapter and the measured
87
+ baseline have since landed). Added `docs/claims.md` consolidating the public claims boundary,
88
+ including the defect-detection NOT MEASURED line (since measured; see the
89
+ next entry).
90
+ - Added the regenerated 80-case packaged detection corpus (deterministic generator, construction-time oracle) and the real codex auditor rollout path: `briefloop eval run` drives concurrent per-case rollouts with retry and appends reward-ledger records pinned to corpus, `agent_roles.yaml`, and reporting-contract digests. First measured baseline (2026-09-03): recall 1.000 in all three val runs, mean reward 0.931, spread 0.063; the fail-closed reward gate stays unrationalized while spread exceeds the 2.5-point threshold, and the defect-detection claim in `docs/claims.md` is now MEASURED with numbers.
91
+
92
+ Pre-v0.16 architecture slices (not yet a released version): the
93
+ reader-truth and evidence-balance package plus structured claim metrics
94
+ for Solar Stock Periodic.
95
+ Fresh workspaces only: the frozen run contract changes and existing
96
+ workspaces are not guaranteed to keep running.
97
+
98
+ ### Added
99
+
100
+ - Finalize render now derives the reader brief with `[S#]` citation labels,
101
+ a real source appendix, output-relative chart paths, and a deterministic
102
+ compliance footer; chart images render correctly across markdown, docx,
103
+ and the static HTML view.
104
+ - `output/brief.docx` became a Store reader artifact produced whenever the
105
+ frozen `output_formats` include docx (requires the `docx` extra; missing
106
+ dependency fails closed).
107
+ - Deterministic reader-skeleton gate: pack-frozen
108
+ `required_section_intents` must map to sections (or explicit coverage-gap
109
+ disclosures); the catalyst calendar needs a post-report date; the
110
+ earnings/valuation section must reference the core ticker and a frozen
111
+ multiple when peer multiples exist.
112
+ - Price-vs-narrative divergence gate: a core-subject one-week move beyond
113
+ the frozen threshold (solar default 10%) must be stated in a
114
+ market-reaction section — bound to the core ticker, direction, and
115
+ magnitude within tolerance, with snapshot provenance — and backed by a
116
+ risk-type claim or an explicit no-evidence disclosure.
117
+ - Scout aspect-bucket diagnostics: pack-frozen `required_claim_aspects`
118
+ (solar: earnings growth, cash flow/dilution, guidance risk, price
119
+ reaction) surface an uncovered aspect as a non-blocking warning
120
+ finding; aspect tags do not bind to the core company, so this is a
121
+ visibility diagnostic rather than a proof of balance.
122
+ - Chart placement contract: bound charts must sit inside their bound
123
+ sections, manifest charts may not be silently omitted, and the subject
124
+ price/volume chart carries deterministic event-day markers
125
+ (`market-chart-png-v2`).
126
+ - Pre-submit content lint: analyst/editor invocation validation runs the
127
+ same deterministic rule bodies read-only, surfacing violations before
128
+ accept instead of consuming the single preauthorized gate-repair cycle.
129
+ - QoQ-contrast slice: claim drafts may attach a subject-scoped structured
130
+ metric limited to five cumulative metrics; Python derives Q1 = H1 - Q2
131
+ under strict same-subject/metric/unit/year uniqueness (ambiguity is a
132
+ diagnostic, never a guess). The one blocking rule requires a citing
133
+ paragraph headlining a sign-conflicting YoY to show the derived QoQ
134
+ with the correct sign; all other structured-metric issues are visible
135
+ warnings. Dated upcoming catalysts render as a Python-owned calendar
136
+ table in the final markdown/docx/html (post-report-date events only,
137
+ explicit empty state); the calendar gate and hand-written calendars
138
+ are gone.
139
+
140
+ - The Tavily acquisition matrix emits stderr progress lines (per search
141
+ task, extract phase, backfill selection); stdout JSON is unchanged.
142
+
143
+ ## [0.15.3] — 2026-08-14
144
+
145
+ ### Added
146
+
147
+ - Added fresh-only schema 19 and strict `market_data_snapshot.v2` for Solar
148
+ Stock Periodic, including workbook identity, adjusted-close history,
149
+ corporate actions, FX, valuation fields, event reactions, gaps, and conflicts.
150
+ - Added profile-bound ingestion for the solar weekly XLSX layout. Offline
151
+ `ingest` keeps verified workbook cells authoritative; workbook-aware `fetch`
152
+ uses Yahoo only to fill missing securities, history, FX, and fields.
153
+ - Added paired Solar workspace `--report-window-start/--report-window-end`
154
+ options so a Human can freeze the workbook's exact reporting period before
155
+ Store initialization.
156
+ - Added Store-bound primary/overseas comparison tables, an event timeline,
157
+ seven deterministic PNG charts, a JSON read model, a hash-bound chart
158
+ manifest, and a fifth Market Data tab in the local HTML report.
159
+
160
+ ### Changed
161
+
162
+ - Solar market-data Gates now block missing required series, window mismatch,
163
+ blocking workbook gaps, and conflicts. Embedded workbook charts remain
164
+ display-only, and structured market data does not become Claim Ledger
165
+ evidence or prove event causation.
166
+ - Product-owned workbook outputs (latest price, period return, USD conversion,
167
+ and USD market cap) are recomputed from frozen cells and FX inputs; formula
168
+ caches are comparison-only and mismatches remain visible blockers.
169
+ - The DOCX renderer now embeds bounded local PNG/JPEG Markdown images while
170
+ rejecting absolute, escaping, SVG, missing, unsupported, and oversized image
171
+ paths.
172
+
173
+ ## [0.15.2] — 2026-08-10
174
+
175
+ ### Removed
176
+
177
+ - **Breaking:** the legacy JSON control-plane runtime is deleted. The
178
+ `state`, `gates`, `feedback`, `repair`, `improve`, `provenance`, `controls`,
179
+ `approval`, `release`, `inputs`, `semantic-support`, `audit`, `finalize`,
180
+ `deliver`, `analysis-blocks`, `claude`, `hermes`, and `workbuddy` CLI command
181
+ modules are removed, along with their JSON control files, role skills,
182
+ generated platform role agents (`.claude/agents/`, `.codex/agents/`,
183
+ `.opencode/`, `.codebuddy/`), the five-verb writer command (`/briefloop`),
184
+ and the Hermes / OpenCode / CodeBuddy / WorkBuddy runtime assets.
185
+ - Workspace authority now classifies only fresh / sqlite / invalid_sqlite; a
186
+ legacy JSON-only workspace is treated as fresh and must be bootstrapped to
187
+ SQLite. The active runtime is the packaged Codex ControlStore kit
188
+ (`briefloop runtime install --runtime codex`).
189
+
190
+ ## [0.15.1] — 2026-08-10 (prepared release target)
191
+
192
+ This prepared release target is an experimental, fresh-only extension of the
193
+ SQLite/Codex runtime. It is not a claim that the system proves report quality,
194
+ investment outcomes, or live provider reliability.
195
+
196
+ ### Added
197
+
198
+ - Added Store-qualified AI Second Opinion / post-final review for a finalized
199
+ report: multiple Human-authorized assessment generations, exact result
200
+ selection, archive-bound replay/projection, append-only dispositions, and
201
+ Human-originated observations with separately approved guidance.
202
+ - Added schema 18 (`0018.sql`) for the experimental `solar-stock-periodic`
203
+ ReportPack. A frozen plan contains 20 independent discovery tasks: 11 listed
204
+ companies, 5 event-only entities, and 4 industry/policy/financing themes.
205
+ - Added the multi-search Tavily acquisition contract and immutable bundle
206
+ records. Each task can request up to 20 advanced Search results; eligible
207
+ URLs are Batch Extracted in groups of 20; an under-covered task can receive
208
+ one deterministic 30-day targeted backfill; the safety envelope is 800
209
+ unique URLs.
210
+ - Added ReportPack, template, and policy-profile metadata for global-solar
211
+ capital-markets weeklies, including required sections for equity comparison,
212
+ events, policy/input signals, capacity/assets, sentiment, and core-company
213
+ implications.
214
+
215
+ ### Changed
216
+
217
+ - Tavily no longer executes the old single reconstructed industry query or a
218
+ five-URL product cap. Runtime execution follows the Store-frozen task matrix
219
+ in order; Search snippets remain discovery-only and only successful,
220
+ non-empty Extract content can enter Intake.
221
+ - Exact replay never redials and failures never auto-retry. Partial task
222
+ failures remain visible with per-task and per-URL outcomes instead of being
223
+ reported as “no events”.
224
+ - The source-provider role is proposal-only. Provider I/O, credentials,
225
+ receipts, frozen artifacts, and Store writes remain owned by the deterministic
226
+ runtime host.
227
+ - Public skills, README files, architecture/migration/support docs, and the
228
+ version matrix now describe the v0.14.0 → v0.15.1 release-target boundary
229
+ and the schema-18 fresh-only rule.
230
+
231
+ ### Fixed
232
+
233
+ - Fixed Reader Review direction admission and exact archive-bound replay paths,
234
+ including zero-finding, failed, and not-run report states.
235
+ - Fixed Human-observation Review Session lifecycle/error reporting so stale or
236
+ disconnected browser pages explain that the session must be reopened instead
237
+ of presenting an opaque “record failed” message.
238
+ - Fixed projection of real Reader Review scopes and units: completed
239
+ no-finding checks, provider-unable checks, and per-call evidence are shown
240
+ without falling back to the obsolete nine-dimension placeholder grid.
241
+
242
+ ### Limits and fresh-only boundary
243
+
244
+ - Existing schema-17 or older SQLite workspaces are not migrated or upgraded in
245
+ place; create a fresh schema-18 workspace for `solar-stock-periodic`.
246
+ - The ReportPack reserves the market-data snapshot boundary, but this target
247
+ does not ship a YahooMarketDataAdapter. It must not invent prices, returns,
248
+ FX, or valuation multiples when a verified snapshot is absent.
249
+ - Live Tavily usefulness, source coverage, provider reliability, cost, and
250
+ acquisition-to-`finalized_local` performance remain **NOT MEASURED**.
251
+ - Solar Stock Periodic and AI Second Opinion remain Experimental and advisory;
252
+ neither changes Gates, finalization, delivery, publication, or Core
253
+ next-action authority.
254
+
255
+ ## [0.14.0] — 2026-07-22
256
+
257
+ ### Added
258
+
259
+ - Added an Experimental one-shot loopback initialization wizard through
260
+ `briefloop init <workspace> --web`. It uses the same strict ControlStore
261
+ bootstrap path as terminal initialization and shows the real receipt.
262
+ - Added `briefloop quality html --workspace <workspace>` for a self-contained,
263
+ read-only three-page HTML export covering quality status, optional LAJ
264
+ advisory findings, and the honest unavailable state of the Improvement
265
+ Ledger. The pages contain no workflow or write authority.
266
+ - Rewrote the canonical and packaged Codex Skill around the SQLite-only
267
+ `CoreRunNextAction` protocol, Receipt-backed invocations, strict human
268
+ requests, and the distinction between `package_ready` and `delivered`.
269
+
270
+ ### Changed
271
+
272
+ - Codex implemented and tested the v0.14 engineering changes in scoped
273
+ branches; human maintainers authorized merges and this release. Codex output
274
+ did not approve itself or create product, research, or delivery authority.
275
+ - The SQLite ControlStore, accepted strict requests, Receipts, and ledger
276
+ relations are the sole runtime authority for new runs. Legacy control files
277
+ and report/status/Quality Panel exports are non-authoritative projections;
278
+ strict action, envelope, and human-request JSON payloads are revalidated
279
+ against the Store and are not authority by themselves.
280
+
281
+ ### Removed
282
+
283
+ - **Breaking (`fix!:`):** the Improvement Ledger / Memory file lifecycle
284
+ (`improvement/ledger.jsonl`, `improvement/memory.md`,
285
+ `improvement_memory_snapshot.md`) is retired. Its projection and per-run
286
+ freeze code lived in the stack LD2-3 deleted, so these files have no reader
287
+ or writer; existing workspace copies are inert. A Store-native Improvement
288
+ Ledger is MU-2 work. The support matrix moves the row from Supported to
289
+ Retired.
290
+ - **Breaking (`fix!:`):** the v1.0 RC readiness release gate is retired: its
291
+ scenario runner drove the
292
+ deleted legacy runtime-state stack, so the gate could not execute. The
293
+ `release.sh` v1.0 branch and the release checklist now require only the
294
+ pilot evidence gate, which is unaffected and still runs on every release
295
+ through `check_release_consistency.py`.
296
+ - **Breaking (`fix!:`):** LEGACY-DELETE-2-3 deletes the legacy JSON
297
+ runtime-state stack (`orchestrator/runtime_state/`, 30 modules) and its
298
+ dead consumer layer — `orchestrator/{handoff,run_integrity,timing,
299
+ recovery_state,run_archive}.py`, `controls/switchboard.py`,
300
+ `improvement/`, `feedback/`, `repair/`, `provenance/builder.py`,
301
+ `workbuddy/diagnose.py`, `product/release_approval.py`,
302
+ `quality_gates/state.py`, `experiments/` (MABW-080 tooling), and
303
+ `cli/start_commands.py` — 57 modules / ~39.8k lines. Typed rejections
304
+ (`runtime_command_unsupported` / `legacy_workspace_unsupported` /
305
+ `[run] runtime_adapter_unsupported`) remain live contracts on every
306
+ retired surface; the SQLite ControlStore stays the sole runtime authority.
307
+ - **Breaking (`fix!:`):** the `eval-cases` CLI (previously Supported) is
308
+ retired with its legacy-runtime evaluation driver; the command now fails
309
+ as an unknown argparse choice. Packaged fixture data under
310
+ `evaluation_cases/fixtures/` is preserved for the EF-1/EF-2 Store-native
311
+ evaluation rebuild.
312
+ - **Breaking (`fix!:`):** `experiments 080` tooling (previously Archived
313
+ Experimental) is retired with the stack; scorecard reproduction is
314
+ satisfied by git history and run archives. The `experiments laj` advisory
315
+ surface is unaffected.
316
+ - **Breaking (`fix!:`):** the retired D1 status/Quality Panel fold-in keys
317
+ `guidance_manifestation` and `support_wording` are removed from the public
318
+ projection contract. No supported Store-native writer or reader consumes
319
+ them.
320
+ - `status` legacy file projections that depended on the deleted stack
321
+ (artifact-registry interpretation, claim-support-matrix,
322
+ semantic-assessment-report, recovery, run-integrity, and timing sections)
323
+ are removed from the read-only legacy projection; SQLite workspaces keep
324
+ the full Store-native status projection.
325
+ - **Breaking (`fix!:`):** the Quality Panel `semantic_support` section now
326
+ reports a constant
327
+ `not_available`, because its only producer was the deleted status
328
+ projection. On SQLite workspaces — the sole supported authority — it
329
+ already did: the Store projection never carried that key, so there is no
330
+ capability loss on any supported surface. The section stays inert until a
331
+ Store-native producer lands. The `semantic_assessment_report.json` schema
332
+ and its reference validation are unaffected.
333
+
334
+ ## [0.13.0] — 2026-07-20
335
+
336
+ ### Changed
337
+
338
+ - **Breaking:** the SQLite ControlStore is now the sole runtime authority.
339
+ JSON-only workspaces are classified unsupported — there is no importer,
340
+ migration, dual read/write, or fallback. The Codex runtime host
341
+ (`briefloop run --workspace <path> --runtime codex`, followed by
342
+ `briefloop runtime next`, `invocation-start`, `invocation-accept|fail`, and
343
+ `apply`) is the active execution path, and deterministic source acquisition
344
+ executes only the initialization-frozen provider plan (post-initialization
345
+ reads of mutable `sources.yaml` are rejected).
346
+ - **Breaking:** retired JSON/operator public commands fail closed with typed
347
+ rejections (`runtime_command_unsupported` / `legacy_workspace_unsupported`)
348
+ and zero writes. LEGACY-DELETE tier-1 removes their handler layer, six
349
+ import-graph-unreachable modules (`core/previous`, `outputs/docx`,
350
+ `outputs/pdf`, `sources/coverage`, `experiments/schemas`,
351
+ `experiments/target_contract`), and three unreferenced scripts; parser
352
+ registrations are retained so the typed rejections keep working. The legacy
353
+ JSON runtime-state stack remains as declared internal debt tracked for
354
+ LEGACY-DELETE-2.
355
+ - **Breaking:** `sources decide` is retired by design; source discovery runs
356
+ through the runtime-host route. Finalize, approval, and delivery run as
357
+ typed Store actions through `runtime apply`; the public `deliver` command
358
+ forms have no user-reachable entry.
359
+ - **Breaking:** the supported Python floor is now 3.12. `requires-python`
360
+ moves from `>=3.9` to `>=3.12`, so the next release refuses to install on
361
+ Python 3.9-3.11. Setup and install scripts enforce the same floor at
362
+ preflight, probe versioned interpreters (`python3.14`/`python3.13`/
363
+ `python3.12`) when the unversioned `python3` is too old, and recreate an
364
+ existing venv whose interpreter is broken or below the floor instead of
365
+ reusing it. CI runs the full test suite on macOS and Windows with Python
366
+ 3.12 in parallel (pytest-xdist worksteal); Linux full-suite legs are
367
+ retired by explicit maintainer decision, while Linux install and CLI
368
+ smoke coverage remains.
369
+ - **Breaking:** runtime identity must now be explicit. Dedicated adapters inject
370
+ their fixed canonical identity, while generic CLI users pass `--runtime`.
371
+ New state accepts only `hermes`, `claude`, `opencode`, `codex`, `codebuddy`,
372
+ or `operator`; historical `auto` / `manual` / implicit `controls` manifests remain read-only until
373
+ an explicit reset starts a new canonical run and archives the old manifest.
374
+
375
+ ## [0.12.1] — 2026-07-14
376
+
377
+ ### Changed
378
+
379
+ - Bound the experimental WorkBuddy / CodeBuddy workflow to an explicit
380
+ two-phase permission model: checked-in role agents draft only their
381
+ handoff-assigned artifacts, while a command-capable main session re-reads the
382
+ handoff and runs deterministic BriefLoop CLI transactions. Missing main-session
383
+ command capability is a hard stop, and host-visible invocation of the exact
384
+ checked-in role is required before claiming role delegation.
385
+ - Added the repo-local Northstar product-governance Skill with bounded evals,
386
+ plus bilingual Architecture Reference v0.4.0 reading editions and a
387
+ deterministic source/render guard. The report remains a historical v0.11.12
388
+ snapshot; current architecture and support truth remain in the existing
389
+ status and support-matrix documents.
390
+
391
+ ## [0.12.0] — 2026-07-13
392
+
393
+ ### Changed
394
+
395
+ - Completion projection and WorkBuddy now expose canonical recovery action
396
+ vocabulary (`request_recovery_decision`, `rerun_from_stage`, and bound
397
+ finalize actions); delivery eligibility no longer implies delivery success,
398
+ which requires a current-run bound delivery outcome event.
399
+ - Rewrote the BriefLoop operator skill to the v1.0 RC operating contract
400
+ (`briefloop-operator-skill-v0.2.0`): delivery truth is `finalize_report.json`
401
+ plus the completion projection (`briefloop workbuddy diagnose --json`), never
402
+ file existence; supersede recovery marks downstream artifacts stale until
403
+ regenerated; agent artifact intake identity rules are documented as
404
+ fail-closed; the version matrix now separates "v1.0 RC Landed Surfaces" from
405
+ "Pending Before v1.0" (intake normalization, pilot evidence satisfaction).
406
+ Runtime command surfaces (`/briefloop`, `/mabw`, `/generate-brief`, OpenCode
407
+ adapters) were updated to the transactional finalize + delivery-truth flow,
408
+ and the Claude skill wrapper became a model-invoked background protocol
409
+ (`user-invocable: false`) so `/briefloop` resolves to the writer command.
410
+ - Rewrote the experimental WorkBuddy Skill (`.agents/skills/briefloop-workbuddy/`)
411
+ in Chinese for its WorkBuddy first-user audience, preserving all CLI command
412
+ strings, Run Card fields, role names, and control boundaries; skill pack
413
+ tests now assert the Chinese contract.
414
+ - Archived superseded documentation (old MABW architecture references, dated
415
+ 2026-06-11 memos, one-off design notes) under `docs/archive/` with an
416
+ archive policy README; current docs no longer link archived material as
417
+ implementation truth.
418
+ - Made finalize promotion transactional: reader output is rendered and checked
419
+ as a candidate before `output/brief.md` or `output/delivery/` are updated, and
420
+ successful promotion records the delivery artifacts and their sha256 hashes in
421
+ `finalize_report.json` (the single delivery-truth record; `deliver` and
422
+ finalize-complete verify those artifacts). Failed reader-clean finalization
423
+ writes a fail report but leaves any prior delivery bundle unchanged.
424
+ - Changed the PyPI / package-index distribution name from
425
+ `multi-agent-brief-workflow` to `briefloop` so the eventual published package
426
+ can support `pipx install briefloop`. The Python import package remains
427
+ `multi_agent_brief`, the `multi-agent-brief` console script remains a
428
+ compatibility entrypoint, and first-user docs still must not claim
429
+ package-index install support until a real PyPI artifact is published and
430
+ smoke-tested.
431
+ - Rewrote the experimental WorkBuddy Skill path to use `--runtime codebuddy`
432
+ and checked-in CodeBuddy-compatible role agents for full workflow runs,
433
+ instead of defaulting to the host-agnostic operator handoff. The main
434
+ WorkBuddy/CodeBuddy session still owns deterministic CLI transactions; role
435
+ agents only draft handoff-assigned artifacts and this does not add gate
436
+ authority, delivery approval, release authority, semantic proof, or
437
+ output-quality proof.
438
+ - Added experimental Gmail delivery through the optional `gws` CLI:
439
+ `briefloop deliver --workspace <workspace> --target gmail --channel draft
440
+ --recipient <email>` creates a Gmail draft, while `--channel send`
441
+ explicitly sends the message. Both paths record redacted delivery events and
442
+ do not attach audit/control files, approve delivery, authorize release, or
443
+ prove semantic truth.
444
+ - Bound experimental Semantic Assessment Reports to checked input artifacts
445
+ (`audited_brief`, Claim Ledger, Atomic Claim Graph, and Evidence Span
446
+ Registry) with relative paths, hashes, sizes, freshness projection, and
447
+ human-adjudication record linkage. Legacy unbound reports remain readable as
448
+ advisory projections, and this does not add Claim-Support Matrix writes, gate
449
+ authority, delivery approval, release authority, or semantic proof.
450
+ - Added a deterministic CodeBuddy adapter smoke guard that validates
451
+ source-clone `.codebuddy` Skill/agent assets and a fresh `--runtime codebuddy`
452
+ handoff. The smoke is release-readiness coverage only; it does not launch
453
+ CodeBuddy, prove delegated runtime execution, approve delivery, authorize
454
+ release, or prove semantic truth.
455
+ - Added experimental `--runtime codebuddy` handoff generation for source-clone
456
+ CodeBuddy operation. The handoff names the project Skill and role-agent
457
+ assets, records CodeBuddy runtime capabilities, and keeps deterministic CLI
458
+ transactions in the main CodeBuddy session. This does not add gate authority,
459
+ delivery approval, release authority, semantic proof, or output-quality proof.
460
+ - Added an experimental CodeBuddy project Skill adapter under
461
+ `.codebuddy/skills/briefloop/`. The adapter keeps orchestration in the main
462
+ CodeBuddy session, points to the WorkBuddy/CodeBuddy canonical Skill
463
+ references, and can invoke project role agents explicitly. It does not add a
464
+ `codebuddy` runtime, gate authority, delivery approval, release authority, or
465
+ semantic proof.
466
+ - Added experimental CodeBuddy project role sub-agent source assets for
467
+ BriefLoop Scout, Analyst, Editor, Auditor, and Formatter. These are
468
+ source-clone-only drafting adapters and do not add CodeBuddy runtime support,
469
+ gate authority, delivery approval, release authority, or semantic proof.
470
+ - Added a v1.0 pilot evidence gate document and advisory release-consistency
471
+ check. The normal guard verifies that the evidence record exists and states
472
+ its current status; the v1.0 release operator must run the same check with
473
+ `--require-satisfied` before claiming v1.0 readiness. This is release
474
+ evidence bookkeeping only, not semantic proof, output-quality proof, delivery
475
+ approval, or release authority.
476
+ - Hardened the first-user documentation guard so README and Chinese README keep
477
+ the user-facing document block focused on Getting Started, Weekly Loop,
478
+ Troubleshooting, and the golden reference workspace.
479
+ - Added a read-only `briefloop status` progress projection with user-language
480
+ work labels such as `prepare sources`, `select claims`, `audit brief`, and
481
+ `build quality package`. When post-finalize Quality Panel closeout is
482
+ recommended or stale, status may prioritize `briefloop quality summarize` as
483
+ the suggested next command before delivery. The projection is
484
+ diagnostic/operator guidance only and does not create stage, gate, delivery,
485
+ or release authority.
486
+ - Added public BriefLoop contact entrypoints for `briefloop.ai`,
487
+ `hello@briefloop.ai`, `contact@briefloop.ai`, `help@briefloop.ai`, and
488
+ `security@briefloop.ai`, with explicit support/security boundaries.
489
+ - Productized first-user routing surfaces so README and first-user guides route
490
+ by supported report job (`industry-weekly`, `management-monthly`,
491
+ `document-review`) while the product baseline guard prevents internal report
492
+ pack ids or control-plane vocabulary from returning to those first-run route
493
+ blocks.
494
+ - Added static `_BUNDLE_README.md` guidance files inside generated delivery and
495
+ audit bundle archives so non-developer reviewers know which files to open
496
+ first. These guidance files are packaging instructions only; they do not
497
+ create delivery approval, release authority, or semantic-proof claims.
498
+
499
+ ## [0.11.12] — 2026-07-04
500
+
501
+ ### Added
502
+
503
+ - Added fifteen-minute pilot documentation and deterministic first-run demo
504
+ Quality Panel surfacing. The demo remains API-free, source-clone oriented,
505
+ synthetic, and not an output-quality proof.
506
+ - Added WorkBuddy install documentation, Chinese WorkBuddy documentation, and a
507
+ trigger-only WorkBuddy Assistant prompt template. These docs keep the
508
+ WorkBuddy Skill as the local capability surface, describe Assistant as a
509
+ remote trigger into a local Skill-enabled WorkBuddy session, and do not add
510
+ WorkBuddy delegated runtime support, gate authority, delivery approval,
511
+ release approval, or semantic proof claims.
512
+ - Added a source-clone WorkBuddy Skill bundle under
513
+ `integrations/workbuddy/briefloop/`, with WorkBuddy-facing quickstart,
514
+ workspace workflow, artifact-boundary, status/gate, repair, and safety
515
+ references. The bundle uses the `operator` runtime path and deterministic
516
+ BriefLoop CLI transactions only. It is not shipped as Python wheel/sdist
517
+ package data yet and does not add WorkBuddy runtime authority, gate authority,
518
+ delivery approval, release approval, or semantic proof claims.
519
+ - Added `briefloop workbuddy pack-skill` /
520
+ `multi-agent-brief workbuddy pack-skill` to build a deterministic local
521
+ WorkBuddy Skill zip and sidecar manifest from source-clone files. The package
522
+ is a local Skill archive, not a WorkBuddy Marketplace publication, Python
523
+ package-data surface, runtime authority layer, gate authority, delivery
524
+ approval, release approval, or semantic proof claim.
525
+ - Added `operator` runtime as the host-agnostic compact operation path for
526
+ environments without a dedicated BriefLoop runtime adapter. `manual` remains
527
+ a legacy CLI alias that resolves to `operator`; generated handoff artifacts
528
+ now record the operator runtime and its non-delegation assumptions without
529
+ changing stage order, artifact contracts, gates, delivery, or release
530
+ authority.
531
+ - Added `semantic-support adjudicate` to record human accept/reject decisions
532
+ for valid Semantic Assessment Report proposal rows in
533
+ `semantic_support_acceptance_ledger.json` with event-log linkage. These
534
+ records do not write Claim-Support Matrix rows, route repair, run gates,
535
+ approve delivery, authorize release, or prove semantic truth.
536
+
537
+ ### Changed
538
+
539
+ - Declared `operator` in the orchestrator runtime contract and narrowed
540
+ operator handoff internals for host-agnostic compact operation.
541
+ - Documented the draft-promote ownership matrix for agent-authored drafts,
542
+ Python validation/promotion, and authoritative artifacts.
543
+
544
+ ### Fixed
545
+
546
+ - Preserved explicit online-search opt-outs from `briefloop onboard` when the
547
+ saved `onboarding.json` is replayed through `briefloop init --from-onboarding`.
548
+ - Hardened public-safety sha256 scanning so checksum fields are allowed by
549
+ span, while token-like values near checksum text are still scanned.
550
+ - Required screened-candidate discard reason codes and aligned Hermes-facing
551
+ prompts with that contract.
552
+ - Classified unavailable Quality Panel states as missing instead of neutral
553
+ informational badges.
554
+ - Froze deterministic demo Quality Panel timestamps and surfaced Quality Panel
555
+ artifacts in the first-run demo path.
556
+ - Blocked delivery when refreshed run-integrity state is invalid.
557
+ - Hardened post-merge control projections and added semantic support auditor
558
+ dogfood fixtures for proposal-only coverage.
559
+ - Clarified Semantic Support Auditor role wording so human accept/reject
560
+ records adjudication only and does not create support truth or authoritative
561
+ audit findings.
562
+
563
+ ## [0.11.9] — 2026-07-04
564
+
565
+ ### Added
566
+
567
+ - **Bilingual Quality Panel HTML toggle**: `quality_panel.html` now embeds a
568
+ static CSS-only English / Chinese label toggle for the human-readable panel
569
+ view while keeping `quality_panel.json` as the single untranslated machine
570
+ facts source. The HTML remains script-free, dependency-free, SHA-bound to the
571
+ sibling JSON projection, and does not add quality judgments, gate authority,
572
+ delivery approval, or release authority.
573
+ - **pipx / PyPI packaging prep**: added future package-index readiness
574
+ documentation, neutral PyPI project metadata, and release-checklist guardrails
575
+ for a later `pipx` path while keeping source-clone setup as the current
576
+ launch install path. This does not publish a PyPI artifact, rename the Python
577
+ package, remove the `multi-agent-brief` console script, or make `pipx` a
578
+ current install instruction.
579
+ - **Evidence Extract MinerU-derived Markdown bridge**: `briefloop extract` /
580
+ `multi-agent-brief extract` can now bind an already-present adjacent
581
+ `.mineru.md` representation for PDF/binary `evidence_extract` sources,
582
+ keeping the original source bytes in the source lock while using the derived
583
+ Markdown for deterministic logical-page and text-span seed registration. This
584
+ does not run MinerU automatically, parse PDFs by itself, perform rendered-page
585
+ visual inspection, extract tables or figures, judge semantic support,
586
+ generate Claim-Support Matrix rows, approve delivery, authorize publication,
587
+ or close the full Evidence Extraction Mode scope.
588
+
589
+ ### Fixed
590
+
591
+ - **Architecture reference version label**: corrected the mislabeled
592
+ `docs/mabw-architecture-reference-v0.2.0.md` path by turning it into a
593
+ compatibility pointer and moving the legacy MABW v0.3.0 architecture
594
+ reference to `docs/mabw-architecture-reference-v0.3.0-legacy.md`. This is a
595
+ documentation-label fix only, not a product capability change.
596
+ - **Repository hygiene**: removed an unrelated Understand Anything graph-merge
597
+ helper, its dedicated test, and a zero-reference source-quality helper module.
598
+ This is repo cleanup only, not a BriefLoop product behavior or support-status
599
+ change.
600
+ - **Orphan module triage**: removed test-only effort-budget and market
601
+ competitor enrichment modules with their dedicated tests, and marked the
602
+ runtime safety surface registry as a test-only structural guard. This is
603
+ layer-boundary cleanup only; it does not change runtime behavior, gates,
604
+ delivery, release authority, or support status.
605
+ - **Assessment target contract namespace**: moved the production assessment
606
+ target contract from the `experiments` namespace to `contracts`, leaving a
607
+ compatibility shim for older experiment imports. This is layer-boundary
608
+ cleanup only; it does not change target ids, artifact paths, experiment
609
+ behavior, gates, delivery, release authority, or support status.
610
+ - **Runtime handoff domain boundary**: moved runtime handoff domain helpers out
611
+ of CLI-owned modules and moved `InitProfile` into a workspace domain module,
612
+ leaving compatibility exports for existing callers. This is layer-boundary
613
+ cleanup only; it does not change handoff schema, handoff wording, runtime
614
+ state files, gates, delivery, release authority, or support status.
615
+ - **Shared test workspace helpers**: added shared pytest fixtures and test
616
+ helpers for repeated workspace skeleton and SHA-256 setup in CLI/status/
617
+ delivery tests. This is test infrastructure cleanup only; it does not change
618
+ runtime behavior, artifact contracts, gates, delivery, release authority, or
619
+ support status.
620
+
621
+ ## [0.11.6] — 2026-07-03
622
+
623
+ ### Added
624
+
625
+ - **Release checklist**: added `docs/release-checklist.md` as an
626
+ operator-facing release preparation checklist covering version/tag/release
627
+ checks, release consistency, product baseline, launch smoke, public-claim
628
+ guardrails, GitHub release existence, and package metadata when applicable.
629
+ This is release operations documentation only, not a capability claim,
630
+ benchmark claim, or roadmap commitment.
631
+ - **Launch/demo smoke guard**: added `scripts/check_launch_smoke.py` to verify
632
+ the fresh source-checkout demo path reaches import, CLI version, demo init,
633
+ doctor, and runtime handoff from a temporary workspace. The release
634
+ consistency check runs the JSON mode. This is setup/handoff readiness only;
635
+ it does not call an LLM, require a private path or API key, prove semantic
636
+ truth, prove output-quality improvement, approve delivery, or authorize
637
+ release.
638
+ - **Evidence Extract source lock v1**: `briefloop extract` /
639
+ `multi-agent-brief extract` now writes
640
+ `output/intermediate/evidence_extract_source_lock.json` plus an audit copy,
641
+ binding registered `input/sources/evidence_extract/` files to file size and
642
+ SHA-256 so status/artifact-registry checks can detect later source-byte
643
+ drift.
644
+ - **Evidence Extract page inventory seed v1**: `briefloop extract` /
645
+ `multi-agent-brief extract` now writes
646
+ `output/intermediate/evidence_extract_page_inventory.json` plus an audit
647
+ copy, binding the inventory to the source lock and giving UTF-8 text sources
648
+ deterministic logical page IDs. PDF/binary sources remain registered-only and
649
+ are flagged as requiring a future extraction tool. This is bounded
650
+ source-lock/page-seed/span registration for `document-review` /
651
+ `evidence_extract`; it does not parse PDFs or binary files, render pages for
652
+ visual inspection, extract tables or figures, generate an evidence ledger or
653
+ Claim-Support Matrix, judge semantic support, draw legal/disclosure
654
+ conclusions, approve delivery, or authorize publication.
655
+ - **Trajectory Regulation decision narrowing**: repeated retry, repair-cycle,
656
+ or blocker patterns for the current stage now deterministically narrow
657
+ `workflow_state.next_allowed_decisions` to `request_human_review` and
658
+ `block_run`, record a `trajectory_decision_narrowed` event, and surface the
659
+ narrowing through status and runtime handoff. This does not add decision
660
+ vocabulary, execute repair, change stage order, run gates, approve delivery,
661
+ decide release readiness, or let Python perform agent work.
662
+ - **Release/evidence synthetic blocker regressions**: packaged public-safe
663
+ evaluation cases now cover the remaining #96 release/evidence failure
664
+ patterns: unauthorized institution branding, mixed metric scope,
665
+ media-only legal/policy support, company-event claims missing latest official
666
+ checks, third-party price snapshots for formal-release treatment, and formal
667
+ release-candidate checks missing human approvals. These cases use explicit
668
+ synthetic Claim-Support Matrix records and release-readiness metadata only;
669
+ they do not add live source retrieval, automatic official-source judgment,
670
+ semantic truth proof, or public-release authorization.
671
+ - **Minimal comparative evaluation packet**: added a public-safe v0.11.4
672
+ comparison packet with three synthetic tasks, a direct prompt/template
673
+ baseline arm, a BriefLoop-style workflow arm, frozen raw-output hashes, raw
674
+ reviewer observations, and a second-reviewer subset. The release consistency
675
+ check now runs `scripts/check_minimal_comparative_eval.py` to verify the
676
+ packet shape and hash bindings. This is bounded evaluation evidence only; it
677
+ does not claim general output-quality improvement, speed improvement,
678
+ semantic truth proof, benchmark superiority, delivery approval, or release
679
+ authorization.
680
+ - **Product OS reader-quality reference package**: the packaged
681
+ `same_evidence_reader_quality_regression` eval case now generates
682
+ Quality Panel JSON/summary/HTML plus clean delivery/audit bundle archives,
683
+ and the docs include a public-safe v0.11.3 reference note. This is an
684
+ inspectable reference-package regression signal only; it does not claim
685
+ output-quality improvement, semantic proof, delivery approval, or release
686
+ authorization.
687
+ - **Same-evidence reader-quality regression pack**: packaged public-safe
688
+ evaluation cases now include a synthetic
689
+ `same_evidence_reader_quality_regression` workspace that holds evidence
690
+ inputs fixed while surfacing existing materiality-selection,
691
+ reader-template-conformance, support-wording, and Quality Panel closeout
692
+ projections. The eval runner can call `quality.summarize` to generate and
693
+ validate Quality Panel JSON/summary/HTML artifacts in the fixture. This is a
694
+ deterministic regression guard only; it does not score model output quality,
695
+ prove semantic correctness, run subagents, fetch sources, or approve
696
+ delivery/release.
697
+ - **Final quality scoped eval case**: packaged public-safe eval cases now include
698
+ `final_abstract_quality_warning_surface`, which exercises the scoped #79
699
+ warning surface on reader-facing Markdown and confirms the findings flow into
700
+ Quality Summary without blocking, opening repair, or writing repair
701
+ instructions into reader output. This remains deterministic warning
702
+ projection only; it is not a semantic quality judge, delivery approval,
703
+ release authority, or publication-readiness claim.
704
+ - **Quality Panel real-run closeout guidance**: finalize reports and
705
+ `status --json` now project a post-finalize Quality Panel closeout
706
+ recommendation pointing operators to
707
+ `briefloop quality summarize --workspace <workspace>`. The Quality Panel and
708
+ summary/HTML renderers also show the audit/delivery bundle separation for
709
+ these artifacts. This is operator follow-up guidance only; finalize does not
710
+ auto-generate Quality Panel artifacts, Quality Panel remains audit-bundle
711
+ material when valid, and it does not approve delivery, decide release
712
+ readiness, run gates, repair content, or prove report correctness.
713
+ - **Citation Profile Split**: packaged ReportTemplates can now declare
714
+ `reader_contract.citation_profile` values (`executive`, `analyst`, or
715
+ `audit`) so finalize reports and bundle manifests record the resolved
716
+ reader/audit citation profile. Reader delivery keeps reader-safe source
717
+ labels and does not expose Claim Ledger IDs, span IDs, local paths, or
718
+ hashes; audit bundles retain the trace artifacts when present. This is
719
+ citation-surface metadata only; it does not prove support, alter gates,
720
+ remove audit trace, approve delivery, or decide release readiness.
721
+ - **Support-calibrated wording warnings**: `status --json` and Quality Panel
722
+ now surface warning-only `support_wording` diagnostics when reader-facing
723
+ Markdown uses strong or unframed wording for claims with explicit weak,
724
+ downgrade-required, inferential, unsupported, or media/report-style support
725
+ metadata. The projection consumes recorded Claim Ledger, source taxonomy, and
726
+ valid Claim-Support Matrix policy signals when present. It does not judge
727
+ claim truth, generate or accept support rows, run gates, block delivery,
728
+ approve release, or create a quality score.
729
+ - **Reader Template Conformance v1**: packaged ReportTemplates can now declare
730
+ warning-only reader contracts for required reader blocks, Markdown table
731
+ slots, executive-summary length, and Source Appendix position. Status,
732
+ handoff, finalize reports, and Quality Panel surface deterministic
733
+ `report_template_conformance` diagnostics for finalized reader Markdown.
734
+ This does not rewrite briefs, invent missing sections, parse DOCX content,
735
+ run gates, block delivery, approve release, score prose quality, or prove
736
+ semantic correctness.
737
+ - **Materiality-aware selection diagnostic projection**: `status --json` and
738
+ Quality Panel now surface when excluded or deprioritized screened candidates
739
+ match explicit PolicyProfile `materiality_terms` or workspace focus terms
740
+ such as must-watch topics, with capacity/scope reason summaries and
741
+ `request_human_review` / `review_materiality_exclusions` operator actions.
742
+ This is deterministic keyword diagnostics only; Python does not infer
743
+ semantic importance, mutate screening results, resurrect candidates, alter
744
+ the Claim Ledger, run gates, approve delivery, or decide release readiness.
745
+ - **Guidance Manifestation diagnostic projection**: status and Quality Panel
746
+ can now surface optional
747
+ `output/intermediate/guidance_manifestation_report.json` labels for
748
+ materialized approved guidance entries:
749
+ `explicitly_reflected`, `partially_reflected`, `contradicted`, and
750
+ `not_observable`. Packaged public-safe eval cases include a synthetic
751
+ `not_observable` report. This is an observability diagnostic only; it does
752
+ not mutate Improvement Memory, approve guidance, score quality, run gates,
753
+ approve delivery, decide release readiness, or prove that guidance improved
754
+ output.
755
+ - **Trajectory Regulation read-only projection**: `status --json` and Quality
756
+ Panel now surface retry-stage, repair-cycle, repeated-blocker, and exhausted
757
+ attempt-budget summaries derived from existing `workflow_state.json` and
758
+ `event_log.jsonl`. Packaged public-safe eval cases include a synthetic
759
+ repeated-retry case that projects `request_human_review` without mutating
760
+ workflow state. This is operator guidance only; it does not write state,
761
+ execute repair, run gates, approve delivery, decide release readiness, score
762
+ quality, or prove output correctness.
763
+ - **v0.11 product golden path**: refreshed the public English/Chinese Golden
764
+ Path docs around the supported `industry-weekly`, `management-monthly`, and
765
+ `document-review` product entries, with explicit local-first, gates-on,
766
+ human-delivery boundaries. The product-baseline readiness check now guards
767
+ these docs against drifting back into experiment/scorecard language. This is
768
+ documentation and release-readiness guardrail work only; it does not add an
769
+ experiment harness, prove output quality, authorize release, or change runtime
770
+ stage behavior.
771
+ - **Final Abstract Quality warning surface**: `gates check` now includes a
772
+ warning-only `final_abstract_quality` gate for deterministic final-abstract
773
+ risk patterns such as cadence/title mismatch, comparison framing without a
774
+ basis section, recommendation/forecast/superlative framing without
775
+ limitations, incomplete key-case bullets, and locally unsupported
776
+ superlatives. Findings flow through normal Quality Panel / Quality Summary
777
+ warning counts. This is not a prose-quality score, semantic quality judgment,
778
+ truth proof, repair route, delivery approval, release authority, or
779
+ publication-readiness claim.
780
+ - **Coverage/Omission gate foundation**: `gates check` now includes a
781
+ deterministic `coverage_omission` gate that compares valid
782
+ `screened_candidates.json` selected high-priority candidates against Claim
783
+ Ledger `candidate_id` metadata and, for auditable briefs only, cited internal
784
+ `[src:<claim_id>]` references. Reader-facing finalize checks do not require
785
+ delivery Markdown to retain internal Claim Ledger markers. The gate warns by
786
+ default, blocks under `--strict`, and ignores invalid or legacy screening
787
+ artifacts instead of treating them as authority. This is a selected-item
788
+ continuity check only; it does not infer full-world recall, prove semantic
789
+ support, execute source discovery, or claim the system found every material
790
+ item.
791
+ - **Evidence Extract text-span seed registry**: `briefloop extract` /
792
+ `multi-agent-brief extract` now writes a valid
793
+ `output/intermediate/evidence_span_registry.json` for registered UTF-8 text
794
+ sources, preserving workspace-relative source paths, deterministic
795
+ `SRC-###` / `ESP-###-01` ids, source-text character offsets
796
+ (`char_start` / `char_end`), and raw-excerpt hashes. Binary/PDF sources
797
+ remain registered-only with warnings. This is a bounded source/span
798
+ registration surface only; it does not parse binary documents, assess
799
+ semantic support, generate Claim-Support Matrix rows, draw legal or disclosure
800
+ conclusions, run stages, approve delivery, or create release authority.
801
+ - **Synthetic Product OS blocker eval cases**: packaged public-safe eval cases
802
+ now include deterministic blockers for invalid source evidence pack manifests
803
+ and forged release-readiness event links, plus artifact-registry status
804
+ assertions in the eval-case runner. These cases validate control-surface
805
+ behavior only; they do not prove output quality, source support, or release
806
+ authorization.
807
+ - **Release branding readiness context**: `release check` now includes
808
+ configured `release.branding` metadata in
809
+ `output/intermediate/release_readiness_report.json` and blocks internal
810
+ readiness when required institution branding or institution-use authorization
811
+ context is missing or explicitly unauthorized. This is deterministic metadata
812
+ validation only; it does not provide legal/compliance advice, authorize
813
+ public release, publish externally, or bypass human delivery approval.
814
+ - **Feedback contamination regression**: added a v0.11.1 issue-closure
815
+ regression proving feedback-only input text remains classified as feedback
816
+ and is not exposed through the runtime handoff as evidence material. The
817
+ regression also verifies the finalizer does not read feedback-only text into
818
+ reader Markdown, delivery Markdown, or DOCX output. This is a boundary
819
+ regression only; it does not add semantic contamination detection or convert
820
+ feedback into Improvement Memory.
821
+ - **v0.11 product-baseline readiness check**: added
822
+ `scripts/check_product_baseline.py` to verify the stable CLI product baseline
823
+ entrypoints, canonical ReportPack mappings, local-first workspace skeletons,
824
+ control-spine defaults, no force-deliver CLI surface, reference-run docs, and
825
+ public boundary wording before a v0.11 release. This is a readiness guard
826
+ only; it does not bump the version, promote wider Product OS support status,
827
+ run stages, approve delivery, prove truth, or create release authority.
828
+ - **Release consistency product-baseline guard**: `check_release_consistency.py`
829
+ now runs the v0.11 product-baseline readiness check so release prep fails
830
+ closed if product-facing entries, ReportPack defaults, packaged parity, or
831
+ public boundary wording drift. This is still a release-readiness check only;
832
+ it does not promote wider Product OS support status or add runtime authority.
833
+ - **Product-baseline `packs` CLI surface guard**: the v0.11 readiness check now
834
+ verifies real `packs list --json` and unknown-pack error output expose
835
+ product-facing entries while preserving canonical internal ReportPack ids.
836
+ This is a CLI contract check only; it does not rename ReportPack ids or
837
+ change workspace behavior.
838
+ - **README canonicalization guard**: `README.md` and `README.zh-CN.md` are the
839
+ canonical public README bodies, while `README_en.md` is retained as a short
840
+ compatibility pointer to `README.md`. The v0.11 readiness and release checks
841
+ now verify this split before release prep. This is a public-link and
842
+ public-claim guard only; it does not change support status or product
843
+ behavior.
844
+ - **v0.11 support-status alignment guard**: clarified that
845
+ `industry-weekly`, `management-monthly`, and `document-review` are the
846
+ stable v0.11 product-baseline workspace entries, while `solar-periodic`,
847
+ Quality Panel, SourceHub Lite, internal release approvals, and other wider
848
+ Product OS extensions remain experimental. The product-baseline readiness
849
+ check now verifies this support-matrix split before release prep.
850
+
851
+ ### Fixed
852
+
853
+ - **Trajectory Regulation completed-stage guidance**: retry/repair history for
854
+ completed or non-current stages remains visible as diagnostic history, but no
855
+ longer emits impossible `request_human_review` / `block_run` recommendations
856
+ for stages that deterministic state transitions cannot currently accept.
857
+ - **Coverage gate stage-completion binding**: stage-scoped quality-gate reports
858
+ must include the `coverage_omission` gate result before auditor/finalize
859
+ completion can accept them, closing the upgraded-workspace gap where older
860
+ three-gate reports could bypass coverage continuity checks.
861
+ - **Generated workspace selector floor**: `briefloop new` now initializes
862
+ Product OS workspaces with `selector.max_items: 20`, matching the current
863
+ `brief_quality.min_items: 20` floor instead of creating conservative
864
+ workspaces that could not satisfy their own configured item count. The legacy
865
+ `init` path now rejects explicit selector counts below that floor instead of
866
+ writing internally conflicting configs.
867
+ - **Release branding blocker event binding**: release-readiness reports now
868
+ compare the exact branding blocker list recorded by `release check`, so
869
+ hand-edited branding blockers cannot remain valid merely by preserving a
870
+ blocked/non-blocked boolean shape.
871
+ - **Release branding event-link binding**: `release_readiness_report.json`
872
+ validation now requires the report `branding_context` status and blocked
873
+ state to match the recorded `release_readiness_checked` event metadata, so
874
+ hand-edited branding context cannot remain artifact-registry valid.
875
+ - **ReportPack support-status alignment**: baseline ReportPacks now expose
876
+ machine-readable `status: supported` for `market_weekly`,
877
+ `management_monthly`, and `evidence_extract`, while
878
+ `solar_industry_periodic` remains `experimental`. The product-baseline
879
+ readiness check now verifies these config and CLI statuses against the public
880
+ support-matrix split.
881
+ - **Material-fact bibliography false positives**: deterministic audit now skips
882
+ bibliography / source-reference sections when checking
883
+ `number_without_source`, so numbers in source titles do not become blocking
884
+ material-fact findings while body text remains checked.
885
+ - **README/public-claim release guards**: tightened `README_en.md` checks so the
886
+ file must remain only the compatibility pointer, and expanded product-baseline
887
+ public-claim rejection to catch modal truth-proof claims and publication
888
+ overclaims that start with `without`.
889
+ - **Quality Panel legacy gate-report compatibility**: Quality Panel now surfaces
890
+ legacy `output/intermediate/quality_gate_report.json` status separately from
891
+ v0.10 scoped auditor/finalize gate reports. Legacy reports are not treated as
892
+ scoped reports, and workspaces with reader-clean `pass` now receive a scoped
893
+ gate-report regeneration action instead of a generic finalize-hygiene action.
894
+
895
+ ## [0.10.7] — 2026-06-29
896
+
897
+ ### Added
898
+
899
+ - **Secret hygiene import command**: added `multi-agent-brief secrets import`
900
+ to copy allowlisted API keys into a workspace `.env` while redacting
901
+ stdout/stderr to `present` plus a SHA-256 prefix. Doctor guidance now points
902
+ operators to this command for private key setup; it does not print or log
903
+ secret values.
904
+ - **Source metadata contract hardening**: candidate claims, screened
905
+ candidates, claim drafts, and Claim Ledger validation now separate provider
906
+ `source_type` from reader-facing `source_category`, reject non-URL text in
907
+ `source_url`, and preserve `source_category` into frozen Claim Ledger
908
+ metadata. This is contract validation only; source appendix rendering,
909
+ metadata enrichment, and source-policy gates remain separate follow-up
910
+ surfaces.
911
+ - **Claim metadata freeze/enrichment hardening**: Claim Ledger freeze and the
912
+ deterministic `state enrich-claim-metadata --from-source-evidence`
913
+ transaction now preserve `source_url`, `source_type`, and `source_category`
914
+ in claim metadata so source appendix rendering has stable source identity
915
+ inputs. The transaction still only enriches metadata, updates hashes,
916
+ registry, workflow, and events atomically, and remains fail-closed after
917
+ finalize or downstream completion.
918
+ - **Secret and source URL safety hardening**: `secrets import` now fails closed
919
+ unless the target already looks like a BriefLoop workspace, preventing typo
920
+ paths from creating stray `.env` files, and source metadata URL validation now
921
+ requires an HTTP(S) scheme with a network location.
922
+ - **Source Appendix rendering hardening**: reader-facing source appendices now
923
+ prefer source title, category, publisher/institution, dates, URL, and provider
924
+ type from Claim Ledger metadata, including usable local-file sources without
925
+ URLs. Invalid URLs stay unlinked and incomplete source metadata is surfaced as
926
+ appendix notes; this is rendering hardening only, not source-policy gating or
927
+ semantic support proof.
928
+ - **Agent contract and repair guard hardening**: Scout and Claim Ledger runtime
929
+ contracts now explicitly separate HTTP(S) `source_url`, local/package
930
+ `source_path`, provider `source_type`, and reader-facing `source_category`.
931
+ Gate/state repair guidance now spells out the owner-stage repair transaction
932
+ path and warns against manually updating control files or SHA fields.
933
+ - **PolicyProfile resolver for zero-config workspaces**: `briefloop new` now
934
+ accepts explicit `--policy-profile` overrides and deterministic
935
+ `--industry` hints, writes the selected profile and resolution source into
936
+ `report_spec.yaml`, and shows the source in validation/status projections.
937
+ Ambiguous or low-confidence matches use the ReportPack default. This is not
938
+ gate-time industry inference, compliance judgment, or release authority.
939
+ - **Product-facing ReportPack entry aliases**: `briefloop new` and
940
+ `multi-agent-brief new` now accept user-facing entries such as
941
+ `industry-weekly`, `management-monthly`, `document-review`, and
942
+ `solar-periodic` while continuing to write canonical internal ReportPack ids
943
+ such as `market_weekly`, `management_monthly`, `evidence_extract`, and
944
+ `solar_industry_periodic` into `report_spec.yaml`. This is an entrypoint
945
+ naming layer only, not a ReportPack/schema rename.
946
+ - **Solar industry periodic ReportPack dogfood contract**: added packaged
947
+ experimental `solar_industry_periodic` ReportPack / ReportTemplate contracts
948
+ and a `solar_manufacturing_default` PolicyProfile for local-first solar
949
+ manufacturing periodic-report work. This fixes report type, section-order,
950
+ and deterministic product-default metadata only; it does not automatically
951
+ generate solar reports, provide tax/compliance/investment advice, judge
952
+ semantic truth, deliver reports, or authorize publication.
953
+ - **ReportTemplate section-order projection**: workspaces with
954
+ `report_spec.yaml` now expose the resolved packaged ReportTemplate and
955
+ section order in read-only `status` and generated runtime handoff artifacts.
956
+ This is product section-order metadata only; it does not render templates,
957
+ rewrite content, bypass gates, deliver reports, or authorize publication.
958
+ - **ReportTemplate section-conformance projection**: read-only `status` and
959
+ generated runtime handoff artifacts now report whether existing audited/final
960
+ reader Markdown headings cover the resolved ReportTemplate sections in order.
961
+ This is diagnostic structure guidance only; it does not render templates,
962
+ rewrite content, block gates, deliver reports, or authorize publication.
963
+ - **Report bundle packaging hygiene**: delivery/audit bundle projection now
964
+ excludes common macOS, Office, and editor temporary files, records excluded
965
+ packaging junk in the manifest, preserves UTF-8 artifact paths with
966
+ deterministic ASCII fallback names, dedupes adjacent reader source labels,
967
+ and renders Source Appendix URLs as DOCX hyperlinks where supported. This is
968
+ packaging hygiene only; it is not template rendering, evidence sufficiency,
969
+ delivery approval, or publication authorization.
970
+ - **Clean delivery/audit bundle archives**: `packs bundle --write-archives`
971
+ now writes official clean `delivery_bundle.zip` and `audit_bundle.zip` files
972
+ from the bundle manifest artifact sets, excluding stray legacy ZIP contents
973
+ and package-root junk. These archives are deterministic export surfaces only;
974
+ they do not render templates, bypass gates, approve delivery, or authorize
975
+ publication.
976
+ - **Durable source evidence pack materialization**: added experimental
977
+ `sources materialize-pack` to write explicit manual/cached-package source
978
+ records into `input/sources/` plus
979
+ `output/intermediate/source_evidence_pack_manifest.json`. The manifest is
980
+ optional and hash-validated when present. This materializes source evidence
981
+ bytes for archive reproducibility only; it does not treat source candidates,
982
+ search summaries, or model summaries as evidence, and it does not assess
983
+ semantic support or generate Claim-Support Matrix rows.
984
+ - **Evidence Extract product pack**: added an experimental `evidence_extract`
985
+ ReportPack / ReportTemplate / PolicyProfile plus `briefloop extract` /
986
+ `multi-agent-brief extract` source/scope registration. The command copies
987
+ explicit local source files into the workspace and writes
988
+ `extraction_scope.yaml` plus source registrations only; it does not parse
989
+ PDFs, generate evidence spans, draw legal or disclosure conclusions, bypass
990
+ gates, or authorize delivery.
991
+ - **SourceHub Lite setup commands**: added experimental `sources add-file`,
992
+ `sources add-rss`, and `sources add-web-search` to register local text files,
993
+ RSS feeds, and runtime web-search handoff tasks in `sources.yaml`. Local
994
+ files are copied into the workspace before registration so external absolute
995
+ paths are not persisted. Web-search tasks use `runtime_tool` handoff mode and
996
+ do not execute Python web search, crawl the web, create source candidates as
997
+ evidence, generate Evidence Span Registry entries, bypass gates, or authorize
998
+ delivery.
999
+ - **Source taxonomy normalization**: durable source evidence records and Claim
1000
+ Ledger source metadata now preserve separate provider/storage
1001
+ `source_type`, retrieval/page `retrieval_source_type`, reader-facing
1002
+ `source_category`, and `underlying_evidence_type` fields. This clarifies
1003
+ cases such as a news article about a paper versus the paper itself; it is not
1004
+ source trust scoring, semantic support assessment, or a source-policy gate.
1005
+ - **Source Appendix audit trace upgrade**: reader-facing Source Appendices now
1006
+ can display safe retrieval and underlying-evidence taxonomy labels, while the
1007
+ separate `output/source_appendix_trace.md` audit copy records claim/source
1008
+ mappings, source byte hashes, sizes, span IDs, and metadata completeness
1009
+ warnings. This is traceability and appendix hardening only; it does not prove
1010
+ source support, alter delivery gates, or authorize publication.
1011
+ - **Screener discard audit trail**: object-shaped `screened_candidates.json`
1012
+ now supports deterministic discard audit validation when candidate totals or
1013
+ discard audit fields are present. Excluded/deprioritized entries must carry a
1014
+ stable reason code and short explanation under that audit surface, and totals
1015
+ must reconcile with selected plus discarded candidates. Legacy reason-only
1016
+ screened candidate artifacts remain accepted.
1017
+ - **ReportTemplate render-plan projection**: read-only status and generated
1018
+ handoff artifacts now project the future render source artifact, section
1019
+ heading mapping, unresolved section diagnostics, and planned delivery targets
1020
+ for workspaces with a resolved ReportTemplate. This is render planning
1021
+ metadata only; it does not render templates, rewrite content, call finalize,
1022
+ bypass gates, deliver reports, or authorize publication.
1023
+ - **ReportTemplate renderer MVP**: finalize now records an experimental
1024
+ `template_rendering` report and can apply the resolved ReportTemplate section
1025
+ order to reader Markdown before DOCX generation and reader-final checks. This
1026
+ renderer only reorders already-present sections; unresolved or extra
1027
+ top-level sections remain diagnostic/no-op. It does not create a second gate
1028
+ engine, assess semantic support, approve delivery, or authorize publication.
1029
+ - **Internal release modes and human approval ledger**: added experimental
1030
+ `approval init`, `approval record`, and `release check` commands for internal
1031
+ review workflows. The commands write
1032
+ `output/intermediate/human_approval_ledger.json`,
1033
+ `output/intermediate/release_readiness_report.json`, and event-log records
1034
+ through deterministic CLI transactions. Release checks can report readiness
1035
+ for internal review modes only; they do not authorize public release, publish
1036
+ externally, bypass gates, or replace legal/compliance/IR owner judgment.
1037
+ - **Quality Panel JSON projection foundation**: added an experimental
1038
+ `quality_panel.json` product-quality projection that summarizes existing
1039
+ control integrity, source evidence, gate, claim/support, and delivery hygiene
1040
+ surfaces. This is a machine-readable audit/control summary only; it does not
1041
+ run gates, create a quality score, decide release eligibility, approve
1042
+ delivery, prove semantic truth, or execute repair.
1043
+ - **Quality Summary Markdown projection**: added optional
1044
+ `output/intermediate/quality_summary.md` as a compact human-readable summary
1045
+ rendered from valid `quality_panel.json`. This is an operator-readable
1046
+ projection only; it is not a quality score, gate report replacement, release
1047
+ authorization, delivery approval, truth proof, or repair action.
1048
+ - **Quality summarize CLI**: added experimental
1049
+ `briefloop quality summarize --workspace <workspace>` to write
1050
+ `quality_panel.json` and source-bound `quality_summary.md` together. The
1051
+ command is a deterministic projection writer only; it does not run gates,
1052
+ create blockers, start repair, approve delivery, prove truth, or authorize
1053
+ release.
1054
+ - **Quality Panel static HTML projection**: added optional
1055
+ `output/intermediate/quality_panel.html` as a static, dependency-free audit
1056
+ attachment rendered from valid `quality_panel.json`. The HTML uses inline CSS
1057
+ and no external assets, scripts, frontend runtime, quality score, release
1058
+ authority, delivery approval, truth proof, or gate reimplementation.
1059
+ - **Quality Panel audit bundle integration**: report bundle projection now
1060
+ includes `quality_panel.json`, `quality_summary.md`, and
1061
+ `quality_panel.html` in audit bundles when present, while keeping them out of
1062
+ reader-facing delivery bundles. This is audit packaging only; it does not
1063
+ create a dashboard, quality score, release eligibility decision, delivery
1064
+ approval, truth proof, or gate replacement.
1065
+
1066
+ ### Fixed
1067
+
1068
+ - **Release approval event-linkage hardening**: release readiness now rejects
1069
+ human approval ledger records whose `event_id` does not resolve to a matching
1070
+ current-run approval event, and artifact registry validation rejects forged or
1071
+ mismatched approval/readiness event references.
1072
+ - **Evidence Extract force rerun source preservation**: `extract --force` now
1073
+ stages source bytes before clearing managed
1074
+ `input/sources/evidence_extract/` files, so rerunning extract with a
1075
+ previously copied managed source path can update scope without deleting the
1076
+ source before it is recopied.
1077
+ - **Fast-rerun Claim Ledger enrichment chain validation**: fast-rerun import
1078
+ validation now accepts a Claim Ledger derived through a chained metadata
1079
+ enrichment record when the latest record still points back to the original
1080
+ imported Claim Ledger hash.
1081
+ - **Hermes Claim Ledger completion handoff**: Hermes-generated skill and prompt
1082
+ guidance now run `state stage-complete --stage claim-ledger` after
1083
+ `state freeze-claim-ledger` and before Analyst delegation, so the runtime
1084
+ state machine advances with the frozen Claim Ledger.
1085
+ - **Source Appendix source ID title fallback**: reader-facing source appendices
1086
+ no longer use raw ledger `source_id` values such as `SRC-001` as display
1087
+ titles when source title/name metadata is missing; they keep the generic
1088
+ source record title and surface the missing-title note instead.
1089
+ - **Claim metadata enrichment rerun source type repair**: rerunning
1090
+ `state enrich-claim-metadata --from-source-evidence` now also repairs stale
1091
+ top-level `source_type: local_file` when existing claim metadata already
1092
+ matches the imported source authority, so Source Appendix rendering receives
1093
+ the corrected provider type.
1094
+ - **Claim Ledger freeze source type defaults**: claim drafts that provide a
1095
+ whitespace-only `source_type` are now materialized as `local_file` during
1096
+ Claim Ledger freeze, matching the claim-draft validator's default local-file
1097
+ semantics.
1098
+ - **Source URL malformed-host validation**: source metadata URL validation now
1099
+ treats parser errors such as malformed bracketed hosts as normal validation
1100
+ failures instead of letting `urlparse()` exceptions escape contract checks.
1101
+ - **Source metadata local-file default validation**: claim drafts that omit
1102
+ `source_type` and `source_url` are now validated the same way Claim Ledger
1103
+ freeze materializes them, as local-file sources that must carry reader-facing
1104
+ source title/name and `source_category`.
1105
+ - **Enriched source type rendering**: claim metadata enrichment now mirrors
1106
+ imported `source_url` and non-default `source_type` into the Claim Ledger
1107
+ fields read by Source Appendix rendering, so non-local imported sources are
1108
+ not displayed as default local-file sources.
1109
+ - **PolicyProfile resolver provenance hardening**: `briefloop new` now treats
1110
+ `--industry` as the authoritative deterministic resolver hint before falling
1111
+ back to company text, and ReportSpec validation rejects
1112
+ `report_pack.default_policy_profile` provenance when the resolved profile
1113
+ does not match the pack default.
1114
+
1115
+ ## [0.10.1] — 2026-06-22
1116
+
1117
+ ### Added
1118
+
1119
+ - **Experimental ReportSpec / ReportPack registry**: added product-layer
1120
+ contracts for report type metadata and packaged experimental packs
1121
+ (`market_weekly`, `management_monthly`), plus read-only CLI surfaces
1122
+ `multi-agent-brief packs list`, `multi-agent-brief packs show <pack_id>`,
1123
+ and `multi-agent-brief validate-report-spec <report_spec.yaml>`. These are
1124
+ contract/registry surfaces only; they do not create workspaces, run stages,
1125
+ render templates, bypass gates, deliver reports, or authorize publication.
1126
+ - **BriefLoop compatibility aliases**: added `briefloop` as a shell CLI alias
1127
+ for `multi-agent-brief`, and `/briefloop` as a Claude writer command alias
1128
+ for the existing five-verb `/mabw` surface. The original CLI and `/mabw`
1129
+ command remain supported.
1130
+ - **Experimental product workspace skeletons**: added
1131
+ `multi-agent-brief new <report-pack> <workspace>` / `briefloop new
1132
+ <report-pack> <workspace>` to create conservative local-first workspaces
1133
+ from packaged ReportPacks, including `report_spec.yaml`, workspace config,
1134
+ source config, user instructions, and input folders. This is setup only; it
1135
+ does not run stages, render templates, deliver reports, approve publication,
1136
+ or bypass gates.
1137
+ - **BriefLoop alias help polish**: `briefloop --help` now displays
1138
+ `usage: briefloop` while `multi-agent-brief --help` keeps the stable engine
1139
+ CLI name.
1140
+ - **Experimental ReportTemplate registry and bundle projection**: added
1141
+ packaged `market_weekly` and `management_monthly` section-order template
1142
+ contracts plus `multi-agent-brief packs templates` and
1143
+ `multi-agent-brief packs bundle --workspace <workspace>` for a reproducible
1144
+ delivery/audit bundle manifest over finalized workspace artifacts. This is a
1145
+ projection surface only; it does not render templates, move artifacts, bypass
1146
+ gates, deliver reports, or authorize publication.
1147
+ - **Experimental PolicyProfile registry**: added a product-layer
1148
+ `PolicyProfile` schema/registry with packaged `manufacturing_default`, plus
1149
+ ReportPack default binding and optional ReportSpec override validation.
1150
+ `validate-report-spec` now reports the resolved policy profile. This records
1151
+ deterministic product defaults only; it does not adapt quality gates, change
1152
+ runtime behavior, judge industry compliance, decide truth, or authorize
1153
+ release.
1154
+ - **Experimental PolicyProfile skeletons**: added conservative
1155
+ `finance_default` and `internet_default` profile skeletons alongside
1156
+ `manufacturing_default`. These are public-safe product defaults only; they do
1157
+ not provide finance compliance judgment, investment-advice detection, internet
1158
+ rumor verification, source authority, gate adaptation, or release authority.
1159
+ - **PolicyProfile projection visibility**: `status --json` / human-readable
1160
+ status and generated runtime handoff artifacts now surface the resolved
1161
+ PolicyProfile id, source, hash, and compact product-policy summary when a
1162
+ workspace has `report_spec.yaml`. This is traceability for product metadata
1163
+ only; it does not judge compliance or truth, bypass the control spine, or
1164
+ authorize release.
1165
+ - **PolicyProfile deterministic gate adapter**: resolved PolicyProfiles can
1166
+ tighten existing deterministic quality-gate strictness and reader-final
1167
+ forbidden-phrase checks. This is a limited adapter over existing gates, not a
1168
+ second gate engine, semantic support assessment, industry compliance
1169
+ judgment, truth proof, release authority, delivery override flag, or
1170
+ force-deliver path.
1171
+ - **PolicyProfile dogfood fixtures**: added public-safe synthetic fixtures for
1172
+ resolved profile projection, deterministic gate-adapter strictness, and
1173
+ reader-final forbidden-phrase checks. These fixtures do not establish
1174
+ industry compliance, investment-advice detection, rumor verification,
1175
+ release readiness, truth proof, or report quality claims.
1176
+
1177
+ ## [0.9.4] — 2026-06-22
1178
+
1179
+ ### Added
1180
+
1181
+ - **Experimental Semantic Assessment Report schema**: added an optional
1182
+ `output/intermediate/semantic_assessment_report.json` contract for auditable
1183
+ semantic support assessment proposals over claim atoms and evidence spans.
1184
+ This is schema foundation only; it does not judge truth, mutate the
1185
+ Claim-Support Matrix, create human adjudication queue items, gate delivery,
1186
+ decide release eligibility, or grant support authority.
1187
+ - **Semantic Assessment Report reference validation**: present Semantic
1188
+ Assessment Report artifacts now validate machine-checkable references to
1189
+ Claim Ledger claims, Atomic Claim Graph atoms, and Evidence Span Registry
1190
+ spans, and require uncertain high-materiality `llm_only` rows to be flagged
1191
+ for human adjudication. This remains proposal validation only; it does not
1192
+ judge support semantics, write the Claim-Support Matrix, create an
1193
+ adjudication queue, or decide release eligibility.
1194
+ - **Semantic Assessment Report proposal projection**: added a pure helper that
1195
+ projects Semantic Assessment Report rows into proposal-only Claim-Support
1196
+ Matrix delta candidates after callers have validated the report. The
1197
+ projection does not write accepted support rows, create adjudication queue
1198
+ items, gate delivery, judge support semantics, or decide release eligibility.
1199
+ - **Semantic Assessment Report status surface**: `status --json` and the
1200
+ human-readable status report now expose read-only proposal counts for present
1201
+ valid Semantic Assessment Reports, including `llm_only`, high uncertainty,
1202
+ high disagreement, and human-adjudication flags. The human-readable status
1203
+ line explicitly labels the surface as `proposal_only`. This does not add
1204
+ delivery gates, release authority, adjudication queue items, or accepted
1205
+ Claim-Support Matrix writes.
1206
+ - **Semantic Assessment Report dogfood fixtures**: added public-safe synthetic
1207
+ fixtures for direct support, partial/weak support, unsupported proposals,
1208
+ assessor disagreement, high uncertainty, unknown references, and
1209
+ high-materiality `llm_only` adjudication requirements. These fixtures validate
1210
+ the proposal surface only; they do not create support truth, adjudication
1211
+ queues, delivery gates, or release authority.
1212
+
1213
+ ## [0.9.3] — 2026-06-21
1214
+
1215
+ ### Added
1216
+
1217
+ - **Experimental Evidence Span Registry schema**: added an optional
1218
+ `output/intermediate/evidence_span_registry.json` contract and runtime
1219
+ validation for source-level evidence spans with recomputable raw-excerpt
1220
+ hashes. This is schema foundation only and does not perform semantic support
1221
+ assessment, Evidence Span support scoring, Claim-Support Matrix generation,
1222
+ or support-sufficiency gating.
1223
+ - **Evidence span source-pack binding**: present Evidence Span Registry
1224
+ artifacts now validate that each span points to a durable `input/sources/`
1225
+ file and that the declared raw excerpt and optional character offsets match
1226
+ the source bytes. This is source-pack binding only; it does not add semantic
1227
+ support assessment, Claim-Support Matrix behavior, support-sufficiency gates,
1228
+ or source appendix UI.
1229
+ - **Evidence span archive projection**: finalized run archives now include a
1230
+ hash-only Evidence Span Registry projection when a present registry is valid,
1231
+ including registry bytes, archived source-pack paths, source file hashes,
1232
+ source sizes, span IDs, raw-excerpt hashes, and offsets. Invalid registries
1233
+ are recorded as invalid without span/source projection. This is archive
1234
+ reproducibility only; it does not add semantic support assessment,
1235
+ Claim-Support Matrix behavior, support-sufficiency gates, or source appendix
1236
+ UI.
1237
+ - **Evidence span source appendix trace view**: finalize now adds reader-safe
1238
+ Evidence Span summary counts to the Source Appendix when a present registry is
1239
+ valid, and writes raw span details only to `output/source_appendix_trace.md`
1240
+ as an audit copy. This does not add semantic support assessment,
1241
+ Claim-Support Matrix behavior, support-sufficiency gates, or a delivery
1242
+ artifact.
1243
+ - **Experimental Claim-Support Matrix schema**: added an optional
1244
+ `output/intermediate/claim_support_matrix.json` contract and runtime
1245
+ schema validation for atom-to-evidence-span support records. This is schema
1246
+ and vocabulary foundation only; it does not assess support, validate
1247
+ cross-artifact references, route repairs, add gates, decide release
1248
+ eligibility, or claim support sufficiency.
1249
+ - **Claim-Support Matrix policy projection helper**: added a pure deterministic
1250
+ helper that projects explicit matrix rows into atom-level policy signals such
1251
+ as blocking rows, weak support, downgrade requirements, adjudication
1252
+ requirements, and inference-framing requirements. This does not assess
1253
+ semantic support, write workspace state, add gates/status integration, or
1254
+ decide release eligibility.
1255
+ - **Claim-Support Matrix cross-artifact validation**: present matrices now
1256
+ validate claim, atom, and evidence-span references against sibling Claim
1257
+ Ledger, Atomic Claim Graph, and Evidence Span Registry artifacts, and require
1258
+ high-materiality atoms to have explicit support rows. Missing matrices remain
1259
+ optional; this does not assess semantic support, add gates/status
1260
+ integration, or decide release eligibility.
1261
+ - **Claim-Support Matrix gate/status projection**: present valid matrices now
1262
+ project explicit atom-level support records into quality-gate findings and
1263
+ read-only status summaries. Missing or invalid matrices remain non-blocking;
1264
+ this does not assess semantic support, prove truth, or decide release
1265
+ eligibility.
1266
+
1267
+ ### Changed
1268
+
1269
+ - **Claim-Support Matrix public documentation alignment**: updated README,
1270
+ support matrix, architecture status, and operator-skill references to describe
1271
+ the current experimental support-record control plane: schema validation,
1272
+ cross-artifact validation, and gate/status projection from explicit rows. This
1273
+ remains separate from semantic support assessment, truth proof, release
1274
+ eligibility, or support-sufficiency gates.
1275
+
1276
+ ## [0.9.1] — 2026-06-20
1277
+
1278
+ ### Added
1279
+
1280
+ - **Experimental Atomic Claim Graph schema**: added an optional
1281
+ `output/intermediate/atomic_claim_graph.json` contract and runtime validation
1282
+ for structured atomic decomposition of Claim Ledger claims. This is a schema
1283
+ foundation only and does not perform semantic atomization, evidence-span
1284
+ extraction, claim-support scoring, or support-sufficiency gating.
1285
+ - **Atomic Claim Graph coverage/type validation**: present
1286
+ `atomic_claim_graph.json` artifacts now receive deterministic whole-ledger
1287
+ coverage and Claim Ledger type-consistency checks. The graph remains optional
1288
+ and this does not perform semantic atomization or support-sufficiency
1289
+ assessment.
1290
+ - **Analyst/Editor Atomic Claim Graph boundary**: Analyst and Editor contracts
1291
+ now treat present `atomic_claim_graph.json` files as optional experimental
1292
+ decomposition aids only. The Claim Ledger remains the factual evidence base;
1293
+ this adds no no-new-atom checker, gate, CLI, or support-sufficiency claim.
1294
+ - **Atomic reader residue and coverage projection**: present valid Atomic Claim
1295
+ Graphs now produce deterministic reader-text projection metadata for atom ID
1296
+ residue and Claim Ledger citation coverage. The quality-gate projection is
1297
+ warning-only; reader-final residue checks remain blocking for delivery output.
1298
+ This does not perform semantic matching or support-sufficiency assessment.
1299
+
1300
+ ## [0.9.0] — 2026-06-19
1301
+
1302
+ ### Added
1303
+
1304
+ - **BriefLoop public project name**: introduced BriefLoop as the public
1305
+ project-facing name for the v0.9 compatibility period.
1306
+ - **Naming and compatibility policy**: added `docs/briefloop-naming.md` to
1307
+ define BriefLoop, brief-loop engineering, the reserved BriefCI technical
1308
+ sub-layer, and the MABW compatibility surface.
1309
+ - **Brief-loop engineering explainer**: added
1310
+ `docs/brief-loop-engineering.md` to define the failure -> finding -> repair
1311
+ -> regression -> human review -> release decision loop.
1312
+
1313
+ ### Changed
1314
+
1315
+ - **Public framing**: README, documentation index, support matrix, architecture
1316
+ status, red lines, and roadmap now describe BriefLoop as the public name and
1317
+ MABW as the implementation lineage / compatibility surface.
1318
+ - **v0.9 roadmap direction**: changed the public v0.9 direction from
1319
+ distribution/reference workflows to support sufficiency and brief-loop
1320
+ engineering.
1321
+
1322
+ ### Compatibility
1323
+
1324
+ - No runtime surface was renamed in v0.9.0. The `multi-agent-brief` CLI,
1325
+ `/mabw` commands, `multi_agent_brief` Python package/module path,
1326
+ `multi-agent-brief-workflow` distribution name, workspace formats, artifact
1327
+ names, and MABW experiment IDs remain compatible.
1328
+
1329
+ ### Boundaries
1330
+
1331
+ - v0.9.0 is a brand/public-framing preview release. It does not implement
1332
+ Atomic Claim Graph, Evidence Span Registry, Claim-Support Matrix, semantic
1333
+ proof, automatic hallucination elimination, autonomous repair, or
1334
+ ready-to-send output guarantees.
1335
+
1336
+ ## [0.8.6] — 2026-06-19
1337
+
1338
+ ### Added
1339
+
1340
+ - **Auditable-brief assessment target**: MABW-080 now supports
1341
+ `assessment_target=auditable_brief`, allowing content-level experiment runs
1342
+ to stop at the frozen audited brief, audit report, auditor gate report, and
1343
+ auditor-complete boundary instead of requiring finalize, delivery,
1344
+ reader-clean, DOCX/PDF, or delivery archive artifacts.
1345
+ - **Python-owned auditable target contract**: status, register-run, score-run,
1346
+ and downstream guards now project auditable target readiness from workflow
1347
+ state, artifact hashes, auditor gate results, run integrity, audit binding,
1348
+ and event-log evidence instead of workspace prose.
1349
+ - **Python-owned audit binding for auditable runs**: auditor completion records
1350
+ bind the frozen Claim Ledger, audited brief, audit report, auditor gate
1351
+ report, relevant repair transactions, and current-run auditor completion
1352
+ event.
1353
+ - **Treatment-isolation projection for MABW-080**: baseline, memory, and
1354
+ prompt-only conditions now have machine-checkable visibility boundaries:
1355
+ baseline cannot see guidance material, memory receives guidance only through
1356
+ the approved Improvement Memory snapshot, and prompt-only receives guidance
1357
+ only through the explicit prompt guidance block.
1358
+ - **Condition-blind assessment packs**: MABW-080 can export blind audited-brief
1359
+ packs and import assessments through a reveal mapping that binds blind item
1360
+ IDs, audited-brief hashes, scorecard hashes, condition identity, run IDs, and
1361
+ guidance entry IDs.
1362
+ - **Unsupported strategic implication warning**: quality gates can emit a
1363
+ warning-only `unsupported_strategic_implication` finding for strategic demand,
1364
+ procurement, municipal-buyer, policy-demand, or partnership language that is
1365
+ not lexically supported by the frozen Claim Ledger.
1366
+
1367
+ ### Changed
1368
+
1369
+ - **Formal summary denominator hardened**: `experiments 080 summarize` now
1370
+ separates raw observations from formal interpretable metrics and excludes
1371
+ scorecards that fail control, treatment-isolation, audit-binding,
1372
+ blind-assessment, or hash-bound readiness checks.
1373
+ - **Auditable target handoff and finalize behavior hardened**: when
1374
+ `assessment_target=auditable_brief` is complete, runtime guidance and CLI
1375
+ guards direct operators to register, score, and export assessment artifacts
1376
+ instead of continuing to finalize or delivery.
1377
+ - **Repair invalidation made stricter**: owner-stage repairs now stale
1378
+ downstream artifacts until the proper producer reruns, and stale repair
1379
+ baselines are derived from repair-time metadata rather than mutable refreshed
1380
+ registry hashes.
1381
+ - **Gate and status projections made target-aware**: status output no longer
1382
+ reports auditable target completion from stale clean workflow state, missing
1383
+ repair events, incomplete audit bindings, or contradictory gate reports.
1384
+ - **Blind-pack artifact discovery bounded**: `export-blind-pack` checks direct
1385
+ artifact candidates before recursive discovery and limits recursive lookup to
1386
+ explicit workspace roots.
1387
+
1388
+ ### Fixed
1389
+
1390
+ - Prevented formal MABW-080 metrics from trusting self-declared blind metadata
1391
+ without rechecking current scorecard and target-artifact hashes.
1392
+ - Prevented refreshed artifact-registry hashes from being treated as stale
1393
+ repair baselines when downstream artifacts did not exist at repair start.
1394
+ - Prevented incomplete or contradictory auditable target projections from
1395
+ suggesting delivery/finalize paths.
1396
+
1397
+ ### Boundaries
1398
+
1399
+ - v0.8.6 is A-controlled readiness hardening for a future formal MABW-090
1400
+ rerun. It is not proof that Improvement Memory improves output quality.
1401
+ - `auditable_brief` evidence is internal auditable-draft evidence. It is not a
1402
+ management-ready delivery claim and does not cover reader-clean, DOCX/PDF, or
1403
+ final delivery quality.
1404
+ - Python validates hashes, schema, event-log bindings, target readiness,
1405
+ treatment isolation, and imported assessment structure. Python still does not
1406
+ judge prose quality, semantic manifestation, factual regression, strategic
1407
+ soundness, or output quality.
1408
+ - Contaminated, stale, unbound, non-blind, or treatment-leaking runs may remain
1409
+ useful as failure evidence, but must not enter the formal interpretable
1410
+ denominator.
1411
+
1412
+ ## [0.8.5] — 2026-06-16
1413
+
1414
+ ### Added
1415
+
1416
+ - **Delivery snapshot convenience copies**: `finalize` still refreshes `output/delivery/` as the latest reader surface, and now also writes reader-facing copies under `output/delivery-history/<run_id-or-timestamp>/` before the authoritative run archive is created by `state finalize-complete`.
1417
+ - **MABW-080 deterministic scorecard draft builder**: `experiments 080 score-run` can build scorecard metadata from a registered run, case definition, and available archive/control projections without scoring guidance manifestation or output quality.
1418
+ - **MABW-080 assessment import**: `experiments 080 import-assessment` can merge externally supplied guidance-manifestation assessment into a scorecard and derive A/B/invalid validity classes from deterministic control fields plus assessment metadata. Python still does not judge prose quality, guidance manifestation, or semantic regression.
1419
+ - **MABW-080 case summary builder**: `experiments 080 summarize` aggregates
1420
+ existing scorecards into deterministic A/B/invalid counts, condition groups,
1421
+ manifestation-score counts, reader-clean rates, coverage-delta status, timing
1422
+ status, and invalid reasons. It can include explicit `--scorecard` paths when
1423
+ scorecards live outside the case directory. It does not judge output quality
1424
+ or run workflow stages.
1425
+ - **MABW-080 condition scaffold**: `experiments 080 scaffold-condition`
1426
+ imports the frozen fact layer into initialized baseline/memory/prompt-only
1427
+ workspaces and writes operator instructions. It does not create generic
1428
+ workspace config, run subagents, gates, finalize, registration, scoring, or
1429
+ summarization.
1430
+ - **MABW-080 public-safe pilot skeleton**: added
1431
+ `experiments/080/cases/solar_public_001` with a synthetic frozen fact layer
1432
+ seed archive, guidance set, and assessment template. It is setup material, not
1433
+ completed A/B evidence or an output-quality claim.
1434
+
1435
+ ### Boundaries
1436
+
1437
+ - v0.8.5 is an MABW-080 experiment harness release. It is not a claim that briefs are better, faster, semantically verified, or model-performance measured.
1438
+ - **080 pilot observation boundary**: v0.8.5 records pilot-level observation
1439
+ that the intended guidance effect is observable: baseline showed weak
1440
+ manifestation, memory showed clean manifestation, and prompt-only
1441
+ over-applied. This is not treated as A-controlled proof because v0.8.6 still
1442
+ needs target-aware completion, Python-owned audit binding, repair invalidation,
1443
+ treatment isolation, and condition-blind assessment hardening.
1444
+ - `score-run` fills deterministic control/readiness metadata only. It does not score guidance manifestation, prose quality, taste, factual regression, or output quality.
1445
+ - `import-assessment` validates and merges externally supplied assessment metadata. Python does not decide whether guidance manifested.
1446
+ - Delivery snapshots under `output/delivery-history/` are convenience copies. The immutable control archive remains `state finalize-complete` under `output/runs/<run_id>/`.
1447
+
1448
+ ## [0.8.4] — 2026-06-16
1449
+
1450
+ ### Added
1451
+
1452
+ - **Deterministic source provider join**: source provider batches now join through a stable ordering and digest helper so provider completion order does not decide dedupe winners or source ordering.
1453
+ - **Opt-in source provider parallel collection**: parallel-safe source providers can run through an opt-in thread-pool path while unsafe providers remain serial ordering barriers. Joined results still flow through the deterministic source join.
1454
+ - **Scout chunk join contract**: Scout runtime guidance now treats chunk outputs as scratch material and requires parent-side deterministic joining before workflow artifacts are written. Default topology may join into `candidate_claims.json` and `screened_candidates.json`; strict topology joins Scout output only into `candidate_claims.json`.
1455
+ - **Quality gate evaluation helper**: deterministic quality gate finding evaluation is now isolated in a read-only helper with helper-level opt-in parallel execution. Report writing, legacy projection updates, and event emission remain single-writer serial transactions.
1456
+ - **Stage runtime/model provenance**: `state stage-complete` and `state finalize-complete` can record explicit runtime/model values in workflow state and event log metadata as audit provenance only.
1457
+ - **Owner-stage repair transaction**: deterministic `repair start` / `repair complete` transactions can route repair to the owner stage, record active repair state, restrict allowed artifacts, and keep contaminated runs non-reference-eligible.
1458
+
1459
+ ### Changed
1460
+
1461
+ - **Repair boundaries hardened**: finalized runs cannot be reopened by stale repair reports, disallowed downstream artifact creation is blocked during repair, and no-op repairs are rejected unless a future explicit no-op path is added.
1462
+ - **Onboarding title mapping fixed**: DOCX heading configuration is now kept separate from onboarding brief titles.
1463
+
1464
+ ### Boundaries
1465
+
1466
+ - v0.8.4 is about safe parallelism foundations and deterministic repair routing. It is not a speed-improvement claim, output-quality claim, model-performance measurement, or semantic support signal.
1467
+ - `gates check` remains serial by default in the user-facing CLI. Parallel gate evaluation is currently helper-level opt-in infrastructure.
1468
+ - Scout chunk parallelism is a runtime contract only. MABW does not ship a Python Scout executor, semantic chunk extractor, or worker-output artifact append path.
1469
+ - Stage runtime/model provenance is recorded only when completion commands are called with explicit values; normal runtime handoffs do not automatically supply it yet.
1470
+
1471
+ ## [0.8.3] — 2026-06-16
1472
+
1473
+ ### Added
1474
+
1475
+ - **Claim Draft contract**: added experimental `claim_drafts.json` validation for source-grounded draft claims without `claim_id` fields.
1476
+ - **Claim Ledger freeze transaction**: added `multi-agent-brief state freeze-claim-ledger` so Python assigns deterministic `CL-####` IDs, writes canonical `claim_ledger.json`, records freeze metadata, and emits a `claim_ledger_frozen` event.
1477
+ - **Claim Ledger completion enforcement**: `state stage-complete --stage claim-ledger` now requires a matching freeze record for the current ledger bytes.
1478
+ - **Auditor support calibration contract**: Auditor role contracts now explicitly check overstatement, support-strength calibration, confidence mismatch, evidence-relation mismatch, and limitation leakage.
1479
+
1480
+ ### Changed
1481
+
1482
+ - **Claim Ledger role boundary tightened**: Claim Ledger agents now draft `claim_drafts.json` and no longer author canonical `claim_ledger.json`.
1483
+ - **Analyst/Auditor contracts aligned with frozen ledger semantics**: Analyst and Auditor read frozen `claim_ledger.json`, do not read `claim_drafts.json`, and must not edit the Claim Ledger.
1484
+ - **Generated runtime assets regenerated**: Claude, Codex, OpenCode, Hermes, and hand-maintained skill text now reflect the Claim Freeze boundary.
1485
+
1486
+ ### Boundaries
1487
+
1488
+ - v0.8.3 does not claim semantic proof, automatic semantic dedupe, output-quality improvement, autonomous repair, or Codex parity.
1489
+ - Claim IDs are deterministic for the same freeze input under `sorted_sequential_v1`; this is not an incremental ID-stability promise after draft sets change.
1490
+ - `claim_drafts.json` is a freeze input only. Downstream drafting, auditing, gates, source appendix, and finalize binding continue to use frozen `claim_ledger.json`.
1491
+
1492
+ ## [0.8.2] — 2026-06-15
1493
+
1494
+ ### Added
1495
+
1496
+ - **Role topology selector**: policy packs can select `default`, `strict`, or `human_assisted` role topology while preserving one canonical stage spec and the same accountable artifacts.
1497
+ - **Topology-satisfied stage recording**: default topology lets Scout write both `candidate_claims.json` and `screened_candidates.json`, then records Screener as satisfied by topology instead of fabricating an independent Screener execution history. Strict topology remains available for independent screening.
1498
+ - **Editor-new-fact quality gate**: stage-scoped quality gates now include a soft-by-default `editor_new_fact` check, backed by a Python-written Analyst draft snapshot, that flags editor-introduced numbers, claim references, and simple entity phrases. `--strict` can make those findings blocking.
1499
+ - **Topology-aware status output**: human `status` output now shows topology-satisfied stages such as `screener complete via scout`, without changing the JSON schema or runtime state.
1500
+ - **Packaged topology handoff smoke**: CI now verifies package-installed `init`/`run --workspace` handoff behavior for default topology and a strict-topology contract-base override.
1501
+
1502
+ ### Changed
1503
+
1504
+ - **Role source and generated assets aligned with topology**: Scout/Screener and Delivery Editor wording now reflects default/strict topology while keeping Claim Ledger, auditable draft, audit report, gate reports, event log, and delivery artifacts separate.
1505
+ - **Public docs aligned with topology**: README and support matrix wording now state that the default role assignment is shorter, but the accountability spine is not.
1506
+ - **Runtime-state decomposition completed for v0.8.2 foundations**: the runtime-state facade now exposes a pinned surface while helpers are split into manifest/workflow, artifact registry, event log, completion gates, and operations modules.
1507
+ - **Control-surface interpreters guarded**: run integrity, audit binding, quality gate binding, frozen artifact integrity, and stage-completion interpretation now have explicit structural tests to prevent helper drift.
1508
+ - **Legacy dead code removed**: orphaned connector/model/history/source-map modules and channel stubs were removed without changing the supported runtime path.
1509
+
1510
+ ### Boundaries
1511
+
1512
+ - Role topology convergence is not a speed-improvement claim and does not remove Claim Ledger, gate reports, audit report, event log, archive, or human-triggered delivery.
1513
+ - `editor_new_fact` is deterministic lexical detection, not semantic proof that every edit is supported.
1514
+ - The packaged topology smoke tests runtime handoff construction only. It does not bundle source-clone runtime kits or promote packaged `runtime install` beyond the existing support matrix.
1515
+
1516
+ ## [0.8.1] — 2026-06-14
1517
+
1518
+ ### Added
1519
+
1520
+ - **Control-trace timing projection**: status and run archives now expose event-log-derived timing buckets for completed, incomplete, unknown, or contaminated traces without mutating runtime state or claiming exact model runtime.
1521
+ - **Fast-rerun frozen fact-layer archive and import**: finalized run archives now include a hash-verified frozen fact layer, and `state import-fact-layer` can import a complete archived fact layer into a new workspace for same-evidence downstream reruns.
1522
+ - **Fast-rerun runtime handoff**: `run --recipe fast-rerun` now requires a valid imported fact layer, starts from Analyst, and explicitly avoids replaying source-discovery, Scout, Screener, or Claim Ledger history.
1523
+ - **Fast-rerun freshness and public fixture coverage**: imported fact layers are checked against the target workspace freshness window at delivery time, and public-safe fixtures cover clean import, no-delivery import state, and source-plan rejection.
1524
+ - **MABW-080 run registration**: `experiments 080 register-run` registers completed workspace runs into existing MABW-080 cases as `run_record.json` experiment metadata.
1525
+
1526
+ ### Changed
1527
+
1528
+ - **Run integrity normalization is shared and fail-closed on malformed persisted state**: read surfaces may project unknown/non-reference status for invalid control state, while persisted workflow integrity remains `clean` or `contaminated`.
1529
+ - **Run archive manifests now preserve fact-layer and timing projections**: archives record source evidence packs, input classification, candidate claims, screened candidates, Claim Ledger, timing, and fast-rerun freshness projections by hash.
1530
+ - **Experiment registration verifies archive bytes**: MABW-080 registration validates archived fact-layer file hashes and source-pack hashes before comparing the archive with the case frozen fact layer.
1531
+
1532
+ ### Boundaries
1533
+
1534
+ - v0.8.1 adds measurement infrastructure and fast-rerun control transactions. It does not score output quality, prove semantic truth, run 080 summaries, scaffold experimental conditions, or promote Codex to supported parity.
1535
+ - Fast-rerun is Experimental. It supports hash-verified same-evidence downstream rerun inspection; it is not a gate-skipping lite mode.
1536
+ - MABW-080 remains Experimental. `register-run` records run metadata only; `score-run`, `summarize`, manifestation assessment import, and condition scaffolding are not shipped in v0.8.1.
1537
+
1538
+ ## [0.7.5] — 2026-06-13
1539
+
1540
+ ### Added
1541
+
1542
+ - **Stage-scoped quality gate reports**: `gates check --stage auditor` and `gates check --stage finalize` now write separate authoritative reports under `output/intermediate/gates/`. The legacy `output/intermediate/quality_gate_report.json` remains a latest/compatibility projection and is no longer the frozen authority for both stages.
1543
+ - **Run integrity marker**: runtime state now records whether a run remains clean single-shot reference evidence or has become contaminated by reset, older-stage replay, or frozen-artifact mutation. Contaminated runs can still be completed locally, but should not be packaged as clean reference evidence.
1544
+ - **Deterministic repair router**: added `multi-agent-brief repair route` to map known gate/audit/control findings to the owning stage and allowed artifacts without executing repair or calling an agent.
1545
+ - **Codex experimental runtime kit hardening**: Codex custom-agent assets remain Experimental, with clearer workspace-local install and control-flow guidance.
1546
+
1547
+ ### Changed
1548
+
1549
+ - **Source-discovery evidence boundary tightened**: `source_candidates.yaml` is treated as planning/review only. It cannot be merged as evidence, and source-discovery completion requires durable source evidence instead of a plan-only artifact.
1550
+ - **Runtime/source hardening**: web-search configuration now rejects ambiguous modes, disabled search cannot run through `sources decide --search`, workspace `.env` loading is allowlisted, and invalid provider config no longer contributes source items.
1551
+ - **Audit binding moved into Python control state**: finalize verifies frozen Claim Ledger, audited brief, and audit report hashes through deterministic runtime state instead of trusting auditor-written binding metadata.
1552
+ - **Run archive added for finalized runs**: finalized runs are archived under `output/runs/<run_id>/` with delivery, intermediate, control files, and SHA-256 manifest entries so repeated weekly runs do not erase historical evidence chains.
1553
+ - **Run integrity contamination made transactional**: contamination state and `run_integrity_contaminated` events now commit together; event append failure rolls back workflow state, and duplicate contamination reasons are no-ops.
1554
+ - **Repair routing honors gate metadata**: router output now trusts existing `repair_owner`, `repair_stage_id`, and `repair_artifact_id` fields before falling back to deterministic heuristics.
1555
+ - **Docs-only CI safety**: docs-only changes now run public-safety, terminology, version, and release-consistency checks so README/docs cannot bypass release guardrails.
1556
+
1557
+ ### Boundaries
1558
+
1559
+ - v0.7.5 does not claim semantic proof, autonomous repair, automatic learning, Codex parity, or output-quality improvement.
1560
+ - Codex remains Experimental. Real-workspace control-flow E2E reached terminal delivery, but clean repair semantics and specialist parity are not yet promoted to supported-runtime claims.
1561
+ - `repair route` is a read-only router. It does not create repair plans, mutate artifacts, execute repair, or decide taste.
1562
+
1563
+ ## [0.7.4] — 2026-06-12
1564
+
1565
+ ### Added
1566
+
1567
+ - **Audit binding consistency check**: `finalize` now rejects stale audit reports that still mention claim IDs absent from the current Claim Ledger, record blocking audit findings, or carry stale ledger/brief binding metadata.
1568
+ - **Public failure study**: added a public-safe organoid-industry failure study showing how a readable brief can still overstate source support, and why v0.8 focuses on source-to-claim semantic support calibration.
1569
+
1570
+ ### Changed
1571
+
1572
+ - **Release public-safety check**: `check_release_consistency.py` now runs the tracked-file public-safety scan so release checks fail on local paths, token-like strings, environment-file references, or configured private terms.
1573
+ - **Source appendix wording**: public docs now state that source appendices are appended inside the reader delivery files when configured, while standalone `output/source_appendix.md` remains an audit/control copy.
1574
+
1575
+ ### Boundaries
1576
+
1577
+ - **Traceability, not semantic proof**: release-facing wording now states that registered source links show where a claim entered the workflow, but do not yet prove that each source semantically supports every sub-claim. Source-to-claim semantic support remains a v0.8 evaluation target.
1578
+ - **Distribution boundary**: v0.7.4 release notes use source clone plus demo scripts as the primary get-started path. Homebrew, curl, and PowerShell installer assets remain non-primary installer surfaces until separately packaged and smoke-tested.
1579
+
1580
+ ## [0.7.3] — 2026-06-12
1581
+
1582
+ ### Added
1583
+
1584
+ - **Release safety scan**: added `scripts/check_public_safety.py` and focused tests for public-safe release surfaces, including local path, token-like, environment-file, and configurable banned-term checks.
1585
+ - **Private onboarding guardrail**: root `onboarding.json` is ignored so personal onboarding answers do not accidentally enter release commits.
1586
+ - **Delivery artifact integrity**: `finalize_report.json` records delivery artifact hashes, and `multi-agent-brief deliver` rejects artifacts that changed after finalize.
1587
+
1588
+ ### Changed
1589
+
1590
+ - **Runtime prompt hardening**: generated Orchestrator and Claude command guidance now states that stage completion is defined by `state stage-complete`, not by artifact existence or natural-language completion claims.
1591
+ - **Configuration authority clarified**: screener/runtime guidance now treats `max_source_age_days` and `fail_on_stale_source` as authoritative config and forbids prompt-only freshness exceptions.
1592
+ - **Onboarding privacy boundary clarified**: `/mabw new` guidance now forbids inferring company or organization from maintainer identity, repo history, private memory, prior workspaces, local directories, or previous reports.
1593
+
1594
+ ### Boundaries
1595
+
1596
+ - v0.7.3 is a release-hardening patch over v0.7.2. It does not add new autonomous learning, role topology changes, output-quality scoring, public raw trace packs, or benchmark claims. The repo includes experiment/evaluation harnesses and public evaluation packets; these are measurement infrastructure, not a benchmark claim.
1597
+
1598
+ ## [0.7.2] — 2026-06-12
1599
+
1600
+ ### Added
1601
+
1602
+ - **Reader-final output gate**: `finalize` now records `finalize_report.json.reader_clean` and rejects reader-facing Markdown/DOCX/source appendix outputs that leak internal source markers, raw claim/source IDs, local paths, debug residue, process wording, or blank citation/source-index rows.
1603
+ - **Runtime completion transactions**: added `multi-agent-brief state stage-complete` and `state finalize-complete` for deterministic success-path bookkeeping. These commands validate and record completion claims; they do not execute stages, invoke agents, call `finalize`, or repair content.
1604
+ - **Claude Code five-verb writer entrypoint**: added `/mabw` for Claude Code with `new`, `run`, `status`, `feedback`, and `deliver`, plus `multi-agent-brief claude install` support for the Claude writer path.
1605
+ - **Improvement Ledger supersession hygiene**: added top-level immutable `supersedes_id`, deterministic duplicate proposal warnings, approved supersession fork rejection, non-materializable superseder warnings, and revert-time warnings when old guidance re-exposes.
1606
+ - **Read-only writer status**: added the writer-facing status model for current run status, source-trail surface readiness, approved reader preferences, and delivery guardrails without refreshing or mutating runtime state. It points to Claim Ledger / audit / source appendix surfaces rather than tracing individual numbers itself.
1607
+ - **Product-definition docs**: added the Chinese golden path, Chinese weekly-use script, and writer-facing trust map for the four product concepts behind v0.7.2.
1608
+ - **Public integration summary and launch checklist**: added a public-safe solar integration reference summary and a Chinese launch-validation checklist for golden-path self-test and fresh-clone pilot validation.
1609
+ - **On-ramp language**: added three entry paths ("look once", "run once", and "live with it") while keeping Claim Ledger, gates, human delivery, execution trace, and frozen snapshots as non-negotiable accountability surfaces.
1610
+ - **v1.0 freeze list**: added a maintainer-facing freeze checklist for runtime state, artifact contracts, gate reports, Improvement Ledger schema, handoff, eval-case runner actions, and deferred v0.8 surfaces.
1611
+ - **Improvement origin runtime metadata**: human-feedback Improvement Ledger proposals capture `origin_runtime` when runtime state exists; this is audit/rendering metadata only and is not used for routing, filtering, or materialization.
1612
+
1613
+ ### Changed
1614
+
1615
+ - **Success path uses transactions**: generated handoff/runtime guidance now routes successful stage progress through `state stage-complete` and terminal delivery through `state finalize-complete`; `state decide` remains for retry, repair, human review, and block decisions.
1616
+ - **Delivery path hardened**: `/mabw deliver` and runtime handoff guidance require gates, strict state checks, final rendering, reader-final cleanliness, and `finalize-complete` before terminal completion is recorded.
1617
+ - **Improvement materialization remains computed**: superseded guidance is a read-time/materialization computation, not a stored ledger status. Reverting a superseder can re-expose the previous approved entry by design.
1618
+ - **Five-verb language clarified**: `doctor` remains a diagnostic/maintainer command, not a sixth writer verb. Claude Code is the first-class writer / five-verb path; Hermes remains a supported delegated/scheduled runtime path.
1619
+
1620
+ ### Boundaries
1621
+
1622
+ - v0.7.2 does not add autonomous learning, automatic repair, automatic approval, output-quality scoring, role-topology compression, manifestation metrics, retrieval memory, or runtime-specific guidance filtering.
1623
+ - v0.7.2 does not include `operator_reported_model`; model/run observation metadata is deferred to v0.7.3 / v0.8 scorecard design.
1624
+ - v0.7.2 does not include generic ledger provenance fields, `improvement/intake.jsonl`, or `improvement/candidates.jsonl`; intake/candidate parking-lot work is deferred to v0.7.3+.
1625
+ - v0.7.2 does not include role topology convergence, guidance manifestation reports, runtime-specific guidance filtering, or a public A-grade reference run.
1626
+
1627
+ ## [0.7.0] — 2026-06-10
1628
+
1629
+ ### Added
1630
+
1631
+ - **Improvement Ledger lifecycle**: added `multi-agent-brief improve propose/list/show/approve/reject/revert/stats/validate/rebuild` for human-authored, human-approved reader-preference guidance.
1632
+ - **Improvement Memory projection**: approved materializable guidance is deterministically projected into `improvement/memory.md`; `improve rebuild` writes only that projection and does not mutate runtime state, handoff, events, or snapshots.
1633
+ - **Frozen per-run Improvement Memory snapshot**: `run`, `start`, and `handoff` freeze eligible guidance into `output/intermediate/improvement_memory_snapshot.md` and expose only that snapshot through handoff.
1634
+ - **Runtime manifest improvement block**: `runtime_manifest.json.improvement` records `ledger_sha256`, `memory_sha256`, `snapshot_path`, `snapshot_sha256`, and `materialized_entry_ids` for the active run.
1635
+ - **Product-definition guardrail**: machine-checkable feedback issues stay in feedback/repair/gate surfaces unless a human rewrites them as persistent audience guidance.
1636
+ - **Public-safe eval cases**: added packaged eval cases proving unapproved entries are not materialized, approved guidance is frozen, and reverted entries are removed from the next snapshot.
1637
+ - **Improvement module docs**: added `docs/modules/improvement.md` for command lifecycle, files, semantics, and non-goals.
1638
+
1639
+ ### Changed
1640
+
1641
+ - **Public roadmap and support status**: v0.7.0 now documents Improvement Ledger / Memory as the implemented public-control-surface slice while keeping FrictionStore, autonomous learning, retrieval memory, runtime-specific filtering, and output-quality validation deferred.
1642
+ - **Packaged eval fixtures**: package data now includes public-safe `improvement/ledger.jsonl` and `improvement/memory.md` eval fixtures.
1643
+
1644
+ ### Boundaries
1645
+
1646
+ - v0.7.0 does not add autonomous learning, automatic repair, semantic proof, output quality guarantees, RAG/retrieval memory, runtime-specific guidance filtering, ledger compaction, policy-pack authoring, or automatic workflow execution. `FeedbackIssue` is evidence, not guidance; guidance must be human-authored and human-approved.
1647
+
1648
+ ## [0.6.9] — 2026-06-09
1649
+
1650
+ ### Added
1651
+
1652
+ - **Workspace runtime kit installer**: added `multi-agent-brief runtime install --workspace <workspace> --runtime opencode|claude|all` to copy OpenCode/Claude Code project commands, agents, and a small workspace skill into the business workspace.
1653
+ - **Runtime asset inventory**: added `docs/runtime-asset-inventory.md` and `scripts/check_runtime_asset_parity.py` to distinguish packaged contract/eval data from source-clone-only runtime assets.
1654
+ - **Runtime recipes**: added `docs/runtime-recipes.md` to document full subagent and compact human-assisted workflow recipes without adding a Python workflow mode.
1655
+ - **Install smoke hardening**: expanded non-dev CI smoke to check state show/check, absence of stage outputs after `run`, package-only runtime asset boundaries, and wheel install behavior.
1656
+
1657
+ ### Changed
1658
+
1659
+ - **Install/runtime truth**: README, README_en, support matrix, roadmap, and architecture docs now distinguish package-installed CLI behavior from source-clone runtime assets such as `.agents/`, `.claude/`, `.opencode/`, `.codex/`, and the Hermes plugin source tree.
1660
+ - **Workspace-local runtime guidance**: users can install runtime assets into a workspace to avoid OpenCode/Claude reading the MABW source checkout during normal workspace execution.
1661
+
1662
+ ### Boundaries
1663
+
1664
+ - v0.6.9 is a stabilization release. It does not add FrictionStore, improvement proposal commands, policy-pack authoring, automatic repair, automatic source fetching, or a Python brief-generation pipeline. Runtime kit selection and installation do not execute the brief workflow.
1665
+
1666
+ ## [0.6.8] — 2026-06-09
1667
+
1668
+ ### Added
1669
+
1670
+ - **Reader-facing source appendix**: `multi-agent-brief finalize` can generate `output/source_appendix.md` from sources cited in `output/intermediate/audited_brief.md` and resolved through `output/intermediate/claim_ledger.json`.
1671
+ - **Source appendix compatibility**: `source_appendix` is the new output format name; legacy `source_map` output format requests are treated as a compatibility alias.
1672
+ - **Public-safe eval case**: added a packaged eval case proving finalize can write a reader-facing appendix without leaking raw claim IDs, source IDs, evidence text, local paths, or unused ledger sources.
1673
+
1674
+ ### Changed
1675
+
1676
+ - **Formatter guidance**: formatter role contracts and runtime command surfaces now mention configured source appendix rendering and its reader-facing safety boundary.
1677
+ - **Default output format**: new onboarding/default profiles now use `source_appendix` instead of the old `source_map` label.
1678
+
1679
+ ### Boundaries
1680
+
1681
+ - The source appendix is a reader-facing source list, not source evidence, semantic proof, provenance, a runtime gate, or a workflow execution artifact. It does not fetch sources, rewrite claims, create citations, modify the Claim Ledger, or expose internal `[src:CLAIM_ID]` markers in final reader artifacts.
1682
+
1683
+ ## [0.6.7] — 2026-06-09
1684
+
1685
+ ### Added
1686
+
1687
+ - **Orchestrator Control Switchboard**: added `multi-agent-brief controls build-switchboard/show/select/validate` for deterministic runtime control recommendations and Orchestrator selection records.
1688
+ - **Switchboard control files**: `run`, `start`, and `handoff` now create `output/intermediate/orchestrator_control_switchboard.json` and expose it through `control_switchboard_files`; `control_selections.json` is created only when the Orchestrator explicitly records a selection.
1689
+ - **Runtime event trace**: event logs can record switchboard build, selection, and validation events.
1690
+ - **Public-safe eval case**: added a packaged eval case proving that selecting a control does not execute it.
1691
+
1692
+ ### Changed
1693
+
1694
+ - **Runtime guidance**: Hermes, Claude Code, OpenCode, Codex, and manual handoff text now instruct the Orchestrator to read the switchboard and record enable/defer/reject selections before explicitly executing selected controls.
1695
+
1696
+ ### Boundaries
1697
+
1698
+ - Selection is not execution. `controls select --selection enable` records Orchestrator intent only; it does not run quality gates, feedback planning, provenance projection, source discovery, local/social signal collection, repair, or subagents. Privacy-sensitive controls require explicit human approval before they are execution-ready.
1699
+
1700
+ ## [0.6.6] — 2026-06-09
1701
+
1702
+ ### Added
1703
+
1704
+ - **Audience Profile Runtime Surface**: added workspace-local `audience_profile.md` as a human-editable reader taste and department preference file.
1705
+ - **Frozen per-run snapshot**: `run`, `start`, and `handoff` now create or reuse `output/intermediate/audience_profile_snapshot.md` so the active run uses stable taste context even if the live profile is edited later.
1706
+ - **Handoff references**: `agent_handoff.json` and `agent_handoff.md` now expose `audience_memory_files` separately from runtime state, feedback, quality gate, provenance, and expected workflow artifacts.
1707
+ - **Runtime event trace**: event logs can record `audience_profile_snapshot_created` with profile/snapshot paths and hashes.
1708
+
1709
+ ### Changed
1710
+
1711
+ - **Workspace init**: onboarding, direct init, and demo init now create an audience profile template.
1712
+ - **Runtime guidance**: Hermes, Claude, OpenCode, Codex, and manual handoff text now instruct the Orchestrator to read the snapshot at run start, summarize relevant taste guidance, and pass it to delegated roles as context.
1713
+
1714
+ ### Boundaries
1715
+
1716
+ - Audience profile files are runtime context, not source evidence, artifact contracts, quality gates, provenance graph nodes, or stage blockers. Python creates, freezes, exposes, and records the context; it does not enforce taste, update the profile automatically, route controls, or implement a long-term memory system.
1717
+
1718
+ ## [0.6.5] — 2026-06-09
1719
+
1720
+ ### Added
1721
+
1722
+ - **Provenance projection CLI**: added `multi-agent-brief provenance build`, `provenance show --json`, and `provenance validate` for deterministic workspace-local audit/debug graphs.
1723
+ - **Provenance control artifact**: added optional `output/intermediate/provenance_graph.json` as a projection of existing runtime state, artifact registry, event log, Claim Ledger, feedback, repair, and quality gate control files.
1724
+ - **Provenance eval case**: added a packaged public-safe eval case that validates provenance graph creation without leaking raw evidence text.
1725
+ - **Runtime and handoff references**: handoff JSON/Markdown, Hermes prompts, and Hermes plugin references now expose optional provenance state separately from required workflow artifacts.
1726
+
1727
+ ### Changed
1728
+
1729
+ - **Artifact activation**: `provenance_graph.json` stays `expected/not_checked` until `provenance build` creates it, so fresh workspaces are not blocked by missing provenance.
1730
+ - **Runtime events**: event logs can record provenance build/validate outcomes without turning the event log into the graph source of truth.
1731
+ - **Reference semantics**: provenance edges use citation wording such as `claim_cites_source`; the graph does not assert semantic truth or that a source proves a claim.
1732
+
1733
+ ### Boundaries
1734
+
1735
+ - Provenance projection is optional audit/debug tooling. It does not execute workflow stages, replay a DAG, fetch sources, edit briefs, execute repair, verify semantic truth, or gate `finalize` by default.
1736
+
1737
+ ## [0.6.4] — 2026-06-08
1738
+
1739
+ ### Added
1740
+
1741
+ - **Public-safe evaluation cases CLI**: added `multi-agent-brief eval-cases list`, `eval-cases validate`, and `eval-cases run` for deterministic developer/CI regression checks.
1742
+ - **Packaged eval fixtures**: bundled five public-safe workspace control cases plus one Hermes static invariant case so non-editable installs can run the default eval suite.
1743
+ - **Fixture leakage scanner**: eval-case validation rejects shell-string commands, non-synthetic manifests, local paths, unsafe URLs, email domains, token-shaped values, prompt labels, and non-synthetic claim/source IDs.
1744
+ - **Claude Code install helper**: added `multi-agent-brief claude install` to install `/generate-brief` and MABW subagents into a user-level Claude Code directory for Claude Desktop Code tab discovery.
1745
+
1746
+ ### Changed
1747
+
1748
+ - **Structured eval actions**: eval cases dispatch allowlisted actions such as `gates.check`, `feedback.ingest`, and `state.decide` instead of parsing or executing shell commands.
1749
+ - **Stage-explicit fixtures**: workspace cases declare `initial_stage` and prepare temporary runtime state explicitly, so cases validate control-surface behavior without executing workflow stages.
1750
+ - **Partial assertions**: eval results compare only stable control outputs such as exit codes, expected control artifacts, gate findings, feedback issues, workflow state, and static text invariants.
1751
+ - **Claude Code setup guidance**: README and setup scripts now include the optional install step for users who run Claude Code from Claude Desktop with a workspace or non-repository project folder selected.
1752
+
1753
+ ### Boundaries
1754
+
1755
+ - Evaluation cases are developer/CI regression tools, not workflow artifacts. They do not score prose, run subagents, execute repair, fetch sources, call an LLM judge, or add `evaluation_report.json` to runtime artifact contracts.
1756
+
1757
+ ## [0.6.3] — 2026-06-08
1758
+
1759
+ ### Added
1760
+
1761
+ - **Quality Gates CLI**: added `multi-agent-brief gates check`, `gates show --json`, and `gates validate` for deterministic material-fact, freshness, and target-relevance checks.
1762
+ - **Quality gate control artifact**: added optional `output/intermediate/quality_gate_report.json` as a separate Orchestrator control artifact.
1763
+ - **Runtime gate events**: event logs now record quality gate checks and whether they produced blocking findings.
1764
+
1765
+ ### Changed
1766
+
1767
+ - **Current-stage gate blocking**: `state check` and `state decide` now enforce blocking quality gate findings only for the current stage.
1768
+ - **Gate-stage and repair-target separation**: quality gate findings now distinguish the stage being blocked from the stage/artifact that should own repair.
1769
+ - **Required gate semantics**: `quality_gates.enabled` can require `quality_gate_report.json` before configured current stages continue.
1770
+ - **Runtime handoff references**: handoff JSON/Markdown, Hermes prompts, and Hermes plugin references expose optional quality gate state separately from expected workflow artifacts.
1771
+ - **Hermes main path**: Hermes guidance now runs `gates check`, `state check --strict`, and `state decide` before `finalize`; `finalize` alone is not a quality-gate executor.
1772
+ - **Gate boundaries**: quality gates remain deterministic validators; they do not live-fetch market data, recrawl sources, rewrite briefs, execute repair, or make semantic truth judgments.
1773
+
1774
+ ### Fixed
1775
+
1776
+ - **Optional control artifact activation**: `quality_gate_report.json` stays `expected/not_checked` until gates are explicitly run or enabled, avoiding misleading `missing` status in normal runs.
1777
+ - **Reader-facing checks**: `output/brief.md` quality gates do not require internal `[src:CLAIM_ID]` markers.
1778
+
1779
+ ## [0.6.2] — 2026-06-08
1780
+
1781
+ ### Added
1782
+
1783
+ - **Feedback CLI**: added `multi-agent-brief feedback ingest`, `feedback plan`, `feedback resolve`, `feedback show --json`, and `feedback validate` for structured feedback issues, deterministic repair plans, and explicit resolution state.
1784
+ - **Feedback control artifacts**: added `feedback_issues.json`, `repair_plan.json`, and conditional `delta_audit_report.json` as optional Orchestrator control artifacts.
1785
+ - **Feedback event trace**: runtime event logs now record feedback issue creation, issue planning, and repair plan creation events.
1786
+
1787
+ ### Changed
1788
+
1789
+ - **Stage-scoped feedback blocking**: blocking feedback only affects the current stage, so future-stage feedback does not block a fresh or earlier-stage workspace.
1790
+ - **Runtime handoff references**: handoff JSON/Markdown and Hermes surfaces now expose optional feedback state files separately from expected workflow artifacts.
1791
+ - **Bounded repair planning**: repair plans propose bounded Orchestrator decisions but do not execute repair or edit brief artifacts automatically.
1792
+
1793
+ ### Fixed
1794
+
1795
+ - **Feedback/evidence separation**: feedback issue fields avoid claim-evidence naming and keep human feedback out of source evidence artifacts.
1796
+
1797
+ ## [0.6.1] — 2026-06-08
1798
+
1799
+ ### Added
1800
+
1801
+ - **Minimum runtime state**: `multi-agent-brief run`, `start`, and `handoff` now initialize Orchestrator control files: `runtime_manifest.json`, `workflow_state.json`, `artifact_registry.json`, and `event_log.jsonl`.
1802
+ - **State CLI**: added `multi-agent-brief state init`, `state check`, `state show --json`, and `state decide` for runtime inspection, artifact status refresh, and Orchestrator decision recording.
1803
+ - **Runtime state references in handoff**: `agent_handoff.json` and `agent_handoff.md` now expose `runtime_state_files` separately from workflow `expected_artifacts`.
1804
+
1805
+ ### Changed
1806
+
1807
+ - **Stage-scoped artifact blocking**: required artifacts block only the consumer stage that needs them, so a fresh workspace starts with downstream artifacts as `expected/pending` rather than globally blocked.
1808
+ - **Artifact path contract**: artifact registry paths are workspace-root relative, and `input_classification` now points to the CLI's actual default output path.
1809
+ - **Runtime docs and Hermes surfaces**: runtime prompts and public docs now describe the v0.6.1 minimum state layer while keeping feedback repair and provenance graph work deferred.
1810
+
1811
+ ### Fixed
1812
+
1813
+ - **Manifest semantic split**: v0.6.1 uses `runtime_manifest.json` for Orchestrator runtime state and leaves the legacy pipeline `run_manifest.json` semantics untouched.
1814
+
1815
+ ## [0.6.0] — 2026-06-08
1816
+
1817
+ ### Added
1818
+
1819
+ - **Explicit Orchestrator contract runtime**: added shared contract references for Orchestrator authority, stage order, artifact expectations, policy shell, and decision vocabulary.
1820
+ - **Runtime role parity**: Hermes, Claude Code, Codex, OpenCode, and manual handoff now identify the Orchestrator as the runtime main agent and use the same stage decision language.
1821
+ - **Orchestrator architecture docs**: added bilingual public architecture pages plus implementation notes for v0.5.9 prep and v0.6.0 contract scope.
1822
+ - **Packaged contract configs**: bundled Orchestrator contract YAML files inside the Python package so non-editable installs can run `multi-agent-brief run` without a source checkout.
1823
+
1824
+ ### Changed
1825
+
1826
+ - **Runtime handoff artifacts**: `agent_handoff.json` and `agent_handoff.md` now include contract references and the shared Orchestrator control loop.
1827
+ - **Hermes plugin alignment**: Hermes plugin handoff now passes the detected repo workdir when available, and its delegated workflow reference matches `stage_specs.yaml`.
1828
+ - **README updates**: both Chinese and English README files now point to the v0.6 Orchestrator architecture and state the v0.6.0 boundary.
1829
+ - **Support matrix**: removed the remaining `BriefPipeline` interface wording; the old Python pipeline is marked removed.
1830
+
1831
+ ### Fixed
1832
+
1833
+ - **Non-editable install handoff**: fixed `multi-agent-brief run --workspace ...` failing after non-editable archive/package installation because contract files were only available in the source repo.
1834
+ - **Release consistency script**: release checks no longer import an ambient installed package when validating source version consistency.
1835
+
1836
+ ## [0.5.8] — 2026-06-07
1837
+
1838
+ ### Changed
1839
+
1840
+ - **版本号 0.5.7 → 0.5.8**:上游 `check_release_consistency.py` 要求版号与 tag 一致;0.5.7 从未打 tag,本次统一发布。
1841
+ - **README 清理**:移除尚不可用的 CLI-only curl 安装路径和 Homebrew 引用(打包工作推迟到 v0.7)。
1842
+ - **旧 `prepare` 叙事清理**:删除五份遗留 impl-plan 文档(`v0.4.0`、`v0.5.0`、`v0.5.1-*`、`v0.5.5-hermes-adapter`)和 `v1-pre-mas-refactor-roadmap.zh-CN.md`——旧执行计划和引用全部移除。最新路线图见 `docs/roadmap.zh-CN.md`。
1843
+
1844
+ ### Added
1845
+
1846
+ - **`docs/support-matrix.md`**:建表明确所有能力的 Supported / Experimental / Interface Only / CLI-only / Deprecated 状态。
1847
+ - **Issue [#49](https://github.com/Stahl-G/multi-agent-brief-workflow/issues/49) 边界明确化**:README 安装文档澄清 — agent assets(`.agents/`、`.claude/` 等)需 source clone 才能使用子智能体工作流。pip-only 安装仅提供确定性 CLI 命令。正式打包推迟到 v0.7。
1848
+ - **版本管理自动化**:`VERSION` 为唯一真源;新增 `scripts/bump_version.py`(同步到所有文件)、`scripts/check_version_consistency.py`(CI 检查)、`scripts/release.sh`(自动发布)。`__init__.py` 改为 `importlib.metadata.version()` 动态读取。
1849
+
1850
+ ## [0.5.7] — 2026-06-07
1851
+
1852
+ ### Added
1853
+
1854
+ - **`inputs classify` CLI 命令**:`multi-agent-brief inputs classify --config <path>` 扫描 `input/` 各子目录,按角色(evidence / feedback / instruction / context)分类输出 `input_classification.json`,作为 Scout 之前的输入治理门禁。
1855
+ - **Scout 技能合约收紧**:Scout 限定只从 `input/sources/`(和 `input/` 根目录,向后兼容)提取声明。`feedback/`、`instructions/`、`context/` 中的文件被显式排除——它们作为编辑指导、任务要求和背景参考路由给 Editor/Analyst,不进入 Claim Ledger。
1856
+ - **SourceItem `input_subdir` 元数据**:`ManualProvider._load_local_path()` 写入 `metadata["input_subdir"]`(值如 `"sources"`、`"root"`、`"feedback"`),标记文件所属输入子目录。
1857
+ - **Hermes adapter / start_commands / docs**:`inputs classify` 的 "(if available)" 后缀已移除,命令现已正式可用。
1858
+
1859
+ ## [0.5.6] — 2026-06-07
1860
+
1861
+ ### Changed
1862
+
1863
+ - **Thin CLI router**: `main.py` reduced from 1512 to 134 lines. Every command group owns its subparser registration and handler in a dedicated `cli/*_commands.py` module. No user-visible behavior changes.
1864
+ - **Generator scope**: `scripts/generate_agent_configs.py` now generates only platform adapters (`codex`, `claude`, `docs`, `opencode`). `agents_md` and `skills` targets removed. `--allow-prompt-overwrite` flag removed.
1865
+ - **Anthropic Skills convergence**: All 17 `.agents/skills/*/SKILL.md` rewritten as short capability contracts with `Scope / Purpose / Use When / Inputs / Outputs / Work / Handoff` structure. Frontmatter descriptions are concrete routing instructions with artifact paths and pipeline ordering.
1866
+ - **Hermes progressive disclosure**: Hermes skill SKILL.md kept short (~60 lines). Detailed `delegate_task` templates, cron patterns, and source cache contract moved to `references/`.
1867
+ - **Formatter role updated**: `configs/agent_roles.yaml` output_contract replaced with actual pipeline artifacts. Formatter role description updated to reader-facing finalize semantics from the old "preparation artifacts" contract.
1868
+ - **Examples workspace**: `examples/workspaces/weekly-brief-zh/` added as a concrete MABW workspace reference.
1869
+
1870
+ ### Added
1871
+
1872
+ - `.agents/AGENTS.md` — skill routing doc
1873
+ - `.agents/hermes-skills/multi-agent-brief-hermes/references/` — 3 progressive-disclosure reference files
1874
+ - `tests/test_skill_contracts.py` — validates SKILL.md structure
1875
+ - `tests/test_generator_boundaries.py` — confirms generator only touches platform adapters
1876
+
1877
+ ## [0.5.5] — 2026-06-07
1878
+
1879
+ ### Changed
1880
+
1881
+ - **Subagent-first runtime**: Python `BriefPipeline` and `multi-agent-brief prepare` removed. Brief generation is now exclusively the external subagent workflow: scout → screener → claim-ledger → analyst → editor → auditor → finalize.
1882
+ - **Prompt hygiene**: all agent role Hard Rules converted to positive Guardrails language in `configs/agent_roles.yaml` and all generated agent configs.
1883
+ - **Hermes delegate_task native workflow**: Hermes adapter rewritten to use `delegate_task` subagents as the native runtime. Parent agent orchestrates; children run scout, screener, claim-ledger, analyst, editor, and auditor tasks. Cron handles scheduling; `delegate_task` handles per-run child dispatch. No longer routes users to Claude Code.
1884
+ - **Init wizard layout**: new workspaces create `input/sources/README.md` instead of `input/README.md`.
1885
+
1886
+ ### Added
1887
+
1888
+ - `tests/test_subagent_first_contract.py`: anti-regression tests enforcing no `prepare` in user-facing docs, no `ScoutAgent`/`AnalystAgent` class names in source, and Python-commands-are-support-tools contract.
1889
+
1890
+ ### Removed
1891
+
1892
+ - `src/multi_agent_brief/agents/` directory (Python fake agent runtime).
1893
+ - `src/multi_agent_brief/inputs/` directory (stale empty package).
1894
+
1895
+ ## [0.5.3] — 2026-06-06
1896
+
1897
+ ### Fixed
1898
+
1899
+ - **Selector/quality gate conflict**: `selector.max_items` default raised from 8 to 20, matching `min_selected_claims` in audience profiles. Mapper defaults also aligned.
1900
+ - **Epistemic blocks no longer replace reader-facing brief**: `analysis_blocks.json` and `epistemic_draft` are now intermediate governance artifacts. The reader-facing `brief.md` / `brief.docx` uses the legacy prose format with Executive Summary.
1901
+ - **Confidence label**: changed from `100%` percentage (triggered audit `number_without_source` false positive) to qualitative `高/中/低` (High/Medium/Low).
1902
+
1903
+ ### Added
1904
+
1905
+ - **Epistemic Presentation Layer** (PR ac0cefa): AnalysisBlock builder, renderer, limitation hygiene audit, case applicability check. Intermediate artifacts: `analysis_blocks.json`, `limitation_hygiene_report.json`.
1906
+ - **Version bump to 0.5.3**: pyproject.toml, __init__.py, README, CHANGELOG.
1907
+
1908
+ ## [0.5.2] — 2026-06-06
1909
+
1910
+ ### Fixed
1911
+
1912
+ - **Dynamic dates in demo config**: `report.date` changed from hardcoded `"2026-06-02"` to `"auto"` in demo workspace and `examples/basic_market_brief`. Demo input files now use dynamic dates (`_demo_published_at()`) so sources never become stale.
1913
+ - **DOCX default in demo**: demo config now includes `docx` in `output.formats` by default. No more CI patching needed for DOCX smoke.
1914
+
1915
+ ### Added
1916
+
1917
+ - **Finalize delivery gate** (PR #48): deterministic `finalize_reader_outputs()` strips `[src:CLAIM_ID]` from `audited_brief.md` before writing reader-facing `brief.md` / named md / docx. CLI subcommand: `multi-agent-brief finalize --config <workspace>/config.yaml`.
1918
+ - **Golden smoke test** (CI): new `golden-smoke` job verifies all demos (reference, basic, onboarding) produce non-empty, auditable, renderable output with at least 1 claim.
1919
+ - **Finalize workflow documentation** in README: clarifies finalize is an optional post-pipeline step for agent-assisted workflows, not part of the core deterministic pipeline.
1920
+
1921
+ ### Changed
1922
+
1923
+ - **CI: CLI smoke input date refresh**: example input dates are dynamically patched to yesterday before running CLI smoke test.
1924
+ - **`init_wizard.py`**: `DEMO_NEWS` and `DEMO_MARKET_DATA` converted from constants to functions (`_build_demo_news()`, `_build_demo_market_data()`) with dynamic `published_at` dates.
1925
+
1926
+ ## [0.5.1] — 2026-06-06
1927
+
1928
+ ### Added
1929
+
1930
+ - **Local Signal Discovery** (Issue #44): deterministic support for non-English market and local consumer signal discovery. The system can now generate local-language search tasks, produce `collector_tasks.json` for manual/OpenCLI collection, parse `local_signal_samples.jsonl`, and generate `local_signal_report.json` with signals found and data gaps.
1931
+ - **`local_signal_planner.py`**: core module with `MARKET_PLATFORM_HINTS` (9 markets: Vietnam, Japan, China, Indonesia, Thailand, Brazil, Mexico, Germany, Korea), `build_local_signal_tasks()`, `parse_local_signal_samples()`, `generate_local_signal_report()`.
1932
+ - **`opencli_local_signal_adapter.py`**: local evidence processor for screenshots, audio, and text exports. OpenCLI is optional — pipeline works without it.
1933
+ - **`collector_tasks.json`**: execution plan for manual/browser/OpenCLI collection with privacy rules and instructions.
1934
+ - **`local_signal_report.json`**: intermediate artifact recording signals found and data gaps per market/language/platform.
1935
+ - **`build_search_tasks_with_metadata()`**: new function in `decider.py` that preserves search task metadata (topic, market, language, platform_group, signal_type) through pipeline injection.
1936
+ - **3 new audit rules**:
1937
+ - `LOCAL_SIGNAL_CLAIM_001`: consumer pain-point claims require consumer-discussion or platform-data evidence.
1938
+ - `LOCAL_SIGNAL_PROVENANCE_001`: local signal claims require sample metadata (platform, market, collected_at, access_level, sample_type, collector).
1939
+ - `LOCAL_SIGNAL_PRIVACY_001`: personal data from local signal samples must not enter final brief.
1940
+ - **47 new tests** covering task generation, market hints, collector tasks, source candidates, search queries, sample parsing, report generation, and audit rules.
1941
+
1942
+ ### Changed
1943
+
1944
+ - **`sources/decider.py`**: `build_search_queries()` now appends local-language queries from `local_signal_planner`. `generate_source_candidates()` includes `local_social_listening_tasks`. `merge_candidates_to_sources()` injects local tasks into `web_search.search_tasks` with metadata.
1945
+ - **`core/pipeline.py`**: search task injection uses `build_search_tasks_with_metadata()` for metadata preservation. Generates `collector_tasks.json` and `local_signal_report.json` when `local_signal_discovery` is enabled.
1946
+ - **`agents/formatter.py`**: persists `local_signal_report.json` to `output/intermediate/`.
1947
+ - **`audit/rule_packs.py`**: registered 3 new local signal finding types.
1948
+
1949
+ ### Non-goals (explicitly excluded)
1950
+
1951
+ - No RAG / vector database / embedding-based retrieval.
1952
+ - No browser automation or platform crawling.
1953
+ - No login-wall bypass or unauthorized scraping.
1954
+ - No OpenCLI MCP server integration — OpenCLI is treated as local evidence processor only.
1955
+
1956
+ ## [0.5.0] — 2026-06-06
1957
+
1958
+ ### Added
1959
+
1960
+ - **Official Workflow Harness**: reference workflow demo with synthetic data, smoke tests, and artifact contract.
1961
+ - **Final Clean Gate**: clears internal markers from reader-facing output.
1962
+ - **Audience Profiles**: different brief structures and audit thresholds for management, research, IR, policy, support audiences.
1963
+ - **DOCX Templates**: executive_brief, research_note, formal_internal_report templates with rendered-output validation.
1964
+ - **Source Coverage Report**: configurable coverage dimensions with research gaps separation.
1965
+ - **Policy & Regulatory Risk Module**: second analysis module with policy events, risk register, applicability questions.
1966
+ - **Minimal HistoryStore**: file-backed storage for previous briefs and claim ledgers with repeat/novelty tracking.
1967
+ - **Editorial Governance Rule Packs**: quality checks for factual density, business advice, comparable cases, historical analogies, must-preserve facts.
1968
+ - **Effort Budgets**: deterministic runtime limits with budget levels (low, medium, high, xhigh).
1969
+ - **Pipeline Exit Codes**: structured exit codes (0/1/2) for runtime/config fatal and quality gate failures.
1970
+ - **Manifest Stage Status**: trustworthy stage status detection from artifacts and summary text.
1971
+ - **Final Quality Gate**: FinalQualityAuditAgent wired into production pipeline with audience profile thresholds.
1972
+ - **CI Gate Scripts**: release consistency, capabilities, and reference workflow smoke checks integrated into CI.
1973
+
1974
+ ### Fixed
1975
+
1976
+ - **Test Warnings**: resolved ResourceWarning and UserWarning in test suite.
1977
+ - **Search Backend Selection**: improved multi-backend support with proper state machine (disabled/runtime_tool/external_api/configure_later).
1978
+ - **Source Coverage Recency**: use report date instead of current time for recency calculation.
1979
+ - **SourceConfig Validation**: validate enabled_providers must be list[str].
1980
+ - **0 Sources Coverage**: return 0% coverage instead of 100% when no sources collected.
1981
+ - **Final Clean Metadata**: write final_clean_status to audit_report.metadata.
1982
+
1983
+ ## [0.4.0] — 2026-06-05
1984
+
1985
+ ### Added
1986
+
1987
+ - **Claim Schema v2**: new epistemic fields on `Claim` — `schema_version`, `epistemic_type` (observed/interpreted/hypothesis/action/analogy), `evidence_relation` (direct/indirect/inferred/analogous), `applicability_reason`, `limitations`.
1988
+ - **Epistemic audit gates**: deterministic auditor now checks hypothesis-high-confidence misuse, action-without-basis, analogy-without-limitations, and analogy-direct-relation.
1989
+ - **Contracts package**: new `src/multi_agent_brief/contracts/` with `Contract` base class, `SchemaRegistry`, and contracts for `SourceItem`, `CandidateItem`, `Claim` (v1+v2), `AuditReport`, `MarketEvent`, `AnalysisCard`. Includes `FieldViolation`, `ContractError`, and claim v1→v2 migration.
1990
+ - **Backward-compatible migration**: `Claim.from_dict()` auto-fills v2 fields from `claim_type` for v1 ledger data.
1991
+ - **Run Manifest**: every `prepare` run now writes `output/intermediate/run_manifest.json` with run_id, config_hash, provider/module status, source/claim counts, audit status, artifact paths and SHA-256 hashes, and pipeline stage results.
1992
+ - **Semantic audit status**: `NoOpSemanticAuditAgent` now returns `not_configured` instead of faking a pass. `CompositeAuditAgent` tracks `semantic_status` in metadata. Manifest includes `semantic_status` field.
1993
+ - **Audit Finding Taxonomy**: `AuditFinding` gains `blocking_level` (editor_fixable/analyst_blocking/source_blocking/configuration_error/rendering_error/safety_blocking) and `repair_owner` (editor/analyst/source/configuration/rendering/safety). All 25+ finding types tagged via `rule_packs.py`.
1994
+ - **Release Consistency Gate**: `scripts/check_release_consistency.py` verifies pyproject.toml, __init__.py, README.md, README_en.md, CHANGELOG.md, and generated agent configs are version-synced. Integrated into CI.
1995
+
1996
+ ## [0.3.5] — 2026-06-05
1997
+
1998
+ ### Added
1999
+
2000
+ - Init wizard auto-recommends capabilities based on focus areas after workspace creation.
2001
+
2002
+ ## [0.3.4] — 2026-06-05
2003
+
2004
+ ### Added
2005
+
2006
+ - **Capability Center**: new `src/multi_agent_brief/capabilities/` package with registry, readiness detection, and recommendation engine.
2007
+ - **`multi-agent-brief features`**: categorized feature catalog with status symbols (✓/!/○/—). Supports `--info <id>`, `--json`, and `<workspace>` arguments.
2008
+ - **`multi-agent-brief recommend`**: deterministic keyword→capability recommendation rules. Supports `--text`, `--json`, and `<workspace>` arguments.
2009
+ - **`multi-agent-brief setup`**: apply capability recommendations to a workspace with safe YAML merge. Supports `--dry-run` and `--from-plan` arguments.
2010
+ - **Doctor enhancements**: now shows capability status summary and input-based recommendations.
2011
+ - **`.env.example` updated**: lists all 7 API keys (Tavily, Exa, Brave, Firecrawl, Serper, NewsAPI, MinerU) with section headers and provider URLs.
2012
+ - **Auto-generated feature docs**: `docs/features.md` and `docs/features.zh-CN.md` generated from capability catalog.
2013
+ - **CI gate**: `scripts/check_capabilities.py` ensures every user-facing provider has a CapabilitySpec registered.
2014
+
2015
+ ### Changed
2016
+
2017
+ - **Root `.env.example`** replaced legacy model-provider keys with current API key list matching wizard-generated output.
2018
+
2019
+ ## [0.3.2] — 2026-06-05
2020
+
2021
+ ### Added
2022
+
2023
+ - **`/propose-competitors` slash command** (`.claude/commands/propose-competitors.md`):
2024
+ invokes `market-competitor-planner` subagent to recommend competitor candidates
2025
+ based on `user.md` context. Writes `competitor_candidates.yaml` for user review.
2026
+ - **`prepare` CLI integration test**: verifies end-to-end output of `brief.md`,
2027
+ `claim_ledger.json`, and `audit_report.json` via real CLI invocation.
2028
+
2029
+ ### Fixed
2030
+
2031
+ - **Analysis module failures are no longer silently swallowed**: `_run_analysis_modules`
2032
+ now records failures as `AgentOutput` with `status: failed` and error details.
2033
+ Specialist auditor failures are logged with `logger.warning` and recorded in
2034
+ `analysis_packs` metadata — the system no longer silently falls back to default
2035
+ audit without indication.
2036
+ - **README**: `run` command wording changed from "已移除" to "已弃用,仅保留迁移提示"
2037
+ to match actual CLI behaviour.
2038
+ - **`docs/claude-code-workflow.md`**: CLI command list updated to include
2039
+ `prepare` and `competitors init/list/merge`.
2040
+
2041
+ ## [0.3.1] — 2026-06-05
2042
+
2043
+ ### Added
2044
+
2045
+ - **`multi-agent-brief prepare`** command: runs the full deterministic pipeline
2046
+ (source collection → Scout → Screener → Claim Ledger → draft artifacts).
2047
+ Replaces the disabled `run` command in `/generate-brief` workflow.
2048
+
2049
+ ### Fixed
2050
+
2051
+ - **`/generate-brief` main path restored**: Step 3 now calls `multi-agent-brief prepare`
2052
+ instead of the disabled `run` command. First-time users can now generate a brief
2053
+ without hitting a broken pipeline gate.
2054
+ - **`competitors propose` renamed to `competitors init`**: CLI only creates an empty
2055
+ template — LLM-assisted discovery uses the `/propose-competitors` slash command.
2056
+ Removed deceptive "LLM recommendation" claim from CLI help text.
2057
+ - **Version unified**: `pyproject.toml`, `__init__.py`, and `CHANGELOG` all read `0.3.1`.
2058
+ - **Pipeline order corrected** in market-competitor module docs (Analyst → Editor → Auditor → Formatter).
2059
+ - **`multi-agent-brief run`** now prints a migration message pointing to `prepare` instead
2060
+ of a generic error.
2061
+ - **AGENTS.md** references updated from `run` to `prepare`.
2062
+
2063
+ ## [0.3.0] — 2026-06-05
2064
+
2065
+ ### Added
2066
+
2067
+ - **Market & Competitor Intelligence Analysis Module** — 首个可插拔 AnalysisModule
2068
+ - `competitor_universe.yaml` 配置合同 + `competitor_candidates.yaml` 审核流程
2069
+ - CLI: `multi-agent-brief competitors propose | list | merge`
2070
+ - 竞对感知 Source Planning: 为每个 primary 竞对 × 维度自动生成定向搜索任务
2071
+ - `EntityEventEnricher`: 确定性实体/事件类型/地理/维度标注,接入 Scout 与 Screener 之间
2072
+ - `build_events`: 归并 entity-tagged Claim 为 MarketEvent,推测事件状态
2073
+ - 5 个中间产物: `events.json` / `competitor_matrix.json` / `coverage_report.json` / `watchlist.json` / `evidence_pack.json`
2074
+ - 跨期状态追踪: `event_history.jsonl` + change_status (new/changed/unchanged/cancelled/resolved)
2075
+ - 6 种专项审计: comparison_missing_entity_evidence / capacity_status_missing / metric_basis_missing / unsupported_market_trend / single_source_interpretation / competitor_coverage_gap
2076
+ - 3 个新 subagent: `market-competitor-planner` / `market-competitor-analyst` / `market-competitor-auditor`
2077
+ - 通用 `AnalysisModule` 接口 + Registry: 未来 earnings/policy/patent 模块可复用
2078
+ - 模块禁用时零影响 — 现有 589 tests 全过(73 新增)
2079
+ - Onboarding 扩展: `market_scope` 和 `competitor_preferences` 字段
2080
+
2081
+ ### Changed
2082
+
2083
+ - 移除 README update check CI job(`.githooks/pre-push` 同步清理)
2084
+
2085
+ ## [0.2.0] — 2026-06-05
2086
+
2087
+ ### Added
2088
+
2089
+ - **FilingResolverProvider**: New source provider that integrates [disclosure-filing-resolver](https://github.com/Stahl-G/disclosure-filing-resolver) for automatic SEC EDGAR filing acquisition. Fetches 10-K, 10-Q, 8-K, 6-K filings, extracts XBRL financial data (revenue, net income, assets, EPS), and converts them to Claim Ledger entries. 22 tests.
2090
+ - **filing-resolver source discovery integration**: `sources decide` now generates `filing_sources` candidates when company name is available. `sources decide --merge` enables `filing_resolver` provider and merges tickers into `sources.yaml`. 6 tests.
2091
+ - **filing_resolver workspace template**: All source profiles (llm_decide, research, conservative, etc.) now include a `filing_resolver` config section in `sources.yaml` — disabled by default, enabled via `sources decide --merge` or manual config.
2092
+ - **MineruProvider remote API mode**: Two new modes alongside local CLI. "Agent" mode uses MinerU's lightweight cloud API (no token needed, `https://mineru.net/api/v1/agent/parse`). "Premium" mode uses the full API with Bearer token (`https://mineru.net/api/v4/extract`). Both support URL and local file upload paths. All HTTP calls via `urllib.request` — zero extra dependencies.
2093
+ - **docs/mineru-integration.md**: New section covering remote API setup, agent vs. premium comparison table, configuration examples.
2094
+ - **Tests**: 6 new remote-mode tests (disabled, no files, validate, agent URL mock, premium URL mock).
2095
+
2096
+ ### Fixed
2097
+
2098
+ - **CI smoke tests**: Replaced broken inline `python -c` blocks in GitHub Actions workflow with standalone `scripts/ci/smoke_pipeline.py` script. Fixes YAML parsing errors introduced by MinerU PR.
2099
+
2100
+ ## [0.1.2] — 2026-06-04
2101
+
2102
+ ### Added
2103
+
2104
+ - **Feishu bidirectional integration via lark-cli**: New `FeishuProvider` (sources/feishu_provider.py) pulls data from Feishu Docs, Meeting Minutes, Base tables, Spreadsheets, Calendar, and Approval tasks. `FeishuDeliveryConnector` (delivery/feishu.py) sends briefs to Feishu chat, creates Feishu documents, and uploads files to Drive.
2105
+ - `.env.example` now lists all 5 search backends (Tavily, Exa, Brave, Firecrawl, Serper) with comments — generated on every workspace init, not just when Tavily is enabled.
2106
+ - **Free-text onboarding**: `audience`, `role`, `industry`, `cadence` all changed from numbered-choice (`ask_choice`) to free-text input (`ask_text`). Users can type "市场团队" or "solar" directly instead of being forced to pick from a numbered menu.
2107
+ - **New tests**: 13 new tests covering MCP JSON-RPC lifecycle, NewsAPI name filtering, CLI error_type, FeishuProvider validation/collection/delivery.
2108
+
2109
+ ### Changed
2110
+
2111
+ - **Agent onboarding hardening**: Removed "choose sensible defaults" from all agent instructions. All 6 `normalize_*` functions in `onboarding/mapper.py` no longer silently convert sentinel values to defaults. CLI validates company/industry/title after `--from-onboarding`.
2112
+ - **`multi-agent-brief run` removed**: The deterministic Python pipeline no longer runs via CLI. Users are redirected to `/generate-brief <workspace>` in Claude Code. Pipeline code (`BriefPipeline`, agents, audit) remains for internal testing.
2113
+ - **doctor error messages** now point to `.env.example` instead of vague "set environment variable".
2114
+
2115
+ ### Fixed
2116
+
2117
+ - **MCP Provider**: Fixed `text=True` + bytes write type error; added `_readline_timeout()` with `select.select()` for real timeout enforcement.
2118
+ - **NewsAPI validate_config**: Now filters providers by `name == "newsapi"` before checking API key — no longer false-positives when `sec` or other providers share the config section.
2119
+ - **CLI Provider**: Non-zero exit items now set `metadata.error_type = "CliExecutionError"`, caught by `registry._is_error_or_placeholder()`.
2120
+ - **Feishu validate_config**: Removed early return when lark-cli is missing (fixes CI). Removed `--format json` from `auth status` calls (flag not supported by lark-cli).
2121
+
2122
+ ## [0.1.1] — 2026-06-04
2123
+
2124
+ First public release. The following entries document the development iterations that led to this release.
2125
+
2126
+ ### Development iterations
2127
+
2128
+ #### Iteration 7 — Interactive onboarding enforcement
2129
+
2130
+ - Conversational onboarding: 10-question interactive wizard replaces hidden default profile creation.
2131
+ - `--from-onboarding onboarding.json` protocol for agent-driven workspace creation.
2132
+ - Non-interactive environments must use `--from-onboarding`; partial CLI args are rejected.
2133
+ - All CLI tests updated with `complete_init_args()` helper providing 7 required business fields.
2134
+ - Doc files updated for interactive-first workflow.
2135
+
2136
+ #### Iteration 6 — Profile-driven source discovery
2137
+
2138
+ - `user.md` as primary semantic context — generated with company, industry, role, focus areas, task objectives, and forbidden sources.
2139
+ - Simplified onboarding mapper: unknown industries return empty string instead of guessed slugs; raw user text preserved in `user.md`.
2140
+ - Default `llm_decide` source mode: agent-driven source discovery generates `source_candidates.yaml` for user review before ingestion.
2141
+ - Industry packs as optional seeds (no longer used as routing mechanism).
2142
+ - Tavily opt-in during interactive init; developer-only direct CLI init requires all required business fields.
2143
+ - Fixed `format_scalar(None)` outputting `"None"` instead of `null`.
2144
+
2145
+ #### Iteration 5.1 — Source provider pipeline fixes
2146
+
2147
+ - Fixed ScoutAgent unconditionally overwriting `context.sources`.
2148
+ - Fixed AnalystAgent only rendering 5 topics — expanded to all 10 Screener topics.
2149
+ - Fixed `merge_candidates_to_sources()` auto-enabling `web_search`.
2150
+ - Fixed `WebSearchProvider` using `hash()` for unstable `source_id` — switched to `hashlib.sha1`.
2151
+ - Fixed manual URL placeholders entering Claim Ledger.
2152
+ - Fixed `collect_all_sources()` silently swallowing provider exceptions.
2153
+ - Fixed `web_search.py` nested f-string `SyntaxError` on Python 3.9.
2154
+ - Fixed `init --industry` not writing industry into `source_strategy.industry`.
2155
+ - Implemented WebSearchProvider domain filtering.
2156
+ - Removed runtime `MockSearchBackend`: `web_search.enabled=true` without a real backend fails explicitly.
2157
+
2158
+ #### Iteration 5 — Three-layer source collection architecture
2159
+
2160
+ - Added `SourcePlanner`: generates search plans based on industry, role, and time window.
2161
+ - Added `industry_packs.py`: industry presets (manufacturing, banking, fund, internet, general) with search tasks.
2162
+ - `WebSearchProvider` with pluggable backend interface (tavily, serpapi, etc.).
2163
+ - Added `CachedPackageProvider`: reads pre-collected source package folders.
2164
+ - Added `search_backends/` module with `SearchBackend` ABC.
2165
+ - Unified `SourceItem` — eliminated duplicate definitions.
2166
+ - Pipeline restructured: Source Collection → Scout → Screener → ...
2167
+ - CLI gained `--industry` and `--days` args.
2168
+
2169
+ #### Iteration 4 — Source provider system
2170
+
2171
+ - Added `sources/` module with unified `SourceProvider` interface.
2172
+ - Three source profiles: `conservative`, `research`, `aggressive_signal`.
2173
+ - Manual provider: loads local `.md`/`.txt`/`.json` files and manual URL entries.
2174
+ - RSS provider: fetches and parses RSS/Atom feeds with keyword filtering.
2175
+ - Source normalization, deduplication, and recency filtering.
2176
+ - `multi-agent-brief doctor`: checks source configuration health.
2177
+ - Init wizard asks for source profile and generates tailored `sources.yaml`.
2178
+ - Stub providers for `web_search`, `api`, `mcp`, `cli`.
2179
+
2180
+ #### Iteration 3 — Agent config generation
2181
+
2182
+ - `configs/agent_roles.yaml` as single source of truth for all agent roles.
2183
+ - `scripts/generate_agent_configs.py` to generate platform-specific agent configs.
2184
+ - Generated Codex agents, skills, Claude Code subagents.
2185
+ - Generated documentation (`docs/agents/`).
2186
+ - `--check` mode for CI staleness detection.
2187
+
2188
+ #### Iteration 2 — Screener agent
2189
+
2190
+ - `ScreenerAgent` between `Scout` and `Analyst` in the pipeline.
2191
+ - Topic-based capacity caps across 10 topic buckets (max 160 claims total).
2192
+ - Novelty scoring with source tier, claim type, and high-signal term weights.
2193
+ - Previous report deduplication via text matching and theme-group detection.
2194
+ - Stale source and low-confidence (T5) source exclusion.
2195
+ - Pre-push hook and CI check: README must be updated before pushing code changes.
2196
+
2197
+ #### Iteration 1 — MVP pipeline
2198
+
2199
+ - Workspace initialization.
2200
+ - User profile and task objective recording.
2201
+ - Local file input.
2202
+ - Source discovery and source configuration.
2203
+ - Claim Ledger.
2204
+ - Audit and quality checks.
2205
+ - Markdown / JSON / DOCX output.
2206
+ - Claude Code / Codex agent configurations.
2207
+ - Open-source release safety scanning tools.