بنقرة واحدة
concave
Skill: concave
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Skill: concave
التثبيت باستخدام 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 |
| description | Skill: concave |
| metadata | {"skiller":{"source":".agents/rules/concave.mdc"}} |
Use this skill for Concave-specific behavior and Concave-vs-Convex differences in this repo.
Use concave-parity when the task is specifically about parity gaps, local
workarounds, or removing Concave-specific bandaids after upstream catches up.
Keep the boundary hard:
backend: "concave" and --backend concave/example stays on Convexconvex-test suites stay on Convex toolingDo not restate generic Convex docs here. The convex skill already owns that.
These are the Concave-only facts worth keeping in your head.
--experimental-sqlite.ctx.storage.concave build can compile a standalone Bun-based binary; useful, but still single-instance with SQLite.concave dev auto-picks runtime; --bun, --node, and --cf force it.3210../.concave/local.0.0.0.0 by default. That is LAN-visible. 127.0.0.1 is the safer local-only bind./_dashboard.concave.config.ts is real Concave surface area.convex.json works now. That matters here because kitcn already uses it.createConcave(...).defineConcaveRuntime(...) wiring.convex-test is still valid for isolated function/unit tests.createConcave(...) plus ConvexHttpClient.We use Concave in two concrete ways.
kitcn now resolves backend in this order:
--backend <convex|concave>meta["kitcn"].backend in concave.jsonconvexPublic meaning:
convex => drive Convex CLIconcave => drive Concave CLIInternal meaning:
concave currently maps to the Bun adapter (concave-bun)Files:
packages/kitcn/src/cli/config.tspackages/kitcn/src/cli/core.tspackages/kitcn/src/cli/cli.tsCommand shape:
init, dev, codegen, deploy, migrate, aggregate, reset) run on the selected backendkitcn env sync stays a kitcn helperkitcn env ... passthrough is Convex-only because Concave has no matching upstream env commandUse:
bun run test:concave
Files:
test/concave/run-smoke.tstest/concave/fixture/**Runtime shape:
createConcave(...)SqliteDocStore(':memory:')ConvexHttpClientGoal:
Keep it small. This is a smoke lane, not a migration plan.
tooling/fixtures.ts runs local committed starter sync with
kitcn init -t <next|vite> --backend concave.
That means:
fixtures/*/convex/functions/_generated/* comes from the create
flow running kitcn codegen against Concave-backed bootstrapconcave codegen --statictooling/fixtures.ts itself must not shell out to raw kitcn codegen_generated/* drift is expectedConcave-generated _generated/* output is not guaranteed to match Convex-generated output byte-for-byte.
Read the diff before calling it a bug.
staticDataModel mismatch is still realCurrent repo finding:
fixtures/next/convex.json sets codegen.staticDataModel: truefixtures/next/convex/functions/_generated/dataModel.d.ts is still dynamicSo today, in this repo path, Concave is not honoring that flag.
api.d.ts override is goneCurrent repo truth:
api.d.ts shape our old source-backed override used
to force_generated/api.d.tsMeaning:
api.d.ts drifts again, treat it as a fresh upstream regressionbun, not bun test, for the smoke laneRoot bun test preloads Happy DOM here.
That poisoned ConvexHttpClient behavior for the Concave smoke lane.
Keep the smoke entry as:
bun ./test/concave/run-smoke.ts
Do not invent a second fake runtime layer on top of backend.
The right model is:
backendconcave -> current Bun adapterStart with repo wiring:
packages/kitcn/src/cli/backend-core.tspackages/kitcn/src/cli/commands/init.tspackages/kitcn/src/cli/commands/init.test.tstooling/fixtures.tstooling/fixtures.test.tstooling/scenarios.tstooling/scenarios.test.tstest/concave/run-smoke.tstest/concave/fixture/**.github/workflows/ci.ymlThen read Concave docs starting from:
https://docs.concave.dev/llms.txt--runtime concave/example to Concaveconvex-test suites just because Concave existsWhen touching Concave repo-runtime wiring, run:
bun test packages/kitcn/src/cli/commands/init.test.ts ./tooling/fixtures.test.ts ./tooling/scenarios.test.ts
bun test packages/kitcn/src/cli/cli.test.ts
bun run test:concave
bun run fixtures:check
bun run scenario:check
If package code changed too, also run:
bun --cwd packages/kitcn build
bun lint:fix
bun typecheck
When Concave docs or repo usage changes, update this skill with this exact loop.
rg -n "backend|concave-bun|test:concave|createConcave|@concavejs|Concave|--backend" \
package.json \
packages/kitcn/src/cli/backend-core.ts \
packages/kitcn/src/cli/config.ts \
packages/kitcn/src/cli/cli.ts \
packages/kitcn/src/cli/commands/init.ts \
packages/kitcn/src/cli/commands/init.test.ts \
tooling/fixtures.ts \
tooling/fixtures.test.ts \
tooling/scenarios.ts \
tooling/scenarios.test.ts \
test/concave \
.github/workflows/ci.yml \
-g '!**/_generated/**'
mkdir -p /tmp/concave-docs-fetch
curl -fsSL -A 'Mozilla/5.0' https://docs.concave.dev/llms.txt \
| tee /tmp/concave-docs-fetch/llms.txt
llms.txtawk '
match($0, /(https:\\/\\/docs\\.concave\\.dev[^) ]+)/, m) { print m[1] }
' /tmp/concave-docs-fetch/llms.txt \
| nl -ba \
| while read -r n url; do
curl -fsSL -A 'Mozilla/5.0' "$url" >"/tmp/concave-docs-fetch/${n}.md"
done
Rules:
bunx skiller@latest apply
bun run intent:validate
bun run intent:stale
If .claude/AGENTS.md changes, that is expected. It is generated from .claude/**.