{"_id":"@amykit/workflow-ticket-to-qa","_rev":"4-c5e9006fbee7756a472e1b410995da76","name":"@amykit/workflow-ticket-to-qa","dist-tags":{"latest":"0.4.0"},"versions":{"0.2.0":{"name":"@amykit/workflow-ticket-to-qa","version":"0.2.0","author":{"name":"Nicolas Melo"},"license":"MIT","_id":"@amykit/workflow-ticket-to-qa@0.2.0","maintainers":[{"name":"amykit","email":"nicolasmelo12+amykit@gmail.com"}],"homepage":"https://github.com/nicolasmelo1/amy#readme","bugs":{"url":"https://github.com/nicolasmelo1/amy/issues"},"dist":{"shasum":"3436798955725308b39b89fe2c70e552ac7b5fc9","tarball":"https://registry.npmjs.org/@amykit/workflow-ticket-to-qa/-/workflow-ticket-to-qa-0.2.0.tgz","fileCount":62,"integrity":"sha512-w7ACzj7X7psHkLsUoehH4ZEiGJ5GITaPj1t+yykuusRMW8IPrLG/M9xU7jK/D0fNKN5EkorFHAK0/wYGRLOrSA==","signatures":[{"sig":"MEQCIGWldCHrzil1Cz+JDNXjd5cVOhqU0ysDv+Di8+jXjQ4FAiBLMziP62E84DLSFIi/Ls+CXYvKfP6ZPS0x0ob+HCnD6A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amykit%2fworkflow-ticket-to-qa@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":109036},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"b7903f5c95e8154f5db6fd4df6ca2633a628812d","_npmUser":{"name":"amykit","email":"nicolasmelo12+amykit@gmail.com"},"repository":{"url":"git+https://github.com/nicolasmelo1/amy.git","type":"git","directory":"packages/workflow-ticket-to-qa"},"_npmVersion":"11.19.0","description":"The ticket-to-QA workflow: its states, its typed port contracts, and a pure plan().","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@amykit/core":"^0.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"@amykit/test-fixtures":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/workflow-ticket-to-qa_0.2.0_1788658146856_0.690482758315067","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@amykit/workflow-ticket-to-qa","version":"0.3.0","author":{"name":"Nicolas Melo"},"license":"MIT","_id":"@amykit/workflow-ticket-to-qa@0.3.0","maintainers":[{"name":"amykit","email":"nicolasmelo12+amykit@gmail.com"}],"homepage":"https://github.com/nicolasmelo1/amy#readme","bugs":{"url":"https://github.com/nicolasmelo1/amy/issues"},"dist":{"shasum":"b02dfd6d478f7618562edc0ce009726e7e30d56d","tarball":"https://registry.npmjs.org/@amykit/workflow-ticket-to-qa/-/workflow-ticket-to-qa-0.3.0.tgz","fileCount":62,"integrity":"sha512-jsYUZKfK0ssVd1ifvVNGv+vLZKiXOYz7gs1WsOfkq8u8he45VYg9gSTArntW1GYJYGV66bxyoTkKI2XB1QGgtQ==","signatures":[{"sig":"MEQCIDNgrCiZN6bqvUfEX9kIATPIS5+AyE1al8N7/DQI3OEKAiB4qP+HaQhar0aRacCY2vwJn1X1ZvTgFcQrIPoOhyiNWw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amykit%2fworkflow-ticket-to-qa@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":109930},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"a9e241e87a00d8267ad9e992c4ab8fd97bd04480","_npmUser":{"name":"amykit","email":"nicolasmelo12+amykit@gmail.com"},"repository":{"url":"git+https://github.com/nicolasmelo1/amy.git","type":"git","directory":"packages/workflow-ticket-to-qa"},"_npmVersion":"11.19.0","description":"The ticket-to-QA workflow: its states, its typed port contracts, and a pure plan().","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@amykit/core":"^0.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"@amykit/test-fixtures":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/workflow-ticket-to-qa_0.3.0_1788922128497_0.6265595083607733","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@amykit/workflow-ticket-to-qa","version":"0.3.1","author":{"name":"Nicolas Melo"},"license":"MIT","_id":"@amykit/workflow-ticket-to-qa@0.3.1","maintainers":[{"name":"amykit","email":"nicolasmelo12+amykit@gmail.com"}],"homepage":"https://github.com/nicolasmelo1/amy#readme","bugs":{"url":"https://github.com/nicolasmelo1/amy/issues"},"dist":{"shasum":"c6fae7710aad2990edb93795fc7c3c136136e314","tarball":"https://registry.npmjs.org/@amykit/workflow-ticket-to-qa/-/workflow-ticket-to-qa-0.3.1.tgz","fileCount":62,"integrity":"sha512-UKmNG5fWNaxI7XQncfi3u8WAVXAE1ED2syk+tep7hlFehXDRgKU+mzdbGmOuNlA+ihn48AmGFf/36Q/G5/HVnA==","signatures":[{"sig":"MEQCIF+ZqIPLauSevUimmi7ktjD2HRXci5GPayW2EYBgfvLQAiBnfELk5ccF28XfxwXVF8dd8CeTubXTBIVdP9OEj3EkAg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amykit%2fworkflow-ticket-to-qa@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":109930},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"6a4c559ad368c51e232a33c4c2221f02709ceb2f","_npmUser":{"name":"amykit","email":"nicolasmelo12+amykit@gmail.com"},"repository":{"url":"git+https://github.com/nicolasmelo1/amy.git","type":"git","directory":"packages/workflow-ticket-to-qa"},"_npmVersion":"11.19.0","description":"The ticket-to-QA workflow: its states, its typed port contracts, and a pure plan().","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@amykit/core":"^0.3.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"@amykit/test-fixtures":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/workflow-ticket-to-qa_0.3.1_1788973008334_0.08690597288273527","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"_id":"@amykit/workflow-ticket-to-qa@0.4.0","bugs":{"url":"https://github.com/nicolasmelo1/amy/issues"},"dist":{"shasum":"a7adc6a403fcb535617476c15d97c14171597474","tarball":"https://registry.npmjs.org/@amykit/workflow-ticket-to-qa/-/workflow-ticket-to-qa-0.4.0.tgz","fileCount":50,"integrity":"sha512-+zjdgPd1Z5rogRnuCttLUEXwStLOoBcHwLo9gWEG0ts38BdLESTgiPDAtAYmAQAuHla4S3+o2Mt0eNAv+4GaCQ==","signatures":[{"sig":"MEUCIQDU1TbLnrA/XSikAe7Lvo2aUbh1PrN2O68iKddn1NrQZQIgV6YumARqvfzVOvGYw3HDmyQR9VexG7YMjGLbiFJFD5A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBGlvywegf7Qj51tuTbLaoo7XmJlOb+D/DjHPUFNzGN7AiEAr8GwxARPkjPZwnQZj0ri375SgR4xZqfen57lVxem3JU="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amykit%2fworkflow-ticket-to-qa@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":121743},"main":"./dist/index.js","name":"@amykit/workflow-ticket-to-qa","type":"module","types":"./dist/index.d.ts","author":{"name":"Nicolas Melo"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"ac437aba051bd8e109e1eb8b3c32b0365c6b4e2e","license":"MIT","version":"0.4.0","_npmUser":{"name":"amykit","email":"nicolasmelo12+amykit@gmail.com"},"homepage":"https://github.com/nicolasmelo1/amy#readme","repository":{"url":"git+https://github.com/nicolasmelo1/amy.git","type":"git","directory":"packages/workflow-ticket-to-qa"},"_npmVersion":"11.19.0","description":"The ticket-to-QA workflow: its states, its typed port contracts, and a pure plan().","directories":{},"maintainers":[{"name":"amykit","email":"nicolasmelo12+amykit@gmail.com"}],"_nodeVersion":"24.20.0","dependencies":{"@amykit/core":"^0.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"@amykit/test-fixtures":"^0.1.0","@amykit/plugin-file-queue":"^0.4.0","@amykit/plugin-file-store":"^0.4.0","@amykit/plugin-serial-engine":"^0.4.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/workflow-ticket-to-qa_0.4.0_1789739849995_0.45285336343686344"}}},"time":{"created":"2026-09-06T01:29:06.712Z","modified":"2026-09-18T13:57:30.624Z","0.2.0":"2026-09-06T01:29:06.991Z","0.3.0":"2026-09-09T02:48:48.623Z","0.3.1":"2026-09-09T16:56:48.580Z","0.4.0":"2026-09-18T13:57:30.096Z"},"bugs":{"url":"https://github.com/nicolasmelo1/amy/issues"},"author":{"name":"Nicolas Melo"},"license":"MIT","homepage":"https://github.com/nicolasmelo1/amy#readme","repository":{"url":"git+https://github.com/nicolasmelo1/amy.git","type":"git","directory":"packages/workflow-ticket-to-qa"},"description":"The ticket-to-QA workflow: its states, its typed port contracts, and a pure plan().","maintainers":[{"name":"amykit","email":"nicolasmelo12+amykit@gmail.com"}],"readme":"<!-- Generated by `npm run docs:generate` from the package itself. Do not edit by hand. -->\n\n# @amykit/workflow-ticket-to-qa\n\nThe ticket-to-QA workflow: its states, its typed port contracts, and a pure plan().\n\nA workflow for [amy](https://github.com/nicolasmelo1/amy): a pure `plan()` that says what\nhappens next, and a runtime that says how each step is done. The engine drives it without\nknowing what any of its states mean.\n\n## Install\n\n```sh\nnpm install -g @amykit/workflow-ticket-to-qa\n```\n\nThen name it in `~/.amy/config.yaml`:\n\n```yaml\nworkflows:\n  ticket-to-qa:\n    workflow: \"@amykit/workflow-ticket-to-qa\"\n```\n\n## The lifecycle\n\n| State | Kind |\n| :-- | :-- |\n| `DISCOVERED` | initial |\n| `CLARIFYING` | waiting |\n| `READY` | working |\n| `IMPLEMENTING` | working |\n| `CHECKED` | working |\n| `SELF_REVIEW` | working |\n| `PR_OPEN` | working |\n| `COPILOT_WAIT` | waiting |\n| `COPILOT_FIX` | working |\n| `REVIEWER_ASSIGNED` | working |\n| `HUMAN_REVIEW` | waiting |\n| `HUMAN_FIX` | working |\n| `ESCALATED` | waiting |\n| `RE_REVIEW` | working |\n| `APPROVED` | working |\n| `QA_HANDOFF` | working |\n| `DONE` | terminal |\n\nIt emits `address-threads`, `announce`, `ask-question`, `assign-reviewer`, `escalate`, `hand-off-to-qa`, `implement`, `open-pull-request`, `request-rereview`, `resolve-review-thread`, `run-gate`, `self-review` and `triage`.\n\n## Configuration\n\n```yaml\nplugins:\n  \"@amykit/workflow-ticket-to-qa\":\n    baseBranch: {}\n    defaultBranch: \"main\"\n    policy: {}\n    qaStatusName: <string>\n    repos: <string[]>\n```\n\n| Setting | Type | Required | Default | What it is |\n| :-- | :-- | :-- | :-- | :-- |\n| `baseBranch` | `record` | no | `{}` | where one repository's base branch is, instead of the fallback. A repository named here has its work cut from, and its pull requests opened against, that branch |\n| `defaultBranch` | `string` | no | `main` | the branch new work is cut from, for a repository that named none, which is not always `main` |\n| `policy` | `record` | no | `{}` | maxImplementAttempts, maxGateAttempts, pollBackoffMs, rosterBackoffMs, maxOpenReviewsPerReviewer, maxPullRequestFiles and maxPullRequestLines. Anything left out keeps its default |\n| `qaStatusName` | `string` | **yes** |  | the status a ticket moves to when it is handed to QA |\n| `repos` | `string[]` | **yes** |  | every repository review load is counted across |\n\nEvery field is checked at boot against the schema this package declares. A key that is\nnot one of the above is a refusal naming the plugin and the key, not a setting that\nsilently never applied.\n\n## Where the reasoning is\n\n- [Writing a workflow](https://github.com/nicolasmelo1/amy/tree/main/docs/build/write-a-workflow.md)\n- [Reference: workflows](https://github.com/nicolasmelo1/amy/tree/main/docs/reference/workflows.md)\n- [Ports and the registry](https://github.com/nicolasmelo1/amy/tree/main/docs/concepts/ports.md)\n\n## Licence\n\nMIT\n","readmeFilename":"README.md"}