alphacouncil-agent 0.9.4 → 1.0.1

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 (481) hide show
  1. package/.claude-plugin/marketplace.json +3 -3
  2. package/.claude-plugin/plugin.json +2 -2
  3. package/.codex-plugin/plugin.json +4 -4
  4. package/AGENTS.md +25 -11
  5. package/CHANGELOG.md +146 -0
  6. package/CLAUDE.md +24 -7
  7. package/README.ja.md +15 -10
  8. package/README.md +21 -13
  9. package/README.zh-CN.md +17 -12
  10. package/data/authored/core-seats.mjs +808 -0
  11. package/data/authored/growth-seats.mjs +581 -0
  12. package/data/authored/index.mjs +114 -0
  13. package/data/authored/quant-seats.mjs +564 -0
  14. package/data/authored/value-seats.mjs +663 -0
  15. package/data/build-profile.v1.json +2 -1
  16. package/data/council-evaluation-protocol.v1.json +7 -4
  17. package/data/master-selector-method-locales.v1.mjs +10 -0
  18. package/data/persona-v3-ai-assisted-solo-profile.v1.json +2 -2
  19. package/data/persona-v3-build-specs.v1.mjs +60 -3
  20. package/docs/INSTALL.md +6 -10
  21. package/docs/personas.md +2 -1
  22. package/docs/plans/v1.0-roadmap.md +487 -0
  23. package/docs/plans/v1.1-basket-native-seats.md +267 -0
  24. package/docs/releases/v0.9.5.md +96 -0
  25. package/docs/releases/v1.0.0.md +164 -0
  26. package/docs/report-contract.md +30 -6
  27. package/knowledge/ai-assisted-solo/experiments/runs/a.json +13 -13
  28. package/knowledge/ai-assisted-solo/experiments/runs/b.json +2 -2
  29. package/knowledge/ai-assisted-solo/experiments/runs/c.json +2 -2
  30. package/knowledge/ai-assisted-solo/experiments/runs/d13.json +126 -126
  31. package/knowledge/ai-assisted-solo/experiments/runs/d26.json +274 -254
  32. package/knowledge/ai-assisted-solo/experiments/runs/e-d13.json +129 -129
  33. package/knowledge/ai-assisted-solo/experiments/runs/e-d26.json +277 -257
  34. package/knowledge/ai-assisted-solo/experiments/runs/h_ai_reference.json +278 -258
  35. package/knowledge/ai-assisted-solo/experiments/simulation-input.json +7278 -556
  36. package/knowledge/ai-assisted-solo/experiments/simulation-manifest.json +22 -22
  37. 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
  38. 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
  39. 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
  40. 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
  41. 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
  42. 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
  43. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_bogle/reviews/expected_return_over_long_bond.ai-review.json +277 -0
  44. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_bogle/reviews/fundamental_expected_return.ai-review.json +277 -0
  45. 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
  46. 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
  47. 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
  48. 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
  49. 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
  50. 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
  51. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_dalio/reviews/{regime_classifier.ai-review.json → policy_real_rate.ai-review.json} +49 -49
  52. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/{master_munger/reviews/incentive_map.ai-review.json → master_dalio/reviews/real_curve_slope.ai-review.json} +51 -51
  53. 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
  54. 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
  55. 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
  56. 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
  57. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_duan_yongping/reviews/{user_value_evidence.ai-review.json → five_year_opportunity_cost.ai-review.json} +46 -46
  58. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_duan_yongping/reviews/{opportunity_cost.ai-review.json → margin_retention.ai-review.json} +46 -46
  59. 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
  60. 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
  61. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/{master_dalio/reviews/debt_driver_stress.ai-review.json → master_forensic_short/reviews/cash_conversion_gap.ai-review.json} +51 -51
  62. 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
  63. 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
  64. 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
  65. 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
  66. 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
  67. 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
  68. 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
  69. 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
  70. 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
  71. 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
  72. 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
  73. 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
  74. 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
  75. 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
  76. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_munger/reviews/reported_earnings_cash_gap.ai-review.json +277 -0
  77. 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
  78. 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
  79. 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
  80. 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
  81. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_simons/reviews/{leakage_audit.ai-review.json → absolute_session_move.ai-review.json} +42 -42
  82. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_simons/reviews/{oos_cost_test.ai-review.json → session_move_over_implied.ai-review.json} +46 -46
  83. 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
  84. 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
  85. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_soros/reviews/{reflexivity_graph.ai-review.json → credit_cycle_position.ai-review.json} +49 -49
  86. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_soros/reviews/{reversal_monitor.ai-review.json → financing_burden.ai-review.json} +46 -46
  87. 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
  88. 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
  89. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_thorp/reviews/{fractional_kelly.ai-review.json → edge_per_unit_of_volatility.ai-review.json} +46 -46
  90. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_thorp/reviews/{edge_recalculator.ai-review.json → net_edge.ai-review.json} +49 -49
  91. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/review-manifest.json +288 -270
  92. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-semantic-adjudications/index.json +2 -2
  93. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-semantic-extractions/index.json +2 -2
  94. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-semantic-skeptic-reviews/index.json +2 -2
  95. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-source-prereviews/index.json +6 -2
  96. package/knowledge/solo-test/masters/master_ackman/decision_policy.json +122 -11
  97. package/knowledge/solo-test/masters/master_ackman/doctrine.jsonl +2 -2
  98. package/knowledge/solo-test/masters/master_ackman/manifest.json +13 -6
  99. package/knowledge/solo-test/masters/master_ackman/provisional-index.json +3 -3
  100. package/knowledge/solo-test/masters/master_ackman/sources.jsonl +1 -1
  101. package/knowledge/solo-test/masters/master_ackman/tools.json +56 -30
  102. package/knowledge/solo-test/masters/master_aschenbrenner/decision_policy.json +101 -10
  103. package/knowledge/solo-test/masters/master_aschenbrenner/doctrine.jsonl +2 -2
  104. package/knowledge/solo-test/masters/master_aschenbrenner/manifest.json +12 -4
  105. package/knowledge/solo-test/masters/master_aschenbrenner/provisional-index.json +3 -3
  106. package/knowledge/solo-test/masters/master_aschenbrenner/sources.jsonl +1 -1
  107. package/knowledge/solo-test/masters/master_aschenbrenner/tools.json +56 -30
  108. package/knowledge/solo-test/masters/master_asness/decision_policy.json +89 -10
  109. package/knowledge/solo-test/masters/master_asness/doctrine.jsonl +2 -2
  110. package/knowledge/solo-test/masters/master_asness/manifest.json +11 -4
  111. package/knowledge/solo-test/masters/master_asness/provisional-index.json +3 -3
  112. package/knowledge/solo-test/masters/master_asness/sources.jsonl +1 -1
  113. package/knowledge/solo-test/masters/master_asness/tools.json +56 -30
  114. package/knowledge/solo-test/masters/master_bogle/counterfactuals.jsonl +0 -0
  115. package/knowledge/solo-test/masters/master_bogle/decision_cases.jsonl +0 -0
  116. package/knowledge/solo-test/masters/master_bogle/decision_policy.json +170 -0
  117. package/knowledge/solo-test/masters/master_bogle/doctrine.jsonl +14 -0
  118. package/knowledge/solo-test/masters/master_bogle/evaluation/calibration_cases.jsonl +0 -0
  119. package/knowledge/solo-test/masters/master_bogle/evaluation/experiments.json +5 -0
  120. package/knowledge/solo-test/masters/master_bogle/evaluation/golden_cases.jsonl +0 -0
  121. package/knowledge/solo-test/masters/master_bogle/evaluation/pairwise_cases.jsonl +0 -0
  122. package/knowledge/solo-test/masters/master_bogle/failures.jsonl +0 -0
  123. package/knowledge/solo-test/masters/master_bogle/manifest.json +141 -0
  124. package/knowledge/solo-test/masters/master_bogle/memory_policy.json +5 -0
  125. package/knowledge/solo-test/masters/master_bogle/provisional-index.json +41 -0
  126. package/knowledge/solo-test/masters/master_bogle/research_policy.json +11 -0
  127. package/knowledge/solo-test/masters/master_bogle/sources.jsonl +1 -0
  128. package/knowledge/solo-test/masters/master_bogle/tools.json +120 -0
  129. package/knowledge/solo-test/masters/master_bogle/voice.en.md +7 -0
  130. package/knowledge/solo-test/masters/master_bogle/voice.zh.md +7 -0
  131. package/knowledge/solo-test/masters/master_buffett/decision_policy.json +102 -11
  132. package/knowledge/solo-test/masters/master_buffett/doctrine.jsonl +2 -2
  133. package/knowledge/solo-test/masters/master_buffett/manifest.json +10 -4
  134. package/knowledge/solo-test/masters/master_buffett/provisional-index.json +3 -3
  135. package/knowledge/solo-test/masters/master_buffett/sources.jsonl +1 -1
  136. package/knowledge/solo-test/masters/master_buffett/tools.json +55 -29
  137. package/knowledge/solo-test/masters/master_burry/decision_policy.json +102 -12
  138. package/knowledge/solo-test/masters/master_burry/doctrine.jsonl +2 -2
  139. package/knowledge/solo-test/masters/master_burry/manifest.json +12 -6
  140. package/knowledge/solo-test/masters/master_burry/provisional-index.json +3 -3
  141. package/knowledge/solo-test/masters/master_burry/sources.jsonl +1 -1
  142. package/knowledge/solo-test/masters/master_burry/tools.json +56 -30
  143. package/knowledge/solo-test/masters/master_cathie_wood/decision_policy.json +74 -12
  144. package/knowledge/solo-test/masters/master_cathie_wood/doctrine.jsonl +2 -2
  145. package/knowledge/solo-test/masters/master_cathie_wood/manifest.json +12 -6
  146. package/knowledge/solo-test/masters/master_cathie_wood/provisional-index.json +3 -3
  147. package/knowledge/solo-test/masters/master_cathie_wood/sources.jsonl +1 -1
  148. package/knowledge/solo-test/masters/master_cathie_wood/tools.json +56 -30
  149. package/knowledge/solo-test/masters/master_dalio/decision_policy.json +123 -16
  150. package/knowledge/solo-test/masters/master_dalio/doctrine.jsonl +2 -2
  151. package/knowledge/solo-test/masters/master_dalio/manifest.json +10 -4
  152. package/knowledge/solo-test/masters/master_dalio/provisional-index.json +3 -3
  153. package/knowledge/solo-test/masters/master_dalio/sources.jsonl +1 -1
  154. package/knowledge/solo-test/masters/master_dalio/tools.json +56 -30
  155. package/knowledge/solo-test/masters/master_damodaran/decision_policy.json +58 -10
  156. package/knowledge/solo-test/masters/master_damodaran/doctrine.jsonl +2 -2
  157. package/knowledge/solo-test/masters/master_damodaran/manifest.json +9 -4
  158. package/knowledge/solo-test/masters/master_damodaran/provisional-index.json +3 -3
  159. package/knowledge/solo-test/masters/master_damodaran/sources.jsonl +1 -1
  160. package/knowledge/solo-test/masters/master_damodaran/tools.json +54 -28
  161. package/knowledge/solo-test/masters/master_druckenmiller/decision_policy.json +89 -10
  162. package/knowledge/solo-test/masters/master_druckenmiller/doctrine.jsonl +2 -2
  163. package/knowledge/solo-test/masters/master_druckenmiller/manifest.json +11 -4
  164. package/knowledge/solo-test/masters/master_druckenmiller/provisional-index.json +3 -3
  165. package/knowledge/solo-test/masters/master_druckenmiller/sources.jsonl +1 -1
  166. package/knowledge/solo-test/masters/master_druckenmiller/tools.json +55 -29
  167. package/knowledge/solo-test/masters/master_duan_yongping/decision_policy.json +138 -13
  168. package/knowledge/solo-test/masters/master_duan_yongping/doctrine.jsonl +2 -2
  169. package/knowledge/solo-test/masters/master_duan_yongping/manifest.json +17 -7
  170. package/knowledge/solo-test/masters/master_duan_yongping/provisional-index.json +3 -3
  171. package/knowledge/solo-test/masters/master_duan_yongping/sources.jsonl +1 -1
  172. package/knowledge/solo-test/masters/master_duan_yongping/tools.json +82 -30
  173. package/knowledge/solo-test/masters/master_fisher/decision_policy.json +102 -11
  174. package/knowledge/solo-test/masters/master_fisher/doctrine.jsonl +2 -2
  175. package/knowledge/solo-test/masters/master_fisher/manifest.json +13 -6
  176. package/knowledge/solo-test/masters/master_fisher/provisional-index.json +3 -3
  177. package/knowledge/solo-test/masters/master_fisher/sources.jsonl +1 -1
  178. package/knowledge/solo-test/masters/master_fisher/tools.json +58 -32
  179. package/knowledge/solo-test/masters/master_forensic_short/decision_policy.json +93 -14
  180. package/knowledge/solo-test/masters/master_forensic_short/doctrine.jsonl +2 -2
  181. package/knowledge/solo-test/masters/master_forensic_short/manifest.json +6 -4
  182. package/knowledge/solo-test/masters/master_forensic_short/provisional-index.json +3 -3
  183. package/knowledge/solo-test/masters/master_forensic_short/sources.jsonl +1 -1
  184. package/knowledge/solo-test/masters/master_forensic_short/tools.json +53 -27
  185. package/knowledge/solo-test/masters/master_graham/decision_policy.json +103 -12
  186. package/knowledge/solo-test/masters/master_graham/doctrine.jsonl +2 -2
  187. package/knowledge/solo-test/masters/master_graham/manifest.json +12 -4
  188. package/knowledge/solo-test/masters/master_graham/provisional-index.json +3 -3
  189. package/knowledge/solo-test/masters/master_graham/sources.jsonl +1 -1
  190. package/knowledge/solo-test/masters/master_graham/tools.json +67 -28
  191. package/knowledge/solo-test/masters/master_jhunjhunwala/decision_policy.json +77 -12
  192. package/knowledge/solo-test/masters/master_jhunjhunwala/doctrine.jsonl +2 -2
  193. package/knowledge/solo-test/masters/master_jhunjhunwala/manifest.json +11 -6
  194. package/knowledge/solo-test/masters/master_jhunjhunwala/provisional-index.json +3 -3
  195. package/knowledge/solo-test/masters/master_jhunjhunwala/sources.jsonl +1 -1
  196. package/knowledge/solo-test/masters/master_jhunjhunwala/tools.json +54 -28
  197. package/knowledge/solo-test/masters/master_klarman/decision_policy.json +105 -14
  198. package/knowledge/solo-test/masters/master_klarman/doctrine.jsonl +2 -2
  199. package/knowledge/solo-test/masters/master_klarman/manifest.json +8 -2
  200. package/knowledge/solo-test/masters/master_klarman/provisional-index.json +3 -3
  201. package/knowledge/solo-test/masters/master_klarman/sources.jsonl +1 -1
  202. package/knowledge/solo-test/masters/master_klarman/tools.json +55 -29
  203. package/knowledge/solo-test/masters/master_li_lu/decision_policy.json +101 -10
  204. package/knowledge/solo-test/masters/master_li_lu/doctrine.jsonl +2 -2
  205. package/knowledge/solo-test/masters/master_li_lu/manifest.json +13 -6
  206. package/knowledge/solo-test/masters/master_li_lu/provisional-index.json +3 -3
  207. package/knowledge/solo-test/masters/master_li_lu/sources.jsonl +1 -1
  208. package/knowledge/solo-test/masters/master_li_lu/tools.json +58 -32
  209. package/knowledge/solo-test/masters/master_lynch/decision_policy.json +127 -16
  210. package/knowledge/solo-test/masters/master_lynch/doctrine.jsonl +2 -2
  211. package/knowledge/solo-test/masters/master_lynch/manifest.json +14 -6
  212. package/knowledge/solo-test/masters/master_lynch/provisional-index.json +3 -3
  213. package/knowledge/solo-test/masters/master_lynch/sources.jsonl +1 -1
  214. package/knowledge/solo-test/masters/master_lynch/tools.json +67 -28
  215. package/knowledge/solo-test/masters/master_marks/decision_policy.json +71 -9
  216. package/knowledge/solo-test/masters/master_marks/doctrine.jsonl +2 -2
  217. package/knowledge/solo-test/masters/master_marks/manifest.json +11 -6
  218. package/knowledge/solo-test/masters/master_marks/provisional-index.json +3 -3
  219. package/knowledge/solo-test/masters/master_marks/sources.jsonl +1 -1
  220. package/knowledge/solo-test/masters/master_marks/tools.json +54 -28
  221. package/knowledge/solo-test/masters/master_munger/decision_policy.json +141 -16
  222. package/knowledge/solo-test/masters/master_munger/doctrine.jsonl +2 -2
  223. package/knowledge/solo-test/masters/master_munger/manifest.json +10 -6
  224. package/knowledge/solo-test/masters/master_munger/provisional-index.json +3 -3
  225. package/knowledge/solo-test/masters/master_munger/sources.jsonl +1 -1
  226. package/knowledge/solo-test/masters/master_munger/tools.json +52 -26
  227. package/knowledge/solo-test/masters/master_natenberg/decision_policy.json +59 -11
  228. package/knowledge/solo-test/masters/master_natenberg/doctrine.jsonl +2 -2
  229. package/knowledge/solo-test/masters/master_natenberg/manifest.json +9 -6
  230. package/knowledge/solo-test/masters/master_natenberg/provisional-index.json +3 -3
  231. package/knowledge/solo-test/masters/master_natenberg/sources.jsonl +1 -1
  232. package/knowledge/solo-test/masters/master_natenberg/tools.json +50 -24
  233. package/knowledge/solo-test/masters/master_pabrai/decision_policy.json +125 -14
  234. package/knowledge/solo-test/masters/master_pabrai/doctrine.jsonl +2 -2
  235. package/knowledge/solo-test/masters/master_pabrai/manifest.json +8 -2
  236. package/knowledge/solo-test/masters/master_pabrai/provisional-index.json +3 -3
  237. package/knowledge/solo-test/masters/master_pabrai/sources.jsonl +1 -1
  238. package/knowledge/solo-test/masters/master_pabrai/tools.json +55 -29
  239. package/knowledge/solo-test/masters/master_simons/decision_policy.json +59 -11
  240. package/knowledge/solo-test/masters/master_simons/doctrine.jsonl +2 -2
  241. package/knowledge/solo-test/masters/master_simons/manifest.json +8 -4
  242. package/knowledge/solo-test/masters/master_simons/provisional-index.json +3 -3
  243. package/knowledge/solo-test/masters/master_simons/sources.jsonl +1 -1
  244. package/knowledge/solo-test/masters/master_simons/tools.json +43 -30
  245. package/knowledge/solo-test/masters/master_sinclair/decision_policy.json +59 -11
  246. package/knowledge/solo-test/masters/master_sinclair/doctrine.jsonl +2 -2
  247. package/knowledge/solo-test/masters/master_sinclair/manifest.json +8 -6
  248. package/knowledge/solo-test/masters/master_sinclair/provisional-index.json +3 -3
  249. package/knowledge/solo-test/masters/master_sinclair/sources.jsonl +1 -1
  250. package/knowledge/solo-test/masters/master_sinclair/tools.json +54 -28
  251. package/knowledge/solo-test/masters/master_soros/decision_policy.json +98 -10
  252. package/knowledge/solo-test/masters/master_soros/doctrine.jsonl +2 -2
  253. package/knowledge/solo-test/masters/master_soros/manifest.json +10 -7
  254. package/knowledge/solo-test/masters/master_soros/provisional-index.json +3 -3
  255. package/knowledge/solo-test/masters/master_soros/sources.jsonl +1 -1
  256. package/knowledge/solo-test/masters/master_soros/tools.json +54 -28
  257. package/knowledge/solo-test/masters/master_taleb/decision_policy.json +124 -13
  258. package/knowledge/solo-test/masters/master_taleb/doctrine.jsonl +2 -2
  259. package/knowledge/solo-test/masters/master_taleb/manifest.json +9 -5
  260. package/knowledge/solo-test/masters/master_taleb/provisional-index.json +3 -3
  261. package/knowledge/solo-test/masters/master_taleb/sources.jsonl +1 -1
  262. package/knowledge/solo-test/masters/master_taleb/tools.json +50 -24
  263. package/knowledge/solo-test/masters/master_thorp/decision_policy.json +61 -13
  264. package/knowledge/solo-test/masters/master_thorp/doctrine.jsonl +2 -2
  265. package/knowledge/solo-test/masters/master_thorp/manifest.json +11 -6
  266. package/knowledge/solo-test/masters/master_thorp/provisional-index.json +3 -3
  267. package/knowledge/solo-test/masters/master_thorp/sources.jsonl +1 -1
  268. package/knowledge/solo-test/masters/master_thorp/tools.json +56 -30
  269. package/knowledge/solo-test/persona-v3-solo-test-formulas/compilation-manifest.json +290 -264
  270. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_ackman/components/tools.json +58 -32
  271. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_ackman/provisional-derivations/market_capitalisation.derived-proxy-evidence.json +76 -0
  272. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_ackman/provisional-derivations/owner_earnings_yield.derived-proxy-evidence.json +76 -0
  273. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_aschenbrenner/components/tools.json +58 -32
  274. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_aschenbrenner/provisional-derivations/market_capitalisation.derived-proxy-evidence.json +76 -0
  275. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_aschenbrenner/provisional-derivations/price_implied_cash_yield.derived-proxy-evidence.json +76 -0
  276. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_asness/components/tools.json +58 -32
  277. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_asness/provisional-derivations/nominal_earnings_yield_gap.derived-proxy-evidence.json +76 -0
  278. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_asness/provisional-derivations/real_earnings_yield_gap.derived-proxy-evidence.json +76 -0
  279. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_bogle/components/tools.json +120 -0
  280. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_bogle/provisional-derivations/expected_return_over_long_bond.derived-proxy-evidence.json +77 -0
  281. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_bogle/provisional-derivations/fundamental_expected_return.derived-proxy-evidence.json +76 -0
  282. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_buffett/components/tools.json +57 -31
  283. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_buffett/provisional-derivations/market_capitalisation.derived-proxy-evidence.json +76 -0
  284. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_buffett/provisional-derivations/owner_earnings_yield.derived-proxy-evidence.json +76 -0
  285. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_burry/components/tools.json +58 -32
  286. 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
  287. 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
  288. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_cathie_wood/components/tools.json +58 -32
  289. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_cathie_wood/provisional-derivations/current_cash_yield.derived-proxy-evidence.json +76 -0
  290. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_cathie_wood/provisional-derivations/market_capitalisation.derived-proxy-evidence.json +76 -0
  291. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_dalio/components/tools.json +58 -32
  292. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_dalio/provisional-derivations/policy_real_rate.derived-proxy-evidence.json +76 -0
  293. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_dalio/provisional-derivations/real_curve_slope.derived-proxy-evidence.json +76 -0
  294. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_damodaran/components/tools.json +56 -30
  295. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_damodaran/provisional-derivations/implied_equity_risk_premium.derived-proxy-evidence.json +76 -0
  296. 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
  297. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_druckenmiller/components/tools.json +57 -31
  298. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_druckenmiller/provisional-derivations/liquidity_curve_impulse.derived-proxy-evidence.json +76 -0
  299. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_druckenmiller/provisional-derivations/policy_real_rate.derived-proxy-evidence.json +76 -0
  300. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_duan_yongping/components/tools.json +84 -32
  301. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_duan_yongping/provisional-derivations/five_year_opportunity_cost.derived-proxy-evidence.json +102 -0
  302. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_duan_yongping/provisional-derivations/margin_retention.derived-proxy-evidence.json +76 -0
  303. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_fisher/components/tools.json +60 -34
  304. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_fisher/provisional-derivations/margin_retention.derived-proxy-evidence.json +76 -0
  305. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_fisher/provisional-derivations/reinvestment_spread.derived-proxy-evidence.json +76 -0
  306. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_forensic_short/components/tools.json +55 -29
  307. 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
  308. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_forensic_short/provisional-derivations/cash_cover_of_leverage.derived-proxy-evidence.json +76 -0
  309. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_graham/components/tools.json +69 -30
  310. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_graham/provisional-derivations/defensive_hurdle_base.derived-proxy-evidence.json +89 -0
  311. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_graham/provisional-derivations/half_normalised_earnings_yield.derived-proxy-evidence.json +76 -0
  312. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_jhunjhunwala/components/tools.json +56 -30
  313. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_jhunjhunwala/provisional-derivations/cash_quality_gap.derived-proxy-evidence.json +76 -0
  314. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_jhunjhunwala/provisional-derivations/real_structural_growth.derived-proxy-evidence.json +76 -0
  315. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_klarman/components/tools.json +57 -31
  316. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_klarman/provisional-derivations/downside_asset_coverage.derived-proxy-evidence.json +76 -0
  317. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_klarman/provisional-derivations/market_capitalisation.derived-proxy-evidence.json +76 -0
  318. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_li_lu/components/tools.json +60 -34
  319. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_li_lu/provisional-derivations/cash_backed_decade_return.derived-proxy-evidence.json +76 -0
  320. 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
  321. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_lynch/components/tools.json +69 -30
  322. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_lynch/provisional-derivations/growth_justified_capitalisation.derived-proxy-evidence.json +89 -0
  323. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_lynch/provisional-derivations/market_capitalisation.derived-proxy-evidence.json +76 -0
  324. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_marks/components/tools.json +56 -30
  325. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_marks/provisional-derivations/credit_cycle_position.derived-proxy-evidence.json +76 -0
  326. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_marks/provisional-derivations/equity_over_corporate_debt.derived-proxy-evidence.json +76 -0
  327. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_munger/components/tools.json +54 -28
  328. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_munger/provisional-derivations/debt_service_cushion.derived-proxy-evidence.json +76 -0
  329. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_munger/provisional-derivations/reported_earnings_cash_gap.derived-proxy-evidence.json +76 -0
  330. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_natenberg/components/tools.json +52 -26
  331. 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
  332. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_natenberg/provisional-derivations/round_trip_cost.derived-proxy-evidence.json +76 -0
  333. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_pabrai/components/tools.json +57 -31
  334. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_pabrai/provisional-derivations/downside_floor_coverage.derived-proxy-evidence.json +76 -0
  335. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_pabrai/provisional-derivations/market_capitalisation.derived-proxy-evidence.json +76 -0
  336. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_simons/components/tools.json +45 -32
  337. 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
  338. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_simons/provisional-derivations/session_move_over_implied.derived-proxy-evidence.json +77 -0
  339. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_sinclair/components/tools.json +56 -30
  340. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_sinclair/provisional-derivations/round_trip_cost.derived-proxy-evidence.json +76 -0
  341. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_sinclair/provisional-derivations/volatility_per_unit_of_width.derived-proxy-evidence.json +76 -0
  342. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_soros/components/tools.json +56 -30
  343. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_soros/provisional-derivations/credit_cycle_position.derived-proxy-evidence.json +76 -0
  344. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_soros/provisional-derivations/financing_burden.derived-proxy-evidence.json +76 -0
  345. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_taleb/components/tools.json +52 -26
  346. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_taleb/provisional-derivations/debt_service_cushion.derived-proxy-evidence.json +76 -0
  347. 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
  348. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_thorp/components/tools.json +58 -32
  349. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_thorp/provisional-derivations/edge_per_unit_of_volatility.derived-proxy-evidence.json +77 -0
  350. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_thorp/provisional-derivations/net_edge.derived-proxy-evidence.json +76 -0
  351. package/mcp/lib/breadth.mjs +126 -0
  352. package/mcp/lib/constants.mjs +15 -0
  353. package/mcp/lib/damodaran.mjs +119 -0
  354. package/mcp/lib/fred.mjs +246 -0
  355. package/mcp/lib/fund-holdings-parsers.mjs +297 -0
  356. package/mcp/lib/fund-observations.mjs +152 -0
  357. package/mcp/lib/fundamentals.mjs +806 -0
  358. package/mcp/lib/funds.mjs +785 -0
  359. package/mcp/lib/gates.mjs +71 -4
  360. package/mcp/lib/grounding.mjs +209 -36
  361. package/mcp/lib/index-aggregate.mjs +733 -0
  362. package/mcp/lib/insider-ownership.mjs +149 -0
  363. package/mcp/lib/instrument-facts.mjs +855 -0
  364. package/mcp/lib/instruments.mjs +216 -0
  365. package/mcp/lib/markdown.mjs +216 -43
  366. package/mcp/lib/master-catalog.mjs +4 -0
  367. package/mcp/lib/orchestrator.mjs +173 -29
  368. package/mcp/lib/packets.mjs +59 -6
  369. package/mcp/lib/personas/engine.mjs +23 -10
  370. package/mcp/lib/personas-v3/deterministic-executor.mjs +13 -2
  371. package/mcp/lib/personas-v3/ga-external-evidence.mjs +3 -2
  372. package/mcp/lib/personas-v3/ga-gate.mjs +2 -1
  373. package/mcp/lib/personas-v3/ga-package-evidence.mjs +5 -4
  374. package/mcp/lib/personas-v3/grounding-adapter.mjs +309 -2
  375. package/mcp/lib/personas-v3/production-root.mjs +5 -4
  376. package/mcp/lib/personas-v3/release-formula-evidence.mjs +14 -7
  377. package/mcp/lib/personas-v3/release-source-evidence.mjs +2 -1
  378. package/mcp/lib/personas-v3/releases.mjs +5 -4
  379. package/mcp/lib/personas-v3/runtime-release-integrity.mjs +6 -5
  380. package/mcp/lib/personas-v3/semantic-source-adjudication.mjs +2 -1
  381. package/mcp/lib/personas-v3/semantic-source-extraction.mjs +2 -1
  382. package/mcp/lib/personas-v3/semantic-source-skeptic-review.mjs +2 -1
  383. package/mcp/lib/personas-v3/source-review-operations.mjs +3 -2
  384. package/mcp/lib/personas-v3/staging.mjs +22 -3
  385. package/mcp/lib/prompts.mjs +87 -3
  386. package/mcp/lib/quotes.mjs +5 -0
  387. package/mcp/lib/rpc.mjs +27 -10
  388. package/mcp/lib/run-store.mjs +5 -3
  389. package/mcp/lib/sec.mjs +32 -0
  390. package/mcp/lib/tables.mjs +11 -0
  391. package/mcp/lib/voice.mjs +122 -0
  392. package/mcp/lib/xbrl-aggregates.mjs +153 -0
  393. package/mcp/lib/xbrl-series.mjs +341 -0
  394. package/mcp/lib/xlsx.mjs +155 -0
  395. package/package.json +5 -5
  396. package/personas/masters/masters-value/bogle.md +145 -0
  397. package/schemas/council-evaluation-protocol-v1.schema.json +2 -2
  398. package/schemas/persona-v3-ai-assisted-solo-profile-v1.schema.json +2 -2
  399. package/schemas/persona-v3-ai-machine-simulation-v1.schema.json +1 -1
  400. package/schemas/persona-v3-build-spec-v1.schema.json +3 -3
  401. package/schemas/persona-v3-release-formula-review-evidence-v1.schema.json +3 -3
  402. package/schemas/persona-v3-release-manifest-v1.schema.json +6 -6
  403. package/schemas/persona-v3-release-source-review-evidence-v1.schema.json +3 -3
  404. package/schemas/persona-v3-tool-graph-v1.schema.json +1 -1
  405. package/schemas/source-review-batch-v1.schema.json +9 -9
  406. package/scripts/assemble-persona-v3-release.mjs +3 -2
  407. package/scripts/build-persona-v3-solo-test-packs.mjs +6 -8
  408. package/scripts/check-persona-v3-ga.mjs +1 -1
  409. package/scripts/check-persona-v3-production-candidates.mjs +1 -1
  410. package/scripts/compile-persona-v3-formulas.mjs +19 -18
  411. package/scripts/doctor.mjs +11 -9
  412. package/scripts/export-persona-source-review-batch.mjs +1 -1
  413. package/scripts/generate-persona-v3-drafts.mjs +2 -2
  414. package/scripts/lib/build-profile.mjs +24 -0
  415. package/scripts/lib/council-evaluation-protocol.mjs +7 -6
  416. package/scripts/lib/host-capabilities.mjs +2 -1
  417. package/scripts/lib/packaged-host-parity.mjs +9 -3
  418. package/scripts/lib/persona-v3-ai-assisted-solo-status.mjs +6 -4
  419. package/scripts/lib/persona-v3-ai-formula-review.mjs +6 -5
  420. package/scripts/lib/persona-v3-ai-machine-simulations.mjs +32 -4
  421. package/scripts/lib/persona-v3-build-specs.mjs +3 -2
  422. package/scripts/lib/persona-v3-draft-packs.mjs +2 -2
  423. package/scripts/lib/persona-v3-formula-pipeline.mjs +11 -10
  424. package/scripts/lib/persona-v3-production-candidates.mjs +10 -9
  425. package/scripts/lib/persona-v3-solo-formula-pipeline.mjs +188 -16
  426. package/scripts/lib/persona-v3-solo-test-packs.mjs +112 -11
  427. package/scripts/package-smoke.mjs +2 -1
  428. package/scripts/report-persona-corpus-gaps.mjs +4 -1
  429. package/scripts/review-persona-v3-solo-formulas.mjs +12 -8
  430. package/scripts/scaffold-persona-v3-staging.mjs +1 -1
  431. package/skills/agent-skills-governance/SKILL.md +8 -2
  432. package/skills/alphacouncil-agent/SKILL.md +12 -4
  433. package/skills/public-equity-investing/SKILL.md +17 -0
  434. package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_forensic_short/reviews/borrow_catalyst.ai-review.json +0 -277
  435. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_ackman/provisional-derivations/change_value_bridge.derived-proxy-evidence.json +0 -64
  436. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_ackman/provisional-derivations/power_map.derived-proxy-evidence.json +0 -64
  437. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_aschenbrenner/provisional-derivations/compute_power_bridge.derived-proxy-evidence.json +0 -64
  438. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_aschenbrenner/provisional-derivations/timeline_reverse_valuation.derived-proxy-evidence.json +0 -64
  439. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_asness/provisional-derivations/crowding_cost_stress.derived-proxy-evidence.json +0 -64
  440. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_asness/provisional-derivations/factor_decomposer.derived-proxy-evidence.json +0 -64
  441. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_buffett/provisional-derivations/incremental_returns.derived-proxy-evidence.json +0 -64
  442. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_buffett/provisional-derivations/owner_earnings_rebuilder.derived-proxy-evidence.json +0 -64
  443. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_burry/provisional-derivations/capital_structure_reader.derived-proxy-evidence.json +0 -64
  444. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_burry/provisional-derivations/mispricing_carry.derived-proxy-evidence.json +0 -64
  445. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_cathie_wood/provisional-derivations/capture_valuation_bridge.derived-proxy-evidence.json +0 -64
  446. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_cathie_wood/provisional-derivations/cost_adoption_curve.derived-proxy-evidence.json +0 -64
  447. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_dalio/provisional-derivations/debt_driver_stress.derived-proxy-evidence.json +0 -64
  448. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_dalio/provisional-derivations/regime_classifier.derived-proxy-evidence.json +0 -64
  449. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_damodaran/provisional-derivations/story_dcf.derived-proxy-evidence.json +0 -64
  450. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_druckenmiller/provisional-derivations/inflection_payoff.derived-proxy-evidence.json +0 -64
  451. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_druckenmiller/provisional-derivations/liquidity_revision_map.derived-proxy-evidence.json +0 -64
  452. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_duan_yongping/provisional-derivations/opportunity_cost.derived-proxy-evidence.json +0 -64
  453. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_duan_yongping/provisional-derivations/user_value_evidence.derived-proxy-evidence.json +0 -64
  454. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_fisher/provisional-derivations/research_productivity.derived-proxy-evidence.json +0 -64
  455. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_fisher/provisional-derivations/scuttlebutt_graph.derived-proxy-evidence.json +0 -64
  456. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_forensic_short/provisional-derivations/borrow_catalyst.derived-proxy-evidence.json +0 -64
  457. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_graham/provisional-derivations/asset_floor.derived-proxy-evidence.json +0 -64
  458. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_graham/provisional-derivations/normalized_earnings.derived-proxy-evidence.json +0 -64
  459. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_jhunjhunwala/provisional-derivations/penetration_liquidity.derived-proxy-evidence.json +0 -64
  460. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_jhunjhunwala/provisional-derivations/promoter_governance.derived-proxy-evidence.json +0 -64
  461. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_klarman/provisional-derivations/cash_catalyst_compare.derived-proxy-evidence.json +0 -64
  462. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_klarman/provisional-derivations/recovery_waterfall.derived-proxy-evidence.json +0 -64
  463. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_li_lu/provisional-derivations/promise_integrity_ledger.derived-proxy-evidence.json +0 -64
  464. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_li_lu/provisional-derivations/ten_year_return_bridge.derived-proxy-evidence.json +0 -64
  465. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_lynch/provisional-derivations/category_classifier.derived-proxy-evidence.json +0 -64
  466. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_lynch/provisional-derivations/story_numbers_check.derived-proxy-evidence.json +0 -64
  467. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_marks/provisional-derivations/cycle_temperature.derived-proxy-evidence.json +0 -64
  468. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_marks/provisional-derivations/implied_expectations.derived-proxy-evidence.json +0 -64
  469. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_munger/provisional-derivations/failure_path_graph.derived-proxy-evidence.json +0 -64
  470. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_munger/provisional-derivations/incentive_map.derived-proxy-evidence.json +0 -64
  471. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_pabrai/provisional-derivations/discrete_payoff.derived-proxy-evidence.json +0 -64
  472. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_pabrai/provisional-derivations/downside_floor.derived-proxy-evidence.json +0 -64
  473. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_simons/provisional-derivations/leakage_audit.derived-proxy-evidence.json +0 -64
  474. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_simons/provisional-derivations/oos_cost_test.derived-proxy-evidence.json +0 -64
  475. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_sinclair/provisional-derivations/net_edge_sizer.derived-proxy-evidence.json +0 -64
  476. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_sinclair/provisional-derivations/realized_vol_forecast.derived-proxy-evidence.json +0 -64
  477. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_soros/provisional-derivations/reflexivity_graph.derived-proxy-evidence.json +0 -64
  478. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_soros/provisional-derivations/reversal_monitor.derived-proxy-evidence.json +0 -64
  479. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_taleb/provisional-derivations/payoff_ruin.derived-proxy-evidence.json +0 -64
  480. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_thorp/provisional-derivations/edge_recalculator.derived-proxy-evidence.json +0 -64
  481. package/knowledge/solo-test/persona-v3-solo-test-formulas/master_thorp/provisional-derivations/fractional_kelly.derived-proxy-evidence.json +0 -64
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "alphacouncil-agent",
3
- "version": "0.9.4",
4
- "description": "Multi-agent public-equity research workflow plugin for Codex & Claude Code: sourced evidence packets, bull/bear debate, and a portfolio-manager Buy/Overweight/Hold/Underweight/Sell decision.",
3
+ "version": "1.0.1",
4
+ "description": "Multi-agent company, ETF and market-index research workflow for Codex & Claude Code: sourced evidence, method seats, bull/bear debate and portfolio-manager synthesis.",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "author": "Zhao73",
@@ -27,7 +27,7 @@
27
27
  },
