alphacouncil-agent 0.9.2 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (493) hide show
  1. package/.claude/commands/alpha.md +22 -3
  2. package/.claude-plugin/marketplace.json +3 -3
  3. package/.claude-plugin/plugin.json +2 -2
  4. package/.codex-plugin/plugin.json +4 -4
  5. package/.grok/commands/alpha.md +22 -3
  6. package/.opencode/command/alpha.md +22 -3
  7. package/AGENTS.md +42 -4
  8. package/CHANGELOG.md +164 -0
  9. package/CLAUDE.md +59 -7
  10. package/README.ja.md +25 -11
  11. package/README.md +44 -12
  12. package/README.zh-CN.md +37 -12
  13. package/commands/alpha.md +22 -3
  14. package/data/authored/core-seats.mjs +808 -0
  15. package/data/authored/growth-seats.mjs +581 -0
  16. package/data/authored/index.mjs +114 -0
  17. package/data/authored/quant-seats.mjs +564 -0
  18. package/data/authored/value-seats.mjs +663 -0
  19. package/data/build-profile.v1.json +2 -1
  20. package/data/council-evaluation-protocol.v1.json +7 -4
  21. package/data/master-selector-method-locales.v1.mjs +296 -0
  22. package/data/persona-v3-ai-assisted-solo-profile.v1.json +2 -2
  23. package/data/persona-v3-build-specs.v1.mjs +60 -3
  24. package/docs/INSTALL.md +43 -6
  25. package/docs/personas.md +2 -1
  26. package/docs/plans/v1.0-roadmap.md +487 -0
  27. package/docs/releases/v0.9.3.md +86 -0
  28. package/docs/releases/v0.9.4.md +79 -0
  29. package/docs/releases/v0.9.5.md +96 -0
  30. package/docs/releases/v1.0.0.md +164 -0
  31. package/docs/report-contract.md +75 -2
  32. package/knowledge/ai-assisted-solo/experiments/runs/a.json +13 -13
  33. package/knowledge/ai-assisted-solo/experiments/runs/b.json +2 -2
  34. package/knowledge/ai-assisted-solo/experiments/runs/c.json +2 -2
  35. package/knowledge/ai-assisted-solo/experiments/runs/d13.json +126 -126
  36. package/knowledge/ai-assisted-solo/experiments/runs/d26.json +274 -254
  37. package/knowledge/ai-assisted-solo/experiments/runs/e-d13.json +129 -129
  38. package/knowledge/ai-assisted-solo/experiments/runs/e-d26.json +277 -257
  39. package/knowledge/ai-assisted-solo/experiments/runs/h_ai_reference.json +278 -258
  40. package/knowledge/ai-assisted-solo/experiments/simulation-input.json +7278 -556
  41. package/knowledge/ai-assisted-solo/experiments/simulation-manifest.json +22 -22
  42. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_ackman/reviews/{change_value_bridge.ai-review.json → market_capitalisation.ai-review.json} +46 -46
  43. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_ackman/reviews/{power_map.ai-review.json → owner_earnings_yield.ai-review.json} +46 -46
  44. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_aschenbrenner/reviews/{compute_power_bridge.ai-review.json → market_capitalisation.ai-review.json} +46 -46
  45. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_aschenbrenner/reviews/{timeline_reverse_valuation.ai-review.json → price_implied_cash_yield.ai-review.json} +46 -46
  46. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_asness/reviews/{crowding_cost_stress.ai-review.json → nominal_earnings_yield_gap.ai-review.json} +49 -49
  47. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_asness/reviews/{factor_decomposer.ai-review.json → real_earnings_yield_gap.ai-review.json} +49 -49
  48. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_bogle/reviews/expected_return_over_long_bond.ai-review.json +277 -0
  49. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_bogle/reviews/fundamental_expected_return.ai-review.json +277 -0
  50. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_buffett/reviews/{incremental_returns.ai-review.json → market_capitalisation.ai-review.json} +46 -46
  51. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_buffett/reviews/{owner_earnings_rebuilder.ai-review.json → owner_earnings_yield.ai-review.json} +46 -46
  52. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_burry/reviews/{mispricing_carry.ai-review.json → net_current_asset_surplus_per_share.ai-review.json} +49 -49
  53. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_burry/reviews/{capital_structure_reader.ai-review.json → net_current_asset_value_per_share.ai-review.json} +46 -46
  54. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_cathie_wood/reviews/{cost_adoption_curve.ai-review.json → current_cash_yield.ai-review.json} +46 -46
  55. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_cathie_wood/reviews/{capture_valuation_bridge.ai-review.json → market_capitalisation.ai-review.json} +46 -46
  56. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_dalio/reviews/{debt_driver_stress.ai-review.json → policy_real_rate.ai-review.json} +49 -49
  57. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_dalio/reviews/{regime_classifier.ai-review.json → real_curve_slope.ai-review.json} +49 -49
  58. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_damodaran/reviews/{reverse_valuation.ai-review.json → implied_equity_risk_premium.ai-review.json} +49 -49
  59. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_damodaran/reviews/{story_dcf.ai-review.json → premium_versus_long_run_average.ai-review.json} +49 -49
  60. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_druckenmiller/reviews/{liquidity_revision_map.ai-review.json → liquidity_curve_impulse.ai-review.json} +49 -49
  61. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_druckenmiller/reviews/{inflection_payoff.ai-review.json → policy_real_rate.ai-review.json} +49 -49
  62. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_duan_yongping/reviews/{opportunity_cost.ai-review.json → five_year_opportunity_cost.ai-review.json} +46 -46
  63. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_duan_yongping/reviews/{user_value_evidence.ai-review.json → margin_retention.ai-review.json} +46 -46
  64. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_fisher/reviews/{research_productivity.ai-review.json → margin_retention.ai-review.json} +46 -46
  65. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_fisher/reviews/{scuttlebutt_graph.ai-review.json → reinvestment_spread.ai-review.json} +49 -49
  66. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_forensic_short/reviews/{borrow_catalyst.ai-review.json → cash_conversion_gap.ai-review.json} +49 -49
  67. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_forensic_short/reviews/{accounting_rebuilder.ai-review.json → cash_cover_of_leverage.ai-review.json} +46 -46
  68. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_graham/reviews/{asset_floor.ai-review.json → defensive_hurdle_base.ai-review.json} +46 -46
  69. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_graham/reviews/{normalized_earnings.ai-review.json → half_normalised_earnings_yield.ai-review.json} +46 -46
  70. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_jhunjhunwala/reviews/{penetration_liquidity.ai-review.json → cash_quality_gap.ai-review.json} +49 -49
  71. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_jhunjhunwala/reviews/{promoter_governance.ai-review.json → real_structural_growth.ai-review.json} +49 -49
  72. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_klarman/reviews/{recovery_waterfall.ai-review.json → downside_asset_coverage.ai-review.json} +46 -46
  73. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_klarman/reviews/{cash_catalyst_compare.ai-review.json → market_capitalisation.ai-review.json} +46 -46
  74. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_li_lu/reviews/{promise_integrity_ledger.ai-review.json → cash_backed_decade_return.ai-review.json} +46 -46
  75. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_li_lu/reviews/{ten_year_return_bridge.ai-review.json → decade_return_over_long_bond.ai-review.json} +49 -49
  76. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_lynch/reviews/{story_numbers_check.ai-review.json → growth_justified_capitalisation.ai-review.json} +46 -46
  77. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_lynch/reviews/{category_classifier.ai-review.json → market_capitalisation.ai-review.json} +46 -46
  78. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_marks/reviews/{cycle_temperature.ai-review.json → credit_cycle_position.ai-review.json} +49 -49
  79. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_marks/reviews/{implied_expectations.ai-review.json → equity_over_corporate_debt.ai-review.json} +49 -49
  80. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_munger/reviews/{failure_path_graph.ai-review.json → debt_service_cushion.ai-review.json} +49 -49
  81. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_munger/reviews/{incentive_map.ai-review.json → reported_earnings_cash_gap.ai-review.json} +49 -49
  82. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_natenberg/reviews/{surface_builder.ai-review.json → normalised_skew.ai-review.json} +46 -46
  83. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_natenberg/reviews/{greeks_payoff.ai-review.json → round_trip_cost.ai-review.json} +46 -46
  84. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_pabrai/reviews/{downside_floor.ai-review.json → downside_floor_coverage.ai-review.json} +46 -46
  85. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_pabrai/reviews/{discrete_payoff.ai-review.json → market_capitalisation.ai-review.json} +46 -46
  86. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_simons/reviews/{oos_cost_test.ai-review.json → absolute_session_move.ai-review.json} +42 -42
  87. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_simons/reviews/{leakage_audit.ai-review.json → session_move_over_implied.ai-review.json} +46 -46
  88. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_sinclair/reviews/{realized_vol_forecast.ai-review.json → round_trip_cost.ai-review.json} +46 -46
  89. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_sinclair/reviews/{net_edge_sizer.ai-review.json → volatility_per_unit_of_width.ai-review.json} +46 -46
  90. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_soros/reviews/{reversal_monitor.ai-review.json → credit_cycle_position.ai-review.json} +49 -49
  91. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_soros/reviews/{reflexivity_graph.ai-review.json → financing_burden.ai-review.json} +46 -46
  92. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_taleb/reviews/{tail_friction.ai-review.json → debt_service_cushion.ai-review.json} +49 -49
  93. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_taleb/reviews/{payoff_ruin.ai-review.json → normalised_skew.ai-review.json} +46 -46
  94. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_thorp/reviews/{edge_recalculator.ai-review.json → edge_per_unit_of_volatility.ai-review.json} +46 -46
  95. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_thorp/reviews/{fractional_kelly.ai-review.json → net_edge.ai-review.json} +49 -49
  96. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/review-manifest.json +288 -270
  97. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-semantic-adjudications/index.json +2 -2
  98. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-semantic-extractions/index.json +2 -2
  99. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-semantic-skeptic-reviews/index.json +2 -2
  100. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-source-prereviews/index.json +6 -2
  101. package/knowledge/solo-test/masters/master_ackman/decision_policy.json +122 -11
  102. package/knowledge/solo-test/masters/master_ackman/doctrine.jsonl +2 -2
  103. package/knowledge/solo-test/masters/master_ackman/manifest.json +27 -10
  104. package/knowledge/solo-test/masters/master_ackman/provisional-index.json +3 -3
  105. package/knowledge/solo-test/masters/master_ackman/sources.jsonl +1 -1
  106. package/knowledge/solo-test/masters/master_ackman/tools.json +56 -30
  107. package/knowledge/solo-test/masters/master_aschenbrenner/decision_policy.json +101 -10
  108. package/knowledge/solo-test/masters/master_aschenbrenner/doctrine.jsonl +2 -2
  109. package/knowledge/solo-test/masters/master_aschenbrenner/manifest.json +26 -8
  110. package/knowledge/solo-test/masters/master_aschenbrenner/provisional-index.json +3 -3
  111. package/knowledge/solo-test/masters/master_aschenbrenner/sources.jsonl +1 -1
  112. package/knowledge/solo-test/masters/master_aschenbrenner/tools.json +56 -30
  113. package/knowledge/solo-test/masters/master_asness/decision_policy.json +89 -10
  114. package/knowledge/solo-test/masters/master_asness/doctrine.jsonl +2 -2
  115. package/knowledge/solo-test/masters/master_asness/manifest.json +25 -8
  116. package/knowledge/solo-test/masters/master_asness/provisional-index.json +3 -3
  117. package/knowledge/solo-test/masters/master_asness/sources.jsonl +1 -1
  118. package/knowledge/solo-test/masters/master_asness/tools.json +56 -30
  119. package/knowledge/solo-test/masters/master_bogle/counterfactuals.jsonl +0 -0
  120. package/knowledge/solo-test/masters/master_bogle/decision_cases.jsonl +0 -0
  121. package/knowledge/solo-test/masters/master_bogle/decision_policy.json +170 -0
  122. package/knowledge/solo-test/masters/master_bogle/doctrine.jsonl +14 -0
  123. package/knowledge/solo-test/masters/master_bogle/evaluation/calibration_cases.jsonl +0 -0
  124. package/knowledge/solo-test/masters/master_bogle/evaluation/experiments.json +5 -0
  125. package/knowledge/solo-test/masters/master_bogle/evaluation/golden_cases.jsonl +0 -0
  126. package/knowledge/solo-test/masters/master_bogle/evaluation/pairwise_cases.jsonl +0 -0
  127. package/knowledge/solo-test/masters/master_bogle/failures.jsonl +0 -0
  128. package/knowledge/solo-test/masters/master_bogle/manifest.json +141 -0
  129. package/knowledge/solo-test/masters/master_bogle/memory_policy.json +5 -0
  130. package/knowledge/solo-test/masters/master_bogle/provisional-index.json +41 -0
  131. package/knowledge/solo-test/masters/master_bogle/research_policy.json +11 -0
  132. package/knowledge/solo-test/masters/master_bogle/sources.jsonl +1 -0
  133. package/knowledge/solo-test/masters/master_bogle/tools.json +120 -0
  134. package/knowledge/solo-test/masters/master_bogle/voice.en.md +7 -0
  135. package/knowledge/solo-test/masters/master_bogle/voice.zh.md +7 -0
  136. package/knowledge/solo-test/masters/master_buffett/decision_policy.json +102 -11
  137. package/knowledge/solo-test/masters/master_buffett/doctrine.jsonl +2 -2
  138. package/knowledge/solo-test/masters/master_buffett/manifest.json +24 -8
  139. package/knowledge/solo-test/masters/master_buffett/provisional-index.json +3 -3
  140. package/knowledge/solo-test/masters/master_buffett/sources.jsonl +1 -1
  141. package/knowledge/solo-test/masters/master_buffett/tools.json +55 -29
  142. package/knowledge/solo-test/masters/master_burry/decision_policy.json +102 -12
  143. package/knowledge/solo-test/masters/master_burry/doctrine.jsonl +2 -2
  144. package/knowledge/solo-test/masters/master_burry/manifest.json +26 -10
  145. package/knowledge/solo-test/masters/master_burry/provisional-index.json +3 -3
  146. package/knowledge/solo-test/masters/master_burry/sources.jsonl +1 -1
  147. package/knowledge/solo-test/masters/master_burry/tools.json +56 -30
  148. package/knowledge/solo-test/masters/master_cathie_wood/decision_policy.json +74 -12
  149. package/knowledge/solo-test/masters/master_cathie_wood/doctrine.jsonl +2 -2
  150. package/knowledge/solo-test/masters/master_cathie_wood/manifest.json +26 -10
  151. package/knowledge/solo-test/masters/master_cathie_wood/provisional-index.json +3 -3
  152. package/knowledge/solo-test/masters/master_cathie_wood/sources.jsonl +1 -1
  153. package/knowledge/solo-test/masters/master_cathie_wood/tools.json +56 -30
  154. package/knowledge/solo-test/masters/master_dalio/decision_policy.json +123 -16
  155. package/knowledge/solo-test/masters/master_dalio/doctrine.jsonl +2 -2
  156. package/knowledge/solo-test/masters/master_dalio/manifest.json +24 -8
  157. package/knowledge/solo-test/masters/master_dalio/provisional-index.json +3 -3
  158. package/knowledge/solo-test/masters/master_dalio/sources.jsonl +1 -1
  159. package/knowledge/solo-test/masters/master_dalio/tools.json +56 -30
  160. package/knowledge/solo-test/masters/master_damodaran/decision_policy.json +58 -10
  161. package/knowledge/solo-test/masters/master_damodaran/doctrine.jsonl +2 -2
  162. package/knowledge/solo-test/masters/master_damodaran/manifest.json +23 -8
  163. package/knowledge/solo-test/masters/master_damodaran/provisional-index.json +3 -3
  164. package/knowledge/solo-test/masters/master_damodaran/sources.jsonl +1 -1
  165. package/knowledge/solo-test/masters/master_damodaran/tools.json +54 -28
  166. package/knowledge/solo-test/masters/master_druckenmiller/decision_policy.json +89 -10
  167. package/knowledge/solo-test/masters/master_druckenmiller/doctrine.jsonl +2 -2
  168. package/knowledge/solo-test/masters/master_druckenmiller/manifest.json +25 -8
  169. package/knowledge/solo-test/masters/master_druckenmiller/provisional-index.json +3 -3
  170. package/knowledge/solo-test/masters/master_druckenmiller/sources.jsonl +1 -1
  171. package/knowledge/solo-test/masters/master_druckenmiller/tools.json +55 -29
  172. package/knowledge/solo-test/masters/master_duan_yongping/decision_policy.json +138 -13
  173. package/knowledge/solo-test/masters/master_duan_yongping/doctrine.jsonl +2 -2
  174. package/knowledge/solo-test/masters/master_duan_yongping/manifest.json +31 -11
  175. package/knowledge/solo-test/masters/master_duan_yongping/provisional-index.json +3 -3
  176. package/knowledge/solo-test/masters/master_duan_yongping/sources.jsonl +1 -1
  177. package/knowledge/solo-test/masters/master_duan_yongping/tools.json +82 -30
  178. package/knowledge/solo-test/masters/master_fisher/decision_policy.json +102 -11
  179. package/knowledge/solo-test/masters/master_fisher/doctrine.jsonl +2 -2
  180. package/knowledge/solo-test/masters/master_fisher/manifest.json +27 -10
  181. package/knowledge/solo-test/masters/master_fisher/provisional-index.json +3 -3
  182. package/knowledge/solo-test/masters/master_fisher/sources.jsonl +1 -1
  183. package/knowledge/solo-test/masters/master_fisher/tools.json +58 -32
  184. package/knowledge/solo-test/masters/master_forensic_short/decision_policy.json +93 -14
  185. package/knowledge/solo-test/masters/master_forensic_short/doctrine.jsonl +2 -2
  186. package/knowledge/solo-test/masters/master_forensic_short/manifest.json +20 -8
  187. package/knowledge/solo-test/masters/master_forensic_short/provisional-index.json +3 -3
  188. package/knowledge/solo-test/masters/master_forensic_short/sources.jsonl +1 -1
  189. package/knowledge/solo-test/masters/master_forensic_short/tools.json +53 -27
  190. package/knowledge/solo-test/masters/master_graham/decision_policy.json +103 -12
  191. package/knowledge/solo-test/masters/master_graham/doctrine.jsonl +2 -2
  192. package/knowledge/solo-test/masters/master_graham/manifest.json +26 -8
  193. package/knowledge/solo-test/masters/master_graham/provisional-index.json +3 -3
  194. package/knowledge/solo-test/masters/master_graham/sources.jsonl +1 -1
  195. package/knowledge/solo-test/masters/master_graham/tools.json +67 -28
  196. package/knowledge/solo-test/masters/master_jhunjhunwala/decision_policy.json +77 -12
  197. package/knowledge/solo-test/masters/master_jhunjhunwala/doctrine.jsonl +2 -2
  198. package/knowledge/solo-test/masters/master_jhunjhunwala/manifest.json +25 -10
  199. package/knowledge/solo-test/masters/master_jhunjhunwala/provisional-index.json +3 -3
  200. package/knowledge/solo-test/masters/master_jhunjhunwala/sources.jsonl +1 -1
  201. package/knowledge/solo-test/masters/master_jhunjhunwala/tools.json +54 -28
  202. package/knowledge/solo-test/masters/master_klarman/decision_policy.json +105 -14
  203. package/knowledge/solo-test/masters/master_klarman/doctrine.jsonl +2 -2
  204. package/knowledge/solo-test/masters/master_klarman/manifest.json +22 -6
  205. package/knowledge/solo-test/masters/master_klarman/provisional-index.json +3 -3
  206. package/knowledge/solo-test/masters/master_klarman/sources.jsonl +1 -1
  207. package/knowledge/solo-test/masters/master_klarman/tools.json +55 -29
  208. package/knowledge/solo-test/masters/master_li_lu/decision_policy.json +101 -10
  209. package/knowledge/solo-test/masters/master_li_lu/doctrine.jsonl +2 -2
  210. package/knowledge/solo-test/masters/master_li_lu/manifest.json +27 -10
  211. package/knowledge/solo-test/masters/master_li_lu/provisional-index.json +3 -3
  212. package/knowledge/solo-test/masters/master_li_lu/sources.jsonl +1 -1
  213. package/knowledge/solo-test/masters/master_li_lu/tools.json +58 -32
  214. package/knowledge/solo-test/masters/master_lynch/decision_policy.json +127 -16
  215. package/knowledge/solo-test/masters/master_lynch/doctrine.jsonl +2 -2
  216. package/knowledge/solo-test/masters/master_lynch/manifest.json +28 -10
  217. package/knowledge/solo-test/masters/master_lynch/provisional-index.json +3 -3
  218. package/knowledge/solo-test/masters/master_lynch/sources.jsonl +1 -1
  219. package/knowledge/solo-test/masters/master_lynch/tools.json +67 -28
  220. package/knowledge/solo-test/masters/master_marks/decision_policy.json +71 -9
  221. package/knowledge/solo-test/masters/master_marks/doctrine.jsonl +2 -2
  222. package/knowledge/solo-test/masters/master_marks/manifest.json +25 -10
  223. package/knowledge/solo-test/masters/master_marks/provisional-index.json +3 -3
  224. package/knowledge/solo-test/masters/master_marks/sources.jsonl +1 -1
  225. package/knowledge/solo-test/masters/master_marks/tools.json +54 -28
  226. package/knowledge/solo-test/masters/master_munger/decision_policy.json +141 -16
  227. package/knowledge/solo-test/masters/master_munger/doctrine.jsonl +2 -2
  228. package/knowledge/solo-test/masters/master_munger/manifest.json +24 -10
  229. package/knowledge/solo-test/masters/master_munger/provisional-index.json +3 -3
  230. package/knowledge/solo-test/masters/master_munger/sources.jsonl +1 -1
  231. package/knowledge/solo-test/masters/master_munger/tools.json +52 -26
  232. package/knowledge/solo-test/masters/master_natenberg/decision_policy.json +59 -11
  233. package/knowledge/solo-test/masters/master_natenberg/doctrine.jsonl +2 -2
  234. package/knowledge/solo-test/masters/master_natenberg/manifest.json +23 -10
  235. package/knowledge/solo-test/masters/master_natenberg/provisional-index.json +3 -3
  236. package/knowledge/solo-test/masters/master_natenberg/sources.jsonl +1 -1
  237. package/knowledge/solo-test/masters/master_natenberg/tools.json +50 -24
  238. package/knowledge/solo-test/masters/master_pabrai/decision_policy.json +125 -14
  239. package/knowledge/solo-test/masters/master_pabrai/doctrine.jsonl +2 -2
  240. package/knowledge/solo-test/masters/master_pabrai/manifest.json +22 -6
  241. package/knowledge/solo-test/masters/master_pabrai/provisional-index.json +3 -3
  242. package/knowledge/solo-test/masters/master_pabrai/sources.jsonl +1 -1
  243. package/knowledge/solo-test/masters/master_pabrai/tools.json +55 -29
  244. package/knowledge/solo-test/masters/master_simons/decision_policy.json +59 -11
  245. package/knowledge/solo-test/masters/master_simons/doctrine.jsonl +2 -2
  246. package/knowledge/solo-test/masters/master_simons/manifest.json +22 -8
  247. package/knowledge/solo-test/masters/master_simons/provisional-index.json +3 -3
  248. package/knowledge/solo-test/masters/master_simons/sources.jsonl +1 -1
  249. package/knowledge/solo-test/masters/master_simons/tools.json +43 -30
  250. package/knowledge/solo-test/masters/master_sinclair/decision_policy.json +59 -11
  251. package/knowledge/solo-test/masters/master_sinclair/doctrine.jsonl +2 -2
  252. package/knowledge/solo-test/masters/master_sinclair/manifest.json +22 -10
  253. package/knowledge/solo-test/masters/master_sinclair/provisional-index.json +3 -3
  254. package/knowledge/solo-test/masters/master_sinclair/sources.jsonl +1 -1
  255. package/knowledge/solo-test/masters/master_sinclair/tools.json +54 -28
  256. package/knowledge/solo-test/masters/master_soros/decision_policy.json +98 -10
  257. package/knowledge/solo-test/masters/master_soros/doctrine.jsonl +2 -2
  258. package/knowledge/solo-test/masters/master_soros/manifest.json +24 -11
  259. package/knowledge/solo-test/masters/master_soros/provisional-index.json +3 -3
  260. package/knowledge/solo-test/masters/master_soros/sources.jsonl +1 -1
  261. package/knowledge/solo-test/masters/master_soros/tools.json +54 -28
  262. package/knowledge/solo-test/masters/master_taleb/decision_policy.json +124 -13
  263. package/knowledge/solo-test/masters/master_taleb/doctrine.jsonl +2 -2
  264. package/knowledge/solo-test/masters/master_taleb/manifest.json +23 -9
  265. package/knowledge/solo-test/masters/master_taleb/provisional-index.json +3 -3
  266. package/knowledge/solo-test/masters/master_taleb/sources.jsonl +1 -1
  267. package/knowledge/solo-test/masters/master_taleb/tools.json +50 -24
  268. package/knowledge/solo-test/masters/master_thorp/decision_policy.json +61 -13
  269. package/knowledge/solo-test/masters/master_thorp/doctrine.jsonl +2 -2
  270. package/knowledge/solo-test/masters/master_thorp/manifest.json +25 -10
  271. package/knowledge/solo-test/masters/master_thorp/provisional-index.json +3 -3
  272. package/knowledge/solo-test/masters/master_thorp/sources.jsonl +1 -1
  273. package/knowledge/solo-test/masters/master_thorp/tools.json +56 -30
  274. package/knowledge/solo-test/persona-v3-solo-test-formulas/compilation-manifest.json +290 -264
  275. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_ackman/components/tools.json +58 -32
  276. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_ackman/provisional-derivations/market_capitalisation.derived-proxy-evidence.json +76 -0
  277. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_ackman/provisional-derivations/owner_earnings_yield.derived-proxy-evidence.json +76 -0
  278. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_aschenbrenner/components/tools.json +58 -32
  279. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_aschenbrenner/provisional-derivations/market_capitalisation.derived-proxy-evidence.json +76 -0
  280. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_aschenbrenner/provisional-derivations/price_implied_cash_yield.derived-proxy-evidence.json +76 -0
  281. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_asness/components/tools.json +58 -32
  282. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_asness/provisional-derivations/nominal_earnings_yield_gap.derived-proxy-evidence.json +76 -0
  283. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_asness/provisional-derivations/real_earnings_yield_gap.derived-proxy-evidence.json +76 -0
  284. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_bogle/components/tools.json +120 -0
  285. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_bogle/provisional-derivations/expected_return_over_long_bond.derived-proxy-evidence.json +77 -0
  286. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_bogle/provisional-derivations/fundamental_expected_return.derived-proxy-evidence.json +76 -0
  287. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_buffett/components/tools.json +57 -31
  288. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_buffett/provisional-derivations/market_capitalisation.derived-proxy-evidence.json +76 -0
  289. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_buffett/provisional-derivations/owner_earnings_yield.derived-proxy-evidence.json +76 -0
  290. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_burry/components/tools.json +58 -32
  291. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_burry/provisional-derivations/net_current_asset_surplus_per_share.derived-proxy-evidence.json +77 -0
  292. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_burry/provisional-derivations/net_current_asset_value_per_share.derived-proxy-evidence.json +76 -0
  293. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_cathie_wood/components/tools.json +58 -32
  294. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_cathie_wood/provisional-derivations/current_cash_yield.derived-proxy-evidence.json +76 -0
  295. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_cathie_wood/provisional-derivations/market_capitalisation.derived-proxy-evidence.json +76 -0
  296. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_dalio/components/tools.json +58 -32
  297. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_dalio/provisional-derivations/policy_real_rate.derived-proxy-evidence.json +76 -0
  298. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_dalio/provisional-derivations/real_curve_slope.derived-proxy-evidence.json +76 -0
  299. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_damodaran/components/tools.json +56 -30
  300. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_damodaran/provisional-derivations/implied_equity_risk_premium.derived-proxy-evidence.json +76 -0
  301. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_damodaran/provisional-derivations/{reverse_valuation.derived-proxy-evidence.json → premium_versus_long_run_average.derived-proxy-evidence.json} +29 -16
  302. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_druckenmiller/components/tools.json +57 -31
  303. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_druckenmiller/provisional-derivations/liquidity_curve_impulse.derived-proxy-evidence.json +76 -0
  304. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_druckenmiller/provisional-derivations/policy_real_rate.derived-proxy-evidence.json +76 -0
  305. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_duan_yongping/components/tools.json +84 -32
  306. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_duan_yongping/provisional-derivations/five_year_opportunity_cost.derived-proxy-evidence.json +102 -0
  307. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_duan_yongping/provisional-derivations/margin_retention.derived-proxy-evidence.json +76 -0
  308. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_fisher/components/tools.json +60 -34
  309. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_fisher/provisional-derivations/margin_retention.derived-proxy-evidence.json +76 -0
  310. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_fisher/provisional-derivations/reinvestment_spread.derived-proxy-evidence.json +76 -0
  311. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_forensic_short/components/tools.json +55 -29
  312. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_forensic_short/provisional-derivations/{accounting_rebuilder.derived-proxy-evidence.json → cash_conversion_gap.derived-proxy-evidence.json} +28 -15
  313. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_forensic_short/provisional-derivations/cash_cover_of_leverage.derived-proxy-evidence.json +76 -0
  314. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_graham/components/tools.json +69 -30
  315. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_graham/provisional-derivations/defensive_hurdle_base.derived-proxy-evidence.json +89 -0
  316. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_graham/provisional-derivations/half_normalised_earnings_yield.derived-proxy-evidence.json +76 -0
  317. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_jhunjhunwala/components/tools.json +56 -30
  318. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_jhunjhunwala/provisional-derivations/cash_quality_gap.derived-proxy-evidence.json +76 -0
  319. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_jhunjhunwala/provisional-derivations/real_structural_growth.derived-proxy-evidence.json +76 -0
  320. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_klarman/components/tools.json +57 -31
  321. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_klarman/provisional-derivations/downside_asset_coverage.derived-proxy-evidence.json +76 -0
  322. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_klarman/provisional-derivations/market_capitalisation.derived-proxy-evidence.json +76 -0
  323. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_li_lu/components/tools.json +60 -34
  324. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_li_lu/provisional-derivations/cash_backed_decade_return.derived-proxy-evidence.json +76 -0
  325. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_li_lu/provisional-derivations/decade_return_over_long_bond.derived-proxy-evidence.json +76 -0
  326. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_lynch/components/tools.json +69 -30
  327. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_lynch/provisional-derivations/growth_justified_capitalisation.derived-proxy-evidence.json +89 -0
  328. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_lynch/provisional-derivations/market_capitalisation.derived-proxy-evidence.json +76 -0
  329. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_marks/components/tools.json +56 -30
  330. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_marks/provisional-derivations/credit_cycle_position.derived-proxy-evidence.json +76 -0
  331. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_marks/provisional-derivations/equity_over_corporate_debt.derived-proxy-evidence.json +76 -0
  332. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_munger/components/tools.json +54 -28
  333. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_munger/provisional-derivations/debt_service_cushion.derived-proxy-evidence.json +76 -0
  334. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_munger/provisional-derivations/reported_earnings_cash_gap.derived-proxy-evidence.json +76 -0
  335. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_natenberg/components/tools.json +52 -26
  336. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_natenberg/provisional-derivations/{surface_builder.derived-proxy-evidence.json → normalised_skew.derived-proxy-evidence.json} +27 -14
  337. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_natenberg/provisional-derivations/round_trip_cost.derived-proxy-evidence.json +76 -0
  338. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_pabrai/components/tools.json +57 -31
  339. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_pabrai/provisional-derivations/downside_floor_coverage.derived-proxy-evidence.json +76 -0
  340. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_pabrai/provisional-derivations/market_capitalisation.derived-proxy-evidence.json +76 -0
  341. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_simons/components/tools.json +45 -32
  342. package/knowledge/solo-test/persona-v3-solo-test-formulas/{master_natenberg/provisional-derivations/greeks_payoff.derived-proxy-evidence.json → master_simons/provisional-derivations/absolute_session_move.derived-proxy-evidence.json} +17 -17
  343. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_simons/provisional-derivations/session_move_over_implied.derived-proxy-evidence.json +77 -0
  344. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_sinclair/components/tools.json +56 -30
  345. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_sinclair/provisional-derivations/round_trip_cost.derived-proxy-evidence.json +76 -0
  346. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_sinclair/provisional-derivations/volatility_per_unit_of_width.derived-proxy-evidence.json +76 -0
  347. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_soros/components/tools.json +56 -30
  348. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_soros/provisional-derivations/credit_cycle_position.derived-proxy-evidence.json +76 -0
  349. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_soros/provisional-derivations/financing_burden.derived-proxy-evidence.json +76 -0
  350. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_taleb/components/tools.json +52 -26
  351. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_taleb/provisional-derivations/debt_service_cushion.derived-proxy-evidence.json +76 -0
  352. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_taleb/provisional-derivations/{tail_friction.derived-proxy-evidence.json → normalised_skew.derived-proxy-evidence.json} +27 -14
  353. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_thorp/components/tools.json +58 -32
  354. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_thorp/provisional-derivations/edge_per_unit_of_volatility.derived-proxy-evidence.json +77 -0
  355. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_thorp/provisional-derivations/net_edge.derived-proxy-evidence.json +76 -0
  356. package/mcp/lib/breadth.mjs +122 -0
  357. package/mcp/lib/codex.mjs +3 -3
  358. package/mcp/lib/constants.mjs +76 -25
  359. package/mcp/lib/council-options.mjs +95 -40
  360. package/mcp/lib/council-selection.mjs +95 -9
  361. package/mcp/lib/damodaran.mjs +119 -0
  362. package/mcp/lib/fred.mjs +246 -0
  363. package/mcp/lib/fund-holdings-parsers.mjs +297 -0
  364. package/mcp/lib/fundamentals.mjs +801 -0
  365. package/mcp/lib/funds.mjs +750 -0
  366. package/mcp/lib/gates.mjs +149 -15
  367. package/mcp/lib/grounding.mjs +188 -36
  368. package/mcp/lib/index-aggregate.mjs +718 -0
  369. package/mcp/lib/insider-ownership.mjs +149 -0
  370. package/mcp/lib/instrument-facts.mjs +557 -0
  371. package/mcp/lib/instruments.mjs +191 -0
  372. package/mcp/lib/lang.mjs +109 -2
  373. package/mcp/lib/markdown.mjs +620 -138
  374. package/mcp/lib/master-catalog.mjs +32 -3
  375. package/mcp/lib/orchestrator.mjs +1121 -290
  376. package/mcp/lib/packets.mjs +227 -21
  377. package/mcp/lib/personas/engine.mjs +44 -31
  378. package/mcp/lib/personas-v3/compiler.mjs +2 -0
  379. package/mcp/lib/personas-v3/deterministic-executor.mjs +13 -2
  380. package/mcp/lib/personas-v3/ga-external-evidence.mjs +3 -2
  381. package/mcp/lib/personas-v3/ga-gate.mjs +2 -1
  382. package/mcp/lib/personas-v3/ga-package-evidence.mjs +5 -4
  383. package/mcp/lib/personas-v3/grounding-adapter.mjs +309 -2
  384. package/mcp/lib/personas-v3/loader.mjs +10 -7
  385. package/mcp/lib/personas-v3/production-root.mjs +5 -4
  386. package/mcp/lib/personas-v3/release-formula-evidence.mjs +14 -7
  387. package/mcp/lib/personas-v3/release-source-evidence.mjs +2 -1
  388. package/mcp/lib/personas-v3/releases.mjs +5 -4
  389. package/mcp/lib/personas-v3/runtime-release-integrity.mjs +6 -5
  390. package/mcp/lib/personas-v3/semantic-source-adjudication.mjs +2 -1
  391. package/mcp/lib/personas-v3/semantic-source-extraction.mjs +2 -1
  392. package/mcp/lib/personas-v3/semantic-source-skeptic-review.mjs +2 -1
  393. package/mcp/lib/personas-v3/source-acquisition.mjs +10 -3
  394. package/mcp/lib/personas-v3/source-review-operations.mjs +3 -2
  395. package/mcp/lib/personas-v3/staging.mjs +22 -3
  396. package/mcp/lib/prompts.mjs +119 -2
  397. package/mcp/lib/quotes.mjs +5 -0
  398. package/mcp/lib/rpc.mjs +101 -42
  399. package/mcp/lib/run-store.mjs +28 -3
  400. package/mcp/lib/sec.mjs +32 -0
  401. package/mcp/lib/tables.mjs +11 -0
  402. package/mcp/lib/voice.mjs +122 -0
  403. package/mcp/lib/xbrl-aggregates.mjs +153 -0
  404. package/mcp/lib/xbrl-series.mjs +339 -0
  405. package/mcp/lib/xlsx.mjs +155 -0
  406. package/package.json +5 -5
  407. package/personas/masters/masters-value/bogle.md +145 -0
  408. package/schemas/council-evaluation-protocol-v1.schema.json +2 -2
  409. package/schemas/persona-v3-ai-assisted-solo-profile-v1.schema.json +2 -2
  410. package/schemas/persona-v3-ai-machine-simulation-v1.schema.json +1 -1
  411. package/schemas/persona-v3-build-spec-v1.schema.json +3 -3
  412. package/schemas/persona-v3-release-formula-review-evidence-v1.schema.json +3 -3
  413. package/schemas/persona-v3-release-manifest-v1.schema.json +6 -6
  414. package/schemas/persona-v3-release-source-review-evidence-v1.schema.json +3 -3
  415. package/schemas/persona-v3-tool-graph-v1.schema.json +1 -1
  416. package/schemas/persona-v3.schema.json +37 -2
  417. package/schemas/source-review-batch-v1.schema.json +9 -9
  418. package/scripts/assemble-persona-v3-release.mjs +3 -2
  419. package/scripts/build-persona-v3-solo-test-packs.mjs +6 -8
  420. package/scripts/check-persona-v3-ga.mjs +1 -1
  421. package/scripts/check-persona-v3-production-candidates.mjs +1 -1
  422. package/scripts/compile-persona-v3-formulas.mjs +19 -18
  423. package/scripts/doctor.mjs +11 -9
  424. package/scripts/export-persona-source-review-batch.mjs +1 -1
  425. package/scripts/generate-persona-v3-drafts.mjs +2 -2
  426. package/scripts/lib/build-profile.mjs +24 -0
  427. package/scripts/lib/council-evaluation-protocol.mjs +7 -6
  428. package/scripts/lib/host-capabilities.mjs +2 -1
  429. package/scripts/lib/packaged-host-parity.mjs +63 -8
  430. package/scripts/lib/persona-v3-ai-assisted-solo-status.mjs +6 -4
  431. package/scripts/lib/persona-v3-ai-formula-review.mjs +6 -5
  432. package/scripts/lib/persona-v3-ai-machine-simulations.mjs +32 -4
  433. package/scripts/lib/persona-v3-build-specs.mjs +3 -2
  434. package/scripts/lib/persona-v3-draft-packs.mjs +2 -2
  435. package/scripts/lib/persona-v3-formula-pipeline.mjs +11 -10
  436. package/scripts/lib/persona-v3-production-candidates.mjs +10 -9
  437. package/scripts/lib/persona-v3-solo-formula-pipeline.mjs +182 -16
  438. package/scripts/lib/persona-v3-solo-test-packs.mjs +143 -16
  439. package/scripts/package-smoke.mjs +32 -12
  440. package/scripts/report-persona-corpus-gaps.mjs +4 -1
  441. package/scripts/review-persona-v3-solo-formulas.mjs +12 -8
  442. package/scripts/run-tests.mjs +23 -2
  443. package/scripts/scaffold-persona-v3-staging.mjs +1 -1
  444. package/skills/agent-skills-governance/SKILL.md +8 -2
  445. package/skills/alphacouncil-agent/SKILL.md +60 -9
  446. package/skills/public-equity-investing/SKILL.md +17 -0
  447. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_ackman/provisional-derivations/change_value_bridge.derived-proxy-evidence.json +0 -64
  448. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_ackman/provisional-derivations/power_map.derived-proxy-evidence.json +0 -64
  449. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_aschenbrenner/provisional-derivations/compute_power_bridge.derived-proxy-evidence.json +0 -64
  450. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_aschenbrenner/provisional-derivations/timeline_reverse_valuation.derived-proxy-evidence.json +0 -64
  451. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_asness/provisional-derivations/crowding_cost_stress.derived-proxy-evidence.json +0 -64
  452. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_asness/provisional-derivations/factor_decomposer.derived-proxy-evidence.json +0 -64
  453. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_buffett/provisional-derivations/incremental_returns.derived-proxy-evidence.json +0 -64
  454. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_buffett/provisional-derivations/owner_earnings_rebuilder.derived-proxy-evidence.json +0 -64
  455. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_burry/provisional-derivations/capital_structure_reader.derived-proxy-evidence.json +0 -64
  456. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_burry/provisional-derivations/mispricing_carry.derived-proxy-evidence.json +0 -64
  457. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_cathie_wood/provisional-derivations/capture_valuation_bridge.derived-proxy-evidence.json +0 -64
  458. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_cathie_wood/provisional-derivations/cost_adoption_curve.derived-proxy-evidence.json +0 -64
  459. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_dalio/provisional-derivations/debt_driver_stress.derived-proxy-evidence.json +0 -64
  460. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_dalio/provisional-derivations/regime_classifier.derived-proxy-evidence.json +0 -64
  461. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_damodaran/provisional-derivations/story_dcf.derived-proxy-evidence.json +0 -64
  462. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_druckenmiller/provisional-derivations/inflection_payoff.derived-proxy-evidence.json +0 -64
  463. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_druckenmiller/provisional-derivations/liquidity_revision_map.derived-proxy-evidence.json +0 -64
  464. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_duan_yongping/provisional-derivations/opportunity_cost.derived-proxy-evidence.json +0 -64
  465. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_duan_yongping/provisional-derivations/user_value_evidence.derived-proxy-evidence.json +0 -64
  466. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_fisher/provisional-derivations/research_productivity.derived-proxy-evidence.json +0 -64
  467. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_fisher/provisional-derivations/scuttlebutt_graph.derived-proxy-evidence.json +0 -64
  468. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_forensic_short/provisional-derivations/borrow_catalyst.derived-proxy-evidence.json +0 -64
  469. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_graham/provisional-derivations/asset_floor.derived-proxy-evidence.json +0 -64
  470. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_graham/provisional-derivations/normalized_earnings.derived-proxy-evidence.json +0 -64
  471. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_jhunjhunwala/provisional-derivations/penetration_liquidity.derived-proxy-evidence.json +0 -64
  472. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_jhunjhunwala/provisional-derivations/promoter_governance.derived-proxy-evidence.json +0 -64
  473. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_klarman/provisional-derivations/cash_catalyst_compare.derived-proxy-evidence.json +0 -64
  474. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_klarman/provisional-derivations/recovery_waterfall.derived-proxy-evidence.json +0 -64
  475. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_li_lu/provisional-derivations/promise_integrity_ledger.derived-proxy-evidence.json +0 -64
  476. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_li_lu/provisional-derivations/ten_year_return_bridge.derived-proxy-evidence.json +0 -64
  477. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_lynch/provisional-derivations/category_classifier.derived-proxy-evidence.json +0 -64
  478. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_lynch/provisional-derivations/story_numbers_check.derived-proxy-evidence.json +0 -64
  479. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_marks/provisional-derivations/cycle_temperature.derived-proxy-evidence.json +0 -64
  480. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_marks/provisional-derivations/implied_expectations.derived-proxy-evidence.json +0 -64
  481. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_munger/provisional-derivations/failure_path_graph.derived-proxy-evidence.json +0 -64
  482. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_munger/provisional-derivations/incentive_map.derived-proxy-evidence.json +0 -64
  483. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_pabrai/provisional-derivations/discrete_payoff.derived-proxy-evidence.json +0 -64
  484. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_pabrai/provisional-derivations/downside_floor.derived-proxy-evidence.json +0 -64
  485. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_simons/provisional-derivations/leakage_audit.derived-proxy-evidence.json +0 -64
  486. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_simons/provisional-derivations/oos_cost_test.derived-proxy-evidence.json +0 -64
  487. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_sinclair/provisional-derivations/net_edge_sizer.derived-proxy-evidence.json +0 -64
  488. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_sinclair/provisional-derivations/realized_vol_forecast.derived-proxy-evidence.json +0 -64
  489. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_soros/provisional-derivations/reflexivity_graph.derived-proxy-evidence.json +0 -64
  490. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_soros/provisional-derivations/reversal_monitor.derived-proxy-evidence.json +0 -64
  491. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_taleb/provisional-derivations/payoff_ruin.derived-proxy-evidence.json +0 -64
  492. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_thorp/provisional-derivations/edge_recalculator.derived-proxy-evidence.json +0 -64
  493. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_thorp/provisional-derivations/fractional_kelly.derived-proxy-evidence.json +0 -64
