end sprint1 status - sandhya1631/agentic-paper-trader GitHub Wiki

Project Status Update โ€” October 13, 2026

End of Sprint 1 ยท Reporting period: Oct 6 โ€“ Oct 12

Overall Status: ๐ŸŸข GREEN

Good progress this week: data validation, risk policies, and the first agent cycle are done, and the backend is deployed. The project is on track; remaining items (order execution, approval, dashboard, frontend deploy) are planned for Sprint 2.

High Level Overview

This week we moved from scaffolding to a real, guarded agent loop. We built the data-quality validation layer so that bad or missing market data now fails the cycle instead of silently slipping through. We landed our first real risk policy โ€” a hard 10% maximum-allocation guard that runs before any order can reach the broker โ€” made the limit configurable, covered it with tests, and confirmed the broker is never called when a proposed trade would exceed it. We wired up the agent context phase and got our first end-to-end agent cycle running: the local model (Ollama) now produces a structured buy / sell / hold proposal and we persist it to the database for review. We tightened the decision-proposal schema so BUY/SELL proposals must carry a positive quantity, added retrieval of current positions and open orders with test coverage, and optimized our calls to Alpaca. On the safety side we added three more deterministic guardrails: market-hours validation against the Alpaca clock, overlap prevention so two cycles can't run on top of each other (with a manual "run now" trigger), and a sufficient-cash-and-reserve check. Finally, we deployed the backend to Render, connected it to the database, and documented the deployment. In short, over the past week we turned the pieces we'd already stood up into a working agent cycle with most of our core safety checks now enforced.

Feature Status

Feature Started Design Dev Complete Tested Integrated
Project Setup (Frontend/Backend/DevOps) โœ… โœ… โœ… โœ… โœ…
Market Data Ingestion & Indicators โœ… โœ… โœ… โœ… โœ…
Alpaca Broker Integration (account/positions/orders) โœ… โœ… โœ… โœ… โœ…
Encrypted Credential Vault โœ… โœ… โœ… โœ… โœ…
Local LLM (Ollama) Integration โœ… โœ… โœ… โœ… โœ…
Decision-Proposal Schema & Tool Validation โœ… โœ… โœ… โœ… โœ…
Agent Context & Orchestration Loop โœ… โœ… โœ… โœ… โœ…
Manual Cycle Triggering (no-overlap) โœ… โœ… โœ… โœ… โœ…
Core Risk Policies (P-001โ€“P-012 logic) โœ… โœ… โœ… โœ… โฌœ not wired into agent cycle
Market-Hours Enforcement โœ… โœ… โœ… โœ… โœ…
Cash/Reserve Enforcement โœ… โœ… โœ… โœ… โœ…
Human Approval Workflow โฌœ โฌœ โฌœ โฌœ โฌœ
Dashboard & Observability โฌœ โฌœ โฌœ โฌœ โฌœ

Resource Utilization

Team Member Last Week This Week
Samruddhi Added broker tests; tested the agent cycle end to end; started overlap prevention. Finish overlap prevention.
Dhruv Finished data validation and the first agent cycle (LLM proposal saved to database). Connect risk checks to the agent cycle; start order execution.
Sandhya Finished risk policies; deployed backend to Render; started market-hours check. Finish market-hours check.
Jared Completion of stray Sprint, zero items and foundational work Management and documentation in the GitHub wiki and creation of new organized issues/tasks

Team Activities

  • Review and end-to-end test of the agent cycle: Purpose: verify before merge. Participants: Samruddhi, Dhruv. Outcome: test passed; lint and validation fixes added; merged.
  • Backend deployment: Purpose: put the backend online. Participants: Sandhya, Dhruv. Outcome: live on Render, connected to the database.

Changes and Major Decisions

  • Risk policies are simple, deterministic checks. Any failure blocks the trade. Reason: safety. Impact: the broker is only called after all checks pass.
  • BUY/SELL proposals must have a positive quantity. Reason: a missing quantity silently became zero. Impact: safer decisions.
  • Data errors now fail the cycle. Reason: missing data should not look like "no data". Impact: more reliable cycles.
  • Hosting: Render (backend), Vercel (frontend), Supabase (database). Deployed backend uses OpenAI since the local model cannot run on Render's free tier.