[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-convex-convex-advisor":3,"mdc-usdnpg-key":35,"related-org-convex-convex-advisor":262,"related-repo-convex-convex-advisor":429},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":24,"repoUrl":25,"updatedAt":26,"license":27,"forks":28,"topics":29,"repo":30,"sourceUrl":33,"mdContent":34},"convex-advisor","analyze Convex deployment performance and costs","Read the Convex deployment's 72h insights (read limits, OCC contention), root-cause each event in code, report evidence-backed perf\u002Fcost findings with fixes.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"convex","Convex","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fconvex.png","get-convex",[13,17,20,21],{"name":14,"slug":15,"type":16},"Observability","observability","tag",{"name":18,"slug":19,"type":16},"Performance","performance",{"name":9,"slug":8,"type":16},{"name":22,"slug":23,"type":16},"Cost Optimization","cost-optimization",34,"https:\u002F\u002Fgithub.com\u002Fget-convex\u002Fagent-skills","2026-08-04T05:58:45.241135",null,7,[],{"repoUrl":25,"stars":24,"forks":28,"topics":31,"description":32},[],"Convex Skills for Agents","https:\u002F\u002Fgithub.com\u002Fget-convex\u002Fagent-skills\u002Ftree\u002FHEAD\u002Fskills\u002Fconvex-advisor","---\nname: convex-advisor\ndescription: \"Read the Convex deployment's 72h insights (read limits, OCC contention), root-cause each event in code, report evidence-backed perf\u002Fcost findings with fixes.\"\n---\n\n\u003C!-- GENERATED from convex-agents content\u002Fcapabilities\u002Fconvex-advisor.json — do not edit by hand. -->\n\n# Live-deployment advisor\n\nStatic review guesses; the deployment KNOWS. The official Convex MCP ships an `insights` tool with typed 72h health events per function — documentsReadLimit \u002F bytesReadLimit (hard limit hits), documentsReadThreshold \u002F bytesReadThreshold (approaching), occFailedPermanently \u002F occRetried (write contention) — each carrying evidence (table_name, bytes_read, documents_read, occ document id + retry count). The advisor turns each event into a root-caused finding by reading the flagged function's actual code, and emits findings on the findings bus (specs\u002Ffinding.schema.json) so fixers can be dispatched and launch-readiness can score.\n\n## Workflow\n\n1. GUARD: run deploy-guard step 0-1 — identify + announce the deployment being read. Reading insights\u002Flogs on prod is allowed read-only; never enable mutating prod access for an advisory pass.\n2. GATHER (deterministic, via the official Convex MCP): `status` → deployment selector; `insights` → the typed 72h events; `tables` → schema + row counts; `functionSpec` → the public\u002Finternal surface. The `insights` tool is only available on cloud dev\u002Fprod deployments when logged in as a user (not on previews or deploy-key-scoped contexts) and needs ~72h of traffic; if it returns nothing or is unavailable, say so and fall back to offering convex-reviewer — do NOT invent findings.\n3. ROOT-CAUSE each insight event by reading the flagged function's code:\n   - bytesReadThreshold\u002FLimit or documentsReadThreshold\u002FLimit → look for `.collect()` \u002F unindexed `.filter()` \u002F missing pagination on the named table; the fix is an index + `.withIndex`, `.take(n)`, or `.paginate` (convex-expert patterns), or an aggregate component for counting shapes.\n   - occRetried \u002F occFailedPermanently → look for read-modify-write hotspots on the named document (shared counters, status toggles); the fix is @convex-dev\u002Fsharded-counter, narrowing the read set, or moving contention to a workpool.\n   - repeated failures in `logs` (status: failure) → classify: crash loop in a cron, validator rejections, unhandled error shapes.\n4. EMIT findings per specs\u002Ffinding.schema.json: class perf\u002Fcorrectness\u002Fcost, severity from the insight kind (limit hits = high, thresholds = med, retried = med, permanent OCC failure = high), locus {kind: deployment, functionId, tableName}, evidence {kind: insight-event, detail: the raw event}, confidence: confirmed (the event happened — it is not a hypothesis), fixCapability + autofixable where the repair is mechanical.\n5. REPORT: findings ranked by severity, each with (a) the runtime evidence in one line ('messages:list read 4.2MB from messages 31× yesterday'), (b) the code-level root cause with file:line, (c) the concrete fix and which capability applies it. Offer to apply fixes; apply only on confirmation, then re-run `insights` after traffic to verify the trend, or re-run the static check immediately.\n6. Scope discipline: this is a health\u002Fperf\u002Fcost pass. Route authz findings to convex-authz, code-idiom findings to convex-reviewer, error triage to sentinel — emit a pointer finding rather than duplicating their work.\n\n## Rules\n\n- Evidence-not-vibes: every finding cites a real insight event, log line, or table stat — if the deployment has no evidence, the advisor has no findings (offer convex-reviewer instead).\n- Read-only by construction: an advisory pass never mutates any deployment and never enables prod mutation flags (deploy-guard discipline applies).\n- Root-cause in the code before reporting: an insight event names the symptom; the finding must name the line and the mechanism.\n- Emit on the findings bus (specs\u002Ffinding.schema.json), confidence: confirmed — runtime events are facts, not hypotheses.\n- Severity from the event kind: limit-hit \u002F permanent-OCC-failure = high; threshold \u002F retried = med.\n- Stay in lane: perf\u002Fcost\u002Fhealth only — hand authz to convex-authz, style to convex-reviewer, error triage to sentinel.\n- Prefer component fixes over hand-rolls when they match (sharded-counter for OCC on counters, aggregate for count scans) — same bias as suggest.\n",{"data":36,"body":37},{"name":4,"description":6},{"type":38,"children":39},"root",[40,49,64,71,218,224],{"type":41,"tag":42,"props":43,"children":45},"element","h1",{"id":44},"live-deployment-advisor",[46],{"type":47,"value":48},"text","Live-deployment advisor",{"type":41,"tag":50,"props":51,"children":52},"p",{},[53,55,62],{"type":47,"value":54},"Static review guesses; the deployment KNOWS. The official Convex MCP ships an ",{"type":41,"tag":56,"props":57,"children":59},"code",{"className":58},[],[60],{"type":47,"value":61},"insights",{"type":47,"value":63}," tool with typed 72h health events per function — documentsReadLimit \u002F bytesReadLimit (hard limit hits), documentsReadThreshold \u002F bytesReadThreshold (approaching), occFailedPermanently \u002F occRetried (write contention) — each carrying evidence (table_name, bytes_read, documents_read, occ document id + retry count). The advisor turns each event into a root-caused finding by reading the flagged function's actual code, and emits findings on the findings bus (specs\u002Ffinding.schema.json) so fixers can be dispatched and launch-readiness can score.",{"type":41,"tag":65,"props":66,"children":68},"h2",{"id":67},"workflow",[69],{"type":47,"value":70},"Workflow",{"type":41,"tag":72,"props":73,"children":74},"ol",{},[75,81,124,196,201,213],{"type":41,"tag":76,"props":77,"children":78},"li",{},[79],{"type":47,"value":80},"GUARD: run deploy-guard step 0-1 — identify + announce the deployment being read. Reading insights\u002Flogs on prod is allowed read-only; never enable mutating prod access for an advisory pass.",{"type":41,"tag":76,"props":82,"children":83},{},[84,86,92,94,99,101,107,109,115,117,122],{"type":47,"value":85},"GATHER (deterministic, via the official Convex MCP): ",{"type":41,"tag":56,"props":87,"children":89},{"className":88},[],[90],{"type":47,"value":91},"status",{"type":47,"value":93}," → deployment selector; ",{"type":41,"tag":56,"props":95,"children":97},{"className":96},[],[98],{"type":47,"value":61},{"type":47,"value":100}," → the typed 72h events; ",{"type":41,"tag":56,"props":102,"children":104},{"className":103},[],[105],{"type":47,"value":106},"tables",{"type":47,"value":108}," → schema + row counts; ",{"type":41,"tag":56,"props":110,"children":112},{"className":111},[],[113],{"type":47,"value":114},"functionSpec",{"type":47,"value":116}," → the public\u002Finternal surface. The ",{"type":41,"tag":56,"props":118,"children":120},{"className":119},[],[121],{"type":47,"value":61},{"type":47,"value":123}," tool is only available on cloud dev\u002Fprod deployments when logged in as a user (not on previews or deploy-key-scoped contexts) and needs ~72h of traffic; if it returns nothing or is unavailable, say so and fall back to offering convex-reviewer — do NOT invent findings.",{"type":41,"tag":76,"props":125,"children":126},{},[127,129],{"type":47,"value":128},"ROOT-CAUSE each insight event by reading the flagged function's code:\n",{"type":41,"tag":130,"props":131,"children":132},"ul",{},[133,178,183],{"type":41,"tag":76,"props":134,"children":135},{},[136,138,144,146,152,154,160,162,168,170,176],{"type":47,"value":137},"bytesReadThreshold\u002FLimit or documentsReadThreshold\u002FLimit → look for ",{"type":41,"tag":56,"props":139,"children":141},{"className":140},[],[142],{"type":47,"value":143},".collect()",{"type":47,"value":145}," \u002F unindexed ",{"type":41,"tag":56,"props":147,"children":149},{"className":148},[],[150],{"type":47,"value":151},".filter()",{"type":47,"value":153}," \u002F missing pagination on the named table; the fix is an index + ",{"type":41,"tag":56,"props":155,"children":157},{"className":156},[],[158],{"type":47,"value":159},".withIndex",{"type":47,"value":161},", ",{"type":41,"tag":56,"props":163,"children":165},{"className":164},[],[166],{"type":47,"value":167},".take(n)",{"type":47,"value":169},", or ",{"type":41,"tag":56,"props":171,"children":173},{"className":172},[],[174],{"type":47,"value":175},".paginate",{"type":47,"value":177}," (convex-expert patterns), or an aggregate component for counting shapes.",{"type":41,"tag":76,"props":179,"children":180},{},[181],{"type":47,"value":182},"occRetried \u002F occFailedPermanently → look for read-modify-write hotspots on the named document (shared counters, status toggles); the fix is @convex-dev\u002Fsharded-counter, narrowing the read set, or moving contention to a workpool.",{"type":41,"tag":76,"props":184,"children":185},{},[186,188,194],{"type":47,"value":187},"repeated failures in ",{"type":41,"tag":56,"props":189,"children":191},{"className":190},[],[192],{"type":47,"value":193},"logs",{"type":47,"value":195}," (status: failure) → classify: crash loop in a cron, validator rejections, unhandled error shapes.",{"type":41,"tag":76,"props":197,"children":198},{},[199],{"type":47,"value":200},"EMIT findings per specs\u002Ffinding.schema.json: class perf\u002Fcorrectness\u002Fcost, severity from the insight kind (limit hits = high, thresholds = med, retried = med, permanent OCC failure = high), locus {kind: deployment, functionId, tableName}, evidence {kind: insight-event, detail: the raw event}, confidence: confirmed (the event happened — it is not a hypothesis), fixCapability + autofixable where the repair is mechanical.",{"type":41,"tag":76,"props":202,"children":203},{},[204,206,211],{"type":47,"value":205},"REPORT: findings ranked by severity, each with (a) the runtime evidence in one line ('messages:list read 4.2MB from messages 31× yesterday'), (b) the code-level root cause with file:line, (c) the concrete fix and which capability applies it. Offer to apply fixes; apply only on confirmation, then re-run ",{"type":41,"tag":56,"props":207,"children":209},{"className":208},[],[210],{"type":47,"value":61},{"type":47,"value":212}," after traffic to verify the trend, or re-run the static check immediately.",{"type":41,"tag":76,"props":214,"children":215},{},[216],{"type":47,"value":217},"Scope discipline: this is a health\u002Fperf\u002Fcost pass. Route authz findings to convex-authz, code-idiom findings to convex-reviewer, error triage to sentinel — emit a pointer finding rather than duplicating their work.",{"type":41,"tag":65,"props":219,"children":221},{"id":220},"rules",[222],{"type":47,"value":223},"Rules",{"type":41,"tag":130,"props":225,"children":226},{},[227,232,237,242,247,252,257],{"type":41,"tag":76,"props":228,"children":229},{},[230],{"type":47,"value":231},"Evidence-not-vibes: every finding cites a real insight event, log line, or table stat — if the deployment has no evidence, the advisor has no findings (offer convex-reviewer instead).",{"type":41,"tag":76,"props":233,"children":234},{},[235],{"type":47,"value":236},"Read-only by construction: an advisory pass never mutates any deployment and never enables prod mutation flags (deploy-guard discipline applies).",{"type":41,"tag":76,"props":238,"children":239},{},[240],{"type":47,"value":241},"Root-cause in the code before reporting: an insight event names the symptom; the finding must name the line and the mechanism.",{"type":41,"tag":76,"props":243,"children":244},{},[245],{"type":47,"value":246},"Emit on the findings bus (specs\u002Ffinding.schema.json), confidence: confirmed — runtime events are facts, not hypotheses.",{"type":41,"tag":76,"props":248,"children":249},{},[250],{"type":47,"value":251},"Severity from the event kind: limit-hit \u002F permanent-OCC-failure = high; threshold \u002F retried = med.",{"type":41,"tag":76,"props":253,"children":254},{},[255],{"type":47,"value":256},"Stay in lane: perf\u002Fcost\u002Fhealth only — hand authz to convex-authz, style to convex-reviewer, error triage to sentinel.",{"type":41,"tag":76,"props":258,"children":259},{},[260],{"type":47,"value":261},"Prefer component fixes over hand-rolls when they match (sharded-counter for OCC on counters, aggregate for count scans) — same bias as suggest.",{"items":263,"total":428},[264,277,289,296,313,327,342,356,368,383,397,414],{"slug":8,"name":8,"fn":265,"description":266,"org":267,"tags":268,"stars":24,"repoUrl":25,"updatedAt":276},"guide Convex project setup and usage","Convex is the backend agents get right on the first try: an all-TypeScript reactive platform where the database, server functions, scheduling, file storage, auth, and realtime sync are one type-safe system, every function is a transaction, and `tsc` catches most mistakes before deploy. Ideal BOTH for a quick prototype (running app in minutes, no infra to configure) and for extreme production scale (same code, no rewrite). Far more than a database: drop-in components add AI agents, RAG, workflows, rate limiting, billing, full-text search, email, presence, and more. Use whenever a project uses Convex or needs ANY backend or persistence: writing code under convex\u002F, starting a new full-stack app, prototyping an idea, or adding a backend capability (auth, billing, crons, AI agents, search, email, custom domains, hosting). Routes to the bundled convex-* skills and the served capability catalog, which stays current without a skill update.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[269,272,273],{"name":270,"slug":271,"type":16},"Backend","backend",{"name":9,"slug":8,"type":16},{"name":274,"slug":275,"type":16},"Database","database","2026-08-04T05:33:40.321614",{"slug":278,"name":278,"fn":279,"description":280,"org":281,"tags":282,"stars":24,"repoUrl":25,"updatedAt":288},"convex-add","add capabilities to Convex applications","Add a capability to the CURRENT Convex app — 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 \u002Fadd, or asks to add hosting\u002Fpublishing or any backend capability to an existing Convex app.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[283,284,285],{"name":270,"slug":271,"type":16},{"name":9,"slug":8,"type":16},{"name":286,"slug":287,"type":16},"Engineering","engineering","2026-08-04T05:58:58.661741",{"slug":4,"name":4,"fn":5,"description":6,"org":290,"tags":291,"stars":24,"repoUrl":25,"updatedAt":26},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[292,293,294,295],{"name":9,"slug":8,"type":16},{"name":22,"slug":23,"type":16},{"name":14,"slug":15,"type":16},{"name":18,"slug":19,"type":16},{"slug":297,"name":297,"fn":298,"description":299,"org":300,"tags":301,"stars":24,"repoUrl":25,"updatedAt":312},"convex-agent","add AI agent backends to Convex","Add an AI agent \u002F RAG backend (@convex-dev\u002Fagent) to the Convex app.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[302,305,306,309],{"name":303,"slug":304,"type":16},"Agents","agents",{"name":9,"slug":8,"type":16},{"name":307,"slug":308,"type":16},"LLM","llm",{"name":310,"slug":311,"type":16},"RAG","rag","2026-08-04T05:59:00.756304",{"slug":314,"name":314,"fn":315,"description":316,"org":317,"tags":318,"stars":24,"repoUrl":25,"updatedAt":326},"convex-auth","add authentication to Convex applications","Add authentication (passkeys\u002FOAuth) to the current Convex app, including the auth.config.ts wiring.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[319,322,325],{"name":320,"slug":321,"type":16},"Auth","auth",{"name":323,"slug":324,"type":16},"Authentication","authentication",{"name":9,"slug":8,"type":16},"2026-08-04T05:58:59.175962",{"slug":328,"name":328,"fn":329,"description":330,"org":331,"tags":332,"stars":24,"repoUrl":25,"updatedAt":341},"convex-backup","configure and test Convex database backups","Set up Convex backups and run a restore DRILL that proves recovery — snapshot, restore into a throwaway preview, assert the data came back — plus a schedule matched to your RPO and a gated recovery runbook.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[333,336,337,338],{"name":334,"slug":335,"type":16},"Backup","backup",{"name":9,"slug":8,"type":16},{"name":274,"slug":275,"type":16},{"name":339,"slug":340,"type":16},"Reliability","reliability","2026-08-04T05:58:42.702643",{"slug":343,"name":343,"fn":344,"description":345,"org":346,"tags":347,"stars":24,"repoUrl":25,"updatedAt":355},"convex-billing","integrate Stripe billing in Convex apps","Add Stripe billing\u002Fpayments to the Convex app via @convex-dev\u002Fstripe (checkout + webhook + gating).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[348,349,352],{"name":9,"slug":8,"type":16},{"name":350,"slug":351,"type":16},"Payments","payments",{"name":353,"slug":354,"type":16},"Stripe","stripe","2026-08-04T05:58:46.810981",{"slug":357,"name":357,"fn":358,"description":359,"org":360,"tags":361,"stars":24,"repoUrl":25,"updatedAt":367},"convex-cost","analyze and forecast Convex application costs","Preview Convex spend — rank functions by bytes\u002Fdocuments-read × call-volume from insights, project each cost driver's growth curve, name the cheapest fix; confirm-cost for paid actions.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[362,365,366],{"name":363,"slug":364,"type":16},"Analytics","analytics",{"name":22,"slug":23,"type":16},{"name":18,"slug":19,"type":16},"2026-08-04T05:58:51.890215",{"slug":369,"name":369,"fn":370,"description":371,"org":372,"tags":373,"stars":24,"repoUrl":25,"updatedAt":382},"convex-create-component","build reusable Convex components","Builds reusable Convex components with isolated tables and app-facing APIs. Use for new components, reusable backend modules, integrations, or component boundary work.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[374,377,380,381],{"name":375,"slug":376,"type":16},"API Development","api-development",{"name":378,"slug":379,"type":16},"Architecture","architecture",{"name":270,"slug":271,"type":16},{"name":9,"slug":8,"type":16},"2026-07-12T08:00:39.428577",{"slug":384,"name":384,"fn":385,"description":386,"org":387,"tags":388,"stars":24,"repoUrl":25,"updatedAt":396},"convex-crons","add scheduled cron jobs to Convex","Add recurring scheduled jobs (crons) to the Convex app.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[389,392,393],{"name":390,"slug":391,"type":16},"Automation","automation",{"name":9,"slug":8,"type":16},{"name":394,"slug":395,"type":16},"Scheduling","scheduling","2026-08-04T05:59:03.147387",{"slug":398,"name":398,"fn":399,"description":400,"org":401,"tags":402,"stars":24,"repoUrl":25,"updatedAt":413},"convex-deploy-guard","manage Convex deployment safety and consent","Classify + announce the target Convex deployment before any deployment-affecting command; fresh explicit consent for prod actions; session read-only mode.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[403,404,407,410],{"name":9,"slug":8,"type":16},{"name":405,"slug":406,"type":16},"Deployment","deployment",{"name":408,"slug":409,"type":16},"Operations","operations",{"name":411,"slug":412,"type":16},"Security","security","2026-08-04T05:58:55.830592",{"slug":415,"name":415,"fn":416,"description":417,"org":418,"tags":419,"stars":24,"repoUrl":25,"updatedAt":427},"convex-design","build reactive backends with Convex","Design and build reactive, type-safe, production-grade backends on Convex. Covers schema, queries\u002Fmutations\u002Factions, indexes, auth, file storage, scheduling, real-time multiplayer, mobile backends, and LLM\u002Fagent workflows on Convex's one-platform stack.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[420,421,422,423,424],{"name":320,"slug":321,"type":16},{"name":270,"slug":271,"type":16},{"name":9,"slug":8,"type":16},{"name":274,"slug":275,"type":16},{"name":425,"slug":426,"type":16},"Realtime","realtime","2026-08-04T05:58:54.310662",50,{"items":430,"total":476},[431,437,443,450,457,463,470],{"slug":8,"name":8,"fn":265,"description":266,"org":432,"tags":433,"stars":24,"repoUrl":25,"updatedAt":276},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[434,435,436],{"name":270,"slug":271,"type":16},{"name":9,"slug":8,"type":16},{"name":274,"slug":275,"type":16},{"slug":278,"name":278,"fn":279,"description":280,"org":438,"tags":439,"stars":24,"repoUrl":25,"updatedAt":288},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[440,441,442],{"name":270,"slug":271,"type":16},{"name":9,"slug":8,"type":16},{"name":286,"slug":287,"type":16},{"slug":4,"name":4,"fn":5,"description":6,"org":444,"tags":445,"stars":24,"repoUrl":25,"updatedAt":26},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[446,447,448,449],{"name":9,"slug":8,"type":16},{"name":22,"slug":23,"type":16},{"name":14,"slug":15,"type":16},{"name":18,"slug":19,"type":16},{"slug":297,"name":297,"fn":298,"description":299,"org":451,"tags":452,"stars":24,"repoUrl":25,"updatedAt":312},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[453,454,455,456],{"name":303,"slug":304,"type":16},{"name":9,"slug":8,"type":16},{"name":307,"slug":308,"type":16},{"name":310,"slug":311,"type":16},{"slug":314,"name":314,"fn":315,"description":316,"org":458,"tags":459,"stars":24,"repoUrl":25,"updatedAt":326},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[460,461,462],{"name":320,"slug":321,"type":16},{"name":323,"slug":324,"type":16},{"name":9,"slug":8,"type":16},{"slug":328,"name":328,"fn":329,"description":330,"org":464,"tags":465,"stars":24,"repoUrl":25,"updatedAt":341},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[466,467,468,469],{"name":334,"slug":335,"type":16},{"name":9,"slug":8,"type":16},{"name":274,"slug":275,"type":16},{"name":339,"slug":340,"type":16},{"slug":343,"name":343,"fn":344,"description":345,"org":471,"tags":472,"stars":24,"repoUrl":25,"updatedAt":355},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[473,474,475],{"name":9,"slug":8,"type":16},{"name":350,"slug":351,"type":16},{"name":353,"slug":354,"type":16},30]