Find workflow state gaps
Skill KhurrumMahmood/senior-vibe-engineer/.claude/skills/find-workflow-state-gaps
Advisory SUSPECT scan for workflow state coverage gaps in JavaScript and templates: loading, empty, failure, retry/cancel, disabled, and mobile states. Also imports workflow-duplication findings as state-authority context.From its SKILL.md
npx -y skills add KhurrumMahmood/senior-vibe-engineer --skill find-workflow-state-gapsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
5.2 KB, ~1.0k tokens by cl100k_base, as published. Nobody here has run it
/find-workflow-state-gaps
Use this as a state-coverage audit for async workflow surfaces. It is especially useful before adding another polling panel or after a cleanup that moves route/template/JS ownership.
How success is judged
- The run writes a real scan directory under
reports/find-workflow-state-gaps/scan-<UTC>/containingdetections.jsonl,report.md, andfindings.json, and updates thelatestsymlink. - The closing summary pastes the runner's exact
wrote <report_dir>line and the finding count fromfindings.json; claims without those artifacts do not count. - Every reported gap names one detector band and one follow-up decision: state coverage fix, Playwright/manual verification, accepted false-positive, or guard proposal.
- The run stays advisory. It does not edit templates, JavaScript, tests, or workflow registries.
Pipeline
Run the one-shot wrapper from the repository root:
.venv/bin/python .claude/skills/find-workflow-state-gaps/scripts/run.py <paths...>
If <paths...> is omitted, the scanner examines the host-declared
workflow targets from the shared workflow descriptor helpers. In a repo
with no workflow descriptor, pass explicit file or directory paths. To
scan only one surface, pass that specific path.
For a raw detector replay without report rendering:
.venv/bin/python .claude/skills/find-workflow-state-gaps/scripts/detect.py \
--project-root "$(pwd)" \
--no-workflow-duplication \
--output /tmp/workflow-state-gaps.jsonl \
<paths...>
Render an existing raw detector file:
.venv/bin/python .claude/skills/find-workflow-state-gaps/scripts/report.py \
/tmp/workflow-state-gaps.jsonl \
--target "<workflow surface>" \
--output /tmp/workflow-state-gaps.md
Detector Bands
missing_loading_statemissing_empty_statemissing_failure_statemissing_recovery_statemissing_disabled_statemissing_mobile_statestate_authority_context:*imported from/find-workflow-duplicationwhen that detector is present.
Judgment Points
- Treat this scan as a prompt for inspection, not proof of a UI bug. Before recommending code work, read the flagged file and confirm the state is truly absent from the rendered path.
- A low-confidence
missing_mobile_statefinding requires a viewport check or a named reason it is out of scope; do not turn it directly into a guard. - A
state_authority_context:*row is context for ownership drift. Do not fix it inside this skill; hand it to/find-workflow-duplicationor the product-topology skill named by the row. - If the scan produces zero rows, still report the scan directory and
finding count. A clean scan is a valid artifact only when
findings.jsonconfirms zero findings.
Replay Case
The fixture smoke test is the cheap replay case for the detector bands:
.venv/bin/python .claude/skills/find-workflow-state-gaps/scripts/smoke.py
It must print find-workflow-state-gaps smoke OK. If it fails, do not
trust a catalog-wide scan until the fixture failure is repaired.
When things go sideways
| Symptom | Action |
|---|---|
Wrapper exits non-zero or prints no wrote line | Stop, paste stdout/stderr, and do not claim a report was produced |
reports/find-workflow-state-gaps/latest is missing or points at no directory | Report the broken artifact path and re-run the wrapper before judging findings |
A path argument does not exist or expands to no .js / .html files | State that the target produced no scanned files and ask for a corrected path; do not broaden scope silently |
| No paths were passed and the host has no workflow descriptor | Report that no default workflow targets were available; re-run with explicit file or directory paths |
| Imported workflow-duplication context fails | Re-run with the raw detector and --no-workflow-duplication, paste that command output, and mark authority-context rows unavailable |
| Findings are obviously generated from fixture, vendored, or generated files | Mark them false-positive in the summary with the path evidence; do not delete rows from detections.jsonl |
Repository layout
.claude/skills/find-workflow-state-gaps/
├── SKILL.md
└── scripts/
├── detect.py
├── report.py
├── run.py
└── smoke.py
What ships with it: 10 files
13.8 KB alongside SKILL.md, 6 of them executable
fixtures/
Gives 0 of the 12 instructions most automation workflows skills give in ~1.0k tokens
Counted across 745 of the 1,008 authors here whose files we hold, read 2026-08-07
- Write conventional commit messagesin 36 of 745, across 35 files
- Delete branches after mergein 30 of 745, across 21 files
- Make atomic commitsin 25 of 745, across 15 files
- Write minimal code to pass testsin 22 of 745, across 10 files
- Re-snapshot after navigation or DOM changesin 21 of 745, across 13 files
- Use try-catch for error handlingin 20 of 745, across 8 files
- Run tests before committingin 20 of 745, across 12 files
- Write tests before implementationin 20 of 745, across 8 files
- Configure branch protection rulesin 19 of 745, across 5 files
- Explain the why in commit messagesin 19 of 745, across 9 files
- Refactor code while tests remain greenin 19 of 745, across 6 files
- Interact with elements using refsin 19 of 745, across 11 files
Said here and by no other author read
- run the one-shot wrapper from repository root
- write detections, report, and findings to a scan directory
- update the latest symlink to the scan directory
- paste the exact report directory line in the summary
- name one detector band and one follow-up decision per gap
- read the flagged file before recommending code work
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.