1 पॉइंट द्वारा GN⁺ 3 시간 전 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Claude Code 2.1.87 में कई undocumented settings हैं, और personal तथा project-विशिष्ट .claude/ फ़ाइलों के ज़रिए Hooks, Skills, Agents को अलग-अलग लागू किया जा सकता है
  • Hook केवल stdin JSON और exit code तक सीमित नहीं है; यह stdout के event-विशिष्ट JSON fields के ज़रिए command modification, permission decision, context injection, और file watching तक कर सकता है
  • दस्तावेज़ों में न दिए गए Hook fields once, async, asyncRewake के ज़रिए one-time execution, background audit logs, और asynchronous security blocking flow बनाए जा सकते हैं
  • Skills और Agents में hidden frontmatter के माध्यम से model, effort, scoped Hook, Agent delegation, persistent memory, CLAUDE.md omission, और MCP dependency को नियंत्रित किया जा सकता है
  • Auto Mode, automatic memory, Dream, Magic Docs, permission glob, और context: fork Claude Code को learning-oriented development environment के काफ़ी करीब ले आते हैं

आधार संस्करण और फ़ाइल लोकेशन

  • यह सामग्री @anthropic-ai/claude-code@2.1.87 पर आधारित है, और undocumented features अलग-अलग releases के बीच बदल सकते हैं
  • जिन fields के नाम में EXPERIMENTAL शामिल है, उन्हें Anthropic engineers ने unstable के रूप में चिह्नित किया है; इन्हें हटाया जा सकता है या इनका नाम बदला जा सकता है
  • settings फ़ाइल लोकेशन
    • personal settings: ~/.claude/settings.json
    • project settings: .claude/settings.json
  • Skills लोकेशन
    • personal: ~/.claude/skills/<name>/SKILL.md
    • project: .claude/skills/<name>/SKILL.md
  • Agents लोकेशन
    • personal: ~/.claude/agents/<name>.md
    • project: .claude/agents/<name>.md
  • Hook scripts को ~/.claude/hooks/ में रखना एक उपयुक्त convention है, और उन्हें चलाने के लिए chmod +x आवश्यक है
  • project-level .claude/ फ़ाइलों को Git में commit करके team के साथ share किया जा सकता है, जबकि ~/.claude/ के अंतर्गत personal फ़ाइलें केवल उसी user पर लागू होती हैं

Hook stdout JSON के ज़रिए Claude Code के व्यवहार को बदल सकता है

  • आधिकारिक दस्तावेज़ केवल यह बताते हैं कि Hook stdin से JSON लेता है और exit code 2 के साथ operation को block करता है, लेकिन वास्तव में यह stdout के event-विशिष्ट JSON fields के ज़रिए Claude Code के व्यवहार को real time में बदल सकता है
  • PreToolUse में लौटाए जा सकने वाले fields

    • updatedInput: tool execution से पहले input को फिर से लिखकर command बदला जा सकता है
    • permissionDecision: user से पूछे बिना allow या deny को force किया जा सकता है
    • permissionDecisionReason: decision का कारण UI में दिखाया जा सकता है
    • additionalContext: conversation context में text inject किया जा सकता है
  • SessionStart में लौटाए जा सकने वाले fields

    • watchPaths: automatic file watching सेट करके FileChanged event trigger किया जा सकता है
    • initialUserMessage: session के पहले user message से पहले content जोड़ा जा सकता है
    • additionalContext: पूरे session के दौरान बना रहने वाला context inject किया जा सकता है
  • PostToolUse में लौटाए जा सकने वाले fields

    • updatedMCPToolOutput: Claude को दिखने वाले MCP tool response को modify किया जा सकता है
    • additionalContext: tool execution के बाद context inject किया जा सकता है
  • PermissionRequest में लौटाए जा सकने वाले fields

    • decision: updatedInput या updatedPermissions के साथ programmatically allow या deny किया जा सकता है
  • git push को अपने-आप --dry-run में बदलने वाला Hook

    • PreToolUse Hook Bash command की जाँच करता है, और अगर उसमें git push शामिल हो तो updatedInput के माध्यम से command के अंत में --dry-run जोड़ा जा सकता है
    • Claude को लगता है कि वह git push origin main चला रहा है, लेकिन Hook वास्तविक execution से पहले उसे git push origin main --dry-run में बदल देता है
{
  "hooks": {
    "PreToolUse": [{
      "matcher": "Bash",
      "hooks": [{
        "type": "command",
        "command": "~/.claude/hooks/dry-run-pushes.sh"
      }]
    }]
  }
}
#!/bin/bash
INPUT=$(jq -r '.tool_input.command' < /dev/stdin)
if echo "$INPUT" | grep -q 'git push'; then
  jq -n --arg cmd "$INPUT --dry-run" '{"updatedInput": {"command": $cmd}}'