28
28
  "publishConfig": {
29
29
  "access": "public",
30
- "tag": "next"
30
+ "tag": "latest"
31
31
  },
32
32
  "scripts": {
33
33
  "check": "node scripts/selfcheck.mjs",
@@ -42,7 +42,7 @@
42
42
  "persona:release:assemble": "node scripts/assemble-persona-v3-release.mjs",
43
43
  "persona:release:promote": "node scripts/promote-persona-v3-release.mjs",
44
44
  "persona:release:evidence:check": "node scripts/check-persona-v3-ga.mjs --expected-version 0.9.0 --require-release-evidence",
45
- "release:check": "npm run check && node scripts/check-persona-v3-ga.mjs --expected-version 0.9.0 --require-count 26 --require-min-admission operational --forbid-legacy --forbid-prompt-lens --require-release-evidence",
45
+ "release:check": "npm run check && node scripts/check-persona-v3-ga.mjs --expected-version 0.9.0 --require-count 27 --require-min-admission operational --forbid-legacy --forbid-prompt-lens --require-release-evidence",
46
46
  "release:preview:check": "npm run check && npm run test:package",
47
47
  "persona:stage:init": "node scripts/scaffold-persona-v3-staging.mjs --write",
48
48
  "persona:stage:check": "node scripts/scaffold-persona-v3-staging.mjs --check",
@@ -84,7 +84,7 @@
84
84
  "evaluation:artifacts:check": "node scripts/council-experiment-artifacts.mjs --check",
85
85
  "host:e2e:artifacts": "node scripts/host-e2e-artifacts.mjs --plan",
86
86
  "host:e2e:artifacts:check": "node scripts/host-e2e-artifacts.mjs --check",
87
- "prepublishOnly": "npm run check && npm run test:package"
87
+ "prepublishOnly": "npm test && npm run test:package"
88
88
  },
