Tips & Tricks (अपडेट: 3/6/2026)

Claude Code उत्पादन घटना गाइड: पहचान, रोलबैक, RCA और रोकथाम

Claude Code उत्पादन घटनाओं की गाइड: गुप्त कुंजी, गलत मिटाना, डेटाबेस, लागत, रोलबैक, RCA और रोकथाम।

Claude Code उत्पादन घटना गाइड: पहचान, रोलबैक, RCA और रोकथाम

Claude Code फाइलें पढ़ सकता है, कोड बदल सकता है और शेल कमांड चला सकता है। इसलिए उत्पादन रिपॉजिटरी में काम तेज होता है, लेकिन जोखिम भी तेज हो जाता है। जल्दबाजी में दी गई अनुमति से गुप्त कुंजी का रिसाव, फाइल मिटना, main पर गलत लिखाई, गलत डेटाबेस migration या API लागत बढ़ सकती है।

यह लेख किसी एक कंपनी की वास्तविक निजी घटना का दावा नहीं करता। ये ClaudeCodeLab के अभ्यास, रिपॉजिटरी समीक्षा और सामग्री संचालन से बने मिश्रित उदाहरण हैं। समय और रकम उदाहरण हैं, लेकिन पैटर्न इतने वास्तविक हैं कि इन्हें उत्पादन से पहले अभ्यास करना चाहिए।

घटना का मतलब है ऐसा प्रसंग जो उपयोगकर्ता, डेटा, सुरक्षा, लागत या उपलब्धता को प्रभावित करे। रोकथाम यानी नुकसान बढ़ने से रोकना। RCA यानी root cause analysis, सरल भाषा में मूल कारण विश्लेषण। रोलबैक यानी अंतिम सुरक्षित संस्करण पर लौटना।

सटीक syntax के लिए आधिकारिक Claude Code settings और hooks guide देखें। यहां क्रम है: पहचान, रोकथाम, निदान, रोलबैक, सूचना, घटना-समीक्षा और पुनरावृत्ति रोकना।

घटना प्रतिक्रिया क्रम

चरणलक्ष्यClaude Code से क्या करवाएं
पहचानक्या बदला और किस पर असर पड़ाalerts, logs, diff, deploy और हाल की commands का सार
रोकथामनुकसान रोकनाkey revoke, job pause, feature flag OFF, endpoint disable की योजना
निदानसीधा कारण सीमित करनाअंतिम सुरक्षित deploy और विफल बदलाव की तुलना
रोलबैकसुरक्षित स्थिति में लौटनालक्ष्य संस्करण, डेटा जोखिम और जांच commands
सूचनाटीम को साफ जानकारी देनास्थिति, प्रभाव, अगली सूचना का समय और जिम्मेदार व्यक्ति
घटना-समीक्षाघटना से सीख निकालनाRCA, समयरेखा, छूटी हुई पहचान और कार्यसूची
बचावदोहराव कठिन बनानाpermissions, hooks, CI, alerts और समीक्षा gate

गुप्त कुंजियां, बिलिंग, निजी डेटा और डेटाबेस writes में नियम है: पहले रोकें, फिर जांचें।

सात ठोस घटना पैटर्न

पैटर्नक्या होता हैपहला कदमआम गलती
गुप्त कुंजी रिसाव.env, logs या screenshot में API key दिखती हैkey revoke, rotate, logs checkgit साफ किया, CI logs भूल गए
खतरनाक मिटानाrm -rf जरूरी files हटाता हैकाम रोकें, backup देखें, untracked files list करेंgit checkout . untracked files नहीं लौटाता
force pushmain टीम commits पर लिखता हैpush रोकें, reflog देखें, recovery branch बनाएं--force-with-lease और --force मिलाना
डेटाबेस migrationdrop, mass update या lock से outagewrites pause, state save, restore planबिना जांचा SQL उत्पादन में चलाना
API retry loopfailed calls लागत बढ़ाते रहते हैंprocess kill, queue pause, limit check”retry” अनंत loop बन जाता है
dependency टूटनाdeploy 503 देता हैprevious deploy activate, lockfile checknpm update major upgrade कर देता है
authentication गायबadmin endpoint public हो जाता हैendpoint disable, access logs review”admin” लिखना authentication requirement नहीं है

तीन घटना उपयोग मामले

API key रिसाव का पता GitHub secret scanning, cloud alert या billing screen से लग सकता है। पहला काम key revoke है। फिर public repo, PR, CI logs, chat और monitoring देखें।

git status --short
git diff --cached --name-only
git log --all -- .env .env.local
git grep -n "sk-" -- ':!node_modules' ':!dist'

डेटाबेस migration failure में पहले writes रोकें। Code rollback जल्दी हो सकता है, लेकिन मिटे हुए डेटा के लिए backup, WAL, audit logs या external resync चाहिए।

psql "$DATABASE_URL" -c "select now();"
psql "$DATABASE_URL" -c "\d users"
pg_dump "$DATABASE_URL" --schema-only > schema_before_repair.sql

