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.
- briefloop-0.18.0/CHANGELOG.md +2207 -0
- briefloop-0.18.0/LICENSE +21 -0
- briefloop-0.18.0/MANIFEST.in +13 -0
- briefloop-0.18.0/PKG-INFO +18 -0
- briefloop-0.18.0/README.md +181 -0
- briefloop-0.18.0/THIRD_PARTY_NOTICES.md +12 -0
- briefloop-0.18.0/VERSION +1 -0
- briefloop-0.18.0/bootstrap.py +55 -0
- briefloop-0.18.0/docs//344/275/277/347/224/250/346/214/207/345/215/227.md +67 -0
- briefloop-0.18.0/docs//345/215/207/347/272/247/350/257/264/346/230/216.md +46 -0
- briefloop-0.18.0/docs//345/233/276/350/241/250/344/270/216Excel.md +41 -0
- briefloop-0.18.0/docs//345/244/232Runtime/344/270/216/346/250/241/345/236/213.md +60 -0
- briefloop-0.18.0/docs//345/244/232/346/250/241/346/200/201/346/235/245/346/272/220.md +32 -0
- 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
- briefloop-0.18.0/docs//350/241/214/344/270/232/346/212/245/345/221/212.md +60 -0
- 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
- briefloop-0.18.0/examples/internal-weekly-report/README.md +18 -0
- briefloop-0.18.0/examples/internal-weekly-report/report.md +19 -0
- briefloop-0.18.0/examples/internal-weekly-report/source.txt +7 -0
- briefloop-0.18.0/frontend/app.js +1245 -0
- briefloop-0.18.0/frontend/rich-document.js +74 -0
- briefloop-0.18.0/package-lock.json +1091 -0
- briefloop-0.18.0/package.json +17 -0
- briefloop-0.18.0/pyproject.toml +24 -0
- briefloop-0.18.0/runtime-bridge/README.md +38 -0
- briefloop-0.18.0/runtime-bridge/bridge.test.mjs +19 -0
- briefloop-0.18.0/runtime-bridge/build.mjs +6 -0
- briefloop-0.18.0/runtime-bridge/catalog.json +197 -0
- briefloop-0.18.0/runtime-bridge/main.ts +91 -0
- briefloop-0.18.0/src/briefloop/__init__.py +1 -0
- briefloop-0.18.0/src/briefloop/__main__.py +2 -0
- briefloop-0.18.0/src/briefloop/app_server.py +79 -0
- briefloop-0.18.0/src/briefloop/audit_bundle.py +650 -0
- briefloop-0.18.0/src/briefloop/backends/__init__.py +43 -0
- briefloop-0.18.0/src/briefloop/backends/opencode_server.py +318 -0
- briefloop-0.18.0/src/briefloop/bridge_harness.py +189 -0
- briefloop-0.18.0/src/briefloop/chat_store.py +126 -0
- briefloop-0.18.0/src/briefloop/chat_tools.py +235 -0
- briefloop-0.18.0/src/briefloop/cli.py +136 -0
- briefloop-0.18.0/src/briefloop/company_context.py +142 -0
- briefloop-0.18.0/src/briefloop/conflicts.py +73 -0
- briefloop-0.18.0/src/briefloop/default_fonts.py +75 -0
- briefloop-0.18.0/src/briefloop/deliverable_spec.py +194 -0
- briefloop-0.18.0/src/briefloop/delivery_checks.py +195 -0
- briefloop-0.18.0/src/briefloop/document_export.py +149 -0
- briefloop-0.18.0/src/briefloop/document_model.py +282 -0
- briefloop-0.18.0/src/briefloop/evidence.py +255 -0
- briefloop-0.18.0/src/briefloop/execution_records.py +42 -0
- briefloop-0.18.0/src/briefloop/export_jobs.py +79 -0
- briefloop-0.18.0/src/briefloop/exports.py +87 -0
- briefloop-0.18.0/src/briefloop/figure_support.py +63 -0
- briefloop-0.18.0/src/briefloop/figures.py +188 -0
- briefloop-0.18.0/src/briefloop/harness.py +382 -0
- briefloop-0.18.0/src/briefloop/host_bins.py +38 -0
- briefloop-0.18.0/src/briefloop/industry_data.py +73 -0
- briefloop-0.18.0/src/briefloop/industry_export.py +258 -0
- briefloop-0.18.0/src/briefloop/interactive_runtime.py +369 -0
- briefloop-0.18.0/src/briefloop/learning.py +298 -0
- briefloop-0.18.0/src/briefloop/length.py +56 -0
- briefloop-0.18.0/src/briefloop/media.py +283 -0
- briefloop-0.18.0/src/briefloop/models.py +313 -0
- briefloop-0.18.0/src/briefloop/opencode_harness.py +746 -0
- briefloop-0.18.0/src/briefloop/progress.py +80 -0
- briefloop-0.18.0/src/briefloop/projections.py +34 -0
- briefloop-0.18.0/src/briefloop/release.py +432 -0
- briefloop-0.18.0/src/briefloop/report_profiles.py +20 -0
- briefloop-0.18.0/src/briefloop/report_tools.py +30 -0
- briefloop-0.18.0/src/briefloop/research_budget.py +117 -0
- briefloop-0.18.0/src/briefloop/review.py +733 -0
- briefloop-0.18.0/src/briefloop/review_learning.py +67 -0
- briefloop-0.18.0/src/briefloop/runtime.py +830 -0
- briefloop-0.18.0/src/briefloop/runtime_bridge.py +90 -0
- briefloop-0.18.0/src/briefloop/scout_tools.py +51 -0
- briefloop-0.18.0/src/briefloop/server.py +393 -0
- briefloop-0.18.0/src/briefloop/skill_assets/tavily/SKILL.md +56 -0
- briefloop-0.18.0/src/briefloop/skills.py +22 -0
- briefloop-0.18.0/src/briefloop/source_updates.py +316 -0
- briefloop-0.18.0/src/briefloop/sources.py +246 -0
- briefloop-0.18.0/src/briefloop/static/app.js +264 -0
- briefloop-0.18.0/src/briefloop/static/index.html +15 -0
- briefloop-0.18.0/src/briefloop/static/runtime-bridge.LICENSE.txt +201 -0
- briefloop-0.18.0/src/briefloop/static/runtime-bridge.NOTICE.txt +29 -0
- briefloop-0.18.0/src/briefloop/static/runtime-bridge.mjs +1517 -0
- briefloop-0.18.0/src/briefloop/static/style.css +172 -0
- briefloop-0.18.0/src/briefloop/store.py +521 -0
- briefloop-0.18.0/src/briefloop/task_notify.py +70 -0
- briefloop-0.18.0/src/briefloop/tavily.py +183 -0
- briefloop-0.18.0/src/briefloop/templates.py +293 -0
- briefloop-0.18.0/src/briefloop/word_import.py +163 -0
- briefloop-0.18.0/src/briefloop/workbook_figures.py +81 -0
- briefloop-0.18.0/src/briefloop/workspaces.py +163 -0
- briefloop-0.18.0/src/briefloop.egg-info/PKG-INFO +18 -0
- briefloop-0.18.0/src/briefloop.egg-info/SOURCES.txt +343 -0
- briefloop-0.18.0/src/briefloop.egg-info/entry_points.txt +2 -0
- briefloop-0.18.0/src/briefloop.egg-info/requires.txt +13 -0
- briefloop-0.18.0/src/briefloop.egg-info/top_level.txt +2 -0
- briefloop-0.18.0/src/wikiskill/__init__.py +2 -0
- briefloop-0.18.0/src/wikiskill/__main__.py +2 -0
- briefloop-0.18.0/src/wikiskill/_licenses/LICENSE +21 -0
- briefloop-0.18.0/src/wikiskill/_licenses/NOTICE.md +11 -0
- briefloop-0.18.0/src/wikiskill/_licenses/third_party/acorn/LICENSE +21 -0
- briefloop-0.18.0/src/wikiskill/_licenses/third_party/acorn/NOTICE.md +1 -0
- briefloop-0.18.0/src/wikiskill/_licenses/third_party/officeqa/LICENSE-APACHE +51 -0
- briefloop-0.18.0/src/wikiskill/_licenses/third_party/officeqa/NOTICE +7 -0
- briefloop-0.18.0/src/wikiskill/alfworld/__init__.py +0 -0
- briefloop-0.18.0/src/wikiskill/alfworld/act.sh +12 -0
- briefloop-0.18.0/src/wikiskill/alfworld/rollout.py +242 -0
- briefloop-0.18.0/src/wikiskill/alfworld/step.py +103 -0
- briefloop-0.18.0/src/wikiskill/benchmarks/__init__.py +0 -0
- briefloop-0.18.0/src/wikiskill/benchmarks/alfworld.py +89 -0
- briefloop-0.18.0/src/wikiskill/benchmarks/livemath.py +105 -0
- briefloop-0.18.0/src/wikiskill/benchmarks/sealqa.py +116 -0
- briefloop-0.18.0/src/wikiskill/benchmarks/spreadsheet.py +274 -0
- briefloop-0.18.0/src/wikiskill/cli.py +105 -0
- briefloop-0.18.0/src/wikiskill/codex_identity.py +113 -0
- briefloop-0.18.0/src/wikiskill/engine.py +295 -0
- briefloop-0.18.0/src/wikiskill/feedback_loop.py +57 -0
- briefloop-0.18.0/src/wikiskill/isolated/__init__.py +1 -0
- briefloop-0.18.0/src/wikiskill/isolated/audit.py +121 -0
- briefloop-0.18.0/src/wikiskill/isolated/runtime.py +438 -0
- briefloop-0.18.0/src/wikiskill/isolated/tools_server.py +192 -0
- briefloop-0.18.0/src/wikiskill/jsonl.py +30 -0
- briefloop-0.18.0/src/wikiskill/k4_lock.py +38 -0
- briefloop-0.18.0/src/wikiskill/livemath/__init__.py +0 -0
- briefloop-0.18.0/src/wikiskill/livemath/loop.py +314 -0
- briefloop-0.18.0/src/wikiskill/livemath/rollout.py +165 -0
- briefloop-0.18.0/src/wikiskill/native_agents.py +201 -0
- briefloop-0.18.0/src/wikiskill/officeqa/__init__.py +0 -0
- briefloop-0.18.0/src/wikiskill/officeqa/dataset.py +214 -0
- briefloop-0.18.0/src/wikiskill/officeqa/fetch.py +90 -0
- briefloop-0.18.0/src/wikiskill/officeqa/loop.py +676 -0
- briefloop-0.18.0/src/wikiskill/officeqa/retrieval.py +206 -0
- briefloop-0.18.0/src/wikiskill/officeqa/reward.py +763 -0
- briefloop-0.18.0/src/wikiskill/officeqa/rollout.py +249 -0
- briefloop-0.18.0/src/wikiskill/officeqa/scoring.py +37 -0
- briefloop-0.18.0/src/wikiskill/officeqa/wiki_agents.py +676 -0
- briefloop-0.18.0/src/wikiskill/paper_alignment/__init__.py +1 -0
- briefloop-0.18.0/src/wikiskill/paper_alignment/contracts.py +145 -0
- briefloop-0.18.0/src/wikiskill/paper_alignment/evidence.py +36 -0
- briefloop-0.18.0/src/wikiskill/product.py +495 -0
- briefloop-0.18.0/src/wikiskill/product_cli.py +101 -0
- briefloop-0.18.0/src/wikiskill/product_install.py +103 -0
- briefloop-0.18.0/src/wikiskill/product_views.py +164 -0
- briefloop-0.18.0/src/wikiskill/resources/alfworld/id_split/split_manifest.json +17 -0
- briefloop-0.18.0/src/wikiskill/resources/alfworld/id_split/test.json +672 -0
- briefloop-0.18.0/src/wikiskill/resources/alfworld/id_split/train.json +197 -0
- briefloop-0.18.0/src/wikiskill/resources/alfworld/id_split/val.json +92 -0
- briefloop-0.18.0/src/wikiskill/resources/alfworld/wiki/SKILL-s0.md +0 -0
- briefloop-0.18.0/src/wikiskill/resources/alfworld/wiki/index.md +1 -0
- briefloop-0.18.0/src/wikiskill/resources/alfworld/wiki/logs.md +1 -0
- briefloop-0.18.0/src/wikiskill/resources/alfworld/wiki/prompts/maintainer.md +76 -0
- briefloop-0.18.0/src/wikiskill/resources/alfworld/wiki/prompts/proposer.md +57 -0
- briefloop-0.18.0/src/wikiskill/resources/alfworld/wiki/skill-impact.md +1 -0
- briefloop-0.18.0/src/wikiskill/resources/isolated/model-catalog-direct.json +84 -0
- briefloop-0.18.0/src/wikiskill/resources/livemath/id_split/split_manifest.json +22 -0
- briefloop-0.18.0/src/wikiskill/resources/livemath/id_split/test.json +622 -0
- briefloop-0.18.0/src/wikiskill/resources/livemath/id_split/train.json +177 -0
- briefloop-0.18.0/src/wikiskill/resources/livemath/id_split/val.json +92 -0
- briefloop-0.18.0/src/wikiskill/resources/livemath/id_split-v2/split_manifest.json +53 -0
- briefloop-0.18.0/src/wikiskill/resources/livemath/id_split-v2/test.json +498 -0
- briefloop-0.18.0/src/wikiskill/resources/livemath/id_split-v2/train.json +142 -0
- briefloop-0.18.0/src/wikiskill/resources/livemath/id_split-v2/val.json +74 -0
- briefloop-0.18.0/src/wikiskill/resources/livemath/protocol.json +45 -0
- briefloop-0.18.0/src/wikiskill/resources/livemath/wiki/SKILL-s0.md +0 -0
- briefloop-0.18.0/src/wikiskill/resources/livemath/wiki/index.md +1 -0
- briefloop-0.18.0/src/wikiskill/resources/livemath/wiki/logs.md +1 -0
- briefloop-0.18.0/src/wikiskill/resources/livemath/wiki/prompts/maintainer.md +76 -0
- briefloop-0.18.0/src/wikiskill/resources/livemath/wiki/prompts/proposer.md +57 -0
- briefloop-0.18.0/src/wikiskill/resources/livemath/wiki/skill-impact.md +1 -0
- briefloop-0.18.0/src/wikiskill/resources/officeqa/id_split/split_manifest.json +28 -0
- briefloop-0.18.0/src/wikiskill/resources/officeqa/id_split/test.json +1378 -0
- briefloop-0.18.0/src/wikiskill/resources/officeqa/id_split/train.json +402 -0
- briefloop-0.18.0/src/wikiskill/resources/officeqa/id_split/val.json +194 -0
- briefloop-0.18.0/src/wikiskill/resources/officeqa/protocol.json +42 -0
- briefloop-0.18.0/src/wikiskill/resources/officeqa/wiki/SKILL-s0.md +0 -0
- briefloop-0.18.0/src/wikiskill/resources/officeqa/wiki/index.md +1 -0
- briefloop-0.18.0/src/wikiskill/resources/officeqa/wiki/logs.md +1 -0
- briefloop-0.18.0/src/wikiskill/resources/officeqa/wiki/prompts/maintainer.md +75 -0
- briefloop-0.18.0/src/wikiskill/resources/officeqa/wiki/prompts/proposer.md +56 -0
- briefloop-0.18.0/src/wikiskill/resources/officeqa/wiki/skill-impact.md +1 -0
- briefloop-0.18.0/src/wikiskill/resources/paper_alignment/README.md +5 -0
- briefloop-0.18.0/src/wikiskill/resources/paper_alignment/prompts/maintainer.paper.md +105 -0
- briefloop-0.18.0/src/wikiskill/resources/paper_alignment/prompts/officeqa.paper.md +25 -0
- briefloop-0.18.0/src/wikiskill/resources/paper_alignment/prompts/proposer.paper.md +67 -0
- briefloop-0.18.0/src/wikiskill/resources/paper_alignment/prompts/spreadsheet.paper.md +33 -0
- briefloop-0.18.0/src/wikiskill/resources/product/agents/claude-code/wikiskill-executor.md +15 -0
- briefloop-0.18.0/src/wikiskill/resources/product/agents/claude-code/wikiskill-maintainer.md +13 -0
- briefloop-0.18.0/src/wikiskill/resources/product/agents/claude-code/wikiskill-proposer.md +15 -0
- briefloop-0.18.0/src/wikiskill/resources/product/agents/codex/wikiskill-executor.toml +3 -0
- briefloop-0.18.0/src/wikiskill/resources/product/agents/codex/wikiskill-maintainer.toml +3 -0
- briefloop-0.18.0/src/wikiskill/resources/product/agents/codex/wikiskill-proposer.toml +3 -0
- briefloop-0.18.0/src/wikiskill/resources/product/entry-skill/SKILL.md +74 -0
- briefloop-0.18.0/src/wikiskill/resources/product/entry-skill/agents/openai.yaml +4 -0
- briefloop-0.18.0/src/wikiskill/resources/product/entry-skill/references/native-subagents.md +77 -0
- briefloop-0.18.0/src/wikiskill/resources/product/entry-skill/references/workflow.md +155 -0
- briefloop-0.18.0/src/wikiskill/resources/product/roles/executor.md +9 -0
- briefloop-0.18.0/src/wikiskill/resources/product/roles/maintainer.md +7 -0
- briefloop-0.18.0/src/wikiskill/resources/product/roles/proposer.md +9 -0
- briefloop-0.18.0/src/wikiskill/resources/research/final-20260907/manifest.json +11 -0
- briefloop-0.18.0/src/wikiskill/resources/research/final-20260907/math-episodes.json +2450 -0
- briefloop-0.18.0/src/wikiskill/resources/research/final-20260907/sealqa-pairs.json +427 -0
- briefloop-0.18.0/src/wikiskill/resources/research/final-20260907/spreadsheet-SKILL.md +28 -0
- briefloop-0.18.0/src/wikiskill/resources/research/final-20260907/spreadsheet-pairs.json +1392 -0
- briefloop-0.18.0/src/wikiskill/resources/research/final-20260907/summary.json +275 -0
- briefloop-0.18.0/src/wikiskill/resources/research/repeatability-20260908/example-provenance.json +14 -0
- briefloop-0.18.0/src/wikiskill/resources/research/repeatability-20260908/installed-smoke.json +21 -0
- briefloop-0.18.0/src/wikiskill/resources/research/repeatability-20260908/manifest.json +13 -0
- briefloop-0.18.0/src/wikiskill/resources/research/repeatability-20260908/repeat1-pairs.json +1392 -0
- briefloop-0.18.0/src/wikiskill/resources/research/repeatability-20260908/repeat2-pairs.json +1392 -0
- briefloop-0.18.0/src/wikiskill/resources/research/repeatability-20260908/repeat3-pairs.json +1392 -0
- briefloop-0.18.0/src/wikiskill/resources/research/repeatability-20260908/summary.json +406 -0
- briefloop-0.18.0/src/wikiskill/resources/research/repeatability-20260908/wiki-deliver-the-recalculated-workbook.md +24 -0
- briefloop-0.18.0/src/wikiskill/resources/research/skills/livemath/55.md +24 -0
- briefloop-0.18.0/src/wikiskill/resources/research/skills/livemath/luna.md +12 -0
- briefloop-0.18.0/src/wikiskill/resources/research/skills/officeqa/55.md +42 -0
- briefloop-0.18.0/src/wikiskill/resources/research/skills/officeqa/terra.md +15 -0
- briefloop-0.18.0/src/wikiskill/resources/research/skills/officeqa-retrieval/55.md +78 -0
- briefloop-0.18.0/src/wikiskill/resources/research/skills/officeqa-retrieval/sol.md +93 -0
- briefloop-0.18.0/src/wikiskill/resources/research/skills/sealqa/sol.md +52 -0
- briefloop-0.18.0/src/wikiskill/resources/research/skills/spreadsheet/55.md +116 -0
- briefloop-0.18.0/src/wikiskill/resources/research/skills/spreadsheet/sol.md +49 -0
- briefloop-0.18.0/src/wikiskill/resources/research/snapshot.json +5144 -0
- briefloop-0.18.0/src/wikiskill/resources/research/snapshot.sha256 +1 -0
- briefloop-0.18.0/src/wikiskill/resources/research/update-20260906/livemath-luna-pairs.json +622 -0
- briefloop-0.18.0/src/wikiskill/resources/research/update-20260906/livemath-luna-skill.md +14 -0
- briefloop-0.18.0/src/wikiskill/resources/research/update-20260906/manifest.json +11 -0
- briefloop-0.18.0/src/wikiskill/resources/research/update-20260906/officeqa-luna-skill.md +12 -0
- briefloop-0.18.0/src/wikiskill/resources/research/update-20260906/officeqa-sol-skill.md +31 -0
- briefloop-0.18.0/src/wikiskill/resources/research/update-20260906/officeqa-sol-v2-pairs.json +452 -0
- briefloop-0.18.0/src/wikiskill/resources/research/update-20260906/studies.json +126 -0
- briefloop-0.18.0/src/wikiskill/resources/research/update-20260907/effort-analysis.json +174 -0
- briefloop-0.18.0/src/wikiskill/resources/research/update-20260907/effort-pairs.json +218 -0
- briefloop-0.18.0/src/wikiskill/resources/research/update-20260907/manifest.json +11 -0
- briefloop-0.18.0/src/wikiskill/resources/research/update-20260907/officeqa-luna-paper-tools-pairs.json +862 -0
- briefloop-0.18.0/src/wikiskill/resources/research/update-20260907/officeqa-luna-paper-tools-skill.md +12 -0
- briefloop-0.18.0/src/wikiskill/resources/research/update-20260907/spreadsheet-luna-scoped-python-pairs.json +1392 -0
- briefloop-0.18.0/src/wikiskill/resources/research/update-20260907/spreadsheet-luna-scoped-python-skill.md +46 -0
- briefloop-0.18.0/src/wikiskill/resources/research/update-20260907/studies.json +97 -0
- briefloop-0.18.0/src/wikiskill/resources/runtime/acorn.mjs +6233 -0
- briefloop-0.18.0/src/wikiskill/resources/runtime/audit_js.mjs +73 -0
- briefloop-0.18.0/src/wikiskill/resources/sealqa/id_split/split_manifest.json +17 -0
- briefloop-0.18.0/src/wikiskill/resources/sealqa/id_split/test.json +427 -0
- briefloop-0.18.0/src/wikiskill/resources/sealqa/id_split/train.json +82 -0
- briefloop-0.18.0/src/wikiskill/resources/sealqa/id_split/val.json +52 -0
- briefloop-0.18.0/src/wikiskill/resources/sealqa/protocol.json +28 -0
- briefloop-0.18.0/src/wikiskill/resources/sealqa/wiki/SKILL-s0.md +0 -0
- briefloop-0.18.0/src/wikiskill/resources/sealqa/wiki/index.md +1 -0
- briefloop-0.18.0/src/wikiskill/resources/sealqa/wiki/logs.md +1 -0
- briefloop-0.18.0/src/wikiskill/resources/sealqa/wiki/prompts/maintainer.md +39 -0
- briefloop-0.18.0/src/wikiskill/resources/sealqa/wiki/prompts/proposer.md +23 -0
- briefloop-0.18.0/src/wikiskill/resources/sealqa/wiki/skill-impact.md +1 -0
- briefloop-0.18.0/src/wikiskill/resources/spreadsheet/id_split/split_manifest.json +21 -0
- briefloop-0.18.0/src/wikiskill/resources/spreadsheet/id_split/test.json +1392 -0
- briefloop-0.18.0/src/wikiskill/resources/spreadsheet/id_split/train.json +402 -0
- briefloop-0.18.0/src/wikiskill/resources/spreadsheet/id_split/val.json +202 -0
- briefloop-0.18.0/src/wikiskill/resources/spreadsheet/protocol.json +16 -0
- briefloop-0.18.0/src/wikiskill/resources/spreadsheet/wiki/SKILL-s0.md +0 -0
- briefloop-0.18.0/src/wikiskill/resources/spreadsheet/wiki/index.md +1 -0
- briefloop-0.18.0/src/wikiskill/resources/spreadsheet/wiki/logs.md +1 -0
- briefloop-0.18.0/src/wikiskill/resources/spreadsheet/wiki/prompts/maintainer.md +41 -0
- briefloop-0.18.0/src/wikiskill/resources/spreadsheet/wiki/prompts/proposer.md +22 -0
- briefloop-0.18.0/src/wikiskill/resources/spreadsheet/wiki/skill-impact.md +1 -0
- briefloop-0.18.0/src/wikiskill/results.py +23 -0
- briefloop-0.18.0/src/wikiskill/score_rules.py +21 -0
- briefloop-0.18.0/src/wikiskill/scorer_trust.py +77 -0
- briefloop-0.18.0/src/wikiskill/sealqa/__init__.py +0 -0
- briefloop-0.18.0/src/wikiskill/sealqa/loop.py +302 -0
- briefloop-0.18.0/src/wikiskill/sealqa/rollout.py +183 -0
- briefloop-0.18.0/src/wikiskill/settings.py +6 -0
- briefloop-0.18.0/src/wikiskill/skill_proposer.py +76 -0
- briefloop-0.18.0/src/wikiskill/spreadsheet/__init__.py +0 -0
- briefloop-0.18.0/src/wikiskill/spreadsheet/loop.py +331 -0
- briefloop-0.18.0/src/wikiskill/spreadsheet/rollout.py +201 -0
- briefloop-0.18.0/src/wikiskill/spreadsheet/study.py +716 -0
- briefloop-0.18.0/src/wikiskill/tool_audit.py +76 -0
- briefloop-0.18.0/src/wikiskill/wiki.py +147 -0
- briefloop-0.18.0/src/wikiskill/wiki_maintainer.py +223 -0
- briefloop-0.18.0/start.sh +4 -0
- briefloop-0.18.0/tests/test_agent_backend.py +122 -0
- briefloop-0.18.0/tests/test_assessment_admission_recovery.py +52 -0
- briefloop-0.18.0/tests/test_bridge_harness.py +72 -0
- briefloop-0.18.0/tests/test_chat_model_selection.py +66 -0
- briefloop-0.18.0/tests/test_core.py +100 -0
- briefloop-0.18.0/tests/test_cross_module_regressions.py +82 -0
- briefloop-0.18.0/tests/test_delivery_checks.py +102 -0
- briefloop-0.18.0/tests/test_evidence.py +95 -0
- briefloop-0.18.0/tests/test_execution_records.py +52 -0
- briefloop-0.18.0/tests/test_figure_exports.py +84 -0
- briefloop-0.18.0/tests/test_figure_flow.py +46 -0
- briefloop-0.18.0/tests/test_figures.py +83 -0
- briefloop-0.18.0/tests/test_harness.py +177 -0
- briefloop-0.18.0/tests/test_host_bins.py +16 -0
- briefloop-0.18.0/tests/test_industry_export.py +51 -0
- briefloop-0.18.0/tests/test_industry_flow.py +72 -0
- briefloop-0.18.0/tests/test_industry_research.py +57 -0
- briefloop-0.18.0/tests/test_interactive_runtime.py +222 -0
- briefloop-0.18.0/tests/test_length.py +44 -0
- briefloop-0.18.0/tests/test_media_sources.py +109 -0
- briefloop-0.18.0/tests/test_multimodal_harness.py +120 -0
- briefloop-0.18.0/tests/test_multimodal_http.py +32 -0
- briefloop-0.18.0/tests/test_opencode_harness.py +418 -0
- briefloop-0.18.0/tests/test_opencode_provider.py +69 -0
- briefloop-0.18.0/tests/test_pr593_roundtrip.py +66 -0
- briefloop-0.18.0/tests/test_progress.py +18 -0
- briefloop-0.18.0/tests/test_public_research.py +123 -0
- briefloop-0.18.0/tests/test_reader_contract.py +142 -0
- briefloop-0.18.0/tests/test_reader_workflow.py +91 -0
- briefloop-0.18.0/tests/test_release.py +609 -0
- briefloop-0.18.0/tests/test_report_path_regressions.py +57 -0
- briefloop-0.18.0/tests/test_research_budget.py +94 -0
- briefloop-0.18.0/tests/test_resume_in_place.py +20 -0
- briefloop-0.18.0/tests/test_review.py +264 -0
- briefloop-0.18.0/tests/test_review_learning.py +144 -0
- briefloop-0.18.0/tests/test_review_schema_drift.py +41 -0
- briefloop-0.18.0/tests/test_review_visual_input.py +109 -0
- briefloop-0.18.0/tests/test_rich_document.py +175 -0
- briefloop-0.18.0/tests/test_role_models.py +165 -0
- briefloop-0.18.0/tests/test_runtime_settlement.py +206 -0
- briefloop-0.18.0/tests/test_source_recovery_regressions.py +42 -0
- briefloop-0.18.0/tests/test_source_updates.py +159 -0
- briefloop-0.18.0/tests/test_sources_provenance.py +69 -0
- briefloop-0.18.0/tests/test_task_notify.py +83 -0
- briefloop-0.18.0/tests/test_tavily.py +63 -0
- briefloop-0.18.0/tests/test_templates.py +161 -0
- briefloop-0.18.0/tests/test_word_import.py +29 -0
- briefloop-0.18.0/tests/test_workspaces.py +55 -0
- briefloop-0.18.0/third_party/open-design/LICENSE +201 -0
- briefloop-0.18.0/third_party/open-design/NOTICE.md +29 -0
- briefloop-0.18.0/third_party/open-design/acp/constants.ts +60 -0
- briefloop-0.18.0/third_party/open-design/acp/json.ts +147 -0
- briefloop-0.18.0/third_party/open-design/acp/models.ts +324 -0
- briefloop-0.18.0/third_party/open-design/acp/rpc.ts +327 -0
- briefloop-0.18.0/third_party/open-design/acp/session-params.ts +107 -0
- briefloop-0.18.0/third_party/open-design/acp/types.ts +18 -0
- briefloop-0.18.0/third_party/open-design/byok-reference/byok-opencode.ts +281 -0
- briefloop-0.18.0/third_party/open-design/byok-reference/provider-models.ts +427 -0
- briefloop-0.18.0/third_party/open-design/core/index.ts +1 -0
- briefloop-0.18.0/third_party/open-design/core/json-line-stream.ts +319 -0
- briefloop-0.18.0/third_party/open-design/runtime-models/codex-models.ts +110 -0
- briefloop-0.18.0/third_party/open-design/runtime-models/fallbacks.json +156 -0
- briefloop-0.18.0/third_party/open-design/runtime-models/mmd-routes.ts +166 -0
- briefloop-0.18.0/third_party/open-design/runtime-models/models.ts +233 -0
- briefloop-0.18.0/third_party/open-design/runtime-models/opencode-models.ts +101 -0
- briefloop-0.15.2/LICENSE +0 -22
- briefloop-0.15.2/PKG-INFO +0 -585
- briefloop-0.15.2/README.md +0 -547
- briefloop-0.15.2/pyproject.toml +0 -123
- briefloop-0.15.2/setup.py +0 -5
- briefloop-0.15.2/src/briefloop.egg-info/PKG-INFO +0 -585
- briefloop-0.15.2/src/briefloop.egg-info/SOURCES.txt +0 -625
- briefloop-0.15.2/src/briefloop.egg-info/entry_points.txt +0 -3
- briefloop-0.15.2/src/briefloop.egg-info/requires.txt +0 -17
- briefloop-0.15.2/src/briefloop.egg-info/top_level.txt +0 -1
- briefloop-0.15.2/src/multi_agent_brief/__init__.py +0 -36
- briefloop-0.15.2/src/multi_agent_brief/analysis_blocks/__init__.py +0 -11
- briefloop-0.15.2/src/multi_agent_brief/analysis_blocks/builder.py +0 -206
- briefloop-0.15.2/src/multi_agent_brief/analysis_blocks/renderer.py +0 -237
- briefloop-0.15.2/src/multi_agent_brief/analysis_blocks/schemas.py +0 -52
- briefloop-0.15.2/src/multi_agent_brief/analysis_modules/__init__.py +0 -8
- briefloop-0.15.2/src/multi_agent_brief/analysis_modules/base.py +0 -87
- briefloop-0.15.2/src/multi_agent_brief/analysis_modules/market_competitor/__init__.py +0 -68
- briefloop-0.15.2/src/multi_agent_brief/analysis_modules/market_competitor/auditor.py +0 -290
- briefloop-0.15.2/src/multi_agent_brief/analysis_modules/market_competitor/config.py +0 -187
- briefloop-0.15.2/src/multi_agent_brief/analysis_modules/market_competitor/event_builder.py +0 -226
- briefloop-0.15.2/src/multi_agent_brief/analysis_modules/market_competitor/renderer.py +0 -199
- briefloop-0.15.2/src/multi_agent_brief/analysis_modules/market_competitor/schemas.py +0 -518
- briefloop-0.15.2/src/multi_agent_brief/analysis_modules/policy_regulatory/__init__.py +0 -7
- briefloop-0.15.2/src/multi_agent_brief/analysis_modules/policy_regulatory/audit.py +0 -195
- briefloop-0.15.2/src/multi_agent_brief/analysis_modules/policy_regulatory/module.py +0 -387
- briefloop-0.15.2/src/multi_agent_brief/analysis_modules/policy_regulatory/schemas.py +0 -129
- briefloop-0.15.2/src/multi_agent_brief/analysis_modules/registry.py +0 -73
- briefloop-0.15.2/src/multi_agent_brief/audience/__init__.py +0 -19
- briefloop-0.15.2/src/multi_agent_brief/audience/profiles.py +0 -246
- briefloop-0.15.2/src/multi_agent_brief/audience_memory/__init__.py +0 -23
- briefloop-0.15.2/src/multi_agent_brief/audience_memory/profile.py +0 -358
- briefloop-0.15.2/src/multi_agent_brief/audit/__init__.py +0 -36
- briefloop-0.15.2/src/multi_agent_brief/audit/case_applicability.py +0 -181
- briefloop-0.15.2/src/multi_agent_brief/audit/deterministic.py +0 -471
- briefloop-0.15.2/src/multi_agent_brief/audit/editorial_governance.py +0 -404
- briefloop-0.15.2/src/multi_agent_brief/audit/final_quality.py +0 -764
- briefloop-0.15.2/src/multi_agent_brief/audit/harness.py +0 -263
- briefloop-0.15.2/src/multi_agent_brief/audit/interfaces.py +0 -96
- briefloop-0.15.2/src/multi_agent_brief/audit/limitation_hygiene.py +0 -238
- briefloop-0.15.2/src/multi_agent_brief/audit/proposal_boundary.py +0 -34
- briefloop-0.15.2/src/multi_agent_brief/audit/redaction.py +0 -27
- briefloop-0.15.2/src/multi_agent_brief/audit/rule_packs.py +0 -96
- briefloop-0.15.2/src/multi_agent_brief/audit/semantic.py +0 -435
- briefloop-0.15.2/src/multi_agent_brief/capabilities/__init__.py +0 -22
- briefloop-0.15.2/src/multi_agent_brief/capabilities/catalog.py +0 -215
- briefloop-0.15.2/src/multi_agent_brief/capabilities/detect.py +0 -199
- briefloop-0.15.2/src/multi_agent_brief/capabilities/models.py +0 -60
- briefloop-0.15.2/src/multi_agent_brief/capabilities/recommend.py +0 -206
- briefloop-0.15.2/src/multi_agent_brief/cli/__init__.py +0 -2
- briefloop-0.15.2/src/multi_agent_brief/cli/authority_guard.py +0 -96
- briefloop-0.15.2/src/multi_agent_brief/cli/capability_commands.py +0 -548
- briefloop-0.15.2/src/multi_agent_brief/cli/competitors_commands.py +0 -182
- briefloop-0.15.2/src/multi_agent_brief/cli/contract_commands.py +0 -90
- briefloop-0.15.2/src/multi_agent_brief/cli/core_v2_commands.py +0 -206
- briefloop-0.15.2/src/multi_agent_brief/cli/experiments_commands.py +0 -787
- briefloop-0.15.2/src/multi_agent_brief/cli/init_commands.py +0 -617
- briefloop-0.15.2/src/multi_agent_brief/cli/init_wizard.py +0 -1554
- briefloop-0.15.2/src/multi_agent_brief/cli/intake_v2_commands.py +0 -50
- briefloop-0.15.2/src/multi_agent_brief/cli/main.py +0 -197
- briefloop-0.15.2/src/multi_agent_brief/cli/onboard_commands.py +0 -216
- briefloop-0.15.2/src/multi_agent_brief/cli/product_commands.py +0 -1780
- briefloop-0.15.2/src/multi_agent_brief/cli/run_commands.py +0 -210
- briefloop-0.15.2/src/multi_agent_brief/cli/runtime_commands.py +0 -311
- briefloop-0.15.2/src/multi_agent_brief/cli/secrets_commands.py +0 -270
- briefloop-0.15.2/src/multi_agent_brief/cli/sources_commands.py +0 -235
- briefloop-0.15.2/src/multi_agent_brief/cli/status_commands.py +0 -39
- briefloop-0.15.2/src/multi_agent_brief/configs/artifact_contracts.yaml +0 -499
- briefloop-0.15.2/src/multi_agent_brief/configs/orchestrator_contract.yaml +0 -180
- briefloop-0.15.2/src/multi_agent_brief/configs/policy_packs/default.yaml +0 -65
- briefloop-0.15.2/src/multi_agent_brief/configs/policy_profiles/evidence_extract_default.yaml +0 -58
- briefloop-0.15.2/src/multi_agent_brief/configs/policy_profiles/finance_default.yaml +0 -44
- briefloop-0.15.2/src/multi_agent_brief/configs/policy_profiles/internet_default.yaml +0 -44
- briefloop-0.15.2/src/multi_agent_brief/configs/policy_profiles/manufacturing_default.yaml +0 -33
- briefloop-0.15.2/src/multi_agent_brief/configs/policy_profiles/solar_manufacturing_default.yaml +0 -64
- briefloop-0.15.2/src/multi_agent_brief/configs/report_packs/evidence_extract.yaml +0 -48
- briefloop-0.15.2/src/multi_agent_brief/configs/report_packs/management_monthly.yaml +0 -36
- briefloop-0.15.2/src/multi_agent_brief/configs/report_packs/market_weekly.yaml +0 -36
- briefloop-0.15.2/src/multi_agent_brief/configs/report_packs/solar_industry_periodic.yaml +0 -50
- briefloop-0.15.2/src/multi_agent_brief/configs/report_templates/evidence_extract.yaml +0 -55
- briefloop-0.15.2/src/multi_agent_brief/configs/report_templates/management_monthly.yaml +0 -48
- briefloop-0.15.2/src/multi_agent_brief/configs/report_templates/market_weekly.yaml +0 -49
- briefloop-0.15.2/src/multi_agent_brief/configs/report_templates/solar_industry_periodic.yaml +0 -75
- briefloop-0.15.2/src/multi_agent_brief/configs/stage_specs.yaml +0 -180
- briefloop-0.15.2/src/multi_agent_brief/contracts/__init__.py +0 -236
- briefloop-0.15.2/src/multi_agent_brief/contracts/agent_artifact_intake.py +0 -1368
- briefloop-0.15.2/src/multi_agent_brief/contracts/artifact_paths.py +0 -159
- briefloop-0.15.2/src/multi_agent_brief/contracts/base.py +0 -136
- briefloop-0.15.2/src/multi_agent_brief/contracts/errors.py +0 -119
- briefloop-0.15.2/src/multi_agent_brief/contracts/json.py +0 -56
- briefloop-0.15.2/src/multi_agent_brief/contracts/migrations/__init__.py +0 -5
- briefloop-0.15.2/src/multi_agent_brief/contracts/migrations/claim_v1_to_v2.py +0 -33
- briefloop-0.15.2/src/multi_agent_brief/contracts/registry.py +0 -159
- briefloop-0.15.2/src/multi_agent_brief/contracts/role_topology.py +0 -28
- briefloop-0.15.2/src/multi_agent_brief/contracts/runtime_contracts.py +0 -806
- briefloop-0.15.2/src/multi_agent_brief/contracts/runtime_errors.py +0 -68
- briefloop-0.15.2/src/multi_agent_brief/contracts/schemas/__init__.py +0 -23
- briefloop-0.15.2/src/multi_agent_brief/contracts/schemas/atomic_claim_graph.py +0 -304
- briefloop-0.15.2/src/multi_agent_brief/contracts/schemas/audit_report.py +0 -80
- briefloop-0.15.2/src/multi_agent_brief/contracts/schemas/claim.py +0 -197
- briefloop-0.15.2/src/multi_agent_brief/contracts/schemas/claim_draft.py +0 -386
- briefloop-0.15.2/src/multi_agent_brief/contracts/schemas/claim_support_matrix.py +0 -334
- briefloop-0.15.2/src/multi_agent_brief/contracts/schemas/evidence_span_registry.py +0 -270
- briefloop-0.15.2/src/multi_agent_brief/contracts/schemas/policy_profile.py +0 -247
- briefloop-0.15.2/src/multi_agent_brief/contracts/schemas/report_spec.py +0 -257
- briefloop-0.15.2/src/multi_agent_brief/contracts/schemas/semantic_assessment_report.py +0 -480
- briefloop-0.15.2/src/multi_agent_brief/contracts/semantic_assessment_status.py +0 -12
- briefloop-0.15.2/src/multi_agent_brief/contracts/source_metadata.py +0 -252
- briefloop-0.15.2/src/multi_agent_brief/contracts/v2.py +0 -5401
- briefloop-0.15.2/src/multi_agent_brief/contracts/validator.py +0 -225
- briefloop-0.15.2/src/multi_agent_brief/control_store/__init__.py +0 -34
- briefloop-0.15.2/src/multi_agent_brief/control_store/backup.py +0 -207
- briefloop-0.15.2/src/multi_agent_brief/control_store/errors.py +0 -46
- briefloop-0.15.2/src/multi_agent_brief/control_store/migrations/0001.sql +0 -379
- briefloop-0.15.2/src/multi_agent_brief/control_store/migrations/0002.sql +0 -421
- briefloop-0.15.2/src/multi_agent_brief/control_store/migrations/0003.sql +0 -359
- briefloop-0.15.2/src/multi_agent_brief/control_store/migrations/0004.sql +0 -301
- briefloop-0.15.2/src/multi_agent_brief/control_store/migrations/0005.sql +0 -215
- briefloop-0.15.2/src/multi_agent_brief/control_store/migrations/0006.sql +0 -75
- briefloop-0.15.2/src/multi_agent_brief/control_store/schema.py +0 -188
- briefloop-0.15.2/src/multi_agent_brief/control_store/serialization.py +0 -105
- briefloop-0.15.2/src/multi_agent_brief/control_store/sqlite_store.py +0 -6756
- briefloop-0.15.2/src/multi_agent_brief/control_store/uow.py +0 -757
- briefloop-0.15.2/src/multi_agent_brief/controls/__init__.py +0 -13
- briefloop-0.15.2/src/multi_agent_brief/controls/contract.py +0 -106
- briefloop-0.15.2/src/multi_agent_brief/core/__init__.py +0 -2
- briefloop-0.15.2/src/multi_agent_brief/core/citations.py +0 -336
- briefloop-0.15.2/src/multi_agent_brief/core/claim_ledger.py +0 -94
- briefloop-0.15.2/src/multi_agent_brief/core/config.py +0 -191
- briefloop-0.15.2/src/multi_agent_brief/core/env.py +0 -69
- briefloop-0.15.2/src/multi_agent_brief/core/schemas.py +0 -181
- briefloop-0.15.2/src/multi_agent_brief/core_run_v2/__init__.py +0 -37
- briefloop-0.15.2/src/multi_agent_brief/core_run_v2/artifacts.py +0 -744
- briefloop-0.15.2/src/multi_agent_brief/core_run_v2/checkout.py +0 -449
- briefloop-0.15.2/src/multi_agent_brief/core_run_v2/claims.py +0 -508
- briefloop-0.15.2/src/multi_agent_brief/core_run_v2/errors.py +0 -113
- briefloop-0.15.2/src/multi_agent_brief/core_run_v2/gates.py +0 -992
- briefloop-0.15.2/src/multi_agent_brief/core_run_v2/integrity.py +0 -581
- briefloop-0.15.2/src/multi_agent_brief/core_run_v2/lineage.py +0 -577
- briefloop-0.15.2/src/multi_agent_brief/core_run_v2/next_action.py +0 -680
- briefloop-0.15.2/src/multi_agent_brief/core_run_v2/policy.py +0 -342
- briefloop-0.15.2/src/multi_agent_brief/core_run_v2/publication.py +0 -410
- briefloop-0.15.2/src/multi_agent_brief/core_run_v2/publication_platform.py +0 -385
- briefloop-0.15.2/src/multi_agent_brief/core_run_v2/recovery.py +0 -1837
- briefloop-0.15.2/src/multi_agent_brief/core_run_v2/service.py +0 -2218
- briefloop-0.15.2/src/multi_agent_brief/core_run_v2/terminal.py +0 -1779
- briefloop-0.15.2/src/multi_agent_brief/core_run_v2/verifier.py +0 -4478
- briefloop-0.15.2/src/multi_agent_brief/delivery/__init__.py +0 -6
- briefloop-0.15.2/src/multi_agent_brief/delivery/artifact_policy.py +0 -20
- briefloop-0.15.2/src/multi_agent_brief/delivery/base.py +0 -36
- briefloop-0.15.2/src/multi_agent_brief/delivery/feishu.py +0 -204
- briefloop-0.15.2/src/multi_agent_brief/delivery/gws.py +0 -237
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/__init__.py +0 -8
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/approved_guidance_materialized/workspace/config.yaml +0 -18
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/approved_guidance_materialized/workspace/improvement/ledger.jsonl +0 -2
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/approved_guidance_materialized/workspace/sources.yaml +0 -2
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/approved_guidance_materialized/workspace/user.md +0 -4
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/company_event_missing_latest_official_check/workspace/config.yaml +0 -13
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/company_event_missing_latest_official_check/workspace/sources.yaml +0 -9
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/company_event_missing_latest_official_check/workspace/user.md +0 -4
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/control_switchboard_selection_is_not_execution/workspace/config.yaml +0 -12
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/control_switchboard_selection_is_not_execution/workspace/sources.yaml +0 -6
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/control_switchboard_selection_is_not_execution/workspace/user.md +0 -4
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/feedback_triage_required/workspace/config.yaml +0 -6
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/feedback_triage_required/workspace/input/human_feedback.md +0 -1
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/feedback_triage_required/workspace/sources.yaml +0 -2
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/feedback_triage_required/workspace/user.md +0 -3
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/final_abstract_quality_warning_surface/workspace/config.yaml +0 -8
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/final_abstract_quality_warning_surface/workspace/output/brief.md +0 -14
- 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
- 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
- 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
- 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
- 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
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/final_abstract_quality_warning_surface/workspace/sources.yaml +0 -2
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/final_abstract_quality_warning_surface/workspace/user.md +0 -3
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/formal_release_missing_human_approval/workspace/config.yaml +0 -13
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/formal_release_missing_human_approval/workspace/sources.yaml +0 -9
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/formal_release_missing_human_approval/workspace/user.md +0 -4
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/guidance_manifestation_not_observable/workspace/config.yaml +0 -4
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/guidance_manifestation_not_observable/workspace/sources.yaml +0 -2
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/guidance_manifestation_not_observable/workspace/user.md +0 -3
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/media_only_legal_policy_blocks_research_review/workspace/config.yaml +0 -13
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/media_only_legal_policy_blocks_research_review/workspace/sources.yaml +0 -9
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/media_only_legal_policy_blocks_research_review/workspace/user.md +0 -4
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/mixed_metric_scope_support_blocker/workspace/config.yaml +0 -13
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/mixed_metric_scope_support_blocker/workspace/sources.yaml +0 -9
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/mixed_metric_scope_support_blocker/workspace/user.md +0 -5
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/planned_blocking_issue_cannot_continue/workspace/config.yaml +0 -6
- 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
- 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
- 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
- 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
- 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
- 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
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/planned_blocking_issue_cannot_continue/workspace/sources.yaml +0 -2
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/planned_blocking_issue_cannot_continue/workspace/user.md +0 -3
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/provenance_projection_minimal/workspace/config.yaml +0 -8
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/provenance_projection_minimal/workspace/output/intermediate/audit_report.json +0 -1
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/provenance_projection_minimal/workspace/output/intermediate/audited_brief.md +0 -3
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/provenance_projection_minimal/workspace/output/intermediate/candidate_claims.json +0 -1
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/provenance_projection_minimal/workspace/output/intermediate/claim_ledger.json +0 -11
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/provenance_projection_minimal/workspace/output/intermediate/quality_gate_report.json +0 -22
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/provenance_projection_minimal/workspace/output/intermediate/screened_candidates.json +0 -1
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/provenance_projection_minimal/workspace/sources.yaml +0 -2
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/provenance_projection_minimal/workspace/user.md +0 -3
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_clean_failed_no_delivery_promotion/workspace/config.yaml +0 -6
- 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
- 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
- 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
- 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
- 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
- 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
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_clean_failed_no_delivery_promotion/workspace/sources.yaml +0 -9
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_clean_failed_no_delivery_promotion/workspace/user.md +0 -5
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_source_appendix/workspace/config.yaml +0 -13
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_source_appendix/workspace/output/intermediate/audit_report.json +0 -1
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_source_appendix/workspace/output/intermediate/audited_brief.md +0 -5
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_source_appendix/workspace/output/intermediate/candidate_claims.json +0 -1
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_source_appendix/workspace/output/intermediate/claim_ledger.json +0 -40
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_source_appendix/workspace/output/intermediate/screened_candidates.json +0 -1
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_source_appendix/workspace/sources.yaml +0 -3
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_source_appendix/workspace/user.md +0 -3
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_target_relevance/workspace/config.yaml +0 -8
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_target_relevance/workspace/output/brief.md +0 -3
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_target_relevance/workspace/output/intermediate/audit_report.json +0 -1
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_target_relevance/workspace/output/intermediate/audited_brief.md +0 -3
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_target_relevance/workspace/output/intermediate/candidate_claims.json +0 -1
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_target_relevance/workspace/output/intermediate/claim_ledger.json +0 -13
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_target_relevance/workspace/output/intermediate/screened_candidates.json +0 -1
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_target_relevance/workspace/sources.yaml +0 -2
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reader_facing_target_relevance/workspace/user.md +0 -3
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/release_readiness_forged_event_blocker/workspace/config.yaml +0 -13
- 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
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/release_readiness_forged_event_blocker/workspace/sources.yaml +0 -9
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/release_readiness_forged_event_blocker/workspace/user.md +0 -4
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reverted_entry_removed_from_next_snapshot/workspace/config.yaml +0 -18
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reverted_entry_removed_from_next_snapshot/workspace/improvement/ledger.jsonl +0 -3
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reverted_entry_removed_from_next_snapshot/workspace/improvement/memory.md +0 -3
- 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
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reverted_entry_removed_from_next_snapshot/workspace/sources.yaml +0 -2
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/reverted_entry_removed_from_next_snapshot/workspace/user.md +0 -4
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/config.yaml +0 -12
- 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
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/output/brief.md +0 -37
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/output/delivery/brief.md +0 -37
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/output/source_appendix.md +0 -12
- 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
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/report_spec.yaml +0 -24
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/sources.yaml +0 -4
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/same_evidence_reader_quality_regression/workspace/user.md +0 -3
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/source_evidence_pack_blocks_non_evidence_file/workspace/config.yaml +0 -13
- 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
- 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
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/source_evidence_pack_blocks_non_evidence_file/workspace/sources.yaml +0 -9
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/source_evidence_pack_blocks_non_evidence_file/workspace/user.md +0 -4
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/stale_current_claim/workspace/config.yaml +0 -9
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/stale_current_claim/workspace/output/intermediate/audit_report.json +0 -1
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/stale_current_claim/workspace/output/intermediate/audited_brief.md +0 -3
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/stale_current_claim/workspace/output/intermediate/candidate_claims.json +0 -1
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/stale_current_claim/workspace/output/intermediate/claim_ledger.json +0 -13
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/stale_current_claim/workspace/output/intermediate/screened_candidates.json +0 -1
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/stale_current_claim/workspace/sources.yaml +0 -2
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/stale_current_claim/workspace/user.md +0 -3
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/third_party_price_snapshot_formal_block/workspace/config.yaml +0 -13
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/third_party_price_snapshot_formal_block/workspace/sources.yaml +0 -9
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/third_party_price_snapshot_formal_block/workspace/user.md +0 -4
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/trajectory_retry_budget_exhausted/workspace/config.yaml +0 -4
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/trajectory_retry_budget_exhausted/workspace/sources.yaml +0 -2
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/trajectory_retry_budget_exhausted/workspace/user.md +0 -3
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/unapproved_entry_not_materialized/workspace/config.yaml +0 -18
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/unapproved_entry_not_materialized/workspace/improvement/ledger.jsonl +0 -1
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/unapproved_entry_not_materialized/workspace/sources.yaml +0 -2
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/unapproved_entry_not_materialized/workspace/user.md +0 -4
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/unauthorized_institution_branding_blocks_release/workspace/config.yaml +0 -18
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/unauthorized_institution_branding_blocks_release/workspace/sources.yaml +0 -9
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/unauthorized_institution_branding_blocks_release/workspace/user.md +0 -5
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/unsupported_material_fact/workspace/config.yaml +0 -8
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/unsupported_material_fact/workspace/output/intermediate/audit_report.json +0 -1
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/unsupported_material_fact/workspace/output/intermediate/audited_brief.md +0 -8
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/unsupported_material_fact/workspace/output/intermediate/candidate_claims.json +0 -1
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/unsupported_material_fact/workspace/output/intermediate/claim_ledger.json +0 -1
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/unsupported_material_fact/workspace/output/intermediate/screened_candidates.json +0 -1
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/unsupported_material_fact/workspace/sources.yaml +0 -2
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/cases/unsupported_material_fact/workspace/user.md +0 -3
- briefloop-0.15.2/src/multi_agent_brief/evaluation_cases/fixtures/manifest.yaml +0 -867
- briefloop-0.15.2/src/multi_agent_brief/experiments/__init__.py +0 -2
- briefloop-0.15.2/src/multi_agent_brief/experiments/a2_isolation.py +0 -268
- briefloop-0.15.2/src/multi_agent_brief/inputs/__init__.py +0 -2
- briefloop-0.15.2/src/multi_agent_brief/inputs/classifier.py +0 -322
- briefloop-0.15.2/src/multi_agent_brief/inputs/contracts.py +0 -59
- briefloop-0.15.2/src/multi_agent_brief/inputs/extractor.py +0 -310
- briefloop-0.15.2/src/multi_agent_brief/install/__init__.py +0 -2
- briefloop-0.15.2/src/multi_agent_brief/install/writer.py +0 -97
- briefloop-0.15.2/src/multi_agent_brief/intake_v2/__init__.py +0 -17
- briefloop-0.15.2/src/multi_agent_brief/intake_v2/errors.py +0 -75
- briefloop-0.15.2/src/multi_agent_brief/intake_v2/policy.py +0 -216
- briefloop-0.15.2/src/multi_agent_brief/intake_v2/scratch.py +0 -197
- briefloop-0.15.2/src/multi_agent_brief/intake_v2/service.py +0 -1626
- briefloop-0.15.2/src/multi_agent_brief/onboarding/__init__.py +0 -11
- briefloop-0.15.2/src/multi_agent_brief/onboarding/io.py +0 -103
- briefloop-0.15.2/src/multi_agent_brief/onboarding/mapper.py +0 -483
- briefloop-0.15.2/src/multi_agent_brief/onboarding/schema.py +0 -46
- briefloop-0.15.2/src/multi_agent_brief/orchestrator/__init__.py +0 -2
- briefloop-0.15.2/src/multi_agent_brief/orchestrator/source_evidence.py +0 -43
- briefloop-0.15.2/src/multi_agent_brief/orchestrator_contract.py +0 -122
- briefloop-0.15.2/src/multi_agent_brief/outputs/__init__.py +0 -2
- briefloop-0.15.2/src/multi_agent_brief/outputs/atomic_claim_graph_validation.py +0 -96
- briefloop-0.15.2/src/multi_agent_brief/outputs/atomic_reader_projection.py +0 -305
- briefloop-0.15.2/src/multi_agent_brief/outputs/evidence_span_validation.py +0 -233
- briefloop-0.15.2/src/multi_agent_brief/outputs/finalize.py +0 -1469
- briefloop-0.15.2/src/multi_agent_brief/outputs/ib_docx.py +0 -983
- briefloop-0.15.2/src/multi_agent_brief/outputs/naming.py +0 -38
- briefloop-0.15.2/src/multi_agent_brief/outputs/reader_final_gate.py +0 -614
- briefloop-0.15.2/src/multi_agent_brief/outputs/reader_projection.py +0 -567
- briefloop-0.15.2/src/multi_agent_brief/outputs/source_appendix.py +0 -765
- briefloop-0.15.2/src/multi_agent_brief/outputs/templates/__init__.py +0 -112
- briefloop-0.15.2/src/multi_agent_brief/product/__init__.py +0 -49
- briefloop-0.15.2/src/multi_agent_brief/product/brief_html/__init__.py +0 -27
- briefloop-0.15.2/src/multi_agent_brief/product/brief_html/builder.py +0 -304
- briefloop-0.15.2/src/multi_agent_brief/product/brief_html/render.py +0 -184
- briefloop-0.15.2/src/multi_agent_brief/product/brief_html/static/THIRD_PARTY_NOTICES.txt +0 -32
- briefloop-0.15.2/src/multi_agent_brief/product/brief_html/static/app.js +0 -550
- briefloop-0.15.2/src/multi_agent_brief/product/brief_html/static/index.html +0 -51
- briefloop-0.15.2/src/multi_agent_brief/product/brief_html/static/provenance.json +0 -18
- briefloop-0.15.2/src/multi_agent_brief/product/brief_html/static/style.css +0 -825
- briefloop-0.15.2/src/multi_agent_brief/product/bundle_projection.py +0 -686
- briefloop-0.15.2/src/multi_agent_brief/product/citation_profile.py +0 -145
- briefloop-0.15.2/src/multi_agent_brief/product/init_web/__init__.py +0 -13
- briefloop-0.15.2/src/multi_agent_brief/product/init_web/server.py +0 -244
- briefloop-0.15.2/src/multi_agent_brief/product/init_web/static/THIRD_PARTY_NOTICES.txt +0 -32
- briefloop-0.15.2/src/multi_agent_brief/product/init_web/static/app.js +0 -1281
- briefloop-0.15.2/src/multi_agent_brief/product/init_web/static/index.html +0 -80
- briefloop-0.15.2/src/multi_agent_brief/product/init_web/static/provenance.json +0 -18
- briefloop-0.15.2/src/multi_agent_brief/product/init_web/static/style.css +0 -715
- briefloop-0.15.2/src/multi_agent_brief/product/init_web/submit.py +0 -262
- briefloop-0.15.2/src/multi_agent_brief/product/materiality_selection.py +0 -475
- briefloop-0.15.2/src/multi_agent_brief/product/policy_gate_adapter.py +0 -116
- briefloop-0.15.2/src/multi_agent_brief/product/policy_profile.py +0 -39
- briefloop-0.15.2/src/multi_agent_brief/product/policy_projection.py +0 -161
- briefloop-0.15.2/src/multi_agent_brief/product/policy_registry.py +0 -83
- briefloop-0.15.2/src/multi_agent_brief/product/policy_resolver.py +0 -225
- briefloop-0.15.2/src/multi_agent_brief/product/quality_closeout.py +0 -188
- briefloop-0.15.2/src/multi_agent_brief/product/quality_panel.py +0 -2329
- briefloop-0.15.2/src/multi_agent_brief/product/report_pack.py +0 -130
- briefloop-0.15.2/src/multi_agent_brief/product/report_pack_aliases.py +0 -68
- briefloop-0.15.2/src/multi_agent_brief/product/report_registry.py +0 -101
- briefloop-0.15.2/src/multi_agent_brief/product/report_spec.py +0 -181
- briefloop-0.15.2/src/multi_agent_brief/product/review_session/__init__.py +0 -28
- briefloop-0.15.2/src/multi_agent_brief/product/review_session/contracts.py +0 -323
- briefloop-0.15.2/src/multi_agent_brief/product/review_session/launcher.py +0 -51
- briefloop-0.15.2/src/multi_agent_brief/product/review_session/resources.py +0 -43
- briefloop-0.15.2/src/multi_agent_brief/product/review_session/serialization.py +0 -42
- briefloop-0.15.2/src/multi_agent_brief/product/review_session/server.py +0 -299
- briefloop-0.15.2/src/multi_agent_brief/product/review_session/static/THIRD_PARTY_NOTICES.txt +0 -32
- briefloop-0.15.2/src/multi_agent_brief/product/review_session/static/app.js +0 -15
- briefloop-0.15.2/src/multi_agent_brief/product/review_session/static/index.html +0 -33
- briefloop-0.15.2/src/multi_agent_brief/product/review_session/static/provenance.json +0 -22
- briefloop-0.15.2/src/multi_agent_brief/product/review_session/static/style.css +0 -2
- briefloop-0.15.2/src/multi_agent_brief/product/review_session/static_qp.py +0 -60
- briefloop-0.15.2/src/multi_agent_brief/product/template_conformance.py +0 -516
- briefloop-0.15.2/src/multi_agent_brief/product/template_projection.py +0 -123
- briefloop-0.15.2/src/multi_agent_brief/product/template_registry.py +0 -244
- briefloop-0.15.2/src/multi_agent_brief/product/template_render_plan.py +0 -315
- briefloop-0.15.2/src/multi_agent_brief/product/template_renderer.py +0 -224
- briefloop-0.15.2/src/multi_agent_brief/product/trajectory_regulation.py +0 -441
- briefloop-0.15.2/src/multi_agent_brief/provenance/__init__.py +0 -5
- briefloop-0.15.2/src/multi_agent_brief/provenance/contract.py +0 -21
- briefloop-0.15.2/src/multi_agent_brief/provenance/io.py +0 -144
- briefloop-0.15.2/src/multi_agent_brief/provenance/model.py +0 -110
- briefloop-0.15.2/src/multi_agent_brief/provenance/references.py +0 -43
- briefloop-0.15.2/src/multi_agent_brief/provenance/validator.py +0 -135
- briefloop-0.15.2/src/multi_agent_brief/quality_gates/__init__.py +0 -19
- briefloop-0.15.2/src/multi_agent_brief/quality_gates/contract.py +0 -581
- briefloop-0.15.2/src/multi_agent_brief/quality_gates/evaluation.py +0 -1663
- briefloop-0.15.2/src/multi_agent_brief/runtime_assets.py +0 -238
- briefloop-0.15.2/src/multi_agent_brief/runtime_host_v2/__init__.py +0 -21
- briefloop-0.15.2/src/multi_agent_brief/runtime_host_v2/codex.py +0 -224
- briefloop-0.15.2/src/multi_agent_brief/runtime_host_v2/contracts.py +0 -249
- briefloop-0.15.2/src/multi_agent_brief/runtime_host_v2/errors.py +0 -8
- briefloop-0.15.2/src/multi_agent_brief/runtime_host_v2/initialization.py +0 -377
- briefloop-0.15.2/src/multi_agent_brief/runtime_host_v2/projections.py +0 -172
- briefloop-0.15.2/src/multi_agent_brief/runtime_host_v2/scratch.py +0 -371
- briefloop-0.15.2/src/multi_agent_brief/runtime_host_v2/service.py +0 -2444
- briefloop-0.15.2/src/multi_agent_brief/runtime_host_v2/source_routes.py +0 -299
- briefloop-0.15.2/src/multi_agent_brief/runtime_kits/codex/agents/briefloop-analyst.toml +0 -9
- briefloop-0.15.2/src/multi_agent_brief/runtime_kits/codex/agents/briefloop-auditor.toml +0 -9
- briefloop-0.15.2/src/multi_agent_brief/runtime_kits/codex/agents/briefloop-claim-ledger.toml +0 -9
- briefloop-0.15.2/src/multi_agent_brief/runtime_kits/codex/agents/briefloop-editor.toml +0 -9
- briefloop-0.15.2/src/multi_agent_brief/runtime_kits/codex/agents/briefloop-scout.toml +0 -9
- briefloop-0.15.2/src/multi_agent_brief/runtime_kits/codex/agents/briefloop-screener.toml +0 -9
- briefloop-0.15.2/src/multi_agent_brief/runtime_kits/codex/agents/briefloop-source-planner.toml +0 -9
- briefloop-0.15.2/src/multi_agent_brief/runtime_kits/codex/agents/briefloop-source-provider.toml +0 -9
- briefloop-0.15.2/src/multi_agent_brief/runtime_kits/codex/config.toml +0 -5
- briefloop-0.15.2/src/multi_agent_brief/runtime_kits/codex/skills/briefloop/SKILL.md +0 -33
- briefloop-0.15.2/src/multi_agent_brief/runtime_kits/codex/skills/briefloop/references/controlstore-v2.md +0 -214
- briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/__init__.py +0 -83
- briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/adapter.py +0 -677
- briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/adapters/__init__.py +0 -3
- briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/adapters/local_proxy_responses.py +0 -38
- briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/adapters/openai_responses.py +0 -588
- briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/adapters/synthetic_fixture.py +0 -257
- briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/admission.py +0 -410
- briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/archive.py +0 -1309
- briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/baseline.py +0 -375
- briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/baselines/structured_checklist_zh_v1.yaml +0 -21
- briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/composition.py +0 -462
- briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/contracts.py +0 -1591
- briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/demo.py +0 -138
- briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/errors.py +0 -143
- briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/fixtures/synthetic_shadow_v1/bounded_context.json +0 -1
- briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/fixtures/synthetic_shadow_v1/instrument.json +0 -1
- briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/fixtures/synthetic_shadow_v1/manifest.json +0 -1
- briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/fixtures/synthetic_shadow_v1/report.md +0 -13
- briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/instrument.py +0 -241
- briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/normalization.py +0 -415
- briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/parser.py +0 -225
- briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/post_final_bridge.py +0 -131
- briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/profile.py +0 -185
- briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/profiles/research_design_report_zh_v1.yaml +0 -319
- briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/prompt_sizer.py +0 -123
- briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/prompts/dimension_v1.txt +0 -19
- briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/prompts/system_v1.txt +0 -11
- briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/prompts.py +0 -311
- briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/reader.py +0 -610
- briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/resources.py +0 -66
- briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/runner.py +0 -984
- briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/serialization.py +0 -201
- briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/shadow_contracts.py +0 -576
- briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/snapshot.py +0 -154
- briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/study.py +0 -970
- briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/study_contracts.py +0 -462
- briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/unit_planner.py +0 -246
- briefloop-0.15.2/src/multi_agent_brief/semantic_evaluator/validator.py +0 -1394
- briefloop-0.15.2/src/multi_agent_brief/sources/__init__.py +0 -16
- briefloop-0.15.2/src/multi_agent_brief/sources/api_filings.py +0 -236
- briefloop-0.15.2/src/multi_agent_brief/sources/api_news.py +0 -173
- briefloop-0.15.2/src/multi_agent_brief/sources/base.py +0 -142
- briefloop-0.15.2/src/multi_agent_brief/sources/cached_package.py +0 -120
- briefloop-0.15.2/src/multi_agent_brief/sources/cli_provider.py +0 -263
- briefloop-0.15.2/src/multi_agent_brief/sources/decider.py +0 -756
- briefloop-0.15.2/src/multi_agent_brief/sources/doctor.py +0 -385
- briefloop-0.15.2/src/multi_agent_brief/sources/evidence_pack.py +0 -364
- briefloop-0.15.2/src/multi_agent_brief/sources/feishu_provider.py +0 -326
- briefloop-0.15.2/src/multi_agent_brief/sources/filing_resolver.py +0 -400
- briefloop-0.15.2/src/multi_agent_brief/sources/industry_packs.py +0 -130
- briefloop-0.15.2/src/multi_agent_brief/sources/join.py +0 -206
- briefloop-0.15.2/src/multi_agent_brief/sources/local_signal.py +0 -81
- briefloop-0.15.2/src/multi_agent_brief/sources/local_signal_planner.py +0 -636
- briefloop-0.15.2/src/multi_agent_brief/sources/manual.py +0 -259
- briefloop-0.15.2/src/multi_agent_brief/sources/mcp_provider.py +0 -309
- briefloop-0.15.2/src/multi_agent_brief/sources/mineru_provider.py +0 -601
- briefloop-0.15.2/src/multi_agent_brief/sources/normalizer.py +0 -95
- briefloop-0.15.2/src/multi_agent_brief/sources/opencli_provider.py +0 -282
- briefloop-0.15.2/src/multi_agent_brief/sources/planner.py +0 -178
- briefloop-0.15.2/src/multi_agent_brief/sources/registry.py +0 -367
- briefloop-0.15.2/src/multi_agent_brief/sources/rss.py +0 -190
- briefloop-0.15.2/src/multi_agent_brief/sources/search_backends/__init__.py +0 -31
- briefloop-0.15.2/src/multi_agent_brief/sources/search_backends/base.py +0 -51
- briefloop-0.15.2/src/multi_agent_brief/sources/search_backends/brave.py +0 -192
- briefloop-0.15.2/src/multi_agent_brief/sources/search_backends/capabilities.py +0 -94
- briefloop-0.15.2/src/multi_agent_brief/sources/search_backends/exa.py +0 -180
- briefloop-0.15.2/src/multi_agent_brief/sources/search_backends/firecrawl.py +0 -164
- briefloop-0.15.2/src/multi_agent_brief/sources/search_backends/serper.py +0 -241
- briefloop-0.15.2/src/multi_agent_brief/sources/search_backends/tavily.py +0 -124
- briefloop-0.15.2/src/multi_agent_brief/sources/sourcehub.py +0 -505
- briefloop-0.15.2/src/multi_agent_brief/sources/web_search.py +0 -267
- briefloop-0.15.2/src/multi_agent_brief/status.py +0 -341
- briefloop-0.15.2/src/multi_agent_brief/tools/__init__.py +0 -3
- briefloop-0.15.2/src/multi_agent_brief/tools/draft_cleanup.py +0 -197
- briefloop-0.15.2/src/multi_agent_brief/workspace/__init__.py +0 -1
- briefloop-0.15.2/src/multi_agent_brief/workspace/init_profile.py +0 -133
- briefloop-0.15.2/tests/test_069_e2e_stabilization.py +0 -122
- briefloop-0.15.2/tests/test_a2_isolation_preflight.py +0 -166
- briefloop-0.15.2/tests/test_agent_artifact_intake.py +0 -835
- briefloop-0.15.2/tests/test_agent_config_generation.py +0 -226
- briefloop-0.15.2/tests/test_agent_onboarding_docs.py +0 -75
- briefloop-0.15.2/tests/test_analysis_blocks.py +0 -284
- briefloop-0.15.2/tests/test_analysis_module_registry.py +0 -85
- briefloop-0.15.2/tests/test_architecture_reference_v04.py +0 -690
- briefloop-0.15.2/tests/test_atomic_reader_projection.py +0 -181
- briefloop-0.15.2/tests/test_audience_memory.py +0 -140
- briefloop-0.15.2/tests/test_audience_profiles.py +0 -280
- briefloop-0.15.2/tests/test_audit_semantic.py +0 -360
- briefloop-0.15.2/tests/test_b02_search_execution.py +0 -276
- briefloop-0.15.2/tests/test_b1416_date_numeric.py +0 -185
- briefloop-0.15.2/tests/test_brave_backend.py +0 -263
- briefloop-0.15.2/tests/test_brief_html_isolation.py +0 -124
- briefloop-0.15.2/tests/test_brief_html_packaging.py +0 -72
- briefloop-0.15.2/tests/test_brief_html_pages.py +0 -199
- briefloop-0.15.2/tests/test_brief_html_render.py +0 -155
- briefloop-0.15.2/tests/test_briefloop_skill_freshness.py +0 -80
- briefloop-0.15.2/tests/test_capabilities.py +0 -503
- briefloop-0.15.2/tests/test_case_applicability.py +0 -182
- briefloop-0.15.2/tests/test_checkout_publication_v2.py +0 -580
- briefloop-0.15.2/tests/test_checkout_revision_v2.py +0 -177
- briefloop-0.15.2/tests/test_ci_merge_gate.py +0 -260
- briefloop-0.15.2/tests/test_citation_parser_home.py +0 -82
- briefloop-0.15.2/tests/test_citations.py +0 -184
- briefloop-0.15.2/tests/test_claim_ledger.py +0 -60
- briefloop-0.15.2/tests/test_cli.py +0 -272
- briefloop-0.15.2/tests/test_competitor_onboarding.py +0 -123
- briefloop-0.15.2/tests/test_config_contract.py +0 -281
- briefloop-0.15.2/tests/test_config_language_compat.py +0 -62
- briefloop-0.15.2/tests/test_contract_commands.py +0 -432
- briefloop-0.15.2/tests/test_contract_registry.py +0 -322
- briefloop-0.15.2/tests/test_contracts.py +0 -1233
- briefloop-0.15.2/tests/test_control_contracts_v2.py +0 -631
- briefloop-0.15.2/tests/test_control_store.py +0 -2962
- briefloop-0.15.2/tests/test_control_store_intake_v2.py +0 -1546
- briefloop-0.15.2/tests/test_core_run_v2.py +0 -6217
- briefloop-0.15.2/tests/test_core_run_v2_next_action.py +0 -134
- briefloop-0.15.2/tests/test_core_run_v2_packaging.py +0 -827
- briefloop-0.15.2/tests/test_core_run_v2_recovery.py +0 -2640
- briefloop-0.15.2/tests/test_core_run_v2_terminal.py +0 -3310
- briefloop-0.15.2/tests/test_core_v2_commands.py +0 -561
- briefloop-0.15.2/tests/test_deterministic_audit.py +0 -148
- briefloop-0.15.2/tests/test_docs_archive_policy.py +0 -85
- briefloop-0.15.2/tests/test_doctor.py +0 -237
- briefloop-0.15.2/tests/test_docx_templates.py +0 -226
- briefloop-0.15.2/tests/test_editor_cleanup.py +0 -130
- briefloop-0.15.2/tests/test_editorial_governance.py +0 -279
- briefloop-0.15.2/tests/test_evidence_extract_pack.py +0 -310
- briefloop-0.15.2/tests/test_exa_backend.py +0 -331
- briefloop-0.15.2/tests/test_experiment_080_public_pilot.py +0 -79
- briefloop-0.15.2/tests/test_explicit_runtime_identity.py +0 -163
- briefloop-0.15.2/tests/test_fetch_github_review_comments.py +0 -86
- briefloop-0.15.2/tests/test_filing_resolver_provider.py +0 -376
- briefloop-0.15.2/tests/test_final_quality_audit.py +0 -335
- briefloop-0.15.2/tests/test_finalize_delivery_gate.py +0 -2296
- briefloop-0.15.2/tests/test_firecrawl_backend.py +0 -299
- briefloop-0.15.2/tests/test_generator_boundaries.py +0 -29
- briefloop-0.15.2/tests/test_init_from_onboarding.py +0 -353
- briefloop-0.15.2/tests/test_init_web_server.py +0 -291
- briefloop-0.15.2/tests/test_init_web_submit.py +0 -309
- briefloop-0.15.2/tests/test_input_classification_governance.py +0 -460
- briefloop-0.15.2/tests/test_install_scripts.py +0 -226
- briefloop-0.15.2/tests/test_install_writer.py +0 -117
- briefloop-0.15.2/tests/test_intake_v2_commands.py +0 -343
- briefloop-0.15.2/tests/test_launch_smoke.py +0 -128
- briefloop-0.15.2/tests/test_limitation_hygiene.py +0 -205
- briefloop-0.15.2/tests/test_local_signal.py +0 -607
- briefloop-0.15.2/tests/test_local_signal_provider.py +0 -144
- briefloop-0.15.2/tests/test_market_competitor_audit.py +0 -172
- briefloop-0.15.2/tests/test_market_competitor_config.py +0 -178
- briefloop-0.15.2/tests/test_market_competitor_events.py +0 -243
- briefloop-0.15.2/tests/test_market_competitor_schemas.py +0 -211
- briefloop-0.15.2/tests/test_materiality_selection.py +0 -406
- briefloop-0.15.2/tests/test_minimal_comparative_eval.py +0 -104
- briefloop-0.15.2/tests/test_onboard_commands.py +0 -35
- briefloop-0.15.2/tests/test_onboarding_mapper.py +0 -345
- briefloop-0.15.2/tests/test_orchestrator_contract_docs.py +0 -279
- briefloop-0.15.2/tests/test_package_version.py +0 -43
- briefloop-0.15.2/tests/test_policy_profile_dogfood_fixtures.py +0 -74
- briefloop-0.15.2/tests/test_policy_profiles.py +0 -498
- briefloop-0.15.2/tests/test_policy_regulatory_audit.py +0 -174
- briefloop-0.15.2/tests/test_policy_regulatory_module.py +0 -245
- briefloop-0.15.2/tests/test_post_final_review_contracts.py +0 -228
- briefloop-0.15.2/tests/test_post_final_review_isolation.py +0 -51
- briefloop-0.15.2/tests/test_post_final_review_packaging.py +0 -37
- briefloop-0.15.2/tests/test_post_final_review_session.py +0 -133
- briefloop-0.15.2/tests/test_product_baseline.py +0 -621
- briefloop-0.15.2/tests/test_public_product_rename.py +0 -447
- briefloop-0.15.2/tests/test_public_safety_scan.py +0 -368
- briefloop-0.15.2/tests/test_quality_harness.py +0 -47
- briefloop-0.15.2/tests/test_quality_panel.py +0 -487
- briefloop-0.15.2/tests/test_reader_final_gate.py +0 -369
- briefloop-0.15.2/tests/test_reader_projection.py +0 -352
- briefloop-0.15.2/tests/test_release_consistency.py +0 -488
- briefloop-0.15.2/tests/test_rendered_output_validation.py +0 -213
- briefloop-0.15.2/tests/test_report_bundles.py +0 -766
- briefloop-0.15.2/tests/test_report_packs.py +0 -715
- briefloop-0.15.2/tests/test_report_template_renderer.py +0 -83
- briefloop-0.15.2/tests/test_role_topology.py +0 -187
- briefloop-0.15.2/tests/test_rule_packs.py +0 -146
- briefloop-0.15.2/tests/test_runtime_assets.py +0 -246
- briefloop-0.15.2/tests/test_runtime_host_codex_v2.py +0 -1580
- briefloop-0.15.2/tests/test_runtime_host_codex_workspace_binding_v2.py +0 -377
- briefloop-0.15.2/tests/test_runtime_host_v2.py +0 -701
- briefloop-0.15.2/tests/test_semantic_assessment_dogfood_fixtures.py +0 -75
- briefloop-0.15.2/tests/test_semantic_evaluator_adapter.py +0 -562
- briefloop-0.15.2/tests/test_semantic_evaluator_admission.py +0 -1014
- briefloop-0.15.2/tests/test_semantic_evaluator_archive.py +0 -332
- briefloop-0.15.2/tests/test_semantic_evaluator_baseline.py +0 -1065
- briefloop-0.15.2/tests/test_semantic_evaluator_contracts.py +0 -184
- briefloop-0.15.2/tests/test_semantic_evaluator_demo.py +0 -62
- briefloop-0.15.2/tests/test_semantic_evaluator_e2e.py +0 -99
- briefloop-0.15.2/tests/test_semantic_evaluator_instrument.py +0 -303
- briefloop-0.15.2/tests/test_semantic_evaluator_isolation.py +0 -279
- briefloop-0.15.2/tests/test_semantic_evaluator_normalization.py +0 -205
- briefloop-0.15.2/tests/test_semantic_evaluator_packaging.py +0 -700
- briefloop-0.15.2/tests/test_semantic_evaluator_parser_validator.py +0 -1835
- briefloop-0.15.2/tests/test_semantic_evaluator_planner.py +0 -136
- briefloop-0.15.2/tests/test_semantic_evaluator_reader.py +0 -378
- briefloop-0.15.2/tests/test_semantic_evaluator_runner.py +0 -414
- briefloop-0.15.2/tests/test_semantic_evaluator_shadow_cli.py +0 -551
- briefloop-0.15.2/tests/test_semantic_evaluator_shadow_contracts.py +0 -138
- briefloop-0.15.2/tests/test_semantic_evaluator_study.py +0 -535
- briefloop-0.15.2/tests/test_serper_backend.py +0 -318
- briefloop-0.15.2/tests/test_skill_contracts.py +0 -76
- briefloop-0.15.2/tests/test_source_appendix.py +0 -763
- briefloop-0.15.2/tests/test_source_config_fix.py +0 -121
- briefloop-0.15.2/tests/test_source_decider.py +0 -730
- briefloop-0.15.2/tests/test_source_evidence_pack.py +0 -366
- briefloop-0.15.2/tests/test_source_join.py +0 -533
- briefloop-0.15.2/tests/test_source_providers.py +0 -1554
- briefloop-0.15.2/tests/test_sourcehub_lite.py +0 -260
- briefloop-0.15.2/tests/test_start_commands.py +0 -414
- briefloop-0.15.2/tests/test_status.py +0 -716
- briefloop-0.15.2/tests/test_subagent_first_contract.py +0 -91
- briefloop-0.15.2/tests/test_tavily_guidance.py +0 -527
- briefloop-0.15.2/tests/test_terms_and_docs.py +0 -101
- briefloop-0.15.2/tests/test_trajectory_regulation.py +0 -335
- briefloop-0.15.2/tests/test_v1_pilot_evidence.py +0 -246
- briefloop-0.15.2/tests/test_web_search_metadata.py +0 -142
- {briefloop-0.15.2 → briefloop-0.18.0}/setup.cfg +0 -0
- {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.
|