TRENDSHIFT #12 · 2026-06-08

brooks-lint 딥다이브
— 고전 공학서 12권으로 AI 코드리뷰를 길들이다

brooks-lint는 《맨먼스 미신》·《리팩터링》·《클린 아키텍처》 같은 고전 소프트웨어 공학서 12권의 지혜를 6가지 "부패 위험(Decay Risk)" 진단 체계로 압축해, AI 코드리뷰가 매번 책 인용 · 심각도 라벨 · 구체적 처방이 붙은 일관된 리포트를 내놓도록 강제하는 Claude Code/Codex/Gemini 플러그인입니다. 놀라운 점: 실행 코드가 거의 없고, 제품의 본체가 전부 마크다운 문서입니다. (hyhmrright/brooks-lint · v1.3.0 · MIT · JavaScript · Shell)
목차
  1. 프로젝트 한줄 요약
  2. 왜 주목받는가
  3. 기술 스택 전체 지도
  4. 아키텍처 심화 분석
  5. 디렉토리 구조 해부
  6. 학습 포인트
  7. 하드웨어/시스템 요구사항
  8. 직접 해볼 수 있는 실습 과제
  9. 관련 기술 심화 학습 로드맵
  10. 핵심 키워드 사전
  11. 참고 링크

1프로젝트 한줄 요약

한 문장으로 — 이게 뭐 하는 물건인가

"AI에게 코드리뷰를 시킬 때, 50년치 소프트웨어 공학 고전을 옆에 펴놓고 그 기준대로만 평가하게 만드는 채점 기준표"입니다. ESLint처럼 문법을 잡는 게 아니라, 아키텍처 부패 · 지식 중복 · 도메인 왜곡처럼 몇 달 뒤에 팀을 느리게 만드는 구조적 문제를 잡습니다.

핵심 비유

채점 기준표(루브릭) 없이 논술을 채점하면 매번 점수가 달라진다

일반 AI에게 "이 코드 리뷰해줘"라고 하면, 똑똑한 선생님이 기분 따라 채점하는 것과 같습니다. 어떤 날은 SQL 인젝션을 잡고, 어떤 날은 네이밍만 지적합니다. brooks-lint는 이 선생님에게 "6개 평가 항목, 항목별 근거 교과서, 감점 기준, 답안 양식"이 적힌 채점 기준표를 쥐여줍니다.

결과: 같은 코드를 넣으면 언제나 같은 구조의 진단서가 나옵니다. 레포의 자체 벤치마크에서 구조화된 진단 통과율 94% vs 맨몸 Claude 16%라는 차이가 이 기준표 하나에서 나옵니다.

용어
Decay Risk (부패 위험)
코드가 당장은 돌아가지만 시간이 지날수록 수정 비용을 폭증시키는 구조적 위험. brooks-lint는 12권의 책에서 이를 6가지 차원(R1~R6)으로 합성했고, 테스트 코드 전용으로 6가지(T1~T6)를 더 정의했습니다.
용어
프롬프트 제품 (Prompt-as-Product)
실행 코드 대신 정교하게 설계된 마크다운 지시문이 제품의 핵심 가치인 소프트웨어. brooks-lint의 package.json에는 런타임 의존성이 0개입니다. LLM이 곧 런타임이고, 마크다운이 곧 소스코드입니다.

2왜 주목받는가

트렌딩에 오른 이유와 경쟁 도구 대비 차별점

① AI 코드리뷰의 최대 약점 "비일관성"을 정면으로 공격

AI 리뷰의 문제는 능력이 아니라 재현성입니다. 같은 코드라도 물어볼 때마다 다른 걸 지적하니, CI에 넣거나 팀 표준으로 삼기 어렵습니다. brooks-lint는 모든 발견(finding)을 Symptom → Source → Consequence → Remedy 4단 구조로 강제하고, Source 칸에는 반드시 책 제목과 원칙명을 적게 합니다. "왠지 별로예요"가 아니라 "Fowler의 《Refactoring》이 말하는 Shotgun Surgery입니다. 방치하면 X가 깨지고, Y로 고치세요"가 나옵니다.

② 권위를 빌려오는 영리한 설계 — 인용이 곧 신뢰

