πŸ“¦ SPRINT 7 β€” ARCHIVED Β· Sprint 8 is now active β†’ View Sprint 8 β†’
πŸ“¦ SPRINT 7 β€” ARCHIVED Β· Sprint 8 is now active β†’ View Sprint 8 β†’

CP3405 Design Thinking 3 Β· TR2 2026 Β· Course Week 7

Sprint 7 β€” The Scrum Master Sprint

vW29 Β· Due Sun 19 July 2026 Β· 23:59 SGT Presentation Β· Mon 20 July 2026 R2 is under the spotlight this sprint Scrum Β· Agile Β· AI Tools Β· TR2 2026
Sprint7 Β· W7
Tag RequiredvW29
DeadlineSun 19 Jul Β· 23:59 SGT
PresentationMon 20 Jul
Sprint focusR2 Β· Scrum Master

πŸ”΄ The Scrum Master Problem

"In Sprint 6, several teams reported blocked progress caused by role dependencies β€” one member not delivering meant others could not proceed. This is not a dependency problem. This is a Scrum Master problem."

A dependency that surfaces on Sunday night was visible on Wednesday. The agent outputs were not committed. The LLM synthesis could not run. The pipeline stalled. And R2 β€” the Scrum Master β€” either did not know, or knew and did not act.

Both are failures of the same role.

Sprint 7 exists to fix this. The Scrum Master is the centrepiece of this sprint. Every other role's performance will be evaluated through the lens of whether R2 created the conditions for them to succeed. And R2's performance will be evaluated on one thing above all others: did the blocker surface by Wednesday or by Sunday?

What Scrum Master Failure Looks Like β€” And Why It's Invisible

The dangerous thing about SM failure is that it looks like everyone else's fault. R3 didn't commit the agent output. R8 couldn't run the synthesis. R9 couldn't cut the tag. The team blames R3. But the question to ask is: when did R2 know R3 was behind?

The Sunday Discovery Pattern β€” a Scrum failure

Monday: sprint starts. Roles assigned. Goals committed.
Tuesday–Friday: silence. No standups. No check-ins. Everyone "working."
Saturday: R8 asks R3 for the agent output. R3 hasn't started.
Sunday: scramble. Partial submission. Blame distributed.

This is not bad luck. This is the absence of Scrum. The daily standup β€” 15 minutes, three questions β€” exists precisely to catch R3 on Tuesday before it becomes a Sunday crisis.

The Wednesday Test β€” the SM's primary accountability

By Wednesday of every sprint, R2 must be able to answer yes to each of these:

β€’ Has every role member checked in since Monday?
β€’ Does every role know what they are delivering and by when?
β€’ Is there any dependency that has not started?
β€’ Has any blocker been raised β€” and if so, has it been acted on?

If R2 cannot answer yes to all four by Wednesday, the sprint is already at risk. The job is not to report failure on Monday. The job is to prevent it by Wednesday.

What a functioning SM looks like in practice

R2 does not wait for the standup to find out what people are doing. R2 checks in with R3, R4, R5 individually by Tuesday β€” not in a group call, but specifically: "Have you started the Almanac output? When will it be committed?" R2 does not accept "I'll do it this weekend." R2 sets a Wednesday commit deadline for every agent output, because R8 cannot synthesise on Thursday if the agents commit on Sunday.

This is not micromanagement. This is the job. The Scrum Master's value is proportional to how early they surface what is not working.

The Dependency Chain β€” Why Order Matters

Every pipeline has a strict execution order. Violating it does not just delay one step β€” it collapses the entire sprint into Sunday night.

R3 Almanac
β†’
R4 Macro
β†’
R5 Technical
β†’
R8 LLM Synthesis
β†’
R7 Human Score
β†’
R9 Tag vW29

R8 cannot start until R3, R4, R5 have all committed. R7 cannot apply the Wild Card until R8 has logged all LLM responses. R9 cannot cut the tag until R7 has committed the final prediction. One missing link collapses the entire chain.

R2's job is to watch this chain. Not on Sunday. From Monday. The moment any link looks uncertain, R2 acts.

What R2 says when a link is at risk

"R3 β€” your Almanac output needs to be committed by Wednesday noon. R8 is blocked until it lands. If something is stopping you, tell me now and we'll solve it together. If you need to swap the role with someone else this sprint, we can do that too."

That conversation on Tuesday takes two minutes. The equivalent conversation on Saturday takes two hours and produces a worse result.

