All skills
simota avatar

/hone

@c805268
by shingo imotasimota/agent-skills85 stars
15

Auditing AI CLI configs and designing, configuring, or debugging Claude Code hooks. Use for Codex/agy/Claude Code config reviews, hook lifecycle automation, quality gates, or MCP governance.

Use this Skill: https://skilld.dev/gh/simota/agent-skills/hone

This session only. Nothing lands on disk.

referenceclaude-code-config-schema.md

≈5.6k tokens on demand. Your agent reads this file only when SKILL.md points to it.

Claude Code Config Schema

Purpose: Comprehensive reference for all Claude Code configuration keys, default values, environment variables, and recommended settings. Read when: Auditing ~/.claude/ or proposing configuration changes. Last updated: 2026-03-12


Config File Locations

File Scope Format Merge behavior
/Library/Application Support/ClaudeCode/managed-settings.json Managed (highest priority) JSON Distributed by IT admins, overrides user settings
~/.claude/settings.json User (global) JSON Shared across all projects
<project>/.claude/settings.json Project (shared) JSON Checked into git, shared with the team
<project>/.claude/settings.local.json Project (local) JSON Gitignored, personal use
~/.claude/CLAUDE.md Global instructions Markdown —
<project>/CLAUDE.md Project instructions Markdown —
<project>/.claude/commands/ Custom slash commands Markdown —
<project>/.claude/skills/ Skills (structured agents) Markdown —

Note: Array settings (permissions.allow, sandbox.filesystem.allowWrite, etc.) are merged across scopes.

JSON Schema

{
  "$schema": "https://json.schemastore.org/claude-code-settings.json"
}

Enables autocompletion and validation in editors.


Core Settings

Key Type Default Description Audit focus
model string — Model override CCM1: must be current
language string — Response language (e.g., "Japanese, 日本語") —
outputStyle string — System-prompt-level style injection (free text) Conciseness tuning
cleanupPeriodDays number 30 Days before inactive session data cleanup Set explicitly
autoUpdatesChannel string "latest" "stable" (1-week delay) or "latest" Prefer "stable" for production
verbose boolean false Show full Bash output etc. M3: should not be permanent
showTurnDuration boolean true Display response time —
alwaysThinkingEnabled boolean false Enable Extended Thinking by default —
plansDirectory string ~/.claude/plans Plan file storage path —
respectGitignore boolean true @ file picker respects .gitignore Set true
fastModePerSessionOptIn boolean — Require /fast per session to enable fast mode —
forceLoginMethod string — "claudeai" or "console" to restrict login —
forceLoginOrgUUID string — Auto-select organization UUID —
includeGitInstructions boolean true Include git workflow instructions in system prompt —

UI & Display Customization

Key Type Default Description Audit focus
theme string — dark, light, light-daltonized, dark-daltonized —
preferredNotifChannel string — iterm2, iterm2_with_bell, terminal_bell, notifications_disabled —
prefersReducedMotion boolean false Reduce animations (accessibility) —
terminalProgressBarEnabled boolean — Terminal progress bar display —
spinnerTipsEnabled boolean — Show tips during spinner —
spinnerVerbs object — Custom spinner text (mode: "append" / "replace", verbs: string[]) —
spinnerTipsOverride object — Custom tips (tips: string[], excludeDefault: boolean) —
companyAnnouncements string[] — Random startup messages Reminders, team announcements

StatusLine

Key Type Description
statusLine.type string "command"
statusLine.command string Custom script path (receives JSON via stdin)

StatusLine JSON input fields: workspace, model, cost, context_window, session_id, transcript_path

FileSuggestion

Key Type Description
fileSuggestion.type string "command"
fileSuggestion.command string Custom script for @ autocomplete (receives JSON with query and cwd)

Attribution

Key Type Default Description
attribution.commit string — Text appended to git commit messages (empty "" = disable)
attribution.pr string — Text appended to PR descriptions (empty "" = disable)
includeCoAuthoredBy boolean — Deprecated: use attribution instead

Permissions

