From dotclaude-bootstrap
Diagnose and fix broken dotclaude presets and their bundled plugin scripts. ONLY for dotclaude preset/plugin artifacts in this dotclaude repo — do NOT invoke for general TypeScript debugging, npm package issues, or non-dotclaude tools. Invoke only when called from /preset-wizard or when the user explicitly requests help with a dotclaude preset that fails to build, typecheck, or pass tests.
How this skill is triggered — by the user, by Claude, or both
Slash command
/dotclaude-bootstrap:preset-debuggerThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Diagnose and fix failures in dotclaude preset artifacts: YAML files, sidecar files,
Diagnose and fix failures in dotclaude preset artifacts: YAML files, sidecar files, plugin builds, and generated vitest stubs. Follow phases in order.
Rules:
presets/, claudekit/, scripts/, and plugins/ — do not modify unrelated code.This skill may be invoked with context from /preset-wizard. If provided, use it directly
rather than re-running diagnosis from scratch:
pnpm typecheck / pnpm build-plugin / pnpm test)If invoked manually without context, run the full diagnosis phase.
Ask the user (or infer from context):
Run all three checks and capture exact output:
pnpm typecheck
pnpm build-plugin <preset-name>
pnpm test
For each command, record: pass ✓ / fail ✗ + exact error message.
Match the error output against known failure patterns:
Symptoms: ZodError, validation failed, does not match schema
Common causes:
name, kind, description, version)name not kebab-case (/^[a-z][a-z0-9-]*$/)version not SemVer (X.Y.Z)external_setup entry has standalone: false but no install_hintcomponents.* does not exist in claudekit/settings_patch contains nested object that conflicts with schemaFix direction: edit the preset YAML to satisfy the schema.
Symptoms: ENOENT, component not found, locateComponent failed
Common causes:
Fix direction: correct the component name in the preset YAML, or vendor the missing component.
Symptoms: sidecar.schema.json, invalid sidecar, commit must be full 40-char SHA-1
Common causes:
source.commit is not a full 40-char hex SHA (e.g., short hash)imported_at is not YYYY-MM-DD formatsource, license, modified)modifications is non-null but modified: falseFix direction: correct the .source.yaml or SOURCE.yaml file for the affected component.
Symptoms: error TS... from pnpm typecheck
Common causes:
exactOptionalPropertyTypes violation: accessing a field that could be undefined without a guardnoUncheckedIndexedAccess violation: indexing an array without checking boundsexternal_setup field in a test fixture that constructs a Preset object directlyFix direction: edit the TypeScript file at the reported location.
Symptoms: test file fails, AssertionError, TypeError in a test
Common causes:
Preset object without the newly added external_setup fieldFix direction: add missing fields to test fixtures, or fix stub syntax.
Symptoms: unhandled exception in pnpm build-plugin, not Pattern B
Common causes:
plugins/<name>/ directory has stale files from a previous failed build — clean and retryFix direction: run pnpm build-plugin <name> --clean, or fix YAML indentation.
For each identified error, show the user:
Ask: "Apply this fix? (yes / skip / modify)"
Handle multiple errors in sequence — propose one at a time if they are in different files.
Apply only changes the user has approved. Use Edit/Write tools — do not use sed or awk.
Keep changes minimal: fix the reported error and nothing else. Do not refactor surrounding code.
After all approved fixes are applied, re-run the full suite:
pnpm typecheck
pnpm build-plugin <preset-name>
pnpm test
If new errors surface (not present in Phase 1), treat them as a new diagnosis cycle — go back to Phase 1c with the new output.
Report:
pnpm install:user <preset-name> --force --symlink
# or
pnpm install:project <preset-name> --force --symlink
Report:
/dotclaude-component-picker")Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub phantien133/dotclaude --plugin dotclaude-bootstrap