fi
  • session शुरू होते समय file watching और Git context inject करने वाला Hook

    • SessionStart Hook package.json, .env, tsconfig.json को watch target के रूप में सेट कर सकता है, और current branch तथा uncommitted files की संख्या को session context में जोड़ सकता है
{
  "hooks": {
    "SessionStart": [{
      "hooks": [{
        "type": "command",
        "command": "~/.claude/hooks/session-context.sh",
        "statusMessage": "Loading project context..."
      }]
    }]
  }
}
#!/bin/bash
BRANCH=$(git branch --show-current 2>/dev/null)
CHANGES=$(git status --porcelain 2>/dev/null | wc -l | tr -d ' ')

jq -n \
  --arg branch "$BRANCH" \
  --arg changes "$CHANGES" \
  '{
    "watchPaths": ["package.json", ".env", "tsconfig.json"],
    "additionalContext": "Current branch: \($branch). Uncommitted changes: \($changes) files."
  }'
  • read-only Bash commands को अपने-आप approve करने वाला Hook

    • ls, cat, echo, pwd, whoami, date, git status, git log, git diff जैसे commands को permissionDecision: "allow" के साथ user confirmation के बिना pass कराया जा सकता है
{
  "hooks": {
    "PreToolUse": [{
      "matcher": "Bash",
      "hooks": [{
        "type": "command",
        "command": "~/.claude/hooks/auto-approve-readonly.sh"
      }]
    }]
  }
}
#!/bin/bash
CMD=$(jq -r '.tool_input.command' < /dev/stdin)
if echo "$CMD" | grep -qE '^(ls|cat|echo|pwd|whoami|date|git status|git log|git diff)'; then
  echo '{"permissionDecision": "allow", "permissionDecisionReason": "Safe read-only command"}'
fi

दस्तावेज़ों में नहीं बताए गए Hook के 3 सेटिंग फ़ील्ड

  • दस्तावेज़ित Hook फ़ील्ड type, command, matcher, timeout, if, statusMessage हैं, लेकिन source code parser once, async, asyncRewake भी स्वीकार करता है
  • once: true

    • Hook को ठीक एक बार चलाने के बाद अपने-आप हटा देता है, इसलिए यह पहले session setup के लिए उपयुक्त है
    • अगर .env नहीं है, तो .env.example को कॉपी करके उसके बाद दोबारा न चलने वाला flow बनाया जा सकता है
{
  "hooks": {
    "SessionStart": [{
      "hooks": [{
        "type": "command",
        "command": "[ -f .env ] || cp .env.example .env && echo 'Created .env from template'",
        "once": true,
        "statusMessage": "First-time setup..."
      }]
    }]
  }
}
  • async: true

    • Hook को background में चलाता है ताकि Claude की प्रगति रुके नहीं
    • सभी Bash commands को ~/.claude/audit.jsonl में रिकॉर्ड करते हुए session delay जोड़े बिना इस्तेमाल किया जा सकता है
{
  "hooks": {
    "PostToolUse": [{
      "matcher": "Bash",
      "hooks": [{
        "type": "command",
        "command": "jq '{timestamp: now, command: .tool_input.command, session: .session_id}' < /dev/stdin >> ~/.claude/audit.jsonl",
        "async": true
      }]
    }]
  }
}
  • asyncRewake: true

    • सामान्य path में async की तरह background में चलता है, लेकिन अगर exit code 2 के साथ बंद हो तो model को फिर से जगाकर काम को block कर देता है
    • Claude द्वारा लिखी गई हर file में hardcoded password, secret, api_key patterns की जाँच करके, मिलने पर block किया जा सकता है
{
  "hooks": {
    "PostToolUse": [{
      "matcher": "Write|Edit",
      "hooks": [{
        "type": "command",
        "command": "~/.claude/hooks/scan-secrets.sh",
        "asyncRewake": true,
        "statusMessage": "Scanning for secrets..."
      }]
    }]
  }
}
#!/bin/bash
FILE=$(jq -r '.tool_input.file_path // .tool_response.filePath' < /dev/stdin)
if grep -qE '(password|secret|api_key)\s*=' "$FILE" 2>/dev/null; then
  exit 2
