preflight
Run periodic maintenance checks. Use /preflight to see the checklist — rows highlighted if overdue (e.g. /cleanup-dev > 30 days), then offer to run them.
SKILL.mdskills/preflight/SKILL.md
GitHubPreflight
Runs a checklist of periodic maintenance tasks, reports which are overdue, and carries those items forward so the count stays visible at a glance.
Workflow
1. Gather state
~/.claude/hooks/preflight-check.sh
Output is pipe-delimited check|status|detail|flag. flag=warn means the row is overdue.
2. Present as a table
Columns: Check, Status, Detail, Action.
- Bold the Check cell and prefix the Status cell with
⚠️ **OVERDUE**whenflag=warn. - Action suggests the matching slash command (e.g.
/cleanup-dev). Clean rows show—. - End with a one-line summary:
N overdue / M checks.
3. Carry the overdue items forward
The outcome this step owes: every overdue check leaves a standing item the user can see after the table has scrolled away, and a check that has since been run stops carrying one.
Where that item lives depends on the session — read docs/workflow/task-surface.md for the
convention. In short: a task-tracking tool in the roster takes the items;
absent one, the table from step 2 is the record — close with the one-line
summary and let step 4 act on it directly.
Where a tool is used, one item per overdue check:
subject:<key> overdue — run <action>(e.g.cleanup-dev overdue — run /cleanup-dev)description: the row's detail field plus the suggested slash command- identity:
preflight_key = <key>, so re-runs match rather than duplicate
An overdue check whose item already stands is left alone. A check now reading
clean has its item marked complete — the self-heal. An item bearing no preflight_key was
not written by this skill; never touch it.
4. Offer to run overdue items
If any rows are flagged, use AskUserQuestion to let the user pick which overdue tasks to run now (multiSelect). Invoke the suggested slash command for each selection.
When a run finishes, the next /preflight invocation reads the check as clean again — and where step 3 seated an item, that run closes it via the self-heal. No per-skill coupling needed.
Checks
| Key | Threshold | Action when overdue |
|---|---|---|
cleanup-dev |
30 days since last run | /cleanup-dev |
daily |
not yet run today (calendar day) | /daily |
triage |
not yet run today (calendar day) | /triage |
nazgul-checks |
30 days since last review of the rubric files | walk skills/nazgul/checks/*.md, then /nazgul reviewed |
palantir |
any of your PRs/MRs carries new comments since you last looked | /palantir activity |
Add new checks by extending ~/.claude/hooks/preflight-check.sh and the table above.