Page:
Reference Commands Instance health
Pages
Dev Development
Explanation Architecture
Explanation Configuration tiers
Explanation Knowledge and commitment
Explanation Language boundaries
Explanation Model and effort selection
Explanation Ownership and templates
Explanation Pipeline rationale
Explanation Telemetry and evaluation
Explanation Version model
Explanation Why gates are code
Explanation
Home
How to Back up to a synced folder
How to Browse with obsidian
How to Capture repository docs
How to Collect from a synced folder
How to Export guidelines
How to Export to a synced folder
How to Fetch pages behind a login
How to Ingest a source
How to Maintain the wiki
How to Query the wiki
How to Run the weekly review
How to Set up the mcp server
How to Trace and score sessions
How to Troubleshoot
How to Update an instance
How to Use 1password for settings
How to Write a site handler
How to
Install
Reference Commands Catalog and log
Reference Commands Configuration
Reference Commands Content migrations
Reference Commands Distribution and versioning
Reference Commands Exports
Reference Commands Finding and checking
Reference Commands Git
Reference Commands Instance health
Reference Commands Links and citations
Reference Commands Pages
Reference Commands Provenance
Reference Commands Raw material and uploads
Reference Commands Telemetry
Reference Commands Types instructions and docs
Reference Commands Workshop runs and session budget
Reference Commands
Reference Configuration
Reference Exit codes
Reference Page types
Reference Skills
Reference
Tutorials First source to first answer
Tutorials Sample source
Tutorials
Clone
Table of Contents
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Generated from docs/reference/commands/instance-health.md at v10.1.0 – edit the repository, not this wiki.
Instance health
A single check of whether this instance is set up and working.
doctor
Check that this instance is correctly configured.
Synopsis
wikitool doctor [--json]
Options
--json Print the checks as JSON
-h, --help Show this message and exit.
Examples
tools/wikitool doctor
tools/wikitool doctor --json
Behaviour
- Checks dependencies (Python, ripgrep), author resolution, stack version, git identity/branch/remote, published skills, the kb/raw/reports/work/sites/instructions structure, and generated files.
- Import filters (
import-filter-<name>): one line for eachraw deriveformat that reads through a package (PDF, Outlook.msg) - aWARNnaming the package when it is missing, since that costs only its own format; fixed by runningtools/preflight.shagain. - Tool paths (
tool-paths):.wikitool-tools.jsonwritten by a preflight that finished, every tooltools/prerequisites.txtnames for this platform recorded, and every recorded path still there - aFAILotherwise, fixed by runningtools/preflight.shagain (PowerShell 7:tools/preflight.ps1). - Install folder (
install-dir): on Windows with long paths off, aFAILwhen the folder holdingtools/is longer thantools/prerequisites.txtallows (95 characters) - the limit the preflight enforces before it sets anything up. - PowerShell (
execution-policy,script-marks; Windows only,OKelsewhere): aFAILwhen the effective execution policy isRestrictedorAllSigned- the line then says whether a group policy sets it, which only whoever administers the computer can change - and aFAILwhen a script undertools/carries a Mark of the Web from the internet zone, which a browser download unpacked in Explorer leaves behind andInvoke-WebRequestplustardo not.tools/preflight.ps1checks the same two things before it stops. - Personalization:
USER.md/SOUL.mdpresent and filled - a file still carrying the template's sentinel is aFAIL. - KB conventions:
kb/CONVENTIONS.mdpresent, unsentinelled, and naming all three tool-owned section headings - aFAILon any of the three. - Environment note:
ENVIRONMENT.mdis optional, so absent isOK; a still-templated one is aWARN. - Legacy settings (
legacy-settings): oneFAILfor each per-feature settings file of an earlier version (telemetry, remotes, upload, task tracker) that is still there. Nothing reads them any more, so the settings they hold are not in effect; the fix istools/wikitool config migrate. - Synced folder (
sync-folder): aWARNwhen the git directory, links and junctions resolved, lies under a folder named byOneDrive,OneDriveCommercialorOneDriveConsumer(compared without regard to case on Windows) or under~/Library/CloudStorage/(macOS);OKotherwise, never aFAIL. - Backup (
backup): thebackupsection absent isOK, malformed is aFAIL. Configured, aWARNwhen<target>/gitis not a bare repository,origindoes not push there, or - withmachine_datatrue - no machine-data backup exists yet; otherwiseOKwith the age of the last machine-data backup. - Page export (
export): theexportsection absent isOK, malformed is aFAIL; otherwiseOKlisting each target with its handler, folder and whether it runs afterpublish. - Intake channels (
upload-intake): the channels of theintakesection with their handler, and how many submissions wait inquarantine/. Absent isOKand means no channel - nosubmittool, nothing to collect; malformed is aFAIL, and so is anmcp-upload/of an earlier version that still holds submissions (the message names the command that moves it). Afolderchannel whosepathdoes not exist is aWARN. - Task tracker: the
taskssection present, absent or malformed - absent isOK(no tracker configured), malformed is aFAIL. WhenWIKITOOL_TASKS_CONFIGis set, the profile it names is read instead of thetasks,superproductivityandcaldavsections and the finding names it; a set variable that names no file is aFAIL, neverOK. - For a configured
superproductivityprovider, the configuredaccesspath's own state:access: "api"reports whether its local REST API answersGET /healthwith a ready renderer right now,access: "snapshot"whether a backup file is ready. The other access path is never attempted, and neither state is ever aFAIL. - For a configured
caldavprovider, whether the server is reachable and Basic auth succeeds - never aFAIL; only a broken config block is. - Settings (
settings-instance,settings-checkout,settings-secrets): one line per tier.wikitool.jsonand.wikitool-local.jsoneach present or absent - absent isOK- and aFAILnaming file, key and the right tier when a value sits in the wrong file, a secret or a committed private field holds a plain value, or a value fails its field; a section this version does not read is aWARN. For the references: how many resolve, never a value - an unresolvable one is aFAIL, one 1Password will not hand out until a human unlocks it aWARN. - Session id source:
OKforWIKITOOL_SESSION_IDor a registered harness variable,WARNonly for the bare parent-pid fallback. - Telemetry: on or off and why - installation-form default, the
telemetrysection of.wikitool-local.json, orWIKI_TRACE- and the current session's count and byte total against both caps; never aFAIL. AWARNwhen that section is not read as written - unreadable JSON, not an object,enablednot a JSON boolean, a cap not a positive integer, or an unknown key - naming the field; telemetry itself drops or reinterprets such a value without a word, so this is where it shows. - Site handlers (
site-handlers): every file insites/is read against the handler schema and the rules the schema cannot state;FAILfor a file that cannot be used, naming the file and the reason, andOKlisting the instance's handlers, each one that replaces a stack handler (the same host and path) named as such. - Browser component (
browser): whether the optional Playwright component and its browser are installed in the venv -OKeither way, never aFAIL; aWARNonly when it is missing and the instance needs it: a hostfetch.routessends through the session (raw login), or a site handler that declaresrender. The user installs it withtools/preflight.sh --with browser. - Exits 1 only on a
FAIL; a missing remote, session id orVERSIONis aWARN, not a fault. - Read-only and exempt from the Iteration Budget Gate.
Properties
- Changes files: no
- Idempotent: yes
- Atomic: Read-only
- Counts toward the session call budget: no
- Can reach the network: yes
Exit codes
0- success1- At least one check reportedFAIL(aWARN, e.g. no remote or noWIKITOOL_SESSION_ID, does not exit 1)
See also
instructions/setup-instance.md- the setup steps most findings point back toinstructions/preflight.md- whattool-pathsandinstall-dirpoint back todocs/reference/configuration.md- the per-checkout configuration files and the tiered settingsdocs/explanation/telemetry-and-evaluation.md- telemetry state and capsdocs/how-to/back-up-to-a-synced-folder.md- whatsync-folderandbackuppoint toinstructions/session-setup.md- settingWIKITOOL_SESSION_ID
- Chemenu - Personal IT Knowledge Base
- Install a Chemenu instance
- Tutorials
- How-to guides
- Back up to a synced folder
- Browse the wiki in Obsidian
- Capture documentation from a git repository
- Collect documents from a synced folder
- Export guidelines to captured repositories
- Export to a synced folder
- Fetch pages behind a login
- Ingest a source
- Maintain the wiki
- Query the wiki
- Run the weekly review
- Set up the MCP read server
- Trace and score agent sessions
- Troubleshoot an instance
- Update an instance
- Use 1Password for settings
- Write a site handler
- Reference
- Explanation
- Architecture
- Configuration tiers
- Why knowledge and commitments are two layers
- Language Boundaries
- Choosing a Claude Code model and effort level
- Ownership and Templates
- Why the pipeline has four stages
- Telemetry and evaluation
- Why the stack version splits compatibility from migration
- Why gates are code
- Dev