Skip to content

[DONE] 정리 3단계 PR 3 — 사이트 lint 경고가 하나라도 새로 생기면 CI 가 빨개진다 - #43

Merged
patternflow-bot merged 2 commits into
devfrom
claude/patternflow-cleanup-3-pr3-rzhdjl
Oct 15, 2026
Merged

patternflow-bot merged 2 commits into
devfrom
claude/patternflow-cleanup-3-pr3-rzhdjl

Conversation

@patternflow-bot

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

Copy link
Copy Markdown

ops / https://claude.ai/code/session_01TWEPEw9nbEvdrR6CV4xPfZ

정리 3단계 계획서 표의 PR 3 이다. 사이트 CI 의 Lint 단계는 오류만 막고 경고는 통과시켰는데, 이제 경고 하나에도 실패한다. PR 1·2 로 lint 경고가 열둘에서 0 이 됐고, 머지하면 경고를 새로 남기는 PR 은 CI 가 빨개져 0 이 그대로 남는다. 사이트 화면은 그대로다.

좋아지는 것: 없음

할 일

  • 계획서 표의 PR 3 행(k3), docs/rfc-cleanup.md §2.1·§2.5·§2.11, docs/voice.md 를 읽는다
  • 표가 PR 3 에 적은 파일 .github/workflows/web-ci.yml 하나만 고친다 (+3 −2)
  • dev(48bf249)에서 npm run lint -- --max-warnings=0 이 exit 0 인지, 버리는 변수 하나로 exit 1 이 되는지 본다
  • typecheck, check:ci, 잠금, 글투 검사, doc-map 을 돌린다(CSV 는 되돌린다)
  • 이 PR 의 CI(Web CI, Drift checks)가 cb0d749 에서 둘 다 success
  • dev 를 merge 한다(48bf249 그대로라 이미 최신)

한 일

  • .github/workflows/web-ci.yml: Lint 단계가 npm run lint -- --max-warnings=0 을 돈다. npm 이 -- 뒤를 넘겨 eslint --max-warnings=0 이 된다. 그 위 주석의 「warnings still pass」를 경고도 오류처럼 실패한다는 말로 바꿨다.
  • eslint.config.mjs 와 규칙은 건드리지 않았다. Typecheck·Build·Smoke suites 단계도 그대로다.

증거

GitHub, 이 PR 의 cb0d749: 「Web CI / build」(job 116228196543)와 「Drift checks / check」(job 116228196179) 둘 다 success. build 로그의 Lint 단계는 Run npm run lint -- --max-warnings=0 다음 > eslint --max-warnings=0 만 찍고 아무 경고 없이 끝난다.

로컬, web/, npm ci 뒤:

$ npm run lint -- --max-warnings=0            # 48bf249 위
> eslint --max-warnings=0
exit: 0

# src/lib/campaignRoutes.ts 끝에 const throwawayUnused = 1; 을 붙이고
$ npm run lint                                # 예전 문턱
  94:7  warning  'throwawayUnused' is assigned a value but never used  @typescript-eslint/no-unused-vars
✖ 1 problem (0 errors, 1 warning)
exit: 0
$ npm run lint -- --max-warnings=0            # 새 문턱
  94:7  warning  'throwawayUnused' is assigned a value but never used  @typescript-eslint/no-unused-vars
✖ 1 problem (0 errors, 1 warning)
ESLint found too many warnings (maximum: 0).
exit: 1
# git checkout 으로 되돌렸다

$ npm run typecheck                           # 출력 없음, exit 0
$ npm run check:ci                            # exit 0
 Test Files  35 passed (35)                   # check:panels(vitest run) 가 이 안에 있다
      Tests  478 passed (478)
pattern-sandbox.html is up to date            # check:sandbox-sync
All module cache checks passed.               # check:modcache
passed   bom
passed   bom-schematic
passed   changelog
passed   editions
passed   features
passed   links-absolute
passed   presets
skipped  roadmap                              # 이 세션은 원래 레포를 못 읽는다. CI 는 strict 로 돈다

$ npm run check:human-lock
this diff touches 0 locked files
check:human-lock: no locked words changed
$ npm run check:voice
read: 3 added lines in 1 file
check:voice: nothing found

$ git fetch --tags && npm run doc-map
1074 links from 215 files → docs/investigations/2026-10-doc-map.csv
0 do not resolve
1366 Korean/English pairs → docs/investigations/2026-10-doc-parity.csv
7 en-short, 18 ko-short, 1 missing-ko, 1340 ok

doc-map 이 커밋된 CSV 와 다르게 쓴 줄은 둘이고 둘 다 docs/investigations/2026-10-panel-geometry.md 에서 나가는 링크다. dev 에 이미 들어간 5단계 PR 1(#40) 몫이라 이 PR 의 줄은 없다. 두 CSV 는 git checkout 으로 되돌렸다. firmware/ 와 web/src/ 는 안 건드려 build.sh all 은 해당이 없다.

실행법

cd web && npm ci
npm run lint -- --max-warnings=0     # 지금은 exit 0
echo 'const throwawayUnused = 1;' >> src/lib/campaignRoutes.ts
npm run lint -- --max-warnings=0     # exit 1
git checkout -- src/lib/campaignRoutes.ts

가정

Changelog

Web

  • Web CI fails on a lint warning. The Lint step runs npm run lint -- --max-warnings=0, so the site stays at the zero warnings it reached in step 3 of the cleanup.

Upstream

  • What: Run the Web CI lint step as npm run lint -- --max-warnings=0, with its comment rewritten to match, so a new eslint warning fails the job the way an error does. Lint is already at zero warnings on the base.
  • Checks: npm run lint -- --max-warnings=0 exits 0 at HEAD and 1 with a throwaway unused variable; npm run typecheck, npm run check:ci (includes check:panels), npm run check:human-lock, npm run check:voice pass.
  • Docs map: none

🤖 Generated with Claude Code

https://claude.ai/code/session_01TWEPEw9nbEvdrR6CV4xPfZ

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TWEPEw9nbEvdrR6CV4xPfZ
Step 3 of the cleanup took lint from twelve warnings to none, and the old
gate let a new one through.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TWEPEw9nbEvdrR6CV4xPfZ
@patternflow-bot patternflow-bot changed the title [WIP] 정리 3단계 PR 3 [WIP] 정리 3단계 PR 3 — 사이트 lint 경고가 하나라도 새로 생기면 CI 가 빨개진다 Oct 15, 2026
@patternflow-bot patternflow-bot changed the title [WIP] 정리 3단계 PR 3 — 사이트 lint 경고가 하나라도 새로 생기면 CI 가 빨개진다 [DONE] 정리 3단계 PR 3 — 사이트 lint 경고가 하나라도 새로 생기면 CI 가 빨개진다 Oct 15, 2026
@patternflow-bot
patternflow-bot marked this pull request as ready for review October 15, 2026 03:25
@patternflow-bot
patternflow-bot merged commit ef4864a into dev Oct 15, 2026
2 checks passed
@patternflow-bot
patternflow-bot deleted the claude/patternflow-cleanup-3-pr3-rzhdjl branch October 15, 2026 05:32
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