feat: rename PO Review to QA Testing and gate the QA handover - #8
Merged
Conversation
The board column is no longer PO-exclusive, so "PO Review" becomes
"QA Testing" — an explicit stage in front of "UA Testing".
Rename: ticket-cycle's --post-merge-status=po-review-inga becomes
qa-testing[=<linear-user>], plus the state matching, prose, summary
blocks and hard rules. take-ticket's status-collision check and the
pick-next-ticket fixture follow. "PO Review" stays as a trailing
fallback alias so the commands keep working on boards that have not
been renamed yet.
Gate: a column worked by people who do not read code is only useful
if everything in it is actually testable and documented. Two
conditions are now checked before the transition — ticket-cycle
STEP 4b.1a classifies testability from the diff and the browser
walk's flow list (never from the ticket title), and STEP 4b.3c
confirms the German test instructions are on the ticket. A ticket
that fails the classification goes to "Awaiting Release" with its
reason stated; one whose instructions cannot be posted does not move
at all and rests on "Dev Review".
The classification, the comment format and the deployed-URL
resolution live in the new writing-qa-test-instructions skill, shared
by ticket-cycle, git:ship and dev-submit rather than duplicated three
times. The Linear comment names roles, never passwords: it is
workspace-readable and archived indefinitely, unlike ticket-cycle
STEP 3b's local re-test manual, which keeps its literal @test.com
credentials because it stays in the developer's own session.
The QA assignee default lives in ${CLAUDE_PLUGIN_DATA}/qa-handover.json,
keyed by Linear team, asked once and remembered — a person's name in a
published plugin is personal data shipped to every installation, and it
is wrong for every team but one.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
kaihaase
added a commit
that referenced
this pull request
Aug 10, 2026
Rename PO Review to QA Testing and gate the QA handover (#8, by DKoenig9) The board column QA Testing is now an explicit stage in front of UA Testing. ticket-cycle's --post-merge-status accepts qa-testing[=<linear-user>]; the old po-review value keeps working as a trailing fallback alias. Two conditions are checked before the transition: the ticket must be classified as manually testable from the diff and the browser walk, and the German test instructions must be on the ticket. The new writing-qa-test-instructions skill holds the classification, comment format and deployed-URL resolution, shared by ticket-cycle, git:ship and dev-submit. developing-lt-frontend documents that generate-types no longer guesses the API URL: it resolves NUXT_API_URL from the shell, else <repo-root>/.lt-dev/.env, else exits 1, and refuses a URL from a different lt dev project. Skill descriptions were trimmed back under the auto-detection character budget, which the added 25th skill had exceeded. Implementation-detail lists and delegation tails were shortened; triggers and NOT boundaries are unchanged.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The board column is no longer PO-exclusive, so "PO Review" becomes "QA Testing" — an explicit stage in front of "UA Testing".
Rename: ticket-cycle's --post-merge-status=po-review-inga becomes qa-testing[=], plus the state matching, prose, summary blocks and hard rules. take-ticket's status-collision check and the pick-next-ticket fixture follow. "PO Review" stays as a trailing fallback alias so the commands keep working on boards that have not been renamed yet.
Gate: a column worked by people who do not read code is only useful if everything in it is actually testable and documented. Two conditions are now checked before the transition — ticket-cycle STEP 4b.1a classifies testability from the diff and the browser walk's flow list (never from the ticket title), and STEP 4b.3c confirms the German test instructions are on the ticket. A ticket that fails the classification goes to "Awaiting Release" with its reason stated; one whose instructions cannot be posted does not move at all and rests on "Dev Review".
The classification, the comment format and the deployed-URL resolution live in the new writing-qa-test-instructions skill, shared by ticket-cycle, git:ship and dev-submit rather than duplicated three times. The Linear comment names roles, never passwords: it is workspace-readable and archived indefinitely, unlike ticket-cycle STEP 3b's local re-test manual, which keeps its literal @test.com credentials because it stays in the developer's own session.
The QA assignee default lives in ${CLAUDE_PLUGIN_DATA}/qa-handover.json, keyed by Linear team, asked once and remembered — a person's name in a published plugin is personal data shipped to every installation, and it is wrong for every team but one.