界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
效率与协作 · SKILL.md

pdca-watch

pdca-watch

【效率与协作】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

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

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

ArgumentDescriptionExample
(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: lt;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 VersionBehavior
≥ 2.1.71Native /loop 30s ticker
< 2.1.71E-β4-01: single render + warning, no loop
UnknownSame 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

ModuleFunctionUsage
lib/dashboard/watch.jsresolveFeature()Auto-detect when no arg
lib/dashboard/watch.jsrenderTick()One frame per tick
lib/dashboard/watch.jstailLedger()NDJSON tail (≤200)
lib/dashboard/watch.jscheckLoopSupport()CC version gate
lib/infra/cc-version-checker.jsgetCurrent()Version source

Examples

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

我的收藏