con un clic
workflow-create
Author a workflow — either an MCP workflow template (persisted, lifecycle) or a native .claude/workflows/*.js orchestration script (agent/parallel/pipeline fan-out)
Menú
Author a workflow — either an MCP workflow template (persisted, lifecycle) or a native .claude/workflows/*.js orchestration script (agent/parallel/pipeline fan-out)
Basado en la clasificación ocupacional SOC
One-command drift detection. Composes audit-list + oia-audit + audit-trend into a single primitive — finds the most recent audit in `metaharness-audit` namespace, runs a fresh audit against the current repo, diffs them via ADR-152 §3.1 similarity, and alerts when structural distance crosses `--threshold`. Iter 53 of ADR-150 deep integration.
ADR-152 — weighted similarity between two harness fingerprints (genome + score JSON). Returns overall score in [0,1] plus per-component breakdown (cosine over 9 numerics, categorical agreement over 4 enums, jaccard over agent_topology). Unblocks ADR-151 §3.2 Recommender, §3.3 Drift Detection, §3.5 Plugin Compat. Pure-TS, no `@metaharness/*` dep — preserves ADR-150's four architectural constraints.
Composite Phase-2 audit worker (ADR-150). Bundles harness oia-manifest + threat-model + mcp-scan into one timestamped audit record stored in the `metaharness-audit` memory namespace. Designed for cron-scheduled drift detection.
7-section repo readiness report from `metaharness genome <path>`. Returns repo_type / agent_topology / risk_score / mcp_surface / test_confidence / publish_readiness. Pure-read; degrades gracefully (ADR-150).
Static security scan of a harness's declared MCP surface via `harness mcp-scan <path>`. Reads `.mcp/servers.json` + `.harness/claims.json`. Pure-read, no dispatch. Exits 1 on findings at or above `--fail-on` severity.
Scaffold a custom AI agent harness via `metaharness new <name> --template <id> --host <id>`. Defaults to DRY-RUN (no writes) unless --confirm is passed. Refuses to write to the calling repo root or anywhere inside it. Honors ADR-150 architectural constraint + ruflo's "destructive-action confirmation" pattern.
| name | workflow-create |
| description | Author a workflow — either an MCP workflow template (persisted, lifecycle) or a native .claude/workflows/*.js orchestration script (agent/parallel/pipeline fan-out) |
| argument-hint | <name> [--native] [--steps N] |
| allowed-tools | mcp__claude-flow__workflow_create mcp__claude-flow__workflow_template mcp__claude-flow__workflow_list mcp__claude-flow__workflow_status mcp__claude-flow__workflow_delete Write Read Edit Bash |
Author a workflow on whichever surface fits the job.
.claude/workflows/*.js — an imperative orchestration script that fans subagents out. Use for comprehensive fan-out (review, audit, migration, research) where you aggregate structured results in code.mcp__claude-flow__workflow_template to see available templatesmcp__claude-flow__workflow_create with steps, conditions, and execution ordermcp__claude-flow__workflow_list to see all defined workflowsmcp__claude-flow__workflow_status to monitor a workflowmcp__claude-flow__workflow_delete to remove unused workflowsFeatures: sequential/parallel steps, conditional branching, template inheritance, pause/resume approval gates.
.claude/workflows/*.jsWrite a .js file under .claude/workflows/. It MUST begin with a pure-literal export const meta block; the body runs inside an async wrapper (top-level await/return are legal) with these hooks injected:
| Hook | Purpose |
|---|---|
agent(prompt, opts) | Spawn one subagent; pass opts.schema (JSON Schema) to get validated structured output back |
parallel(thunks) | Run thunks concurrently with a barrier — .filter(Boolean) the results |
pipeline(items, ...stages) | Stream each item through stages independently — prefer this over a barrier |
phase(title) / log(msg) | Progress grouping / narration |
export const meta = {
name: 'my-workflow', // becomes the invocable name — must be a pure literal
description: 'one line',
phases: [{ title: 'Find' }, { title: 'Verify' }],
}
const SCHEMA = { type: 'object', required: ['ok'], properties: { ok: { type: 'boolean' } }, additionalProperties: false }
phase('Find')
const found = await agent('find the things', { schema: SCHEMA, agentType: 'tester' })
phase('Verify')
const checked = await parallel((found.items || []).map((it) => () =>
agent(`verify ${it}`, { schema: SCHEMA })))
return { found, checked: checked.filter(Boolean) }
Rules: meta is a pure literal (no variables/calls/interpolation); default to pipeline over parallel; never use Date.now()/Math.random() (they throw — vary by index instead). Validate syntax (the body is ESM-in-async-wrapper, not a bare module):
node -e 'const fs=require("fs");let s=fs.readFileSync(".claude/workflows/my-workflow.js","utf8").replace(/^export\s+const\s+meta/m,"const meta");fs.writeFileSync("/tmp/wf.mjs","let agent,parallel,pipeline,phase,log,args,budget,workflow;async function __wf(){\n"+s+"\n}")' \
&& node --check /tmp/wf.mjs && echo OK
Run it with the workflow-run skill or Workflow({ name: 'my-workflow' }). Reference: .claude/workflows/plugin-contract-audit.js. See ADR-0002.