PRD: #275 · Blocks the "make lint required" issue.
EN
lint cannot become a check while three things are true at once:
nestjs's lint script is eslint --fix — it rewrites the working tree, so running it is a mutation, not a check. It is why 484 files sit permanently modified and why every commit needs manual path-intersection to avoid staging unrelated churn.
bunx prettier --check fails on 204 files at HEAD, so the tree has never been prettier-formatted.
eslint --fix and the standalone prettier config format differently, so the two disagree and running either dirties the other's work.
Acceptance criteria
Not in scope: making lint a required check (its own issue, immediately after this one).
TH
PRD: #275 · บล็อกอิชชู "ทำให้ lint เป็น required"
lint กลายเป็น check ไม่ได้ตราบใดที่สามข้อนี้จริงพร้อมกัน:
- script
lint ของ nestjs คือ eslint --fix — มัน เขียนทับ working tree ฉะนั้นการรันมันคือการแก้ไข ไม่ใช่การตรวจ · เป็นเหตุที่ไฟล์ 484 ไฟล์ค้างสถานะ modified ถาวร และเป็นเหตุที่ทุก commit ต้องตัดกับ path ด้วยมือเพื่อเลี่ยงการ stage ของที่ไม่เกี่ยว
bunx prettier --check ล้ม 204 ไฟล์ที่ HEAD ฉะนั้น tree ไม่เคยถูกฟอร์แมตด้วย prettier เลย
eslint --fix กับ prettier config ที่แยกอยู่ ฟอร์แมตต่างกัน ฉะนั้นทั้งสองขัดกันและการรันอันใดก็ทำให้งานของอีกอันเปื้อน
เกณฑ์การยอมรับ
ไม่อยู่ในขอบเขต: การทำให้ lint เป็น required check (อิชชูของตัวเอง ถัดจากอันนี้ทันที)
PRD: #275 · Blocks the "make lint required" issue.
EN
lintcannot become a check while three things are true at once:nestjs'slintscript iseslint --fix— it rewrites the working tree, so running it is a mutation, not a check. It is why 484 files sit permanently modified and why every commit needs manual path-intersection to avoid staging unrelated churn.bunx prettier --checkfails on 204 files at HEAD, so the tree has never been prettier-formatted.eslint --fixand the standalone prettier config format differently, so the two disagree and running either dirties the other's work.Acceptance criteria
lint(check, no writes) is split fromlint:fixin both workspaces, and the rootlintuses the checking form.no-base-to-stringerrors inmissing-column.tsand thepg-*.store.tsfiles are fixed as part of this, not left as a reason to keep the check off.bun run lintat the root exits zero on a clean checkout and leavesgit statusunchanged — asserted, because "it does not write" is the whole point.bun testgreen in both workspaces afterwards; a formatting pass must not change behaviour.Not in scope: making
linta required check (its own issue, immediately after this one).TH
PRD: #275 · บล็อกอิชชู "ทำให้ lint เป็น required"
lintกลายเป็น check ไม่ได้ตราบใดที่สามข้อนี้จริงพร้อมกัน:lintของnestjsคือeslint --fix— มัน เขียนทับ working tree ฉะนั้นการรันมันคือการแก้ไข ไม่ใช่การตรวจ · เป็นเหตุที่ไฟล์ 484 ไฟล์ค้างสถานะ modified ถาวร และเป็นเหตุที่ทุก commit ต้องตัดกับ path ด้วยมือเพื่อเลี่ยงการ stage ของที่ไม่เกี่ยวbunx prettier --checkล้ม 204 ไฟล์ที่ HEAD ฉะนั้น tree ไม่เคยถูกฟอร์แมตด้วย prettier เลยeslint --fixกับ prettier config ที่แยกอยู่ ฟอร์แมตต่างกัน ฉะนั้นทั้งสองขัดกันและการรันอันใดก็ทำให้งานของอีกอันเปื้อนเกณฑ์การยอมรับ
lint(check ไม่เขียน) ออกจากlint:fixในทั้งสอง workspace และlintที่ root ใช้รูปแบบที่ตรวจอย่างเดียวno-base-to-stringที่มีมาก่อนในmissing-column.tsและไฟล์pg-*.store.tsถูกแก้เป็นส่วนหนึ่งของงานนี้ ไม่ใช่ถูกทิ้งไว้เป็นเหตุผลให้ปิด check ต่อbun run lintที่ root คืนศูนย์บน checkout ที่สะอาดและทำให้git statusไม่เปลี่ยน — assert ไว้ เพราะ "มันไม่เขียนไฟล์" คือประเด็นทั้งหมดbun testผ่านทั้งสอง workspace หลังจากนั้น · การจัดฟอร์แมตต้องไม่เปลี่ยนพฤติกรรมไม่อยู่ในขอบเขต: การทำให้
lintเป็น required check (อิชชูของตัวเอง ถัดจากอันนี้ทันที)