Communitygithub.com

ihebEllouz/project-class-architect

소프트웨어 저장소를 역공학하여 정확하고 상호작용 가능한 UML 클래스 다이어그램(자체 포함 HTML 파일 하나)으로 변환합니다. - 클래스, 인터페이스, 열거형, 속성, 메서드, 가시성, 상속, 연관, 집합, 구성, 의존성, 다중성 및 데이터베이스/ORM 관계까지 모든 요소가 소스 파일과 라인에 추적됩니다.

project-class-architect란 무엇인가요?

이 스킬은 저장소를 역공학하여 검색, 필터, 확대 렌즈, 다이어그램 내 편집, 변경 감지 및 SVG/PNG/JSON/HTML 내보내기를 지원하는 대화형 UML 클래스 다이어그램(단일 HTML 파일)을 생성합니다. Java/Spring/JPA, Kotlin, TypeScript/JavaScript(Angular, NestJS, TypeORM), Python(Django, SQLAlchemy, dataclasses), C#(EF Core), Go(GORM), PHP(Doctrine, Laravel), SQL DDL 및 Prisma를 지원합니다. 모든 클래스, 속성, 메서드 및 관계는 다이어그램에서 파일과 라인을 가리키므로 증거 기반이며, 추론된 항목은 명확하게 표시됩니다. 개발자는 수백 개의 파일을 읽는 대신 이 다이어그램을 탐색하여 코드베이스 아키텍처, 클래스 모델, 도메인 모델(ERD), 의존성 또는 의존성 주기를 시각화, 문서화, 이해 또는 검토할 수 있습니다. 스킬에는 Node.js 스크립트가 포함되어 있으며, Node.js를 사용할 수 없는 경우 핸드 모델 JSON 및 뷰어 템플릿을 위한 대체 방법도 제공합니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ihebEllouz/project-class-architect/tree/HEAD

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Project Class Architect

저장소를 개발자가 수백 개의 파일을 읽지 않고 탐색할 수 있는 대화형 UML 클래스 다이어그램으로 변환합니다. 분석은 증거 기반입니다. 다이어그램의 모든 클래스, 속성, 메서드 및 관계는 해당 파일과 라인을 가리킵니다. 어떤 것도 임의로 생성되지 않으며, 발견적 방법으로 찾은 항목은 inferred로 표시됩니다.

이 파일의 모든 경로는 스킬 디렉터리(이 SKILL.md가 포함된 폴더)를 기준으로 합니다.

요구 사항

  • Node.js 18+(node --version). 스크립트에는 의존성이 없습니다: 이 스킬을 위해 npm install을 실행하지 마십시오.
  • 저장소에 대한 읽기 권한. 분석은 소스 파일을 수정하지 않으며, 출력 폴더에만 기록합니다.
  • Node.js를 사용할 수 없는 경우, 마지막에 설명된 대체 방법을 사용하십시오.

워크플로우

1. 저장소 식별

사용자가 언급한 프로젝트의 절대 경로를 사용하십시오(일반적으로 현재 워크스페이스). 아래 명령은 스킬 디렉터리에서 실행되므로 .과 같은 상대 경로는 스킬 자체를 가리킵니다.

2. 다이어그램 생성

node scripts/class-architect.js generate "/absolute/path/to/repo"

유용한 옵션 (전체 목록은 CLI 참조 참조):

필요옵션
푸터에 저자--author "이름" --author-role "소프트웨어 엔지니어"
다이어그램 제목--title "빌링 서비스"
대규모 저장소의 일부만--include "src/main/java/com/acme/billing/**" (반복 가능)
폴더 제외--exclude "legacy/**" (반복 가능)
언어 제한--languages java,sql
테스트도 분석--include-tests
초기 보기 / 레이아웃--view classes|er|overview|packages --layout grouped|layered|hierarchical|grid
사용자 정의 출력 폴더--out "/path/to/output" (기본값 <repo>/.class-architect)
HTML에서 로컬 경로 숨기기--hide-root ("편집기에서 열기" 링크 비활성화)

명령은 stdout에 JSON 요약을 출력합니다(진행 상황은 stderr로 출력). 종료 코드: 0 성공, 1 사용법 오류, 2 분석 가능한 소스 파일 없음, 3 모델 검증 실패(기록되지 않음), 4 내부 오류.

3. 결과 확인

JSON 요약(status, outputs, summary.counts, summary.insights, summary.edits, validation)을 읽으십시오. 출력 폴더에 기록된 출력:

  • diagram.html - 대화형 다이어그램(브라우저에서 열기; 오프라인에서 작동).
  • report.md / report.json - 스캔된 파일, 클래스, 인터페이스, 열거형, 관계, 추론된 관계, 확인되지 않은 참조, 이유와 함께 제외된 파일, 경고, 인사이트.
  • model.json - UML 모델(단일 진실 공급원); overlay.json - 사용자 편집(있는 경우).

종료 코드가 2이면 --include / --languages를 조정하고 어떤 폴더가 제외되었는지와 이유(JSON details에서)를 말하십시오. 종료 코드가 3이면 검증 오류를 보고하십시오. 모델을 수동으로 편집하여 숨기지 마십시오.

