Skip to content

Commit 17850ce

Browse files
committed
feat(s010): plan_check rule 12 parses every workflow and Dependabot file
Red demonstrated on the exact defect PR #7 fixed, planted in the working tree and reverted; green on the clean tree; both outputs in NOTES.md. The population derives from git ls-files over .github; a missing YAML parser is a FAIL, never a skip. G1 line 1. Signed-off-by: Ayla Croft <aylacroft@proton.me>
1 parent 7b2fb39 commit 17850ce

2 files changed

Lines changed: 37 additions & 0 deletions

File tree

‎scripts/plan_check.sh‎

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,21 @@ case "$branch" in
202202
;;
203203
esac
204204

205+
section "12. Every workflow and Dependabot file parses as YAML"
206+
# Found at slice 010 G1, from PR #7: an em dash replaced by a bare colon inside a step name made
207+
# .github/workflows/package.yml unparseable. GitHub reported a run named after the file path with
208+
# zero jobs, Dependabot's updater failed on the same file, and the gate stayed green because
209+
# nothing in it reads those files. The ubuntu runner and the developer machine both carry the
210+
# Python YAML module; if it is absent the rule says so and fails rather than passing quietly.
211+
if ! python3 -c 'import yaml' >/dev/null 2>&1; then
212+
report "FAIL rule 12: python3 with the yaml module is required to parse the workflow files, and it is absent"
213+
else
214+
for f in $(git ls-files '.github/*.yml' '.github/*.yaml' '.github/**/*.yml' '.github/**/*.yaml' | sort -u); do
215+
err=$(python3 -c 'import sys, yaml; yaml.safe_load(open(sys.argv[1]))' "$f" 2>&1 >/dev/null | tail -1)
216+
[ -n "$err" ] && report "FAIL $f: not parseable as YAML: $err"
217+
done
218+
fi
219+
205220
printf '\n'
206221
if [ "$fail" -eq 0 ]; then echo "plan_check: PASS"; else echo "plan_check: FAIL"; fi
207222
exit "$fail"

‎slices/010-core-domain-persistence/NOTES.md‎

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,25 @@ Manual verification queue: none. Every criterion is `[auto]`.
4343
Deviations from SLICE.md, stated before building: line 3 adds `postgrex` as `optional: true` rather than a
4444
default dependency, so the standalone desktop build carries no Postgres driver; line 5 writes the UUIDv7
4545
generator in-tree rather than adding `uniq`, and proposes nothing new for VERSIONS.md.
46+
47+
## Line 1, 2026-09-20: plan_check rule 12, red then green
48+
49+
Planted the exact defect PR #7 fixed (the quotes removed from the step name at
50+
`.github/workflows/package.yml:173`, working tree only, reverted after):
51+
52+
```
53+
$ ./scripts/plan_check.sh | grep -E '== 12|FAIL .github|plan_check:'
54+
== 12. Every workflow and Dependabot file parses as YAML ==
55+
FAIL .github/workflows/package.yml: not parseable as YAML: in ".github/workflows/package.yml", line 173, column 25
56+
plan_check: FAIL
57+
exit=1
58+
59+
$ git checkout -- .github/workflows/package.yml && ./scripts/plan_check.sh | grep -E '== 12|FAIL|plan_check:'
60+
== 12. Every workflow and Dependabot file parses as YAML ==
61+
plan_check: PASS
62+
exit=0
63+
```
64+
65+
The population is `git ls-files '.github/*.yml' '.github/*.yaml' '.github/**/*.yml' '.github/**/*.yaml'`, three
66+
files today. The parser is Python's yaml module (6.0.1 here, present on the ubuntu runner); its absence is a
67+
FAIL, not a skip.

0 commit comments

Comments
 (0)