Skip to main content
OrchestKit v7.43.0 — 104 skills, 36 agents, 173 hooks · Claude Code 2.1.105+
OrchestKit
Skills

Doctor

OrchestKit doctor for health diagnostics. Use when running checks on plugin health, diagnosing problems, or troubleshooting issues.

Command low
Invoke
/ork:doctor

OrchestKit Health Diagnostics

Argument Resolution

FLAGS = "$ARGUMENTS"         # Full argument string, e.g., "--verbose" or "--json"
FLAG = "$ARGUMENTS[0]"       # First token: -v, --verbose, --json, --category=X
# $ARGUMENTS[0], $ARGUMENTS[1] for indexed access (CC 2.1.59)

Overview

The /ork:doctor command performs comprehensive health checks on your OrchestKit installation. It auto-detects installed plugins and validates 13 categories:

  1. Installed Plugins - Detects ork plugin
  2. Skills Validation - Frontmatter, references, token budget (dynamic count)
  3. Agents Validation - Frontmatter, tool refs, skill refs (dynamic count)
  4. Hook Health - Registration, bundles, async patterns
  5. Permission Rules - Detects unreachable rules
  6. Schema Compliance - Validates JSON files against schemas
  7. Coordination System - Checks lock health and registry integrity
  8. Context Budget - Monitors token usage against budget
  9. Memory System - Graph memory health
  10. Claude Code Version & Channel - Validates CC >= 2.1.86, detects release channel (stable/beta/alpha)
  11. External Dependencies - Checks optional tool availability (agent-browser)
  12. MCP Status - Active vs disabled vs misconfigured, API key presence for paid MCPs
  13. Plugin Validate - Runs claude plugin validate for official CC frontmatter + hooks.json validation (CC >= 2.1.77)

When to Use

  • After installing or updating OrchestKit
  • When hooks aren't firing as expected
  • Before deploying to a team environment
  • When debugging coordination issues
  • After running npm run build

Tip (CC 2.1.69+): After fixing issues found by doctor, run /reload-plugins to activate plugin changes without restarting your session.

Quick Start

/ork:doctor           # Standard health check
/ork:doctor -v        # Verbose output
/ork:doctor --json    # Machine-readable for CI

CLI Options

FlagDescription
-v, --verboseDetailed output per check
--jsonJSON output for CI integration
--category=XRun only specific category

Health Check Categories

Detailed check procedures: Load Read("$\{CLAUDE_SKILL_DIR\}/rules/diagnostic-checks.md") for bash commands and validation logic per category.

MCP-specific checks: Load Read("$\{CLAUDE_SKILL_DIR\}/rules/mcp-status-checks.md") for credential validation and misconfiguration detection.

Output examples: Load Read("$\{CLAUDE_SKILL_DIR\}/references/health-check-outputs.md") for sample output per category.

Categories 0-3: Core Validation

CategoryWhat It ChecksReference
0. Installed PluginsAuto-detects ork plugin, counts skills/agentsload $\{CLAUDE_SKILL_DIR\}/rules/diagnostic-checks.md
1. SkillsFrontmatter, context field, token budget, linksload $\{CLAUDE_SKILL_DIR\}/references/skills-validation.md
2. AgentsFrontmatter, model, skill refs, tool refsload $\{CLAUDE_SKILL_DIR\}/references/agents-validation.md
3. Hookshooks.json schema, bundles, async patternsload $\{CLAUDE_SKILL_DIR\}/references/hook-validation.md

Categories 4-5: System Health

CategoryWhat It ChecksReference
4. Memory.claude/memory/ exists, decisions.jsonl integrity, queue depthload $\{CLAUDE_SKILL_DIR\}/references/memory-health.md
5. Buildplugins/ sync with src/, manifest counts, orphansload $\{CLAUDE_SKILL_DIR\}/rules/diagnostic-checks.md

Categories 6-9: Infrastructure

CategoryWhat It Checks
6. Permission RulesUnreachable rules detection
7. Schema ComplianceJSON files against schemas
8. CoordinationMulti-worktree lock health, stale locks, sparse paths config
9. Context BudgetToken usage against budget

Categories 10-13: Environment

CategoryWhat It ChecksReference
10. CC Version & ChannelRuntime version against minimum required, release channel (stable/beta/alpha)load $\{CLAUDE_SKILL_DIR\}/references/version-compatibility.md
11. External DepsOptional tools (agent-browser, portless)load $\{CLAUDE_SKILL_DIR\}/rules/diagnostic-checks.md
12. MCP StatusEnabled/disabled state, credential checksload $\{CLAUDE_SKILL_DIR\}/rules/mcp-status-checks.md
13. Plugin ValidateOfficial CC frontmatter + hooks.json validation (CC >= 2.1.77)load $\{CLAUDE_SKILL_DIR\}/rules/diagnostic-checks.md

Report Format

Load Read("$\{CLAUDE_SKILL_DIR\}/references/report-format.md") for ASCII report templates, JSON CI output schema, and exit codes.

Interpreting Results & Troubleshooting

Load Read("$\{CLAUDE_SKILL_DIR\}/references/remediation-guide.md") for the full results interpretation table and troubleshooting steps for common failures (skills validation, build sync, memory).

  • ork:configure - Configure plugin settings
  • ork:quality-gates - CI/CD integration
  • security-scanning - Comprehensive audits

References

Load on demand with Read("$\{CLAUDE_SKILL_DIR\}/references/<file>") or Read("$\{CLAUDE_SKILL_DIR\}/rules/<file>"):

FileContent
rules/diagnostic-checks.mdBash commands and validation logic per category
rules/mcp-status-checks.mdCredential validation and misconfiguration detection
references/remediation-guide.mdResults interpretation and troubleshooting steps
references/health-check-outputs.mdSample output per category
references/skills-validation.mdSkills frontmatter and structure checks
references/agents-validation.mdAgents frontmatter and tool ref checks
references/hook-validation.mdHook registration and bundle checks
references/memory-health.mdMemory system integrity checks
references/permission-rules.mdPermission rule detection
references/schema-validation.mdJSON schema compliance
references/report-format.mdASCII report templates and JSON CI output
references/version-compatibility.mdCC version and channel validation

Rules (2)

Diagnostic Checks — CRITICAL

Diagnostic Check Procedures

Detailed procedures for each health check category in /ork:doctor.


Incorrect:

✓ Plugins OK    (no actual validation — just assumed healthy)

Correct:

✓ Skills: 69/69 valid (frontmatter, token budget, links)
✗ Hooks: dist/memory-writer.mjs missing — run: cd src/hooks && npm run build
✓ Agents: 38/38 CC 2.1.6 compliant

0. Installed Plugins Detection

Auto-detects which OrchestKit plugins are installed:

# Detection logic:
# - Scans for .claude-plugin/plugin.json in plugin paths
# - Identifies ork plugin
# - Counts skills/agents per installed plugin

1. Skills Validation

Validates skills in installed plugins (count varies by installation):

# Checks performed:
# - SKILL.md frontmatter (name, description, user-invocable)
# - context: fork field (required for CC 2.1.0+)
# - Token budget compliance (300-5000 tokens)
# - Internal link validation (references/ paths)
# - Related Skills references exist

2. Agents Validation

Validates agents in installed plugins:

# Checks performed:
# - Frontmatter fields (name, description, model, tools, skills)
# - Model validation (opus, sonnet, haiku only)
# - Skills references exist in src/skills/
# - Tools are valid CC tools

3. Hook Health

Verifies hooks are properly configured:

# Checks performed:
# - hooks.json schema valid
# - Bundle files exist (12 .mjs bundles)
# - Async hooks use fire-and-forget pattern (9 async)
# - Background hook metrics health (Issue #243)
# - Windows-safe spawning (PR #645)

4. Memory System

Validates graph memory with file-level integrity checks:

# Automated checks:
# - Graph: .claude/memory/ exists, decisions.jsonl valid JSONL, queue depth

# Run these commands to gather memory health data:
wc -l .claude/memory/decisions.jsonl 2>/dev/null || echo "No decisions yet"
wc -l .claude/memory/graph-queue.jsonl 2>/dev/null || echo "No graph queue"
ls -la .claude/memory/ 2>/dev/null || echo "Memory directory missing"

Read .claude/memory/decisions.jsonl directly to validate JSONL integrity (each line must parse as valid JSON). Count total lines, corrupt lines, and report per-category breakdown.

See Memory Health for details.


5. Build System

Verifies plugins/ sync with src/:

# Checks performed:
# - plugins/ generated from src/
# - Manifest counts match actual files
# - No orphaned skills/agents

6. Permission Rules

Leverages CC 2.1.3's unreachable permission rules detection.


7. Schema Compliance

Validates JSON files against schemas.


8. Coordination System

Checks multi-worktree coordination health (active instances, stale locks).


9. Context Budget

Monitors token usage against budget.


10. Claude Code Version

Validates runtime version against the Version Compatibility Matrix.


11. External Dependencies

Checks optional tool availability:

# Checks performed:
# - agent-browser: installed globally via skills CLI
# - Validates symlink exists at ~/.claude/skills/agent-browser
# - portless: stable named localhost URLs for local dev
#   which portless 2>/dev/null && portless list 2>/dev/null
#   If missing: RECOMMEND "npm i -g portless" for stable local dev URLs
#   If installed but not running: WARN "portless is installed but no services registered"

13. Plugin Validate (CC >= 2.1.77)

Runs claude plugin validate for official CC validation of frontmatter and hooks.json. This complements OrchestKit's custom checks (categories 1-3) with CC's built-in validator.

# Check CC version supports plugin validate (>= 2.1.77)
# If CC < 2.1.77, skip with: "Plugin validate: SKIPPED (requires CC >= 2.1.77)"

# Run official validation from plugin root
claude plugin validate

# Checks performed by CC:
# - SKILL.md frontmatter schema (required fields, types, allowed values)
# - hooks.json schema (event types, matchers, command paths)
# - Agent frontmatter schema (model, tools, skills fields)
# - File path resolution (command paths in hooks exist)

Relationship to OrchestKit checks: claude plugin validate performs structural/schema validation at the CC level. OrchestKit's categories 1-3 perform deeper semantic checks (token budgets, cross-references, async patterns) that CC does not cover. Both should pass for a fully healthy plugin.

MCP Status Checks — HIGH

MCP Status Checks

Validates .mcp.json entries for enabled/disabled state and required credentials.

Check Procedure

# Checks performed:
# - Parse .mcp.json, list each server with enabled/disabled state
# - For tavily: check TAVILY_API_KEY env var OR op CLI availability
# - For memory: check MEMORY_FILE path is writable
# - For agentation: check agentation-mcp package is installed (npx --yes dry-run)
# - Flag any enabled MCP whose process would likely fail at startup

Incorrect:

MCP Servers: all OK

Correct:

MCP Servers:
- context7:  enabled  ✓
- tavily:    enabled  ✗  TAVILY_API_KEY not set — will fail at startup

Output Examples

Healthy:

MCP Servers:
- context7:           enabled  ✓
- memory:             enabled  ✓
- sequential-thinking: disabled ○
- tavily:             disabled ○  (enable: set TAVILY_API_KEY, see /ork:configure)
- agentation:         disabled ○

Misconfigured (Tavily enabled but no key):

MCP Servers:
- context7:           enabled  ✓
- memory:             enabled  ✓
- tavily:             enabled  ✗  TAVILY_API_KEY not set — MCP will fail at startup
                                  Fix: set TAVILY_API_KEY or set "disabled": true in .mcp.json

Misconfigured (agentation enabled but not installed):

MCP Servers:
- agentation:         enabled  ✗  agentation-mcp package not found
                                  Fix: npm install -D agentation-mcp  or  set "disabled": true

References (10)

Agents Validation

Agents Validation

Overview

OrchestKit includes 30 specialized agents validated against CC 2.1.69 frontmatter format.

Agent Structure

src/agents/
├── backend-system-architect.md
├── code-quality-reviewer.md
├── frontend-ui-developer.md
└── ... (38 total)

Validation Checks

1. Frontmatter Fields

Required fields:

  • name - Agent identifier (used in Task subagent_type)
  • description - Purpose and auto-mode keywords
  • model - opus, sonnet, or haiku
  • tools - Array of allowed CC tools
  • skills - Array of skill names to auto-inject

Optional fields:

  • context - fork or inherit
  • color - Display color
  • hooks - Agent-specific hooks

2. Model Validation

Only valid models:

# Check model values
grep "^model:" src/agents/*.md | sort | uniq -c

Expected: opus, sonnet, haiku

3. Skills References

All skills in agent frontmatter must exist:

# Check skill references
for agent in src/agents/*.md; do
  grep -A100 "^skills:" "$agent" | grep "^  - " | \
    sed 's/.*- //' | while read skill; do
      [ -d "src/skills/$skill" ] || echo "Missing: $agent -> $skill"
    done
done

4. Tools Validation

Valid CC tools:

  • Bash, Read, Write, Edit, MultiEdit
  • Grep, Glob
  • Task, Skill
  • WebFetch, WebSearch
  • NotebookEdit
  • AskUserQuestion
  • TaskCreate, TaskUpdate, TaskGet, TaskList

Quick Validation

# Run full agent validation
npm run test:agents

# Or directly
./tests/agents/test-agent-frontmatter.sh

Common Issues

Invalid model

model: sonnet  # Valid: opus, sonnet, haiku

Missing skill reference

Ensure skill exists in src/skills/ directory.

Invalid tool name

Check tool spelling matches CC tool names exactly.

Agent Registration Check (CC 2.1.50+)

Run claude agents to list all registered agents and compare against the expected count from manifests.

Gate: Only run if CC >= 2.1.50 (feature: claude_agents_cli). Skip with a note if version is older.

# Check registered agent count matches expected
expected_count=$(grep -c '"agents/' manifests/ork.json 2>/dev/null || echo 0)
registered_count=$(claude agents 2>/dev/null | wc -l | tr -d ' ')

if [ "$registered_count" -ne "$expected_count" ]; then
  echo "WARN: Agent count mismatch — expected $expected_count, got $registered_count"
  # List missing agents for investigation
  claude agents 2>/dev/null | sort > /tmp/ork-registered.txt
  ls src/agents/*.md 2>/dev/null | xargs -I{} basename {} .md | sort > /tmp/ork-expected.txt
  echo "Missing agents:"
  comm -23 /tmp/ork-expected.txt /tmp/ork-registered.txt
fi

Check: claude agents | wc -l should match expected agent count (38).

Model Routing

See docs/model-routing.md for per-agent model assignment rationale and version history.

Fail action: List missing agents for manual investigation. Common causes:

  • Plugin not installed or not rebuilt after adding agents
  • Agent frontmatter parse error preventing registration
  • CC version too old (< 2.1.50) to support claude agents CLI

Health Check Outputs

Health Check Output Examples

Reference output examples for each /ork:doctor check category.

Channel Detection

Stable:

Channel: stable (v7.0.0)

Beta:

Channel: beta (v7.0.0-beta.3)
⚠ You are on the beta channel. Report issues at github.com/yonatangross/orchestkit/issues

Alpha:

Channel: alpha (v7.0.0-alpha.1)
⚠ You are on the alpha channel. Expect breaking changes. Report issues at github.com/yonatangross/orchestkit/issues

Detection logic:

  1. Read version from .claude-plugin/plugin.json (version field) or version.txt
  2. If version contains -alpha → alpha channel
  3. If version contains -beta → beta channel
  4. Otherwise → stable channel

Installed Plugins

Installed Plugins: 1
- ork: 103 skills, 36 agents, 173 hook entries

Skills Validation

Skills: 79/79 valid
- User-invocable: 18 commands
- Reference skills: 61

Agents Validation

Agents: 38/38 valid
- Models: 12 sonnet, 15 haiku, 8 opus
- All skill references valid

Hook Health

Hooks: 95/95 entries valid (12 bundles)
- Global: 34, Agent-scoped: 54, Skill-scoped: 7
- Async hooks: 9 (native async)
- Error Rate: 0.3%

Memory System

Memory System: healthy
- Graph Memory: 42 decisions, 0 corrupt, queue depth 3

Build System

Build System: in sync
- Skills: 69 src/ = 69 plugins/
- Agents: 38 src/ = 38 plugins/
- Last build: 2 minutes ago

Permission Rules

Permission Rules: 12/12 reachable

Schema Compliance

Schemas: 15/15 compliant

Coordination System

Coordination: healthy
- Active instances: 1
- Stale locks: 0

Context Budget

Context Budget: 1850/2200 tokens (84%)

Claude Code Version

OK:

Claude Code: 2.1.47 (OK)
- Minimum required: 2.1.47
- All 15 features available

Degraded:

Claude Code: 2.1.44 (DEGRADED)
- Minimum required: 2.1.47
- Missing: last_assistant_message, added_dirs, Windows hooks, worktree discovery
- Upgrade: npm install -g @anthropic-ai/claude-code@latest

External Dependencies

Installed:

External Dependencies:
- agent-browser: installed (OK)

Not installed:

External Dependencies:
- agent-browser: NOT INSTALLED (optional - install with: npx skills add vercel-labs/agent-browser)

Plugin Validate

Pass (CC >= 2.1.77):

Plugin Validate: PASSED
- claude plugin validate: 0 errors, 0 warnings

Fail (CC >= 2.1.77):

Plugin Validate: FAILED
- claude plugin validate: 2 errors
  - src/skills/broken/SKILL.md: missing required field "description"
  - src/hooks/hooks.json: invalid matcher pattern at hooks[3]
- Fix errors and re-run: npm run build && claude plugin validate

Skipped (CC < 2.1.77):

Plugin Validate: SKIPPED (requires CC >= 2.1.77)
- Falling back to OrchestKit custom validation only

Managed Settings Policy (CC >= 2.1.92)

OK — forceRemoteSettingsRefresh with endpoint:

Managed Settings: OK
- forceRemoteSettingsRefresh: enabled
- Remote endpoint configured

Warning — forceRemoteSettingsRefresh without endpoint:

Managed Settings: WARNING
- forceRemoteSettingsRefresh: enabled but no remote settings endpoint detected
- This will block startup if network is unavailable
- Configure a remote endpoint or remove forceRemoteSettingsRefresh

Info — not set:

Managed Settings: OK (default)
- forceRemoteSettingsRefresh: not set (falls back to cached settings)

MCP connector conflict (CC >= 2.1.92 fix):

MCP Servers: WARNING
- Plugin MCP server "{name}" duplicates a claude.ai connector
- Prior to CC 2.1.92 this caused stuck "connecting" state
- Consider setting ENABLE_CLAUDEAI_MCP_SERVERS=false or renaming the plugin server

Hook Validation

Hook Validation

Overview

OrchestKit uses 66 global hook entries across 15 event types, compiled into 12 bundles. This reference explains how to validate and troubleshoot hooks.

Hook Architecture

hooks.json (63 global + 22 agent-scoped + 1 skill-scoped entries)

12 TypeScript bundles (dist/*.mjs)

9 async hooks use fire-and-forget pattern

Platform Support

PlatformHook StatusNotes
macOSFull supportNative execution
LinuxFull supportNative execution
WindowsFull support (CC 2.1.47+)Uses Git Bash instead of cmd.exe

Windows support history:

  • Before CC 2.1.47: All hooks silently failed on Windows (cmd.exe incompatible)
  • CC 2.1.47: Fixed by executing hooks via Git Bash instead of cmd.exe
  • PR #645: OrchestKit added Windows-safe spawning (no console flashing, no ENAMETOOLONG)

Cross-platform safety measures in OrchestKit hooks:

  • paths.ts provides cross-platform path handling (os.homedir(), os.tmpdir(), path.join())
  • CRLF normalization (\r\n\n) in subagent-validator, decision-history, common.ts
  • Windows backslash path normalization in structure-location-validator
  • Windows-specific test cases for paths, CRLF, and permission handling

Hook Categories

Event TypeCountPurpose
PreToolUse14Before tool execution
SubagentStart7Before agent spawn
SubagentStop7After agent completes
PostToolUse6After tool execution
Setup6Plugin initialization
SessionStart5Session initialization
UserPromptSubmit5Prompt enhancement
PermissionRequest3Auto-approval logic
SessionEnd3Session cleanup
TeammateIdle3Teammate idle handling
Stop2Conversation end
Notification2Desktop/sound alerts
PostToolUseFailure1Failed tool handling
PreCompact1Before context compaction
TaskCompleted1Task completion handling
Total Global66

Bundle Structure

BundleHandlersAsync
agent.mjsAgent hooksNo
hooks.mjsCore dispatchingNo
lifecycle.mjsSession lifecycleYes
notification.mjsAlertsYes
permission.mjsAuto-approveNo
posttool.mjsPost-executionYes
pretool.mjsPre-executionNo
prompt.mjsPrompt enhancementYes
setup.mjsInitializationYes
skill.mjsSkill-scoped hooksNo
stop.mjsConversation endYes
subagent.mjsAgent lifecycleNo

Validation Checks

1. hooks.json Schema

# Validate hooks.json structure
cat src/hooks/hooks.json | jq '.hooks | keys'

2. Bundle Existence

# Check all bundles exist
ls -la src/hooks/dist/*.mjs

3. Async Hook Pattern

Async hooks use fire-and-forget scripts:

# 9 fire-and-forget scripts required (updated CC 2.1.47)
ls src/hooks/bin/*-fire-and-forget.mjs

4. Matcher Syntax

Valid matcher patterns:

{
  "matcher": "Bash",           // Exact tool name
  "matcher": "Write|Edit",     // Multiple tools
  "matcher": "*",              // All tools
  "matcher": "mcp__*"          // Wildcard prefix
}

Debug Mode (Issue #243)

Silent hooks run in detached background processes. Enable debug mode to monitor them.

Enable Debug Logging

Create .claude/hooks/debug.json:

{
  "enabled": true,
  "verbose": false,
  "includeInput": false,
  "hookFilters": []
}

View Debug Logs

# Recent background hook activity
tail -f .claude/logs/background-hooks.log

# Filter by hook name
grep "unified-dispatcher" .claude/logs/background-hooks.log

Hook Metrics

Execution metrics tracked in .claude/hooks/metrics.json:

{
  "hooks": {
    "posttool/unified-dispatcher": {
      "totalRuns": 42,
      "successCount": 41,
      "errorCount": 1,
      "avgDurationMs": 150
    }
  }
}

PID Tracking

# Check for orphaned processes
for f in .claude/hooks/pids/*.pid; do
  pid=$(jq -r '.pid' "$f" 2>/dev/null)
  if [ -n "$pid" ] && ! kill -0 "$pid" 2>/dev/null; then
    echo "Orphaned: $f"
    rm "$f"
  fi
done

Troubleshooting

Hook not firing

  1. Check matcher pattern matches tool name
  2. Verify bundle exists in dist/
  3. Check hooks.json registration

Hook timing out

Default timeout: 120s (bash), 600s (CC 2.1.3+)

Exit Codes

CodeMeaning
0Success / Allow
1Error (logged, continues)
2Block (stops execution)

Memory Health

Memory Health

Overview

OrchestKit uses graph memory for knowledge persistence. Doctor validates it with automated checks.

Automated Health Check

The memory-health.ts library provides checkMemoryHealth() which returns a MemoryHealthReport:

interface MemoryHealthReport {
  overall: 'healthy' | 'degraded' | 'unavailable';
  timestamp: string;
  graph: {
    status: TierStatus;
    memoryDir: boolean;        // .claude/memory/ exists
    decisions: FileHealth;     // decisions.jsonl analysis
    graphQueue: FileHealth;    // graph-queue.jsonl depth
  };
}

Each FileHealth includes: exists, lineCount, corruptLines, sizeBytes, lastModified.

Status Meanings

StatusMeaning
healthyGraph memory operational, no issues
degradedWorking but with issues (corrupt data, high queue depth)
unavailableNot configured or missing critical components

Graph Memory

Local knowledge graph stored in .claude/memory/.

Validation Commands

# Check directory exists
ls -la .claude/memory/

# Count decisions
wc -l .claude/memory/decisions.jsonl

# Check graph queue depth
wc -l .claude/memory/graph-queue.jsonl 2>/dev/null

# Validate JSONL integrity (each line must be valid JSON)
while IFS= read -r line; do
  echo "$line" | python3 -m json.tool > /dev/null 2>&1 || echo "CORRUPT: $line"
done < .claude/memory/decisions.jsonl

Health Indicators

  • Directory exists: .claude/memory/
  • decisions.jsonl: Valid JSONL, no corrupt lines
  • graph-queue.jsonl: Queue depth < 50 (high depth = sync backlog)
  • No corruption: every line parses as valid JSON

Degraded Conditions

  • Corrupt lines: One or more JSONL lines fail to parse
  • High queue depth: >50 pending graph operations (sync backlog)
  • Missing directory: Graph memory never initialized

Troubleshooting

Graph memory missing

# Initialize graph
mkdir -p .claude/memory

The first /ork:remember call will create decisions.jsonl.

Corrupt JSONL lines

# Find corrupt lines
python3 -c "
import json, sys
with open('.claude/memory/decisions.jsonl') as f:
    for i, line in enumerate(f, 1):
        try: json.loads(line)
        except: print(f'Line {i}: {line.strip()[:80]}')
"

High queue depth

Queue items accumulate if the stop dispatcher doesn't run (e.g., session crash). The queue-recovery hook processes orphaned queues on the next session start.

Permission Rules

Permission Rules Analysis

Overview

CC 2.1.3 added detection for unreachable permission rules. This reference explains how to diagnose and fix permission issues.

Common Issues

1. Unreachable Rules

A rule is unreachable when a more general rule already matches:

// PROBLEM: Second rule never matches
{
  "permissions": [
    { "path": "**/*.md", "action": "allow" },
    { "path": "README.md", "action": "deny" }  // Unreachable!
  ]
}

