Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/agent-review-runtime-quality-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: Agent Review Runtime Quality CI

on:
pull_request:
branches: [main]
# Scan every PR base ref, including stacked feature branches.
paths:
- ".github/workflows/agent-review-runtime-quality-ci.yml"
- ".github/workflows/noema-review.yml"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/python-security.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ name: Python Security

on:
pull_request:
# Scan every PR base ref, including stacked feature branches.
types: [opened, synchronize, reopened, ready_for_review, closed]
branches: [main, master, develop]
push:
branches: [main, master, develop]
# Periodic full-repo coverage so non-PR drift is caught (the removed local
Expand Down
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,11 @@

## Proposed

- Run Python Security and Agent Review Runtime Quality CI for stacked pull
requests by removing their pull-request base-branch filters. Extend the
permanent stacked-workflow contract so all four owner review workflows
continue covering feature-branch bases.

- Prove that the scheduler's selected head-mutation credential is present and
distinct from the workflow `github.token`, even when its declared source is
allowlisted. Missing comparison evidence and same-token fallback now fail
Expand Down
36 changes: 36 additions & 0 deletions docs/doctoring/stacked-python-runtime-review-coverage.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Stacked Python and runtime review coverage

Decision date: **2026-09-07**

## Incident

A pull request targeting the feature branch for `ContextualWisdomLab/.github#2002`
created Security Scan, SAST Semgrep, and CodeQL PR runs, but no Python Security
or Agent Review Runtime Quality CI run. Both missing workflows restricted the
`pull_request` base branch, while the existing stacked-PR regression covered
only Security Scan and SAST Semgrep.

## Decision

All four owner review workflows run for every pull-request base ref. Python
Security retains its event-type filter and Runtime Quality retains its path
filter; only the base-branch filters are removed. Push and schedule behavior is
unchanged. The single permanent contract enumerates all four workflow files.

## Failure scenes

- A dependent PR targets a feature branch and edits scheduler Python: Python
Security and Runtime Quality must both be created.
- A PR does not touch Runtime Quality paths: its existing path filter still
prevents irrelevant work.
- Closing a Python PR: the existing event/action guards continue to apply.

## Evidence and follow-up

RED commit: `890bac2f69ff1a51f774ddf5d6c5d819afed4ac9`.
Fresh exact-head hosted runs and independent review remain required.

## Reference

GitHub. (2026). *Workflow syntax for GitHub Actions: on.pull_request.branches*.
https://docs.github.com/actions/reference/workflows-and-actions/workflow-syntax
15 changes: 15 additions & 0 deletions docs/product-technical-gap-baseline.md
Original file line number Diff line number Diff line change
Expand Up @@ -3386,3 +3386,18 @@ same name in another file can carry the opposite safety property.**
- **Evidence:** RED commit
`ebcc6715e68d6bd4dc78f1ce6c3e473a2dfef899`; fresh exact-head hosted checks
remain required before integration.


### Stacked Python and runtime review coverage

- **Status:** Proposed
- **Owner:** `ContextualWisdomLab/.github`
- **Problem:** Python Security and Agent Review Runtime Quality CI filtered
`pull_request` events to default-like base branches, so a valid stacked PR
received Security/SAST/CodeQL but silently missed two owner checks.
- **Action:** Remove only the pull-request base filters and extend the existing
stacked-PR workflow regression to all four review workflows.
- **Evidence:** `ContextualWisdomLab/.github#2003` generated only three hosted
workflows at exact head `e2204eeb1ec2789ff791036140ba1672995d25f5`;
RED commit `890bac2f69ff1a51f774ddf5d6c5d819afed4ac9`; fresh exact-head
hosted checks remain required.
7 changes: 6 additions & 1 deletion tests/test_stacked_pr_security_workflow_contract.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,12 @@

def test_security_workflows_run_for_stacked_pull_requests() -> None:
"""Required PR security workflows must not filter out feature bases."""
for workflow_name in ("security-scan.yml", "sast-semgrep.yml"):
for workflow_name in (
"security-scan.yml",
"sast-semgrep.yml",
"python-security.yml",
"agent-review-runtime-quality-ci.yml",
):
workflow = (REPO_ROOT / ".github" / "workflows" / workflow_name).read_text(
encoding="utf-8"
)
Expand Down
Loading