.claude/skills/wf-player/SKILL.md
Workflow template player — load a JSON template produced by wf-composer, bind context variables, execute nodes in DAG order (serial/parallel), persist state at checkpoints, support resume from any checkpoint. Uses ccw-coordinator serial-blocking for CLI nodes and team-coordinate worker pattern for parallel agent nodes. Triggers on "wf-player " or "/wf-player".
npx skillsauth add catlog22/claude-code-workflow wf-playerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Load a workflow template → bind variables → execute DAG → persist checkpoints → resume capable.
Skill(skill="wf-player", args="<template> --context goal='...'")
|
+-- Phase 0: Entry Router
|-- --list -> list available templates, exit
|-- --resume -> load session, skip to Phase 3 (Execute)
|-- --dry-run -> load + show execution plan, no execution
|-- default -> Phase 1 (Load)
|
+-- Phase 1: Load & Bind
| Load template JSON, bind {variables} from --context, validate required vars
|
+-- Phase 2: Instantiate
| Init session state, topological sort, write WFR session file
|
+-- Phase 3: Execute Loop
| For each node in order:
| skill node -> Skill(skill=...) [synchronous]
| cli node -> ccw cli [background + stop, hook callback]
| command node -> Skill(skill="namespace:cmd") [synchronous]
| agent node -> Agent(...) [run_in_background per node config]
| checkpoint -> save state, optionally pause
|
+-- Phase 4: Complete
Archive session, output summary
| Constant | Value |
|----------|-------|
| Session prefix | WFR |
| Session dir | .workflow/sessions/WFR-<slug>-<date>/ |
| State file | session-state.json |
| Template dir | .workflow/templates/ |
| Template index | .workflow/templates/index.json |
Parse $ARGUMENTS:
| Detection | Condition | Handler |
|-----------|-----------|---------|
| List templates | --list in args | -> handleList |
| Resume session | --resume <session-id> in args | -> Phase 2 (resume) |
| Dry run | --dry-run in args | -> Phase 1 + 2, print plan, exit |
| Normal | Template slug/path provided | -> Phase 1 |
| No args | Empty args | -> handleList + AskUserQuestion |
Scan .workflow/templates/index.json. Display:
Available workflow templates:
feature-tdd-review [feature, complex] 3 work nodes, 2 checkpoints
quick-bugfix [bugfix, simple] 2 work nodes, 1 checkpoint
...
Run: Skill(skill="wf-player", args="<slug> --context goal='...'")
Trigger: --resume <session-id> or active WFR session found in .workflow/sessions/WFR-*/
.workflow/sessions/WFR-*/session-state.json for status = "running" | "paused"last_checkpoint and node_statesrunning nodes back to pending (they were interrupted)topological_order after last checkpointRead phases/01-load.md and execute.
Objective: Load template, collect missing variables, bind all {variable} references.
Success: Template loaded, all required variables bound, bound_context{} ready.
Read phases/02-instantiate.md and execute.
Objective: Create WFR session directory, init state, compute execution plan.
Success: session-state.json written, topological_order ready.
Read phases/03-execute.md and execute.
Objective: Execute each node in topological_order using appropriate mechanism.
CRITICAL — CLI node blocking:
ccw cli in background and immediately STOPSuccess: All nodes completed, all checkpoints saved.
Read phases/04-complete.md and execute.
Objective: Archive session, output execution summary and artifact paths.
| Scenario | Resolution |
|----------|------------|
| Required variable missing | AskUserQuestion to collect it |
| Template not found | Show --list and suggest closest match |
| Node failed (on_fail=abort) | AskUserQuestion: Retry / Skip / Abort |
| Node failed (on_fail=skip) | Log warning, continue to next node |
| Node failed (on_fail=retry) | Retry once, then abort |
| Interrupted mid-execution | State saved at last checkpoint; resume with --resume <session-id> |
| Cycle in DAG | Error immediately, point to template for fix |
| Spec | Purpose | |------|---------| | specs/node-executor.md | Execution mechanism per node type | | specs/state-schema.md | session-state.json schema |
testing
End-to-end test-fix workflow generate test sessions with progressive layers (L0-L3), then execute iterative fix cycles until pass rate >= 95%. Combines test-fix-gen and test-cycle-execute into a unified pipeline. Triggers on "workflow:test-fix-cycle".
devops
Explore-first wave pipeline. Decomposes requirement into exploration angles, runs wave exploration via spawn_agents_on_csv, synthesizes findings into execution tasks with cross-phase context linking (E*→T*), then wave-executes via spawn_agents_on_csv.
data-ai
Initialize project-level state and configure specs via interactive questionnaire.
documentation
Add specs, conventions, constraints, or learnings to project guidelines interactively or automatically