# Prioritized Task List — Athena MVP Tied to the personas and requirements in `MVP-PRD.md`. Ordered by phase; within each phase, roughly in the order they should be tackled. ## Phase 1: Get Running Daily - [ ] Verify the cron entry (`oracle-pipeline.sh`) fires reliably at 13:00 UTC under Hermes - [ ] Confirm `pipeline.py` runs the full ingest → store → summarize → score cycle without manual intervention - [ ] Add a lock/guard so a slow run can't overlap with the next day's cron trigger - [ ] Validate all 6 adapters (arxiv, github, huggingface, hackernews, reddit, rss_feeds) independently — one adapter failing shouldn't kill the whole run - [ ] Confirm environment-only secrets (`GITHUB_TOKEN`, `HUGGINGFACE_TOKEN`) resolve correctly in the cron context (cron environments are often stripped down compared to an interactive shell) ## Phase 2: Core Functionality - [ ] Confirm `schema.sql` initializes `oracle.db` cleanly and stays idempotent across repeated runs - [ ] Verify `theme_scan.py`'s 4-theme tagging (tool-call, context, compute, trust) against a few real days of data - [ ] Confirm the falsification counter (new arrivals per cycle) is genuinely idempotent — re-running against unchanged data must yield 0 new - [ ] Wire `summarize.py` to degrade gracefully when the Ollama endpoint (`llama3.2:1b`) isn't reachable — ingestion, scoring, and theme-scan must keep running without it - [ ] Confirm `archive.py`'s cold-storage rotation doesn't delete data still needed inside the 7-day falsification window ## Phase 3: Observability & Reliability - [ ] Add structured logging per pipeline stage (ingest, store, summarize, score) with pass/fail per adapter - [ ] Surface theme-scan counts (new arrivals per theme per cycle) somewhere inspectable, not just buried in log files - [ ] Add a daily heartbeat/health check so a silent failure (e.g. cron didn't fire at all) is detectable rather than just showing up as missing data later - [ ] Decide and implement retry/backoff behavior for adapters that hit rate limits (especially GitHub without a token: 60/hr) ## Phase 4: Human Consumption Layer - [ ] Extend `query.py` to support Bob's cross-source convergence lookups and Alice's curated-research pulls - [ ] Define the output format(s) for a "trend confirmed" vs. "trend killed" verdict (per the 7-day dead-thesis rule) - [ ] Decide how Alice's content pipeline actually consumes Athena's output — file drop, API, direct DB read — this is currently undefined ## Phase 5: Validation & UAT - [ ] Run the pipeline unattended for at least one full 7-day falsification window - [ ] Manually verify at least one theme through to a real "confirmed" or "killed" verdict - [ ] Walk Bob's and Alice's user stories from `MVP-PRD.md` end-to-end against real output, not synthetic data - [ ] Confirm memory stays under the 150MB cap under real daily load, not just in a light dev test ## Phase 6: Hermes Integration - [ ] Confirm `oracle-pipeline.sh`'s contract matches what Hermes cron expects (exit codes, output location) - [ ] Decide how Hermes is notified on pipeline failure vs. success — not yet specified - [ ] Confirm the non-root execution requirement is actually satisfied inside the Hermes-invoked environment, not just in local Docker testing --- *Draft prepared by Claude from the MVP-PRD, Personas doc, and README/whitepaper on `main`. Open items flagged "not yet specified" need a decision before Phase 4–6 can be considered done.*