Key Type Description Audit focus
permissions.allow string[] Auto-allowed tool patterns CCP1: no broad Bash
permissions.deny string[] Always-denied tool patterns (highest priority) CCP2: deny destructive ops
permissions.ask string[] Require confirmation —
permissions.additionalDirectories string[] Extra accessible directories —
permissions.defaultMode string acceptEdits, askEdits, plan, execute, bypassPermissions —
permissions.disableBypassPermissionsMode string "disable" to block --dangerously-skip-permissions Enterprise hardening

Permission Pattern Syntax

Pattern Meaning Safety
"Read" Allow all file reads Generally safe
"Edit" Allow all file edits Moderate risk
"Bash(command*)" Allow specific bash commands matching glob Scope narrowly
"Bash" Allow ALL bash commands High risk — avoid global
"WebFetch(domain:example.com)" Allow fetch to specific domain —
"MCP(server_name)" Allow MCP server tools —
"Agent(agent_name)" Allow specific agent —
"Read(./.env)" Read specific file Use in deny for secrets
"Read(./**/*credentials*)" Read files matching glob Use in deny

Recommended Deny Rules

"deny": [
  "Bash(curl *)",
  "Bash(wget *)",
  "Read(./.env)",
  "Read(./.env.*)",
  "Read(./secrets/**)",
  "Read(./**/*credentials*)",
  "Read(./**/*secret*)"
]

curl/wget are prompt injection vectors — officially recommended to block.

Permission Audit Criteria

  • CCP1: Broad Bash allow in global settings is risky
  • CCP2: Missing deny rules for destructive operations
  • CCP3: Same pattern in both allow and deny (deny wins, but redundant)
  • CCP4: References to tools/servers that no longer exist

Sandbox Settings

Key Type Default Description
sandbox.enabled boolean false Enable Bash sandboxing
sandbox.autoAllowBashIfSandboxed boolean true Auto-allow Bash when sandboxed
sandbox.excludedCommands string[] — Commands to run outside sandbox (e.g., ["git", "docker"])
sandbox.allowUnsandboxedCommands boolean true Allow dangerouslyDisableSandbox escape hatch
sandbox.enableWeakerNestedSandbox boolean false Weaker sandbox inside Docker
sandbox.enableWeakerNetworkIsolation boolean false Allow TLS trust services (macOS)

Sandbox Filesystem

Key Type Description
sandbox.filesystem.allowWrite string[] Additional writable paths
sandbox.filesystem.denyWrite string[] Blocked write paths
sandbox.filesystem.denyRead string[] Blocked read paths (e.g., ["~/.aws/credentials", "~/.ssh/*"])

Sandbox Network

Key Type Description
sandbox.network.allowedDomains string[] Allowed domains (*.example.com wildcards)
sandbox.network.allowUnixSockets string[] Allowed Unix sockets
sandbox.network.allowAllUnixSockets boolean Allow all Unix socket connections
sandbox.network.allowLocalBinding boolean Allow localhost binding (macOS)
sandbox.network.httpProxyPort number HTTP proxy port
sandbox.network.socksProxyPort number SOCKS5 proxy port
sandbox.network.allowManagedDomainsOnly boolean (Managed) Only allow managed domains

Sandbox Path Prefixes

Prefix Meaning
// Root absolute path
~/ Home directory relative
/ Settings file directory relative

Environment Variables (env block)

Model & Performance Tuning

Variable Type Default Description Audit focus
ANTHROPIC_MODEL string — Model override CCM1
CLAUDE_CODE_EFFORT_LEVEL string — Reasoning effort: low, medium, high —
CLAUDE_CODE_MAX_OUTPUT_TOKENS string "32000" Max output tokens (max "64000") CCE1: consider raising
MAX_THINKING_TOKENS string "31999" Extended Thinking budget CCE2: balance cost vs depth
CLAUDE_AUTOCOMPACT_PCT_OVERRIDE string "95" Auto-compact trigger threshold (%) CCE3: 70-80 recommended
CLAUDE_CODE_DISABLE_1M_CONTEXT string — "1" to disable 1M context —
CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING string — "1" to disable adaptive reasoning —
CLAUDE_CODE_SUBAGENT_MODEL string — Model for subagents —
CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS string — File read token limit —