@@ -0,0 +1,96 @@
1
+ # AlphaCouncil Agent v0.9.5 — ETF/Index Routing and Complete Method Handoff (Non-GA)
2
+
3
+ `v0.9.5` is a non-GA GitHub preview that fixes the QQQ acceptance defects found after the
4
+ `v0.9.4` locale release. It does not publish npm, change npm dist-tags, promote a PersonaPack
5
+ maturity level, or claim a new investment conclusion for QQQ.
6
+
7
+ This is a runtime/reporting release, not a method-pack revision. The build profile therefore
8
+ pins `persona_pack_version=0.9.4`: all 26 reviewed solo-test pack hashes and their existing
9
+ machine-simulation evidence remain unchanged while the package/plugin version moves to
10
+ `0.9.5`. Runtime version bumps must not manufacture pack-hash drift and then rerun research
11
+ merely to recover a green check.
12
+
13
+ ## Why 0.9.5 exists
14
+
15
+ The failed QQQ experience exposed four separate defects:
16
+
17
+ 1. Yahoo's chart response identified QQQ as an ETF, but the quote adapter discarded
18
+ `instrumentType`. Grounding then used the operating-company path and could report the
19
+ predictable SEC Company Facts 404 as a research failure.
20
+ 2. Deterministic v3 methods correctly returned `out_of_scope` when their typed facts were
21
+ absent, but the visible handoff did not turn every abstention into a readable per-seat
22
+ statement.
23
+ 3. The PM completion path wrote `user_response.md`, then returned only a compact ACK to the
24
+ host. A host could therefore answer with a short recap and hide the selected-seat output
25
+ that existed in artifacts.
26
+ 4. `report_quality` required a Master Bench section but did not prove that every selected
27
+ stable method ID and readable final statement appeared in that section.
28
+
29
+ These were runtime and delivery defects, not evidence that twenty-five methods were bearish.
30
+
31
+ ## Instrument routing
32
+
33
+ - Quote parsing now preserves Yahoo `instrumentType`, names and exchange timezone.
34
+ - A deterministic classifier distinguishes operating companies, ETFs, mutual funds, cash
35
+ indices, futures, FX and crypto. Yahoo metadata is primary; symbol conventions, quote names
36
+ and SEC ticker/registrant names provide bounded fallbacks.
37
+ - The SEC ticker title and filer profile are resolved before Company Facts is scheduled.
38
+ ETF/fund/index routes explicitly mark operating-company Company Facts and structured issuer
39
+ financials as not applicable instead of recording a false failure.
40
+ - ETF/fund runs use `fund_lookthrough`; cash indices use `index_aggregate`; operating companies
41
+ retain `operating_company`. The type, model and classification source are persisted in
42
+ `status.json`, grounding output and the research dashboard.
43
+ - All eight evidence roles receive a role-specific fund/index assignment. The contract covers
44
+ dated holdings or constituents and weights, concentration, methodology, fees or index rules,
45
+ liquidity, premium/discount or tracking difference, flows, rebalances, lending/derivatives,
46
+ look-through earnings and same-date aggregate valuation with explicit coverage weight.
47
+ - Fund/index prompts forbid fund revenue, company EPS, management guidance and fund-insider
48
+ Form 4 fabrication. A few constituent financial statements may never be added into a
49
+ portfolio financial statement.
50
+
51
+ The classifier does not invent holdings, flows, aggregate EPS or valuation. Those remain
52
+ dated evidence requirements, and missing fields remain report gaps.
53
+
54
+ ## Complete selected-seat handoff
55
+
56
+ - Every deterministically completed or declined physical v3 seat now has a readable fallback
57
+ statement in the run language. An ETF/index abstention explains that the method needs dated
58
+ holdings look-through or aggregate-index evidence and that `out_of_scope` is not a bearish
59
+ vote.
60
+ - `plan_visible_run` returns one explanation worker for every non-blocked selected physical
61
+ v3 seat, including a deterministically declined seat. The worker receives the finished
62
+ evidence, acknowledges the frozen stance, and may improve the explanation but cannot vote
63
+ again. PM completion checks `master_status`, not merely the presence of a fallback record.
64
+ - The full chat handoff ends with the exact selected-seat count and one statement for every
65
+ selected stable ID. A full `all` selection therefore ends with 26 lines; quick mode reports
66
+ its actual 1–4 seats rather than claiming 26.
67
+ - Labels state that these are project-derived provisional method-seat outputs, not quotations,
68
+ endorsements or current statements from the named people.
69
+ - Visible PM completion returns `handoff_contract=inline_user_response_v1` and the saved
70
+ `user_response_markdown`. Host instructions require that body to be delivered instead of
71
+ replacing it with a shorter recap. Idempotent PM replays return the same handoff.
72
+ - The final report owns an idempotent fund/index structure section and the recorded Master
73
+ Bench. PM narrative is retained as non-authoritative commentary where it conflicts with a
74
+ system-owned section.
75
+
76
+ ## Quality gates and regression coverage
77
+
78
+ - `report_quality.json` records selected/readable/rendered method-statement counts and stable
79
+ IDs. Missing opinions, statements shorter than the readability floor, or an ID absent from
80
+ the published Master Bench force `needs_revision`.
81
+ - Fund/index reports require the structure/look-through section; ordinary-equity reports do
82
+ not.
83
+ - Offline unit and integration coverage includes QQQ/SPY ETF classification, SEC-name fallback,
84
+ cash-index routing, all eight ETF role overrides, fund/index report assembly, a 26-seat final
85
+ handoff, inline visible-PM handoff and replay, and unchanged equity behavior.
86
+
87
+ ## Assurance boundary
88
+
89
+ - Build channel: `solo_test`.
90
+ - Runtime/package version: `0.9.5`; unchanged PersonaPack snapshot: `0.9.4`.
91
+ - Physical provisional packs: 26.
92
+ - Persona tools: 52 `provisional_derived_proxy` tools.
93
+ - Operational seats: 0.
94
+ - Validated `method_model` seats: 0.
95
+ - `production_eligible=false`; `method_model_eligible=false`.
96
+ - Formal production GA remains fail-closed.
@@ -0,0 +1,164 @@
1
+ # AlphaCouncil Agent v1.0.0 — Seats That Can Answer
2
+
3
+ `1.0.0` is the release where the method seats stop abstaining on everything.
4
+
5
+ > **Status: released.** All twenty-seven seats are authored, the trees regenerate from committed
6
+ > sources alone, and `npm test` is green at 961 tests. Measured against live grounding across
7
+ > eight symbols, every one of the twenty-seven seats reaches a stance somewhere, with no
8
+ > contract failures anywhere.
9
+
10
+ ## What was actually wrong
11
+
12
+ A council of twenty-six method seats produced one usable opinion, and only on a narrow class
13
+ of symbol. The QQQ run that prompted this release ended with twenty-five `out_of_scope`
14
+ statements and one cautious note about implied volatility. That looked like an ETF problem.
15
+ It was not.
16
+
17
+ Three layers were empty, and each one hid the next:
18
+
19
+ 1. **Facts.** `grounding-adapter.mjs` is the only thing in the repo that produces typed facts,
20
+ and it could produce thirteen fact ids. Twenty-five seats required facts that nothing
21
+ generated. The same run against an operating company abstained identically — QQQ was not a
22
+ special case.
23
+ 2. **Method.** All twenty-six decision policies were the same generated template: empty
24
+ eligibility, empty vetoes, and two rules scoring an `identity` transform against zero.
25
+ Supplying the missing facts would have bought "owner earnings are positive, therefore
26
+ cautious" — true, and empty.
27
+ 3. **Expression.** An abstention rendered as `no_required_fact_types_present`, which reads as
28
+ a broken system rather than as a method declining.
29
+
30
+ ## Facts
31
+
32
+ Four feeds, all keyless, each one refusing rather than approximating when a source is absent.
33
+
34
+ **Dated official series.** The macro block already fetched rates, credit and breadth but had
35
+ no publication date of its own, so the adapter skipped the family entirely. A point snapshot
36
+ could not have fixed the seats that needed it: an impulse and a regime are directions, and a
37
+ direction computed from one day of quotes is fabricated precision. FRED's CSV endpoint is
38
+ keyless where its API is not, and every observation publishes its own date — which gives net
39
+ liquidity, its change over a stated window, and the growth/inflation quadrant, each returning
40
+ null rather than a guess when an axis lacks the history to have a direction.
41
+
42
+ **Company fundamentals.** Owner earnings, NCAV, downside asset value and floor, revenue
43
+ growth, incremental return on capital, leverage, share count — derived from XBRL with the
44
+ filing date as `public_at`, never the clock. Owner earnings is labelled `estimated` rather than
45
+ `rederived`: the maintenance/growth capex split is an assumption, and the proxy travels with
46
+ the fact rather than living in a comment.
47
+
48
+ **Fund holdings.** Four issuers' published daily files. Each has a trap that produces wrong
49
+ data rather than an error, so each is checked: the retired iShares path returns HTTP 200 with
50
+ an HTML body for every user agent, so the first line is validated instead of the status; the
51
+ Invesco endpoint truncates to ten holdings under one parameter while still reporting the full
52
+ count, so the count is the checked invariant; a guessed CUSIP resolves to a different fund
53
+ entirely, so only verified identifiers are registered.
54
+
55
+ **Index aggregates.** Valuation, breadth, put/call and volatility. Index P/E is quoted on
56
+ incompatible bases — three sources disagreed by 4.6 turns on the same day — so every valuation
57
+ fact names its basis and sources are never blended for one metric. Constituent lists are
58
+ licensed assets, so constituents come from the tracking fund's published holdings, labelled a
59
+ proxy in the provenance rather than presented as the index.
60
+
61
+ **Look-through.** A basket has no income statement, which is why an operating-company method
62
+ had nothing to read. Buffett defined look-through earnings in the 1990 shareholder letter for
63
+ exactly this situation, so aggregating constituent ratios by weight is the method's own
64
+ answer rather than a workaround. It stays honest by refusing: absolute-currency facts have no
65
+ aggregation path at all — "the fund's owner earnings" is unrepresentable, not discouraged —
66
+ and every aggregate carries the weight it was computed over, because a portfolio ratio
67
+ measured across 8% of a basket is a different claim from one measured across 95%.
68
+
69
+ ## Method
70
+
71
+ A seat may now carry its real formula and its real decision policy instead of the generated
72
+ identity proxy. Authored inputs may only reference facts the build spec already declares, so
73
+ the authoring layer cannot quietly widen a seat's contract.
74
+
75
+ One distinction matters more than it looks: `min_coverage` is 1, so a single uncomputable
76
+ *scoring* rule collapses an entire seat to `out_of_scope`. That is the mechanism that produced
77
+ twenty-five abstentions. A "can this method speak at all" test belongs in eligibility, which
78
+ has its own exit and its own explanation, and authored policies are written that way.
79
+
80
+ **Assurance is unchanged and still fail-closed.** These formulas are AI-authored and unreviewed.
81
+ An authored tool records `ai_authored_candidate_formula_not_human_reviewed` in place of the
82
+ `mechanical_identity_proxy` claim, which would otherwise be false. Admission stays
83
+ `operator_lens`, `production_eligible` stays false, and no human has reviewed either kind.
84
+
85
+ ## Expression
86
+
87
+ Seats answer five questions in the first person — what I see, how my standard reads it, would
88
+ I act, what changes my mind, where I disagree — and carry a `position_intent`. Intent narrows
89
+ the frozen stance and never reopens it: each stance admits only intents meaning the same thing,
90
+ enforced server-side exactly as a changed stance is, so a worker cannot turn `opposed` into
91
+ `would_buy` by choosing a label.
92
+
93
+ First person is what makes the output readable and is also exactly what could be mistaken for a
94
+ quotation. The prompt requires the method's voice — "this standard asks for X" — never a claim
95
+ about what a living person currently thinks, and the section says so.
96
+
97
+ The bench separates seats that reached a decision from seats that could not. The old layout
98
+ gave both equal weight, so a run where twenty-five seats abstained printed twenty-five
99
+ near-identical rows and buried the one seat with a view. Abstentions now collapse into a single
100
+ paragraph that still names every stable ID — both what the publication gate checks and the
101
+ honest requirement that no seat quietly vanishes.
102
+
103
+ ## Fixed
104
+
105
+ - The classifier failed open. With no exchange metadata — the fallback quote path, which
106
+ returns a null instrument type — common fund tickers matched a bare ticker shape and were
107
+ asserted to be operating companies, reproducing the exact defect 0.9.5 set out to fix. A
108
+ filed SIC was documented as evidence of an operating company, but the codes in question are
109
+ what fund registrants file. A fund named after an index matched the bare `index` token and
110
+ was routed as a cash index, which silently disabled its option chain.
111
+ - Reports in Japanese and Korean could never publish. A relabelled commentary section legally
112
+ contains a section alias, heading assignment keeps the richest body, and the per-seat gate
113
+ then failed against PM prose — permanently, since more prose only made the commentary win
114
+ harder. The gate now locates the system section by its content anchor.
115
+ - Worker statements were interpolated raw into a system-owned section, so a statement
116
+ containing a heading captured the section the quality gate validates.
117
+ - The status snapshot and the blocking gates disagreed about a seat with no status entry, so a
118
+ recovered run reported complete while being hard-rejected.
119
+ - Declined seats no longer schedule an explanation worker. The stance is frozen and the
120
+ deterministic record is already readable, so the worker could change nothing while costing
121
+ one sequential model turn per seat on a host with no fan-out.
122
+ - The fundamentals path re-registered filing records under the consuming metric's period,
123
+ which silently dropped every fact sharing a record with the mechanical screen.
124
+ - The look-through aggregator reads one number per ticker and was handed a nested object, so
125
+ every aggregate reported "no constituent supplied this metric" while the constituents sat
126
+ resolved in memory.
127
+ - `not_applicable` strings and the fund/index research contract were English-only inside
128
+ localized reports.
129
+
130
+ - The typed-fact period contract was wrong in three ways at once, and together they were why a
131
+ live run stayed near-silent even after the facts and the methods were in place. The adapter
132
+ stamped an observation date into `period_end` with no start, a shape that satisfies no
133
+ contract basis at all — rejected as an instant because the interval is non-null, and as a
134
+ duration because a window needs both ends — so those facts were unusable by any tool.
135
+ Multi-year aggregates were declared as instants, which the executor rejects against a fact
136
+ that carries a reporting interval. And the one-year window demanded 365 days, while a fiscal
137
+ year measured between two year-end dates is routinely 363. Facts that cover a span now
138
+ declare a duration; coverage set by filing availability rather than by the method declares
139
+ `ANY`; and look-through aggregates carry the interval their constituents reported. Measured
140
+ across eight symbols before and after: from four seats reaching a stance to twenty-six, with
141
+ no contract failures left.
142
+ - Every seat-count and tool-count invariant is derived from the canonical roster instead of
143
+ restated as a literal. Adding the twenty-seventh seat previously meant editing sixty
144
+ assertions across tests, schemas and reports, which is the kind of cost that keeps a bench
145
+ frozen at whatever size it was first written at.
146
+ - The twenty-seventh seat could not speak on this universe at all. `master_jhunjhunwala` puts
147
+ the ownership record first, before any growth arithmetic, and the US has no promoter as a
148
+ filing concept — so the seat was authored to decline by construction, which is honest and
149
+ also useless. Section 16 is the filed analogue: officers, directors and holders of more than
150
+ ten percent file Forms 3, 4 and 5 stating what they hold afterwards.
151
+ `governance.insider_ownership` sums the newest such filing per reporting owner over shares
152
+ outstanding, reading filings newest-first and taking each owner once, so the cost is one
153
+ fetch per insider rather than one per filing. The fact is `estimated`, not `reported` — no
154
+ document states it — and where Section 16 differs from an Indian promoter disclosure is
155
+ written on the seat rather than adjusted away.
156
+
157
+ ## Assurance boundary
158
+
159
+ Unchanged from 0.9.5 and deliberately so:
160
+
161
+ - Build channel: `solo_test`; `production_eligible=false`; `method_model_eligible=false`.
162
+ - Admission level: `operator_lens`. Formal production GA remains fail-closed.
163
+ - Method-seat outputs are project-derived provisional lenses. They are not quotations,
164
+ endorsements, or current views of the named people.
@@ -22,6 +22,23 @@ writes the mode-appropriate versions of:
22
22
  The report and handoff must call a named master result a recorded method-seat or lens result.
