Skip to content

doctor: Add Claude integration health checks#117

Merged
davidabram merged 2 commits into
mainfrom
feat/claude-code-doctor-check
Jul 2, 2026
Merged

doctor: Add Claude integration health checks#117
davidabram merged 2 commits into
mainfrom
feat/claude-code-doctor-check

Conversation

@stefanskoricdev

@stefanskoricdev stefanskoricdev commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Summary

Make sce doctor integration checks target-aware and add Claude health validation.

Changes

Target-aware integration checks

sce doctor now inspects only the integration targets that are configured or detected for the repository, rather than unconditionally checking both OpenCode and Claude.

  • sce setup --opencode, --claude, and --both persist the selected target(s) into .sce/config.json under integrations.target (additive, deduped, preserves unrelated keys)
  • sce doctor resolves targets from integrations.target first, falls back to detecting repo-root .opencode/ / .claude/ directories
  • When no integration is configured or detected, sce doctor emits actionable guidance ("No integrations installed; run sce setup") instead of false missing-file failures
  • Config schema, Pkl/JSON schema, and Rust config parser support the new integrations key

Claude doctor integration health checks

sce doctor now validates Claude installed assets alongside the existing OpenCode checks, using the same SHA-256 content comparison pattern:

  • .claude/hooks/** and .claude/settings.jsonClaudeCode plugins
  • .claude/agents/**ClaudeCode agents
  • .claude/commands/**ClaudeCode commands
  • .claude/skills/**ClaudeCode skills
  • Claude-specific ProblemKind values for missing, mismatched, and unreadable assets
  • Existing OpenCode checks, grouping, and reporting remain unchanged

Add repo-root Claude asset inspection to sce doctor using embedded setup asset hashes, including grouped plugin, agent, command, and skill health.

Surface missing, mismatched, and unreadable Claude assets through doctor problem kinds and human text integration rows.

Co-authored-by: SCE <sce@crocoder.dev>
@stefanskoricdev stefanskoricdev force-pushed the feat/claude-code-doctor-check branch from 1820733 to eae0dde Compare July 2, 2026 17:42
…detection

Introduce the `integrations` top-level config key with a `target` array
that records which integration targets (opencode, claude) a repo has been
set up for.

- Add `IntegrationsConfig` and `IntegrationTargetId` types, config parser,
  and resolver merge support for `integrations.target`
- Implement `persist_integration_targets()` in setup service: called after
  successful target install to record the target(s) in `.sce/config.json`
  (idempotent, deduped, preserves unrelated keys)
- Add target-scoped integration detection in doctor: reads
  `integrations.target` from config, falls back to directory detection
  when absent, and renders no-integrations guidance when no targets exist
- Register `NoIntegrationsInstalled` problem kind in lifecycle types
- Update Pkl schema and generated JSON schema for `integrations.target`
- Update `.sce/config.json` to record existing `["claude", "opencode"]`
  targets
- Sync context docs to reflect the new config key, persistence behavior,
  and doctor resolution rules

Co-authored-by: SCE <sce@crocoder.dev>
@stefanskoricdev stefanskoricdev force-pushed the feat/claude-code-doctor-check branch from eae0dde to b5c3d7d Compare July 2, 2026 18:02
@stefanskoricdev stefanskoricdev marked this pull request as ready for review July 2, 2026 18:03
@davidabram davidabram merged commit 641c4e7 into main Jul 2, 2026
6 checks passed
@davidabram davidabram deleted the feat/claude-code-doctor-check branch July 2, 2026 20:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants