This project uses market data as the backlog item your pipeline delivers every week. The goal is to practise running a real Scrum cycle — sprint planning, daily cadence, sprint review, and retrospective — with a system that grows more automated each sprint. The data domain is the training environment. The professional habits are what you take with you.
Every role in this sprint maps directly to a skill the workforce is asking for right now:
Calling an AI model programmatically and processing the response is what AI/ML engineers do every day. Not using a chat window — building the pipe that connects your system to the model.
Scheduled automation and CI/CD pipelines are the backbone of every software team. R9 owns the infrastructure that runs without a human triggering it — that's DevOps in practice.
Measuring whether the system's output matched reality, tracking accuracy over time, and feeding that back into the next sprint — this is what product managers and analysts do with KPIs.
Run a complete Scrum cycle — planning through retrospective — with a pipeline that collects data, runs your agents, calls at least two AI models via API, and delivers a prediction file automatically, without manual intervention — automatically after the US market closes Friday.
Each sprint your team should be getting better at Scrum, not just better at the pipeline. Here is what healthy Scrum looks like for Sprint 6 specifically.
R1 (Product Owner) writes the sprint goal — one sentence, measurable. R2 (Scrum Master) facilitates role assignments and timebox agreements. Every member commits to a Definition of Done checklist item. Scrum principle: agree on timeboxes early. A timebox that feels wrong is still better than no timebox — you learn from enforcing it.
Keep your daily check-ins to 15 minutes maximum. Three questions only: what did I do, what will I do, what is blocking me. Blockers get raised immediately — not held until Sunday. Scrum principle: a blocker surfaced on Wednesday can be resolved. A blocker surfaced on Sunday cannot.
A strong DoD makes "done" unambiguous. Weak DoD: "pipeline seems to work." Strong DoD: automated fetch ran and committed data · all agent outputs committed before LLM synthesis · two LLM API calls logged as files · calibration framework ready · vW28 tag cut before Sunday midnight. Scrum principle: user stories — or in your case, pipeline tasks — are never "mostly done." They are done or they are not.
Come prepared. Never create the demo on the spot. Every role has a speaking point. Show the GitHub Actions run log — not a screenshot of code that runs "on your machine." The Product Owner presents what was achieved against the sprint goal. Scrum principle: well-structured demos build stakeholder confidence. Your class is your stakeholder.
Retrospective is a separate event from the Sprint Review. Every team member speaks. The goal is not to solve every problem live — it is to identify them and plan when to address them. One concrete change for Sprint 7, written in the repo. Scrum principle: small consistent improvements turn Scrum from a process into a culture of excellence.
These three things must be true before the tag is cut. This is your sprint's DoD.
GitHub Actions triggered automatically after the US market closes Friday (Saturday morning SGT ~4am). The run log is the evidence. The run log is the evidence. Show it on Monday 13 July.
vW28Exact format: lowercase
v, capital W, two digits. The tag is the immutable record that your sprint was completed before the deadline — the same principle as a Git commit hash.
Use the template below. This is your Sprint Review artefact — the public record that your team delivered this sprint.
Everything from Sprint 5 carries forward. These three things are added.
Your pipeline adds all 11 S&P 500 sector ETFs to its fetch: XLK · XLV · XLF · XLY · XLC · XLI · XLP · XLE · XLB · XLRE · XLU. R6 adds the tickers to the data collector. The pipeline fetches them. The domain knowledge is optional — the automation is not.
The difference between calling an LLM via API and using a chat window is the difference between building a water system and carrying buckets. Both get water to the tap — but only one scales. R8's job this sprint is to build the pipe. Responses are saved automatically as files in the repo and the comparison table is generated from those files.
R10 scores the vW28 prediction against Friday 11 July actuals after the automated fetch runs Saturday morning SGT. This is your retrospective data — did the system's output match reality, and is it improving sprint over sprint? Cumulative accuracy table W3–W6 builds the longer-term picture.
This is your week. R2 owns the cadence. Every role feeds into it in sequence — the order matters.
| When | What happens | Evidence in repo |
|---|---|---|
| Mon 6 Jul |
SPRINT PLANNING R1 writes the sprint goal. R2 assigns roles and agrees timeboxes. DoD checklist written. DECISION.md committed. The sprint goal is a public commitment — it goes in the repo today. |
Sprint goal on Discord. DECISION.md committed. |
| Mon–Wed |
SPRINT EXECUTION R3 (Almanac), R4 (Macro), R5 (Technical) commit agent outputs independently. R8 wires LLM API calls. R6 confirms Friday fetch is scheduled. Daily check-ins: 15 minutes, stand up, three questions only. |
Agent files committed by Wednesday. No waiting until Sunday. |
| Thursday |
AI SYNTHESIS R8 runs API calls to at least 2 LLMs. Responses saved as files. Comparison table built from those files. R10 begins scoring vW25 against actuals. |
LLM response files in repo. Calibration framework committed. |
| Sat morning SGT ~4am (US Fri close) |
AUTOMATED FETCH GitHub Actions triggers at the scheduled time. Collects all instrument closes. No one touches a keyboard. If the fetch fails, R9 is responsible for diagnosing it — this is a production system. |
Auto-commit by github-actions[bot] with timestamp. |
| Saturday |
HUMAN REVIEW R7 applies Human Score Wild Card — a specific, sourced insight the models missed. R9 merges all branches. R2 confirms every role has submitted. Merge conflicts discovered Sunday cannot be fixed in time. |
Wild Card committed with reasoning. All branches merged. |
| Sun · 23:59 SGT |
SPRINT SEALED R10 commits calibration notes from prior sprints if applicable. R9 cuts vW28 tag. Discord submission posted. Sprint is done. A sprint that is "mostly done" is not done.
|
vW28 tag on GitHub. Discord post complete. |
The role you play in this sprint is practising something employers look for. The Scrum framework is the structure that makes the team more than the sum of its parts.
Friday 11 July 2026 closes — auto-fetched by R6/R9 during the sprint. R10 uses these to score the vW28 prediction after Monday 13 July presentation.
| Instrument | Fri 11 Jul Close (auto-fetched) | Week Direction | Change |
|---|---|---|---|
| SPX | Available after Sat 12 Jul ~4am SGT | — | — |
| NDX | Auto-fetched by R6/R9 | — | — |
| IWM | Auto-fetched by R6/R9 | — | — |
| All 11 sectors | Auto-fetched by R6/R9 | — | — |
Post this in your team channel before Sunday 12 July 23:59 SGT. This is your Sprint Review artefact.
TEAM: Team __ / Practical __ SPRINT: 6 · vW28 GITHUB REPO: RELEASE LINK: (URL of the vW28 tag) ━━━ SPRINT GOAL ━━━ Our Sprint 6 goal was: Did we meet it: Y / Partial / N What we would do differently (retrospective): ━━━ PREDICTION ━━━ File committed (prediction_W28.json or .md): Y/N SPX direction + confidence: NDX direction + confidence: IWM direction + confidence: Sectors covered (all 11 — XLK XLV XLF XLY XLC XLI XLP XLE XLB XLRE XLU): Y/N Human Score Wild Card applied: Y/N Wild Card reasoning (must be sourced and specific): ━━━ PIPELINE ━━━ Automated fetch ran after Friday US market close (Sat morning SGT): Y/N GitHub Actions run URL (the successful Friday run): All branches merged before tag: Y/N ━━━ AGENT OUTPUTS (committed before LLM synthesis) ━━━ Almanac R3: Y/N | Macro R4: Y/N | Technical R5: Y/N ━━━ AI SYNTHESIS ━━━ LLM 1 called via API (name + model): LLM 2 called via API (name + model): Responses saved as files in repo: Y/N Comparison table committed: Y/N ━━━ CALIBRATION (R10) ━━━ delta_W28.md committed after actuals available (post Mon 13 Jul): Y/N Calibration framework ready: Y/N Cumulative accuracy table W3–W6 committed: Y/N ━━━ SCRUM HEALTH ━━━ DoD checklist fully met: Y/N Retrospective committed to repo: Y/N Every role (R1–R10) ready to present Mon 13 Jul: Y/N One thing the team does differently in Sprint 7:
The tag vW28 is your sprint's immutable record — proof the work was sealed before the deadline. Put it as an explicit item on your DoD checklist. If your team has had tag format issues before, that checklist item is the fix.
The difference between R8 calling an LLM via API versus using ChatGPT's web interface is the difference between building a water system and carrying buckets. Both move water. Only one scales to production. This sprint, R8 builds the pipe.
If something breaks or a new idea emerges mid-sprint, log it in the backlog. Don't drop the sprint goal to chase it. Reflect on interruptions in the retrospective and decide as a team how to handle them going forward.
The pipeline collects market data. Your agents summarise it. Your LLMs synthesise it. Your Human Score lead applies judgment. Running this workflow in a repeatable, automated, improving cycle is the transferable skill. The data domain is where you practise it.