🔒 Professor-only reference document. Not linked from student-facing pages. Contains full forensic analysis of Team 1's development and replication blueprint for next intake.
1. Week-by-Week Build Timeline
From zero to a production-grade system in five sprints. Every architectural decision traced to the exact commit that introduced it.
⭐ Week 22 · 29 May – 1 June 2026 · Foundation Week
From File Dump to Structured Project — In One Day
29 May: First commits — oakkar-cm uploads technical analysis files. NaingPhonePyae files macro output. Plain markdown, no pipeline.
31 May — The Pivotal Day: sinder38 transforms the repo in 7 hours. Everything that defines Team 1 appears today:
Add .gitignore
Create agent output FORMAT files
Add GitHub Actions agent-checks.yml ← FIRST AUTOMATION
Add MIT License
Add CODE_OF_CONDUCT
Add CONTRIBUTING.md
Merge 7 Pull Requests in one day ← PR WORKFLOW ESTABLISHED
Comprehensive README
Every role filed their own PR on 31 May: Almanac (ZawLattNaung), Macro (NaingPhonePyae), Technical (oakkar-cm), QA (JasonEran), LLM (sun9226066), Human Score (saikokokyaw), Scrum Master (PanHsuMyat), Product Owner (Tobias778).
Week 23 · 2–7 June 2026 · Consolidation Week
Second Sprint — Same Discipline, First Agent Code
All 10 role PRs filed and merged for second consecutive sprint. vW23 tag cut on time.
Key development: JasonEran builds the first runnable Python Almanac Agent (PR#30, filed 12 June based on W23 work) — the bridge from documentation to executable code.
All 10 role PRs merged
JasonEran: Runnable Almanac Agent Python ← first code
Evidence/charts W23
Repository cleanup — saunghninphyu22
vW23 tag cut — on time
⭐ Week 24 · 8–15 June 2026 · The Software Sprint
Level 1 → Level 3 in One Week. The Pipeline Appears.
13 June: sinder38 merges Feature/scaffold-application — /backend/ folder created. python-checks workflow added.
14 June — The Automation Day: Between 16:02 and 19:54, sinder38 ships the full automated pipeline. 11 commits. 3 workflow failures then a clean green run at 19:54.
/backend/ scaffold created
python-checks workflow added
pipeline.toml — config-driven
Automated Weekly Pipeline — FIRST SUCCESSFUL RUN 19:54 SGT
Bot opens PR with artifacts ← github-actions[bot] appears
Charles: OpenRouter LLM integration — multi-model synthesis
oakkar-cm: Technical agent Python code
prediction_2026-W24_Team1.md — sealed
vW24 tag cut — on time
⭐ Week 25 · 15–21 June 2026 · The Intelligence Sprint
6 New Branches. Backend + Frontend + Delta Engine + Evidence Agent + Tests.
Six team members extending six different components simultaneously. This is what Level 4 looks like.
JasonEran: Delta Engine — automated scoring + prescriptions (5 commits, 1 day)
sinder38: HTTP backend server — pipeline becomes an API
NaingPhonePyae: Playwright evidence agent — auto-screenshots
virusxix: Frontend TypeScript web app
ZawLattNaung: Unit tests for 3 agents
saikokokyaw: Regression tests for Technical Agent
8 open PRs — awaiting merge before vW25 tag tonight
2. System Architecture
The Repository Structure
| Path | Purpose | Introduced |
.github/workflows/ | 3 CI/CD workflow definitions | Week 22 (31 May) |
backend/agents/ | Python agent modules: almanac, macro, technical, llm, evidence, pipeline | Week 24 (13 Jun) |
backend/tests/ | 4 test files: evidence, pipeline_context, run_pipeline, stages | Week 24-25 |
backend/pipeline.toml | Config-driven pipeline — behaviour without code changes | Week 24 (14 Jun) |
backend/Makefile | Build tasks: make test, make run, make lint | Week 25 (20 Jun) |
data/almanac/ macro/ technical/ llm/ human/ evidence/ qa/ | Structured intelligence storage — one folder per agent type | Week 22 (31 May) |
data/formats/ | Output format templates — what a valid agent file looks like | Week 22 (31 May) |
sprints/ | Sprint goals, retrospectives, standups, acceptance criteria | Week 22 (31 May) |
CONTRIBUTING.md | Branch naming, PR process, commit convention | Week 22 (31 May) |
CODE_OF_CONDUCT.md + LICENSE | Open-source project standards from day one | Week 22 (31 May) |
The Three CI/CD Workflows
| Workflow | File | Trigger | What It Does | First Run |
| agent-checks | agent-checks.yml | Every PR + push | Validates agent output format against rules. PR cannot merge if failing. | 31 May 2026 |
| python-checks | python-checks.yml | Every push | pyright type checking + linting on all Python files | 13 Jun 2026 |
| Weekly Pipeline | pipeline.yml | Scheduled + manual | Runs full pipeline → bot opens PR with artifacts | 14 Jun 2026 |
3. Branch Growth — Visual
Branch Count Growth by Sprint
Week 22 — Foundation (one branch per role)
mainalmanac-agent-week-2macro-agent-week02
technical-agent-week2product-owner-week2qa-lead-week2
r10-qa-week2feature/data-formattinghuman-score-week2
scrum-master-week-2
Week 24 — Software Sprint additions (+5)
feature/almanac-agentfeature/technical-agent-code
feat/pipeline-runnerci/test-pipeline
pipeline/artifacts-2026-06-14pipeline/artifacts-2026-06-14-27510224786
Week 25 — Intelligence Sprint additions (+6, all opened 18-20 June)
feature/delta-engine-w5feat/backend-http-server
evidence-agentweek-5/frontend
sprint-w25-product-ownertest_writing-for-3-agents
Why Branch Growth Matters Pedagogically
Each new branch represents a team member taking ownership of a distinct component. The growth from 10 to 26 branches is not repository complexity — it is team capability growing. Each branch = one student doing one job in isolation, with CI validation, before merging. Compare: Teams 3 and 4 have 1 branch each. Every commit goes straight to main. No validation, no review, no isolation.
4. Data Pipeline — End to End
Friday Close
R6 collects SPX NDX IWM actuals
→
R3 Almanac
Seasonal patterns → data/almanac/
→
R4 Macro
Economic context → data/macro/
→
R5 Technical
Price signals → data/technical/
→
R8 LLM
OpenRouter → ChatGPT + Gemini + DeepSeek → data/llm/
→
Weekly Pipeline
run_pipeline.py → all agents → artifacts
→
Bot PR
github-actions[bot] opens PR with artifacts
→
R7 Human Score
Wild Card override → data/human/
→
Delta Engine (W5)
Auto-scores last week + prescriptions
→
vW## Tag
R9 seals release. Immutable.
5. Contributor Analysis
All 11 Contributors — Who Did What
sinder38 — R9 Pipeline Architect
47
55%
oakkar-cm — R5 Technical Agent
9
10%
Tobias778 — R1 Product Owner
8
9%
Aeron03 — R10 / Evidence
4
5%
JasonEran — R10 Calibration / Delta Engine
3
3%
NaingPhonePyae — R4 Macro Agent
3
3%
panhsumyat179 — R2 Scrum Master
3
3%
ZawLattNaung — R3 Almanac Agent
3
3%
sun9226066/Charles — R8 LLM
3
3%
saikokokyaw — R7 Human Score
2
2%
saunghninphyu22 — R6 / Cleanup
1
1%
The sinder38 Effect
47 commits (55%) by sinder38 — but these are ALL infrastructure commits: CI workflows, pipeline, backend server, bot configuration. The other 45% is 10 team members doing their specific role work. This is a healthy distribution for a team with a strong technical lead. The concern for next intake: role rotation ensures at least 2 members can operate as R9.
6. Replication Blueprint — Next Intake
The three decisions that made Team 1 exceptional — and how to give them to every team from Day 1:
01
PR Workflow from Week 1
Pre-build branch protection rules in the template repo. Require PR + green CI before any merge to main. Every team gets this from the moment they fork. sinder38 set this up manually — next intake inherits it.
02
agent-checks CI from Week 1
Include working agent-checks.yml in the template repo with the format rules already defined. Teams cannot submit malformed agent outputs — the CI rejects them. Quality standard enforced automatically.
03
CONTRIBUTING.md with Branch Naming
Pre-write the branch naming convention: almanac-agent-w22, macro-agent-w23, etc. Include a PR template with required fields. The PR process becomes a habit in Week 1, not something teams discover in Week 4.
04
Backend Scaffold at Week 3
Provide /backend/agents/base.py and /backend/agents/schemas.py at the start of Sprint 3. Teams extend the base class. The pipeline.toml stub is provided — teams fill in their agent paths and API keys.
05
OpenRouter API Keys Provided
Team 1's biggest technical leap was OpenRouter multi-LLM calling. For next intake, provide a class OpenRouter API key with per-team budget. Every team starts with working multi-LLM synthesis from Week 3.
06
pipeline.yml Stub at Sprint 4
Provide a working pipeline.yml stub at Sprint 4 kickoff. Teams fill in their agent scripts and secrets. Level 3 automation becomes achievable for all teams, not just teams with a sinder38.
7. Enhancements — What Professor Dr. Tan Adds
E1
Professor Delta Engine
A delta engine that runs against ALL 5 teams' prediction files simultaneously. Produces a leaderboard with direction accuracy and error % per team. Shown on Monday — teams compete on accuracy, not just completion.
E2
PRISM Prediction Submission API
Teams submit sealed predictions to PRISM via API. PRISM displays all 5 predictions side by side before Monday open. The accuracy contest is public and competitive. Feeds directly into Assessment 1 calibration score.
E3
Test Coverage from Week 3
Mandatory: one test per agent, one integration test. Coverage report as part of vW## release artifacts. JasonEran and saikokokyaw built tests organically — make it a graded criterion from the start.
E4
Sprint 6 Frontend Dashboard
Make a prediction dashboard the Sprint 6 target for all teams. Provide a React or HTML template. Professor Dr. Tan has one URL per team showing live predictions. This is the Demo Day showcase.
E5
Role Rotation Every 2 Sprints
sinder38 at 55% commits is a bus-factor risk. Mandatory rotation ensures at least 2 members can operate as R9 GitHub Lead. Assessment grades role competency, not just output presence.
E6
sinder38 as Guest Demo — TR3 Week 1
Invite sinder38 and JasonEran to demonstrate their pipeline to the next intake in Week 1. Hearing from a peer who built it — not a professor describing it — is the most powerful motivator possible.
8. Action List — Next 30 Days
This Week (Before Sprint 6)
1
Ask sinder38 permission to use Team 1's repo architecture as reference template for next intake
2
Fork Team 1 repo into ProfDrTan/CP3405-DT3-Template — strip the data files, keep the structure
3
Study the .env.example — document which API keys the pipeline requires (OpenRouter key, any others)
4
Run backend/run_pipeline.py locally — verify it executes end to end
Before Study Week (Before 29 June)
5
Build Professor delta engine — runs against all 5 team prediction files, produces accuracy leaderboard
6
Create CP3405-DT3-Template repo with: branch protection rules, agent-checks.yml, CONTRIBUTING.md, /data/ structure, /backend/ scaffold
7
Draft the 20-minute Week 1 GitHub workflow demo: create branch → commit → open PR → get CI green → get approval → merge
Before TR3 2026
8
Test template repo end-to-end with 3 students as dummy team
9
Build PRISM integration endpoint for team prediction submissions
10
Create Sprint 6 frontend dashboard template (React or HTML)
11
Update assessment rubric: add test coverage, delta score accuracy, automation level as graded criteria
12
Brief sinder38 and JasonEran — extend guest demo invitation for TR3 Week 1