Skip to content

[DONE] Pattern Lab 에 처음 온 사람이 막히는 곳 16개를 재서 바퀴 후보 표 맨 위에 넣는다 - #188

Merged
patternflow-bot merged 3 commits into
devfrom
claude/dev-pf-round65-hgg37j
Oct 23, 2026
Merged

patternflow-bot merged 3 commits into
devfrom
claude/dev-pf-round65-hgg37j

Conversation

@patternflow-bot

@patternflow-bot patternflow-bot commented Oct 23, 2026 •

Copy link
Copy Markdown

dev / https://claude.ai/code/session_01H2otdh71pWb8D8BchWS3hu

처음 온 사람이 Pattern Lab 에서 레이어를 더하고 노브를 돌려 To hardware 로 보내기까지를 폰 390 터치와 데스크톱 1440 으로 따라가 쟀고, 막히는 곳 16개를 바퀴 후보 표 맨 위에 새로 넣었어요. 머지하면 다음 바퀴부터 폰 탭 줄을 누르면 패널이 닫히는 일, 새 코드 레이어가 그림을 덮고 노브가 안 듣는 일 같은 Lab 줄을 차례로 고쳐요.

좋아지는 것: 없음

할 일

한 일

incoming/ROUND.md 의 「후보」 절과 「창작자가 열어야 하는 것」 절만 고쳤어요.

「후보」 머리 줄은 10월 23일 dev(1b9a04a)로 바꾸고 바퀴 66 부터 쓴다고 적었어요. 124위가 Pattern Lab 과 Lab 에서 보드로 가는 길이에요. 새 줄 16개는 폰 탭 줄(1위), 「+ Code」 시작 코드(2위), Panels ▾(3위), To hardware 의 번역 안 된 레이어와 붙여넣기(46위, 12위), C++ 헤더 컴파일(7위), 레이어 하나 내보내기(8위), const draw(9위), @matrix 고쳐 치기(11위), 텍스트 효과 빠르기(14위), Code 패널 붙여넣기 글(15위), 노브 화살표 키(16위), 폰 단추 크기(17위), 「Add firmware header」 의 옛 단추 이름(21위)이에요. 지난 표의 Lab 줄 여덟(픽셀 판 __mkDisplay, 창 끌어 닫힘, Pixel 2×, Pixel ±, Share Esc, 노브 범위 바닥값, SPDX 두 줄, 죽은 CSS)은 10, 13, 1820, 2224위로 끼웠어요. 나머지 열여섯 줄은 25~40위에 지난 순서대로 두었어요.

남은 24줄은 줄 번호를 오늘 것으로 고쳤어요. 내용이 바뀐 줄은 셋이에요. 죽은 CSS 줄(24위)은 #183 이 셋을 걷어 13개 169줄이 되었고, 노브 범위 바닥값 줄(22위)은 #187 의 TextPanel.tsx:80 과 PatternCard.tsx:378, :394 가 더해져 여덟 곳이 되었고, 픽셀 판 줄(10위)은 #159 가 더한 코드 레이어 시험이 정수 좌표만 그린다고 고쳤어요. 「창작자가 열어야 하는 것」 은 npm audit 줄을 오늘 값으로 다시 쟀고(14건, @google/genai 빠짐, high 에 DOMPurify 가 새로 듦), 나머지는 수와 줄 번호만 고쳤어요. 프리셋 문서 줄엔 firmware/CUSTOM_PATTERNS.md 의 같은 옛 이름을 더했어요.

증거

서버 둘을 같이 띄웠어요. web/ 에서 npm run build 는 exit 0 으로 끝났고, 그 빌드를 npx next start -p 3100 으로, To hardware 가 보이는 개발 판을 npx next dev -p 3200 으로 띄웠어요(buildsConfigured() 가 development 에선 참이에요). 스크래치에 playwright-core@1.56.1, axe-core@4.10.3 을 깔고 /opt/pw-browsers/chromium 으로 쟀어요. 폰은 390×844, DPR 2, hasTouch, isMobile 이고, 데스크톱은 1440×900 이에요. 이 컨테이너는 jsdelivr 가 막혀 Code 패널의 Monaco 는 「Loading...」 에 머물러요(「창작자가 열어야 하는 것」 의 Monaco 줄).

1위의 「⌄ 4」 메뉴는 따로 한 번 더 쟀어요(3100, 390 터치):

{"strips":[{"w":93.296875,"sw":93},{"w":333.234375,"sw":736}],"chev":{"cls":"dv-tabs-overflow-dropdown-root","x":342.234375,"y":421,"w":38.765625,"h":34,"text":"4"}}
{"r":[236.359375,438,135.640625,145],"items":"KnobsColor RampGraphic ExportDirector","hitInside":false,"hit":"dv-default-tab-action","zs":[],"wrapZ":"auto"}

메뉴는 DOM 에 있지만 그 자리를 찍으면 뒤 탭의 × 가 잡히고, 틀의 z-index 는 auto 예요.

미리보기 픽셀 비교(2위, 16위)는 requestAnimationFrame 을 감싸 Lab 시계를 세우고 128×64 합성 캔버스를 두 번 읽어 다른 칸을 셌어요. 아무것도 안 건드리면 0개예요. 내보내기 줄(6~9위, 11위)은 lib/lab 모듈을 부르는 작은 vitest 파일을 스크래치에 두고 jsdom 과 레포의 test/setup.ts 로 돌렸어요. 7위의 63f 와 NAME = "AC\"; 는 g++ 로 뼈대를 컴파일해 오류 글을 받았어요. 레포의 Lab 시험은 그대로 다 지나요(npx vitest run src/lib/lab src/app/pattern-lab, 355개).

새 줄의 원인 줄은 코드에서 다시 읽어 맞췄어요. 몇 개만 옮겨요.