Fix: Order rules from specific to general:

{
  "permissions": [
    { "path": "README.md", "action": "deny" },
    { "path": "**/*.md", "action": "allow" }
  ]
}

2. Shadowed Rules

When two rules match the same pattern with different actions:

// PROBLEM: Both match, but first wins
{
  "permissions": [
    { "matcher": "Bash", "action": "allow" },
    { "matcher": "Bash", "commands": ["rm"], "action": "deny" }
  ]
}

Fix: Use more specific matchers:

{
  "permissions": [
    { "matcher": "Bash", "commands": ["rm", "rm -rf"], "action": "deny" },
    { "matcher": "Bash", "action": "allow" }
  ]
}

3. Invalid Patterns

Glob patterns that will never match:

// PROBLEM: Typo in pattern
{
  "permissions": [
    { "path": "**.md", "action": "allow" }  // Should be **/*.md
  ]
}

Validation Commands

# Check for unreachable rules
jq '.permissions // [] | to_entries | map(select(.value.action == "allow"))' \
  .claude/settings.json

# List all permission matchers
jq '.permissions // [] | map(.matcher) | unique' .claude/settings.json

Best Practices

  1. Order rules from most specific to least specific
  2. Use explicit deny rules before catch-all allow rules
  3. Test rules with actual tool invocations
  4. Review rules after plugin updates

Remediation Guide

Remediation Guide

Quick remediation steps for common /ork:doctor findings.

Interpreting Results

StatusMeaningAction
All checks passPlugin healthyNone required
Skills warningInvalid frontmatterRun npm run test:skills
Agents warningInvalid frontmatterRun npm run test:agents
Hook errorMissing/broken hookCheck hooks.json and bundles
Memory warningGraph unavailableCheck .claude/memory/ directory
Build warningOut of syncRun npm run build
Permission warningUnreachable rulesReview .claude/settings.json
Plugin validate errorCC frontmatter/hooks.json invalidRun claude plugin validate and fix reported errors

Troubleshooting

"Skills validation failed"

# Run skill structure tests
npm run test:skills
./tests/skills/structure/test-skill-md.sh

"Build out of sync"

# Rebuild plugins from source
npm run build

"Memory unavailable"

# Check graph memory
ls -la .claude/memory/

"Plugin validate failed"

# Run CC's official validator (requires CC >= 2.1.77)
claude plugin validate

# Fix reported errors, then rebuild and re-validate
npm run build
claude plugin validate

Report Format

Doctor Report Format

ASCII Report

Full ork plugin:

+===================================================================+
|                    OrchestKit Health Report                        |
+===================================================================+
| Version: {version}  |  CC: {cc_version}  |  Plugins: ork          |
+===================================================================+
| Skills           | 67/67 valid                                    |
| Agents           | 37/37 valid                                    |
| Hooks            | 87/87 entries (12 bundles)                     |
| Memory           | Graph memory healthy                           |
| MCP              | context7 ✓  memory ✓  tavily ○  agentation ○  |
| Permissions      | 12/12 reachable                                |
| Schemas          | 15/15 compliant                                |
| Context          | 1850/2200 tokens (84%)                         |
| Coordination     | 0 stale locks                                  |
| CC Version       | {cc_version} (OK)                              |
| Plugin Validate  | PASSED (0 errors)                                |
+===================================================================+
| Status: HEALTHY (11/11 checks passed)                             |
+===================================================================+

Note: \{version\} is read from package.json at runtime. \{cc_version\} is detected from Claude Code. Counts reflect installed plugin — dynamic, not hardcoded.

JSON Output (CI Integration)

/ork:doctor --json
{
  "version": "{version}",
  "claudeCode": "{cc_version}",
  "status": "healthy",
  "plugins": {
    "installed": ["ork"],
    "count": 1
  },
  "checks": {
    "skills": {"passed": true, "count": 67, "perPlugin": {"ork": 67}},
    "agents": {"passed": true, "count": 37, "perPlugin": {"ork": 37}},
    "hooks": {"passed": true, "entries": 87, "bundles": 12, "source": "ork"},
    "memory": {"passed": true, "available": ["graph"]},
    "mcp": {"passed": true, "servers": {"context7": "enabled", "memory": "enabled", "sequential-thinking": "disabled", "tavily": "disabled", "agentation": "disabled"}},
    "permissions": {"passed": true, "count": 12},
    "schemas": {"passed": true, "count": 15},
    "context": {"passed": true, "usage": 0.84},
    "coordination": {"passed": true, "staleLocks": 0},
    "ccVersion": {"passed": true, "version": "2.1.47"},
    "pluginValidate": {"passed": true, "errors": 0, "warnings": 0, "skipped": false}
  },
  "exitCode": 0
}