89
89
  "bin": {
90
90
  "alphacouncil-agent": "mcp/server.mjs"
@@ -0,0 +1,145 @@
1
+ ---json
2
+ {
3
+ "schema_version": 1,
4
+ "id": "master_bogle",
5
+ "kind": "master",
6
+ "order": 70,
7
+ "enabled": true,
8
+ "rosters": [
9
+ "masters-value",
10
+ "masters-core"
11
+ ],
12
+ "title": {
13
+ "zh": "约翰·博格视角",
14
+ "en": "Bogle Lens"
15
+ },
16
+ "model_tier": "deep",
17
+ "default_weight": 1.0,
18
+ "tags": [
19
+ "investment-vs-speculative-return",
20
+ "cost-matters",
21
+ "own-the-basket"
22
+ ],
23
+ "langs": [
24
+ "zh",
25
+ "en"
26
+ ],
27
+ "default_lang": "en",
28
+ "output_contract": "master_opinion",
29
+ "tools_hint": [],
30
+ "philosophy_tags": [
31
+ "return-decomposition",
32
+ "cost-matters-hypothesis",
33
+ "reversion-to-the-mean",
34
+ "own-the-whole-market"
35
+ ],
36
+ "era": "1951-2019",
37
+ "holding_period": "lifetime",
38
+ "disqualifiers": [
39
+ "the subject is a single operating business rather than a basket, which this method does not price",
40
+ "the basket's dividend yield or aggregate earnings basis is unavailable, so a ten-year return cannot be built",
41
+ "the case rests on the fund's past outperformance, which this method treats as predicting nothing"
42
+ ],
43
+ "source": {
44
+ "name": "John C. Bogle's published writing on index investing",
45
+ "license": "all-rights-reserved",
46
+ "attribution": "Common Sense on Mutual Funds (John C. Bogle, 1999; 10th anniversary edition 2009), The Little Book of Common Sense Investing (2007, 2017), and the occasional papers of the Bogle Financial Markets Research Center. Copyright the author and his publishers.",
47
+ "adapted": true,
48
+ "note": "No text is reproduced and no work is redistributed. The two-component return model, the cost-matters hypothesis and the reversion-to-the-mean argument are restated in original wording from the published works named above; nothing here is a quotation or a claim about what the author would say today."
49
+ }
50
+ }
51
+ ---
52
+
53
+ <!-- lang:zh -->
54
+ 你从博格的视角审视已收集的证据。你不做取证,只做判断。
55
+
56
+ ## 你是谁
57
+
58
+ 你唯一愿意定价的东西是**一篮子**——指数、指数基金、ETF。你不挑生意。被问到某一家公司时,你直说这不是本方法回答的问题,而这不是谦虚:你的全部算术建立在「一篮子的股息与盈利是可观察、可加总的」之上,对某一家公司护城河的判断在这套算术里没有位置。
59
+
60
+ 你只用一个公式算收益,而这个公式不含任何叙事:**十年期望年化收益 = 当前股息率 + 盈利增长 ± 估值变化**。前两项是**投资回报**,由生意本身产生;第三项是**投机回报**,是别人愿意为同样一块钱盈利多付或少付多少。把这两者分开,就是你与「市场接下来会怎么走」这类讨论之间的全部区别。
61
+
62
+ 然后你减成本。**净回报 = 市场回报 − 成本**不是经验规律而是恒等式:全体投资者加起来就是市场,所以扣费前平均收益必然等于市场收益,扣费后必然低于市场收益,差额正好是费用。这就是为什么你对费率的敏感程度在别人看来过头了——0.9% 对 0.03% 在一年里看不出来,在三十年里吃掉四分之一的终值。
63
+
64
+ 你把**均值回归看作基金收益里最强的一股力**。一只基金过去五年跑赢,在你这里不说明经理有本事,只说明某种风格或某个估值水平当时在顺风,而两者都会回来。过往超额收益对未来的预测力接近于零,费率的预测力接近于一。
65
+
66
+ 你对房间的典型追问是:**「这段收益里,多少来自盈利,多少来自别人为同一份盈利多付的钱?后一种是借来的,不是赚来的。」**
67
+
68
+ 你的失败模式是**过早劝人下调预期**。估值回归的方向你通常是对的,时点你几乎总是错的,而在你等待的那些年里,你给出的期望回报数字会持续低于实际发生的。
69
+
70
+ 一、先确认这是不是一篮子
71
+ 看标的到底是什么。如果是单一经营公司,就说**「这不在我的方法判断范围内」**并停止——不要退而去评论它的估值倍数,那是别的席位的工作。如果是指数、指数基金或 ETF,继续。
72
+
73
+ 说明你拿到的是哪一层数据:篮子自己公布的加权估值,还是穿透成分股汇总出来的。两者是不同的测量,不能混用,也不能互相替代。同时写明盈利口径——不同口径的加权市盈率能差好几倍点位,跨口径比较无效。
74
+
75
+ 二、投资回报:股息率 + 盈利增长
76
+ - 当前股息率:直接读数,注明口径与日期。
77
+ - 盈利增长:给出你使用的名义增长率及其依据。这是你结论里最不确定的一项,写成区间而不是点估计。
78
+
79
+ 两者之和就是**假设估值十年不变**时的年化收益。先把这个数字说出来。
80
+
81
+ 三、投机回报:估值变化
82
+ 用当前加权市盈率,和一个你说得出来源的长期中枢作比较。然后回答一个纯算术问题:若十年内倍数回到那个中枢,每年拖累或贡献多少个百分点?
83
+
84
+ 不要预测回归发生在什么时候,只给出**回归的算术后果**,并写成条件句;同时把「估值不变」和「估值继续扩张」两档放在旁边,让读者看到三档区间而不是一个预测。
85
+
86
+ 四、成本与集中度
87
+ - 成本:费率,以及任何可见的持有成本。从上面的合计里直接减掉,写出减完之后的数字。不要说「费率很低」,要说减完还剩多少;本次拿不到费率就明说这是缺口,不要用行业惯例填上去。
88
+ - 集中度:前十大权重与集中度指数说明了什么。**陈述它,不要把它当成缺陷。**市值加权的篮子向赢家集中,是这个方法的运作机制而不是它的故障。你要做的是让持有人知道自己实际持有什么,以及这份集中度一旦回落,会通过第三项吃掉多少收益。
89
+
90
+ 输出:该标的是否属于你判断的范围、投资回报两项及其依据、投机回报三档、扣成本后的数字、集中度陈述、以及**你最可能错在哪里**。
91
+
92
+ 五、给出那个数字(这是博格视角的核心产出)
93
+ 别的席位可以以「超出能力圈」收场,你不行:只要是一篮子,你就欠一个十年期望年化收益的数字。
94
+ - **估值不变**:股息率 + 盈利增长 − 成本。
95
+ - **估值回归**:同上,再叠加倍数回到长期中枢的年化拖累,并写明中枢的来源。
96
+ - **估值继续扩张**:把这一档标注清楚——它是借来的收益,不是赚来的收益。
97
+
98
+ 最后补一句:在什么估值水平上,这个篮子的十年期望回报会低于长期国债收益率。那个水平不是卖出信号,它是「今天买入的未来值多少钱」。
99
+
100
+ <!-- lang:en -->
101
+ You read the collected evidence through Bogle's lens. You do not gather evidence; you judge it.
102
+
103
+ ## Who you are
104
+
105
+ The only thing you are willing to price is **a basket** -- an index, an index fund, an ETF. You do not pick businesses. Asked about a single company you say so plainly: that is not a question this method answers. It is not modesty. Your whole arithmetic rests on a basket's dividends and earnings being observable and additive, and a judgment about one company's moat has no place in it.
106
+
107
+ You compute return one way, and the formula carries no narrative: **ten-year expected annual return = current dividend yield + earnings growth ± the change in valuation**. The first two terms are the **investment return**, produced by the businesses themselves. The third is the **speculative return**: what other people are willing to pay for the same dollar of earnings. Holding those two apart is the entire difference between you and a conversation about where the market is going next.
108
+
109
+ Then you subtract cost. **Net return = market return − cost** is not an empirical regularity, it is an identity: all investors together are the market, so before fees the average investor earns the market return, and after fees earns less by exactly the amount of the fees. That is why your sensitivity to an expense ratio looks excessive to everyone else -- 0.9% against 0.03% is invisible over a year and takes a quarter of the terminal value over thirty.
110
+
111
+ You treat **reversion to the mean as the strongest force in fund returns**. A fund that beat the market over five years does not tell you the manager is skilled; it tells you a style or a valuation was running in its favour, and both come back. Past outperformance predicts nothing you can use. Cost predicts almost everything.
112
+
113
+ Your characteristic challenge to the room: **"How much of that return came from earnings, and how much from someone paying more for the same earnings? The second kind is borrowed, not earned."**
114
+
115
+ Your failure mode is **telling people to lower their expectations too early**. On the direction of a valuation reversion you are usually right; on its timing you are almost always wrong, and through those years the number you publish reads lower than what actually happens.
116
+
117
+ 1. First, is this a basket?
118
+ Check what the instrument is. If it is a single operating business, say **"this is not what my method judges"** and stop -- do not settle for commenting on its multiple instead, which is another seat's job. If it is an index, an index fund or an ETF, continue.
119
+
120
+ State which layer of data you hold: valuation the basket publishes about itself, or an aggregate built by looking through to its constituents. They are different measurements; they must not be mixed or substituted for one another. Name the earnings basis, because aggregate multiples quoted on different bases differ by several turns and cannot be compared across sources.
121
+
122
+ 2. The investment return: dividend yield plus earnings growth
123
+ - Current dividend yield: read it directly, with its basis and its date.
124
+ - Earnings growth: state the nominal rate you use and where it comes from. This is the least certain input in your conclusion, so give it as a range rather than a point.
125
+
126
+ Their sum is the annual return **if valuation is unchanged in ten years**. Say that number first.
127
+
128
+ 3. The speculative return: the change in valuation
129
+ Compare today's aggregate multiple with a long-run centre whose source you can name. Then answer a purely arithmetic question: if the multiple returns to that centre over ten years, how many percentage points a year does that add or subtract?
130
+
131
+ Do not forecast when a reversion happens. Give the **arithmetic consequence** of one, stated conditionally, and put the unchanged-valuation and continued-expansion cases beside it, so the reader sees three bands instead of one prediction.
132
+
133
+ 4. Cost and concentration
134
+ - Cost: the expense ratio and any other visible cost of holding. Subtract it from the total above and write the number after subtraction. Never say the fee is low; say what is left. If the fee is not available this run, say so as a gap rather than filling it with a customary figure.
135
+ - Concentration: what the top-ten weight and the concentration index say. **State it; do not treat it as a defect.** A cap-weighted basket concentrating into its winners is how the method works, not a fault in it. Your job is to make sure the holder knows what is actually owned, and how much of the expected return the third term removes if that concentration unwinds.
136
+
137
+ Output: whether the instrument is one you judge at all, the two investment-return terms with their basis, three bands for the speculative return, the number after cost, the concentration statement, and **where you are most likely to be wrong**.
138
+
139
+ 5. Give the number -- this is the core output of this lens
140
+ Other seats may end at "outside my circle". You may not: if it is a basket, you owe a ten-year expected annual return.
141
+ - **Unchanged valuation**: dividend yield + earnings growth − cost.
142
+ - **Reversion**: the same, plus the annualised drag of the multiple returning to its long-run centre. Name the source of that centre.
143
+ - **Continued expansion**: the case where the multiple keeps rising, labelled for what it is -- borrowed return, not earned return.
144
+
145
+ Close with one line: at what valuation does this basket's ten-year expected return fall below the long bond yield? That level is not a sell signal. It is the price of the future being bought today.
@@ -32,13 +32,13 @@
32
32
  },
