From wovol-lab
Daily cross-platform state survey (Linear + GitHub + git). Applies Little's Law to compute WIP utilization, identifies the bottleneck stage, flags stale items, and (optionally) enforces a WIP limit by refusing to start new work until the queue clears. Pull-based, not push-based — surfaces options, doesn't decide for you.
How this skill is triggered — by the user, by Claude, or both
Slash command
/wovol-lab:flow-conductorThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
- **Queueing theory: Little's Law** — `WIP = throughput × cycle_time`.
WIP = throughput × cycle_time.
Holding WIP constant, halving cycle time doubles throughput. The
skill computes WIP utilization and cycle-time trend across stages./flow-conductor or /delivery/flow-conductor/flow-conductor --before-pullpython3 "$WOVOL_LAB_ROOT/.claude/skills/_foundation/profile-manager/scripts/profile.py" verify wovol || exit 2
--before-pull — strict mode; exits non-zero if WIP limit exceeded
(script callers can chain this before starting new work)--enforce — same as --before-pull but with stronger UX gates
(warns at multiple stages)--comment-on-bottleneck — post a comment on the oldest bottleneck
item (uses pre-submit-confirm gate)--config <file> — override default flow-conductor.local.ymlCollect state in parallel:
updatedAt per itemahead-behind counts vs main; dirty working tree warningCompute critical path (WOV-79/80):
progressive-decompose/scripts/critical_path.py with the active issue list{issue_id: {on_critical_path, path_length_pt}}progressive-decompose and bottleneck-detector so decomposition pressure and leverage labels are weighted by CP membershipCompute metrics:
Invoke bottleneck-detector agent with the collected data to
produce a human-readable diagnosis (1 short paragraph, the WHY behind
the numbers).
Apply WIP-limit policy:
current_wip / limit--before-pull and any stage > 100%: exit non-zeroRender report as Markdown to audit/delivery/flow-{date}.md:
# Flow — YYYY-MM-DD
## Critical path (top 3)
1. PROJ-79 build — critical_path.py (in progress, 2pt)
2. PROJ-80 integrate — CP downgrade (todo, 1pt)
3. PROJ-62 sanitize for public release (todo, 3pt)
## Snapshot
| Stage | WIP | Limit | Util | Oldest item age |
|---|---|---|---|---|
| In Progress | 0 | 1 | 0% | — |
| In Review | 3 | 2 | 150% | 8d |
| Done (last 7d) | 5 | — | — | — |
## Bottleneck
**In Review** (current bottleneck — 150% utilization, oldest item 8d)
Diagnosis: PRs are landing slower than they're opening; oldest is
blocked on reviewer feedback. Two oldest:
- TEAM-101: 8d, waiting on @reviewer (last comment 5d ago)
- TEAM-102: 4d, draft state (needs to switch to ready)
## Stale items
- TEAM-103 (Todo, 14d untouched) — consider closing or re-scoping
- TEAM-104 (In Progress, 6d no commits) — likely abandoned
## Cycle time trend
- 7d median: 2.3 days (Todo → Done)
- 30d median: 1.8 days
- Trending up ⚠ (50% increase from baseline)
## Recommendation
1. Land one of the two In Review items today before starting anything new
2. Switch TEAM-102 from draft to ready (no extra work needed)
3. Decide on TEAM-103 / TEAM-104 — close or revive
## Local git state
- main: up to date, clean ✓
- feature/foo: 3 commits ahead, no PR (consider /pr-handoff)
- wip/bar: 1 commit ahead, dirty tree ⚠
Optional: if --comment-on-bottleneck, post a 1-line comment on
the oldest bottleneck item ("This item has been in for Nd")
— pre-submit-confirm prompts.
--before-pull,
exits non-zero rather than letting the caller start a new task.| Hook | When | What |
|---|---|---|
audit-logger | every tool call | Standard |
pre-submit-confirm | --comment-on-bottleneck only | Gates the optional Linear comment |
| Symptom | Cause | Action |
|---|---|---|
| Linear MCP down | Outage | Render git + GitHub only; note Linear unavailable |
gh not authed | Token expired | Render Linear + git only; note gh unavailable |
| 0 issues / 0 PRs | Empty project | Output: "Nothing in flight. Pull new work freely." |
WIP limit exceeded in --before-pull | Real overload | Exit non-zero; caller (script) refuses to start work |
config/delivery.local.yml (gitignored, shared with delivery suite):
wip_limits:
in_progress: 1
in_review: 2
cycle_time_targets:
iteration_minutes: 30
pr_lead_time_hours: 24
bottleneck:
stale_days_in_review: 3
stale_days_in_progress: 5
stale_days_in_todo: 14
flow_conductor:
cycle_time_baseline_days: 30
cycle_time_warn_growth_pct: 50 # warn if 7d median > baseline + 50%
Stdout: 1-paragraph summary + recommendation.
audit/delivery/flow-{date}.md: full report.
Exit non-zero only with --before-pull and WIP > 100%.
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub whitestonetak/wovol-lab --plugin wovol-lab