What to Submit by Sunday 19 July Β· 23:59 SGT
1
Pipeline ran automatically
GitHub Actions triggered after Friday 17 July US market close β€” Saturday morning SGT. Run log is the evidence.
2
Release tag vW29
Exact format: lowercase v, capital W, two digits. The immutable record that the sprint was sealed on time.
3
R2 mid-week check-in committed
New this sprint. R2 must commit a standup_midweek_W29.md by Wednesday 15 July showing all roles checked in and any blockers surfaced. This is assessed.
R2 Obligations β€” Sprint 7 Specific

The following are R2's mandatory deliverables this sprint. Each is assessable. Each must be committed to the repository with a timestamp that proves it happened before the stated deadline.

Mon 13
Sprint Planning facilitated. Sprint goal written by R1 and committed. All roles confirmed. DoD checklist agreed. Pipeline dependency order reviewed with the team β€” every role knows who depends on them and by when.
Evidence: sprint_goal_W29.md committed before end of Monday. Discord sprint goal post timestamped.
Wed 15 ⚠️
Mid-week check-in β€” the new mandatory artefact. R2 contacts every role member individually (Discord DM or standup note). Confirms: started / not started / blocked. Any blocker escalated same day. Result committed as standup_midweek_W29.md.
Evidence: standup_midweek_W29.md committed by Wednesday 23:59 SGT. Must name every role and their status. Blockers must include R2's response action β€” not just acknowledgement.
Thu 16
Agent outputs confirmed committed. R2 verifies R3, R4, R5 have all committed their outputs before R8 begins LLM synthesis. If any agent is missing, R2 acts immediately β€” escalates, reassigns, or negotiates scope reduction. Does not wait.
Evidence: Commit timestamps on agent files. If any were late, R2's standup_midweek_W29.md should have flagged it Wednesday.
Sat 18
All branches merged. R2 confirms R9 has merged all branches before end of Saturday. Merge conflicts discovered Sunday cannot be resolved in time.
Evidence: GitHub branch merge timestamps visible on pull request history.
Mon 20 ⚠️
Sprint 7 retrospective presented. R2 leads the retrospective section of the Monday presentation. Must answer specifically: when did blockers surface this sprint? How many days earlier than Sprint 6? What one process change made the difference?
Evidence: retrospective_W29.md committed before Sunday midnight. Must reference the mid-week check-in and whether it caught anything.
Sprint Cadence β€” With SM Checkpoints
WhenWhat happensR2's responsibility
Mon 13 SPRINT PLANNING
Sprint goal, roles, DoD, dependency order reviewed.
Facilitate. Ensure every role knows who depends on them. Commit sprint goal today.
Tue–Wed EXECUTION + CHECK-IN
R3–R5 agent work. R8 wires API calls. R6 confirms Friday fetch scheduled.
Contact every role individually by Wednesday. Not a group message. Each person, each role status. Commit standup_midweek_W29.md by Wed 23:59.
Thu 16 SYNTHESIS GATE
R8 cannot run LLMs until R3, R4, R5 have all committed. This is the dependency gate.
Confirm all agent outputs are committed before R8 starts. If not β€” escalate immediately, not tomorrow.
Sat morning SGT AUTOMATED FETCH
GitHub Actions collects Friday 17 Jul US closes. No manual action needed if pipeline works.
Monitor that the fetch ran. If it failed β€” R2 surfaces it to R9 immediately.
Sat 18 HUMAN REVIEW
R7 Wild Card. R9 merges all branches. R10 delta scoring begins.
Confirm all branches merged by end of Saturday. Chase R10 if delta scoring hasn't started.
Sun 19 Β· 23:59 SPRINT SEALED
vW29 tag cut. Discord submission posted. Retrospective committed.
Confirm all DoD items checked. R2 signs off before R9 cuts the tag.
What Changes From Sprint 6
πŸ†• New: Mid-week check-in is a graded artefact

standup_midweek_W29.md committed by Wednesday 15 July 23:59 SGT is mandatory. It must name every role, confirm their status, and document any blockers with R2's response action. A check-in that says "everyone is fine" with no specifics does not count. A check-in that says "R4 has not started and R2 has reassigned to R2 temporarily" is exactly what this artefact is for.

πŸ†• New: R2 speaks first at Monday presentation

In Sprint 7, R2 opens the team's Monday presentation β€” not R1. R2's opening covers: did blockers surface by Wednesday or Sunday? Show the mid-week check-in. What was the hardest dependency to manage and how was it resolved? This is assessed as part of the Sprint Review.

πŸ†• New: Sector coverage increases to all 11 S&P ETFs