23
23
  It is not a quote from, endorsement by, or current statement of the named person.
24
24
 
25
+ The run classifies its instrument before selecting financial-data routes. Operating-company
26
+ Company Facts and issuer financials are not applicable to ETFs, funds or indices. ETF/fund
27
+ runs use holdings look-through; index runs use aggregate-index evidence. Missing dated
28
+ holdings, constituents, weights, methodology, fees/rules, liquidity/tracking/flows or
29
+ aggregate-valuation coverage remain explicit gaps and are never replaced with invented fund
30
+ revenue, EPS, guidance, insider activity or summed constituent financial statements.
31
+
32
+ System-owned selector, report and handoff labels are localized for `zh-CN`, `en`, `ja` and
33
+ `ko`. Each worker receives the canonical run language, while stable IDs and JSON field names
34
+ remain English. Reader-facing evidence, method, debate and PM fields are checked against the
35
+ requested locale. Plugin-managed workers receive one bounded no-search language/JSON repair,
36
+ then fail closed; visible-host record tools reject the wrong-language packet before writing
37
+ it so the host may retry. `report_quality.json` records requested/observed locale, keeps
38
+ Han-only fragments explicitly inconclusive, and cannot pass a Japanese or Korean run whose
39
+ report body is English. Unsupported explicit selector locales are rejected instead of being
40
+ silently mislabeled as localized English.
41
+
25
42
  ## full_v2 Contract