fi
exit 0

Skill frontmatter के hidden fields

  • दस्तावेज़ में name, description, allowed-tools, argument-hint, when_to_use, context को कवर किया गया है, लेकिन असली parser अतिरिक्त 6 fields भी स्वीकार करता है
  • model

    • Skill execution model बदला जा सकता है; तेज़ और सस्ते कामों के लिए haiku, और जटिल analysis के लिए opus इस्तेमाल किया जा सकता है
---
name: quick-lint
description: Fast lint check using the cheapest model
model: haiku
effort: low
allowed-tools: Bash, Read
argument-hint: "[file]"
---
Run the project linter on: $ARGUMENTS
Detect the linter from config (eslint, ruff, clippy) and run it. Report only errors, not warnings.
  • effort

    • यह नियंत्रित करता है कि model कितनी गहराई से सोचे; इसके मान low, medium, high, max हैं
    • अंदरूनी तौर पर यह response-स्तर की reasoning depth को नियंत्रित करने वाले effort system से map होता है
  • hooks

    • ऐसे scope-specified Hooks परिभाषित किए जा सकते हैं जो Skill सक्रिय होने पर ही register हों और पूरा होने पर हट जाएँ
    • जैसे हर बार TypeScript file लिखने पर synchronously type check करना और background में lint चलाना
---
name: strict-typescript
description: Write TypeScript with type checking on every save
allowed-tools: Bash, Read, Write, Edit, Grep, Glob
hooks:
  PostToolUse:
    - matcher: "Write|Edit"
      hooks:
        - type: command
          command: "~/.claude/hooks/typecheck-on-save.sh"
          statusMessage: "Type checking..."
        - type: command
          command: "~/.claude/hooks/lint-on-save.sh"
          async: true
---
Write TypeScript with strict enforcement. Every file you touch gets type-checked and linted automatically.
$ARGUMENTS
  • agent

    • Skill execution को custom Agent को delegate किया जा सकता है
---
name: deep-review
description: Thorough security review delegated to the review agent
agent: security-review
---
Review the following: $ARGUMENTS
  • disable-model-invocation: true

    • automatic invocation को रोकता है और केवल explicit /skill-name invocation से चलने देता है, इसलिए यह destructive Skills के लिए उपयुक्त है
  • shell: bash

    • execution के लिए इस्तेमाल होने वाला shell निर्दिष्ट करता है

Agent frontmatter के छिपे हुए फ़ील्ड

  • .claude/agents/ में custom Agent भी ऐसे frontmatter फ़ील्ड सपोर्ट करते हैं जिनका दस्तावेज़ों में उल्लेख नहीं है
  • color

    • UI रंग को red, orange, yellow, green, blue, purple, pink, gray में से किसी एक पर सेट किया जा सकता है
    • कई Agent चल रहे हों तो उन्हें विज़ुअली अलग पहचानने में मदद मिलती है
  • memory

    • Agent को कॉल्स के बीच persistent memory देता है
    • user: सभी प्रोजेक्ट्स में global रूप से बना रहता है
    • project: प्रोजेक्ट-विशेष बना रहता है
    • local: Git से बाहर रखा गया private project-specific memory है
    • security reviewer पिछली findings को ट्रैक कर सकता है, और code reviewer sessions के पार भी user के patterns याद रख सकता है