Exit Codes

CodeMeaning
0All checks pass
1One or more checks failed

Schema Validation

Schema Validation

Overview

OrchestKit uses JSON schemas to validate configuration files. This reference explains how to validate and fix schema issues.

Schemas

Located in .claude/schemas/:

SchemaValidates
plugin.schema.jsonplugin.json
skill filesAll SKILL.md files
context.schema.jsonContext protocol files
coordination.schema.jsonWork registry and decision log

Validation Commands

Validate All

./tests/schemas/validate-all.sh

Validate Specific File

# Using ajv
npx ajv validate \
  -s .claude/schemas/skill files \
  -d .claude/skills/doctor/SKILL.md

# Using jq for basic structure check
jq empty .claude/skills/doctor/SKILL.md

Common Schema Errors

Missing Required Field

// ERROR: Missing "description"
{
  "name": "my-skill",
  "version": "1.0.0"
}

Fix: Add all required fields:

{
  "$schema": "../../schemas/skill files",
  "name": "my-skill",
  "version": "1.0.0",
  "description": "Description of the skill",
  "capabilities": ["capability-1"]
}

Invalid Type

// ERROR: capabilities must be array
{
  "capabilities": "single-capability"
}

Fix: Use correct type:

{
  "capabilities": ["single-capability"]
}

Pattern Mismatch

// ERROR: version must match semver
{
  "version": "1.0"
}

Fix: Use proper semver:

{
  "version": "1.0.0"
}

Batch Validation

# Validate all SKILL.md files
for category in skills/*/.claude/skills; do for f in "$category"/*/SKILL.md; do
  npx ajv validate \
    -s .claude/schemas/skill files \
    -d "$f" || echo "INVALID: $f"
done

Creating Valid Files

Use schema as a template:

# View required fields
jq '.required' .claude/schemas/skill files

# View property types
jq '.properties | to_entries | map({key: .key, type: .value.type})' \
  .claude/schemas/skill files

Skills Validation

Skills Validation

Overview

OrchestKit includes 103 skills validated against frontmatter requirements and content standards.

Skill Types

TypeCountFrontmatter
User-invocable18user-invocable: true
Internal61user-invocable: false

Validation Checks

1. Frontmatter Fields

Required fields:

  • name - Skill identifier
  • description - Brief description with triggers
  • user-invocable - Boolean for command availability

Optional fields:

  • context - fork (recommended), inherit
  • agent - Associated agent name
  • tags - Keywords for discovery
  • version - Semver version
  • allowedTools - Tool whitelist

2. Token Budget

Skills must stay within token limits:

  • Minimum: 300 tokens
  • Maximum: 5000 tokens
# Check skill size
wc -c src/skills/*/SKILL.md | sort -n

All internal links must resolve:

# Check for broken references
for skill in src/skills/*/SKILL.md; do
  grep -o 'references/[^)]*' "$skill" | while read ref; do
    dir=$(dirname "$skill")
    [ -f "$dir/$ref" ] || echo "Broken: $skill -> $ref"
  done
done

All skills in "Related Skills" section must exist:

# Validate related skill references
grep -h "^- " src/skills/*/SKILL.md | grep -v "http" | \
  sed 's/.*`\([^`]*\)`.*/\1/' | sort -u

Quick Validation

# Run full skill validation
npm run test:skills

# Or directly
./tests/skills/structure/test-skill-md.sh

Common Issues

Missing frontmatter

---
name: my-skill
description: Does something useful
user-invocable: false
---

Token budget exceeded

Split into SKILL.md + references/ directory.

Ensure file exists at references/filename.md.

Version Compatibility

CC Version Compatibility Matrix

Overview

OrchestKit requires Claude Code >= 2.1.94. This matrix documents which CC features OrchestKit depends on and their minimum version requirements.

Feature Matrix

