briefloop 0.11.12__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 (551) hide show
  1. briefloop-0.11.12/LICENSE +22 -0
  2. briefloop-0.11.12/PKG-INFO +473 -0
  3. briefloop-0.11.12/README.md +439 -0
  4. briefloop-0.11.12/pyproject.toml +92 -0
  5. briefloop-0.11.12/setup.cfg +4 -0
  6. briefloop-0.11.12/setup.py +5 -0
  7. briefloop-0.11.12/src/briefloop.egg-info/PKG-INFO +473 -0
  8. briefloop-0.11.12/src/briefloop.egg-info/SOURCES.txt +549 -0
  9. briefloop-0.11.12/src/briefloop.egg-info/dependency_links.txt +1 -0
  10. briefloop-0.11.12/src/briefloop.egg-info/entry_points.txt +3 -0
  11. briefloop-0.11.12/src/briefloop.egg-info/requires.txt +9 -0
  12. briefloop-0.11.12/src/briefloop.egg-info/top_level.txt +1 -0
  13. briefloop-0.11.12/src/multi_agent_brief/__init__.py +36 -0
  14. briefloop-0.11.12/src/multi_agent_brief/analysis_blocks/__init__.py +11 -0
  15. briefloop-0.11.12/src/multi_agent_brief/analysis_blocks/builder.py +206 -0
  16. briefloop-0.11.12/src/multi_agent_brief/analysis_blocks/renderer.py +237 -0
  17. briefloop-0.11.12/src/multi_agent_brief/analysis_blocks/schemas.py +52 -0
  18. briefloop-0.11.12/src/multi_agent_brief/analysis_modules/__init__.py +8 -0
  19. briefloop-0.11.12/src/multi_agent_brief/analysis_modules/base.py +87 -0
  20. briefloop-0.11.12/src/multi_agent_brief/analysis_modules/market_competitor/__init__.py +68 -0
  21. briefloop-0.11.12/src/multi_agent_brief/analysis_modules/market_competitor/auditor.py +290 -0
  22. briefloop-0.11.12/src/multi_agent_brief/analysis_modules/market_competitor/config.py +187 -0
  23. briefloop-0.11.12/src/multi_agent_brief/analysis_modules/market_competitor/event_builder.py +226 -0
  24. briefloop-0.11.12/src/multi_agent_brief/analysis_modules/market_competitor/renderer.py +199 -0
  25. briefloop-0.11.12/src/multi_agent_brief/analysis_modules/market_competitor/schemas.py +518 -0
  26. briefloop-0.11.12/src/multi_agent_brief/analysis_modules/policy_regulatory/__init__.py +7 -0
  27. briefloop-0.11.12/src/multi_agent_brief/analysis_modules/policy_regulatory/audit.py +195 -0
  28. briefloop-0.11.12/src/multi_agent_brief/analysis_modules/policy_regulatory/module.py +387 -0
  29. briefloop-0.11.12/src/multi_agent_brief/analysis_modules/policy_regulatory/schemas.py +129 -0
  30. briefloop-0.11.12/src/multi_agent_brief/analysis_modules/registry.py +73 -0
  31. briefloop-0.11.12/src/multi_agent_brief/audience/__init__.py +19 -0
  32. briefloop-0.11.12/src/multi_agent_brief/audience/profiles.py +246 -0
  33. briefloop-0.11.12/src/multi_agent_brief/audience_memory/__init__.py +23 -0
  34. briefloop-0.11.12/src/multi_agent_brief/audience_memory/profile.py +358 -0
  35. briefloop-0.11.12/src/multi_agent_brief/audit/__init__.py +36 -0
  36. briefloop-0.11.12/src/multi_agent_brief/audit/case_applicability.py +181 -0
  37. briefloop-0.11.12/src/multi_agent_brief/audit/deterministic.py +471 -0
  38. briefloop-0.11.12/src/multi_agent_brief/audit/editorial_governance.py +404 -0
  39. briefloop-0.11.12/src/multi_agent_brief/audit/final_quality.py +764 -0
  40. briefloop-0.11.12/src/multi_agent_brief/audit/harness.py +242 -0
  41. briefloop-0.11.12/src/multi_agent_brief/audit/interfaces.py +96 -0
  42. briefloop-0.11.12/src/multi_agent_brief/audit/limitation_hygiene.py +238 -0
  43. briefloop-0.11.12/src/multi_agent_brief/audit/proposal_boundary.py +34 -0
  44. briefloop-0.11.12/src/multi_agent_brief/audit/redaction.py +27 -0
  45. briefloop-0.11.12/src/multi_agent_brief/audit/rule_packs.py +96 -0
  46. briefloop-0.11.12/src/multi_agent_brief/audit/semantic.py +435 -0
  47. briefloop-0.11.12/src/multi_agent_brief/capabilities/__init__.py +22 -0
  48. briefloop-0.11.12/src/multi_agent_brief/capabilities/catalog.py +215 -0
  49. briefloop-0.11.12/src/multi_agent_brief/capabilities/detect.py +199 -0
  50. briefloop-0.11.12/src/multi_agent_brief/capabilities/models.py +60 -0
  51. briefloop-0.11.12/src/multi_agent_brief/capabilities/recommend.py +206 -0
  52. briefloop-0.11.12/src/multi_agent_brief/cli/__init__.py +2 -0
  53. briefloop-0.11.12/src/multi_agent_brief/cli/analysis_commands.py +140 -0
  54. briefloop-0.11.12/src/multi_agent_brief/cli/approval_commands.py +107 -0
  55. briefloop-0.11.12/src/multi_agent_brief/cli/audit_commands.py +59 -0
  56. briefloop-0.11.12/src/multi_agent_brief/cli/capability_commands.py +548 -0
  57. briefloop-0.11.12/src/multi_agent_brief/cli/claude_commands.py +159 -0
  58. briefloop-0.11.12/src/multi_agent_brief/cli/competitors_commands.py +182 -0
  59. briefloop-0.11.12/src/multi_agent_brief/cli/controls_commands.py +137 -0
  60. briefloop-0.11.12/src/multi_agent_brief/cli/deliver_commands.py +942 -0
  61. briefloop-0.11.12/src/multi_agent_brief/cli/eval_cases_commands.py +99 -0
  62. briefloop-0.11.12/src/multi_agent_brief/cli/experiments_commands.py +395 -0
  63. briefloop-0.11.12/src/multi_agent_brief/cli/feedback_commands.py +192 -0
  64. briefloop-0.11.12/src/multi_agent_brief/cli/finalize_commands.py +153 -0
  65. briefloop-0.11.12/src/multi_agent_brief/cli/gates_commands.py +174 -0
  66. briefloop-0.11.12/src/multi_agent_brief/cli/hermes_commands.py +356 -0
  67. briefloop-0.11.12/src/multi_agent_brief/cli/improve_commands.py +224 -0
  68. briefloop-0.11.12/src/multi_agent_brief/cli/init_commands.py +564 -0
  69. briefloop-0.11.12/src/multi_agent_brief/cli/init_wizard.py +1473 -0
  70. briefloop-0.11.12/src/multi_agent_brief/cli/input_commands.py +237 -0
  71. briefloop-0.11.12/src/multi_agent_brief/cli/main.py +288 -0
  72. briefloop-0.11.12/src/multi_agent_brief/cli/onboard_commands.py +193 -0
  73. briefloop-0.11.12/src/multi_agent_brief/cli/product_commands.py +1449 -0
  74. briefloop-0.11.12/src/multi_agent_brief/cli/provenance_commands.py +100 -0
  75. briefloop-0.11.12/src/multi_agent_brief/cli/release_commands.py +68 -0
  76. briefloop-0.11.12/src/multi_agent_brief/cli/repair_commands.py +169 -0
  77. briefloop-0.11.12/src/multi_agent_brief/cli/run_commands.py +292 -0
  78. briefloop-0.11.12/src/multi_agent_brief/cli/runtime_commands.py +81 -0
  79. briefloop-0.11.12/src/multi_agent_brief/cli/secrets_commands.py +232 -0
  80. briefloop-0.11.12/src/multi_agent_brief/cli/semantic_support_commands.py +80 -0
  81. briefloop-0.11.12/src/multi_agent_brief/cli/sources_commands.py +647 -0
  82. briefloop-0.11.12/src/multi_agent_brief/cli/start_commands.py +8 -0
  83. briefloop-0.11.12/src/multi_agent_brief/cli/state_commands.py +446 -0
  84. briefloop-0.11.12/src/multi_agent_brief/cli/status_commands.py +26 -0
  85. briefloop-0.11.12/src/multi_agent_brief/cli/workbuddy_commands.py +103 -0
  86. briefloop-0.11.12/src/multi_agent_brief/configs/artifact_contracts.yaml +514 -0
  87. briefloop-0.11.12/src/multi_agent_brief/configs/orchestrator_contract.yaml +181 -0
  88. briefloop-0.11.12/src/multi_agent_brief/configs/policy_packs/default.yaml +65 -0
  89. briefloop-0.11.12/src/multi_agent_brief/configs/policy_profiles/evidence_extract_default.yaml +58 -0
  90. briefloop-0.11.12/src/multi_agent_brief/configs/policy_profiles/finance_default.yaml +44 -0
  91. briefloop-0.11.12/src/multi_agent_brief/configs/policy_profiles/internet_default.yaml +44 -0
  92. briefloop-0.11.12/src/multi_agent_brief/configs/policy_profiles/manufacturing_default.yaml +33 -0
  93. briefloop-0.11.12/src/multi_agent_brief/configs/policy_profiles/solar_manufacturing_default.yaml +64 -0
  94. briefloop-0.11.12/src/multi_agent_brief/configs/report_packs/evidence_extract.yaml +48 -0
  95. briefloop-0.11.12/src/multi_agent_brief/configs/report_packs/management_monthly.yaml +36 -0
  96. briefloop-0.11.12/src/multi_agent_brief/configs/report_packs/market_weekly.yaml +36 -0
  97. briefloop-0.11.12/src/multi_agent_brief/configs/report_packs/solar_industry_periodic.yaml +50 -0
  98. briefloop-0.11.12/src/multi_agent_brief/configs/report_templates/evidence_extract.yaml +55 -0
  99. briefloop-0.11.12/src/multi_agent_brief/configs/report_templates/management_monthly.yaml +48 -0
  100. briefloop-0.11.12/src/multi_agent_brief/configs/report_templates/market_weekly.yaml +49 -0
  101. briefloop-0.11.12/src/multi_agent_brief/configs/report_templates/solar_industry_periodic.yaml +75 -0
  102. briefloop-0.11.12/src/multi_agent_brief/configs/stage_specs.yaml +180 -0
  103. briefloop-0.11.12/src/multi_agent_brief/contracts/__init__.py +41 -0
  104. briefloop-0.11.12/src/multi_agent_brief/contracts/base.py +99 -0
  105. briefloop-0.11.12/src/multi_agent_brief/contracts/errors.py +41 -0
  106. briefloop-0.11.12/src/multi_agent_brief/contracts/migrations/__init__.py +5 -0
  107. briefloop-0.11.12/src/multi_agent_brief/contracts/migrations/claim_v1_to_v2.py +33 -0
  108. briefloop-0.11.12/src/multi_agent_brief/contracts/registry.py +159 -0
  109. briefloop-0.11.12/src/multi_agent_brief/contracts/role_topology.py +25 -0
  110. briefloop-0.11.12/src/multi_agent_brief/contracts/schemas/__init__.py +35 -0
  111. briefloop-0.11.12/src/multi_agent_brief/contracts/schemas/analysis_pack.py +135 -0
  112. briefloop-0.11.12/src/multi_agent_brief/contracts/schemas/atomic_claim_graph.py +304 -0
  113. briefloop-0.11.12/src/multi_agent_brief/contracts/schemas/audit_report.py +80 -0
  114. briefloop-0.11.12/src/multi_agent_brief/contracts/schemas/candidate_item.py +51 -0
  115. briefloop-0.11.12/src/multi_agent_brief/contracts/schemas/claim.py +197 -0
  116. briefloop-0.11.12/src/multi_agent_brief/contracts/schemas/claim_draft.py +386 -0
  117. briefloop-0.11.12/src/multi_agent_brief/contracts/schemas/claim_support_matrix.py +334 -0
  118. briefloop-0.11.12/src/multi_agent_brief/contracts/schemas/evidence_span_registry.py +270 -0
  119. briefloop-0.11.12/src/multi_agent_brief/contracts/schemas/policy_profile.py +247 -0
  120. briefloop-0.11.12/src/multi_agent_brief/contracts/schemas/report_spec.py +257 -0
  121. briefloop-0.11.12/src/multi_agent_brief/contracts/schemas/semantic_assessment_report.py +480 -0
  122. briefloop-0.11.12/src/multi_agent_brief/contracts/schemas/source_evidence_pack_manifest.py +233 -0
  123. briefloop-0.11.12/src/multi_agent_brief/contracts/schemas/source_item.py +96 -0
  124. briefloop-0.11.12/src/multi_agent_brief/contracts/semantic_assessment_status.py +12 -0
  125. briefloop-0.11.12/src/multi_agent_brief/contracts/source_metadata.py +252 -0
  126. briefloop-0.11.12/src/multi_agent_brief/contracts/target_contract.py +460 -0
  127. briefloop-0.11.12/src/multi_agent_brief/contracts/validator.py +225 -0
  128. briefloop-0.11.12/src/multi_agent_brief/controls/__init__.py +23 -0
  129. briefloop-0.11.12/src/multi_agent_brief/controls/contract.py +106 -0
  130. briefloop-0.11.12/src/multi_agent_brief/controls/switchboard.py +1076 -0
  131. briefloop-0.11.12/src/multi_agent_brief/core/__init__.py +2 -0
  132. briefloop-0.11.12/src/multi_agent_brief/core/citations.py +14 -0
  133. briefloop-0.11.12/src/multi_agent_brief/core/claim_ledger.py +94 -0
  134. briefloop-0.11.12/src/multi_agent_brief/core/config.py +191 -0
  135. briefloop-0.11.12/src/multi_agent_brief/core/env.py +69 -0
  136. briefloop-0.11.12/src/multi_agent_brief/core/previous.py +83 -0
  137. briefloop-0.11.12/src/multi_agent_brief/core/schemas.py +181 -0
  138. briefloop-0.11.12/src/multi_agent_brief/core/selection.py +189 -0
  139. briefloop-0.11.12/src/multi_agent_brief/delivery/__init__.py +6 -0
  140. briefloop-0.11.12/src/multi_agent_brief/delivery/base.py +36 -0
  141. briefloop-0.11.12/src/multi_agent_brief/delivery/feishu.py +204 -0
  142. briefloop-0.11.12/src/multi_agent_brief/delivery/gws.py +237 -0
  143. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/__init__.py +15 -0
  144. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/contract.py +429 -0
  145. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/approved_guidance_materialized/workspace/config.yaml +18 -0
  146. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/approved_guidance_materialized/workspace/improvement/ledger.jsonl +2 -0
  147. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/approved_guidance_materialized/workspace/sources.yaml +2 -0
  148. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/approved_guidance_materialized/workspace/user.md +4 -0
  149. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/company_event_missing_latest_official_check/workspace/config.yaml +13 -0
  150. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/company_event_missing_latest_official_check/workspace/sources.yaml +9 -0
  151. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/company_event_missing_latest_official_check/workspace/user.md +4 -0
  152. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/control_switchboard_selection_is_not_execution/workspace/config.yaml +12 -0
  153. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/control_switchboard_selection_is_not_execution/workspace/sources.yaml +6 -0
  154. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/control_switchboard_selection_is_not_execution/workspace/user.md +4 -0
  155. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/feedback_triage_required/workspace/config.yaml +6 -0
  156. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/feedback_triage_required/workspace/input/human_feedback.md +1 -0
  157. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/feedback_triage_required/workspace/sources.yaml +2 -0
  158. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/feedback_triage_required/workspace/user.md +3 -0
  159. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/final_abstract_quality_warning_surface/workspace/config.yaml +8 -0
  160. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/final_abstract_quality_warning_surface/workspace/output/brief.md +14 -0
  161. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/final_abstract_quality_warning_surface/workspace/output/intermediate/audit_report.json +1 -0
  162. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/final_abstract_quality_warning_surface/workspace/output/intermediate/audited_brief.md +5 -0
  163. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/final_abstract_quality_warning_surface/workspace/output/intermediate/candidate_claims.json +1 -0
  164. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/final_abstract_quality_warning_surface/workspace/output/intermediate/claim_ledger.json +1 -0
  165. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/final_abstract_quality_warning_surface/workspace/output/intermediate/screened_candidates.json +1 -0
  166. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/final_abstract_quality_warning_surface/workspace/sources.yaml +2 -0
  167. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/final_abstract_quality_warning_surface/workspace/user.md +3 -0
  168. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/formal_release_missing_human_approval/workspace/config.yaml +13 -0
  169. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/formal_release_missing_human_approval/workspace/sources.yaml +9 -0
  170. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/formal_release_missing_human_approval/workspace/user.md +4 -0
  171. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/guidance_manifestation_not_observable/workspace/config.yaml +4 -0
  172. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/guidance_manifestation_not_observable/workspace/sources.yaml +2 -0
  173. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/guidance_manifestation_not_observable/workspace/user.md +3 -0
  174. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/media_only_legal_policy_blocks_research_review/workspace/config.yaml +13 -0
  175. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/media_only_legal_policy_blocks_research_review/workspace/sources.yaml +9 -0
  176. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/media_only_legal_policy_blocks_research_review/workspace/user.md +4 -0
  177. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/mixed_metric_scope_support_blocker/workspace/config.yaml +13 -0
  178. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/mixed_metric_scope_support_blocker/workspace/sources.yaml +9 -0
  179. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/mixed_metric_scope_support_blocker/workspace/user.md +5 -0
  180. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/planned_blocking_issue_cannot_continue/workspace/config.yaml +6 -0
  181. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/planned_blocking_issue_cannot_continue/workspace/output/intermediate/audited_brief.md +3 -0
  182. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/planned_blocking_issue_cannot_continue/workspace/output/intermediate/candidate_claims.json +1 -0
  183. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/planned_blocking_issue_cannot_continue/workspace/output/intermediate/claim_ledger.json +1 -0
  184. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/planned_blocking_issue_cannot_continue/workspace/output/intermediate/feedback_issues.json +25 -0
  185. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/planned_blocking_issue_cannot_continue/workspace/output/intermediate/repair_plan.json +27 -0
  186. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/planned_blocking_issue_cannot_continue/workspace/output/intermediate/screened_candidates.json +1 -0
  187. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/planned_blocking_issue_cannot_continue/workspace/sources.yaml +2 -0
  188. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/planned_blocking_issue_cannot_continue/workspace/user.md +3 -0
  189. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/provenance_projection_minimal/workspace/config.yaml +8 -0
  190. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/provenance_projection_minimal/workspace/output/intermediate/audit_report.json +1 -0
  191. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/provenance_projection_minimal/workspace/output/intermediate/audited_brief.md +3 -0
  192. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/provenance_projection_minimal/workspace/output/intermediate/candidate_claims.json +1 -0
  193. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/provenance_projection_minimal/workspace/output/intermediate/claim_ledger.json +11 -0
  194. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/provenance_projection_minimal/workspace/output/intermediate/quality_gate_report.json +22 -0
  195. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/provenance_projection_minimal/workspace/output/intermediate/screened_candidates.json +1 -0
  196. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/provenance_projection_minimal/workspace/sources.yaml +2 -0
  197. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/provenance_projection_minimal/workspace/user.md +3 -0
  198. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_source_appendix/workspace/config.yaml +13 -0
  199. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_source_appendix/workspace/output/intermediate/audit_report.json +1 -0
  200. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_source_appendix/workspace/output/intermediate/audited_brief.md +5 -0
  201. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_source_appendix/workspace/output/intermediate/candidate_claims.json +1 -0
  202. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_source_appendix/workspace/output/intermediate/claim_ledger.json +40 -0
  203. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_source_appendix/workspace/output/intermediate/screened_candidates.json +1 -0
  204. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_source_appendix/workspace/sources.yaml +3 -0
  205. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_source_appendix/workspace/user.md +3 -0
  206. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_target_relevance/workspace/config.yaml +8 -0
  207. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_target_relevance/workspace/output/brief.md +3 -0
  208. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_target_relevance/workspace/output/intermediate/audit_report.json +1 -0
  209. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_target_relevance/workspace/output/intermediate/audited_brief.md +3 -0
  210. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_target_relevance/workspace/output/intermediate/candidate_claims.json +1 -0
  211. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_target_relevance/workspace/output/intermediate/claim_ledger.json +13 -0
  212. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_target_relevance/workspace/output/intermediate/screened_candidates.json +1 -0
  213. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_target_relevance/workspace/sources.yaml +2 -0
  214. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_target_relevance/workspace/user.md +3 -0
  215. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/release_readiness_forged_event_blocker/workspace/config.yaml +13 -0
  216. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/release_readiness_forged_event_blocker/workspace/output/intermediate/release_readiness_report.json +31 -0
  217. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/release_readiness_forged_event_blocker/workspace/sources.yaml +9 -0
  218. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/release_readiness_forged_event_blocker/workspace/user.md +4 -0
  219. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/reverted_entry_removed_from_next_snapshot/workspace/config.yaml +18 -0
  220. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/reverted_entry_removed_from_next_snapshot/workspace/improvement/ledger.jsonl +3 -0
  221. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/reverted_entry_removed_from_next_snapshot/workspace/improvement/memory.md +3 -0
  222. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/reverted_entry_removed_from_next_snapshot/workspace/output/intermediate/improvement_memory_snapshot.md +3 -0
  223. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/reverted_entry_removed_from_next_snapshot/workspace/sources.yaml +2 -0
  224. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/reverted_entry_removed_from_next_snapshot/workspace/user.md +4 -0
  225. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/config.yaml +12 -0
  226. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/input/sources/source-001.txt +1 -0
  227. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/output/brief.md +37 -0
  228. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/output/delivery/brief.md +37 -0
  229. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/output/intermediate/atomic_claim_graph.json +17 -0
  230. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/output/intermediate/audit_report.json +5 -0
  231. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/output/intermediate/audited_brief.md +37 -0
  232. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/output/intermediate/claim_ledger.json +20 -0
  233. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/output/intermediate/evidence_span_registry.json +20 -0
  234. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/output/intermediate/finalize_report.json +40 -0
  235. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/output/intermediate/gates/auditor_quality_gate_report.json +42 -0
  236. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/output/intermediate/gates/finalize_quality_gate_report.json +42 -0
  237. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/output/intermediate/screened_candidates.json +33 -0
  238. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/output/source_appendix.md +12 -0
  239. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/output/source_appendix_trace.md +10 -0
  240. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/report_spec.yaml +24 -0
  241. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/sources.yaml +4 -0
  242. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/user.md +3 -0
  243. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/source_evidence_pack_blocks_non_evidence_file/workspace/config.yaml +13 -0
  244. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/source_evidence_pack_blocks_non_evidence_file/workspace/input/sources/README.md +4 -0
  245. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/source_evidence_pack_blocks_non_evidence_file/workspace/output/intermediate/source_evidence_pack_manifest.json +26 -0
  246. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/source_evidence_pack_blocks_non_evidence_file/workspace/sources.yaml +9 -0
  247. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/source_evidence_pack_blocks_non_evidence_file/workspace/user.md +4 -0
  248. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/stale_current_claim/workspace/config.yaml +9 -0
  249. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/stale_current_claim/workspace/output/intermediate/audit_report.json +1 -0
  250. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/stale_current_claim/workspace/output/intermediate/audited_brief.md +3 -0
  251. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/stale_current_claim/workspace/output/intermediate/candidate_claims.json +1 -0
  252. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/stale_current_claim/workspace/output/intermediate/claim_ledger.json +13 -0
  253. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/stale_current_claim/workspace/output/intermediate/screened_candidates.json +1 -0
  254. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/stale_current_claim/workspace/sources.yaml +2 -0
  255. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/stale_current_claim/workspace/user.md +3 -0
  256. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/third_party_price_snapshot_formal_block/workspace/config.yaml +13 -0
  257. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/third_party_price_snapshot_formal_block/workspace/sources.yaml +9 -0
  258. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/third_party_price_snapshot_formal_block/workspace/user.md +4 -0
  259. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/trajectory_retry_budget_exhausted/workspace/config.yaml +4 -0
  260. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/trajectory_retry_budget_exhausted/workspace/sources.yaml +2 -0
  261. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/trajectory_retry_budget_exhausted/workspace/user.md +3 -0
  262. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/unapproved_entry_not_materialized/workspace/config.yaml +18 -0
  263. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/unapproved_entry_not_materialized/workspace/improvement/ledger.jsonl +1 -0
  264. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/unapproved_entry_not_materialized/workspace/sources.yaml +2 -0
  265. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/unapproved_entry_not_materialized/workspace/user.md +4 -0
  266. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/unauthorized_institution_branding_blocks_release/workspace/config.yaml +18 -0
  267. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/unauthorized_institution_branding_blocks_release/workspace/sources.yaml +9 -0
  268. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/unauthorized_institution_branding_blocks_release/workspace/user.md +5 -0
  269. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/unsupported_material_fact/workspace/config.yaml +8 -0
  270. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/unsupported_material_fact/workspace/output/intermediate/audit_report.json +1 -0
  271. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/unsupported_material_fact/workspace/output/intermediate/audited_brief.md +8 -0
  272. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/unsupported_material_fact/workspace/output/intermediate/candidate_claims.json +1 -0
  273. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/unsupported_material_fact/workspace/output/intermediate/claim_ledger.json +1 -0
  274. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/unsupported_material_fact/workspace/output/intermediate/screened_candidates.json +1 -0
  275. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/unsupported_material_fact/workspace/sources.yaml +2 -0
  276. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/cases/unsupported_material_fact/workspace/user.md +3 -0
  277. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures/manifest.yaml +861 -0
  278. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/fixtures.py +20 -0
  279. briefloop-0.11.12/src/multi_agent_brief/evaluation_cases/runner.py +1603 -0
  280. briefloop-0.11.12/src/multi_agent_brief/experiments/__init__.py +45 -0
  281. briefloop-0.11.12/src/multi_agent_brief/experiments/experiment_080.py +5835 -0
  282. briefloop-0.11.12/src/multi_agent_brief/experiments/schemas.py +63 -0
  283. briefloop-0.11.12/src/multi_agent_brief/experiments/target_contract.py +10 -0
  284. briefloop-0.11.12/src/multi_agent_brief/feedback/__init__.py +17 -0
  285. briefloop-0.11.12/src/multi_agent_brief/feedback/feedback_contract.py +482 -0
  286. briefloop-0.11.12/src/multi_agent_brief/feedback/feedback_state.py +898 -0
  287. briefloop-0.11.12/src/multi_agent_brief/hermes/__init__.py +25 -0
  288. briefloop-0.11.12/src/multi_agent_brief/hermes/adapter.py +832 -0
  289. briefloop-0.11.12/src/multi_agent_brief/improvement/__init__.py +83 -0
  290. briefloop-0.11.12/src/multi_agent_brief/improvement/contract.py +1114 -0
  291. briefloop-0.11.12/src/multi_agent_brief/improvement/memory.py +451 -0
  292. briefloop-0.11.12/src/multi_agent_brief/improvement/product_definition.py +228 -0
  293. briefloop-0.11.12/src/multi_agent_brief/improvement/state.py +961 -0
  294. briefloop-0.11.12/src/multi_agent_brief/inputs/__init__.py +2 -0
  295. briefloop-0.11.12/src/multi_agent_brief/inputs/classifier.py +322 -0
  296. briefloop-0.11.12/src/multi_agent_brief/inputs/contracts.py +59 -0
  297. briefloop-0.11.12/src/multi_agent_brief/inputs/extractor.py +310 -0
  298. briefloop-0.11.12/src/multi_agent_brief/install/__init__.py +2 -0
  299. briefloop-0.11.12/src/multi_agent_brief/install/writer.py +97 -0
  300. briefloop-0.11.12/src/multi_agent_brief/onboarding/__init__.py +11 -0
  301. briefloop-0.11.12/src/multi_agent_brief/onboarding/io.py +103 -0
  302. briefloop-0.11.12/src/multi_agent_brief/onboarding/mapper.py +484 -0
  303. briefloop-0.11.12/src/multi_agent_brief/onboarding/schema.py +46 -0
  304. briefloop-0.11.12/src/multi_agent_brief/orchestrator/__init__.py +2 -0
  305. briefloop-0.11.12/src/multi_agent_brief/orchestrator/fact_layer_import.py +352 -0
  306. briefloop-0.11.12/src/multi_agent_brief/orchestrator/handoff.py +2209 -0
  307. briefloop-0.11.12/src/multi_agent_brief/orchestrator/role_topology.py +42 -0
  308. briefloop-0.11.12/src/multi_agent_brief/orchestrator/run_archive.py +888 -0
  309. briefloop-0.11.12/src/multi_agent_brief/orchestrator/run_integrity.py +346 -0
  310. briefloop-0.11.12/src/multi_agent_brief/orchestrator/runtime_state/__init__.py +70 -0
  311. briefloop-0.11.12/src/multi_agent_brief/orchestrator/runtime_state/_io.py +167 -0
  312. briefloop-0.11.12/src/multi_agent_brief/orchestrator/runtime_state/_transactions.py +298 -0
  313. briefloop-0.11.12/src/multi_agent_brief/orchestrator/runtime_state/artifact_registry.py +1825 -0
  314. briefloop-0.11.12/src/multi_agent_brief/orchestrator/runtime_state/atomic_claim_graph.py +96 -0
  315. briefloop-0.11.12/src/multi_agent_brief/orchestrator/runtime_state/claim_ledger_freeze.py +510 -0
  316. briefloop-0.11.12/src/multi_agent_brief/orchestrator/runtime_state/claim_metadata_enrichment.py +836 -0
  317. briefloop-0.11.12/src/multi_agent_brief/orchestrator/runtime_state/claim_support_matrix.py +582 -0
  318. briefloop-0.11.12/src/multi_agent_brief/orchestrator/runtime_state/completion_gates.py +672 -0
  319. briefloop-0.11.12/src/multi_agent_brief/orchestrator/runtime_state/contracts_loader.py +66 -0
  320. briefloop-0.11.12/src/multi_agent_brief/orchestrator/runtime_state/decisions.py +239 -0
  321. briefloop-0.11.12/src/multi_agent_brief/orchestrator/runtime_state/errors.py +61 -0
  322. briefloop-0.11.12/src/multi_agent_brief/orchestrator/runtime_state/event_log.py +256 -0
  323. briefloop-0.11.12/src/multi_agent_brief/orchestrator/runtime_state/evidence_span_registry.py +233 -0
  324. briefloop-0.11.12/src/multi_agent_brief/orchestrator/runtime_state/fact_layer.py +755 -0
  325. briefloop-0.11.12/src/multi_agent_brief/orchestrator/runtime_state/identity.py +90 -0
  326. briefloop-0.11.12/src/multi_agent_brief/orchestrator/runtime_state/lifecycle.py +675 -0
  327. briefloop-0.11.12/src/multi_agent_brief/orchestrator/runtime_state/manifest.py +82 -0
  328. briefloop-0.11.12/src/multi_agent_brief/orchestrator/runtime_state/operations.py +224 -0
  329. briefloop-0.11.12/src/multi_agent_brief/orchestrator/runtime_state/paths.py +38 -0
  330. briefloop-0.11.12/src/multi_agent_brief/orchestrator/runtime_state/repair.py +984 -0
  331. briefloop-0.11.12/src/multi_agent_brief/orchestrator/runtime_state/safety_surfaces.py +147 -0
  332. briefloop-0.11.12/src/multi_agent_brief/orchestrator/runtime_state/semantic_assessment_report.py +692 -0
  333. briefloop-0.11.12/src/multi_agent_brief/orchestrator/runtime_state/semantic_support_acceptance.py +683 -0
  334. briefloop-0.11.12/src/multi_agent_brief/orchestrator/runtime_state/source_evidence_pack.py +131 -0
  335. briefloop-0.11.12/src/multi_agent_brief/orchestrator/runtime_state/stage_completion.py +1320 -0
  336. briefloop-0.11.12/src/multi_agent_brief/orchestrator/runtime_state/trajectory.py +200 -0
  337. briefloop-0.11.12/src/multi_agent_brief/orchestrator/runtime_state/workflow.py +350 -0
  338. briefloop-0.11.12/src/multi_agent_brief/orchestrator/source_evidence.py +43 -0
  339. briefloop-0.11.12/src/multi_agent_brief/orchestrator/timing.py +410 -0
  340. briefloop-0.11.12/src/multi_agent_brief/orchestrator_contract.py +96 -0
  341. briefloop-0.11.12/src/multi_agent_brief/outputs/__init__.py +2 -0
  342. briefloop-0.11.12/src/multi_agent_brief/outputs/atomic_reader_projection.py +288 -0
  343. briefloop-0.11.12/src/multi_agent_brief/outputs/docx.py +32 -0
  344. briefloop-0.11.12/src/multi_agent_brief/outputs/finalize.py +1036 -0
  345. briefloop-0.11.12/src/multi_agent_brief/outputs/ib_docx.py +983 -0
  346. briefloop-0.11.12/src/multi_agent_brief/outputs/naming.py +38 -0
  347. briefloop-0.11.12/src/multi_agent_brief/outputs/pdf.py +20 -0
  348. briefloop-0.11.12/src/multi_agent_brief/outputs/reader_final_gate.py +509 -0
  349. briefloop-0.11.12/src/multi_agent_brief/outputs/reader_projection.py +397 -0
  350. briefloop-0.11.12/src/multi_agent_brief/outputs/source_appendix.py +753 -0
  351. briefloop-0.11.12/src/multi_agent_brief/outputs/templates/__init__.py +112 -0
  352. briefloop-0.11.12/src/multi_agent_brief/product/__init__.py +49 -0
  353. briefloop-0.11.12/src/multi_agent_brief/product/bundle_projection.py +686 -0
  354. briefloop-0.11.12/src/multi_agent_brief/product/citation_profile.py +145 -0
  355. briefloop-0.11.12/src/multi_agent_brief/product/guidance_manifestation.py +421 -0
  356. briefloop-0.11.12/src/multi_agent_brief/product/materiality_selection.py +472 -0
  357. briefloop-0.11.12/src/multi_agent_brief/product/policy_gate_adapter.py +116 -0
  358. briefloop-0.11.12/src/multi_agent_brief/product/policy_profile.py +39 -0
  359. briefloop-0.11.12/src/multi_agent_brief/product/policy_projection.py +161 -0
  360. briefloop-0.11.12/src/multi_agent_brief/product/policy_registry.py +83 -0
  361. briefloop-0.11.12/src/multi_agent_brief/product/policy_resolver.py +225 -0
  362. briefloop-0.11.12/src/multi_agent_brief/product/quality_closeout.py +188 -0
  363. briefloop-0.11.12/src/multi_agent_brief/product/quality_panel.py +2217 -0
  364. briefloop-0.11.12/src/multi_agent_brief/product/release_approval.py +1034 -0
  365. briefloop-0.11.12/src/multi_agent_brief/product/report_pack.py +130 -0
  366. briefloop-0.11.12/src/multi_agent_brief/product/report_pack_aliases.py +68 -0
  367. briefloop-0.11.12/src/multi_agent_brief/product/report_registry.py +101 -0
  368. briefloop-0.11.12/src/multi_agent_brief/product/report_spec.py +181 -0
  369. briefloop-0.11.12/src/multi_agent_brief/product/support_wording.py +525 -0
  370. briefloop-0.11.12/src/multi_agent_brief/product/template_conformance.py +516 -0
  371. briefloop-0.11.12/src/multi_agent_brief/product/template_projection.py +123 -0
  372. briefloop-0.11.12/src/multi_agent_brief/product/template_registry.py +244 -0
  373. briefloop-0.11.12/src/multi_agent_brief/product/template_render_plan.py +315 -0
  374. briefloop-0.11.12/src/multi_agent_brief/product/template_renderer.py +224 -0
  375. briefloop-0.11.12/src/multi_agent_brief/product/trajectory_regulation.py +441 -0
  376. briefloop-0.11.12/src/multi_agent_brief/provenance/__init__.py +5 -0
  377. briefloop-0.11.12/src/multi_agent_brief/provenance/builder.py +841 -0
  378. briefloop-0.11.12/src/multi_agent_brief/provenance/contract.py +21 -0
  379. briefloop-0.11.12/src/multi_agent_brief/provenance/io.py +144 -0
  380. briefloop-0.11.12/src/multi_agent_brief/provenance/model.py +110 -0
  381. briefloop-0.11.12/src/multi_agent_brief/provenance/references.py +43 -0
  382. briefloop-0.11.12/src/multi_agent_brief/provenance/validator.py +135 -0
  383. briefloop-0.11.12/src/multi_agent_brief/quality_gates/__init__.py +19 -0
  384. briefloop-0.11.12/src/multi_agent_brief/quality_gates/contract.py +581 -0
  385. briefloop-0.11.12/src/multi_agent_brief/quality_gates/state.py +2498 -0
  386. briefloop-0.11.12/src/multi_agent_brief/repair/__init__.py +5 -0
  387. briefloop-0.11.12/src/multi_agent_brief/repair/router.py +842 -0
  388. briefloop-0.11.12/src/multi_agent_brief/runtime_assets.py +431 -0
  389. briefloop-0.11.12/src/multi_agent_brief/sources/__init__.py +16 -0
  390. briefloop-0.11.12/src/multi_agent_brief/sources/api_filings.py +236 -0
  391. briefloop-0.11.12/src/multi_agent_brief/sources/api_news.py +174 -0
  392. briefloop-0.11.12/src/multi_agent_brief/sources/base.py +142 -0
  393. briefloop-0.11.12/src/multi_agent_brief/sources/cached_package.py +119 -0
  394. briefloop-0.11.12/src/multi_agent_brief/sources/cli_provider.py +263 -0
  395. briefloop-0.11.12/src/multi_agent_brief/sources/coverage.py +336 -0
  396. briefloop-0.11.12/src/multi_agent_brief/sources/decider.py +756 -0
  397. briefloop-0.11.12/src/multi_agent_brief/sources/doctor.py +373 -0
  398. briefloop-0.11.12/src/multi_agent_brief/sources/evidence_pack.py +364 -0
  399. briefloop-0.11.12/src/multi_agent_brief/sources/feishu_provider.py +326 -0
  400. briefloop-0.11.12/src/multi_agent_brief/sources/filing_resolver.py +400 -0
  401. briefloop-0.11.12/src/multi_agent_brief/sources/industry_packs.py +130 -0
  402. briefloop-0.11.12/src/multi_agent_brief/sources/join.py +206 -0
  403. briefloop-0.11.12/src/multi_agent_brief/sources/local_signal.py +81 -0
  404. briefloop-0.11.12/src/multi_agent_brief/sources/local_signal_planner.py +636 -0
  405. briefloop-0.11.12/src/multi_agent_brief/sources/manual.py +259 -0
  406. briefloop-0.11.12/src/multi_agent_brief/sources/mcp_provider.py +309 -0
  407. briefloop-0.11.12/src/multi_agent_brief/sources/mineru_provider.py +601 -0
  408. briefloop-0.11.12/src/multi_agent_brief/sources/normalizer.py +95 -0
  409. briefloop-0.11.12/src/multi_agent_brief/sources/opencli_provider.py +282 -0
  410. briefloop-0.11.12/src/multi_agent_brief/sources/planner.py +178 -0
  411. briefloop-0.11.12/src/multi_agent_brief/sources/registry.py +367 -0
  412. briefloop-0.11.12/src/multi_agent_brief/sources/rss.py +190 -0
  413. briefloop-0.11.12/src/multi_agent_brief/sources/search_backends/__init__.py +31 -0
  414. briefloop-0.11.12/src/multi_agent_brief/sources/search_backends/base.py +51 -0
  415. briefloop-0.11.12/src/multi_agent_brief/sources/search_backends/brave.py +192 -0
  416. briefloop-0.11.12/src/multi_agent_brief/sources/search_backends/capabilities.py +94 -0
  417. briefloop-0.11.12/src/multi_agent_brief/sources/search_backends/exa.py +180 -0
  418. briefloop-0.11.12/src/multi_agent_brief/sources/search_backends/firecrawl.py +164 -0
  419. briefloop-0.11.12/src/multi_agent_brief/sources/search_backends/serper.py +241 -0
  420. briefloop-0.11.12/src/multi_agent_brief/sources/search_backends/tavily.py +124 -0
  421. briefloop-0.11.12/src/multi_agent_brief/sources/sourcehub.py +505 -0
  422. briefloop-0.11.12/src/multi_agent_brief/sources/web_search.py +267 -0
  423. briefloop-0.11.12/src/multi_agent_brief/status.py +966 -0
  424. briefloop-0.11.12/src/multi_agent_brief/tools/__init__.py +3 -0
  425. briefloop-0.11.12/src/multi_agent_brief/tools/draft_cleanup.py +198 -0
  426. briefloop-0.11.12/src/multi_agent_brief/workbuddy/__init__.py +1 -0
  427. briefloop-0.11.12/src/multi_agent_brief/workbuddy/diagnose.py +569 -0
  428. briefloop-0.11.12/src/multi_agent_brief/workbuddy/skill_pack.py +309 -0
  429. briefloop-0.11.12/src/multi_agent_brief/workspace/__init__.py +1 -0
  430. briefloop-0.11.12/src/multi_agent_brief/workspace/init_profile.py +45 -0
  431. briefloop-0.11.12/tests/test_069_e2e_stabilization.py +116 -0
  432. briefloop-0.11.12/tests/test_agent_config_generation.py +550 -0
  433. briefloop-0.11.12/tests/test_agent_onboarding_docs.py +75 -0
  434. briefloop-0.11.12/tests/test_analysis_blocks.py +331 -0
  435. briefloop-0.11.12/tests/test_analysis_module_registry.py +85 -0
  436. briefloop-0.11.12/tests/test_atomic_reader_projection.py +123 -0
  437. briefloop-0.11.12/tests/test_audience_memory.py +260 -0
  438. briefloop-0.11.12/tests/test_audience_profiles.py +280 -0
  439. briefloop-0.11.12/tests/test_audit_semantic.py +360 -0
  440. briefloop-0.11.12/tests/test_b02_search_execution.py +363 -0
  441. briefloop-0.11.12/tests/test_b1416_date_numeric.py +229 -0
  442. briefloop-0.11.12/tests/test_brave_backend.py +263 -0
  443. briefloop-0.11.12/tests/test_briefloop_operator_skill.py +215 -0
  444. briefloop-0.11.12/tests/test_briefloop_skill_freshness.py +87 -0
  445. briefloop-0.11.12/tests/test_capabilities.py +453 -0
  446. briefloop-0.11.12/tests/test_case_applicability.py +182 -0
  447. briefloop-0.11.12/tests/test_claim_ledger.py +60 -0
  448. briefloop-0.11.12/tests/test_claim_support_matrix_policy.py +401 -0
  449. briefloop-0.11.12/tests/test_cli.py +418 -0
  450. briefloop-0.11.12/tests/test_codebuddy_adapter_smoke.py +114 -0
  451. briefloop-0.11.12/tests/test_competitor_onboarding.py +122 -0
  452. briefloop-0.11.12/tests/test_config_contract.py +277 -0
  453. briefloop-0.11.12/tests/test_config_language_compat.py +62 -0
  454. briefloop-0.11.12/tests/test_contract_registry.py +327 -0
  455. briefloop-0.11.12/tests/test_contracts.py +1353 -0
  456. briefloop-0.11.12/tests/test_control_timing.py +249 -0
  457. briefloop-0.11.12/tests/test_controls_switchboard.py +723 -0
  458. briefloop-0.11.12/tests/test_deliver_commands.py +1238 -0
  459. briefloop-0.11.12/tests/test_deterministic_audit.py +148 -0
  460. briefloop-0.11.12/tests/test_doctor.py +237 -0
  461. briefloop-0.11.12/tests/test_docx_templates.py +226 -0
  462. briefloop-0.11.12/tests/test_editor_cleanup.py +117 -0
  463. briefloop-0.11.12/tests/test_editorial_governance.py +279 -0
  464. briefloop-0.11.12/tests/test_evaluation_cases.py +477 -0
  465. briefloop-0.11.12/tests/test_evidence_extract_pack.py +911 -0
  466. briefloop-0.11.12/tests/test_exa_backend.py +331 -0
  467. briefloop-0.11.12/tests/test_experiment_080_commands.py +4672 -0
  468. briefloop-0.11.12/tests/test_experiment_080_public_pilot.py +106 -0
  469. briefloop-0.11.12/tests/test_experiment_080_schemas.py +642 -0
  470. briefloop-0.11.12/tests/test_fast_rerun_public_fixture.py +119 -0
  471. briefloop-0.11.12/tests/test_feedback_commands.py +842 -0
  472. briefloop-0.11.12/tests/test_fetch_github_review_comments.py +86 -0
  473. briefloop-0.11.12/tests/test_filing_resolver_provider.py +376 -0
  474. briefloop-0.11.12/tests/test_final_quality_audit.py +307 -0
  475. briefloop-0.11.12/tests/test_finalize_delivery_gate.py +2319 -0
  476. briefloop-0.11.12/tests/test_firecrawl_backend.py +299 -0
  477. briefloop-0.11.12/tests/test_generator_boundaries.py +29 -0
  478. briefloop-0.11.12/tests/test_guidance_manifestation.py +300 -0
  479. briefloop-0.11.12/tests/test_hermes_adapter.py +518 -0
  480. briefloop-0.11.12/tests/test_improvement_commands.py +347 -0
  481. briefloop-0.11.12/tests/test_improvement_contract.py +616 -0
  482. briefloop-0.11.12/tests/test_improvement_memory.py +491 -0
  483. briefloop-0.11.12/tests/test_improvement_product_definition.py +104 -0
  484. briefloop-0.11.12/tests/test_improvement_state.py +949 -0
  485. briefloop-0.11.12/tests/test_init_from_onboarding.py +298 -0
  486. briefloop-0.11.12/tests/test_input_classification_governance.py +529 -0
  487. briefloop-0.11.12/tests/test_install_writer.py +117 -0
  488. briefloop-0.11.12/tests/test_launch_smoke.py +122 -0
  489. briefloop-0.11.12/tests/test_limitation_hygiene.py +205 -0
  490. briefloop-0.11.12/tests/test_local_signal.py +607 -0
  491. briefloop-0.11.12/tests/test_local_signal_provider.py +144 -0
  492. briefloop-0.11.12/tests/test_market_competitor_audit.py +172 -0
  493. briefloop-0.11.12/tests/test_market_competitor_config.py +178 -0
  494. briefloop-0.11.12/tests/test_market_competitor_events.py +243 -0
  495. briefloop-0.11.12/tests/test_market_competitor_schemas.py +255 -0
  496. briefloop-0.11.12/tests/test_materiality_selection.py +268 -0
  497. briefloop-0.11.12/tests/test_minimal_comparative_eval.py +104 -0
  498. briefloop-0.11.12/tests/test_onboarding_mapper.py +307 -0
  499. briefloop-0.11.12/tests/test_orchestrator_contract_docs.py +324 -0
  500. briefloop-0.11.12/tests/test_package_version.py +43 -0
  501. briefloop-0.11.12/tests/test_policy_profile_dogfood_fixtures.py +201 -0
  502. briefloop-0.11.12/tests/test_policy_profiles.py +498 -0
  503. briefloop-0.11.12/tests/test_policy_regulatory_audit.py +174 -0
  504. briefloop-0.11.12/tests/test_policy_regulatory_module.py +245 -0
  505. briefloop-0.11.12/tests/test_product_baseline.py +755 -0
  506. briefloop-0.11.12/tests/test_provenance_projection.py +449 -0
  507. briefloop-0.11.12/tests/test_public_product_rename.py +258 -0
  508. briefloop-0.11.12/tests/test_public_safety_scan.py +368 -0
  509. briefloop-0.11.12/tests/test_quality_gates_commands.py +2489 -0
  510. briefloop-0.11.12/tests/test_quality_harness.py +47 -0
  511. briefloop-0.11.12/tests/test_quality_panel.py +1718 -0
  512. briefloop-0.11.12/tests/test_reader_final_gate.py +241 -0
  513. briefloop-0.11.12/tests/test_reader_projection.py +177 -0
  514. briefloop-0.11.12/tests/test_release_approval.py +783 -0
  515. briefloop-0.11.12/tests/test_release_consistency.py +535 -0
  516. briefloop-0.11.12/tests/test_rendered_output_validation.py +213 -0
  517. briefloop-0.11.12/tests/test_repair_router.py +1339 -0
  518. briefloop-0.11.12/tests/test_report_bundles.py +754 -0
  519. briefloop-0.11.12/tests/test_report_packs.py +679 -0
  520. briefloop-0.11.12/tests/test_report_template_renderer.py +83 -0
  521. briefloop-0.11.12/tests/test_role_topology.py +251 -0
  522. briefloop-0.11.12/tests/test_rule_packs.py +146 -0
  523. briefloop-0.11.12/tests/test_run_integrity.py +149 -0
  524. briefloop-0.11.12/tests/test_runtime_assets.py +319 -0
  525. briefloop-0.11.12/tests/test_runtime_state.py +9625 -0
  526. briefloop-0.11.12/tests/test_runtime_state_public_surface.py +221 -0
  527. briefloop-0.11.12/tests/test_safety_surfaces.py +208 -0
  528. briefloop-0.11.12/tests/test_semantic_assessment_dogfood_fixtures.py +207 -0
  529. briefloop-0.11.12/tests/test_semantic_assessment_report_projection.py +211 -0
  530. briefloop-0.11.12/tests/test_semantic_support_acceptance.py +557 -0
  531. briefloop-0.11.12/tests/test_serper_backend.py +318 -0
  532. briefloop-0.11.12/tests/test_skill_contracts.py +110 -0
  533. briefloop-0.11.12/tests/test_source_appendix.py +686 -0
  534. briefloop-0.11.12/tests/test_source_config_fix.py +121 -0
  535. briefloop-0.11.12/tests/test_source_decider.py +725 -0
  536. briefloop-0.11.12/tests/test_source_evidence_pack.py +712 -0
  537. briefloop-0.11.12/tests/test_source_join.py +533 -0
  538. briefloop-0.11.12/tests/test_source_providers.py +1475 -0
  539. briefloop-0.11.12/tests/test_sourcehub_lite.py +282 -0
  540. briefloop-0.11.12/tests/test_start_commands.py +1849 -0
  541. briefloop-0.11.12/tests/test_status.py +1046 -0
  542. briefloop-0.11.12/tests/test_status_commands.py +1028 -0
  543. briefloop-0.11.12/tests/test_subagent_first_contract.py +701 -0
  544. briefloop-0.11.12/tests/test_support_wording.py +334 -0
  545. briefloop-0.11.12/tests/test_tavily_guidance.py +454 -0
  546. briefloop-0.11.12/tests/test_terms_and_docs.py +101 -0
  547. briefloop-0.11.12/tests/test_trajectory_regulation.py +267 -0
  548. briefloop-0.11.12/tests/test_v1_pilot_evidence.py +246 -0
  549. briefloop-0.11.12/tests/test_web_search_metadata.py +142 -0
  550. briefloop-0.11.12/tests/test_workbuddy_diagnose.py +811 -0
  551. briefloop-0.11.12/tests/test_workbuddy_skill_pack.py +629 -0
