references/spec.md | The product spec: problem, goals, architecture, the 17 v1 components, streaming contract, toggle, requirements with acceptance criteria, Phase 4 guards, metrics, phases, risks, open questions |
references/plan.md | Master implementation plan: architecture, global constraints, review focus, spec deltas D1–D12, file map, interface contracts, order of work, delivery |
references/plan-1-sdk.md | @kortix/sdk/genui + /genui/react + default components (9 tasks; code verified before writing) |
references/plan-2-eval.md | Phase 0 evaluation of 4 models on 46 synthetic cases, go/no-go gate (2 tasks) |
references/plan-3-runtime.md | genui flag, GENUI_ENABLED kill switch, prompt on OpenCode and pi, channel guards (5 tasks) |
references/plan-4-web.md | Web and desktop renderer, components, charts, map, settings, copy/export, telemetry, verification (8 tasks) |
references/plan-5-mobile.md | Mobile renderer, components, charts, map, settings, copy, device check, OTA (7 tasks) |
references/eval-results.md | Phase 0 results: one summary table per eval run, appended by scripts/eval.ts |
references/mobile-device-check.md | On-device checklist for mobile (Jay runs it), the OTA publish procedure, the old-build check |
scripts/eval.ts | Phase 0 runner: every case against each model through the LLM gateway; writes output/genui-eval/ and appends eval-results.md. GENUI_EVAL_CASES runs a subset; GENUI_EVAL_EFFORT sends reasoning_effort. A Codex model needs a project gateway key (POST /v1/projects/{projectId}/gateway/keys) as GENUI_EVAL_TOKEN: a PAT has no project, so the gateway answers provider_not_connected |
scripts/eval-prompts.json | The 60 synthetic eval cases: prompt, optional tool result (context), expected UI use (expect), forbidden components (forbid), richness bar (rich) |
scripts/score.ts, scripts/score.test.ts | Scores one reply (valid blocks, overuse, underuse, forbidden components, images, foreign images, interleaving, prose share, thin) and applies the go/no-go gate |