[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-mastra-ai-agent-prompt-quality-bar":3,"mdc-6h5bjy-key":51,"related-org-mastra-ai-agent-prompt-quality-bar":791,"related-repo-mastra-ai-agent-prompt-quality-bar":953},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":28,"repoUrl":29,"updatedAt":30,"license":31,"forks":32,"topics":33,"repo":46,"sourceUrl":49,"mdContent":50},"agent-prompt-quality-bar","audit agent system prompts","Universal quality bar and final audit rubric for any agent system prompt. Activate this whenever you are unsure which archetype skill applies, or as a final review pass before writing the system prompt. It defines the required run contract, completion criteria, fallback paths, response format, and anti-patterns every produced agent prompt must satisfy.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"mastra-ai","Mastra AI","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fmastra-ai.png",[12,16,19,22,25],{"name":13,"slug":14,"type":15},"Validation","validation","tag",{"name":17,"slug":18,"type":15},"Mastra","mastra",{"name":20,"slug":21,"type":15},"Agents","agents",{"name":23,"slug":24,"type":15},"Quality Assurance","quality-assurance",{"name":26,"slug":27,"type":15},"Code Analysis","code-analysis",26144,"https:\u002F\u002Fgithub.com\u002Fmastra-ai\u002Fmastra","2026-05-28T06:59:59.229153",null,2410,[21,34,35,36,37,38,39,40,41,42,43,44,45],"ai","chatbots","evals","javascript","llm","mcp","nextjs","nodejs","reactjs","tts","typescript","workflows",{"repoUrl":29,"stars":28,"forks":32,"topics":47,"description":48},[21,34,35,36,37,38,39,40,41,42,43,44,45],"Mastra is the modern TypeScript framework for AI-powered applications and agents.","https:\u002F\u002Fgithub.com\u002Fmastra-ai\u002Fmastra\u002Ftree\u002FHEAD\u002Fpackages\u002Feditor\u002Fsrc\u002Fee\u002Fworkspace\u002Fskills\u002Fagent-prompt-quality-bar","---\nname: agent-prompt-quality-bar\ndescription: Universal quality bar and final audit rubric for any agent system prompt. Activate this whenever you are unsure which archetype skill applies, or as a final review pass before writing the system prompt. It defines the required run contract, completion criteria, fallback paths, response format, and anti-patterns every produced agent prompt must satisfy.\n---\n\n# Universal Agent-Prompt Quality Bar\n\nThis is the builder's compile check. If no archetype skill matches the user's request, OR if you want a final review pass after picking an archetype, follow these rules to write a great agent system prompt.\n\nA produced agent is good only when it can finish a real run, not when it merely sounds capable.\n\n## Required run contract\n\nBefore writing the produced system prompt, instantiate this contract for the user's request:\n\n1. **Trigger \u002F input** — what starts the run: a user message, schedule, webhook, file, spreadsheet row, support ticket, document, or event.\n2. **Owned outcome** — the one concrete result the agent is responsible for finishing.\n3. **Available capabilities** — only the tools, data sources, workflows, agents, or stored skills actually attached or available.\n4. **Missing-capability fallback** — what the agent must do when a required integration, credential, workspace, permission, source, or input is absent.\n5. **Done criteria** — how the agent proves the job is complete, including tool confirmation, read-back, tests, citations, delivery receipt, or an explicit not-run reason.\n6. **Final response format** — the exact receipt, report, draft, diff summary, confirmation, or escalation note the user receives.\n\n## Non-negotiable sections\n\nEvery produced agent system prompt MUST contain these sections. If any is missing, the agent will underperform.\n\n### 1. Role and outcome\n\n- One sentence: who the agent is and the _single outcome_ it owns.\n- Bad: \"You are a helpful AI assistant.\"\n- Good: \"You are Acme's Tier-1 Email Triager. You reply to inbound billing and account tickets, or escalate cases that need a human.\"\n\n### 2. Trigger and input\n\n- Name what starts a run and what data the agent expects.\n- Bad: implicit trigger.\n- Good: \"A run starts when the user provides a support ticket or a scheduled inbox workflow passes unread tickets to you.\"\n\n### 3. Decision rules\n\n- 3–6 bullets stating the defaults the agent uses when the request is ambiguous.\n- Replace broad \"ask the user\" language with explicit choices unless action is impossible or unsafe.\n- Bad: \"If unsure, ask the user.\"\n- Good: \"If the customer didn't specify a region, default to the account's billing country and state that assumption once.\"\n\n### 4. Capability awareness\n\n- Describe capabilities only if they are attached or available.\n- Phrase them in outcome terms, not internal ids.\n- Bad: \"Use `sheetsTool` and `emailWorkflow`.\"\n- Good: \"You can read and update the connected leads sheet, and you can draft follow-up emails.\"\n\n### 5. Missing-capability fallback\n\n- Include explicit behavior for missing integrations, credentials, workspace, permissions, or data.\n- Bad: agent silently invents success.\n- Good: \"If spreadsheet access is missing, stop and say: 'I need access to the leads sheet before I can update rows.'\"\n\n### 6. Communication style and final response format\n\n- Tone, length, structure, and exact output shape.\n- Bad: \"Be friendly and helpful.\"\n- Good: \"Return a receipt with: action taken, affected records, status, verification, and next step if any.\"\n\n### 7. Refusals and escalations\n\n- What the agent will not do, and what it does instead.\n- Always include out-of-scope and missing-capability refusals.\n- For real user data or external systems, include destructive-action and privacy\u002Fsecurity boundaries.\n\n### 8. Completion criteria\n\n- An explicit numbered list of conditions that MUST all be true before the agent stops.\n- This is the single most important section. It is the #1 reason agents stop mid-task or wander.\n- Good:\n  > Completion criteria — you are NOT done until:\n  >\n  > 1. The action was attempted, not merely planned.\n  > 2. The result was verified by read-back, status code, test output, citation, or tool confirmation.\n  > 3. Failures are reported with the specific item and reason.\n  > 4. The final response follows the required format.\n  >    Stop only when all four are true.\n\n### 9. Worked example\n\n- Include one short input → behavior → final output example.\n- The example must demonstrate a complete run, including verification or a clean fallback.\n- Do not leave placeholder names or vague \"then respond\" endings.\n\n## Mandatory final audit rubric\n\nBefore calling the tool that writes the produced system prompt, verify every item below is true:\n\n- **Single concrete outcome**: the role owns one job, not a vague domain.\n- **Named trigger\u002Finput**: the prompt says exactly what starts a run.\n- **Capabilities are accurate**: the prompt describes only attached\u002Favailable tools, workflows, agents, data sources, or stored skills.\n- **Missing integration behavior exists**: the prompt has a clean refusal\u002Ffallback for absent tools, credentials, permissions, workspace, or source data.\n- **Completion criteria are verifiable and tool-aware**: done means confirmed, read back, tested, cited, delivered, or explicitly not run with a reason.\n- **Final response format is specified**: the user knows what receipt\u002Freport\u002Fdraft\u002Fconfirmation to expect.\n- **No placeholders remain**: no `\u003C...>`, \"TBD\", \"TODO\", \"your company\", \"policy here\", or generic policy gaps.\n- **No internal terms leak**: no builder playbook names, tool ids, schemas, file paths, or implementation jargon.\n- **No unsupported promises**: the prompt never claims the agent can browse, send, edit files, access sheets, run tests, or update accounts unless that capability is attached.\n- **Refusal path is present**: unsafe, out-of-scope, destructive, or unsupported requests have explicit behavior.\n- **Worked example completes a full run**: not just a sample input; it shows the expected action and final output.\n\nIf any item fails, revise the system prompt before writing it.\n\n## Universal anti-patterns to reject\n\n- **No completion criteria.** Agent never finishes. Fix: add a numbered \"done when\" list.\n- **\"Ask the user if unsure.\"** Agent stalls on every request. Fix: state defaults, and ask only when action is impossible or unsafe.\n- **No scope.** Agent drifts into unrelated requests. Fix: explicit in-scope \u002F out-of-scope lists.\n- **Too many tools.** Agent makes worse choices with more options. Fix: attach the minimum.\n- **Generic identity (\"helpful assistant\").** Produces generic output. Fix: name a specific outcome.\n- **No missing-capability fallback.** Agent hallucinates success. Fix: state exactly when to stop and what to tell the user.\n- **Marketing voice in instructions (\"be amazing\", \"delight users\").** Untestable. Fix: concrete behaviors.\n\n## How to use this skill\n\nIf you already activated an archetype skill (coding, spreadsheet, research, customer-support, content-writer, ops-automation, generic-assistant), the archetype's template provides the domain rules. Use this skill as the final compile check.\n\nIf no archetype fit and the user's outcome is genuinely novel:\n\n1. Draft the run contract.\n2. Write each required section from scratch.\n3. Apply the mandatory final audit rubric.\n4. Reject anything that drifts toward the anti-patterns list.\n\n## Cross-references\n\n- `coding-agent` — for code-writing\u002Fediting\u002Freview agents.\n- `spreadsheet-agent` — for tabular data agents.\n- `research-agent` — for research-and-report agents.\n- `customer-support-agent` — for ticket \u002F inbox triage agents.\n- `content-writer-agent` — for marketing \u002F blog \u002F social agents.\n- `ops-automation-agent` — for recurring \u002F event-driven internal automation.\n- `generic-assistant` — fallback for general personal helpers.\n",{"data":52,"body":53},{"name":4,"description":6},{"type":54,"children":55},"root",[56,65,71,76,83,88,154,160,165,172,199,205,223,229,252,258,298,304,322,328,346,352,370,376,426,432,450,456,461,582,587,593,666,672,677,682,705,711],{"type":57,"tag":58,"props":59,"children":61},"element","h1",{"id":60},"universal-agent-prompt-quality-bar",[62],{"type":63,"value":64},"text","Universal Agent-Prompt Quality Bar",{"type":57,"tag":66,"props":67,"children":68},"p",{},[69],{"type":63,"value":70},"This is the builder's compile check. If no archetype skill matches the user's request, OR if you want a final review pass after picking an archetype, follow these rules to write a great agent system prompt.",{"type":57,"tag":66,"props":72,"children":73},{},[74],{"type":63,"value":75},"A produced agent is good only when it can finish a real run, not when it merely sounds capable.",{"type":57,"tag":77,"props":78,"children":80},"h2",{"id":79},"required-run-contract",[81],{"type":63,"value":82},"Required run contract",{"type":57,"tag":66,"props":84,"children":85},{},[86],{"type":63,"value":87},"Before writing the produced system prompt, instantiate this contract for the user's request:",{"type":57,"tag":89,"props":90,"children":91},"ol",{},[92,104,114,124,134,144],{"type":57,"tag":93,"props":94,"children":95},"li",{},[96,102],{"type":57,"tag":97,"props":98,"children":99},"strong",{},[100],{"type":63,"value":101},"Trigger \u002F input",{"type":63,"value":103}," — what starts the run: a user message, schedule, webhook, file, spreadsheet row, support ticket, document, or event.",{"type":57,"tag":93,"props":105,"children":106},{},[107,112],{"type":57,"tag":97,"props":108,"children":109},{},[110],{"type":63,"value":111},"Owned outcome",{"type":63,"value":113}," — the one concrete result the agent is responsible for finishing.",{"type":57,"tag":93,"props":115,"children":116},{},[117,122],{"type":57,"tag":97,"props":118,"children":119},{},[120],{"type":63,"value":121},"Available capabilities",{"type":63,"value":123}," — only the tools, data sources, workflows, agents, or stored skills actually attached or available.",{"type":57,"tag":93,"props":125,"children":126},{},[127,132],{"type":57,"tag":97,"props":128,"children":129},{},[130],{"type":63,"value":131},"Missing-capability fallback",{"type":63,"value":133}," — what the agent must do when a required integration, credential, workspace, permission, source, or input is absent.",{"type":57,"tag":93,"props":135,"children":136},{},[137,142],{"type":57,"tag":97,"props":138,"children":139},{},[140],{"type":63,"value":141},"Done criteria",{"type":63,"value":143}," — how the agent proves the job is complete, including tool confirmation, read-back, tests, citations, delivery receipt, or an explicit not-run reason.",{"type":57,"tag":93,"props":145,"children":146},{},[147,152],{"type":57,"tag":97,"props":148,"children":149},{},[150],{"type":63,"value":151},"Final response format",{"type":63,"value":153}," — the exact receipt, report, draft, diff summary, confirmation, or escalation note the user receives.",{"type":57,"tag":77,"props":155,"children":157},{"id":156},"non-negotiable-sections",[158],{"type":63,"value":159},"Non-negotiable sections",{"type":57,"tag":66,"props":161,"children":162},{},[163],{"type":63,"value":164},"Every produced agent system prompt MUST contain these sections. If any is missing, the agent will underperform.",{"type":57,"tag":166,"props":167,"children":169},"h3",{"id":168},"_1-role-and-outcome",[170],{"type":63,"value":171},"1. Role and outcome",{"type":57,"tag":173,"props":174,"children":175},"ul",{},[176,189,194],{"type":57,"tag":93,"props":177,"children":178},{},[179,181,187],{"type":63,"value":180},"One sentence: who the agent is and the ",{"type":57,"tag":182,"props":183,"children":184},"em",{},[185],{"type":63,"value":186},"single outcome",{"type":63,"value":188}," it owns.",{"type":57,"tag":93,"props":190,"children":191},{},[192],{"type":63,"value":193},"Bad: \"You are a helpful AI assistant.\"",{"type":57,"tag":93,"props":195,"children":196},{},[197],{"type":63,"value":198},"Good: \"You are Acme's Tier-1 Email Triager. You reply to inbound billing and account tickets, or escalate cases that need a human.\"",{"type":57,"tag":166,"props":200,"children":202},{"id":201},"_2-trigger-and-input",[203],{"type":63,"value":204},"2. Trigger and input",{"type":57,"tag":173,"props":206,"children":207},{},[208,213,218],{"type":57,"tag":93,"props":209,"children":210},{},[211],{"type":63,"value":212},"Name what starts a run and what data the agent expects.",{"type":57,"tag":93,"props":214,"children":215},{},[216],{"type":63,"value":217},"Bad: implicit trigger.",{"type":57,"tag":93,"props":219,"children":220},{},[221],{"type":63,"value":222},"Good: \"A run starts when the user provides a support ticket or a scheduled inbox workflow passes unread tickets to you.\"",{"type":57,"tag":166,"props":224,"children":226},{"id":225},"_3-decision-rules",[227],{"type":63,"value":228},"3. Decision rules",{"type":57,"tag":173,"props":230,"children":231},{},[232,237,242,247],{"type":57,"tag":93,"props":233,"children":234},{},[235],{"type":63,"value":236},"3–6 bullets stating the defaults the agent uses when the request is ambiguous.",{"type":57,"tag":93,"props":238,"children":239},{},[240],{"type":63,"value":241},"Replace broad \"ask the user\" language with explicit choices unless action is impossible or unsafe.",{"type":57,"tag":93,"props":243,"children":244},{},[245],{"type":63,"value":246},"Bad: \"If unsure, ask the user.\"",{"type":57,"tag":93,"props":248,"children":249},{},[250],{"type":63,"value":251},"Good: \"If the customer didn't specify a region, default to the account's billing country and state that assumption once.\"",{"type":57,"tag":166,"props":253,"children":255},{"id":254},"_4-capability-awareness",[256],{"type":63,"value":257},"4. Capability awareness",{"type":57,"tag":173,"props":259,"children":260},{},[261,266,271,293],{"type":57,"tag":93,"props":262,"children":263},{},[264],{"type":63,"value":265},"Describe capabilities only if they are attached or available.",{"type":57,"tag":93,"props":267,"children":268},{},[269],{"type":63,"value":270},"Phrase them in outcome terms, not internal ids.",{"type":57,"tag":93,"props":272,"children":273},{},[274,276,283,285,291],{"type":63,"value":275},"Bad: \"Use ",{"type":57,"tag":277,"props":278,"children":280},"code",{"className":279},[],[281],{"type":63,"value":282},"sheetsTool",{"type":63,"value":284}," and ",{"type":57,"tag":277,"props":286,"children":288},{"className":287},[],[289],{"type":63,"value":290},"emailWorkflow",{"type":63,"value":292},".\"",{"type":57,"tag":93,"props":294,"children":295},{},[296],{"type":63,"value":297},"Good: \"You can read and update the connected leads sheet, and you can draft follow-up emails.\"",{"type":57,"tag":166,"props":299,"children":301},{"id":300},"_5-missing-capability-fallback",[302],{"type":63,"value":303},"5. Missing-capability fallback",{"type":57,"tag":173,"props":305,"children":306},{},[307,312,317],{"type":57,"tag":93,"props":308,"children":309},{},[310],{"type":63,"value":311},"Include explicit behavior for missing integrations, credentials, workspace, permissions, or data.",{"type":57,"tag":93,"props":313,"children":314},{},[315],{"type":63,"value":316},"Bad: agent silently invents success.",{"type":57,"tag":93,"props":318,"children":319},{},[320],{"type":63,"value":321},"Good: \"If spreadsheet access is missing, stop and say: 'I need access to the leads sheet before I can update rows.'\"",{"type":57,"tag":166,"props":323,"children":325},{"id":324},"_6-communication-style-and-final-response-format",[326],{"type":63,"value":327},"6. Communication style and final response format",{"type":57,"tag":173,"props":329,"children":330},{},[331,336,341],{"type":57,"tag":93,"props":332,"children":333},{},[334],{"type":63,"value":335},"Tone, length, structure, and exact output shape.",{"type":57,"tag":93,"props":337,"children":338},{},[339],{"type":63,"value":340},"Bad: \"Be friendly and helpful.\"",{"type":57,"tag":93,"props":342,"children":343},{},[344],{"type":63,"value":345},"Good: \"Return a receipt with: action taken, affected records, status, verification, and next step if any.\"",{"type":57,"tag":166,"props":347,"children":349},{"id":348},"_7-refusals-and-escalations",[350],{"type":63,"value":351},"7. Refusals and escalations",{"type":57,"tag":173,"props":353,"children":354},{},[355,360,365],{"type":57,"tag":93,"props":356,"children":357},{},[358],{"type":63,"value":359},"What the agent will not do, and what it does instead.",{"type":57,"tag":93,"props":361,"children":362},{},[363],{"type":63,"value":364},"Always include out-of-scope and missing-capability refusals.",{"type":57,"tag":93,"props":366,"children":367},{},[368],{"type":63,"value":369},"For real user data or external systems, include destructive-action and privacy\u002Fsecurity boundaries.",{"type":57,"tag":166,"props":371,"children":373},{"id":372},"_8-completion-criteria",[374],{"type":63,"value":375},"8. Completion criteria",{"type":57,"tag":173,"props":377,"children":378},{},[379,384,389],{"type":57,"tag":93,"props":380,"children":381},{},[382],{"type":63,"value":383},"An explicit numbered list of conditions that MUST all be true before the agent stops.",{"type":57,"tag":93,"props":385,"children":386},{},[387],{"type":63,"value":388},"This is the single most important section. It is the #1 reason agents stop mid-task or wander.",{"type":57,"tag":93,"props":390,"children":391},{},[392,394],{"type":63,"value":393},"Good:\n",{"type":57,"tag":395,"props":396,"children":397},"blockquote",{},[398,403],{"type":57,"tag":66,"props":399,"children":400},{},[401],{"type":63,"value":402},"Completion criteria — you are NOT done until:",{"type":57,"tag":89,"props":404,"children":405},{},[406,411,416,421],{"type":57,"tag":93,"props":407,"children":408},{},[409],{"type":63,"value":410},"The action was attempted, not merely planned.",{"type":57,"tag":93,"props":412,"children":413},{},[414],{"type":63,"value":415},"The result was verified by read-back, status code, test output, citation, or tool confirmation.",{"type":57,"tag":93,"props":417,"children":418},{},[419],{"type":63,"value":420},"Failures are reported with the specific item and reason.",{"type":57,"tag":93,"props":422,"children":423},{},[424],{"type":63,"value":425},"The final response follows the required format.\nStop only when all four are true.",{"type":57,"tag":166,"props":427,"children":429},{"id":428},"_9-worked-example",[430],{"type":63,"value":431},"9. Worked example",{"type":57,"tag":173,"props":433,"children":434},{},[435,440,445],{"type":57,"tag":93,"props":436,"children":437},{},[438],{"type":63,"value":439},"Include one short input → behavior → final output example.",{"type":57,"tag":93,"props":441,"children":442},{},[443],{"type":63,"value":444},"The example must demonstrate a complete run, including verification or a clean fallback.",{"type":57,"tag":93,"props":446,"children":447},{},[448],{"type":63,"value":449},"Do not leave placeholder names or vague \"then respond\" endings.",{"type":57,"tag":77,"props":451,"children":453},{"id":452},"mandatory-final-audit-rubric",[454],{"type":63,"value":455},"Mandatory final audit rubric",{"type":57,"tag":66,"props":457,"children":458},{},[459],{"type":63,"value":460},"Before calling the tool that writes the produced system prompt, verify every item below is true:",{"type":57,"tag":173,"props":462,"children":463},{},[464,474,484,494,504,514,524,542,552,562,572],{"type":57,"tag":93,"props":465,"children":466},{},[467,472],{"type":57,"tag":97,"props":468,"children":469},{},[470],{"type":63,"value":471},"Single concrete outcome",{"type":63,"value":473},": the role owns one job, not a vague domain.",{"type":57,"tag":93,"props":475,"children":476},{},[477,482],{"type":57,"tag":97,"props":478,"children":479},{},[480],{"type":63,"value":481},"Named trigger\u002Finput",{"type":63,"value":483},": the prompt says exactly what starts a run.",{"type":57,"tag":93,"props":485,"children":486},{},[487,492],{"type":57,"tag":97,"props":488,"children":489},{},[490],{"type":63,"value":491},"Capabilities are accurate",{"type":63,"value":493},": the prompt describes only attached\u002Favailable tools, workflows, agents, data sources, or stored skills.",{"type":57,"tag":93,"props":495,"children":496},{},[497,502],{"type":57,"tag":97,"props":498,"children":499},{},[500],{"type":63,"value":501},"Missing integration behavior exists",{"type":63,"value":503},": the prompt has a clean refusal\u002Ffallback for absent tools, credentials, permissions, workspace, or source data.",{"type":57,"tag":93,"props":505,"children":506},{},[507,512],{"type":57,"tag":97,"props":508,"children":509},{},[510],{"type":63,"value":511},"Completion criteria are verifiable and tool-aware",{"type":63,"value":513},": done means confirmed, read back, tested, cited, delivered, or explicitly not run with a reason.",{"type":57,"tag":93,"props":515,"children":516},{},[517,522],{"type":57,"tag":97,"props":518,"children":519},{},[520],{"type":63,"value":521},"Final response format is specified",{"type":63,"value":523},": the user knows what receipt\u002Freport\u002Fdraft\u002Fconfirmation to expect.",{"type":57,"tag":93,"props":525,"children":526},{},[527,532,534,540],{"type":57,"tag":97,"props":528,"children":529},{},[530],{"type":63,"value":531},"No placeholders remain",{"type":63,"value":533},": no ",{"type":57,"tag":277,"props":535,"children":537},{"className":536},[],[538],{"type":63,"value":539},"\u003C...>",{"type":63,"value":541},", \"TBD\", \"TODO\", \"your company\", \"policy here\", or generic policy gaps.",{"type":57,"tag":93,"props":543,"children":544},{},[545,550],{"type":57,"tag":97,"props":546,"children":547},{},[548],{"type":63,"value":549},"No internal terms leak",{"type":63,"value":551},": no builder playbook names, tool ids, schemas, file paths, or implementation jargon.",{"type":57,"tag":93,"props":553,"children":554},{},[555,560],{"type":57,"tag":97,"props":556,"children":557},{},[558],{"type":63,"value":559},"No unsupported promises",{"type":63,"value":561},": the prompt never claims the agent can browse, send, edit files, access sheets, run tests, or update accounts unless that capability is attached.",{"type":57,"tag":93,"props":563,"children":564},{},[565,570],{"type":57,"tag":97,"props":566,"children":567},{},[568],{"type":63,"value":569},"Refusal path is present",{"type":63,"value":571},": unsafe, out-of-scope, destructive, or unsupported requests have explicit behavior.",{"type":57,"tag":93,"props":573,"children":574},{},[575,580],{"type":57,"tag":97,"props":576,"children":577},{},[578],{"type":63,"value":579},"Worked example completes a full run",{"type":63,"value":581},": not just a sample input; it shows the expected action and final output.",{"type":57,"tag":66,"props":583,"children":584},{},[585],{"type":63,"value":586},"If any item fails, revise the system prompt before writing it.",{"type":57,"tag":77,"props":588,"children":590},{"id":589},"universal-anti-patterns-to-reject",[591],{"type":63,"value":592},"Universal anti-patterns to reject",{"type":57,"tag":173,"props":594,"children":595},{},[596,606,616,626,636,646,656],{"type":57,"tag":93,"props":597,"children":598},{},[599,604],{"type":57,"tag":97,"props":600,"children":601},{},[602],{"type":63,"value":603},"No completion criteria.",{"type":63,"value":605}," Agent never finishes. Fix: add a numbered \"done when\" list.",{"type":57,"tag":93,"props":607,"children":608},{},[609,614],{"type":57,"tag":97,"props":610,"children":611},{},[612],{"type":63,"value":613},"\"Ask the user if unsure.\"",{"type":63,"value":615}," Agent stalls on every request. Fix: state defaults, and ask only when action is impossible or unsafe.",{"type":57,"tag":93,"props":617,"children":618},{},[619,624],{"type":57,"tag":97,"props":620,"children":621},{},[622],{"type":63,"value":623},"No scope.",{"type":63,"value":625}," Agent drifts into unrelated requests. Fix: explicit in-scope \u002F out-of-scope lists.",{"type":57,"tag":93,"props":627,"children":628},{},[629,634],{"type":57,"tag":97,"props":630,"children":631},{},[632],{"type":63,"value":633},"Too many tools.",{"type":63,"value":635}," Agent makes worse choices with more options. Fix: attach the minimum.",{"type":57,"tag":93,"props":637,"children":638},{},[639,644],{"type":57,"tag":97,"props":640,"children":641},{},[642],{"type":63,"value":643},"Generic identity (\"helpful assistant\").",{"type":63,"value":645}," Produces generic output. Fix: name a specific outcome.",{"type":57,"tag":93,"props":647,"children":648},{},[649,654],{"type":57,"tag":97,"props":650,"children":651},{},[652],{"type":63,"value":653},"No missing-capability fallback.",{"type":63,"value":655}," Agent hallucinates success. Fix: state exactly when to stop and what to tell the user.",{"type":57,"tag":93,"props":657,"children":658},{},[659,664],{"type":57,"tag":97,"props":660,"children":661},{},[662],{"type":63,"value":663},"Marketing voice in instructions (\"be amazing\", \"delight users\").",{"type":63,"value":665}," Untestable. Fix: concrete behaviors.",{"type":57,"tag":77,"props":667,"children":669},{"id":668},"how-to-use-this-skill",[670],{"type":63,"value":671},"How to use this skill",{"type":57,"tag":66,"props":673,"children":674},{},[675],{"type":63,"value":676},"If you already activated an archetype skill (coding, spreadsheet, research, customer-support, content-writer, ops-automation, generic-assistant), the archetype's template provides the domain rules. Use this skill as the final compile check.",{"type":57,"tag":66,"props":678,"children":679},{},[680],{"type":63,"value":681},"If no archetype fit and the user's outcome is genuinely novel:",{"type":57,"tag":89,"props":683,"children":684},{},[685,690,695,700],{"type":57,"tag":93,"props":686,"children":687},{},[688],{"type":63,"value":689},"Draft the run contract.",{"type":57,"tag":93,"props":691,"children":692},{},[693],{"type":63,"value":694},"Write each required section from scratch.",{"type":57,"tag":93,"props":696,"children":697},{},[698],{"type":63,"value":699},"Apply the mandatory final audit rubric.",{"type":57,"tag":93,"props":701,"children":702},{},[703],{"type":63,"value":704},"Reject anything that drifts toward the anti-patterns list.",{"type":57,"tag":77,"props":706,"children":708},{"id":707},"cross-references",[709],{"type":63,"value":710},"Cross-references",{"type":57,"tag":173,"props":712,"children":713},{},[714,725,736,747,758,769,780],{"type":57,"tag":93,"props":715,"children":716},{},[717,723],{"type":57,"tag":277,"props":718,"children":720},{"className":719},[],[721],{"type":63,"value":722},"coding-agent",{"type":63,"value":724}," — for code-writing\u002Fediting\u002Freview agents.",{"type":57,"tag":93,"props":726,"children":727},{},[728,734],{"type":57,"tag":277,"props":729,"children":731},{"className":730},[],[732],{"type":63,"value":733},"spreadsheet-agent",{"type":63,"value":735}," — for tabular data agents.",{"type":57,"tag":93,"props":737,"children":738},{},[739,745],{"type":57,"tag":277,"props":740,"children":742},{"className":741},[],[743],{"type":63,"value":744},"research-agent",{"type":63,"value":746}," — for research-and-report agents.",{"type":57,"tag":93,"props":748,"children":749},{},[750,756],{"type":57,"tag":277,"props":751,"children":753},{"className":752},[],[754],{"type":63,"value":755},"customer-support-agent",{"type":63,"value":757}," — for ticket \u002F inbox triage agents.",{"type":57,"tag":93,"props":759,"children":760},{},[761,767],{"type":57,"tag":277,"props":762,"children":764},{"className":763},[],[765],{"type":63,"value":766},"content-writer-agent",{"type":63,"value":768}," — for marketing \u002F blog \u002F social agents.",{"type":57,"tag":93,"props":770,"children":771},{},[772,778],{"type":57,"tag":277,"props":773,"children":775},{"className":774},[],[776],{"type":63,"value":777},"ops-automation-agent",{"type":63,"value":779}," — for recurring \u002F event-driven internal automation.",{"type":57,"tag":93,"props":781,"children":782},{},[783,789],{"type":57,"tag":277,"props":784,"children":786},{"className":785},[],[787],{"type":63,"value":788},"generic-assistant",{"type":63,"value":790}," — fallback for general personal helpers.",{"items":792,"total":952},[793,801,815,829,846,857,869,883,897,913,928,940],{"slug":4,"name":4,"fn":5,"description":6,"org":794,"tags":795,"stars":28,"repoUrl":29,"updatedAt":30},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[796,797,798,799,800],{"name":20,"slug":21,"type":15},{"name":26,"slug":27,"type":15},{"name":17,"slug":18,"type":15},{"name":23,"slug":24,"type":15},{"name":13,"slug":14,"type":15},{"slug":722,"name":722,"fn":802,"description":803,"org":804,"tags":805,"stars":28,"repoUrl":29,"updatedAt":814},"build coding and refactoring agents","Authoring playbook for building agents that write, edit, review, or refactor code. Use this when the user asks for an agent that writes scripts, generates code, reviews pull requests, refactors a codebase, fixes bugs, implements features, writes tests, or works with programming languages such as Python, TypeScript, JavaScript, Go, Rust, SQL, or shell.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[806,807,810,813],{"name":20,"slug":21,"type":15},{"name":808,"slug":809,"type":15},"Code Review","code-review",{"name":811,"slug":812,"type":15},"Engineering","engineering",{"name":17,"slug":18,"type":15},"2026-05-28T06:59:50.646245",{"slug":766,"name":766,"fn":816,"description":817,"org":818,"tags":819,"stars":28,"repoUrl":29,"updatedAt":828},"build content writing agents","Authoring playbook for building agents that draft written content — blog posts, marketing copy, social media posts, newsletters, product descriptions, landing pages, or ad copy. Use this when the user wants an agent that writes, drafts, or rewrites text for publication or marketing.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[820,821,824,825],{"name":20,"slug":21,"type":15},{"name":822,"slug":823,"type":15},"Content Creation","content-creation",{"name":17,"slug":18,"type":15},{"name":826,"slug":827,"type":15},"Writing","writing","2026-05-28T06:59:55.53261",{"slug":755,"name":755,"fn":830,"description":831,"org":832,"tags":833,"stars":28,"repoUrl":29,"updatedAt":845},"build customer support agents","Authoring playbook for building agents that triage and reply to customer messages — support tickets, email inquiries, chat questions, refund requests, or product issues. Use this when the user wants an agent that handles inbound customer questions, drafts replies, escalates hard cases, summarizes tickets, or follows a support playbook.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[834,835,838,841,844],{"name":20,"slug":21,"type":15},{"name":836,"slug":837,"type":15},"Automation","automation",{"name":839,"slug":840,"type":15},"Communications","communications",{"name":842,"slug":843,"type":15},"Customer Support","customer-support",{"name":17,"slug":18,"type":15},"2026-05-28T06:59:58.014282",{"slug":788,"name":788,"fn":847,"description":848,"org":849,"tags":850,"stars":28,"repoUrl":29,"updatedAt":856},"build general-purpose assistant agents","Fallback authoring playbook for building general-purpose personal assistant agents that do not fit a more specific archetype. Use this only after checking the other archetype skills (coding, spreadsheet, research, customer-support, content-writer, ops-automation). Examples include summarizing emails, drafting short answers, capturing notes, or generic personal-helper agents.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[851,852,853],{"name":20,"slug":21,"type":15},{"name":17,"slug":18,"type":15},{"name":854,"slug":855,"type":15},"Productivity","productivity","2026-05-28T06:59:54.314255",{"slug":777,"name":777,"fn":858,"description":859,"org":860,"tags":861,"stars":28,"repoUrl":29,"updatedAt":868},"build operations automation agents","Authoring playbook for building agents that automate recurring internal tasks — running scheduled workflows, syncing data between systems, posting notifications, processing inbound events, or executing operational runbooks. Use this when the user wants an agent that runs on a schedule, reacts to events, automates a process, syncs between tools, or handles ops\u002Finternal infrastructure.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[862,863,864,865],{"name":20,"slug":21,"type":15},{"name":836,"slug":837,"type":15},{"name":17,"slug":18,"type":15},{"name":866,"slug":867,"type":15},"Operations","operations","2026-05-28T06:59:56.777052",{"slug":744,"name":744,"fn":870,"description":871,"org":872,"tags":873,"stars":28,"repoUrl":29,"updatedAt":882},"build research and synthesis agents","Authoring playbook for building agents that search, read, and synthesize information into a report. Use this when the user wants an agent to research a topic, summarize sources, compare options, do competitive analysis, monitor news, generate briefs, or pull together a citation-backed report from the web or internal documents.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[874,875,876,879],{"name":20,"slug":21,"type":15},{"name":17,"slug":18,"type":15},{"name":877,"slug":878,"type":15},"Research","research",{"name":880,"slug":881,"type":15},"Summarization","summarization","2026-05-28T06:59:51.87438",{"slug":733,"name":733,"fn":884,"description":885,"org":886,"tags":887,"stars":28,"repoUrl":29,"updatedAt":896},"build spreadsheet and data agents","Authoring playbook for building agents that read or write tabular data — Google Sheets, Microsoft Excel, CSV, Airtable, Notion databases, or any spreadsheet. Use this when the user wants an agent that updates rows, reads cells, computes totals, generates reports from sheets, syncs data between spreadsheets, or automates anything involving rows, columns, ranges, or worksheets.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[888,889,892,893],{"name":20,"slug":21,"type":15},{"name":890,"slug":891,"type":15},"Data Analysis","data-analysis",{"name":17,"slug":18,"type":15},{"name":894,"slug":895,"type":15},"Spreadsheets","spreadsheets","2026-05-28T06:59:53.096103",{"slug":18,"name":18,"fn":898,"description":899,"org":900,"tags":901,"stars":910,"repoUrl":911,"updatedAt":912},"build agents and workflows with Mastra","Comprehensive Mastra framework guide for building agents, workflows, tools, memory, workspaces, and storage with current APIs. Use for documentation lookup, API verification, TypeScript setup, common errors, migrations, and `mastra api` CLI tasks: inspect or call resources on local, Mastra platform, or remote servers.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[902,903,906,907],{"name":20,"slug":21,"type":15},{"name":904,"slug":905,"type":15},"Documentation","documentation",{"name":17,"slug":18,"type":15},{"name":908,"slug":909,"type":15},"Workflow Automation","workflow-automation",69,"https:\u002F\u002Fgithub.com\u002Fmastra-ai\u002Fskills","2026-04-06T18:29:14.042352",{"slug":914,"name":914,"fn":915,"description":916,"org":917,"tags":918,"stars":925,"repoUrl":926,"updatedAt":927},"infinite-moves","execute autonomous tasks with Infinite Moves","Bridges to the infinite-moves plugin for autonomous task execution. Activates when user mentions tasks, backlog, dev loop, ideate, generate tasks, sweep debt, or wants continuous development. Knows how to invoke \u002Fmoves commands without user typing them.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[919,920,921,922],{"name":20,"slug":21,"type":15},{"name":836,"slug":837,"type":15},{"name":17,"slug":18,"type":15},{"name":923,"slug":924,"type":15},"Task Management","task-management",2,"https:\u002F\u002Fgithub.com\u002Fmastra-ai\u002Finfinite-moves","2026-04-06T18:29:17.851005",{"slug":929,"name":929,"fn":930,"description":931,"org":932,"tags":933,"stars":937,"repoUrl":938,"updatedAt":939},"general-tasks","execute general file and shell tasks","Default process for handling open-ended tasks that touch files, the shell, or the web.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[934,935,936],{"name":836,"slug":837,"type":15},{"name":811,"slug":812,"type":15},{"name":17,"slug":18,"type":15},0,"https:\u002F\u002Fgithub.com\u002Fmastra-ai\u002Ftemplate-claw-assistant","2026-06-17T08:25:16.583944",{"slug":941,"name":941,"fn":942,"description":943,"org":944,"tags":945,"stars":937,"repoUrl":938,"updatedAt":951},"research-tasks","conduct web research and save findings","Process for answering research questions using the web and saving findings into the workspace.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[946,947,948],{"name":17,"slug":18,"type":15},{"name":877,"slug":878,"type":15},{"name":949,"slug":950,"type":15},"Search","search","2026-06-17T08:25:17.925434",12,{"items":954,"total":1005},[955,963,970,977,985,991,998],{"slug":4,"name":4,"fn":5,"description":6,"org":956,"tags":957,"stars":28,"repoUrl":29,"updatedAt":30},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[958,959,960,961,962],{"name":20,"slug":21,"type":15},{"name":26,"slug":27,"type":15},{"name":17,"slug":18,"type":15},{"name":23,"slug":24,"type":15},{"name":13,"slug":14,"type":15},{"slug":722,"name":722,"fn":802,"description":803,"org":964,"tags":965,"stars":28,"repoUrl":29,"updatedAt":814},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[966,967,968,969],{"name":20,"slug":21,"type":15},{"name":808,"slug":809,"type":15},{"name":811,"slug":812,"type":15},{"name":17,"slug":18,"type":15},{"slug":766,"name":766,"fn":816,"description":817,"org":971,"tags":972,"stars":28,"repoUrl":29,"updatedAt":828},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[973,974,975,976],{"name":20,"slug":21,"type":15},{"name":822,"slug":823,"type":15},{"name":17,"slug":18,"type":15},{"name":826,"slug":827,"type":15},{"slug":755,"name":755,"fn":830,"description":831,"org":978,"tags":979,"stars":28,"repoUrl":29,"updatedAt":845},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[980,981,982,983,984],{"name":20,"slug":21,"type":15},{"name":836,"slug":837,"type":15},{"name":839,"slug":840,"type":15},{"name":842,"slug":843,"type":15},{"name":17,"slug":18,"type":15},{"slug":788,"name":788,"fn":847,"description":848,"org":986,"tags":987,"stars":28,"repoUrl":29,"updatedAt":856},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[988,989,990],{"name":20,"slug":21,"type":15},{"name":17,"slug":18,"type":15},{"name":854,"slug":855,"type":15},{"slug":777,"name":777,"fn":858,"description":859,"org":992,"tags":993,"stars":28,"repoUrl":29,"updatedAt":868},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[994,995,996,997],{"name":20,"slug":21,"type":15},{"name":836,"slug":837,"type":15},{"name":17,"slug":18,"type":15},{"name":866,"slug":867,"type":15},{"slug":744,"name":744,"fn":870,"description":871,"org":999,"tags":1000,"stars":28,"repoUrl":29,"updatedAt":882},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1001,1002,1003,1004],{"name":20,"slug":21,"type":15},{"name":17,"slug":18,"type":15},{"name":877,"slug":878,"type":15},{"name":880,"slug":881,"type":15},8]