@v587d/capital-generation 2.10.2 → 2.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +31 -0
- package/README.md +3 -3
- package/THIRD_PARTY_NOTICES.md +29 -28
- package/chart-ui/package.json +1 -1
- package/config/client.js +1 -1
- package/config/package.json +1 -1
- package/lib/data-contract.d.ts +15 -0
- package/lib/data-contract.js +26 -0
- package/lib/selected-skills-entry.d.ts +3 -3
- package/lib/selected-skills-entry.js +9 -1
- package/lib/web-retriever/local-fetch.d.ts +1 -1
- package/lib/web-retriever/local-fetch.js +1 -1
- package/lib/web-retriever/wind-client.d.ts +1 -1
- package/lib/web-retriever/wind-client.js +1 -1
- package/package.json +1 -1
- package/selected-skills/InvestSkill/UPSTREAM.md +8 -0
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/10k-digest/SKILL.md +11 -4
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/10k-digest/references/10-retrieving-the-filing.md +24 -15
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/10k-digest/references/11-key-metrics-table.md +3 -2
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/bear-case/SKILL.md +9 -2
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/catalyst-calendar/SKILL.md +9 -2
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/competitor-analysis/SKILL.md +9 -2
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/competitor-analysis/references/13-input-formats.md +2 -2
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/dividend-analysis/SKILL.md +9 -2
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/dividend-analysis/references/13-fcf-deployment-scorecard.md +13 -21
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/earnings-call-analysis/SKILL.md +9 -2
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/earnings-call-analysis/references/11-data-sources.md +18 -45
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/earnings-preview/SKILL.md +9 -2
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/economics-analysis/SKILL.md +10 -3
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/etf-analysis/SKILL.md +9 -2
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/fact-check/SKILL.md +11 -4
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/fact-check/references/10-overview.md +1 -1
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/fact-check/references/11-phase-2-source-hierarchy.md +9 -3
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/fact-check/references/13-notes.md +1 -1
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/financial-report-analyst/SKILL.md +9 -2
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/financial-report-analyst/references/10-overview.md +9 -8
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/industry-map/SKILL.md +9 -2
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/industry-map/references/10-overview.md +2 -2
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/industry-map/references/12-visualization-support.md +1 -1
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/insider-trading/SKILL.md +9 -2
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/insider-trading/references/11-pattern-recognition.md +9 -24
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/insider-trading/references/12-interpretation-guidelines.md +1 -1
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/institutional-ownership/SKILL.md +9 -2
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/institutional-ownership/references/11-ownership-concentration-analysis.md +5 -8
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/institutional-ownership/references/12-red-flags-warning-signs.md +2 -2
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/learning-coach/SKILL.md +9 -2
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/learning-coach/references/10-overview.md +6 -4
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/learning-coach/references/11-phase-2-explanation-card.md +2 -2
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/learning-coach/references/12-output-format.md +1 -1
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/options-analysis/SKILL.md +9 -2
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/portfolio-review/SKILL.md +9 -2
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/position-ladder/SKILL.md +9 -2
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/result-validator/SKILL.md +7 -0
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/risk-stress-test/SKILL.md +9 -2
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/sector-analysis/SKILL.md +9 -2
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/sector-analysis/references/11-sector-correlation-matrix.md +4 -4
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/sector-analysis/references/12-peer-benchmarking-within-sector.md +1 -1
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/short-interest/SKILL.md +9 -2
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/short-interest/references/12-data-sources.md +9 -15
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/stock-eval/SKILL.md +9 -2
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/stock-eval/references/11-dupont-decomposition.md +1 -1
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/stock-screener/SKILL.md +9 -2
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/stock-valuation/SKILL.md +9 -2
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/tax-lens/SKILL.md +9 -2
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/technical-analysis/SKILL.md +9 -2
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/technical-analysis/references/11-chart-visualization-support.md +1 -1
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/thesis-tracker/SKILL.md +9 -2
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/thesis-tracker/references/10-overview.md +1 -1
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/thesis-tracker/references/11-phase-5-the-pre.md +1 -1
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/thesis-tracker/references/12-example.md +2 -2
- package/selected-skills/README.md +26 -17
- package/selected-skills/ROUTING.md +5 -3
- package/selected-skills/catalog.js +38 -0
- package/selected-skills/china-stock-research-skills/UPSTREAM.md +8 -0
- package/selected-skills/china-stock-research-skills/skills/business-decomposition-order-quality/SKILL.md +7 -0
- package/selected-skills/china-stock-research-skills/skills/business-decomposition-order-quality/references/idc-order-ledger-guide.md +11 -9
- package/selected-skills/china-stock-research-skills/skills/financial-health/SKILL.md +7 -0
- package/selected-skills/china-stock-research-skills/skills/financial-health/references/idc-balance-sheet-stress-guide.md +10 -8
- package/selected-skills/china-stock-research-skills/skills/industry-competition-moat/SKILL.md +7 -0
- package/selected-skills/china-stock-research-skills/skills/industry-competition-moat/references/idc-value-chain-and-peers.md +9 -7
- package/selected-skills/china-stock-research-skills/skills/risk-warning-catalysts/SKILL.md +7 -0
- package/selected-skills/china-stock-research-skills/skills/risk-warning-catalysts/references/idc-monitoring-indicators.md +9 -7
- package/selected-skills/china-stock-research-skills/skills/shared/references/asset-heavy-ramp-overlay.md +7 -5
- package/selected-skills/china-stock-research-skills/skills/shared/references/business-model-transition-overlay.md +7 -5
- package/selected-skills/china-stock-research-skills/skills/shared/references/citation-standard.md +7 -7
- package/selected-skills/china-stock-research-skills/skills/shared/references/consumer-channel-brand-overlay.md +8 -6
- package/selected-skills/china-stock-research-skills/skills/shared/references/cyclical-price-driven-overlay.md +8 -6
- package/selected-skills/china-stock-research-skills/skills/shared/references/export-manufacturing-supply-chain-overlay.md +8 -6
- package/selected-skills/china-stock-research-skills/skills/shared/references/idc-heavy-asset-transition-overlay.md +16 -14
- package/selected-skills/china-stock-research-skills/skills/shared/references/project-order-business-overlay.md +7 -5
- package/selected-skills/china-stock-research-skills/skills/shared/references/regulated-healthcare-policy-overlay.md +8 -6
- package/selected-skills/china-stock-research-skills/skills/shared/references/source-registry.md +45 -47
- package/selected-skills/china-stock-research-skills/skills/strategy-business-transition/SKILL.md +7 -0
- package/selected-skills/china-stock-research-skills/skills/strategy-business-transition/references/idc-transition-markers.md +8 -6
- package/selected-skills/china-stock-research-skills/skills/valuation-investment-strategy/SKILL.md +7 -0
- package/selected-skills/china-stock-research-skills/skills/valuation-investment-strategy/references/idc-valuation-overlays.md +8 -6
- package/selected-skills/claude-for-financial-services-cn/UPSTREAM.md +9 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-break-trace/SKILL.md +1 -1
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-catalyst-calendar/SKILL.md +1 -1
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-comps-analysis/SKILL.md +3 -3
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-dcf/SKILL.md +1 -1
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-earnings-analysis/SKILL.md +1 -1
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-earnings-preview/SKILL.md +1 -1
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-idea-generation/SKILL.md +1 -1
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-initiating-coverage/SKILL.md +2 -2
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-morning-note/SKILL.md +1 -1
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-sector-overview/SKILL.md +2 -2
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-thesis-tracker/SKILL.md +1 -1
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-variance-commentary/SKILL.md +1 -1
- package/selected-skills/financeskills/UPSTREAM.md +10 -0
- package/selected-skills/financeskills/skills/banking-compliance/SKILL.md +9 -2
- package/selected-skills/financeskills/skills/company-valuation/SKILL.md +9 -2
- package/selected-skills/financeskills/skills/credit-analysis/SKILL.md +9 -2
- package/selected-skills/financeskills/skills/ecl-computation/SKILL.md +9 -2
- package/selected-skills/financeskills/skills/forensic-accounting/SKILL.md +9 -2
- package/selected-skills/financeskills/skills/insurance-reserving/SKILL.md +9 -2
- package/selected-skills/financeskills/skills/three-statement-modeling/SKILL.md +9 -2
- package/selected-skills/financeskills/skills/wacc-computation/SKILL.md +9 -2
- package/selected-skills/investment-skills/UPSTREAM.md +9 -0
- package/selected-skills/investment-skills/skills/buffett-investment-framework/SKILL.md +7 -0
- package/selected-skills/investment-skills/skills/buffett-investment-framework/references/00-source-key.md +25 -25
- package/selected-skills/investment-skills/skills/buffett-investment-framework/references/11-deterministic-router.md +40 -9
- package/selected-skills/peter-lynch-skill/UPSTREAM.md +7 -0
- package/selected-skills/peter-lynch-skill/skills/peter-lynch-skill/SKILL.md +9 -2
- package/selected-skills/peter-lynch-skill/skills/peter-lynch-skill/references/10-workflow.md +1 -1
- package/selected-skills/peter-lynch-skill/skills/peter-lynch-skill/references/deep/system-prompt.md +5 -5
- package/selected-skills/peter-lynch-skill/skills/peter-lynch-skill/references/deep/web-research-1.md +1 -1
- package/selected-skills/peter-lynch-skill/skills/peter-lynch-skill/references/deep/web-research-2.md +4 -7
- package/selected-skills/peter-lynch-skill/skills/peter-lynch-skill/references/quick/system-prompt.md +1 -1
- package/selected-skills/peter-lynch-skill/skills/peter-lynch-skill/references/quick/web-research-1.md +50 -49
- package/selected-skills/quant-agent-skills/UPSTREAM.md +8 -0
- package/selected-skills/quant-agent-skills/skills/cross-market-listing-choice/SKILL.md +1 -1
- package/selected-skills/routing.js +29 -1
- package/selected-skills/trading-skills/UPSTREAM.md +10 -0
- package/selected-skills/trading-skills/skills/catalyst-map/SKILL.md +7 -0
- package/selected-skills/trading-skills/skills/evidence-gap-check/SKILL.md +7 -0
- package/selected-skills/trading-skills/skills/execution-plan-check/SKILL.md +7 -0
- package/selected-skills/trading-skills/skills/journal-pattern-analyzer/SKILL.md +7 -0
- package/selected-skills/trading-skills/skills/macro-event-analysis/SKILL.md +6 -9
- package/selected-skills/trading-skills/skills/macro-event-analysis/references/interpretation-guide.md +1 -1
- package/selected-skills/trading-skills/skills/market-regime-analysis/SKILL.md +5 -8
- package/selected-skills/trading-skills/skills/portfolio-concentration/SKILL.md +7 -0
- package/selected-skills/trading-skills/skills/position-management/SKILL.md +7 -0
- package/selected-skills/trading-skills/skills/position-sizing/SKILL.md +7 -0
- package/selected-skills/trading-skills/skills/post-trade-review/SKILL.md +7 -0
- package/selected-skills/trading-skills/skills/risk-reward-sanity-check/SKILL.md +7 -0
- package/selected-skills/trading-skills/skills/thesis-validation/SKILL.md +7 -0
- package/selected-skills/trading-skills/skills/watchlist-review/SKILL.md +7 -0
- package/watchlist/package.json +1 -1
- package/selected-skills/InvestSkill/install.sh +0 -212
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/chart-master/SKILL.md +0 -648
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/dcf-valuation/SKILL.md +0 -109
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/full-report/SKILL.md +0 -301
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/fundamental-analysis/SKILL.md +0 -67
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/report-generator/SKILL.md +0 -857
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/skills/research-bundle/SKILL.md +0 -94
- package/selected-skills/china-stock-research-skills/skills/china-stock-research-orchestrator/SKILL.md +0 -75
- package/selected-skills/china-stock-research-skills/skills/china-stock-research-orchestrator/references/final-output-contract.md +0 -62
- package/selected-skills/china-stock-research-skills/skills/china-stock-research-orchestrator/references/routing-matrix.md +0 -34
- package/selected-skills/china-stock-research-skills/skills/china-stock-research-orchestrator/references/sector-overlay-escalation-rules.md +0 -38
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-3-statement-model/SKILL.md +0 -287
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-accrual-schedule/SKILL.md +0 -182
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-audit-xls/SKILL.md +0 -231
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-clean-data-xls/SKILL.md +0 -237
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-comps/SKILL.md +0 -104
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-dcf-model/SKILL.md +0 -68
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-deal-screening/SKILL.md +0 -212
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-deck-refresh/SKILL.md +0 -221
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-gl-recon/SKILL.md +0 -232
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-ib-check-deck/SKILL.md +0 -252
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-lbo-model/SKILL.md +0 -273
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-market-data/SKILL.md +0 -229
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-model-update/SKILL.md +0 -219
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-ppt-template-creator/SKILL.md +0 -231
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-pptx-author/SKILL.md +0 -240
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-roll-forward/SKILL.md +0 -189
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-skill-creator/SKILL.md +0 -304
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-tax-loss-harvesting/SKILL.md +0 -200
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-xlsx-author/SKILL.md +0 -256
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/fund-admin/skills/china-accrual-schedule/SKILL.md +0 -190
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/fund-admin/skills/china-break-trace/SKILL.md +0 -182
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/fund-admin/skills/china-gl-recon/SKILL.md +0 -200
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/fund-admin/skills/china-nav-tieout/SKILL.md +0 -233
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/fund-admin/skills/china-roll-forward/SKILL.md +0 -178
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/fund-admin/skills/china-variance-commentary/SKILL.md +0 -190
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/investment-banking/skills/china-buyer-list/SKILL.md +0 -198
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/investment-banking/skills/china-cim-builder/SKILL.md +0 -223
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/investment-banking/skills/china-competitive-analysis/SKILL.md +0 -233
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/investment-banking/skills/china-datapack-builder/SKILL.md +0 -232
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/investment-banking/skills/china-deal-tracker/SKILL.md +0 -151
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/investment-banking/skills/china-merger-model/SKILL.md +0 -226
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/investment-banking/skills/china-pitch-deck/SKILL.md +0 -231
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/investment-banking/skills/china-process-letter/SKILL.md +0 -249
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/investment-banking/skills/china-strip-profile/SKILL.md +0 -196
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/investment-banking/skills/china-teaser/SKILL.md +0 -235
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/operations/skills/china-kyc-doc-parse/SKILL.md +0 -252
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/operations/skills/china-kyc-rules/SKILL.md +0 -223
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/private-equity/skills/china-ai-readiness/SKILL.md +0 -184
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/private-equity/skills/china-dd-checklist/SKILL.md +0 -217
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/private-equity/skills/china-dd-meeting-prep/SKILL.md +0 -290
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/private-equity/skills/china-deal-sourcing/SKILL.md +0 -224
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/private-equity/skills/china-ic-memo/SKILL.md +0 -230
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/private-equity/skills/china-portfolio-monitoring/SKILL.md +0 -214
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/private-equity/skills/china-returns-analysis/SKILL.md +0 -176
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/private-equity/skills/china-unit-economics/SKILL.md +0 -192
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/private-equity/skills/china-value-creation-plan/SKILL.md +0 -193
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/wealth-management/skills/china-client-report/SKILL.md +0 -205
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/wealth-management/skills/china-client-review/SKILL.md +0 -218
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/wealth-management/skills/china-financial-plan/SKILL.md +0 -259
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/wealth-management/skills/china-investment-proposal/SKILL.md +0 -271
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/wealth-management/skills/china-portfolio-rebalance/SKILL.md +0 -191
- package/selected-skills/financeskills/skills/ai-anomaly-detection/EXAMPLE.md +0 -21
- package/selected-skills/financeskills/skills/ai-anomaly-detection/SKILL.md +0 -84
- package/selected-skills/financeskills/skills/ai-anomaly-detection/references/feature-engineering.md +0 -20
- package/selected-skills/financeskills/skills/ai-anomaly-detection/references/ml-algorithms.md +0 -28
- package/selected-skills/financeskills/skills/aro-computation/EXAMPLE.md +0 -21
- package/selected-skills/financeskills/skills/aro-computation/SKILL.md +0 -82
- package/selected-skills/financeskills/skills/aro-computation/references/aro-standards.md +0 -22
- package/selected-skills/financeskills/skills/aro-computation/references/pv-math.md +0 -27
- package/selected-skills/financeskills/skills/audit-checklist/EXAMPLE.md +0 -17
- package/selected-skills/financeskills/skills/audit-checklist/SKILL.md +0 -77
- package/selected-skills/financeskills/skills/audit-checklist/references/internal-controls.md +0 -36
- package/selected-skills/financeskills/skills/audit-checklist/references/isa-standards.md +0 -26
- package/selected-skills/financeskills/skills/automated-reconciliation/EXAMPLE.md +0 -21
- package/selected-skills/financeskills/skills/automated-reconciliation/SKILL.md +0 -87
- package/selected-skills/financeskills/skills/automated-reconciliation/assets/reconciliation-statement-template.md +0 -31
- package/selected-skills/financeskills/skills/automated-reconciliation/references/fuzzy-logic.md +0 -27
- package/selected-skills/financeskills/skills/automated-reconciliation/references/rec-controls.md +0 -28
- package/selected-skills/financeskills/skills/budget-forecast/EXAMPLE.md +0 -21
- package/selected-skills/financeskills/skills/budget-forecast/SKILL.md +0 -87
- package/selected-skills/financeskills/skills/budget-forecast/references/forecasting-best-practices.md +0 -26
- package/selected-skills/financeskills/skills/budget-forecast/references/scenario-analysis.md +0 -25
- package/selected-skills/financeskills/skills/close-management/EXAMPLE.md +0 -17
- package/selected-skills/financeskills/skills/close-management/SKILL.md +0 -85
- package/selected-skills/financeskills/skills/close-management/references/close-task-library.md +0 -32
- package/selected-skills/financeskills/skills/corporate-consolidation/EXAMPLE.md +0 -21
- package/selected-skills/financeskills/skills/corporate-consolidation/SKILL.md +0 -84
- package/selected-skills/financeskills/skills/corporate-consolidation/references/consolidation-standard.md +0 -28
- package/selected-skills/financeskills/skills/corporate-consolidation/references/minority-interest.md +0 -25
- package/selected-skills/financeskills/skills/crypto-accounting/EXAMPLE.md +0 -21
- package/selected-skills/financeskills/skills/crypto-accounting/SKILL.md +0 -81
- package/selected-skills/financeskills/skills/crypto-accounting/references/fasb-crypto.md +0 -26
- package/selected-skills/financeskills/skills/crypto-accounting/references/ifrs-crypto.md +0 -25
- package/selected-skills/financeskills/skills/cvp-breakeven/EXAMPLE.md +0 -21
- package/selected-skills/financeskills/skills/cvp-breakeven/SKILL.md +0 -78
- package/selected-skills/financeskills/skills/cvp-breakeven/references/cvp-patterns.md +0 -28
- package/selected-skills/financeskills/skills/debt-payoff/EXAMPLE.md +0 -21
- package/selected-skills/financeskills/skills/debt-payoff/SKILL.md +0 -94
- package/selected-skills/financeskills/skills/debt-payoff/references/debt-strategies.md +0 -32
- package/selected-skills/financeskills/skills/debt-payoff/references/interest-calculations.md +0 -27
- package/selected-skills/financeskills/skills/debt-restructuring/EXAMPLE.md +0 -21
- package/selected-skills/financeskills/skills/debt-restructuring/SKILL.md +0 -79
- package/selected-skills/financeskills/skills/debt-restructuring/references/creditor-priority.md +0 -26
- package/selected-skills/financeskills/skills/debt-restructuring/references/restructuring-types.md +0 -24
- package/selected-skills/financeskills/skills/deferred-tax/EXAMPLE.md +0 -21
- package/selected-skills/financeskills/skills/deferred-tax/SKILL.md +0 -86
- package/selected-skills/financeskills/skills/deferred-tax/references/td-catalogue.md +0 -39
- package/selected-skills/financeskills/skills/earned-value-mgmt/EXAMPLE.md +0 -21
- package/selected-skills/financeskills/skills/earned-value-mgmt/SKILL.md +0 -79
- package/selected-skills/financeskills/skills/earned-value-mgmt/references/forecasting-eac.md +0 -27
- package/selected-skills/financeskills/skills/earned-value-mgmt/references/pmi-evm.md +0 -29
- package/selected-skills/financeskills/skills/esg-reporting/EXAMPLE.md +0 -17
- package/selected-skills/financeskills/skills/esg-reporting/SKILL.md +0 -79
- package/selected-skills/financeskills/skills/esg-reporting/references/ghg-protocol.md +0 -22
- package/selected-skills/financeskills/skills/esg-reporting/references/sasb-map.md +0 -25
- package/selected-skills/financeskills/skills/financial-analysis/EXAMPLE.md +0 -21
- package/selected-skills/financeskills/skills/financial-analysis/SKILL.md +0 -108
- package/selected-skills/financeskills/skills/financial-analysis/assets/analysis-memo-template.md +0 -31
- package/selected-skills/financeskills/skills/financial-analysis/references/accounting-standards.md +0 -45
- package/selected-skills/financeskills/skills/financial-analysis/references/ratio-definitions.md +0 -14
- package/selected-skills/financeskills/skills/fixed-asset-accounting/EXAMPLE.md +0 -21
- package/selected-skills/financeskills/skills/fixed-asset-accounting/SKILL.md +0 -78
- package/selected-skills/financeskills/skills/fixed-asset-accounting/references/useful-life-guide.md +0 -30
- package/selected-skills/financeskills/skills/intercompany-accounting/EXAMPLE.md +0 -21
- package/selected-skills/financeskills/skills/intercompany-accounting/SKILL.md +0 -79
- package/selected-skills/financeskills/skills/intercompany-accounting/references/elimination-entries.md +0 -35
- package/selected-skills/financeskills/skills/inventory-costing/EXAMPLE.md +0 -21
- package/selected-skills/financeskills/skills/inventory-costing/SKILL.md +0 -80
- package/selected-skills/financeskills/skills/inventory-costing/references/costing-examples.md +0 -31
- package/selected-skills/financeskills/skills/investment-analysis/EXAMPLE.md +0 -21
- package/selected-skills/financeskills/skills/investment-analysis/SKILL.md +0 -82
- package/selected-skills/financeskills/skills/investment-analysis/references/competitive-advantage.md +0 -31
- package/selected-skills/financeskills/skills/investment-analysis/references/valuation-guide.md +0 -29
- package/selected-skills/financeskills/skills/journal-entry/EXAMPLE.md +0 -21
- package/selected-skills/financeskills/skills/journal-entry/SKILL.md +0 -94
- package/selected-skills/financeskills/skills/journal-entry/assets/journal-entry-template.md +0 -21
- package/selected-skills/financeskills/skills/journal-entry/references/entry-patterns.md +0 -51
- package/selected-skills/financeskills/skills/lbo-modeling/EXAMPLE.md +0 -21
- package/selected-skills/financeskills/skills/lbo-modeling/SKILL.md +0 -88
- package/selected-skills/financeskills/skills/lbo-modeling/references/debt-structures.md +0 -22
- package/selected-skills/financeskills/skills/lbo-modeling/references/lbo-best-practices.md +0 -27
- package/selected-skills/financeskills/skills/lease-accounting/EXAMPLE.md +0 -21
- package/selected-skills/financeskills/skills/lease-accounting/SKILL.md +0 -88
- package/selected-skills/financeskills/skills/lease-accounting/assets/commencement-summary-template.md +0 -28
- package/selected-skills/financeskills/skills/lease-accounting/references/ibr-guide.md +0 -26
- package/selected-skills/financeskills/skills/net-worth-tracker/EXAMPLE.md +0 -21
- package/selected-skills/financeskills/skills/net-worth-tracker/SKILL.md +0 -98
- package/selected-skills/financeskills/skills/net-worth-tracker/references/asset-valuation.md +0 -40
- package/selected-skills/financeskills/skills/net-worth-tracker/references/net-worth-benchmarks.md +0 -33
- package/selected-skills/financeskills/skills/nlp-earnings-sentiment/EXAMPLE.md +0 -17
- package/selected-skills/financeskills/skills/nlp-earnings-sentiment/SKILL.md +0 -77
- package/selected-skills/financeskills/skills/nlp-earnings-sentiment/references/finbert-guide.md +0 -26
- package/selected-skills/financeskills/skills/nlp-earnings-sentiment/references/linguistic-finance.md +0 -23
- package/selected-skills/financeskills/skills/oil-gas-valuation/EXAMPLE.md +0 -21
- package/selected-skills/financeskills/skills/oil-gas-valuation/SKILL.md +0 -86
- package/selected-skills/financeskills/skills/oil-gas-valuation/references/sec-reporting.md +0 -22
- package/selected-skills/financeskills/skills/oil-gas-valuation/references/spe-standards.md +0 -25
- package/selected-skills/financeskills/skills/personal-budgeting/EXAMPLE.md +0 -21
- package/selected-skills/financeskills/skills/personal-budgeting/SKILL.md +0 -100
- package/selected-skills/financeskills/skills/personal-budgeting/references/budgeting-methods.md +0 -40
- package/selected-skills/financeskills/skills/personal-budgeting/references/spending-categories.md +0 -40
- package/selected-skills/financeskills/skills/predictive-burn-rate/EXAMPLE.md +0 -21
- package/selected-skills/financeskills/skills/predictive-burn-rate/SKILL.md +0 -82
- package/selected-skills/financeskills/skills/predictive-burn-rate/references/startup-metrics.md +0 -27
- package/selected-skills/financeskills/skills/predictive-burn-rate/references/time-series-forecasting.md +0 -22
- package/selected-skills/financeskills/skills/product-profitability/EXAMPLE.md +0 -21
- package/selected-skills/financeskills/skills/product-profitability/SKILL.md +0 -83
- package/selected-skills/financeskills/skills/product-profitability/references/allocation-logic.md +0 -28
- package/selected-skills/financeskills/skills/product-profitability/references/unit-economics.md +0 -30
- package/selected-skills/financeskills/skills/retirement-planning/EXAMPLE.md +0 -21
- package/selected-skills/financeskills/skills/retirement-planning/SKILL.md +0 -98
- package/selected-skills/financeskills/skills/retirement-planning/references/compound-growth.md +0 -38
- package/selected-skills/financeskills/skills/retirement-planning/references/retirement-fundamentals.md +0 -29
- package/selected-skills/financeskills/skills/revenue-recognition/EXAMPLE.md +0 -21
- package/selected-skills/financeskills/skills/revenue-recognition/SKILL.md +0 -86
- package/selected-skills/financeskills/skills/revenue-recognition/assets/allocation-workpaper-template.md +0 -30
- package/selected-skills/financeskills/skills/revenue-recognition/references/ifrs15-guide.md +0 -28
- package/selected-skills/financeskills/skills/revenue-recognition/references/saas-rev-rec.md +0 -26
- package/selected-skills/financeskills/skills/risk-assessment/EXAMPLE.md +0 -21
- package/selected-skills/financeskills/skills/risk-assessment/SKILL.md +0 -83
- package/selected-skills/financeskills/skills/risk-assessment/references/hedging-guide.md +0 -24
- package/selected-skills/financeskills/skills/risk-assessment/references/risk-metrics.md +0 -24
- package/selected-skills/financeskills/skills/sox-compliance/EXAMPLE.md +0 -17
- package/selected-skills/financeskills/skills/sox-compliance/SKILL.md +0 -88
- package/selected-skills/financeskills/skills/sox-compliance/references/sampling-methodology.md +0 -27
- package/selected-skills/financeskills/skills/startup-valuation/EXAMPLE.md +0 -21
- package/selected-skills/financeskills/skills/startup-valuation/SKILL.md +0 -88
- package/selected-skills/financeskills/skills/startup-valuation/references/berkus-method.md +0 -25
- package/selected-skills/financeskills/skills/startup-valuation/references/vc-method.md +0 -23
- package/selected-skills/financeskills/skills/statement-preparation/EXAMPLE.md +0 -21
- package/selected-skills/financeskills/skills/statement-preparation/SKILL.md +0 -86
- package/selected-skills/financeskills/skills/statement-preparation/references/accruals-deferrals.md +0 -24
- package/selected-skills/financeskills/skills/statement-preparation/references/cash-flow-method.md +0 -32
- package/selected-skills/financeskills/skills/tax-efficient-investing/EXAMPLE.md +0 -21
- package/selected-skills/financeskills/skills/tax-efficient-investing/SKILL.md +0 -97
- package/selected-skills/financeskills/skills/tax-efficient-investing/references/account-types.md +0 -33
- package/selected-skills/financeskills/skills/tax-efficient-investing/references/asset-location.md +0 -36
- package/selected-skills/financeskills/skills/tax-planning/EXAMPLE.md +0 -21
- package/selected-skills/financeskills/skills/tax-planning/SKILL.md +0 -93
- package/selected-skills/financeskills/skills/tax-planning/references/common-deductions.md +0 -28
- package/selected-skills/financeskills/skills/tax-planning/references/tax-code-lookup.md +0 -25
- package/selected-skills/financeskills/skills/treasury-management/EXAMPLE.md +0 -21
- package/selected-skills/financeskills/skills/treasury-management/SKILL.md +0 -83
- package/selected-skills/financeskills/skills/treasury-management/references/fx-hedging.md +0 -27
- package/selected-skills/financeskills/skills/treasury-management/references/liquidity-metrics.md +0 -24
- package/selected-skills/financeskills/skills/variance-analysis/EXAMPLE.md +0 -21
- package/selected-skills/financeskills/skills/variance-analysis/SKILL.md +0 -78
- package/selected-skills/financeskills/skills/variance-analysis/references/overhead-logic.md +0 -24
- package/selected-skills/financeskills/skills/variance-analysis/references/variance-math.md +0 -35
- package/selected-skills/financeskills/skills/venture-debt/EXAMPLE.md +0 -21
- package/selected-skills/financeskills/skills/venture-debt/SKILL.md +0 -84
- package/selected-skills/financeskills/skills/venture-debt/references/saas-debt-metrics.md +0 -26
- package/selected-skills/financeskills/skills/venture-debt/references/venture-lending.md +0 -23
- package/selected-skills/financeskills/skills/working-capital-analysis/EXAMPLE.md +0 -21
- package/selected-skills/financeskills/skills/working-capital-analysis/SKILL.md +0 -83
- package/selected-skills/financeskills/skills/working-capital-analysis/references/wc-metrics.md +0 -30
- package/selected-skills/investment-skills/Makefile +0 -29
- package/selected-skills/investment-skills/skills/buffett-investment-framework/agents/openai.yaml +0 -4
- package/selected-skills/investment-skills/skills/buffett-investment-framework/scripts/framework.py +0 -470
- package/selected-skills/trading-skills/skills/earnings-preview/SKILL.md +0 -124
- package/selected-skills/trading-skills/skills/earnings-preview/references/data-providers.md +0 -26
- package/selected-skills/trading-skills/skills/earnings-preview/references/providers/fmp.md +0 -49
- package/selected-skills/trading-skills/skills/earnings-preview/references/providers/polygon.md +0 -45
- package/selected-skills/trading-skills/skills/earnings-preview/references/providers/tradingeconomics.md +0 -49
- package/selected-skills/trading-skills/skills/earnings-preview/references/relevance-ranking.md +0 -24
- package/selected-skills/trading-skills/skills/earnings-trade-prep/SKILL.md +0 -134
- package/selected-skills/trading-skills/skills/earnings-trade-prep/references/workflow-framework.md +0 -65
- package/selected-skills/trading-skills/skills/macro-event-analysis/references/data-providers.md +0 -23
- package/selected-skills/trading-skills/skills/macro-event-analysis/references/providers/fmp.md +0 -28
- package/selected-skills/trading-skills/skills/macro-event-analysis/references/providers/tradingeconomics.md +0 -40
- package/selected-skills/trading-skills/skills/market-regime-analysis/references/data-providers.md +0 -26
- package/selected-skills/trading-skills/skills/market-regime-analysis/references/providers/fmp.md +0 -46
- package/selected-skills/trading-skills/skills/market-regime-analysis/references/providers/polygon.md +0 -36
- package/selected-skills/trading-skills/skills/market-regime-analysis/references/providers/tradingeconomics.md +0 -46
- package/selected-skills/trading-skills/skills/portfolio-risk-review/SKILL.md +0 -126
- package/selected-skills/trading-skills/skills/portfolio-risk-review/references/workflow-framework.md +0 -57
- package/selected-skills/trading-skills/skills/post-trade-debrief/SKILL.md +0 -99
- package/selected-skills/trading-skills/skills/post-trade-debrief/references/workflow-framework.md +0 -51
- package/selected-skills/trading-skills/skills/pre-trade-check/SKILL.md +0 -136
- package/selected-skills/trading-skills/skills/pre-trade-check/references/workflow-framework.md +0 -61
package/selected-skills/investment-skills/skills/buffett-investment-framework/scripts/framework.py
DELETED
|
@@ -1,470 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env python3
|
|
2
|
-
"""Route, inspect, and validate the standalone Buffett framework skill."""
|
|
3
|
-
|
|
4
|
-
from __future__ import annotations
|
|
5
|
-
|
|
6
|
-
import argparse
|
|
7
|
-
import re
|
|
8
|
-
import sys
|
|
9
|
-
from collections.abc import Iterable
|
|
10
|
-
from pathlib import Path
|
|
11
|
-
from typing import cast
|
|
12
|
-
|
|
13
|
-
SKILL_ROOT = Path(__file__).resolve().parent.parent
|
|
14
|
-
SKILL_PATH = SKILL_ROOT / "SKILL.md"
|
|
15
|
-
MINIMUM_CARD_LOAD = 5
|
|
16
|
-
MAXIMUM_CARD_LOAD = 12
|
|
17
|
-
EXPECTED_COUNTS = {
|
|
18
|
-
"D": 9,
|
|
19
|
-
"B": 7,
|
|
20
|
-
"M": 8,
|
|
21
|
-
"F": 7,
|
|
22
|
-
"V": 6,
|
|
23
|
-
"C": 9,
|
|
24
|
-
"R": 7,
|
|
25
|
-
"S": 12,
|
|
26
|
-
}
|
|
27
|
-
REFERENCE_FILES = {
|
|
28
|
-
"D": "references/01-decision-posture.md",
|
|
29
|
-
"B": "references/02-business-economics.md",
|
|
30
|
-
"M": "references/03-management-governance.md",
|
|
31
|
-
"F": "references/04-financial-reality.md",
|
|
32
|
-
"V": "references/05-valuation.md",
|
|
33
|
-
"C": "references/06-capital-allocation.md",
|
|
34
|
-
"R": "references/07-risk-monitoring.md",
|
|
35
|
-
"S": "references/08-specialized-overlays.md",
|
|
36
|
-
}
|
|
37
|
-
WORKFLOW_CARDS = {
|
|
38
|
-
"financial-analysis": ("F01", "F02", "F05", "F06", "F07"),
|
|
39
|
-
"memo-review": ("D01", "D03", "B02", "V01", "V05", "V06", "R01", "R07"),
|
|
40
|
-
"thesis-evaluation": (
|
|
41
|
-
"D02",
|
|
42
|
-
"D03",
|
|
43
|
-
"B01",
|
|
44
|
-
"B06",
|
|
45
|
-
"V01",
|
|
46
|
-
"V04",
|
|
47
|
-
"R01",
|
|
48
|
-
"R07",
|
|
49
|
-
),
|
|
50
|
-
}
|
|
51
|
-
TOPIC_CARDS = {
|
|
52
|
-
"business-model": ("B01",),
|
|
53
|
-
"moat": ("B02",),
|
|
54
|
-
"management": ("M01", "M02", "M03"),
|
|
55
|
-
"governance": ("M04", "M05"),
|
|
56
|
-
"integration-controls": ("M05", "M06"),
|
|
57
|
-
"succession": ("M07", "M08"),
|
|
58
|
-
"valuation": ("V01", "V03", "V05", "V06"),
|
|
59
|
-
"capital-allocation": ("C01", "C03", "C04"),
|
|
60
|
-
"dilution": ("C01", "C07"),
|
|
61
|
-
"acquisition": ("C08", "C09"),
|
|
62
|
-
"leverage": ("F07", "R01", "R02", "R03"),
|
|
63
|
-
"insurance": ("S01", "S02", "S03"),
|
|
64
|
-
"insurance-tail-risk": ("S04", "S05"),
|
|
65
|
-
"insurance-moat": ("S06",),
|
|
66
|
-
"banking": ("S07",),
|
|
67
|
-
"consumer": ("S08",),
|
|
68
|
-
"infrastructure": ("S09",),
|
|
69
|
-
"technology": ("S10",),
|
|
70
|
-
"energy": ("S11",),
|
|
71
|
-
"special-instruments": ("S12",),
|
|
72
|
-
}
|
|
73
|
-
REQUIRED_CARD_FIELDS = (
|
|
74
|
-
"Decision question",
|
|
75
|
-
"Guidance",
|
|
76
|
-
"Use when",
|
|
77
|
-
"Analytical actions",
|
|
78
|
-
"Output",
|
|
79
|
-
"Limits",
|
|
80
|
-
"Source basis",
|
|
81
|
-
"Corroboration",
|
|
82
|
-
)
|
|
83
|
-
SOURCE_KEY_FILE = "references/00-source-key.md"
|
|
84
|
-
RETRIEVAL_SECTION_HEADING = "## Where to Retrieve Each Source"
|
|
85
|
-
RETRIEVAL_KEY_FORMS = (
|
|
86
|
-
"BH<year>",
|
|
87
|
-
"BPL<year>",
|
|
88
|
-
"OM1996",
|
|
89
|
-
"SI1984",
|
|
90
|
-
"WB50-2015",
|
|
91
|
-
"CM50-2015",
|
|
92
|
-
"FL2025",
|
|
93
|
-
"GC<year>",
|
|
94
|
-
"SC<year>",
|
|
95
|
-
"ACL2022",
|
|
96
|
-
"ABM2010",
|
|
97
|
-
"IL2001",
|
|
98
|
-
"EWB",
|
|
99
|
-
"LOW",
|
|
100
|
-
)
|
|
101
|
-
MINIMUM_ANALYTICAL_ACTIONS = 1
|
|
102
|
-
MAXIMUM_ANALYTICAL_ACTIONS = 3
|
|
103
|
-
MINIMUM_SOURCE_CITATIONS = 1
|
|
104
|
-
MAXIMUM_SOURCE_CITATIONS = 3
|
|
105
|
-
MINIMUM_CORROBORATION = 2
|
|
106
|
-
MAXIMUM_CORROBORATION = 4
|
|
107
|
-
MAXIMUM_DESCRIPTION_LENGTH = 1024
|
|
108
|
-
CORROBORATION_KEY: re.Pattern[str] = re.compile(
|
|
109
|
-
r"^(?:BH\d{4}|BPL\d{4}|OM1996|SI1984|WB50-2015|CM50-2015|FL2025|GC\d{4}"
|
|
110
|
-
r"|SC\d{4}|ACL2022|ABM2010|IL2001"
|
|
111
|
-
r"|EWB §(?:Prologue|Epilogue|Afterword|[IVX]+\.[A-J])"
|
|
112
|
-
r"|LOW (?:ch\.\d{1,2}|Intro|Afterword))"
|
|
113
|
-
r"(?: \([^();]+\))?$"
|
|
114
|
-
)
|
|
115
|
-
CARD_HEADING: re.Pattern[str] = re.compile(
|
|
116
|
-
r"^### ([DBMFVCRS]\d{2}) — (.+)$", re.MULTILINE
|
|
117
|
-
)
|
|
118
|
-
MARKDOWN_LINK: re.Pattern[str] = re.compile(r"\[[^\]]+\]\(([^)]+)\)")
|
|
119
|
-
SOURCE_ENTRY: re.Pattern[str] = re.compile(r"^ - \*\*", re.MULTILINE)
|
|
120
|
-
SOURCE_ROLE: re.Pattern[str] = re.compile(
|
|
121
|
-
r"\*(defines|supports|implements|illustrates|qualifies|specializes)\*:"
|
|
122
|
-
)
|
|
123
|
-
CARD_FIELD: re.Pattern[str] = re.compile(
|
|
124
|
-
r"^- \*\*(?P<label>[^:]+):\*\*\s*(?P<value>.*?)(?=^- \*\*|^<a id=|^<!--|\Z)",
|
|
125
|
-
re.MULTILINE | re.DOTALL,
|
|
126
|
-
)
|
|
127
|
-
UNPUBLISHABLE_TEXT = {
|
|
128
|
-
"draft or preview label": re.compile(r"\b(?:draft|preview)\b", re.IGNORECASE),
|
|
129
|
-
"opaque record identifier": re.compile(
|
|
130
|
-
"".join((r"\brec", r"ord:[a-z0-9][a-z0-9:-]+"))
|
|
131
|
-
),
|
|
132
|
-
"absolute workspace path": re.compile(
|
|
133
|
-
r"(?:^|[\s(`'\"])/(?:Users|home|private|workspace)/", re.MULTILINE
|
|
134
|
-
),
|
|
135
|
-
"parent-directory traversal": re.compile(r"(?:^|[(`'\"])(?:\.\./)+"),
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
def ordered_unique(values: Iterable[str]) -> list[str]:
|
|
140
|
-
"""Return values in first-seen order without duplicates."""
|
|
141
|
-
return list(dict.fromkeys(values))
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
def card_locations() -> dict[str, str]:
|
|
145
|
-
"""Map every card ID to its stable reference location."""
|
|
146
|
-
locations: dict[str, str] = {}
|
|
147
|
-
for prefix, relative_path in REFERENCE_FILES.items():
|
|
148
|
-
path = SKILL_ROOT / relative_path
|
|
149
|
-
if not path.is_file():
|
|
150
|
-
raise FileNotFoundError(f"missing reference file: {relative_path}")
|
|
151
|
-
body = path.read_text(encoding="utf-8")
|
|
152
|
-
for match in CARD_HEADING.finditer(body):
|
|
153
|
-
card_id = match.group(1)
|
|
154
|
-
if not card_id.startswith(prefix):
|
|
155
|
-
raise ValueError(
|
|
156
|
-
f"{card_id} is in the wrong module file: {relative_path}"
|
|
157
|
-
)
|
|
158
|
-
if card_id in locations:
|
|
159
|
-
raise ValueError(f"duplicate card ID: {card_id}")
|
|
160
|
-
locations[card_id] = f"{relative_path}#{card_id.lower()}"
|
|
161
|
-
return locations
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
def validate_local_links(path: Path, errors: list[str]) -> None:
|
|
165
|
-
"""Append failures for local Markdown links that do not resolve."""
|
|
166
|
-
body = path.read_text(encoding="utf-8")
|
|
167
|
-
for match in MARKDOWN_LINK.finditer(body):
|
|
168
|
-
target = match.group(1)
|
|
169
|
-
if target.startswith(("http://", "https://", "mailto:")):
|
|
170
|
-
continue
|
|
171
|
-
local_target, _separator, fragment = target.partition("#")
|
|
172
|
-
resolved = path if not local_target else path.parent / local_target
|
|
173
|
-
if not resolved.exists():
|
|
174
|
-
errors.append(
|
|
175
|
-
f"broken local link in {path.relative_to(SKILL_ROOT)}: {target}"
|
|
176
|
-
)
|
|
177
|
-
continue
|
|
178
|
-
if fragment:
|
|
179
|
-
target_body = resolved.read_text(encoding="utf-8")
|
|
180
|
-
if f'id="{fragment}"' not in target_body:
|
|
181
|
-
errors.append(
|
|
182
|
-
f"broken local anchor in {path.relative_to(SKILL_ROOT)}: {target}"
|
|
183
|
-
)
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
def validate() -> int:
|
|
187
|
-
"""Validate package structure, public card contracts, and routing."""
|
|
188
|
-
errors: list[str] = []
|
|
189
|
-
locations = card_locations()
|
|
190
|
-
expected_ids = {
|
|
191
|
-
f"{prefix}{number:02d}"
|
|
192
|
-
for prefix, count in EXPECTED_COUNTS.items()
|
|
193
|
-
for number in range(1, count + 1)
|
|
194
|
-
}
|
|
195
|
-
actual_ids = set(locations)
|
|
196
|
-
if actual_ids != expected_ids:
|
|
197
|
-
errors.append(
|
|
198
|
-
f"card namespace mismatch: missing={sorted(expected_ids - actual_ids)}, extra={sorted(actual_ids - expected_ids)}"
|
|
199
|
-
)
|
|
200
|
-
|
|
201
|
-
for prefix, expected_count in EXPECTED_COUNTS.items():
|
|
202
|
-
actual_count = sum(card_id.startswith(prefix) for card_id in actual_ids)
|
|
203
|
-
if actual_count != expected_count:
|
|
204
|
-
errors.append(
|
|
205
|
-
f"{prefix} module has {actual_count} cards; expected {expected_count}"
|
|
206
|
-
)
|
|
207
|
-
|
|
208
|
-
for relative_path in REFERENCE_FILES.values():
|
|
209
|
-
path = SKILL_ROOT / relative_path
|
|
210
|
-
body = path.read_text(encoding="utf-8")
|
|
211
|
-
second_level_headings = re.findall(r"^## (.+)$", body, re.MULTILINE)
|
|
212
|
-
if second_level_headings != ["Card Index", "Complete Cards"]:
|
|
213
|
-
errors.append(
|
|
214
|
-
f"unexpected section structure in {relative_path}: {second_level_headings}"
|
|
215
|
-
)
|
|
216
|
-
headings = list(CARD_HEADING.finditer(body))
|
|
217
|
-
for index, match in enumerate(headings):
|
|
218
|
-
end = (
|
|
219
|
-
headings[index + 1].start() if index + 1 < len(headings) else len(body)
|
|
220
|
-
)
|
|
221
|
-
card_body = body[match.end() : end]
|
|
222
|
-
field_matches = list(CARD_FIELD.finditer(card_body))
|
|
223
|
-
field_labels = tuple(item.group("label") for item in field_matches)
|
|
224
|
-
if field_labels != REQUIRED_CARD_FIELDS:
|
|
225
|
-
errors.append(
|
|
226
|
-
f"{match.group(1)} has invalid field contract: {field_labels}"
|
|
227
|
-
)
|
|
228
|
-
field_values = {
|
|
229
|
-
item.group("label"): item.group("value").strip()
|
|
230
|
-
for item in field_matches
|
|
231
|
-
}
|
|
232
|
-
action_count = len(
|
|
233
|
-
[
|
|
234
|
-
action
|
|
235
|
-
for action in field_values.get("Analytical actions", "").split(";")
|
|
236
|
-
if action.strip()
|
|
237
|
-
]
|
|
238
|
-
)
|
|
239
|
-
if (
|
|
240
|
-
not MINIMUM_ANALYTICAL_ACTIONS
|
|
241
|
-
<= action_count
|
|
242
|
-
<= MAXIMUM_ANALYTICAL_ACTIONS
|
|
243
|
-
):
|
|
244
|
-
errors.append(
|
|
245
|
-
f"{match.group(1)} has {action_count} analytical actions; expected {MINIMUM_ANALYTICAL_ACTIONS} to {MAXIMUM_ANALYTICAL_ACTIONS}"
|
|
246
|
-
)
|
|
247
|
-
source_count = len(SOURCE_ENTRY.findall(card_body))
|
|
248
|
-
if not MINIMUM_SOURCE_CITATIONS <= source_count <= MAXIMUM_SOURCE_CITATIONS:
|
|
249
|
-
errors.append(
|
|
250
|
-
f"{match.group(1)} has {source_count} source citations; expected {MINIMUM_SOURCE_CITATIONS} to {MAXIMUM_SOURCE_CITATIONS}"
|
|
251
|
-
)
|
|
252
|
-
role_count = len(SOURCE_ROLE.findall(card_body))
|
|
253
|
-
if role_count != source_count:
|
|
254
|
-
errors.append(
|
|
255
|
-
f"{match.group(1)} has {source_count} sources but {role_count} typed roles"
|
|
256
|
-
)
|
|
257
|
-
corroboration = " ".join(field_values.get("Corroboration", "").split())
|
|
258
|
-
entries = [
|
|
259
|
-
entry.strip()
|
|
260
|
-
for entry in corroboration.rstrip(".").split(";")
|
|
261
|
-
if entry.strip()
|
|
262
|
-
]
|
|
263
|
-
if not MINIMUM_CORROBORATION <= len(entries) <= MAXIMUM_CORROBORATION:
|
|
264
|
-
errors.append(
|
|
265
|
-
f"{match.group(1)} has {len(entries)} corroboration citations; expected {MINIMUM_CORROBORATION} to {MAXIMUM_CORROBORATION}"
|
|
266
|
-
)
|
|
267
|
-
for entry in entries:
|
|
268
|
-
if not CORROBORATION_KEY.match(entry):
|
|
269
|
-
errors.append(
|
|
270
|
-
f"{match.group(1)} has an unrecognized corroboration citation: {entry}"
|
|
271
|
-
)
|
|
272
|
-
if f"({SOURCE_KEY_FILE.rpartition('/')[2]})" not in body:
|
|
273
|
-
errors.append(f"{relative_path} does not link the corroboration source key")
|
|
274
|
-
validate_local_links(path, errors)
|
|
275
|
-
|
|
276
|
-
source_key_path = SKILL_ROOT / SOURCE_KEY_FILE
|
|
277
|
-
source_key_body = source_key_path.read_text(encoding="utf-8")
|
|
278
|
-
heading_index = source_key_body.find(RETRIEVAL_SECTION_HEADING)
|
|
279
|
-
if heading_index == -1:
|
|
280
|
-
errors.append(f"{SOURCE_KEY_FILE} is missing the retrieval-location section")
|
|
281
|
-
else:
|
|
282
|
-
retrieval_body = source_key_body[heading_index:]
|
|
283
|
-
for key_form in RETRIEVAL_KEY_FORMS:
|
|
284
|
-
if f"`{key_form}`" not in retrieval_body:
|
|
285
|
-
errors.append(
|
|
286
|
-
f"{SOURCE_KEY_FILE} retrieval section is missing an entry for `{key_form}`"
|
|
287
|
-
)
|
|
288
|
-
validate_local_links(source_key_path, errors)
|
|
289
|
-
|
|
290
|
-
for intent, cards in WORKFLOW_CARDS.items():
|
|
291
|
-
if not MINIMUM_CARD_LOAD <= len(cards) <= MAXIMUM_CARD_LOAD:
|
|
292
|
-
errors.append(f"{intent} starts with {len(cards)} cards")
|
|
293
|
-
unknown = set(cards) - actual_ids
|
|
294
|
-
if unknown:
|
|
295
|
-
errors.append(f"{intent} contains unknown cards: {sorted(unknown)}")
|
|
296
|
-
|
|
297
|
-
for topic, cards in TOPIC_CARDS.items():
|
|
298
|
-
unknown = set(cards) - actual_ids
|
|
299
|
-
if unknown:
|
|
300
|
-
errors.append(f"{topic} contains unknown cards: {sorted(unknown)}")
|
|
301
|
-
for intent, workflow_cards in WORKFLOW_CARDS.items():
|
|
302
|
-
routed_count = len(ordered_unique((*workflow_cards, *cards)))
|
|
303
|
-
if routed_count > MAXIMUM_CARD_LOAD:
|
|
304
|
-
errors.append(
|
|
305
|
-
f"{intent} plus {topic} routes {routed_count} cards; expected at most {MAXIMUM_CARD_LOAD}"
|
|
306
|
-
)
|
|
307
|
-
|
|
308
|
-
skill_body = SKILL_PATH.read_text(encoding="utf-8")
|
|
309
|
-
if not skill_body.startswith("---\nname: buffett-investment-framework\n"):
|
|
310
|
-
errors.append("SKILL.md has an invalid public skill name")
|
|
311
|
-
for authority_boundary in (
|
|
312
|
-
"not a buy, sell, hold",
|
|
313
|
-
"position size",
|
|
314
|
-
"execute a trade",
|
|
315
|
-
):
|
|
316
|
-
if authority_boundary not in skill_body:
|
|
317
|
-
errors.append(
|
|
318
|
-
f"SKILL.md is missing authority boundary: {authority_boundary}"
|
|
319
|
-
)
|
|
320
|
-
if "[TODO" in skill_body:
|
|
321
|
-
errors.append("SKILL.md contains an unresolved scaffold TODO")
|
|
322
|
-
frontmatter_end = skill_body.find("\n---\n", 4)
|
|
323
|
-
if frontmatter_end == -1:
|
|
324
|
-
errors.append("SKILL.md is missing a closing frontmatter delimiter")
|
|
325
|
-
else:
|
|
326
|
-
frontmatter_block = skill_body[4 : frontmatter_end + 1]
|
|
327
|
-
desc_match = re.search(r"^description: (.*)$", frontmatter_block, re.MULTILINE)
|
|
328
|
-
if desc_match is None:
|
|
329
|
-
errors.append("SKILL.md frontmatter is missing a description field")
|
|
330
|
-
elif not desc_match.group(1).strip():
|
|
331
|
-
errors.append("SKILL.md frontmatter has an empty description value")
|
|
332
|
-
elif len(desc_match.group(1).strip()) > MAXIMUM_DESCRIPTION_LENGTH:
|
|
333
|
-
errors.append(
|
|
334
|
-
f"SKILL.md frontmatter description exceeds {MAXIMUM_DESCRIPTION_LENGTH} characters"
|
|
335
|
-
)
|
|
336
|
-
validate_local_links(SKILL_PATH, errors)
|
|
337
|
-
|
|
338
|
-
public_files = [
|
|
339
|
-
SKILL_PATH,
|
|
340
|
-
SKILL_ROOT / "agents" / "openai.yaml",
|
|
341
|
-
SKILL_ROOT / "scripts" / "framework.py",
|
|
342
|
-
SKILL_ROOT / SOURCE_KEY_FILE,
|
|
343
|
-
*(SKILL_ROOT / path for path in REFERENCE_FILES.values()),
|
|
344
|
-
]
|
|
345
|
-
prose_files = [
|
|
346
|
-
SKILL_PATH,
|
|
347
|
-
SKILL_ROOT / "agents" / "openai.yaml",
|
|
348
|
-
SKILL_ROOT / SOURCE_KEY_FILE,
|
|
349
|
-
*(SKILL_ROOT / path for path in REFERENCE_FILES.values()),
|
|
350
|
-
]
|
|
351
|
-
for path in prose_files:
|
|
352
|
-
body = path.read_text(encoding="utf-8")
|
|
353
|
-
for label, pattern in UNPUBLISHABLE_TEXT.items():
|
|
354
|
-
if pattern.search(body):
|
|
355
|
-
errors.append(f"{label} in public file: {path.relative_to(SKILL_ROOT)}")
|
|
356
|
-
|
|
357
|
-
expected_paths = {path.relative_to(SKILL_ROOT) for path in public_files}
|
|
358
|
-
actual_paths = {
|
|
359
|
-
path.relative_to(SKILL_ROOT)
|
|
360
|
-
for path in SKILL_ROOT.rglob("*")
|
|
361
|
-
if path.is_file() and "__pycache__" not in path.parts and path.suffix != ".pyc"
|
|
362
|
-
}
|
|
363
|
-
if actual_paths != expected_paths:
|
|
364
|
-
errors.append(
|
|
365
|
-
f"package file mismatch: missing={sorted(expected_paths - actual_paths)}, extra={sorted(actual_paths - expected_paths)}"
|
|
366
|
-
)
|
|
367
|
-
|
|
368
|
-
if errors:
|
|
369
|
-
for error in errors:
|
|
370
|
-
print(f"ERROR: {error}", file=sys.stderr)
|
|
371
|
-
return 1
|
|
372
|
-
|
|
373
|
-
counts = "/".join(str(count) for count in EXPECTED_COUNTS.values())
|
|
374
|
-
print(
|
|
375
|
-
f"PASS: {len(actual_ids)} cards; module counts {counts}; public fields, source citations, corroboration keys, workflows, links, authority boundaries, description, and isolation checks resolve"
|
|
376
|
-
)
|
|
377
|
-
return 0
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
def route(intent: str, topics: list[str]) -> int:
|
|
381
|
-
"""Print a deterministic bounded card load and exact reference locations."""
|
|
382
|
-
requested = list(WORKFLOW_CARDS[intent])
|
|
383
|
-
for topic in topics:
|
|
384
|
-
requested.extend(TOPIC_CARDS[topic])
|
|
385
|
-
cards = ordered_unique(requested)
|
|
386
|
-
if len(cards) > MAXIMUM_CARD_LOAD:
|
|
387
|
-
print(
|
|
388
|
-
f"ERROR: route requires {len(cards)} cards, above the {MAXIMUM_CARD_LOAD}-card cap; split the task or remove a topic",
|
|
389
|
-
file=sys.stderr,
|
|
390
|
-
)
|
|
391
|
-
return 2
|
|
392
|
-
|
|
393
|
-
locations = card_locations()
|
|
394
|
-
print("status: ready")
|
|
395
|
-
print(f"intent: {intent}")
|
|
396
|
-
print(f"topics: {', '.join(topics) if topics else 'none'}")
|
|
397
|
-
print(f"cards ({len(cards)}): {', '.join(cards)}")
|
|
398
|
-
print("read:")
|
|
399
|
-
for location in ordered_unique(locations[card_id] for card_id in cards):
|
|
400
|
-
print(f" - {location}")
|
|
401
|
-
return 0
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
def show(card_id: str) -> int:
|
|
405
|
-
"""Print one complete card from its reference module."""
|
|
406
|
-
normalized = card_id.upper()
|
|
407
|
-
locations = card_locations()
|
|
408
|
-
if normalized not in locations:
|
|
409
|
-
print(f"ERROR: unknown card ID: {card_id}", file=sys.stderr)
|
|
410
|
-
return 2
|
|
411
|
-
relative_path = locations[normalized].split("#", maxsplit=1)[0]
|
|
412
|
-
body = (SKILL_ROOT / relative_path).read_text(encoding="utf-8")
|
|
413
|
-
matches = list(CARD_HEADING.finditer(body))
|
|
414
|
-
for index, match in enumerate(matches):
|
|
415
|
-
if match.group(1) != normalized:
|
|
416
|
-
continue
|
|
417
|
-
end = matches[index + 1].start() if index + 1 < len(matches) else len(body)
|
|
418
|
-
footer_start = body.find("\n<!--", match.end(), end)
|
|
419
|
-
if footer_start != -1:
|
|
420
|
-
end = footer_start
|
|
421
|
-
if index + 1 < len(matches):
|
|
422
|
-
next_anchor = body.rfind("\n<a id=", match.end(), end)
|
|
423
|
-
if next_anchor != -1:
|
|
424
|
-
end = next_anchor
|
|
425
|
-
print(f"source: {locations[normalized]}")
|
|
426
|
-
print(body[match.start() : end].rstrip())
|
|
427
|
-
return 0
|
|
428
|
-
raise AssertionError(f"indexed card is not readable: {normalized}")
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
def parser() -> argparse.ArgumentParser:
|
|
432
|
-
"""Build the command-line interface."""
|
|
433
|
-
root = argparse.ArgumentParser(description=__doc__)
|
|
434
|
-
commands = root.add_subparsers(dest="command", required=True)
|
|
435
|
-
_ = commands.add_parser("validate", help="validate the complete standalone package")
|
|
436
|
-
|
|
437
|
-
route_parser = commands.add_parser("route", help="select a bounded card load")
|
|
438
|
-
_ = route_parser.add_argument("--intent", required=True, choices=WORKFLOW_CARDS)
|
|
439
|
-
_ = route_parser.add_argument(
|
|
440
|
-
"--topic",
|
|
441
|
-
action="append",
|
|
442
|
-
default=[],
|
|
443
|
-
choices=TOPIC_CARDS,
|
|
444
|
-
help="add a material topic; repeat as needed",
|
|
445
|
-
)
|
|
446
|
-
|
|
447
|
-
show_parser = commands.add_parser("show", help="print one complete card")
|
|
448
|
-
_ = show_parser.add_argument("--id", required=True, dest="card_id")
|
|
449
|
-
return root
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
def main() -> int:
|
|
453
|
-
"""Run the requested framework command."""
|
|
454
|
-
arguments = parser().parse_args()
|
|
455
|
-
command = cast(str, arguments.command)
|
|
456
|
-
try:
|
|
457
|
-
if command == "validate":
|
|
458
|
-
return validate()
|
|
459
|
-
if command == "route":
|
|
460
|
-
return route(cast(str, arguments.intent), cast(list[str], arguments.topic))
|
|
461
|
-
if command == "show":
|
|
462
|
-
return show(cast(str, arguments.card_id))
|
|
463
|
-
except (OSError, ValueError) as error:
|
|
464
|
-
print(f"ERROR: {error}", file=sys.stderr)
|
|
465
|
-
return 1
|
|
466
|
-
raise AssertionError(f"unhandled command: {command}")
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
if __name__ == "__main__":
|
|
470
|
-
raise SystemExit(main())
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: earnings-preview
|
|
3
|
-
description: Prepare for an upcoming earnings report or earnings week by identifying the reports that matter, framing the key debates, and surfacing the read-through risk that could affect the user's watchlist or positions.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Earnings Preview
|
|
7
|
-
|
|
8
|
-
Use this skill when the user needs to prepare before one company reports or before an earnings-heavy week.
|
|
9
|
-
|
|
10
|
-
This skill will not:
|
|
11
|
-
|
|
12
|
-
- predict the post-report price move with certainty
|
|
13
|
-
- confuse a benchmark company's importance with a guaranteed read-through
|
|
14
|
-
- replace missing fundamentals with narrative filler
|
|
15
|
-
|
|
16
|
-
## Role
|
|
17
|
-
|
|
18
|
-
Act like a skeptical earnings prep analyst. Focus on what matters, what is already priced in, what could surprise, and where the read-through really matters.
|
|
19
|
-
|
|
20
|
-
## When to use it
|
|
21
|
-
|
|
22
|
-
Use it when the user wants to:
|
|
23
|
-
|
|
24
|
-
- prioritize which upcoming reports actually deserve attention
|
|
25
|
-
- prepare for a single company report with peer and sector context
|
|
26
|
-
- identify likely read-through names around a benchmark report
|
|
27
|
-
- decide whether a report is worth holding through, fading, or avoiding
|
|
28
|
-
|
|
29
|
-
## Inputs and context
|
|
30
|
-
|
|
31
|
-
Ask for:
|
|
32
|
-
|
|
33
|
-
- the company, peer group, sector, or watchlist
|
|
34
|
-
- the date window or specific report being discussed
|
|
35
|
-
- the user's thesis, exposure, or planned trade posture
|
|
36
|
-
- what matters most this quarter: growth, margins, guidance, backlog, capex, demand, pricing, AI spend, consumer health, and so on
|
|
37
|
-
- whether the user cares more about the report itself, sector read-through, or index impact
|
|
38
|
-
|
|
39
|
-
Helpful but optional:
|
|
40
|
-
|
|
41
|
-
- consensus expectations or prior-quarter context
|
|
42
|
-
- known positioning or sentiment concerns
|
|
43
|
-
- whether the user plans to hold through the event
|
|
44
|
-
|
|
45
|
-
Use the user's materials first: pasted schedules, watchlists, company notes, guidance excerpts, estimate tables, transcripts, screenshots, or provider details already mentioned in the conversation.
|
|
46
|
-
|
|
47
|
-
## If critical data is missing
|
|
48
|
-
|
|
49
|
-
If you already have enough timing and context to do the analysis, do not fetch anything.
|
|
50
|
-
|
|
51
|
-
If key schedule or estimate context is missing:
|
|
52
|
-
|
|
53
|
-
- check whether the user already named a supported provider or already shared usable access details in the conversation
|
|
54
|
-
- if they already indicated `FMP`, `TradingEconomics`, or `Polygon`, use [references/providers/fmp.md](references/providers/fmp.md), [references/providers/tradingeconomics.md](references/providers/tradingeconomics.md), or [references/providers/polygon.md](references/providers/polygon.md) directly
|
|
55
|
-
- otherwise consult [references/data-providers.md](references/data-providers.md) and ask which supported provider they want to use
|
|
56
|
-
- once the missing facts are gathered, continue the preview and disclose the source used
|
|
57
|
-
|
|
58
|
-
## Analysis process
|
|
59
|
-
|
|
60
|
-
1. Identify the reports that matter most for the user's names or theme.
|
|
61
|
-
2. Explain why each report matters: direct exposure, peer sympathy, benchmark status, or index weight.
|
|
62
|
-
3. Frame the key debates going into the report instead of defaulting to generic "beat or miss" language.
|
|
63
|
-
4. Separate pre-report setup risk from business-quality judgment.
|
|
64
|
-
5. Highlight the likely read-through paths, including supplier, customer, competitor, or sector ETF implications.
|
|
65
|
-
6. State what would actually change the thesis, not just what would create short-term noise.
|
|
66
|
-
7. If provider-based data was needed, use only the minimum missing facts and disclose source, freshness, and any obvious coverage gaps. Otherwise stay fully grounded in the user's material.
|
|
67
|
-
|
|
68
|
-
Use [references/relevance-ranking.md](references/relevance-ranking.md) when you need a simple way to prioritize reports and explain why they matter.
|
|
69
|
-
|
|
70
|
-
## Core Assessment Framework
|
|
71
|
-
|
|
72
|
-
Assess each report on four anchors before ranking it:
|
|
73
|
-
|
|
74
|
-
- `Benchmark Relevance`: whether the company can move a sector, supplier chain, customer set, or broad index. Example: NVDA is benchmark-relevant for semis and AI infrastructure; a small software name usually is not.
|
|
75
|
-
- `Debate Intensity`: whether the quarter has one or two live disagreements that matter more than the headline beat or miss. Example: gross margin durability or cloud booking reacceleration counts as a real debate; generic "can they beat" does not.
|
|
76
|
-
- `Read-Through Strength`: whether peers or related industries will plausibly react to the same datapoints. Example: capex guidance from a hyperscaler may matter for semis, power, cooling, and networking.
|
|
77
|
-
- `Positioning Risk`: whether sentiment, recent price action, or the user's exposure makes the event more dangerous to hold through.
|
|
78
|
-
|
|
79
|
-
Use the anchors to classify:
|
|
80
|
-
|
|
81
|
-
- `must-watch`: benchmark relevance is high and at least one of debate intensity, read-through strength, or positioning risk is also high
|
|
82
|
-
- `watch`: relevant event, but consequences are narrower or easier to absorb
|
|
83
|
-
- `background`: useful context, but low priority unless it directly affects the user's book
|
|
84
|
-
|
|
85
|
-
## Evidence That Would Invalidate This Analysis
|
|
86
|
-
|
|
87
|
-
- the report date or session changes enough to alter the planning window
|
|
88
|
-
- the quarter's key debate changes because management, industry data, or a peer report reframes the issue
|
|
89
|
-
- read-through assumptions break because the peer set, supplier chain, or benchmark relationship was overstated
|
|
90
|
-
- the user's exposure or holding plan changes, making the current priority ranking less relevant
|
|
91
|
-
- estimate, guidance, or schedule fields turn out to be stale, incomplete, or sourced from the wrong provider snapshot
|
|
92
|
-
|
|
93
|
-
## Output structure
|
|
94
|
-
|
|
95
|
-
Prefer this output order:
|
|
96
|
-
|
|
97
|
-
1. `Priority List`
|
|
98
|
-
2. `Core Assessment Framework`
|
|
99
|
-
3. `Key Debates`
|
|
100
|
-
4. `Read-Through Map`
|
|
101
|
-
5. `Plan Risk`
|
|
102
|
-
6. `Evidence That Would Invalidate This Analysis`
|
|
103
|
-
7. `Source And Caveats`
|
|
104
|
-
|
|
105
|
-
Always return:
|
|
106
|
-
|
|
107
|
-
- a prioritized report list or single-name preview
|
|
108
|
-
- why each report matters in plain language
|
|
109
|
-
- the key debates or watch items going into the print
|
|
110
|
-
- the likely read-through map for peers, suppliers, customers, or sector leadership
|
|
111
|
-
- the main pre-report risk to the user's plan
|
|
112
|
-
- explicit caveats around missing dates, incomplete estimates, stale data, or example-mode data when relevant
|
|
113
|
-
|
|
114
|
-
## Best practices
|
|
115
|
-
|
|
116
|
-
- do not turn "important report" into "predictable trade"
|
|
117
|
-
- do not confuse sector importance with a guaranteed stock move
|
|
118
|
-
- distinguish between what matters for fundamentals and what matters for positioning
|
|
119
|
-
- if timing, estimates, or coverage are incomplete, say that early rather than burying it
|
|
120
|
-
|
|
121
|
-
## Usage examples
|
|
122
|
-
|
|
123
|
-
- "Use `earnings-preview` for NVDA next week. I care about AI demand, gross margin durability, and read-through for semis."
|
|
124
|
-
- "Use `earnings-preview` for AAPL, AMZN, and COST over the next ten days and tell me which reports matter most for index and sector read-through."
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
# Data Providers
|
|
2
|
-
|
|
3
|
-
Use this only if the user did not already provide enough schedule or estimate context.
|
|
4
|
-
|
|
5
|
-
Supported providers:
|
|
6
|
-
|
|
7
|
-
- `FMP`: best default for forward earnings dates, report timing, and estimate fields through `/stable/earnings-calendar`
|
|
8
|
-
- `TradingEconomics`: useful for earnings dates, release session, forecast fields, and revenue context through `/earnings-revenues`
|
|
9
|
-
- `Polygon`: useful when the user already works in Polygon and needs recent reported financials, but not the best default for forward earnings schedule confirmation
|
|
10
|
-
|
|
11
|
-
If the user already named one of these providers or already shared usable access details, use that provider path directly.
|
|
12
|
-
|
|
13
|
-
Otherwise ask: "Which provider do you want to use for the missing earnings context: FMP, TradingEconomics, or Polygon?"
|
|
14
|
-
|
|
15
|
-
Fallback strategy:
|
|
16
|
-
|
|
17
|
-
- start with `FMP` when the missing piece is the upcoming earnings date, session, or consensus-style estimate fields
|
|
18
|
-
- use `TradingEconomics` when the user already works there or when revenue forecast context matters
|
|
19
|
-
- use `Polygon` when the user already uses Polygon for fundamentals and the missing piece is prior reported context rather than the upcoming schedule
|
|
20
|
-
- if the user insists on `Polygon` but the exact upcoming date or session still cannot be confirmed, say that clearly and ask whether to supplement with `FMP` or `TradingEconomics`
|
|
21
|
-
|
|
22
|
-
Provider notes:
|
|
23
|
-
|
|
24
|
-
- [FMP](providers/fmp.md)
|
|
25
|
-
- [TradingEconomics](providers/tradingeconomics.md)
|
|
26
|
-
- [Polygon](providers/polygon.md)
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
# FMP
|
|
2
|
-
|
|
3
|
-
Use this path only when the user already indicated `FMP` or chose it from the supported provider list.
|
|
4
|
-
|
|
5
|
-
Use the smallest request that fills the missing earnings facts.
|
|
6
|
-
|
|
7
|
-
## Best endpoint for a date window
|
|
8
|
-
|
|
9
|
-
Call the official earnings calendar endpoint:
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
curl "https://financialmodelingprep.com/stable/earnings-calendar?from=2026-03-09&to=2026-03-20&apikey=<FMP_API_KEY>"
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
Use this when the user gave a date window and you need report timing or estimate context for one or more names.
|
|
16
|
-
|
|
17
|
-
Pull only the fields you need for the preview:
|
|
18
|
-
|
|
19
|
-
- `date`
|
|
20
|
-
- `symbol`
|
|
21
|
-
- `name`
|
|
22
|
-
- `time`
|
|
23
|
-
- `epsEstimated`
|
|
24
|
-
- `revenueEstimated`
|
|
25
|
-
- `epsActual`
|
|
26
|
-
- `revenueActual`
|
|
27
|
-
- `lastUpdated`
|
|
28
|
-
|
|
29
|
-
## Best endpoint for a single company
|
|
30
|
-
|
|
31
|
-
If the user only cares about one company and you already know the symbol, use:
|
|
32
|
-
|
|
33
|
-
```bash
|
|
34
|
-
curl "https://financialmodelingprep.com/stable/earnings?symbol=AAPL&apikey=<FMP_API_KEY>"
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
This is useful when the user wants one-name context rather than a calendar sweep.
|
|
38
|
-
|
|
39
|
-
## How to use the result
|
|
40
|
-
|
|
41
|
-
- confirm the report date and timing first
|
|
42
|
-
- use estimate fields only to frame the debate, not to imply direction
|
|
43
|
-
- if `time`, EPS estimates, or revenue estimates are missing, say that explicitly
|
|
44
|
-
- disclose that FMP supplied the missing schedule or estimate data
|
|
45
|
-
|
|
46
|
-
Official docs:
|
|
47
|
-
|
|
48
|
-
- [FMP earnings calendar API](https://site.financialmodelingprep.com/developer/docs/stable/earnings-calendar)
|
|
49
|
-
- [FMP earnings report API](https://site.financialmodelingprep.com/developer/docs/earnings-historical-earnings)
|