Skip to content

[DONE] 정리 2단계를 PR 열넷으로 나눈 계획서 — 어느 셋을 같이 맡겨도 파일이 안 겹친다 - #19

Merged
patternflow-bot merged 2 commits into
devfrom
claude/patternflow-cleanup-step2-plan-1ga5kx
Oct 14, 2026
Merged

patternflow-bot merged 2 commits into
devfrom
claude/patternflow-cleanup-step2-plan-1ga5kx

Conversation

@patternflow-bot

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

Copy link
Copy Markdown

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

정리 2단계(드리프트 검사 일곱)를 정찰하고, 1단계 계획이 미룬 CHANGELOG 검사와 계획서에 단계가 없던 사람 글 잠금(§2.9)·글투 검사(§2.10)까지 PR 열넷으로 나눈 계획서를 썼다. 어느 두 PR 도 같은 파일을 고치지 않아, 머지하면 k1·k2·k8 을 바로 세 시트에 맡기고 k1 이 머지되면 나머지 검사를 셋씩 펼칠 수 있다.

좋아지는 것: 없음

체크리스트

  • docs/rfc-cleanup.md Step 2(§2.4) · §2.9 · §2.10 · §2.12 · §2.13 답 읽기
  • docs/rfc-cleanup-progress.md · 1단계 계획서(D2 · 질문 9) 읽기 — docs/voice.md 는 포크 dev 에 아직 없다([DONE] 영어는 README·조립 가이드 글투로, 한국어는 번역체를 피하는 기준으로 한 쪽에 적고, 쓰지 않는 말은 따로 목록으로 둔다 #18 작성 중)
  • 검사마다 두 쪽을 정찰하고 HEAD 에서 어긋남이 있는지 확인 (아래 「한 일」)
  • docs/investigations/2026-10-cleanup-step2-plan.md — 맨 위 표: k · 고칠 파일 · 먼저 머지될 k · §2.13 번호
  • 표를 스크립트로 읽어 두 줄에 같은 파일이 없는지 확인
  • docs/rfc-cleanup-progress.md 표의 2단계 줄 → planned + 계획서 링크
  • 링크 검사 · doc map (CSV 는 되돌림)
  • dev merge (그새 안 움직임 — Already up to date)

한 일

  • 계획서 docs/investigations/2026-10-cleanup-step2-plan.md (영어, 279줄, 1단계 계획과 같은 꼴). 구현은 하지 않았다.
  • PR 표 (자세한 파일은 계획서 맨 위 표)
    • k1 러너(web/scripts/drift.ts) · 공통 라이브러리(drift/_lib.ts) · web/package.json 의 이름 전부 · 첫 검사 check:features — 먼저
    • k2 check:links-absolute (doc-map.ts 에 --check absolute) · k8 check:human-lock (§2.9) — k1 을 기다리지 않아 k1 과 함께 시작
    • k3 BOM 셋(bom · bom-schematic) · k4 editions · k5 presets · k6 roadmap · k7 changelog · k10 .github/workflows/drift.yml — k1 뒤
    • k9 check:voice (k8 뒤) · k11 AGENTS.md (§2.10 블록 + 명령 줄, k9·k10 뒤) · k12 CI 를 말하는 문서 넷 (k10 뒤) · k13 2단계 닫기 (맨 끝) · k14 로드맵 어긋남 고침 (k6 의 첫 CI 가 찾을 때만)
    • §2.13 번호: k8 은 2·5, k9·k11 은 6, 나머지 —
    • 같이 고칠 자리 web/package.json 은 k1 만 고친다 — 이름 열둘을 미리 넣고 check:ci 끝에 check:drift 한 번. 뒤 검사는 web/scripts/drift/ 에 파일만 더하면 저절로 든다.
  • 정찰에서 나온 것
    1. web-ci.yml 은 web/** · hardware/case/** 에서만 돈다 — BOM·가이드·기능 폴더·번들·CHANGELOG 만 고친 PR 은 check:ci 를 안 거친다. 그래서 k10 이 모든 PR 에 도는 워크플로를 더한다.
    2. 절대 주소 118개(26개 파일, 태그 24개) 전부 풀린다. doc-map 이 이미 읽고 푼다 → k2 는 두 번째 읽개를 짜지 않는다. CI checkout 은 태그를 안 가져온다.
    3. BOM·가이드 표는 이름 글귀가 달라(「w/ switch」·「cap」) 이름 비교는 HEAD 에서 실패 — ref·수량·MPN 은 맞는다.
    4. 회로도 PDF 는 KiCad 획 글꼴이지만 pdftotext 가 U1 · SW1–4 · J1 · J3 · J4 · C11 을 읽는다 = BOM 아홉. §2.4 의 「경고만」 조항이 필요 없다.
    5. clock·midi 번들은 진열장에 없지만 try-out 이라 어긋남이 아니다. core 는 기능 폴더가 없는 게 맞다(타입 주석).
    6. check:presets 의 절반은 이미 check_presets.py 다(쌍 34 · 웹만 14 · 펌웨어만 1). 안 보이는 쪽은 「패널에 어떻게 닿나」 — 레지스트리 2 + Basics 팩 33(basics.json 의 presets).
    7. CHANGELOG 루트 세 절은 docs/releases/ 파일과 바이트까지 같다 → 이번 단계에 CHANGELOG.md 를 고치는 PR 은 없다.
    8. 로드맵 이슈 13 노드·14 번호는 전부 engmung/Patternflow 라 이 세션(포크만)에선 상태를 못 읽었다.
  • 창작자에게 물을 것 (계획서 끝, 1단계 계획의 11 다음 번호. 기본값 있음)
    12. done 인데 이슈가 열린 로드맵 노드 — 어긋남인가 · 13. 창작자가 잠긴 글을 직접 고치면 잠금이 빨갛게 — 우회 파일 없이 그냥 머지 · 14. check:voice 를 CI 에 넣나 — 기본 아니오 · 15. check_presets.py 와 check:presets 를 둘로 두나 — 기본 예

증거

$ python3 .github/scripts/check_links.py
All 665 relative links resolve

$ git fetch --tags && (cd web && npx tsx scripts/doc-map.ts)
1053 links from 209 files → docs/investigations/2026-10-doc-map.csv
0 do not resolve
$ git checkout docs/investigations/2026-10-doc-map.csv docs/investigations/2026-10-doc-parity.csv   # CSV 는 k13 만 커밋

$ python3 <계획서 표 읽기>      # 줄마다 `파일` 을 모아 두 줄에 든 파일을 찾는다
14 rows; files in two rows: none
(아직 없는 파일 16개는 전부 백틱 — 계획서의 링크는 ../rfc-cleanup.md 하나)

정찰에 쓴 명령과 결과:

$ pdftotext -layout hardware/pcb/schematic.pdf - | grep -o -E '\b(U|SW|J|C|R|D|Q|L|F)[0-9]+\b' | sort -u
C11 J1 J3 J4 SW1 SW2 SW3 SW4 U1
$ python3 firmware/toolchain/check_presets.py
presets in step: 34 twins, 14 web-only on purpose, 1 firmware-only on purpose
$ (루트 CHANGELOG 의 절과 docs/releases/vX.Y.Z.md 비교)
3.11.0 equal · 3.10.5 equal · 3.10.4 equal
$ ls firmware/patternflow/features/ firmware/bundles/ web/public/flash/bin/   # + features-data/editions-data 의 id, release.py·check_versions.py 의 EDITIONS

실행법

계획서만 있는 PR 이라 돌릴 것이 없다. 읽을 곳: docs/investigations/2026-10-cleanup-step2-plan.md 맨 위 「The PRs」 표. 1단계가 닫히면(§2.12 — C3) 총괄이 k1 · k2 · k8 을 빈 시트에 맡기고, k1 이 머지되면 「merges after」 가 채워진 줄을 셋씩 맡기면 된다.

가정

  • 「진행 기록의 앞 단계 줄」은 표의 2단계 줄로 읽었다 — 1단계 계획 PR([DONE] 정리 1단계를 세 갈래로 나눈 계획서 — 셋이 파일 안 겹치게 바로 시작할 수 있다 #12)이 1단계 줄만 고친 것처럼. 「Where it stands」 줄과 1단계 줄은 C3 몫이라 두었다(1단계는 아직 안 닫혔다).
  • k 는 1·2·3 에서 그치지 않고 14까지다. 일곱 검사 + 더해진 셋 + .github/·AGENTS.md 따로 + 문서 + 닫기 + 조건부 고침을 「PR 하나 300줄 · 관심사 하나」(§2.1(5)) 안에 넣으면 셋으로는 안 된다. 「셋이 같이 해도」는 「어느 셋을 같이 맡겨도 파일이 안 겹친다」로 읽었고, 열네 줄 모두 서로 파일이 안 겹친다.
  • CHANGELOG.md 「따로 PR」 은 필요한 일이 없어 PR 이 없다 — 루트 세 절이 파일과 같고, 각 PR 의 변경 줄은 본문 ## Changelog 로 간다.
  • §2.9 잠금 · §2.10 글투 검사와 AGENTS.md 에 §2.10 블록 덧붙이기는 RFC 에 단계가 없어 2단계에 넣었다(작업 글대로). 1단계 계획 D2(질문 9)의 CHANGELOG 검사도 「2단계 검사」라 해서 k7 로 넣었다.
  • check:voice 는 check:ci 에 넣지 않았다 — §2.10 이 「PR 을 열기 전에」 돌리고 사람이 읽는다고 해서. 질문 14 로 물었다.
  • 검사가 그 자리에서 못 읽는 쪽(태그 없음 · gh 로그인 없음 · pdftotext 없음)은 건너뛰고 말만 한다. PF_DRIFT_STRICT=1(k10 워크플로)에서만 실패 — 책상에서 check:ci 돌리는 사람을 태그 하나로 막지 않으려고.
  • k6 일꾼은 engmung/Patternflow 이슈를 못 읽는다(세션이 포크만) → 가짜 gh 로 증명하고, 첫 실제 실행은 k10 워크플로. 그래서 k6 은 k10 뒤.
  • k9 · k11 이 기다리는 1단계 글투 PR 은 표의 「merges after」 칸에 번호([DONE] 영어는 README·조립 가이드 글투로, 한국어는 번역체를 피하는 기준으로 한 쪽에 적고, 쓰지 않는 말은 따로 목록으로 둔다 #18)로 쓰지 않고 표 아래 문장에 파일 이름으로 썼다 — hub 가 그 칸의 숫자를 k 로 읽을까 봐.
  • docs/voice.md 가 포크 dev 에 없어 RFC §2.10 규칙대로 썼다: 여는 말·맺는 말 없음, 금지어 없음(grep 확인), 절을 대시로 잇지 않음, 강조 굵은 글씨 없음. 창작자는 대명사 대신 「the maintainer」.
  • 계획서는 영어로 썼다 — docs/investigations/ 의 다른 기록이 영어다. 이 PR 은 계획서 279줄 + 진행 기록 1줄로 300줄 안.

Changelog

Docs

  • Cleanup step 2 is planned. docs/investigations/2026-10-cleanup-step2-plan.md cuts the seven drift checks, the changelog check, the human-text lock and the voice lint into fourteen PRs that share no file, and records what the tree already holds for each: the schematic's text layer carries every designator, and check_presets.py already covers half of check:presets.

🤖 Generated with Claude Code

https://claude.ai/code/session_01H8GdHV61piwLX548rrvSr9

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01H8GdHV61piwLX548rrvSr9
The drift checks, the changelog check, the human-text lock and the voice
lint, each with the files it may edit and what has to merge first.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01H8GdHV61piwLX548rrvSr9
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