OPER-100
[OPER-QA-2] Test Projects + Phases + Members over the QA primitive
Band
LARGE
Suggested
Justin Cooke
Body
feature_id: FEAT-studio-qa-projects ## Context PR #270 is open, `mergeable_state: behind`. Needs rebase against current main (HEAD c454e800), CI re-green, then merge. The schema adds 4 models (`QaTestProject`, `QaTestPhase`, `QaTestProjectMember`, `QaTestProjectCase`) plus 3 enums (`QaTestProjectStatus`, `QaTestPhaseStatus`, `QaTestMemberRole`). Migration `20260905193000_oper_100_qa_test_projects`. Split from OPER-QA-2. This is PR 1 (schema + migration + smoke tests + plan doc). PR 2 = OPER-115 (resolver + state machines + API routes) — filed separately per PDT integration-mechanism decision ([REDACTED-DOB]). Delivery model per that PDT: this ticket ships only Studio-native schema. The cross-product UI ships via `@operant/qa-inbox-ui` NPM package (OPER-QA-14) and product-BFF (POR-QA-1). This ticket does NOT commit to the UI mechanism — that's decided in OPER-QA-14. ## Acceptance Criteria - PR #270 rebased on current main (`4f324c2b` portico HEAD not applicable; studio HEAD `c454e800`). - All CI green: `pnpm --filter @operant/database run db:migrate deploy` on Neon preview branch, `pnpm --filter @operant/qa run typecheck`, `pnpm --filter @operant/qa run test`, `check-dependency-map`. - Migration is reversible: `DROP TABLE "QaTestProjectMember", "QaTestProjectCase", "QaTestPhase", "QaTestProject"; DROP TYPE "QaTestMemberRole", "QaTestPhaseStatus", "QaTestProjectStatus";`. - No changes to existing OPER-QA-0 tables/enums. - `scripts/org-scoped-allowlist.json` correctly marks the 3 child tables as `scoped_via_parent`. - Plan doc `docs/plans/OPER-QA-2-projects-phases-tasks-inbox.md` is committed and updated to reference the [REDACTED-DOB] integration-mechanism PDT.
Attachments
Loading attachments…
Comments
Loading comments…