MCP & Tool Optimization

Variable Type Default Description Audit focus
ENABLE_TOOL_SEARCH string — "auto:0" for on-demand MCP tool loading CCE4: saves ~32% context
MCP_TIMEOUT string — MCP server startup timeout (ms) —
MCP_TOOL_TIMEOUT string — MCP tool execution timeout (ms) —
MAX_MCP_OUTPUT_TOKENS string "25000" MCP output limit —

Bash Execution Control

Variable Type Default Description
BASH_DEFAULT_TIMEOUT_MS string — Default Bash timeout
BASH_MAX_TIMEOUT_MS string — Maximum Bash timeout
BASH_MAX_OUTPUT_LENGTH string — Maximum Bash output characters
CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR string — Return to project dir after each command
CLAUDE_CODE_SHELL string — Shell override (e.g., "bash", "zsh")
CLAUDE_CODE_SHELL_PREFIX string — Prefix for all Bash commands

Privacy & Telemetry

Variable Type Description
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC string Master switch: disable all non-essential traffic
DISABLE_TELEMETRY string Disable Statsig telemetry
DISABLE_ERROR_REPORTING string Disable Sentry error reporting
DISABLE_AUTOUPDATER string Disable auto-updates
DISABLE_BUG_COMMAND string Disable /bug command
DISABLE_COST_WARNINGS string Disable cost warnings
DISABLE_NON_ESSENTIAL_MODEL_CALLS string Disable non-critical model calls
DISABLE_INSTALLATION_CHECKS string Disable install warnings
CLAUDE_CODE_HIDE_ACCOUNT_INFO string Hide email/org from UI

Feature Flags

Variable Type Description
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS string "1" to enable Agent Teams
CLAUDE_CODE_DISABLE_FAST_MODE string Disable fast mode
CLAUDE_CODE_DISABLE_AUTO_MEMORY string Disable auto memory
CLAUDE_CODE_DISABLE_BACKGROUND_TASKS string Disable background tasks
CLAUDE_CODE_DISABLE_CRON string Disable scheduled tasks
CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS string Remove git workflow instructions
CLAUDE_CODE_SIMPLE string "1" for minimal mode (Bash + file R/W only)
CLAUDE_CODE_ENABLE_TASKS string "false" for legacy TODO list
CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION string "false" to disable prompt suggestions
CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY string Disable session quality survey
CLAUDE_CODE_DISABLE_TERMINAL_TITLE string Disable terminal title updates
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS string Disable anthropic-beta headers

Authentication & Provider

Variable Type Description
ANTHROPIC_API_KEY string API key
ANTHROPIC_AUTH_TOKEN string Custom Bearer token
ANTHROPIC_CUSTOM_HEADERS string Custom headers
CLAUDE_CODE_USE_BEDROCK string Use AWS Bedrock
CLAUDE_CODE_USE_VERTEX string Use Google Vertex AI
CLAUDE_CODE_USE_FOUNDRY string Use Microsoft Foundry
CLAUDE_CODE_SKIP_BEDROCK_AUTH string Skip Bedrock auth (LLM gateway)
CLAUDE_CODE_SKIP_VERTEX_AUTH string Skip Vertex auth
CLAUDE_CODE_SKIP_FOUNDRY_AUTH string Skip Foundry auth
CLAUDE_CODE_CLIENT_CERT string mTLS client certificate path
CLAUDE_CODE_CLIENT_KEY string mTLS private key path
CLAUDE_CODE_CLIENT_KEY_PASSPHRASE string Encrypted key passphrase

Telemetry & Monitoring

Variable Type Description
CLAUDE_CODE_ENABLE_TELEMETRY string "1" to enable OpenTelemetry
OTEL_METRICS_EXPORTER string OTel exporter (e.g., "otlp")
CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS string OTel header refresh interval (default 29min)

Miscellaneous

