Check whether this card's code meets the acceptance criteria
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Produce a release test-impact analysis for a Tamanu version upgrade: compare two Tamanu releases and classify every functional area as Full Test, Smoke Test, or Skip, each with a short reason and the Linear card or PR reference. Use when the user wants a test plan, QA scope, regression scope, or "what to test" for a Tamanu release or upgrade, wants to compare or diff two Tamanu versions (e.g. v2.57 to v2.59), or asks which areas changed between two releases. Handles Tamanu's train-release model (release/X.Y branches vs vX.Y.Z tags) and maps changed files and PRs to Tamanu functional sections (Patient Management, Encounters/Charting, Surveys & Programs, Medications, Labs, Imaging, Appointments, Vaccinations, Sync, Settings, Reports, Admin/Permissions, Mobile, etc.). Optionally maps against a regression-testing spreadsheet's sections when one is provided.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치 방법 보기설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
Produce a test-impact analysis for a Tamanu version upgrade: given a "from" and a "to" version, classify every functional area as Full Test, Smoke Test, or Skip, each with a one-line reason and the Linear card or PR it traces to. The output is a QA scoping table a release manager can act on directly, and it can be mapped onto an existing regression-testing spreadsheet's sections when one is supplied.
You are working inside a clone of the Tamanu repo, so read the history directly with git. The source of truth is the commit history; this skill encodes the method and the two things that trip people up — Tamanu's branch/tag topology, and keeping the classification honest about what actually changed.
Tamanu uses a train-release model. Each minor version is cut from main as a long-lived branch release/X.Y (package version X.Y.0) and only later published as a tag vX.Y.Z once it ships. Consequences:
release/X.Y. Check tags first (git fetch origin --tags && git tag --list 'vX.Y.*'). A minor often has several patch tags (e.g. vX.Y.0 … vX.Y.6): pick the latest patch tag for that minor, never an older one — an older patch shrinks the commit range and under-scopes Full/Smoke areas. If a side has no tag yet, or the release/X.Y branch tip is ahead of the latest tag (untagged hotfixes), compare against the release/X.Y tip instead. State which ref you used for each side.main is usually already on the next version.CHANGELOG.md is unmaintained — do not rely on it. Reconstruct the change list from commit history. Commits follow conventional commits (feat(scope), fix(scope), etc.) and start with or reference the Linear card (TAM-1234, EPI-1321, KAM-463, ...) and the PR number.git fetch origin --tags
git fetch origin release/<from-minor> release/<to-minor>
# Refs: tags are global (vX.Y.Z); fetched branches are NOT local — reference them as origin/release/X.Y.
git log --oneline --no-merges <from-ref>..<to-ref> # commits + cards/PRs
git diff --stat <from-ref>..<to-ref> # changed files by package
git diff --name-status <from-ref>..<to-ref> -- packages/database/src/migrations # A = new migration, D = deleted
Pull the Linear card and PR number out of each commit subject so every Full/Smoke row can cite one. Use origin/release/X.Y (not a bare release/X.Y) as a ref — git fetch does not create local branches. Tamanu cherry-picks hotfixes across release branches, so <from>..<to> can list a commit that is already in the "from" side under a different SHA; when a change looks duplicated, match on the card/PR, not the raw SHA.
Map changes to these areas (packages: central-server, facility-server, web, mobile, shared, database):
| Section | Typical scopes / paths |
|---|---|
| Patient Management | patients, patient views, death/birth records |
| Encounters / Charting | encounter, notes, vitals, charts |
| Surveys & Programs / Forms | survey, programs, form question types |
| Medications / Pharmacy | medication, pharmacy, MAR, dispense |
| Labs / Imaging | labs, imaging, fhir (DiagnosticReport) |
| Appointments / Scheduling | appointments, scheduling |
| Vaccinations / Immunisations | vaccine, immunisation |
| Sync | sync, shared/sync, record sync |
| Reports | reports, report definitions |
| Admin / Permissions / Users | auth, permissions, users, roles |
| Settings | settings, config schema |
| Invoicing / Billing | invoice, billing |
| Referrals / Tasks / Locations | referral, tasks, locations, departments |
| Mobile | packages/mobile/** |
| Platform / Build / Infra | root configs, .github, deps, Node/build tooling |
Two signals:
packages/database/src/migrations): a new migration means a schema/data change — Full Test the affected area plus migration/upgrade testing. No new migrations → say so; migration testing can be skipped.vX.Y.Z patch tag for that minor, or the release/X.Y branch tip when it's ahead of the latest tag or nothing is tagged yet. Record which you used — an older patch tag would under-scope the diff.git log/git diff between the refs; capture commit count, file count, and each commit's card/PR + scope.packages/database/src/migrations listing between refs. Note any new files.A short preamble (refs compared, totals, migration note), then three grouped tables:
## Regression Planning: v[from] -> v[to]
_Refs: <from-ref> -> <to-ref>. N commits, M files. Migrations: <new / none>._
### Full Test
| Section | Change | Card / PR |
|---|---|---|
| Medications / Pharmacy | New dispense workflow + dispensed-meds table | EPI-1321, #9939 |
### Smoke Test
| Section | Change | Card / PR |
|---|---|---|
| Labs | New resultsInterpretation field on lab requests | TAM-6840, #9997 |
### Skip
Login - Dashboard - Triage - ...
### Summary
- Full: N - Smoke: M - Skip: K
- Dominant change(s) and any risk notes.
If the user wants it as a file, offer a colour-coded spreadsheet (red = full, yellow = smoke, green = skip) and tell them the exact path it's written to. Every Full/Smoke row cites a real card or PR; never invent card numbers — if you can't find one, cite the PR# or commit scope. If an area's link to a change is indirect, prefer Smoke over Skip and say so.
The Tamanu commit history is authoritative. This skill encodes a method, not a fixed answer — the functional sections and package layout can change. If the repo disagrees with this skill, the repo wins; update the skill. Never classify an area from memory of a past release — always read the actual diff for the versions asked about.
아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Check whether this card's code meets the acceptance criteria
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Summarise the unit and e2e tests a branch/PR adds, run only those, and produce a paste-ready report (e.g. for a Linear card). Use when asked to 'summarise added tests', 'run the new tests', 'what tests did this PR add', or to prove a card's test coverage.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Run a quick UX/UI workshop using ASCII-art sketches
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Write automated tests for unticked scenarios in this card's test cases
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Review code changes on this card for likely bugs, regressions, and missed edges
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Maintain a support docs pack — dedup, length budgets, and no splintering — and land changes as a reviewed pull request. Use when a support thread, or a hand-off from Support assist, surfaces a new resolution, a correction to an existing one, or a deployment quirk worth recording. Not for ordinary code changes.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.