26
43
 
27
44
  Full remains the default. Its `final_report.md` visibly covers:
@@ -30,6 +47,7 @@ Full remains the default. Its `final_report.md` visibly covers:
30
47
  - analyst work log for every planned evidence role
31
48
  - bull/bear debate record, including three rounds and exact round-3 Q&A
32
49
  - recorded Master Bench when methods were selected
50
+ - fund/index structure and look-through when the instrument is an ETF, fund or index
33
51
  - long thesis and short thesis
34
52
  - market expectations and implied beat/miss thresholds
35
53
  - analyst rating and target-price revisions
@@ -48,11 +66,56 @@ Full remains the default. Its `final_report.md` visibly covers:
48
66
  - confidence
49
67
  - source table
50
68
 
69
+ Its `user_response.md` must also visibly carry:
70
+
71
+ - a system-owned price snapshot with price, currency, quote timestamp, exchange/feed and
72
+ source when available, or an explicit statement that the quote is unavailable;
73
+ - every selected stable master ID, its frozen deterministic stance, its readable
74
+ explanation/status and a clear `not a quote` attribution boundary;
75
+ - all eight mandatory analyst task IDs, statuses and summaries, including failures or gaps;
76
+ - terminal status, contract, report quality, elapsed time, deadline state and artifact paths.
77
+ - a final section with the exact selected-seat count and one readable statement per selected
78
+ stable ID. Full `all` therefore ends with 26 statements; quick reports its actual 1–4.
79
+
80
+ Visible PM completion returns `handoff_contract=inline_user_response_v1` plus the persisted
81
+ `user_response_markdown`. The host uses that body for the final reply instead of reducing it
82
+ to a compact ACK and hiding the method-seat tail. An idempotent PM replay returns the same
83
+ handoff.
84
+
51
85
  All mandatory full evidence roles must be completed. If one still fails after the one bounded
