
AST 없는 휴리스틱 지식 그래프 엔진으로, 심층 리포지토리 인텔리전스와 제로 트러스트 보안 스캐닝을 제공합니다. GitLab CI/CD 구성 요소로 통합되어 악성 코드를 차단하고 SARIF 텔레메트리를 GitLab Security Dashboard로 내보냅니다.
컴파일 없이 저장소 규모의 구조적 인텔리전스.
Docs · Visualizer · Language Crucible · Keyword Rosetta · Raw Output
1회 스캔 · 97개 구조적 신호 · 50개 이상 언어 · 컴파일 없음 · 17개 위험 노출 범주 · 6개 출력
GitGalaxy는 소스 텍스트로부터 직접 전체 저장소의 언어 중립적 구조 그래프를 구축합니다 — 빌드도, 언어별 툴체인도 필요하지 않습니다.
이는 다중 언어(polyglot)이거나, 부분적으로 손상되었거나, 레거시이거나, 벤더 코드가 많거나, 그 밖에 빌드 우선 워크플로로 분석하기 어려운 저장소를 위해 설계되었습니다:
Go + C++ + Python + Java + Bash + YAML
+ generated code + vendored code + legacy code
+ half-migrated modules + broken dependencies
언어별로 별도의 파서를 두는 대신, GitGalaxy는 구조적 시그니처 — 함수, 클래스, 인자, 제어 흐름, 상태 변경, I/O, API, 의존성 — 라는 공통 어휘를 추출하고, 이를 하나의 결정론적 저장소 모델로 정규화하여 아키텍처 분석, 위험 노출 우선순위 지정, SBOM 생성, 리팩터링 및 소유권 분석, AI 지향 코드베이스 컨텍스트, CI/CD 게이트에 공급합니다.
핵심 명제: 저장소 규모에서 매우 유용한 구조적 정보를 복원하는 데 항상 완전한 언어 파싱이 필요한 것은 아닙니다.
이 명제가 어떻게 검증되는지 — Tree-sitter 및 Ctags와의 비교, 심어 놓은 대조 코퍼스와의 비교, 그리고 다음으로 Git 이력과의 비교 — 는 아래의 정확도, 측정됨에 요약되어 있으며 검증 프로그램에 전체가 설명되어 있습니다.
명령 하나:
pip install gitgalaxy
galaxyscope path/to/repo
동일한 결정론적 스캔에 대한 여섯 개의 조정된 뷰:
| 출력 | 목적 |
|---|---|
| LLM 아키텍처 브리프 | 압축된 기계/에이전트 지향 컨텍스트 (아래) |
| SARIF | CI/보안 대시보드 통합 |
| CycloneDX SBOM | 의존성 인벤토리/컴플라이언스 |
| SQLite | 쿼리 가능한 저장소 지식 그래프 |
| JSON 감사 데이터 | 포렌식/자동화 워크플로 |
| 3D 시각화 데이터 | 대화형 저장소 토폴로지 |
플래그십 보고서는 엔지니어 — 또는 AI 에이전트 — 에게 한 번도 본 적 없는 저장소에 대한 작동하는 멘탈 모델을 넘겨주기 위해 만들어진 단일 Markdown 브리프입니다. 이는 자체 완결적인 패키지입니다: 위험 방정식이 보고서 자체에 인쇄되어 있고, 내장된 해석 프롬프트를 통해 어떤 LLM이든 숫자가 의미하는 바를 환각 없이 서술할 수 있습니다. 섹션은 매크로 상태와 언어 구성, 네트워크 토폴로지(모듈성, 관절점, 순환 밀도), 의존성 병목 지점, 가장 무거운 함수와 파일, PageRank 블라스트 반경이 포함된 파일별 구조적 시그니처, 표적화 및 누적 위험 히트리스트, 공급망 감사, 그리고 변동성과 작성 집중도로 순위가 매겨진 리팩터링 대상을 다룹니다 — 여기에 더해 스캔을 거부한 모든 파일의 항목별 목록과 그 이유도 포함됩니다.
현재 엔진으로 2026-08-31에 스캔한 두 가지 예시입니다. 두 저장소 모두 공개되어
있습니다 — 어느 쪽이든 클론하고 galaxyscope --llm-only <path>를 실행하면 전체
브리프를 재현할 수 있습니다:
curl — 4,250개 아티팩트, 696개 스캔, C, Perl, Python, Shell, M4, Makefile에 걸쳐
112,653 LOC. 브리프는 src/tool_setup.h를 최상위 구조적 기둥(80개의 인바운드 연결)으로
순위 매기고, Perl 함수 — tests/ftpserver.pl의 APPEND_imap, Impact 2135, 1,672
LOC — 를 C 코드와 동일한 순위에서 저장소 전체 함수 히트리스트의 최상위에 올립니다.
이 교차 언어 그래프가 바로 제품입니다: 저장소의 모든 언어에 걸친 하나의 비교 가능한
신호 집합. 같은 브리프에 있는 솔직한 단서: 아티팩트의 16.4%만 스캔되었습니다 —
수집 필터가 바이너리, 생성된 코드, 테스트 데이터를 공격적으로 제거하며, 브리프의 §5는
확장자와 이유별로 모든 제외 항목을 항목화합니다.
cics-genapp (IBM의 CICS COBOL/DB2 샘플) — 92.1% 스캔: 44개 COBOL 프로그램,
29개 JCL 작업. 누적 구조적 표면 히트리스트는 base/src/lgupdb01.cbl(변이 표면 ~100%,
복잡도 부하 92%)로 시작하며, 저장소에서 가장 무거운 단락은
UPDATE-POLICY-DB2-INFO — SELECT FOR UPDATE 행 잠금 로직으로, 해당 프로그램의
유지보수자가 가장 먼저 보고 싶어 할 바로 그 지점입니다. 같은 브리프는 또한 한계를
명확히 보여줍니다: 실제 임포트 그래프가 없는 평면 아키텍처에서는 "구조적 기둥" 목록이
연결이 없는 파일들로 퇴화하며, 보고서는 이를 신뢰하기 전에 연결 수를 확인하라고
말합니다.
독립적으로 선정된 저장소에 대한 수백 개의 편집되지 않은 브리프가
gitgalaxy-raw-output에
커밋되어 있습니다; 이 저장소 자체의 항상 최신인 자체 스캔 브리프는
docs/gitgalaxy_architecture_brief.md에
있습니다.
| 소비자 | 질문 |
|---|---|
| 아키텍처 | 이 저장소는 무엇으로 구성되어 있는가? |
| 구조적 분석 | 함수, 클래스, API, 의존성, 제어 구조는 어디에 있는가? |
| 구조적 표면 프로파일 (이전의 위험 노출) | 주어진 구조적/내용 패턴은 어디에 집중되어 있는가? |
| 리팩터링 | 어떤 파일이 복잡하거나, 변경이 잦거나, 부하를 지탱하는가? |
| 공급망 | 디스크에 물리적으로 존재하는 의존성은 무엇인가? |
| AI 컨텍스트 | 에이전트가 알아야 할 아키텍처와 관계는 무엇인가? |
| 레거시 마이그레이션 | 변환해야 할 구조적 단위는 어디에 있는가? |
| 이력 분석 | 저장소가 진화함에 따라 측정된 노출은 어떻게 변하는가? |

