Skip to content
Back to skills

Doctor

ASecurity

Verify this repo's second-shift install/config state against the committed lockfile - prerequisites, settings/lockfile ref lockstep, never-installed, enabled-but-not-installed, version drift (behind AND ahead), project-scope records a user-scope one makes redundant, ref-less marketplace shadowing, skill/agent shadow collisions, a review-toolkit older than the plugins that read its fan-out, opt-outs (informational), whether the default branch requires the second-shift/review status (informatio...

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 19, 2026
ai-agentsbashcode-reviewgit

Works with

  • terminal
  • cli

Security analysis

A100/100

Pro scans all 20 files and shows the line behind each finding

Scanned October 4, 2026

npx -y skills add manoldonev/second-shift --skill doctor --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Doctor?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Doctor
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/manoldonev-doctor/badge)](https://www.skillsdirectory.com/skills/manoldonev-doctor)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: doctor
description: Verify this repo's second-shift install/config state against the committed lockfile - prerequisites, settings/lockfile ref lockstep, never-installed, enabled-but-not-installed, version drift (behind AND ahead), project-scope records a user-scope one makes redundant, ref-less marketplace shadowing, skill/agent shadow collisions, a review-toolkit older than the plugins that read its fan-out, opt-outs (informational), whether the default branch requires the second-shift/review status (informational), unknown extension file names under .claude/second-shift/, stale consumer CI from the retired verdict-record lane, config keys configVersion 3 removed, config-lint, config grill (advisory). Prints exact remediation commands, scoped to the record that actually loads. Run after cloning, after upgrades, whenever the toolkit feels absent.
---

You are `/second-shift:doctor`.

1. Run: `bash "${CLAUDE_PLUGIN_ROOT}/skills/doctor/tools/doctor.sh"` from the repo root.
2. Relay the output faithfully: FAILs first with their remediation commands verbatim, then
   WARNs, then the summary. Do not soften failures and do not re-diagnose what the tool
   already diagnosed.
3. If the exit code is 0 and there are no WARNs: say the toolkit is healthy, one line.
4. Tone contract: missing plugins are "missing accelerators", not violations — this is fast
   local feedback. Config grill findings are WARNs by design: each proposes a value and says
   what it buys, and declining one is the repo's call.
5. A config still on configVersion 2 gets one FAIL per removed key (`topology`, `gates`,
   `stageParams`, `grillWaivers`, `design.liveRender.tolerancePx`, `design.liveRender.cwd`), each
   pointing at `docs/migrations/v2-to-v3.md`. An installed `second-shift-ci.yml`,
   `second-shift-ci-check.sh` or `second-shift-delta-guard.*`, or any `LANE_VERDICT_SUFFIX`
   reference under `.github/` or `.claude/`, is one FAIL: those read a verdict record the lane no
   longer writes, and the consumer deletes them.
6. A file under `.claude/second-shift/` that matches no known extension name is one FAIL each
   (a typo'd name is otherwise never read); the fix is a rename or a `.known-extensions` line. A
   review-toolkit install without `workflows/code-review.mjs` or `model-tiering.md`, beside an
   enabled dev-pipeline or intake-toolkit, is one FAIL: the plugins were updated one at a time,
   and the fix is `/second-shift:local-dev-refresh`, which updates them together.
7. Whether the default branch requires the `second-shift/review` commit status (classic branch
   protection or a ruleset) is a `note`, never a FAIL: requiring it is the repo's choice. When gh
   is missing, unauthenticated or offline, or the protection cannot be read, the note says
   "unknown" and why. Relay it as information, not a problem.
8. If the user asks about pipeline RUNTIME issues: gh auth is `gh auth status`; a ticket's
   labels are `gh issue view <n> --json labels`. `/dev-pipeline:run <ticket> --dry-run` checks
   the config, the intake record, the lane's commands and the design declaration and lists the
   checks, writing nothing; it does not read the tracker, and the checks and the design smoke
   run only in a real round.

## `--report` — assemble a feedback bundle

When the user wants to file a feedback issue (a pipeline abort, a config-lint disagreement, a
review false positive) or asks for a report bundle, run doctor with `--report`:

`bash "${CLAUDE_PLUGIN_ROOT}/skills/doctor/tools/doctor.sh" --report`

It prints one paste-ready Markdown block — the normal doctor output, `claude plugin list --json`,
the **redacted** config, context coverage, and the tail of the newest detached run's log from
`.claude/pipeline-state/` (its `terminal: <slug>` line and the reason before it; a foreground run
leaves no log, so its run directory's file list stands in) — sized to drop straight into the
matching issue form in the second-shift repo's `.github/ISSUE_TEMPLATE/` (pipeline aborted,
config-lint disagreement, review false positive). Relay it verbatim. Sensitive-shaped config
values are auto-redacted, but remind the user to glance over it before posting. `--report` always
exits 0 — it assembles, it does not gate.

Files in this skill

  • SKILL.md2.1 KB
  • tools/doctor-fixtures/config-grill-finding.json297 B
  • tools/doctor-fixtures/config-t1-waived.json517 B
  • tools/doctor-fixtures/config-valid.json384 B
  • tools/doctor-fixtures/config-with-secret.json539 B
  • tools/doctor-fixtures/lock-latest.json345 B
  • tools/doctor-fixtures/lock-v1.json340 B
  • tools/doctor-fixtures/marketplace-list-pinned.json202 B
  • tools/doctor-fixtures/marketplace-list-refless.json181 B
  • tools/doctor-fixtures/plugin-list-ahead.json864 B
  • tools/doctor-fixtures/plugin-list-behind.json864 B
  • tools/doctor-fixtures/plugin-list-green.json864 B
  • tools/doctor-fixtures/plugin-list-missing.json686 B
  • tools/doctor-fixtures/plugin-list-shadowed-aligned.json1.1 KB
  • tools/doctor-fixtures/plugin-list-shadowed.json1.1 KB
  • tools/doctor-fixtures/plugin-list-user-ahead.json864 B
  • tools/doctor-fixtures/plugin-list-user-behind.json864 B
  • tools/doctor-fixtures/settings-green.json373 B
  • tools/doctor-fixtures/settings-optout-committed.json374 B
  • tools/doctor-fixtures/settings-optout-lane-off.local.json110 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.