Files
felhom.eu/REPORT-redesign-2026-10-10.md
T
admin 0c86e698b0
gates / gates (push) Failing after 5m58s
docs: record the placement change and re-measure after it
Every document that described the biography as a home-page section would now be
wrong, so each is corrected rather than left:

  ki-all-mogotte.md  gains 'Where it ended up' with the operator's reasoning, the
                     rejected /rolam option, and why the home page keeps a trace
  AUDIT.md           lever 2 carries a dated revision note (the audit itself is a
                     record of what was found, so it is annotated, not rewritten)
  PREFLIGHT.md       re-measured on the deployed page after the move:
                       1440: 6 780 -> 6 385 px  (42% shorter than the old page)
                        390: 10 865 -> 10 145 px (49% shorter, 23.6 -> 12.0 screens)
                       sections 10 -> 9, layout families 10 -> 9, still no repeat
                       eyebrow allowance 4 -> 3, still 0 used
  website/CHANGELOG  the live change, with the layout bug that the deployed page
                     revealed and the markup did not
  REPORT + STATUS    what is live vs what is still waiting on the operator

The numbers moved because a whole section left the page; leaving the old ones in
place would have been a quiet overclaim in the other direction.
2026-10-11 09:29:47 +02:00

9.7 KiB
Raw Blame History

REPORT — home-page redesign, staged not switched (2026-10-10 → 11)

Written as REPORT-<topic>.md, not REPORT.md: the shared file belongs to the kernel-night session (de4a8d20) and is overwritten per session (CLAUDE.md §Workflow).

In plain words

The website's home page looked like many AI-made sites, and the operator asked for that to be fixed. It now has a redesigned version on a hidden test address, https://felhom.eu/preview/. The operator looked at it and chose to sit with it, so the live home page is unchanged.

Two other things the operator approved at the same time are live on every page now: the dash in the footer line is the correct Hungarian one, and the blue button is bigger and bolder so it meets the contrast standard it has never met.

Nothing was published that the operator did not approve, and no claim on the new page is new.

What was done

Part 0 — the skill. design-taste-frontend (taste-skill) is installed at ~/.claude/skills/design-taste-frontend/ as a verbatim copy of github.com/Leonxlnx/taste-skill @ 717446e07a78d4e6d7918b1fde1a263378eebac9 (2026-10-09, MIT). The body was verified byte-identical line by line; the only addition is a provenance block, and the frontmatter still opens on line 1 because a line above --- would stop the skill loading at all. The repo holds scripts (skill.sh, scripts/*.mjs) but the skill folder holds only SKILL.md, so no script was copied and none was run; the installer's npx path was not used. LICENSE sits beside it. skills/felhom-web-design/SKILL.md (137 lines, check_skills.py PASS) is the override layer and names every conflict. skills/SOURCES.md records the provenance and the kept/overridden table.

Part A — the audit. documentation/audits/redesign-2026-10-10/AUDIT.md, measured against the live site: 12 patterns to retire, each naming the taste-skill rule it breaks, 7 to keep, dial reading 3/2/4 → 6/3/4, and 8 levers. The operator approved all 8 at STOP 1, chose to leave the indexed <title>/OG/Twitter strings alone, and chose the outdoor photograph.

Part B — „Ki áll mögötte". (Placement revised 2026-10-11: the full block lives on /kapcsolat + /en/contact, which are LIVE; the home page keeps a portrait, one line and a link in its closing call to action. See the last section.) Five sentences, first person, every claim traced in ki-all-mogotte.md together with what was left out and why. The operator's CV was read for one fact only; employers, address and phone are not on the page. Approved at STOP 2.

Part C — the preview. website/preview/index.html, noindex + Disallow: /preview/, not in the sitemap, linked from nowhere.

Part D — not done. The operator chose „not yet" at STOP 3. The preview stays up; NEXT.md holds the plan for the other pages.

Measurements (browser, on the deployed pages)

Old home New preview
Height, 1440 px 10 922 px 6 385 px (−42%)
Height, 390 px 19 913 px (23.6 screens) 10 145 px (12.0 screens, −49%)
Initial load, same conditions 13 requests, 308 KB 11 requests, 260 KB
Fully loaded 16 requests, ~540 KB 15 requests, ~545 KB
Third-party hosts 0 0
Em dashes in the page's own copy 18 0
Layout families 8 for 11 sections (why-grid ×3, apps-showcase ×2) 9 for 9, none repeated
JetBrains Mono fetched, 31 KB, for 13 characters not fetched
Horizontal overflow at 390 px none none (clientWidth == scrollWidth)

The weight claim, stated honestly. The first screen is 48 KB lighter. Fully scrolled the page is about the same: the 93 KB portrait is paid for by dropping the 49 KB decorative logo.png and the 31 KB mono font. It is a first-impression win, not a bandwidth win.

Shipped live (operator-approved at STOP 3)

  • The footer dash, on all 21 page files. It could never have been a one-page edit: site_gates.py gate 3 requires every page in a language set to carry an identical footer. Verified on all 18 live URLs: em=0 en=1 each.
  • R-930, the primary CTA. .cta-button → 1.2rem/700, which is ≥18.66 px at ≥700 weight, so WCAG counts it as large text and the floor drops to 3:1, which 4.01 clears without touching --blue (shared with the hub and controller UIs). Padding trimmed 32→26 px to protect the one-line rule. Verified in the browser on 11 pages at 390 px and 1440 px: every primary button one line, no page overflows.
  • site.css?v= → 12 on all 21 files. The pages sat at v=10 and the preview at v=11; leaving them split would have served returning visitors the old stylesheet.

Things found that were not the task, and what happened to them

  • R-930 (filed, then fixed on the operator's instruction): the primary CTA measured 4.01:1 against a 4.5:1 floor. Measured identical on the live page, so pre-existing and site-wide, not a regression of this redesign.
  • R-931 (filed, not fixed): felhom.eu serves no compression at all. curl with Accept-Encoding: gzip, br returns no Content-Encoding and the same Content-Length as a plain request, for both the stylesheet (94 310 bytes) and the HTML. It is an nginx setting in manifests/webpage.yaml, outside this task's scope. It is worth more than this entire redesign.
  • 300 em dashes remain in the other 19 pages' bodies (gyik 53, en/faq 53, adatkezeles 33, …). Enumerated per page in NEXT.md.
  • A .cta-button-secondary wraps to 2 lines at 390 px on the home page. That class was not changed; pre-existing, mobile only, noted not filed (the size rule).

Corrections made to this session's own work

  1. The audit claimed the numbered lists were the only users of JetBrains Mono. They were ten of thirteen; the 3/2/1 of the backup rule were the other three. Retiring the numbered lists alone would not have dropped the font. Corrected in AUDIT.md as R6b, and the preview moves the 3-2-1 figures to the UI font, which is what actually took the font off the page.
  2. Three new styles shipped below WCAG AA in the first pass (3.88 / 3.14 / 3.57). Found by the contrast check, fixed to --text-2, re-measured on the deployed file: 7.56 / 6.12 / 6.96.
  3. The contrast script itself reported a false failure of 1.17:1 on the limits callout, by treating the translucent --warn-dim as opaque. Compositing the whole ancestor stack gives the true 5.67:1, a pass. The three real failures in the same run were real. Recorded in PREFLIGHT.md: an instrument that can report a wrong number silently is not a measurement.
  4. The page builder first wrote LF and turned the nav/footer gate red for the preview — exactly the trap website/CHANGELOG.md's own 2026-10-10 morning entry records. It now writes BOM + CRLF and asserts both.

Gates, register, evidence

  • scripts/repo_gates.py --fast on DooPlex at 94ac6afb: all 19 gates OK. The two failures seen on the Windows workstation (instructions, script-tests) are environmental and pre-date this work: E:\git\CLAUDE.md is the deliberate Windows adaptation the gate wants identical, fcntl does not exist on Windows, relpath cannot cross C:→E:, and the cp1250 console kills a gate mid-verdict (the documented trap, which bit twice in this session and was worked around by printing escaped output).
  • site_gates.py green after every website commit. preview/index.html registered in NO_TWIN, with the reason in a comment: a preview URL cannot be a TWINS pair, because gate 3 wants its nav identical to index.html's (globe → / and /en/) while the twin check wants the globe pointing at the pair's own URLs.
  • Register: 127 → 129. Opened 2 (R-930, R-931), closed 0. register_shape_gate.py OK.
  • Evidence in documentation/audits/redesign-2026-10-10/: AUDIT.md, PREFLIGHT.md, ki-all-mogotte.md, NEXT.md, body.html, before/ (3 shots), after/ (4 shots), photo/.

Waiting on the operator

  1. Go or no-go on the home page. The preview is at https://felhom.eu/preview/.
  2. R-931, the compression setting — one nginx block, helps every page.
  3. R-929 blocks the apps page: the prose says 58, the page renders 59 cards, the catalog holds 60.

Added 2026-10-11 — the biography moved, and it is live

The operator looked at the preview and said the „Ki áll mögötte" section did not belong on the home page. He was right, and the reason is precise: it sat between the dashboard gallery and „Hogyan működik?", interrupting what it does → how you get it. Its closing sentence, „Ha írsz, én válaszolok", is a contact-page sentence.

  • /kapcsolat and /en/contact now carry the full block. These are live pages, so the photograph and the five sentences are public from that commit. Both halves of the twin moved together.
  • The home page preview keeps a compact trace: a 56×70 portrait, one line, a link. R-11 („nobody is behind it”) was a home-page finding, so removing every human trace would have re-opened it.
  • A dedicated /rolam page was rejected: five sentences cannot carry one, and filling it would have meant inventing biography.
  • .who* unscoped from .page-index, per 69035f4af5's lesson about shared patterns.
  • One layout bug found and fixed by looking at the deployed page: .who-mini was inline-flex inside a centred block and flowed beside the button instead of under it.
  • Re-measured after the move: preview 6 385 px at 1440 and 10 145 px at 390, 9 sections, 9 layout families. No horizontal overflow at 390 on /preview/, /kapcsolat or /en/contact; every image loads; site.css?v= → 14.