52
86
  parse-only repair, full fails closed at the evidence barrier: no master, bull/bear or PM model
53
87
  call is started. The run is persisted as `incomplete` with the failed evidence and skipped
54
88
  downstream roles named. A partial PM opinion never converts that run to complete.
55
89
 
90
+ ## Full Runtime Budget
91
+
92
+ Plugin-managed headless `analyze_symbol(council_mode="full")` has a non-overridable maximum
93
+ of 1800000 ms from durable queueing through terminal artifact persistence. A caller or
94
+ environment may lower it, never raise it. The execution topology is:
95
+
96
+ 1. the eight mandatory evidence workers start in one parallel wave;
97
+ 2. after the evidence barrier, every selected physical v3 method runs its deterministic
98
+ policy and freezes a stance, then receives one isolated voice worker that can explain but
99
+ cannot change that stance;
100
+ 3. Bull and Bear start together within each of three rounds, with a barrier before the next
101
+ round; the PM starts only after both Round-3 outputs pass exact Q&A validation;
102
+ 4. deterministic assembly and persistence consume the same global clock.
103
+
104
+ At deadline expiry the run stops opening downstream work and persists fail-closed as
105
+ `incomplete`, naming timed-out, failed and skipped roles. This is a terminal-persistence
106
+ guarantee, not a promise of full-seat success when search, model transport or data sources
107
+ are unavailable. The deadline does not apply to `plan_visible_run`: an external host owns
108
+ those subagents and the plugin cannot force-stop them.
109
+
110
+ Visible full runs use the same six role-by-round audit records and exact Q&A gate. Each
111
+ Bull/Bear call declares round 1, 2 or 3; the server rejects out-of-order calls, altered replay
112
+ content and a PM submitted before both Round-3 records pass. Identical role/round retries are
113
+ idempotent. Every non-blocked selected physical v3 seat also returns a visible post-evidence
114
+ explanation worker, including a deterministic `out_of_scope` seat. Its
115
+ `acknowledged_stance` must match the frozen stance, and PM checks the worker's completed
116
+ status rather than accepting the fallback record alone. This preserves workflow completeness
117
+ but does not give host-owned subagents the plugin-managed 30-minute deadline.
118
+
56
119
  ## quick_v1 Contract
