wtf.health
Health
Project health dashboard. Core value: gives a full-stack view of open WTF issues in under a minute — surfaces what is blocked, what is stale, and what the clear next action is for each problem found.
Process
0. GitHub CLI setup
Run steps 1–2 of ../references/gh-setup.md. Stop if gh is not installed or not authenticated.
1. Choose the scope
Apply ../references/questioning-style.md and ask "What scope do you want to check?" — header Scope:
- Full project → all open Epics, Features, and Tasks
- One Epic → all work under a specific Epic
- One Feature → all Tasks under a specific Feature
For Epic or Feature scope, prompt for the issue number with options pre-filled from recent open issues.
2. Fetch all open issues
Run in parallel:
gh issue list --label "epic" --state open --json number,title,labels,updatedAt --limit 50
gh issue list --label "feature" --state open --json number,title,labels,updatedAt --limit 100
gh issue list --label "task" --state open --json number,title,labels,updatedAt --limit 200
gh issue list --label "bug" --state open --json number,title,labels,updatedAt --limit 50
Also fetch open PRs to detect tasks with an open PR but no verified label:
gh pr list --state open --json number,title,headRefName,body --limit 50
3. Classify issues into health categories
For each issue, check its labels against the expected lifecycle:
Epics:
| Signal | Category |
|---|---|
| No child Features linked | ⚠️ Epic has no Features |
| All child Features closed | ✅ Epic complete — needs wtf.retro |
Features:
| Signal | Category |
|---|---|
No designed label, no child Tasks |
⚠️ Feature not designed, no tasks |
Has child Tasks, none implemented |
🔵 In progress |
All child Tasks verified, Feature still open |
✅ Feature complete — needs Feature PR |
Tasks:
| Signal | Category |
|---|---|
No designed label |
⚠️ Not designed — blocked before implement |
designed but not implemented for > 7 days |
🕐 Stale — may be forgotten |
implemented but not verified |
⏳ Waiting for QA |
verified but no open or merged PR |
⏳ Waiting for PR |
Has open PR but not verified |
⚠️ PR open without QA sign-off |
implemented + verified + PR merged |
✅ Done |
Bugs:
| Signal | Category |
|---|---|
| Open, no task linked in body | ⚠️ Bug not linked to a task |
| Open > 14 days | 🕐 Stale bug |
Staleness threshold for tasks is 7 days since last update; for bugs, 14 days. These are heuristics — flag but do not auto-close anything.
4. Render the health report
Project Health — <scope> — <YYYY-MM-DD>
────────────────────────────────────────────────────────
Epics: [n open]
Features: [n open]
Tasks: [n open] ([n] implemented, [n] verified, [n] stale)
Bugs: [n open] ([n] stale)
────────────────────────────────────────────────────────
⚠️ Needs attention ([n])
[#n] Task: <title>
Label gap: designed — not yet implemented (stale [n days])
Next: run implement-task
[#n] Task: <title>
implemented — not verified
Next: run verify-task
[#n] Feature: <title>
All tasks verified — Feature PR not opened
Next: run create-pr targeting main
[#n] Bug: <title>
Open [n days], no linked task
Next: run write-task to create a fix task
🕐 Stale ([n])
[#n] Task: <title>
Last updated [n days ago] — no activity since designed
────────────────────────────────────────────────────────
✅ Clean
[n] tasks verified and merged
[n] features closed
If everything is clean, print: "All open issues are in a healthy state. Nothing needs attention."
5. Offer to act on findings
If findings exist, apply ../references/questioning-style.md and ask "Would you like to act on any of these findings now?" — header Next action:
- One option per ⚠️ finding (e.g. Verify Task #42 → run
verify-task) - Done — just the report → exit
Route each selection to the appropriate skill with the issue number pre-loaded as context.
More from xiduzo/wtf
wtf.write-feature
This skill should be used when a user wants to create a GitHub Feature issue, break down an Epic into user-facing capabilities, write user stories in domain language, or capture what a domain actor can do — for example "create a feature", "write a feature for this epic", "add a feature to an epic", "break this epic into features", "write user stories for this feature", or "describe what this actor can do". Use this skill to write a single Feature; use `wtf.epic-to-features` to generate the full set of Features for an Epic at once. Not applicable to Tasks, Epics, or bug reports.
38wtf.write-epic
This skill should be used when a user wants to create, draft, or plan a GitHub Epic issue — for example "write an epic", "I want to define a new initiative", "scope out this strategic project", "turn this idea into an epic", "plan work that spans multiple features", or "start from a bounded context". Also use when the user asks to define domain outcomes, capture a large initiative before breaking it into features, or describe work in terms of business goals rather than technical tasks.
38wtf.steer-design
This skill should be used when a team wants to create or refine the design guidelines document — for example "create the design steering doc", "document our design system", "write the design principles", "document our component patterns", "set up the design guidelines", or "update the design doc". Generates docs/steering/DESIGN.md as a living document capturing design principles, the design system, tokens, component patterns, and accessibility standards. Generated once and refined — not regenerated from scratch.
37wtf.reflect
This skill should be used when a developer wants to capture learnings from a difficult session, record what Claude got wrong, save implementation gotchas, or update the steering docs with hard-won knowledge — for example "let's reflect", "capture what we learned", "that was painful, save this", "update the steering docs with what went wrong", "I need to debrief", "what went wrong today", "log this lesson", "save this gotcha", "document this mistake", "I want to write this down before I forget", "add this to the steering docs", or when prompted by the intervention tracker after multiple corrections. Routes each learning into the right steering doc (TECH, QA, DESIGN, or VISION) under a "Hard-Won Lessons" section.
37wtf.report-bug
This skill should be used when a developer or QA engineer wants to report a bug, create a bug ticket, document a test failure, log a defect, file an issue found during a QA session, or report something that is broken — for example "report a bug", "create a bug ticket", "I found a defect", "something is broken in task #X", or "document this test failure". Files a structured GitHub Bug issue that links the originating Task and Feature, maps failing Gherkin scenarios as reproducible test evidence, and fills every section of the BUG template.
37wtf.setup
This skill should be used when a user wants to set up WTF in a new repository, verify their environment is ready, check that GitHub CLI is installed and authenticated, install required gh extensions, or ensure the .github/ISSUE_TEMPLATE/ templates are in place — for example "set up wtf", "run setup", "check my environment", "install wtf templates", "verify everything is configured", "initialize wtf", "onboard to wtf", "first time setup", "configure gh for wtf", "prepare this repo for wtf", "is wtf ready", "get wtf running", or "a new dev joined, set them up". Run once per repo when onboarding, or when a contributor joins the project.
36