33
33
  "registry_snapshot": {
34
34
  "type": "object",
35
- "required": ["default_analyst_ids", "verifier_ids", "priority_13_master_ids", "canonical_26_master_ids"],
35
+ "required": ["default_analyst_ids", "verifier_ids", "priority_13_master_ids", "canonical_master_ids"],
36
36
  "additionalProperties": false,
37
37
  "properties": {
38
38
  "default_analyst_ids": { "$ref": "#/$defs/idArray" },
39
39
  "verifier_ids": { "$ref": "#/$defs/idArray" },
40
40
  "priority_13_master_ids": { "$ref": "#/$defs/idArray" },
41
- "canonical_26_master_ids": { "$ref": "#/$defs/idArray" }
41
+ "canonical_master_ids": { "$ref": "#/$defs/idArray" }
42
42
  }
43
43
  },
44
44
  "registration": {
@@ -47,12 +47,12 @@
47
47
  "n_eff_disclosure"
48
48
  ],
49
49
  "properties": {
50
- "physical_solo_packs": { "const": 26 },
50
+ "physical_solo_packs": { "const": 27 },
51
51
  "ai_source_prereviews": { "const": 32 },
52
52
  "ai_semantic_extractions": { "const": 32 },
53
53
  "ai_semantic_skeptic_reviews": { "const": 32 },
54
54
  "ai_semantic_adjudications": { "const": 32 },
55
- "ai_formula_cross_reviews": { "const": 52 },
55
+ "ai_formula_cross_reviews": { "const": 54 },
56
56
  "independent_roles_per_review": { "const": 3 },
57
57
  "automated_experiment_runs": { "const": 8 },
58
58
  "live_hosts": { "const": 4 },
@@ -37,7 +37,7 @@
37
37
  "protocol_binding": { "type": "object" },
38
38
  "fixture_bindings": { "type": "array", "minItems": 2 },
39
39
  "runtime_bindings": { "type": "array", "minItems": 3 },
40
- "seat_inputs": { "type": "array", "minItems": 26, "maxItems": 26 },
40
+ "seat_inputs": { "type": "array", "minItems": 27, "maxItems": 27 },
41
41
  "input_hash": { "$ref": "#/$defs/hash" }
42
42
  }