57
120
 
58
121
  Quick is explicit and plugin-managed through headless `analyze_symbol`. It is not available
@@ -154,7 +217,9 @@ Every handoff includes status, report contract, report quality, rating, winner,
154
217
  one judgment paragraph, valuation/position, material gaps and file locations.
155
218
 
156
219
  A full handoff additionally carries the key earnings result, forward setup, news/voice
157
- signals and top invalidation conditions.
220
+ signals and top invalidation conditions. It lists every selected method seat and all eight
221
+ mandatory analysts rather than sampling a subset, and includes the system-owned price
222
+ snapshot or an explicit quote-data gap. The method-seat list is the final handoff section.
158
223
 
159
224
  A quick handoff instead names:
160
225
 
@@ -175,10 +240,14 @@ Both handoffs list `final_report.md`, `artifact_index.md`, `all_agents.md`, and
175
240
  | "The user only asked if they can enter, so four bullets are enough." | Keep chat concise, but write the mode-appropriate report and artifact index. |
176
241
  | "Quick passed report quality, so it passed full." | `quick_v1` can only pass `quick_v1`; retain `full_council_equivalent=false`. |
177
242
  | "Ten minutes expired, so silently omit a seat." | Record the exact degraded/incomplete ledger; never manufacture evidence or extend the ceiling. |
