원클릭으로
concave-parity
Skill: concave-parity
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Skill: concave-parity
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Open a concise GitHub follow-up for reusable browser-use limitations. Use when browser automation is blocked by a likely tool-side issue that is worth fixing separately, especially for clicks, dropdowns, file inputs, focus traps, or other repeatable agent/browser failures.
Work heavyweight framework or library tasks with planning-first research, selective deep analysis, and rigorous handoff
Work a task end-to-end with lean context gathering, implementation, and verification
Sync `zbeyens/convex-better-auth` with upstream, then sync kitcn against upstream `convex-better-auth` changes. Use when asked to run `sync-convex-auth`, compare the fork with upstream, fast-forward or PR the fork update when safe, audit commits the fork was behind on, classify relevance to kitcn auth integration, and delegate one implementation PR through `task`.
Audit newer Convex npm releases against kitcn. Use when checking whether a newer `convex` version unlocks kitcn improvements, compatibility work, CLI/agent workflows, or cleanup of local Convex hacks. Reads `https://ship.convex.dev/`, the upstream Convex changelog, and GitHub diffs before delegating an implementation PR through `task`.
Read every doc in www and packages/kitcn/skills/kitcn, sync to active changeset(s), and track with checkmarks.
| name | concave-parity |
| description | Skill: concave-parity |
| metadata | {"skiller":{"source":".agents/rules/concave-parity.mdc"}} |
When the user asks for Concave parity, treat Convex behavior as the source of truth for kitcn runtime contracts.
Do not hand-wave with "compatible enough."
Do not normalize a parity shift into "just how Concave works" if kitcn already has a shim for it. Name the shift, point at the shim, and state the delete condition.
If upstream Concave reaches parity, delete the bandaid. Do not keep fallback sludge around for nostalgia.
3211 proxyConvex local dev shape in this repo:
127.0.0.1:3210127.0.0.1:3211localhost:3005 in prepared scenariosConcave alpha.14 fixed the backend default to 3210, but it still does not
expose the site side on 3211.
kitcn workaround:
3211CONVEX_SITE_URL=http://127.0.0.1:3211SITE_URL from .env.localCode locations:
packages/kitcn/src/cli/commands/dev.ts
resolveConcaveLocalDevContract(...)resolveConcaveLocalSiteUrl(...)startLocalSiteProxy(...)packages/kitcn/src/cli/commands/dev.test.tstooling/scenarios.ts
DEFAULT_SCENARIO_READY_URLreadScenarioSiteUrl(...)tooling/scaffold-utils.ts
3005Why it exists:
Delete when:
Convex dev startup usually accepts kitcn migration/backfill hooks cleanly on first call.
Concave alpha.14 fixed concave run for internal runtime functions, but
startup can still race readiness.
kitcn workaround:
1s, 2s, 4sCode locations:
packages/kitcn/src/cli/commands/dev.ts
runDevStartupRetryLoop(...)migration up and aggregateBackfill kickoff callerspackages/kitcn/src/cli/commands/dev.test.tsdocs/solutions/integration-issues/concave-internal-runtime-calls-20260322.mddocs/solutions/integration-issues/concave-local-dev-auth-cycle-20260319.mdWhy it exists:
concave run calls can still hit ECONNREFUSED before local dev
is readyDelete when:
Prepared Vite scenarios in this repo are supposed to prove:
3005Concave alpha.14 still auto-detects and starts Vite itself, which steals
frontend ownership and lands on 5173.
kitcn workaround:
--frontend noCode locations:
tooling/scenarios.ts
buildBackendOnlyDevCommand(...)resolveScenarioDevCommands(...)tooling/scenarios.test.tsdocs/solutions/integration-issues/scenario-vite-dev-split-and-react18-runtime-20260322.mdWhy it exists:
Delete when:
Convex-generated _generated/api.js exposes internal refs for generated auth
runtime calls.
Concave alpha.14 still leaves prepared auth apps with:
export const internal = {};
That breaks generated auth runtime access like authFunctions.findOne even
though the actual function paths are known.
kitcn workaround:
createGeneratedFunctionReference(...) instead of trusting Concave's
empty internal objectCode locations:
packages/kitcn/src/auth/generated-contract.tspackages/kitcn/src/auth/generated-contract.test.tsdocs/solutions/integration-issues/concave-alpha14-generated-auth-and-run-output-20260323.mdWhy it exists:
Delete when:
_generated/api.js includes generated auth internal refs,
andrun output JSON fallback parsingConvex-style machine output is clean JSON when kitcn shells out to a
backend run command and expects structured results.
Concave alpha.14 now prints a human preamble before the JSON body, for example:
Running ...Args: ...URL: ...Successkitcn workaround:
Code locations:
packages/kitcn/src/cli/backend-core.ts
parseBackendRunJson(...)packages/kitcn/src/cli/commands/migrate.test.tsdocs/solutions/integration-issues/concave-alpha14-generated-auth-and-run-output-20260323.mdWhy it exists:
concave run human-friendlier but less machine-clean for the
startup migration and aggregate flows kitcn shells out toDelete when:
concave run exposes clean JSON output by default or under a stable flag we
can rely on, andparseBackendRunJson(...) no longer needs the trailing-block fallbackConvex has an env CLI seam, so kitcn env push can fetch and sync static
JWKS.
Concave still has no equivalent upstream env command surface. That means auth runtime parity exists, but env-management parity does not.
kitcn workaround:
kitcn auth jwkskitcn auth jwks --rotateJWKS=... payload instead of inventing fake env passthroughCode locations:
packages/kitcn/src/cli/commands/auth.tspackages/kitcn/src/cli/commands/auth.test.tspackages/kitcn/src/cli/cli.tspackages/kitcn/src/cli/cli.commands.tsWhy it exists:
JWKS path on backend concavekitcn env is correctly Convex-only todayDelete when:
/api/executeRemoved in alpha.14 verification.
Old workaround:
concave run for generated/server:*POST /api/execute_system:systemExecuteFunctionWhy it died:
concave run now succeeds for generated/server:migrationRun and
generated/server:aggregateBackfill3210 dev port on ConcaveRemoved in alpha.14 verification.
Old workaround:
--port 3210 to concave dev when kitcn owned local
dev bootWhy it died:
concave dev now defaults to 3210Removed in alpha.14 verification.
Old workaround:
_generated/api.d.ts with a source-backed versionWhy it died:
concave codegen --static now emits the same api.d.ts shape our
override used to forcestaticDataModel mismatchCurrent repo truth:
fixtures/next/convex.json sets codegen.staticDataModel: true_generated/dataModel.d.ts is still dynamicCurrent location:
.claude/skills/concave/concave.mdcMeaning:
Start with the active bandaid seams:
packages/kitcn/src/cli/commands/dev.tstooling/scenarios.tsThen read the solution notes:
docs/solutions/integration-issues/concave-local-dev-auth-cycle-20260319.mddocs/solutions/integration-issues/concave-internal-runtime-calls-20260322.mddocs/solutions/integration-issues/concave-alpha14-generated-auth-and-run-output-20260323.mddocs/solutions/integration-issues/scenario-vite-dev-split-and-react18-runtime-20260322.mdWhen touching any active Concave parity bandaid, run the smallest real gate that proves the seam:
bun test packages/kitcn/src/cli/commands/dev.test.ts \
packages/kitcn/src/cli/commands/migrate.test.ts \
packages/kitcn/src/auth/generated-contract.test.ts \
tooling/scenarios.test.ts
bun run test:concave
bun run scenario:test -- next-auth
bun run scenario:test -- vite