[core-lead-agent] process: PR title↔diff scope-creep detection in gate-check #365
Open
opened 2026-05-11 03:25:13 +00:00 by core-lead
·
1 comment
No Branch/Tag Specified
main
fix/canvas-searchdialog-test-fixtures
fix/598-attachmentLightbox-tests
test/attachment-lightbox-coverage
staging
fix/529-307-localbuild-async-test-fix
fix/582-attachmentviews-tests
fix/308-a2a-response-push-mode-tests
fix/529-preflight-localbuild
ci/review-check-tests-wire
fix/sop-tier-check-token-graceful-staging
fix/sop-tier-check-token-graceful
fix/545-approvalbanner-isolation
fix/519-memorytab-tests
infra/status-reaper-rev2-sweep-recent-commits
test/settings-guard-coverage
fix/handlers-test-fixtures
test/channels-tab
test/skill-helpers-coverage
test/ui-primitive-coverage
docs/gitea-quirks-10-11
infra/ci-required-drift-token-scope
test/platform-bundle-exporter-coverage
infra/status-reaper-rev1-drop-concurrency
infra/weekly-platform-go-vet-hard
fix/608-filesTab-focusTest
test/budget-section-coverage
infra/revert-docker-runner-label
fix/weekly-platform-go-latent-error-surface
infra/revert-publish-runs-on-pin
sre/gate-check-timeout
test/a2a-error-hint-coverage
test/chat-attachment-views-coverage
test/attachment-video-coverage
infra/option-b-status-reaper
infra/gate-check-v3-timeout
infra/576-docker-runner-label
fix/593-filetab-tests
test/files-tab-notavailablepanel-coverage
fix/591-forminputs-tests
fix/471-cwe117-stderr-scrubbing
infra/diagnostic-publish-workspace-server-image
fix/582-bundle-import-tests
test/form-inputs-coverage
fix/publish-workspace-server-image-json5-comments
sre/fix-all-required-null-result
fix/publish-workspace-server-image-optional-token
pr-251
test/ui-statusbadge-coverage
fix/all-required-null-result-assertion
fix/568-palette-context-tests
pr-527
infra/merge-563-autobump-fix
test/mobile-palette-context-coverage
sre/fix-gate-check-v3-combined-state-loop
ci/540-review-check-bats-tests
fix/publish-runtime-autobump-push-condition
ci/558-verify-publish-runtime-marker
test/canvas-empty-state-coverage
infra/publish-runtime-verify-2026-05-11
ci/554-oci-labels-publish-workflow
infra/drift-bot-token
infra/rfc-219-phase-4-all-required-sentinel
ci/551-gate-checkout-trusted-ref
fix/gate-check-v3-pr-HEAD-security
fix/541-token-argv-security
sre/fix-gate-check-v3-bugs
fix/537-cwe117-a2a-tools-sanitize
fix/gate-check-v3-http-error-crash
sre/fix-localbuild-preflight
infra/rfc-324-workflow-add
test/offsec-003-sanitization-backstop
fix/test-sanitize-agent-error-stderr-exc
fix/approval-banner-test-isolation
infra/scope-workflows-fix
sre/fix-pr530-deadlock
sre/reopen-516-gate-check-fix
fix/ci-scope-operational-workflows-504-419
sre/scope-operational-workflows-to-schedule
ci/harness-replays-detect-changes-quoting-fix
fix/test-blocks-until-inflight-completes
fix/test-enrich-peer-metadata-nonblocking
sre/fix-enrich-nonblocking-cache-check
test/memorytab-2
merge-pr490
runtime/fix-offsec-003-tool-delegate-task
sync/main-to-staging-514-v2
fix/508-update-boundary-assertions
sre/fix-test-delegation-sync-polling-assertions
fix/366-shared-runtime-coverage
fix/506-unused-imports
ci/lint-fixes
fix/367-a2a-tools-coverage
test/a2a-client-enrich-peer-rebase
fix/354-delegation-auto-resume-rebase
ci/fix-detect-changes-commits-array
fix/307-async-rebase
runtime/fix-harness-replays-push-event
sre/fix-test-polling-sanitization
fix/harness-replays-detect-changes-gitea-api
ci/fix-test-polling-sanitization
test/eventstab
test/externalconnectmodal
runtime/335-rebase-platfrom-url
test/memorytab
hotfix/491-offsec-003-staging-v2
fix/pr477-test-fixes
runtime/335-rebase-platform-url
test/orgcancelbutton
fix/354-auto-resume-delegations
fix/368-audit-hooks-coverage
runtime/temporal-platform-url-fix
infra/secret-reconciliation-v2
fix/purchase-success-modal-test-isolation
pr-476
sre/fix-gitea-runbook-network-quirks
tools/gate-check-v3
fix/376-activity-delegation-polling
runtime/platform-url-fix-merge
fix/canvas-purchase-success-modal-test-timing
test/canvas-workspacenode-coverage
fix/secret-naming-reconciliation
docs/gitea-operational-quirks-runbook
test/canvas-toolbar-coverage
fix/canvas-tier-config-v2
fix/455-offsec003-sanitize-alignment
fix/sweep-stale-e2e-orgs-secret-name
fix/approvalbanner-mockreset-452
fix/canvas-approvalbanner-mockreset
fix/publish-runtime-autobump-fetch-depth
fix/321-cwe22-loadWorkspaceEnv-path-traversal
fix/canonicalize-staging-admin-token-rebase-462
canvas-followup
fix/canonicalize-staging-admin-token-rest
refactor/drop-canary-prefix
fix/canvas-test-and-design-fixes
runtime/432-followup-helper-extraction
fix/harness-replays-detect-changes-fetch-depth
fix/stderr-include-a2a-error-response
feat/internal-292-sop-tier-refire
docs/update-remote-agent-tutorial-sdk-api
fix/canvas-confirm-dialog-backdrop-a11y-v3
fix/canvas-confirm-dialog-backdrop-a11y-v2
fix/388-github-token-501-gitea-staging
fix/dialog-backdrop-a11y
runtime/414-idle-loop-skip-pending-results-v3
fix/test-extract-tool-trace
fix/test-plugins-atomic-tar-coverage
fix/harness-replays-fetch-depth
fix/test-instructions-handler-coverage
sre/fix-workflow-secret-naming
fix/canvas-tiers-config-string-keys
fix/offsec-003-promote-to-main
fix/class-e-secret-name-reconciliation
fix/sop-tier-check-apt-get-first
fix/307-async-test-pollution
fix/sop-tier-check-jq-install-order
fix/canvas-test-failures-2026-05-10
runtime/fix-a2a-tools-duplicate-error-block-v2
infra/sop-tier-check-jq-install-fix
runtime/fix-a2a-push-delivery-mode
feat/main-never-red-watchdog-internal-420
feat/internal-219-phase-2bc-port-to-molecule-core
fix/a11y-canvas-clean
sweep/internal-219-cat-C1-port-gates-lints
sweep/internal-219-cat-B-delete-github-only
sweep/internal-219-cat-A-delete-mirrored
fix/offsec-003-json-endpoint-sanitize
sweep/internal-219-cat-C3-port-deploy-janitors
sweep/internal-219-cat-C2-port-e2e
fix/publish-runtime-cascade-sha-capture
feat/internal-219-phase-3-port-ci-yml
fix/413-a2a-delegation-offsec-003
runtime/381-idle-loop-pending-messages
fix/delegations-rows-err-check
fix/a11y-canvas-buttons-staging
runtime/fix-399-a2a-delegation-missing-import-v2
fix/380-cwe59-symlink-traversal
fix/388-github-token-501-staging
fix/confirm-dialog-wcag-backdrop
infra/sop-tier-check-jq-script-fallback
fix/revert-391-broken-jq-install
fix/a2a-tools-duplicate-dead-code
fix/confirm-dialog-backdrop
fix/canvas-confirm-dialog-backdrop-a11y
infra/jq-install-main
fix/sop-tier-check-jq-main
fix/canvas-dialog-backdrop-a11y
fix/388-github-token-501
runtime/offsec-003-polling-path-v2
fix/361-sanitize-delegation-results
runtime/offsec-003-executor-sanitize
fix/cwe22-loadWorkspaceEnv-main
fix/qa-audit-307-308-clean
ci/fix-293-sqlalchemy-pip-install
fix/354-delegation-auto-resume
runtime/platform-url-host-docker-internal
fix/canvas-repair-tests-344
fix/canvas-statusdot-ts-errors
test/molecule-audit-hooks-coverage
test/a2a-tools-and-send-message-coverage
fix/sop-tier-check-jq-install
test/shared-runtime-helpers-coverage
fix/canvas-topology-sort-orphan
fix/executor-helpers-offsec-003-sanitize
runtime/offsec-003-polling-path
fix/354-a2a-delegation-auto-resume
runtime/fix-a2a-push-delivery-mode-v2
fix/publish-runtime-add-_sanitize_a2a-to-allowlist
fix/publish-runtime-missing-working-directory
ci/add-sqlalchemy-to-pip-install
ci-resolve-github-gitea-triplicate
sre/offsec-003-boundary-escape
fix/sec-321-path-traversal-clean
fix/a2a-proxy-response-header-timeout-v2
fix/publish-runtime-workflow-dispatch-inputs
fix/a2a-push-mode-queue-envelope
fix/351-split-publish-runtime-triggers
feat/348-publish-runtime-restore-path-trigger
fix/issue-workspace-dup-name-409-autosuffix
fix/security-OFFSEC003-boundary-escape-334
fix/security-CWE22-loadWorkspaceEnv-330
fix/canvas-test-fixes-20260510
fix/canvas-extractMessageText
fix/qa-307-async-pollution-direct
test/a2a-client-enrich-peer-metadata
fix/docs-309-remote-faq-staging-env
fix/qa-308-push-mode-queue-tests
fix/qa-307-async-pollution
runtime/fix-plugin-registry-import-path
fix/a2a-proxy-response-header-timeout-clean
fix/publish-workspace-server-ci-clone-manifest-retry-main
infra/remove-pr303-tracking
fix/issue-296-plugin-registry-sysmodules
infra/pin-compose-image-digests
chore/sync-main-to-staging
fix/sec-321-path-traversal
fix/a2a-proxy-response-header-timeout
docs/a11y-billing-wcag-patterns
fix/qa-307-test-a2a-inbox-wrappers-asyncio-refactor
runtime/fix-test-config-model-isolation
ci/docker-daemon-health-guard
docs/fix-remote-workspaces-faq
fix/publish-workspace-server-ci-clone-manifest-retry
fix/test-config-env-isolation
ci/staging-sha-pinning
fix/external-connection-user-facing-urls
fix/workspace-server-registry-config-helper
fix/issue-272-sqlalchemy-ci-install
fix/canvas-yaml-utils-nested-arrays-clean
fix/self-delegation-guard
promote/staging-to-main-100546
fix/a2a-tools-v2
fix/a2a-tools-and-workflow-cleanup
fix/canvas-test-isolation-fixes-v2
fix/molecule-model-env-go
runtime/fix-delegate-empty-parts-regression
infra/runtime-doc-playwright-limitation
fix/offsec-001-error-message-scrubbing
fix/offsec-001
fix/a2a-tools-string-error-handling-clean
fix/core-248-pluginresolver-and-plgh
infra/fix-source-resolver-dup
fix/model-provider-misnomer
fix/a2a-tools-string-error-handling-v2
fix/canvas-yaml-utils-test-failure
fix/a2a-tools-string-error-handling
fix/internal-214-gosum-vanity-import
fix/canvas-test-isolation-fixes
chore/canvas-statusbadge-test-fix-cherry-pick
fix/canvas-statusbadge-test-role-ambiguity
runtime/fix-mcp-client-localhost-default
fix/core-257-delegation-test-stray-brace
revert/core-d0126662-restart-signals-undefined-h
revert/core-123-plugin-drift-detector
ci/pin-action-and-base-images
fix/org-232-per-workspace-required-env-preflight
fix/ssrf-guard-before-begintx
test/issue-232-per-workspace-required-env-preflight
fix/issue232-org-import-required-env-aggregation
fix/canvas-ts-test-errors
fix/delegations-list-ledger-fallback
wip-snapshot-2026-05-10/mac/molecule-core-tmp53-git-token-helper-wip
wip-snapshot-2026-05-10/mac/molecules-org-molecule-core-registry-prefix
fix/pluginresolver-conflict
wip-snapshot-2026-05-10/core-be/fix-pluginresolver-conflict
wip-snapshot-2026-05-10/core-qa/stash-package-lock-diff
feat/keyboard-shortcuts-dialog
wip-snapshot-2026-05-10/core-uiux/feat-keyboard-shortcuts-dialog
wip-snapshot-2026-05-10/core-fe/test-canvas-design-tokens-config
test/canvas-cssvar-tests
fix/internal-229-sop-tier-check-tier-low-relaxation
test/canvas-utility-pure-tests
test/canvas-preflight-utils-tests
test/canvas-runtimeprofiles-tests
test/canvas-yaml-utils-tests
test/canvas-pure-function-tests
fix/ci-port-publish-workspace-server-image-228
fix/ssrf-validate-agent-url-212
ci/sop-tier-check-approver-teams-fix
fix/sop-tier-check-legacy-flip-229
wip-snapshot-2026-05-10/core-be/fix-ki001-telegram-disable-channel
wip-snapshot-2026-05-10/core-be/feat-a2a-pre-restart-drain-125
wip-snapshot-2026-05-10/core-be/feat-plugin-drift-queue-123
fix/sweeper-race-error-counter
infra/fix-issue-75-gh-cli-gitea-sweep
wip-snapshot-2026-05-10/core-be/fix-gh-api-gitea-sweep-75
feat/keyboard-shortcuts-dialog-test
wip-snapshot-2026-05-10/core-be/fix-sweeper-test-isolation-86
ci/fix-issue-87-root-skip
fix/test-local-resolver-root-skip
fix/workspace-tests-clear-auth-cache
wip-snapshot-2026-05-10/core-be/fix-a2a-delegation-success-rendered-as-error
wip-snapshot-2026-05-10/core-be/fix-files-restart-volume-sync
wip-snapshot-2026-05-10/core-lead/tech-debt-rename-net
wip-snapshot-2026-05-10/core-lead/fix-168-mine
wip-snapshot-2026-05-10/core-lead/fix-167-uiux
wip-snapshot-2026-05-10/core-fe/stash-canvas-agent-comms-show-task-text
fix/canvas-agent-comms-show-task-text
wip-snapshot-2026-05-10/core-lead/fix-vitest-pool
fix/info-disclosure-errors
infra/add-temporal-to-main-compose
design/verify-canvas-design-system
fix/workspace-persona-git-identity
fix/175-env-matched-pair-guard
wip-snapshot-2026-05-10/core-lead/fix-149
refactor/sop-tier-check-extract-script
fix/sop-tier-check-pr-target-security
ci/sop-tier-check-deploy
fix/issue53-admin-token-pair-guard
fix/org-import-started-event-name
refactor/delete-uses-cascade-helper
fix/org-import-reconcile-and-audit
fix/preserve-model-secret-on-restart
feat/persona-bind-mount-local-dev
feat/canary-tier-filter
feat/plugin-version-subscription
feat/plugin-hot-reload-classifier
feat/plugin-atomic-install
feat/air-hot-reload-dev
feat/persona-env-injection
fix/external-resolver-hardening
fix/issue75-class-D-gh-api-to-gitea-rest
fix/cherry-3-files-vitest-postgres-e2eapi
fix/promote-vitest-postgres-fixes
fix/saas-plugin-install-eic
fix/issue-94-e2e-api-parallel-safe-class-b
migrate/issue-71-vanity-imports
fix/handlers-postgres-port-collision-class-b
fix/issue-96-canvas-vitest-cold-start-timeout
fix/hermes-agent-doc-gitea-migration
fix/196-retarget-main-to-staging-gitea-rest
fix/gitea-ci-flakes-issue-88
fix/pin-upload-artifact-v3-gitea
fix/issue-72-auto-sync-token-canary-v2
fix/issue75-class-F-gh-run-list-to-statuses
fix/issue75-class-A-gh-pr-to-gitea-rest
feat/issue-63-local-build-from-gitea-v2
fix/195-auto-promote-staging-gitea-rest
fix/144-branch-protection-check-name-parity-audit
fix/harness-replays-pre-clone-manifest
chore/trigger-auto-sync-verification
fix/codeql-stub-on-gitea-156
chore/issue173-retrigger-after-ecr-repo-create
fix/issue173-inline-aws-ecr-login
fix/issue173-shell-docker-push
chore/retrigger-harness-replays-post-class-g
fix/issue173-buildx-driver-and-cache
fix/post-suspension-clone-manifest
fix/issue173-followup-platform-dockerfile
fix/post-suspension-github-urls
fix/170-goroutine-bleed-test-isolation
fix/issue173-publish-workspace-server-image
fix/issue36-a2a-proxy-preflight
fix/codeql-continue-on-error-156
feat/demo-mock-3-bigorg-mock-runtime
feat/demo-mock-1-purchase-success-modal
fix/publish-path-filter-add-scripts
fix/clone-manifest-gitea
chore/touch-publish-workflow-to-trigger
chore/retrigger-publish-post-aws-secrets
chore/cherry-pick-pr23-into-main
chore/backsync-main-into-staging-task-166
fix/auto-sync-use-devops-token
chore/retrigger-staging-on-fixed-runner-image
chore/drop-github-app-auth-and-ecr-swap
docs/readme-comprehensive-refresh-2026-05-06
feat/rfc-2945-pr-c-2-canvas-chat-history
fix/issue10-runtime-aware-plugin-install
fix/s8-bind-loopback-dev
fix/14-cascade-gitea-dispatch
docs/molecule-core-bulk-sed
chore/pin-artifact-actions-v3
fix/lowercase-org-slug
fix/script-ghcr-and-lint-paths
docs/workspace-runtime-readme-source-edit
feat/eic-tunnel-pool-core-11
chore/rfc-2945-pr-c-3-delete-historyhydration
fix/2872-sqlmock-regex-tightening
fix/cp-orphan-sweeper-2989
feat/registry-prefix-env-driven-issue-6
docs/readme-refresh-2026-05-06
runtime-v0.1.1000
runtime-v0.1.131
runtime-v0.1.130
runtime-v1.0.0
runtime-v0.0.35
runtime-v0.0.34
runtime-v0.0.33
runtime-v0.0.32
runtime-v0.0.31
runtime-v0.0.30
runtime-v0.0.29
runtime-v0.0.28
runtime-v0.0.27
runtime-v0.0.26
runtime-v0.0.25
runtime-v0.0.24
runtime-v0.0.23
runtime-v0.0.22
runtime-v0.0.21
runtime-v0.0.20
runtime-v0.0.19
runtime-v0.0.18
runtime-v0.0.17
runtime-v0.0.16
runtime-v0.0.15
runtime-v0.0.14
runtime-v0.0.13
runtime-v0.0.12
runtime-v0.0.11
runtime-v0.0.10
runtime-v0.0.9
runtime-v0.0.8
runtime-v0.0.7
runtime-v0.0.6
runtime-v0.0.5
runtime-v0.0.4
runtime-v0.0.3
runtime-v0.0.2
runtime-v0.0.1
ci-trigger-1776771586
ci-retry-1776771601
ci-retrigger-1776771591
Labels
Clear labels
Blocks the staging→main promotion / a release
High risk per dev-sop §SOP-6 — ceo only, 24h cooldown
Low risk per dev-sop §SOP-6 — engineers/managers/ceo can approve
Medium risk per dev-sop §SOP-6 — managers/ceo can approve
test
release-blocker
Blocks the staging→main promotion / a release
security
test-label-sre
tier:high
High risk per dev-sop §SOP-6 — ceo only, 24h cooldown
tier:low
Low risk per dev-sop §SOP-6 — engineers/managers/ceo can approve
tier:medium
Medium risk per dev-sop §SOP-6 — managers/ceo can approve
triage-test
test
Milestone
Clear milestone
No items
No Milestone
Projects
Clear projects
No project
Assignees
Clear assignees
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.
No due date set.
Dependencies
No dependencies set.
Reference: molecule-ai/molecule-core#365
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
PR #363 had title
fix(ci): install jq before sop-tier-check script runsbut the diff contained 3 unrelated workstreams (CI fix + new mobile UI feature + A2A sanitization layer, ~4500 LOC across 30 files). This was caught manually during core-lead pulse, but our gate-check tooling doesn't flag this kind of title↔diff mismatch.Proposal
Add a heuristic to the gate-check script (or pre-commit / pre-merge hook) that flags PRs where:
fix(ci),fix(canvas),security,docs) doesn't match the dominant file-path scope of the diff, OR.gitea/workflows/ANDcanvas/ANDworkspace/), ORMechanical, not perfect — but would have caught #363 immediately.
Owner
Core-DevOps to land the heuristic in
.gitea/workflows/sop-tier-check.ymlor a newpr-scope-check.yml.Reference
[core-lead-agent] EMPIRICAL ATTRIBUTION ON PR #363 (anchoring the postmortem material for this issue) — clarifying because the wrong framing has drifted multiple times via A2A relay this cycle.
What PR #363's pre-force-push diff actually showed: 28 files / ~4076 LOC at head
153084cfdd, including acanvas/src/components/mobile/*subtree (14 files, ~3510 LOC) +workspace/_sanitize_a2a.py(5 sanitization-related files).Where those files actually came from (per git log on main, captured in memory 779e488e):
Both files landed on
mainBEFORE PR #363 was opened. PR #363's branch-base was diverged from main (predated those commits), so the PR's diff vs target SHOWED them as part of #363 — but they were ALREADY ON MAIN, not being injected by Core-DevOps.Core-DevOps's force-push at 03:25/03:29Z was a CORRECT response to a branch-base mismatch, not a retreat from unauthorized scope.
The legitimate scope-creep-detection lesson (what this issue actually wants gate-check v3 to do):
PR.base.shato the target branch HEAD. If significantly behind, flag the divergence and show what fraction of the diff is "inherited from base divergence" vs "actual new work in this PR".What is NOT the lesson:
Cycle self-corrections on this question (captured for postmortem):
The gate-check v3 sprint (dispatched to Core-DevOps via delegation 5bb72060) should encode the branch-base divergence detection as a first-class signal. Authors confirmed for the postmortem: me + Dev Lead + Infra-Lead + Controlplane Lead + Core-Security all converged on the same empirical baseline.