243
+ | "Thirty minutes expired, so finish full with the seats that returned." | Persist full as `incomplete`, name every missing/skipped role and keep the saved partial evidence; never synthesize a complete verdict. |
178
244
  | "One evidence task failed, but the PM has an opinion." | Apply the mode-specific evidence gate; full fails before downstream calls, quick may only use its explicit degraded rules. |
179
245
  | "The source table mentions the news, so the news section can be skipped." | News findings need their own visible section; quick recent news must also pass its date window. |
180
246
  | "The final report exists, so chat can hide file locations." | The handoff lists the saved report, index, trace and quality file. |
181
247
  | "The master said this." | Call it a recorded method-seat result, never a quote from the named person. |
248
+ | "The full report has a bench table, so the handoff can hide the individual seats." | Full handoff ends with every selected stable ID, stance and readable result/status. |
249
+ | "The PM tool returned success, so its small ACK is enough." | Deliver `user_response_markdown`; success metadata is not the user-facing report. |
250
+ | "QQQ has a ticker and SEC CIK, so run the company screen." | Classify first. ETF/fund/index company financial routes are not applicable; use look-through or aggregate evidence. |
182
251
 
183
252
  ## How the Quality Gate Checks Reports
184
253
 
@@ -197,4 +266,8 @@ at least 1600 non-space characters, quick reports 700, and dry reports 600.
197
266
 
