diff --git a/docs/Prioritized-Task-List.md b/docs/Prioritized-Task-List.md index 78667bf..42f2a1f 100644 --- a/docs/Prioritized-Task-List.md +++ b/docs/Prioritized-Task-List.md @@ -1,29 +1,42 @@ -# Prioritized Task List +# Prioritized Task List — Athena MVP -**Status**: Stub -**Branch**: MVP-milestone -**Last Updated**: 2026-07-08 +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 (Highest Priority) - -- [ ] +## 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 -## Optional: Hermes Integration - -- [ ] +--- +*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.*