ワンクリックで
create-workflow
Create a new AI workflow from scratch. Generates workflow YAML files, tools, and optional UI components.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Create a new AI workflow from scratch. Generates workflow YAML files, tools, and optional UI components.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Set up Mozaiks from scratch. Walks through Docker, Python, Node, environment variables, and verification.
Customize app shell branding - themes, colors, navigation, logos. Works with app/brand/ and app/config/ declarative files.
Add features to an existing Mozaiks project. Helps users upgrade tiers or enable individual capabilities.
Add a backend module (deterministic CRUD/action handler) to an existing Mozaiks app.
Add a frontend page (AppPageSchema) to an existing Mozaiks app.
Review or implement a change to AgentGenerator prompts, workflow bundle structured outputs, workflow scaffolds, universal prompt injection, or workflow-agent safety guidance.
| name | create-workflow |
| description | Create a new AI workflow from scratch. Generates workflow YAML files, tools, and optional UI components. |
| argument-hint | [WorkflowName] [description of what it should do] |
Help the user create a new workflow named $ARGUMENTS.
When acting on this skill, transform human intent into a deterministic workflow bundle that matches the current Mozaiks workflow authoring contract.
Choose the owning workflow root before writing files:
app/workflows/{WorkflowName}/.factory_app/workflows/{WorkflowName}/.Do not treat every workflow as an app-owned workflow by default.
Before writing any files, define the deterministic contract:
Mozaiks has multiple routing layers. Keep them separate:
transition_graph.yaml = workflow-local agent routing inside one workflow.workflow_sequences[] in extended_orchestration/extension_registry.json = cross-workflow build/revision sequencing.transitions[] in extended_orchestration/extension_registry.json = user choice and context-seeding routes.entrypoints[] in extended_orchestration/extension_registry.json = external route entry into a sequence or transition.Important:
transition_graph.yaml.Start with the canonical file set for the owning workflow root:
app/workflows/{WorkflowName}/
├── orchestrator.yaml
├── agents.yaml
├── transition_graph.yaml
├── context_variables.yaml
├── structured_outputs.yaml
├── tools.yaml
├── ui_config.yaml # include when the workflow has websocket-visible agents or UI artifacts
├── middleware.yaml # include when the workflow needs lifecycle hooks
├── extended_orchestration/
│ └── task_batches.yaml # only when the workflow uses task batches
├── tools/
│ ├── __init__.py
│ └── *.py
└── ui/{WorkflowName}/
└── components/
For factory-owned builder workflows, use the same file contract under
factory_app/workflows/{WorkflowName}/.
Always define YAML contracts before implementation.
orchestrator.yamlUse the current startup field name:
workflow_name: ExampleWorkflow
max_turns: 20
human_in_the_loop: true
workflow_startup_mode: AgentDriven
orchestration_pattern: Pipeline
initial_message: "Start with ExampleHostAgent."
initial_agent: ExampleHostAgent
triggers:
- type: chat
description: Start from chat transport
Rules:
workflow_startup_mode, not startup_mode.initial_message is a hidden runtime seed, not visible UI copy.structured_outputs.yamlUse the current top-level shape:
registry:
InterviewAgent: null
GeneratorAgent: MyOutputModel
models:
MyOutputModel:
type: model
fields:
title:
type: str
payload:
type: dict
Do not wrap registry and models inside an extra structured_outputs: object.
agents.yamlSeparate conversational agents from structured-output agents.
agents:
- name: GeneratorAgent
structured_outputs_required: true
prompt_sections:
- id: instructions
content: Generate valid MyOutputModel JSON only.
Rules:
structured_outputs_required: true belongs on agents that must emit the registered model.tools.yaml, not in agents.yaml.context_variables.yamlDeclare the workflow state and which agents can see which variables.
definitions:
artifact_request:
type: string
source:
type: state
default: null
agents:
GeneratorAgent:
variables:
- artifact_request
tools.yamlBind tools to agents and declare UI metadata there.
tools:
- agent: GeneratorAgent
file: artifact_tools.py
function: save_and_render_artifact
description: Persist the structured artifact and emit a UI event.
tool_type: Agent_Tool
auto_tool_call: true
ui:
component: MyComponent
mode: artifact
transition_graph.yamlUse this only for workflow-local agent routing.
All conditions must use condition_type: expression. LLM classification belongs
before routing — set context variables in agent tools or structured outputs, then
route deterministically.
transition_rules:
- source_agent: user
target_agent: ExampleHostAgent
transition_type: condition
condition_type: expression
condition: ${intake_complete} == false
transition_target: AgentTarget
- source_agent: ExampleHostAgent
target_agent: user
transition_type: after_turn
transition_target: RevertToUserTarget
ui_config.yamlDeclare visual_agents when the workflow has websocket-visible agent messages
or UI-bearing outputs.
visual_agents:
- InterviewAgent
- GeneratorAgent
- user
middleware.yaml and extended_orchestration/task_batches.yamlmiddleware.yaml for lifecycle hook declarations when needed.extended_orchestration/task_batches.yaml only when the workflow needs bounded workflow-local parallel task execution.Tools stay dumb. LLMs reason.
context_variables.get("structured_output") when the tool is triggered by structured output.Example:
from typing import Any, Dict, Optional
async def save_and_render_artifact(context_variables: Optional[Any] = None) -> Dict[str, Any]:
if not context_variables:
return {"success": False}
data = context_variables.get("structured_output")
context_variables["my_domain_data"] = data
return {"success": True, "artifact": data}
If the workflow needs a UI artifact, add the matching React component under the
workflow's ui/{WorkflowName}/components/ directory and keep its props aligned
with the emitted payload shape.
Before finishing, verify:
workflow_startup_mode is used in orchestrator.yaml.structured_outputs.yaml uses top-level registry and models.transition_graph.yaml handles only workflow-local routing.extended_orchestration/extension_registry.json, not in workflow files.ui_config.yaml only exposes agents that should be visible to the UI.When explaining the result to the user, describe whether the workflow is
app-owned or factory-owned and call out any required follow-up in
extension_registry.json separately from the workflow bundle itself.