Implements docs/read-markets-compliance-changes.md as flag-gated changes (no deletions) so paused features stay in the tree for future re-enable. All four flags default False so a fresh deploy is compliance-safe. - New env flags: PORTFOLIO_AI_ENABLED, PORTFOLIO_SYNC_ENABLED, TICKER_UNIVERSE_AGGREGATE_ENABLED, SUBSCRIPTIONS_ENABLED. - Gates: /api/analyze, /api/portfolio/sync*, /api/stripe/*, /pricing, ticker_universe writes, portfolio_analysis.analyse(). is_paid_active() returns True for any auth'd user when subscriptions are paused. - Prompts (PROMPT_VERSION 10): universal _COMPLIANCE_RIDER prepended to every system prompt; watch list removed; price-target / close-above-below / trigger / forward-state-as-description rules added; SPECULATIVE pivoted to regime-only scenarios; daily + weekly digests tightened. - Reviewer: deterministic regex/lexicon pre-check fail-closed under the Haiku call; portfolio rider gated by PORTFOLIO_AI_ENABLED; base prompt sharpened for forward-state and MAR forward-opinion patterns; ReviewerVerdict audit table; generate_with_review retry helper. - Migration 0026: purge portfolio_sync + ticker_universe; create reviewer_verdicts. - Copy: MAR cite fixed to Art 3(1)(35) + Art 20 + Del Reg 2016/958; portfolio reframed as browser-only viewer in disclaimer / privacy / terms / about / pricing / landing (en + it). TODO(legal) marker for lawyer sign-off on disclaimer. - Tests: 13 lexicon + 6 reviewer compliance regressions; conftest enables all flags so existing 402 tests still cover their code paths. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
120 lines
4.9 KiB
YAML
120 lines
4.9 KiB
YAML
# English copy for the public landing page.
|
|
#
|
|
# Strings that contain inline HTML are rendered with the `safe` filter
|
|
# in the template. Keep markup minimal — <strong>, <em>, and the
|
|
# brand placeholders only.
|
|
|
|
hero:
|
|
tagline: "Understand markets. Don't gamble on them."
|
|
subhead: >-
|
|
Built for investors who want to <strong>act rationally</strong> and
|
|
tune out the high-frequency noise that comes from treating markets
|
|
like a casino. We aggregate cross-asset news and macro signals,
|
|
then write a plain-English read of what the underlying fundamentals
|
|
justify versus what the crowd is doing. Refreshed through the
|
|
trading day. A media service, not a financial one.
|
|
cta_dashboard: "Open dashboard"
|
|
cta_pricing: "See pricing"
|
|
cta_signup: "Sign up free"
|
|
|
|
shot_dashboard:
|
|
alt: "Dashboard preview"
|
|
zoom_hint: "Click to enlarge"
|
|
caption: >-
|
|
The dashboard. An aggregate cross-asset read at the top,
|
|
hand-picked indicator groups underneath. Reading level toggle
|
|
(Novice / Pro) flips every AI-generated panel between
|
|
plain-English and terse-pro framing.
|
|
|
|
features:
|
|
news:
|
|
tag: "News, aggregated"
|
|
title: "Headlines from across the macro universe"
|
|
body: >-
|
|
RSS and per-ticker feeds covering equities, rates, credit, FX,
|
|
commodities, and geopolitics. Every headline is auto-tagged by
|
|
theme so the noise stays as noise and the fundamentals-relevant
|
|
stuff is easy to find. Ingestion follows the trading calendar —
|
|
off-hours stay quiet.
|
|
shot_alt: "News feed with auto-tagged headlines"
|
|
shot_caption: >-
|
|
The news feed. Each headline carries one or more theme tags
|
|
(rates, AI, energy, geopolitics, …) so you can keep the threads
|
|
you care about and mute the ones you don't. Click a tag to
|
|
include; shift-click to exclude.
|
|
indicators:
|
|
tag: "Macro signals"
|
|
title: "A curated cross-asset tape"
|
|
body: >-
|
|
A hand-picked set of indicators across every asset class,
|
|
refreshed hourly during market hours. Each group gets a short
|
|
read that explains what the move <em>means</em>, not what it
|
|
was. Anchored in earnings, policy, valuation — not chart
|
|
patterns.
|
|
shot_alt: "Indicators panel with AI commentary"
|
|
shot_caption: >-
|
|
The indicators panel. Tabs across asset classes (equity, rates,
|
|
commodities, FX, bonds, …); each tab carries a one-paragraph
|
|
'read' written by the model on top of the live prices. The
|
|
numbers anchor the prose so the commentary is checkable, not
|
|
floating.
|
|
strategic:
|
|
tag: "The strategic read"
|
|
title: "Rational vs irrational, every paragraph"
|
|
body: >-
|
|
We tie the day's headlines and the cross-asset signals into a
|
|
single short interpretation. Each paragraph separates
|
|
<strong>rational drivers</strong> (earnings, policy, valuation)
|
|
from <strong>irrational ones</strong> (positioning, narrative,
|
|
flows) and names the gap. Two reading levels: Novice and Pro.
|
|
This is editorial commentary on public data — not a forecast
|
|
and not advice on any investment decision.
|
|
shot_alt: "Strategic log — the editorial AI read"
|
|
shot_caption: >-
|
|
The strategic log. The model writes a fresh interpretation
|
|
through the trading day, taking the previous draft as context
|
|
so it updates rather than starts over. Paid users get a refresh
|
|
every hour; free users get one every six.
|
|
|
|
multilang_callout: >-
|
|
Every AI-generated surface — strategic log, indicator reads, chat,
|
|
daily digest — is available in <strong>English</strong> and
|
|
<strong>Italian</strong>. Toggle the language pill in the header
|
|
and the panels refresh in place; ticker symbols, currency codes
|
|
and numbers stay verbatim across languages.
|
|
|
|
more_views:
|
|
head: "More views"
|
|
chat:
|
|
alt: "Ask follow-up questions against any past log"
|
|
caption: >-
|
|
Ask follow-up questions against any past log. The chat panel
|
|
inherits the log's full context, so you can pull on a thread
|
|
without re-pasting headlines or re-explaining the setup.
|
|
caption_strong: "Ask anything about a log"
|
|
caption_span: "Conversational follow-ups with the day's context loaded."
|
|
|
|
portfolio_blurb: >-
|
|
Drop a portfolio CSV from your broker to see your sector, currency
|
|
and concentration breakdown — computed entirely in your browser.
|
|
Holdings stay in your browser; nothing about them is sent to or
|
|
stored on the server.
|
|
|
|
not_strip:
|
|
head: "What this isn't."
|
|
items:
|
|
- "Not investment advice."
|
|
- "Not trading signals."
|
|
- "Not a day-trading tool."
|
|
- "No buy/sell calls, ever."
|
|
- "No chart-pattern predictions."
|
|
- "Not a regulated service."
|
|
|
|
footer:
|
|
legal: >-
|
|
By signing up you agree to our <a href="/terms">Terms</a> and
|
|
<a href="/privacy">Privacy notice</a>, and confirm you've read
|
|
the <a href="/disclaimer">financial disclaimer</a>.
|
|
|
|
meta:
|
|
description: "Understand markets. Don't gamble on them."
|