FeatureMin CC VersionOrchestKit UsageDegradation if Missing
subagent_type in SubagentStart2.1.7Agent type detection in all SubagentStart hooksHooks fall back to prompt scanning (removed in v6.0)
session_id guaranteed2.1.9Session tracking in all hooksSession-scoped features fail
Hook continue field2.1.7All hook responsesHooks silently ignored
Permission rules detection2.1.3Doctor unreachable rules checkPermission check skipped
sonnet-4-6 model2.1.45Agent model field in frontmatterFalls back to older sonnet
Plugin hot reload2.1.45Live plugin updates without restartMust restart CC after changes
last_assistant_message2.1.47Stop/SubagentStop context captureMissing assistant context
added_dirs statusline field2.1.47Multi-directory project supportSingle-dir only in statusline
Deferred SessionStart (500ms)2.1.47Hooks fire after env is readyRace conditions on cold start
Agent model in Teams2.1.47Model field respected in team spawnsModel ignored, uses default
Worktree discovery2.1.47Skills/agents found from worktreesWorktree sessions miss plugins
Background tasks in worktrees2.1.47Task tool from worktreesBackground agents fail silently
Windows hook execution2.1.47All hooks on WindowsHooks silently fail on Windows
Windows worktree sessions2.1.47Drive letter casing matchWorktree sessions not matched
Improved agent memory2.1.47Higher context limitsConservative limits apply
Ctrl+F find in output2.1.47Search through session outputNo search capability
Shift+Down multi-line input2.1.47Multi-line prompt entrySingle-line input only
Memory leak fixes (8 leaks)2.1.50Stable long-running sessionsMemory grows unbounded over time
claude_agents_cli2.1.50Doctor agent registration checkAgent registration check skipped
ConfigChange hook event2.1.50Detect mid-session settings changesStale config until restart
Auto-memory2.1.59Claude saves learnings across sessionsManual CLAUDE.md only
@import in CLAUDE.md2.1.59Modular instruction filesSingle monolithic CLAUDE.md
.claude/rules/ with paths:2.1.59Path-scoped rules per directoryAll rules loaded always
HTTP hooks (type: "http")2.1.63Observability hooks POST to remote endpointsFalls back to command hooks (local JSONL)
Worktree config sharing2.1.63Project configs shared across worktreesManual config copy needed
/clear resets skills2.1.63Fixes stale skill content after editsNative since 2.1.63; no workaround needed
Teammate memory fix2.1.63Safe for 5+ teammate swarmsMemory grows in long team sessions
/simplify, /batch built-in2.1.63Bundled CC slash commandsNot available
ENABLE_CLAUDEAI_MCP_SERVERS2.1.63Opt out of claude.ai MCP serversAll claude.ai MCPs always loaded
InstructionsLoaded hook event2.1.69Rules materialization timing, context injectionRules written too late, stale context
once: true hooks2.1.6913 skill context loaders fire once then auto-removeLoaders fire every prompt (wasted tokens)
permissionDecision: 'ask'2.1.69Gray-zone command escalation to userBinary allow/deny only
tool_use_id correlation2.1.69Pre/PostToolUse pair trackingNo correlation between pre/post
$\{ENV_VAR\} in HTTP hooks2.1.69$TOKEN in headers works; $\{VAR\} in URLs broken since 2.1.71 (validated before expansion) — use generate-http-hooks CLI with real URLs insteadMust use command hooks for env vars
Path-scoped rules (paths:)2.1.6910 conditional rules scoped to file pathsAll rules always loaded
Worktree dedup fixes2.1.70Prevents duplicate hook fires in worktreesHooks may fire twice
74% prompt re-render reduction2.1.70CC-internal perf (no action needed)Higher latency on re-renders
~600 token skill listing savings2.1.70CC-internal (frees headroom for hook injection)Tighter token budget
MCP cache invalidation2.1.70MCP tools refresh on reconnectStale MCP tool definitions
/loop command2.1.71Recurring prompts on intervals (deploy watch, health monitor)Manual re-invocation
Cron scheduling tools2.1.71Session-scoped cron for recurring tasksNo in-session scheduling
Expanded bash auto-approval2.1.71fmt, comm, cmp, seq, printf, test, etc. auto-approvedManual approval for POSIX utils
/debug toggle mid-session2.1.71Toggle debug logging without restartMust restart to change log level
settings.local.json uninstall2.1.71/plugin uninstall writes to local settings, not sharedUninstall modifies committed settings.json
voice:pushToTalk rebindable2.1.71Custom keybinding for push-to-talk in voice modeFixed keybinding
Background agent output path2.1.71Completion notifications include output file pathMissing output path in notifications
Plugin multi-instance fix2.1.71Concurrent CC instances preserve plugin installsPlugin state lost with multiple instances
ToolSearch cleanup2.1.71"Tool loaded." message removed from outputNoisy ToolSearch output
Plugin marketplace fixes2.1.71@ref parsing and merge conflict resolutionMarketplace update/add failures
Skill listing skip on --resume2.1.71~600 tokens saved on session resume (no re-injection)Skill listing re-injected on every resume
ExitWorktree tool2.1.72Agents can leave worktree sessions programmaticallyAgents stuck in worktree until session ends
Agent model parameter restored2.1.72Per-invocation model override via Agent toolModel override silently ignored
Team agents inherit leader model2.1.72Teammates use leader's model when unspecifiedTeammates fall back to default model
/plan accepts description arg2.1.72/plan fix auth bug starts plan with contextMust type description after /plan prompt
Effort levels simplified2.1.72Three levels: low/medium/high (was 5-level)Five-level effort scale
CLAUDE_CODE_DISABLE_CRON env var2.1.72Disable cron scheduling via environmentNo way to disable cron
Skill hooks double-fire fix2.1.72Skill-scoped hooks fire exactly onceSkill hooks may fire twice per invocation
/clear preserves bg agents2.1.72Background agents survive /clear/clear kills background agents
Agent prompt persistence fix2.1.72Agent prompt no longer deleted from settings.jsonAgent prompts lost on restart
AlwaysAllow rule matching fix2.1.72Permission rules match commands correctlyAlwaysAllow rules may not match
Worktree task resume fixes2.1.72cwd restore + bg notification metadata on resumeWorktree tasks resume in wrong dir, missing metadata
Prompt cache fix2.1.72Up to 12x token cost reduction via improved cachingHigher token costs from cache misses
Expanded bash auto-approval2.1.72lsof, pgrep, tput, ss, fd, fdfind auto-approvedManual approval for system inspection tools
vscode://anthropic.claude-code/open2.1.72URI handler to open CC from VS Code linksNo deep-link integration with VS Code
/output-style deprecated → /config2.1.73No OrchestKit references to /output-styleNone — already using /config
Skill-file deadlock fix on git pull2.1.73Fixes hang with 89-skill plugin after git pullCC hangs during/after git pull
SessionStart hooks double-fire fix2.1.73~15 SessionStart hooks fire exactly once on resumeHooks fire twice on --resume/--continue
No-op system reminder injection fix2.1.73~2K tokens/turn recovered across 99 hooksEmpty system-reminder tags waste context
Opus 4.6 default on Bedrock/Vertex/Foundry2.1.736 opus-tier agents auto-upgrade on cloud providersOlder Opus model on cloud providers
/context optimization hints2.1.74Actionable suggestions for context-heavy tools, memory bloat, capacityNo optimization guidance
autoMemoryDirectory setting2.1.74Custom auto-memory storage path via settings.jsonDefault path only
SessionEnd hook.timeout respected2.1.74SessionEnd hooks run to configured timeout (was hardcoded 1.5s)SessionEnd hooks killed at 1.5s regardless of config
CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS2.1.74Env var override for SessionEnd hook timeoutNo env var control
--plugin-dir precedence2.1.74Local dev plugins override marketplace installsMarketplace takes precedence
Full model IDs in agent frontmatter2.1.74claude-opus-4-6 etc. accepted (not just opus)Only symbolic names (opus, sonnet, haiku)
Managed policy precedence fix2.1.74Managed policy ask overrides user allow + allowed-toolsUser rules could bypass managed policy
Streaming + bash prefix memory fixes2.1.74Two memory leaks fixed (streaming buffers, bash prefix cache)RSS growth in long sessions
1M context default for Opus 4.62.1.75No extra usage needed on Max/Team/EnterpriseMust opt-in to 1M context
Memory file timestamps2.1.75Last-modified timestamps for memory freshness reasoningNo staleness signal on memories
Hook source in permission prompts2.1.75Shows settings/plugin/skill origin when hook asks for confirmationOpaque hook origin
Token estimation fix2.1.75Prevents premature compaction from thinking/tool_use over-countingCompaction triggers too early
Async hook messages suppressed2.1.75Hook completion messages hidden by default (visible with --verbose)Noisy async hook output
MCP elicitation support2.1.76Servers request structured input mid-task via form/URL dialogNo MCP input dialogs
Elicitation/ElicitationResult hooks2.1.76Intercept and override MCP elicitation requests/responsesNo elicitation interception
-n/--name CLI flag2.1.76Set display name for session at startupNo session naming at launch
worktree.sparsePaths setting2.1.76Selective sparse-checkout for large monoreposFull checkout in worktrees
PostCompact hook2.1.76Fires after compaction completes for context recoveryOnly PreCompact (before) exists
/effort slash command2.1.76Set model effort level mid-sessionNo effort control
feedbackSurveyRate setting2.1.76Enterprise session quality survey sample rateNo quality feedback loop
Deferred tools compaction fix2.1.76ToolSearch schemas retained after compactionArray/number params rejected post-compaction
Background agent partial results2.1.76Killed agents preserve partial results in contextKilled agents lose all output
Compaction circuit breaker2.1.76Auto-compaction stops after 3 consecutive failuresCompaction retries indefinitely
Stale worktree cleanup2.1.76Worktrees from interrupted parallel runs auto-cleanedStale worktrees accumulate
Worktree startup performance2.1.76Direct ref reads, skip redundant fetchSlower worktree startup
Opus 4.6 64k default output2.1.7764k default, 128k upper bound for Opus+Sonnet32k output limit
allowRead sandbox setting2.1.77Re-allow read access within denyRead regionsNo granular read exceptions
claude plugin validate2.1.77Official frontmatter + hooks.json validationManual/custom validation only
SendMessage auto-resume2.1.77Stopped agents auto-resume on SendMessageSendMessage returns error for stopped agents
Agent resume param removed2.1.77Must use SendMessage({to: id}) to continue agentsAgent(resume=...) silently ignored
Background bash 5GB limit2.1.77Tasks killed at 5GB output to prevent disk fillUnbounded background output
/fork renamed to /branch2.1.77/fork still works as aliasOnly /fork available
PreToolUse allow/deny fix2.1.77"allow" no longer bypasses deny rules (security fix)allow hooks could bypass deny rules
Worktree race condition fix2.1.77Stale cleanup no longer deletes resumed agent worktreesRace between cleanup and agent resume
--resume performance2.1.7745% faster loading, ~100-150MB less peak memorySlower fork-heavy session resume
Progress message memory fix2.1.77Progress messages cleaned up during compactionMemory growth from accumulated progress messages
StopFailure hook event2.1.78Hooks fire on API errors (rate limit, auth failure)No hook on API errors
$\{CLAUDE_PLUGIN_DATA\}2.1.78Plugin persistent state survives plugin updatesState lost on plugin update
Agent effort/maxTurns/disallowedTools frontmatter2.1.78Plugin agents support effort, turn limits, tool restrictionsNo agent-level frontmatter controls
PreToolUse allow bypass fix2.1.78"allow" hooks no longer bypass deny permission rulesallow hooks could bypass deny rules
claude plugin validate enhanced2.1.78Validates skill, agent, command frontmatter + hooks.jsonBasic validation only
Worktree skills/hooks loading fix2.1.78--worktree flag loads skills and hooks from worktree dirSkills/hooks loaded from original dir
--console auth flag2.1.79claude auth login --console for API billing authOnly OAuth/API key auth
"Show turn duration" toggle2.1.79Turn duration visible in /config menuNo turn duration display
/remote-control (VSCode)2.1.79Bridge session to claude.ai/code from browser/phoneVSCode-only sessions
Multi-dir PLUGIN_SEED_DIR2.1.79Multiple seed dirs separated by platform path delimiterSingle seed directory only
-p mode Ctrl+C fix2.1.79Ctrl+C works in print modeCtrl+C ignored in -p mode
Startup memory reduction2.1.79~18MB less memory on startupHigher startup memory
rate_limits statusline field2.1.80Statusline scripts receive rate limit usage (5h/7d windows, used_percentage, resets_at)No rate limit visibility
source: 'settings' marketplace2.1.80Declare plugin entries inline in settings.jsonMarketplace JSON files only
CLI tool usage detection for tips2.1.80Plugin tips detect CLI tool usage, not just file patternsFile pattern matching only
effort frontmatter for skills2.1.80Skills declare effort level (low/high) to override model effortNo per-skill effort control
--channels (research preview)2.1.80MCP servers push messages into active sessionPull-only MCP communication
--resume parallel tool fix2.1.80Sessions with parallel tool calls restore all tool_use/tool_result pairs[Tool result missing] on resume
Voice mode WebSocket fix2.1.80Fixes Cloudflare bot detection on non-browser TLS fingerprintsVoice mode connection failures
Fine-grained tool streaming fix2.1.80Fixes 400 errors through API proxies, Bedrock, or VertexStreaming failures on proxied deployments
/effort shows auto resolution2.1.80Shows what "auto" resolves to, matching status barOpaque auto effort
Simplified plugin install tips2.1.80Single /plugin install command instead of two-step flowTwo-step marketplace add + install
Startup memory reduction (250k repos)2.1.80~80 MB saved on startup in large repositoriesHigher startup memory on large repos
Managed settings cache fix2.1.80enabledPlugins, permissions.defaultMode, policy env vars applied at startupStale remote-settings.json from prior session
--bare flag for -p mode2.1.81Eval pipeline uses --bare to skip hooks/LSP/plugin sync for faster scripted gradingFull plugin/hook overhead on every -p call
--channels permission relay2.1.81Channel servers forward tool approval prompts to phone for long-running agentsMust be at terminal for every permission prompt
Plugin freshness re-clone2.1.81Ref-tracked plugins re-clone on every load for latest upstreamStale plugins until manual reinstall
Background agent task output race fix2.1.81Background agent output no longer hangs between polling intervalsTask output could hang indefinitely
Worktree session resume2.1.81--resume of a worktree session switches back to that worktreeResumed worktree sessions start in main tree
Plugin hooks deleted-dir fix2.1.81Hooks no longer block prompt submission if plugin directory deleted mid-sessionHook deadlock during npm run build
Invisible hook attachment fix2.1.81Hook attachments no longer inflate message count in transcript modeInflated session analytics from hook overhead
MCP tool call collapse2.1.81MCP read/search calls collapse to single "Queried {server}" line (Ctrl+O to expand)Verbose MCP tool output
showClearContextOnPlanAccept2.1.81Plan mode hides "clear context" by default; restorable via setting"Clear context" shown on every plan accept
Concurrent session re-auth fix2.1.81Multiple CC sessions no longer require repeated re-authenticationRe-auth when one session refreshes OAuth
Dashed-string permission fix2.1.81Bash commands with dashes in strings no longer trigger false permission promptsFalse positives on dashed strings
! bash mode discoverability2.1.81Claude suggests ! prefix for interactive commands automaticallyMust know about ! prefix
MCP OAuth CIMD/SEP-9912.1.81MCP OAuth supports Client ID Metadata Document for servers without DCRLimited MCP OAuth compatibility
Node.js 18 crash fix2.1.81Fixed crash on Node.js 18Crash on Node.js 18
Windows line-by-line streaming disabled2.1.81Disabled line-by-line streaming on Windows/WSL due to rendering issuesRendering glitches on Windows
Remote Control fixes (4)2.1.81Session titles, /rename sync, /exit archiving, first-prompt titles fixedGeneric titles, unreliable archiving
Voice mode fixes (2)2.1.81Retry failure messages and WebSocket recovery fixedMisleading errors, dropped audio
managed-settings.d/ drop-in directory2.1.83Separate teams deploy independent policy fragments, merged alphabeticallySingle monolithic managed-settings.json
CwdChanged hook event2.1.83Reactive hooks on working directory change (direnv-like)No cwd change detection
FileChanged hook event2.1.83Reactive hooks on file changes (cache invalidation, tamper detection)No file change detection
sandbox.failIfUnavailable2.1.83Fail-fast when sandbox unavailable instead of running unsandboxedSilently falls back to unsandboxed
CLAUDE_CODE_SUBPROCESS_ENV_SCRUB2.1.83Strip Anthropic/cloud creds from subprocess environmentsCreds inherited by subprocesses
Agent initialPrompt frontmatter2.1.83Auto-submit first turn on agent spawn, zero-wasted-turn bootstrapAgents idle on spawn until first interaction
Plugin userConfig with sensitive:true2.1.83Plugin config at enable time, keychain storage for sensitive valuesPlain env vars for all secrets
TaskOutput deprecated2.1.83Use Read on background task output file insteadTaskOutput still functional but deprecated
--bare -p 14% faster2.1.83Faster eval pipeline startupSlower --bare startup
Background agent compaction fix2.1.83Background agents no longer become invisible after compactionDuplicate agents spawned post-compaction
Background agent stuck state fix2.1.83Background tasks no longer stuck "running" when git/API hangsStuck tasks require manual cleanup
Uninstalled plugin hooks fix2.1.83Hooks stop firing immediately after plugin uninstallStale hooks fire until next session
Transcript search (/ in Ctrl+O)2.1.83Search through transcript with n/N steppingNo transcript search
Plugin disk cache startup2.1.83Commands/skills/agents load from cache without re-fetchingSlower startup from disk walks
Plugin MCP dedup2.1.83Plugin MCP servers duplicating org connectors are suppressedDuplicate MCP connections
TaskCreated hook event2.1.84Task initialization tracking, metadata injection, dependency validationNo hook on task creation
WorktreeCreate type: "http"2.1.84Return worktree path via hookSpecificOutput.worktreePath for API-driven orchestrationCommand hooks only
paths: YAML glob list (skills/rules)2.1.84Auto-load relevant files when skill activates; 15+ skills use thisManual Read calls for context
ANTHROPIC_DEFAULT_\{OPUS,SONNET,HAIKU\}_MODEL_SUPPORTS2.1.84Override effort/thinking capability detection for Bedrock/Vertex/FoundryIncorrect capability detection on 3P
ANTHROPIC_DEFAULT_*_MODEL_NAME/_DESCRIPTION2.1.84Customize /model picker labels for custom deploymentsGeneric model labels
CLAUDE_STREAM_IDLE_TIMEOUT_MS2.1.84Configurable streaming idle watchdog (default 90s, OrchestKit sets 180s)Fixed 90s timeout kills long agents
allowedChannelPlugins managed setting2.1.84Enterprise admin plugin allowlist for channel pluginsNo channel plugin governance
x-client-request-id header2.1.84API request correlation ID for debugging timeoutsNo request-level tracing
PowerShell tool (Windows opt-in)2.1.84Native PowerShell as alternative to Git Bash on WindowsGit Bash only on Windows
MCP tool description 2KB cap2.1.84Prevents OpenAPI-generated servers from bloating contextUnbounded MCP tool descriptions
MCP server deduplication2.1.84Local MCP config wins over claude.ai connectorsDuplicate MCP connections
Workflow subagent json-schema fix2.1.84Outer session + subagent both specifying schema no longer 400sAPI 400 on nested json-schema
System-prompt caching + ToolSearch2.1.84Global caching works when ToolSearch enabled (incl. MCP users)Cache misses with ToolSearch
Idle-return prompt (75+ min)2.1.84Nudges /clear after 75+ minutes idle, reduces stale token re-cachingNo idle session detection
owner/repo#123 link format2.1.84Bare #123 no longer auto-linked; must use owner/repo#123Bare #123 was auto-linked
Improved startup parallelism (30ms)2.1.84setup() runs in parallel with slash command and agent loadingSequential startup
MCP startup non-blocking2.1.84REPL renders immediately, MCP servers connect in backgroundREPL blocked until all MCP servers connect
Background bash stuck notification2.1.84Tasks stuck on interactive prompt surface notification after ~45sStuck tasks hang silently
MCP cache leak fix on reconnect2.1.84Tool/resource cache properly cleaned on server reconnectMemory leak on MCP reconnect
p90 prompt cache rate improvement2.1.84Better prompt caching across sessionsLower cache hit rate
PreToolUse for AskUserQuestion2.1.85Headless AskUserQuestion responder hooksNo hook on AskUserQuestion
Config disk write fix2.1.86Eliminates unnecessary config writes on every skill invocationUnnecessary disk I/O per skill
Write/Edit outside project root2.1.86Write/Edit fix for files outside project rootWrite/Edit fails for external files
PermissionDenied hook event2.1.88Fires after auto mode classifier denials, supports \{retry: true\}No hook on permission denials
permissionMode: "auto"2.1.88Classifier-based approval replaces interactive promptsInteractive permission prompts
file_path always absolute2.1.88PreToolUse/PostToolUse file_path always absolute for Write/Edit/ReadRelative paths possible
Compound if matching2.1.88Hook if conditions match compound commands and env-var prefixesOnly simple command matching
CLAUDE_CODE_NO_FLICKER=12.1.88Flicker-free alt-screen rendering with virtualized scrollbackDefault rendering
"defer" permission decision2.1.89PreToolUse hooks return decision:"defer" to pause headless sessionsOnly allow/deny/ask
TaskCreated hook blocking2.1.89TaskCreated hook fires with documented blocking behaviorTaskCreated (2.1.84) without blocking docs
MCP_CONNECTION_NONBLOCKING=true2.1.89Skip MCP connection wait in -p mode, bounded at 5sBlocks on slowest MCP server
Named subagent typeahead2.1.89Named subagents appear in @ mention typeaheadOnly file names in typeahead
Hook output disk spill2.1.89Hook output >50K chars saved to disk with file path + previewFull output injected into context
Edit after Bash view2.1.89Edit works on files viewed via sed -n/cat without ReadMust Read before Edit
Symlink permission check2.1.89Edit/Read allow rules check resolved symlink targetOnly requested path checked
/powerup interactive lessons2.1.90Interactive feature tutorials with animated demosNo built-in learning tools
CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE2.1.90Keep marketplace cache when git pull fails (offline support)Marketplace cache lost on git failure
.husky protected directory2.1.90.husky added to protected dirs in acceptEdits mode.husky writable in acceptEdits
PreToolUse exit code 2 JSON fix2.1.90Hooks emitting JSON to stdout with exit code 2 now correctly blockExit code 2 JSON silently ignored
Format-on-save hook fix2.1.90Edit/Write no longer fail when PostToolUse format-on-save rewrites file"File content has changed" error
--resume prompt cache fix2.1.90--resume no longer causes full prompt-cache miss with deferred tools/MCPFull cache miss on resume
MCP schema cache perf2.1.90Eliminated per-turn JSON.stringify of MCP tool schemasRedundant serialization per turn
SSE linear transport perf2.1.90SSE transport handles large frames in linear time (was quadratic)Quadratic SSE processing
Transcript write perf2.1.90Long conversations no longer slow down quadratically on transcript writesQuadratic transcript slowdown
--resume hides -p sessions2.1.90Resume picker no longer shows claude -p or SDK sessions-p sessions in resume picker
DNS cache auto-allow removed2.1.90Get-DnsClientCache and ipconfig /displaydns removed from auto-allowDNS cache commands auto-allowed
MCP _meta result size override2.1.91_meta["anthropic/maxResultSizeChars"] annotation (up to 500K) — mcp-output-transform respects itLarge MCP results always truncated at 2000 chars
disableSkillShellExecution2.1.91Setting disables inline shell in skills/commands/pluginsShell execution always enabled
Plugin bin/ executables2.1.91Plugins ship executables under bin/ invokable as bare Bash commandsMust use full paths to plugin scripts
Deep link multiline prompts2.1.91claude-cli://open?q= supports %0A encoded newlinesMulti-line deep links rejected
Edit tool shorter anchors2.1.91Edit uses shorter old_string anchors, reducing output tokensLonger anchors, more output tokens
--resume transcript chain fix2.1.91Async transcript write failures no longer lose conversation historyHistory loss on async write failure
permissions.defaultMode:"auto" validation2.1.91JSON schema validates auto as permission modeauto accepted but could cause issues
Plan mode remote session fix2.1.91Plan file retained after container restart in remote sessionsPlan lost after container restart
forceRemoteSettingsRefresh policy2.1.92Fail-closed startup: blocks until remote managed settings fetched, exits on failureStale managed settings on startup
Stop hook preventContinuation fix2.1.92prompt-type Stop hooks no longer fail when small fast model returns ok:false; preventContinuation:true restoredStop hooks could incorrectly fail
Tool input JSON-string streaming fix2.1.92Array/object tool_input fields no longer emitted as JSON-encoded strings during streamingPreToolUse hooks receive malformed tool_input
Plugin MCP stuck "connecting" fix2.1.92Plugin MCP servers no longer stuck connecting when duplicating unauthenticated claude.ai connectorsMCP servers hang on session start
Write tool diff perf2.1.9260% faster diff computation for large files with tabs/&/$ charactersSlower Write tool on large files
Remote Control hostname prefix2.1.92Session names default to hostname prefix, overridable with --remote-control-session-name-prefixGeneric session names
Per-model /cost breakdown2.1.92/cost shows per-model and cache-hit breakdown for subscription usersAggregate cost only
/tag command removed2.1.92Removed — no OrchestKit referencesN/A
/vim command removed2.1.92Removed — toggle via /config → Editor modeN/A
Subagent tmux pane fix2.1.92Subagent spawning no longer fails after tmux windows killed/renumbered"Could not determine pane count" error
Prompt cache expiry hint2.1.92Pro users see uncached token count when returning after cache expiresNo cache expiry visibility
Skill frontmatter hooks fix2.1.9420 OrchestKit skill context loaders (assess, implement, verify, brainstorm, review-pr, fix-issue, doctor, explore, cover, setup, commit, quality-gates, visualize-plan, release-checklist, code-review-playbook) declared via hooks: in SKILL.md frontmatter now fire — previously silently ignoredAll 20 skill context loaders dead — skills run without their primed context (much worse UX)
hookSpecificOutput.sessionTitle2.1.94unified-dispatcher sets session title from branch/effort/skill context — visible in prompt bar and remote sessionsSessions use auto-generated names
keep-coding-instructions frontmatter2.1.94Plugin output styles preserve coding instructions when set trueOutput styles may strip coding guidance
Plugin skill name stability2.1.94"skills": ["./"] uses frontmatter name for invocation, stable across install methodsInvocation name depends on directory basename
$\{CLAUDE_PLUGIN_ROOT\} local-marketplace fix2.1.94Resolves to installed cache (not marketplace source) for local-marketplace pluginsFile lookups point at wrong directory
Plugin hooks CLAUDE_PLUGIN_ROOT fix2.1.94Plugin hooks no longer fail with "No such file or directory" when env var unsetHooks fail cold-start on some platforms
Default effort high2.1.94Default effort level is high for API-key/Bedrock/Vertex/Foundry/Team/Enterprise users (use /effort low or /effort medium to reduce)Default medium — token budgets scaled conservatively
429 rate-limit surface2.1.94Agents no longer stuck after 429 with long Retry-After — error surfaces immediatelyAgents appear stuck, silent wait
SDK/print mode partial response fix2.1.94Preserves partial assistant response on interrupt mid-streamPartial responses lost, breaks bare-eval/eval-runner
--resume across worktrees2.1.94Resume sessions from other worktrees of the same repo directly (was: print cd command)Must cd manually to resume worktree session
CJK/multibyte stream-json fix2.1.94No U+FFFD corruption when chunk boundaries split UTF-8 sequencesInternational content corrupted in stream-json
Amazon Bedrock via Mantle2.1.94Opt in with CLAUDE_CODE_USE_MANTLE=1Standard Bedrock only
Bedrock bearer token 403 fix2.1.96Fixed 403 "Authorization header is missing" regression when using AWS_BEARER_TOKEN_BEDROCK or CLAUDE_CODE_SKIP_BEDROCK_AUTH (regression in 2.1.94)Bedrock bearer-token auth broken on 2.1.94
MCP tool description 2KB cap2.1.95Tool descriptions and server instructions capped at 2KB — prevents OpenAPI-generated MCP servers from bloating contextVerbose MCP descriptions consume unbounded context
MCP local config dedup2.1.95MCP servers configured both locally and via claude.ai connectors are deduplicated, local config winsDuplicate MCP tools from both sources
Focus view toggle (Ctrl+O)2.1.97Condensed view in NO_FLICKER mode: prompt, one-line tool summary with edit diffstats, final responseNo condensed view option
refreshInterval status line2.1.97New setting re-runs the status line command every N seconds automaticallyStatus line only updates per turn
workspace.git_worktree2.1.97Boolean in status line JSON input, set when cwd is inside a linked git worktreeMust shell out to detect worktree
● N running in /agents2.1.97Live subagent instance count next to each agent typeNo live agent count
Stop/SubagentStop long-session fix2.1.97prompt-type Stop/SubagentStop hooks no longer fail on long sessions; hook evaluator shows actual errorHooks fail silently on long sessions
Subagent worktree/cwd leak fix2.1.97Subagents with worktree isolation or cwd: override no longer leak working directory back to parent Bash toolParent inherits child's cwd
claude plugin update fix2.1.97No longer reports "already at latest" for git-based marketplace plugins when remote has newer commitsUsers stuck on stale plugin versions
YAML boolean skill name fix2.1.97Slash command picker no longer breaks when plugin frontmatter name is a YAML boolean keywordSkills named true/false/yes/no break picker
Bash permissions hardened2.1.97Tighter env-var prefix checks and network redirect validation, fewer false prompts on common commandsLooser Bash permission checks
Accept Edits env-prefix auto-approve2.1.97Auto-approves filesystem commands prefixed with safe env vars or process wrappers (e.g. LANG=C rm foo)Env-prefixed commands always prompt
sandbox.network.allowMachLookup macOS2.1.97Now actually takes effect on macOSSetting ignored on macOS
MCP HTTP/SSE memory leak fix2.1.97Connections no longer accumulate ~50 MB/hr of unreleased buffers on reconnectMemory leak on MCP reconnect
MCP OAuth metadata URL fix2.1.97oauth.authServerMetadataUrl honored on token refresh after restart (fixes ADFS)Token refresh ignores custom auth URL
429 retry exponential backoff2.1.97Exponential backoff applied as minimum instead of burning all attempts in ~13sRetries exhaust quickly
/resume picker fixes2.1.97--resume &lt;name&gt; editable, Ctrl+A reload preserves search, task-status text fixed, cross-project stalenessMultiple resume UX bugs
Resume large file diff fix2.1.97File-edit diffs no longer disappear on --resume for files >10KBDiffs lost for large files
Compaction subagent transcript dedup2.1.97No longer writes duplicate multi-MB subagent transcripts on prompt-too-long retriesTranscript bloat on long sessions
Prototype property settings.json fix2.1.97Permission rules with names matching JS prototype properties (toString, constructor) no longer cause settings.json to be silently ignoredNamed rules can break entire config
Image compression parity2.1.97Pasted/attached images compressed to same token budget as Read tool imagesPasted images use more tokens than Read
Bash OTEL TRACEPARENT2.1.97Subprocesses inherit W3C TRACEPARENT env var when OTEL tracing is enabledNo trace propagation to subprocesses
Managed-settings removal fix2.1.97Allow rules removed by admin take effect without process restartStale rules until restart
additionalDirectories mid-session2.1.97permissions.additionalDirectories changes in settings apply mid-sessionChanges require restart
Bridge session git info2.1.97Bridge sessions show local git repo, branch, and working directory on claude.ai session cardNo git context on bridge card
Transcript size optimization2.1.97Skip empty hook entries and cap stored pre-edit file copiesLarger transcripts

