review-software-architecture
정보
이 스킬은 결합도, 응집도, SOLID 원칙, 확장성과 같은 핵심 품질 속성에 대한 소프트웨어 아키텍처를 검토합니다. 시스템 설계를 평가하고, 아키텍처 결정 기록(ADR)을 검토하며, 개선 권고사항을 제공합니다. 제안된 시스템이나 기존 시스템의 기술 부채, 보안, 확장 준비 상태를 평가하는 데 활용하세요.
빠른 설치
Claude Code
추천npx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/review-software-architectureClaude Code에서 이 명령을 복사하여 붙여넣어 스킬을 설치하세요
문서
審軟構
於系等評軟構之質屬、設則之循、長之可守。
用時
- 施前評議構乃用
- 為擴、守、安察現系乃用
- 審項目之 ADR 乃用
- 行技債察乃用
- 評系備大擴或功廣乎乃用
- 與行等碼審分(其專於 PR 等變)乃用
入
- 必要:系碼庫或構文(圖、ADR、README)
- 必要:系之用、尺、限之境
- 可選:非功需(延、量、可達之的)
- 可選:團之大與技組
- 可選:技限或喜
- 可選:知痛點或憂區
法
第一步:解系境
圖系界與介:
## System Context
- **Name**: [System name]
- **Purpose**: [One-line description]
- **Users**: [Who uses it and how]
- **Scale**: [Requests/sec, data volume, user count]
- **Age**: [Years in production, major versions]
- **Team**: [Size, composition]
## External Dependencies
| Dependency | Type | Criticality | Notes |
|-----------|------|-------------|-------|
| PostgreSQL | Database | Critical | Primary data store |
| Redis | Cache | High | Session store + caching |
| Stripe | External API | Critical | Payment processing |
| S3 | Object storage | High | File uploads |
得: 系行何與依何之明像 敗則: 若構文缺,自碼構、配、部署文導其境
第二步:評構之質
耦合之察
審諸模相依之緊:
- 依向:依一向流(層)或環?
- 介界:諸模由所定介/契連,或由直施引?
- 共態:諸模間共可變態?
- 庫耦:諸服直讀寫同表?
- 時耦:諸操必依特序而無明調?
# Detect circular dependencies (JavaScript/TypeScript)
npx madge --circular src/
# Detect import patterns (Python)
# Look for deep cross-package imports
grep -r "from app\." --include="*.py" | sort | uniq -c | sort -rn | head -20
凝聚之察
評各模有單明責乎:
- 模名:名準述模行何乎?
- 文大:文或類過大乎(>500 行示多責)?
- 變頻:無關功需變同模乎?
- 神物:諸物所依之類/模存乎?
| 耦合等 | 述 | 例 |
|---|---|---|
| 低(善) | 諸模由介通 | 服 A 呼服 B 之 API |
| 中 | 諸模共數構 | 共 DTO/模庫 |
| 高(憂) | 諸模引他內 | 諸模間直庫訪 |
| 病 | 諸模改他內態 | 全可變態 |
得: 耦合與凝聚已察附碼之具例 敗則: 若碼庫過大不能手審,取 3-5 要模與最常變之文
第三步:察 SOLID 諸則
| 則 | 問 | 紅旗 |
|---|---|---|
| Single Responsibility | 各類/模有單變因乎? | 有 >5 公法於無關憂之類 |
| Open/Closed | 行可擴而不改現碼乎? | 為各新功常改核類 |
| Liskov Substitution | 子類可代基類而不破行乎? | 類察(instanceof)散於用碼 |
| Interface Segregation | 諸介專且少乎? | 「肥」介使用者施未用法 |
| Dependency Inversion | 高層依抽象,非依細乎? | 業邏中直立基設類 |
## SOLID Assessment
| Principle | Status | Evidence | Impact |
|-----------|--------|----------|--------|
| SRP | Concern | UserService handles auth, profile, notifications, and billing | High — changes to billing risk breaking auth |
| OCP | Good | Plugin system for payment providers | Low |
| LSP | Good | No type-checking anti-patterns found | Low |
| ISP | Concern | IRepository has 15 methods, most implementors use 3-4 | Medium |
| DIP | Concern | Controllers directly instantiate database repositories | Medium |
得: 各則以至少一具例察 敗則: 非凡則皆等施於諸構式。記則於少要時(如 ISP 於函碼庫較少要)
第四步:審 API 設
為示 API 之系(REST、GraphQL、gRPC):
- 恆:命規、誤式、頁形齊
- 版:策存且施(URL、首、內議)
- 誤處:誤應構、恆、不露內
- 認/授:於 API 層正執
- 限速:防濫用之護
- 文檔:OpenAPI/Swagger、GraphQL schema、protobuf 定守
- 冪等:變操(POST/PUT)安處重試
## API Design Review
| Aspect | Status | Notes |
|--------|--------|-------|
| Naming consistency | Good | RESTful resource naming throughout |
| Versioning | Concern | No versioning strategy — breaking changes affect all clients |
| Error format | Good | RFC 7807 Problem Details used consistently |
| Auth | Good | JWT with role-based scopes |
| Rate limiting | Missing | No rate limiting on any endpoint |
| Documentation | Concern | OpenAPI spec exists but 6 months out of date |
得: API 設對常標審附具得 敗則: 若無 API 示,略此步而專注內模介
第五步:察擴與信
- 無態:應用可平擴乎(無局態)?
- 庫擴:諸詢索引乎?schema 合數量乎?
- 緩策:緩於宜層(庫、應、CDN)施乎?
- 敗處:依不可時何發(斷路、重、退)?
- 可察:諸日、指、跡施乎?
- 數合:終合可受或需強合?
得: 擴與信對述非功需察 敗則: 若非功需未書,議為首步定之
第六步:察技債
## Technical Debt Inventory
| Item | Severity | Impact | Estimated Effort | Recommendation |
|------|----------|--------|-----------------|----------------|
| No database migrations | High | Schema changes are manual and error-prone | 1 sprint | Adopt Alembic/Flyway |
| Monolithic test suite | Medium | Tests take 45 min, developers skip them | 2 sprints | Split into unit/integration/e2e |
| Hardcoded config values | Medium | Environment-specific values in source code | 1 sprint | Extract to env vars/config service |
| No CI/CD pipeline | High | Manual deployment prone to errors | 1 sprint | Set up GitHub Actions |
得: 技債已錄附重、影、估力 敗則: 若債錄過大,依影/力比排前 5 入
第七步:審 Architecture Decision Records(ADR)
若 ADR 存,評:
- 諸決有明境(解何患)
- 諸替已慮且書
- 衡明
- 諸決仍當(非無書代)
- 諸新要決有 ADR
若 ADR 不存,議為要決立之。
第八步:書構審報
## Architecture Review Report
### Executive Summary
[2-3 sentences: overall health, key concerns, recommended actions]
### Strengths
1. [Specific architectural strength with evidence]
2. ...
### Concerns (by severity)
#### Critical
1. **[Title]**: [Description, impact, recommendation]
#### Major
1. **[Title]**: [Description, impact, recommendation]
#### Minor
1. **[Title]**: [Description, recommendation]
### Technical Debt Summary
[Top 5 debt items with prioritized recommendations]
### Recommended Next Steps
1. [Actionable recommendation with clear scope]
2. ...
得: 審報可行附排序之議 敗則: 若審時限,明述所覆與所未察
驗
- 系境已書(用、尺、依、團)
- 耦合與凝聚已察附碼具例
- SOLID 諸則於可施處察
- API 設已審(若可)
- 擴與信對需察
- 技債已錄且排
- ADR 已審或記其闕
- 諸議具、排、可行
陷
- 審碼非審構:本技為系等設,非行等碼質。用
code-reviewer行 PR 等反 - 指特技:構審宜識患,非令具具,除非有明技由
- 忽團境:3 人團之「最善」構異於 30 人團。慮組之限
- 求全:凡系皆有技債。專於致實痛或阻來勞之債
- 假尺:勿為 100 用戶之應議分系。匹構於實需
參
security-audit-codebase— 安專之碼與配審configure-git-repository— 庫構與規design-serialization-schema— 數 schema 之設與化review-data-analysis— 析正之審(補視)
GitHub 저장소
연관 스킬
executing-plans
디자인executing-plans 스킬은 검토 체크포인트가 포함된 통제된 배치로 실행할 완전한 구현 계획이 있을 때 사용합니다. 이 스킬은 계획을 불러와 비판적으로 검토한 후, 소규모 배치(기본값 3개 작업)로 작업을 실행하면서 각 배치 사이에 진행 상황을 아키텍트 검토를 위해 보고합니다. 이를 통해 내재된 품질 관리 체크포인트를 갖춘 체계적인 구현이 보장됩니다.
requesting-code-review
디자인이 스킬은 코드 변경 사항을 요구 사항에 따라 분석하기 위해 코드 리뷰어 하위 에이전트를 호출합니다. 작업 완료 후, 주요 기능 구현 후, 또는 메인 브랜치에 병합하기 전에 사용해야 합니다. 이 리뷰는 현재 구현체와 원래 계획을 비교하여 문제를 조기에 발견하는 데 도움이 됩니다.
connect-mcp-server
디자인이 스킬은 개발자들이 HTTP, stdio 또는 SSE 전송 방식을 통해 MCP 서버를 Claude Code에 연결하는 포괄적인 가이드를 제공합니다. GitHub, Notion 및 사용자 정의 API와 같은 외부 서비스를 통합하기 위한 설치, 구성, 인증 및 보안을 다룹니다. MCP 통합 설정, 외부 도구 구성 또는 Claude의 모델 컨텍스트 프로토콜 작업 시 활용하세요.
web-cli-teleport
디자인이 스킬은 작업 분석을 기반으로 개발자가 Claude Code 웹 인터페이스와 CLI 인터페이스 중 선택할 수 있도록 돕고, 두 환경 간 원활한 세션 텔레포트를 가능하게 합니다. 웹, CLI 또는 모바일 환경 전환 시 세션 상태와 컨텍스트를 관리하여 워크플로를 최적화합니다. 다양한 단계에서 서로 다른 도구가 필요한 복잡한 프로젝트에 사용하세요.