Variable Type Description
CLAUDE_CONFIG_DIR string Custom config/data directory location
CLAUDE_CODE_TMPDIR string Temporary directory override
CLAUDE_CODE_TASK_LIST_ID string Share task list across sessions
CLAUDE_CODE_API_KEY_HELPER_TTL_MS string Auth credential refresh interval
CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD string Load CLAUDE.md from --add-dir dirs
CLAUDE_CODE_EXIT_AFTER_STOP_DELAY string Auto-exit delay after idle (ms)

Hooks Configuration

Note: This section defines Hone's audit scope. Detailed hook design, configuration, and debugging use Hone's explicit hook* recipes and reference/hooks/.

Event Trigger Hone audit scope
PreToolUse Before a tool executes Check matcher validity, no secrets in commands
PostToolUse After a tool executes Check matcher validity, no secrets in commands
UserPromptSubmit When user submits prompt Check command validity
SessionStart When session starts Check command validity
Notification When a notification is sent Check command validity
Stop When agent stops Check command validity
SubagentStop When a subagent stops Check command validity
PreCompact Before context compaction Check command validity

Hook-Related Settings

Key Type Description
disableAllHooks boolean Disable all hooks
allowManagedHooksOnly boolean (Managed) Only managed hooks allowed
allowedHttpHookUrls string[] Allowed HTTP hook URL patterns
httpHookAllowedEnvVars string[] Env vars accessible by HTTP hooks

Hook Audit Criteria (Structural Only)

  • Validity: Hook commands are executable and paths exist
  • Security: No plaintext secrets in hook commands or environment
  • Matcher validity: Tool matchers reference existing tools
  • Recipe switch: Complex hook logic should be reviewed through the matching Hone hook* recipe

MCP Server Configuration

{
  "mcpServers": {
    "server-name": {
      "command": "npx",
      "args": ["-y", "@scope/mcp-server"],
      "env": { "API_KEY": "${env:API_KEY}" }
    }
  }
}

MCP-Related Settings

Key Type Description
enableAllProjectMcpServers boolean Auto-approve all .mcp.json servers
enabledMcpjsonServers string[] Approved MCP servers
disabledMcpjsonServers string[] Rejected MCP servers
allowedMcpServers string[] (Managed) Allow list
deniedMcpServers string[] (Managed) Deny list

MCP Audit Criteria

  • CCS1: Server command exists and is executable
  • CCS2: No unused/orphaned server configs
  • CCS3: No plaintext secrets — use ${env:VAR} syntax
  • CCS4: Server packages are current
  • CCS5: Global vs project placement is appropriate

Plugin Settings

Key Type Description
enabledPlugins object Plugin ON/OFF ("plugin-name@marketplace": true/false)
extraKnownMarketplaces object Additional marketplaces
strictKnownMarketplaces string[] (Managed) Allowed marketplaces only
blockedMarketplaces string[] (Managed) Blocked marketplaces

Agent Teams

Key Type Description
teammateMode string auto, in-process, tmux

Authentication Helpers

Key Type Description
apiKeyHelper string Script to generate auth value (runs via /bin/sh)
awsAuthRefresh string AWS credential refresh script
awsCredentialExport string AWS credential JSON output script
otelHeadersHelper string OpenTelemetry header generation script

CLAUDE.md Instruction Files

File Scope Purpose Audit focus
~/.claude/CLAUDE.md Global Global instructions for all projects Non-empty, clear, up-to-date, no secrets
<project>/CLAUDE.md Project Project-level instructions Relevant to project, no contradictions with global
<project>/.claude/CLAUDE.md Project (hidden) Alternative project instructions location Check for duplicates with root CLAUDE.md

CLAUDE.md Audit Criteria

  • CCI1: At least one instruction file exists (global recommended)
  • CCI2: Content reflects current project state and tool capabilities
  • CCI3: No API keys, tokens, or credentials in instruction files
  • CCI4: Project and global instructions are consistent

Custom Slash Commands vs Skills

