L-GEVITY
L-GEVITY is het platform waar jij jouw huidige en toekomstige gezondheid kunt meten en verbeteren met gerichte leefstijlaanpassingen op basis van bloedwaarden, fitnesstests, biomarkers en slimme algor
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
An evidence and complaint-preparation app for India's celiac community.
Status: phase one is complete — T0–T5 are merged to main, verified live against the dedicated demo Supabase project, the real AI provider and the demo Mixpanel project (typecheck, lint, build, 239 unit + integration tests, 128 browser specs at desktop and 360 px), and the deployed acceptance run passed 16/16 on https://food-proof.vercel.app — see IMPLEMENTATION_STATUS.md.檢視完整 README ↗An evidence and complaint-preparation app for India's celiac community.
Status: phase one is complete — T0–T5 are merged to main, verified live against the dedicated demo Supabase project, the real AI provider and the demo Mixpanel project (typecheck, lint, build, 239 unit + integration tests, 128 browser specs at desktop and 360 px), and the deployed acceptance run passed 16/16 on https://food-proof.vercel.app — see IMPLEMENTATION_STATUS.md. T4 added live AI assistance (Anthropic Claude API, model claude-sonnet-5, low effort, hard spend cap USD 2.00 enforced by a durable ledger; label photographs are metadata-stripped before they leave), live consent-controlled Mixpanel ingestion with server-owned success events, and two integrity fixes (atomic publication requests; one effective approved revision per response). T5 verified the guarded deployment (AI enabled, verified FSSAI official-portal handoff enabled), closed the feed-thumbnail and upload-progress gaps and hardened the UI for accessibility. Real sign-in (phase two, C.1) is the next ticket set. See IMPLEMENTATION_STATUS.md for the exact state, rulings, owner decisions, known gaps and the continuation prompt.
Start with the handoff, then the PRD. Review the audit and open items before assigning build tickets. Current build progress and the exact next step are in IMPLEMENTATION_STATUS.md.
/Users/gaytrikhatwani/ClaudeProjects/GovtCaseStudy/FoodProof/Requirements: Node.js >= 20 (developed on 24). Commands below are verified in T0:
npm install # install pinned dependencies (package-lock.json committed)
npm run dev # start the dev server (http://localhost:3000)
npm run build # production build
npm run start # serve the production build
npm run typecheck # tsc --noEmit
npm run lint # next lint
npm run test # vitest run (unit/contract + live integration suites)
npm run test:e2e # playwright test (browser specs; starts next dev)
Copy .env.example to .env.local and fill values from your dedicated DEMO
Supabase/Mixpanel projects before running features that need them. The public
homepage (/) renders with no configuration; server env is validated lazily.
No secret is ever prefixed NEXT_PUBLIC_. /api/health is a demo-only readiness
fixture (returns config-group booleans, never values) available when DEMO_MODE=true.
Against a dedicated demo Supabase project (never production):
supabase/migrations/0001_init.sql into the Supabase
SQL Editor and run it. On a project where 0001 was applied before the
service_role grants were folded in, also run 0002_service_role_grants.sql.supabase/migrations/0003_transactional_operations.sql into the SQL Editor and
run it, then supabase/migrations/0004_publication_atomicity_and_ai_spend.sql.
0003 adds the transactional functions for publication approval, withdrawal,
reviewer removal, flag resolution, relinking and close/reopen, and revokes RPC
EXECUTE from public/anon/authenticated. 0004 makes the publication
request itself one transaction, adds the AI spend ledger (ai_spend_ledger and
the fp_*_ai_spend functions; costs and token counts only, never content) and
returns the ids server-owned analytics events need. Both are idempotent, so
re-running is safe. Until they are applied those operations fail loudly naming
the file, and the integration suites that use them report BLOCKED instead of
passing. Verify with select fp_schema_version(); — it returns 4.node --env-file=.env.local scripts/setup-storage.mjs.node --env-file=.env.local scripts/create-invitations.mjs --users 2.npm run dev first; it drives the real
API): node --env-file=.env.local scripts/seed.mjs. It creates four fictional
product records, three published concerns and one draft. To replace the seeded
examples add --reset: it removes only the rows
and Storage objects owned by the seed's own two invitations before
re-seeding, and never touches any other invitation..env.local present
they run against the demo project and clean up after themselves. Set the
test-only SUPABASE_PUBLISHABLE_KEY (the project's sb_publishable_... key,
never read by the application) to run the direct-client denial suite; without
it that suite is skipped, not passed.
Teardown (dry-run by default): node --env-file=.env.local scripts/teardown.mjs.T1 replaces the lib/server/ stubs with real demo-Supabase implementations and
adds the data API under app/api/** (session/limiter, reports, evidence + guarded
media, drafts, external history, publication/moderation, feed, flags, analytics
proxy). T2/T3 build the UI against these frozen contracts; T4 wires live AI and
Mixpanel ingestion.
claude-sonnet-5 (override with
AI_MODEL), effort: low, structured JSON outputs, SDK @anthropic-ai/sdk 0.124.0.
Set AI_PROVIDER=anthropic and AI_PROVIDER_API_KEY (server-only) to enable
POST /api/reports/:id/ai/extract and /ai/draft; leave them blank and the app runs
with the manual / deterministic-template path only, which is always available.lib/server/ai/limits.ts): ≤ 3 label photos per
call, ≤ 3 MB each (jpeg/png/webp), 30 s timeout, 1024 / 1500 output tokens,
USD 0.06 per call, USD 0.50 per invitation, USD 2.00 for the whole pilot, 6 calls
per minute per invitation. Spend is reserved in ai_spend_ledger before every
provider call and settled on real usage (select fp_ai_spend_totals(); shows the
running total). AI output is advisory: extraction returns suggestions the reporter
applies and confirms; drafting returns an editable suggestion saved separately. Any
failure shows “AI assistance unavailable—continue manually.”MIXPANEL_TOKEN, regional MIXPANEL_API_HOST) after explicit
consent; withdrawal clears the identifiers. Mutation-success events are emitted by
the server after commit with stable $insert_ids. Set ANALYTICS_AUDIENCE=qa
locally so QA traffic is separable from invited testers. Verify a journey with
node --env-file=.env.local scripts/analytics-journey.mjs (dev server running) and
compare in Mixpanel Live View.FoodProof prepares and organizes concerns. Official complaints are filed through government channels; brand messages are sent by the user. Community publication does not file a complaint or certify safety.