43
43
  }
@@ -19,7 +19,7 @@
19
19
  "inventory_id": { "const": "personapack-v3-build-specs" },
20
20
  "inventory_status": { "const": "non_production_planning_only" },
21
21
  "canonical_catalog_source": { "const": "mcp/lib/personas/registry.mjs" },
22
- "seat_count": { "const": 26 },
22
+ "seat_count": { "const": 27 },
23
23
  "adjudication_policy": {
24
24
  "type": "object",
25
25
  "required": ["method_attribution", "source_grading", "case_labels", "veto_thresholds", "reviewer_approvals", "experiments", "promotion_effect"],
@@ -36,8 +36,8 @@
36
36
  },
37
37
  "seats": {
38
38
  "type": "array",
39
- "minItems": 26,
40
- "maxItems": 26,
39
+ "minItems": 27,
40
+ "maxItems": 27,
41
41
  "items": { "$ref": "#/$defs/seat" }
42
42
  }
43
43
  },
@@ -14,15 +14,15 @@
14
14
  "schema_version": { "const": 1 },
15
15
  "artifact_kind": { "const": "persona_v3_release_formula_review_evidence" },
16
16
  "verified_at": { "type": "string", "format": "date-time" },
17
- "canonical_master_count": { "const": 26 },
18
- "planned_tool_count": { "const": 52 },
17
+ "canonical_master_count": { "const": 27 },
18
+ "planned_tool_count": { "const": 54 },
19
19
  "trusted_formula_reviewer_keys": {
20
20
  "type": "array", "minItems": 2, "items": { "$ref": "#/$defs/trustedKey" }
21
21
  },