Custom Slash Commands Skills
Location ~/.claude/commands/ (global), .claude/commands/ (project) .claude/skills/
Format Single Markdown file (prompt template) Structured: SKILL.md + reference files
Invocation User explicitly calls /command-name Claude auto-selects or /skill-name
Complexity Simple — 1 file = 1 prompt Structured — references, templates, workflows
Arguments $ARGUMENTS ARGUMENTS: block
Use case Repetitive prompt shortcuts Domain expertise, agent-like behavior

Command Audit Criteria

  • CCK1: Command files are valid Markdown
  • CCK2: No hardcoded secrets in command templates

Model Configuration

Method Scope Description
ANTHROPIC_MODEL env var Session Override model for current session
/model command Session Interactive model selection
model key in settings.json Persistent Override in settings
settings.json env block Persistent Set via env vars

Current Model Identifiers

Model ID Recommendation
Claude Fable 5 claude-fable-5 Highest capability; frontier reasoning, long-running agents. Effort defaults to high
Claude Opus 5 claude-opus-5 Complex agentic coding and enterprise work; 1M context. Effort defaults to high on Claude Code — set xhigh explicitly for coding/agentic work
Claude Sonnet 5 claude-sonnet-5 Balanced performance and speed; effort defaults to high
Claude Haiku 4.5 claude-haiku-4-5-20251001 Fast; simple tasks

ultracode in the Claude Code effort menu is not an API effort level — it pairs xhigh with standing permission to launch multi-agent workflows.


Authentication

Method Configuration Use when
API Key ANTHROPIC_API_KEY env var Direct API access
Claude Pro/Team OAuth via claude login Subscription-based access

Auth Audit Criteria

  • CCA1: Authentication method is set up and working
  • CCA2: ANTHROPIC_API_KEY not hardcoded in settings.json or CLAUDE.md
  • Env var security: API keys use environment variables, not file literals

NEVER read: ~/.claude/credentials.json, ~/.claude/statsig/, or any auth/session files.


Power User Hacks & Tips

Context Optimization

Hack Setting Effect
Early compaction CLAUDE_AUTOCOMPACT_PCT_OVERRIDE: "70-80" Default 95% is too late; earlier compaction preserves quality
MCP lazy loading ENABLE_TOOL_SEARCH: "auto:0" On-demand MCP tool loading saves ~32% context
Output expansion CLAUDE_CODE_MAX_OUTPUT_TOKENS: "64000" Prevent truncation on large outputs
Thinking budget MAX_THINKING_TOKENS: "10000" Reduce from 31K default for cost savings

Workflow Optimization

Hack Setting Effect
Style injection outputStyle: "ultra-concise..." System-prompt-level output style control
Startup reminders companyAnnouncements: [...] Random messages at session start
Smart file suggest fileSuggestion.command Custom @ autocomplete with git-aware script
Attribution removal attribution: { commit: "", pr: "" } Remove all Claude signatures

Parallel Execution Tips

  • Multiple terminal tabs with numbered instances
  • claude.ai/code for web sessions in parallel
  • /teleport to bring cloud sessions local
  • Ctrl+B to move subagents to background

Version History

Date Change Source
Initial Schema documented from Claude Code v1.x T2: anthropics/claude-code GitHub
2026-03-12 Major expansion: env vars, sandbox, hooks, plugins, power user hacks T1: code.claude.com/docs, T2: GitHub, T3: community blogs

This schema should be refreshed when major Claude Code versions are released. Check reference/web-sources.md for staleness thresholds.

Source: SKILL.md on GitHub

1 warning13d4 checks · Risk SAFE
  • Gen Agent Trust Hub13d

    The skill is a security-focused configuration auditor and automation tool for AI CLI environments. It includes extensive features for detecting hardcoded secrets, blocking dangerous shell commands, and managing environment security through best practices. No malicious patterns were detected.

  • Socket13d

    No alerts

  • Snyk13d

    Risk: LOW · No issues

  • ZeroLeaks5mo

    1 finding · Score: 78/100

Signed by skilld at c805268. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 2 days ago.

Activeupdated 2 weeks ago

README badge

README badge for simota/agent-skills/hone