Epictetus
24e378182f
docs/vision: AI News Daily Vision v2 — publication layer, separate from Athena engine vision
...
Athena = engine. AI News Daily = first publication powered by Athena.
This file governs the publication; Athena's engine-level Editorial Test stays in
VISION_LOCK_V1.md / ADR-0007. Separation preserved intentionally so a future 2nd
publication gets its own vision file without touching Athena's.
Mission: usefulness over hype/funding/exec-opinion/press. Editorial Test (install/run/
test/benchmark/replicate/learn -> candidate; nothing -> reject). 5 sections mirror the
prototype Issue_001. North Star: the few developments that change what enthusiasts can DO.
2026-07-15 05:38:02 +00:00
Epictetus
3a42f53333
Vision Lock v1: AI News Aggregator -> AI Enthusiast Daily (ADR-0007)
...
- docs/vision/VISION_LOCK_V1.md: permanent editorial mission, audience (builders/tinkerers/
local-AI users/home-lab/agent devs), Editorial Test ('what would an enthusiast DO?'),
architectual constraint (editorial vision is primary system), priority order.
- docs/vision/ADR-0007_EDITORIAL_PIVOT.md: accepted pivot record, before/after table,
Sprint 1 evidence (high-signal = actionable, low-signal = spectator content).
- docs/vision/EDITORIAL_GUIDELINES.md: operating rules; score is draft, taste overrides;
hand-before-machine; memory must store 'what can be done' not 'what happened'.
- docs/vision/SECTION_DEFINITIONS.md: 5 sections (What Shipped / Run It Locally /
Benchmarks & Builds / Problem Solved / Worth Trying Tonight).
- docs/vision/SPRINT_1_FINDINGS.md: reference evidence, 45/200 UNCATEGORIZED taxonomy gap.
- Issue_001.md: handcrafted prototype edition from Sprint 1 stories; benchmark for all future automation.
This is the architectural directive. No scoring/narrative/memory work proceeds except in
service of the Vision Lock. Sprint 2 (Lens) stays blocked pending manual review tallies.
2026-07-15 05:08:26 +00:00
Epictetus
ed6b7475dc
Sprint1: pure-rule bucket classifier + scorer (taste before intelligence)
...
- athena/scoring.py: deterministic bucket taxonomy (SHIPPING, LOCAL AI,
PROBLEM SOLVED, MODEL RELEASE, RESEARCH, BUSINESS, INFRASTRUCTURE,
CULTURE, UNCATEGORIZED) + component scores (shipping/utility/
replication/enthusiast/novelty) with hype_penalty. No embeddings/LLM.
- Idempotent schema migration: 12 new columns incl actionability_score (reserved).
- attach_scoring() wired into pipeline.py AFTER store_entries, BEFORE render.
- Backfilled all existing rows; verified at box: null->scored via live run.
- Review report exposes every fired rule (editorial proof, not accuracy metric).
- Human-review tally (Published/Rejected/Borderline) is manual only.
Decision: founder directive 2026-07-15 — discover taxonomy before adding
intelligence. Sprint 2 (Lens) blocked until manual review completes.
2026-07-15 04:18:21 +00:00
Epictetus
699bd6d243
TEST: R6 guardrail — first_seen write-once enforced (re-harvest must not overwrite)
2026-07-13 22:30:08 +00:00
Epictetus
424da91364
FIX: first_seen re-stamp bug — persist true source publish date, idempotent upsert, backfill DB
2026-07-13 22:16:59 +00:00
Epictetus
7e33ffd36f
recency_guard module + wired propagate_stack_now + top20 (Tony 2026-07-13)
2026-07-13 21:38:32 +00:00
Leonard
2dfa3a9708
WIP before Manual-Headline-Insertion v1 edits (clickability 14d lifecycle pending)
2026-07-12 23:43:14 +00:00
Epictetus
1539c743b5
docs: amend Dev-Design + Deployment-Plan to bare-script reality (no Docker)
...
Decision 2026-07-12: do NOT containerize. Document actual deployment state:
- Bare Python scripts under vpsadmin user, Hermes cron drives oracle-pipeline.sh
- Container hardening / 150MB cap / Docker build retained as future target (design intent)
- Ollama not deployed; summarization deferred (graceful degradation is live)
- .env (chmod 600) is the live secret mechanism, not /etc/athena/secrets.yaml
2026-07-12 06:55:27 +00:00
Epictetus
feba2fe7b7
feat: apply fix/adapter-health-1-2-9 changes (unified retry, failure_class, RSS enabled)
...
- adapters/__init__.py: add http_get() unified retry helper + AdapterHTTPError
+ failure_class classification (429/5xx/4xx/error/zero_fetch/ok)
+ last_failure_class on SourceAdapter for pipeline capture
- pipeline.py: ENABLED_SOURCES now includes RSS
+ failure_class rollup in run_log (most severe across all adapters)
+ per-source failure_class in source_stats
- schema.sql: add failure_class column to run_log table
Backport of fix/adapter-health-1-2-9 branch (issues #1 , #2 , #9 ).
2026-07-12 04:51:24 +00:00
Ty
5cf0b803cb
Merge pull request 'Merge MVP-milestone docs into main' ( #15 ) from MVP-milestone into main
...
Merge MVP-milestone docs (Dev-Design, PRD, Deployment Plan, etc.) into main. Phase 1-6 planning formalized.
pre-mvp-docs-merge
2026-07-12 04:12:11 +00:00
ty
cead87370b
docs: apply all 18 DevDesignReview edits to Dev-Design.md
...
- Ch 1: MVP Success Criteria
- Ch 2: Daily Run Flow + Failure Modes
- Ch 3: Backup Strategy + Schema Migration
- Ch 4: Adapter Interface Contract
- Ch 5: Theme Governance
- Ch 6: Calibration Process
- Ch 7: MCP Tool Signatures + API Auth Model
- Ch 8: Log Retention/SLIs + Alerting Matrix
- Ch 9: Scheduling Recommendation
- Ch 10: Model Upgrade Process
- Ch 11: MVP Security Baseline
- Ch 12: Definition of Done per Phase
- Ch 14: Revisit column on Design Decisions table
- New Ch 15: Testing Strategy
- New Ch 16: Deployment and CI/CD
- New Ch 17: Operational Runbooks
- New Ch 18: Risk Register and Assumptions
- New Ch 19: Dependencies and Tooling
2026-07-09 12:43:22 -07:00
Ty
baf402c80e
docs: add DevDesignReview.md with chapter-by-chapter feedback
2026-07-09 14:02:46 +00:00
ty
ae69b38b81
docs: add Dev-Design.md — development design document
...
Multi-model architecture review (Qwythos-9B + Qwen3.5-9B, 2 rounds):
- System architecture with memory budget (150MB pipeline + 2GB system)
- SQLite + FTS5 data layer with Phase 2 sqlite-vec upgrade path
- Keyword co-occurrence convergence (P1) → embeddings (P2)
- Exponential decay falsification replacing 7-day fixed rule
- Progressive output layer: file drops → Flask API → MCP server
- 6-phase implementation plan (P0-P6) with deliverables
- 30+ PRD backport requirements organized by category
- Design decisions rationale table
2026-07-08 23:43:09 -07:00
Leonard
13d2d1dd1d
Fill out Prioritized Task List and Deployment Plan
2026-07-09 04:29:42 +00:00
Leonard
2e68de8451
Fill out Prioritized Task List and Deployment Plan
2026-07-09 04:29:40 +00:00
Ty
f64240d6dc
added ascii tree to reqs
2026-07-08 21:44:34 +00:00
Ty
3ed95be797
Update docs/MVP-PRD.md
...
updated requirements
2026-07-08 21:38:24 +00:00
Ty
04863f3dcf
Update docs/MVP-PRD.md
...
adding requirements
2026-07-08 21:33:48 +00:00
Ty
8f4716f875
docs: add initial user stories
2026-07-08 20:40:19 +00:00
Ty
75479abffa
docs: add Chapter 1 draft - Vision and Scope (chapter 1 draft complete)
2026-07-08 20:19:10 +00:00
Ty
11329d7c74
docs: add Personas and Archetypes derived from main
2026-07-08 20:07:21 +00:00
Ty
c32a846f79
stub: initial MVP milestone docs - Deployment-Plan.md
2026-07-08 19:49:17 +00:00
Ty
6c246c6467
stub: initial MVP milestone docs - Prioritized-Task-List.md
2026-07-08 19:49:16 +00:00
Ty
315a04041e
stub: initial MVP milestone docs - MVP-PRD.md
2026-07-08 19:49:12 +00:00
Epictetus
7ee1af3d7b
Disable RSS adapter from ENABLED_SOURCES (back to 5 approved sources); keep code for future use
2026-07-08 18:03:37 +00:00
Epictetus
a1fafb5f46
Update README: public repo, model-agnostic inference (remove DeepSeek/local-only framing)
2026-07-08 17:40:03 +00:00
Epictetus
fd669c31bb
Add README + source link to whitepaper (Gitea repo location)
2026-07-08 16:11:41 +00:00
Epictetus
df5226859e
Fix Reddit adapter: fast-bail when blocked (403/429)
...
Bug: Reddit was taking 120s+ when rate-limited (3 attempts × 4 subreddits × backoff).
Fix: 1) Try JSON on first subreddit; if blocked, test one RSS.
2) If both fail, return empty immediately (<3s).
3) Reduce default rate_limit 3→1s.
4) 403 now immediate fail in RSS (was retrying).
5) Max RSS retries 3→2, single 2s backoff.
Result: 120s timeout → 2.1s when blocked. Zero entries returned but no hang.
2026-07-08 15:36:50 +00:00
Epictetus
2c6701f5a3
Add RSS Feeds adapter (6th source) — commercial AI news from 10 feeds
...
Bug fix: date parsing was ISO-only (RFC 2822 feeds filtered out).
Added email.utils.parsedate_to_datetime() fallback for RSS dates.
10 feeds: TechCrunch AI, VentureBeat AI, The Verge AI, AI News,
The Decoder, MIT Tech Review AI, OpenAI Blog, Anthropic, Google AI, Meta AI.
3 dead feeds (Anthropic/Google/Meta 404), 7 working.
Score: authority (primary blogs 1.5x, industry 1.3x) × recency decay (48h half-life)
Age cutoff: 14 days. Score type: estimated.
Wired into pipeline.py ENABLED_SOURCES. Added RSS URL verification.
3/3 spot-checks passed (all URLs reachable, HTTP 200).
Commit: 62031be→c24a89f
2026-07-08 15:27:59 +00:00
Epictetus
62031bef3f
Fix GitHub adapter: sort by velocity (stars/day), not absolute stars
...
Bug: sort=stars returned the same viral repos every cycle (ponytail 77K⭐
dominated for 26 days). A 5-day-old repo with 3K stars (600/d) was
ranked below it despite having nearly 2x the growth velocity.
Fix:
- Fetch repos created in last 30 days (was 14)
- Re-sort by velocity (stars/day) instead of total stars
- Score formula: 70% velocity + 30% absolute stars
- Added 3rd query for breadth (autonomous agent OR AI tool)
- Added stars_per_day to raw_metadata for queryability
- Added velocity field to metadata
2026-07-08 06:46:40 +00:00
Epictetus
8d0c832e20
Add Athena whitepaper — system architecture, pattern detection, opportunity discovery
...
12 sections covering:
- Problem statement (AI signal crisis)
- 5-source architecture and scoring methodology
- Verification discipline
- Trend detection & falsification engine
- Signal-to-opportunity pipeline (Competence Gate example)
- Agentic capability assessment
- Technical specs (3731 lines, 5 commits, 99 entries)
- Roadmap (immediate, near-term, long-term)
- Appendices (git history, verification log, current snapshot)
2026-07-08 06:21:43 +00:00
Epictetus
4ba270c166
Add Hugging Face adapter — model releases & adoption signal
...
- adapters/huggingface.py: HF API adapter (models + datasets)
- Dual fetch: sort=likes (popularity) + sort=lastModified (fresh)
- AI relevance filter: pipeline_tag, library_name, tag matching
- Score: adoption (likes/downloads log-scale) + relevance (pipeline/library/tags)
- score_type: actual (real likes/downloads from HF API)
- Cross-source signal: GLM-5.2 top on both HN and HF
- Wired into ENABLED_SOURCES + verification in pipeline.py
- Live verify: DB likes match live API exactly (GLM-5.2: 3607, DeepSeek-R1: 13448)
- 99 total entries across 5 sources, all pipeline green
2026-07-08 05:54:27 +00:00
Epictetus
6396b66b45
Add Hacker News adapter + wire into pipeline
...
- adapters/hackernews.py: HN Firebase API adapter with AI keyword filtering
- Word-boundary matching to avoid substring traps (Britain/Guinea)
- Score: log(points) + log(comments), actual HN scores
- Wired into ENABLED_SOURCES + verification in pipeline.py
- Live test: 10 AI/ML stories fetched, all clean
2026-07-08 05:32:28 +00:00
Epictetus
729760fb27
Phase 6: theme trend-scan (B) + competitor gap research (A)
...
- theme_scan.py: tags entries by 4 practitioner themes (tool-call/context/
compute/trust), counts NEW arrivals per cron cycle (falsification check for
one-day-cluster vs trend). Idempotent: re-run = 0 new.
- schema.sql: theme_tags table (separate from core entries schema)
- oracle-pipeline.sh: wire theme_scan after summarize
- A result (footnote): unified discipline layer unoccupied; adjacent OSS
entrants exist (agentgateway, lelu) but no portable unified layer.
Verified: theme_scan classifies 5 seed/extra items, 2nd run = 0 new.
2026-07-08 04:50:01 +00:00
Epictetus
b51be6ed48
Phase 5: cron entry script, soft-cap archive, run_log zero-fetch degradation
...
- oracle-pipeline.sh: single cron entry point (pipeline -> summarize -> archive)
- archive.py: soft-cap archival to entries_archive (preserve, not delete)
- pipeline.py: record zero-fetch (rate-limited) runs as degraded in run_log.notes
Verified: full script runs exit 0, run_log captures per-source status.
2026-07-08 04:07:54 +00:00
Epictetus
67c002b665
Initial commit: Oracle AI research pipeline (adapters, pipeline, summarize, query)
...
Source-controlled baseline before Phase 5 cron. Excludes oracle.db,
logs/, and __pycache__ via .gitignore. Pipeline verified running
clean end-to-end (run_log write confirmed before conn.close()).
2026-07-08 04:03:36 +00:00