Skills

Dry Run A Risky Change

Billing, plans, seats, permissions, access rules, auth, flag removals or data...

Install

npx skills add different-ai/openwork --skill dry-run-a-risky-change -g -a claude-code -y
Repository
different-ai/openwork24.4k
Category
Design
Updated
3d ago
License
See repository
Context cost
Mediumabout 1,768 tokens
Runs scripts
No, instructions only

What it does

Billing, plans, seats, permissions, access rules, auth, flag removals or data migrations that could lock real organizations out or change what they pay. Use before merging or deploying such a change to see exactly which production organizations it affects, prove the UI on production-shaped data, and only with explicit approval test against a PlanetScale copy of real data.

Dry-run a risky change

Tests prove the rule you wrote. They do not tell you which real organizations the rule changes. Before a risky change ships, answer three questions in order and stop at the first level that answers them:

  1. Who changes? Every production organization whose outcome differs before vs after (blocked, unblocked, billed differently, loses access).
  2. Does it look right to them? The real screens on organizations shaped like the affected ones.
  3. Does it behave right on real data? Only when 1 and 2 cannot answer it.

Confidentiality (AGENTS.md, hard rule): production names, ids, emails and counts stay in chat. Never put them in a branch, commit, fixture, screenshot, PR or issue. Describe affected organizations generically ("one grandfathered org with ~30 SSO users").

Level 1: read-only production dry run (always)

Run the new rule against production inputs without writing anything.

  1. Write the new rule's inputs as the smallest set of columns (plan metadata, member counts, subscription status, feature overrides). Express the rule either as SQL or by feeding query results into the PR's pure function.
  2. Read them with the platform admin MCP den_query (read-only SQL against the Den database). Never use admin write tools (den_update_org_plan, den_set_org_capability, den_set_feature_rollout) during a dry run.
  3. Compute before (current dev rule) and after (the PR) for every organization the rule can touch, and report only the ones that differ, plus anyone at or near a new limit.
  4. Put the query (no results) in the PR as the pre-deploy check, and list the ops steps it implies (for example "give one org enough seats first").

den_query traps that produced wrong answers before:

Read the whole SKILL.md on GitHub

More in Design