Harness doctor
Skill cristianorj22/arthus-harness/core/.claude/skills/harness-doctor
Use this skill at SessionStart (or on demand) to report arthus-harness drift, plugin state, and recommended sync actions. Reads `.arthus-harness.json` and runs `npx arthus-harness doctor` — informational only, never blocks.From its SKILL.md
npx -y skills add cristianorj22/arthus-harness --skill harness-doctorAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
4.4 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it
Harness Doctor
Purpose
Report whether the project's installed arthus-harness is up to date and consistent with declared plugins. Detects drift between .arthus-harness.json (lockfile) and the live .claude/ tree, surfaces plugin recommendations, and tells the user whether arthus-harness sync is needed.
This is a diagnostic skill — never modifies the project. The user runs sync themselves once they've reviewed findings.
When to use
- Beginning of a new session in a project that has
.arthus-harness.json(auto-fire candidate). - User asks "is my harness up to date?" / "any harness drift?" / "run harness doctor".
- After pulling main and noticing harness files changed.
- Before starting a major feature, to ensure baseline is current.
When NOT to use
- Project doesn't have
.arthus-harness.json— that means arthus-harness is not installed; suggestinit-projectskill instead. - User wants to change harness state (add plugin, upgrade) — that's
arthus-harness sync/arthus-harness add, not doctor. - User wants to author harness assets — regular editing.
Steps
-
Locate lockfile — verify:
.arthus-harness.jsonexists in cwd. If not, exit politely:No
.arthus-harness.jsonfound. This project doesn't appear to use arthus-harness. Want me to bootstrap it? (useinit-projectskill). -
Read lockfile — parse
.arthus-harness.json. Capture:harnessVersion(semver of arthus-harness used)plugins[](installed plugin names + versions)principlesStrategy(A / C / both)installedAttimestamp
-
Run doctor CLI — invoke:
npx arthus-harness@latest doctor --jsonCapture stdout (JSON report). If the CLI is unreachable, fall back to local checks (step 4) and note "CLI unreachable, partial report".
-
Local sanity checks (always run, even if CLI worked) — verify each:
.claude/settings.jsonexists and is valid JSON.- All hooks referenced in
settings.jsonexist on disk. - All agents declared in lockfile exist in
.claude/agents/. - All skills declared in lockfile exist in
.claude/skills/. MISSION.md,CLAUDE.md,Docs/produto/principios-de-experiencia.mdexist.
-
Compose report — print to user:
## Harness doctor — <projectName> Installed: arthus-harness@<version> · principles: <A|C|both> Plugins: <list with versions> ### Drift - <N items, or "none"> ### Missing files - <list, or "none"> ### Recommendations - <"All good — no action needed" | "Run `npx arthus-harness sync` to upgrade to <newer version>" | "Plugin <X> declared but missing — run `npx arthus-harness add <X>`"> -
Suggest next action — one line. Never run the action automatically. The user decides.
Examples
Example 1 — clean project
Input: SessionStart auto-fire (project has .arthus-harness.json)
Output:
Harness doctor — my-saas
Installed: [email protected] · principles: A
Plugins: [email protected], [email protected]
Drift: none
Missing files: none
Recommendation: All good — no action needed.
Example 2 — drift detected
Input: "run harness doctor"
Output:
Harness doctor — client-mvp
Installed: [email protected] · principles: both
Plugins: [email protected]
Drift:
- core: 1.0.0 installed → 1.1.3 available
- plugin-supabase: 1.0.0 installed → 1.0.4 available (security patch)
Missing files:
- .claude/agents/silent-failure-hunter.md (declared, not found)
Recommendation: Run `npx arthus-harness sync` to apply patches and restore missing files.
Escalation
- If
npx arthus-harness@latestis unavailable → run local checks only and report "CLI unreachable; cannot detect upstream version". - If
.arthus-harness.jsonis malformed → tell the user; suggest reinstall (init-projectafter backing up custom assets). - Never: auto-run
syncor modify any file. Doctor is read-only.
References
- Lockfile schema:
arthus-harness/src/lockfile.schema.json - Sister skill (install):
init-project - CLI source:
arthus-harness/bin/
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.