CONTENT FLOOR - BUILD GATE FAILURE LOG ================================================================== Captured (UTC): 2026-09-26T02:30:51Z Build repository: allspark-seo (All Spark Electric wireframe) Commit: 23072668d9862ae4dbb3af88c0c0502b8dec0d09 Gate: 350-word article floor, build.py run_gates() Process exit: 1 WHY THIS LOG EXISTS ------------------------------------------------------------------ Two reasons, and the second is the more useful one. First, it shows a second enforcement mechanism operating, so the cost rule is not the only gate anyone can see working. Second, producing it found a real defect. The floor had been counting the whole rendered page - navigation, footer, CTA band, trust row, placeholder copy - rather than the article. A 64-word draft counted 2,355 words and passed the gate. Scoped to the article region, the same draft counts 159 and fails. The gate was ineffective until this was found. We are publishing that rather than quietly fixing it, because a document arguing you should inspect our controls is worth nothing if we hide it when an inspection turns something up. The fix is commit 23072668d9862ae4dbb3af88c0c0502b8dec0d09. REPRODUCE IT ------------------------------------------------------------------ 1. Add a content/*.md with type: problem and ~60 words of body. 2. Run: python build.py 3. Expect: exit 1, dist/ untouched, the FAIL line below. VERBATIM BUILD OUTPUT (warnings elided, marked) ================================================================== BUILD FAILED: 1 gate failure(s) pages: 46 FAIL zz-thin-draft.md: 159 words, under the 350 absolute floor !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! BUILD FAILED: 1 gate failure(s). dist/ left untouched. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! [83 warning lines elided; warnings do not stop a build.] AFTER REMOVING THE THIN DRAFT ================================================================== Gates pass. Wrote 45 files to dist/