JobKindConfig fase 6 (workers): /settings/job-kinds admin-UI #55
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "claude/job-kind-config-phase6"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
JobKindConfig — fase 6 (workers):
/settings/job-kindsadmin-UIDe laatste fase van het JobKindConfig-spoor. Voegt een admin-pagina toe waarop per
ClaudeJobKind(alle 9) deJobKindConfig-rij bekeken en bewerkt wordt: model per runtime, thinking_budget (+ effort-helper), permissie/sandbox per runtime, max_turns, allowed_tools, skills, allow_all_tools. De server-action doet een upsert per kind met zod-validatie tegen de Fase-1-registries.Alleen UI + action — geen resolutie-logica. Schrijven gebeurt live in
JobKindConfig; omdat Fase 3 (mcp) op claim-time DB-leading resolvet, raakt elke wijziging onmiddellijk de volgende geclaimde job (ook reeds-gequeuede).Wijzigingen
lib/settings/job-kind-config.ts—jobKindConfigInputSchema(zod) + drift-guarded spiegel-constanten (CLAUDE_MODELS/PERMISSION_MODESviaas const satisfies),CODEX_MODELS(UI-curated),KIND_ORDER/KIND_LABELS,JobKindConfigRow. Tools/skills worden hard tegenisKnownTool/isKnownSkillgevalideerd (security-grens);codex_modelis bewust vrije string (geen grens, modelnamen evolueren).actions/job-kind-config.ts—upsertJobKindConfigAction:requireWorkersAdmin→safeParse→prisma.jobKindConfig.upsert({ where:{kind} })→revalidatePath. Discriminated{ok:true} | {ok:false,error}.components/settings/job-kind-config-editor.tsx—'use client'editor met een kaart per kind,useTransition, per-veld runtime-notitie (welke flag/runtime het veld raakt), live effort-preview, checkbox-fieldsets voor tools/skills (bestaande multi-select-conventie).allow_all_toolsdisable't de tool-picker visueel; de action blijft de bron van waarheid.app/(app)/settings/job-kinds/page.tsx+loading.tsx— server-page (guard +force-dynamic+ prisma-fetch van alle 9 rijen) + skeleton.components/shared/nav-bar.tsx— nav-linkJob-kindsná/mcp-testeringevoegd (bestaande/worker-logsbewust behouden).Verify
npm run verifygroen: lint + typecheck + 613 tests passed | 2 skipped (97 files). Twee nieuwe testbestanden:__tests__/lib/job-kind-config-schema.test.ts(14) +__tests__/actions/job-kind-config.test.ts(7), TDD (RED→GREEN).Adversariële review
Multi-dimensie-review (contract/security/spec/conventie/edge) + per-finding adversariële verificatie: 0 blocker/major. Twee nits geadresseerd in
e9a4bc2(budget-preview spiegelt nu de server-validatie; tool-picker gebruikt een native<fieldset disabled>i.p.v. een inertearia-disabled-div). Twee findings terecht afgewezen als bewuste, spec-gedocumenteerde keuzes (codex_model vrije string; allow_all_tools negeert de lijst downstream).Voorwaarden / niet hierin
7c85a6c(Fase 1 +.js-fix) — komt mee via main; geen aparte bump-commit nodig.prisma generate). Dejob_kind_config-tabel + seed landen via scrum4me-web (Fase 2 + 5a, gemerged). Tot de seed gedraaid is (npm run seedop deploy) toont de pagina lege/code-default-rijen — de upsert maakt een rij aan zodra een kind wordt opgeslagen.Hiermee is het JobKindConfig-spoor compleet (fasen 1-6).
🤖 Generated with Claude Code