update-settings-schema
Update the custom Claude Code settings JSON schema with changelog-discovered and web-verified settings.
SKILL.md
Full skill instructions
Update Settings Schema Command
Update the custom JSON schema for Claude Code settings by researching official documentation, parsing the CHANGELOG, and merging discovered settings.
Arguments
| Argument | Description |
|---|---|
| (none) | Full update: research, generate, validate, write |
--dry-run | Show changes without writing |
--validate-only | Validate current schema without updating |
--diff | Show diff between current and generated |
--sync-env-vars | Force sync environment variables from canonical docs |
Workflow
Step 1: Load Current State
Read the current schema and extract version metadata:
Schema location: plugins/claude-ecosystem/skills/settings-management/references/claude-code-settings.schema.json
Extract: x-schema-version, x-claude-code-version, x-changelog-hash
Step 2: Extract Environment Variables
Run the env var extraction from canonical docs (stored in docs-management):
python plugins/claude-ecosystem/skills/settings-management/scripts/schema/extract_env_vars.py
This extracts 68+ environment variables from the settings.md documentation with:
- Full descriptions
- Category tags (authentication, model-config, provider, bash-behavior, etc.)
- Boolean flag detection (
enum: ["0", "1"]) - Deprecation markers
- Version annotations (
x-since)
Step 3: Research Sources (Parallel)
Invoke all three research sources in the SAME message:
-
docs-management skill - Query for settings documentation:
Invoke docs-management skill with query: "settings.json available settings schema options table env hooks permissions sandbox" -
claude-code-guide agent - Live web search:
Spawn claude-code-guide subagent with prompt: "First WebFetch https://code.claude.com/docs/en/claude_code_docs_map.md to find relevant doc pages about settings configuration. Then WebFetch the settings.md page. Use WebSearch only if needed for additional context about new settings fields. Return a list of all settings fields with their types and descriptions." -
Changelog fetch - Get latest CHANGELOG.md:
WebFetch https://raw.githubusercontent.com/anthropics/claude-code/main/CHANGELOG.md Extract settings-related entries from v2.1.0 onwards.
Step 4: Merge and Deduplicate
Priority order for conflicting information:
- Official docs (via docs-management) - highest priority
- Web search (via claude-code-guide) - medium priority
- Changelog (via WebFetch) - lowest priority
For each setting field:
- If in official docs: mark
x-source: "official" - If only in web search: mark
x-source: "web" - If only in changelog: mark
x-source: "changelog" - Add
x-since: "version"for changelog-discovered fields
Step 5: Validate
Run the validation script:
python plugins/claude-ecosystem/skills/settings-management/scripts/schema/validate_schema.py --verbose
Schema must:
- Be valid JSON Schema draft-07
- Have all required x- metadata fields
- Pass example validation (if --check-examples)
Step 6: Write (unless --dry-run)
If validation passes and not --dry-run:
- Update the schema file
- Increment x-schema-version (patch version)
- Update x-last-updated to today
- Update x-changelog-hash with new hash
- Update x-env-var-count with current env var count
Step 7: Report
Show summary:
Schema Update Summary
--------------------
Previous version: 1.0.0
New version: 1.1.0
Claude Code tracked: 2.1.9
Properties: 40 (+3 new)
+ plansDirectory (v2.1.9, changelog)
+ showTurnDuration (v2.1.7, changelog)
+ mcpToolSearch (v2.1.7, changelog)
Environment Variables: 68
Categories: authentication (6), model-config (10), provider (6),
bash-behavior (7), configuration (15), disable-flags (13),
proxy (3), mcp (5), vertex-bedrock (5), tools (2)
Validation: PASSED
Written to: .../claude-code-settings.schema.json
What This Command Does NOT Do
- Does NOT modify SchemaStore directly (that requires a PR to SchemaStore repo)
- Does NOT scrape arbitrary web pages (only official Claude docs)
- Does NOT auto-commit changes (user must commit manually)
Mode-Specific Behavior
--validate-only
Skip research and write steps. Only validate current schema:
python .../validate_schema.py --verbose --check-examples
Report validation results and exit.
--dry-run
Execute full workflow but skip Step 5 (write). Show what would change.
--diff
Execute full workflow, generate new schema in memory, show diff:
+ Added: mcpToolSearch (string)
~ Modified: hooks.PreToolUse (added additionalContext note)
x-schema-version: 1.0.0 -> 1.0.1
x-last-updated: 2026-01-15 -> 2026-01-16
Related Commands
/audit-settings- Audit settings.json files against this schema/list settings- List available settings fields
Related Files
| File | Purpose |
|---|---|
references/claude-code-settings.schema.json | The custom schema file with 68 env vars |
scripts/schema/generate_schema.py | Schema generation and env var sync |
scripts/schema/extract_env_vars.py | Extract env vars from canonical docs |
scripts/schema/validate_schema.py | Standalone validator |
.claude/ecosystem-health.yaml | Tracks schema version |
