A research-driven, citation-backed engineering project to build an adaptive math content generation pipeline for Indian Class VII students (ages 12–13). Every pedagogical and architectural decision is justified by peer-reviewed learning science or canonical industry sources.
The system scrapes curriculum-aligned topics (IXL), fetches pedagogical content (MathIsFun), adapts it via LLM using research-backed prompt personas, and generates 40 adaptive assessment items per topic with full traceability.
Current State: See STATE.md for deployed status, generated topics, and pending items.
Session Context: See .kimi/skills/dr-math/SKILL.md for quick-start commands and diagnostics.
When modifying this project, operate through all ten lenses simultaneously:
- Research Scientist — Cite sources for every pedagogical claim.
- First-Principles Engineer — Derive from axioms (how children learn), not trends.
- Distributed Systems Architect — Design for batch concurrency and idempotency.
- Infrastructure-First SRE — Observability (structured logging, generation tracking) is mandatory.
- Ethical Technologist — Respect robots.txt; cache aggressively; minimize LLM token waste.
- Resource Strategist — TCO analysis before every dependency or API call.
- Diagnostic Problem-Solver — Root cause (why a child struggles), not symptom treatment (more worksheets).
- Curious Explorer — Maintain lab notebook of experiments in
docs/research/. - Clarity-Driven Communicator — ADRs for every architectural decision; commits cite research.
- Inner-Self Guided Builder — Build what is right for the child, not what is easy to ship.
docs/
├── adrs/ # Architecture Decision Records (one per decision)
├── research/ # Pedagogy & technology research
│ ├── bfs/ # Breadth-first landscape mapping
│ ├── dfs/ # Depth-first technology deep-dives
│ └── bidirectional/ # Cross-domain impact analysis
├── architecture/ # System design documents
├── principles/ # Design principles and ten personas
├── references/ # Canonical bibliography
└── decisions/ # Council decision logs
- ADRs:
ADR-###-{decision-topic}.md - Research docs:
{bfs|dfs|bidirectional}-##-{descriptive-name}.md - All docs must include: Date, Scope, Research Phase, and References section.
Use numbered references with full citations:
Claim about scaffolded instruction [^1].
[^1]: Rosenshine, B. (2012). Principles of Instruction: Research-Based Strategies That All Teachers Should Know. *American Educator*, 36(1), 12-19.
pipeline/config.py: Research-backed configuration defaults.pipeline/interfaces.py: Hexagonal architecture ports (abstract base classes) when applicable.- All scraper implementations belong in
pipeline/. - All web service logic belongs in
web/. - All generated runtime artifacts belong in
data/andoutput/(gitignored).
A git pre-commit hook enforces:
.envis never committed- No runtime artifacts (
*_raw.html,*_antigravity.md,output/*.json) are committed - No
__pycache__is committed - Commit messages follow conventional commits (
feat:,fix:,docs:,test:) - Pipeline/web changes prompt for ADR updates
- Do NOT add dependencies without TCO analysis.
- Do NOT make architectural decisions without an ADR.
- Do NOT commit runtime-generated artifacts (raw HTML, JSON outputs).
- Do NOT use unverified blog posts as primary citations.
- Do NOT use rigid difficulty "levels" — the research supports continuous adaptive difficulty.
All architectural decisions must follow the Research-First Covenant:
- No code is written before research is complete. The workflow is: Decompose → BFS → DFS → ADR → Code.
- Every claim requires a citation. Numbered references to T1–T3 sources.
- Every architectural decision requires an ADR.
docs/adrs/ADR-###-{topic}.md - The 10-Persona Filter applies to every change.
- Anti-patterns are architectural malpractice. "Just use X, everyone does" / "We'll fix it in production" are instant violations.
When in doubt:
- Prefer boring, well-understood technology over shiny new tools.
- Prefer open-source with active community over proprietary lock-in.
- Prefer stateless services over stateful ones.
- Prefer event-driven over synchronous RPC for cross-service communication.
- Prefer research-backed decisions over intuition. Cite before you commit.
Document version: 1.1
Established: 2026-05-03
Inherits from: voice-revenge-vizuara-ai/AGENTS.md v2.0