Sprint 6 required the three core indices plus sectors. Sprint 7 requires complete coverage: XLK Β· XLV Β· XLF Β· XLY Β· XLC Β· XLI Β· XLP Β· XLE Β· XLB Β· XLRE Β· XLU. R6 adds these to the data collector. The pipeline fetches them. R10 scores them.

Sprint 7 Roles β€” R2 Under the Spotlight
R2 Β· Scrum Master
This sprint's focus role
Mid-week check-in mandatory. Contact every role individually by Wednesday. Commit standup_midweek_W29.md. Open Monday presentation. Lead retrospective. Surface blockers before Sunday.
Blockers surfaced Wednesday can be solved. Sunday cannot.
R1 Β· Product Owner
Sprint Goal + DoD
Write sprint goal Monday. DoD checklist must include mid-week check-in and Wednesday agent commit deadline as explicit items.
R3 Β· Almanac
β†’ Research Analyst
Commit output by Wednesday. R8 is blocked until you do. R2 will check on Tuesday. Have something to show.
R4 Β· Macro
β†’ Macro Analyst
Commit output by Wednesday. Key macro events w/c 14 Jul. R2 will check on Tuesday.
R5 Β· Technical
β†’ Data Analyst
Technical read from Sat 19 Jul close (post Sprint 6 fetch). Commit before Wednesday.
R6 Β· Data
β†’ Data Engineer
Add all 11 sector ETFs to fetch. Confirm Friday cron scheduled for 17 Jul.
R7 Β· Human Score
β†’ Senior Analyst
Wild Card must be sourced and specific. Review all LLM outputs. Apply override if warranted. This is the primary marks differentiator.
R8 Β· LLM Operator
β†’ AI/ML Engineer
Cannot start until R3, R4, R5 committed. Call at least 2 LLMs via API. Save responses as files. Build comparison table.
R9 Β· GitHub Lead
β†’ DevOps Engineer
Own the Friday cron. Merge all branches Saturday. Cut vW29 tag before Sunday midnight. Show Actions log Monday.
R10 Β· Calibration
β†’ Product Analyst
Score vW29 against Saturday 19 Jul actuals. Build cumulative accuracy W3–W7. delta_W28.md committed before tag.
Sprint 7 Timeline
MON 13 JUL β€” SPRINT PLANNING
Sprint 7 opens Β· Dependency order reviewed
Sprint goal committed. Every role knows who waits on them. DoD includes Wednesday agent deadline.
WED 15 JUL β€” SM MID-WEEK CHECK-IN ⚠️
R2 contacts every role individually
standup_midweek_W29.md committed by 23:59. Blockers surfaced and acted on today β€” not Sunday.
THU 16 JUL β€” SYNTHESIS GATE
R3 + R4 + R5 must be committed Β· R8 starts
LLM API calls run. Comparison table committed. R10 begins delta_W28.md.
SAT MORNING 19 JUL ~4AM SGT β€” AUTO FETCH
⚑ Pipeline collects Friday 17 Jul US closes
github-actions[bot] commits timestamped data file. No human involvement.
SAT 18 JUL β€” HUMAN REVIEW
R7 Wild Card Β· All branches merged
R9 merges everything by end of Saturday. R2 confirms DoD checklist.
SUN 19 JUL Β· 23:59 SGT β€” SPRINT SEALED
🏁 vW29 cut · Discord posted · Retrospective committed
delta_W28.md committed. R2 signs off DoD. R9 cuts tag. Done.
MON 20 JUL β€” SPRINT REVIEW
R2 presents first Β· Mid-week check-in reviewed
R2 opens with blocker timeline. Did they surface Wednesday or Sunday? Show the evidence.
Discord Submission Template β€” Sprint 7 Β· vW29

Post in your team channel before Sunday 19 July 23:59 SGT.

TEAM: Team __ / Practical __
SPRINT: 7 Β· vW29
GITHUB REPO:
RELEASE LINK:

━━━ SM CHECK-IN (R2) ━━━
standup_midweek_W29.md committed by Wed 15 Jul: Y/N
Blockers surfaced mid-week: Y/N
If Y β€” what was the blocker and how was it resolved:
Did any dependency slip past Wednesday: Y/N
If Y β€” what will change in Sprint 8:

━━━ SPRINT GOAL ━━━
Our Sprint 7 goal was:
Did we meet it: Y / Partial / N

━━━ PREDICTION ━━━
File committed (prediction_W29.json or .md): Y/N
SPX direction + confidence:
NDX direction + confidence:
IWM direction + confidence:
All 11 sectors covered: Y/N
Human Score Wild Card applied: Y/N
Wild Card reasoning:

━━━ PIPELINE ━━━
Automated fetch ran Sat morning SGT: Y/N
GitHub Actions run URL:
All branches merged before tag: Y/N

━━━ AGENTS (all committed before R8 synthesis) ━━━
Almanac R3 committed by Wed: Y/N
Macro R4 committed by Wed: Y/N
Technical R5 committed by Wed: Y/N

━━━ AI SYNTHESIS ━━━
LLM 1 via API: Y/N Β· model:
LLM 2 via API: Y/N Β· model:
Responses saved as files: Y/N
Comparison table committed: Y/N

━━━ CALIBRATION ━━━
delta_W28.md committed: Y/N
vW29 SPX direction correct: Y/N Β· error %:
vW29 NDX direction correct: Y/N Β· error %:
vW29 IWM direction correct: Y/N Β· error %:

━━━ SCRUM HEALTH ━━━
retrospective_W29.md committed: Y/N
Every role R1–R10 ready to present Mon 20 Jul: Y/N
One thing R2 will do differently in Sprint 8:
Free LLM API Options β€” For Teams Hitting Limits

If your team is hitting rate limits or does not want to pay for API access, the following options are free, API-accessible, and capable enough for this pipeline. You do not need GPT-4 for market synthesis. You need consistent structured output β€” and all three options below deliver that.

Option 1 β€” Google AI Studio (Gemini 1.5 Flash) Β· Recommended

Cost: Free. No credit card required.
Limits: 15 requests/minute Β· 1,000,000 tokens/day β€” far more than a weekly pipeline needs.
Get your key: aistudio.google.com β†’ Sign in with Google β†’ Get API key β†’ Create API key.
Model string: gemini-1.5-flash
Store as: GitHub Secret GEMINI_API_KEY

Option 2 β€” Groq (Llama 3.1 70B) Β· Fastest free option

Cost: Free. No credit card required.
Limits: 14,400 requests/day Β· 6,000 tokens/minute β€” effectively unlimited for a once-a-week pipeline.
Get your key: console.groq.com β†’ Sign up β†’ API Keys β†’ Create API Key.
Model string: llama-3.1-70b-versatile
Store as: GitHub Secret GROQ_API_KEY

Option 3 β€” OpenRouter (multiple free models)

Cost: Free tier includes Llama 3.1 70B, Mistral 7B, Gemma 2 9B, Qwen 2.5 72B.
Get your key: openrouter.ai β†’ Sign up β†’ Keys β†’ Create Key.
Model string: meta-llama/llama-3.1-70b-instruct:free
Store as: GitHub Secret OPENROUTER_API_KEY
Already used by Team A in this cohort β€” proven to work for this exact pipeline.

Why you are hitting rate limits β€” and how to stop

Rate limits are almost always caused by repeated testing β€” running the full pipeline manually multiple times during the week while developing. The fix is simple: test with short prompts and small inputs during development. Let the GitHub Actions workflow make the real call on Friday night. One call per model per sprint. Free tiers are designed for exactly this cadence β€” they are not designed for a developer calling the API 50 times in an hour.

Store your API key as a GitHub Secret (GEMINI_API_KEY, GROQ_API_KEY, etc). The workflow reads it from the secret. You never hardcode it in your script. You never paste it in Discord.

This section is for teams with API issues only

If your current API setup is working β€” keep it. These options are alternatives for teams who are hitting limits or do not want to pay. You do not need to switch if your pipeline is running correctly.

Sprint 7 Standing Reminders
The mid-week check-in is not a Discord message

Posting "hey everyone how are you going" in the team channel is not a mid-week check-in. R2 must contact each role member individually, confirm their specific deliverable, confirm its status, and document the result in standup_midweek_W29.md. The file must name each role (R3, R4, R5...) with a status line and any blocker. Generic check-ins score zero.

Agents must commit before R8 β€” no exceptions

This is the rule that Sprint 6 teams broke when dependencies collapsed. R8 synthesises what the agents have produced. If R8 synthesises without agent outputs β€” the synthesis is based on the LLMs' own knowledge, not your team's research. That is not a pipeline. That is prompt engineering. They are not the same thing.

Tag format: vW29 β€” still enforced

Lowercase v, capital W, two digits. W29, vw29, v1.0.0 all result in no credit for the release. Put it on the DoD checklist. Check it explicitly. Do not rely on memory.

The data domain is the training environment. Scrum is the lesson.

You are not being assessed on whether you predicted the market correctly. You are being assessed on whether your team ran a professional delivery cycle β€” planned, executed, reviewed, and retrospected β€” with a system that improves sprint over sprint. R2 is the role that makes that cycle work. Sprint 7 is R2's sprint.