workflow-creator
Original:🇺🇸 English
Translated
2 scriptsChecked / no sensitive code detected
Create workflow-* skills by composing existing skills into end-to-end chains. Turns a user idea into a workflow_spec.md SSOT (via workflow-brainstorm), discovers available skills locally + from skills.sh, and generates a new workflow-<slug>/ skill package. Use when you want to design a new workflow, chain multiple skills into a flow, or turn scattered atomic skills into a resumable plan-then-confirm workflow.
1installs
Sourceheyvhuang/ship-faster
Added on
NPX Install
npx skill4agent add heyvhuang/ship-faster workflow-creatorTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →Workflow Creator
Create a new skill package that chains existing skills with Ship Faster-standard artifacts.
workflow-<slug>/Hard rules (do not skip)
- Compose skills, don't copy them: a workflow's job is orchestration. Do not paste long best-practice content from other skills into the workflow. Instead: map each step to a single existing skill and point to it.
- One step = one skill: every step in must map to exactly one skill (or a tiny, verifiable manual action).
workflow_spec.md - Missing required skill = stop: do not approximate a missing skill by rewriting its logic. When a required skill is missing locally, you must look up candidates on , suggest 2-3 options + install commands, and wait for the user.
https://skills.sh/ - Artifact-first, resumable: state lives in ,
proposal.md,tasks.mdundercontext.json.run_dir/ - Plan-then-confirm execution: generated workflows must write a plan first, then ask the user to confirm execution; the confirmation must be recorded under .
tasks.md -> ## Approvals
Defaults (Ship Faster standard)
- Artifact store: by default, OpenSpec when
runs/exists (unless overridden inopenspec/project.md).context.json - Required run files: ,
proposal.md,tasks.md.context.json - Execution model: plan first, then ask the user to confirm execution; on confirmation, record approval in .
tasks.md
Inputs (paths only)
- Optional: (skills repository root)
repo_root - Optional: (if the user already wrote a spec)
workflow_spec_path
Outputs
- New or updated workflow skill folder:
workflow-<slug>/SKILL.md- (SSOT)
workflow-<slug>/references/workflow-spec.md
References
- Prompt pack (verbatim prompts): references/prompt-pack.md
- Workflow spec template (SSOT): references/workflow-spec-template.md
- Example generated workflow skill: references/example-workflow-skill.md
- Example workflow spec (valid): references/example-workflow-spec.md
Process
0) Resolve skills root (deterministic)
Resolve using this priority:
skills_root- If user provides , use it.
repo_root - Else search upward from the current working directory for:
- (monorepo layout) ->
<dir>/skills/manifest.jsonskills_root = <dir>/skills/ - (skills-repo layout) ->
<dir>/manifest.jsonskills_root = <dir>/
1) Create or load workflow_spec.md
(SSOT)
workflow_spec.mdIf is not provided:
workflow_spec_path-
Callfirst to converge on:
workflow-brainstorm- core goal (1 sentence)
- acceptance criteria (3-7 bullets)
- non-goals (1-5 bullets)
- constraints (risk preference, timeline)
- 5-10 real trigger phrases the user would say
-
Skill Discovery (REQUIRED) - before finalizing required_skills:a) Local skills scan: List all potentially relevant skills under:
skills_rootbashls -1 ~/.claude/skills/ | grep -E "(tool-|review-|workflow-)"Identify which local skills could serve steps in the workflow.b) skills.sh lookup (MANDATORY): Fetch the leaderboard fromand identify relevant skills:https://skills.sh/- Search for keywords related to the workflow goal
- Note top skills by install count in relevant categories
- Identify 3-5 potentially useful external skills
c) Present findings to user:## Skill Discovery Results ### Local Skills (available) | Skill | Relevance | Notes | |-------|-----------|-------| | tool-xxx | HIGH | ... | | review-yyy | MEDIUM | ... | ### External Skills (skills.sh) | Skill | Installs | Source | Relevance | |-------|----------|--------|-----------| | skill-name | 10K | owner/repo | ... | **Want to inspect any external skills before deciding?** (list numbers or "none")d) If user wants to inspect: fetch skill details from skills.sh page, show SKILL.md content, then ask again.e) User confirms final skill selection: only then proceed to write spec. -
Write ausing the template in
workflow_spec.md.references/workflow-spec-template.md
2) Validate spec (deterministic)
Run:
bash
python3 scripts/validate_workflow_spec.py /path/to/workflow_spec.mdFix any validation errors before generating.
3) Resolve skill dependencies
- Read /
required_skillsfrom the spec.optional_skills - Check which skills exist locally under .
skills_root - If any required skill is missing:
- Stop.
- Use the prompt in to do a skills.sh lookup.
references/prompt-pack.md - Suggest 2-3 candidates (links + why) and provide install command suggestions, but do not auto-install.
4) Generate/update workflow-<slug>/
workflow-<slug>/- Create under
workflow-<slug>/if missing.skills_root - Write SSOT:
- (copy from the validated spec).
workflow-<slug>/references/workflow-spec.md
- Generate/update :
workflow-<slug>/SKILL.md- Frontmatter must match directory name (
name).workflow-<slug> - Frontmatter must embed the spec
description(routing fuel).triggers - Include Ship Faster artifact backend selection rules (vs OpenSpec).
runs/ - Include the plan-then-confirm execution policy:
- Plan stage writes checklist to .
tasks.md - Ask user to confirm start.
- Plan stage writes checklist to
- On confirmation, append an approval record under (timestamp + scope) and start execution.
tasks.md -> ## Approvals - Map each chain step to one skill.
- Keep the workflow concise: link to other skills for deep details.
- Frontmatter
5) Basic validation (required)
Run:
bash
python3 scripts/validate_skill_md.py /path/to/workflow-<slug>If it fails, fix frontmatter/name/line endings until it passes.
Note: The repo also includes , but it may require extra Python deps. Use the validator in this skill as the default.
skill-creator/scripts/quick_validate.py