convex-deploy-guard

작성자: get-convex

배포에 영향을 주는 모든 명령어 전에 대상 Convex 배포를 분류하고 알립니다. 프로덕션 작업에는 새로운 명시적 동의가 필요하며, 세션 읽기 전용 모드를 지원합니다.

npx skills add https://github.com/get-convex/agent-skills --skill convex-deploy-guard

Deployment target guard

Deployments are not interchangeable, and most incidents start with a command aimed at the wrong one. Every Convex project has several (personal dev, preview, prod — often across multiple projects on one machine). This guard is the standing discipline: identify, announce, then act — and treat prod as consent-gated, per action, per session.

Workflow

  1. IDENTIFY before you act: read CONVEX_DEPLOYMENT in .env.local, convex.json, and whether CONVEX_DEPLOY_KEY is set; or call the official Convex MCP status tool. Classify the target: local-anonymous | dev | preview | prod. If two sources disagree, resolve before proceeding.
  2. ANNOUNCE in one line before any deployment-affecting command: target: dev (joyful-capybara-123, personal dev). Never run the command in the same breath as discovering the target — announce first.
  3. PROD needs a FRESH explicit yes: before npx convex deploy (when it resolves to prod), npx convex run --prod, env set on prod, snapshot import/export on prod, or starting the MCP with prod access — state exactly what will change on which deployment and get an explicit yes in THIS session. A yes given earlier, or for a different target, does not carry.
  4. MCP safety defaults: start the official MCP scoped non-prod (--deployment dev). The two prod flags are DIFFERENT risk levels — keep them split: a read-only prod audit (advisor/insights reading data/logs/insights) passes ONLY --cautiously-allow-production-pii (read tools); --dangerously-enable-production-deployments (which enables MUTATING prod tools) stays OFF unless the user explicitly asked to CHANGE prod this session. Never pair them by default — 'look at prod' must not silently grant 'mutate prod'.
  5. READ-ONLY session mode: when the user says 'read-only' / 'don't change anything', honor it absolutely for the rest of the session — no deploy, no env set/remove, no mutations via run, no imports; start the MCP with --disable-tools run,envSet,envRemove.
  6. Wrong-deployment diagnosis: when a deploy 'didn't change anything', do NOT re-deploy harder. Re-run step 1 — the deploy almost certainly landed on a different deployment than the one being observed.
  7. Ambiguity = stop: if you cannot determine which deployment a command will hit, find out (status tool; compare npx convex env list fingerprints) — never guess.

Rules

  • Classify and announce the target BEFORE every deployment-affecting command — identification and action are two separate steps.
  • Prod consent is per-action, per-target, per-session: state what changes where, get a fresh explicit yes.
  • Keep the two prod MCP flags split by risk: --cautiously-allow-production-pii (read-only) for an audit; --dangerously-enable-production-deployments (mutating) only when the user explicitly asks to change prod. Both are user-spoken-only; default every MCP start to a non-prod deployment selector.
  • Read-only mode, once requested, is absolute for the session — including 'harmless' mutations.
  • A deploy that seemed to do nothing means the WRONG deployment changed — diagnose the target, don't re-run.
  • This guard composes: ship, env, migrate, and seed run it as their step 0; it is not itself a deploy tool.

get-convex의 다른 스킬

convex-performance-audit
get-convex
Convex 성능을 읽기, 구독, 쓰기 경합 및 함수 제한 측면에서 감사합니다. 느린 기능, 인사이트 발견, OCC 충돌 또는 읽기 증폭에 사용하세요.
developmentdatabasedata-analysis
convex
get-convex
일반적인 Convex 요청을 올바른 프로젝트 스킬로 라우팅합니다. 사용자가 어떤 Convex 스킬을 사용할지 묻거나 불완전하게 지정된 Convex 앱 작업을 제공할 때 사용하세요.
developmentdatabase
convex-setup-auth
get-convex
Convex 인증, 신원 매핑 및 접근 제어를 설정합니다. Convex 앱에서 로그인, 인증 제공자, 사용자 테이블, 보호된 함수 또는 역할에 사용하세요.
developmentdatabaseapi
convex-quickstart
get-convex
앱에 Convex를 생성하거나 추가합니다. 새 Convex 프로젝트, npm create convex@latest, 프론트엔드 설정, 환경 변수, 또는 첫 npx convex dev 실행에 사용합니다.
developmentdatabase
convex-migration-helper
get-convex
Convex 스키마 및 데이터 마이그레이션을 widen-migrate-narrow와 @convex-dev/migrations로 계획합니다. 스키마 변경, 백필, 테이블 재구성 또는 무중단 롤아웃에 사용하세요.
developmentdatabase
convex-create-component
get-convex
재사용 가능한 Convex 컴포넌트를 구축하며, 격리된 테이블과 앱 지향 API를 제공합니다. 새 컴포넌트, 재사용 가능한 백엔드 모듈, 통합 또는 컴포넌트 경계 작업에 사용하세요.
developmentdatabase
convex-migrate
get-convex
배포된 Convex 앱에서 @convex-dev/migrations를 사용하여 스키마를 마이그레이션하고 데이터를 백필합니다.
developmentdatabase
convex-optimize
get-convex
기존 Convex 앱을 감사하고 최적화합니다: 보안, 확장, 업그레이드, 관찰 가능성.