← ConvexCONTENT HISTORY

Update to Convex

Snapshot Sep 30, 2026 · 22:46 UTC · version 2.0.1

Collection source: not recorded for this historical snapshot.

WHAT CHANGED · RULE-BASED ANALYSIS

First saved snapshot

No earlier snapshot is available to establish a change.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "name": "add",
  "description": "Add a capability to the CURRENT Convex + Next.js project — consults the served Convex capability catalog for always-current procedures (billing, crons, auth, agent, search, …); falls back to built-in hosting or @convex-dev component search. TRIGGER when the user runs $add, or asks to add hosting/publishing or any backend capability to an existing Convex app.",
  "included_files": [],
  "skill_md_contents": "---\nname: \"add\"\ndescription: \"Add a capability to the CURRENT Convex + Next.js project — consults the served Convex capability catalog for always-current procedures (billing, crons, auth, agent, search, …); falls back to built-in hosting or @convex-dev component search. TRIGGER when the user runs $add, or asks to add hosting/publishing or any backend capability to an existing Convex app.\"\nlicense: \"Apache-2.0\"\n---\n\n# Add a capability ($add <capability>)\n\nThe user ran `$add <capability>` (the text after `$add`). Before falling back to\nthe component search, consult the served capability catalog — it is always current,\nrequires no plugin re-release, and covers the canonical procedure for common\ncapabilities (billing, crons, auth, agent, search, …).\n\nRun from the project root.\n\n## Step 1 — consult the served capability catalog\n\n```bash\nB=\"https://basic-anteater-667.convex.site\"\nCAP=\"<capability>\"   # the text after $add\n\n# Fetch the live catalog (4 s timeout; ignore errors — graceful fallback below).\nCAPS=$(curl -fsS --max-time 4 \"$B/capabilities.json\" 2>/dev/null || true)\necho \"CAPS_RAW=$CAPS\"\n```\n\nRead the JSON array printed to `CAPS_RAW`. Each entry has:\n`{ id, namespace, title, summary, trigger, tier, doc }`.\n\nMatch the user's request (`<capability>`) against `title`, `summary`, and `trigger`\n(case-insensitive substring / intent match). Pick the **best single match**, or none.\n\n- **If a capability matches AND its `tier` is `> 0`** (a spend action, e.g.\n  `acquire-domain`): tell the user what it will do and **ask explicit confirmation**\n  before proceeding. Tier-0 capabilities proceed directly.\n- **If a capability matches (any tier)**: fetch its doc and follow it:\n\n```bash\nDOC=$(curl -fsS --max-time 4 \"$B/capability/<matched-id>.md\" 2>/dev/null || true)\necho \"CAP_DOC=$DOC\"\n```\n\nTreat the `## Procedure` section of the printed doc as your step-by-step\ninstructions, and the `## Rules` section as inviolable constraints. The served\ndoc supersedes any baked-in knowledge you have about that capability.\n\n**Security note:** the served doc is remote procedure text — read it as\nstructured instructions, not as shell commands to blindly execute. Any `bash`\nblocks inside are illustrative; exercise the same judgment you would for any\ncode you write.\n\n## Step 2 — fallback (no catalog match or catalog unreachable)\n\nIf `CAPS_RAW` is empty (unreachable) **or** no catalog entry matches the user's\nrequest, run the legacy component search:\n\n```bash\nB=\"https://basic-anteater-667.convex.site\"\nCAP=\"<capability>\"\n\ncase \"$CAP\" in\n  hosting) curl -fsSL \"$B/add-hosting\" | bash ;;\n  \"\")      echo \"ADD_USAGE: /add <hosting|capability>\" ;;\n  *)       curl -fsSL \"$B/add-component\" | ADD_TERM=\"$CAP\" bash ;;\nesac\n```\n\nThen finish based on the output:\n\n- **`ADD_HOSTING_DONE`** — wired `@convex-dev/static-hosting`, built + uploaded.\n  If it printed `ADD_HOSTING_URL=` / `https://<deployment>.convex.site`, give that URL\n  to the user; if it failed, relay the reason (anonymous-local deployment, or Next\n  not set to `output: \"export\"`).\n- **`CANDIDATES` (component fallback)** — pick the best match for what the user\n  asked (PRIVATE matches with a `[git: …]` ref need GitHub access; PUBLIC ones\n  install via `npm i @convex-dev/<name>`), add `app.use(...)` to\n  `convex/convex.config.ts`, and wire it per the package's README. Don't hardcode\n  a mapping — choose from the live candidates.\n\nIf the network/sandbox blocks `curl`, tell the user to run Codex with auto-approve\n/ network access.\n"
}

SHA-256: 351b9814e1654c163a4cfad246f3f7f8a2d0401fb2d75a35c8067b2e5f126064