Version Detection

The doctor skill checks the CC version at runtime:

# CC reports version via environment or CLI
claude --version  # Returns e.g. "2.1.47"

Compatibility Levels

CC VersionSupport LevelDescription
< 2.1.7UnsupportedCore hook protocol missing
2.1.7 - 2.1.44DegradedMissing memory improvements, worktree fixes, Windows support
2.1.45 - 2.1.46PartialMissing 2.1.47 features but functional
2.1.47 - 2.1.49PartialAll hook features, memory leak risk in long sessions
2.1.50 - 2.1.58PartialMemory leaks fixed, missing auto-memory and @imports
2.1.59 - 2.1.62PartialAuto-memory, @imports, missing HTTP hooks and 2.1.69 features
2.1.63 - 2.1.68PartialHTTP hooks, worktree config sharing, missing InstructionsLoaded/once:true/ask
>= 2.1.69FullInstructionsLoaded, once:true, outputAsk, path-scoped rules
>= 2.1.72FullExitWorktree, agent model override, effort simplification, prompt cache 12x
>= 2.1.76FullMCP elicitation, PostCompact hook, /effort command
>= 2.1.78FullStopFailure event, CLAUDE_PLUGIN_DATA, agent effort/maxTurns frontmatter
>= 2.1.80Fullrate_limits in StatusLine, skill effort frontmatter, --channels preview
>= 2.1.83FullCwdChanged/FileChanged events, managed-settings.d/, sandbox.failIfUnavailable
>= 2.1.84FullTaskCreated event, paths: glob, CLAUDE_STREAM_IDLE_TIMEOUT_MS, MCP non-blocking startup
>= 2.1.85FullPreToolUse for AskUserQuestion, headless responder hooks
>= 2.1.86FullConfig disk write fix, Write/Edit outside project root
>= 2.1.75Full++++++1M context default, memory timestamps, hook source display, token estimation fix
>= 2.1.76Full+++++++PostCompact hook, Elicitation hooks, worktree.sparsePaths, /effort, bg agent partial results
>= 2.1.77Full++++++++64k/128k output, allowRead sandbox, plugin validate, SendMessage auto-resume, PreToolUse deny fix
>= 2.1.78Full+++++++++StopFailure hooks, CLAUDE_PLUGIN_DATA, agent frontmatter, plugin validate, worktree skills fix
>= 2.1.79Full++++++++++--console auth, /remote-control, multi-dir PLUGIN_SEED_DIR, turn duration toggle
>= 2.1.80Full+++++++++++rate_limits statusline, effort frontmatter, --channels, source:settings marketplace, --resume parallel fix
>= 2.1.81Full++++++++++++--bare eval mode, --channels permission relay, plugin re-clone freshness, worktree resume, bg agent race fix
>= 2.1.83Full+++++++++++++managed-settings.d/, CwdChanged/FileChanged hooks, sandbox.failIfUnavailable, initialPrompt, userConfig, env scrub
>= 2.1.84Full++++++++++++++TaskCreated hook, WorktreeCreate HTTP, paths: globs, ANTHROPIC_DEFAULT_*, stream timeout, MCP 2KB cap, json-schema fix
>= 2.1.88Full+++++++++++++++PermissionDenied hook, auto permission mode, absolute file_path, compound if matching, NO_FLICKER
>= 2.1.89Full++++++++++++++++defer permission, TaskCreated blocking, MCP_CONNECTION_NONBLOCKING, named subagent typeahead, hook disk spill
>= 2.1.90Full+++++++++++++++++/powerup, PLUGIN_KEEP_MARKETPLACE, .husky protected, exit code 2 fix, format-on-save fix, 3x perf
>= 2.1.91FullMCP result size override, disableSkillShellExecution, plugin bin/, Edit shorter anchors, transcript fix
>= 2.1.92FullforceRemoteSettingsRefresh, Stop hook preventContinuation fix, tool input JSON-string fix, Write perf, tmux pane fix
>= 2.1.94MinimumSkill frontmatter hooks fix (unlocks 20 context loaders), sessionTitle hook output, keep-coding-instructions, default effort high, rate-limit 429 surface, --resume across worktrees, CJK stream-json fix — current minimum
>= 2.1.95FullMCP tool description 2KB cap, local MCP config dedup (npm-only release)
>= 2.1.96FullBedrock bearer token 403 hotfix (2.1.94 regression)
>= 2.1.97RecommendedrefreshInterval status line, workspace.git_worktree, Stop/SubagentStop long-session fix, subagent cwd leak fix, plugin update fix, Bash permissions hardened, TRACEPARENT OTEL, image compression parity, 429 exponential backoff, MCP memory leak fix, transcript optimization