---
name: codebase-guide
description: Answer questions about the codebase, learning more with each session
tools: [Read, Grep, Glob, Bash]
color: green
memory: project
---
You are a codebase guide with persistent memory. Check your memory first before exploring the code.
  • omitClaudeMd: true

    • CLAUDE.md instruction hierarchy की loading को skip करता है, इसलिए यह ऐसे “fresh eyes” reviewer के लिए उपयुक्त है जो project conventions की बजाय industry standards के आधार पर देखता है
---
name: fresh-eyes
description: Review code without project-specific biases
tools: [Read, Grep, Glob]
omitClaudeMd: true
effort: high
color: blue
---
Review this code purely from first principles. You have no project context. Focus on correctness, security, performance, and readability by industry standards.
  • criticalSystemReminder_EXPERIMENTAL

    • हर turn पर एक छोटा message system reminder के रूप में फिर से inject करता है, और conversation compression के बाद भी context में बना रहता है
    • फ़ील्ड नाम में ही EXPERIMENTAL शामिल है, इसलिए यह अस्थिर है; इसे core infrastructure की बजाय auxiliary safety reminder के रूप में ही इस्तेमाल करना बेहतर है
---
name: prod-deployer
description: Manages production deployments with strict safety checks
tools: [Bash, Read, Grep]
color: red
criticalSystemReminder_EXPERIMENTAL: "Always run migrations with --dry-run first. Never skip the staging verification step."
---
  • requiredMcpServers

    • आवश्यक MCP server name patterns की सूची देता है; अगर वह server मौजूद न हो तो Agent दिखाई ही नहीं देगा
    • इससे dependencies तैयार न होने पर Agent के load होने से बचा जा सकता है

Auto Mode classifier natural language में environment description लेता है

  • settings.json का autoMode फ़ील्ड उस auto-approval classifier को सेट करता है जिसे Anthropic के भीतर “YOLO Classifier” कहा जाता है
  • allow patterns अपने-आप approve हो जाते हैं, और soft_deny patterns हमेशा confirmation मांगते हैं
  • environment array pattern नहीं बल्कि classifier द्वारा पढ़ा जाने वाला natural language context है, जिससे project environment का वर्णन करके ambiguous commands की safety judgement को प्रभावित किया जा सकता है
{
  "autoMode": {
    "allow": [
      "Bash(npm test)",
      "Bash(npm run *)",
      "Bash(git status)",
      "Bash(git diff *)",
      "Bash(git log *)",
      "Read",
      "Grep",
      "Glob"
    ],
    "soft_deny": [
      "Bash(git push *)",
      "Bash(rm *)",
      "Write(.env*)"
    ],
    "environment": [
      "NODE_ENV=development",
      "This is a local dev machine with no production database access",
      "All Docker containers use isolated networks",
      "The test suite is safe to run repeatedly, it uses a dedicated test database"
    ]
  }
}
  • This project uses Docker, all commands run in containers जैसे वाक्य classifier को environment समझाने के लिए इस्तेमाल होते हैं
  • No production access destructive operations के प्रति उसे कम conservative बनाता है, और Test database is isolated यह संकेत देता है कि tests चलाना हमेशा safe है

