wf-player
Skill2.1k starsChanged 7 months agoMITArchived repositoryView on GitHub
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".
1 other project uses a version of this.
Adopted by
Most recently taken up by
- zhao-wuyan/ccw-command-explorerword for word, first seen May 8, 2026
Other versions1 project uses a version of this.
Word for word · 1
- zhao-wuyan/ccw-command-explorer★ 45100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository59 other files it gives its agents.
- .codex/AGENTS.mdAGENTS.md
- brainstormSkill
- ccw-chainSkill
- ccw-helpSkill
- delegation-checkSkill
- investigateSkill
- issue-manageSkill
- memory-captureSkill
- memory-manageSkill
- prompt-generatorSkill
- review-codeSkill
- review-cycleSkill
- security-auditSkill
- shipSkill
- skill-generatorSkill
- skill-iter-tuneSkill
- skill-simplifySkill
- skill-tuningSkill
- spec-generatorSkill
- team-arch-optSkill
- team-brainstormSkill
- team-coordinateSkill
- team-designerSkill
- team-executorSkill
- team-frontend-debugSkill
- team-frontendSkill
- team-interactive-craftSkill
- team-issueSkill
- team-lifecycle-v4Skill
- team-motion-designSkill
- team-perf-optSkill
- team-planexSkill
- team-quality-assuranceSkill
- team-reviewSkill
- team-roadmap-devSkill
- team-tech-debtSkill
- team-testingSkill
- team-uidesignSkill
- team-ui-polishSkill
- team-ultra-analyzeSkill
- team-ux-improveSkill
- team-visual-a11ySkill
- wf-composerSkill
- workflow-executeSkill
- workflow-lite-executeSkill
- workflow-lite-planSkill
- workflow-lite-test-reviewSkill
- workflow-multi-cli-planSkill
- workflow-planSkill
- workflow-skill-designerSkill
- workflow-tdd-plan-planSkill
- workflow-test-fixSkill
- brainstormSkill
- investigateSkill
- review-cycleSkill
- spec-generatorSkill
- workflow-planSkill
- workflow-tdd-planSkill
- workflow-test-fixSkill
The file
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 3 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 93
Read phases/01-load.md and execute.
- Distinctive: line 105
Objective: Create WFR session directory, init state, compute execution plan.
- Distinctive: line 119
Wait for hook callback — DO NOT poll with TaskOutput
- Distinctive: line 122
Success: All nodes completed, all checkpoints saved.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Workflow Run
Load a workflow template → bind variables → execute DAG → persist checkpoints → resume capable.
Architecture
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 summaryShared Constants
| 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 |
Entry Router
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 |
handleList
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='...'")Phase 0 (Resume): Session Reconciliation
Trigger: --resume <session-id> or active WFR session found in .workflow/sessions/WFR-*/
- Scan
.workflow/sessions/WFR-*/session-state.jsonfor status = "running" | "paused" - Multiple found → AskUserQuestion for selection
- Load session-state.json
- Identify
last_checkpointandnode_states - Reset any
runningnodes back topending(they were interrupted) - Determine next executable node from
topological_orderafter last checkpoint - Resume at Phase 3 (Execute Loop) from that node
Phase 1: Load & Bind
Read 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.
Phase 2: Instantiate
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.
Phase 3: Execute Loop
Read phases/03-execute.md and execute.
Objective: Execute each node in topological_order using appropriate mechanism.
CRITICAL — CLI node blocking:
- CLI nodes launch
ccw cliin background and immediately STOP - Wait for hook callback — DO NOT poll with TaskOutput
- Hook callback resumes execution at next node
Success: All nodes completed, all checkpoints saved.
Phase 4: Complete
Read phases/04-complete.md and execute.
Objective: Archive session, output execution summary and artifact paths.
Error Handling
| 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 |
Specs Reference
| Spec | Purpose |
| specs/node-executor.md | Execution mechanism per node type |
| specs/state-schema.md | session-state.json schema |
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