Doctor Check Implementation

The doctor skill validates CC version in category 10:

Claude Code: 2.1.47 (OK)
- Minimum required: 2.1.47

When CC version is below 2.1.47, doctor should show:

Claude Code: 2.1.44 (DEGRADED)
- Minimum required: 2.1.47
- Missing features:
  - last_assistant_message (Stop/SubagentStop context)
  - added_dirs (multi-directory support)
  - Windows hook execution
  - Worktree discovery
  - Deferred SessionStart
- Upgrade: npm install -g @anthropic-ai/claude-code@latest

Memory Leak Warning (CC < 2.1.50)

CC 2.1.50 fixed 8 memory leaks affecting long-running sessions:

  • Agent teams: completed teammate tasks never garbage collected
  • Task state objects never removed from AppState
  • TaskOutput retained data after cleanup
  • CircularBuffer cleared items retained in backing array
  • Shell execution: ChildProcess/AbortController refs retained after cleanup
  • LSP diagnostic data never cleaned up after delivery
  • File history snapshots: unbounded growth
  • Internal caches not cleared after compaction (fixed in 2.1.63)

Recommendation: If CC version < 2.1.50, warn user to upgrade for long sessions.

Doctor should display when CC < 2.1.50:

Claude Code: 2.1.4x (MEMORY LEAK RISK)
- 8 memory leaks fixed in 2.1.50 affect long-running sessions
- Symptoms: increasing memory usage, slower responses over time
- Upgrade: npm install -g @anthropic-ai/claude-code@latest