lib/lab/hExport.ts:46   function fmtFloat(value: number): string {
lib/lab/hExport.ts:47     if (Number.isInteger(value)) return `${value}.0f`;
lib/lab/hExport.ts:48     return `${Math.round(value * 100000) / 100000}f`;
lib/lab/flatten.ts:180    if (visible.length !== 1) return true;
lib/lab/flatten.ts:181    return visible[0].type !== "code" || visible[0].role === "mask";
app/pattern-lab/panels/KnobsPanel.tsx:286   step="0.001"
app/pattern-lab/PatternLabClient.tsx:318    if (existing) {
app/pattern-lab/PatternLabClient.tsx:319      api.removePanel(existing);

npm audit 은 package.json 과 잠금 파일만 스크래치에 복사해 쟀어요.

before {"info":0,"low":0,"moderate":8,"high":4,"critical":2,"total":14}
after  {"info":0,"low":1,"moderate":5,"high":0,"critical":3,"total":9}
package.json same · 잠금 파일 +219 / −634 줄

글 검사:

$ npm run check:voice -- ../incoming/ROUND.md
read: 225 lines in 1 file
check:voice: nothing found

$ npm run check:human-lock
this diff touches 0 locked files
check:human-lock: no locked words changed

화면을 바꾸지 않아서 사진은 없어요. 표만 고쳐서 lint, typecheck, check:ci 는 돌리지 않았어요(후보 채우기 바퀴의 증거는 잰 명령과 출력이에요).

실행법

incoming/ROUND.md 의 「후보」 표를 읽어요. 줄마다 재현 순서와 원인 파일:줄, 고칠 곳이 있어요. 1위를 손으로 보려면 web/ 에서 npm run build && npx next start -p 3100 을 띄우고, 폰 흉내(390×844, 터치)로 /pattern-lab 을 열어 아래 탭 줄의 「⌄ 4」 를 눌러요.

가정

  • 창작자 지시 5 는 「위가 끝나면 후보 표를 Pattern Lab 위주로 다시 채워요(후보 채우기 절대로)」 라서, 이 바퀴는 후보 채우기 절차를 따르고 ## 바퀴 줄에 지시 5 와 후보 채우기를 같이 적었어요. 후보 채우기 바퀴가 고치는 곳은 두 절뿐이라, 「창작자 지시」 표 자체는 건드리지 않았어요.
  • 「후보 채우기」 1번은 남은 줄을 표에 두라고 해요. 남은 줄이 24개라 2540줄 안에 새 줄은 16개만 들어가서, Lab 줄을 위로 올리고 지난 표의 Lab 밖 줄 열여섯은 2540위로 내렸어요. 그 줄을 빼지는 않았어요.
  • 다시 재지 않은 값(쪽 속도, 대비, 타입 검사 시간처럼)은 10월 21일 값이고, 그 값을 내는 코드가 그대로인 것만 확인했어요. 34위 타입 검사 줄의 「3,715개 파일」 은 오늘 --listFilesOnly 로 3,699개라 그날 잰 수예요.
  • 1위의 고침은 dockview 테마 변수와 CSS 한 규칙이라 node_modules 를 건드리지 않아요. 폰에서 × 를 숨기면 패널은 Panels ▾ 로만 닫혀요. 3위가 Panels ▾ 를 고치니 둘을 이어서 하는 게 좋아요.
  • 2위는 시작 코드를 바꾸는 일이라 Make 가이드가 시작 코드를 말하는지 그 바퀴가 같이 봐요.
  • 표에 자리가 없어 못 넣은 것, 다음 후보 채우기가 볼 것:
    • 쌓아 내보낼 때 램프 쓰기를 display.setValue( 로만 찾아서(lib/pattern/ramp.ts:155~:157), draw(d) 처럼 이름을 바꾼 레이어는 흰색으로 나와요(파랑→주황 램프 x=3 에서 미리보기 255,136,0, 내보낸 쪽 255,255,255).
    • 미리보기는 노브 버튼을 고른 레이어에만 주고(lib/lab/engine.ts:264:268) 내보낸 JS(lib/lab/flatten.ts:363:371)와 헤더(lib/lab/hExport.ts:379)는 모든 코드 레이어에 줘요.
    • useDialog(lib/hooks/useDialog.ts:34~:41)가 Tab 을 창 안에 두지 않아서, To hardware 에서 Tab 네 번 뒤 초점이 뒤의 Lab 으로 가요. components/community/SendModuleModal.tsx:52 는 이름도 useDialog 도 없어 axe 가 aria-dialog-name 으로 잡아요.
    • Lab dock 탭의 키보드 초점은 1.34:1 의 1px 선이라 안 보여요(app/pattern-lab/lab-dock.css:21).
    • axe: 「Pattern Lab」 제목 #8c8577 이 3.31:1(app/pattern-lab/PatternLab.module.css:18:23), Director 의 이름 없는 고르개와 칸(panels/director/DirectorBars.tsx:77:80, :137~:145), 초점이 안 가는 굴림 칸(panels/DirectorPanel.tsx:151).
    • Lab 머리줄에 Make 가이드로 가는 링크가 없어요(app/pattern-lab/PatternLabClient.tsx:515~:519).
    • Color Ramp 정지점을 키보드로 옮기지 못해요(panels/RampPanel.tsx:322~:327).
    • 「Apply to my Patternflow」 가 여는 로그인 창은 왜 로그인하는지 말하지 않고, 세션 확인이 503 이어도 「Sign-in failed.」 만 보여요(components/community/SendModuleModal.tsx:160, :187~:188).
    • 가로 폰 844×390 에선 Preview 가 127px 로 잘리고, 처음부터 가로로 열면 데스크톱 배치라 Layers 목록이 0px 예요(panels/registry.tsx:107).
    • Director 쇼의 첫 큐 이름이 헤더 NAME(24자로 자르고 " 를 바꿈)과 달라서, 28자 이름이면 기기 쇼가 패턴을 못 찾아요(lib/lab/hExport.ts:236, lib/lab/director/publish.ts:19).
    • 공유한 쌓음을 Lab 에서 다시 열면 Director 쇼와 색 방식이 빠져요(lib/lab/store/project.ts:133~:170).
    • 레이어 하나로 올릴 때 램프 정지점 alpha 를 먼저 곱한 뒤 섞어서 미리보기와 달라요(app/pattern-lab/PatternLabClient.tsx:68~:76, 가장 큰 차 62).
    • 쌓은 패턴에서 레이어 하나가 던지면 합성 전체가 검게 돼요(lib/lab/flatten.ts:363~:379).
    • Recent 로 되살린 레이어에서 픽셀 되돌리기를 하면 다른 판의 획이 써져요(lib/lab/pixelHistory.ts:18).
    • Lab 머리줄 링크 둘이 / 와 /community 를 미리 받아 첫 로드에 스크립트 565 KB 가 더 와요. 첫 프레임은 그대로였어요(PatternLabClient.tsx:341, :516).
    • 터치로 레이어 순서를 끄는 일은 흉내에서 되지 않았어요. 브라우저의 끌어 놓기만 써서 실제 폰으로 봐야 해요.

경험

언제: 바퀴에서 빌드한 사이트(next start)와 To hardware 가 보이는 next dev 를 둘 다 재야 할 때
교훈: npm run build 가 끝나기를 기다리지 말고 next dev -p 3200 을 같이 띄운다. Next 16 은 개발 산출을 .next/dev 에 따로 두어 둘이 부딪히지 않는다
근거: #188 에서 빌드를 돌리는 동안 dev 를 띄워 조사 일꾼 넷이 3100(start)과 3200(dev)을 나눠 썼고, dev 가 다시 쓴 web/AGENTS.md 는 커밋 전에 git checkout 으로 되돌렸다

바퀴

바퀴 65 · 지시 5 「Pattern Lab UI · UX 다듬기」 · 후보 채우기

다음 바퀴

  • 1위 「폰에서 Lab 아래 탭 줄을 눌러도 다른 패널이 닫히지 않고, 「⌄ 4」 메뉴가 화면 위에 열린다」: lab-dock.css 에 테마 변수 하나와 (hover: none) 규칙 하나예요.
  • 2위 「Lab 에서 「+ Code」 로 넣은 새 레이어가 노브를 읽어서, 넣자마자 노브를 돌리면 그림이 바뀐다」: 지금은 새 레이어가 8,192픽셀 가운데 8,079개를 덮고 노브 넷이 0픽셀을 바꿔요.
  • 3위 「Panels ▾ 에서 뒤에 숨은 패널을 누르면 닫지 않고 앞으로 꺼낸다」: 1위와 이어서 하면 폰에서 패널을 잃지 않아요.

https://claude.ai/code/session_01H2otdh71pWb8D8BchWS3hu


Generated by Claude Code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01H2otdh71pWb8D8BchWS3hu
@patternflow-bot patternflow-bot changed the title [WIP] pf 65바퀴 — 고를 일을 찾는 중 [WIP] Pattern Lab 에 처음 온 사람이 막히는 곳을 재서 바퀴 후보 표를 Lab 위주로 다시 채운다 Oct 23, 2026
창작자 지시 5: 처음 온 사람이 레이어 더하기, 노브, To hardware 까지
막히는 곳을 390 터치와 1440 으로 재서 새 줄 16개를 위에 두고,
10월 21일 표에서 남은 24줄은 오늘 줄 번호로 고쳐 아래에 둔다.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01H2otdh71pWb8D8BchWS3hu
@patternflow-bot patternflow-bot changed the title [WIP] Pattern Lab 에 처음 온 사람이 막히는 곳을 재서 바퀴 후보 표를 Lab 위주로 다시 채운다 [WIP] Pattern Lab 에 처음 온 사람이 막히는 곳 16개를 재서 바퀴 후보 표 맨 위에 넣는다 Oct 23, 2026
@patternflow-bot patternflow-bot changed the title [WIP] Pattern Lab 에 처음 온 사람이 막히는 곳 16개를 재서 바퀴 후보 표 맨 위에 넣는다 [DONE] Pattern Lab 에 처음 온 사람이 막히는 곳 16개를 재서 바퀴 후보 표 맨 위에 넣는다 Oct 23, 2026
@patternflow-bot
patternflow-bot marked this pull request as ready for review October 23, 2026 23:16
@patternflow-bot
patternflow-bot merged commit e4d048f into dev Oct 23, 2026
2 checks passed
@patternflow-bot
patternflow-bot deleted the claude/dev-pf-round65-hgg37j branch October 23, 2026 23:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants