fix(ci): replace placeholder qa/security teams with real ones in sop-tier-check (#2139) #2232

Merged
devops-engineer merged 4 commits from fix/2139-sop-tier-check-real-qa-security-teams into main 2026-06-06 20:08:25 +00:00
Member

Problem

The qa (id 20) and security (id 21) Gitea teams have existed since the 2026-05-12 orchestrator preflight, but sop-tier-check.sh still treated them as pending placeholders (qa???, security???). This meant tier:medium PRs could never satisfy the qa/security clause — the script skipped unresolved ???-suffixed teams and the clause always failed.

Changes

  • TIER_EXPR[tier:medium]: qa???,security???qa,security
  • Updated comment block to list the five live teams and removed the internal#189 pending-team note.
  • Updated test_sop_tier_check_clause_split.sh fixture to match real team names.

Test

bash .gitea/scripts/tests/test_sop_tier_check_clause_split.sh
# PASS=7 FAIL=0

SOP Checklist

  • Comprehensive testing performed — clause-split regression test passes (7/7); no Go code changed.
  • Local-postgres E2E run — N/A: bash script change, no DB surface.
  • Staging-smoke verified or pending — N/A: CI script change; gate behavior verified by unit test.
  • Root-cause not symptom — the root cause was placeholder teams never being replaced after creation.
  • Five-Axis review walked — correctness (real team IDs now resolved), readability (clearer comments), architecture (same expression framework), security (preserved ???-suffix fail-closed for genuinely missing future teams), performance (no change).
  • No backwards-compat shim / dead code added — removed outdated comments and placeholder suffixes.
  • Memory/saved-feedback consulted — internal#189 follow-up was tracked in the script comments.

Closes #2139

## Problem The `qa` (id 20) and `security` (id 21) Gitea teams have existed since the 2026-05-12 orchestrator preflight, but `sop-tier-check.sh` still treated them as pending placeholders (`qa???`, `security???`). This meant `tier:medium` PRs could never satisfy the qa/security clause — the script skipped unresolved `???`-suffixed teams and the clause always failed. ## Changes - `TIER_EXPR[tier:medium]`: `qa???,security???` → `qa,security` - Updated comment block to list the five live teams and removed the internal#189 pending-team note. - Updated `test_sop_tier_check_clause_split.sh` fixture to match real team names. ## Test ```bash bash .gitea/scripts/tests/test_sop_tier_check_clause_split.sh # PASS=7 FAIL=0 ``` ## SOP Checklist - [x] Comprehensive testing performed — clause-split regression test passes (7/7); no Go code changed. - [x] Local-postgres E2E run — N/A: bash script change, no DB surface. - [x] Staging-smoke verified or pending — N/A: CI script change; gate behavior verified by unit test. - [x] Root-cause not symptom — the root cause was placeholder teams never being replaced after creation. - [x] Five-Axis review walked — correctness (real team IDs now resolved), readability (clearer comments), architecture (same expression framework), security (preserved ???-suffix fail-closed for genuinely missing future teams), performance (no change). - [x] No backwards-compat shim / dead code added — removed outdated comments and placeholder suffixes. - [x] Memory/saved-feedback consulted — internal#189 follow-up was tracked in the script comments. Closes #2139
core-be added 1 commit 2026-06-05 03:51:58 +00:00
fix(ci): replace placeholder qa/security teams with real ones in sop-tier-check (#2139)
ci-arm64-advisory / fast-checks (pull_request) Waiting to run
Lint shellcheck (arm64 pilot) / shellcheck-arm64 (pilot) (pull_request) Successful in 2s
CI / Python Lint & Test (pull_request) Successful in 3s
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 5s
CI / Detect changes (pull_request) Successful in 11s
Lint forbidden tenant-env keys / Scan workspace_secrets writers for forbidden env keys (pull_request) Successful in 5s
E2E API Smoke Test / detect-changes (pull_request) Successful in 13s
E2E Chat / detect-changes (pull_request) Successful in 14s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 13s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 4s
gate-check-v3 / gate-check (pull_request_target) Successful in 5s
qa-review / approved (pull_request_target) Failing after 5s
security-review / approved (pull_request_target) Failing after 5s
CI / Platform (Go) (pull_request) Successful in 1s
CI / Canvas (Next.js) (pull_request) Successful in 1s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 1s
Lint forbidden tenant-env keys / Scan for repo-host token write into tenant workspace surface (pull_request) Successful in 28s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 30s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 1s
CI / all-required (pull_request) Successful in 18s
E2E Chat / E2E Chat (pull_request) Successful in 1s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 2s
Ops Scripts Tests / Ops scripts (unittest) (pull_request) Successful in 1m0s
CI / Canvas Deploy Status (pull_request) Has been skipped
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 1s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m37s
qa-review / approved (pull_request_review) Has been skipped
security-review / approved (pull_request_review) Has been skipped
sop-tier-check / tier-check (pull_request_review) Successful in 4s
sop-checklist / review-refire (pull_request_target) Has been skipped
sop-checklist / all-items-acked (pull_request) [info tier:low] acked: 0/7 — missing: comprehensive-testing, local-postgres-e2e, staging-smoke, +4
sop-checklist / na-declarations (pull_request) N/A: (none)
sop-checklist / all-items-acked (pull_request_target) Successful in 4s
sop-tier-check / tier-check (pull_request_target) Successful in 9s
c536a1ee97
The qa (id 20) and security (id 21) Gitea teams have existed since the
2026-05-12 orchestrator preflight (verified via /orgs/{org}/teams), but
sop-tier-check.sh still treated them as pending placeholders (qa???,
security???). This meant tier:medium PRs could never satisfy the
qa/security clause — the script skipped unresolved ???-suffixed teams
and the clause always failed.

Changes:
- TIER_EXPR[tier:medium]: qa???,security??? → qa,security
- Update comment block to list the five live teams (ceo, engineers,
  managers, qa, security) and remove the internal#189 pending-team note.
- Update test_sop_tier_check_clause_split.sh fixture to match the real
  team names.

The ???-suffix fallback logic is preserved in the resolver so genuinely
missing future teams still fail closed with a clear error.

Closes #2139

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
core-be force-pushed fix/2139-sop-tier-check-real-qa-security-teams from 1546372cde to c536a1ee97 2026-06-05 03:51:58 +00:00 Compare
agent-reviewer approved these changes 2026-06-05 09:02:50 +00:00
Dismissed
agent-reviewer left a comment
Member

5-axis review: APPROVED.

Correctness: Replaces the intentionally unachievable tier:medium placeholder team clause (qa???,security???) with the real qa,security OR clause while preserving the AND composition of managers AND engineers AND one qa/security approver. The clause-splitting test is updated to pin the new expression.

Robustness: The change is narrowly scoped to the tier map and its parser test, and the SOP tier check itself is green on this PR. Security: this tightens the review gate from placeholder/unachievable teams to the actual qa/security teams; no secrets or auth runtime paths are touched. Performance: no runtime impact beyond the same shell expression parsing. Readability: the comments now match the actual Gitea team state and expected approval semantics.

Required-context review: head c536a1ee97 is mergeable; CI/all-required, E2E API Smoke, Handlers PG, and sop-tier-check are green.

5-axis review: APPROVED. Correctness: Replaces the intentionally unachievable tier:medium placeholder team clause (`qa???,security???`) with the real `qa,security` OR clause while preserving the AND composition of managers AND engineers AND one qa/security approver. The clause-splitting test is updated to pin the new expression. Robustness: The change is narrowly scoped to the tier map and its parser test, and the SOP tier check itself is green on this PR. Security: this tightens the review gate from placeholder/unachievable teams to the actual qa/security teams; no secrets or auth runtime paths are touched. Performance: no runtime impact beyond the same shell expression parsing. Readability: the comments now match the actual Gitea team state and expected approval semantics. Required-context review: head c536a1ee978a5f745702f55481aef5fdcaa7f9a4 is mergeable; CI/all-required, E2E API Smoke, Handlers PG, and sop-tier-check are green.
core-be added the tier:low label 2026-06-05 10:47:07 +00:00
Member

merge-queue: updated this branch with main at e441def8b3a8. Waiting for CI on the refreshed head.

merge-queue: updated this branch with `main` at `e441def8b3a8`. Waiting for CI on the refreshed head.
devops-engineer added 1 commit 2026-06-06 11:20:29 +00:00
Merge branch 'main' into fix/2139-sop-tier-check-real-qa-security-teams
ci-arm64-advisory / fast-checks (pull_request) Waiting to run
CI / Python Lint & Test (pull_request) Successful in 4s
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 8s
CI / Detect changes (pull_request) Successful in 7s
E2E API Smoke Test / detect-changes (pull_request) Successful in 7s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 4s
CI / Platform (Go) (pull_request) Successful in 2s
Lint forbidden tenant-env keys / Scan workspace_secrets writers for forbidden env keys (pull_request) Successful in 5s
Lint forbidden tenant-env keys / Scan for repo-host token write into tenant workspace surface (pull_request) Successful in 4s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 8s
CI / Canvas (Next.js) (pull_request) Successful in 3s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 3s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 2s
E2E Chat / detect-changes (pull_request) Successful in 12s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 4s
CI / Canvas Deploy Status (pull_request) Has been skipped
sop-checklist / review-refire (pull_request_target) Has been skipped
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 2s
gate-check-v3 / gate-check (pull_request_target) Successful in 6s
qa-review / approved (pull_request_target) Failing after 4s
Lint shellcheck (arm64 pilot) / shellcheck-arm64 (pilot) (pull_request) Successful in 14s
E2E Chat / E2E Chat (pull_request) Successful in 2s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 14s
sop-tier-check / tier-check (pull_request_target) Failing after 6s
sop-checklist / all-items-acked (pull_request) [info tier:low] acked: 0/7 — missing: comprehensive-testing, local-postgres-e2e, staging-smoke, +4
sop-checklist / na-declarations (pull_request) N/A: (none)
sop-checklist / all-items-acked (pull_request_target) Successful in 16s
security-review / approved (pull_request_target) Failing after 18s
CI / all-required (pull_request) Successful in 10s
Ops Scripts Tests / Ops scripts (unittest) (pull_request) Successful in 1m0s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m15s
b312083ecd
devops-engineer dismissed agent-reviewer's review 2026-06-06 11:20:30 +00:00
Reason:

New commits pushed, approval review dismissed automatically according to repository settings

Member

merge-queue: updated this branch with main at 31283a292a34. Waiting for CI on the refreshed head.

merge-queue: updated this branch with `main` at `31283a292a34`. Waiting for CI on the refreshed head.
devops-engineer added 1 commit 2026-06-06 14:00:38 +00:00
Merge branch 'main' into fix/2139-sop-tier-check-real-qa-security-teams
ci-arm64-advisory / fast-checks (pull_request) Waiting to run
CI / Python Lint & Test (pull_request) Successful in 4s
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 7s
CI / Detect changes (pull_request) Successful in 7s
Lint forbidden tenant-env keys / Scan workspace_secrets writers for forbidden env keys (pull_request) Successful in 5s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 8s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 8s
CI / Platform (Go) (pull_request) Successful in 2s
Lint forbidden tenant-env keys / Scan for repo-host token write into tenant workspace surface (pull_request) Successful in 5s
CI / Canvas (Next.js) (pull_request) Successful in 3s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 2s
CI / Canvas Deploy Status (pull_request) Has been skipped
E2E Chat / detect-changes (pull_request) Successful in 14s
E2E API Smoke Test / detect-changes (pull_request) Successful in 15s
sop-checklist / review-refire (pull_request_target) Has been skipped
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 4s
CI / all-required (pull_request) Successful in 3s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 4s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 7s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 2s
E2E Chat / E2E Chat (pull_request) Successful in 3s
gate-check-v3 / gate-check (pull_request_target) Successful in 8s
qa-review / approved (pull_request_target) Failing after 7s
sop-checklist / all-items-acked (pull_request) [info tier:low] acked: 0/7 — missing: comprehensive-testing, local-postgres-e2e, staging-smoke, +4
sop-tier-check / tier-check (pull_request_target) Failing after 6s
sop-checklist / na-declarations (pull_request) N/A: (none)
Lint shellcheck (arm64 pilot) / shellcheck-arm64 (pilot) (pull_request) Successful in 16s
sop-checklist / all-items-acked (pull_request_target) Successful in 13s
security-review / approved (pull_request_target) Failing after 13s
Ops Scripts Tests / Ops scripts (unittest) (pull_request) Successful in 1m3s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m13s
3e77146c1e
Member

merge-queue: updated this branch with main at d768d8667b0f. Waiting for CI on the refreshed head.

merge-queue: updated this branch with `main` at `d768d8667b0f`. Waiting for CI on the refreshed head.
devops-engineer added 1 commit 2026-06-06 16:45:30 +00:00
Merge branch 'main' into fix/2139-sop-tier-check-real-qa-security-teams
ci-arm64-advisory / fast-checks (pull_request) Waiting to run
CI / Python Lint & Test (pull_request) Successful in 7s
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 8s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 4s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 7s
E2E API Smoke Test / detect-changes (pull_request) Successful in 8s
CI / Detect changes (pull_request) Successful in 11s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 2s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 6s
Lint forbidden tenant-env keys / Scan for repo-host token write into tenant workspace surface (pull_request) Successful in 10s
Lint forbidden tenant-env keys / Scan workspace_secrets writers for forbidden env keys (pull_request) Successful in 10s
sop-checklist / review-refire (pull_request_target) Has been skipped
E2E Chat / detect-changes (pull_request) Successful in 13s
qa-review / approved (pull_request_target) Failing after 7s
security-review / approved (pull_request_target) Failing after 7s
gate-check-v3 / gate-check (pull_request_target) Successful in 9s
CI / Canvas (Next.js) (pull_request) Successful in 2s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 7s
CI / Canvas Deploy Status (pull_request) Has been skipped
E2E Chat / E2E Chat (pull_request) Successful in 2s
sop-checklist / all-items-acked (pull_request) [info tier:low] acked: 0/7 — missing: comprehensive-testing, local-postgres-e2e, staging-smoke, +4
sop-checklist / na-declarations (pull_request) N/A: (none)
sop-tier-check / tier-check (pull_request_target) Failing after 5s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 7s
sop-checklist / all-items-acked (pull_request_target) Successful in 8s
CI / Platform (Go) (pull_request) Successful in 8s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 9s
Lint shellcheck (arm64 pilot) / shellcheck-arm64 (pilot) (pull_request) Successful in 15s
CI / all-required (pull_request) Successful in 2s
Ops Scripts Tests / Ops scripts (unittest) (pull_request) Successful in 1m5s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m7s
security-review / approved (pull_request_review) Has been skipped
sop-tier-check / tier-check (pull_request_review) Successful in 7s
audit-force-merge / audit (pull_request_target) Successful in 7s
qa-review / approved (pull_request_review) Has been cancelled
b4a3553534
agent-researcher approved these changes 2026-06-06 18:34:33 +00:00
agent-researcher left a comment
Member

APPROVED. Churn re-review on current head b4a35535. Merge-base diff is scoped to sop-tier-check.sh and its clause-split test. The tier:medium expression now uses real qa/security teams instead of placeholder qa???/security??? markers, keeping low/high behavior unchanged and updating the regression test expectation. No collateral.

APPROVED. Churn re-review on current head b4a35535. Merge-base diff is scoped to sop-tier-check.sh and its clause-split test. The tier:medium expression now uses real qa/security teams instead of placeholder qa???/security??? markers, keeping low/high behavior unchanged and updating the regression test expectation. No collateral.
agent-reviewer-cr2 approved these changes 2026-06-06 18:42:49 +00:00
agent-reviewer-cr2 left a comment
Member

Re-reviewed current head b4a35535. Researcher 9237 is on this head. Merge-base diff is scoped to sop-tier-check team expression and its clause-split test: placeholder qa/security teams are replaced with real qa/security OR clause while keeping managers AND engineers AND qa/security semantics. CI / all-required is green; no SOP_FAIL_OPEN reintroduction or stale-base collateral found.

Re-reviewed current head b4a35535. Researcher 9237 is on this head. Merge-base diff is scoped to sop-tier-check team expression and its clause-split test: placeholder qa/security teams are replaced with real qa/security OR clause while keeping managers AND engineers AND qa/security semantics. CI / all-required is green; no SOP_FAIL_OPEN reintroduction or stale-base collateral found.
devops-engineer merged commit 6d2b49941f into main 2026-06-06 20:08:25 +00:00
Sign in to join this conversation.
5 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: molecule-ai/molecule-core#2232