knowledge(design): product-surface vs brand-surface rules, UI hardening against real content, anti-slop craft-floor rows - #232
Merged
Conversation
…ng against real content, anti-slop craft-floor rows Source: pbakaus/impeccable skill references at 114ea1d3 (operate.md, craft-floor.md, harden.md), plus W3C text-size, W3C Pointer Events, MDN and WCAG 1.4.4 for the hardening page. Two new frontend/design pages, +10 rows on anti-slop-visual-design, responsive-layout fluid-type row scoped, back-links on async-ui-states, index rows, log entries, ingest report with the two-reviewer round. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
knowledge(design): product-surface vs brand-surface rules, UI hardening against real content, anti-slop craft-floor rows
Source: the Impeccable design skill (github.com/pbakaus/impeccable), read at commit
114ea1d3838fca73b253af45f873b9c4f5f213c8 (2026-09-29). Origin: the user asked whether
hgko-dev.tistory.com/551 (an Impeccable install guide) should steer design work. The
guide itself is stale (
/teach-impeccable,.impeccable.mdand thedist/claude-codepath no longer exist) and carries no design knowledge; the skill's reference files do.
This PR ingests the three areas where the wiki and the hallmark skill had no coverage.
Verified best-practice
frontend-design-product-ui-vs-brand-surface: Persuade / Operate / Read /Experience modes chosen from the requested surface; on Operate surfaces one tuned
sans, fixed rem scale (1.125–1.2), Restrained color floor with a second neutral,
full state vocabulary, skeleton loading, structural responsiveness, 150–250 ms
state motion and no page-load sequence, standard affordances permitted, overlays
escape overflow ancestors, modal only for interruption or protected focus.
Verified by reading
skill/reference/operate.mdandskill/SKILL.src.mdat thepinned SHA; cross-checked against the Anthropic frontend-design post the anti-slop
page already cites.
confidence: unverified— the sources are a third-party skillfile and a blog post, and no production use of this wiki's own is described; the
page says what upgrades it.
frontend-design-ui-hardening-against-real-content: extreme-input test set,translation-expansion budget by source length, truncate / clamp / wrap with
min-width: 0, logical properties + RTL glyph flip,Intlformatting andIntl.PluralRules, interrupted-gesture handling (touch-action,pointerIdpinning, cancel paths), error copy with recovery, pending-state submit guard,
virtualization. Verified live: W3C article-text-size (IBM table ≤10 chars
200–300% … >70 chars 130%; Korean 0.8×), W3C Pointer Events (
pointercancelMUST fire on stream suppression; capture implicitly released), MDN logical
properties,
Intl/Intl.PluralRules,overflow-wrap(onlyanywherecounts toward min-content),
hyphens,-webkit-line-clamp,touch-action(pointercancel on browser gesture take-over),
titleaccessibility concerns,WCAG SC 1.4.4 — all HTTP 200.
confidence: verified.frontend-design-anti-slop-visual-design+2 directive rows (theme browser-default surfaces from the palette; shadows carry
offset + soft blur), +2 edge cases (route task UIs and hostile content to the new
pages), +6 Instead-of rows (eyebrow, decorative section numbers, geometric
occlusion mask, mono as costume, glyph icons, image hover animation). Verified by
reading
skill/reference/craft-floor.mdat the pinned SHA. Body 85 → 96 lines.Gap evidence:
grep -rli dashboard wiki/frontend→ 0 files; hallmark v1.1.0 has 3"product UI" mentions and 0
pointercancel/ RTL rules; the wiki's only Impeccablecitation was README-level (log.md 2026-08-21) because the skill's paths churn — every
new citation here is a commit-pinned permalink.
Existing-layer check
Pages read: frontend-design-anti-slop-visual-design, frontend-design-responsive-layout, frontend-data-fetching-async-ui-states, frontend-design-design-canvas-workflow, frontend-accessibility-interactive-elements
wiki_search(dev-loop-wiki MCP) was down this session (CONNECTION_CLOSED); dedupewas done by reading the design category index and grepping the frontend domain for
each candidate's trigger terms (
dashboard,product UI,::selection,pointercancel,inline-start,RTL,i18n,empty state,skeleton).Its motion row ("spend the motion budget on one page-load") conflicts with the
Operate rule; resolved as a condition-dependent edge-case row that routes task UIs
to the new page, not as an overwrite.
min-width: 0/ CJK wrapping / iOS16px; the hardening page links to it for those rows instead of repeating them.
page's edge case defers to it. Back-links added on both.
wiki-local/) exists in this repo.Open-PR check
Open PRs #223, #225–#231 (listed 2026-09-29 with
gh pr list --state open) areknowledge-flush batches touching backend, infrastructure, testing, mobile and
platforms pages; none touch
wiki/frontend/design,wiki/frontend/index.mdor thethree source files. Two concurrent local sessions (dev-loop-doliolid-70, -f8) had
queued the identical ingest; both confirmed zero writes and stood down before this
branch was edited.
Routing decision
wiki/(general knowledge, no repo-specific files named).about how a surface is styled and verified; the hardening page was considered for
formsandaccessibilityand rejected because its trigger is content shape andlocale, not a form lifecycle or an assistive-technology contract.
frontend-design-product-ui-vs-brand-surface,frontend-design-ui-hardening-against-real-content.Verification
node scripts/wiki-lint-prohibitions.js→ directives 79 / compliant 79 /violations 0 (unchanged from the pre-edit baseline; rows written positively, so
tests/wiki-lint-prohibitions.bats:25keeps its pin).PATH=/opt/homebrew/bin:$PATH bats tests/wiki-structure-checks.bats tests/wiki-index.bats tests/wiki-lint-prohibitions.bats tests/wiki-contradiction.bats tests/wiki-index-freshness.bats tests/wiki-lint-score.bats tests/wiki-agent-gate.bats→1..136, 136 ok, 0 not ok.[page-id]links andrelated:ids in the three touched pages all resolve(grep
^id:per id).usually,consider,might,generally,as appropriate,often,should) in the two new pages.Independent review (before commit)
Two fresh-context reviewers (
feature-dev:code-reviewer, one general brief and oneadversarial brief; read-only, no Bash) on the 7-file diff. Findings applied:
keeps its sources in frontmatter → removed; the task-UI edge case named a
"fluid-type" row this page does not have and missed the default-font-rejection and
extreme-contrast rows → rewritten to name the exact rows and widened to Read /
Experience surfaces (a docs site previously had no route to the Read guidance).
clamp()row stated fluid type unconditionally → scoped tobrand/content surfaces with the app-UI alternative and a
related:link.field-testedover-claimed (no production contextdescribed) →
unverifiedwith the upgrade condition in the page; trigger linesnow list mode choice, Read/Experience surfaces, overlay clipping, modal-first
(index/trigger drift); 65–75ch attributed to operate.md in the source line.
min-width: 0rationale was wrong foroverflow-wrap: anywhere(only
break-wordleaves min-content unchanged) → corrected with the MDN quote;titletooltip replaced by hover+focus tooltip (MDN accessibility concerns);touch-action: noneadded to the drag row (MDN: browser firespointercancelwhen it takes a gesture); iOS 16px row now defers to responsive-layout instead of
restating an unsourced mechanism; WCAG 1.4.4 source added; IBM 51–70 row
anomaly noted as published.
their confidence bar; the page's one case is "data is present but hostile" and it
routes empty/loading/error out to async-ui-states).
After the fixes: the same seven bats wiki suites re-run →
1..136, 136 ok, 0 not ok;prohibitions still directives 79 / violations 0; all inline links resolve.
🤖 Generated with Claude Code