- Create
.doctor/scripts/<namespace>/<name>.sh - Register it in
.doctor/run.sh(ALL_CHECKSarray as<namespace>/<name>) - Optionally, document it in an existing skill or create a new one
See the Create Best Practice skill for a full script template and registration checklist.
Namespaces group related checks (e.g. react, next, node).
- Create the directory
.doctor/scripts/<namespace>/ - Add your scripts there (one
.shper check) - Add entries to
ALL_CHECKSin.doctor/run.shas<namespace>/<name>
You don't need a skill or any other configuration — just the scripts and the registration.
Interactive mode:
bash publish.shNon-interactive mode (AI-compatible):
bash publish.sh --bump patch --push "fix: github workflow" "feat: configurable entry points"Options:
--bump <patch|minor|major>— version bump type (activates non-interactive mode)--push— push to remote after commit+tag (no confirmation)- Positional arguments are changelog entries
This will:
- Bump the version in
VERSION - Prepend entries to
CHANGELOG.md - Commit, tag, and push
.doctor/
config/
checks # Disabled checks (one per line)
dupe-ignore # Duplicate detection ignore rules
entry-points # Entry points for unused-files check
max-file-size # Line count thresholds (default + per-file overrides)
run.sh # Main runner (executes all checks, --ci for annotations)
utils/
list-files.sh # Shared file discovery (respects .gitignore)
scripts/
react/ # React namespace
*.sh # Individual checks
utils/ # Namespace-specific utilities (not checks)
workflows/
doctor.yml # CI workflow template (installed to .github/workflows/)
skills/
react-best-practices/
SKILL.md
create-best-practice/
SKILL.md
docs/ # Documentation
install.sh # Install/update script
check-updates.sh # Dry-run update check
status.sh # Show installation status
uninstall.sh # Clean removal
publish.sh # Version publishing tool
VERSION # Current version
CHANGELOG.md # Version history