Generates individual workflow steps with all 12 mandatory fields as an internal helper. Invoked by workflow-creator and skill-spec-creator when they need to "create a step", "generate workflow steps", "build step definitions", "produce step specs", or "expand a workflow into detailed steps".
From jm-adknpx claudepluginhub javimontano/jm-adk-alfaThis skill is limited to using the following tools:
agents/guardian.mdagents/lead.mdagents/specialist.mdagents/support.mdevals/evals.jsonknowledge/body-of-knowledge.mdknowledge/knowledge-graph.mdprompts/meta.mdprompts/primary.mdprompts/variations/deep.mdprompts/variations/quick.mdtemplates/output.docx.mdtemplates/output.htmlGenerate workflow steps with all 12 mandatory fields. Invoked by workflow-creator and skill-spec-creator, not directly by users.
recoveryAction and handoffIfNeededReceives from calling skill:
stepNumber: Position in workflowtitle: Short name (2-5 words)workflowContext: Parent workflow's objective and existing steps- stepNumber: {N}
title: "{2-5 words}"
desc: "{1-2 sentences — what this step does and what it produces}"
whyThisMatters: "{Business/technical rationale — NOT a restatement of title}"
inputNeeded: "{Specific data with types: 'userMessage: string, agentId: string'}"
actionInstruction: "{Concrete: 'Call security.sanitize(input), destructure {safe, cleaned, reason}'}"
promptToUse: "{Full LLM prompt with {{placeholders}}, or 'null (mechanical step)'}"
expectedOutput: "{What success produces: '{safe: true, cleaned: string}' or 'validated schema file at /output/schema.json'}"
validationRule: "{Testable: 'result.safe === true OR reason logged to audit trail'}"
failureSignal: "{Observable: 'sanitize() throws InvalidInputError', 'HTTP 500', 'timeout > 30s'}"
recoveryAction: "{Concrete fallback: 'Strip to plaintext, retry — if still fails, reject with error message to user'}"
handoffIfNeeded: "{agent-id for delegation, or 'null'}"
| Field | GOOD | BAD | Why It Matters |
|---|---|---|---|
whyThisMatters | "Without input validation, injection attacks propagate to all downstream agents via shared memory" | "This step validates input" | Justifies the step's existence — helps decide if it's really needed |
actionInstruction | "Call loader.loadAgent(agentId), destructure response, verify fields.length === 21" | "Load the agent" | Enables implementation without interpretation |
validationRule | "response.fields.length === 21 AND fields.every(f => f.content.length > 0)" | "Check it works" | Enables automated verification |
failureSignal | "loadAgent throws AgentNotFoundError OR fields.length < 21 (missing: ${21 - fields.length} fields)" | "It fails" | Enables specific error handling |
recoveryAction | "Load default agent template from templates/default-agent.md, log warning listing missing fields, continue with defaults" | "Try again" | Provides concrete alternative path |
promptToUse | "Analyze {{input}} for compliance with {{standard}}.\nReturn: {compliant: bool, issues: [{field, reason, severity}]}" | "Check compliance" | Enables reproducible LLM steps |
promptToUse: "null (mechanical step)" — still fill all other 11 fieldsfailureSignal (infrastructure failures: timeout, out of memory, network error)security-agent; if severity=medium -> review-agent; else continue"Author: Javier Montaño | Last updated: 2026-03-18
Example invocations:
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.