Release Channel Detection

Doctor should detect and display the release channel alongside the CC version check. The version is read from .claude-plugin/plugin.json or version.txt.

Version PatternChannelStability
X.Y.Z (no suffix)stableProduction-ready
X.Y.Z-beta.NbetaFeature-complete, may have bugs
X.Y.Z-alpha.NalphaExperimental, expect breaking changes

When on beta or alpha, doctor should append a pre-release reminder to the compatibility output:

Claude Code: 2.1.56 (OK)
- Minimum required: 2.1.56
- OrchestKit channel: beta (v7.0.0-beta.3)
  ⚠ Pre-release version — some features may be unstable. Report issues at github.com/yonatangross/orchestkit/issues

On stable, no extra warning is needed — just include the channel line:

Claude Code: 2.1.56 (OK)
- Minimum required: 2.1.56
- OrchestKit channel: stable (v7.0.0)

OrchestKit Version History

OrchestKitMin CCKey Changes
v7.38.x2.1.101CC 2.1.101 adoption + frontmatter audit: 26 skill frontmatter fixes (context/agent fields now enforced), deny-overrides-ask behavior, subagent dynamic MCP inheritance, worktree agent file access, /team-onboarding command, OS CA cert trust, focus mode self-contained summaries, RemoteTrigger run fix, settings resilience, 18 new matrix entries (253 total)
v7.37.x2.1.98CC 2.1.98 adoption: Monitor tool for streaming background events, SCRIPT_CAPS env var, partial progress from failed bg subagents, hook stderr in transcript, /agents tabbed layout, /reload-plugins skill discovery, Bash permission hardening (backslash escape fix, compound cmd fix), stale worktree cleanup fix, team permission inheritance, Vertex AI wizard, Perforce mode
v7.33.x2.1.97CC 2.1.97 full utilization: refreshInterval status line, workspace.git_worktree awareness, TRACEPARENT OTEL tracing to HQ, Stop/SubagentStop long-session fix, subagent cwd leak fix, MCP 2KB cap guardrail, image compression parity, Bash permissions hardened, Accept Edits env-prefix, plugin update fix, prototype settings.json fix
v7.30.x2.1.94Skill frontmatter hooks unlock (20 context loaders activated), sessionTitle on UserPromptSubmit, keep-coding-instructions, default effort high adaptation, --resume across worktrees, CJK stream-json fix, Bedrock bearer token 2.1.96 hotfix
v7.29.x2.1.92forceRemoteSettingsRefresh policy, Stop hook preventContinuation fix, tool input JSON-string fix, plugin MCP dedup fix, Write perf 60%, /tag + /vim removed, MCP result size override, disableSkillShellExecution, plugin bin/, Edit shorter anchors
v7.27.x2.1.90/powerup, PLUGIN_KEEP_MARKETPLACE, .husky protected, exit code 2 fix, format-on-save fix, 3x perf improvements
v7.24.x2.1.84TaskCreated hook, WorktreeCreate HTTP, paths: glob lists, ANTHROPIC_DEFAULT_* env vars, stream idle timeout, json-schema fix
v7.23.x2.1.83managed-settings.d/, CwdChanged/FileChanged hooks, sandbox.failIfUnavailable, initialPrompt, userConfig sensitive, env scrub
v7.15.x2.1.80effort frontmatter, rate_limits statusline, --channels, source:settings, simplified plugin tips
v7.14.x2.1.79--console auth, /remote-control, multi-dir PLUGIN_SEED_DIR, turn duration toggle
v7.14.x2.1.78StopFailure hooks, CLAUDE_PLUGIN_DATA, agent frontmatter, plugin validate, worktree skills fix
v7.12.x2.1.7764k/128k output, allowRead sandbox, plugin validate, SendMessage auto-resume, PreToolUse deny fix
v7.8.x2.1.76PostCompact hook, Elicitation hooks, sparse paths, /effort, bg agent partial results
v7.7.x2.1.751M context default, memory timestamps, hook source display, token estimation fix
v7.5.x2.1.74SessionEnd timeout fix, managed policy precedence, full model IDs, memory fixes
v7.4.x2.1.73Deadlock fix, SessionStart fix, no-op fix, Opus 4.6 cloud default
v7.1.x2.1.69InstructionsLoaded, once:true loaders, outputAsk, env var HTTP hooks, worktree dedup
v7.0.x2.1.59Auto-memory, @imports, ConfigChange, HTTP hooks (2.1.63+), unified plugin
v6.0.x2.1.47Full CC 2.1.47 adoption, relaxed context limits
v5.x2.1.34Agent Teams support, unified dispatchers
v4.x2.1.9Session tracking, TypeScript hooks
Edit on GitHub

Last updated on

On this page

OrchestKit Health DiagnosticsArgument ResolutionOverviewWhen to UseQuick StartCLI OptionsHealth Check CategoriesCategories 0-3: Core ValidationCategories 4-5: System HealthCategories 6-9: InfrastructureCategories 10-13: EnvironmentReport FormatInterpreting Results & TroubleshootingRelated SkillsReferencesRules (2)Diagnostic Checks — CRITICALDiagnostic Check Procedures0. Installed Plugins Detection1. Skills Validation2. Agents Validation3. Hook Health4. Memory System5. Build System6. Permission Rules7. Schema Compliance8. Coordination System9. Context Budget10. Claude Code Version11. External Dependencies13. Plugin Validate (CC >= 2.1.77)MCP Status Checks — HIGHMCP Status ChecksCheck ProcedureOutput ExamplesReferences (10)Agents ValidationAgents ValidationOverviewAgent StructureValidation Checks1. Frontmatter Fields2. Model Validation3. Skills References4. Tools ValidationQuick ValidationCommon IssuesInvalid modelMissing skill referenceInvalid tool nameAgent Registration Check (CC 2.1.50+)Model RoutingHealth Check OutputsHealth Check Output ExamplesChannel DetectionInstalled PluginsSkills ValidationAgents ValidationHook HealthMemory SystemBuild SystemPermission RulesSchema ComplianceCoordination SystemContext BudgetClaude Code VersionExternal DependenciesPlugin ValidateManaged Settings Policy (CC >= 2.1.92)Hook ValidationHook ValidationOverviewHook ArchitecturePlatform SupportHook CategoriesBundle StructureValidation Checks1. hooks.json Schema2. Bundle Existence3. Async Hook Pattern4. Matcher SyntaxDebug Mode (Issue #243)Enable Debug LoggingView Debug LogsHook MetricsPID TrackingTroubleshootingHook not firingHook timing outExit CodesMemory HealthMemory HealthOverviewAutomated Health CheckStatus MeaningsGraph MemoryValidation CommandsHealth IndicatorsDegraded ConditionsTroubleshootingGraph memory missingCorrupt JSONL linesHigh queue depthPermission RulesPermission Rules AnalysisOverviewCommon Issues1. Unreachable Rules2. Shadowed Rules3. Invalid PatternsValidation CommandsBest PracticesRemediation GuideRemediation GuideInterpreting ResultsTroubleshooting"Skills validation failed""Build out of sync""Memory unavailable""Plugin validate failed"Report FormatDoctor Report FormatASCII ReportJSON Output (CI Integration)Exit CodesSchema ValidationSchema ValidationOverviewSchemasValidation CommandsValidate AllValidate Specific FileCommon Schema ErrorsMissing Required FieldInvalid TypePattern MismatchBatch ValidationCreating Valid FilesSkills ValidationSkills ValidationOverviewSkill TypesValidation Checks1. Frontmatter Fields2. Token Budget3. Reference Links4. Related SkillsQuick ValidationCommon IssuesMissing frontmatterToken budget exceededBroken reference linkVersion CompatibilityCC Version Compatibility MatrixOverviewFeature MatrixVersion DetectionCompatibility LevelsDoctor Check ImplementationMemory Leak Warning (CC < 2.1.50)Release Channel DetectionOrchestKit Version History