feat(F-147): completed feature
This commit is contained in:
19
work/artifacts/F-147/reviewer.json
Normal file
19
work/artifacts/F-147/reviewer.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"feature_id": "F-147",
|
||||
"agent": "reviewer",
|
||||
"stage": "review_gate",
|
||||
"verdict": "APPROVED",
|
||||
"summary": "Admin reporting shell with navigation entry, global filters (channel/date/compare), URL persistence via Next.js searchParams, KPI grid with KpiCards, AvailabilityBadge per metric, and explicit loading/empty/error states. 2 pages: /reporting (summary) and /reporting/sales (grouped table). tsc 0, boundaries 0.",
|
||||
"checks": [
|
||||
{"item": "AC1 nav visible", "ok": true, "evidence": "permissions.ts: 'reporting.read' permission added to Permission type; NAV_ITEMS has { href: '/reporting', icon: '📈' } entry; can(role) for admin returns true"},
|
||||
{"item": "AC2 default load", "ok": true, "evidence": "page.tsx uses DATE_PRESETS[1]='Últimos 30 días' as default; channel defaults to 'all'"},
|
||||
{"item": "AC3 URL persistence", "ok": true, "evidence": "useSearchParams reads initial values; router.replace() updates URL on every filter change; page reload maintains state"},
|
||||
{"item": "AC4 loading state", "ok": true, "evidence": "KPI grid shows animate-pulse skeletons while loading; spinner on refresh button"},
|
||||
{"item": "AC5 empty state", "ok": true, "evidence": "'No hay datos para este período' with 📊 icon when items.length===0"},
|
||||
{"item": "AC6 error state", "ok": true, "evidence": "error message + 'Reintentar' button renders on catch"},
|
||||
{"item": "AC7 AvailabilityBadge", "ok": true, "evidence": "KpiCard shows AvailabilityBadge per metric; legend with all dataAvailability fields at bottom of summary page"},
|
||||
{"item": "tsc/verify", "ok": true, "evidence": "npx tsc --noEmit 0 errors; boundaries 0 new; verify.sh green"},
|
||||
{"item": "No new boundary violation", "ok": true, "evidence": "git diff: permissions.ts + lib/reporting-client.ts + components/reporting/ + app/(dashboard)/reporting/"}
|
||||
],
|
||||
"issues": []
|
||||
}
|
||||
Reference in New Issue
Block a user