automatic memory और Dream integration loop

  • settings.json में autoMemoryEnabled और autoDreamEnabled चालू करने पर Claude Code का self-improvement system सक्रिय हो जाता है
{
  "autoMemoryEnabled": true,
  "autoDreamEnabled": true
}
  • autoMemoryEnabled

    • हर conversation के बाद एक background Agent session से ऐसी जानकारी निकालता है जिसे लंबे समय तक रखना उपयोगी हो
    • user preferences, codebase patterns, और decisions को standard memory frontmatter format में ~/.claude/projects/<path>/memory/ में लिखता है
  • autoDreamEnabled

    • हर 24 घंटे में, अगर cumulative sessions 5 या अधिक हों, तो एक background Agent पुराने session transcripts की समीक्षा करके memory को consolidate करता है
    • यह duplicates merge करता है, contradictions resolve करता है, relative dates को absolute dates में बदलता है, और outdated items हटाता है
    • दोनों settings साथ चालू करने पर एक learning loop बनता है जिसमें sessions memory बनाते हैं, Dream memory को consolidate करता है, और consolidated memory बाद की sessions में reflect होती है
    • कुछ हफ्तों बाद, model retraining के बिना भी Claude Code user preferences, conventions, और common patterns को याद रखने जैसा प्रभाव दिखा सकता है

Magic Docs format

  • Magic Docs का पता regex /^#\s*MAGIC\s+DOC:\s*(.+)$/im से लगाया जाता है
  • यह अनिवार्य रूप से H1 title होना चाहिए, और case-insensitive है
  • अगली पंक्ति में _underscores_ या *asterisks* में लिपटा italic instruction हो सकता है, जो update Agent के focus का दायरा सीमित करता है
# MAGIC DOC: API Endpoint Reference
_Only document public REST endpoints. Include method, path, request body, response schema, and auth requirements._

## Endpoints

(content auto-maintained by Claude Code)
  • अगर instruction न हो, तो Agent सभी content को update करने की कोशिश करता है
  • अगर instruction हो, तो वह only track public endpoints या focus on breaking changes जैसे दायरे का पालन करता है
  • update Agent background में चलता है और उसे केवल उसी एक file को edit करने तक सीमित रखा जाता है
  • header हटा देने पर tracking अपने-आप बंद हो जाती है

संपूर्ण अनुमतियाँ नियम सिंटैक्स

  • दस्तावेज़ों में Bash(git *) जैसे बुनियादी उदाहरण हैं, लेकिन वास्तविक pattern language, Bash, file path और MCP tools को काफ़ी व्यापक रूप से कवर करती है