수백 개의 클래스가 있는 저장소의 경우 다이어그램은 개요(모듈)에서 열리고 사용자가 모듈 및 패키지로 드릴다운할 수 있습니다. 하나의 경계 컨텍스트에 대해 --include로 집중된 다이어그램을 생성할 수도 있습니다.

4. 사용자에게 다이어그램 제시

  • diagram.html의 경로(및 outputs.diagramUrl의 file:// URL)를 제공하십시오. 사용자가 요청하고 환경에서 허용하지 않는 한 브라우저를 실행하려고 시도하지 마십시오.
  • 보고서 내용(클래스/인터페이스/열거형/관계 수, 감지된 프레임워크, 의존성 주기, 아키텍처 발견 사항, 확인되지 않은 참조 및 경고)만 요약하십시오. 클래스 이름을 정확하게 인용하십시오.
  • inferred로 표시된 관계(명명 규칙, Go 구조적 타이핑)는 확인해야 하며, 파생된 테이블/열 이름은 derived로 표시된다는 점을 언급하십시오.
  • 주요 상호 작용(클래스 또는 라인을 클릭하여 검사(소스 파일 및 라인 포함), 검색(/), 필터, 보기(개요, 패키지, 클래스, 데이터베이스 ER), 확대 렌즈(L), 편집 모드(E), 인사이트, 내보내기)을 지적하십시오. 자세한 내용: 대화형 다이어그램 가이드.

5. 코드 변경 후 새로 고침

동일한 명령을 다시 실행하십시오. 다음을 수행합니다:

  • 변경된 파일만 재분석합니다(증분 캐시).
  • 모든 사용자 편집 내용(overlay.json 및 사용자가 저장 버튼으로 diagram.html에 저장한 편집)을 유지합니다.
  • 대상이 코드에서 사라진 편집 내용을 orphaned로 보고하고(유지, 자동으로 삭제되지 않음) 소스 변경과 충돌하는 편집 내용을 보고합니다.
  • 이전 실행과 비교하여 추가/제거/수정된 클래스를 강조 표시합니다.
  • 이전 다이어그램의 백업(diagram.prev.html)을 유지합니다.

사용자가 다른 곳에 다이어그램 사본을 다운로드한 경우 --edits "/path/to/saved-diagram.html"을 전달하십시오.

6. 선택 사항: 문서 섹션

다이어그램은 원본 템플릿의 구성 요소를 사용하여 그 아래에 추가 문서(표, 흐름, 단계, 열거형 그리드, 배너 메모)를 표시할 수 있습니다. 코드에서 확인한 사실만 추가하고 소스 파일을 인용하십시오. 구성 가이드에 따라 JSON 파일을 작성하고 --notes notes.json을 전달하십시오.

규칙

  • 이 스킬의 일부로 분석된 소스 코드를 수정, 서식 지정 또는 "수정"하지 마십시오.
  • 클래스, 멤버 또는 관계를 임의로 만들지 말고 inferred 관계를 확실한 것으로 제시하지 마십시오.
  • overlay.json 또는 사용자가 저장한 diagram.html을 삭제하거나 덮어쓰지 마십시오: CLI가 자동으로 병합합니다.
  • 출력 폴더 .class-architect/는 생성된 것입니다. 사용자가 다이어그램을 커밋하려는 경우가 아니라면 .gitignore에 추가하는 것을 제안하십시오.
  • 다이어그램이나 모델을 어디에도 업로드하지 마십시오: 독점적인 코드 구조를 포함할 수 있습니다.

스크립트를 실행할 수 없는 경우 대체 방법

Node.js 18+를 사용할 수 없거나 명령 실행이 허용되지 않는 경우:

  1. 관련 소스 파일을 읽고 UML 모델 참조에 따라 모델 JSON을 직접 작성하십시오. 코드에서 본 요소만 source.file 및 source.line과 함께 포함시키십시오. 명시적이지 않은 항목은 confidence: "inferred"로 설정하십시오.
  2. templates/viewer.html을 사용자가 다이어그램을 원하는 위치(예: class-diagram.html)로 복사하십시오.
  3. 복사본에서 <script type="application/json" id="pca-data">null</script> 안의 텍스트 null을 {"model": <내 모델>, "overlay": null, "meta": {"title": "<프로젝트 이름>"}}로 바꾸고, JSON 내부에서 <를 &lt;로 작성하십시오.
  4. 또는 사용자에게 templates/viewer.html을 열고 model.json을 페이지에 드롭하도록 지시하십시오.

레이아웃, 상호 작용 및 내보내기는 생성된 다이어그램과 정확히 동일하게 브라우저에서 작동합니다. 자동 추출, 변경 감지 및 검증 보고서만 누락됩니다. 모델이 수동으로 작성되었음을 명확히 말하십시오.

기타 명령

node scripts/class-architect.js analyze "/abs/repo"                       # 모델 + 보고서, HTML 없음
node scripts/class-architect.js render --model model.json --out diagram.html
node scripts/class-architect.js validate --model model.json --html diagram.html
node scripts/class-architect.js diff --base old-model.json --head model.json
node scripts/class-architect.js edits --from saved-diagram.html --out overlay.json
node scripts/class-architect.js viewer --out viewer.html
node scripts/class-architect.js doctor

참조 파일 (필요할 때만 읽기)

관련 스킬