Live Development Tracker
Market Prediction Engine — Build Log
Not a student exercise. This is a commercial-grade, self-learning market signal system, built by extracting and enhancing the architecture proven in CP3405 Team 1's project — modular agents, multi-LLM synthesis, and trust-weighted calibration that actually feeds back into future predictions.
LIVE — LAST SYNCED 2026-07-08
Confirmed directly against
ProfDrTan/market-prediction-engine
via the GitHub API. All statuses below reflect the actual commit history,
not memory or prior session notes.
Phase Timeline
From Team 1's architecture to a closer-to-commercial system.
| Phase | Focus | Status |
|---|---|---|
| 0 — Foundation | Fork Team 1's architecture, strip Scrum/pedagogical framing, define shared agent schemas. | done |
| 1 — Signal Layer | Harden technical / macro / almanac agents; add an evidence agent. | 3 of 4 agents built — evidence agent not started |
| 2 — Synthesis Layer | Multi-LLM runner (4 models via OpenRouter) + trust-weighted EMA calibration — the core enhancement over Team 1's unweighted comparison. | done |
| 3 — Automation | GitHub Actions weekly cron for the pipeline; automated scoring against actuals (replacing Team 1's manual QA role). | pushed — awaiting OPENROUTER_API_KEY secret + first manual trigger |
| 4 — Scale | Extend beyond SPX/NDX/IWM; add a backtesting harness against historical data. | planned |
| 5 — Commercial Hardening | Auth, tiered access, reliability SLAs, legal/compliance review before any external users. | planned |
Component Status
Code-level tracking. Populated from the last confirmed repo read — not yet live-synced.
| File | Purpose | Status |
|---|---|---|
agents/schemas.py | Shared data structures across all agents. | done |
agents/technical/technical_agent.py | RSI, trend, moving averages. | done |
agents/macro/macro_agent.py | Risk-on / risk-off regime classifier. | done |
agents/almanac/almanac_agent.py | Seasonal bias from historical monthly returns. | done |
agents/evidence/ | Planned fourth agent — not yet started. | not started |
agents/llm/multi_model_runner.py | Queries 4 free OpenRouter models; trust-weighted synthesis. | done |
calibration/trust_weights.py | EMA-based trust scoring with a minimum weight floor. | done |
calibration/score_predictions.py | Automated calibration scoring (replaces Team 1's manual QA). | done |
run_pipeline.py | Orchestrates the full weekly run for SPX/NDX/IWM. | done |
requirements.txt | Python dependencies. | done |
README.md / DECISION.md | Architecture reasoning; enhancements over Team 1. | done |
.github/workflows/weekly-pipeline.yml | Scheduled pipeline trigger. | done — confirmed in repo tree |
.github/workflows/weekly-scoring.yml | Scheduled calibration scoring. | done — confirmed in repo tree |
Confirmed via
git/trees/main?recursive=1 against the live repo.
The two workflow files were never partially written — nothing to recover,
they need to be authored fresh once workflow-write permission is confirmed.
Changelog
Every entry below is added at the point of a confirmed repo change — not in advance.
2026-07-08
Build log page created and synced against the live repo. Confirmed: schemas, all four calibration/synthesis files, and 3 of 4 planned agents are committed. Evidence agent and both GitHub Actions workflow files are not yet in the repo.
2026-07-08
Attempted push of weekly-pipeline.yml and weekly-scoring.yml with new token. Confirmed root cause: fine-grained PAT has Contents write but not Workflows write (these are separate permissions on fine-grained tokens, distinct from classic PAT "workflow" scope). Both workflow files are fully written and ready locally — push is pending a token with Workflows: Read and write enabled.
2026-07-08
Token permissions updated (Workflows: Read/write added). Both weekly-pipeline.yml and weekly-scoring.yml pushed and confirmed present in the repo tree via API. Automation phase (Phase 3) is now code-complete. Remaining before the first live run: set OPENROUTER_API_KEY as a repo secret, then trigger weekly-pipeline.yml manually via workflow_dispatch.