{
  "morphyFlow": 1,
  "name": "New product",
  "tagline": "Concept, docs, prototype, validation, build and QA, and you decide at every turn before the next one starts.",
  "description": "For something new or big. A concept first, then a design doc in your repository, a prototype that proves the riskiest part, a validation that says GO or NO-GO, the real build, a code review and QA. You look at the concept, the design doc and the validation before the flow goes on: keep it, send it back with what to change, or drop it. Each chat that changes code works in its own copy of your repository (a git worktree on its own branch) and opens a pull request; the pull requests land in a results card for you to merge. Needs git and GitHub CLI (gh), signed in.",
  "kind": "Development",
  "brief": "Changes go through a branch and a pull request, and the user merges. Never push to the main branch, force-push or delete branches.",
  "code": true,
  "mixed": false,
  "start": {
    "split": false,
    "text": "",
    "schedule": {
      "every": "off",
      "at": "09:00",
      "day": 1
    }
  },
  "steps": [
    {
      "ref": "concept",
      "kind": "chat",
      "title": "Concept",
      "job": "Write the concept for what you are asked: the problem, who it is for, what success looks like, two or three ways to do it and the one you recommend, and what is out of scope. Keep it to a page.",
      "provider": "",
      "model": "",
      "folder": "repo"
    },
    {
      "ref": "docs",
      "kind": "chat",
      "title": "Docs writer",
      "job": "Turn the approved concept into a design doc in the repository (docs/design/<topic>.md): architecture, data, interfaces, risks and a test plan. Commit it on your branch, push, open a pull request with only the doc (`gh pr create --fill`), and answer with its link and a summary.",
      "provider": "",
      "model": "",
      "folder": "worktree"
    },
    {
      "ref": "prototype",
      "kind": "chat",
      "title": "Prototyper",
      "job": "From the design doc you get, build the smallest prototype that proves its riskiest part, on your own branch. Open a draft pull request (`gh pr create --draft --fill`) and answer with its link, what it proves and what it doesn’t.",
      "provider": "",
      "model": "",
      "folder": "worktree"
    },
    {
      "ref": "validate",
      "kind": "chat",
      "title": "Validator",
      "job": "You get a prototype’s draft pull request. Check it out in your copy (`gh pr checkout <link>`), run it and try it against the concept and the design. Answer GO or NO-GO first, then what holds, what doesn’t and what the build must change.",
      "provider": "",
      "model": "",
      "folder": "worktree"
    },
    {
      "ref": "build",
      "kind": "chat",
      "title": "Builder",
      "job": "Build the real thing from the design doc and what validation found, on your own branch, with tests. Commit, `git push -u origin HEAD`, `gh pr create --fill`, and answer with the link and a summary.",
      "provider": "",
      "model": "",
      "folder": "worktree"
    },
    {
      "ref": "review",
      "kind": "chat",
      "title": "Reviewer",
      "job": "You get a pull request’s link. Read it with `gh pr view <link>` and `gh pr diff <link>` and leave your review on GitHub (`gh pr review <link> --comment -b \"…\"`, or `--request-changes`). Answer with the link and APPROVED, or the changes to make.",
      "provider": "",
      "model": "",
      "folder": "repo"
    },
    {
      "ref": "qa",
      "kind": "chat",
      "title": "QA",
      "job": "You get a reviewed pull request. `gh pr checkout <link>` in your copy, run the tests and try the change the way a user would. Leave the result on GitHub (`gh pr review <link> --comment -b \"…\"`). Answer with the link and PASS, or what failed and how to see it.",
      "provider": "",
      "model": "",
      "folder": "worktree"
    },
    {
      "ref": "prs",
      "kind": "step",
      "step": "results",
      "title": "Pull requests"
    }
  ],
  "arrows": [
    {
      "from": "start",
      "to": "concept",
      "mode": "each",
      "ask": false
    },
    {
      "from": "concept",
      "to": "docs",
      "mode": "each",
      "ask": true
    },
    {
      "from": "docs",
      "to": "prototype",
      "mode": "each",
      "ask": true
    },
    {
      "from": "prototype",
      "to": "validate",
      "mode": "each",
      "ask": false
    },
    {
      "from": "validate",
      "to": "build",
      "mode": "each",
      "ask": true
    },
    {
      "from": "build",
      "to": "review",
      "mode": "each",
      "ask": false
    },
    {
      "from": "review",
      "to": "qa",
      "mode": "each",
      "ask": false
    },
    {
      "from": "qa",
      "to": "prs",
      "mode": "each",
      "ask": false
    }
  ]
}
