Skip to content
Back to skills

Pdca Watch

ASecurity

Live PDCA dashboard ticking every 30s — reads pdca-status.json + token-ledger.ndjson tail, renders fixed-width panel via CC /loop. Triggers: pdca watch, live dashboard, watch progress, 실시간 대시보드, ライブダッシュボード, 实时仪表板, panel en vivo, tableau de bord.

  • 599 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 27, 2026
data-airustbashsecurity

Security analysis

A100/100

Scanned May 27, 2026

npx -y skills add popup-studio-ai/bkit-claude-code --skill pdca-watch --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Pdca Watch?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Pdca Watch
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/popup-studio-ai-pdca-watch/badge)](https://www.skillsdirectory.com/skills/popup-studio-ai-pdca-watch)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: pdca-watch
classification: workflow
classification-reason: Live PDCA dashboard tied to bkit's state machine + token ledger
deprecation-risk: none
effort: low
description: |
  Live PDCA dashboard ticking every 30s — reads pdca-status.json + token-ledger.ndjson tail, renders fixed-width panel via CC /loop.
  Triggers: pdca watch, live dashboard, watch progress, 실시간 대시보드, ライブダッシュボード, 实时仪表板, panel en vivo, tableau de bord.
argument-hint: "[feature]"
user-invocable: true
allowed-tools:
  - Read
  - Glob
imports: []
next-skill: null
pdca-phase: null
task-template: "[Watch] {feature}"
---

# 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:

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.