Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
67abbb8
feat(course-item18): module-1-walkthrough artifact-trail SVG → O2
pftg Aug 2, 2026
4e307aa
feat(course-item18): module-2-walkthrough artifact-trail SVG → O2
pftg Aug 2, 2026
55dc052
feat(course-item18): module-3-walkthrough artifact-trail SVG → O2
pftg Aug 2, 2026
259c2a1
feat(course-item18): module-4-walkthrough artifact-trail SVG → O2
pftg Aug 2, 2026
69e56e4
feat(course-item18): module-5-walkthrough artifact-trail SVG → O2
pftg Aug 2, 2026
211743e
feat(course-item18): hypothesis-sprint reference SVG → O2 flat-vector…
pftg Aug 12, 2026
87814aa
feat(course-item18): mom-test reference SVG → O2 flat-vector (SW-2)
pftg Aug 12, 2026
272f6a5
feat(course-item18): must-have-survey reference SVG → O2 flat-vector …
pftg Aug 12, 2026
02a575d
feat(course-item18): outbound cadence reference SVG → O2 flat-vector …
pftg Aug 12, 2026
b007a04
feat(course-item18): outcomes-not-features reference SVG → O2 flat-ve…
pftg Aug 12, 2026
fc02049
feat(course-item18): ownership zones + bad-vs-good-email reference SV…
pftg Aug 12, 2026
a82092f
feat(course-item18): product-brief PRD reference SVG → O2 flat-vector…
pftg Aug 12, 2026
b4aa108
feat(course-item18): prototype wireframe reference SVG → O2 flat-vect…
pftg Aug 12, 2026
e85b32c
feat(course-item18): stripe price-test-flow reference SVG → O2 flat-v…
pftg Aug 12, 2026
b136f23
feat(course-item18): channel-ICP matrix reference SVG → O2 flat-vecto…
pftg Aug 12, 2026
a79bcee
feat(course-item18): hire-track-map reference SVG → O2 flat-vector (S…
pftg Aug 12, 2026
c24d1d1
feat(course-item18): vibe-prd-skeleton SVG -> O2 flat-vector (SW-3)
pftg Aug 12, 2026
91c6e25
feat(course-item18): first-paying-customer-kit SVGs -> O2 flat-vector…
pftg Aug 12, 2026
45d1d83
feat(course-item18): friday-demo-rule SVGs -> O2 flat-vector (SW-3)
pftg Aug 12, 2026
4d8fde3
feat(course-item18): friday-demo-template + three-questions SVGs -> O…
pftg Aug 12, 2026
6d489f5
feat(course-item18): pre-launch + walkthrough + quickstart SVGs -> O2…
pftg Aug 12, 2026
b93a472
feat(course-item18): faq + validation-tools SVGs -> O2 flat-vector (S…
pftg Aug 12, 2026
9372dad
feat(course-item18): five-tech-words SVGs -> O2 flat-vector (SW-3)
pftg Aug 12, 2026
0b0b1df
feat(course-item18): three pass/fail scorecard SVGs -> O2 flat-vector…
pftg Aug 12, 2026
8020414
feat(course-item18): invoice-loop + reviewer-attention SVGs -> O2 fla…
pftg Aug 12, 2026
bf7c7fa
feat(course-item18): presale-flow + hiring-region-map SVGs -> O2 flat…
pftg Aug 12, 2026
f26ca2e
feat(course-item18): outreach cadence, channels, bump-decision SVGs -…
pftg Aug 12, 2026
40f4d78
feat(course-item18): pivot-ledger + pivot-wheel SVGs -> O2 flat-vecto…
pftg Aug 12, 2026
de4d836
feat(course-item18): eight-clause SOW risk-map SVG -> O2 flat-vector …
pftg Aug 12, 2026
c5384ca
feat(build): flip check-svg-floor to a blocking gate (item18 floor = 0)
pftg Aug 12, 2026
33b5428
docs(okf): check-svg-floor is now blocking (item18 floor=0)
pftg Aug 12, 2026
c0b8dfa
docs(2605): item18 DONE (floor 46→0), PR #445 open
pftg Aug 12, 2026
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
20 changes: 11 additions & 9 deletions .okf/build/test-gates.md
Original file line number Diff line number Diff line change
Expand Up @@ -179,12 +179,14 @@ extend it when adding components or critical files. The macOS full suite remains
the repo - fresh clones had a hooksPath pointing at nothing. Adding any
root dotfile/dot-dir? Check `git check-ignore -v <path>` before assuming
it's tracked.
- REPORT-ONLY build gates (each flips to blocking once its backlog hits
zero via an env flag): `bin/check-svg-floor` (`SVG_FLOOR_BLOCK=1`)
catches course SVGs whose smallest text renders <9px@390;
`bin/check-course-paths` (`COURSE_PATH_BLOCK=1`) catches lesson
`Next:`/branch drift vs `data/course_sequence.yaml`. Both are standalone
(NOT yet wired into hugo-build/CI), carry a `--self-test`, and print a
burn-down list + exit 0 until their env flag is set. (A landing-parity
variant was tried and dropped as redundant - YAGNI: a report-only gate
nobody wires in earns its keep only when it guards an active backlog.)
- Build gates that started report-only and flip to blocking once their
backlog hits zero: `bin/check-svg-floor` catches course SVGs whose
smallest text renders <9px@390 - **now BLOCKING** (2026-08-12, item18
cleared the whole 80-SVG corpus to O2 flat-vector): `bin/hugo-build`
runs it with `SVG_FLOOR_BLOCK=1` and fails the build on any regression;
run bare for a report-only burn-down. `bin/check-course-paths`
(`COURSE_PATH_BLOCK=1`) catches lesson `Next:`/branch drift vs
`data/course_sequence.yaml` - still standalone/report-only (its backlog
isn't zero yet). Both carry a `--self-test`. (A landing-parity variant
was tried and dropped as redundant - YAGNI: a report-only gate nobody
wires in earns its keep only when it guards an active backlog.)
12 changes: 12 additions & 0 deletions .okf/log.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,17 @@
# Bundle Update Log

## 2026-08-12 (item18) - course SVG corpus → O2, check-svg-floor now blocking

* **Update**: item18 converted the entire course exhibit-SVG corpus to O2
flat-vector (74/80 under the 9px@390 mobile floor → 0) across 4 sub-waves.
`bin/check-svg-floor` **flipped from report-only to BLOCKING**: `bin/hugo-build`
now runs it with `SVG_FLOOR_BLOCK=1` and fails the build on any regression.
`.okf/build/test-gates.md` updated to reflect the flip.
* **Pattern**: "fix the gate, not the instance" completed - the report-only net
that enumerated the backlog (SW-1..SW-4) is now the guard, so the defect
can't silently return. The pixel suite masks `<img>` SVGs, so this build gate
+ rendered review are the only real coverage for exhibit legibility.

## 2026-08-12 (item16 landing migration) - below-fold coverage gap confirmed

* **Update**: `.okf/build/test-gates.md` documents the REPORT-ONLY build-gate
Expand Down
7 changes: 4 additions & 3 deletions bin/check-svg-floor
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,10 @@
# => font_viewBox >= 9 * viewBox_width / 390
#
# Usage: bin/check-svg-floor [dir] (default: content/course)
# Report-only today (exit 0 with a burn-down list) because ~55 not-yet-converted
# reference/continuation SVGs still fail. Flip REPORT_ONLY=false to make it a
# blocking gate once the whole course is converted.
# BLOCKING since 2026-08-12: item18 converted the whole course SVG corpus to O2
# flat-vector (74/80 under-floor → 0), so bin/hugo-build now runs this with
# SVG_FLOOR_BLOCK=1 and fails the build on any regression. Run bare (no env
# flag) for a report-only burn-down list.

REPORT_ONLY = ENV.fetch("SVG_FLOOR_BLOCK", "") != "1"
FLOOR_PX = 9.0
Expand Down
11 changes: 11 additions & 0 deletions bin/hugo-build
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,17 @@ if [ -f "$SCRIPT_DIR/validate-course" ]; then
fi
fi

# Course exhibit SVGs must clear the 9px@390 mobile legibility floor.
# Blocking since 2026-08-12 (item18 cleared the whole corpus to O2 flat-vector).
if [ -f "$SCRIPT_DIR/check-svg-floor" ]; then
if ! SVG_FLOOR_BLOCK=1 "$SCRIPT_DIR/check-svg-floor"; then
echo ""
echo "❌ An exhibit SVG renders below the 9px@390 floor. Redraw it to the"
echo " O2 spec (viewBox W=720, min font >=17) - see .okf/design/house-visual-spec.md."
exit 1
fi
fi

HUGO_ARGS=(hugo build --noBuildLock --environment "$ENVIRONMENT" --destination "$OUTPUT_DIR")
[ -n "$BASE_URL" ] && HUGO_ARGS+=(--baseURL "$BASE_URL")
[ -n "$BUILD_DRAFTS" ] && HUGO_ARGS+=(--buildDrafts)
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading