Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
a75711a
feat(course-svg): jargon-translator in refactoring.fm style + restore…
pftg Aug 13, 2026
eaad282
feat(course-svg): scorecard-at-a-glance in refactoring.fm style (2/10)
pftg Aug 13, 2026
d66107f
feat(course-svg): architecture-comparison in refactoring.fm style (3/10)
pftg Aug 13, 2026
7dda058
fix(course-svg): architecture-comparison - restore jargon tie-in + DH…
pftg Aug 13, 2026
2f816ce
feat(course-svg): refactor-check in refactoring.fm style (4/10)
pftg Aug 13, 2026
126d2b9
feat(course-svg): catching-the-lie in refactoring.fm style (5/10)
pftg Aug 13, 2026
7190b18
feat(course-svg): invoice-loop in refactoring.fm style (5/10)
pftg Aug 13, 2026
d7dfaa8
docs(2605): aug14 metrics read DONE - no landing lift, funnel dead
pftg Aug 13, 2026
1f4e5ce
feat(course-svg): demo-rule in refactoring.fm style (6/10)
pftg Aug 13, 2026
1d30cb1
feat(course-svg): dollar-presale-flow in refactoring.fm style (7/10)
pftg Aug 13, 2026
f0ea478
feat(course-svg): invoice-loop redraw in refactoring.fm style (proposal)
pftg Aug 13, 2026
e7da8d1
fix(course-svg): invoice-loop - clean binary fork (NO/left green, YES…
pftg Aug 13, 2026
1ae6d0b
fix(course-svg): dollar-presale-flow - concise text, no overflow, con…
pftg Aug 13, 2026
bd5249c
fix(course-svg): invoice-loop distilled to a big simple fork; dollar-…
pftg Aug 13, 2026
a036f88
fix(course-svg): architecture-comparison - components as scannable bo…
pftg Aug 13, 2026
6d7d7f9
fix(course-svg): invoice-loop as a single ±20% gauge; dollar-presale …
pftg Aug 13, 2026
ca311c6
fix(course-svg): architecture-comparison - monolith box vs service ta…
pftg Aug 13, 2026
c489516
feat(course-svg): hypothesis-mad-libs in refactoring.fm style
pftg Aug 13, 2026
f555423
fix(course-svg): demo-rule - items as scannable chips, balanced colum…
pftg Aug 13, 2026
53f1deb
design(course): redraw friday-demo-timeline in refactoring.fm style
pftg Aug 13, 2026
8c8404c
docs(2605): record SVG mobile-style migration as report-only backlog
pftg Aug 13, 2026
6c708be
design(course): de-clunk friday-demo-timeline grid
pftg Aug 13, 2026
80ef178
docs(okf): render-gate clunkiness checklist + wobble-in-grids correction
pftg Aug 13, 2026
008f334
docs(2605): set validation sprint 'Prove ICP Arrival' as active queue…
pftg Aug 13, 2026
1e0dd6d
docs: ICP post #1 scheduled on LinkedIn (Aug 13 3:30pm CEST) — campai…
pftg Aug 13, 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
54 changes: 54 additions & 0 deletions .okf/design/house-visual-spec.md
Original file line number Diff line number Diff line change
Expand Up @@ -233,3 +233,57 @@ scale with the measured >=9px @390px floor formula - plus the exhibit
grammar and the O1/O2 rubric. Nothing in the ADR's Phase-A spec requirement
was left aspirational; the floor is a formula (basis 17px @ W=720 -> 9.21px)
and every dimension is a number an SVG author can render from.

## Refactoring.fm illustration style (2026-08-13, Paul - the new exhibit bar)

Paul's north star for course exhibits: the refactoring.fm (Luca Rossi) illustration
look (reference set: `docs/projects/2605-.../10-19-research/images/`). Redraw
exhibits to THIS, not the muted #faf7f2 O2 cards:
- **Clean white bg**, generous whitespace, minimal text, BIG labels.
- **Big bold hand-drawn Caveat labels** with a **soft colored drop-shadow glow**
(SVG feDropShadow, the label's own colour, opacity ~0.5) so they pop.
- **Saturated semantic per-element colours** (NOT muted): blue #2b7fff structure,
red #f2635a/#e5484d, green, amber, purple - each category its own colour.
- **Soft tinted rounded pills** behind labels (very light tint of the label colour,
rx ~18) with a subtle grey drop-shadow for depth + a slight wobble rotation
(~0.4-0.6deg) for the hand-drawn feel.
- **Bold blue connector arrows** (stroke ~3.5, blue arrowhead marker); purple
dashed arrows for callout annotations.
- **NO emoji** (Paul 2026-08-13: "emojis look not so good, avoid them").
- **Wobble is layout-dependent (2026-08-13 correction):** the ~0.4-0.6deg wobble
reads "hand-drawn/playful" in a **flow or vertical stack** - but in a **grid of
aligned cards it reads as MISALIGNMENT, not craft.** Drop the wobble in grids;
keep clean edges. (This exact rule caused the friday-demo-timeline clunkiness -
see the render-gate checklist below.)
- Legibility unchanged: min font >=20px Caveat, W=720, ZERO overflow (render-check
every one at 390 + desktop).
Template exhibit: `five-tech-words-stop-nodding-at/jargon-translator.svg`.

### Render-gate clunkiness checklist (2026-08-13 - itemize, don't vibe-check)

**Why this exists (decision record):** friday-demo-timeline was render-verified at
390, judged "legible + no overflow + on-style" -> stamped PASS -> handed back. Paul
then caught 3 clunky defects that were all VISIBLE in that same screenshot: grid
wobble reading as misalignment, a crowded odd-one-out STOP card, and hollow
badge-to-label gaps. **Root cause: a legibility/overflow gate is structurally BLIND
to composition.** Binary defect gates are necessary but NOT sufficient.

**The rule:** after the binary gate (legible / no overflow / on-style) passes, run
these 6 as an EXPLICIT ticked checklist - stance = "assume clunky, find 3 things to
fix" (assuming PASS is why the 3 were missed). A render is not PASS until all 6 are
ticked, not glanced:

1. **Alignment** - repeated elements on a clean grid, or does wobble/offset read jagged?
2. **Odd-one-out balance** - does the different cell (STOP, total row, hero) match its
siblings' internal rhythm, or crowd/diverge?
3. **Whitespace / hollowness** - dead gaps inside boxes? content floating with no anchor?
4. **Sibling consistency** - do all repeated cards share ONE internal layout (badge, label pos)?
5. **Edge breathing room** - any text CROWDING the container edge (not overflow, just tight)?
6. **Weight / emphasis** - is the one thing that should dominate actually dominant?

**Backstop for batches:** a self-checklist still relies on the author's eye, which
rationalizes its own choices as intentional. Before a PR merge, run one INDEPENDENT
critic pass on the renders (impeccable `critique` or a fresh reviewer that didn't
draw them) - the only reliable catch for author-blind clunkiness (matches the
CLAUDE.md content cold-eyes gate). Per-exhibit: the 6-item checklist. Per-batch: the
critic pass.
15 changes: 15 additions & 0 deletions .okf/log.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,21 @@
CTR that `content-strategy/content-plan.md` was built from.
* **Not in the repo**: all credential files live under `~/.config/` and
`~/Library/Application Support/`. Nothing was committed but the bundle.
## 2026-08-13 (exhibit clunkiness) - render-gate needs a composition pass

* **Update**: `.okf/design/house-visual-spec.md` gains a **render-gate
clunkiness checklist** (6 items: alignment, odd-one-out balance, whitespace/
hollowness, sibling consistency, edge breathing room, weight/emphasis) plus a
per-batch independent-critic backstop.
* **Wobble rule corrected**: the ~0.4-0.6deg hand-drawn wobble reads as craft
in a flow/stack but as MISALIGNMENT in a grid of aligned cards - drop it in
grids. This exact spec rule caused the friday-demo-timeline clunkiness.
* **Root cause recorded**: a legibility/overflow gate is structurally BLIND to
composition. friday-demo-timeline passed the binary gate (legible/no-overflow/
on-style) with 3 clunky defects visible in the same screenshot; Paul caught
them. Binary gates necessary, not sufficient - stance "assume clunky, find 3"
is the lever. Redraw shipped on `course-svg-per-image-fixes` (7e87b1a7 draw,
c0df99a1 de-clunk).

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

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