Executive Overview
Rhetoric Audit V3 is a forensic media analysis platform delivered as an ambient Chrome extension and web application. The extension auto-detects editorial articles and surfaces a full 15-parameter FME V19.1 analysis inline — no user action required. The web app adds dashboard analytics, Intelligence Briefs, corpus-level insights, and enterprise sharing. V19.1 achieves 100% benchmark band accuracy across 5 article strata at $0.003/article.
What's New
Major capabilities added since v1.0 documentation (FME V18.6).
Extension now shows ideology classification confidence (e.g. 87% CONF) in the panel header. Cross-platform badge appears when ≥2 independent X/News/Web signals corroborate or contradict article claims. PDF cover updated with confidence card and FME bench-verified strip.
Extension auto-detects editorial articles and shows a forensic pill UI inline. No user action needed — results appear as you browse.
100% benchmark band accuracy (14/14 articles across 5 strata). Macro MAE 2.5. 0% hallucination. $0.003/article.
Every score traces back to exact quoted spans in the article. Inline highlights show which text drove which metric.
Claims verified against Google Fact Check Tools, Wikidata, Wikipedia, and Tavily search. Source provenance shown per claim.
Full annotated forensic report with claims ledger, heatmap, metric charts, and methodology reference.
Owner controls whether a scan is public or private. Public scans shareable via /s/{shortcode} without dashboard login.
Same article = no LLM cost, no credit deducted. 6h breaking news / 7d news / 30d evergreen TTL. 80–92% hit rate at scale.
Chrome extension scans without requiring account creation. 10 scans/day per device anonymous, 50/day with free account.
Purpose
This document defines the primary product use cases for Rhetoric Audit V3.0.0 with FME V19.1. It is intended to support:
- Product handoff
- Stakeholder communication
- Development planning
- QA and UAT traceability
- Proposal and client documentation
- Benchmark and accuracy reporting
Product Scope
Rhetoric Audit V3 is a forensic media analysis platform spanning ambient browser extension, web application, and intelligence brief module. Three major analytical workflows are supported.
Ambient article analysis
Extension auto-scans editorial articles. 15-parameter FME V19.1 result with span highlights and heatmap. Anonymous or authenticated.
Manual forensic analysis
Submit article URL or text via web dashboard. Full FME V19.1 pipeline. Cached results are free.
Intelligence Brief
Multi-source narrative report across X, Reddit, News, YouTube, Web, Financial. Pro tier. 2 credits.
Web application also includes:
- User authentication (email/password, Google OAuth, extension auth bridge)
- Dashboard, analytics, corpus-level insights (EIS, MCI, Dissonance Gauge)
- Scan history with dedup cache hit indicator
- Privacy toggle + /s/{shortcode} sharing
- PDF export (14-page annotated report)
- Credit-based billing + tiered plans
- User settings and notification preferences
- Account deletion
3. In Scope
- Ambient auto-scan via Chrome extension (anonymous + registered)
- Editorial gate filtering (layered detection heuristic)
- FME V19.1 pipeline (15 parameters, 24 fallacy types)
- Span-level annotation with inline highlights
- Factual grounding (Google FCT, Wikidata, Wikipedia, Tavily)
- Dedup cache (6h/7d/30d TTL, URL + content hash)
- PDF export (14-page annotated report)
- Privacy toggle + /s/{shortcode} public sharing
- Dashboard, analytics, scan history
- Intelligence Brief (Pro tier)
- Tiered billing (Free / Plus / Pro)
- Account management and deletion
4. Out of Scope
Not in V3.0.0 scope or only partially documented.
- Enterprise team management / multi-user workspaces
- Commercial Data API (Q4 roadmap)
- Compare feature (Q2 roadmap)
- Weekly tracker / State of Rhetoric report (Q2 roadmap)
- Evidence Graph (Q3 roadmap)
- GDELT fallback for thin topics (Q3 roadmap)
- Non-Chrome browser extension
- Server-side PDF storage
Primary Actors
| Actor | Description |
|---|---|
| Anonymous User | Unregistered Chrome extension user. Scans articles without an account. Limited to 10 scans/day per device. Sees pill UI and inline panel, no history. |
| Visitor | Public user browsing the landing page, marketing site, and documentation. |
| Registered User (Free) | User with an account. 50 scans/day, 30-day history, cross-device sync, basic sharing. |
| Registered User (Plus) | Paid tier. Unlimited scans, Compare feature, 1-year history. |
| Pro User | Paid tier. Plus all, plus Intelligence Brief, CSV export, weekly digest. |
| Billing User | Any authenticated user managing plan upgrades or credit purchases. |
| Admin / Operations | Operational owner for service management, data retention, and health monitoring. |
Supporting External Systems
Key Business Rules
- Anonymous Chrome extension users may auto-scan up to 10 articles per device per day without an account.
- Registered free users may scan up to 50 articles per day. Plus and Pro tiers are unlimited.
- Dedup cache: if a canonical article URL or content hash matches a cached scan within TTL, no credit is consumed and no LLM call is made.
- Manual single-article analysis consumes 1 credit (registered user, cache miss only).
- Intelligence Brief generation consumes 2 credits. Pro tier only.
- Shared analysis pages at /s/{shortcode} expose only the scan owner's chosen public view, not the full dashboard record.
- Scan privacy defaults to private. Owner may toggle to public at any time. Only owner can toggle.
- Account deletion removes the user record. Historical scan data is retained per operational policy and reassigned to an admin account.
- Low-credit alerts trigger at 3 credits or below when opted in.
- PDF exports are generated client-side from the forensic panel. No server-side storage of exported PDFs.
Use Case Map
- Ambient auto-scan
- View pill + inline panel
- View scan result (session only)
- Ambient auto-scan (history)
- Manual analysis
- View factual grounding
- Export PDF
- Share via shortcode
- Manage scan privacy
- Dashboard + analytics
- Scan history
- Profile + settings
- Delete account
- Receive notifications
- All Registered User flows
- Intelligence Brief
- Brief history
- CSV export
- Weekly digest
- Purchase plan (Free / Plus / Pro)
- Purchase credit packs
Use Case Catalog
| ID | Use Case | Primary Actor | Outcome |
|---|---|---|---|
| UC-01 | Browse product and understand value proposition | Visitor | User understands product capabilities and target use cases. |
| UC-02 | Register or log in | Visitor / Registered User | User gains authenticated access to the platform. |
| UC-03 | Install Chrome extension | Visitor / Anonymous User | User enables ambient article scanning from Chrome. |
| UC-04 | Ambient auto-scan via extension | Anonymous / Registered User | Extension automatically detects and scans article; pill appears inline. |
| UC-05 | Run manual single-article analysis | Registered User | User manually submits article URL for forensic analysis. |
| UC-06 | View forensic scan results | Any User | User reviews 15 FME parameters, span highlights, heatmap, and factual claims. |
| UC-07 | View factual grounding claims | Registered User | User reviews claim verification against external sources. |
| UC-08 | Export scan as PDF | Registered User | 14-page annotated PDF generated and downloaded. |
| UC-09 | Share an analysis | Registered User | User shares scan via /s/{shortcode} with optional privacy control. |
| UC-10 | Manage scan privacy | Registered User | User toggles scan between public and private. |
| UC-11 | View dashboard and analytics | Registered User | User monitors usage, risk trends, and corpus-level insights. |
| UC-12 | Search and review scan history | Registered User | User finds and revisits previous analyses. |
| UC-13 | Generate an Intelligence Brief | Pro User | Multi-source narrative brief produced across 6 platform feeds. |
| UC-14 | Review Intelligence Brief history | Pro User | User retrieves previously generated briefs. |
| UC-15 | Purchase plan or credits | Billing User | User upgrades tier or purchases additional analysis capacity. |
| UC-16 | Manage profile and notification settings | Registered User | User updates preferences and profile information. |
| UC-17 | Delete account | Registered User | User account is removed from active service access. |
| UC-18 | Receive transactional notifications | Registered User | User is informed about usage events. |
Detailed Use Cases
Browse Product and Understand Value Proposition
Preconditions
- Public website is available.
Main Success Flow
- 1Visitor lands on the homepage.
- 2Visitor reviews core capabilities: bias spectrum, propaganda index, factual grounding, strategic silence, and 15 FME parameters.
- 3Visitor views benchmark accuracy badge (100% band accuracy, FME V19.1).
- 4Visitor reviews intended audiences: researchers, journalists, policy analysts, critical readers.
- 5Visitor chooses to install the extension or create an account.
Alternate Flows
- Visitor leaves without creating an account.
- Visitor proceeds directly to Chrome extension installation.
Postconditions
- Visitor has enough product understanding to continue to onboarding or evaluation.
Register or Log In
Preconditions
- User has internet access.
- Authentication service is available.
Main Success Flow
- 1User opens sign-up or login form (web or extension popup auth shim).
- 2User authenticates via email/password or Google OAuth.
- 3If from extension: system detects ext=1 param, persists ext_id in sessionStorage.
- 4System creates or validates the session and redirects to dashboard or /auth/ext-bridge.
- 5If from extension: bridge page reads session and calls chrome.runtime.sendMessage with tokens.
- 6Extension popup shows signed-in profile state. Bridge tab auto-closes after 2 seconds.
Alternate Flows
- Password mismatch prevents sign-up.
- Invalid credentials block login.
- OAuth callback fails and user is returned to error state.
- Extension ID mismatch causes bridge failure.
Postconditions
- User has authenticated session. Extension has stored tokens.
Install Chrome Extension V3
UpdatedPreconditions
- User is using Chrome (Manifest V3 supported).
Main Success Flow
- 1User opens Chrome Web Store listing.
- 2User installs extension V3.
- 3Extension background.js initializes and checks chrome.storage for existing session.
- 4User browses to an article page.
- 5Extension content.js runs layered gate: hard-skip → HARD_DENY hosts → SOFT_DENY → editorial path/slug/subdomain → DOM content score.
- 6If gate passes: extension pill appears on page. If fails: pill suppressed.
Alternate Flows
- Page fails editorial gate (e.g. app, listing, PDF) → pill suppressed.
- User is on a HARD_DENY host → pill suppressed.
- Extension is disabled or removed.
Postconditions
- Extension is active. Pill appears on editorial article pages automatically.
Ambient Auto-Scan via Extension
NewPreconditions
- Extension V3 is installed.
- Page passes editorial gate (≥250 words, ≥3 paragraphs, not a HARD_DENY host).
Main Success Flow
- 1content.js passes gate and emits ra-loading message.
- 2Inline panel opens (panel.html / 820×640 iframe overlay).
- 3Panel sends article text to POST /api/analyze.
- 4System checks dedup cache (URL hash + content hash).
- 5Cache hit: panel renders cached result. 0 credits consumed.
- 6Cache miss: LLM pipeline runs (GPT-4o-mini primary).
- 7Result stored. Anonymous: no history. Registered: added to scan_events.
- 8Panel renders: bias spectrum, manipulation risk, heatmap, span highlights.
- 9If authenticated: scan added to history.
Primary Outputs
Alternate Flows
- Cache miss + LLM timeout → panel shows error state with retry.
- Anonymous quota exhausted → panel shows Sign In CTA.
- SPA navigation: MutationObserver re-injects pill after DOM swap.
Postconditions
- Analysis visible in extension panel. Credit consumed only on cache miss for registered users.
Run Manual Single-Article Analysis
Preconditions
- User is authenticated.
- Cache miss (if cache hit: 0 credits consumed).
- LLM service is available.
Main Success Flow
- 1User provides article URL or raw text.
- 2System normalizes URL (strips utm_*, fbclid, ref, etc.) and hashes.
- 3System checks dedup cache.
- 4Cache hit: renders cached result, no credit deducted.
- 5Cache miss: validates request, checks credit balance, runs FME V19.1 pipeline.
- 6Pipeline: preprocess → chunked span annotator → grounding orchestrator → deterministic aggregator → validator.
- 7Result stored in scans table. scan_event logged. 1 credit deducted.
- 8System displays full 15-parameter result set.
- 9System emails scan-complete summary if preference is enabled.
Primary Outputs
Alternate Flows
- Insufficient credits → user prompted to upgrade.
- LLM error → user shown error, credit not deducted.
- Malformed request → validation fails, 422 returned.
Postconditions
- Scan result in user history. Credit deducted on cache miss only.
View Forensic Scan Results
UpdatedPreconditions
- Scan result exists.
Main Success Flow
- 1User opens scan result.
- 2System renders bias spectrum with 5-band label.
- 3System renders manipulation risk gauge with calibrated V19.1 score.
- 4System renders heatmap strip showing paragraph-level manipulation heat.
- 5User clicks a highlighted span → tooltip shows technique label + quoted text.
- 6System renders 15 FME parameter cards.
- 7System renders factual grounding section with verified/unverified claims.
- 8System renders EIS composite score.
- 9User may initiate PDF export or share flow from this view.
Primary Outputs
Alternate Flows
- Span offsets fail to re-anchor → highlights silently suppressed.
- Grounding data unavailable → section shows partial results with disclaimer.
Postconditions
- User has full forensic understanding of article's rhetorical structure.
View Factual Grounding Claims
NewPreconditions
- Scan result exists.
- Article contained ≥1 factual_claim span.
Main Success Flow
- 1User opens the Claim Verification card in scan results.
- 2System displays per-claim rows: claim text, verification status (Verified/Unverified/Disputed), source provenance.
- 3Provenance shows: Google FCT label, Wikidata entity match, Wikipedia summary, or Tavily corroboration.
- 4User may click source link to open external reference.
- 5System shows grounding coverage rate for the article.
Alternate Flows
- All external grounding APIs unavailable → section shows 'Grounding temporarily unavailable'.
- Article has no factual_claim spans → section shows 'No verifiable claims detected'.
Postconditions
- User understands factual accuracy signals in the article.
Export Scan as PDF
NewPreconditions
- Scan result is open in extension panel or web dashboard.
Main Success Flow
- 1User clicks Export PDF.
- 2Client-side pdf-builder.js constructs 14-page report: cover, exec summary, bias chart, manipulation gauge, heatmap, FME parameter pages, factual claims ledger, methodology reference.
- 3window.print() launches browser print dialog.
- 4User saves as PDF.
Alternate Flows
- Browser print dialog cancelled → no PDF generated.
- Complex article layout causes chart rendering issues → user retries or uses alternative export.
Postconditions
- 14-page annotated PDF saved to user's device.
Share an Analysis
UpdatedPreconditions
- An analysis result exists.
- User has set scan to public (or uses native share which defaults to public URL).
Main Success Flow
- 1User clicks Share.
- 2System generates /s/{shortcode} URL.
- 3User copies link or uses native share API.
- 4Recipient opens /s/{shortcode}.
- 5System checks scan privacy setting.
- 6If public: renders summary view with selected FME fields.
- 7If private: returns 404 or access-denied.
Alternate Flows
- Scan is private → shareable link not generated until user toggles to public.
- Shortcode not found → 404 page.
Postconditions
- Public scan summary viewable by recipient without dashboard login.
Manage Scan Privacy
NewPreconditions
- User is authenticated as scan owner.
- Scan result exists.
Main Success Flow
- 1User clicks privacy toggle on scan.
- 2System calls toggle_scan_privacy RPC (Supabase) to flip is_public flag.
- 3If toggled to public: /s/{shortcode} becomes accessible.
- 4If toggled to private: /s/{shortcode} returns 404.
- 5Toggle state reflected in UI immediately.
Alternate Flows
- User is not scan owner → toggle not shown.
- RPC fails → UI shows error, state reverted.
Postconditions
- Scan privacy state updated. Shortcode visibility reflects new setting.
View Dashboard and Analytics
UpdatedPreconditions
- User is authenticated.
Main Success Flow
- 1User opens dashboard.
- 2System displays KPIs: total scans, average EIS, manipulation risk distribution, fallacy rate, credits remaining.
- 3System shows corpus-level analytics: Manufactured Crisis Index, ideology cartography, Emotional Resonance Fever Chart.
- 4User views publisher leaderboards (top-5 / bottom-5 by EIS).
- 5User navigates to scan history or analytics sub-sections.
Alternate Flows
- User has no scans → empty state with onboarding CTA.
Postconditions
- User understands personal analysis patterns, corpus signals, and account status.
Search and Review Scan History
Preconditions
- User is authenticated.
Main Success Flow
- 1User opens Scan History view.
- 2System lists scans: title, bias, manipulation risk, fallacy, evidence, DOK, date, cache hit indicator.
- 3User searches by text or filters by ideology, date range.
- 4User opens a previous scan to view full result.
Alternate Flows
- No scans match filters.
- Pagination for large result sets.
Postconditions
- User can locate and review historic analyses.
Generate an Intelligence Brief
UpdatedPreconditions
- User is authenticated as Pro tier.
- User has at least 2 credits.
- Edge function and LLM services available.
Main Success Flow
- 1User opens Intelligence Brief module.
- 2User enters search terms and selects sources (X, Reddit, News, YouTube, Web, Financial).
- 3System validates payload and checks rate limits.
- 4System calls fetch-intelligence edge function to gather normalized signals.
- 5System sends signal set to FME pipeline.
- 6System validates and stores resulting brief.
- 7System deducts 2 credits.
- 8System presents results: executive summary, authenticity signals, emotion profile, narrative clusters, risk assessment, platform breakdown.
Primary Outputs
Alternate Flows
- Insufficient credits → insufficient-credit response.
- Rate limit exceeded.
- Partial source failure → partial results accepted.
- No usable signal → brief cannot be generated.
Postconditions
- Intelligence Brief stored and retrievable from history.
Review Intelligence Brief History
Preconditions
- User is authenticated as Pro tier.
Main Success Flow
- 1User opens Intelligence Brief history tab.
- 2System lists previous brief records.
- 3User selects a brief.
- 4System loads saved brief results.
Alternate Flows
- No previous briefs exist.
Postconditions
- User can continue analysis using saved brief outputs.
Purchase Plan or Credits
UpdatedPreconditions
- User is authenticated.
- Stripe service available.
Main Success Flow
- 1User opens Billing page.
- 2System displays plan tiers (Free / Plus $5/mo / Pro $29/mo) and credit packs.
- 3User selects plan or credit pack.
- 4System creates Stripe Checkout session.
- 5User completes payment.
- 6System records billing event and applies plan/credits.
- 7User returns with updated quota.
Alternate Flows
- User cancels checkout.
- Stripe session creation fails.
- Payment succeeds but application is delayed → requires reconciliation.
Postconditions
- User has upgraded tier or additional credits.
Manage Profile and Notification Settings
Preconditions
- User is authenticated.
Main Success Flow
- 1User opens Settings.
- 2User updates display name.
- 3User toggles low-credit and scan-complete notifications.
- 4User saves changes.
- 5System updates profile record.
Alternate Flows
- Save fails → error shown.
Postconditions
- Profile and notification preferences updated.
Delete Account
Preconditions
- User is authenticated.
- User types DELETE to confirm.
Main Success Flow
- 1User opens delete account modal.
- 2System explains consequences.
- 3User confirms with DELETE.
- 4System calls delete-account endpoint.
- 5Backend reassigns retained analysis records per operational policy.
- 6Backend removes user profile and auth record.
- 7User signed out and redirected.
Alternate Flows
- User closes modal without confirming.
- Confirmation text incorrect.
- Partial deletion → support follow-up required.
Postconditions
- User account no longer exists for login. Scan data retained per policy.
Receive Transactional Notifications
Preconditions
- User opted in.
- Resend email service available.
Main Success Flow
- 1User activity changes account or scan status.
- 2System evaluates notification rules.
- 3Low-credit (<3) or scan-complete condition met → email generated.
- 4Email sent to registered address via Resend.
Alternate Flows
- Email provider unavailable.
- Notification preference disabled.
Postconditions
- User receives informational email when conditions met.
FME V19.1 — All Parameters
All 15 forensic parameters returned by FME V19.1. Parameters marked V19 are new or significantly enhanced in V19. V18 parameters were present in the prior engine but benefit from V19 calibration.
| Parameter | Description | Version |
|---|---|---|
| Bias Spectrum | Ideological placement from Far Left to Far Right via 5-band scale. | V18 |
| Manipulation Risk Index | 0–100 aggregate score. Key band-accuracy metric. V19.1: 100% at 5 strata. | V19 |
| Propaganda Technique Annotation | 19 SemEval-2020 techniques + factual_claim tag per paragraph span. | V19 |
| Fallacy Detection | 24 fallacy types with exact quoted spans and char offsets. | V18 |
| Evidence Validity | Quality and density of supporting evidence in the article. | V18 |
| Emotional Resonance (Triad) | Fear / Hope / Urgency per Plutchik-8 emotion model per paragraph. | V19 |
| Intent Transparency | Calibrated 0–100. Anchored via explicit LIFTS/LOWERS markers. Fixed V19. | V19 |
| Source Reliability | 7-tier publisher table (~80 publishers). Unknown → 5.0 blend, cap 6.5. | V19 |
| Strategic Silence | Identifies deliberately omitted context. Scored HIGH/MED/LOW. | V18 |
| Narrative Archetype | Frame classification: event → frame → archetype (Sankey flow). | V18 |
| Philosophical Frame | Underlying argumentative structure and rhetorical mode. | V18 |
| Factual Grounding | Per-claim verification. Google FCT + Wikidata + Wikipedia + Tavily. 30d cache. | V19 |
| Epistemic Integrity Score (EIS) | (Evidence × Transparency) ÷ (Manipulation + Fallacy). Global composite. | V19 |
| Intellectual Depth (DOK) | Webb's Depth of Knowledge framework. 1–4 scale. | V18 |
| Heatmap Strip | Per-paragraph manipulation heat overlay. Clickable spans in extension panel. | V19 |
Preconditions Summary by Capability
| Capability | Auth Required | Credit Required | External Dependency |
|---|---|---|---|
| Browse landing page | No | — | Website only |
| Install extension | No | — | Chrome Web Store |
| Ambient auto-scan (anon) | No | — | Extension V3 + LLM (cache miss) |
| Ambient auto-scan (registered) | Yes | Cache-miss only | Extension V3 + LLM |
| Manual single-article analysis | Yes | 1 (cache miss) | LLM + Supabase |
| View factual grounding | Yes | — | Grounding cache / external APIs |
| PDF export | Yes | — | Client-side (browser print) |
| Share via shortcode | Yes | — | Database + privacy toggle |
| Dashboard and analytics | Yes | — | Database |
| Scan history | Yes | — | Database |
| Intelligence Brief | Yes (Pro) | 2 | Edge function + LLM |
| Buy plan / credits | Yes | — | Stripe |
| Settings update | Yes | — | Database |
| Account deletion | Yes | — | Auth + database |
| Email notifications | Yes | — | Resend |
Success Criteria
The system satisfies the documented use cases when:
- Anonymous users can scan articles via extension without creating an account.
- Dedup cache eliminates redundant LLM calls at ≥80% hit rate at scale.
- FME V19.1 maintains ≥95% band accuracy on production article corpus.
- Span highlights display in extension panel with correct char offsets.
- Factual grounding returns verified claims for ≥80% of articles with claim spans.
- PDF export generates 14-page annotated report in < 5 seconds.
- Users can authenticate via email/password or Google OAuth, including from extension popup.
- Privacy toggle correctly controls /s/{shortcode} visibility.
- Intelligence Briefs return synthesized cross-platform reports within 30 seconds.
- Billing upgrades and credit packs apply to account within 1 request cycle.
- Settings changes and notification preferences persist correctly.
- Account deletion removes login access; data retained per policy.
Risks and Notes
- FME V19.1 band accuracy is 100% on Suite C (14 articles). Performance on significantly different article distributions (e.g. non-English, highly technical) is not yet benchmarked.
- Factual grounding relies on external APIs (Google FCT, Wikidata, Tavily). Service degradation in any provider triggers partial grounding results; circuit breakers limit cascade.
- Anonymous scanning creates a device-based quota that can be circumvented by clearing browser storage. This is an accepted design tradeoff for V3.
- Dedup cache TTLs (6h/7d/30d) may return stale results for articles that are retroactively corrected or updated. Cache invalidation is not yet implemented.
- Intelligence Brief remains Pro-only. Users on Free/Plus tiers who expect this feature should be directed to upgrade; messaging should be explicit.
- PDF export is client-side (window.print). Complex article layouts may cause rendering inconsistencies across OS/browser combinations.
Want a deeper walkthrough?
Reach out for a guided product demo, custom UAT plan, or enterprise pilot. We'll tailor the workflow to your team's newsroom, research, or policy environment.