update session_memory - for refer to the passwork

This commit is contained in:
DatTT127
2026-07-07 22:01:30 +07:00
parent d862d1f7f8
commit 3fbbca1eaa
17 changed files with 2784 additions and 0 deletions

View File

@@ -0,0 +1,554 @@
# VKIST MSK Pilot — Intern Onboarding Index
**Date:** 7 Jul 2026
**Audience:** Phuc (ML / agentic), Quan (frontend / PWA), Dave Tran - Dat (lead)
**Repo:** `pilot_msk_ultrasound_stack` — clone already shared via GitHub
Read this file first, then open your role-specific guide:
| Track | Document |
| ---------------------------------------------- | ------------------------------------------------------------------ |
| **Phuc** — generative logic, agent, guardrails | [ONBOARDING_PHUC_ML_ENGINEER.md](./ONBOARDING_PHUC_ML_ENGINEER.md) |
| **Quan** — mobile UI, Figma, Stitch, PWA | [ONBOARDING_QUAN_FRONTEND.md](./ONBOARDING_QUAN_FRONTEND.md) |
> **Abbreviations:** See [§12 Glossary](./ONBOARDING_INDEX.md#12-glossary-of-abbreviations) — FR, NFR, RAG, CoT, PHI, PWA, etc.
---
## 1. What this project is
**VKIST MSK Pilot** moves academic musculoskeletal ultrasound ML (angle → inflammation → segmentation → synovitis grade 03) into a clinical web platform for Vietnamese public hospitals (Bach Mai, Viet Duc class facilities).
| Dimension | Summary |
| ---------- | ------------------------------------------------------------------------------------------------------- |
| **Cycle** | Jun 2 Sep 2, 2026 (strict 3-month window) |
| **Method** | Hybrid: waterfall phases + agile sprints |
| **Stack** | React PWA + FastAPI + Triton CV + 3-tier LLM (Edge Gemma → Gemini → MedGemma) + RAG over MOH guidelines |
| **Users** | Radiologists, surgeons, physiotherapists, patients/caregivers — each with different UI needs |
**Hard constraints (non-negotiable):**
- **Decree 13/2023** — no raw PHI leaves device without scrubbing
- **No open-ended patient chat** — structured, gated summaries only
- **Air-gapped hospital LAN** — cloud LLM only under NFR-16a (consent + audit + redaction)
- **Legacy smartphones** — zero-GPU fallback rendering for patient fleet
Full vision: `[PILOT_PROJECT/PROJ_LEVEL_READING/PLAN/CONTEXT_VISION_SCOPE.md](../../PILOT_PROJECT/PROJ_LEVEL_READING/PLAN/CONTEXT_VISION_SCOPE.md)`
**Tóm tắt (VI):** Dự án AI siêu âm khớp gối cho bệnh viện VN; 3 tháng; bảo mật Decree 13; các tinh năng hiện giờ đang optimize cho người dùng chính là bác sĩ cơ xương khớp - trong tương lai có thể cân nhắc `bệnh nhân` là đối tượng phát triển; làm tiếp phần Dave đã xây, không làm lại từ đầu.
---
## 2. How we work — continuation engineering
You are **not** here to read docs for three weeks. You inherit Dave's foundation and ship **incremental PRs** that close spec gaps toward sprint checkpoints.
```mermaid
flowchart LR
foundation[Dave_Foundation]
specs[Specs_and_UCs]
backlog[Open_Backlog]
checkpoint[Sprint_Checkpoint]
internPR[Intern_Incremental_PR]
foundation --> internPR
specs --> backlog
backlog --> internPR
internPR --> checkpoint
```
1. Dave assigns **one backlog ID** (P-n or Q-n).
2. You read **only** the spec + code files for that ticket.
3. Ship a small PR (≤300 lines preferred); demo something runnable weekly.
4. Dave assigns the next ticket.
**Tóm tắt (VI):** Dave giao ticket → đọc đúng spec → PR nhỏ → demo hàng tuần → ticket tiếp theo.
---
## 3. Foundation already built (do not rebuild)
Dave's latest handoff: `[session_memory/6_Jul_26.md](../6_Jul_26.md)`
| Area | Status | Key locations |
| --------------------- | ------------------------ | ------------------------------------------------------------------------- |
| FR-25 workspace shell | **Working PoC** | `ClinicalWorkspacePage.tsx`, `WorkspaceShell.tsx`, `DiagnosticCanvas.tsx` |
| CV inference | **Live** (FastAPI proxy) | `POST /api/test/analyze/batch`, `mlInferenceCacheStore.ts` |
| Clinical chat UI | **Working** | `ClinicalChatPanel.tsx`, `useClinicalChat.ts` |
| Edge Gemma 4 E2B | **Working** | `llm.worker.ts`, `clinicalLlmRuntime.ts`, OPFS |
| CoT streaming | **Working** (plain text) | `clinicalChatStreamRegistry.ts`, `StreamingPlainText.tsx` |
| Agent runtime | **Working** (mock tools) | `agent_runtime/`, `agentLoop.ts` |
| Cloud BFF | **Wired** | `cloud_orchestrate.py`, `cloud_consult.py`, `agent_tools.py` |
| 35 Figma routes | **Stub pages** | `figma-component-specs.md` |
| Safety / guardrails | **Spec + stubs** | `bert_adapter.py`; `guardrail.worker.ts` missing |
| Patient PWA | **Not started** | Sprint 4 |
**Tóm tắt (VI):** Workspace, chat, agent, inference đã chạy; guardrail và UI mobile/patient còn thiếu — đó là việc của bạn.
---
## 4. Sprint checkpoints (what your PRs advance)
| ID | Checkpoint | Sprint | Window | Owner |
| ---- | ----------------------------------------------- | ------ | -------------- | --------------------- |
| CP-1 | Beta clinical modes (Planning + high reasoning) | 2 | Jul 10 | Dave → Phuc polish |
| CP-2 | Live agent tools (mock → BFF) | 23 | Jul 1424 | **Phuc** |
| CP-3 | Guardrail slice v1 | 23 | Jul 21 Aug 7 | **Phuc** + Dave |
| CP-4 | Collaborative annotation UX | 3 | Jul 1324 | Dave; Quan UI support |
| CP-5 | Patient list/cards → Figma mobile | 34 | Jul 28 Aug 7 | **Quan** |
| CP-6 | Patient PWA (large text, 375px) | 4 | Jul 27 Aug 7 | **Quan** |
| CP-7 | Accessibility on 2 screens | 45 | Aug 421 | **Quan** |
| CP-8 | RAG retrieval gate / referee stub | 35 | Aug 121 | **Phuc** |
**Timeboxes:** Phuc until ~Aug 31; Quan ~2 months (ends ~early Aug).
**Tóm tắt (VI):** Mỗi PR phải đẩy một checkpoint CP-n, không chỉ viết tài liệu.
---
## 5. Open backlog
Dave maintains priority. Do not self-assign large items.
### Phuc — generative / agentic
| ID | Gap | Starting code | Done when |
| --- | -------------------------------- | ----------------------------------------------- | ----------------------------------------------------- |
| P-1 | Agent tools mock | `tools/registry.ts`, `agent_tools.py` | Live BFF; `VITE_CLINICAL_CHAT_MOCK_TOOLS=false` works |
| P-2 | `bert_adapter.py` stubs | `bert_adapter.py`, `safety/service.py` | One real PASS/FAIL check on outbound text |
| P-3 | `guardrail.worker.ts` missing | Create near `llm.worker.ts` | Worker hooks into chat before display |
| P-4 | RAG not enforced in chat mode | `runClinicalChatTurn.ts` | Clinical answers require retrieval context |
| P-5 | Planning + high reasoning `beta` | `clinicalChatModes.ts`, `chatReasoningLevel.ts` | Stable runs; beta flags removed |
| P-6 | `escalate_medgemma` E2E | `cloud_llm_gateway.py`, `tools/registry.ts` | Demo with audit log entry |
| P-7 | Conformal decoding eval | `ml/spec/conformal_decoding_*.md` | 3 VI clinical test cases (research) |
### Quan — frontend / PWA
| ID | Gap | Starting code | Done when |
| --- | ----------------------------- | ----------------------------- | ----------------------------------------------------------------- |
| Q-1 | 35 stub routes | `src/pages/*.tsx` | 2 priority screens match Figma |
| Q-2 | Safety overlay not routed | `SafetyEscalationOverlay.tsx` | Reachable from workspace |
| Q-3 | No mobile breakpoint | Patient pages | 375px pass, touch ≥44px |
| Q-4 | Accessibility open | Patient components | 1 view WCAG-oriented pass |
| Q-5 | No error boundaries | `App.tsx` | Friendly fallback on workspace route |
| Q-6 | Patient dashboard | `patient-card-*.tsx` | Jargon-free, large type, VI copy |
| Q-7 | Zero-GPU fallback UI | TBD banner | UI state when WebGL weak (Dave provides hook) |
| Q-8 | Stitch sync after ship (lite) | Stitch board | Optional: update frame when PR merges; no standalone proposal doc |
**Tóm tắt (VI):** Bảng backlog trên — chờ Dave giao ID cụ thể trước khi code.
---
## 6. Codebase map
**Active code:** `PILOT_PROJECT/workspace/sprint_1_2/CODEBASE/`
**Do not develop in:** `PILOT_PROJECT/workspace/LEGACY/` (read-only reference)
> **Note:** Root `PILOT_PROJECT/README.md` references stale paths (`Reading_docs/`, `CONTEXT.md`). Use paths in this doc instead.
| Module | Path | Phuc | Quan |
| -------------- | --------------------- | ----------------------------------------- | ------------------------------------------------ |
| Frontend | `CODEBASE/frontend/` | `lib/llm/`, `workers/`, `useClinicalChat` | **Primary**`pages/`, `components/`, `styles/` |
| Backend | `CODEBASE/backend/` | **Primary** — routers, safety, adapters | Read-only |
| ML / NLP | `CODEBASE/ml/` | **Primary**`agent_runtime/`, tests | Do not touch |
| Knowledge | `CODEBASE/knowledge/` | When P-4/P-8 | Do not touch |
| Design | `Design_Material/` | Safety, API | UCs, screen specs |
| Session memory | `session_memory/` | `6_Jul_26.md` | `26_Jun_26/Proj_context` for layout |
### Frontend tree (Quan primary)
```
frontend/
├── spec/ ← uix_prototype_coverage, figma-component-specs, DESIGN
└── implementation/src/
├── pages/ ← Quan: screens
├── components/atoms|molecules|shells/
├── styles/design-tokens.ts
├── hooks/ ← Phuc: useClinicalChat only
├── lib/llm/ ← Phuc ONLY
└── workers/ ← Phuc ONLY
```
### ML + backend tree (Phuc primary)
```
ml/implementation/nlp/agent_runtime/src/
orchestrator/agentLoop.ts
tools/registry.ts
prompt/toolSystemPrompt.ts, toolOutputParser.ts
frontend/.../src/lib/llm/ ← edge inference, chat routing
backend/routers/ ← cloud_*, agent_tools
backend/services/ ← cloud_llm_gateway, agent_tools_service
backend/implementation/safety/, adapters/bert_adapter.py
knowledge/spec/ ← RAG when P-4/P-8
```
**Tóm tắt (VI):** Phuc = ml + backend + lib/llm; Quan = frontend pages/components; LEGACY không đụng.
---
## 7. Reading guide (summary)
Each role doc has three tiers. Quick reference:
| Tier | When |
| ---------------- | ---------------------------------- |
| **Must read** | Day 13, before first PR |
| **Should read** | When your ticket touches that area |
| **Learn deeper** | Keywords — grow over internship |
See [Phuc doc](./ONBOARDING_PHUC_ML_ENGINEER.md#3-what-to-read-what-to-learn) and [Quan doc](./ONBOARDING_QUAN_FRONTEND.md#3-what-to-read-what-to-learn) for full lists.
**Tóm tắt (VI):** Đọc bắt buộc trước PR đầu; đọc thêm theo ticket; học sâu theo từ khóa khi cần.
---
## 8. Dev toolkit
### Shared (both)
| Tool | Purpose |
| ----------------- | ----------------------------------------------------------- |
| **Cursor / Kilo** | Agentic coding — load `PILOT_PROJECT/AGENT_SKILL/` first |
| **Git + GitHub** | Branch per ticket; PR ≤300 lines |
| `secrets/` | Local only — see `PILOT_PROJECT/secrets_template/README.md` |
| `session_memory/` | Dave handoff — start with `6_Jul_26.md` |
### Phuc additions
```bash
# Frontend + clinical chat
cd PILOT_PROJECT/workspace/sprint_1_2/CODEBASE/frontend/implementation
npm install && npm run dev # :5173
# Gemma lab
cd ../../ml/tests/gemma4_e2b && npm install && npm run dev # :5174
# Agent smoke
cd ../agent_tools && npm install && npm run smoke
# Backend
cd ../../.. && conda activate vkist_ultra
PYTHONPATH=. python backend/tests/smoke_agent_tools_server.py
```
Key env: `VITE_CLINICAL_CHAT_USE_LLM`, `VITE_CLINICAL_CHAT_MOCK_TOOLS`, `VITE_API_BASE_URL`
### Quan additions
```bash
cd PILOT_PROJECT/workspace/sprint_1_2/CODEBASE/frontend/implementation
npm install && npm run dev # :5173
```
| Tool | Link |
| ------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| **Figma** (authority) | [MSK_Workspace_UIX-Design](https://www.figma.com/design/uakk3T4efS1AIckfTEFSZO/MSK_Workspace_UIX-Design?node-id=0-1) |
| **Stitch** (acceleration) | [Whiteboard 8188910238055386921](https://stitch.withgoogle.com/projects/8188910238055386921) |
| **Responsive test** | Chrome DevTools → iPhone SE 375px |
Stitch board has **web mocks** today — Quan creates **mobile variants** and exports references for the coding agent (see Quan doc).
**Tóm tắt (VI):** Cursor/Kilo + Git; Phuc thêm conda/smoke tests; Quan thêm Figma + Stitch + DevTools mobile.
---
## 9. Bonus — Feynman Technique with agents
When a concept or code path feels **hard**, don't just ask the agent to fix it — ask it to **teach it back to you** using the [Feynman Technique](https://en.wikipedia.org/wiki/Feynman_technique): explain simply, use an analogy, expose gaps, then verify your understanding.
### When to use
| Situation | Use Feynman prompt |
| ---------------------------------------------------- | -------------------------------- |
| You read code but can't explain it in your own words | ✅ |
| Agent generated a diff you don't fully understand | ✅ Before commit |
| Spec uses jargon (RAG, CoT, BFF, …) | ✅ |
| You're stuck >30 min on the same concept | ✅ Then ask Dave if still blocked |
### Universal template (copy into Cursor / Kilo)
```
Feynman explain — [TOPIC or FILE PATH]:
1. Explain like I'm a new intern with CS basics but new to this codebase.
2. Use one everyday analogy (non-medical if possible).
3. Walk the data/control flow in ≤8 numbered steps.
4. Define every abbreviation you use (or link to our glossary).
5. List 3 "common mistakes" a beginner would make here.
6. Ask me 2 short quiz questions — wait for my answers before continuing.
7. If I get them wrong, correct me simply.
Context: VKIST MSK Pilot, ticket [P-n or Q-n].
Do NOT write code yet — teach only.
```
### After the agent teaches you
1. **Rewrite** the idea in 35 bullets in your own words (PR description, standup note, or personal log).
2. If you still can't rewrite without copying — **you're not ready to commit** that code; ask one follow-up or ping Dave.
3. Optional: paste your summary to Dave at weekly demo — proves understanding, not just output.
Role-specific Feynman prompts: [Phuc §12](./ONBOARDING_PHUC_ML_ENGINEER.md#12-bonus--feynman-technique-prompts) · [Quan §14](./ONBOARDING_QUAN_FRONTEND.md#14-bonus--feynman-technique-prompts)
**Tóm tắt (VI):** Khi khó hiểu — bảo agent giải thích đơn giản (Feynman), trả lời quiz, tự viết lại bằng lời mình; chưa hiểu thì chưa commit.
---
## 10. Collaboration contract
| Rule | Detail |
| ------------- | ----------------------------------------------------------- |
| Assignment | Dave picks backlog ID — you don't self-select large scope |
| PR size | ≤300 lines; one backlog ID per PR |
| Weekly demo | Runnable change required |
| Agentic tools | OK after reading ticket spec; pass `AGENT_SKILL` checklists |
| Research | ≤40% time; only when tied to P-7 or approved milestone |
| Blocked >4h | Ping Dave with exact error + file path |
**Tóm tắt (VI):** PR nhỏ, demo mỗi tuần, hỏi Dave khi kẹt quá 4 giờ.
---
## 11. Current assignments (Dave fills in)
| Intern | Active ticket | Checkpoint | PR link | Status |
| ------ | ------------------------- | ---------- | ------- | ------ |
| Phuc | P-___ | CP-___ | | |
| Quan | Q-1 (`/` worklist mobile) | CP-5 | | |
---
## 12. Glossary of abbreviations
Terms you will see daily in specs, code comments, and standups. Bookmark this section.
### Project & process
| Abbr. | Full form | Meaning in this project |
| --------------- | --------------------------------- | -------------------------------------------------------------- |
| **VKIST** | Viện Khoa học Công nghệ (context) | Research institute partner; MSK ultrasound AI origin |
| **MSK** | Musculoskeletal | Joint/tendon/ligament domain — knee ultrasound focus |
| **PoC** | Proof of Concept | Current sprint build — not production-certified yet |
| **CP-n** | Checkpoint n | Sprint deliverable milestone (see §4) |
| **P-n / Q-n** | Phuc-ticket / Quan-ticket | Backlog IDs in §5 |
| **UC-n** | Use Case n | Clinical workflow spec (e.g. `UC-48376` load scan session) |
| **FR-n** | Functional Requirement n | Feature requirement (e.g. **FR-25** synovitis grading) |
| **NFR-n** | Non-Functional Requirement n | Quality constraint (latency, safety, privacy) |
| **WS-25** | Workspace 25 | Clinician diagnostic workspace UI (65/35 layout) |
| **HITL** | Human-in-the-Loop | Clinician must review/confirm before AI output is final |
| **UP5, UP1, …** | User Persona n | Stakeholder archetype (UP5 = radiologist, UP1 = senior expert) |
### Clinical & domain (Vietnamese context)
| Abbr. | Full form | Meaning |
| --------------- | ----------------------------------------------------------- | --------------------------------------------------------- |
| **MOH** | Ministry of Health (Vietnam) | Source of clinical guidelines for RAG corpus |
| **DICOM** | Digital Imaging and Communications in Medicine | Standard medical image format (ultrasound slices) |
| **PACS** | Picture Archiving and Communication System | Hospital image archive — DICOM source |
| **EMR / HIS** | Electronic Medical Record / Hospital Information System | Hospital patient record system |
| **HL7 / FHIR** | Health Level 7 / Fast Healthcare Interoperability Resources | Standards for EMR data exchange |
| **Synovitis** | — | Joint lining inflammation — graded **03** by this system |
| **GradCAM** | Gradient-weighted Class Activation Mapping | Heatmap showing which image regions drove AI grade |
| **ULTS** | Ultrasound | Modality used in FR-25 |
| **Circular 46** | Thông tư 46/2018/TT-BYT | Vietnam clinical report format regulation |
| **Decree 13** | Nghị định 13/2023/NĐ-CP | Vietnam personal data protection law (PHI rules) |
### Security & privacy
| Abbr. | Full form | Meaning |
| --------------- | ----------------------------------- | ----------------------------------------------------------------- |
| **PHI** | Protected Health Information | Patient-identifiable health data — never commit to git |
| **PII** | Personally Identifiable Information | Names, IDs, phone — scrubbed before cloud egress |
| **RBAC** | Role-Based Access Control | Permissions by clinician role (radiologist, therapist, …) |
| **JWT** | JSON Web Token | Session auth token (stored in Redis server-side) |
| **NFR-16a** | NFR exception 16a | PoC-only rule allowing cloud LLM with redaction + consent + audit |
| **AES-256-GCM** | Advanced Encryption Standard | Client-side encryption for local storage (target arch) |
### Architecture & infrastructure
| Abbr. | Full form | Meaning |
| ------------ | ----------------------------------- | -------------------------------------------------------------- |
| **PWA** | Progressive Web App | Installable web app — Sprint 4 patient target |
| **BFF** | Backend-for-Frontend | FastAPI layer that proxies agent tools + cloud LLM for browser |
| **API** | Application Programming Interface | HTTP endpoints (`/api/v1/...`) |
| **K3s** | Lightweight Kubernetes | On-prem hospital cluster (target deployment) |
| **Triton** | NVIDIA Triton Inference Server | GPU server for CV models + embeddings (`:8001` gRPC) |
| **FastAPI** | — | Python web framework for backend (`:8000`) |
| **NGINX** | — | Reverse proxy / SSL termination in front of FastAPI |
| **MinIO** | — | S3-compatible object store for DICOM blobs, reports |
| **pgvector** | PostgreSQL vector extension | Vector DB for MOH guideline semantic search (HNSW index) |
| **HNSW** | Hierarchical Navigable Small World | Approximate nearest-neighbor index for RAG retrieval |
| **GCP** | Google Cloud Platform | Hosts Gemini (Vertex AI) |
| **Modal** | Modal.com | Serverless GPU platform hosting MedGemma |
| **LAN** | Local Area Network | Hospital internal network — air-gapped primary mode |
| **CI/CD** | Continuous Integration / Deployment | Jenkins + GitLab pipeline |
| **SSE** | Server-Sent Events | One-way streaming from server to browser |
### ML, NLP & generative AI
| Abbr. | Full form | Meaning |
| --------------------- | ------------------------------------------------------- | ------------------------------------------------------------------- |
| **CV** | Computer Vision | Image ML pipeline (angle → inflammation → segmentation) |
| **NLP** | Natural Language Processing | Clinical text cleanup, explanations, chat |
| **LLM** | Large Language Model | Generative text models (Gemma, Gemini, MedGemma) |
| **RAG** | Retrieval-Augmented Generation | Fetch MOH guideline chunks before generating answer |
| **CoT** | Chain-of-Thought | Model "thinking" trace before final answer (thought channel) |
| **TTFT** | Time to First Token | Latency until first streamed word appears (NFR-7: ≤200 ms target) |
| **E2B / E4B** | Gemma 4 2B / 4B params | Edge (browser) vs server Ollama model sizes |
| **WebLLM** | Web Large Language Model | In-browser inference via WebGPU + WASM |
| **OPFS** | Origin Private File System | Browser storage for ~1.9 GB Gemma checkpoint |
| **WASM** | WebAssembly | Binary format for in-browser ML (MediaPipe, LiteRT) |
| **WebGPU** | — | Browser GPU API — required for edge Gemma |
| **WebGL** | — | Older browser 3D API — fallback path for weak devices |
| **BERT** | Bidirectional Encoder Representations from Transformers | Classifier for drift/guardrail/referee (partially stubbed) |
| **EmbeddingGemma** | — | 768-dim embedding model for RAG vector search |
| **MedGemma** | — | Tier-3 clinical deep-reasoning LLM (Modal, NFR-16a) |
| **Gemini** | — | Tier-2 orchestration/translation LLM (GCP Vertex AI) |
| **Gemma** | — | Tier-1 edge conversation LLM (browser MediaPipe) |
| **Agent** | — | Multi-step tool-calling loop (`<tool_call>` / `<final>` protocol) |
| **Guardrail** | — | Safety filter on generated text (hallucination, scope breach) |
| **RAG-Referee** | — | 3-axis citation validator for MedGemma output |
| **Circuit breaker** | — | Clinician challenges AI grade via Socratic dialogue before sign-off |
| **Socratic dialogue** | — | Structured Q&A between clinician and AI about a grade |
| **DeepLab / UNet** | — | Segmentation model architectures in CV pipeline |
| **ConvNeXt / MedViT** | — | Angle classification model families (legacy stack) |
| **LiteRT** | — | On-device inference runtime (TensorFlow Lite successor) |
| **TFLite / TFJS** | TensorFlow Lite / TensorFlow.js | Client-side ML runtimes |
| **ONNX** | Open Neural Network Exchange | Model interchange format for Triton deployment |
| **VRAM** | Video RAM | GPU memory — relevant for Triton/Modal sizing |
### Frontend & UI
| Abbr. | Full form | Meaning |
| ------------- | ------------------------------------------ | ------------------------------------------------------------- |
| **UI / UIX** | User Interface / User Interface eXperience | Screens, layout, interaction design |
| **SPA** | Single Page Application | React app — one HTML shell, client-side routing |
| **TS / TSX** | TypeScript / TypeScript + JSX | Frontend language + React syntax |
| **Zustand** | — | Lightweight React state store (target arch; PoC uses context) |
| **Dexie.js** | — | IndexedDB wrapper for offline cache |
| **IndexedDB** | — | Browser local database for inference cache, session replay |
| **MRN** | Medical Record Number | Patient hospital ID shown in TopBar |
| **FR-26** | Functional Requirement 26 | Future patient-facing dashboard scope |
| **a11y** | Accessibility | WCAG-oriented design (contrast, font scale, touch targets) |
### Tools & workflow
| Abbr. | Full form | Meaning |
| ------------ | ---------------------------------- | ----------------------------------------- |
| **PR** | Pull Request | Code review unit — keep ≤300 lines |
| **IDE** | Integrated Development Environment | VS Code / Cursor |
| **Dev Mode** | Figma Dev Mode | Inspect panel for spacing, tokens, CSS |
| **SDK** | Software Development Kit | e.g. `@google/stitch-sdk` for asset fetch |
**Tóm tắt (VI):** Bảng viết tắt trên dùng hàng ngày — FR/NFR = yêu cầu; RAG/LLM/CoT = AI sinh ngôn ngữ; PHI/Decree 13 = bảo mật; PWA/DICOM/PACS = lâm sàng & UI; hỏi Dave nếu gặp từ mới.
---
## 13. Quick links
| Resource | Path |
| -------------------- | ------------------------------------------------------------------------------------- |
| Project vision | `PILOT_PROJECT/PROJ_LEVEL_READING/PLAN/CONTEXT_VISION_SCOPE.md` |
| Sprint architecture | `PILOT_PROJECT/workspace/sprint_1_2/Design_Material/SPRINT_1_2_ARCHITECTURE_SPEC.md` |
| UI truth doc | `PILOT_PROJECT/workspace/sprint_1_2/CODEBASE/frontend/spec/uix_prototype_coverage.md` |
| Agent skills | `PILOT_PROJECT/AGENT_SKILL/INTRODUCTION.md` |
| Dave's Jul 6 handoff | `session_memory/6_Jul_26.md` |
| Layout reference | `session_memory/26_Jun_26/Proj_context_26_Jun_26.md` |