health
Checks, in one shot via the `health-check.mjs` engine, for state unintentionally left behind during repository work (working tree, stash, branch, worktree, PR, issue, actions, etc.) and skill-catalog consistency, presenting a 16-area status table and fixed-vocabulary recommended actions. With `--deep`, does additional read-only investigation of `要確認` items; with `--fix`, executes safe-vocabulary actions (prune / delete / fetch, and `drop` when promoted by `--deep`) following the central policy's gate (reversible-local=proceed / irreversible=ask). Read-only by default.
- License 许可
- MIT
- 所属仓库
- ozzy-labs/skills
- 最近更新
- 2026-07-13
- Stars
- ★ 0
- Forks
- 0
01 前言 Front Matter
- description
- Checks, in one shot via the `health-check.mjs` engine, for state unintentionally left behind during repository work (working tree, stash, branch, worktree, PR, issue, actions, etc.) and skill-catalog consistency, presenting a 16-area status table and fixed-vocabulary recommended actions. With `--deep`, does additional read-only investigation of `要確認` items; with `--fix`, executes safe-vocabulary actions (prune / delete / fetch, and `drop` when promoted by `--deep`) following the central policy's gate (reversible-local=proceed / irreversible=ask). Read-only by default.
- allowed-tools
- Bash, Read, Grep, AskUserQuestion
- argument-hint
- [--deep] [--fix] [--yes]
- disable-model-invocation
- true
02 资源文件 1
- 脚本health-check.mjs45.1 KB
03 SKILL.md 正文
health
Read .agents/skills/health/SKILL.md and follow its workflow steps.
Important: rendering (the status table, non-clean sections, execution results) is handled by the health-check.mjs engine. Present the engine's stdout as-is; don't reformat or reinterpret it.
Claude Code-specific additions
Running the engine
Run health-check.mjs, in the same directory, via Bash (passing $ARGUMENTS as-is). In user-scope it's ~/.claude/skills/health/health-check.mjs; for dogfooding, <repo>/.claude/skills/health/health-check.mjs:
node ~/.claude/skills/health/health-check.mjs $ARGUMENTS
Argument parsing
Determine the presence of --deep / --fix / --yes. When --fix is absent (no arguments / --deep), the engine completes read-only, so present the output as-is and end. Any other flags are ignored (reserved for future extension).
--fix confirmation-gate wiring (follows the central policy)
When --fix is specified and --yes is absent, the engine resolves each action's gate via the central policy (policy-read.mjs). The host side branches the UI per gate (gate determination belongs to the engine — the host never re-determines the vocabulary/class):
- Execute + list: run
node ~/.claude/skills/health/health-check.mjs --fix [--deep]. The engine executes on the spotproceed(reversible-local) actions and outputs the "execution results" (✔ done/✖ failedon each line) (audit trail, no confirmation needed).ask(irreversible stash drop) actions are output as "actions requiring confirmation (gate=ask)" and are not executed. - Individual confirmation of
askitems: only when there's anasklist, confirm withAskUserQuestionper action whether it's OK to execute (don't enumerate options as text).- Approved → run
node ~/.claude/skills/health/health-check.mjs --fix --yes [--deep]to execute the rest (the approvedaskitems), and present the execution results and the post-execution status table as-is. - Rejected → end without executing anything additional.
- The
asklist is empty (everything already executed viaproceed) → present the execution results and post-execution status table, and end.
- Approved → run
For --fix --yes (with --yes from the start), run the engine once, as-is, without inserting a confirmation. --yes is an explicit opt-out that overrides the policy, executing all safe actions, including those with gate ask (unattended execution via routine / /loop / schedule).
The engine's --fix safe boundary (executing only prune / delete / fetch / the --deep-promoted drop, with push / 要確認 / 要対応 / abort or continue out of scope) and gate resolution (reversible-local=proceed / irreversible=ask, falling back fail-safe to ask when a policy is absent) are enforced on the engine side, per the SKILL.md contract. The host side never re-determines the vocabulary or gate.
Completion report and next-action suggestions
End once the engine output has been presented. AskUserQuestion is not used other than for --fix's individual confirmation. No next-action suggestion is made either.
04 同仓库更多 Skills
verify
An integrated skill that runs the combined validation of build / typecheck / test / lint in one shot. The `verify.mjs` engine auto-discovers validation commands via a discovery chain (AGENTS.md's 「検証」 section → package.json scripts → justfile/Makefile/lefthook → language heuristics), executes them serially with their source attached, and returns a result summary. If a higher-priority stage produces a hit, only that stage is executed (no crossing stages).
usage-guard
Monitors Claude Code's Usage Limit (5-hour = Current / weekly = Weekly), pauses work when it exceeds 95%, and automatically resumes once the reset restores headroom. Bundles an engine form that a caller such as drive Reads at a checkpoint, and a standalone form, `/usage-guard "<continuation command>"`, that guards arbitrary work. Claude-only (depends on the OAuth usage-rate endpoint + ScheduleWakeup).
topics
Selects GitHub topic candidates by having the `topics.mjs` engine perform constraint validation, popularity measurement, broad+narrow / singular-plural comparison, and hardcoded ozzy-labs conventions, then applies them via `gh repo edit --add-topic` following the policy's `externally-visible` gate (default batch-confirm). Scope is limited to use within ozzy-labs.
skill-observability
Defines the skill observability event contract (event.schema.json) and emit substrate (obs-emit.mjs). The SSOT for the measurement layer of the skill improvement loop. Referenced by other skills and hooks.
skill-metrics
Aggregates the local observability event log (~/.agents/observability/events.jsonl) and presents, read-only, per-skill invocation counts and notable events (fallback / HITL rejection / loop cap reached / abort). Fires on "show me the skill metrics," "aggregate the observability results," "which skills get used the most?" Does not send anything.
ship
Runs verification, commit, and PR creation all at once. An integrated pipeline that runs verify (build + type + test + lint) → commit → PR creation in sequence against the changes.