tools: command records, Instance health group - one bullet per check, examples (#142)
Files changed: - CHANGES.md - VERSION - tools/CONTRACT.md - tools/chemenu/commands/doctor.py
This commit is contained in:
1 parent
b83a3982c5
commit
5bfbb49d74
4 files changed
+75
-30
No files matched your search
@@ -628,38 +628,51 @@ def run_doctor() -> list[Check]:
|
||||
budget=cli_contract.Budget.EXEMPT,
|
||||
network=cli_contract.Network.YES,
|
||||
),
|
||||
notes="Dependencies (Python, ripgrep), author resolution, stack version, git "
|
||||
"identity/branch/remote, published skills, kb/raw/reports/work/instructions structure, "
|
||||
"personalization (`USER.md`/`SOUL.md` present **and** filled - a file still carrying the "
|
||||
"template's sentinel is a `FAIL`, since a renamed template is not a filled one), the KB "
|
||||
"conventions (`kb/CONVENTIONS.md` present, unsentinelled, and naming all three tool-owned "
|
||||
"section headings - a `FAIL` on any of the three, because `xref`/`cite` write out of it), "
|
||||
"the environment note (`ENVIRONMENT.md` - optional, so absent is `OK`; a still-templated "
|
||||
"one is a `WARN`), generated files, whether the MCP `submit` tool is armed "
|
||||
"(`.wikitool-upload.json` present/absent/malformed, its limits, and how many submissions "
|
||||
"are waiting in `mcp-upload/` - absent is `OK` and means the write path does not exist at "
|
||||
"all, malformed is the one `FAIL` here, since a broken opt-in must not silently disable the "
|
||||
"limits it exists to enforce), the task-tracker provider (`.wikitool-tasks.json` "
|
||||
"present/absent/malformed - absent is `OK` and means no tracker is configured, malformed is "
|
||||
"`FAIL` for the same reason the upload opt-in is; for a configured `superproductivity` "
|
||||
"provider, also its configured `access` path's own state - `access: \"api\"` reports "
|
||||
"whether its local REST API answers `GET /health` right now, `access: \"snapshot\"` reports "
|
||||
"whether a backup file is ready; the *other* access path is never attempted and is not a "
|
||||
"finding - and neither ever `FAIL`s, an app that is simply not running is not a fault; for "
|
||||
"a configured `caldav` provider, whether the server is reachable and Basic auth succeeds - "
|
||||
"also never a `FAIL`, only a broken config block is), the session id source (`OK` for "
|
||||
"`WIKITOOL_SESSION_ID` or a registered harness variable, `WARN` only for the bare "
|
||||
"parent-pid fallback - see `chemenu.session`), and telemetry state (on/off, why - "
|
||||
"installation-form default, `.wikitool-telemetry.json`, or `WIKI_TRACE` - and the current "
|
||||
"session count/byte total against both caps; never `FAIL`, see `EVALS.md`). Read-only, exit "
|
||||
"1 only on a `FAIL` (a missing remote, session id, or `VERSION` is a `WARN`, not a fault). "
|
||||
"Exempt from the Iteration Budget Gate",
|
||||
notes=(
|
||||
"Checks dependencies (Python, ripgrep), author resolution, stack version, git "
|
||||
"identity/branch/remote, published skills, the kb/raw/reports/work/instructions "
|
||||
"structure, and generated files.",
|
||||
"Personalization: `USER.md`/`SOUL.md` present **and** filled - a file still carrying "
|
||||
"the template's sentinel is a `FAIL`.",
|
||||
"KB conventions: `kb/CONVENTIONS.md` present, unsentinelled, and naming all three "
|
||||
"tool-owned section headings - a `FAIL` on any of the three.",
|
||||
"Environment note: `ENVIRONMENT.md` is optional, so absent is `OK`; a still-templated "
|
||||
"one is a `WARN`.",
|
||||
"MCP `submit` tool: whether `.wikitool-upload.json` is present, absent or malformed, "
|
||||
"its limits, and how many submissions wait in `mcp-upload/`. Absent is `OK` and means "
|
||||
"the write path does not exist at all; malformed is a `FAIL`.",
|
||||
"Task tracker: `.wikitool-tasks.json` present, absent or malformed - absent is `OK` "
|
||||
"(no tracker configured), malformed is a `FAIL`.",
|
||||
"For a configured `superproductivity` provider, the configured `access` path's own "
|
||||
"state: `access: \"api\"` reports whether its local REST API answers `GET /health` "
|
||||
"right now, `access: \"snapshot\"` whether a backup file is ready. The other access "
|
||||
"path is never attempted, and neither state is ever a `FAIL`.",
|
||||
"For a configured `caldav` provider, whether the server is reachable and Basic auth "
|
||||
"succeeds - never a `FAIL`; only a broken config block is.",
|
||||
"Session id source: `OK` for `WIKITOOL_SESSION_ID` or a registered harness variable, "
|
||||
"`WARN` only for the bare parent-pid fallback.",
|
||||
"Telemetry: on or off and why - installation-form default, `.wikitool-telemetry.json`, "
|
||||
"or `WIKI_TRACE` - and the current session's count and byte total against both caps; "
|
||||
"never a `FAIL`.",
|
||||
"Exits 1 only on a `FAIL`; a missing remote, session id or `VERSION` is a `WARN`, not a "
|
||||
"fault.",
|
||||
"Read-only and exempt from the Iteration Budget Gate.",
|
||||
),
|
||||
failures=(cli_contract.Failure(
|
||||
label="",
|
||||
cause="At least one check reported `FAIL` (a `WARN`, e.g. no remote or no "
|
||||
"`WIKITOOL_SESSION_ID`, does not exit 1)",
|
||||
reaction="Each finding names its own fix command; re-run after applying it",
|
||||
),),
|
||||
examples=(
|
||||
"tools/wikitool doctor",
|
||||
"tools/wikitool doctor --json",
|
||||
),
|
||||
see_also=(
|
||||
"`instructions/setup-instance.md` - the setup steps most findings point back to",
|
||||
"`INSTALL.md` § \"Konfiguration\" - the per-checkout configuration files",
|
||||
"`EVALS.md` - telemetry state and caps",
|
||||
"`instructions/session-setup.md` - setting `WIKITOOL_SESSION_ID`",
|
||||
),
|
||||
))
|
||||
def doctor_command(
|
||||
json_out: bool = typer.Option(False, "--json", help="Print the checks as JSON"),
|
||||
|
||||
Reference in new issue
Block a user