

Also from Kynth Studios


Also from Kynth Studios


Also from Kynth Studios
1234567# story: e09s018# story: e45s279# story: e21s041011# Compose Workflow12> **HARD GATE** — **HARD GATE** — Workflows are orchestration, not automation. Do NOT create workflows for tasks that should be single skills. Workflow complexity must be justified.131415## Process16171. Interview: goal, phases, which skills, gates between steps.182. Write `specs/workflows/<name>.yaml`:19 - `name`, `command`, `description`, `skills[]`, `verify`20 - Optional: `args` for skill-specific arguments213. Register in state.yaml Active Decisions.224. Optional: reference from `orchestrate-project` Ad-Hoc mode.2324> **Prefer the YAML recipe format** over the legacy `specs/WORKFLOW-<name>.md` markdown format.25> YAML recipes are command-mappable, machine-readable, and listed in the Standard Recipe Library.2627## Terminal-state taxonomy (e45s27)2829Every workflow step and `/loop` tick MUST exit with exactly one terminal state:3031| State | Meaning | Next action |32|-------|---------|-------------|33| `success` | Step verify passed; artifacts written | Advance to next skill in recipe |34| `no-op` | Nothing to do (already green / already applied) | Skip step; advance |35| `blocked` | External gate (approval, red CI, missing dep) | `diagnose-stall` or escalate to user |36| `exhausted` | Max iterations/cycles reached (review cap, dispatch cycles) | Stop; human decision required |3738Record terminal state in `specs/state.yaml` `handoff.last_terminal_state` when a recipe step completes. `/loop` ticks that produce no progress for two consecutive wakes → invoke `diagnose-stall`.3940## Standard Recipe Library4142Pre-built recipes in `specs/workflows/` map agentic stack commands to skill chains.43Reference them in AGENTS.md so `/command` directly invokes the matching recipe.4445| Command | Workflow | Skill chain |46|---------|----------|-------------|47| `/check-stack` | check-stack | survey-context → assess-impact → setup-environment |48| `/ship` | ship | audit-code → commit-message → release-branch |49| `/tdd` | tdd | develop-tdd → enforce-first |50| `/code-review` | code-review | audit-code → request-review → respond-review |51| `/security` | security | audit-code → request-review |52| `/plan` | plan | survey-context → research-first → plan-work |53| `/build-fix` | build-fix | investigate-bug → diagnose-root → develop-tdd → validate-fix |54| `/e2e` | e2e | smoke-test → verify-work |5556Add to `AGENTS.md`:57```58/check-stack = compose-workflow check-stack59/ship = compose-workflow ship60```6162## Verify6364→ verify: `[ "$(ls specs/workflows/*.yaml 2>/dev/null | wc -l | tr -d ' ')" -ge 8 ]`6566See [REFERENCE.md](REFERENCE.md) for template.6768---6970# Workflow template7172```markdown73# WORKFLOW: <name>7475**Trigger:** Use when ...7677| Step | Skill | Output | verify |78|------|-------|--------|--------|79| 1 | survey-context | state.yaml handoff | ... |80| 2 | research-first | Prior Art in SCOPE_LATEST.yaml | ... |81| 3 | plan-work | epics/eNN-*.yaml tasks | ... |82```83
One repository carrying more than one format is the comparison this product exists for: does anyone actually write different content in each file, or is one a copy of the other?
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| danielvm-git/bigpowers.cursor/rules/simple-english.mdc · 139 | Cursor rules | styletypesgitdatabase+6 | 47/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/assess-impact.mdc · 139 | Cursor rules | testtesting-strategydeployment | 66/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/audit-plan.mdc · 139 | Cursor rules | buildteststylegit | 74/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/build-epic.mdc · 139 | Cursor rules | buildgit | 58/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/change-request.mdc · 139 | Cursor rules | no sections | 48/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/commit-message.mdc · 139 | Cursor rules | lint-formatstyletypesgit+3 | 82/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/compose-workflow.mdc · 139 | Cursor rules | styledo-notagent-behaviour | 65/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/context7-mcp.mdc · 139 | Cursor rules | style | 54/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/deepen-architecture.mdc · 139 | Cursor rules | testtesting-strategydo-not | 57/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/define-language.mdc · 139 | Cursor rules | lint-formatdo-not | 65/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/define-success.mdc · 139 | Cursor rules | no sections | 4/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/delegate-task.mdc · 139 | Cursor rules | git | 62/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/deploy.mdc · 139 | Cursor rules | setupbuildtestdeployment | 77/100 | 14 days ago | |
| danielvm-git/bigpowers.windsurf/rules/verify-work.md · 139 | Windsurf rules | buildtestlint-formatagent-behaviour | 74/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/develop-tdd.mdc · 139 | Cursor rules | teststylearchtesting-strategy+5 | 85/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/diagnose-root.mdc · 139 | Cursor rules | no sections | 39/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/diagnose-stall.mdc · 139 | Cursor rules | no sections | 44/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/dispatch-agents.mdc · 139 | Cursor rules | git | 54/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/edit-document.mdc · 139 | Cursor rules | no sections | 39/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/elaborate-spec.mdc · 139 | Cursor rules | test | 58/100 | 14 days ago |
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| danielvm-git/bigpowers.windsurf/rules/organize-workspace.md · 139 | Windsurf rules | buildstylegitdeployment+2 | 89/100 | 14 days ago | |
| danielvm-git/bigpowers.windsurf/rules/guard-git.md · 139 | Windsurf rules | stylearchgitsecurity+2 | 89/100 | 14 days ago | |
| danielvm-git/bigpowers.windsurf/rules/quick-fix.md · 139 | Windsurf rules | teststylegitdeployment+1 | 85/100 | 14 days ago | |
| danielvm-git/bigpowers.windsurf/rules/develop-tdd.md · 139 | Windsurf rules | teststylearchtesting-strategy+5 | 85/100 | 14 days ago | |
| danielvm-git/bigpowers.windsurf/rules/extract-design.md · 139 | Windsurf rules | lint-formatstyledependenciesui | 82/100 | 14 days ago | |
| danielvm-git/bigpowers.windsurf/rules/commit-message.md · 139 | Windsurf rules | lint-formatstyletypesgit+3 | 82/100 | 14 days ago | |
| danielvm-git/bigpowers.windsurf/rules/session-state.md · 139 | Windsurf rules | lint-formatstyleagent-behaviour | 82/100 | 14 days ago | |
| danielvm-git/bigpowers.windsurf/rules/setup-environment.md · 139 | Windsurf rules | setupstylesecuritydo-not+1 | 81/100 | 14 days ago |
A badge carrying the measured quality of the strongest agent config file in this repository, out of 100. It reads from this index every time somebody loads your page, so it changes when the measurement changes and there is nothing to keep up to date. Free, no account, and the value is not something you or we can set by hand.
[](https://rulestack.kynth.studio/configs/danielvm-git-bigpowers-windsurf-rules-compose-workflow)Would rather not hotlink us? Every badge is also served in shields.io’s endpoint schema, so shields renders the image and your readers never talk to our domain:
Published by Toolproof, the masthead over this index and eight others. The method behind the number is at toolproof.kynth.studio/methodology, and the whole thing is readable as JSON with no key at /api.