프로젝트 소개
# PARTHA
비공개 및 진화하는 코드베이스를 위한 리포지토리 인텔리전스.
## 주요 기능
PARTHA는 리포지토리 리비전(ZIP/TAR 아카이브 또는 공개 GitHub 리포지토리로 가져옴)을 받아 구조의 지속적이고 불변하는 스냅샷을 빌드합니다. 단일 스냅샷을 통해 다음을 제공합니다:
- **아키텍처** — 모듈 및 해결된 관계의 상호작용 그래프; 지원되는 Python/FastAPI 패턴에 대한 증거 기반 설명
- **의존성 그래프** — `package.json`, `pyproject.toml`, `requirements.txt`의 선언 및 별도로 기록된 두 가지 락파일 형식의 해결된 핀
- **엔지니어링 검토** — 저장된 증거 범위를 기반으로 하는 각 발견 사항; 평가되지 않은 카테고리는 계속 표시됨; 집계 점수나 상태 백분율 없음
- **리포지토리 인사이트** — 스냅샷 단독에서 추출한 개수, 비율, 진단 및 커버리지
- **리포지토리 리니지** — 지속적인 기록으로 그룹화된 동일 리포지토리 및 브랜치의 반복 가져오기
- **문서 및 내보내기** — 구조적 문서화 및 JSON, Markdown, HTML, PDF로 내보낸 검토/문서/아키텍처/의존성
- **선택적 AI 컨텍스트** — 암호화된 키와 배포 소유의 이그레스 화이트리스트가 있는 사용자별 공급자 구성; 공급자는 소스 바이트나 라인 범위가 아닌 구조적 팩트와 관찰된 경로만 수신함
계약은 [기능 매트릭스](docs/CAPABILITIES.md)에 공식화되어 있으며, 코드에서 생성되고 CI에서 드리프트 검사됩니다. 지원되는 팩트는 분석된 리비전 내의 정확한 소스 위치에 연결된 증거 및 출처를 유지합니다.
## 작동 방식
```
가져오기(Import) → 분석(Analyse) → 탐색(Explore) → 내보내기(Export)
```
1. **가져오기** — 아카이브를 업로드하거나 HTTPS를 통해 공개 GitHub 리포지토리를 가져옵니다. PARTHA는 파일 인벤토리와 리비전 아이덴티티를 저장합니다.
2. **분석** — 지속 가능하고 취소 가능한 백그라운드 작업이 지원되는 Python 및 TypeScript/JavaScript 구문, 매니페스트, 락파일, 서비스 상호작용, Docker Compose에 대한 제한된 추출 파이프라인을 실행합니다.
3. **탐색** — 아키텍처, 의존성, 엔지니어링 검토, 인사이트, 증거 및 리니지를 검사합니다. 누락되었거나 오래된 스냅샷은 추측된 해석으로 대체되는 대신 사용할 수 없음으로 표시됩니다.
4. **내보내기** — 구조적 문서를 생성하거나 JSON/Markdown/HTML/PDF 파이프라인을 통해 결과를 내보냅니다.
중간 아티팩트는 `ri.v1`입니다. 이는 팩트, 증거, 진단 및 정식 해시를 포함하는 버전이 지정된 밀봉된 스냅샷입니다. 모든 제품 서피스는 이 공유 모델에서 읽어오며, 어떤 소비자도 코드를 독립적으로 다시 파싱하지 않습니다. AI는 리포지토리 인텔리전스의 다운스트림 소비자에 불과하며, 독립적인 해석기가 아닙니다.
## 기술 스택
- **백엔드**: Python 3.12–3.13, FastAPI
- **프론트엔드**: Node.js 22, React
- **데이터베이스**: SQLite (개발용)
- **워커**: 인프로세스 데몬 스레드 (한 번에 하나의 작업)
- **AI 공급자**: 선택 사항, Fernet 암호화 키 및 DNS 핀 고정 이그레스 화이트리스트로 구성 가능
## 빠른 시작
```bash
git clone https://github.com/Second-Origin/PARTHA.git
cd PARTHA
# 백엔드 — http://localhost:8000 (OpenAPI: /docs)
cd apps/backend
python3.13 -m venv .venv && source .venv/bin/activate
pip install -e .
cd ../.. && npm run dev:backend
# 프론트엔드 — http://localhost:5173
cd apps/frontend
npm ci
npm run dev
```
로컬 개발을 위해 컨테이너 런타임이나 외부 데이터베이스가 필요하지 않습니다. `.env` 파일도 필요 없습니다.
## 현재 제한 사항
- 신뢰할 수 있는 환경 전용 — 광범위한 공유 또는 멀티 테넌트 호스팅용으로 하드닝되지 않았습니다.
- 깊이 있는 시맨틱 추출은 Python 및 TypeScript/JavaScript로 제한되며, 다른 언어는 파일 인벤토리만 제공합니다.
- 의존성 커버리지: 세 가지 매니페스트 형식과 두 가지 락파일 형식; 전이적 해결 없음, 취약점 또는 오래된 버전 스캔 없음.
- 실행당 전체 리포지토리 분석 — 증분 재분석 없음.
- 리니지는 리비전 기록을 유지하지만 스냅샷을 비교(diff)하거나, 이름 변경/이동을 감지하거나, 과거의 파급 반경(blast radius)을 계산하지 않습니다.
- 선택적 AI는 외부 공급자를 호출할 수 있으며, 로컬 공급자만 모든 것을 호스트에 유지합니다. [이그레스 정책](docs/security/AI_PROVIDER_EGRESS.md)을 참조하세요.
## 문서
- [시스템 개요](docs/architecture/SYSTEM_OVERVIEW.md)
- [리포지토리 인텔리전스](docs/architecture/REPOSITORY_INTELLIGENCE.md)
- [RFC-0001 — ri.v1 계약](docs/architecture/REPOSITORY_INTELLIGENCE_V1_RFC.md)
- [RFC-0002 — 리포지토리 리니지](docs/architecture/REPOSITORY_LINEAGE_RFC.md)
- [기능 매트릭스](docs/CAPABILITIES.md)
- [개발 가이드](docs/DEVELOPMENT.md)
- [AI 공급자 설정](docs/operations/AI_PROVIDER_SETUP.md)
- [보안 정책](SECURITY.md)
## 라이선스
Apache License 2.0
## 커뮤니티
- [Discord](https://discord.gg/qvk9DcxDA)
- [Issues](https://github.com/Second-Origin/PARTHA/issues)
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.