Commit 4fb9b41
committed
Document residual unmodeled bypass paths; soften 'CI fails closed' claim
R10 review flagged shell-script direct execution (`bash <script>`,
`source <script>`, `./<script>`) and multi-line `python3 -c` bodies
as unmodeled. After 10 rounds of progressive guard tightening
(R0-R9), the trajectory is clear: each round adds a new shell-feature
to model and the reviewer finds the next gap. Continuing further has
diminishing return — static-shell-parsing has irreducible limits.
Per discussion with author, the 16-test guard is accepted as
'reasonable defense against accidental regressions' rather than a
complete adversarial parser. The dismissal's primary defense is the
documented threat model (workflow comment block + dismissed_comment
field on alert #14), not the test.
This commit:
- Soften the workflow comment block's "CI fails closed" line.
Replace with explicit enumeration of what the test catches
(accidental regressions of common forms) AND what it does NOT
model (script execution, multi-line python -c, var expansion,
eval, find -exec, xargs). Frame the test as belt-and-suspenders.
- Expand TestWorkflowDoesNotExecutePRHeadCode docstring with the
same SCOPE / NOT-MODELED enumeration.
- Add TODO.md row tracking the residuals + reasoning for accepting
them.
Test invariants preserved (test_workflow_dismissal_comment_block_present
still passes — the required strings remain present). 16 guard tests
pass; YAML still parses.
This is the final commit on PR #436. No more guard-coverage
expansion. CodeQL #14 dismissal will be applied via `gh api PATCH`
post-merge.1 parent 46fcb78 commit 4fb9b41
3 files changed
Lines changed: 74 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
86 | 86 | | |
87 | 87 | | |
88 | 88 | | |
89 | | - | |
90 | | - | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
91 | 117 | | |
92 | 118 | | |
93 | 119 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
145 | 145 | | |
146 | 146 | | |
147 | 147 | | |
| 148 | + | |
148 | 149 | | |
149 | 150 | | |
150 | 151 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2670 | 2670 | | |
2671 | 2671 | | |
2672 | 2672 | | |
2673 | | - | |
| 2673 | + | |
| 2674 | + | |
| 2675 | + | |
| 2676 | + | |
| 2677 | + | |
| 2678 | + | |
| 2679 | + | |
| 2680 | + | |
| 2681 | + | |
| 2682 | + | |
| 2683 | + | |
| 2684 | + | |
| 2685 | + | |
| 2686 | + | |
| 2687 | + | |
| 2688 | + | |
| 2689 | + | |
| 2690 | + | |
| 2691 | + | |
| 2692 | + | |
| 2693 | + | |
| 2694 | + | |
| 2695 | + | |
| 2696 | + | |
| 2697 | + | |
| 2698 | + | |
| 2699 | + | |
| 2700 | + | |
| 2701 | + | |
| 2702 | + | |
| 2703 | + | |
| 2704 | + | |
| 2705 | + | |
| 2706 | + | |
| 2707 | + | |
| 2708 | + | |
| 2709 | + | |
| 2710 | + | |
| 2711 | + | |
| 2712 | + | |
| 2713 | + | |
| 2714 | + | |
| 2715 | + | |
| 2716 | + | |
| 2717 | + | |
2674 | 2718 | | |
2675 | 2719 | | |
2676 | 2720 | | |
| |||
0 commit comments