@@ -0,0 +1,22 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 multi-agent-brief-workflow contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
@@ -0,0 +1,473 @@
1
+ Metadata-Version: 2.4
2
+ Name: briefloop
3
+ Version: 0.11.12
4
+ Summary: Source-grounded, audit-ready multi-agent workflow for business and research briefs.
5
+ Author: BriefLoop contributors
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/Stahl-G/briefloop
8
+ Project-URL: Repository, https://github.com/Stahl-G/briefloop
9
+ Project-URL: Issues, https://github.com/Stahl-G/briefloop/issues
10
+ Project-URL: Documentation, https://github.com/Stahl-G/briefloop/tree/main/docs
11
+ Project-URL: Changelog, https://github.com/Stahl-G/briefloop/blob/main/CHANGELOG.md
12
+ Keywords: briefing,workflow,audit,traceability,multi-agent
13
+ Classifier: Environment :: Console
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Operating System :: OS Independent
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.9
18
+ Classifier: Programming Language :: Python :: 3.10
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Topic :: Office/Business
22
+ Classifier: Topic :: Software Development :: Quality Assurance
23
+ Requires-Python: >=3.9
24
+ Description-Content-Type: text/markdown
25
+ License-File: LICENSE
26
+ Requires-Dist: pyyaml>=6.0
27
+ Provides-Extra: docx
28
+ Requires-Dist: python-docx>=1.0.0; extra == "docx"
29
+ Provides-Extra: dev
30
+ Requires-Dist: pytest>=8.0; extra == "dev"
31
+ Requires-Dist: python-docx>=1.0.0; extra == "dev"
32
+ Requires-Dist: ruff>=0.8.0; extra == "dev"
33
+ Dynamic: license-file
34
+
35
+ # 🧾 BriefLoop
36
+
37
+ **AI-assisted business briefings you can question later.**
38
+
39
+ [English](README.md) | [简体中文](README.zh-CN.md)
40
+
41
+ Website: [briefloop.ai](https://briefloop.ai) · Contact: [contact@briefloop.ai](mailto:contact@briefloop.ai)
42
+
43
+ [15-Minute Pilot](docs/15-minute-pilot.md) · [Getting Started](docs/getting-started.md) · [Weekly Loop](docs/weekly-loop.md) · [Troubleshooting](docs/troubleshooting.md) · [Reference Workspace](examples/reference-workspaces/industry-weekly-demo/README.md) · [Contact](docs/contact.md)
44
+
45
+ Writer entry: use `/briefloop` in Claude Code, or `briefloop` in a shell.
46
+
47
+ ---
48
+
49
+ ## ✨ In one sentence
50
+
51
+ BriefLoop is an open-source workflow for recurring business briefings.
52
+
53
+ It does not try to be “a better prompt.” It keeps track of the process behind a brief:
54
+
55
+ - Which source did this number come from?
56
+ - Which claims were registered?
57
+ - Which checks passed or failed?
58
+ - Which reader preferences were approved by a human?
59
+ - What should be reused next time, and what should not?
60
+
61
+ > When someone asks where a number came from, BriefLoop does not ask the model to improvise an explanation. It opens the ledger.
62
+
63
+ ---
64
+
65
+ ## 🧯 The problem
66
+
67
+ Many teams write the same kind of material every week:
68
+
69
+ - market updates
70
+ - industry briefings
71
+ - competitor tracking
72
+ - policy monitoring
73
+ - equity research notes
74
+ - investor-relations materials
75
+ - executive briefings
76
+ - project status reports
77
+
78
+ LLMs can draft these documents quickly. The hard part is not drafting. The hard part is trust.
79
+
80
+ Common problems:
81
+
82
+ 1. **Sources disappear.**
83
+ A number enters the final brief, and two weeks later nobody knows where it came from.
84
+
85
+ 2. **Small errors become confident conclusions.**
86
+ A weak source, stale data point, or misread paragraph can survive several editing passes and look authoritative.
87
+
88
+ 3. **Feedback evaporates.**
89
+ “Lead with the business impact,” “do not use generic wording,” or “verify this category against the original filing” often stays in someone’s head instead of the workflow.
90
+
91
+ 4. **Handoffs are painful.**
92
+ The real rules for writing the brief live with one experienced person, not in a visible process.
93
+
94
+ BriefLoop turns those hidden rules into a workflow that can be inspected, repeated, and improved.
95
+
96
+ ---
97
+
98
+ ## 👥 Who is this for?
99
+
100
+ BriefLoop is useful for:
101
+
102
+ - analysts, associates, management trainees, IR teams, strategy teams, and market-intelligence teams who write recurring briefings;
103
+ - teams that want AI-assisted writing to be traceable instead of merely fluent;
104
+ - researchers studying agent workflows, human-in-the-loop systems, and auditable AI processes.
105
+
106
+ It is not the right tool if you only want:
107
+
108
+ - a one-click pretty report generator;
109
+ - an autonomous agent that publishes without review;
110
+ - a system that proves every claim is true;
111
+ - a way to make an externally generated AI report “safe” after the fact.
112
+
113
+ ---
114
+
115
+ ## 🧱 What BriefLoop actually does
116
+
117
+ Think of BriefLoop as a briefing pipeline with ledgers.
118
+
119
+ | Step | What happens | Why it matters |
120
+ |---|---|---|
121
+ | 1. Prepare materials | Collect local files, source packs, or search results | The model should not start from nothing |
122
+ | 2. Register claims | Important numbers, dates, entities, and claims are written into a Claim Ledger | Later you can ask where a claim came from |
123
+ | 3. Draft by roles | Scout, Analyst, Editor, Auditor, and related roles work within boundaries | Writing becomes staged work, not one giant prompt |
124
+ | 4. Run gates | Quality gates check source age, new facts, missing support, and delivery state | Deterministic checks do not rely on prompt memory |
125
+ | 5. Deliver by human action | Final delivery is explicitly triggered by a human | The system does not publish or bypass review |
126
+ | 6. Keep approved feedback | Only human-approved reader preferences are reused | “Do this next time” becomes visible and reversible |
127
+
128
+ The design rule is simple:
129
+
130
+ > Smart parts may write and propose. Authoritative parts must be checkable. Nothing takes effect without a human decision.
131
+
132
+ ---
133
+
134
+ ## 📚 The four questions it keeps answerable
135
+
136
+ | Question | What BriefLoop records | Where to look |
137
+ |---|---|---|
138
+ | Where is this run? | Current stage, missing artifacts, blockers, next safe action | `/briefloop status`, `workflow_state.json`, `agent_handoff.md` |
139
+ | Where did each number come from? | Claim Ledger entries, source dates, source appendix, gate findings | `claim_ledger.json`, `source_appendix.md`, `quality_gate_report.json` |
140
+ | What has it learned? | Human-approved reader preferences only | `improvement/ledger.jsonl`, `improvement_memory_snapshot.md` |
141
+ | What guards delivery? | Stage-completion records, reader-final gate, delivery checks | `finalize_report.json`, `state finalize-complete` |
142
+
143
+ It can observe and propose. Only what you approve is remembered, and it is remembered in a ledger you can open, audit, and undo.
144
+
145
+ ---
146
+
147
+ ## 📦 What you get from a run
148
+
149
+ A normal delivered brief is usually:
150
+
151
+ - `output/delivery/brief.md`
152
+ - `output/delivery/<report-name>.docx`
153
+
154
+ The workflow also keeps audit artifacts, such as:
155
+
156
+ - `output/intermediate/claim_ledger.json`
157
+ - `output/source_appendix.md`
158
+ - `output/intermediate/quality_gate_report.json`
159
+ - `event_log.jsonl`
160
+ - `improvement/ledger.jsonl`
161
+
162
+ Those audit files are not meant to be read by every end user. They exist so a team can answer questions, debug failures, review decisions, and hand the process to someone else.
163
+
164
+ ---
165
+
166
+ ## 🔎 A tiny example
167
+
168
+ A delivered brief might say:
169
+
170
+ ```markdown
171
+ This week, the sample PV module spot price fell 1.8% week over week,
172
+ the third consecutive weekly decline.
173
+ ```
174
+
175
+ BriefLoop expects that claim to have a registered entry:
176
+
177
+ ```json
178
+ {
179
+ "claim_id": "CL-0012",
180
+ "statement": "The sample PV module spot price fell 1.8% week over week.",
181
+ "source_id": "SRC-003",
182
+ "evidence_text": "Example source excerpt showing the week-over-week price change.",
183
+ "metadata": {
184
+ "published_at": "2026-06-05",
185
+ "source_title": "Example PV price sheet"
186
+ }
187
+ }
188
+ ```
189
+
190
+ If a source is stale, a number is unregistered, or an editor adds a new material fact late in the process, gates should surface the issue instead of letting it silently enter the final document.
191
+
192
+ ---
193
+
194
+ ## 🚀 Quick start
195
+
196
+ ### macOS / Linux
197
+
198
+ ```bash
199
+ git clone https://github.com/Stahl-G/briefloop.git
200
+ cd briefloop
201
+ bash scripts/setup.sh
202
+ source .venv/bin/activate
203
+ bash scripts/demo.sh
204
+ ```
205
+
206
+ `scripts/demo.sh` creates an API-free reference workspace with a final brief,
207
+ Claim Ledger, Quality Panel HTML, Quality Summary, source appendix, and
208
+ event-log excerpt.
209
+
210
+ For the shortest walkthrough, use the
211
+ [15-Minute Pilot](docs/15-minute-pilot.md).
212
+
213
+ Package-index installs are not the launch path yet. `pipx` / PyPI packaging is
214
+ tracked in [pipx And PyPI Packaging Prep](docs/packaging-pipx.md); do not use
215
+ `pipx install briefloop` until release notes say a real package-index artifact
216
+ has been published and smoked.
217
+
218
+ When you are ready to use your own materials, create your first briefing
219
+ workspace:
220
+
221
+ ```bash
222
+ briefloop onboard
223
+ briefloop init ~/briefloop-workspace --from-onboarding onboarding.json
224
+ briefloop run --workspace ~/briefloop-workspace
225
+ ```
226
+
227
+ Common setup helpers:
228
+
229
+ ```bash
230
+ briefloop init --from-onboarding onboarding.json <workspace>
231
+ briefloop sources decide --config <workspace>/config.yaml
232
+ ```
233
+
234
+ `sources decide` is the explicit source-discovery helper for workspaces that use
235
+ the `llm_decide` source profile.
236
+
237
+ ### Windows PowerShell
238
+
239
+ Windows does not require WSL or Git Bash. PowerShell is the recommended path.
240
+
241
+ ```powershell
242
+ winget install Python.Python.3.12
243
+
244
+ git clone https://github.com/Stahl-G/briefloop.git
245
+ cd briefloop
246
+
247
+ .\scripts\setup.ps1
248
+ .\.venv\Scripts\Activate.ps1
249
+
250
+ briefloop version
251
+ ```
252
+
253
+ If PowerShell blocks script execution:
254
+
255
+ ```powershell
256
+ powershell -ExecutionPolicy Bypass -File .\scripts\setup.ps1
257
+ ```
258
+
259
+ ---
260
+
261
+ ## 🤖 Claude Code path
262
+
263
+ If you use Claude Code, install the writer entrypoint:
264
+
265
+ ```bash
266
+ source .venv/bin/activate
267
+ briefloop claude install --repo-workdir .
268
+ ```
269
+
270
+ Then use the five main writer commands:
271
+
272
+ ```text
273
+ /briefloop new
274
+ /briefloop run <workspace>
275
+ /briefloop status <workspace>
276
+ /briefloop feedback <workspace> [text-or-file]
277
+ /briefloop deliver <workspace>
278
+ ```
279
+
280
+ Good next reads:
281
+
282
+ - [Getting Started](docs/getting-started.md)
283
+ - [Weekly Loop](docs/weekly-loop.md)
284
+ - [Troubleshooting](docs/troubleshooting.md)
285
+ - [Claude Code quickstart](docs/claude-code-quickstart.md)
286
+
287
+ ---
288
+
289
+ ## 🧪 Three ways to try it
290
+
291
+ Start from the product entry that matches your report:
292
+
293
+ | Report job | Start with | Best for |
294
+ |---|---|---|
295
+ | Industry or market weekly | `industry-weekly` | recurring market updates, competitor tracking, policy monitoring |
296
+ | Management monthly | `management-monthly` | executive reviews, monthly operating updates, management briefing packs |
297
+ | Document review | `document-review` | reviewing a set of documents with page/source traceability |
298
+
299
+ ```bash
300
+ briefloop new industry-weekly ./weekly-brief
301
+ briefloop new management-monthly ./monthly-review
302
+ briefloop new document-review ./document-review
303
+ ```
304
+
305
+ `document-review` prepares a document evidence review workspace. It does not
306
+ make legal, compliance, or disclosure judgments.
307
+
308
+ Start with the three supported entries above. Other experimental entries are
309
+ documented later for users who already understand the basic loop.
310
+
311
+ | Path | Best for | What to do |
312
+ |---|---|---|
313
+ | Look once | You want to understand the project quickly | Run the demos and read the reference runs |
314
+ | Run once | You want to test it on a few local files | Create a workspace, add materials, run one brief |
315
+ | Use weekly | You want a recurring workflow | Configure sources, sections, reader preferences, and feedback |
316
+
317
+ Optional demo commands:
318
+
319
+ ```bash
320
+ bash scripts/demo.sh
321
+ bash scripts/demo-deep-dive.sh
322
+ ```
323
+
324
+ The demos use synthetic materials. They show the evidence chain and gate behavior. Real use starts with your own workspace and sources.
325
+
326
+ ---
327
+
328
+ ## 🧭 Current status
329
+
330
+ Current version: **v0.11.12**
331
+
332
+ Current main entrypoints:
333
+
334
+ - CLI: `briefloop`
335
+ - Claude command: `/briefloop`
336
+ - experimental WorkBuddy / CodeBuddy guide: [docs/workbuddy.md](docs/workbuddy.md)
337
+
338
+ v0.11.12 releases the accumulated v0.11 product-baseline, WorkBuddy adapter,
339
+ operator-runtime, and semantic-support auditor hardening line, including:
340
+
341
+ - `ReportSpec`, `ReportPack`, `ReportTemplate`, and `PolicyProfile` contracts
342
+ - workspace skeletons and deterministic PolicyProfile resolution
343
+ - delivery / audit bundle manifests and clean bundle archives
344
+ - supported `industry-weekly`, `management-monthly`, and `document-review`
345
+ product entrypoints
346
+ - bounded `evidence_extract` source/scope registration, source locks, logical
347
+ page inventory seeds, and text-span seed registries
348
+ - experimental SourceHub Lite setup for local files, RSS feeds, and runtime web-search handoff tasks
349
+ - durable source evidence pack materialization and source taxonomy normalization
350
+ - internal release-mode approval records
351
+ - Quality Panel JSON / Markdown / HTML projections and audit-bundle integration
352
+ - reader-quality warning/projection surfaces for template conformance,
353
+ materiality selection, support-calibrated wording, citation profiles,
354
+ coverage/omission, and scoped final-abstract diagnostics
355
+ - trajectory-regulation decision narrowing for repeated retry/repair/blocker
356
+ loops
357
+ - experimental source-clone WorkBuddy Skill packaging and first-use routing
358
+ - experimental source-clone CodeBuddy project Skill and role-agent handoff
359
+ through `--runtime codebuddy`
360
+ - `operator` runtime for host-agnostic compact operation, with `manual` kept as
361
+ a legacy alias
362
+ - proposal-only Semantic Support Auditor surfaces and human adjudication records
363
+ that do not create support truth, gates, delivery approval, or release
364
+ authority
365
+ - public-safe reference, synthetic regression, minimal comparative evaluation,
366
+ launch smoke, and release checklist guardrails
367
+
368
+ These features are meant to make report types, source evidence, default policies,
369
+ delivery bundles, and operator quality visibility more product-like.
370
+
371
+ These features are still contracts, metadata, defaults, setup paths, approval
372
+ records, deterministic warnings, and projection controls. They do not parse PDFs automatically,
373
+ execute hidden web search or crawling, judge industry compliance, detect
374
+ investment advice, verify internet rumors, claim IR/disclosure readiness,
375
+ prove semantic truth, publish reports, or authorize public release.
376
+
377
+ ---
378
+
379
+ ## 🚧 What it is not
380
+
381
+ BriefLoop currently does not:
382
+
383
+ - publish reports automatically;
384
+ - bypass human review;
385
+ - prove that a source semantically supports every sub-claim;
386
+ - replace legal, compliance, investment, or disclosure judgment;
387
+ - claim that generated content is ready for IR, SEC, or regulatory disclosure;
388
+ - turn unapproved feedback into long-term memory;
389
+ - promise one-click perfect reports.
390
+
391
+ The current core claim is deliberately narrow:
392
+
393
+ > **Traceability, not semantic proof yet.**
394
+ > BriefLoop aims to make a briefing process traceable, reviewable, and accountable. Semantic proof and automatic judgment are future work, not current guarantees.
395
+
396
+ ---
397
+
398
+ ## 💡 Why this exists
399
+
400
+ Coding agents improved quickly because software work has infrastructure: tests, CI, git history, code review, and rollbacks.
401
+
402
+ Business briefings usually do not. A junior analyst is corrected verbally, and the correction disappears. A stale number enters a weekly report, and nobody can tell which step allowed it. A team learns what “good” looks like, but the learning stays informal.
403
+
404
+ BriefLoop brings software-engineering discipline into recurring briefing work: auditability, structured feedback, human gates, execution traces, and tests.
405
+
406
+ The goal is not to remove human judgment. The goal is to let humans spend more time judging, questioning, and advising, and less time re-checking the same preventable mistakes.
407
+
408
+ ---
409
+
410
+ ## 📖 Glossary
411
+
412
+ | Term | Plain meaning |
413
+ |---|---|
414
+ | Claim Ledger | A record of important claims, numbers, sources, and dates |
415
+ | Source Pack | The set of materials available to a run |
416
+ | Quality Gate | A check that must pass before a stage or delivery can proceed |
417
+ | Reader Preference | Human-approved guidance such as “lead with business impact” |
418
+ | Improvement Ledger | The record of approved feedback |
419
+ | Orchestrator / 司乐师 | The runtime role that coordinates stages and boundaries |
420
+ | Delivery Bundle | The Markdown / Word files meant for readers |
421
+ | Audit Artifacts | Intermediate records used for review, debugging, and accountability |
422
+
423
+ ---
424
+
425
+ ## 🗂️ Useful docs
426
+
427
+ First-user path:
428
+
429
+ - [Getting Started](docs/getting-started.md)
430
+ - [Weekly Loop](docs/weekly-loop.md)
431
+ - [Troubleshooting](docs/troubleshooting.md)
432
+ - [Golden reference workspace](examples/reference-workspaces/industry-weekly-demo/README.md)
433
+
434
+ Architecture reference and contributor docs:
435
+
436
+ - [Function Map](docs/features.md)
437
+ - [Golden Path](docs/golden-path.md)
438
+ - [Architecture Status](docs/architecture-status.md)
439
+ - [Naming and compatibility](docs/briefloop-naming.md)
440
+ - [Roadmap](docs/roadmap.md)
441
+ - [Red lines and anti-patterns](docs/red-lines-and-anti-patterns.md)
442
+ - [Product OS reader-quality reference package](docs/reference-runs/v0.11.3-product-os-reader-quality-reference.md)
443
+ - [Minimal comparative evaluation packet](docs/evaluation-results/v0.11.4-minimal-comparative-evaluation/README.md)
444
+ - [Synthetic regression pack](docs/reference-runs/v0.11.1-synthetic-regression-pack.md)
445
+ - [Public solar integration run](docs/reference-runs/v0.7.2-public-solar-integration.zh-CN.md)
446
+ - [Organoid-industry failure study](docs/reference-runs/v0.7.4-organoid-failure-study.md)
447
+ ([中文](docs/reference-runs/v0.7.4-organoid-failure-study.zh-CN.md))
448
+
449
+ ---
450
+
451
+ ## 🤝 Collaboration
452
+
453
+ This project needs real scenarios more than it needs more concepts.
454
+
455
+ You are welcome to participate if you:
456
+
457
+ - write recurring market, strategy, policy, IR, or executive briefings;
458
+ - want to pilot BriefLoop on a real workflow;
459
+ - research agent evaluation, human-in-the-loop systems, or auditable AI workflows;
460
+ - want to contribute through issues, docs, tests, or example scenarios.
461
+
462
+ Start with a [good first issue](https://github.com/Stahl-G/briefloop/issues). Please read [red lines and anti-patterns](docs/red-lines-and-anti-patterns.md) before contributing.
463
+
464
+ For human contact, see [briefloop.ai](https://briefloop.ai) or
465
+ [docs/contact.md](docs/contact.md). Use
466
+ [security@briefloop.ai](mailto:security@briefloop.ai) for private security
467
+ reports.
468
+
469
+ ---
470
+
471
+ ## 📄 License
472
+
473
+ MIT