## Why ClawFort currently fetches news on a fixed hourly schedule, which is not enough during first-time setup or after a failed API cycle. Operators need a reliable way to force an immediate news pull so they can bootstrap content quickly and recover without waiting for the next scheduled run. ## What Changes - **New Capabilities:** - Add a manual Python command to trigger an immediate news fetch on demand. - Add command output that clearly reports success/failure, number of fetched/stored items, and error details. - Add safe invocation behavior so manual runs reuse existing fetch/retry/dedup logic. - **Backend:** - Add a CLI entrypoint/script for force-fetch execution. - Wire the command to existing news aggregation pipeline used by scheduled jobs. - Return non-zero exit codes on command failure for operational automation. - **Operations:** - Document how and when to run the force-fetch command (initial setup and recovery scenarios). ## Capabilities ### New Capabilities - `force-fetch-command`: Provide a Python command that triggers immediate news aggregation outside the hourly scheduler. - `fetch-run-reporting`: Provide operator-facing command output and exit semantics for successful runs and failures. - `manual-fetch-recovery`: Support manual recovery workflow after failed or partial API fetch cycles. ### Modified Capabilities - None. ## Impact - **Code:** New CLI command module/entrypoint plus minimal integration with existing `news_service` execution path. - **APIs:** No external API contract changes. - **Dependencies:** No required new runtime dependencies expected. - **Infrastructure:** No deployment topology change; command runs in the same container/runtime. - **Environment:** Reuses existing env vars (`PERPLEXITY_API_KEY`, `OPENROUTER_API_KEY`, `IMAGE_QUALITY`). - **Data:** No schema changes; command writes through existing dedup + persistence flow.