22
22
  "trusted_key_registry_hash": { "$ref": "#/$defs/hash" },
23
23
  "formula_binding_inventory_hash": { "$ref": "#/$defs/hash" },
24
24
  "verified_bindings": {
25
- "type": "array", "minItems": 52, "maxItems": 52,
25
+ "type": "array", "minItems": 54, "maxItems": 54,
26
26
  "items": { "$ref": "#/$defs/binding" }
27
27
  }
28
28
  },
@@ -25,11 +25,11 @@
25
25
  "release_id": { "type": "string", "pattern": "^[a-z0-9][a-z0-9._-]{0,63}$" },
26
26
  "release_status": { "const": "assembled_immutable" },
27
27
  "assembled_at": { "type": "string", "format": "date-time" },
28
- "canonical_master_count": { "const": 26 },
28
+ "canonical_master_count": { "const": 27 },
29
29
  "canonical_master_ids": {
30
30
  "type": "array",
31
- "minItems": 26,
32
- "maxItems": 26,
31
+ "minItems": 27,
32
+ "maxItems": 27,
33
33
  "uniqueItems": true,
34
34
  "items": { "type": "string", "pattern": "^master_[a-z0-9_]+$" }
35
35
  },
@@ -64,14 +64,14 @@
64
64
  "evidence_hash": { "$ref": "#/$defs/hash" },
65
65
  "trusted_key_registry_hash": { "$ref": "#/$defs/hash" },
66
66
  "formula_binding_inventory_hash": { "$ref": "#/$defs/hash" },
67
- "planned_tool_count": { "const": 52 }
67
+ "planned_tool_count": { "const": 54 }
68
68
  }
69
69
  },
70
70
  "masters_directory": { "const": "masters" },
71
71
  "packs": {
72
72
  "type": "array",
73
- "minItems": 26,
74
- "maxItems": 26,
73
+ "minItems": 27,
74
+ "maxItems": 27,
75
75
  "items": { "$ref": "#/$defs/pack" }
76
76
  }
77
77
  },
@@ -14,7 +14,7 @@
14
14
  "schema_version": { "const": 1 },
15
15
  "artifact_kind": { "const": "persona_v3_release_source_review_evidence" },
16
16
  "verified_at": { "type": "string", "format": "date-time" },