198
267
  The system-owned recorded Master Bench and degraded ledger are checked independently of PM
199
268
  prose so a generic, stale or duplicate heading cannot satisfy the contract. The authoritative
200
- lists are `REPORT_SECTIONS` and `QUICK_REPORT_SECTIONS` in `mcp/lib/constants.mjs`.
269
+ Master Bench must contain the exact stable ID and a readable statement for every selected
270
+ seat; `report_quality.json.method_statement_coverage` records selected/readable/rendered
271
+ counts and IDs. A missing statement or ID forces `needs_revision`. Fund/index runs also
272
+ require the system-owned instrument-structure section. The authoritative lists are
273
+ `REPORT_SECTIONS` and `QUICK_REPORT_SECTIONS` in `mcp/lib/constants.mjs`.
@@ -18,29 +18,29 @@
18
18
  "formal_h_satisfied": false,
19
19
  "human_reference": false,
20
20
  "input_binding": {
21
- "input_hash": "sha256:752ecf73d001424e072bd155176e93a10ba45fc4fba1104a2f52f45a490d4253",
21
+ "input_hash": "sha256:9127909a333bb31bf3bda341b3f975c47b99dc709ae602fd643cb8aca4373882",
22
22
  "path": "simulation-input.json"
23
23
  },
24
24
  "network_allowed": false,
25
25
  "production_effect": "none",
26
- "result_hash": "sha256:2013b4b3e2f70593b6c4ff2451606f56ba9792071da7ae2c9718d555bdc91e1e",
26
+ "result_hash": "sha256:b6de9683451d9b4063cbab22561e335d6436637d20fb77baa4f5ad930e043994",
27
27
  "results": {
28
28
  "blocked_fail_closed_count": 0,
29
29
  "completion_status": "completed_machine_simulation",
30
30
  "decisions": [
31
31
  {
32
- "anonymous_method_hash": "sha256:c617108770534f6c0299a134d0014838c4d9dc8a8e96496563e557063e6cfd25",
33
- "deterministic_core_hash": "sha256:a67003279083423cab89962354372c6a19f16e5260579000816a8fcc39ed5a38",
34
- "fact_pack_hash": "sha256:0adab0b69b1e8ba756deaeac3c457e044dd5a7195b1847893db0953772220e41",
35
- "frozen_decision_hash": "sha256:ddfd120be4926ef3b400a07f8af44c277d170f4c8f48364579b5b21ae48fa661",
36
- "native_state": "provisional_own_at_price",
37
- "pack_hash": "sha256:0c83b559eefa9f3ffb5679aa1c2969db32f1543e29732633b007e8668eb45e33",
32
+ "anonymous_method_hash": "sha256:ab1138811cd18a46315a4c7f840962dfe643e724c62e1343f35450e4826aac52",
33
+ "deterministic_core_hash": "sha256:1138841001cf2bf5b3f3faee980b23f36ac693b79cc7832fe90433948600464f",
34
+ "fact_pack_hash": "sha256:2887ff3b609b4d2d32b25ec1f81b7a46bea1b1cc1506d31582e6f8517591f907",
35
+ "frozen_decision_hash": "sha256:f758e6c2c6166fcd40ef2cb68dc80402f14c8d8097f90cce629ae7df3e652fde",
36
+ "native_state": "provisional_reject",
37
+ "pack_hash": "sha256:ddc7163f4e87ab93755fe95371029d811cedc273c14bdc273422eaa4dc370181",
38
38
  "persona_id": "master_buffett",
39
- "policy_execution_hash": "sha256:5e853405b4dd96e4760f842c0726e26bf7f87e9e3cc79a6b90e3ceb58a2211a5",
40
- "score_ratio": 1,
41
- "stance": "cautious",
39
+ "policy_execution_hash": "sha256:e9f632cee5f5527bcfd7af58bfe34a4c085d48e5fe7efce6286b47483c25fd9b",
40
+ "score_ratio": 0.3333333333333333,
41
+ "stance": "opposed",
42
42
  "status": "executed",
43
- "structured_decision_hash": "sha256:4dd09d873884782402697e0ac7ef70fc61ab76440f221274b7a16c13a1b66e3c"
43
+ "structured_decision_hash": "sha256:57a0f42891d0004baf89a7009aff6e17b504ebf8b8152ab288b54fe08438a4a7"
44
44
  }
45
45
  ],
46
46
  "deterministic_execution_count": 1,
@@ -54,7 +54,7 @@
54
54
  "verifier_checks": []
55
55
  },
56
56
  "reviewer_kind": "ai",
57
- "run_artifact_hash": "sha256:07668b1d8e9f4273ec1599ed41718959f821ebdba7164fe00968e8ba255a8682",
57
+ "run_artifact_hash": "sha256:351606eac119186416b5d598c162b19151a89820c5abd0445b7413e66d77816d",
58
58
  "run_id": "A",
59
59
  "schema_version": 1,
60
60
  "simulation_scope": "single deterministic seat surrogate; formal single-model answer is not simulated"
@@ -16,7 +16,7 @@
16
16
  "formal_h_satisfied": false,
17
17
  "human_reference": false,
18
18
  "input_binding": {
19
- "input_hash": "sha256:752ecf73d001424e072bd155176e93a10ba45fc4fba1104a2f52f45a490d4253",
19
+ "input_hash": "sha256:9127909a333bb31bf3bda341b3f975c47b99dc709ae602fd643cb8aca4373882",
20
20
  "path": "simulation-input.json"
21
21
  },
22
22
  "network_allowed": false,
@@ -37,7 +37,7 @@
37
37
  "verifier_checks": []
38
38
  },
39
39
  "reviewer_kind": "ai",
40
- "run_artifact_hash": "sha256:ec5087d2b895b91e5e368f55cc7c3d05a8dd6e67a11f606db592ed3f64961b0c",
40
+ "run_artifact_hash": "sha256:40b99e59216b8689cb696f62f33562545c686d890a637fd2daeba9339f0d3674",
41
41
  "run_id": "B",
42
42
  "schema_version": 1,
43
43
  "simulation_scope": "frozen-input control digest only; eight LLM analyst outputs are not simulated"
@@ -16,7 +16,7 @@
16
16
  "formal_h_satisfied": false,
17
17
  "human_reference": false,
18
18
  "input_binding": {
19
- "input_hash": "sha256:752ecf73d001424e072bd155176e93a10ba45fc4fba1104a2f52f45a490d4253",
19
+ "input_hash": "sha256:9127909a333bb31bf3bda341b3f975c47b99dc709ae602fd643cb8aca4373882",
20
20
  "path": "simulation-input.json"
21
21
  },
22
22
  "network_allowed": false,
@@ -37,7 +37,7 @@
37
37
  "verifier_checks": []
38
38
  },
39
39
  "reviewer_kind": "ai",
40
- "run_artifact_hash": "sha256:eab1e93b8f9dfc7158c5b2b3c61d4948391b5e8f32a7c9aedfe27979aa526853",
40
+ "run_artifact_hash": "sha256:5158ac7a004d8a39a013ffed82ce15b851d4a7fbe921d8c0400c76e2a95f4756",
41
41
  "run_id": "C",
42
42
  "schema_version": 1,
43
43
  "simulation_scope": "prompt-catalog binding only; prompt-only LLM outputs are not simulated"