55 lines
3.6 KiB
Markdown
55 lines
3.6 KiB
Markdown
---
|
|
kind: graphify-meta
|
|
last_generated_at: 2026-07-24T09:43:00+0900
|
|
source_commit: 6154826
|
|
scopes:
|
|
- full
|
|
---
|
|
|
|
# Graph — graphify 산출물 메타
|
|
|
|
이 디렉토리는 `/graphify` 가 생성하는 지식 그래프 산출물의 **메타 정보만** 커밋한다. HTML/JSON/audit 본체는 `.gitignore` 대상이며 재생성 가능하다.
|
|
|
|
> 설치·적용 가이드는 `atp-graphify` add-on 번들의 `graphify-usage.md` 참조.
|
|
|
|
## 엔트리포인트 사용법
|
|
|
|
- 구조 탐색이 필요한 작업 전에 이 파일의 `last_generated_at` 과 `source_commit` 을 확인한다.
|
|
- 메인 브랜치 기준 마지막 소스 커밋보다 뒤쳐져 있다면 `graph-refresh-checker` 서브에이전트를 호출해 staleness 판정을 받는다.
|
|
- 판정 결과가 `partial-stale` / `fully-stale` 이면 메인 에이전트가 `/graphify` 를 호출해 재생성하고, 이 파일을 갱신한다.
|
|
- 더 이상 관련 없는 scope (제거된 모듈 등) 의 산출물은 재생성 전 **삭제** 한다.
|
|
|
|
## 산출물 레이아웃
|
|
|
|
```
|
|
docs/graph/
|
|
├── index.md # 이 파일 — 메타, 커밋 대상
|
|
├── .gitignore # 본체 무시
|
|
└── <scope>/ # scope 별 산출물 디렉토리 (무시됨)
|
|
├── graph.html
|
|
├── graph.json
|
|
└── audit.md
|
|
```
|
|
|
|
scope 예시: `full`, `src`, `docs`, `src-features` 등.
|
|
|
|
> **scope 전략**: 이 프로젝트는 `full` 단일 scope를 기본으로 한다 (src 1840노드 + docs 198노드 = 2038노드 수준은 단일 그래프로 감당 가능). src↔docs 교차 엣지(코드↔설계문서 관계)가 살아있어야 작업 컨텍스트가 끊기지 않기 때문. 규모가 수만 노드 수준으로 비대해지면 scope 분리 재검토.
|
|
|
|
## Scopes
|
|
|
|
| scope | 마지막 생성 | 소스 커밋 | 대상 경로 | 요약 |
|
|
| --- | --- | --- | --- | --- |
|
|
| `full` | 2026-07-24 | `6154826` | `src/` + `docs/` | **incremental update** — 3커밋분 변경(4 파일: PostController.java + docs 3건) 재추출 후 `build_merge` 병합 시 고스트 중복 20 exact + 11 fuzzy 추가 제거(1477→1507 노드, 4570 엣지, 76 커뮤니티 — 커뮤니티 수 불변이라 기존 라벨 재사용). `posts-list.jsp`/`posts-empty.jspf` 는 canWrite 권한 조건부 렌더 추가했으나 JSP 확장자가 여전히 스캔 범위 밖이라 그래프 미반영. |
|
|
|
|
## 알려진 한계 (영속 — Scopes 표와 달리 재생성해도 덮어쓰지 않음)
|
|
|
|
- **JSP/JSPF 는 graphify 스캔 범위 밖.** `/graphify` 의 code 확장자 판정 목록(`.py .ts .js .go .rs .java .cpp ...`)에 `.jsp`/`.jspf` 가 없어 AST 추출 대상이 아니고, semantic(LLM) 청크로도 code 파일 취급되지 않는다. `src/main/webapp/WEB-INF/views/**` 의 뷰 로직 변경(조건부 렌더, `<%@ include %>` 관계 등)은 구조적으로 그래프에 반영되지 않는다.
|
|
- 재확인 세션: `20260701-083240`, `20260724-092601`(PostController.list() ↔ posts-list.jsp/posts-empty.jspf 의 `canWrite` 바인딩 — 컨트롤러측만 반영, 뷰측 미반영).
|
|
- **적용**: 컨트롤러↔JSP 매핑, 뷰 조건부 렌더 등은 graphify query 로 찾지 말고 `grep`/`Read` 로 직접 확인한다. `graph-refresh-checker` 는 변경분이 JSP/JSPF 뿐이면 incremental 재추출을 시도하지 않고 "그래프 미반영(알려진 한계)"로 즉시 판정해도 된다(no-scope-change 취급).
|
|
|
|
## 갱신 시 체크리스트
|
|
|
|
- [ ] frontmatter 의 `last_generated_at`, `source_commit`, `scopes` 갱신
|
|
- [ ] 아래 "Scopes" 표에 한 줄 추가/갱신
|
|
- [ ] 폐기된 scope 가 있다면 해당 디렉토리 `rm -rf` + 표에서 제거
|