리뷰 코멘트에 사람이 반발하는 이유는 "네 의견이잖아"이기 때문입니다. 진단마다 Brooks, Fowler, Evans, Ousterhout의 책과 장(chapter)이 인용되면 논쟁의 성격이 바뀝니다. 신참 개발자에게는 리뷰 자체가 고전 읽기 가이드가 됩니다.

③ 한 번 작성, 세 플랫폼 배포

같은 skills/ 디렉토리를 Claude Code 플러그인(.claude-plugin/), OpenAI Codex CLI(.codex-plugin/), Gemini CLI(gemini-extension.json)가 공유합니다. 에이전트 스킬이 특정 벤더 종속이 아니라 이식 가능한 지식 패키지임을 보여주는 사례입니다.

경쟁 도구와의 비교

brooks-lintESLint/PylintCopilot Review맨몸 Claude
문법·스타일 잡기잘함잘함가끔
구조화된 진단 체인항상없음없음없음
고전 서적 근거 인용항상없음없음없음
아키텍처 수준 통찰핵심 기능없음가끔가끔
도메인 모델 분석R6 전담없음없음가끔
언어 무관모든 언어언어별 설치모든 언어모든 언어
포지셔닝
"린터를 대체하지 않는다"

README가 명확히 선을 긋습니다. 문법은 ESLint에게, 보안 스캔은 전용 도구에게 맡기고, brooks-lint는 린터가 절대 못 잡는 것 — 아키텍처 표류, 지식 사일로, 도메인 왜곡 — 만 노립니다. 도구의 경계를 스스로 정의하는 것 자체가 좋은 설계 교본입니다.

3기술 스택 전체 지도

백엔드도 프론트엔드도 없다 — "지식 계층"이 본체

일반적인 웹 서비스의 3계층(프론트/백/인프라) 대신, 이 레포는 지식 계층 / 통합 계층 / 검증 계층으로 나눠 보는 게 정확합니다.

계층구성 요소기술역할
지식 (본체)skills/ 6개 스킬 + _shared/ 6개 공유 문서Markdown진단 규칙·리포트 템플릿·책 인용 매트릭스. 제품 가치의 90%
통합.claude-plugin/, .codex-plugin/, gemini-extension.jsonJSON 매니페스트3개 AI CLI 런타임에 동일 스킬 등록
통합hooks/session-startBash세션 시작 시 경량 안내문 주입 + 숏폼 커맨드 자동 설치
통합commands/brooks-*.mdMarkdown(4줄)/brooks-review 등 슬래시 커맨드 → 스킬 위임
검증evals/evals.json + scripts/run-evals*.mjsNode.js + @anthropic-ai/sdk49개 벤치마크 케이스로 프롬프트 회귀 테스트
검증.github/actions/brooks-lint/GitHub ActionCI에서 PR 자동 리뷰
설정.brooks-lint.yamlYAML리스크 비활성/심각도 오버라이드/커스텀 리스크
비유

레스토랑에 비유하면 — 요리(코드 분석)는 전부 셰프(LLM)가 합니다. 이 레포가 파는 것은 레시피북(skills/), 셰프를 세 주방에 파견하는 계약서(매니페스트 3종), 그리고 요리 품질을 매주 검사하는 시식단(evals)입니다. 주방 설비는 한 점도 팔지 않습니다.

용어
eval (프롬프트 평가)
프롬프트 제품의 단위 테스트. "이 입력을 주면 이런 형식의 출력이 나와야 한다"를 케이스로 정의해 두고, 프롬프트를 수정할 때마다 돌려서 품질 퇴행을 막습니다. brooks-lint는 중국어 입력 트리거 검증, 오트리거 방지(negative) 케이스까지 49개를 갖췄습니다.

4아키텍처 심화 분석

마크다운으로 만든 소프트웨어의 구조 설계

전체 동작 흐름

사용자: "/brooks-review" 또는 "이 PR 리뷰해줘" │ ▼ ┌─ 통합 계층 ─────────────────────────────────────────────┐ │ SessionStart 훅(bash) │ │ · 6개 스킬 안내문(<150단어)만 컨텍스트에 미리 주입 │ │ · commands/brooks-*.md → ~/.claude/commands/ 자동 복사 │ │ │ │ /brooks-review (4줄 커맨드) │ │ └─→ "Skill tool로 brooks-lint:brooks-review 호출" 위임 │ └──────────────┬───────────────────────────────────────────┘ ▼ 필요할 때만 전체 로드 (Progressive Disclosure) ┌─ 지식 계층 ──────────────────────────────────────────────┐ │ skills/brooks-review/SKILL.md ← 모드별 진입점 (6개 중 1) │ │ ├─ pr-review-guide.md 모드 전용 절차 │ │ └─ _shared/ (공유 문서) │ │ ├─ common.md Iron Law·리포트 템플릿·점수 │ │ ├─ decay-risks.md R1~R6 정의 + 오탐 방지 가드 │ │ ├─ test-decay-risks.md T1~T6 │ │ └─ source-coverage.md 책 12권 인용 가이드 │ └──────────────┬───────────────────────────────────────────┘ ▼ ┌─ 출력 ───────────────────────────────────────────────────┐ │ Health Score XX/100 + 🔴🟡🟢 findings │ │ 각 finding = Symptom → Source(책) → Consequence → Remedy │ │ 실행 이력 → .brooks-lint-history.json (추세 추적) │ └──────────────────────────────────────────────────────────┘

설계 패턴 ① The Iron Law — 출력 형식의 헌법

NEVER suggest fixes before completing risk diagnosis.
EVERY finding must follow: Symptom → Source → Consequence → Remedy.

모든 스킬 문서의 최상단에 놓인 두 줄입니다. "결과(Consequence)와 처방(Remedy)이 없는 발견은 발견이 아니라 소음"이라고 못 박습니다. LLM의 출력 품질을 코드가 아니라 헌법 조문 같은 절대 규칙으로 통제하는 방식 — 프롬프트 엔지니어링의 정석입니다.

설계 패턴 ② Progressive Disclosure — 컨텍스트 절약

훅이 세션 시작 때 주입하는 건 150단어 미만의 목차뿐입니다. 수천 줄짜리 진단 규칙 전체는 사용자가 실제로 리뷰를 요청한 순간에만 Skill tool로 로드됩니다. 토큰 비용과 능력 사이의 트레이드오프를 구조로 해결한 모범 사례입니다.

설계 패턴 ③ 6개 모드 = 6개 독립 스킬 + 공유 코어

모드커맨드하는 일
PR Review/brooks-reviewdiff 단위 리뷰. 파일 미지정 시 git diff --cached → diff → main...HEAD 순 자동 폴백
Architecture Audit/brooks-audit모듈 의존 그래프(Mermaid, 심각도별 색상) + 순환 의존 + Conway's Law 점검
Tech Debt/brooks-debtPain×Spread 점수로 부채 우선순위 + 상환 로드맵
Test Quality/brooks-testT1~T6으로 테스트 스위트 건강 진단
Health Dashboard/brooks-health4개 차원 가중평균(아키텍처 0.30이 최대 가중치) 종합 점수
Full Sweep/brooks-sweep진단 + 자동 수정. Safe/Extended-Safe/Residual 3단 수정 등급, 테스트 실패 시 자동 revert

v1.3.0에서 단일 거대 SKILL.md를 6개 스킬로 쪼개고 공통 규칙은 _shared/로 빼냈습니다. 마크다운 세계에서의 모듈 분리 리팩터링인 셈인데, 자기 도구가 설파하는 원칙(R3 지식 중복 제거)을 자기 구조에 적용한 점이 재미있습니다.

핵심 데이터: 6가지 Decay Risk (R1~R6)

코드이름진단 질문대표 근거 서적
R1 🧠Cognitive Overload이해하는 데 얼마나 머리가 아픈가? (20줄+ 함수, 중첩 3+, 매직넘버)Code Complete, A Philosophy of Software Design
R2 🔗Change Propagation하나 고치면 몇 군데가 같이 깨지나? (Shotgun Surgery, Hyrum's Law)Refactoring, The Pragmatic Programmer
R3 📋Knowledge Duplication같은 결정이 여러 곳에 적혀 있나? (복붙, user/account/member 혼용)The Pragmatic Programmer(DRY), DDD
R4 🌀Accidental Complexity문제보다 코드가 더 복잡한가? (Speculative Generality, 2차 시스템 효과)Mythical Man-Month, Refactoring
R5 🏗️Dependency Disorder의존성이 한 방향으로 흐르나? (순환 의존, 도메인→인프라 직결)Clean Architecture, SE at Google
R6 🗺️Domain Model Distortion코드가 비즈니스를 정직하게 표현하나? (Anemic Domain Model)Domain-Driven Design
주목할 디테일
"What Not to Flag" — 오탐 방지 가드가 내장돼 있다

각 리스크 정의에는 잡지 말아야 할 것 목록이 따라붙습니다. 예: "CRUD 위주 워크플로는 트랜잭션 스크립트가 정당할 수 있다"(R6), "선형이고 이름이 좋은 긴 함수는 괜찮을 수 있다"(McConnell). 심지어 source-coverage.md는 책마다 "과잉 인용하지 말 것" 항목을 둬서 겉멋 인용(shallow citation)을 시스템적으로 차단합니다. AI 린터의 고질병인 "다 문제라고 우기기"에 대한 해답입니다.

Health Score 산정 공식

점수 = 100 − (Critical × 15) − (Warning × 5) − (Suggestion × 1)   # 하한 0
부채 우선순위 = Pain(1~3) × Spread(1~3)   # 7~9 Critical / 4~6 Scheduled / 1~3 Monitored

실행할 때마다 .brooks-lint-history.json에 기록을 쌓아 Trend: 85 → 82 (−3)처럼 추세를 보여줍니다. 일회성 리뷰 도구가 아니라 코드베이스 건강검진 기록부를 지향합니다.

5디렉토리 구조 해부

v1.3.0 기준 실제 구조 — README의 구버전 트리와 다르다
brooks-lint/ ├── .claude-plugin/ │ ├── plugin.json # Claude Code 플러그인 매니페스트 (이름·버전·키워드) │ └── marketplace.json # 셀프호스팅 마켓 — /plugin marketplace add 로 설치 ├── .codex-plugin/plugin.json # OpenAI Codex CLI용 ├── gemini-extension.json # Gemini CLI용 — 동일 skills/ 를 3개 런타임이 공유 ├── hooks/ │ ├── hooks.json # SessionStart(startup|clear|compact) 훅 등록 │ └── session-start # bash: 안내문 주입 + 숏폼 커맨드 설치(버전 센티널로 1회만) ├── commands/ # 6개 슬래시 커맨드 — 전부 "스킬 호출해라" 4줄짜리 ├── skills/ │ ├── _shared/ # ★ 핵심. 6개 스킬이 공유하는 규칙 문서 │ │ ├── common.md # Iron Law·리포트 템플릿·Health Score·범위 자동감지 │ │ ├── decay-risks.md # R1~R6 정의 + 심각도 기준 + What-Not-to-Flag │ │ ├── test-decay-risks.md# T1~T6 (Meszaros 책 페이지 번호까지 인용) │ │ ├── source-coverage.md # 책 12권별 "인용해라/과잉인용 마라" 매트릭스 │ │ ├── remedy-guide.md # --fix 자동수정 규칙 │ │ └── custom-risks-guide.md # 프로젝트 전용 Cx 리스크 정의법 │ ├── brooks-review/ # Mode 1: SKILL.md + pr-review-guide.md │ ├── brooks-audit/ # Mode 2: + architecture-guide.md + onboarding-guide.md │ ├── brooks-debt/ # Mode 3: + debt-guide.md (Pain×Spread) │ ├── brooks-test/ # Mode 4: + test-guide.md │ ├── brooks-health/ # Mode 5: + health-guide.md (가중평균 대시보드) │ └── brooks-sweep/ # Mode 6: + sweep-guide.md (자동수정 파이프라인) ├── evals/evals.json # 49개 벤치마크 (review 29 / test 14 / audit 3 ...) ├── scripts/ # run-evals.mjs(정적) / run-evals-live.mjs(실제 API 호출) ├── .github/actions/brooks-lint/ # CI용 GitHub Action ├── .claude/agents/ # 도그푸딩: 레포 자체 개발용 에이전트 5종 │ # (eval-curator, trigger-boundary-auditor 등) ├── .brooks-lint.example.yaml # 설정 파일 예시 └── package.json # 런타임 의존성 0, devDep은 @anthropic-ai/sdk 하나
구조 읽기 포인트

commands/의 파일들이 전부 4줄이라는 게 중요합니다. 커맨드는 라우팅만 하고 지식은 전부 skills/에 있습니다 — 웹 개발의 "얇은 컨트롤러, 두꺼운 서비스" 패턴이 마크다운 세계에 그대로 재현된 모습입니다.

6학습 포인트

이 레포에서 무엇을 배워갈 수 있는가

① 에이전트 스킬 설계의 교과서적 패턴들

트리거 경계 설계가 특히 배울 만합니다. 각 스킬의 description에는 발동 조건뿐 아니라 발동하지 말아야 할 조건이 명시됩니다. 예: brooks-debt는 "health"라는 단어 때문에 서버 헬스체크·K8s probe 질문에 오발동하는 것을 description 차원에서 차단합니다. 직접 스킬을 만들 때 그대로 흉내 낼 가치가 있는 디테일입니다.

실습 아이디어 — 내 스킬의 description에 "Do NOT trigger when..." 절을 추가하고, 오발동하던 케이스가 사라지는지 확인해 보세요.

② eval 주도 프롬프트 개발 (PDD가 아니라 EDD)

프롬프트를 고치면 무엇이 좋아지고 무엇이 망가졌는지 알 수 없다는 게 프롬프트 엔지니어링의 근본 문제입니다. 이 레포는 49개 케이스(다국어 트리거, negative 케이스 포함)를 JSON으로 박아두고 npm run evals로 회귀 검증합니다. 코드의 단위 테스트 문화를 프롬프트에 이식한 살아있는 예제입니다.

③ 멀티플랫폼 패키징 전략

매니페스트 3개(JSON)만 추가해 Claude Code·Codex·Gemini를 동시 지원합니다. 스킬 본체는 건드리지 않습니다. 어댑터 패턴의 마크다운 버전이며, 직접 만든 스킬을 배포할 때 바로 참고할 수 있는 구조입니다.

④ 자동수정의 안전 등급 설계 (brooks-sweep)

AI에게 코드를 고치게 할 때의 위험 관리법을 보여줍니다: Safe(단일 파일+완전 로컬, export 심볼 변경 금지) → Extended-Safe(테스트 존재+공개 API 불변+5파일 이하) → Residual(자동수정 포기, 리포트만). 수정 후 테스트가 깨지면 역순 revert, 3회 실패한 finding은 은퇴 처리, commit/push는 절대 안 함. 에이전트에게 쓰기 권한을 줄 때의 가드레일 설계 견본입니다.

⑤ 보너스: 12권 독서 목록 그 자체

R1~R6 정의 문서는 사실상 고전 12권의 핵심을 코드 진단 관점으로 요약한 초압축 노트입니다. 책을 읽기 전 decay-risks.md를 먼저 읽으면 어떤 책이 어떤 문제를 다루는지 지도가 생깁니다.

7하드웨어/시스템 요구사항

설치 장벽이 거의 없다
항목요구사항
필수Claude Code, Codex CLI, Gemini CLI(≥0.30.0) 중 하나
하드웨어없음 — 연산은 전부 LLM API가 수행. 로컬은 마크다운 몇 백 KB
개발 참여 시Node.js (evals 실행), Anthropic API 키 (evals:live)
설치/plugin marketplace add hyhmrright/brooks-lint/plugin install brooks-lint@brooks-lint-marketplace

8직접 해볼 수 있는 실습 과제

난이도 순 5개 — 설치에서 스킬 제작까지
과제 1 · 입문

내 프로젝트에 설치하고 첫 진단 받기 ★☆☆☆☆

Claude Code에서 플러그인을 설치하고, 최근에 작업한 프로젝트에 /brooks-review를 실행해 보세요. Health Score와 finding의 4단 구조(Symptom→Source→Consequence→Remedy)가 실제로 어떻게 나오는지, 인용된 책이 무엇인지 확인합니다.

과제 2 · 입문+

일부러 나쁜 코드로 진단 정확도 시험하기 ★★☆☆☆

README 예제처럼 SQL 인젝션 + 4가지 책임이 뒤섞인 함수를 직접 작성해 리뷰시켜 보세요. 그 다음 brooks-lint 없이 맨몸 Claude에게 같은 코드를 주고, 출력의 구조·일관성 차이를 직접 비교합니다(미니 벤치마크 재현).

과제 3 · 중급

.brooks-lint.yaml로 팀 맞춤 설정 만들기 ★★★☆☆

커버리지 지표를 안 쓰는 팀이라면 disable: [T5], 생성 파일은 ignore: ["**/*.generated.*"], 그리고 custom_risks:로 우리 팀 전용 리스크(C1: 하드코딩된 시크릿 등)를 하나 정의해 보세요. 설정이 리포트의 Config 라인에 반영되는지 확인합니다.

과제 4 · 중급+

/brooks-audit로 의존 그래프 뽑고 순환 의존 찾기 ★★★★☆

모듈이 10개 이상인 프로젝트에 아키텍처 감사를 돌려 Mermaid 의존 그래프를 받아보세요. 빨간 노드(Critical)가 왜 빨간지 R5(Dependency Disorder) 정의와 대조하고, 제안된 Remedy 중 하나를 실제로 적용한 뒤 재실행해 Trend가 개선되는지 봅니다.

과제 5 · 고급

이 구조를 베껴 나만의 "책 기반 스킬" 만들기 ★★★★★

brooks-lint의 골격(Iron Law → 진단 차원 정의 → 리포트 템플릿 → evals)을 그대로 빌려, 다른 도메인의 스킬을 만들어 보세요. 예: 글쓰기 책 3권 기반 문서 리뷰 스킬, 또는 SRE 책 기반 운영 점검 스킬. evals.json에 negative 케이스 3개를 포함시키는 것까지가 과제입니다.

9관련 기술 심화 학습 로드맵

4주 코스 — 도구 사용에서 원전 독파까지
주차주제할 일
1주차도구 체득6개 모드 전부 실행해 보기. 리포트의 책 인용을 모아 "내 코드가 가장 자주 위반하는 책" 순위 만들기
2주차원전 입문가장 많이 인용된 책 1권 읽기 시작 (대부분 《Refactoring》 또는 《A Philosophy of Software Design》이 걸림). decay-risks.md를 독서 가이드로 활용
3주차스킬 엔지니어링Anthropic 공식 Agent Skills 문서 + 이 레포의 _shared/ 구조 분석. 트리거 경계·Progressive Disclosure·커맨드 위임 패턴 정리
4주차제작과 검증과제 5 수행. evals 작성 → 프롬프트 수정 → 회귀 확인 사이클을 한 바퀴 돌려보기

10핵심 키워드 사전

이 레포를 읽는 데 필요한 용어들
용어
Iron Law"진단 완료 전 수정 제안 금지, 모든 발견은 4단 구조" — brooks-lint 출력 형식의 절대 규칙
Shotgun Surgery하나의 변경이 여러 파일에 잔수정을 흩뿌리는 코드 스멜 (Fowler). R2의 대표 증상
Hyrum's Law"관찰 가능한 모든 동작은 누군가 의존하게 된다" — 암묵적 계약의 법칙 (SE at Google)
Anemic Domain Model도메인 객체가 getter/setter뿐이고 로직은 전부 서비스층에 있는 안티패턴. R6의 대표 증상
Second-System Effect첫 시스템 성공 후 두 번째에 기능을 과적해 망치는 경향 (Brooks). R4 증상
Conway's Law시스템 구조는 조직의 의사소통 구조를 닮는다. /brooks-audit가 팀-모듈 정렬을 점검
Seam (이음새)코드 수정 없이 동작을 갈아끼울 수 있는 지점 (Feathers). 테스트 가능성의 핵심, T6에서 평가
Coverage Illusion"커버리지는 실행을 재지 검증을 재지 않는다" — 90% 커버리지로도 핵심 실패를 다 놓칠 수 있음 (T5)
Progressive Disclosure필요한 시점에 필요한 만큼만 컨텍스트를 로드하는 스킬 설계 원칙
Pain × Spread기술 부채 우선순위 = 현재 고통(1~3) × 파급 범위(1~3). 7점 이상은 다음 스프린트 처리
negative eval"이럴 땐 발동하면 안 된다"를 검증하는 테스트 케이스. 오트리거 방지용
도그푸딩자기 도구를 자기 개발에 쓰는 것. 이 레포는 PR 리뷰에 brooks-lint 자신을 사용

11참고 링크

더 깊이 들어가기
링크설명
GitHub 저장소소스 전체. skills/_shared/가 핵심 읽을거리
출력 갤러리Python/TS/Go/Java 실제 리뷰 결과 모음
TrendShift 페이지트렌딩 추이
Claude Code Skills 공식 문서스킬/플러그인 제작 표준
Refactoring (Fowler)가장 많이 인용되는 원전
A Philosophy of Software DesignR1(인지 과부하)의 이론적 토대