위의 주장을 뒷받침하는 두 개의 상시 측정 프로그램이 있으며, 의존성 및 호출 그래프를 위한 세 번째 프로그램이 진행 중입니다. 전체 서사 — 방법론, 판정, 한계, 그리고 다음 단계 — 는 검증 프로그램에 있습니다; 이것은 요약입니다.
GitGalaxy는 고정된 Language Crucible 코퍼스에서 Tree-sitter와 Universal Ctags를 기준으로 벤치마크됩니다 — 45개 언어 중 24개가 세 도구 모두로, 13개가 두 도구로 평가되며, 모든 불일치는 실제 소스와 대조하여 조사되고 판정과 함께 기록됩니다(기록된 201개 불일치 형태 중 200개 검증됨). 해당 코퍼스에서 GitGalaxy의 검증된 함수 정밀도는 tree-sitter와 비교 가능한 31개 언어 전체에서 100%이며, 검증된 클래스 또는 인자 불일치에서 잘못된 것으로 판명된 도구가 결코 아닙니다. 한계: 세 개의 구조적 대상, 하나의 고정 코퍼스 — 일반적으로 "AST만큼 정확하게 파싱한다"는 것이 아닙니다.
블라스트 반경, PageRank, "구조적 기둥"은 임포트 그래프에서 나옵니다. 함수 수준 순위는 호출 그래프에서 나옵니다. 아직 모든 언어에서 두 그래프가 측정되지는 않았으며, 아래 차트는 어느 것이 측정되었는지 보여줍니다:
2026-09-26 기준, 59개 언어 중:
임포트 그래프는 20개에서 측정됩니다. 엔진 엣지는 고정된 실제 저장소에서 각 언어
자체의 임포트 문과 대조하여 확인됩니다
(import_graph_accuracy.py).
피호출자 이름은 11개에서 측정됩니다, tree-sitter와 대조하여.
호출 해석은 3개에서 측정됩니다, 참조 분석기와 대조하여:
호출 링크는 만들어질 때 대체로 정확하지만, 호출의 약 절반 이상이 링크되지 않은 채 남습니다. 따라서 함수 수준 팬인과 PageRank는 하한입니다.
한계:
*는 소스와 대조한 판정을 아직 기다리는 불일치가 있는 숫자를 표시합니다.이러한 격차를 해소할 계획은 epic #3772입니다.