You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Summary:
- audit Doctor lint default selection after the full lint-family backfill
- make legacy state, skills readiness, session transcripts, and session snapshots explicit-only for default lint
- document default lint vs --all/--only and keep plugin/SDK public contracts unchanged
Validation:
- Galin review: no blocking findings
- maintainer accepted the default-lint compatibility tradeoff in PR comment
- exact-head hosted gates passed for d5d88a0: CI#28976811444 and Workflow Sanity#28976811343
- local broad pnpm check was blocked by a shrinkwrap guard failure that reproduces on origin/main and is unrelated to this five-file Doctor diff
Co-authored-by: Gio Della-Libera <[email protected]>
|`openclaw doctor`| yes | no | friendly health report | a human checking status |
88
90
|`openclaw doctor --fix`| sometimes | yes, with repair policy | friendly repair log | applying approved repairs |
89
91
|`openclaw doctor --lint`| no | no | structured findings | CI, preflight, and review gates |
90
92
91
-
Health checks may provide an optional `repair()` implementation; `doctor --fix` applies it when present and falls back to the legacy doctor repair flow otherwise. The contract separates `detect()` (reports findings) from `repair()` (reports changes/diffs/side effects), which keeps a path open for a future `doctor --fix --dry-run` without turning lint checks into mutation planners.
93
+
Default `doctor --lint` runs the broad-safe automation profile: checks that are
94
+
static, local, and useful in CI or preflight output. It skips opt-in checks that
95
+
are advisory, environment-sensitive, live-service dependent, account/workspace
96
+
inventory, or historical cleanup. Use `doctor --lint --all` when you want the
97
+
full registered lint audit, including those opt-in checks, or `--only <id>` for
98
+
a targeted check.
99
+
100
+
`doctor --fix` does not use the lint default profile and does not accept
101
+
`--all`. It runs Doctor's ordered repair path: modern health checks may provide
102
+
an optional `repair()` implementation, and older areas still use their legacy
103
+
Doctor repair flow. Some lint findings are intentionally diagnostic only, so a
104
+
check appearing in `--lint --all` does not mean `--fix` will mutate that area.
105
+
The contract separates `detect()` (reports findings) from `repair()` (reports
106
+
changes/diffs/side effects), which keeps a path open for a future
107
+
`doctor --fix --dry-run` without turning lint checks into mutation planners.
108
+
109
+
Some built-in checks are default-disabled internally so they stay available to
110
+
`--all`, `--only`, and Doctor repair flows without becoming part of the default
111
+
`doctor --lint` automation profile. Finding severity is still emitted per
112
+
finding (`info`, `warning`, or `error`); default selection is not a severity
113
+
level.
92
114
93
115
```bash
94
116
openclaw doctor --lint
@@ -115,7 +137,7 @@ Exit codes:
115
137
Flags:
116
138
117
139
-`--severity-min info|warning|error` (default `warning`): controls both what prints and what causes a non-zero exit.
118
-
-`--all`: runs every registered check, including opt-in checks excluded from the default automation set.
140
+
-`--all`: runs every registered lint check, including opt-in checks excluded from the default automation set.
119
141
-`--only <id>` (repeatable): run only the named check id(s); an unknown id is reported as an error finding.
120
142
-`--skip <id>` (repeatable): exclude a check while keeping the rest of the run active.
121
143
-`--json`, `--severity-min`, `--all`, `--only`, and `--skip` require `--lint`; plain `openclaw doctor` and `--fix` runs reject them.
0 commit comments