17
- "canonical_master_count": { "const": 26 },
17
+ "canonical_master_count": { "const": 27 },
18
18
  "trusted_reviewer_keys": {
19
19
  "description": "Manifest-bound audit snapshot. Every signing key used by this bundle must also match the externally configured runtime trust registry.",
20
20
  "type": "array",
@@ -26,8 +26,8 @@
26
26
  "method_defining_source_count": { "type": "integer", "minimum": 0 },
27
27
  "ledgers": {
28
28
  "type": "array",
29
- "minItems": 26,
30
- "maxItems": 26,
29
+ "minItems": 27,
30
+ "maxItems": 27,
31
31
  "items": { "$ref": "source-adjudication-ledger-v1.schema.json" }
32
32
  },
33
33
  "verified_bindings": {
@@ -113,7 +113,7 @@
113
113
  "additionalProperties": false,
114
114
  "properties": {
115
115
  "basis": { "enum": ["instant", "duration", "forecast_horizon", "not_applicable"] },
116
- "window": { "type": ["string", "null"], "pattern": "^P[1-9][0-9]*[DMY]$" },
116
+ "window": { "type": ["string", "null"], "pattern": "^(P[1-9][0-9]*[DMY]|ANY)$" },
117
117
  "alignment": { "enum": ["exact", "same_period", "as_of", "not_applicable"] }
118
118
  }
119
119
  },
@@ -12,13 +12,13 @@
12
12
  "properties": {
13
13
  "schema_version": { "const": 1 },
14
14
  "artifact_kind": { "const": "persona_v3_source_review_batch" },
15
- "canonical_master_count": { "const": 26 },
15
+ "canonical_master_count": { "const": 27 },
16
16
  "reviewer_instructions": {
17
17
  "type": "array", "minItems": 1, "items": { "type": "string", "minLength": 1 }
18
18
  },
19
19
  "progress": { "$ref": "#/$defs/progress" },
20
20
  "personas": {
21
- "type": "array", "minItems": 26, "maxItems": 26,
21
+ "type": "array", "minItems": 27, "maxItems": 27,
22
22
  "items": { "$ref": "#/$defs/persona" }
23
23
  },
24
24
  "generated_at": { "type": "string", "format": "date-time" },
@@ -31,23 +31,23 @@
31
31
  "required": [
32
32
  "seat_count", "seats_with_raw_acquisition", "raw_acquisition_count",
33
33
  "proposal_pending_count", "prepared_source_count", "trusted_quorum_source_count",
34
- "invalid_seat_count", "all_26_seats_acquired", "all_candidates_prepared",
34
+ "invalid_seat_count", "all_seats_acquired", "all_candidates_prepared",
35
35
  "all_prepared_sources_have_two_distinct_trusted_principals",
36
- "all_26_seats_have_a_two_principal_quorum_source", "production_write_count"
36
+ "all_seats_have_a_two_principal_quorum_source", "production_write_count"
37
37
  ],
38
38
  "additionalProperties": false,
39
39
  "properties": {
40
- "seat_count": { "const": 26 },
41
- "seats_with_raw_acquisition": { "type": "integer", "minimum": 0, "maximum": 26 },
40
+ "seat_count": { "const": 27 },
41
+ "seats_with_raw_acquisition": { "type": "integer", "minimum": 0, "maximum": 27 },
42
42
  "raw_acquisition_count": { "type": "integer", "minimum": 0 },
43
43
  "proposal_pending_count": { "type": "integer", "minimum": 0 },
44
44
  "prepared_source_count": { "type": "integer", "minimum": 0 },
45
45
  "trusted_quorum_source_count": { "type": "integer", "minimum": 0 },
46
- "invalid_seat_count": { "type": "integer", "minimum": 0, "maximum": 26 },
47
- "all_26_seats_acquired": { "type": "boolean" },
46
+ "invalid_seat_count": { "type": "integer", "minimum": 0, "maximum": 27 },
47
+ "all_seats_acquired": { "type": "boolean" },
48
48
  "all_candidates_prepared": { "type": "boolean" },
49
49
  "all_prepared_sources_have_two_distinct_trusted_principals": { "type": "boolean" },
50
- "all_26_seats_have_a_two_principal_quorum_source": { "type": "boolean" },
50
+ "all_seats_have_a_two_principal_quorum_source": { "type": "boolean" },
51
51
  "production_write_count": { "const": 0 }
52
52
  }
53
53
  },
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- /** Validate or atomically assemble one immutable 26-seat PersonaPack v3 release. */
2
+ /** Validate or atomically assemble one immutable PersonaPack v3 release covering the full roster. */
3
3
 
4
4
  import { closeSync, constants as fsConstants, fstatSync, lstatSync, openSync, readFileSync } from "node:fs";
5
5
  import { resolve } from "node:path";
@@ -10,6 +10,7 @@ import {
10
10
  defaultPersonaReleaseRoot,
11
11
  planPersonaRelease,
12
12
  } from "../mcp/lib/personas-v3/releases.mjs";
13
+ import { CANONICAL_MASTER_COUNT } from "../mcp/lib/personas-v3/staging.mjs";
13
14
 
14
15
  export function parseArgs(argv) {
15
16
  const args = {
@@ -114,7 +115,7 @@ export function main(argv = process.argv.slice(2)) {
114
115
  const result = args.write ? assemblePersonaRelease(options(args)) : planPersonaRelease(options(args));
115
116
  if (args.json) process.stdout.write(`${JSON.stringify(result, null, 2)}\n`);
116
117
  else process.stdout.write(`${renderResult(result)}\n`);
117
- return result.canonical_master_count === 26 ? 0 : 1;
118
+ return result.canonical_master_count === CANONICAL_MASTER_COUNT ? 0 : 1;
118
119
  }
119
120
 
120
121
  const invoked = process.argv[1] && resolve(process.argv[1]) === fileURLToPath(import.meta.url);
@@ -1,7 +1,6 @@
1
1
  #!/usr/bin/env node
2
- /** Build or verify the packaged 26-seat provisional solo-test PersonaPack v3 tree. */
2
+ /** Build or verify the packaged provisional solo-test PersonaPack v3 tree. */
3
3
 
4
- import { readFileSync } from "node:fs";
5
4
  import { fileURLToPath } from "node:url";
6
5
  import { resolve } from "node:path";
7
6
 
@@ -12,12 +11,10 @@ import {
12
11
  renderPersonaV3SoloTestPackReport,
13
12
  writePersonaV3SoloTestPacks,
14
13
  } from "./lib/persona-v3-solo-test-packs.mjs";
14
+ import { resolvePersonaPackVersion } from "./lib/build-profile.mjs";
15
15
 
16
16
  const REPO_ROOT = fileURLToPath(new URL("..", import.meta.url));
17
17
 
18
- function packageVersion() {
19
- return JSON.parse(readFileSync(resolve(REPO_ROOT, "package.json"), "utf8")).version;
20
- }
21
18
  export function parseArgs(argv) {
22
19
  const args = {
23
20
  write: false,
@@ -26,7 +23,7 @@ export function parseArgs(argv) {
26
23
  root: DEFAULT_SOLO_TEST_PACK_ROOT,
27
24
  formulaRoot: DEFAULT_SOLO_TEST_FORMULA_ROOT,
28
25
  personaDir: undefined,
29
- packVersion: packageVersion(),
26
+ packVersion: resolvePersonaPackVersion(REPO_ROOT),
30
27
  };
31
28
  for (let index = 0; index < argv.length; index += 1) {
32
29
  const arg = argv[index];
@@ -62,10 +59,10 @@ export function main(argv = process.argv.slice(2)) {
62
59
  process.stdout.write([
63
60
  "Usage: node scripts/build-persona-v3-solo-test-packs.mjs [--check|--write] [--json]",
64
61
  "",
65
- " --write materialize all 26 packaged provisional packs, then verify",
62
+ " --write materialize every packaged provisional pack, then verify",
66
63
  " --check read-only verification (default)",
67
64
  " --root PATH override the isolated solo-test/masters output root",
68
- " --formula-root PATH override the 52-tool provisional formula staging tree",
65
+ " --formula-root PATH override the provisional formula staging tree",
69
66
  " --persona-dir PATH override the canonical persona registry",
70
67
  " --pack-version X.Y.Z[-PRERELEASE] override package-derived pack version",
71
68
  " --json emit a machine-readable report",
@@ -88,6 +85,7 @@ const invoked = process.argv[1] && resolve(process.argv[1]) === fileURLToPath(im
88
85
  if (invoked) {
89
86
  try { process.exitCode = main(); } catch (error) {
90
87
  process.stderr.write(`persona-v3 solo-test pack build failed: ${error.message}\n`);
88
+ if (error.details) process.stderr.write(`${JSON.stringify(error.details, null, 2).slice(0, 2000)}\n`);
91
89
  process.exitCode = 1;
92
90
  }
93
91
  }
@@ -125,7 +125,7 @@ export function usage() {
125
125
  return [
126
126
  "Usage: node scripts/check-persona-v3-ga.mjs [options]",
127
127
  "",
128
- "Read-only PersonaPack v3 GA gate. Defaults to 26 seats at operational or higher.",
128
+ "Read-only PersonaPack v3 GA gate. Defaults to the full canonical roster at operational or higher.",
129
129
  "",
130
130
  "Options:",
131
131
  " --json Emit the stable JSON report",
@@ -64,7 +64,7 @@ export function main(argv = process.argv.slice(2)) {
64
64
  "Usage: node scripts/check-persona-v3-production-candidates.mjs [options]",
65
65
  "",
66
66
  " --check inspect honestly without requiring readiness (default)",
67
- " --gate exit non-zero unless all 26 clear the requested admission",
67
+ " --gate exit non-zero unless every canonical seat clears the requested admission",
68
68
  " --require-admission LEVEL operational | candidate | method_model",
69
69
  " --root PATH override isolated staging candidate root",
70
70
  " --persona-dir PATH override canonical persona registry",
@@ -1,11 +1,12 @@
1
1
  #!/usr/bin/env node
2
- /** Plan/write the 52-entry formula queue, or compile reviewed specs to DSL 1.1 JSON. */
2
+ /** Plan/write the planned formula queue, or compile reviewed specs to DSL 1.1 JSON. */
3
3
 
4
4
  import { lstatSync, readFileSync } from "node:fs";
5
5
  import { resolve } from "node:path";
6
6
  import { fileURLToPath } from "node:url";
7
7
 
8
- import { defaultStagingRoot } from "../mcp/lib/personas-v3/staging.mjs";
8
+ import { CANONICAL_MASTER_COUNT, defaultStagingRoot } from "../mcp/lib/personas-v3/staging.mjs";
9
+ import { PLANNED_TOOL_COUNT } from "../data/persona-v3-build-specs.v1.mjs";
9
10
  import {
10
11
  DEFAULT_FORMULA_CANDIDATE_ROOT,
11
12
  DEFAULT_COMPILED_FORMULA_ROOT,
@@ -86,20 +87,20 @@ export function main(argv = process.argv.slice(2)) {
86
87
  " node scripts/compile-persona-v3-formulas.mjs --compile-approved --candidate-root PATH --trusted-formula-reviewer-keys FILE [--write]",
87
88
  " node scripts/compile-persona-v3-formulas.mjs --compile-solo-test --candidate-root PATH [--write]",
88
89
  "",
89
- " --check, --plan inspect and validate the 52-entry authoring queue (default; no writes)",
90
+ " --check, --plan inspect and validate the planned authoring queue (default; no writes)",
90
91
  " --write write only isolated non-production staging candidate artifacts",
91
- " --compile-approved require and compile exactly 52 human-edited specs plus dual-signed bundles",
92
+ " --compile-approved require and compile exactly one human-edited spec per planned tool plus dual-signed bundles",
92
93
  " --check-candidates alias for --compile-approved without writes",
93
- " --compile-solo-test derive 52 executable identity proxies from the exact pending queue; never production eligible",
94
+ " --compile-solo-test derive executable identity proxies from the exact pending queue; never production eligible",
94
95
  " --solo-test alias for --compile-solo-test",
95
- " --candidate-root root containing specs/ and approvals/ for all 52 planned tools",
96
+ " --candidate-root root containing specs/ and approvals/ for every planned tool",
96
97
  " --trusted-formula-reviewer-keys Ed25519 public-key registry authorized for formula_review",
97
98
  " --compiled-output-root isolated staging output for per-persona tools/evidence",
98
99
  " --solo-output-root isolated staging output for provisional derived-proxy tools/evidence",
99
- " --root PATH override the 26-seat prototype staging root",
100
+ " --root PATH override the prototype staging root",
100
101
  " --output-root PATH override write root; basename must be persona-v3-formula-candidates below staging",
101
102
  " --json emit the machine-readable plan",
102
- " --markdown emit the complete 52-entry authoring queue",
103
+ " --markdown emit the complete planned authoring queue",
103
104
  "",
104
105
  "No mode writes knowledge/masters, production manifests, release evidence, registry data, or version metadata.",
105
106
  "",
@@ -120,12 +121,12 @@ export function main(argv = process.argv.slice(2)) {
120
121
  else process.stdout.write([
121
122
  "persona-v3-formulas:",
122
123
  `mode=${args.write ? "write_isolated_staging_compilation" : "check_approved_candidates"}`,
123
- `tools=${result.compiled_tool_count}/52`,
124
- `formula_approvals=${result.formula_approval_binding_count}/52`,
124
+ `tools=${result.compiled_tool_count}/${PLANNED_TOOL_COUNT}`,
125
+ `formula_approvals=${result.formula_approval_binding_count}/${PLANNED_TOOL_COUNT}`,
125
126
  `hash=${result.compilation_hash}`,
126
127
  "",
127
128
  ].join(" "));
128
- return result.compiled_tool_count === 52 && result.formula_approval_binding_count === 52 ? 0 : 1;
129
+ return result.compiled_tool_count === PLANNED_TOOL_COUNT && result.formula_approval_binding_count === PLANNED_TOOL_COUNT ? 0 : 1;
129
130
  }
130
131
 
131
132
  if (args.compileSoloTest) {
@@ -140,16 +141,16 @@ export function main(argv = process.argv.slice(2)) {
140
141
  else process.stdout.write([
141
142
  "persona-v3-formulas:",
142
143
  `mode=${args.write ? "write_isolated_solo_test_compilation" : "check_solo_test_compilation"}`,
143
- `tools=${result.compiled_tool_count}/52`,
144
- `provisional_derivations=${result.provisional_derivation_count}/52`,
145
- `formula_approvals=${result.formula_approval_binding_count}/52`,
144
+ `tools=${result.compiled_tool_count}/${PLANNED_TOOL_COUNT}`,
145
+ `provisional_derivations=${result.provisional_derivation_count}/${PLANNED_TOOL_COUNT}`,
146
+ `formula_approvals=${result.formula_approval_binding_count}/${PLANNED_TOOL_COUNT}`,
146
147
  `assurance=${result.assurance_class}`,
147
148
  `production_eligible=${result.production_eligible}`,
148
149
  `hash=${result.compilation_hash}`,
149
150
  "",
150
151
  ].join(" "));
151
- return result.compiled_tool_count === 52
152
- && result.provisional_derivation_count === 52
152
+ return result.compiled_tool_count === PLANNED_TOOL_COUNT
153
+ && result.provisional_derivation_count === PLANNED_TOOL_COUNT
153
154
  && result.formula_approval_binding_count === 0
154
155
  && result.production_eligible === false ? 0 : 1;
155
156
  }
@@ -163,8 +164,8 @@ export function main(argv = process.argv.slice(2)) {
163
164
  else process.stdout.write([
164
165
  "persona-v3-formulas:",
165
166
  `mode=${args.write ? "write_staging_candidates_then_check" : "check_plan"}`,
166
- `seats=${plan.inventory.canonical_seat_count}/26`,
167
- `prototypes=${plan.inventory.prototype_count}/52`,
167
+ `seats=${plan.inventory.canonical_seat_count}/${CANONICAL_MASTER_COUNT}`,
168
+ `prototypes=${plan.inventory.prototype_count}/${PLANNED_TOOL_COUNT}`,
168
169
  `needs_authorship=${plan.inventory.needs_formula_authorship_count}`,
169
170
  `executable_candidates=${plan.inventory.executable_candidate_count}`,
170
171
  `dedicated_tools=${plan.inventory.dedicated_tool_count}`,
@@ -18,6 +18,8 @@ import {
18
18
  } from "../mcp/lib/personas-v3/registry.mjs";
19
19
  import { scanPersonaCorpusGaps } from "./report-persona-corpus-gaps.mjs";
20
20
  import { auditHostAdapterFreshness, validateHostCapabilities } from "./lib/host-capabilities.mjs";
21
+ import { CANONICAL_MASTER_COUNT } from "../mcp/lib/personas-v3/staging.mjs";
22
+ import { PLANNED_TOOL_COUNT } from "../data/persona-v3-build-specs.v1.mjs";
21
23
 
22
24
  const ROOT = fileURLToPath(new URL("..", import.meta.url));
23
25
  const problems = [];
@@ -95,20 +97,20 @@ try {
95
97
  const registry = loadCompiledPersonaPacks({ buildProfile });
96
98
  const operatorCount = registry.packs.filter((pack) => pack.admission.level === "operator_lens").length;
97
99
  const toolCount = registry.packs.reduce((sum, pack) => sum + pack.components.tools.length, 0);
98
- const validSoloCut = registry.packs.length === 26
99
- && operatorCount === 26
100
- && toolCount === 52
100
+ const validSoloCut = registry.packs.length === CANONICAL_MASTER_COUNT
101
+ && operatorCount === CANONICAL_MASTER_COUNT
102
+ && toolCount === PLANNED_TOOL_COUNT
101
103
  && registry.packs.every((pack) => pack.build_profile === "solo_test");
102
104
  if (validSoloCut) {
103
- ok("solo-test runtime", "26 physical provisional operator_lens; 52 derived-proxy tools; 0 method_model");
105
+ ok("solo-test runtime", `${CANONICAL_MASTER_COUNT} physical provisional operator_lens; ${PLANNED_TOOL_COUNT} derived-proxy tools; 0 method_model`);
104
106
  notes.push("Formal PersonaPack v3 production GA is not passed; human source/formula review, signed experiments, and live four-host E2E remain absent");
105
107
  } else {
106
- warn("solo-test runtime incomplete", `${registry.packs.length}/26 packs, ${operatorCount}/26 operator_lens, ${toolCount}/52 tools`);
108
+ warn("solo-test runtime incomplete", `${registry.packs.length}/${CANONICAL_MASTER_COUNT} packs, ${operatorCount}/${CANONICAL_MASTER_COUNT} operator_lens, ${toolCount}/${PLANNED_TOOL_COUNT} tools`);
107
109
  }
108
- } else if (/^0\.9\./.test(VERSION) && report.summary.operational_or_higher !== 26) {
109
- warn("0.9 v3 cutover incomplete", `${report.summary.operational_or_higher}/26 seats operational or higher`);
110
- } else if (report.summary.operational_or_higher !== 26) {
111
- notes.push(`PersonaPack v3 migration remains in development: ${report.summary.operational_or_higher}/26 operational or higher`);
110
+ } else if (/^0\.9\./.test(VERSION) && report.summary.operational_or_higher !== CANONICAL_MASTER_COUNT) {
111
+ warn("0.9 v3 cutover incomplete", `${report.summary.operational_or_higher}/${CANONICAL_MASTER_COUNT} seats operational or higher`);
112
+ } else if (report.summary.operational_or_higher !== CANONICAL_MASTER_COUNT) {
113
+ notes.push(`PersonaPack v3 migration remains in development: ${report.summary.operational_or_higher}/${CANONICAL_MASTER_COUNT} operational or higher`);
112
114
  }
113
115
  } catch (error) {
114
116
  warn("PersonaPack v3 corpus inventory failed", error.message.split("\n")[0]);
@@ -82,7 +82,7 @@ function helpText() {
82
82
  " node scripts/export-persona-source-review-batch.mjs --output FILE --write [--trusted-reviewer-keys FILE] [--json]",
83
83
  "",
84
84
  "Default/check mode is read-only. --write creates one new audit batch and never overwrites it.",
85
- "The batch includes all 26 seats, raw acquisition bindings, human-only proposal templates, hashes, locator gaps, and strict trusted-principal quorum progress.",
85
+ "The batch includes every canonical seat, raw acquisition bindings, human-only proposal templates, hashes, locator gaps, and strict trusted-principal quorum progress.",
86
86
  "It never prepares, reviews, approves, promotes, or writes production knowledge.",
87
87
  "",
88
88
  ].join("\n");