{
  "version_tag": "pipeline-v2-preview-20260603",
  "status": "preview_not_current",
  "generated_at": "2026-06-03",
  "mandate": "Research-support pipeline preview; not financial advice and not trade execution.",
  "preview": {
    "path": "/pipeline-v2/",
    "cloudflare_project": "equityanalysis-reports-v2-preview",
    "purpose": "Deploy and inspect the open-source-first multi-agent pipeline method before pivoting production traffic."
  },
  "rollback": {
    "current_production_path": "/pipeline/",
    "current_production_project": "equityanalysis-reports",
    "strategy": "Keep /pipeline/ and the existing Cloudflare Pages project unchanged until v2 is explicitly promoted. Roll back by continuing to link Telegram and public summaries to /pipeline/."
  },
  "connector_policy": [
    "official_free_or_open_api",
    "self_hosted_direct_connector",
    "reviewed_open_source_library",
    "paid_hosted_api_fallback",
    "reviewed_sandboxed_mcp_only"
  ],
  "agents": {
    "agent_01_macro_regime": {
      "default_connectors": ["yahoo", "fred"],
      "paid_fallbacks": ["polygon", "alpha_vantage", "nasdaq_data_link"],
      "v1_scope": "SPY/QQQ/IWM/sector ETF trends, VIX spot, Treasury/Fed/credit series, deterministic regime scoring."
    },
    "agent_02_social": {
      "default_connectors": ["social_rss"],
      "paid_fallbacks": ["twitter_api_v2", "apify"],
      "v1_scope": "Keep curated RSS/Nitter-style X monitoring as discovery layer; add local baseline storage before paid broad search."
    },
    "agent_02b_oversold": {
      "default_connectors": ["yahoo", "sec_edgar", "finviz"],
      "paid_fallbacks": ["polygon", "financial_modeling_prep", "financialdatasets"],
      "v1_scope": "OHLCV plus pandas indicators, SEC Companyfacts survival check, Form 4 insider activity, Finviz ownership/short-float enrichment."
    },
    "agent_02c_political": {
      "default_connectors": ["political_disclosures", "congress_gov", "govtrack_open_data"],
      "paid_fallbacks": ["quiverquant", "capitoltrades_apify"],
      "v1_scope": "Self-host public STOCK Act disclosure ingestion with committee mapping and ticker normalization; social political trackers are corroboration only."
    },
    "agent_03_distiller": {
      "default_connectors": ["finviz", "sec_edgar", "yahoo"],
      "paid_fallbacks": [],
      "v1_scope": "Deterministic confluence score across social, macro, oversold, political, and Finviz enrichment. LLM explains ranking but does not invent it."
    },
    "agent_04_deep_dive": {
      "default_connectors": ["sec_edgar", "yahoo", "company_ir", "news_rss"],
      "paid_fallbacks": ["licensed_transcripts", "factset", "bloomberg"],
      "v1_scope": "Upgrade current SEC/Yahoo report layer into Agent 04 schema while preserving citation verification."
    },
    "agent_05_model": {
      "default_connectors": ["sec_edgar", "yahoo"],
      "paid_fallbacks": ["visible_alpha", "factset", "financial_modeling_prep"],
      "v1_scope": "Human-gated public-data model only; no fake consensus estimates."
    },
    "agent_06_pm": {
      "default_connectors": ["local_portfolio_state", "yahoo"],
      "paid_fallbacks": ["polygon_options", "orats", "brokerage_api"],
      "v1_scope": "Paper portfolio/risk dashboard only; no execution connector by default."
    }
  },
  "connectors": {
    "social_rss": {
      "type": "self_hosted_existing",
      "default_role": "primary_social_discovery",
      "notes": "Current curated Nitter/RSS mirror collector remains the default."
    },
    "yahoo": {
      "type": "free_open_source_library",
      "default_role": "primary_market_ohlcv",
      "candidate_library": "yfinance"
    },
    "fred": {
      "type": "official_free_api",
      "default_role": "primary_macro_series",
      "credential": "free FRED API key optional/preferred"
    },
    "sec_edgar": {
      "type": "official_free_api",
      "default_role": "primary_filings_fundamentals_insider",
      "sources": ["submissions", "companyfacts", "Form 4 filings"]
    },
    "finviz": {
      "type": "reviewed_open_source_scraper",
      "default_role": "agent_03_enrichment",
      "candidate_library": "mariostoev/finviz",
      "controls": ["pin_version_or_commit", "rate_limit", "cache", "no_secrets", "label_as_unofficial_delayed_data"],
      "notes": "Finviz enrichment is useful for valuation, technical, ownership, short-float, insider/news/analyst snapshots; not a source of live trading data."
    },
    "political_disclosures": {
      "type": "self_hosted_custom_connector",
      "default_role": "primary_political_trade_ingestion",
      "sources": ["House disclosures", "Senate eFD disclosures", "Congress.gov", "GovTrack-style open data"]
    },
    "openbb": {
      "type": "open_source_optional_abstraction",
      "default_role": "optional_later_umbrella_connector"
    },
    "stocktwits": {
      "type": "free_social_corroboration",
      "default_role": "optional_social_lens"
    },
    "reddit": {
      "type": "free_social_corroboration",
      "default_role": "optional_social_lens"
    },
    "apify": {
      "type": "paid_hosted_scraping",
      "default_role": "disabled_paid_fallback"
    },
    "polygon": {
      "type": "paid_market_data",
      "default_role": "disabled_paid_fallback"
    },
    "quiverquant": {
      "type": "paid_alternative_data",
      "default_role": "disabled_paid_fallback"
    }
  },
  "promotion_gate": [
    "local pipeline dry-run passes",
    "preview site is deployed and manually reviewed",
    "Telegram summaries link to preview only during test period",
    "human approval before replacing /pipeline/ or current cron behavior"
  ]
}
