Skip to content

Local operations

Trend Finder collection and scoring run locally through the scoped scheduler job. Source and AI runtime readiness are independent: healthy public evidence can still use deterministic analysis, and a ready model runtime does not make an unreviewed source valid.

Terminal window
bun run scheduler:trend-finder:status
bun run scheduler:trend-finder:run
bun run scheduler:trend-finder:status

The first status can correctly report that no run exists yet. After a run, read the data, analysis, and source labels in the UI instead of assuming that every configured path succeeded.

The Trends run button is a local development control. It saves a dirty Creator Lens first, starts the scoped job, shows bounded progress, and refreshes the current browser data after completion.

The button remains usable when a provider is disabled or a source is missing. Those conditions belong in explicit readiness, degraded, blocked, or fallback states. Starting a second run while one is active returns an overlap state instead of launching another writer.

For the implemented local text provider, authenticate and test the intended model first:

Terminal window
bun run auth:openai -- status
bun run codex:smoke -- --model gpt-5.6-sol --json

Then run Trend Finder and inspect its own status. Runtime readiness alone is not end-to-end collector proof. See OpenAI subscription runtime.

Terminal window
bun run trend-finder:export-brief

The export uses the validated current payload and writes a local static Brief. It preserves the current provenance and excludes local diagnostics and source internals.

Terminal window
bun run trend-finder:backtest -- --sources producthunt-ai-launches --window-start 2026-01-01 --window-end 2026-01-07 --windows 4 --dry-run

Backtests are script-only. Full archives remain private local artifacts. Only an explicitly published bounded aggregate can reach browser data. Engine Replay remains a sanitized latest-run surface; it is not a historical backtest UI.

Before sharing a run or branch, use bun run runtime:check-private and make sure fixture, fallback, degraded, and live labels match what you claim.