API retries के लिए कठोर सीमा रखें। नीचे वाली file incident-budget-runner.mjs नाम से save करके batch jobs के साथ चलाएं।

#!/usr/bin/env node
import { spawn } from "node:child_process";

const command = process.argv.slice(2);
const maxAttempts = Number(process.env.MAX_ATTEMPTS || 3);
const maxCostCents = Number(process.env.MAX_COST_CENTS || 200);
const costPerAttempt = Number(process.env.COST_PER_ATTEMPT_CENTS || 0);

if (command.length === 0) {
  console.error("उपयोग: node incident-budget-runner.mjs <command> [...args]");
  process.exit(2);
}

let estimatedCost = 0;

for (let attempt = 1; attempt <= maxAttempts; attempt += 1) {
  const child = spawn(command[0], command.slice(1), {
    stdio: "inherit",
    shell: process.platform === "win32"
  });
  const exitCode = await new Promise((resolve) => {
    child.on("exit", (code) => resolve(code ?? 1));
  });
  estimatedCost += costPerAttempt;
  if (exitCode === 0) process.exit(0);
  if (estimatedCost >= maxCostCents) {
    console.error(`रोक दिया: अनुमानित लागत ${estimatedCost} सेंट`);
    process.exit(1);
  }
  const delayMs = Math.min(1000 * 2 ** (attempt - 1), 10_000);
  await new Promise((resolve) => setTimeout(resolve, delayMs));
}

console.error(`${maxAttempts} प्रयासों के बाद विफल`);
process.exit(1);

Claude Code सुरक्षा सीमाएं

{
  "$schema": "https://json.schemastore.org/claude-code-settings.json",
  "permissions": {
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./secrets/**)",
      "Bash(git push --force *main*)",
      "Bash(git push -f *main*)",
      "Bash(rm -rf /*)",
      "Bash(rm -rf ~*)"
    ],
    "ask": [
      "Bash(git push*)",
      "Bash(rm*)",
      "Bash(npm install*)",
      "Bash(*migrate*)",
      "Bash(*deploy*)"
    ]
  },
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/protect-danger.sh"
          }
        ]
      }
    ]
  }
}
#!/usr/bin/env bash
set -euo pipefail

payload="$(cat)"
command="$(node -e 'const fs = require("fs"); const raw = fs.readFileSync(0, "utf8") || "{}"; const json = JSON.parse(raw); console.log(json.tool_input?.command || "");' <<< "$payload")"
blocked='(rm[[:space:]]+-rf[[:space:]]+(/|~)|git[[:space:]]+push[[:space:]].*(-f|--force)([[:space:]]|$)|DROP[[:space:]]+TABLE|TRUNCATE[[:space:]])'

if [[ "$command" =~ $blocked ]]; then
  echo "खतरनाक command block किया गया: $command" >&2
  exit 2
fi

exit 0

सूचना और घटना-समीक्षा templates

## Incident update
- Status: investigating / contained / recovery validation
- Impact: feature, users, start time
- Current action: job stopped, deploy reverted, logs checking
- Next update: YYYY-MM-DD HH:mm
- Owner:
# Postmortem: [title]

## Summary
- Started:
- Detected:
- Resolved:
- Impact:
- Severity: P0/P1/P2/P3

## Timeline
| Time | Event |
| --- | --- |
| HH:mm | |

## Cause
- Direct cause:
- Root cause:
- Why detection was late:

## Prevention
| Action | Owner | Due date |
| --- | --- | --- |
| | | |

घटना-समीक्षा संस्कृति के लिए Google SRE की Postmortem Culture उपयोगी reference है।

संबंधित लेख और अगला कदम

Claude Code सुरक्षा श्रेष्ठ अभ्यास, permissions guide, API लागत गाइड और verification receipt workflow साथ में पढ़ें।

अकेले शुरू कर रहे हैं तो मुफ्त cheatsheet से खतरनाक commands और जांच की आदत तय करें। दोबारा इस्तेमाल होने वाले templates के लिए ClaudeCodeLab products देखें। टीम rollout में CLAUDE.md, permissions, hooks, review और घटना अभ्यास चाहिए तो Claude Code training और consultation उपयोगी है।

ClaudeCodeLab अभ्यासों में सबसे बड़ा सुधार तब मिला जब निदान से पहले रोकथाम लिखी गई। Publish से पहले JSON, Bash और Node syntax validate करने से छोटे errors घटे। 20 मिनट की rehearsal में missing alerts, untested backups और बहुत broad Claude Code permissions जल्दी दिख जाती हैं।

#claude-code #incident #production #sre #security #postmortem
मुफ़्त

मुफ़्त PDF: Claude Code cheatsheet

Email डालें और commands, review habits तथा safe workflow वाली एक-page PDF पाएँ.

हम आपका data सुरक्षित रखते हैं और spam नहीं भेजते.

Masa

लेखक के बारे में

Masa

Claude Code workflow और team adoption पर काम करने वाला engineer.