Bash(npm *)              # wildcard after "npm "
Bash(git commit *)       # specific subcommand
Read(*.ts)               # file extension
Read(src/**/*.ts)        # recursive directory with extension
Write(src/**)            # recursive, all files
mcp__slack               # all tools on slack server
mcp__slack__*            # explicit wildcard (same effect)
mcp__slack__post_message # specific tool
Bash(npm:*)              # legacy colon prefix (word boundary)
  • * shell glob की तरह boundary के भीतर match करता है, और ** directory को recursively match करता है
  • MCP tool permissions double underscore फ़ॉर्मैट mcp__<server>__<tool> का इस्तेमाल करती हैं
  • Hook का if field भी यही syntax इस्तेमाल करता है, और यह regex नहीं बल्कि glob है
{
  "permissions": {
    "allow": [
      "Bash(npm *)", "Bash(git status)", "Bash(git diff *)",
      "Read(src/**)", "Read(tests/**)", "Grep", "Glob",
      "mcp__database__query"
    ],
    "deny": [
      "Bash(rm -rf *)", "Write(/etc/**)", "Write(.env*)",
      "mcp__slack__delete_*"
    ],
    "ask": [
      "Bash(git push *)", "Write(*.json)", "Write(*.lock)",
      "mcp__slack__post_message"
    ]
  }
}

context: fork और model selection का cache पर असर

  • Skill में context: fork सेट करने पर यह background forked subagent के रूप में चलता है
  • Fork, CacheSafeParams नाम के typed contract के ज़रिए parent के prompt cache को share करता है, और cache hit rate बढ़ाने के लिए byte-identical API request prefix बनाता है
  • अगर forked Skill के लिए अलग model दिया जाए, तो prefix बदल सकता है और cache टूट सकता है
  • अगर parent conversation Opus हो और fork Haiku हो, तो prefix बदल जाएगा, cache miss होगा और पूरी cost देनी पड़ेगी
  • Forked Skill में cache बनाए रखने के लिए model field छोड़ देनी चाहिए या model: inherit इस्तेमाल करना चाहिए
  • context: fork security scan, dependency analysis, document generation, और test suite execution जैसे heavy tasks के लिए उपयुक्त है, जबकि main conversation responsive बनी रहती है
---
name: full-audit
description: Comprehensive codebase audit running in the background
context: fork
allowed-tools: Bash, Read, Grep, Glob, WebSearch
effort: high
---
Run a comprehensive audit:
- Security scan (grep for dangerous patterns, check dependencies for CVEs)
- Code quality (duplicated logic, dead code, missing error handling)
- Test coverage (untested critical paths)
- Dependency health (outdated packages, unused deps, license issues)

Write a detailed report to /tmp/audit-report.md when complete.

फीचर संयोजन के उदाहरण

  • persistent memory और scope Hook वाला code reviewer

    • Agent codebase-विशिष्ट memory पढ़ता है, पहले मिले patterns और नई समस्याओं को साथ में review करता है, और बाद में नई findings को फिर से memory में save करता है
    • कई reviews के बाद यह project-विशिष्ट दोहराई जाने वाली समस्याएँ पकड़ने में मदद करता है, जिन्हें एक सामान्य reviewer छोड़ सकता है
---
name: reviewer
description: Code reviewer that learns your codebase patterns over time
tools: [Read, Grep, Glob, Bash]
effort: high
color: yellow
memory: project
hooks:
  PostToolUse:
    - matcher: "Bash"
      hooks:
        - type: command
          command: "~/.claude/hooks/log-review.sh"
          async: true
---
Before reviewing, read your memory for past findings on this codebase.

Review git diff HEAD~1 for:
- Patterns you've flagged before (check memory)
- New issues worth flagging
- Resolved issues from past reviews

After review, save to memory:
- New patterns found (type: feedback)
- Recurring issues (type: project)

End with VERDICT: PASS, FAIL, or NEEDS_REVIEW.
  • file monitoring और asyncRewake safety net को मिलाने वाली session setting

    • session शुरू होने पर project context load किया जाता है, read-only Bash commands को तुरंत auto-approve किया जाता है, और खतरनाक commands को asynchronous safety check से block किया जाता है
    • read-only commands तेज़ी से पास हो जाती हैं, खतरनाक commands रुक जाती हैं, और बाकी सामान्य permission flow का पालन करती हैं
{
  "hooks": {
    "SessionStart": [{
      "hooks": [{
        "type": "command",
        "command": "~/.claude/hooks/session-context.sh",
        "statusMessage": "Loading project context..."
      }]
    }],
    "PreToolUse": [{
      "matcher": "Bash",
      "hooks": [{
        "type": "command",
        "command": "~/.claude/hooks/auto-approve-readonly.sh"
      }, {
        "type": "command",
        "command": "~/.claude/hooks/block-dangerous.sh",
        "asyncRewake": true,
        "statusMessage": "Safety check..."
      }]
    }]
  }
}
#!/bin/bash
CMD=$(jq -r '.tool_input.command' < /dev/stdin)
echo "$CMD" | grep -qE '(rm -rf /|sudo rm|chmod 777|> /dev/)' && exit 2 || exit 0
  • model override, effort control, और Agent delegation को मिलाने वाला architecture review

    • effort: max के साथ गहन analysis निर्धारित किया जाता है, किसी खास Agent को delegation दिया जाता है, और उस Agent के omitClaudeMd: true से मौजूदा project conventions का प्रभाव कम किया जाता है
---
name: architecture-review
description: Deep architecture review using max effort, delegated to fresh-eyes agent
agent: fresh-eyes
effort: max
---
Review the architecture of this project. Ignore existing conventions (the agent has omitClaudeMd: true).
Focus on: $ARGUMENTS

Evaluate structural decisions, dependency graph health, separation of concerns, and scalability characteristics.

अर्थ और सीमाएँ

  • event-आधारित response fields वाला Hook system AI tool usage के लिए एक programmable middleware layer की तरह काम करता है
  • persistent Agent memory ऐसा AI expert बनाने देती है जो sessions के पार भी अनुभव संचित कर सके
  • Dream integration system model retraining के बिना session experience से सीखने वाली संरचना प्रदान करता है
  • Auto Mode classifier natural language में दिए गए environment description को लेकर उसे safety judgment में reflect करता है
  • ये features छिपी हुई settings या easter eggs से अधिक, एक persistent, learning, और autonomous AI development environment के लिए foundational features हैं, और अभी npm package में पहले से शामिल हैं

1 टिप्पणियां

 
GN⁺ 3 시간 전
Hacker News की राय
  • Pangram से जाँचने पर यह स्पष्ट रूप से AI द्वारा लिखा गया लेख लगता है
    इतनी ज़्यादा सिफारिशें मिलना हैरान करने वाला है, और समझ नहीं आता कि लोगों ने सच में लेख पढ़ा भी है या नहीं। मुझे पता है कि @dang ने टिप्पणियों के लिए AI-generated content के नियम बनाए हैं, लेकिन लेखों पर अब तक हिचकिचाते रहे हैं। व्यक्तिगत रूप से, मैं चाहूँगा कि लेखों में भी report flag हो ताकि ऐसे low-quality लेखों पर समय बर्बाद न करना पड़े

  • यह सब पहले से documented है [1]। Once भी documented है [2], और asyncasyncRewake भी documented हैं [3]। Skills का frontmatter भी पूरी तरह documented है [4], और Automode environment string भी docs में है [5]
    यह लेख शुद्ध AI-लिखा clickbait है, इसलिए यहाँ इसे इतना अच्छा response मिलना चौंकाने वाला है
    [1] https://code.claude.com/docs/en/hooks#pretooluse-decision-co...
    [2] https://code.claude.com/docs/en/hooks#common-fields
    [3] https://code.claude.com/docs/en/hooks#command-hook-fields
    [4] https://code.claude.com/docs/en/skills#frontmatter-reference
    [5] https://code.claude.com/docs/en/auto-mode-config#define-trus...

  • यह लेख 2 महीने पुराना है, इसलिए कुछ बातें अब पुरानी हो चुकी हैं, और कुछ features अब documented हैं
    उदाहरण के लिए auto mode docs यहाँ हैं: https://code.claude.com/docs/en/auto-mode-config#define-trus...

  • claude package में हर हफ्ते 10 नए versions आ जाते हैं, और हर कुछ महीनों में नए models भी आते हैं, इसलिए उसके आसपास के undocumented hacks पर निर्भर नहीं होना चाहिए
    वे बदल सकते हैं, टूट सकते हैं, और बहुत ज़्यादा detailed settings को बिगाड़ सकते हैं

    • मेरे अनुभव में undocumented hacks documented features जितनी ही बार टूटते हैं
      जैसे 1M Opus जारी करने के बाद “context window अब समस्या नहीं है” कहकर “clear context and execute plan” option हटा दिया गया था
    • हर नए version के साथ low-level user settings को efficiently handle करने वाली automation बनाई जा सकती है
    • बात सही है, लेकिन temporary hacks कभी-कभी cutting-edge workflow को बचा भी सकते हैं या बिगाड़ भी सकते हैं
      मैं हर release पर Claude instructions को फिर से design नहीं करता, लेकिन कुछ releases में यह देखना सही रहता है कि मौजूदा instructions current model पर फिट बैठते हैं या नहीं, और इससे सच में noticeable फर्क पड़ा है
  • Claude Code में features की संख्या दम घोंट देने वाली है। इस रफ़्तार से अगला Pope शायद Anthropic से होगा

    • मज़ाक अलग, Anthropic इतनी चीज़ें निकाल रहा है कि उस पर भरोसा करना मुश्किल हो रहा है
      इस तरीके से यह एक पर्याप्त रूप से सोचा-समझा और stable product बन पाएगा, ऐसा नहीं लगता
  • “Honest status” कहकर यह बता रहा है कि 100% क्यों नहीं है और लंबा रास्ता क्यों ले रहा है, https://github.com/user-attachments/assets/961eff6c-0060-45d...
    मैं बस चाहता हूँ कि Claude Code task पूरा करने की कोशिश छोड़ न दे। यह बहुत irritate करता है। /goal या नया ultracode इस्तेमाल करने पर भी यह बार-बार हार मान लेता है। मेरा project काफ़ी complex है (https://github.com/mohsen1/tsz), लेकिन Codex बिना ऐसे रुके लगातार आगे बढ़ता रहता है

    • अब मैं /loop का इस्तेमाल करके उसे आगे बढ़ते रहने के लिए motivational prompt डालता हूँ
      Goal भी इस्तेमाल किया जा सकता है, लेकिन कुछ tasks में साधारण loop बेहतर होता है
    • मैंने भी अभी Claude से task list भरवाई, और list ख़त्म होने से पहले ही उसने पूछा कि आगे जारी रखना है या सिर्फ़ कुछ हिस्से करना काफ़ी है
  • सोच रहा हूँ कि क्या LLM models में कुछ हद तक एक सामान्य AI coding agent application architecture उभर रही है
    यह भी जानना है कि क्या कोई इन architecture styles को समझने के तरीके इकट्ठा करके व्यवस्थित कर रहा है

    • क्या हम अभी भी उसी site की बात कर रहे हैं? आजकल उसके अलावा कुछ और इस्तेमाल भी करता है कोई?
    • Claude Code, Codex, Cursor में patterns मिलते-जुलते दिखते हैं: context collection, planning, execution, verification
      कम standardized हिस्सा यह है कि हर stage के बीच user को कितना control दिया जाए। showClearContextOnPlanAccept या disableAutoMode जैसी settings “agent decides” और “human reviews before execution” के बीच की सीमा को दिखाती हैं, इसलिए यह दिलचस्प है। और वास्तविक usability में coding agents आगे भी सबसे ज़्यादा इसी बिंदु पर अलग दिखेंगे
  • “magic doc” feature को लेकर जिज्ञासा है। समझ नहीं आ रहा कि इसे CLAUDE.md में डालना है या project files में
    यह भी जानना है कि session के दौरान उस file का ज़िक्र करना पड़ता है या Claude project के भीतर “magic doc” header वाली हर चीज़ अपने-आप ढूँढ लेता है

  • क्या Claude से अपनी settings खुद बनवाने को कहा जा सकता है? जैसे, “मान लो तुम मैं हो, और अपने लिए सबसे अच्छी settings files का bundle बनाओ”

    • docs के अनुसार अगर CLAUDE_CODE_NEW_INIT को 1 पर set किया जाए, तो /init interactive setup flow के रूप में चलता है
      इस flow में codebase explore करने और files लिखने से पहले यह पूछा जाता है कि CLAUDE.md, skills, hooks वगैरह में से कौन-सी files बनानी हैं। इस variable के बिना /init बिना पूछे CLAUDE.md auto-generate कर देता है
    • शायद हाँ। लगता है इसमें अपनी ही documentation explore करने के लिए built-in tools हैं, और .claude/ directory में काम करने के लिए एक special mode भी है
      लगता है users से यही करवाने का इरादा है
    • अच्छा होगा अगर best practices वाले boilerplate files के साथ कोई cookie cutter project हो
    • एक slash command भी है जो chat history देखकर permissions जोड़ देता है
    • हाँ, संभव है। Claude खुद को modify करने में काफ़ी सक्षम है
  • जिस undocumented feature पर आप निर्भर हैं, उसके अचानक बंद हो जाने का मज़ा आपको मिलेगा

    • अगर Anthropic का यह दावा सही है कि software engineering सच में solved problem है, तो फिर कोई भी इसे बस vibe coding से दोबारा बना सकना चाहिए
      अगर उन्हें “open” शब्द से एलर्जी न होती, तो Claude Code को open source कर देते; इस समय ऐसा न करने की कोई ठोस व्यावहारिक वजह नहीं दिखती