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.
- package/.claude-plugin/marketplace.json +3 -3
- package/.claude-plugin/plugin.json +2 -2
- package/.codex-plugin/plugin.json +4 -4
- package/AGENTS.md +25 -11
- package/CHANGELOG.md +146 -0
- package/CLAUDE.md +24 -7
- package/README.ja.md +15 -10
- package/README.md +21 -13
- package/README.zh-CN.md +17 -12
- package/data/authored/core-seats.mjs +808 -0
- package/data/authored/growth-seats.mjs +581 -0
- package/data/authored/index.mjs +114 -0
- package/data/authored/quant-seats.mjs +564 -0
- package/data/authored/value-seats.mjs +663 -0
- package/data/build-profile.v1.json +2 -1
- package/data/council-evaluation-protocol.v1.json +7 -4
- package/data/master-selector-method-locales.v1.mjs +10 -0
- package/data/persona-v3-ai-assisted-solo-profile.v1.json +2 -2
- package/data/persona-v3-build-specs.v1.mjs +60 -3
- package/docs/INSTALL.md +6 -10
- package/docs/personas.md +2 -1
- package/docs/plans/v1.0-roadmap.md +487 -0
- package/docs/plans/v1.1-basket-native-seats.md +267 -0
- package/docs/releases/v0.9.5.md +96 -0
- package/docs/releases/v1.0.0.md +164 -0
- package/docs/report-contract.md +30 -6
- package/knowledge/ai-assisted-solo/experiments/runs/a.json +13 -13
- package/knowledge/ai-assisted-solo/experiments/runs/b.json +2 -2
- package/knowledge/ai-assisted-solo/experiments/runs/c.json +2 -2
- package/knowledge/ai-assisted-solo/experiments/runs/d13.json +126 -126
- package/knowledge/ai-assisted-solo/experiments/runs/d26.json +274 -254
- package/knowledge/ai-assisted-solo/experiments/runs/e-d13.json +129 -129
- package/knowledge/ai-assisted-solo/experiments/runs/e-d26.json +277 -257
- package/knowledge/ai-assisted-solo/experiments/runs/h_ai_reference.json +278 -258
- package/knowledge/ai-assisted-solo/experiments/simulation-input.json +7278 -556
- package/knowledge/ai-assisted-solo/experiments/simulation-manifest.json +22 -22
- 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
- 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
- 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
- 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
- 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
- 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
- package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_bogle/reviews/expected_return_over_long_bond.ai-review.json +277 -0
- package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_bogle/reviews/fundamental_expected_return.ai-review.json +277 -0
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_munger/reviews/reported_earnings_cash_gap.ai-review.json +277 -0
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/review-manifest.json +288 -270
- package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-semantic-adjudications/index.json +2 -2
- package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-semantic-extractions/index.json +2 -2
- package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-semantic-skeptic-reviews/index.json +2 -2
- package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-source-prereviews/index.json +6 -2
- package/knowledge/solo-test/masters/master_ackman/decision_policy.json +122 -11
- package/knowledge/solo-test/masters/master_ackman/doctrine.jsonl +2 -2
- package/knowledge/solo-test/masters/master_ackman/manifest.json +13 -6
- package/knowledge/solo-test/masters/master_ackman/provisional-index.json +3 -3
- package/knowledge/solo-test/masters/master_ackman/sources.jsonl +1 -1
- package/knowledge/solo-test/masters/master_ackman/tools.json +56 -30
- package/knowledge/solo-test/masters/master_aschenbrenner/decision_policy.json +101 -10
- package/knowledge/solo-test/masters/master_aschenbrenner/doctrine.jsonl +2 -2
- package/knowledge/solo-test/masters/master_aschenbrenner/manifest.json +12 -4
- package/knowledge/solo-test/masters/master_aschenbrenner/provisional-index.json +3 -3
- package/knowledge/solo-test/masters/master_aschenbrenner/sources.jsonl +1 -1
- package/knowledge/solo-test/masters/master_aschenbrenner/tools.json +56 -30
- package/knowledge/solo-test/masters/master_asness/decision_policy.json +89 -10
- package/knowledge/solo-test/masters/master_asness/doctrine.jsonl +2 -2
- package/knowledge/solo-test/masters/master_asness/manifest.json +11 -4
- package/knowledge/solo-test/masters/master_asness/provisional-index.json +3 -3
- package/knowledge/solo-test/masters/master_asness/sources.jsonl +1 -1
- package/knowledge/solo-test/masters/master_asness/tools.json +56 -30
- package/knowledge/solo-test/masters/master_bogle/counterfactuals.jsonl +0 -0
- package/knowledge/solo-test/masters/master_bogle/decision_cases.jsonl +0 -0
- package/knowledge/solo-test/masters/master_bogle/decision_policy.json +170 -0
- package/knowledge/solo-test/masters/master_bogle/doctrine.jsonl +14 -0
- package/knowledge/solo-test/masters/master_bogle/evaluation/calibration_cases.jsonl +0 -0
- package/knowledge/solo-test/masters/master_bogle/evaluation/experiments.json +5 -0
- package/knowledge/solo-test/masters/master_bogle/evaluation/golden_cases.jsonl +0 -0
- package/knowledge/solo-test/masters/master_bogle/evaluation/pairwise_cases.jsonl +0 -0
- package/knowledge/solo-test/masters/master_bogle/failures.jsonl +0 -0
- package/knowledge/solo-test/masters/master_bogle/manifest.json +141 -0
- package/knowledge/solo-test/masters/master_bogle/memory_policy.json +5 -0
- package/knowledge/solo-test/masters/master_bogle/provisional-index.json +41 -0
- package/knowledge/solo-test/masters/master_bogle/research_policy.json +11 -0
- package/knowledge/solo-test/masters/master_bogle/sources.jsonl +1 -0
- package/knowledge/solo-test/masters/master_bogle/tools.json +120 -0
- package/knowledge/solo-test/masters/master_bogle/voice.en.md +7 -0
- package/knowledge/solo-test/masters/master_bogle/voice.zh.md +7 -0
- package/knowledge/solo-test/masters/master_buffett/decision_policy.json +102 -11
- package/knowledge/solo-test/masters/master_buffett/doctrine.jsonl +2 -2
- package/knowledge/solo-test/masters/master_buffett/manifest.json +10 -4
- package/knowledge/solo-test/masters/master_buffett/provisional-index.json +3 -3
- package/knowledge/solo-test/masters/master_buffett/sources.jsonl +1 -1
- package/knowledge/solo-test/masters/master_buffett/tools.json +55 -29
- package/knowledge/solo-test/masters/master_burry/decision_policy.json +102 -12
- package/knowledge/solo-test/masters/master_burry/doctrine.jsonl +2 -2
- package/knowledge/solo-test/masters/master_burry/manifest.json +12 -6
- package/knowledge/solo-test/masters/master_burry/provisional-index.json +3 -3
- package/knowledge/solo-test/masters/master_burry/sources.jsonl +1 -1
- package/knowledge/solo-test/masters/master_burry/tools.json +56 -30
- package/knowledge/solo-test/masters/master_cathie_wood/decision_policy.json +74 -12
- package/knowledge/solo-test/masters/master_cathie_wood/doctrine.jsonl +2 -2
- package/knowledge/solo-test/masters/master_cathie_wood/manifest.json +12 -6
- package/knowledge/solo-test/masters/master_cathie_wood/provisional-index.json +3 -3
- package/knowledge/solo-test/masters/master_cathie_wood/sources.jsonl +1 -1
- package/knowledge/solo-test/masters/master_cathie_wood/tools.json +56 -30
- package/knowledge/solo-test/masters/master_dalio/decision_policy.json +123 -16
- package/knowledge/solo-test/masters/master_dalio/doctrine.jsonl +2 -2
- package/knowledge/solo-test/masters/master_dalio/manifest.json +10 -4
- package/knowledge/solo-test/masters/master_dalio/provisional-index.json +3 -3
- package/knowledge/solo-test/masters/master_dalio/sources.jsonl +1 -1
- package/knowledge/solo-test/masters/master_dalio/tools.json +56 -30
- package/knowledge/solo-test/masters/master_damodaran/decision_policy.json +58 -10
- package/knowledge/solo-test/masters/master_damodaran/doctrine.jsonl +2 -2
- package/knowledge/solo-test/masters/master_damodaran/manifest.json +9 -4
- package/knowledge/solo-test/masters/master_damodaran/provisional-index.json +3 -3
- package/knowledge/solo-test/masters/master_damodaran/sources.jsonl +1 -1
- package/knowledge/solo-test/masters/master_damodaran/tools.json +54 -28
- package/knowledge/solo-test/masters/master_druckenmiller/decision_policy.json +89 -10
- package/knowledge/solo-test/masters/master_druckenmiller/doctrine.jsonl +2 -2
- package/knowledge/solo-test/masters/master_druckenmiller/manifest.json +11 -4
- package/knowledge/solo-test/masters/master_druckenmiller/provisional-index.json +3 -3
- package/knowledge/solo-test/masters/master_druckenmiller/sources.jsonl +1 -1
- package/knowledge/solo-test/masters/master_druckenmiller/tools.json +55 -29
- package/knowledge/solo-test/masters/master_duan_yongping/decision_policy.json +138 -13
- package/knowledge/solo-test/masters/master_duan_yongping/doctrine.jsonl +2 -2
- package/knowledge/solo-test/masters/master_duan_yongping/manifest.json +17 -7
- package/knowledge/solo-test/masters/master_duan_yongping/provisional-index.json +3 -3
- package/knowledge/solo-test/masters/master_duan_yongping/sources.jsonl +1 -1
- package/knowledge/solo-test/masters/master_duan_yongping/tools.json +82 -30
- package/knowledge/solo-test/masters/master_fisher/decision_policy.json +102 -11
- package/knowledge/solo-test/masters/master_fisher/doctrine.jsonl +2 -2
- package/knowledge/solo-test/masters/master_fisher/manifest.json +13 -6
- package/knowledge/solo-test/masters/master_fisher/provisional-index.json +3 -3
- package/knowledge/solo-test/masters/master_fisher/sources.jsonl +1 -1
- package/knowledge/solo-test/masters/master_fisher/tools.json +58 -32
- package/knowledge/solo-test/masters/master_forensic_short/decision_policy.json +93 -14
- package/knowledge/solo-test/masters/master_forensic_short/doctrine.jsonl +2 -2
- package/knowledge/solo-test/masters/master_forensic_short/manifest.json +6 -4
- package/knowledge/solo-test/masters/master_forensic_short/provisional-index.json +3 -3
- package/knowledge/solo-test/masters/master_forensic_short/sources.jsonl +1 -1
- package/knowledge/solo-test/masters/master_forensic_short/tools.json +53 -27
- package/knowledge/solo-test/masters/master_graham/decision_policy.json +103 -12
- package/knowledge/solo-test/masters/master_graham/doctrine.jsonl +2 -2
- package/knowledge/solo-test/masters/master_graham/manifest.json +12 -4
- package/knowledge/solo-test/masters/master_graham/provisional-index.json +3 -3
- package/knowledge/solo-test/masters/master_graham/sources.jsonl +1 -1
- package/knowledge/solo-test/masters/master_graham/tools.json +67 -28
- package/knowledge/solo-test/masters/master_jhunjhunwala/decision_policy.json +77 -12
- package/knowledge/solo-test/masters/master_jhunjhunwala/doctrine.jsonl +2 -2
- package/knowledge/solo-test/masters/master_jhunjhunwala/manifest.json +11 -6
- package/knowledge/solo-test/masters/master_jhunjhunwala/provisional-index.json +3 -3
- package/knowledge/solo-test/masters/master_jhunjhunwala/sources.jsonl +1 -1
- package/knowledge/solo-test/masters/master_jhunjhunwala/tools.json +54 -28
- package/knowledge/solo-test/masters/master_klarman/decision_policy.json +105 -14
- package/knowledge/solo-test/masters/master_klarman/doctrine.jsonl +2 -2
- package/knowledge/solo-test/masters/master_klarman/manifest.json +8 -2
- package/knowledge/solo-test/masters/master_klarman/provisional-index.json +3 -3
- package/knowledge/solo-test/masters/master_klarman/sources.jsonl +1 -1
- package/knowledge/solo-test/masters/master_klarman/tools.json +55 -29
- package/knowledge/solo-test/masters/master_li_lu/decision_policy.json +101 -10
- package/knowledge/solo-test/masters/master_li_lu/doctrine.jsonl +2 -2
- package/knowledge/solo-test/masters/master_li_lu/manifest.json +13 -6
- package/knowledge/solo-test/masters/master_li_lu/provisional-index.json +3 -3
- package/knowledge/solo-test/masters/master_li_lu/sources.jsonl +1 -1
- package/knowledge/solo-test/masters/master_li_lu/tools.json +58 -32
- package/knowledge/solo-test/masters/master_lynch/decision_policy.json +127 -16
- package/knowledge/solo-test/masters/master_lynch/doctrine.jsonl +2 -2
- package/knowledge/solo-test/masters/master_lynch/manifest.json +14 -6
- package/knowledge/solo-test/masters/master_lynch/provisional-index.json +3 -3
- package/knowledge/solo-test/masters/master_lynch/sources.jsonl +1 -1
- package/knowledge/solo-test/masters/master_lynch/tools.json +67 -28
- package/knowledge/solo-test/masters/master_marks/decision_policy.json +71 -9
- package/knowledge/solo-test/masters/master_marks/doctrine.jsonl +2 -2
- package/knowledge/solo-test/masters/master_marks/manifest.json +11 -6
- package/knowledge/solo-test/masters/master_marks/provisional-index.json +3 -3
- package/knowledge/solo-test/masters/master_marks/sources.jsonl +1 -1
- package/knowledge/solo-test/masters/master_marks/tools.json +54 -28
- package/knowledge/solo-test/masters/master_munger/decision_policy.json +141 -16
- package/knowledge/solo-test/masters/master_munger/doctrine.jsonl +2 -2
- package/knowledge/solo-test/masters/master_munger/manifest.json +10 -6
- package/knowledge/solo-test/masters/master_munger/provisional-index.json +3 -3
- package/knowledge/solo-test/masters/master_munger/sources.jsonl +1 -1
- package/knowledge/solo-test/masters/master_munger/tools.json +52 -26
- package/knowledge/solo-test/masters/master_natenberg/decision_policy.json +59 -11
- package/knowledge/solo-test/masters/master_natenberg/doctrine.jsonl +2 -2
- package/knowledge/solo-test/masters/master_natenberg/manifest.json +9 -6
- package/knowledge/solo-test/masters/master_natenberg/provisional-index.json +3 -3
- package/knowledge/solo-test/masters/master_natenberg/sources.jsonl +1 -1
- package/knowledge/solo-test/masters/master_natenberg/tools.json +50 -24
- package/knowledge/solo-test/masters/master_pabrai/decision_policy.json +125 -14
- package/knowledge/solo-test/masters/master_pabrai/doctrine.jsonl +2 -2
- package/knowledge/solo-test/masters/master_pabrai/manifest.json +8 -2
- package/knowledge/solo-test/masters/master_pabrai/provisional-index.json +3 -3
- package/knowledge/solo-test/masters/master_pabrai/sources.jsonl +1 -1
- package/knowledge/solo-test/masters/master_pabrai/tools.json +55 -29
- package/knowledge/solo-test/masters/master_simons/decision_policy.json +59 -11
- package/knowledge/solo-test/masters/master_simons/doctrine.jsonl +2 -2
- package/knowledge/solo-test/masters/master_simons/manifest.json +8 -4
- package/knowledge/solo-test/masters/master_simons/provisional-index.json +3 -3
- package/knowledge/solo-test/masters/master_simons/sources.jsonl +1 -1
- package/knowledge/solo-test/masters/master_simons/tools.json +43 -30
- package/knowledge/solo-test/masters/master_sinclair/decision_policy.json +59 -11
- package/knowledge/solo-test/masters/master_sinclair/doctrine.jsonl +2 -2
- package/knowledge/solo-test/masters/master_sinclair/manifest.json +8 -6
- package/knowledge/solo-test/masters/master_sinclair/provisional-index.json +3 -3
- package/knowledge/solo-test/masters/master_sinclair/sources.jsonl +1 -1
- package/knowledge/solo-test/masters/master_sinclair/tools.json +54 -28
- package/knowledge/solo-test/masters/master_soros/decision_policy.json +98 -10
- package/knowledge/solo-test/masters/master_soros/doctrine.jsonl +2 -2
- package/knowledge/solo-test/masters/master_soros/manifest.json +10 -7
- package/knowledge/solo-test/masters/master_soros/provisional-index.json +3 -3
- package/knowledge/solo-test/masters/master_soros/sources.jsonl +1 -1
- package/knowledge/solo-test/masters/master_soros/tools.json +54 -28
- package/knowledge/solo-test/masters/master_taleb/decision_policy.json +124 -13
- package/knowledge/solo-test/masters/master_taleb/doctrine.jsonl +2 -2
- package/knowledge/solo-test/masters/master_taleb/manifest.json +9 -5
- package/knowledge/solo-test/masters/master_taleb/provisional-index.json +3 -3
- package/knowledge/solo-test/masters/master_taleb/sources.jsonl +1 -1
- package/knowledge/solo-test/masters/master_taleb/tools.json +50 -24
- package/knowledge/solo-test/masters/master_thorp/decision_policy.json +61 -13
- package/knowledge/solo-test/masters/master_thorp/doctrine.jsonl +2 -2
- package/knowledge/solo-test/masters/master_thorp/manifest.json +11 -6
- package/knowledge/solo-test/masters/master_thorp/provisional-index.json +3 -3
- package/knowledge/solo-test/masters/master_thorp/sources.jsonl +1 -1
- package/knowledge/solo-test/masters/master_thorp/tools.json +56 -30
- package/knowledge/solo-test/persona-v3-solo-test-formulas/compilation-manifest.json +290 -264
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_ackman/components/tools.json +58 -32
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_ackman/provisional-derivations/market_capitalisation.derived-proxy-evidence.json +76 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_ackman/provisional-derivations/owner_earnings_yield.derived-proxy-evidence.json +76 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_aschenbrenner/components/tools.json +58 -32
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_aschenbrenner/provisional-derivations/market_capitalisation.derived-proxy-evidence.json +76 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_aschenbrenner/provisional-derivations/price_implied_cash_yield.derived-proxy-evidence.json +76 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_asness/components/tools.json +58 -32
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_asness/provisional-derivations/nominal_earnings_yield_gap.derived-proxy-evidence.json +76 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_asness/provisional-derivations/real_earnings_yield_gap.derived-proxy-evidence.json +76 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_bogle/components/tools.json +120 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_bogle/provisional-derivations/expected_return_over_long_bond.derived-proxy-evidence.json +77 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_bogle/provisional-derivations/fundamental_expected_return.derived-proxy-evidence.json +76 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_buffett/components/tools.json +57 -31
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_buffett/provisional-derivations/market_capitalisation.derived-proxy-evidence.json +76 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_buffett/provisional-derivations/owner_earnings_yield.derived-proxy-evidence.json +76 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_burry/components/tools.json +58 -32
- 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
- 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
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_cathie_wood/components/tools.json +58 -32
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_cathie_wood/provisional-derivations/current_cash_yield.derived-proxy-evidence.json +76 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_cathie_wood/provisional-derivations/market_capitalisation.derived-proxy-evidence.json +76 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_dalio/components/tools.json +58 -32
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_dalio/provisional-derivations/policy_real_rate.derived-proxy-evidence.json +76 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_dalio/provisional-derivations/real_curve_slope.derived-proxy-evidence.json +76 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_damodaran/components/tools.json +56 -30
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_damodaran/provisional-derivations/implied_equity_risk_premium.derived-proxy-evidence.json +76 -0
- 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
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_druckenmiller/components/tools.json +57 -31
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_druckenmiller/provisional-derivations/liquidity_curve_impulse.derived-proxy-evidence.json +76 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_druckenmiller/provisional-derivations/policy_real_rate.derived-proxy-evidence.json +76 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_duan_yongping/components/tools.json +84 -32
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_duan_yongping/provisional-derivations/five_year_opportunity_cost.derived-proxy-evidence.json +102 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_duan_yongping/provisional-derivations/margin_retention.derived-proxy-evidence.json +76 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_fisher/components/tools.json +60 -34
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_fisher/provisional-derivations/margin_retention.derived-proxy-evidence.json +76 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_fisher/provisional-derivations/reinvestment_spread.derived-proxy-evidence.json +76 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_forensic_short/components/tools.json +55 -29
- 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
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_forensic_short/provisional-derivations/cash_cover_of_leverage.derived-proxy-evidence.json +76 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_graham/components/tools.json +69 -30
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_graham/provisional-derivations/defensive_hurdle_base.derived-proxy-evidence.json +89 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_graham/provisional-derivations/half_normalised_earnings_yield.derived-proxy-evidence.json +76 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_jhunjhunwala/components/tools.json +56 -30
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_jhunjhunwala/provisional-derivations/cash_quality_gap.derived-proxy-evidence.json +76 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_jhunjhunwala/provisional-derivations/real_structural_growth.derived-proxy-evidence.json +76 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_klarman/components/tools.json +57 -31
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_klarman/provisional-derivations/downside_asset_coverage.derived-proxy-evidence.json +76 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_klarman/provisional-derivations/market_capitalisation.derived-proxy-evidence.json +76 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_li_lu/components/tools.json +60 -34
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_li_lu/provisional-derivations/cash_backed_decade_return.derived-proxy-evidence.json +76 -0
- 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
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_lynch/components/tools.json +69 -30
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_lynch/provisional-derivations/growth_justified_capitalisation.derived-proxy-evidence.json +89 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_lynch/provisional-derivations/market_capitalisation.derived-proxy-evidence.json +76 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_marks/components/tools.json +56 -30
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_marks/provisional-derivations/credit_cycle_position.derived-proxy-evidence.json +76 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_marks/provisional-derivations/equity_over_corporate_debt.derived-proxy-evidence.json +76 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_munger/components/tools.json +54 -28
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_munger/provisional-derivations/debt_service_cushion.derived-proxy-evidence.json +76 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_munger/provisional-derivations/reported_earnings_cash_gap.derived-proxy-evidence.json +76 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_natenberg/components/tools.json +52 -26
- 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
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_natenberg/provisional-derivations/round_trip_cost.derived-proxy-evidence.json +76 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_pabrai/components/tools.json +57 -31
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_pabrai/provisional-derivations/downside_floor_coverage.derived-proxy-evidence.json +76 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_pabrai/provisional-derivations/market_capitalisation.derived-proxy-evidence.json +76 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_simons/components/tools.json +45 -32
- 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
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_simons/provisional-derivations/session_move_over_implied.derived-proxy-evidence.json +77 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_sinclair/components/tools.json +56 -30
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_sinclair/provisional-derivations/round_trip_cost.derived-proxy-evidence.json +76 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_sinclair/provisional-derivations/volatility_per_unit_of_width.derived-proxy-evidence.json +76 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_soros/components/tools.json +56 -30
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_soros/provisional-derivations/credit_cycle_position.derived-proxy-evidence.json +76 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_soros/provisional-derivations/financing_burden.derived-proxy-evidence.json +76 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_taleb/components/tools.json +52 -26
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_taleb/provisional-derivations/debt_service_cushion.derived-proxy-evidence.json +76 -0
- 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
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_thorp/components/tools.json +58 -32
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_thorp/provisional-derivations/edge_per_unit_of_volatility.derived-proxy-evidence.json +77 -0
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_thorp/provisional-derivations/net_edge.derived-proxy-evidence.json +76 -0
- package/mcp/lib/breadth.mjs +126 -0
- package/mcp/lib/constants.mjs +15 -0
- package/mcp/lib/damodaran.mjs +119 -0
- package/mcp/lib/fred.mjs +246 -0
- package/mcp/lib/fund-holdings-parsers.mjs +297 -0
- package/mcp/lib/fund-observations.mjs +152 -0
- package/mcp/lib/fundamentals.mjs +806 -0
- package/mcp/lib/funds.mjs +785 -0
- package/mcp/lib/gates.mjs +71 -4
- package/mcp/lib/grounding.mjs +209 -36
- package/mcp/lib/index-aggregate.mjs +733 -0
- package/mcp/lib/insider-ownership.mjs +149 -0
- package/mcp/lib/instrument-facts.mjs +855 -0
- package/mcp/lib/instruments.mjs +216 -0
- package/mcp/lib/markdown.mjs +216 -43
- package/mcp/lib/master-catalog.mjs +4 -0
- package/mcp/lib/orchestrator.mjs +173 -29
- package/mcp/lib/packets.mjs +59 -6
- package/mcp/lib/personas/engine.mjs +23 -10
- package/mcp/lib/personas-v3/deterministic-executor.mjs +13 -2
- package/mcp/lib/personas-v3/ga-external-evidence.mjs +3 -2
- package/mcp/lib/personas-v3/ga-gate.mjs +2 -1
- package/mcp/lib/personas-v3/ga-package-evidence.mjs +5 -4
- package/mcp/lib/personas-v3/grounding-adapter.mjs +309 -2
- package/mcp/lib/personas-v3/production-root.mjs +5 -4
- package/mcp/lib/personas-v3/release-formula-evidence.mjs +14 -7
- package/mcp/lib/personas-v3/release-source-evidence.mjs +2 -1
- package/mcp/lib/personas-v3/releases.mjs +5 -4
- package/mcp/lib/personas-v3/runtime-release-integrity.mjs +6 -5
- package/mcp/lib/personas-v3/semantic-source-adjudication.mjs +2 -1
- package/mcp/lib/personas-v3/semantic-source-extraction.mjs +2 -1
- package/mcp/lib/personas-v3/semantic-source-skeptic-review.mjs +2 -1
- package/mcp/lib/personas-v3/source-review-operations.mjs +3 -2
- package/mcp/lib/personas-v3/staging.mjs +22 -3
- package/mcp/lib/prompts.mjs +87 -3
- package/mcp/lib/quotes.mjs +5 -0
- package/mcp/lib/rpc.mjs +27 -10
- package/mcp/lib/run-store.mjs +5 -3
- package/mcp/lib/sec.mjs +32 -0
- package/mcp/lib/tables.mjs +11 -0
- package/mcp/lib/voice.mjs +122 -0
- package/mcp/lib/xbrl-aggregates.mjs +153 -0
- package/mcp/lib/xbrl-series.mjs +341 -0
- package/mcp/lib/xlsx.mjs +155 -0
- package/package.json +5 -5
- package/personas/masters/masters-value/bogle.md +145 -0
- package/schemas/council-evaluation-protocol-v1.schema.json +2 -2
- package/schemas/persona-v3-ai-assisted-solo-profile-v1.schema.json +2 -2
- package/schemas/persona-v3-ai-machine-simulation-v1.schema.json +1 -1
- package/schemas/persona-v3-build-spec-v1.schema.json +3 -3
- package/schemas/persona-v3-release-formula-review-evidence-v1.schema.json +3 -3
- package/schemas/persona-v3-release-manifest-v1.schema.json +6 -6
- package/schemas/persona-v3-release-source-review-evidence-v1.schema.json +3 -3
- package/schemas/persona-v3-tool-graph-v1.schema.json +1 -1
- package/schemas/source-review-batch-v1.schema.json +9 -9
- package/scripts/assemble-persona-v3-release.mjs +3 -2
- package/scripts/build-persona-v3-solo-test-packs.mjs +6 -8
- package/scripts/check-persona-v3-ga.mjs +1 -1
- package/scripts/check-persona-v3-production-candidates.mjs +1 -1
- package/scripts/compile-persona-v3-formulas.mjs +19 -18
- package/scripts/doctor.mjs +11 -9
- package/scripts/export-persona-source-review-batch.mjs +1 -1
- package/scripts/generate-persona-v3-drafts.mjs +2 -2
- package/scripts/lib/build-profile.mjs +24 -0
- package/scripts/lib/council-evaluation-protocol.mjs +7 -6
- package/scripts/lib/host-capabilities.mjs +2 -1
- package/scripts/lib/packaged-host-parity.mjs +9 -3
- package/scripts/lib/persona-v3-ai-assisted-solo-status.mjs +6 -4
- package/scripts/lib/persona-v3-ai-formula-review.mjs +6 -5
- package/scripts/lib/persona-v3-ai-machine-simulations.mjs +32 -4
- package/scripts/lib/persona-v3-build-specs.mjs +3 -2
- package/scripts/lib/persona-v3-draft-packs.mjs +2 -2
- package/scripts/lib/persona-v3-formula-pipeline.mjs +11 -10
- package/scripts/lib/persona-v3-production-candidates.mjs +10 -9
- package/scripts/lib/persona-v3-solo-formula-pipeline.mjs +188 -16
- package/scripts/lib/persona-v3-solo-test-packs.mjs +112 -11
- package/scripts/package-smoke.mjs +2 -1
- package/scripts/report-persona-corpus-gaps.mjs +4 -1
- package/scripts/review-persona-v3-solo-formulas.mjs +12 -8
- package/scripts/scaffold-persona-v3-staging.mjs +1 -1
- package/skills/agent-skills-governance/SKILL.md +8 -2
- package/skills/alphacouncil-agent/SKILL.md +12 -4
- package/skills/public-equity-investing/SKILL.md +17 -0
- package/knowledge/ai-assisted-solo/reviews/persona-v3-ai-formula-reviews/master_forensic_short/reviews/borrow_catalyst.ai-review.json +0 -277
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_ackman/provisional-derivations/change_value_bridge.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_ackman/provisional-derivations/power_map.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_aschenbrenner/provisional-derivations/compute_power_bridge.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_aschenbrenner/provisional-derivations/timeline_reverse_valuation.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_asness/provisional-derivations/crowding_cost_stress.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_asness/provisional-derivations/factor_decomposer.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_buffett/provisional-derivations/incremental_returns.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_buffett/provisional-derivations/owner_earnings_rebuilder.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_burry/provisional-derivations/capital_structure_reader.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_burry/provisional-derivations/mispricing_carry.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_cathie_wood/provisional-derivations/capture_valuation_bridge.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_cathie_wood/provisional-derivations/cost_adoption_curve.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_dalio/provisional-derivations/debt_driver_stress.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_dalio/provisional-derivations/regime_classifier.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_damodaran/provisional-derivations/story_dcf.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_druckenmiller/provisional-derivations/inflection_payoff.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_druckenmiller/provisional-derivations/liquidity_revision_map.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_duan_yongping/provisional-derivations/opportunity_cost.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_duan_yongping/provisional-derivations/user_value_evidence.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_fisher/provisional-derivations/research_productivity.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_fisher/provisional-derivations/scuttlebutt_graph.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_forensic_short/provisional-derivations/borrow_catalyst.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_graham/provisional-derivations/asset_floor.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_graham/provisional-derivations/normalized_earnings.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_jhunjhunwala/provisional-derivations/penetration_liquidity.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_jhunjhunwala/provisional-derivations/promoter_governance.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_klarman/provisional-derivations/cash_catalyst_compare.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_klarman/provisional-derivations/recovery_waterfall.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_li_lu/provisional-derivations/promise_integrity_ledger.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_li_lu/provisional-derivations/ten_year_return_bridge.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_lynch/provisional-derivations/category_classifier.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_lynch/provisional-derivations/story_numbers_check.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_marks/provisional-derivations/cycle_temperature.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_marks/provisional-derivations/implied_expectations.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_munger/provisional-derivations/failure_path_graph.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_munger/provisional-derivations/incentive_map.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_pabrai/provisional-derivations/discrete_payoff.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_pabrai/provisional-derivations/downside_floor.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_simons/provisional-derivations/leakage_audit.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_simons/provisional-derivations/oos_cost_test.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_sinclair/provisional-derivations/net_edge_sizer.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_sinclair/provisional-derivations/realized_vol_forecast.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_soros/provisional-derivations/reflexivity_graph.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_soros/provisional-derivations/reversal_monitor.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_taleb/provisional-derivations/payoff_ruin.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_thorp/provisional-derivations/edge_recalculator.derived-proxy-evidence.json +0 -64
- package/knowledge/solo-test/persona-v3-solo-test-formulas/master_thorp/provisional-derivations/fractional_kelly.derived-proxy-evidence.json +0 -64
|
@@ -0,0 +1,487 @@
|
|
|
1
|
+
# AlphaCouncil 升级方案 v0.9.5 → v1.0(第二版)
|
|
2
|
+
|
|
3
|
+
制定日期:2026-07-28
|
|
4
|
+
基线:`agent/etf-index-master-voices` @ `6ec9ca0`(PR #5,draft,未合并)
|
|
5
|
+
本版推翻第一版的 P2-2「把弃权渲染成太难那一堆」——那个方案回避了真问题。
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 0. 真实诊断:三层全空,不是一层
|
|
10
|
+
|
|
11
|
+
用户的质疑是对的:如果巴菲特看 QQQ 的回复是「这不归我管」,产品就没有意义。
|
|
12
|
+
把三层拆开看,问题比"缺数据"严重:
|
|
13
|
+
|
|
14
|
+
### 第一层:事实供给(缺 92%)
|
|
15
|
+
|
|
16
|
+
`mcp/lib/personas-v3/grounding-adapter.mjs` 是全仓库唯一产 typed facts 的地方,只能产 13 个 `fact_id`:
|
|
17
|
+
quote 2 个、options 4 个、SEC screen 7 个。26 席的 `required_fact_types` 大部分不在其中。
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
可在当前适配器下执行的席位: 1 / 26 (只有 master_natenberg)
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
**换 AAPL 跑结果一样。**这不是 ETF 特例,是全局缺口。
|
|
24
|
+
|
|
25
|
+
### 第二层:方法模型(是空壳,这是更根本的问题)
|
|
26
|
+
|
|
27
|
+
把 26 个 `decision_policy.json` 全量对比,**26/26 完全一致**:
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
eligibility=0 条 | hard_vetoes=0 条 | rules=2 条 | score_bands=3 档 | native_output_fields=2
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
巴菲特那一席的"方法"逐字展开是:
|
|
34
|
+
|
|
35
|
+
```jsonc
|
|
36
|
+
// tools.json:两个工具,operation 都是 identity
|
|
37
|
+
{ "id": "master_buffett.owner_earnings_rebuilder",
|
|
38
|
+
"inputs": [{"fact_id": "financial.owner_earnings"}],
|
|
39
|
+
"operation": "identity",
|
|
40
|
+
"output_id": "financial.owner_earnings" } // 自己复制给自己
|
|
41
|
+
{ "id": "master_buffett.incremental_returns",
|
|
42
|
+
"inputs": [{"fact_id": "financial.owner_earnings"}],
|
|
43
|
+
"operation": "identity",
|
|
44
|
+
"output_id": "financial.incremental_return_on_capital" } // 所有者盈余"就是"增量ROIC?
|
|
45
|
+
|
|
46
|
+
// decision_policy.json:两条规则
|
|
47
|
+
owner_earnings > 0 → 1 分
|
|
48
|
+
incremental_roic > 0 → 1 分 (其实是同一个数)
|
|
49
|
+
2/2 → cautious
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
生成器里 `derivation_policy` 字段写得很老实:`"first_declared_input_to_first_declared_output_identity_v1"`。
|
|
53
|
+
|
|
54
|
+
**所以即使把数据全补上,巴菲特也只会输出"所有者盈余大于零 → cautious"。** 这不是巴菲特,
|
|
55
|
+
这是脚手架。用户问"客户用它还有啥意义"——在第二层修好之前,诚实的答案是:没有意义。
|
|
56
|
+
|
|
57
|
+
好消息:**方法设计已经写完了**,在 `data/persona-v3-build-specs.v1.mjs` 里。巴菲特那条有
|
|
58
|
+
6 个 `required_fact_types`、4 个 native states、3 条 `veto_families`(能力圈外 / 杠杆依赖 /
|
|
59
|
+
所有者盈余不可重建)、明确的 `fail_closed_reasons`。生成器
|
|
60
|
+
(`scripts/lib/persona-v3-solo-test-packs.mjs:299-348`)把这些**全部丢掉**,硬编码
|
|
61
|
+
`eligibility: { all: [] }`、`hard_vetoes: []`。缺的是把 spec 变成真策略,不是重新设计方法。
|
|
62
|
+
|
|
63
|
+
### 第三层:表达(机器诊断文案)
|
|
64
|
+
|
|
65
|
+
`巴菲特视角临时操作视角无法评估 QQQ:no_required_fact_types_present`
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## 1. 关键洞察:穿透聚合是巴菲特自己的发明,而且必须做在事实层
|
|
70
|
+
|
|
71
|
+
### 1.1 "Look-through earnings" 是巴菲特 1990 年致股东信里的原创概念
|
|
72
|
+
|
|
73
|
+
他持有一堆公司的部分股权,会计利润只体现分红,于是他自己定义了「穿透盈余」:
|
|
74
|
+
按持股比例把被投公司的留存收益加回来看。**用穿透法评估 QQQ 不是把方法硬套在 ETF 上,
|
|
75
|
+
就是他本人处理"我拥有一百家生意的一部分"的标准做法。**这解决了合规和方法论正当性两个问题。
|
|
76
|
+
|
|
77
|
+
### 1.2 聚合只能做在事实层(DSL 层做不了,这反而是好消息)
|
|
78
|
+
|
|
79
|
+
决策 DSL 的算子白名单是
|
|
80
|
+
`eq/neq/gt/gte/lt/lte/date_*` + `exists` + `all/any/not`,操作数只能是
|
|
81
|
+
`{fact_id}` / `{output_id}` / `{literal}`(`literal` 必须是标量,数组直接拒),
|
|
82
|
+
条件层不支持算术。工具层的 `sum/mean` 吃的是固定 arity 的操作数列表,不是集合。
|
|
83
|
+
|
|
84
|
+
**结论:DSL 永远不可能对 N 个持仓做加权聚合。**
|
|
85
|
+
所以聚合必须在 `grounding-adapter` / 新的 `funds.mjs` 里做,产出**一个**
|
|
86
|
+
`financial.owner_earnings` 事实(带 `derivation: "rederived"` + `calculation_hash` + `coverage_weight`)。
|
|
87
|
+
|
|
88
|
+
**而这正是好消息:** 一旦事实层把 QQQ 的穿透 `financial.owner_earnings` 供上,
|
|
89
|
+
**26 个 pack 一个字节都不用改就能在 ETF 上执行。** 不需要 instrument 条件化的 pack 变体,
|
|
90
|
+
不需要动 schema,不需要重签 hash,不需要动选席回执的 pack_hash 审计链。
|
|
91
|
+
|
|
92
|
+
(我评估过四种 instrument 条件化方案:pack 内多份 policy 8-10 天 / `required_fact_types` 改 map
|
|
93
|
+
10-14 天 / 平行包集 15-20 天且撕裂审计链 / `research_model` 做成 typed fact 走 eligibility 3-4 天。
|
|
94
|
+
但做完事实层之后,前三种都不需要了,第四种只在"某方法必须显式拒绝某类标的"时才用。)
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## 2. 终点长什么样(用今天抓到的真实数字)
|
|
99
|
+
|
|
100
|
+
已验证可取的真实数据(2026-07-27/28 实测):
|
|
101
|
+
|
|
102
|
+
| 数据 | 值 | 来源(已验证可用) |
|
|
103
|
+
|---|---|---|
|
|
104
|
+
| QQQ 持仓 | 108 只,AAPL 权重 8.264548% | `dng-api.invesco.com` daily |
|
|
105
|
+
| NDX 滚动 P/E | **33.05** → 盈利收益率 **3.03%** | WSJ `mdc_peAndYields` |
|
|
106
|
+
| NDX 前瞻 P/E | 25.12 → 3.98% | 同上 |
|
|
107
|
+
| NDX 股息率 | 0.58% | 同上 |
|
|
108
|
+
| 10 年期国债 | **4.69%** | FRED `fredgraph.csv?id=DGS10` |
|
|
109
|
+
| QQQ 费率 | 0.20% | Invesco |
|
|
110
|
+
|
|
111
|
+
**巴菲特席位应该输出的东西(Tier A 原生判断):**
|
|
112
|
+
|
|
113
|
+
> **巴菲特方法** — 立场:`opposed` | 置信度:medium | 意向:`would_pass`
|
|
114
|
+
>
|
|
115
|
+
> 我看到的是:这一百零八家公司的穿透盈余收益率是 **3.03%**(滚动口径,覆盖权重 100%),
|
|
116
|
+
> 十年期国债给我 **4.69%**。我还要为持有它每年付 0.20%。
|
|
117
|
+
>
|
|
118
|
+
> 用我的标准来衡量:我在 1999 年那篇文章里说过,股票的价值最终要和利率比。
|
|
119
|
+
> 现在这个篮子的盈利收益率比无风险利率还低 **1.66 个百分点**,而且我承担的是
|
|
120
|
+
> 一个前十大占五成、集中在少数几家公司的波动组合。前瞻口径好一些(3.98%),
|
|
121
|
+
> 但那要靠分析师的预测兑现,那不是我的安全边际。
|
|
122
|
+
>
|
|
123
|
+
> 所以我会不会买:**不会,现在不会。** 这不是说纳斯达克的生意不好——里面确实有几家
|
|
124
|
+
> 我很喜欢的公司。是这个价格不给我任何余地。我推荐给我太太的是更宽的标普 500 篮子,
|
|
125
|
+
> 而且是在任何价格上定投;作为一次性配置决策,我在这个价格上会等。
|
|
126
|
+
>
|
|
127
|
+
> 什么会让我改主意:盈利收益率回到国债之上 200 个基点(对应 NDX 滚动 P/E 约 15),
|
|
128
|
+
> 或者利率降到 3% 以下而盈利没有同步下滑。
|
|
129
|
+
>
|
|
130
|
+
> 我和谁分歧:德鲁肯米勒方法看的是流动性脉冲而不是估值,他可能在我说贵的时候继续持有——
|
|
131
|
+
> 这是方法差不是信息差,我们看的是同一份数据。
|
|
132
|
+
>
|
|
133
|
+
> *(本段为方法模型的第一人称推演,非本人言论或授权观点。数据源 ID:wsj:ndx_pe:2026-07-24、
|
|
134
|
+
> fred:DGS10:2026-07-24、invesco:qqq_holdings:2026-07-27)*
|
|
135
|
+
|
|
136
|
+
**格雷厄姆席位**(同样是 Tier A):盈利收益率 3.03% vs AAA 公司债收益率,
|
|
137
|
+
他的防御型投资者判据要求前者 ≥ 后者的 2 倍 → 明显不通过,`opposed`,理由是一个数。
|
|
138
|
+
|
|
139
|
+
**芒格席位**(Tier B 穿透):不评组合,评前十大占 51% 权重的那几家的激励结构与失败路径,
|
|
140
|
+
按权重汇总"我对其中 X% 的权重有信心"。
|
|
141
|
+
|
|
142
|
+
**这才是产品的意义。**每个数字有 source_id,每个判断可证伪,每一席的分歧是真分歧。
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## 3. 三根支柱
|
|
147
|
+
|
|
148
|
+
### 支柱 A — 事实供给层(不碰 pack,零 hash 风险,破 0 个测试)
|
|
149
|
+
|
|
150
|
+
这是唯一"改了立刻见效且不会引发重签风暴"的一层。先做完这层再动任何 pack。
|
|
151
|
+
|
|
152
|
+
#### A1. macro → typed facts(最高 ROI,零新数据源)
|
|
153
|
+
|
|
154
|
+
`macro.mjs` 已经在抓五组市场定价序列,但快照没写 `public_at`,
|
|
155
|
+
适配器整块跳过(`grounding-adapter.mjs:370` 记 `not_converted`)。
|
|
156
|
+
|
|
157
|
+
- `macro.mjs` 每 block 输出 `public_at`(取组内最早 `quote_time`)+ `source_ids`
|
|
158
|
+
- 新增 `macroFacts()`:`macro.liquidity_impulse`、`macro.growth_regime`、
|
|
159
|
+
`macro.real_rate`、`macro.credit_spread`、`macro.term_structure_slope`
|
|
160
|
+
- 补 FRED keyless 通道(**已验证**:`fredgraph.csv?id=` 免密钥,
|
|
161
|
+
`DGS10 DGS2 DGS3MO T10Y2Y T10Y3M DFII10 T5YIE DFF SOFR BAMLH0A0HYM2 VIXCLS` 全部 200;
|
|
162
|
+
`api.stlouisfed.org` 才需要 key。多 series 会返回 ZIP,逐个拉)
|
|
163
|
+
|
|
164
|
+
**解锁**:`master_druckenmiller`、`master_dalio`。约 150 行 + 单测。
|
|
165
|
+
|
|
166
|
+
#### A2. `mcp/lib/funds.mjs` — ETF 持仓与穿透聚合
|
|
167
|
+
|
|
168
|
+
**已验证可用的发行商端点(全部免密钥,四条 URL 都是新路径,网上流传的旧地址已失效):**
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
# iShares(IVV/IWM/EFA/AGG/TLT/HYG…)日度 T-1
|
|
172
|
+
https://www.ishares.com/us/products/239726/x/latest-holdings.csv
|
|
173
|
+
# State Street(SPY/XLK…)日度,必须 -L 跟 301
|
|
174
|
+
https://www.ssga.com/us/en/intermediary/library-content/products/fund-data/etfs/us/holdings-daily-us-en-spy.xlsx
|
|
175
|
+
# Invesco(QQQ/QQQM…)日度
|
|
176
|
+
https://dng-api.invesco.com/cache/v1/accounts/en_US/shareclasses/46090E103/holdings/fund?idType=cusip&interval=daily&productType=ETF
|
|
177
|
+
# Vanguard(VOO/VTI…)仅月末,每页 500 条
|
|
178
|
+
https://investor.vanguard.com/investment-products/etfs/profile/api/VOO/portfolio-holding/stock
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
**必须写进代码的反爬陷阱(每条都是实测的,漏一条就静默出错):**
|
|
182
|
+
|
|
183
|
+
1. **iShares 旧 `.ajax` 路径是静默陷阱** —— 仍返回 `HTTP 200` + `Content-Type: text/csv`,
|
|
184
|
+
但 body 是 2.2MB 的 HTML 产品页,换任何 UA 都一样。**必须校验首行内容,不能只看状态码。**
|
|
185
|
+
2. **Invesco 的 UA 逻辑是反的** —— `www.invesco.com` 发 Chrome UA 或空 UA → `HTTP 406` 零字节;
|
|
186
|
+
发默认 `curl/8.x` 或 `node-fetch` → 200。**千万别伪装浏览器。**
|
|
187
|
+
3. **Invesco 参数陷阱** —— 漏 `interval=daily` 拿到 3 天前的旧数据;误加 `loadType=initial`
|
|
188
|
+
静默截断成前 10 条;`idType=ticker` 只对 QQQ 有效,统一用 CUSIP。
|
|
189
|
+
4. Vanguard 响应里的 `next` 指向已废弃的 `api.vanguard.com`,翻页要自己拼
|
|
190
|
+
`?start=501&count=500` 打在 `investor.vanguard.com`。
|
|
191
|
+
5. SEC 任何请求必须带 `User-Agent: app contact@email`,否则 403。
|
|
192
|
+
|
|
193
|
+
**费率 / AUM / NAV / 份额:**
|
|
194
|
+
- iShares product-screener 一次拿 532 只基金的 `fees` / `navAmount` / `totalNetAssets` / `cusip`
|
|
195
|
+
- SSGA fundfinder 一次拿 180 只 SPDR 的 `ter` / `nav` / `aum`(份额 = aum/nav)
|
|
196
|
+
- **Vanguard 和 Invesco 没有 AUM/份额端点**(Invesco 的 `/nav`、`/profile` 全 501)→
|
|
197
|
+
用持仓市值求和,或 SEC N-PORT 的 `netAssets` 兜底
|
|
198
|
+
|
|
199
|
+
**资金流(无免费直接源,必须推导):** `flow = Δshares_outstanding × NAV`。
|
|
200
|
+
实测验证过:IVV 份额 2026-07-24 的 1,167,300,000 → 07-27 的 1,167,700,000,
|
|
201
|
+
Δ+400,000 股 × NAV 741.66 ≈ 净流入 $296.7M。
|
|
202
|
+
**局限**:只有 iShares 和 SSGA 有日度份额,Vanguard/Invesco 没有 → 那两家的 flow 记为 gap,不许估。
|
|
203
|
+
|
|
204
|
+
**SEC N-PORT 兜底(重要更正:是季度不是月度):**
|
|
205
|
+
表单名叫 "Monthly Portfolio Investments Report",但公开披露实际**季度**,滞后 50-59 天。
|
|
206
|
+
另一个坑:`company_tickers.json` 里**查不到 IVV 和 VOO**(它们是信托下的 series),
|
|
207
|
+
必须用 `company_tickers_mf.json`(IVV→CIK 1100663/S000004310,VOO→CIK 36405/S000002839)。
|
|
208
|
+
|
|
209
|
+
**新增 typed facts:**
|
|
210
|
+
```
|
|
211
|
+
fund.holdings_as_of fund.top_ten_weight fund.sector_concentration_hhi
|
|
212
|
+
fund.expense_ratio fund.aum fund.shares_outstanding
|
|
213
|
+
fund.flow_20d fund.premium_discount fund.tracking_difference(nullable)
|
|
214
|
+
fund.lookthrough_coverage_weight
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
**穿透聚合(本方案的核心):** 对前 N 大持仓(覆盖权重 ≥60%)批量取基本面,
|
|
218
|
+
按权重聚合成**单个**经营公司事实:`financial.owner_earnings`、
|
|
219
|
+
`financial.return_on_equity_10y`、`valuation.revenue_growth` 等。
|
|
220
|
+
每个聚合事实必带 `lineage.calculation_hash` + `fund.lookthrough_coverage_weight`。
|
|
221
|
+
|
|
222
|
+
**硬规则写进代码,不是写进 prompt:** 覆盖权重 < 50% 时**不生成**任何 look-through 派生事实,
|
|
223
|
+
只记 diagnostics。现在这条只是 prompt 里一句话,模型可以无视。
|
|
224
|
+
|
|
225
|
+
**绝不做的事:** 把成分股财报相加成"ETF 营收/EPS"。加权只允许出现在比率型指标,
|
|
226
|
+
且 `ratio_denominator` 必须写明加权口径。
|
|
227
|
+
|
|
228
|
+
#### A3. `mcp/lib/index-aggregate.mjs` — 指数
|
|
229
|
+
|
|
230
|
+
**成分来源(法务上唯一稳妥的免费路径):用跟踪 ETF 的持仓做代理**,
|
|
231
|
+
^GSPC→IVV/SPY,^NDX→QQQ,^DJI→DIA,并在 fact 的 `derivation` 和报告里**显式声明是 ETF 代理**。
|
|
232
|
+
理由:S&P 500 / DJIA 的成分与权重是 S&P Dow Jones Indices 的授权资产,
|
|
233
|
+
datahub / stockanalysis / Finviz 都是无授权转载;Wikipedia 是唯一有明确开放许可(CC BY-SA)的,
|
|
234
|
+
但产品化仍有风险。发布"基金持仓"而非"指数成分名单"是业界标准规避做法。
|
|
235
|
+
(`api.nasdaq.com/api/quote/list-type/nasdaq100` 实测可用且与 QQQ 持仓完全对上,
|
|
236
|
+
但**必须带非默认 UA**,默认 curl UA 会 HTTP/2 INTERNAL_ERROR。)
|
|
237
|
+
|
|
238
|
+
**估值 / 广度 / 期权(已验证端点):**
|
|
239
|
+
```bash
|
|
240
|
+
# 指数滚动+前瞻 PE(一次拿 SP500/NDX/Russell2000)
|
|
241
|
+
https://www.wsj.com/market-data/stocks/peyields?...&type=mdc_peAndYields
|
|
242
|
+
# 涨跌家数/新高新低/TRIN
|
|
243
|
+
https://www.wsj.com/market-data/stocks/marketsdiary?...&type=mdc_marketsdiary
|
|
244
|
+
# CBOE put/call(日期必须是交易日,非交易日 403,需回退查找)
|
|
245
|
+
https://cdn.cboe.com/data/us/options/market_statistics/daily/YYYY-MM-DD_daily_options
|
|
246
|
+
https://cdn.cboe.com/api/global/us_indices/daily_prices/VIX_History.csv
|
|
247
|
+
```
|
|
248
|
+
WSJ 的 `mdc_*` 是未公开内部 API,**必须加 schema 校验和降级路径,不能当契约用**。
|
|
249
|
+
|
|
250
|
+
**Damodaran 数据集(可机读):**
|
|
251
|
+
`pages.stern.nyu.edu/~adamodar/pc/implprem/ERPbymonth.xlsx`(月度 ERP,注意在 `/pc/implprem/`
|
|
252
|
+
而**不在** `/pc/datasets/`),`/pc/datasets/histimpl.xls`(年度)。
|
|
253
|
+
`.xls` 是老 BIFF 格式要用 `xlsx` 包;xlsx 空单元格会被省略,**必须按列字母对齐,不能按位置取**。
|
|
254
|
+
|
|
255
|
+
**唯一的硬缺口:广度(% above 200dma)。** Finviz 的 screener 组合参数在 robots.txt 里被
|
|
256
|
+
`Disallow: /screener?*` 明确禁止(白名单不含所需参数),自建 dashboard 可以,产品化不建议。
|
|
257
|
+
自己算需要 503 只 × 260 天日线 ≈ 13 万点,而没有验证到免密钥的批量日线源。
|
|
258
|
+
**这块要预算一个行情商,或者用 WSJ marketsdiary 的涨跌家数做低保真代理并标注口径。**
|
|
259
|
+
|
|
260
|
+
**⚠️ 口径警告(必须写进代码注释):** 同一天的 S&P 500 滚动 P/E,
|
|
261
|
+
WSJ 报 25.17、multpl 报 28.53、iShares IVV 报 29.80 —— 三种不同盈利口径
|
|
262
|
+
(WSJ 基准 / GAAP as-reported TTM / 组合调和平均)。**混用会让面板看起来像坏了。**
|
|
263
|
+
一个 fact 只能有一个口径,`ratio_denominator` 必须写死来源。
|
|
264
|
+
|
|
265
|
+
**新增 typed facts:**
|
|
266
|
+
```
|
|
267
|
+
index.constituent_count index.aggregate_pe_ttm index.aggregate_pe_forward
|
|
268
|
+
index.aggregate_earnings_yield index.dividend_yield index.breadth_advance_decline
|
|
269
|
+
cycle.valuation_percentile expectations.consensus_dispersion
|
|
270
|
+
factor.value_exposure positioning.crowding options.put_call_ratio
|
|
271
|
+
macro.aaa_corporate_yield macro.long_bond_yield valuation.implied_erp
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
#### A4. SEC 派生(经营公司侧)
|
|
275
|
+
|
|
276
|
+
从已有 CompanyFacts 机械派生,全部带 `calculation_hash` + 显式假设:
|
|
277
|
+
|
|
278
|
+
| fact_id | 算法 | 解锁 |
|
|
279
|
+
|---|---|---|
|
|
280
|
+
| `financial.owner_earnings` | 净利 + D&A − 维持性资本开支(维持性用 3 年 capex 中位数 × 0.7 代理) | **buffett** |
|
|
281
|
+
| `financial.net_current_asset_value` | 流动资产 − 全部负债 | graham |
|
|
282
|
+
| `valuation.downside_asset_value` | 有形账面 + 现金 − 债务 | klarman |
|
|
283
|
+
| `valuation.downside_floor` | min(NCAV, 有形账面, 5 年最低 EV/EBIT 对应价) | pabrai |
|
|
284
|
+
| `valuation.revenue_growth` | 5 年 CAGR + 最近 4 季 YoY | damodaran |
|
|
285
|
+
| `short.borrow_cost` | 无免费源 → **不做,记为已知缺口** | forensic_short 继续弃权 |
|
|
286
|
+
|
|
287
|
+
---
|
|
288
|
+
|
|
289
|
+
### 支柱 B — 真方法模型("有没有意义"的分水岭)
|
|
290
|
+
|
|
291
|
+
#### B0. 操作纪律(不遵守每次都会红)
|
|
292
|
+
|
|
293
|
+
pack 是 100% 机器生成的,**手改无效**——生成器会在内存里重建全部文件逐字节比对。
|
|
294
|
+
唯一合法路径:改 `data/persona-v3-build-specs.v1.mjs` + `knowledge/solo-test/persona-v3-solo-test-formulas/`
|
|
295
|
+
+ 生成器,然后:
|
|
296
|
+
|
|
297
|
+
```bash
|
|
298
|
+
npm run persona:solo-test:build # 26 个 pack 全量重生成
|
|
299
|
+
npm run persona:ai-simulations:write # 8 个仿真 run 重生成
|
|
300
|
+
npm run check # selfcheck 三道闸 + 全测试
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
另外:动 `runtime.mjs` / `deterministic-executor.mjs` / `typed-facts.mjs` / `registry.mjs`
|
|
304
|
+
这四个文件中的任何一个,都必须重跑机器仿真(它们的字节 hash 被绑进仿真树)。
|
|
305
|
+
|
|
306
|
+
#### B1. 生成器改造:让 spec 里的设计真正落地
|
|
307
|
+
|
|
308
|
+
`scripts/lib/persona-v3-solo-test-packs.mjs:299-348` 现在硬编码
|
|
309
|
+
`eligibility: { all: [] }`、`hard_vetoes: []`,把 build-spec 里已经写好的
|
|
310
|
+
`veto_families` 和 `native_decision_contract.eligibility_facts` 全丢了。改成从 spec 生成。
|
|
311
|
+
|
|
312
|
+
**一个必须绕开的陷阱:** 当前 `scoring.min_coverage = 1`,
|
|
313
|
+
**任何一条规则 uncomputable → 整席直接 `out_of_scope`**。
|
|
314
|
+
所以方法判据要走 `eligibility` / `hard_vetoes`(它们有独立的 uncomputable 出口),
|
|
315
|
+
不要全塞进 scoring rules,否则缺一个字段就整席哑火——这正是现在 25 席弃权的机制。
|
|
316
|
+
|
|
317
|
+
#### B2. 写真公式,替换 identity 桩
|
|
318
|
+
|
|
319
|
+
DSL 条件层不支持算术,所以每个判据要拆成"工具算数 + 条件比数"两步。
|
|
320
|
+
可用算子:`add subtract multiply divide sum mean min max abs negate clamp`(标量,固定 arity)。
|
|
321
|
+
条件层支持 **fact vs fact 直接比较**(实测通过),这是关键——
|
|
322
|
+
"盈利收益率 > 国债收益率" 可以直接写成两个 fact 的 `gt`,不需要先算差值。
|
|
323
|
+
|
|
324
|
+
**首批 8 席(在个股和 ETF/指数上都能出真判断,优先做):**
|
|
325
|
+
|
|
326
|
+
| 席位 | 核心判据(可直接用现有数据实现) |
|
|
327
|
+
|---|---|
|
|
328
|
+
| `master_buffett` | 穿透盈余收益率 vs 10y 国债;集中度;费率拖累;杠杆依赖 veto |
|
|
329
|
+
| `master_graham` | 盈利收益率 ≥ 2 × AAA 债收益率(防御型投资者判据);NCAV |
|
|
330
|
+
| `master_marks` | 估值分位 + 风险偏好读数 → 周期温度计 |
|
|
331
|
+
| `master_damodaran` | implied ERP vs 历史分位(他自己每月发布这个数) |
|
|
332
|
+
| `master_dalio` | 增长/通胀四象限 + 当前 regime → 股票指数暴露建议 |
|
|
333
|
+
| `master_druckenmiller` | 流动性脉冲方向 + 拐点 |
|
|
334
|
+
| `master_asness` | 价值利差分位 + 因子暴露 |
|
|
335
|
+
| **`master_bogle`(新增)** | 期望收益 = 股息率 + 盈利增长 ± 估值变化;成本至上 |
|
|
336
|
+
|
|
337
|
+
**为什么必须新增博格:** 26 席里**没有一个是为指数设计的方法**,而这是 ETF 用户唯一最想要的一席。
|
|
338
|
+
博格的收益分解(投资回报 vs 投机回报)能直接给出 QQQ 的十年期望回报数字,
|
|
339
|
+
所有输入(股息率 0.58%、盈利增长、P/E 33.05 的均值回归)都已经在 A3 里备齐。
|
|
340
|
+
新增一席要改 `CANONICAL_MASTER_COUNT` 26→27 及若干处硬编码 26 的断言
|
|
341
|
+
(`runtime-release-integrity.mjs:288,352-361`、`staging.mjs`、几个 release 测试),
|
|
342
|
+
以及 profile 里的 `physical_solo_packs` / `ai_formula_cross_reviews` 数字。
|
|
343
|
+
**这是全案唯一值得付"改 26 常量"代价的改动。**
|
|
344
|
+
|
|
345
|
+
**第二批 12 席(Tier B,走穿透):** munger / li_lu / fisher / duan_yongping / lynch /
|
|
346
|
+
klarman / pabrai / burry / ackman / cathie_wood / forensic_short / aschenbrenner。
|
|
347
|
+
它们的方法是单公司的,在 ETF 上跑前十大持仓再按权重汇总,输出
|
|
348
|
+
"我对其中 X% 的权重有信心 / 有疑虑"。
|
|
349
|
+
|
|
350
|
+
**第三批 6 席:** simons / soros / thorp / taleb / natenberg / sinclair —— 量化与波动率方法,
|
|
351
|
+
指数是它们最好的场景,需要的是 A3 的分布与期权数据。
|
|
352
|
+
|
|
353
|
+
**诚实弃权保留:** `master_jhunjhunwala`(印度市场方法)在美国科技指数上真的不适用。
|
|
354
|
+
弃权应该是少数且有具体理由的,不是默认状态。
|
|
355
|
+
|
|
356
|
+
#### B3. AI 交叉复核的连锁成本
|
|
357
|
+
|
|
358
|
+
`data/persona-v3-ai-assisted-solo-profile.v1.json` 写死
|
|
359
|
+
`ai_formula_cross_reviews: 52`(26 席 × 2 工具,每份 3 个独立角色)。
|
|
360
|
+
每席从 2 个工具加到 3 个 → 需要 78 份复核,profile 数字和全部 index/manifest hash 要同步更新。
|
|
361
|
+
**排期时把这块算进去,它比写公式本身更花时间。**
|
|
362
|
+
|
|
363
|
+
---
|
|
364
|
+
|
|
365
|
+
### 支柱 C — 表达层
|
|
366
|
+
|
|
367
|
+
#### C1. 五段式第一人称(`voice_mode`)
|
|
368
|
+
|
|
369
|
+
`masterVoicePrompt`(`prompts.mjs:249`)的输出契约改成读者视角:
|
|
370
|
+
|
|
371
|
+
```json
|
|
372
|
+
{
|
|
373
|
+
"master": "master_buffett",
|
|
374
|
+
"acknowledged_stance": "<必须等于冻结立场>",
|
|
375
|
+
"position_intent": "would_buy | would_add | would_hold | would_pass | not_in_my_circle",
|
|
376
|
+
"voice": {
|
|
377
|
+
"what_i_see": "…(只引用 evidence 里的事实 + source_id)",
|
|
378
|
+
"how_my_method_reads_it": "…(把 typed facts 映射到自己的判据,给出具体数字)",
|
|
379
|
+
"would_i_buy": "…(明确、可证伪)",
|
|
380
|
+
"what_changes_my_mind": "…(给出触发阈值,不是空话)",
|
|
381
|
+
"where_i_disagree": "…(说明是信息差还是方法差)"
|
|
382
|
+
},
|
|
383
|
+
"source_ids": [...], "confidence": "high|medium|low"
|
|
384
|
+
}
|
|
385
|
+
```
|
|
386
|
+
|
|
387
|
+
`position_intent` **由冻结立场机械派生**:建 `stance → allowed intents` 表,
|
|
388
|
+
模型只能在允许集合里选,选错直接拒(复用现有拒绝 stance 不符的机制)。
|
|
389
|
+
冻结立场的安全性不降级。
|
|
390
|
+
|
|
391
|
+
#### C2. 报告结尾三层递进
|
|
392
|
+
|
|
393
|
+
```
|
|
394
|
+
## 大师席位怎么看
|
|
395
|
+
### 有判断的(N 席) ← 每席一个小节,完整五段式,按 intent 强度排序
|
|
396
|
+
### 分歧点 ← 只列真正立场相反的两席对撞 + 是信息差还是方法差
|
|
397
|
+
### 说这不归我管的(M 席) ← 合并成一段散文,不是 25 行表格
|
|
398
|
+
```
|
|
399
|
+
|
|
400
|
+
`method_statement_coverage` 门相应改成"每个 ID 出现在文中"而非"每席独立一行"。
|
|
401
|
+
|
|
402
|
+
#### C3. 相关性警告保留并前置
|
|
403
|
+
|
|
404
|
+
`masterCorrelationNote`("这些席位不是独立样本,立场分布不能当票数")必须留在最前面。
|
|
405
|
+
第一人称化会天然诱导读者把它当 N 个独立意见,**警告比现在更重要,不是更不重要。**
|
|
406
|
+
|
|
407
|
+
#### C4. 命名与合规
|
|
408
|
+
|
|
409
|
+
- 标签从 `巴菲特视角临时操作视角` 简化为 **`巴菲特方法`**
|
|
410
|
+
("临时操作视角"是内部成熟度术语,塞进 metadata 括号,不该出现在读者面前)
|
|
411
|
+
- 章节一次性声明:`以下为方法模型的第一人称推演,非本人言论或授权观点`
|
|
412
|
+
- 文案永远说"这套方法会……",不说"巴菲特现在认为……"
|
|
413
|
+
- **真人第一人称断言不做**——"沃伦·巴菲特认为 QQQ 该买"这句话事实上就是假的。
|
|
414
|
+
第一人称写的是方法的口吻,这个边界可辩护。
|
|
415
|
+
|
|
416
|
+
---
|
|
417
|
+
|
|
418
|
+
## 4. P0 — 合并前必修(与三根支柱独立,1 天)
|
|
419
|
+
|
|
420
|
+
1. **分类器 fail-open → fail-closed**(`instruments.mjs`)。实测:无 Yahoo 元数据时
|
|
421
|
+
`SPY/QQQ/VOO` 全部 `plain_us_ticker_fallback → equity, secFacts=true`;
|
|
422
|
+
`IVV` 因 `iShares Trust` SIC 6726 走 `sec_filer_sic → equity`;
|
|
423
|
+
`VOO` 因 `Vanguard Index Funds` 走名称启发式 → `index`,期权链被误关。
|
|
424
|
+
改:SIC 6722/6726/6770 前置判基金;`index fund`/`mutual fund` 排在裸 `index` 前;
|
|
425
|
+
`plain_us_ticker_fallback` 返回 `unknown`。
|
|
426
|
+
2. **ja/ko 永久 `needs_revision` 死锁**。用已有的
|
|
427
|
+
`<!-- alphacouncil:recorded-master-bench:v1:sha256... -->` 锚点定位系统段,别靠标题别名匹配。
|
|
428
|
+
3. **陈词能劫持章节**。`normalizeMasterVoice` 出口统一转义行首 `#`。
|
|
429
|
+
4. **`not_applicable` 英文硬编码**渗进多语报告 → 走 `localized()`,
|
|
430
|
+
`instrumentResearchChecklist` 补 ja/ko。
|
|
431
|
+
5. **状态口径不一致**(`status.json` 说 complete、辩论门说缺席)→ 抽共用判定函数。
|
|
432
|
+
6. **性能回退**:`orchestrator.mjs:397` 只对立场可判定的席位起 voice worker。
|
|
433
|
+
0.9.4 里 26 席是零模型调用的确定性完成,0.9.5 每席加一次生成 + 一次 MCP 写入,
|
|
434
|
+
在没有 spawn 能力的 Codex 上全部串行 → 墙钟时间从 15-28 分钟涨到 28-55 分钟。
|
|
435
|
+
|
|
436
|
+
---
|
|
437
|
+
|
|
438
|
+
## 5. 排期与验收
|
|
439
|
+
|
|
440
|
+
**1.0.0 的定义**:26 席在任何标的(含 ETF/指数)上都给出可证伪的真实判断。
|
|
441
|
+
客户端/终端/API 不是 1.0 的门槛,它们是 1.1 之后的分发问题 —— 一个说不出话的委员会,
|
|
442
|
+
包装成桌面应用也还是说不出话。
|
|
443
|
+
|
|
444
|
+
| 里程碑 | 内容 | 工期 | 验收标准 | 状态 |
|
|
445
|
+
|---|---|---|---|---|
|
|
446
|
+
| **1.0.0-a** | P0 六项 | 1 天 | CI 绿 + 四语报告门 + 无元数据分类矩阵 | ✅ 已完成 `6840d38` |
|
|
447
|
+
| **1.0.0-b** | 支柱 A1 macro→typed facts | 1 天 | 可执行席位 1/26 → 3/26 | ✅ 已完成 `229f2e9` |
|
|
448
|
+
| **1.0.0-c** | 支柱 A2 `funds.mjs` 持仓穿透 | 3-4 天 | QQQ 产出穿透 `financial.owner_earnings`,覆盖权重 ≥60% | |
|
|
449
|
+
| **1.0.0-d** | 支柱 A3 指数聚合 + A4 SEC 派生 | 3-4 天 | 适配器 fact id 从 22 → ≥35 | |
|
|
450
|
+
| **1.0.0-e** | 支柱 B 首批 8 席 + 新增博格 | 7-10 天 | QQQ ≥8 席非 out_of_scope 且每条判据有 source_id | |
|
|
451
|
+
| **1.0.0-f** | 支柱 B 第二三批(穿透 + 量化波动率) | 5-7 天 | QQQ ≥20 席有实质输出,弃权 ≤3 席且各有具体理由 | |
|
|
452
|
+
| **1.0.0** | 支柱 C 表达层 + 发布 | 3-5 天 | 巴菲特席位对 QQQ 输出第 2 节那段话的结构,数字全部带 source_id | |
|
|
453
|
+
| 1.1.0 | 引擎抽离 + 终端版 | 5-7 天 | 终端版与 MCP 版报告字节级一致 | |
|
|
454
|
+
| 1.2.0 | HTTP API + Web + OAuth | 10-14 天 | 无 key 落盘/进前端;配额熔断可验证 | |
|
|
455
|
+
|
|
456
|
+
**1.0.0 总计约 4-6 周。**
|
|
457
|
+
|
|
458
|
+
### 已完成部分的实测结果
|
|
459
|
+
|
|
460
|
+
`1.0.0-a`:782 → 792 测试全绿,`npm run check` EXIT=0,Integrity passed,8/8 机器仿真无漂移。
|
|
461
|
+
分类器矩阵实测:无元数据时 SPY/QQQ/VOO 由 `equity, secFacts=true` 改为 `unknown, secFacts=false`;
|
|
462
|
+
IVV(iShares Trust, SIC 6726)由 `equity` 改为 `etf`;VOO(Vanguard Index Funds)由 `index`
|
|
463
|
+
改为 `fund_lookthrough`,期权链恢复。
|
|
464
|
+
|
|
465
|
+
`1.0.0-b`:9 个宏观事实进入 fact pack,零 diagnostics。2026-07-28 实测值 ——
|
|
466
|
+
10y 国债 4.69%、AAA 公司债 5.52%、HY OAS 2.79%(3 年期分位 18.9%)、
|
|
467
|
+
净流动性 $5.92T(91 天 +3.80%)、regime = `rising_growth_falling_inflation`。
|
|
468
|
+
`macro.aaa_corporate_yield` 和 `macro.long_bond_yield` 正是 1.0.0-e 里格雷厄姆和巴菲特判据要用的基准。
|
|
469
|
+
|
|
470
|
+
### 客户端 / 终端版(简述,细节见前一版方案)
|
|
471
|
+
|
|
472
|
+
先抽引擎:`mcp/lib/engine/runCouncil(symbol, opts, onEvent)` 发结构化事件流,
|
|
473
|
+
`adapters/{mcp,http,cli}.mjs` 三个壳共用。终端版用 Ink 渲染 N 席位状态灯 + 进度。
|
|
474
|
+
v1.0 的 OAuth 分两层:用户登录用 GitHub/Google(`openid-client`,httpOnly cookie);
|
|
475
|
+
数据源侧 Tiingo/Polygon 用 API key,券商侧 Schwab/IBKR 走真 OAuth。
|
|
476
|
+
**key 一律服务端环境变量,绝不进前端、绝不进 run artifacts;现有 keyless 路径保留为默认降级。**
|
|
477
|
+
多用户后 run-store 从 `linkSync` 文件锁换 SQLite。token 配额熔断第一天就要有。
|
|
478
|
+
|
|
479
|
+
---
|
|
480
|
+
|
|
481
|
+
## 6. 一句话
|
|
482
|
+
|
|
483
|
+
当前 26 席里只有 1 席能执行,而那 1 席的"方法"是 `identity(x) > 0`。
|
|
484
|
+
**三层都是空的:事实层缺 92%,方法层是脚手架,表达层是机器诊断。**
|
|
485
|
+
顺序不能反 —— 先补事实(不碰 pack,零风险),再写真方法(这是"有没有意义"的分水岭),
|
|
486
|
+
最后做表达。做完前两层,巴菲特看 QQQ 会说"盈利收益率 3.03%,国债 4.69%,我不会买",
|
|
487
|
+
而不是"这不归我管"。
|