Skill556 repo starsupdated 11d ago
pdca-watch
PDCA Watch provides a live 30-second ticker dashboard for monitoring PDCA feature progress, displaying current phase, match rate, iteration count, token consumption, and estimated cost. Use it to observe real-time workflow metrics for an active feature in the bkit PDCA system, either auto-detecting the primary feature or watching a specific one by name.
Install in Claude Code
Copygit clone --depth 1 https://github.com/popup-studio-ai/bkit-claude-code /tmp/pdca-watch && cp -r /tmp/pdca-watch/skills/pdca-watch ~/.claude/skills/pdca-watchThen start a new Claude Code session; the skill loads automatically.
Definition
SKILL.md
# PDCA Watch — Live Tick Dashboard
> v2.1.11 Sprint β FR-β4. Wraps `lib/dashboard/watch.js` over CC's
> `/loop` (v2.1.71+). Read-only — only consumes state files; never
> writes. Falls back to a single render when `/loop` is unsupported
> (E-β4-01).
## Arguments
| Argument | Description | Example |
|----------|-------------|---------|
| (none) | Auto-resolve active feature from `pdca-status.primaryFeature` | `/pdca-watch` |
| `<feature>` | Watch a specific feature by name | `/pdca-watch bkit-v2111-integrated-enhancement` |
## Behavior
### Resolution
1. If `<feature>` is provided, use it verbatim.
2. Else read `.bkit/state/pdca-status.json` → `primaryFeature`, then
`activeFeatures[0]` as fallback.
3. If still no feature → render `"No active PDCA feature. Start one
with /pdca pm <feature>"` and exit.
### Tick (every 30s via `/loop`)
For each tick, `lib/dashboard/watch.js#renderTick` produces a panel with:
```
Watch <feature> — tick N (HH:MM:SS)
─────────────────────────────────────────────────────────────
Phase: <phase> Match: <%> Iter: <n / 5>
Tokens: <in> in / <out> out · samples <N>
Est cost: $<USD>
─────────────────────────────────────────────────────────────
```
Data sources:
- Phase / matchRate / iterationCount: `pdca-status.features[<feature>]`
- Token totals: last 50 lines of `token-ledger.ndjson`
- Cost: Sonnet-class flat estimate ($3/Mtok in, $15/Mtok out)
### Termination
- Ctrl-C from user
- Feature `phase === 'completed'` or `phase === 'archived'`
- After max 60 ticks (≈30 min) — caller restarts if more time needed
## CC `/loop` Support
| CC Version | Behavior |
|------------|----------|
| ≥ 2.1.71 | Native `/loop 30s` ticker |
| < 2.1.71 | E-β4-01: single render + warning, no loop |
| Unknown | Same as < 2.1.71 (fail-safe) |
The check is performed via `watch.checkLoopSupport({ ccVersion })` —
caller passes the resolved CC version from `lib/infra/cc-version-checker`.
## Security
- Pure read on `.bkit/state/pdca-status.json` and `.bkit/runtime/token-ledger.ndjson`.
- Tail bounded to `MAX_TAIL_LINES = 200` regardless of caller input —
defends against pathological NDJSON growth.
- No subprocess spawning, no network.
- PII redaction on the ledger is owned by the writer (Token Accountant);
watch only reads what's already redacted.
## Module Dependencies
| Module | Function | Usage |
|--------|----------|-------|
| `lib/dashboard/watch.js` | `resolveFeature()` | Auto-detect when no arg |
| `lib/dashboard/watch.js` | `renderTick()` | One frame per tick |
| `lib/dashboard/watch.js` | `tailLedger()` | NDJSON tail (≤200) |
| `lib/dashboard/watch.js` | `checkLoopSupport()` | CC version gate |
| `lib/infra/cc-version-checker.js` | `getCurrent()` | Version source |
## Examples
```bash
# Auto-detect active feature
/pdca-watch
# Watch a specific feature
/pdca-watch bkit-v2111-integrated-enhancement
```
## Related
- `/pdca status` — single snapshot (no loop)
- `/control trust` — trust score informs auto-escalation
- `/pdca-fast-track` — Daniel-mode auto-approve checkpoints
ARGUMENTS: