Document type: Repository task router
Audience: All contributors and coding agents
Status: Active · submission week — end-to-end system built; hardening/reconciliation in progress
Updated: 2026-07-11
Canonical for: Repository navigation, source precedence, working rules, ownership, and current status
Companion documents: .agent/product-requirements.md, .agent/project-architecture.md, .agent/implementation-plan.md
Start here, choose the task row in Section 1, then follow the source precedence in Section 2. Owner blocks are intentional integration gates; do not infer the missing contract. Historical rationale belongs in .agent/context-dump.md, not here.
Jaga is a phone-first tuberculosis research prototype for symptomatic adults aged 18+. A community health worker records one guided cough recording (up to 90 seconds, several natural coughs) and supported clinical inputs; a model trained on AMD produces a calibrated research estimate used only to prioritize follow-up urgency. Every symptomatic participant is directed to confirmatory evaluation regardless of score. Jaga does not diagnose or rule out tuberculosis. (The capture protocol changed from five discrete cough attempts to one guided recording on 2026-07-10 — see .agent/log.md and project-architecture.md §16.)
Preparation and prototyping began 29 June 2026. The AMD Developer Hackathon ACT II runs 6 July 2026, 15:00 UTC → 11 July 2026, 15:00 UTC (22:00 WIB) — today, 2026-07-11, is submission day. The frontend, Go gateway, Rust model services (Gema), and Python Prisma worker are built and integrated end to end; see §8 for what remains.
| Need | Canonical document |
|---|---|
| Product, customer, positioning, pitch, and scope phases | .agent/product-brief.md |
| User-visible behavior, feature requirements, safety, and acceptance criteria | .agent/product-requirements.md |
| System boundaries, planned interfaces, security, deployment, and ownership | .agent/project-architecture.md |
| Datasets, model selection, calibration, evaluation, and reporting | .agent/data-evaluation-plan.md |
| Verified external facts and citations | .agent/evidence-register.md |
| Frontend constraints, design direction, components, states, and motion | .agent/design-guidelines.md |
| Tickets, dependencies, milestones, merge order, and fallbacks | .agent/implementation-plan.md |
| Decision history and rejected ideas | .agent/context-dump.md |
| Chronological documentation changes | .agent/log.md |
| Reusable planning standard | .agent/plan-template.md |
First read: AGENT.md → the canonical document for the task. New contributors should read product-brief.md, then product-requirements.md, then their owned architecture or implementation section. Use context-dump.md only when the reasoning behind a decision matters.
Precedence is responsibility-specific rather than one global ordering:
evidence-register.mdcontrols external facts and cited numbers.product-requirements.mdcontrols current product behavior, safety, and MVP scope.project-architecture.mdanddata-evaluation-plan.mdcontrol implementation and evaluation after their owner-input blocks are completed.design-guidelines.mdcontrols frontend behavior and visual constraints after its owner-input blocks are completed.implementation-plan.mdcontrols sequence and ownership, but may not override the PRD or evidence.product-brief.mdandREADME.mdsummarize the canonical documents.context-dump.mdandlog.mdare historical and may contain explicitly marked superseded decisions.
When two current documents disagree, add a visible contradiction block, stop the affected implementation, and resolve the canonical source first.
- [MVP] ships for 11 July 2026.
- [V1] is documented for post-hackathon work and is not built now.
- [Stretch] starts only after every P0 acceptance criterion passes.
- [OUT] must not be implemented.
- The MVP core is cough + supported clinical inputs. It is evidence-backed, not clinically validated for deployment.
- Chest X-ray (Prisma) is an isolated
[MVP]signal with separate metrics, co-equal with the cough core (Gema) and built in parallel. Never fuse it with the cough score because no paired dataset supports that claim. - Do not retain patient inputs, log request bodies, scrape patient information, or use real patient data in the demo.
- Model-attention and saliency artifacts show where a model focused; they are not causal explanations or clinical reasoning.
- All factual and medical claims must trace to
evidence-register.md.
Owner-input blocks are intentional handoffs, not generic placeholders. Every block must use this structure:
OWNER INPUT REQUIRED — Name — due YYYY-MM-DD
Blocks: the ticket or interface that cannot proceed
Required output: the exact decisions or artifacts the owner must provide
Affected documents: every canonical document that must be synchronized
Completion rule: replace this block with the signed decision and update the affected documents and
log.md
Allowed owners in the current revision:
- Daffa · originally due 2026-06-29: backend/AI architecture, data schemas, inference contract, model pipeline, evaluation gates, serving, security, and observability. Status: superseded by shipped code rather than a formally signed contract document — see
project-architecture.md§14–§16 for what thebackend-trainbuild actually implements, and its remaining open blocks for what is still genuinely undecided (calibration rigor, participant-grouped evaluation, security/observability profile). - Billy · due 2026-06-30: frontend architecture, screen/state map, API-to-UI mapping, design system, responsive behavior, accessibility, and motion. Status: signed and implemented; see
design-guidelines.md.
Do not use unowned TODO, TBD, ellipses, or vague instructions such as “handle errors.”
Use this only when two still-valid owner decisions conflict:
CONTRADICTION — BLOCKS IMPLEMENTATION
Conflict: the two incompatible statements
Canonical documents affected: paths
Owner / due: one accountable resolver and date
Resolution rule: implementation resumes only after all affected documents agree
Known factual errors should be corrected directly rather than preserved as contradiction blocks.
- Daffa — backend/AI architect: owns architecture, model and data decisions, evaluation design, and technical contracts.
- Zeddin — backend implementer: builds the Go API + Python (Prisma) worker service, integration, containerization, and deployment from Daffa's approved contracts.
- Billy — frontend/design lead: owns frontend architecture, UX, design system, accessibility, and final polish.
- Kei — frontend implementer: builds capture and result flows from Billy's approved specification.
- Fransisco — PM/submission: owns schedule, evidence-to-pitch consistency, slides, video, and submission completeness.
No developer implements a blocked interface before its owner-input block is completed.
- Read this router and the canonical document before editing.
- Keep diffs minimal and do not change unrelated files.
- Respect
[MVP],[V1],[Stretch], and[OUT]labels. - Record changed decisions in
context-dump.mdand add a dated entry tolog.md. - Update
evidence-register.mdbefore repeating a changed factual claim elsewhere. - Update a document's
Updateddate whenever its current specification changes. - A task is complete only when its acceptance criteria and documentation synchronization checks pass.
Idea, name, research framing, cohort boundary, online AMD serving, and two co-equal [MVP] signals — cough-plus-clinical (Gema) and isolated digital-CXR (Prisma), never fused — are locked. CODA is controlled-access and Daffa has access; dataset redistribution is prohibited.
As of 2026-07-11 (submission day), the full loop is built and integrated, not just scaffolded: the Next.js frontend (gate → clinical → coughs → review → result, plus a separate CXR upload/result path) talks to a Go gateway (backend/backendHandlers) that runs audio preprocessing, calls two Rust ONNX services (YAMNet cough gate + XGBoost TB-probability model, backend/modelServerandTraining/GemmaServer/rust) for the Gema result, calls Gemma (Fireworks) for the mandatory-next-step copy and the guidance assistant, and proxies to a Python Prisma worker (backend/modelServerandTraining/PrismaServer) for the independent CXR result — which also highlights a PennyLane quantum-kernel-SVM evaluation. All of this deploys as a Docker Swarm stack (infra/). See project-architecture.md §14–§16 for the as-built detail and log.md for the dated build history.
What is not yet true, despite the pipeline running end to end:
-
The rigorous evaluation protocol in
data-evaluation-plan.md(participant-grouped splits, leave-one-country-out, fitted calibration curves, run manifests, reproducibility artifacts) was not carried out for the shipped Gema model; risk bands are fixed cutoffs (0.33 / 0.66) on the XGBoost output, not a fitted calibration artifact. Treat any Gema probability as an uncalibrated research prototype output until that gap is closed. -
contracts/openapi/jaga-v1.yamlstill specifies 5 cough files forPOST /api/v1/triage; the actual Go handler and frontend both use exactly onecoughfile. This is a live contradiction — seeproject-architecture.md§16. -
The Cognee semantic-memory layer described in earlier revisions of this doc set is not wired into
backend/backendHandlersyet, even thoughinfra/cogneeexists in the deployment stack. -
Daffa: reconcile the remaining owner blocks in
.agent/project-architecture.mdand.agent/data-evaluation-plan.mdagainst the shipped model (calibration, participant-grouped evaluation, security/observability profile) — these are the genuine gaps, not the whole pipeline. -
Zeddin: resolve the 5-file vs. 1-file cough contract mismatch in
contracts/openapi/jaga-v1.yamland close the remainingproject-architecture.md§16 open items before submission. -
Billy: owner blocks in
.agent/design-guidelines.mdare signed and implemented; remaining work is the final EN/ID string review and any last accessibility polish. -
Kei: frontend routes (
gate,clinical,coughs,review,result,cxr,cxr/result,chat) are implemented; remaining work is bug-fixing against the live backend rather than fixture adapters. -
Fransisco: validate the milestone and submission checklist in
.agent/implementation-plan.mdagainst the event page and confirm the public deployment URL, video, and slides are ready before 11 July 15:00 UTC.