mcpField
D
doctor

doctor

github.com/jasonharmongitTesting & quality47 installs
Repository

About doctor

doctor is a step-by-step checking skill for Elixir projects, covering formatting, `mix check`, compilation, and narrowly scoped tests. It limits test runs and fixes to cases directly related to branch changes.

Key features

  1. 01Announce and report each step
  2. 02Format with `mix format`
  3. 03Run `mix check`
  4. 04Compile and run scoped tests
  5. 05Restrict fixes to related failures

Use cases

  1. 01Check changes on an Elixir branch
  2. 02Format code and run project checks before a commit
  3. 03Test only cases tied to changed modules

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/jasonharmongit/jh-skills --skill doctor

After installing, type/doctorin Claude Code to confirm it loaded.

Details

From the project README

Per-step execution loop

For every step, follow this exact order:

  1. Announce the step.
  2. Run the step and fix failures until it passes.
  3. Give a very brief report of changes made in that step.
  4. Continue to the next step.

Example announce line:

Doctor: Step 2/3 - mix check

Example report line:

Step 2 report: lib/surge/foo.ex - removed unused alias; wrapped side effect in after callback.


Step 1 - Format

mix format

One mix format run applies all formatting the tool can do; a second pass is only needed if the first run failed (for example syntax errors) or you changed files after formatting.


Step 2 - mix check

mix check

Step 3 - Compile and tests

  • !!!ABSOLUTELY CRITICAL RULE!!!: bare mix test is never allowed under any circumstances whatsoever.

  • Scope only: branch-changed paths from git diff --name-only "$(git merge-base HEAD origin/main)"...HEAD + git status --short.

  • Test run shape: only explicit *_test.exs file args. No directory args. No repo-wide runs. No "extra confidence" runs.

  • Allowed files only: test file in branch diff, or direct counterpart of changed lib/... module (same path stem). No sibling or neighbor tests.

  • Empty allowed list: skip this step.

  • CRITICAL - Fix scope is per test case, not per file: only fix a failing case when it is DIRECTLY related to branch application-code changes. Other failures in same file: ignore, leave red.

  • No out-of-scope edits: no changes to unrelated test cases, unrelated test files, or production code for unrelated failures.

  • Pre-edit gate (required): before any test file change, announce the exact test-case edit you plan to make and cite the specific app-code path + branch diff hunk that directly justifies touching that case. If you cannot cite that evidence first, do not edit.

  • Final report requirement for any file change: include strong evidence for each changed test case - exact failing case, exact changed app-code path, and exact direct relationship. If you cannot prove that, do not edit.

mix compile --warnings-as-errors

# optional:
mix test <file path>

Notes

  • If you get stuck in any loops or complex problems that you are having to make large or risky changes for, stop and ask the user for help.
  • Doctor is not a green-the-whole-repo pass: it is compile + only branch-tied test files + only edits to branch-related test cases inside those files (other cases in the same file can stay red). Anything broader is a mistake.
  • REMINDER - bare mix test is never allowed under any circumstances whatsoever.

Comments

Markdown supported