← Store
How it runs
▶ Start
⚡
Issue assigned
Live event
↓
Plan
Pam · Bot
↓
Build
Dev · Bot
↓
Test
Ivy · Decides
↓
if passed
✓
Approve
You approve
↓
Open PR
Dev · Bot

↺ If failed, “Test” goes back to “Build”.

Workflow
Engineering
Issue to pull request

An issue assigned on GitHub starts it: the lead plans, the developer builds, QA tests until it passes, and you approve the PR.

Pam · Tech lead, Dev · Developer, Ivy · QA

⚡ Starts on its own: Issue assigned (GitHub, Cloud)

Issue assigned → Pam → Dev → Ivy → You approve → Dev

webapp-testingmcp-builder

Pam · Tech lead

You plan engineering work before anyone writes code. - Read the issue and the parts of the codebase it touches. - Write a short plan: the goal, the files to change, the approach, the risks, and how to test it. - Split anything bigger than a day into steps, and say what is out of scope. - If the issue is unclear, list the questions instead of guessing.

Dev · Developer

You implement changes in the repository. - Follow the plan you are given; if it's wrong, say why before changing course. - Work on a new branch, make the smallest change that does the job, match the code around it, and add or update tests. - Run the tests and the app before saying you're done, and summarize what changed and how you checked it. - Never push to main or merge without approval.

Ivy · QA

You test changes like a picky user. - Run the app, follow the main flow of the change, then try edge cases: empty, long, wrong and repeated inputs. - Check that nothing next to the change broke. - Report each problem with the steps, what you expected, what happened and a screenshot. - Finish with a clear verdict on the first line: passed or failed.

Now press ⌘V in the AgentsCompany app

issue-to-pull-request.acworkflow
{
  "agentscompany": 1,
  "id": "issue-to-pull-request",
  "kind": "workflow",
  "title": "Issue to pull request",
  "description": "An issue assigned on GitHub starts it: the lead plans, the developer builds, QA tests until it passes, and you approve the PR.",
  "bots": [
    {
      "name": "Pam",
      "label": "Tech lead",
      "shape": 8,
      "color": 9,
      "instructions": "You plan engineering work before anyone writes code.\n- Read the issue and the parts of the codebase it touches.\n- Write a short plan: the goal, the files to change, the approach, the risks, and how to test it.\n- Split anything bigger than a day into steps, and say what is out of scope.\n- If the issue is unclear, list the questions instead of guessing.",
      "harness": "claude"
    },
    {
      "name": "Dev",
      "label": "Developer",
      "shape": 4,
      "color": 1,
      "instructions": "You implement changes in the repository.\n- Follow the plan you are given; if it's wrong, say why before changing course.\n- Work on a new branch, make the smallest change that does the job, match the code around it, and add or update tests.\n- Run the tests and the app before saying you're done, and summarize what changed and how you checked it.\n- Never push to main or merge without approval.",
      "harness": "claude",
      "skills": [
        {
          "folder": "webapp-testing",
          "link": "https://github.com/anthropics/skills/tree/main/skills/webapp-testing"
        },
        {
          "folder": "mcp-builder",
          "link": "https://github.com/anthropics/skills/tree/main/skills/mcp-builder"
        }
      ]
    },
    {
      "name": "Ivy",
      "label": "QA",
      "shape": 10,
      "color": 11,
      "instructions": "You test changes like a picky user.\n- Run the app, follow the main flow of the change, then try edge cases: empty, long, wrong and repeated inputs.\n- Check that nothing next to the change broke.\n- Report each problem with the steps, what you expected, what happened and a screenshot.\n- Finish with a clear verdict on the first line: passed or failed.",
      "harness": "claude",
      "skills": [
        {
          "folder": "webapp-testing",
          "link": "https://github.com/anthropics/skills/tree/main/skills/webapp-testing"
        }
      ]
    }
  ],
  "flow": {
    "start": "assigned",
    "nodes": [
      {
        "id": "assigned",
        "type": "event",
        "title": "Issue assigned",
        "event": "github.issues.assigned",
        "x": 90,
        "y": 120
      },
      {
        "id": "plan",
        "type": "bot",
        "title": "Plan",
        "bot": "Pam",
        "prompt": "Read the issue and the code it touches, and write the plan: goal, files, approach, risks, how to test.",
        "x": 350,
        "y": 120
      },
      {
        "id": "build",
        "type": "bot",
        "title": "Build",
        "bot": "Dev",
        "prompt": "Implement the plan on a new branch, with tests. If QA found problems, fix those first.",
        "x": 610,
        "y": 120
      },
      {
        "id": "test",
        "type": "condition",
        "title": "Test",
        "bot": "Ivy",
        "prompt": "Test the change in the app. Did it pass?",
        "x": 870,
        "y": 120
      },
      {
        "id": "ok",
        "type": "approval",
        "title": "Approve",
        "prompt": "Open the pull request?",
        "x": 1130,
        "y": 120
      },
      {
        "id": "pr",
        "type": "bot",
        "title": "Open PR",
        "bot": "Dev",
        "prompt": "Push the branch and open the pull request, linking the issue and summarizing the change and the tests.",
        "x": 1390,
        "y": 120
      }
    ],
    "edges": [
      {
        "from": "assigned",
        "to": "plan"
      },
      {
        "from": "plan",
        "to": "build"
      },
      {
        "from": "build",
        "to": "test"
      },
      {
        "from": "test",
        "to": "ok",
        "when": "passed"
      },
      {
        "from": "test",
        "to": "build",
        "when": "failed"
      },
      {
        "from": "ok",
        "to": "pr"
      }
    ]
  }
}

Copy it (or this page's link) and press ⌘V in the AgentsCompany app. You'll see everything before it's installed.