{
 "schema": "aiblocks-page/1",
 "id": "agent-playbook-builder",
 "type": "skill",
 "name": "Multi-agent response playbook planner",
 "summary": "Plan a dry-run playbook that fires when several agents flag the same problem. Get trigger rules, cooldowns, proposed actions and test cases.",
 "headline": "Multi-agent response playbook planner",
 "subhead": "Share your dated findings from your agents, the pattern you want to catch, the time window, the cooldown and who owns it. This skill plans a playbook that fires only when enough separate signals line up. You get grouped signals, proposed actions that wait for approval, a failure checklist and test cases.",
 "job": {
  "id": "build-software",
  "name": "Build and ship software"
 },
 "level": "intermediate",
 "thinking": "medium",
 "tested": true,
 "updated": "2026-10-28",
 "first_published": "2026-10-25",
 "inputs": [
  {
   "type": "codebase",
   "required": true,
   "label": "Codebase",
   "what": "a project's code, in a folder or repo the AI can open"
  }
 ],
 "outputs": [
  {
   "type": "code_change",
   "required": true,
   "label": "Code change",
   "what": "a change to the code, with what it fixes and how it was checked"
  }
 ],
 "you_give": [
  "Your agents' findings from the last 30 days if you can: which agent, type of finding, how serious, which client and when",
  "The pattern you want to catch: which agents and which kinds of finding count",
  "The time window, and how many different signals must match",
  "The cooldown for each client",
  "The person who owns the playbook and approves what it proposes",
  "Your project's code, so the starter can be adapted to it (optional)"
 ],
 "you_get": [
  "Signals grouped by agent, with the lowest severity that counts",
  "A trigger rule with the window and minimum matches, and the reason for each number",
  "A cooldown, and which agents add their view",
  "Proposed actions, each one waiting for approval",
  "A dry run on your findings: would it fire, and why",
  "A failure checklist and test cases using made-up findings"
 ],
 "use_when": [
  "Several of your AI agents flag problems, and you want one combined response.",
  "You get repeated alerts about the same thing and want a cooldown so it fires once.",
  "A drop shows up in your email, store and tracking reports at the same time.",
  "You want to test a rule on past findings before it is allowed to fire."
 ],
 "skip_when": [
  "You have one agent and one alert. A single signal is an alert, not a playbook. The pack's own checklist asks for at least two signals.",
  "You want the system to act without approval. A playbook here only reports and proposes.",
  "You want to build the check that spots unusual changes in your data. Use the Agent anomaly monitor builder.",
  "You want a daily brief that merges findings from all agents. Use the Multi-agent findings brief builder.",
  "You want the approval step itself. Use the Agent approval workflow builder."
 ],
 "output_sample": {
  "input": [
   "Your agents' findings, with agent, type, severity, client and date",
   "The pattern you want to catch",
   "The time window, the number of signals that must match and the cooldown",
   "The person who owns the playbook"
  ],
  "prerequisites": [
   "An AI that can read your files, or the files pasted in",
   "At least a few weeks of past findings, to dry-run against"
  ],
  "output": [
   {
    "name": "SIGNALS",
    "contains": "For each agent, the finding types that count and the lowest severity."
   },
   {
    "name": "TRIGGER RULE and COOLDOWN",
    "contains": "The window, how many separate signals must match, the cooldown and the reason for each number."
   },
   {
    "name": "WHO ADDS A VIEW",
    "contains": "The agents that contribute to the combined diagnosis, and what each adds."
   },
   {
    "name": "PROPOSED ACTIONS",
    "contains": "The diagnosis post, an optional parent task and an optional draft proposal, each waiting for approval."
   },
   {
    "name": "DRY RUN",
    "contains": "Whether the rule would have fired on each set of your past findings, and why."
   },
   {
    "name": "FAILURE CHECKLIST",
    "contains": "Each way the playbook can fail, what should happen and how to check."
   },
   {
    "name": "TEST CASES",
    "contains": "Made-up findings with the result each should produce."
   },
   {
    "name": "MISSING and CHECKS MISSED",
    "contains": "Inputs it lacked and checks it could not run."
   }
  ]
 },
 "output_shape": "PLAYBOOK: <id> | <name> | <the pattern it catches in one line>\nOWNER: <who reviews and approves>\n\nSIGNALS\n<agent> | finding types: <...> | lowest severity: <info | warning | critical>\n\nTRIGGER RULE\nwindow: <hours> | needs: <n> of <m> separate signals | why these numbers: <...>\n\nCOOLDOWN\n<hours> per <client> | why: <...>\n\nWHO ADDS A VIEW\n<agent> | what it adds\n\nPROPOSED ACTIONS (each waits for approval)\n<parent task | draft proposal | diagnosis post> | approver: <who>\n\nDRY RUN\n<set of past findings> | fires: <yes | no> | why\n\nFAILURE CHECKLIST\n<failure> | what should happen | how to check\n\nTEST CASES (made-up findings)\n<case> | findings | expected result\n\nCODE CHANGES (only if code was given)\n<file> | change | status: <proposed | done>\n\nMISSING\n<inputs that would change the plan>\n\nCHECKS MISSED\n<one line per check not done, or none>",
 "how_to_use": [
  "Add the skill to your AI, or open the pack and give your AI SKILL.md and the files in its references folder. An AI that can read your project folder, such as Claude Code, works best. A chat AI works if you paste them.",
  "Paste your findings as a table or list, with dates. Add the pattern you want to catch and who owns it.",
  "If you do not know the window or cooldown, say so. It will propose numbers and mark them as proposals.",
  "Read the dry run first. Check each time it fires or stays quiet against what you remember happening.",
  "Run the test cases yourself in a test copy. Keep the playbook in report-only mode until your owner has approved it.",
  "Next: after approval, switch to live mode and review the next 30 days of firings against the dry run. The starter code posts to a channel only if you wire a post function, and it records the firing only after the post succeeds."
 ],
 "checks": [],
 "next": [
  {
   "name": "RoadRunner traffic test scenario writer",
   "url": "https://useaiblocks.com/skills/driving-test-scenario-writer",
   "why": "Build it"
  }
 ],
 "source": null,
 "credits": [],
 "files": [
  "references/example-playbooks/index.ts",
  "references/example-playbooks/killing-fatigued-creative.ts",
  "references/example-playbooks/new-account-onboarding.ts",
  "references/example-playbooks/scaling-winner.ts",
  "references/method-notes.md",
  "references/playbook-engine-starter.ts"
 ],
 "links": {
  "page": "https://useaiblocks.com/skills/agent-playbook-builder",
  "markdown": "https://useaiblocks.com/skills/agent-playbook-builder.md",
  "json": "https://useaiblocks.com/skills/agent-playbook-builder.json",
  "instructions": "https://useaiblocks.com/skills/agent-playbook-builder/SKILL.md",
  "download": "https://useaiblocks.com/skills/agent-playbook-builder.zip",
  "api_item": "https://useaiblocks.com/api/v1/items/agent-playbook-builder",
  "api_document": "https://useaiblocks.com/api/v1/documents/skill/agent-playbook-builder",
  "mcp": "https://useaiblocks.com/mcp"
 }
}
