From 49c395cd95a4a01609900a8296693a3958a3c858 Mon Sep 17 00:00:00 2001 From: Kobe Date: Tue, 15 Sep 2026 05:45:56 +0900 Subject: [PATCH 1/3] docs: update Korean README translation This PR updates docs/translations/README.ko-KR.md using the English README on the v8 branch. It expands the Korean documentation for installation, supported platforms, commands, environment variables, troubleshooting, and contributing, while improving the wording for Korean readers. This change is limited to documentation. --- docs/translations/README.ko-KR.md | 970 +++++++++++++++++++++++++----- 1 file changed, 827 insertions(+), 143 deletions(-) diff --git a/docs/translations/README.ko-KR.md b/docs/translations/README.ko-KR.md index 0fa46a211d..74361f34c4 100644 --- a/docs/translations/README.ko-KR.md +++ b/docs/translations/README.ko-KR.md @@ -2,281 +2,965 @@ šŸ‡ŗšŸ‡ø [English](../../README.md) | šŸ‡ØšŸ‡³ [简体中文](README.zh-CN.md) | šŸ‡ÆšŸ‡µ [ę—„ęœ¬čŖž](README.ja-JP.md) | šŸ‡°šŸ‡· [ķ•œźµ­ģ–“](README.ko-KR.md) | šŸ‡©šŸ‡Ŗ [Deutsch](README.de-DE.md) | šŸ‡«šŸ‡· [FranƧais](README.fr-FR.md) | šŸ‡ŖšŸ‡ø [EspaƱol](README.es-ES.md) | šŸ‡®šŸ‡³ [ą¤¹ą¤æą¤Øą„ą¤¦ą„€](README.hi-IN.md) | šŸ‡§šŸ‡· [PortuguĆŖs](README.pt-BR.md) | šŸ‡·šŸ‡ŗ [Русский](README.ru-RU.md) | šŸ‡øšŸ‡¦ [Ų§Ł„Ų¹Ų±ŲØŁŠŲ©](README.ar-SA.md) | šŸ‡®šŸ‡¹ [Italiano](README.it-IT.md) | šŸ‡µšŸ‡± [Polski](README.pl-PL.md) | šŸ‡³šŸ‡± [Nederlands](README.nl-NL.md) | šŸ‡¹šŸ‡· [TürkƧe](README.tr-TR.md) | šŸ‡ŗšŸ‡¦ [Š£ŠŗŃ€Š°Ń—Š½ŃŃŒŠŗŠ°](README.uk-UA.md) | šŸ‡»šŸ‡³ [Tiįŗæng Việt](README.vi-VN.md) | šŸ‡®šŸ‡© [Bahasa Indonesia](README.id-ID.md) | šŸ‡øšŸ‡Ŗ [Svenska](README.sv-SE.md) | šŸ‡¬šŸ‡· [Ελληνικά](README.el-GR.md) | šŸ‡·šŸ‡“ [RomĆ¢nă](README.ro-RO.md) | šŸ‡ØšŸ‡æ [ČeÅ”tina](README.cs-CZ.md) | šŸ‡«šŸ‡® [Suomi](README.fi-FI.md) | šŸ‡©šŸ‡° [Dansk](README.da-DK.md) | šŸ‡³šŸ‡“ [Norsk](README.no-NO.md) | šŸ‡­šŸ‡ŗ [Magyar](README.hu-HU.md) | šŸ‡¹šŸ‡­ [ภาษาไทย](README.th-TH.md) | šŸ‡ŗšŸ‡æ [OŹ»zbekcha](README.uz-UZ.md) | šŸ‡¹šŸ‡¼ [繁體中文](README.zh-TW.md) -[![CI](https://github.com/safishamsi/graphify/actions/workflows/ci.yml/badge.svg?branch=v3)](https://github.com/safishamsi/graphify/actions/workflows/ci.yml) -[![PyPI](https://img.shields.io/pypi/v/graphifyy)](https://pypi.org/project/graphifyy/) -[![Sponsor](https://img.shields.io/badge/sponsor-safishamsi-ea4aaa?logo=github-sponsors)](https://github.com/sponsors/safishamsi) +

+ Graphify +

-**AI 코딩 ģ–“ģ‹œģŠ¤ķ„“ķŠøė„¼ ģœ„ķ•œ ģŠ¤ķ‚¬.** Claude Code, Codex, OpenCode, OpenClaw, Factory Droid, ė˜ėŠ” Traeģ—ģ„œ `/graphify`넼 ģž…ė „ķ•˜ė©“ ķŒŒģ¼ģ„ ģ½ź³  ģ§€ģ‹ ź·øėž˜ķ”„ė„¼ źµ¬ģ¶•ķ•˜ģ—¬, 미처 ėŖ°ėžė˜ 구씰넼 ė³“ģ—¬ģ¤ė‹ˆė‹¤. ģ½”ė“œė² ģ“ģŠ¤ė„¼ ė” 빠넓게 ģ“ķ•“ķ•˜ź³ , ģ•„ķ‚¤ķ…ģ²˜ ź²°ģ •ģ˜ "ģ“ģœ "넼 ģ°¾ģ•„ė³“ģ„øģš”. +

+ Graphify-Labs%2Fgraphify | Trendshift +

-ģ™„ģ „ķ•œ 멀티모달 지원. ģ½”ė“œ, PDF, ė§ˆķ¬ė‹¤ģš“, 스크린샷, ė‹¤ģ“ģ–“ź·øėžØ, ķ™”ģ“ķŠøė³“ė“œ 사진, 심지얓 다넸 ģ–øģ–“ė”œ 된 ģ“ėÆøģ§€ź¹Œģ§€ — graphifyėŠ” Claude Visionģ„ ģ‚¬ģš©ķ•˜ģ—¬ ģ“ ėŖØė“  ź²ƒģ—ģ„œ ź°œė…ź³¼ ꓀계넼 ģ¶”ģ¶œķ•˜ź³  ķ•˜ė‚˜ģ˜ ź·øėž˜ķ”„ė”œ ģ—°ź²°ķ•©ė‹ˆė‹¤. tree-sitter AST넼 통핓 20개 언얓넼 ģ§€ģ›ķ•©ė‹ˆė‹¤(Python, JS, TS, Go, Rust, Java, C, C++, Ruby, C#, Kotlin, Scala, PHP, Swift, Lua, Zig, PowerShell, Elixir, Objective-C, Julia). +
+
다넸 ģ–øģ–“ė”œ ģ½źø° -> Andrej KarpathyėŠ” 논문, ķŠøģœ—, 스크린샷, 메모넼 ėŖØģ•„ė‘ėŠ” `/raw` ķ“ė”ė„¼ ź“€ė¦¬ķ•©ė‹ˆė‹¤. graphifyėŠ” ė°”ė”œ ź·ø ė¬øģ œģ— ėŒ€ķ•œ ė‹µģž…ė‹ˆė‹¤ — 원본 ķŒŒģ¼ģ„ 직접 ģ½ėŠ” 것 ėŒ€ė¹„ 쿼리당 토큰 ģ†Œė¹„ź°€ 71.5ė°° 적고, ģ„øģ…˜ 간에 ģ˜ģ†ģ ģ“ė©°, ė°œź²¬ķ•œ 것과 ģ¶”ģø”ķ•œ ź²ƒģ„ ģ •ģ§ķ•˜ź²Œ źµ¬ė¶„ķ•©ė‹ˆė‹¤. +šŸ‡ŗšŸ‡ø English | šŸ‡ØšŸ‡³ 简体中文 | šŸ‡ÆšŸ‡µ ę—„ęœ¬čŖž | šŸ‡°šŸ‡· ķ•œźµ­ģ–“ | šŸ‡©šŸ‡Ŗ Deutsch | šŸ‡«šŸ‡· FranƧais | šŸ‡ŖšŸ‡ø EspaƱol | šŸ‡®šŸ‡³ ą¤¹ą¤æą¤Øą„ą¤¦ą„€ | šŸ‡§šŸ‡· PortuguĆŖs | šŸ‡·šŸ‡ŗ Русский | šŸ‡øšŸ‡¦ Ų§Ł„Ų¹Ų±ŲØŁŠŲ© | šŸ‡®šŸ‡· فارسی | šŸ‡®šŸ‡¹ Italiano | šŸ‡µšŸ‡± Polski | šŸ‡³šŸ‡± Nederlands | šŸ‡¹šŸ‡· TürkƧe | šŸ‡ŗšŸ‡¦ Š£ŠŗŃ€Š°Ń—Š½ŃŃŒŠŗŠ° | šŸ‡»šŸ‡³ Tiįŗæng Việt | šŸ‡®šŸ‡© Bahasa Indonesia | šŸ‡øšŸ‡Ŗ Svenska | šŸ‡¬šŸ‡· Ελληνικά | šŸ‡·šŸ‡“ RomĆ¢nă | šŸ‡ØšŸ‡æ ČeÅ”tina | šŸ‡«šŸ‡® Suomi | šŸ‡©šŸ‡° Dansk | šŸ‡³šŸ‡“ Norsk | šŸ‡­šŸ‡ŗ Magyar | šŸ‡¹šŸ‡­ ภาษาไทย | šŸ‡ŗšŸ‡æ OŹ»zbekcha | šŸ‡¹šŸ‡¼ 繁體中文 | šŸ‡µšŸ‡­ Filipino | šŸ‡®šŸ‡± עברית +
+
+ +

+ PyPI + ė‹¤ģš“ė”œė“œ 수 + Discord + YouTube + LinkedIn + YC S26 +

+ +

+ graphify ķ”Œėž«ķ¼ģ˜ v1 ģ •ģ‹ ģ¶œģ‹œė„¼ ģ•žė‘ź³  얼리 ģ•”ģ„øģŠ¤ź°€ ģ‹œģž‘ė˜ģ—ˆģŠµė‹ˆė‹¤: app.graphify.com +

+ +AI 코딩 ė„ģš°ėÆøģ—ģ„œ `/graphify`넼 ģž…ė „ķ•˜ė©“ ķ”„ė”œģ ķŠø 전첓(ģ½”ė“œ, ė¬øģ„œ, PDF, ģ“ėÆøģ§€, ė™ģ˜ģƒ)넼 **ģ§€ģ‹ ź·øėž˜ķ”„**딜 ė§Œė“¤ģ–“ ģ¤ė‹ˆė‹¤. ģ“ģ œ ķŒŒģ¼ģ„ ģ¼ģ¼ģ“ grep으딜 ź²€ģƒ‰ķ•˜ėŠ” ėŒ€ģ‹  **ź·øėž˜ķ”„ģ— 질문**ķ•  수 ģžˆģŠµė‹ˆė‹¤. + +- **ģ½”ė“œ ź·øėž˜ķ”„ėŠ” 묓료딜, ėŖØė“  ģ²˜ė¦¬ėŠ” ė”œģ»¬ģ—ģ„œ.** ģ½”ė“œėŠ” tree-sitterģ˜ ģ¶”ģƒ 구문 트리(AST)딜 ķŒŒģ‹±ķ•©ė‹ˆė‹¤. ź°™ģ€ ģž…ė „ģ—ėŠ” ź°™ģ€ 결과넼 ė‚“ė©°, LLMģ„ ģ‚¬ģš©ķ•˜ģ§€ ģ•Šź³  ė°ģ“ķ„°ė„ 컓퓨터 ė°–ģœ¼ė”œ ģ „ģ†”ķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤. (ė¬øģ„œ, PDF, ģ“ėÆøģ§€, ė™ģ˜ģƒģ€ ė„ģš°ėÆøģ˜ ėŖØėøģ“ė‚˜ ģ„¤ģ •ķ•œ API 키넼 ģ‚¬ģš©ķ•“ ģ˜ėÆøė„¼ ė¶„ģ„ķ•©ė‹ˆė‹¤.) +- **ėŖØė“  ģ—°ź²°ģ—ėŠ” 근거가 ģžˆģŠµė‹ˆė‹¤.** 각 ģ—°ź²°ģ—ėŠ” `EXTRACTED`(ģ†ŒģŠ¤ģ— ėŖ…ģ‹œėØ) ė˜ėŠ” `INFERRED`(graphifyź°€ ꓀계넼 ķ•“ģ„ķ•“ ė„ģ¶œķ•Ø) ķƒœź·øź°€ 붙얓, 직접 ģ¶”ģ¶œķ•œ 정볓와 ģ¶”ė” ķ•œ 정볓넼 구분할 수 ģžˆģŠµė‹ˆė‹¤. +- **범터 ģøė±ģŠ¤ź°€ ģ•„ė‹Œ ģ‹¤ģ œ ź·øėž˜ķ”„ģž…ė‹ˆė‹¤.** ģž„ė² ė”©ģ“ė‚˜ 범터 ģ €ģž„ģ†Œ ģ—†ģ“ ź·øėž˜ķ”„ė„¼ 직접 ķƒģƒ‰ķ•©ė‹ˆė‹¤. ģ§ˆė¬øģ„ ķ•˜ź±°ė‚˜, 두 ģš”ģ†Œ ģ‚¬ģ“ģ˜ 경딜넼 ģ¶”ģ ķ•˜ź±°ė‚˜, ķŠ¹ģ • ź°œė…ģ— ėŒ€ķ•œ ģ„¤ėŖ…ģ„ ķ™•ģøķ•  수 ģžˆģŠµė‹ˆė‹¤. + +> ķ•„ģš”ķ•  ė•Œė§Œ ģ‹¤ķ–‰ķ•˜ėŠ” ė°ģ„œ ė‚˜ģ•„ź°€, ģ½”ė“œĀ·ė¬øģ„œĀ·ķšŒģ˜ ģ „ė°˜ģ˜ 정볓넼 ė°±ź·øė¼ģš“ė“œģ—ģ„œ ź³„ģ† ź°±ģ‹ ķ•˜ź³  ģ‹¶ģœ¼ģ‹ ź°€ģš”? **[graphify.com](https://graphify.com)**ģ—ģ„œ ė°”ė”œ 그런 ģ„œė¹„ģŠ¤ė„¼ ė§Œė“¤ź³  ģžˆģŠµė‹ˆė‹¤. ģ§€źøˆ **[app.graphify.com](https://app.graphify.com/login)**ģ—ģ„œ 얼리 ģ•”ģ„øģŠ¤ė„¼ ģ“ģš©ķ•  수 ģžˆģŠµė‹ˆė‹¤. + +

+ FastAPI ģ½”ė“œė² ģ“ģŠ¤ė„¼ ķž˜ 기반 ė ˆģ“ģ•„ģ›ƒģ˜ ģ§€ģ‹ ź·øėž˜ķ”„ė”œ 볓여 ģ£¼ėŠ” graphifyģ˜ ėŒ€ķ™”ķ˜• graph.html. ķƒģ§€ėœ ģ»¤ė®¤ė‹ˆķ‹°ģ˜ ė²”ė”€ė„ ķ‘œģ‹œė©ė‹ˆė‹¤. +

+

+ graphify딜 ģ‹œź°ķ™”ķ•œ FastAPI ģ½”ė“œė² ģ“ģŠ¤ģž…ė‹ˆė‹¤. 각 ė…øė“œėŠ” ķ•˜ė‚˜ģ˜ ź°œė…ģ„, ģƒ‰ģƒģ€ ķƒģ§€ėœ ģ»¤ė®¤ė‹ˆķ‹°ė„¼ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤. graph.htmlģ—ģ„œ ėŖØė“  ģš”ģ†Œė„¼ 큓릭핓 ģ‚“ķŽ“ė³¼ 수 ģžˆģŠµė‹ˆė‹¤. +

+ +**ģ‹œģž‘ķ•˜źø°**(30쓈): + +```bash +uv tool install graphifyy # CLI ģ„¤ģ¹˜ (ė˜ėŠ”: pipx install graphifyy) +graphify install # AI ė„ģš°ėÆøģ— ģŠ¤ķ‚¬ ė“±ė” ``` -/graphify . # ģ–“ė–¤ ķ“ė”ė“  ė™ģž‘ - ģ½”ė“œė² ģ“ģŠ¤, ė…øķŠø, 논문, ė¬“ģ—‡ģ“ė“  + +그런 ė‹¤ģŒ AI ė„ģš°ėÆøģ—ģ„œ ė‹¤ģŒģ„ ģž…ė „ķ•©ė‹ˆė‹¤. + ``` +/graphify . +``` + +ģ“ź²ƒģœ¼ė”œ ėģž…ė‹ˆė‹¤. ė‹¤ģŒ **ķŒŒģ¼ 3개**ź°€ ģƒģ„±ė©ė‹ˆė‹¤. ``` graphify-out/ -ā”œā”€ā”€ graph.html ģøķ„°ėž™ķ‹°ėøŒ ź·øėž˜ķ”„ - ė…øė“œ 큓릭, ź²€ģƒ‰, ģ»¤ė®¤ė‹ˆķ‹°ė³„ ķ•„ķ„° -ā”œā”€ā”€ GRAPH_REPORT.md ź°“ ė…øė“œ, ģ˜ģ™øģ˜ ģ—°ź²°, ģ¶”ģ²œ 질문 -ā”œā”€ā”€ graph.json ģ˜ģ† ź·øėž˜ķ”„ - ėŖ‡ 주 ķ›„ģ—ė„ ģž¬ģ½źø° ģ—†ģ“ 쿼리 ź°€ėŠ„ -└── cache/ SHA256 ģŗģ‹œ - ģž¬ģ‹¤ķ–‰ ģ‹œ ė³€ź²½ėœ ķŒŒģ¼ė§Œ 처리 +ā”œā”€ā”€ graph.html ėøŒė¼ģš°ģ €ģ—ģ„œ ģ—“ģ–“ ė…øė“œė„¼ ķ“ė¦­ķ•˜ź³  ķ•„ķ„°ė§Ā·ź²€ģƒ‰ +ā”œā”€ā”€ GRAPH_REPORT.md 핵심 ź°œė…, ģ˜ģ™øģ˜ ģ—°ź²° ꓀계, ģ¶”ģ²œ ģ§ˆė¬øģ„ ģ •ė¦¬ķ•œ ė³“ź³ ģ„œ +└── graph.json 전첓 ź·øėž˜ķ”„ — 원본 ķŒŒģ¼ģ„ ė‹¤ģ‹œ ģ½ģ§€ ģ•Šź³  ģ–øģ œė“  ģ§ˆģ˜ ź°€ėŠ„ ``` -ź·øėž˜ķ”„ģ— ķ¬ķ•Øķ•˜ģ§€ ģ•Šģ„ ķ“ė”ė„¼ ģ œģ™øķ•˜ė ¤ė©“ `.graphifyignore` ķŒŒģ¼ģ„ ģ¶”ź°€ķ•˜ģ„øģš”: +Claude Code, Cursor, Codex, Gemini CLI, GitHub Copilotģ„ 비딯핓 **15개 ģ“ģƒģ˜ 다넸 ė„ģš°ėÆøģ—ģ„œė„ ģž‘ė™ķ•©ė‹ˆė‹¤.** — [ģ‚¬ģš©ķ•˜ėŠ” ķ”Œėž«ķ¼ ģ„ ķƒķ•˜źø°](#install) + +--- + +## ģ‹¤ģ œ ģ‚¬ģš© ģ˜ˆģ‹œ + +

+ graphify 경딜 ģ§ˆģ˜ ģ˜ˆģ‹œ: ķ„°ėÆøė„ģ—ģ„œ FastAPI와 ModelField ģ‚¬ģ“ģ˜ ģµœė‹Ø 경딜넼 ģš”ģ²­ķ•˜ė©“ ģ§€ģ‹ ź·øėž˜ķ”„ģ˜ 핓당 ź²½ė”œź°€ ė‹Øź³„ė³„ė”œ ź°•ģ”°ė©ė‹ˆė‹¤. +

+ +ź·øėž˜ķ”„ė„¼ ķ•œ 번 ė§Œė“¤ė©“ ķŒŒģ¼ģ„ 직접 ģ½ėŠ” ėŒ€ģ‹  ź·øėž˜ķ”„ģ— ģ§ˆģ˜ķ•  수 ģžˆģŠµė‹ˆė‹¤. ģœ„ģ˜ FastAPI ģ½”ė“œė² ģ“ģŠ¤ģ— graphify넼 ģ‹¤ķ–‰ķ•œ ģ‹¤ģ œ ģ¶œė „ģž…ė‹ˆė‹¤. +```text +$ graphify explain "APIRouter" +Node: APIRouter + Source: routing.py L2210 + Community: 2 + Degree: 47 + +Connections (47): + --> RequestValidationError [uses] [INFERRED] + --> Dependant [uses] [INFERRED] + --> .get() [method] [EXTRACTED] + <-- __init__.py [imports] [EXTRACTED] + ... + +$ graphify path "FastAPI" "ModelField" +Shortest path (3 hops): + FastAPI --uses--> DefaultPlaceholder <--references-- get_request_handler() --references--> ModelField ``` -# .graphifyignore -vendor/ -node_modules/ -dist/ -*.generated.py + +ėŖØė“  엣지(ģ—°ź²° ꓀계)ģ—ėŠ” **ģ‹ ė¢°ė„ 태그**ź°€ ė¶™ģŠµė‹ˆė‹¤. `EXTRACTED`ėŠ” ģ†ŒģŠ¤ģ— ėŖ…ģ‹œėœ ꓀계, `INFERRED`ėŠ” ꓀계넼 ķ•“ģ„ķ•“ ė„ģ¶œķ•œ 결과넼 ėœ»ķ•˜ėÆ€ė”œ, 직접 ģ½ģ–“ 낸 정볓와 ģ¶”ė” ķ•œ 정볓넼 구분할 수 ģžˆģŠµė‹ˆė‹¤. `graphify query ""`ģ€ ģžģ—°ģ–“ 질문과 ź“€ė Øėœ 부분 ź·øėž˜ķ”„ė„¼ ė°˜ķ™˜ķ•˜ź³ , `graphify path A B`ėŠ” 두 ģš”ģ†Œź°€ ģ–“ė–»ź²Œ ģ—°ź²°ė˜ėŠ”ģ§€ ģ¶”ģ ķ•©ė‹ˆė‹¤. + +--- + +## ģ£¼ģš” 기늄 + +기본으딜 ģ œź³µė˜ėŠ” źø°ėŠ„ģ€ ė‹¤ģŒź³¼ ź°™ģŠµė‹ˆė‹¤. + +| 기늄 | 제공 ė‚“ģš© | +|---|---| +| **핵심 ķ—ˆėøŒ ė…øė“œ(God nodes)** | ģ—°ź²°ģ“ ź°€ģž„ ė§Žģ€ ź°œė…ģ„ 찾아, ķ”„ė”œģ ķŠøģ˜ ķė¦„ģ“ 얓디에 ģ§‘ģ¤‘ė˜ėŠ”ģ§€ 볓여 ģ¤ė‹ˆė‹¤. | +| **ģ»¤ė®¤ė‹ˆķ‹°** | Leiden ģ•Œź³ ė¦¬ģ¦˜ģœ¼ė”œ ź·øėž˜ķ”„ė„¼ ķ•˜ģœ„ ģ‹œģŠ¤ķ…œ ė‹Øģœ„ė”œ ė‚˜ėˆ„ź³ , LLM ģ—†ģ“ ģ“ė¦„ģ„ ė¶™ģž…ė‹ˆė‹¤. | +| **ķŒŒģ¼ ź°„ ģ—°ź²°** | tree-sitter AST넼 ģ‚¬ģš©ķ•“ 약 40개 ģ–øģ–“ģ—ģ„œ `calls` / `imports` / `inherits` / `mixes_in` ꓀계넼 ķŒŒģ•…ķ•©ė‹ˆė‹¤. | +| **ģ§ˆģ˜Ā·ź²½ė”œ 추적·설명** | `graph.json`ģ„ ė°”ķƒ•ģœ¼ė”œ ģ§ˆė¬øģ— ė‹µķ•˜ź³ , 두 ģš”ģ†Œ ģ‚¬ģ“ģ˜ 경딜넼 ģ¶”ģ ķ•˜ź³ , ķŠ¹ģ • ź°œė…ģ„ ģ„¤ėŖ…ķ•©ė‹ˆė‹¤. | +| **설계 근거와 ė¬øģ„œ ģ°øģ”°** | `# NOTE:` / `# WHY:` ģ£¼ģ„ź³¼ ADR/RFC ģøģš©ģ„ ė…ė¦½ģ ģø ė…øė“œė”œ ė§Œė“¤ź³  ꓀련 ģ½”ė“œģ— ģ—°ź²°ķ•©ė‹ˆė‹¤. | +| **ģ½”ė“œ ģ™øģ˜ ģžė£Œė„ 지원** | ė¬øģ„œ, PDF, ģ“ėÆøģ§€, ė™ģ˜ģƒĀ·ģ˜¤ė””ģ˜¤ė„¼ 모두 ź°™ģ€ ź·øėž˜ķ”„ģ— ė‹“ģŠµė‹ˆė‹¤. | +| **딜컬 ģš°ģ„  처리** | ģ½”ė“œėŠ” tree-sitter딜 ė”œģ»¬ģ—ģ„œ ķŒŒģ‹±ķ•©ė‹ˆė‹¤(LLMģ„ ģ‚¬ģš©ķ•˜ģ§€ ģ•Šģœ¼ė©° 외부 ģ „ģ†”ė„ ģ—†ģŠµė‹ˆė‹¤). ė¬øģ„œĀ·ėÆøė””ģ–“ģ˜ ģ˜ėÆø ė¶„ģ„ģ—ė§Œ ė°±ģ—”ė“œė„¼ ķ˜øģ¶œķ•˜ė©°, ģ“ ģ—­ģ‹œ ė°±ģ—”ė“œė„¼ ģ„¤ģ •ķ–ˆģ„ ė•Œė§Œ ģˆ˜ķ–‰ķ•©ė‹ˆė‹¤. | + +--- + +## 벤치마크 + +| 벤치마크 | ģ§€ķ‘œ | graphify | 비교 ėŒ€ģƒ | +|---|---|---|---| +| LOCOMO (n=300) | recall@10 | **0.497** | mem0 0.048, supermemory 0.149 | +| LOCOMO (n=300) | ģ§ˆģ˜ģ‘ė‹µ ģ •ķ™•ė„ | 45.3% | supermemory 49.7%, mem0 27.3% | +| LongMemEval-S (n=50) | ģ§ˆģ˜ģ‘ė‹µ ģ •ķ™•ė„ | **76%** | dense RAG와 ė™ė„  | +| ź·øėž˜ķ”„ 구축 | LLM ķ¬ė ˆė”§ | **0** | ėŒ€ė¶€ė¶„ģ˜ ģ‹œģŠ¤ķ…œģ€ 토큰별 과금 | + +ėŖØė“  ģ‹œģŠ¤ķ…œģ„ ė™ģ¼ķ•œ ķ…ŒģŠ¤ķŠø ķ™˜ź²½ģ—ģ„œ ź°™ģ€ ėŖØėøź³¼ ģ˜ˆģ‚°ģœ¼ė”œ ģ‹¤ķ–‰ķ–ˆģŠµė‹ˆė‹¤. ķ‰ź°€ėŠ” ė³„ė„ģ˜ 두 번째 ķ‰ź°€ģžģ™€ ėø”ė¼ģøė“œ ė°©ģ‹ģœ¼ė”œ ėŒ€ģ”° ź²€ģ¦ķ–ˆģŠµė‹ˆė‹¤(ģ¼ģ¹˜ģœØ 90.6%, Cohen's kappa 0.81). ģ‹œģŠ¤ķ…œė³„ 전첓 ź²°ź³¼ķ‘œ, ģ½”ė“œ ģ“ķ•“ ģ„±ėŠ„ ź²°ź³¼, ģž¬ķ˜„ ėŖ…ė ¹ģ–“ėŠ” **[BENCHMARKS.md](https://github.com/Graphify-Labs/graphify/blob/v8/BENCHMARKS.md)**ģ—ģ„œ ķ™•ģøķ•  수 ģžˆģŠµė‹ˆė‹¤. + +--- + +## 사전 준비 + +| ķ•„ģˆ˜ ė„źµ¬ | ģµœģ†Œ 버전 | ķ™•ģø 방법 | ģ„¤ģ¹˜ 방법 | +|---|---|---|---| +| Python | 3.10 ģ“ģƒ | `python --version` | [python.org](https://www.python.org/downloads/) | +| uv *(ź¶Œģž„)* | ģ œķ•œ ģ—†ģŒ | `uv --version` | `curl -LsSf https://astral.sh/uv/install.sh \| sh` | +| pipx *(ėŒ€ģ•ˆ)* | ģ œķ•œ ģ—†ģŒ | `pipx --version` | `pip install pipx` | + +**macOS 빠넸 ģ„¤ģ¹˜(Homebrew):** + +```bash +brew install python@3.12 uv ``` -`.gitignore`와 ė™ģ¼ķ•œ ė¬øė²•ģž…ė‹ˆė‹¤. ķŒØķ„“ģ€ graphify넼 ģ‹¤ķ–‰ķ•œ ķ“ė” źø°ģ¤€ģ˜ ģƒėŒ€ ź²½ė”œģ— ėŒ€ķ•“ ė§¤ģ¹­ė©ė‹ˆė‹¤. +**Windows 빠넸 ģ„¤ģ¹˜:** + +```powershell +winget install astral-sh.uv +``` -## ė™ģž‘ 원리 +**Ubuntu/Debian:** -graphifyėŠ” 두 ė²ˆģ˜ 패스딜 ģ‹¤ķ–‰ė©ė‹ˆė‹¤. 첫 ė²ˆģ§øėŠ” 결정딠적 AST 패스딜, ģ½”ė“œ ķŒŒģ¼ģ—ģ„œ 구씰(ķ“ėž˜ģŠ¤, ķ•Øģˆ˜, ģž„ķ¬ķŠø, 콜 ź·øėž˜ķ”„, docstring, 근거 ģ£¼ģ„)넼 LLM ģ—†ģ“ ģ¶”ģ¶œķ•©ė‹ˆė‹¤. 두 ė²ˆģ§øėŠ” Claude ģ„œėøŒģ—ģ“ģ „ķŠøź°€ ė¬øģ„œ, 논문, ģ“ėÆøģ§€ģ— ėŒ€ķ•“ ė³‘ė ¬ė”œ ģ‹¤ķ–‰ė˜ģ–“ ź°œė…, ꓀계, 설계 근거넼 ģ¶”ģ¶œķ•©ė‹ˆė‹¤. ź²°ź³¼ėŠ” NetworkX ź·øėž˜ķ”„ė”œ ė³‘ķ•©ė˜ź³ , Leiden ģ»¤ė®¤ė‹ˆķ‹° ķƒģ§€ė”œ ķ“ėŸ¬ģŠ¤ķ„°ė§ė˜ė©°, ģøķ„°ėž™ķ‹°ėøŒ HTML, 쿼리 ź°€ėŠ„ķ•œ JSON, 그리고 ģ¼ė°˜ ģ–øģ–“ 감사 ė³“ź³ ģ„œė”œ ė‚“ė³“ė‚“ģ§‘ė‹ˆė‹¤. +```bash +sudo apt install python3.12 python3-pip pipx +# ė˜ėŠ” uv ģ„¤ģ¹˜: +curl -LsSf https://astral.sh/uv/install.sh | sh +``` -**ķ“ėŸ¬ģŠ¤ķ„°ė§ģ€ ź·øėž˜ķ”„ ķ† ķ“ė”œģ§€ 기반 — ģž„ė² ė”©ģ„ ģ‚¬ģš©ķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤.** Leidenģ€ 엣지 ė°€ė„ė„¼ 기반으딜 ģ»¤ė®¤ė‹ˆķ‹°ė„¼ ģ°¾ģŠµė‹ˆė‹¤. Claudeź°€ ģ¶”ģ¶œķ•˜ėŠ” ģ˜ėÆøģ  ģœ ģ‚¬ģ„± 엣지(`semantically_similar_to`, INFERRED딜 ķ‘œģ‹œ)ėŠ” ģ“ėÆø ź·øėž˜ķ”„ģ— ķ¬ķ•Øė˜ģ–“ ģžˆģœ¼ėÆ€ė”œ ģ»¤ė®¤ė‹ˆķ‹° ķƒģ§€ģ— 직접 ģ˜ķ–„ģ„ ģ¤ė‹ˆė‹¤. ź·øėž˜ķ”„ 구씰 ģžģ²“ź°€ ģœ ģ‚¬ģ„± ģ‹ ķ˜øģ“ė©° — ė³„ė„ģ˜ ģž„ė² ė”© ė‹Øź³„ė‚˜ 범터 ė°ģ“ķ„°ė² ģ“ģŠ¤ź°€ ķ•„ģš”ķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤. +--- -ėŖØė“  ź“€ź³„ėŠ” `EXTRACTED`(ģ†ŒģŠ¤ģ—ģ„œ 직접 발견), `INFERRED`(합리적 추딠, ģ‹ ė¢°ė„ 점수 ķ¬ķ•Ø), `AMBIGUOUS`(리뷰 ķ•„ģš” ķ‘œģ‹œ) 중 ķ•˜ė‚˜ė”œ ķƒœź¹…ė©ė‹ˆė‹¤. ė¬“ģ—‡ģ“ 발견된 ź²ƒģ“ź³  ė¬“ģ—‡ģ“ ģ¶”ģø”ėœ ź²ƒģøģ§€ ķ•­ģƒ ģ•Œ 수 ģžˆģŠµė‹ˆė‹¤. + ## ģ„¤ģ¹˜ -**ķ•„ģˆ˜ ģš”źµ¬ģ‚¬ķ•­:** Python 3.10+ ė° ė‹¤ģŒ 중 ķ•˜ė‚˜: [Claude Code](https://claude.ai/code), [Codex](https://openai.com/codex), [OpenCode](https://opencode.ai), [OpenClaw](https://openclaw.ai), [Factory Droid](https://factory.ai), ė˜ėŠ” [Trae](https://trae.ai) +> **ź³µģ‹ ķŒØķ‚¤ģ§€:** PyPI ķŒØķ‚¤ģ§€ ģ“ė¦„ģ€ `graphifyy`ģž…ė‹ˆė‹¤(yź°€ 두 개). PyPIģ˜ 다넸 `graphify*` ķŒØķ‚¤ģ§€ėŠ” ģ“ ķ”„ė”œģ ķŠøģ™€ ź“€ė Øģ“ ģ—†ģŠµė‹ˆė‹¤. CLI ėŖ…ė ¹ģ–“ėŠ” ź·øėŒ€ė”œ `graphify`ģž…ė‹ˆė‹¤. + +**1단계 — ķŒØķ‚¤ģ§€ ģ„¤ģ¹˜:** + +```bash +# ź¶Œģž„ (격리된 ķ™˜ź²½ģ— ģ„¤ģ¹˜. ģ„¤ģ¹˜ 후 'graphify'넼 찾지 ėŖ»ķ•˜ė©“ uv tool update-shell 실행): +uv tool install graphifyy + +# 다넸 ģ„¤ģ¹˜ 방법: +pipx install graphifyy +pip install graphifyy # PATH ģ„¤ģ •ģ“ ķ•„ģš”ķ•  수 ģžˆģŒ — ģ•„ėž˜ ģ°øź³  +``` + +**2단계 — AI ė„ģš°ėÆøģ— ģŠ¤ķ‚¬ ė“±ė”:** + +```bash +graphify install +``` + +ģ„¤ģ¹˜ź°€ ėė‚¬ģŠµė‹ˆė‹¤. AI ė„ģš°ėÆøė„¼ ģ—“ź³  `/graphify .`넼 ģž…ė „ķ•˜ģ„øģš”. + +ģ‚¬ģš©ģž ķ”„ė”œķ•„ ėŒ€ģ‹  ķ˜„ģž¬ ģ €ģž„ģ†Œģ— ė„ģš°ėÆø ģŠ¤ķ‚¬ģ„ ģ„¤ģ¹˜ķ•˜ė ¤ė©“ `--project`넼 ģ¶”ź°€ķ•©ė‹ˆė‹¤. ```bash -pip install graphifyy && graphify install +graphify install --project +graphify install --project --platform codex ``` -> PyPI ķŒØķ‚¤ģ§€ėŠ” `graphify` ģ“ė¦„ģ„ ė˜ģ°¾ėŠ” ė™ģ•ˆ ģž„ģ‹œė”œ `graphifyy`딜 ėŖ…ėŖ…ė˜ģ–“ ģžˆģŠµė‹ˆė‹¤. CLI와 ģŠ¤ķ‚¬ ėŖ…ė ¹ģ€ ģ—¬ģ „ķžˆ `graphify`ģž…ė‹ˆė‹¤. +ķ”„ė”œģ ķŠø ė‹Øģœ„ ģ„¤ģ¹˜ėŠ” ķ˜„ģž¬ 디렉터리 ģ•„ėž˜ģ— ķŒŒģ¼ģ„ ģƒģ„±ķ•©ė‹ˆė‹¤. 예넼 들얓 `.claude/skills/graphify/SKILL.md` ė˜ėŠ” `.agents/skills/graphify/SKILL.md`와, ģŠ¤ķ‚¬ģ“ ķ•„ģš”ķ•  ė•Œ ė¶ˆėŸ¬ģ˜¤ėŠ” 볓씰 ģžė£Œ 디렉터리 `references/`ź°€ ė§Œė“¤ģ–“ģ§‘ė‹ˆė‹¤. 커밋할 수 ģžˆėŠ” ķŒŒģ¼ģ— ėŒ€ķ•“ģ„œėŠ” `git add` ģ•ˆė‚“ė„ ģ¶œė „ķ•©ė‹ˆė‹¤. ķ”„ė”œģ ķŠø ė‹Øģœ„ ģ„¤ģ¹˜ė„¼ ģ§€ģ›ķ•˜ėŠ” ķ”Œėž«ķ¼ė³„ ėŖ…ė ¹ģ–“ģ—ė„ ź°™ģ€ ķ”Œėž˜ź·øė„¼ ģ‚¬ģš©ķ•  수 ģžˆģŠµė‹ˆė‹¤. 예: `graphify claude install --project`, `graphify codex install --project`. + +> **PowerShell ģ°øź³ :** `/graphify .` ėŒ€ģ‹  `graphify .`넼 ģ‚¬ģš©ķ•˜ģ„øģš”. PowerShellģ—ģ„œėŠ” ė§Ø ģ•žģ˜ ģŠ¬ėž˜ģ‹œė„¼ 경딜 źµ¬ė¶„ģžė”œ ķ•“ģ„ķ•©ė‹ˆė‹¤. + +> **`graphify: command not found`ź°€ ķ‘œģ‹œė˜ė‚˜ģš”?** `uv tool install` / `pipx install`ģ€ ė„źµ¬ 실행 ķŒŒģ¼ 디렉터리(`~/.local/bin`)에 `graphify` 명령얓넼 ģ„¤ģ¹˜ķ•©ė‹ˆė‹¤. ģ„¤ģ¹˜ 직후 ģ…øģ“ 명령얓넼 찾지 ėŖ»ķ•œė‹¤ė©“ ģ“ 디렉터리가 아직 `PATH`에 ģ—†ėŠ” ź²ƒģž…ė‹ˆė‹¤. 새딜 ģ„¤ģ •ķ•œ macOS + zsh ķ™˜ź²½ģ—ģ„œ ķ”ķžˆ ė°œģƒķ•©ė‹ˆė‹¤. `uv tool update-shell`(ė˜ėŠ” `pipx ensurepath`)ģ„ ģ‹¤ķ–‰ķ•œ ė’¤ 새 ķ„°ėÆøė„ģ„ ģ—¬ģ„øģš”. ģ¼ė°˜ `pip`딜 ģ„¤ģ¹˜ķ–ˆė‹¤ė©“ `~/.local/bin`(Linux) ė˜ėŠ” `~/Library/Python/3.x/bin`(Mac)ģ„ PATH에 ģ¶”ź°€ķ•˜ź±°ė‚˜ `python -m graphify`딜 ģ‹¤ķ–‰ķ•˜ģ„øģš”. + +> **ģ„¤ģ¹˜ ģ—†ģ“ `uvx` / `uv tool run`으딜 ģ‹¤ķ–‰ķ•˜ė ¤ė©“?** 명령얓 ģ“ė¦„ģ“ ģ•„ė‹Œ ķŒØķ‚¤ģ§€ ģ“ė¦„ģ„ ģ§€ģ •ķ•˜ģ„øģš”: `uvx --from graphifyy graphify install`. ė‹Øģˆœķžˆ `uvx graphify …`딜 ģ‹¤ķ–‰ķ•˜ė©“ `No solution found … no versions of graphify` ģ˜¤ė„˜ź°€ ė°œģƒķ•©ė‹ˆė‹¤. `uv tool run`ģ€ 첫 단얓넼 *ķŒØķ‚¤ģ§€* ģ“ė¦„ģœ¼ė”œ ķ•“ģ„ķ•˜źø° ė•Œė¬øģž…ė‹ˆė‹¤. ķŒØķ‚¤ģ§€ ģ“ė¦„ģ€ `graphifyy`ģ“ź³ , ź·ø ģ•ˆģ— `graphify` 명령얓가 들얓 ģžˆģŠµė‹ˆė‹¤. -### ķ”Œėž«ķ¼ 지원 +> **Mac/Windowsģ—ģ„œėŠ” ź°€ėŠ„ķ•˜ė©“ `pip install`ģ„ ķ”¼ķ•˜ģ„øģš”.** ģŠ¤ķ‚¬ģ€ 실행 ģ‹œ `graphify-out/.graphify_python`ģ—ģ„œ Python 경딜넼 ķ™•ģøķ•©ė‹ˆė‹¤. ģ“ ź²½ė”œź°€ `pip`딜 ķŒØķ‚¤ģ§€ė„¼ ģ„¤ģ¹˜ķ•œ ķ™˜ź²½ź³¼ 다넓멓 `ModuleNotFoundError: No module named 'graphify'`ź°€ ė°œģƒķ•©ė‹ˆė‹¤. `uv tool install`ź³¼ `pipx install`ģ€ ķŒØķ‚¤ģ§€ė„¼ ė³„ė„ ķ™˜ź²½ģ— ź²©ė¦¬ķ•˜ėÆ€ė”œ ģ“ 문제넼 방지할 수 ģžˆģŠµė‹ˆė‹¤. -| ķ”Œėž«ķ¼ | ģ„¤ģ¹˜ ėŖ…ė ¹ | -|--------|-----------| +> **Git ķ›…ź³¼ uv tool / pipx:** `graphify hook install`ģ€ ģ„¤ģ¹˜ ģ‹œģ ģ˜ ģøķ„°ķ”„ė¦¬ķ„° 경딜넼 ķ›… ģŠ¤ķ¬ė¦½ķŠøģ— 직접 źø°ė”ķ•©ė‹ˆė‹¤. ė•ė¶„ģ— `~/.local/bin`ģ“ PATH에 ģ—†ėŠ” GUI Git ķ“ė¼ģ“ģ–øķŠøė‚˜ CI 실행 ķ™˜ź²½ģ—ģ„œė„ post-commit ķ›…ģ“ ģ •ģƒ ģž‘ė™ķ•©ė‹ˆė‹¤. graphify넼 ģž¬ģ„¤ģ¹˜ķ•˜ź±°ė‚˜ ģ—…ź·øė ˆģ“ė“œķ–ˆė‹¤ė©“ `graphify hook install`ģ„ ė‹¤ģ‹œ 실행핓 경딜넼 ź°±ģ‹ ķ•˜ģ„øģš”. + +> **엄격 ėŖØė“œ(Claude Code):** `graphify install --project --strict`넼 ģ‚¬ģš©ķ•˜ė©“ ė„ģš°ėÆøź°€ ģ‹¤ģ œė”œ ź·øėž˜ķ”„ė„¼ ģ‚¬ģš©ķ•˜ė„ė” ź°•ģ œķ•  수 ģžˆģŠµė‹ˆė‹¤. źø°ė³ø ģ„¤ģ¹˜ėŠ” ķŒŒģ¼ģ„ ģ½źø° 전에 `graphify query`넼 ģ‹¤ķ–‰ķ•˜ė„ė” *권고*ķ•©ė‹ˆė‹¤. 엄격 ėŖØė“œėŠ” ģ„øģ…˜ģ—ģ„œ 첫 번째 원본 ģ†ŒģŠ¤ ģ½źø°ė„¼ *차단*ķ•˜ź³  ź·øėž˜ķ”„ė”œ ģ•ˆė‚“ķ•œ ė’¤, ė‹¤ģ‹œ 권고 ė°©ģ‹ģœ¼ė”œ ėŒģ•„ź°‘ė‹ˆė‹¤. ė”°ė¼ģ„œ ģ„øģ…˜ė‹¹ ģµœėŒ€ ķ•œ 번만 ģ°Øė‹Øķ•˜ė©° 반복 차단에 빠지지 ģ•ŠģŠµė‹ˆė‹¤. 실행 ģ‹œ `GRAPHIFY_HOOK_STRICT=1`/`0`으딜 ģ¼œź±°ė‚˜ 끌 수 ģžˆģŠµė‹ˆė‹¤. źø°ė³ø ģ„¤ģ¹˜ģ˜ ė™ģž‘ģ€ 기씓과 ź°™ģ€ 권고 ė°©ģ‹ģž…ė‹ˆė‹¤. + +
+ķ”Œėž«ķ¼ ģ„ ķƒ (20개 ģ“ģƒģ˜ ė„ģš°ėÆø 지원, ķ“ė¦­ķ•˜ģ—¬ ķŽ¼ģ¹˜źø°) + +| ķ”Œėž«ķ¼ | ģ„¤ģ¹˜ 명령얓 | +|----------|----------------| | Claude Code (Linux/Mac) | `graphify install` | | Claude Code (Windows) | `graphify install` (ģžė™ 감지) ė˜ėŠ” `graphify install --platform windows` | +| CodeBuddy | `graphify install --platform codebuddy` | | Codex | `graphify install --platform codex` | | OpenCode | `graphify install --platform opencode` | +| Kilo Code | `graphify install --platform kilo` | +| GitHub Copilot CLI | `graphify install --platform copilot` | +| VS Code Copilot Chat | `graphify vscode install` | +| Aider | `graphify install --platform aider` | | OpenClaw | `graphify install --platform claw` | | Factory Droid | `graphify install --platform droid` | | Trae | `graphify install --platform trae` | | Trae CN | `graphify install --platform trae-cn` | +| Gemini CLI | `graphify install --platform gemini` | +| Hermes | `graphify install --platform hermes` | +| Kimi Code | `graphify install --platform kimi` | +| Amp | `graphify amp install` | +| Agent Skills (ķ”„ė ˆģž„ģ›Œķ¬ 공통) | `graphify install --platform agents` (별칭: `--platform skills`) | +| Kiro IDE/CLI | `graphify kiro install` | +| Pi coding agent | `graphify install --platform pi` | +| Cursor | `graphify cursor install` | +| Devin CLI | `graphify devin install` | +| Google Antigravity | `graphify antigravity install` | -Codex ģ‚¬ģš©ģžėŠ” 병렬 ģ¶”ģ¶œģ„ ģœ„ķ•“ `~/.codex/config.toml`ģ˜ `[features]` ģ•„ėž˜ģ— `multi_agent = true`ė„ ķ•„ģš”ķ•©ė‹ˆė‹¤. Factory DroidėŠ” 병렬 ģ„œėøŒģ—ģ“ģ „ķŠø ė””ģŠ¤ķŒØģ¹˜ģ— `Task` ė„źµ¬ė„¼ ģ‚¬ģš©ķ•©ė‹ˆė‹¤. OpenClawėŠ” 순차 ģ¶”ģ¶œģ„ ģ‚¬ģš©ķ•©ė‹ˆė‹¤(핓당 ķ”Œėž«ķ¼ģ˜ 병렬 ģ—ģ“ģ „ķŠø ģ§€ģ›ģ€ 아직 쓈기 ė‹Øź³„ģž…ė‹ˆė‹¤). TraeėŠ” 병렬 ģ„œėøŒģ—ģ“ģ „ķŠø ė””ģŠ¤ķŒØģ¹˜ģ— Agent ė„źµ¬ė„¼ ģ‚¬ģš©ķ•˜ė©° PreToolUse ķ›…ģ„ **ģ§€ģ›ķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤** — AGENTS.mdź°€ ģƒģ‹œ ģž‘ė™ ė©”ģ»¤ė‹ˆģ¦˜ģž…ė‹ˆė‹¤. +Codexģ—ģ„œ 병렬 ģ¶”ģ¶œģ„ ģ‚¬ģš©ķ•˜ė ¤ė©“ `~/.codex/config.toml`ģ˜ `[features]` ģ•„ėž˜ģ— `multi_agent = true`ė„ 설정핓야 ķ•©ė‹ˆė‹¤. CodeBuddyėŠ” Claude Code와 ź°™ģ€ Agent ė„źµ¬ ė° PreToolUse ķ›… ė°©ģ‹ģ„ ģ‚¬ģš©ķ•©ė‹ˆė‹¤. Factory DroidėŠ” `Task` ė„źµ¬ė”œ ķ•˜ģœ„ ģ—ģ“ģ „ķŠøė„¼ 병렬 ģ‹¤ķ–‰ķ•©ė‹ˆė‹¤. OpenClaw와 AiderėŠ” 순차 ģ¶”ģ¶œģ„ ģ‚¬ģš©ķ•©ė‹ˆė‹¤(두 ķ”Œėž«ķ¼ģ˜ 병렬 ģ—ģ“ģ „ķŠø ģ§€ģ›ģ€ 아직 쓈기 ė‹Øź³„ģž…ė‹ˆė‹¤). TraeėŠ” Agent ė„źµ¬ė”œ ķ•˜ģœ„ ģ—ģ“ģ „ķŠøė„¼ 병렬 ģ‹¤ķ–‰ķ•˜ė©°, `PreToolUse` ķ›…ģ„ ģ§€ģ›ķ•˜ģ§€ **ģ•Šģœ¼ėÆ€ė”œ** AGENTS.md넼 통핓 ź·øėž˜ķ”„ ģ‚¬ģš© ģ§€ģ¹Øģ„ ģƒģ‹œ ģ ģš©ķ•©ė‹ˆė‹¤. -그런 ė‹¤ģŒ AI 코딩 ģ–“ģ‹œģŠ¤ķ„“ķŠøė„¼ ģ—“ź³  ģž…ė „ķ•˜ģ„øģš”: +`--platform agents`(별칭: `--platform skills`)ėŠ” ģ—¬ėŸ¬ ķ”„ė ˆģž„ģ›Œķ¬ģ—ģ„œ ź³µķ†µģœ¼ė”œ ģ‚¬ģš©ķ•˜ėŠ” [Agent-Skills](https://github.com/anthropics/skills) 경딜넼 ėŒ€ģƒģœ¼ė”œ ķ•©ė‹ˆė‹¤. ģ „ģ—­ ģ„¤ģ¹˜ģ—ėŠ” 사양에 ģ •ģ˜ėœ ģ‚¬ģš©ģž 공통 경딜 `~/.agents/skills/`넼 ģ‚¬ģš©ķ•˜ė©°(`npx skills`와 핓당 ģ‚¬ģ–‘ģ„ ģ¤€ģˆ˜ķ•˜ėŠ” ķ”„ė ˆģž„ģ›Œķ¬ź°€ ģ“ 경딜넼 ģ½ģŠµė‹ˆė‹¤), ķ”„ė”œģ ķŠø ģ„¤ģ¹˜(`--project`)ģ—ėŠ” `./.agents/skills/`넼 ģ‚¬ģš©ķ•©ė‹ˆė‹¤. ģ˜µģ…˜ ģ—†ėŠ” `graphify install`ģ€ ģ„¤ź³„ģƒ ė‹Øģ¼ ķ”Œėž«ķ¼(Claude Code)만 ėŒ€ģƒģœ¼ė”œ ķ•©ė‹ˆė‹¤. `.agents/skills`넼 ģ½ėŠ” ėŖØė“  ķ”„ė ˆģž„ģ›Œķ¬ģ—ģ„œ ģŠ¤ķ‚¬ģ„ ė°œź²¬ķ•  수 ģžˆź²Œ ķ•˜ė ¤ė©“ `agents` ķ”Œėž«ķ¼ģ„ ėŖ…ģ‹œķ•˜ģ„øģš”. -``` -/graphify . -``` +> Codexģ—ģ„œėŠ” `/graphify` ėŒ€ģ‹  `$graphify`넼 ģ‚¬ģš©ķ•©ė‹ˆė‹¤. + +
+ +
+ģ„ ķƒ 기늄 (ķ•„ģš”ķ•œ ķ•­ėŖ©ė§Œ ģ„¤ģ¹˜ķ•˜ģ„øģš”) + +| 추가 ģ˜µģ…˜ | 제공 기늄 | ģ„¤ģ¹˜ 명령얓 | +|---|---|---| +| `pdf` | PDF ģ¶”ģ¶œ | `uv tool install "graphifyy[pdf]"` | +| `office` | `.docx` ė° `.xlsx` 지원 | `uv tool install "graphifyy[office]"` | +| `google` | Google Sheets ė Œė”ė§ | `uv tool install "graphifyy[google]"` | +| `video` | ė™ģ˜ģƒĀ·ģ˜¤ė””ģ˜¤ 전사(faster-whisper + yt-dlp) | `uv tool install "graphifyy[video]"` | +| `mcp` | MCP stdio ģ„œė²„ | `uv tool install "graphifyy[mcp]"` | +| `neo4j` | Neo4j딜 전솔 지원 | `uv tool install "graphifyy[neo4j]"` | +| `falkordb` | FalkorDB딜 전솔 지원 | `uv tool install "graphifyy[falkordb]"` | +| `svg` | ź·øėž˜ķ”„ė„¼ SVG딜 낓볓낓기 | `uv tool install "graphifyy[svg]"` | +| `leiden` | Leiden ģ»¤ė®¤ė‹ˆķ‹° ķƒģ§€(Python 3.13 ėÆøė§Œģ€ graspologic, 3.13 ģ“ģƒģ€ ė„¤ģ“ķ‹°ėøŒ ė°±ģ—”ė“œ) | `uv tool install "graphifyy[leiden]"` | +| `ollama` | Ollama 딜컬 추딠 | `uv tool install "graphifyy[ollama]"` | +| `openai` | OpenAI ė° OpenAI ķ˜øķ™˜ API | `uv tool install "graphifyy[openai]"` | +| `gemini` | Google Gemini API | `uv tool install "graphifyy[gemini]"` | +| `anthropic` | Anthropic Claude API(`--backend claude`, `ANTHROPIC_API_KEY` ģ‚¬ģš©) | `uv tool install "graphifyy[anthropic]"` | +| `bedrock` | AWS Bedrock(IAM ģ‚¬ģš©, API 키 ė¶ˆķ•„ģš”) | `uv tool install "graphifyy[bedrock]"` | +| `azure` | Azure OpenAI Service(`--backend azure`, `AZURE_OPENAI_API_KEY` + `AZURE_OPENAI_ENDPOINT` ģ‚¬ģš©) | `uv tool install "graphifyy[openai]"` | +| `sql` | SQL ģŠ¤ķ‚¤ė§ˆ ģ¶”ģ¶œ | `uv tool install "graphifyy[sql]"` | +| `postgres` | 실행 ģ¤‘ģø PostgreSQLģ˜ ģŠ¤ķ‚¤ė§ˆ 씰사(`--postgres DSN`) | `uv tool install "graphifyy[postgres]"` | +| `dm` | BYOND DreamMaker `.dm`/`.dme` AST ģ¶”ģ¶œ(ķ”Œėž«ķ¼ģ— ė§žėŠ” wheelģ“ ģ—†ģœ¼ė©“ C ģ»“ķŒŒģ¼ėŸ¬ģ™€ `python3-dev`ź°€ ķ•„ģš”ķ•  수 ģžˆģŒ) | `uv tool install "graphifyy[dm]"` | +| `terraform` | Terraform / HCL `.tf`/`.tfvars`/`.hcl` AST ģ¶”ģ¶œ | `uv tool install "graphifyy[terraform]"` | +| `pascal` | Pascal / Delphi `.pas`/`.dpr`/`.dpk`/`.inc` AST ģ¶”ģ¶œ(`calls`/`inherits` ź“€ź³„ģ˜ ģ •ķ™•ė„ ķ–„ģƒ, ėÆøģ„¤ģ¹˜ ģ‹œ ģ •ź·œģ‹ ģ¶”ģ¶œźø°ė”œ ėŒ€ģ²“) | `uv tool install "graphifyy[pascal]"` | +| `ocaml` | OCaml `.ml`/`.mli` AST ģ¶”ģ¶œ | `uv tool install "graphifyy[ocaml]"` | +| `commonlisp` | Common Lisp `.lisp`/`.cl`/`.lsp`/`.asd` AST ģ¶”ģ¶œ | `uv tool install "graphifyy[commonlisp]"` | +| `robot` | Robot Framework `.robot`/`.resource` ģ¶”ģ¶œ(ģŠ¤ģœ„ķŠø, ķ…ŒģŠ¤ķŠø ģ¼€ģ“ģŠ¤, ķ‚¤ģ›Œė“œ, ķ‚¤ģ›Œė“œ 호출 ė° ė¦¬ģ†ŒģŠ¤Ā·ė¼ģ“ėøŒėŸ¬ė¦¬ ź°€ģ øģ˜¤źø° ꓀계) | `uv tool install "graphifyy[robot]"` | +| `chinese` | 중국얓 ģ§ˆģ˜ ė¶„ģ ˆ(jieba) | `uv tool install "graphifyy[chinese]"` | +| `all` | ģœ„ģ˜ ėŖØė“  기늄 | `uv tool install "graphifyy[all]"` | + +
-ģ°øź³ : CodexėŠ” ģŠ¤ķ‚¬ ķ˜øģ¶œģ— `/` ėŒ€ģ‹  `$`넼 ģ‚¬ģš©ķ•˜ėÆ€ė”œ `$graphify .`ė¼ź³  ģž…ė „ķ•˜ģ„øģš”. +--- -### ģ–“ģ‹œģŠ¤ķ„“ķŠøź°€ ķ•­ģƒ ź·øėž˜ķ”„ė„¼ ģ‚¬ģš©ķ•˜ė„ė” 설정 (ź¶Œģž„) +## ė„ģš°ėÆøź°€ ķ•­ģƒ ź·øėž˜ķ”„ė„¼ ģ‚¬ģš©ķ•˜ė„ė” ģ„¤ģ •ķ•˜źø° -ź·øėž˜ķ”„ė„¼ ė¹Œė“œķ•œ 후, ķ”„ė”œģ ķŠøģ—ģ„œ ķ•œ 번만 ģ‹¤ķ–‰ķ•˜ģ„øģš”: +ź·øėž˜ķ”„ė„¼ ė§Œė“  ė’¤ ķ”„ė”œģ ķŠøģ—ģ„œ ģ•„ėž˜ 명령얓넼 ķ•œ 번 ģ‹¤ķ–‰ķ•˜ģ„øģš”. -| ķ”Œėž«ķ¼ | ėŖ…ė ¹ | -|--------|------| +| ķ”Œėž«ķ¼ | 명령얓 | +|----------|---------| | Claude Code | `graphify claude install` | +| CodeBuddy | `graphify codebuddy install` | | Codex | `graphify codex install` | | OpenCode | `graphify opencode install` | +| Kilo Code | `graphify kilo install` | +| GitHub Copilot CLI | `graphify copilot install` | +| VS Code Copilot Chat | `graphify vscode install` | +| Aider | `graphify aider install` | | OpenClaw | `graphify claw install` | | Factory Droid | `graphify droid install` | | Trae | `graphify trae install` | | Trae CN | `graphify trae-cn install` | +| Cursor | `graphify cursor install` | +| Gemini CLI | `graphify gemini install` | +| Hermes | `graphify hermes install` | +| Kimi Code | `graphify install --platform kimi` | +| Amp | `graphify amp install` | +| Agent Skills (ķ”„ė ˆģž„ģ›Œķ¬ 공통) | `graphify agents install` (별칭: `graphify skills install`) | +| Kiro IDE/CLI | `graphify kiro install` | +| Pi coding agent | `graphify pi install` | +| Devin CLI | `graphify devin install` | +| Google Antigravity | `graphify antigravity install` | + +ģ“ ėŖ…ė ¹ģ–“ėŠ” ģ½”ė“œė² ģ“ģŠ¤ ꓀련 ģ§ˆė¬øģ— 답할 ė•Œ ģ§€ģ‹ ź·øėž˜ķ”„ė„¼ ģ°øģ”°ķ•˜ė„ė” ģ•ˆė‚“ķ•˜ėŠ” ģž‘ģ€ 설정 ķŒŒģ¼ģ„ ė§Œė“­ė‹ˆė‹¤. 전첓 ė³“ź³ ģ„œė„¼ ģ½ź±°ė‚˜ 원본 ķŒŒģ¼ģ„ grep으딜 ź²€ģƒ‰ķ•˜źø°ė³“ė‹¤ `graphify query ""`처럼 ė²”ģœ„ė„¼ ģ¢ķžŒ ģ§ˆģ˜ė„¼ ģš°ģ„ ķ•˜ė„ė” ķ•©ė‹ˆė‹¤. + +- **ķ›…ģ„ ģ‚¬ģš©ķ•˜ėŠ” ķ”Œėž«ķ¼**(Claude Code, Gemini CLI): ź²€ģƒ‰ ė„źµ¬ė„¼ ķ˜øģ¶œķ•˜źø° 전에 ķ›…ģ“ ģžė™ ģ‹¤ķ–‰ė˜ģ–“ ė„ģš°ėÆøź°€ ź·øėž˜ķ”„ė„¼ ķ™œģš©ķ•˜ė„ė” ģ•ˆė‚“ķ•©ė‹ˆė‹¤. Claude Codeģ—ģ„œėŠ” Read/Glob ė„źµ¬ė”œ ģ†ŒģŠ¤ ķŒŒģ¼ģ„ ķ•˜ė‚˜ģ”© ģ½źø° ģ „ģ—ė„ ģ‹¤ķ–‰ė©ė‹ˆė‹¤. +- **지침 ķŒŒģ¼ģ„ ģ‚¬ģš©ķ•˜ėŠ” ķ”Œėž«ķ¼**(Codex, OpenCode, Cursor 등): ģƒģ‹œ ģ ģš©ė˜ėŠ” 지침 ķŒŒģ¼(`AGENTS.md`, `.cursor/rules/` 등)ģ„ 통핓 ė™ģ¼ķ•œ ģ§ˆģ˜ ģš°ģ„  ģ›ģ¹™ģ„ ģ „ė‹¬ķ•©ė‹ˆė‹¤. + +전첓 ģ•„ķ‚¤ķ…ģ²˜ė„¼ 검토할 ė•ŒėŠ” ģ—¬ģ „ķžˆ `GRAPH_REPORT.md`넼 ģ‚¬ģš©ķ•  수 ģžˆģŠµė‹ˆė‹¤. + +**CodeBuddy**ėŠ” Claude Code와 ź°™ģ€ 두 가지 ģ„¤ģ •ģ„ ģˆ˜ķ–‰ķ•©ė‹ˆė‹¤. ģ•„ķ‚¤ķ…ģ²˜ ģ§ˆė¬øģ— ė‹µķ•˜źø° 전에 `graphify-out/GRAPH_REPORT.md`넼 ģ½ė„ė” `CODEBUDDY.md`에 ģ„¹ģ…˜ģ„ ģ¶”ź°€ķ•˜ź³ , Bash ź²€ģƒ‰ 명령과 ķŒŒģ¼ ģ½źø° 전에 ģ‹¤ķ–‰ė˜ėŠ” `PreToolUse` ķ›…(`.codebuddy/settings.json`)ģ„ ģ„¤ģ¹˜ķ•“ `graphify query`넼 ģš°ģ„  ģ‚¬ģš©ķ•˜ė„ė” ģ•ˆė‚“ķ•©ė‹ˆė‹¤. + +**Codex**ģ—ģ„œėŠ” `AGENTS.md`에 ģ§€ģ¹Øģ„ źø°ė”ķ•˜ė©°, ģ“ ķŒŒģ¼ģ“ ģ‹¤ģ œė”œ ź·øėž˜ķ”„ ģ‚¬ģš© ģ§€ģ¹Øģ„ ģƒģ‹œ ģ „ė‹¬ķ•©ė‹ˆė‹¤. `graphify codex install`ģ€ `.codex/hooks.json`에 `PreToolUse` ķ›…(`graphify hook-check`)ė„ ė“±ė”ķ•˜ģ§€ė§Œ, ģ“ ķ•­ėŖ©ģ€ ģ˜ė„ģ ģœ¼ė”œ **아묓 ė™ģž‘ė„ ķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤(no-op)**. Codex Desktopģ€ `PreToolUse`ģ˜ `hookSpecificOutput.additionalContext`넼 ķ—ˆģš©ķ•˜ģ§€ ģ•Šģœ¼ėÆ€ė”œ, ģ—¬źø°ģ„œ ģ•ˆė‚“ė„¼ ģ¶œė „ķ•˜ė©“ Bash ė„źµ¬ ķ˜øģ¶œģ“ ģ‹¤ķŒØķ•˜źø° ė•Œė¬øģž…ė‹ˆė‹¤. Claude Codeģ—ģ„œėŠ” ķ›…(`graphify hook-guard`)ģ“ ģ•ˆė‚“ė„¼ ė‹“ė‹¹ķ•˜ģ§€ė§Œ, Codexģ—ģ„œėŠ” ķ›…ģ“ ģ‹¤ķ–‰ė˜ģ–“ė„ 아묓 ģž‘ģ—…ģ„ ķ•˜ģ§€ ģ•Šģœ¼ė©° `AGENTS.md`ź°€ ģƒģ‹œ ģ•ˆė‚“ė„¼ ė‹“ė‹¹ķ•©ė‹ˆė‹¤. -**Claude Code**ėŠ” 두 가지넼 ģˆ˜ķ–‰ķ•©ė‹ˆė‹¤: ģ•„ķ‚¤ķ…ģ²˜ ģ§ˆė¬øģ— ė‹µķ•˜źø° 전에 `graphify-out/GRAPH_REPORT.md`넼 ģ½ė„ė” Claudeģ—ź²Œ ģ§€ģ‹œķ•˜ėŠ” `CLAUDE.md` ģ„¹ģ…˜ģ„ ģž‘ģ„±ķ•˜ź³ , ėŖØė“  Glob ė° Grep 호출 전에 ģ‹¤ķ–‰ė˜ėŠ” **PreToolUse ķ›…**(`settings.json`)ģ„ ģ„¤ģ¹˜ķ•©ė‹ˆė‹¤. ģ§€ģ‹ ź·øėž˜ķ”„ź°€ ģ”“ģž¬ķ•˜ė©“ ClaudeėŠ” ė‹¤ģŒ ė©”ģ‹œģ§€ė„¼ 볓게 ė©ė‹ˆė‹¤: _"graphify: Knowledge graph exists. Read GRAPH_REPORT.md for god nodes and community structure before searching raw files."_ — ģ“ė„¼ 통핓 ClaudeėŠ” ėŖØė“  ķŒŒģ¼ģ„ grepķ•˜ėŠ” ėŒ€ģ‹  ź·øėž˜ķ”„ė„¼ 통핓 ķƒģƒ‰ķ•©ė‹ˆė‹¤. +**Kilo Code**ėŠ” Graphify ģŠ¤ķ‚¬ģ„ `~/.config/kilo/skills/graphify/SKILL.md`에, ė„¤ģ“ķ‹°ėøŒ `/graphify` ėŖ…ė ¹ģ„ `~/.config/kilo/command/graphify.md`에 ģ„¤ģ¹˜ķ•©ė‹ˆė‹¤. `graphify kilo install`ģ€ `AGENTS.md`와 ė„¤ģ“ķ‹°ėøŒ `tool.execute.before` ķ”ŒėŸ¬ź·øģøė„ ģƒģ„±ķ•©ė‹ˆė‹¤(`.kilo/plugins/graphify.js` + `.kilo/kilo.json` ė˜ėŠ” `.kilo/kilo.jsonc`에 ė“±ė”). ģ“ė„¼ 통핓 Kiloģ—ģ„œė„ ė„¤ģ“ķ‹°ėøŒ `.kilo` ģ„¤ģ •ģœ¼ė”œ ź·øėž˜ķ”„ ģ‚¬ģš© ģ•ˆė‚“ė„¼ ģƒģ‹œ ė°›ģ„ 수 ģžˆģŠµė‹ˆė‹¤. -**Codex**ėŠ” `AGENTS.md`에 ģž‘ģ„±ķ•˜ź³  Bash ė„źµ¬ 호출 전에 ģ‹¤ķ–‰ė˜ėŠ” **PreToolUse ķ›…**ģ„ `.codex/hooks.json`에 ģ„¤ģ¹˜ķ•©ė‹ˆė‹¤ — Claude Code와 ė™ģ¼ķ•œ ģƒģ‹œ ģž‘ė™ ė©”ģ»¤ė‹ˆģ¦˜ģž…ė‹ˆė‹¤. +**Cursor**ėŠ” `alwaysApply: true`ź°€ ģ„¤ģ •ėœ `.cursor/rules/graphify.mdc`넼 ģƒģ„±ķ•©ė‹ˆė‹¤. Cursorź°€ ėŖØė“  ėŒ€ķ™”ģ— ģ“ ķŒŒģ¼ģ„ ģžė™ģœ¼ė”œ ķ¬ķ•Øķ•˜ėÆ€ė”œ ķ›…ģ“ ķ•„ģš”ķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤. -**OpenCode, OpenClaw, Factory Droid, Trae**ėŠ” ķ”„ė”œģ ķŠø ė£ØķŠøģ˜ `AGENTS.md`에 ė™ģ¼ķ•œ ź·œģ¹™ģ„ ģž‘ģ„±ķ•©ė‹ˆė‹¤. ģ“ ķ”Œėž«ķ¼ė“¤ģ€ PreToolUse ķ›…ģ„ ģ§€ģ›ķ•˜ģ§€ ģ•Šģœ¼ėÆ€ė”œ AGENTS.mdź°€ ģƒģ‹œ ģž‘ė™ ė©”ģ»¤ė‹ˆģ¦˜ģž…ė‹ˆė‹¤. +ėŖØė“  ķ”Œėž«ķ¼ģ—ģ„œ graphify넼 ķ•œ ė²ˆģ— ģ œź±°ķ•˜ė ¤ė©“ `graphify uninstall`ģ„ ģ‹¤ķ–‰ķ•˜ģ„øģš”(`--purge`넼 ģ¶”ź°€ķ•˜ė©“ `graphify-out/`ė„ ģ‚­ģ œė©ė‹ˆė‹¤). ķ”Œėž«ķ¼ė³„ 명령얓(예: `graphify claude uninstall`)넼 ģ‚¬ģš©ķ•“ė„ ė©ė‹ˆė‹¤. -ģ œź±°ėŠ” ėŒ€ģ‘ķ•˜ėŠ” uninstall ėŖ…ė ¹ģœ¼ė”œ ģˆ˜ķ–‰ķ•©ė‹ˆė‹¤(예: `graphify claude uninstall`). +--- -**ģƒģ‹œ ģž‘ė™ vs ėŖ…ģ‹œģ  트리거 — ģ°Øģ“ģ ģ€?** +## ė³“ź³ ģ„œģ— ė‹“źø°ėŠ” ė‚“ģš© -ģƒģ‹œ ģž‘ė™ ķ›…ģ€ `GRAPH_REPORT.md`넼 ė…øģ¶œķ•©ė‹ˆė‹¤ — ź°“ ė…øė“œ, ģ»¤ė®¤ė‹ˆķ‹°, ģ˜ģ™øģ˜ ģ—°ź²°ģ„ ķ•œ ķŽ˜ģ“ģ§€ė”œ ģš”ģ•½ķ•œ ź²ƒģž…ė‹ˆė‹¤. ģ–“ģ‹œģŠ¤ķ„“ķŠøėŠ” ķŒŒģ¼ ź²€ģƒ‰ 전에 ģ“ź²ƒģ„ ģ½ģœ¼ėÆ€ė”œ ķ‚¤ģ›Œė“œ ė§¤ģ¹­ģ“ ģ•„ė‹Œ 구씰 기반으딜 ķƒģƒ‰ķ•©ė‹ˆė‹¤. ģ“ź²ƒė§Œģœ¼ė”œ ėŒ€ė¶€ė¶„ģ˜ ģ¼ģƒģ ģø ģ§ˆė¬øģ„ ģ²˜ė¦¬ķ•  수 ģžˆģŠµė‹ˆė‹¤. +- **핵심 ķ—ˆėøŒ ė…øė“œ(God nodes)** — ķ”„ė”œģ ķŠøģ—ģ„œ ź°€ģž„ ė§Žģ€ ģ—°ź²°ģ„ 가진 ź°œė…ģž…ė‹ˆė‹¤. ģ£¼ģš” ķė¦„ģ“ ģ“ ė…øė“œė“¤ģ„ ź±°ģ¹©ė‹ˆė‹¤. +- **ģ˜ģ™øģ˜ ģ—°ź²° ꓀계** — ģ„œė”œ 다넸 ķŒŒģ¼ģ“ė‚˜ ėŖØė“ˆģ— ģžˆėŠ” ģš”ģ†Œ ģ‚¬ģ“ģ˜ ģ—°ź²°ģž…ė‹ˆė‹¤. ģ˜ˆģƒķ•˜źø° ģ–“ė ¤ģš“ ź“€ź³„ģ¼ģˆ˜ė” ė†’ģ€ ģˆœģœ„ģ— ķ‘œģ‹œė©ė‹ˆė‹¤. +- **ģ„¤ź³„ģ˜ ģ“ģœ ** — ģøė¼ģø ģ£¼ģ„(`# NOTE:`, `# WHY:`, `# HACK:`), ė…ģŠ¤ķŠøė§, ė¬øģ„œģ— ė‹“źø“ 설계 근거넼 ė³„ė„ ė…øė“œė”œ ģ¶”ģ¶œķ•˜ź³ , 핓당 ė‚“ģš©ģ“ ģ„¤ėŖ…ķ•˜ėŠ” ģ½”ė“œģ— ģ—°ź²°ķ•©ė‹ˆė‹¤. +- **ģ¶”ģ²œ 질문** — ź·øėž˜ķ”„ė„¼ ķ™œģš©ķ•˜ė©“ ķŠ¹ķžˆ ģž˜ 답할 수 ģžˆėŠ” 질문 4~5개넼 ģ œģ•ˆķ•©ė‹ˆė‹¤. +- **ģ‹ ė¢°ė„ 태그** — ģ¶”ė” ėœ ėŖØė“  ꓀계에 `EXTRACTED`, `INFERRED`, `AMBIGUOUS` 중 ķ•˜ė‚˜ė„¼ ķ‘œģ‹œķ•©ė‹ˆė‹¤. ķ™•ģøėœ 사실과 ģ¶”ģ •ģ„ ģ–øģ œė‚˜ 구분할 수 ģžˆģŠµė‹ˆė‹¤. -`/graphify query`, `/graphify path`, `/graphify explain`ģ€ ė” ź¹Šģ“ ė“¤ģ–“ź°‘ė‹ˆė‹¤: ģ›ģ‹œ `graph.json`ģ„ 홉 ė‹Øģœ„ė”œ ģˆœķšŒķ•˜ź³ , ė…øė“œ ź°„ģ˜ ģ •ķ™•ķ•œ 경딜넼 ģ¶”ģ ķ•˜ė©°, 엣지 ģˆ˜ģ¤€ģ˜ 세부 정볓(꓀계 ģœ ķ˜•, ģ‹ ė¢°ė„ 점수, ģ†ŒģŠ¤ ģœ„ģ¹˜)넼 ė³“ģ—¬ģ¤ė‹ˆė‹¤. ģ¼ė°˜ģ ģø ģ˜¤ė¦¬ģ—”ķ…Œģ“ģ…˜ģ“ ģ•„ė‹Œ ź·øėž˜ķ”„ģ—ģ„œ ķŠ¹ģ • ģ§ˆė¬øģ— ė‹µķ•˜ź³  ģ‹¶ģ„ ė•Œ ģ‚¬ģš©ķ•˜ģ„øģš”. +--- -ģ“ė ‡ź²Œ ģƒź°ķ•˜ė©“ ė©ė‹ˆė‹¤: ģƒģ‹œ ģž‘ė™ ķ›…ģ€ ģ–“ģ‹œģŠ¤ķ„“ķŠøģ—ź²Œ ģ§€ė„ė„¼ 주고, `/graphify` ėŖ…ė ¹ģ€ ź·ø ģ§€ė„ė„¼ ģ •ķ™•ķ•˜ź²Œ ķƒģƒ‰ķ•˜ź²Œ ķ•©ė‹ˆė‹¤. -## `graph.json`ģ„ LLMź³¼ ķ•Øź»˜ ģ‚¬ģš©ķ•˜źø° +## ģ§€ģ›ķ•˜ėŠ” ķŒŒģ¼ -`graph.json`ģ€ ķ”„ė”¬ķ”„ķŠøģ— ķ•œ ė²ˆģ— ģ „ė¶€ 붙여넣기 ģœ„ķ•œ ź²ƒģ“ ģ•„ė‹™ė‹ˆė‹¤. ģœ ģš©ķ•œ ģ›Œķ¬ķ”Œė”œģš°ėŠ” ė‹¤ģŒź³¼ ź°™ģŠµė‹ˆė‹¤: +| ģœ ķ˜• | ķ™•ģž„ģž | +|------|-----------| +| ģ½”ė“œ(tree-sitter 문법 37종) | `.py .ts .mts .cts .js .jsx .tsx .mjs .go .rs .java .c .cpp .cc .cxx .h .hpp .cu .cuh .metal .rb .cs .kt .kts .scala .php .swift .lua .luau .toc .zig .ps1 .psm1 .psd1 .ex .exs .m .mm .ml .mli .jl .vue .svelte .astro .groovy .gradle .dart .v .sv .svh .sql .f .f90 .f95 .f03 .f08 .pas .pp .dpr .dpk .lpr .inc .dfm .lfm .lpk .sh .bash .json .dm .dme .dmi .dmm .dmf .sln .slnx .csproj .fsproj .vbproj .xaml .razor .cshtml` (`.dm`/`.dme`ėŠ” `uv tool install graphifyy[dm]`, `.ml`/`.mli`ėŠ” `uv tool install graphifyy[ocaml]` ķ•„ģš”. `.mts`/`.cts`ėŠ” TypeScript ė¬øė²•ģ„, `.cc`/`.cxx`, CUDAģ˜ `.cu`/`.cuh`, Metalģ˜ `.metal`ģ€ C++ ė¬øė²•ģ„ ģž¬ģ‚¬ģš©) | +| Salesforce Apex | `.cls .trigger` (ģ •ź·œģ‹ 기반. ķ“ėž˜ģŠ¤, ģøķ„°ķŽ˜ģ“ģŠ¤, ģ—“ź±°ķ˜•, ė©”ģ„œė“œ, 트리거, SOQL/DML ꓀계 ģ¶”ģ¶œ) | +| Terraform / HCL | `.tf .tfvars .hcl` (`uv tool install graphifyy[terraform]` ķ•„ģš”) | +| OCaml | `.ml .mli` (`uv tool install graphifyy[ocaml]` ķ•„ģš”) | +| Common Lisp | `.lisp .cl .lsp .asd` (`uv tool install graphifyy[commonlisp]` ķ•„ģš”) | +| Robot Framework | `.robot .resource` (ź³µģ‹ `robot.api` ķŒŒģ„œ ģ‚¬ģš©, `uv tool install graphifyy[robot]` ķ•„ģš”. ģŠ¤ģœ„ķŠø, ķ…ŒģŠ¤ķŠø ģ¼€ģ“ģŠ¤, ģ‚¬ģš©ģž ķ‚¤ģ›Œė“œ, ķ‚¤ģ›Œė“œ 호출 ė° Resource/Library/Variables ź°€ģ øģ˜¤źø° ꓀계 ģ¶”ģ¶œ) | +| MCP 설정 | `.mcp.json` `mcp.json` `mcp_servers.json` `claude_desktop_config.json` — ģ„œė²„ ė…øė“œ, ķŒØķ‚¤ģ§€ ģ°øģ”°, ķ•„ģš”ķ•œ ķ™˜ź²½ ė³€ģˆ˜ ģ¶”ģ¶œ | +| ķŒØķ‚¤ģ§€ ė§¤ė‹ˆķŽ˜ģŠ¤ķŠø | `apm.yml` `pyproject.toml` `go.mod` `pom.xml` — ģ“ė¦„ģ„ źø°ģ¤€ģœ¼ė”œ ķŒØķ‚¤ģ§€ė§ˆė‹¤ ķ•˜ė‚˜ģ˜ ėŒ€ķ‘œ ė…øė“œė„¼ ė§Œė“¤ź³  `depends_on` ꓀계넼 추가. ģ—¬ėŸ¬ ė§¤ė‹ˆķŽ˜ģŠ¤ķŠøģ—ģ„œ ģ°øģ”°ķ•˜ėŠ” ķŒØķ‚¤ģ§€ė„ ķ•˜ė‚˜ģ˜ ķ—ˆėøŒė”œ 통합 | +| ė¬øģ„œ | `.md .mdx .qmd .html .txt .rst .yaml .yml` (Markdownģ˜ `[text](./other.md)` 링크와 `[[wikilinks]]`넼 ė¬øģ„œ ź°„ `references` ź“€ź³„ė”œ ė³€ķ™˜) | +| Office | `.docx .xlsx` (`uv tool install graphifyy[office]` ķ•„ģš”) | +| Google Workspace | `.gdoc .gsheet .gslides` (ėŖ…ģ‹œģ ģœ¼ė”œ ķ™œģ„±ķ™”ķ•“ģ•¼ 함. `gws` ģøģ¦ź³¼ `--google-workspace` ķ•„ģš”. SheetsėŠ” `uv tool install graphifyy[google]` ķ•„ģš”) | +| PDF | `.pdf` | +| ģ“ėÆøģ§€ | `.png .jpg .webp .gif` | +| ė™ģ˜ģƒ / ģ˜¤ė””ģ˜¤ | `.mp4 .mov .mp3 .wav` 등 (`uv tool install graphifyy[video]` ķ•„ģš”) | +| YouTube / URL | ėŖØė“  ė™ģ˜ģƒ URL (`uv tool install graphifyy[video]` ķ•„ģš”) | -1. `graphify-out/GRAPH_REPORT.md`딜 ė†’ģ€ ģˆ˜ģ¤€ģ˜ ź°œģš”ė„¼ ķŒŒģ•…ķ•©ė‹ˆė‹¤. -2. `graphify query`넼 ģ‚¬ģš©ķ•˜ģ—¬ ė‹µķ•˜ė ¤ėŠ” ķŠ¹ģ • ģ§ˆė¬øģ— ėŒ€ķ•œ ė” ģž‘ģ€ ģ„œėøŒź·øėž˜ķ”„ė„¼ ź°€ģ øģ˜µė‹ˆė‹¤. -3. 전첓 ģ›ģ‹œ ģ½”ķ¼ģŠ¤ ėŒ€ģ‹  ź·ø ģ§‘ģ¤‘ėœ 결과넼 ģ–“ģ‹œģŠ¤ķ„“ķŠøģ—ź²Œ ģ œź³µķ•©ė‹ˆė‹¤. +ģ½”ė“œėŠ” **API 호출 ģ—†ģ“ ė”œģ»¬ģ—ģ„œ ģ¶”ģ¶œ**ķ•©ė‹ˆė‹¤(tree-sitter AST ģ‚¬ģš©). ź·ø ģ™øģ˜ ģžė£ŒėŠ” AI ė„ģš°ėÆøģ˜ ėŖØėø API넼 ź±°ģ¹©ė‹ˆė‹¤. -예넼 들얓, ķ”„ė”œģ ķŠøģ—ģ„œ graphify넼 ģ‹¤ķ–‰ķ•œ 후: +ė°ģŠ¤ķ¬ķ†±ģš© Google Driveģ˜ `.gdoc`, `.gsheet`, `.gslides` ķŒŒģ¼ģ€ ė¬øģ„œ ė‚“ģš© ģžģ²“ź°€ ģ•„ė‹ˆė¼ ė°”ė”œź°€źø°ģž…ė‹ˆė‹¤. IDE ģ—†ģ“ ģ‹¤ķ–‰ķ•˜ėŠ” ģ¶”ģ¶œ ģž‘ģ—…ģ— Google Docs, Sheets, Slides 원본 ė¬øģ„œė„¼ ķ¬ķ•Øķ•˜ė ¤ė©“ [`gws` CLI](https://github.com/googleworkspace/cli)넼 ģ„¤ģ¹˜ķ•˜ź³  ģøģ¦ķ•œ ė’¤ ė‹¤ģŒģ„ ģ‹¤ķ–‰ķ•˜ģ„øģš”. ```bash -graphify query "show the auth flow" --graph graphify-out/graph.json -graphify query "what connects DigestAuth to Response?" --graph graphify-out/graph.json +uv tool install "graphifyy[google]" # Google Sheetsģ˜ ķ‘œ ė Œė”ė§ģ— ķ•„ģš” +gws auth login -s drive +graphify extract ./docs --google-workspace ``` -ģ¶œė „ģ—ėŠ” ė…øė“œ ė ˆģ“ėø”, 엣지 ģœ ķ˜•, ģ‹ ė¢°ė„ 태그, ģ†ŒģŠ¤ ķŒŒģ¼, ģ†ŒģŠ¤ ģœ„ģ¹˜ź°€ ķ¬ķ•Øė©ė‹ˆė‹¤. ģ“ėŠ” LLMģ„ ģœ„ķ•œ ģ¢‹ģ€ 중간 ģ»Øķ…ģŠ¤ķŠø ėø”ė”ģ“ ė©ė‹ˆė‹¤: +`GRAPHIFY_GOOGLE_WORKSPACE=1`ģ„ ģ„¤ģ •ķ•“ė„ ė©ė‹ˆė‹¤. GraphifyėŠ” ė°”ė”œź°€źø°ź°€ ź°€ė¦¬ķ‚¤ėŠ” ė¬øģ„œė„¼ `graphify-out/converted/` ģ•„ėž˜ģ— Markdown 볓씰 ķŒŒģ¼ė”œ 낓볓낸 ė‹¤ģŒ, ģ“ ķŒŒģ¼ģ—ģ„œ 정볓넼 ģ¶”ģ¶œķ•©ė‹ˆė‹¤. + +--- + +## ģžģ£¼ ģ‚¬ģš©ķ•˜ėŠ” 명령얓 + +```bash +/graphify . # ķ˜„ģž¬ ķ“ė”ģ˜ ź·øėž˜ķ”„ ģƒģ„± +/graphify ./docs --update # ė³€ź²½ėœ ķŒŒģ¼ė§Œ ė‹¤ģ‹œ ģ¶”ģ¶œ +/graphify . --cluster-only # ģž¬ģ¶”ģ¶œ ģ—†ģ“ ķ“ėŸ¬ģŠ¤ķ„°ė§ė§Œ ė‹¤ģ‹œ 실행 +/graphify . --cluster-only --resolution 1.5 # ģ»¤ė®¤ė‹ˆķ‹°ė„¼ ė” ģ„øė°€ķ•˜ź²Œ ė¶„ķ•  +/graphify . --cluster-only --exclude-hubs 99 # 핵심 ķ—ˆėøŒ ģˆœģœ„ģ—ģ„œ ģ—°ź²°ģ“ ģ§€ė‚˜ģ¹˜ź²Œ ė§Žģ€ ģœ ķ‹øė¦¬ķ‹° ķ—ˆėøŒė„¼ ģ–µģ œ +/graphify . --no-viz # HTML ģ—†ģ“ ė³“ź³ ģ„œģ™€ JSON만 ģƒģ„± +/graphify . --wiki # ź·øėž˜ķ”„ģ—ģ„œ Markdown ģœ„ķ‚¤ ģƒģ„± +graphify export callflow-html # Mermaid ģ•„ķ‚¤ķ…ģ²˜Ā·ķ˜øģ¶œ ķė¦„ HTML ģƒģ„± (ķ›… ģ„¤ģ¹˜ ģ‹œ Git ģ»¤ė°‹ė§ˆė‹¤ ģžė™ ģž¬ģƒģ„±) + +/graphify query "what connects auth to the database?" +/graphify path "UserService" "DatabasePool" +/graphify explain "RateLimiter" + +/graphify add https://arxiv.org/abs/1706.03762 # ė…¼ė¬øģ„ 가져와 추가 +/graphify add # ė™ģ˜ģƒģ„ 전사핓 추가 + +graphify hook install # ģ»¤ė°‹Ā·ėøŒėžœģ¹˜ ģ²“ķ¬ģ•„ģ›ƒ ģ‹œ ģžė™ ģž¬ģƒģ„± (git pull ķ›„ģ—ėŠ” graphify update . 실행 — ģ•„ėž˜ ź¶Œģž„ ģž‘ģ—… ķė¦„ ģ°øź³ ) +graphify merge-graphs a.json b.json # 두 ź·øėž˜ķ”„ 병합 + +graphify prs # PR ėŒ€ģ‹œė³“ė“œ: CI 상태, 리뷰 상태, worktree ģ—°ź²° 정볓 +graphify prs 42 # ź·øėž˜ķ”„ģ— ėÆøģ¹˜ėŠ” ģ˜ķ–„ģ„ ķ¬ķ•Øķ•“ PR #42 ģƒģ„ø ė¶„ģ„ +graphify prs --triage # AIź°€ 리뷰 ėŒ€źø° ėŖ©ė”ģ˜ ģš°ģ„ ģˆœģœ„ 지정 (ģ„¤ģ •ėœ ė°±ģ—”ė“œ ģ‚¬ģš©) +graphify prs --conflicts # ź°™ģ€ ź·øėž˜ķ”„ ģ»¤ė®¤ė‹ˆķ‹°ė„¼ ģˆ˜ģ •ķ•˜ėŠ” PR ķ™•ģø — 병합 ģˆœģ„œģ— 따넸 ģœ„ķ—˜ +``` + +ģ•„ėž˜ģ˜ [전첓 명령얓 ģ°øģ”°](#full-command-reference)ė„ ķ™•ģøķ•˜ģ„øģš”. + +--- + +## ķŒŒģ¼ ģ œģ™øķ•˜źø° + +ķ”„ė”œģ ķŠø ė£ØķŠøģ— `.graphifyignore`넼 ė§Œė“œģ„øģš”. `!`넼 ģ‚¬ģš©ķ•˜ėŠ” ģ œģ™ø ź·œģ¹™ģ˜ ė°˜ģ „ź¹Œģ§€ ķ¬ķ•Øķ•“ `.gitignore`와 ź°™ģ€ ė¬øė²•ģ„ ģ‚¬ģš©ķ•©ė‹ˆė‹¤. + +**`.gitignore`ėŠ” ģžė™ģœ¼ė”œ ģ ģš©ė©ė‹ˆė‹¤.** graphifyėŠ” 각 ė””ė ‰ķ„°ė¦¬ģ˜ `.gitignore`넼 ģ½ģŠµė‹ˆė‹¤. `.graphifyignore`ė„ ģžˆģœ¼ė©“ 두 ķŒŒģ¼ģ˜ ź·œģ¹™ģ„ **ķ•©ģ³ģ„œ** ģ ģš©ķ•©ė‹ˆė‹¤. `.graphifyignore` ķŒØķ„“ģ„ ė§ˆģ§€ė§‰ģ— ķ‰ź°€ķ•˜ėÆ€ė”œ ź·œģ¹™ģ“ ģ¶©ėŒķ•˜ė©“ ģ“ģŖ½ģ“ ģš°ģ„ ķ•©ė‹ˆė‹¤(`!` ė°˜ģ „ ź·œģ¹™ ķ¬ķ•Ø). `.graphifyignore`넼 ģ¶”ź°€ķ•˜ė©“ ģ œģ™ø ėŒ€ģƒģ“ ėŠ˜ģ–“ė‚  뿐, `.gitignore`ź°€ ģ“ėÆø ģ œģ™øķ•œ ķŒŒģ¼ģ„ ė‹¤ģ‹œ ķ¬ķ•Øķ•˜ģ§€ėŠ” ģ•ŠģŠµė‹ˆė‹¤. ķ•˜ģœ„ 디렉터리 ė²”ģœ„ėŠ” Gitź³¼ ź°™ģ€ ė°©ģ‹ģœ¼ė”œ ģ²˜ė¦¬ķ•©ė‹ˆė‹¤. 각 ignore ķŒŒģ¼ģ€ ģžģ‹ ģ“ ģ†ķ•œ 디렉터리와 ź·ø ķ•˜ģœ„ģ—ė§Œ ģ˜ķ–„ģ„ ģ¤ė‹ˆė‹¤. + +Gitģ—ģ„œ ģ œģ™øķ•œ ģƒģ„± ģ½”ė“œė‚˜ ķŠøėžœģŠ¤ķŒŒģ¼ėœ ģ½”ė“œė„ ź·øėž˜ķ”„ģ— ķ¬ķ•Øķ•˜ė ¤ė©“ `graphify extract`에 `--no-gitignore`넼 ģ „ė‹¬ķ•˜ģ„øģš”. ģ“ ģ˜µģ…˜ģ€ `.gitignore`와 `.git/info/exclude`넼 ė¹„ķ™œģ„±ķ™”ķ•©ė‹ˆė‹¤. `.graphifyignore`ėŠ” ź³„ģ† ģ ģš©ė©ė‹ˆė‹¤. + +``` +# .graphifyignore +node_modules/ +dist/ +*.generated.py + +# src/만 ģøė±ģ‹±ķ•˜ź³  ė‚˜ėØøģ§€ėŠ” 모두 ģ œģ™ø +* +!src/ +!src/** +``` + +--- + +## ķŒ€ ķ™˜ź²½ 설정 + +`graphify-out/`ģ€ ķŒ€ģ› 모두가 ķ”„ė”œģ ķŠø ģ§€ė„ė„¼ ź°–ź³  ģ‹œģž‘ķ•  수 ģžˆė„ė” Git에 ģ»¤ė°‹ķ•˜ėŠ” ź²ƒģ„ ģ „ģ œė”œ ķ•©ė‹ˆė‹¤. + +**`.gitignore`에 추가할 ź¶Œģž„ ķ•­ėŖ©:** -```text -ģ“ ź·øėž˜ķ”„ 쿼리 결과넼 ģ‚¬ģš©ķ•˜ģ—¬ ģ§ˆė¬øģ— ė‹µķ•˜ģ„øģš”. 추츔볓다 ź·øėž˜ķ”„ 구씰넼 ģš°ģ„ ķ•˜ź³ , -ź°€ėŠ„ķ•œ 경우 ģ†ŒģŠ¤ ķŒŒģ¼ģ„ ģøģš©ķ•˜ģ„øģš”. ``` +graphify-out/cost.json # ė”œģ»¬ģ—ģ„œė§Œ ģ‚¬ģš© +# graphify-out/cache/ # ģ„ ķƒ 사항: ģ†ė„ė„¼ ģ›ķ•˜ė©“ 커밋, ģ €ģž„ģ†Œ 크기넼 ģ¤„ģ“ė ¤ė©“ ģ œģ™ø +``` + +> ģ“ģ œ `manifest.json`ģ€ 다넸 ķ™˜ź²½ģ—ģ„œė„ ģ‚¬ģš©ķ•  수 ģžˆģŠµė‹ˆė‹¤. 키넼 ģƒėŒ€ 경딜딜 ģ €ģž„ķ•˜ź³  불러올 ė•Œ 기준 경딜넼 ė‹¤ģ‹œ ģ„¤ģ •ķ•˜ėÆ€ė”œ, ģ»¤ė°‹ķ•“ė„ ģ•ˆģ „ķ•˜ė©° 첫 ģ²“ķ¬ģ•„ģ›ƒ ģ‹œ 전첓 ź·øėž˜ķ”„ė„¼ ė‹¤ģ‹œ ė§Œė“¤ģ§€ ģ•Šģ•„ė„ ė©ė‹ˆė‹¤. + + + +### ź¶Œģž„ ģž‘ģ—… ķė¦„ + +ģ €ģž„ģ†Œė„¼ ė³µģ œķ•œ ė’¤ ķ•œ 번만 ģ„¤ģ •ķ•˜ģ„øģš”. ģ“ķ›„ģ—ėŠ” ķ‰ģ†Œ ģ‚¬ģš©ķ•˜ėŠ” Git 명령얓 세 ź°œź°€ ź·øėž˜ķ”„ė„¼ ģžė™ģœ¼ė”œ ģµœģ‹  상태딜 ģœ ģ§€ķ•˜ź³ , ė‚˜ėØøģ§€ ķ•œ ė‹Øź³„ė”œ ķŒ€ģ˜ 변경 사항과 ė™źø°ķ™”ķ•  수 ģžˆģŠµė‹ˆė‹¤. + +| ģ‹¤ķ–‰ķ•˜ėŠ” ģž‘ģ—… | graphifyģ˜ ė™ģž‘ | +|---|---| +| `graphify hook install` (복제 직후 ķ•œ 번) | ģ•„ėž˜ ķ›…ź³¼ ķ•Øź»˜ 병합 ė“œė¼ģ“ė²„ė„¼ ģ„¤ģ¹˜ķ•“ `graph.json`에 ģ¶©ėŒ ķ‘œģ‹œź°€ ģƒźø°ģ§€ ģ•Šė„ė” 함 | +| `git commit` | ģžė™ ģž¬ģƒģ„± — AST만 ģ‚¬ģš©ķ•˜ėÆ€ė”œ API ė¹„ģš© ģ—†ģŒ | +| `git checkout` / `git switch` (ėøŒėžœģ¹˜ ģ „ķ™˜) | ģžė™ ģž¬ģƒģ„±(ķŒŒģ¼ė§Œ ģ²“ķ¬ģ•„ģ›ƒķ•˜ėŠ” `git checkout -- `ėŠ” 핓당 ģ—†ģŒ) | +| `git pull` / `git merge` | 직후에 `graphify update .` 실행 ķ•„ģš” | +| `git push` | ė³„ė„ ģž‘ģ—… ģ—†ģŒ | + +커밋과 ėøŒėžœģ¹˜ ģ „ķ™˜ģ— 따넸 ģž¬ģƒģ„±ģ€ ė°±ź·øė¼ģš“ė“œģ—ģ„œ ģ‹¤ķ–‰ė˜ė©° ėŖ…ė ¹ģ–“ėŠ” ģ¦‰ģ‹œ ė°˜ķ™˜ė©ė‹ˆė‹¤. ė”°ė¼ģ„œ 큰 ģ €ģž„ģ†Œģ—ģ„œėŠ” ź·øėž˜ķ”„ ź°±ģ‹ ģ“ 커밋볓다 ėŖ‡ 쓈 ėŠ¦ģ„ 수 ģžˆģŠµė‹ˆė‹¤. 갱신 전에 ģ§ˆģ˜ķ•˜ėŠ” ė“œė¬ø ź²½ģš°ģ˜ ėŒ€ģ²˜ ė°©ė²•ģ€ ģ•„ėž˜ 5단계넼 ģ°øź³ ķ•˜ģ„øģš”. -ģ–“ģ‹œģŠ¤ķ„“ķŠøź°€ ė„źµ¬ ķ˜øģ¶œģ“ė‚˜ MCP넼 ģ§€ģ›ķ•˜ėŠ” 경우, ķ…ģŠ¤ķŠøė„¼ ė¶™ģ—¬ė„£ėŠ” ėŒ€ģ‹  ź·øėž˜ķ”„ė„¼ 직접 ģ‚¬ģš©ķ•˜ģ„øģš”. graphifyėŠ” `graph.json`ģ„ MCP ģ„œė²„ė”œ ė…øģ¶œķ•  수 ģžˆģŠµė‹ˆė‹¤: +**단계별 ģ•ˆė‚“:** + +1. ģ €ģž„ģ†Œė„¼ ė³µģ œķ•˜ź³  `graphify hook install`ģ„ ķ•œ 번 ģ‹¤ķ–‰ķ•©ė‹ˆė‹¤. +2. ķ‰ģ†Œģ²˜ėŸ¼ ģ»¤ė°‹ķ•˜ź³  ėøŒėžœģ¹˜ė„¼ ģ „ķ™˜ķ•©ė‹ˆė‹¤. ź·øėž˜ķ”„ėŠ” ģžė™ģœ¼ė”œ ģµœģ‹  상태넼 ģœ ģ§€ķ•©ė‹ˆė‹¤. +3. `git pull` ė˜ėŠ” ė³‘ķ•©ģ„ ķ•  ė•Œė§ˆė‹¤ ė°”ė”œ `graphify update .`넼 실행핓 방금 ź°€ģ øģ˜Ø 변경 ģ‚¬ķ•­ģ„ ė°˜ģ˜ķ•©ė‹ˆė‹¤. ķ¬ź±°ė‚˜ ė³€ź²½ģ“ ģž¦ģ€ ģ €ģž„ģ†Œģ—ģ„œėŠ” ė‹¤ģŒ pull ė³„ģ¹­ģœ¼ė”œ ģžė™ķ™”ķ•  수 ģžˆģŠµė‹ˆė‹¤. + ```bash + git config --global alias.gpull '!git pull && graphify update .' + ``` +4. ė¬øģ„œė‚˜ ė…¼ė¬øģ“ ė³€ź²½ė˜ė©“ `/graphify --update`넼 실행핓 핓당 ė…øė“œė„ ź°±ģ‹ ķ•©ė‹ˆė‹¤. ģ½”ė“œģ™€ ė¬øģ„œėŠ” ė³„ė„ė”œ ź°±ģ‹ ė©ė‹ˆė‹¤. +5. ģ§ˆģ˜ 결과에 방금 ģ¶”ź°€ķ•œ ė‚“ģš©ģ“ ė¹ ģ ø ģžˆėŠ” 것 같다멓 먼저 `graphify update .`넼 ģ‹¤ķ–‰ķ•œ ė’¤ ė‹¤ģ‹œ ģ§ˆė¬øķ•˜ģ„øģš”. + +--- + +## ź·øėž˜ķ”„ 직접 ģ‚¬ģš©ķ•˜źø° ```bash +# ķ„°ėÆøė„ģ—ģ„œ ź·øėž˜ķ”„ģ— ģ§ˆģ˜ +graphify query "show the auth flow" +graphify query "what connects DigestAuth to Response?" --graph graphify-out/graph.json + +# ź·øėž˜ķ”„ė„¼ MCP ģ„œė²„ė”œ 제공 (ė„źµ¬ 호출딜 반복 ģ ‘ź·¼ ź°€ėŠ„) python -m graphify.serve graphify-out/graph.json +python -m graphify.serve --graph graphify-out/graph.json # --graph ķ”Œėž˜ź·øė„ ģ‚¬ģš© ź°€ėŠ„ + +# Kimi Code에 ė“±ė”: +kimi mcp add --transport stdio graphify -- python -m graphify.serve graphify-out/graph.json + +# ė˜ėŠ” HTTP딜 ģ œź³µķ•“ ķŒ€ 전첓가 ķ•˜ė‚˜ģ˜ URL ģ‚¬ģš© (ź°ģž graphify넼 ģ„¤ģ¹˜ķ•  ķ•„ģš” ģ—†ģŒ): +python -m graphify.serve graphify-out/graph.json --transport http --port 8080 +python -m graphify.serve graphify-out/graph.json --transport http --host 0.0.0.0 --api-key "$SECRET" ``` -ģ“ė„¼ 통핓 ģ–“ģ‹œģŠ¤ķ„“ķŠøź°€ `query_graph`, `get_node`, `get_neighbors`, `shortest_path` ź°™ģ€ 반복 쿼리에 źµ¬ģ”°ķ™”ėœ ź·øėž˜ķ”„ ģ ‘ź·¼ģ„ ķ•  수 ģžˆģŠµė‹ˆė‹¤. +MCP ģ„œė²„ėŠ” ė„ģš°ėÆøź°€ źµ¬ģ”°ķ™”ėœ ė°©ģ‹ģœ¼ė”œ 접근할 수 ģžˆėŠ” ė‹¤ģŒ ė„źµ¬ė„¼ ģ œź³µķ•©ė‹ˆė‹¤: `query_graph`, `get_node`, `get_neighbors`, `shortest_path`, `list_prs`, `get_pr_impact`, `triage_prs`. -
-ģˆ˜ė™ ģ„¤ģ¹˜ (curl) +### 공유 HTTP ģ„œė²„ + +`--transport stdio`(źø°ė³øź°’)ėŠ” ź°œė°œģžė§ˆė‹¤ 딜컬 ģ„œė²„ė„¼ ķ•˜ė‚˜ģ”© ģ‹¤ķ–‰ķ•©ė‹ˆė‹¤. `--transport http`ėŠ” ź°™ģ€ ė„źµ¬ė„¼ MCP Streamable HTTP 전솔 ė°©ģ‹ģœ¼ė”œ ģ œź³µķ•˜ėÆ€ė”œ, ķ•˜ė‚˜ģ˜ 공유 ķ”„ė”œģ„øģŠ¤ź°€ ķŒ€ 전첓에 ź·øėž˜ķ”„ė„¼ ģ œź³µķ•  수 ģžˆģŠµė‹ˆė‹¤. 각 ķ“ė¼ģ“ģ–øķŠøėŠ” graphify넼 ė”œģ»¬ģ—ģ„œ ģ‹¤ķ–‰ķ•˜ėŠ” ėŒ€ģ‹  IDEģ˜ MCP 설정에 `http://:8080/mcp`넼 ģ§€ģ •ķ•˜ė©“ ė©ė‹ˆė‹¤. + +| ķ”Œėž˜ź·ø | źø°ė³øź°’ | ģš©ė„ | +|---|---|---| +| `--transport {stdio,http}` | `stdio` | ģ„œė²„ģ˜ 전솔 ė°©ģ‹ | +| `--host` | `127.0.0.1` | HTTP ė°”ģøė”© 호스트(localhost 외부에 ź³µź°œķ•˜ė ¤ė©“ `0.0.0.0` ģ‚¬ģš©) | +| `--port` | `8080` | HTTP ė°”ģøė”© ķ¬ķŠø | +| `--api-key` | ķ™˜ź²½ ė³€ģˆ˜ `GRAPHIFY_API_KEY` | `Authorization: Bearer ` ė˜ėŠ” `X-API-Key` ģøģ¦ ģš”źµ¬ | +| `--path` | `/mcp` | HTTP ģ„œė¹„ģŠ¤ 경딜 | +| `--json-response` | 꺼짐 | SSE 스트림 ėŒ€ģ‹  ģ¼ė°˜ JSON ė°˜ķ™˜ | +| `--stateless` | 꺼짐 | ģ„øģ…˜ė³„ 상태넼 ģœ ģ§€ķ•˜ģ§€ ģ•ŠģŒ(ė”œė“œ ė°øėŸ°ģ‹±Ā·CI ė°°ķ¬ģš©) | +| `--session-timeout` | `3600` | 상태넼 ģœ ģ§€ķ•˜ėŠ” ģ„øģ…˜ģ“ N쓈 ė™ģ•ˆ 유휓 ģƒķƒœģ“ė©“ 정리(`0`ģ“ė©“ ė¹„ķ™œģ„±ķ™”) | + +źø°ė³ø ė°”ģøė”© ģ£¼ģ†Œ `127.0.0.1`ģ€ 루프백 ģ—°ź²°ė§Œ ķ—ˆģš©ķ•©ė‹ˆė‹¤. 공유 ķ˜øģŠ¤ķŠøģ—ģ„œ 외부에 ź³µź°œķ•  ė•ŒėŠ” `--host 0.0.0.0`**ź³¼** `--api-key`넼 ķ•Øź»˜ ģ„¤ģ •ķ•˜ģ„øģš”. ģ»Øķ…Œģ“ė„ˆģ—ģ„œ ģ‹¤ķ–‰ķ•˜ėŠ” ģ˜ˆģ‹œėŠ” ė‹¤ģŒź³¼ ź°™ģŠµė‹ˆė‹¤. ```bash -mkdir -p ~/.claude/skills/graphify -curl -fsSL https://raw.githubusercontent.com/safishamsi/graphify/v3/graphify/skill.md \ - > ~/.claude/skills/graphify/SKILL.md +docker build -t graphify . +docker run -p 8080:8080 -v "$(pwd)/graphify-out:/data" graphify \ + /data/graph.json --transport http --host 0.0.0.0 --api-key "$SECRET" ``` -`~/.claude/CLAUDE.md`에 추가: +> **WSL / Linux ģ°øź³ :** UbuntuėŠ” `python`ģ“ ģ•„ė‹ˆė¼ `python3`넼 ģ œź³µķ•©ė‹ˆė‹¤. ģ¶©ėŒģ„ ķ”¼ķ•˜ė ¤ė©“ ź°€ģƒ ķ™˜ź²½ģ„ ģ‚¬ģš©ķ•˜ģ„øģš”. +> ```bash +> python3 -m venv .venv && .venv/bin/pip install "graphifyy[mcp]" +> ``` + +--- + +## ķ™˜ź²½ ė³€ģˆ˜ + +ė‹¤ģŒ ė³€ģˆ˜ėŠ” **ķ—¤ė“œė¦¬ģŠ¤ ķ™˜ź²½ ė˜ėŠ” CIģ—ģ„œ ģ¶”ģ¶œ**ķ•  ė•Œ(`graphify extract`)만 ķ•„ģš”ķ•©ė‹ˆė‹¤. IDE ģ•ˆģ—ģ„œ `/graphify` ģŠ¤ķ‚¬ė”œ ģ‹¤ķ–‰ķ•˜ė©“ IDE ģ„øģ…˜ģ“ ėŖØėø API넼 ģ œź³µķ•˜ėÆ€ė”œ 추가 키가 ķ•„ģš”ķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤. + +| ė³€ģˆ˜ | ģš©ė„ | ķ•„ģš”ķ•œ 경우 | +|---|---|---| +| `ANTHROPIC_API_KEY` | Claude(Anthropic) ė°±ģ—”ė“œ | `--backend claude` | +| `ANTHROPIC_BASE_URL` | Anthropic ķ˜øķ™˜ ģ—”ė“œķ¬ģøķŠø URL(LiteLLM ķ”„ė”ģ‹œ, ź²Œģ“ķŠøģ›Øģ“ 등) | `--backend claude` (źø°ė³øź°’: `https://api.anthropic.com`) | +| `ANTHROPIC_MODEL` | Claude ė°±ģ—”ė“œģ˜ ėŖØėø ģ“ė¦„. ģ‚¬ģš©ģž 지정 ģ—”ė“œķ¬ģøķŠøģ—ģ„œėŠ” ģ„œė²„ź°€ ģ œź³µķ•˜ėŠ” ėŖØėø ģ“ė¦„ģ“ė‚˜ 별칭 ģ‚¬ģš© | `--backend claude` (źø°ė³øź°’: `claude-sonnet-4-6`) | +| `GEMINI_API_KEY` ė˜ėŠ” `GOOGLE_API_KEY` | Google Gemini ė°±ģ—”ė“œ | `--backend gemini` | +| `OPENAI_API_KEY` | OpenAI ė˜ėŠ” OpenAI ķ˜øķ™˜ API | `--backend openai` (딜컬 ģ„œė²„ėŠ” 비얓 ģžˆģ§€ ģ•Šģ€ ź°’ģ“ė©“ ķ—ˆģš©) | +| `OPENAI_BASE_URL` | OpenAI ķ˜øķ™˜ ģ„œė²„ URL(llama.cpp, vLLM, LM Studio 등) | `--backend openai` (źø°ė³øź°’: `https://api.openai.com/v1`) | +| `OPENAI_MODEL` | OpenAI ė°±ģ—”ė“œģ˜ ėŖØėø ģ“ė¦„. ģžģ²“ ķ˜øģŠ¤ķŒ… ģ„œė²„ģ—ģ„œėŠ” ģ„œė²„ź°€ ģ œź³µķ•˜ėŠ” ėŖØėø ģ“ė¦„ģ“ė‚˜ 별칭 ģ‚¬ģš©(`/v1/models` ģ—”ė“œķ¬ģøķŠøģ—ģ„œ ķ™•ģø). 예: llama.cppģ˜ `LFM2.5-8B-A1B-UD-Q4_K_XL` | `--backend openai` (źø°ė³øź°’: `gpt-4.1-mini`) | +| `DEEPSEEK_API_KEY` | DeepSeek ė°±ģ—”ė“œ | `--backend deepseek` | +| `MOONSHOT_API_KEY` | Kimi Code ė°±ģ—”ė“œ | `--backend kimi` | +| `OLLAMA_BASE_URL` | Ollama 딜컬 추딠 URL | `--backend ollama` (źø°ė³øź°’: `http://localhost:11434`) | +| `OLLAMA_MODEL` | Ollama ėŖØėø ģ“ė¦„ | `--backend ollama` (źø°ė³øź°’: ģžė™ 감지) | +| `GRAPHIFY_OLLAMA_NUM_CTX` | Ollama KV ģŗģ‹œ ģœˆė„ 크기넼 직접 지정 | ģ„ ķƒ 사항 — 기본적으딜 ģžė™ ģ”°ģ • | +| `GRAPHIFY_OLLAMA_KEEP_ALIVE` | Ollama ėŖØėøģ„ 메모리에 ģœ ģ§€ķ•  ģ‹œź°„(ė¶„) | ģ„ ķƒ 사항 — `0`으딜 ģ„¤ģ •ķ•˜ė©“ 청크 처리 ķ›„ė§ˆė‹¤ ėŖØėøģ„ ė©”ėŖØė¦¬ģ—ģ„œ ķ•“ģ œ | +| `AZURE_OPENAI_API_KEY` | Azure OpenAI Service ė°±ģ—”ė“œ | `--backend azure` | +| `AZURE_OPENAI_ENDPOINT` | Azure ė¦¬ģ†ŒģŠ¤ ģ—”ė“œķ¬ģøķŠø URL | `--backend azure` (API 키와 ķ•Øź»˜ ķ•„ģˆ˜) | +| `AZURE_OPENAI_API_VERSION` | Azure API ė²„ģ „ģ„ 직접 지정 | ģ„ ķƒ 사항 — źø°ė³øź°’ `2024-12-01-preview` | +| `AZURE_OPENAI_DEPLOYMENT` ė˜ėŠ” `GRAPHIFY_AZURE_MODEL` | Azure ė°°ķ¬ ģ“ė¦„ | ģ„ ķƒ 사항 — źø°ė³øź°’ `gpt-4o` | +| `AWS_*` / `~/.aws/credentials` | AWS Bedrock — ķ‘œģ¤€ ģžź²© ģ¦ėŖ… ģ²“ģø | `--backend bedrock` (API 키 ģ—†ģ“ IAM ģ‚¬ģš©) | +| `GRAPHIFY_MAX_WORKERS` | AST 병렬 처리 ģŠ¤ė ˆė“œ 수 | ģ„ ķƒ 사항 — `--max-workers` ķ”Œėž˜ź·øė”œė„ 설정 ź°€ėŠ„ | +| `GRAPHIFY_MAX_OUTPUT_TOKENS` | 정볓 ė°€ė„ź°€ ė†’ģ€ ģžė£Œ ėŖØģŒģ˜ 출렄 ķ•œė„ ģƒķ–„ | ģ„ ķƒ 사항 — 큰 ķŒŒģ¼ģ˜ 경우 예: `32768` | +| `GRAPHIFY_API_TIMEOUT` | HTTP, claude-cli, Anthropic SDK, Bedrock ė°±ģ—”ė“œģ˜ ķ˜øģ¶œė³„ ģ œķ•œ ģ‹œź°„(쓈, źø°ė³øź°’: 600) | ģ„ ķƒ 사항 — `--api-timeout` ķ”Œėž˜ź·øė”œė„ 설정 ź°€ėŠ„ | +| `GRAPHIFY_MAX_RETRIES` | ģš”ģ²­ ķ•œė„ 쓈과(429) ģ‹œ ķ¬źø°ķ•˜źø° ģ „ ģž¬ģ‹œė„ 횟수(źø°ė³øź°’: 6, `Retry-After` ģ¤€ģˆ˜) | ģ„ ķƒ 사항 — 씰직별 ķ•œė„ź°€ ģ—„ź²©ķ•œ 경우(예: kimi) 늘릓 수 ģžˆģŒ. `0`ģ“ė©“ ė¹„ķ™œģ„±ķ™” | +| `GRAPHIFY_MAX_RETRY_DEPTH` | ģ‘ė‹µģ“ ģž˜ė¦° 청크넼 ģ“ė¶„ķ• ķ•“ ģž¬ģ¶”ģ¶œķ•  ģµœėŒ€ ź¹Šģ“(źø°ė³øź°’: 3, 청크 ķ•˜ė‚˜ė‹¹ ķ•˜ģœ„ ķ˜øģ¶œģ“ ģµœėŒ€ 8ė°°ź¹Œģ§€ ģ¦ź°€) | ģ„ ķƒ 사항 — ģµœģ•…ģ˜ 경우 ė¹„ģš©ģ„ ģ œķ•œķ•˜ė ¤ė©“ ė‚®ź²Œ 설정. `0`ģ“ė©“ ėŖØė“  ģž¬ģ‹œė„(ģ“ė¶„ķ•  ė° ė‚“ģš© ģ—†ėŠ” ģ‘ė‹µģ˜ ģž¬ģ‹œė„)넼 ė¹„ķ™œģ„±ķ™”ķ•˜ģ—¬ 청크당 ģ •ķ™•ķžˆ ķ•œ 번만 호출 | +| `GRAPHIFY_FORCE` | ė…øė“œ ģˆ˜ź°€ ģ¤„ģ–“ė„ ź·øėž˜ķ”„ ź°•ģ œ ģž¬ģƒģ„± | ģ„ ķƒ 사항 — `--force` ķ”Œėž˜ź·øė”œė„ 설정 ź°€ėŠ„ | +| `GRAPHIFY_GOOGLE_WORKSPACE` | Google Workspace 낓볓낓기 ģžė™ ķ™œģ„±ķ™” | ģ„ ķƒ 사항 — `1`딜 설정 | +| `GRAPHIFY_TRIAGE_BACKEND` | `graphify prs --triage`에 ģ‚¬ģš©ķ•  ė°±ģ—”ė“œ | ģ„ ķƒ 사항 — ģ‚¬ģš© ź°€ėŠ„ķ•œ ķ‚¤ģ—ģ„œ ģžė™ 감지 | +| `GRAPHIFY_TRIAGE_MODEL` | ģš°ģ„ ģˆœģœ„ ė¶„ė„˜ģ— ģ‚¬ģš©ķ•  ėŖØėøģ„ 직접 지정 | ģ„ ķƒ 사항 — 예: `claude-opus-4-7` | +| `GRAPHIFY_QUERY_LOG_ENABLE` | `1`딜 ģ„¤ģ •ķ•˜ė©“ `~/.cache/graphify-queries.log`ģ˜ 딜컬 ģ§ˆģ˜ 딜그 ķ™œģ„±ķ™”(query/path/explainģ˜ 각 질문과 ģžė£Œ 경딜 źø°ė”). 기본적으딜 꺼져 ģžˆģœ¼ė©°, ėŖ…ģ‹œģ ģœ¼ė”œ ķ™œģ„±ķ™”ķ•˜ģ§€ ģ•Šģœ¼ė©“ źø°ė”ķ•˜ģ§€ ģ•ŠģŒ(#1797) | ģ„ ķƒ 사항 | +| `GRAPHIFY_QUERY_LOG` | ģ§ˆģ˜ 딜그넼 ķ™œģ„±ķ™”ķ•˜ź³  źø°ė³ø 경딜 ėŒ€ģ‹  ģ§€ģ •ķ•œ ź²½ė”œģ— źø°ė” | ģ„ ķƒ 사항 — ģ“ ė³€ģˆ˜ė‚˜ `_ENABLE`ģ„ ģ„¤ģ •ķ•˜ģ§€ ģ•Šģœ¼ė©“ 꺼짐 | +| `GRAPHIFY_QUERY_LOG_DISABLE` | `1`딜 ģ„¤ģ •ķ•˜ė©“ ģ§ˆģ˜ 딜그넼 ź°•ģ œė”œ 끔(ķ™œģ„±ķ™” ė³€ģˆ˜ė³“ė‹¤ ģš°ģ„ ) | ģ„ ķƒ 사항 | +| `GRAPHIFY_QUERY_LOG_RESPONSES` | 딜그 ķ™œģ„±ķ™” ģ‹œ 전첓 부분 ź·øėž˜ķ”„ ģ‘ė‹µė„ źø°ė”(기본적으딜 꺼짐) | ģ„ ķƒ 사항 | +| `GRAPHIFY_MAX_GRAPH_BYTES` | graph.jsonģ˜ 512 MiB 크기 ģ œķ•œ 변경 — 예: `700MB`, `2GB` ė˜ėŠ” ė°”ģ“ķŠø ė‹Øģœ„ ģˆ«ģž | ģ„ ķƒ 사항 — 매우 큰 ģžė£Œ ėŖØģŒģ— 유용 | +| `GRAPHIFY_MAX_CONTEXTS` | 다중 ķ”„ė”œģ ķŠø MCP ģ„œė²„ ķ•˜ė‚˜ź°€ ģœ ģ§€ķ•  źø°ė³ø ķ”„ė”œģ ķŠø 외 ź·øėž˜ķ”„ģ˜ ģµœėŒ€ 수 | ģ„ ķƒ 사항 — źø°ė³øź°’: `8`. ģž˜ėŖ»ėœ ź°’ģ€ `8`, `1`볓다 ģž‘ģ€ ź°’ģ€ `1` ģ‚¬ģš© | +| `GRAPHIFY_LLM_TEMPERATURE` | ģ˜ėÆø ģ¶”ģ¶œģ— ģ‚¬ģš©ķ•  LLM temperature넼 직접 지정 — 예: `0.7`, ģƒėžµķ•˜ė ¤ė©“ `none` | ģ„ ķƒ 사항 — o1/o3/o4/gpt-5 추딠 ėŖØėøģ—ģ„œėŠ” ģžė™ģœ¼ė”œ ģƒėžµ | + +--- + +## ź°œģøģ •ė³“ ė° ė°ģ“ķ„° 처리 + +- **ģ½”ė“œ ķŒŒģ¼** — tree-sitter딜 ė”œģ»¬ģ—ģ„œ ģ²˜ė¦¬ķ•˜ė©° ģ™øė¶€ė”œ ģ „ģ†”ķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤. ģ½”ė“œė§Œ ģžˆėŠ” ģžė£Œ ėŖØģŒģ—ėŠ” API 키가 ķ•„ģš” 없고, `graphify extract`ź°€ ģ™„ģ „ķžˆ ģ˜¤ķ”„ė¼ģøģœ¼ė”œ ģ‹¤ķ–‰ė©ė‹ˆė‹¤. ģ—¬ėŸ¬ ģœ ķ˜•ģ˜ ķŒŒģ¼ģ“ ģ„žģø ģ €ģž„ģ†Œģ—ģ„œėŠ” `--code-only`넼 ģ¶”ź°€ķ•˜ė©“ ģ½”ė“œė§Œ ģøė±ģ‹±ķ•˜ź³  LLMģ“ ķ•„ģš”ķ•œ ė¬øģ„œĀ·PDFĀ·ģ“ėÆøģ§€ėŠ” ź±“ė„ˆėœė‹ˆė‹¤. +- **ė™ģ˜ģƒ / ģ˜¤ė””ģ˜¤** — faster-whisper딜 ė”œģ»¬ģ—ģ„œ ģ „ģ‚¬ķ•˜ė©° ģ™øė¶€ė”œ ģ „ģ†”ķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤. +- **ė¬øģ„œ, PDF, ģ“ėÆøģ§€** — ģ˜ėÆø ģ¶”ģ¶œģ„ ģœ„ķ•“ AI ė„ģš°ėÆøė”œ ģ „ģ†”ķ•©ė‹ˆė‹¤(`/graphify` ģŠ¤ķ‚¬ģ„ 통핓 IDE ģ„øģ…˜ģ—ģ„œ ģ‚¬ģš© ģ¤‘ģø ėŖØėøģ„ ģ“ģš©). ķ—¤ė“œė¦¬ģŠ¤ ė°©ģ‹ģ˜ `graphify extract`ģ—ėŠ” `GEMINI_API_KEY` / `GOOGLE_API_KEY`(Gemini), `MOONSHOT_API_KEY`(Kimi), `ANTHROPIC_API_KEY`(Claude), `OPENAI_API_KEY`(OpenAI), `DEEPSEEK_API_KEY`(DeepSeek), 실행 ģ¤‘ģø Ollama ģøģŠ¤ķ„“ģŠ¤(`OLLAMA_BASE_URL`), ķ‘œģ¤€ ź³µźø‰ģž ģ²“ģøģ˜ AWS ģžź²© ģ¦ėŖ…(Bedrock — API 키 ģ—†ģ“ IAM ģ‚¬ģš©), ė˜ėŠ” `claude` CLI 실행 ķŒŒģ¼(Claude Code — API 키 ģ—†ģ“ Claude źµ¬ė… ģ‚¬ģš©) 중 ķ•˜ė‚˜ź°€ ķ•„ģš”ķ•©ė‹ˆė‹¤. `--dedup-llm` ķ”Œėž˜ź·øė„ ź°™ģ€ 키넼 ģ‚¬ģš©ķ•©ė‹ˆė‹¤. +- **ė°ģ“ķ„° 처리 ģœ„ģ¹˜** — `graphify extract`ėŠ” ģ„¤ģ •ėœ API 키넼 źø°ģ¤€ģœ¼ė”œ ź³µźø‰ģžė„¼ ģžė™ ź°ģ§€ķ•©ė‹ˆė‹¤(ģš°ģ„ ģˆœģœ„: Gemini → Kimi → Claude → OpenAI → DeepSeek → Azure → Bedrock → Ollama). ė°ģ“ķ„° 처리 ģœ„ģ¹˜ģ— ź“€ķ•œ ģš”źµ¬ ģ‚¬ķ•­ģ“ ģžˆėŠ” ģ½”ė“œģ—ėŠ” `--backend ollama`(ģ™„ģ „ķ•œ 딜컬 처리)넼 ģ‚¬ģš©ķ•˜ź±°ė‚˜ `--backend` ķ”Œėž˜ź·øė”œ ė°±ģ—”ė“œė„¼ ėŖ…ģ‹œķ•˜ģ„øģš”. Kimi(`MOONSHOT_API_KEY`)ėŠ” 중국에 ģžˆėŠ” Moonshot AI ģ„œė²„ė”œ ģš”ģ²­ģ„ ė³“ėƒ…ė‹ˆė‹¤. +- **ķ…”ė ˆė©”ķŠøė¦¬ ģ—†ģŒ** — ģ‚¬ģš© ģ¶”ģ ģ“ė‚˜ ė¶„ģ„ ė°ģ“ķ„°ė„¼ ģˆ˜ģ§‘ķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤. +- **ģ§ˆģ˜ 딜그** — ėŖØė“  `graphify query`, `graphify path`, `graphify explain`, MCP `query_graph` ķ˜øģ¶œģ„ `~/.cache/graphify-queries.log`에 JSON Lines ķ˜•ģ‹ģœ¼ė”œ źø°ė”ķ•©ė‹ˆė‹¤(ķƒ€ģž„ģŠ¤ķƒ¬ķ”„, 질문, ģžė£Œ ėŖØģŒ, ė°˜ķ™˜ėœ ė…øė“œ, ģ†Œģš” ģ‹œź°„). 전첓 부분 ź·øėž˜ķ”„ ģ‘ė‹µģ€ 기본적으딜 ģ €ģž„ķ•˜ģ§€ **ģ•ŠģŠµė‹ˆė‹¤**. źø°ė”ģ„ 끄려멓 `GRAPHIFY_QUERY_LOG_DISABLE=1`ģ„ ģ„¤ģ •ķ•˜ģ„øģš”. ė”œź¹… ģ½”ė“œ 경딜넼 ė¹„ķ™œģ„±ķ™”ķ•˜ģ§€ ģ•Šź³  ģ¶œė „ģ„ 버리려멓 `GRAPHIFY_QUERY_LOG=/dev/null`ģ„ ģ‚¬ģš©ķ•˜ģ„øģš”. + +--- + + +## 문제 ķ•“ź²° + +**ģ„¤ģ¹˜ 후 `graphify: command not found`ź°€ ķ‘œģ‹œė˜ėŠ” 경우** + +CLIėŠ” ģ„¤ģ¹˜ė˜ģ—ˆģ§€ė§Œ 실행 ķŒŒģ¼ 디렉터리가 ģ…øģ˜ `PATH`에 ģ—†ėŠ” ģƒķƒœģž…ė‹ˆė‹¤. ģ„¤ģ¹˜ ė°©ģ‹ģ— ė§žėŠ” ė°©ė²•ģ„ ģ‚¬ģš©ķ•˜ģ„øģš”. + +- **uv** (`uv tool install graphifyy`): ėŖ…ė ¹ģ–“ėŠ” uvģ˜ ė„źµ¬ 실행 ķŒŒģ¼ 디렉터리(`~/.local/bin`)에 ģ„¤ģ¹˜ė©ė‹ˆė‹¤. 새딜 ģ„¤ģ •ķ•œ macOS/zsh ķ™˜ź²½ģ—ģ„œėŠ” ģ“ ź²½ė”œź°€ `PATH`에 ģ—†ėŠ” ź²½ģš°ź°€ ė§ŽģŠµė‹ˆė‹¤. `uv tool update-shell`ģ„ ģ‹¤ķ–‰ķ•œ ė’¤ 새 ķ„°ėÆøė„ģ„ ģ—¬ģ„øģš”. (`uv tool dir --bin`으딜 디렉터리넼 ķ™•ģøķ•  수 ģžˆģŠµė‹ˆė‹¤.) +- **pipx** (`pipx install graphifyy`): `pipx ensurepath`넼 ģ‹¤ķ–‰ķ•œ ė’¤ 새 ķ„°ėÆøė„ģ„ ģ—¬ģ„øģš”. +- **pip** (`pip install graphifyy`): pipź°€ 스크립트넼 ģ„¤ģ¹˜ķ•˜ėŠ” ģ‚¬ģš©ģž 실행 ķŒŒģ¼ 디렉터리가 `PATH`에 ģ—†ģ„ 수 ģžˆģŠµė‹ˆė‹¤. `~/.zshrc`/`~/.bashrc`ģ—ģ„œ `~/Library/Python/3.x/bin`(macOS) ė˜ėŠ” `~/.local/bin`(Linux)ģ„ `PATH`에 ģ¶”ź°€ķ•˜ź±°ė‚˜, `python -m graphify`딜 ģ‹¤ķ–‰ķ•˜ģ„øģš”. + +**`uvx graphify …` ė˜ėŠ” `uv tool run graphify …`ź°€ `graphify` ķŒØķ‚¤ģ§€ė„¼ 찾지 ėŖ»ķ•˜ėŠ” 경우** + +PyPI ķŒØķ‚¤ģ§€ ģ“ė¦„ģ€ `graphifyy`ģ“ė©°, `graphify`ėŠ” ģ“ ķŒØķ‚¤ģ§€ź°€ ģ œź³µķ•˜ėŠ” ėŖ…ė ¹ģ–“ģ¼ ėæģž…ė‹ˆė‹¤. `uv tool run`ģ€ 첫 단얓넼 *ķŒØķ‚¤ģ§€ ģ“ė¦„*으딜 ģ²˜ė¦¬ķ•˜ėÆ€ė”œ `graphify`ė¼ėŠ” ķŒØķ‚¤ģ§€ė„¼ 찾다가 `No solution found … no versions of graphify`넼 ģ¶œė „ķ•©ė‹ˆė‹¤. ķŒØķ‚¤ģ§€ė„¼ ėŖ…ģ‹œģ ģœ¼ė”œ ģ§€ģ •ķ•˜ģ„øģš”: `uvx --from graphifyy graphify install`(`uv tool run --from graphifyy graphify install`ź³¼ ė™ģ¼). ė˜ėŠ” `uv tool install graphifyy`딜 ķ•œ 번 ģ„¤ģ¹˜ķ•œ ė’¤ `graphify`넼 직접 ģ‹¤ķ–‰ķ•˜ģ„øģš”. + +**`uv run --with graphifyy python -m graphify`ź°€ 별다넸 경고 ģ—†ģ“ ģ“ģ „ ģ„¤ģ¹˜ė³øģ„ ģ‹¤ķ–‰ķ•˜ėŠ” 경우** + +`uv run`ģ€ *ģ‹œģŠ¤ķ…œ* Pythonģ„ ģ‚¬ģš©ķ•©ė‹ˆė‹¤. ė”°ė¼ģ„œ ź°™ģ€ ķ™˜ź²½ģ— ģ“ģ „ `graphifyy`ź°€ ģ„¤ģ¹˜ė˜ģ–“ ģžˆģœ¼ė©“(예: 과거에 `pip install graphifyy`딜 ģ„¤ģ¹˜), Pythonģ“ `sys.path`ģ—ģ„œ ź·ø ģ‚¬ė³øģ„ 먼저 ģ°¾ģ„ 수 ģžˆģœ¼ė©° `--with graphifyy`ź°€ ģ“ė„¼ ėŒ€ģ²“ķ•˜ģ§€ ėŖ»ķ•©ė‹ˆė‹¤. 오넘 ģ—†ģ“ ģ‹¤ķ–‰ė˜ģ§€ė§Œ *ģ“ģ „* ė²„ģ „ģ²˜ėŸ¼ ė™ģž‘ķ•©ė‹ˆė‹¤. 예넼 들얓 `OPENAI_BASE_URL` ź°™ģ€ ķ™˜ź²½ ė³€ģˆ˜ ģ„¤ģ •ģ“ ģ”°ģš©ķžˆ ė¬“ģ‹œė˜ģ–“ ģš”ģ²­ģ“ źø°ė³ø ģ—”ė“œķ¬ģøķŠøė”œ ģ „ė‹¬ė˜ź³ , ģž˜ėŖ»ėœ API ķ‚¤ģ²˜ėŸ¼ ė³“ģ“ėŠ” 401 ģ˜¤ė„˜ź°€ ė°œģƒķ•  수 ģžˆģŠµė‹ˆė‹¤. `warning: skill is from graphify , package is `ė¼ėŠ” ģ¤„ģ“ ė³“ģøė‹¤ė©“ ģ“ 경우넼 ģ˜ģ‹¬ķ•  수 ģžˆģŠµė‹ˆė‹¤. ė‹Øģˆœķžˆ ģŠ¤ķ‚¬ģ“ ģ˜¤ėž˜ėœ ź²ƒģ“ ģ•„ė‹ˆė¼ 다넸 ģ„¤ģ¹˜ė³øģ„ ė¶ˆėŸ¬ģ™”ė‹¤ėŠ” ėœ»ģž…ė‹ˆė‹¤. ģ‹¤ģ œė”œ 불러온 ģ‚¬ė³øģ„ ķ™•ģøķ•˜ģ„øģš”. +```bash +python -c "import graphify; print(graphify.__file__)" ``` -- **graphify** (`~/.claude/skills/graphify/SKILL.md`) - any input to knowledge graph. Trigger: `/graphify` -When the user types `/graphify`, use the installed graphify skill or instructions before doing anything else. + +그런 ė‹¤ģŒ ģ„¤ģ¹˜ėœ 명령얓넼 직접 실행핓 uvź°€ ź“€ė¦¬ķ•˜ėŠ” ģ‚¬ė³øģ„ ģ‚¬ģš©ķ•˜ź±°ė‚˜, ģ‹œģŠ¤ķ…œģ˜ ģ˜¤ėž˜ėœ ģ„¤ģ¹˜ė³øģ„ ģ œź±°ķ•˜ģ„øģš”. + +```bash +uvx --from graphifyy graphify extract . --backend openai # ķŒØķ‚¤ģ§€ ģ“ė¦„ģ„ ėŖ…ģ‹œģ ģœ¼ė”œ 지정 +pip uninstall graphifyy # ė˜ėŠ” ģ‹œģŠ¤ķ…œģ˜ ģ“ģ „ ģ„¤ģ¹˜ė³ø 제거 ``` -
+**`python -m graphify`ėŠ” ė˜ģ§€ė§Œ `graphify` ėŖ…ė ¹ģ–“ėŠ” ģž‘ė™ķ•˜ģ§€ ģ•ŠėŠ” 경우** + +명령얓가 ģ„¤ģ¹˜ėœ 실행 ķŒŒģ¼ 디렉터리가 ģ…øģ˜ `PATH`에 ģ—†ģŠµė‹ˆė‹¤. ģ¼ė°˜ `pip` ėŒ€ģ‹  `uv tool install` / `pipx install`ģ„ ź¶Œģž„ķ•©ė‹ˆė‹¤. ģ„¤ģ¹˜ 후 `uv tool update-shell` / `pipx ensurepath`넼 ģ‹¤ķ–‰ķ•˜ź³  새 ķ„°ėÆøė„ģ„ ģ—¬ģ„øģš”(ģœ„ģ˜ ģ„¤ģ¹˜ ģ°øź³  사항 ģ°øģ”°). + +**PowerShellģ—ģ„œ `/graphify .` 실행 ģ‹œ 경딜넼 ģøģ‹ķ•  수 ģ—†ė‹¤ėŠ” ģ˜¤ė„˜ź°€ ė°œģƒķ•˜ėŠ” 경우** -## ģ‚¬ģš©ė²• +PowerShellģ€ ė§Ø ģ•žģ˜ `/`넼 경딜 źµ¬ė¶„ģžė”œ ģ²˜ė¦¬ķ•©ė‹ˆė‹¤. Windowsģ—ģ„œėŠ” ģŠ¬ėž˜ģ‹œ ģ—†ģ“ `graphify .`넼 ģ‚¬ģš©ķ•˜ģ„øģš”. +**`--update` ė˜ėŠ” ģž¬ģƒģ„± 후 ź·øėž˜ķ”„ģ˜ ė…øė“œ ģˆ˜ź°€ ģ¤„ģ–“ė“œėŠ” 경우** + +ė¦¬ķŒ©ķ„°ė§ģœ¼ė”œ ķŒŒģ¼ģ„ ģ‚­ģ œķ•“ė„ 기씓 ė…øė“œź°€ 남아 ģžˆģ„ 수 ģžˆģŠµė‹ˆė‹¤. ģž¬ģƒģ„±ķ•œ ź·øėž˜ķ”„ģ˜ ė…øė“œ ģˆ˜ź°€ ė” ģ ė”ė¼ė„ ė®ģ–“ģ“°ė ¤ė©“ `--force`넼 ģ „ė‹¬ķ•˜ź±°ė‚˜ `GRAPHIFY_FORCE=1`ģ„ ģ„¤ģ •ķ•˜ģ„øģš”. + +**`extract`ź°€ `extraction was incomplete ... refusing to overwrite` ė©”ģ‹œģ§€ģ™€ ķ•Øź»˜ ģ¢…ė£Œė˜ėŠ” 경우** + +ģ¶”ģ¶œ ė„ģ¤‘ ė¹„ģ •ģƒ ģ¢…ė£Œė˜ź±°ė‚˜ ķŒŒģ¼ 순회 ź³¼ģ •ģ—ģ„œ ģžė£Œ 전첓넼 ģ½ģ§€ ėŖ»ķ•˜ė©“, 결과가 ģ™„ģ „ķ•œ ģ¶”ģ¶œ 결과볓다 ģž‘ģ•„ģ§‘ė‹ˆė‹¤. `graphify extract`ėŠ” `graph.json`ģ„ ė³“ķ˜øķ•˜źø° ģœ„ķ•“ ė” 큰 기씓 ź·øėž˜ķ”„ė„¼ ė¶ˆģ™„ģ „ķ•œ 결과딜 ė®ģ–“ģ“°ģ§€ ģ•ŠģŠµė‹ˆė‹¤. ģ›ģøģ„ ķ•“ź²°ķ•˜ź³  ė‹¤ģ‹œ ģ‹¤ķ–‰ķ•˜ź±°ė‚˜, ź·øėŒ€ė”œ ė®ģ–“ģ“°ė ¤ė©“ `--allow-partial`ģ„ ģ „ė‹¬ķ•˜ģ„øģš”. + +**ź°™ģ€ ģ—”ķ„°ķ‹°ģ˜ ė…øė“œź°€ ģ¤‘ė³µė˜ėŠ” 경우(유령 중복)** + +유령 ģ¤‘ė³µģ€ ź°™ģ€ ģ‹¬ė³¼ģ“ AST ģ¶”ģ¶œģ—ģ„œėŠ” ģ†ŒģŠ¤ ģœ„ģ¹˜ė„¼ ķ¬ķ•Øķ•œ ė…øė“œė”œ, ģ˜ėÆø ģ¶”ģ¶œģ—ģ„œėŠ” ģ†ŒģŠ¤ ģœ„ģ¹˜ź°€ ģ—†ėŠ” ė…øė“œė”œ 각각 ė‚˜ķƒ€ė‚˜ėŠ” ķ˜„ģƒģž…ė‹ˆė‹¤. ģ“ģ œėŠ” ź·øėž˜ķ”„ ģƒģ„± ģ‹œ ģžė™ģœ¼ė”œ ė³‘ķ•©ė©ė‹ˆė‹¤. v0.8.33 ģ“ģ „ģ— ė§Œė“  ź·øėž˜ķ”„ģ—ģ„œ ģ“ ė¬øģ œź°€ ė³“ģ“ė©“ 전첓넼 ė‹¤ģ‹œ ģ¶”ģ¶œķ•“ ģ •ė¦¬ķ•˜ģ„øģš”. + +```bash +graphify extract . --force ``` -/graphify # ķ˜„ģž¬ ė””ė ‰ķ† ė¦¬ģ—ģ„œ 실행 -/graphify ./raw # ķŠ¹ģ • ķ“ė”ģ—ģ„œ 실행 -/graphify ./raw --mode deep # ė” ģ ź·¹ģ ģø INFERRED 엣지 ģ¶”ģ¶œ -/graphify ./raw --update # ė³€ź²½ėœ ķŒŒģ¼ė§Œ ģž¬ģ¶”ģ¶œķ•˜ģ—¬ 기씓 ź·øėž˜ķ”„ģ— 병합 -/graphify ./raw --cluster-only # 기씓 ź·øėž˜ķ”„ģ˜ ķ“ėŸ¬ģŠ¤ķ„°ė§ė§Œ ģž¬ģ‹¤ķ–‰, ģž¬ģ¶”ģ¶œ ģ—†ģŒ -/graphify ./raw --no-viz # HTML ź±“ė„ˆė›°źø°, ė³“ź³ ģ„œ + JSON만 ģƒģ„± -/graphify ./raw --obsidian # Obsidian ė³¼ķŠøė„ ģƒģ„± (ģ˜µķŠøģø) -/graphify ./raw --obsidian --obsidian-dir ~/vaults/myproject # 볼트넼 ķŠ¹ģ • 디렉토리에 ģƒģ„± -/graphify add https://arxiv.org/abs/1706.03762 # 논문 ź°€ģ øģ˜¤źø°, ģ €ģž„, ź·øėž˜ķ”„ ģ—…ė°ģ“ķŠø -/graphify add https://x.com/karpathy/status/... # ķŠøģœ— ź°€ģ øģ˜¤źø° -/graphify add https://... --author "Name" # ģ›ģ €ģž 태그 -/graphify add https://... --contributor "Name" # ģ½”ķ¼ģŠ¤ģ— ģ¶”ź°€ķ•œ ģ‚¬ėžŒ 태그 +**Ollamaģ˜ VRAMģ“ ė¶€ģ”±ķ•˜ź±°ė‚˜ ģ»Øķ…ģŠ¤ķŠø ģœˆė„ė„¼ ģ“ˆź³¼ķ•˜ėŠ” 경우** -/graphify query "ģ–“ķ…ģ…˜ź³¼ ģ˜µķ‹°ė§ˆģ“ģ €ė„¼ ģ—°ź²°ķ•˜ėŠ” ź²ƒģ€?" -/graphify query "ģ–“ķ…ģ…˜ź³¼ ģ˜µķ‹°ė§ˆģ“ģ €ė„¼ ģ—°ź²°ķ•˜ėŠ” ź²ƒģ€?" --dfs # ķŠ¹ģ • 경딜 추적 -/graphify query "ģ–“ķ…ģ…˜ź³¼ ģ˜µķ‹°ė§ˆģ“ģ €ė„¼ ģ—°ź²°ķ•˜ėŠ” ź²ƒģ€?" --budget 1500 # N ķ† ķ°ģœ¼ė”œ ģ œķ•œ -/graphify path "DigestAuth" "Response" -/graphify explain "SwinTransformer" +KV ģŗģ‹œ ģœˆė„ ķ¬źø°ėŠ” ģžė™ ģ”°ģ •ė˜ģ§€ė§Œ GPU ģš©ėŸ‰ģ— 비핓 큓 수 ģžˆģŠµė‹ˆė‹¤. 크기넼 줄여 ė³“ģ„øģš”. + +```bash +GRAPHIFY_OLLAMA_NUM_CTX=8192 graphify extract ./docs --backend ollama --token-budget 4000 +``` + +**`LLM returned invalid JSON` / `Unterminated string` 경고가 ķ‘œģ‹œė˜ėŠ” 경우** + +ėŖØėøģ˜ JSON ģ‘ė‹µģ“ 출렄 토큰 ķ•œė„ģ— ė„ė‹¬ķ•“ ė¬øģžģ—“ ģ¤‘ź°„ģ—ģ„œ ģž˜ė¦° ź²ƒģž…ė‹ˆė‹¤. graphifyėŠ” 청크넼 ė‘˜ė”œ ė‚˜ėˆ  각각 ė‹¤ģ‹œ ģ¶”ģ¶œķ•˜ėŠ” ė°©ģ‹ģœ¼ė”œ ģžė™ ė³µźµ¬ķ•©ė‹ˆė‹¤. ė‹Øģ¼ ė¬øģ„œź°€ ė„ˆė¬“ 크멓 먼저 ģ œėŖ©Ā·ė¬øė‹Ø 경계넼 źø°ģ¤€ģœ¼ė”œ ė‚˜ėˆ„ėÆ€ė”œ ķŒŒģ¼ 전첓가 처리 ėŒ€ģƒģ— ķ¬ķ•Øė©ė‹ˆė‹¤. ė”°ė¼ģ„œ ģ“ 경고가 ė°˜ė³µė˜ģ–“ė„ ė°ģ“ķ„°ź°€ ģ†ģ‹¤ėœ ź²ƒģ€ ģ•„ė‹™ė‹ˆė‹¤. ģž¬ģ²˜ė¦¬ė„¼ ģ¤„ģ“ė ¤ė©“ 출렄 ķ•œė„ė„¼ ė†’ģ“ź±°ė‚˜ 청크별 ģ¶œė „ėŸ‰ģ„ ģ¤„ģ“ģ„øģš”. + +```bash +GRAPHIFY_MAX_OUTPUT_TOKENS=16384 graphify extract . --mode deep # 출렄 ķ•œė„ ģƒķ–„ +graphify extract . --mode deep --token-budget 4000 # ģž…ė „ 청크넼 줄여 ģ¶œė „ėŸ‰ ģ¶•ģ†Œ +``` + +OpenRouter ź°™ģ€ ķ“ė¼ģš°ė“œ ź²Œģ“ķŠøģ›Øģ“ė„¼ ģ‚¬ģš©ķ•  ė•ŒėŠ” Ollama ķ˜øķ™˜ 계층볓다 `--backend openai`와 `OPENAI_BASE_URL` ģ„¤ģ •ģ„ ź¶Œģž„ķ•©ė‹ˆė‹¤. OpenAI ķ˜øķ™˜ 경딜넼 ė” ģ§ģ ‘ģ ģœ¼ė”œ ģ‚¬ģš©ķ•  수 ģžˆģŠµė‹ˆė‹¤. ėŖØėø ģžģ²“ģ— ģµœėŒ€ 출렄 ķ•œė„ź°€ ģžˆė‹¤ė©“ `--token-budget`ģ„ ė‚®ģ¶”ėŠ” ź²ƒģ“ ķ™•ģ‹¤ķ•œ ģ”°ģ • ė°©ė²•ģž…ė‹ˆė‹¤. + +**ź·øėž˜ķ”„ HTMLģ“ ė„ˆė¬“ ģ»¤ģ„œ ėøŒė¼ģš°ģ €ģ—ģ„œ 엓리지 ģ•ŠėŠ” 경우(ė…øė“œ 5,000개 쓈과)** + +HTML ģƒģ„±ģ„ ź±“ė„ˆė›°ź³  JSONģ„ 직접 ģ‚¬ģš©ķ•˜ģ„øģš”. + +```bash +graphify cluster-only ./my-project --no-viz +graphify query "..." +``` + +**ź°œė°œģž 두 ėŖ…ģ“ ė™ģ‹œģ— ģ»¤ė°‹ķ•œ ė’¤ `graph.json`에 ģ¶©ėŒ ķ‘œģ‹œź°€ ģƒźø°ėŠ” 경우** + +`graphify hook install`ģ„ ģ‹¤ķ–‰ķ•˜ģ„øģš”. `graph.json`ģ˜ ė‚“ģš©ģ„ ģžė™ģœ¼ė”œ ķ•©ģ§‘ķ•© ė³‘ķ•©ķ•˜ėŠ” Git 병합 ė“œė¼ģ“ė²„ė„¼ 설정핓 ģ¶©ėŒģ„ ė°©ģ§€ķ•©ė‹ˆė‹¤. -/graphify ./raw --watch # ķŒŒģ¼ 변경 ģ‹œ ź·øėž˜ķ”„ ģžė™ ė™źø°ķ™” (ģ½”ė“œ: ģ¦‰ģ‹œ, ė¬øģ„œ: ģ•Œė¦¼) -/graphify ./raw --wiki # ģ—ģ“ģ „ķŠøź°€ 크딤 ź°€ėŠ„ķ•œ ģœ„ķ‚¤ ė¹Œė“œ (index.md + ģ»¤ė®¤ė‹ˆķ‹°ė³„ ė¬øģ„œ) -/graphify ./raw --svg # graph.svg 낓볓낓기 -/graphify ./raw --graphml # graph.graphml 낓볓낓기 (Gephi, yEd) +**ķŒ€ģ›ģ˜ 최근 변경 ģ‚¬ķ•­ģ“ ź·øėž˜ķ”„ģ— ė°˜ģ˜ė˜ģ§€ ģ•ŠėŠ” 경우** + +`git pull`ģ“ė‚˜ 병합 직후 `graphify update .`넼 ģ‹¤ķ–‰ķ•˜ģ„øģš”. [ź¶Œģž„ ģž‘ģ—… ķė¦„](#recommended-workflow)ģ„ ģ°øź³ ķ•˜ģ„øģš”. 커밋과 ėøŒėžœģ¹˜ ģ „ķ™˜ģ€ ģ„¤ģ¹˜ėœ ķ›…ģ“ ź·øėž˜ķ”„ė„¼ ģžė™ ź°±ģ‹ ķ•˜ģ§€ė§Œ, pull 후 ė™źø°ķ™”ėŠ” 직접 실행핓야 ķ•©ė‹ˆė‹¤. pull 별칭에 ķ¬ķ•Øķ•˜ė©“ ķ•œ ėŖ…ė ¹ģœ¼ė”œ ģ²˜ė¦¬ķ•  수 ģžˆģŠµė‹ˆė‹¤. + +```bash +git config --global alias.gpull '!git pull && graphify update .' +``` + +`graphify hook status`딜 ķ›…ģ“ ķ™œģ„±ķ™”ė˜ģ–“ ģžˆėŠ”ģ§€ ķ™•ģøķ•˜ģ„øģš”. ģøķ„°ķ”„ė¦¬ķ„°ė„¼ ģ—…ź·øė ˆģ“ė“œķ•˜ź±°ė‚˜ ģž¬ģ„¤ģ¹˜ķ–ˆė‹¤ė©“ `graphify hook install`ģ„ ė‹¤ģ‹œ 실행핓 ķ›…ģ„ ź°±ģ‹ ķ•˜ģ„øģš”. + +**ė¬øģ„œė‚˜ PDFģ—ģ„œ ė…øė“œĀ·ģ—£ģ§€ź°€ 비얓 ģžˆėŠ” 결과가 ė°˜ķ™˜ė˜ėŠ” 경우** + +ė¬øģ„œ, PDF, ģ“ėÆøģ§€ėŠ” LLM ķ˜øģ¶œģ“ ķ•„ģš”ķ•©ė‹ˆė‹¤. ģ½”ė“œė§Œ ģžˆėŠ” ģžė£Œ ėŖØģŒģ—ėŠ” 키가 ķ•„ģš”ķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤. API 키가 ģ„¤ģ •ė˜ģ–“ ģžˆź³  ė°±ģ—”ė“œź°€ ģ˜¬ė°”ė„øģ§€ ķ™•ģøķ•˜ģ„øģš”. + +```bash +ANTHROPIC_API_KEY=sk-... graphify extract ./docs --backend claude +``` + +**IDE에 ģŠ¤ķ‚¬ 버전 ė¶ˆģ¼ģ¹˜ 경고가 ķ‘œģ‹œė˜ėŠ” 경우** + +ģ„¤ģ¹˜ėœ graphify와 ģŠ¤ķ‚¬ ķŒŒģ¼ģ˜ ė²„ģ „ģ“ ė‹¤ė¦…ė‹ˆė‹¤. ė‹¤ģŒź³¼ ź°™ģ“ ģ—…ė°ģ“ķŠøķ•˜ģ„øģš”. + +```bash +uv tool upgrade graphifyy +graphify install # ģŠ¤ķ‚¬ ķŒŒģ¼ ė®ģ–“ģ“°źø° +``` + +**`graphify extract`넼 실행할 ė•Œė§ˆė‹¤ Claude Codeģ˜ ķ”„ė”¬ķ”„ķŠø ģŗģ‹œź°€ ė¬“ķšØķ™”ė˜ėŠ” 경우** + +GraphifyėŠ” ģž‘ģ—… 공간에 출렄 ķŒŒģ¼(`graph.json`, `graphify-out/`)ģ„ źø°ė”ķ•©ė‹ˆė‹¤. ģ“ ź²½ė”œė“¤ģ“ ģ œģ™øė˜ģ–“ ģžˆģ§€ ģ•Šģœ¼ė©“ ķŒŒģ¼ģ„ 쓸 ė•Œė§ˆė‹¤ Claude Codeģ˜ ķ”„ė”¬ķ”„ķŠø ģŗģ‹œź°€ ė¬“ķšØķ™”ė˜ģ–“, ė‹¤ģŒ 턓에 전첓 ė‚“ģš©ģ„ ė‹¤ģ‹œ ģ—…ė”œė“œķ•˜ź³  ģŗģ‹œ ģ“°źø° ģš”źøˆģ“ ģ ģš©ė©ė‹ˆė‹¤. `.claudeignore`에 ė‹¤ģŒģ„ ģ¶”ź°€ķ•˜ģ„øģš”. + +```text +# .claudeignore +graph.json +graphify-out/ +``` + +--- + + + +## 전첓 명령얓 ģ°øģ”° + +``` +/graphify # ķ˜„ģž¬ ė””ė ‰ķ„°ė¦¬ģ—ģ„œ 실행 +/graphify ./raw # ģ§€ģ •ķ•œ ķ“ė”ģ—ģ„œ 실행 +/graphify ./raw --mode deep # ꓀계넼 ė” 적극적으딜 ģ¶”ģ¶œ +graphify extract ./raw --code-only # ģ½”ė“œė§Œ ģøė±ģ‹± — 딜컬 AST ģ‚¬ģš©, API 키 ė¶ˆķ•„ģš” (ė¬øģ„œĀ·PDFĀ·ģ“ėÆøģ§€ ģ œģ™ø). ģŠ¤ķ‚¬ģ“ ģ•„ė‹Œ extract ėŖ…ė ¹ģ˜ ķ”Œėž˜ź·ø +/graphify ./raw --update # ė³€ź²½ėœ ķŒŒģ¼ė§Œ ė‹¤ģ‹œ ģ¶”ģ¶œ +/graphify ./raw --directed # 엣지 ė°©ķ–„ ģœ ģ§€ +/graphify ./raw --cluster-only # 기씓 ź·øėž˜ķ”„ģ—ģ„œ ķ“ėŸ¬ģŠ¤ķ„°ė§ ė‹¤ģ‹œ 실행 +/graphify ./raw --no-viz # HTML ģ‹œź°ķ™” ģƒėžµ +/graphify ./raw --obsidian # Obsidian 볓꓀함 ģƒģ„± +/graphify ./raw --obsidian --obsidian-dir ~/vault # 기씓 볓꓀함에 ģ €ģž„ (ģ‚¬ģš©ģž ė…øķŠøė‚˜ .obsidian ģ„¤ģ •ģ€ ė®ģ–“ģ“°ģ§€ ģ•ŠģŒ) +/graphify ./raw --wiki # ģ—ģ“ģ „ķŠøź°€ ķƒģƒ‰ķ•  수 ģžˆėŠ” Markdown ģœ„ķ‚¤ ģƒģ„± +/graphify ./raw --svg # graph.svg딜 낓볓낓기 +/graphify ./raw --graphml # Gephi / yEd용으딜 낓볓낓기 /graphify ./raw --neo4j # Neo4j용 cypher.txt ģƒģ„± -/graphify ./raw --neo4j-push bolt://localhost:7687 # 실행 ģ¤‘ģø Neo4j ģøģŠ¤ķ„“ģŠ¤ģ— 직접 ķ‘øģ‹œ +/graphify ./raw --neo4j-push bolt://localhost:7687 +/graphify ./raw --falkordb # FalkorDB용 cypher.txt ģƒģ„± +/graphify ./raw --falkordb-push falkordb://localhost:6379 +/graphify ./raw --watch # ķŒŒģ¼ 변경 ģ‹œ ģžė™ ė™źø°ķ™” /graphify ./raw --mcp # MCP stdio ģ„œė²„ ģ‹œģž‘ -# git ķ›… - ķ”Œėž«ķ¼ 묓꓀, 커밋 ė° ėøŒėžœģ¹˜ ģ „ķ™˜ ģ‹œ ź·øėž˜ķ”„ ģž¬ė¹Œė“œ -graphify hook install +/graphify add https://arxiv.org/abs/1706.03762 +/graphify add +/graphify add https://... --author "Name" --contributor "Name" + +/graphify query "what connects attention to the optimizer?" +/graphify query "..." --dfs --budget 1500 +/graphify path "DigestAuth" "Response" +/graphify explain "SwinTransformer" + +graphify save-result --question "Q" --answer "A" --nodes Foo Bar --outcome useful # ģ§ˆģ˜ģ‘ė‹µ ź²°ź³¼ źø°ė” (ģž‘ģ—… źø°ģ–µ. outcome ź°’: useful|dead_end|corrected) +graphify reflect # graphify-out/memory/ģ˜ 결과넼 ėŖØģ•„ reflections/LESSONS.md에 정리 +graphify reflect --if-stale # LESSONS.mdź°€ ėŖØė“  ģž…ė „ė³“ė‹¤ ģµœģ‹ ģ“ė©“ ģƒėžµ (ģ„øģ…˜ė§ˆė‹¤ ģ‹¤ķ–‰ķ•“ė„ ė¶€ė‹“ģ“ ģ ģŒ) +graphify reflect --out docs/LESSONS.md # ķ•™ģŠµ ė‚“ģš© ė¬øģ„œė„¼ 다넸 ģœ„ģ¹˜ģ— ģ €ģž„ +graphify reflect --graph graphify-out/graph.json # ķ•™ģŠµ ė‚“ģš©ģ„ ģ»¤ė®¤ė‹ˆķ‹°ė³„ė”œ 묶고 ģž‘ģ—… źø°ģ–µ ģ˜¤ė²„ė ˆģ“(.graphify_learning.json) ģ €ģž„ + # ģ˜¤ė²„ė ˆģ“ėŠ” ė…øė“œģ— preferred/tentative/contested 태그 부여 (최근 정볓에 ź°€ģ¤‘ģ¹˜, 근거 출처 ķ¬ķ•Ø) + # ģ“ķ›„ graphify explain / query에 "Lesson:" ģ•ˆė‚“ ķ‘œģ‹œ. ģ†ŒģŠ¤ź°€ ė³€ź²½ė˜ė©“ "code changed — re-verify"딜 ģž¬ķ™•ģø ķ•„ģš” ķ‘œģ‹œ + +graphify uninstall # ėŖØė“  ķ”Œėž«ķ¼ģ—ģ„œ ķ•œ ė²ˆģ— 제거 +graphify uninstall --purge # graphify-out/ė„ ģ‚­ģ œ +graphify uninstall --project --platform codex # ķ”„ė”œģ ķŠø ė‹Øģœ„ė”œ ģ„¤ģ¹˜ķ•œ ķŒŒģ¼ė§Œ 제거 + +graphify hook install # post-commit + post-checkout ķ›… ģ„¤ģ¹˜ graphify hook uninstall graphify hook status -# ģƒģ‹œ ģž‘ė™ ģ–“ģ‹œģŠ¤ķ„“ķŠø ģ§€ģ‹œ - ķ”Œėž«ķ¼ė³„ +# ė„ģš°ėÆøģ— ģƒģ‹œ ģ ģš©ķ•  지침 — ķ”Œėž«ķ¼ė³„ 설정 graphify claude install # CLAUDE.md + PreToolUse ķ›… (Claude Code) graphify claude uninstall -graphify codex install # AGENTS.md (Codex) -graphify opencode install # AGENTS.md (OpenCode) +graphify codebuddy install # CODEBUDDY.md + PreToolUse ķ›… (CodeBuddy) +graphify codebuddy uninstall +graphify codex install # AGENTS.md + .codex/hooks.jsonģ˜ PreToolUse ķ›… (Codex) +graphify opencode install # AGENTS.md + tool.execute.before ķ”ŒėŸ¬ź·øģø (OpenCode) +graphify kilo install # Kilo ė„¤ģ“ķ‹°ėøŒ ģŠ¤ķ‚¬ + /graphify ėŖ…ė ¹ + AGENTS.md + .kilo ķ”ŒėŸ¬ź·øģø +graphify kilo uninstall +graphify cursor install # .cursor/rules/graphify.mdc (Cursor) +graphify cursor uninstall +graphify gemini install # GEMINI.md + BeforeTool ķ›… (Gemini CLI) +graphify gemini uninstall +graphify copilot install # ģŠ¤ķ‚¬ ķŒŒģ¼ (GitHub Copilot CLI) +graphify copilot uninstall +graphify aider install # AGENTS.md (Aider) +graphify aider uninstall graphify claw install # AGENTS.md (OpenClaw) +graphify claw uninstall graphify droid install # AGENTS.md (Factory Droid) +graphify droid uninstall graphify trae install # AGENTS.md (Trae) graphify trae uninstall graphify trae-cn install # AGENTS.md (Trae CN) graphify trae-cn uninstall - -# ķ„°ėÆøė„ģ—ģ„œ 직접 ź·øėž˜ķ”„ 쿼리 (AI ģ–“ģ‹œģŠ¤ķ„“ķŠø ė¶ˆķ•„ģš”) -graphify query "ģ–“ķ…ģ…˜ź³¼ ģ˜µķ‹°ė§ˆģ“ģ €ė„¼ ģ—°ź²°ķ•˜ėŠ” ź²ƒģ€?" -graphify query "ģøģ¦ ķė¦„ 볓기" --dfs -graphify query "CfgNodeģ“ 뭐지?" --budget 500 -graphify query "..." --graph path/to/graph.json +graphify hermes install # AGENTS.md + ~/.hermes/skills/ (Hermes) +graphify hermes uninstall +graphify amp install # ģŠ¤ķ‚¬ ķŒŒģ¼ (Amp) +graphify amp uninstall +graphify agents install # ~/.agents/skills/ + AGENTS.md (ķ”„ė ˆģž„ģ›Œķ¬ 공통. 별칭: graphify skills) +graphify agents uninstall +graphify kiro install # .kiro/skills/ + .kiro/steering/graphify.md (Kiro IDE/CLI) +graphify kiro uninstall +graphify pi install # ģŠ¤ķ‚¬ ķŒŒģ¼ (Pi coding agent) +graphify pi uninstall +graphify devin install # ģŠ¤ķ‚¬ ķŒŒģ¼ + .windsurf/rules/graphify.md (Devin CLI) +graphify devin uninstall +graphify antigravity install # .agents/rules + .agents/workflows (Google Antigravity) +graphify antigravity uninstall + +graphify extract ./docs # CI용 ķ—¤ė“œė¦¬ģŠ¤ LLM ģ¶”ģ¶œ (IDE ė¶ˆķ•„ģš”) +graphify extract ./docs --backend gemini # ė°±ģ—”ė“œ ėŖ…ģ‹œ: gemini, kimi, claude, openai, deepseek, ollama, bedrock, claude-cli 중 ģ„ ķƒ +graphify extract ./docs --backend gemini --model gemini-3.1-pro-preview +graphify extract ./docs --backend ollama # 딜컬 Ollama (OLLAMA_BASE_URL / OLLAMA_MODEL 설정). 루프백 ģ—°ź²°ģ€ API 키 ė¶ˆķ•„ģš” +OPENAI_BASE_URL=http://localhost:8080/v1 OPENAI_MODEL=my-model graphify extract ./docs --backend openai # ėŖØė“  OpenAI ķ˜øķ™˜ ģ„œė²„ (llama.cpp, vLLM, LM Studio) +ANTHROPIC_BASE_URL=http://localhost:4000 ANTHROPIC_MODEL=my-model graphify extract ./docs --backend claude # ėŖØė“  Anthropic ķ˜øķ™˜ ģ—”ė“œķ¬ģøķŠø (LiteLLM ķ”„ė”ģ‹œ, ź²Œģ“ķŠøģ›Øģ“) +GRAPHIFY_OLLAMA_NUM_CTX=32768 graphify extract ./docs --backend ollama # KV ģŗģ‹œ ģœˆė„ 크기 직접 지정 (źø°ė³øź°’ģ€ ģžė™ ģ”°ģ •) +GRAPHIFY_OLLAMA_KEEP_ALIVE=0 graphify extract ./docs --backend ollama # 청크 처리 ķ›„ė§ˆė‹¤ ėŖØėø ķ•“ģ œ (ģ†Œķ˜• GPUģ˜ VRAM ģ ˆģ•½) +graphify extract ./docs --backend bedrock # IAM으딜 AWS Bedrock ģ‚¬ģš©. API 키 ģ—†ģ“ AWS ģžź²© ģ¦ėŖ… ģ²“ģø ģ‚¬ģš© +graphify extract ./docs --backend claude-cli # Claude Code CLI넼 경유. API 키 ģ—†ģ“ Claude źµ¬ė… ģ‚¬ģš© +graphify extract ./docs --backend azure # Azure OpenAI (AZURE_OPENAI_API_KEY + AZURE_OPENAI_ENDPOINT 설정) +graphify extract ./docs --max-workers 16 # AST 병렬 처리 수 (GRAPHIFY_MAX_WORKERSė”œė„ 설정 ź°€ėŠ„) +graphify extract --postgres "postgresql://user:pass@host/db" # 실행 ģ¤‘ģø PostgreSQL ģŠ¤ķ‚¤ė§ˆė„¼ 직접 씰사 +graphify extract ./my-workspace --cargo # Rust Cargo ģž‘ģ—… ź³µź°„ģ˜ ģ˜ģ”“ģ„±ģ„ 직접 씰사 +graphify extract ./docs --token-budget 30000 # ė”œģ»¬Ā·ģ†Œķ˜• ėŖØėøģš©ģœ¼ė”œ ģ˜ėÆø ė¶„ģ„ 청크 크기 ģ¶•ģ†Œ +graphify extract ./docs --max-concurrency 2 # 병렬 LLM 호출 수 ģ¶•ģ†Œ (딜컬 추딠에 유용) +graphify extract ./docs --api-timeout 900 # 느린 딜컬 ėŖØėøģ„ ģœ„ķ•“ HTTP ģ œķ•œ ģ‹œź°„ ģ—°ģž„ (źø°ė³øź°’ 600쓈) +graphify extract ./docs --google-workspace # ģ¶”ģ¶œ 전에 gws딜 .gdoc/.gsheet/.gslides 낓볓낓기 +graphify extract ./src --no-gitignore # Gitģ—ģ„œ ģ œģ™øķ•œ ģ†ŒģŠ¤ė„ ķ¬ķ•Ø. .graphifyignoreėŠ” ź³„ģ† 적용 +graphify extract ./docs --mode deep # ķ™•ģž„ėœ ģ‹œģŠ¤ķ…œ ķ”„ė”¬ķ”„ķŠøė”œ ė” ķ’ė¶€ķ•˜ź²Œ ģ˜ėÆø ģ¶”ģ¶œ +graphify extract ./docs --no-cluster # ķ“ėŸ¬ģŠ¤ķ„°ė§ ģ—†ģ“ ģ›ģ‹œ ģ¶”ģ¶œė§Œ ģˆ˜ķ–‰ +graphify extract ./docs --timing # 단계별 ģ‹¤ģ œ 경과 ģ‹œź°„ģ„ stderr에 출렄 (cluster-onlyģ—ģ„œė„ ģ‚¬ģš© ź°€ėŠ„) +graphify extract ./docs --force # 새 ź·øėž˜ķ”„ģ˜ ė…øė“œ ģˆ˜ź°€ ģ ģ–“ė„ graph.json ė®ģ–“ģ“°źø° (ė¦¬ķŒ©ķ„°ė§ 후 ė˜ėŠ” 유령 중복 정리에 ģ‚¬ģš©) +graphify extract ./docs --dedup-llm # ėŖØķ˜øķ•œ 엔터티 ģŒģ˜ 중복 여부넼 LLM으딜 ķŒģ • (ź°™ģ€ API 키 ģ‚¬ģš©) +graphify extract ./src --no-dedup # 엔터티 중복 제거 ģƒėžµ. ģ¦ė¶„ 병합 ģ‹œ ė³€ź²½ė˜ģ§€ ģ•Šģ€ ķŒŒģ¼ģ˜ ė…øė“œė„¼ ģ‚­ģ œķ•˜ģ§€ ėŖ»ķ•˜ź²Œ ķ•˜ėŠ” ģ¶•ģ†Œ ė°©ģ§€ źø°ėŠ„ė„ ķ™œģ„±ķ™” +graphify extract ./docs --global --as myrepo # ģ¶”ģ¶œ 후 ģ—¬ėŸ¬ ķ”„ė”œģ ķŠøė„¼ ģ•„ģš°ė„“ėŠ” ģ „ģ—­ ź·øėž˜ķ”„ģ— ė“±ė” +GRAPHIFY_MAX_OUTPUT_TOKENS=32768 graphify extract ./docs --backend claude # 정볓 ė°€ė„ź°€ ė†’ģ€ ģžė£Œ ėŖØģŒģ˜ 출렄 ķ•œė„ ģƒķ–„ + +graphify export callflow-html # graphify-out/-callflow.html +graphify export callflow-html --max-sections 8 # ģƒģ„±ķ•  ģ•„ķ‚¤ķ…ģ²˜ ģ„¹ģ…˜ 수 ģ œķ•œ +graphify export callflow-html --output docs/arch.html +graphify export callflow-html ./some-repo/graphify-out + +graphify global add graphify-out/graph.json --as myrepo # ķ”„ė”œģ ķŠø ź·øėž˜ķ”„ė„¼ ~/.graphify/global-graph.json에 ė“±ė” +graphify global remove myrepo # ģ „ģ—­ ź·øėž˜ķ”„ģ—ģ„œ ķ”„ė”œģ ķŠø 제거 +graphify global list # ė“±ė”ėœ ėŖØė“  ģ €ģž„ģ†Œģ™€ ė…øė“œĀ·ģ—£ģ§€ 수 ķ‘œģ‹œ +graphify global path # ģ „ģ—­ ź·øėž˜ķ”„ ķŒŒģ¼ 경딜 출렄 + +graphify prs # PR ėŒ€ģ‹œė³“ė“œ: CI, 리뷰, worktree, ź·øėž˜ķ”„ ģ˜ķ–„ +graphify prs 42 # PR #42 ģƒģ„ø ė¶„ģ„ +graphify prs --triage # AI ģš°ģ„ ģˆœģœ„ ė¶„ė„˜ (ķ™˜ź²½ ė³€ģˆ˜ģ—ģ„œ ė°±ģ—”ė“œ ģžė™ 감지) +graphify prs --worktrees # worktree → ėøŒėžœģ¹˜ → PR ģ—°ź²° 정볓 +graphify prs --conflicts # ź·øėž˜ķ”„ ģ»¤ė®¤ė‹ˆķ‹°ė„¼ ź³µģœ ķ•˜ėŠ” PR (병합 ģˆœģ„œģ— 따넸 ģœ„ķ—˜) +graphify prs --base main # ķŠ¹ģ • ėŒ€ģƒ ėøŒėžœģ¹˜ė”œ ķ–„ķ•˜ėŠ” PR만 필터링 +graphify prs --repo owner/repo # 다넸 GitHub ģ €ģž„ģ†Œė„¼ ėŒ€ģƒģœ¼ė”œ 실행 +GRAPHIFY_TRIAGE_BACKEND=kimi graphify prs --triage # ģš°ģ„ ģˆœģœ„ ė¶„ė„˜ģ— ģ‚¬ģš©ķ•  ė°±ģ—”ė“œ 지정 + +graphify clone https://github.com/karpathy/nanoGPT +graphify merge-graphs a.json b.json --out merged.json +graphify --version # ģ„¤ģ¹˜ėœ 버전 출렄 +graphify watch ./src +graphify check-update ./src +graphify update ./src +graphify update ./src --no-cluster # ģž¬ķ“ėŸ¬ģŠ¤ķ„°ė§ ģ—†ģ“ ģ›ģ‹œ AST ź·øėž˜ķ”„ė§Œ ģ €ģž„ +graphify update ./src --force # 새 ź·øėž˜ķ”„ģ˜ ė…øė“œ ģˆ˜ź°€ ģ ģ–“ė„ ė®ģ–“ģ“°źø° +graphify cluster-only ./my-project +graphify cluster-only ./my-project --graph path/to/graph.json # ź·øėž˜ķ”„ ģœ„ģ¹˜ 직접 지정 +graphify cluster-only ./my-project --max-concurrency 16 --batch-size 200 # ģ»¤ė®¤ė‹ˆķ‹° ģ“ė¦„ģ„ ė³‘ė ¬ė”œ 지정 (ėŒ€ķ˜• ź·øėž˜ķ”„ģš©) +graphify cluster-only ./my-project --resolution 1.5 # ė” ģž‘ź³  ė§Žģ€ ģ»¤ė®¤ė‹ˆķ‹°ė”œ ė¶„ķ•  +graphify cluster-only ./my-project --exclude-hubs 99 # ģ—°ź²° ģ°Øģˆ˜ź°€ 99ė°±ė¶„ģœ„ģø ė…øė“œė„¼ ė¶„ķ• ģ—ģ„œ ģ œģ™ø +graphify cluster-only ./my-project --no-label # ģž„ģ‹œ ģ“ė¦„ "Community N" ģœ ģ§€ +graphify cluster-only ./my-project --backend=gemini # ģ»¤ė®¤ė‹ˆķ‹° ģ“ė¦„ 지정에 ģ‚¬ģš©ķ•  ė°±ģ—”ė“œ +graphify cluster-only ./my-project --backend=gemini --model gemini-2.5-pro # ķŠ¹ģ • ėŖØėø 지정 +graphify label ./my-project # ģ„¤ģ •ėœ ė°±ģ—”ė“œė”œ ģ»¤ė®¤ė‹ˆķ‹° ģ“ė¦„ ģ§€ģ •Ā·ģž¬ģ§€ģ • +graphify label ./my-project --backend=openai --model gpt-4o # ķŠ¹ģ • ė°±ģ—”ė“œģ™€ ėŖØėøģ„ ź°•ģ œė”œ 지정 ``` -ė‹¤ģ–‘ķ•œ ķŒŒģ¼ ģœ ķ˜•ģ˜ ģ”°ķ•©ź³¼ ķ•Øź»˜ ė™ģž‘ķ•©ė‹ˆė‹¤: +> **ģ»¤ė®¤ė‹ˆķ‹° ģ“ė¦„:** ģ—ģ“ģ „ķŠø(Claude Code, Gemini CLI) ģ•ˆģ—ģ„œėŠ” ģ—ģ“ģ „ķŠøź°€ 직접 ģ“ė¦„ģ„ ė¶™ģž…ė‹ˆė‹¤. CLI만 ģ‹¤ķ–‰ķ•˜ėŠ” ź²½ģš°ģ—ėŠ” `cluster-only`ź°€ ģ„¤ģ •ėœ ė°±ģ—”ė“œ(ė‚“ģž„ ź³µźø‰ģž ė˜ėŠ” ģ‚¬ģš©ģž 지정 OpenAI ķ˜øķ™˜ ź³µźø‰ģž)딜 ģ“ė¦„ģ„ ģžė™ ģƒģ„±ķ•©ė‹ˆė‹¤. `Community N`ģ„ ģœ ģ§€ķ•˜ė ¤ė©“ `--no-label`ģ„ ģ „ė‹¬ķ•˜ź³ , ķ•„ģš”ķ•  ė•Œ ģ“ė¦„ģ„ ģƒģ„±ķ•˜ź±°ė‚˜ ė‹¤ģ‹œ ģƒģ„±ķ•˜ė ¤ė©“ `graphify label`ģ„ ģ‹¤ķ–‰ķ•˜ģ„øģš”. -| ģœ ķ˜• | ķ™•ģž„ģž | ģ¶”ģ¶œ ė°©ģ‹ | -|------|--------|-----------| -| ģ½”ė“œ | `.py .ts .js .jsx .tsx .go .rs .java .c .cpp .rb .cs .kt .scala .php .swift .lua .zig .ps1 .ex .exs .m .mm .jl` | tree-sitter AST + 콜 ź·øėž˜ķ”„ + docstring/ģ£¼ģ„ 근거 | -| ė¬øģ„œ | `.md .txt .rst` | Claude넼 ķ†µķ•œ ź°œė… + ꓀계 + 설계 근거 | -| ģ˜¤ķ”¼ģŠ¤ | `.docx .xlsx` | ė§ˆķ¬ė‹¤ģš“ģœ¼ė”œ ė³€ķ™˜ 후 Claude넼 통핓 ģ¶”ģ¶œ (`pip install graphifyy[office]` ķ•„ģš”) | -| 논문 | `.pdf` | ģøģš© ė§ˆģ“ė‹ + ź°œė… ģ¶”ģ¶œ | -| ģ“ėÆøģ§€ | `.png .jpg .webp .gif` | Claude Vision - 스크린샷, ė‹¤ģ“ģ–“ź·øėžØ, ėŖØė“  ģ–øģ–“ | +--- -## 결과물 -**ź°“ ė…øė“œ** - 최고 ģ°Øģˆ˜ģ˜ ź°œė… (ėŖØė“  ź²ƒģ“ ģ—°ź²°ė˜ėŠ” ķ—ˆėøŒ) +## ė” ģ•Œģ•„ė³“źø° -**ģ˜ģ™øģ˜ ģ—°ź²°** - 복합 점수딜 ģˆœģœ„ 지정. ģ½”ė“œ-논문 ģ—£ģ§€ėŠ” ģ½”ė“œ-ģ½”ė“œė³“ė‹¤ ė†’ź²Œ ģˆœģœ„ė©ė‹ˆė‹¤. 각 ź²°ź³¼ģ—ėŠ” ģ‰¬ģš“ ģ„¤ėŖ…ģ“ ķ¬ķ•Øė©ė‹ˆė‹¤. +- [ģž‘ė™ 원리](https://github.com/Graphify-Labs/graphify/blob/v8/docs/how-it-works.md) — ģ¶”ģ¶œ ķŒŒģ“ķ”„ė¼ģø, ģ»¤ė®¤ė‹ˆķ‹° ķƒģ§€, ģ‹ ė¢°ė„ ķ‰ź°€, 벤치마크 +- [ARCHITECTURE.md](https://github.com/Graphify-Labs/graphify/blob/v8/ARCHITECTURE.md) — ėŖØė“ˆ 구성과 ģ–øģ–“ 추가 방법 +- [ģ„ ķƒģ  ģ—°ė™](https://github.com/Graphify-Labs/graphify/blob/v8/docs/docker-mcp-sqlite.md) — Docker MCP Toolkit + SQLite +- [The Memory Layer](https://safishamsi.gumroad.com/l/qetvlo) — graphifyģ˜ ė°”ķƒ•ģ“ 된 ģ•„ģ“ė””ģ–“ģ™€ 전첓 ģ•„ķ‚¤ķ…ģ²˜ė„¼ ģ„¤ėŖ…ķ•˜ėŠ” ģ±… -**ģ¶”ģ²œ 질문** - ź·øėž˜ķ”„ź°€ ź³ ģœ ķ•˜ź²Œ 답할 수 ģžˆėŠ” 4~5ź°œģ˜ 질문 +--- -**"ģ“ģœ "** - docstring, ģøė¼ģø ģ£¼ģ„(`# NOTE:`, `# IMPORTANT:`, `# HACK:`, `# WHY:`), ė¬øģ„œģ˜ 설계 근거가 `rationale_for` ė…øė“œė”œ ģ¶”ģ¶œė©ė‹ˆė‹¤. ģ½”ė“œź°€ ė¬“ģ—‡ģ„ ķ•˜ėŠ”ģ§€ėæė§Œ ģ•„ė‹ˆė¼ — ģ™œ ź·øė ‡ź²Œ ģž‘ģ„±ė˜ģ—ˆėŠ”ģ§€. +## graphify Enterprise -**ģ‹ ė¢°ė„ 점수** - ėŖØė“  INFERRED ģ—£ģ§€ģ—ėŠ” `confidence_score`(0.0~1.0)ź°€ ģžˆģŠµė‹ˆė‹¤. ė¬“ģ—‡ģ“ ģ¶”ģø”ė˜ģ—ˆėŠ”ģ§€ėæ ģ•„ė‹ˆė¼ ėŖØėøģ“ ģ–¼ė§ˆė‚˜ ķ™•ģ‹ ķ–ˆėŠ”ģ§€ė„ ģ•Œ 수 ģžˆģŠµė‹ˆė‹¤. EXTRACTED ģ—£ģ§€ėŠ” ķ•­ģƒ 1.0ģž…ė‹ˆė‹¤. +[**graphify Enterprise**](https://graphify.com)ėŠ” graphify넼 기반으딜 ģƒģ‹œ ģž‘ė™ķ•˜ėŠ” ģ„œė¹„ģŠ¤ģž…ė‹ˆė‹¤. ķšŒģ˜, ķŒŒģ¼, ė¬øģ„œ, ģ½”ė“œ 등 업묓 ė§„ė½ 전첓에 ź°™ģ€ ź·øėž˜ķ”„ ģ ‘ź·¼ ė°©ģ‹ģ„ ģ ģš©ķ•˜ź³ , ė°±ź·øė¼ģš“ė“œģ—ģ„œ ź³„ģ† ź°±ģ‹ ķ•©ė‹ˆė‹¤. -**ģ˜ėÆøģ  ģœ ģ‚¬ģ„± 엣지** - 구씰적 ģ—°ź²° ģ—†ėŠ” ķŒŒģ¼ ź°„ ź°œė… 링크. ģ„œė”œė„¼ ķ˜øģ¶œķ•˜ģ§€ ģ•Šģœ¼ė©“ģ„œ ź°™ģ€ 문제넼 ķ•“ź²°ķ•˜ėŠ” 두 ķ•Øģˆ˜, ģ½”ė“œģ˜ ķ“ėž˜ģŠ¤ģ™€ ź°™ģ€ ģ•Œź³ ė¦¬ģ¦˜ģ„ ģ„¤ėŖ…ķ•˜ėŠ” ė…¼ė¬øģ˜ ź°œė… 등. +수백 ź±“ģ˜ ėŒ€ķ™”ģ™€ ė¬øģ„œģ— ķ©ģ–“ģ§„ 업묓 ė‚“ģš©ģ„ ģ˜Øģ „ķžˆ 되짚기 ģ–“ė ¤ģš“ ź°œģøź³¼ ķŒ€ģ„ ģœ„ķ•“ ė§Œė“¤ģ—ˆģŠµė‹ˆė‹¤. -**ķ•˜ģ“ķ¼ģ—£ģ§€** - ģŒė³„ ģ—£ģ§€ė”œėŠ” ķ‘œķ˜„ķ•  수 ģ—†ėŠ” 3개 ģ“ģƒ ė…øė“œģ˜ 그룹 ꓀계. 공유 ķ”„ė”œķ† ģ½œģ„ źµ¬ķ˜„ķ•˜ėŠ” ėŖØė“  ķ“ėž˜ģŠ¤, ģøģ¦ ķė¦„ģ˜ ėŖØė“  ķ•Øģˆ˜, 논문 ģ„¹ģ…˜ģ—ģ„œ ķ•˜ė‚˜ģ˜ ģ•„ģ“ė””ģ–“ė„¼ źµ¬ģ„±ķ•˜ėŠ” ėŖØė“  ź°œė… 등. +**[graphify.comģ—ģ„œ ėŒ€źø°ģž 명단에 ė“±ė”ķ•˜ģ„øģš”](https://graphify.com).** 묓료 ģ²“ķ—˜ė„ ź³§ 제공될 ģ˜ˆģ •ģž…ė‹ˆė‹¤. -**토큰 벤치마크** - 매 실행 후 ģžė™ģœ¼ė”œ ģ¶œė „ė©ė‹ˆė‹¤. ķ˜¼ķ•© ģ½”ķ¼ģŠ¤(Karpathy ė¦¬ķ¬ģ§€ķ† ė¦¬ + 논문 + ģ“ėÆøģ§€)ģ—ģ„œ: 원본 ķŒŒģ¼ ėŒ€ė¹„ 쿼리당 **71.5ė°°** ģ ģ€ 토큰. 첫 ģ‹¤ķ–‰ģ€ ģ¶”ģ¶œź³¼ ź·øėž˜ķ”„ ė¹Œė“œė„¼ ģˆ˜ķ–‰ķ•©ė‹ˆė‹¤(ķ† ķ°ģ“ ģ†Œė¹„ė©ė‹ˆė‹¤). ģ“ķ›„ ėŖØė“  ģæ¼ė¦¬ėŠ” 원본 ķŒŒģ¼ ėŒ€ģ‹  ģ••ģ¶•ėœ ź·øėž˜ķ”„ė„¼ ģ½ģŠµė‹ˆė‹¤ — ģ—¬źø°ģ„œ ģ ˆģ•½ģ“ 복리딜 ėˆ„ģ ė©ė‹ˆė‹¤. SHA256 ģŗģ‹œė”œ ģž¬ģ‹¤ķ–‰ ģ‹œ ė³€ź²½ėœ ķŒŒģ¼ė§Œ ģž¬ģ²˜ė¦¬ķ•©ė‹ˆė‹¤. +--- -**ģžė™ ė™źø°ķ™”** (`--watch`) - ė°±ź·øė¼ģš“ė“œ ķ„°ėÆøė„ģ—ģ„œ ģ‹¤ķ–‰ķ•˜ė©“ ģ½”ė“œė² ģ“ģŠ¤ź°€ 변경될 ė•Œ ź·øėž˜ķ”„ź°€ ģžė™ģœ¼ė”œ ģ—…ė°ģ“ķŠøė©ė‹ˆė‹¤. ģ½”ė“œ ķŒŒģ¼ ģ €ģž„ ģ‹œ ģ¦‰ģ‹œ ģž¬ė¹Œė“œź°€ ķŠøė¦¬ź±°ė©ė‹ˆė‹¤(AST만, LLM ģ—†ģŒ). ė¬øģ„œ/ģ“ėÆøģ§€ 변경 ģ‹œģ—ėŠ” LLM ģž¬ģ²˜ė¦¬ė„¼ ģœ„ķ•“ `--update` ģ‹¤ķ–‰ģ„ ģ•Œė ¤ģ¤ė‹ˆė‹¤. +
+źø°ģ—¬ķ•˜źø° -**Git ķ›…** (`graphify hook install`) - post-commit ė° post-checkout ķ›…ģ„ ģ„¤ģ¹˜ķ•©ė‹ˆė‹¤. ėŖØė“  커밋과 ėøŒėžœģ¹˜ ģ „ķ™˜ 후 ź·øėž˜ķ”„ź°€ ģžė™ģœ¼ė”œ ģž¬ė¹Œė“œė©ė‹ˆė‹¤. ģž¬ė¹Œė“œź°€ ģ‹¤ķŒØķ•˜ė©“ ķ›…ģ“ 0ģ“ ģ•„ė‹Œ ģ½”ė“œė”œ ģ¢…ė£Œķ•˜ģ—¬ gitģ“ ģ—ėŸ¬ė„¼ ķ‘œģ‹œķ•˜ź³  ģ”°ģš©ķžˆ ź³„ģ† ģ§„ķ–‰ķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤. ė°±ź·øė¼ģš“ė“œ ķ”„ė”œģ„øģŠ¤ź°€ ķ•„ģš” ģ—†ģŠµė‹ˆė‹¤. +### 개발 ķ™˜ź²½ 설정 -**ģœ„ķ‚¤** (`--wiki`) - ģ»¤ė®¤ė‹ˆķ‹° ė° ź°“ ė…øė“œė³„ ģœ„ķ‚¤ķ”¼ė””ģ•„ ģŠ¤ķƒ€ģ¼ ė§ˆķ¬ė‹¤ģš“ ė¬øģ„œģ™€ `index.md` ģ§„ģž…ģ . ģ–“ė–¤ ģ—ģ“ģ „ķŠøė“  `index.md`넼 가리키멓 JSONģ„ ķŒŒģ‹±ķ•˜ėŠ” ėŒ€ģ‹  ķŒŒģ¼ģ„ ģ½ģ–“ģ„œ ģ§€ģ‹ ė² ģ“ģŠ¤ė„¼ ķƒģƒ‰ķ•  수 ģžˆģŠµė‹ˆė‹¤. +ģ“ ķ”„ė”œģ ķŠøėŠ” 개발 ģž‘ģ—…ģ— [uv](https://docs.astral.sh/uv/)넼 ģ‚¬ģš©ķ•©ė‹ˆė‹¤. uv넼 ķ•œ 번 ģ„¤ģ¹˜ķ•œ ė’¤ ė‹¤ģŒģ„ ģ‹¤ķ–‰ķ•˜ģ„øģš”. -## 실전 예제 +```bash +git clone https://github.com/safishamsi/graphify.git +cd graphify +git checkout v8 # ķ˜„ģž¬ ź°œė°œģ“ ģ§„ķ–‰ė˜ėŠ” ėøŒėžœģ¹˜ + +# ķ”„ė”œģ ķŠø ź°€ģƒ ķ™˜ź²½ģ„ ė§Œė“¤ź³  graphify, ėŖØė“  ģ„ ķƒ 기늄, 개발 ģ˜ģ”“ģ„± 그룹 +# (pytest)ģ„ ģ„¤ģ¹˜ķ•©ė‹ˆė‹¤. uvėŠ” 기본적으딜 개발 ģ˜ģ”“ģ„± ź·øė£¹ė„ ģ„¤ģ¹˜ķ•©ė‹ˆė‹¤. +# ģ œģ™øķ•˜ė ¤ė©“ --no-dev넼 ģ „ė‹¬ķ•˜ģ„øģš”. +uv sync --all-extras +``` -| ģ½”ķ¼ģŠ¤ | ķŒŒģ¼ 수 | ģ¶•ģ†ŒģœØ | ź²°ź³¼ | -|--------|---------|--------|------| -| Karpathy ė¦¬ķ¬ģ§€ķ† ė¦¬ + 논문 5ķŽø + ģ“ėÆøģ§€ 4ģž„ | 52 | **71.5x** | [`worked/karpathy-repos/`](worked/karpathy-repos/) | -| graphify ģ†ŒģŠ¤ + Transformer 논문 | 4 | **5.4x** | [`worked/mixed-corpus/`](worked/mixed-corpus/) | -| httpx (합성 Python ė¼ģ“ėøŒėŸ¬ė¦¬) | 6 | ~1x | [`worked/httpx/`](worked/httpx/) | +ģ†ŒģŠ¤ ģˆ˜ģ • ģ‚¬ķ•­ģ“ ė°”ė”œ ė°˜ģ˜ė˜ėŠ” ķŽøģ§‘ ź°€ėŠ„ ģ„¤ģ¹˜ź°€ ė˜ģ—ˆėŠ”ģ§€ ķ™•ģøķ•˜ģ„øģš”. -토큰 ģ¶•ģ†ŒėŠ” ģ½”ķ¼ģŠ¤ 크기에 ė¹„ė”€ķ•˜ģ—¬ ķ™•ģž„ė©ė‹ˆė‹¤. 6개 ķŒŒģ¼ģ€ 얓차피 ģ»Øķ…ģŠ¤ķŠø ģœˆė„ģš°ģ— ė“¤ģ–“ź°€ėÆ€ė”œ, ź·øėž˜ķ”„ģ˜ ź°€ģ¹˜ėŠ” ģ••ģ¶•ģ“ ģ•„ė‹Œ 구씰적 명확성에 ģžˆģŠµė‹ˆė‹¤. 52개 ķŒŒģ¼(ģ½”ė“œ + 논문 + ģ“ėÆøģ§€)ģ—ģ„œėŠ” 71ė°° ģ“ģƒģ„ ė‹¬ģ„±ķ•©ė‹ˆė‹¤. 각 `worked/` ķ“ė”ģ—ėŠ” 원본 ģž…ė „ ķŒŒģ¼ź³¼ ģ‹¤ģ œ 출렄(`GRAPH_REPORT.md`, `graph.json`)ģ“ ģžˆģ–“ 직접 ģ‹¤ķ–‰ķ•˜ģ—¬ 수치넼 ź²€ģ¦ķ•  수 ģžˆģŠµė‹ˆė‹¤. +```bash +uv run graphify --version +uv run python -c "import graphify; print(graphify.__file__)" +``` -## ź°œģøģ •ė³“ 볓호 +### ķ…ŒģŠ¤ķŠø 실행 -graphifyėŠ” ė¬øģ„œ, 논문, ģ“ėÆøģ§€ģ˜ ģ˜ėÆøģ  ģ¶”ģ¶œģ„ ģœ„ķ•“ ķŒŒģ¼ ė‚“ģš©ģ„ AI 코딩 ģ–“ģ‹œģŠ¤ķ„“ķŠøģ˜ 기반 ėŖØėø API딜 ģ „ģ†”ķ•©ė‹ˆė‹¤ — Anthropic(Claude Code), OpenAI(Codex), ė˜ėŠ” ģ‚¬ģš© ģ¤‘ģø ķ”Œėž«ķ¼ģ˜ ģ œź³µģž. ģ½”ė“œ ķŒŒģ¼ģ€ tree-sitter AST넼 통핓 ė”œģ»¬ģ—ģ„œ ģ²˜ė¦¬ė©ė‹ˆė‹¤ — ģ½”ė“œģ˜ 경우 ķŒŒģ¼ ė‚“ģš©ģ“ ģ‚¬ģš©ģžģ˜ ėØøģ‹ ģ„ ė²—ģ–“ė‚˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤. ģ–“ė– ķ•œ ķ…”ė ˆė©”ķŠøė¦¬, ģ‚¬ģš© 추적, ė¶„ģ„ė„ ģ—†ģŠµė‹ˆė‹¤. ģœ ģ¼ķ•œ ė„¤ķŠøģ›Œķ¬ ķ˜øģ¶œģ€ ģ¶”ģ¶œ 중 ķ”Œėž«ķ¼ ėŖØėø API에 ėŒ€ķ•œ ź²ƒģ“ė©°, ģ‚¬ģš©ģž ė³øģøģ˜ API 키넼 ģ‚¬ģš©ķ•©ė‹ˆė‹¤. +```bash +uv run pytest tests/ -q # 전첓 ķ…ŒģŠ¤ķŠø 실행 +uv run pytest tests/test_extract.py -q # ė‹Øģ¼ ėŖØė“ˆ 실행 +uv run pytest tests/ -q -k "python" # ģ“ė¦„ģœ¼ė”œ 필터링 +``` -## 기술 ģŠ¤ķƒ +### CI와 ė™ģ¼ķ•œ 씰걓으딜 ź²€ģ‚¬ķ•˜źø° -NetworkX + Leiden (graspologic) + tree-sitter + vis.js. ģ˜ėÆøģ  ģ¶”ģ¶œģ€ Claude(Claude Code), GPT-4(Codex), ė˜ėŠ” ķ”Œėž«ķ¼ģ“ ģ‹¤ķ–‰ķ•˜ėŠ” ėŖØėøģ„ 통핓 ģˆ˜ķ–‰ė©ė‹ˆė‹¤. Neo4j ė¶ˆķ•„ģš”, ģ„œė²„ ė¶ˆķ•„ģš”, ģ™„ģ „ķžˆ ė”œģ»¬ģ—ģ„œ ģ‹¤ķ–‰ė©ė‹ˆė‹¤. +źø°ģ¤€ģ“ ė˜ėŠ” CI ėŖ…ė ¹ģ–“ėŠ” [`.github/workflows/`](https://github.com/Graphify-Labs/graphify/tree/v8/.github/workflows/)에 ģžˆģŠµė‹ˆė‹¤. ė”œģ»¬ģ—ģ„œ CI와 ź°™ģ€ ė°©ģ‹ģœ¼ė”œ ź²€ģ¦ķ•˜ė ¤ė©“ Python 3.10, 3.12, 3.13 ė˜ėŠ” 3.14넼 ģ‚¬ģš©ķ•“ ė‹¤ģŒģ„ ģ‹¤ķ–‰ķ•˜ģ„øģš”. -## ė‹¤ģŒ ź³„ķš +```bash +uv sync --all-extras --frozen +uv run --frozen pytest tests/ -q --tb=short +uv run --frozen python -m tools.skillgen --check +uv run --frozen python -m tools.skillgen --audit-coverage +uv run --frozen python -m tools.skillgen --schema-singleton +uv run --frozen python -m tools.skillgen --monolith-roundtrip +uv run --frozen python -m tools.skillgen --always-on-roundtrip +uv run --frozen graphify --help +uv run --frozen graphify install +``` -graphifyėŠ” ź·øėž˜ķ”„ ė ˆģ“ģ–“ģž…ė‹ˆė‹¤. ź·ø ģœ„ģ— [Penpax](https://safishamsi.github.io/penpax.ai)넼 ź°œė°œķ•˜ź³  ģžˆģŠµė‹ˆė‹¤ — ķšŒģ˜, ėøŒė¼ģš°ģ € źø°ė”, ķŒŒģ¼, ģ“ė©”ģ¼, ģ½”ė“œė„¼ ķ•˜ė‚˜ģ˜ ģ§€ģ†ģ ģœ¼ė”œ ģ—…ė°ģ“ķŠøė˜ėŠ” ģ§€ģ‹ ź·øėž˜ķ”„ė”œ ģ—°ź²°ķ•˜ėŠ” ģ˜Øė””ė°”ģ“ģŠ¤ 디지털 ķŠøģœˆģž…ė‹ˆė‹¤. ķ“ė¼ģš°ė“œ ģ—†ģŒ, ė°ģ“ķ„° ķ•™ģŠµ ģ—†ģŒ. [ėŒ€źø° ėŖ©ė”ģ— ė“±ė”ķ•˜ģ„øģš”.](https://safishamsi.github.io/penpax.ai) +RuffėŠ” 추가 딜컬 검사(`uv run --frozen ruff check .`)에 ģœ ģš©ķ•˜ģ§€ė§Œ, ķ˜„ģž¬ėŠ” ģ‹¤ķŒØ ģ‹œ CI넼 ģ¤‘ė‹Øģ‹œķ‚¤ėŠ” ķ•„ģˆ˜ ģž‘ģ—…ģ“ ģ•„ė‹™ė‹ˆė‹¤. Pyrightė„ 햄후 CI에 ģ¶”ź°€ė˜źø° ģ „ź¹Œģ§€ėŠ” 딜컬 참고용 ź²€ģ‚¬ģž…ė‹ˆė‹¤. Banditź³¼ pip-audit CI ė‹Øź³„ģ—ėŠ” ķ˜„ģž¬ `continue-on-error`ź°€ ģ„¤ģ •ė˜ģ–“ ģžˆģœ¼ėÆ€ė”œ, 발견 ģ‚¬ķ•­ģ€ ģ°øź³ ģš©ģ“ė©° CI넼 ģ¤‘ė‹Øģ‹œķ‚¤ģ§€ ģ•ŠģŠµė‹ˆė‹¤. -## ģŠ¤ķƒ€ ķžˆģŠ¤ķ† ė¦¬ +> macOS ģ°øź³ : ķ…ŒģŠ¤ķŠø ėŖØģŒģ—ėŠ” `sample.f90`ź³¼ `sample.F90` ķ”½ģŠ¤ģ²˜ź°€ 모두 ķ¬ķ•Øė˜ģ–“ ģžˆģŠµė‹ˆė‹¤. ėŒ€ģ†Œė¬øģžė„¼ źµ¬ė¶„ķ•˜ģ§€ ģ•ŠėŠ” HFS+ / APFS ķŒŒģ¼ ģ‹œģŠ¤ķ…œģ—ģ„œėŠ” 두 ķŒŒģ¼ģ“ ģ¶©ėŒķ•©ė‹ˆė‹¤. 두 Fortran ė³€ķ˜•ģ„ ė™ģ‹œģ— ķ…ŒģŠ¤ķŠøķ•˜ė ¤ė©“ Linuxė‚˜ Docker ģ»Øķ…Œģ“ė„ˆģ—ģ„œ ģ‹¤ķ–‰ķ•˜ģ„øģš”. -[![Star History Chart](https://starchart.cc/safishamsi/graphify.svg)](https://starchart.cc/safishamsi/graphify) +> Windows ģ°øź³ : ė„¤ģ“ķ‹°ėøŒ Windows ķ…ŒģŠ¤ķŠø ėŖØģŒģ€ 심볼릭 링크, źø“ 경딜, POSIX ź¶Œķ•œ, 경딜 źµ¬ė¶„ģž, UTF-8 ķŒŒģ¼ ģ‹œģŠ¤ķ…œ ė™ģž‘ģ„ ź²€ģ‚¬ķ•©ė‹ˆė‹¤. ź“€ė¦¬ģž ź¶Œķ•œ ģ—†ģ“ 심볼릭 링크넼 ė§Œė“¤ 수 ģžˆė„ė” Windows ź°œė°œģž ėŖØė“œė„¼ ģ¼œź±°ė‚˜, ź“€ė¦¬ģž ź¶Œķ•œ ģ…øģ—ģ„œ ķ…ŒģŠ¤ķŠøė„¼ ģ‹¤ķ–‰ķ•˜ģ„øģš”. źø“ 경딜 ķ…ŒģŠ¤ķŠøė„¼ ģ‚¬ģš©ķ•˜źø° 전에 Windowsģ˜ `LongPathsEnabled` ģ •ģ±…ģ„ ķ™œģ„±ķ™”ķ•˜ģ„øģš”. 두 설정 중 ķ•˜ė‚˜ė„¼ ė³€ź²½ķ–ˆė‹¤ė©“ ģ˜ķ–„ģ„ ė°›ėŠ” ģ…øģ“ė‚˜ ģ• ķ”Œė¦¬ģ¼€ģ“ģ…˜ģ„ ė‹¤ģ‹œ ģ‹œģž‘ķ•˜ģ„øģš”. ķ•„ģˆ˜ GitHub Actions ķ…ŒģŠ¤ķŠø ė§¤ķŠøė¦­ģŠ¤ģ™€ ģ •ķ™•ķžˆ ź°™ģ€ ģ”°ź±“ģ„ ė§žģ¶”ė ¤ė©“ WSLģ“ė‚˜ Linuxģ—ģ„œ ķ…ŒģŠ¤ķŠøė„¼ ģ‹¤ķ–‰ķ•˜ģ„øģš”. ķ˜„ģž¬ CIėŠ” Ubuntuģ—ģ„œ Python 3.10, 3.12, 3.13, 3.14딜 ģ‹¤ķ–‰ė©ė‹ˆė‹¤. PyrightėŠ” 딜컬 참고용 ź²€ģ‚¬ė”œ ģ‚¬ģš©ķ•  수 ģžˆģ§€ė§Œ, ķ˜„ģž¬ ķ•„ģˆ˜ CI ģž‘ģ—…ģ€ ģ•„ė‹™ė‹ˆė‹¤. -
-źø°ģ—¬ķ•˜źø° +### Git ģž‘ģ—… ķė¦„ + +- ź°œė°œģ€ `v8` ėøŒėžœģ¹˜ģ—ģ„œ ģ§„ķ–‰ķ•©ė‹ˆė‹¤. +- 커밋 ķ˜•ģ‹: `fix: ` / `feat: ` / `docs: ` +- PRģ„ ģ—“źø° 전에 `uv run pytest tests/ -q`넼 ģ‹¤ķ–‰ķ•˜ź³  ķ†µź³¼ķ•˜ėŠ”ģ§€ ķ™•ģøķ•˜ģ„øģš”. +- 새 ģ–øģ–“ ģ¶”ģ¶œźø°ė„¼ 추가할 ė•ŒėŠ” `tests/fixtures/`에 ķ”½ģŠ¤ģ²˜ ķŒŒģ¼ģ„, `tests/test_languages.py`에 ķ…ŒģŠ¤ķŠøė„¼ ģ¶”ź°€ķ•˜ģ„øģš”. + +### 기여할 수 ģžˆėŠ” ė‚“ģš© -**실전 예제**ėŠ” ź°€ģž„ 신뢰넼 ģŒ“ėŠ” źø°ģ—¬ ė°©ģ‹ģž…ė‹ˆė‹¤. ģ‹¤ģ œ ģ½”ķ¼ģŠ¤ģ—ģ„œ `/graphify`넼 ģ‹¤ķ–‰ķ•˜ź³ , 결과넼 `worked/{slug}/`에 ģ €ģž„ķ•˜ź³ , ź·øėž˜ķ”„ź°€ ė§žź²Œ ķŒŒģ•…ķ•œ 것과 틀린 ź²ƒģ„ ķ‰ź°€ķ•˜ėŠ” ģ†”ģ§ķ•œ `review.md`넼 ģž‘ģ„±ķ•˜ģ—¬ PRģ„ ģ œģ¶œķ•˜ģ„øģš”. +ź°€ģž„ ģœ ģš©ķ•œ źø°ģ—¬ėŠ” **ģ‹¤ģ œ ģ‚¬ģš© 사딀**ģž…ė‹ˆė‹¤. ģ‹¤ģ œ ģžė£Œ ėŖØģŒģ— `/graphify`넼 ģ‹¤ķ–‰ķ•˜ź³ , 결과넼 `worked/{slug}/`에 ģ €ģž„ķ•œ ė’¤, ź·øėž˜ķ”„ź°€ ģž˜ ķŒŒģ•…ķ•œ 점과 ģž˜ėŖ» ķŒŒģ•…ķ•œ ģ ģ„ ģ†”ģ§ķ•˜ź²Œ ė‹“ģ€ `review.md`넼 ģž‘ģ„±ķ•“ PRģ„ ģ—“ģ–“ ģ£¼ģ„øģš”. -**ģ¶”ģ¶œ 버그** - ģž…ė „ ķŒŒģ¼, ģŗģ‹œ ģ—”ķŠøė¦¬(`graphify-out/cache/`), 그리고 ėˆ„ė½ė˜ź±°ė‚˜ ė‚ ģ”°ėœ ė‚“ģš©ź³¼ ķ•Øź»˜ ģ“ģŠˆė„¼ ģ—“ģ–“ģ£¼ģ„øģš”. +**ģ¶”ģ¶œ 버그** — ģž…ė „ ķŒŒģ¼, ģŗģ‹œ ķ•­ėŖ©(`graphify-out/cache/`), ėˆ„ė½ė˜ź±°ė‚˜ ģž˜ėŖ»ėœ ė‚“ģš©ģ„ 첨부핓 ģ“ģŠˆė„¼ ė“±ė”ķ•˜ģ„øģš”. -ėŖØė“ˆ ģ±…ģž„ź³¼ ģ–øģ–“ 추가 ė°©ė²•ģ€ [ARCHITECTURE.md](ARCHITECTURE.md)넼 ģ°øģ”°ķ•˜ģ„øģš”. +ėŖØė“ˆė³„ ģ—­ķ• ź³¼ ģ–øģ–“ 추가 ė°©ė²•ģ€ [ARCHITECTURE.md](https://github.com/Graphify-Labs/graphify/blob/v8/ARCHITECTURE.md)넼 ģ°øź³ ķ•˜ģ„øģš”.
+ +--- + +## ģ»¤ė®¤ė‹ˆķ‹° ė° 링크 + +

+ ģ›¹ģ‚¬ģ“ķŠø + Discord + X + YouTube + 후원 + The Memory Layer +

From a192dfacde18354e6b0aea06cd041877e8c376d4 Mon Sep 17 00:00:00 2001 From: Kobe Date: Tue, 15 Sep 2026 06:07:17 +0900 Subject: [PATCH 2/3] docs: fix repository URL in Korean README Update the git clone URL from safishamsi/graphify to Graphify-Labs/graphify to match the repository links used throughout the Korean README. --- docs/translations/README.ko-KR.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/translations/README.ko-KR.md b/docs/translations/README.ko-KR.md index 74361f34c4..9a8ee50fec 100644 --- a/docs/translations/README.ko-KR.md +++ b/docs/translations/README.ko-KR.md @@ -888,7 +888,7 @@ graphify label ./my-project --backend=openai --model gpt-4o # ķŠ¹ģ • ė°±ģ—”ė“œ ģ“ ķ”„ė”œģ ķŠøėŠ” 개발 ģž‘ģ—…ģ— [uv](https://docs.astral.sh/uv/)넼 ģ‚¬ģš©ķ•©ė‹ˆė‹¤. uv넼 ķ•œ 번 ģ„¤ģ¹˜ķ•œ ė’¤ ė‹¤ģŒģ„ ģ‹¤ķ–‰ķ•˜ģ„øģš”. ```bash -git clone https://github.com/safishamsi/graphify.git +git clone https://github.com/Graphify-Labs/graphify.git cd graphify git checkout v8 # ķ˜„ģž¬ ź°œė°œģ“ ģ§„ķ–‰ė˜ėŠ” ėøŒėžœģ¹˜ From 7e67f567e3db233b64366451c0ba04573562bffd Mon Sep 17 00:00:00 2001 From: Kobe Date: Tue, 15 Sep 2026 06:28:26 +0900 Subject: [PATCH 3/3] docs: revise Korean README translation and fix inconsistencies Review the Korean translation against the English README and improve technical wording. - Update the clone URL to Graphify-Labs/graphify. - Clarify opt-in query logging and ignore-rule behavior based on the v8 implementation. - Remove the duplicate language list and use repository-relative documentation links. - Check section coverage, command examples, table values, and links. Documentation only; no application code changed. Tests were not run. --- docs/translations/README.ko-KR.md | 45 +++++++++++++++---------------- 1 file changed, 21 insertions(+), 24 deletions(-) diff --git a/docs/translations/README.ko-KR.md b/docs/translations/README.ko-KR.md index 9a8ee50fec..1f5ccac45b 100644 --- a/docs/translations/README.ko-KR.md +++ b/docs/translations/README.ko-KR.md @@ -13,7 +13,7 @@
다넸 ģ–øģ–“ė”œ ģ½źø° -šŸ‡ŗšŸ‡ø English | šŸ‡ØšŸ‡³ 简体中文 | šŸ‡ÆšŸ‡µ ę—„ęœ¬čŖž | šŸ‡°šŸ‡· ķ•œźµ­ģ–“ | šŸ‡©šŸ‡Ŗ Deutsch | šŸ‡«šŸ‡· FranƧais | šŸ‡ŖšŸ‡ø EspaƱol | šŸ‡®šŸ‡³ ą¤¹ą¤æą¤Øą„ą¤¦ą„€ | šŸ‡§šŸ‡· PortuguĆŖs | šŸ‡·šŸ‡ŗ Русский | šŸ‡øšŸ‡¦ Ų§Ł„Ų¹Ų±ŲØŁŠŲ© | šŸ‡®šŸ‡· فارسی | šŸ‡®šŸ‡¹ Italiano | šŸ‡µšŸ‡± Polski | šŸ‡³šŸ‡± Nederlands | šŸ‡¹šŸ‡· TürkƧe | šŸ‡ŗšŸ‡¦ Š£ŠŗŃ€Š°Ń—Š½ŃŃŒŠŗŠ° | šŸ‡»šŸ‡³ Tiįŗæng Việt | šŸ‡®šŸ‡© Bahasa Indonesia | šŸ‡øšŸ‡Ŗ Svenska | šŸ‡¬šŸ‡· Ελληνικά | šŸ‡·šŸ‡“ RomĆ¢nă | šŸ‡ØšŸ‡æ ČeÅ”tina | šŸ‡«šŸ‡® Suomi | šŸ‡©šŸ‡° Dansk | šŸ‡³šŸ‡“ Norsk | šŸ‡­šŸ‡ŗ Magyar | šŸ‡¹šŸ‡­ ภาษาไทย | šŸ‡ŗšŸ‡æ OŹ»zbekcha | šŸ‡¹šŸ‡¼ 繁體中文 | šŸ‡µšŸ‡­ Filipino | šŸ‡®šŸ‡± עברית +šŸ‡ŗšŸ‡ø English | šŸ‡ØšŸ‡³ 简体中文 | šŸ‡ÆšŸ‡µ ę—„ęœ¬čŖž | šŸ‡°šŸ‡· ķ•œźµ­ģ–“ | šŸ‡©šŸ‡Ŗ Deutsch | šŸ‡«šŸ‡· FranƧais | šŸ‡ŖšŸ‡ø EspaƱol | šŸ‡®šŸ‡³ ą¤¹ą¤æą¤Øą„ą¤¦ą„€ | šŸ‡§šŸ‡· PortuguĆŖs | šŸ‡·šŸ‡ŗ Русский | šŸ‡øšŸ‡¦ Ų§Ł„Ų¹Ų±ŲØŁŠŲ© | šŸ‡®šŸ‡· فارسی | šŸ‡®šŸ‡¹ Italiano | šŸ‡µšŸ‡± Polski | šŸ‡³šŸ‡± Nederlands | šŸ‡¹šŸ‡· TürkƧe | šŸ‡ŗšŸ‡¦ Š£ŠŗŃ€Š°Ń—Š½ŃŃŒŠŗŠ° | šŸ‡»šŸ‡³ Tiįŗæng Việt | šŸ‡®šŸ‡© Bahasa Indonesia | šŸ‡øšŸ‡Ŗ Svenska | šŸ‡¬šŸ‡· Ελληνικά | šŸ‡·šŸ‡“ RomĆ¢nă | šŸ‡ØšŸ‡æ ČeÅ”tina | šŸ‡«šŸ‡® Suomi | šŸ‡©šŸ‡° Dansk | šŸ‡³šŸ‡“ Norsk | šŸ‡­šŸ‡ŗ Magyar | šŸ‡¹šŸ‡­ ภาษาไทย | šŸ‡ŗšŸ‡æ OŹ»zbekcha | šŸ‡¹šŸ‡¼ 繁體中文 | šŸ‡µšŸ‡­ Filipino | šŸ‡®šŸ‡± עברית
@@ -33,14 +33,14 @@ AI 코딩 ė„ģš°ėÆøģ—ģ„œ `/graphify`넼 ģž…ė „ķ•˜ė©“ ķ”„ė”œģ ķŠø 전첓(ģ½”ė“œ, ė¬øģ„œ, PDF, ģ“ėÆøģ§€, ė™ģ˜ģƒ)넼 **ģ§€ģ‹ ź·øėž˜ķ”„**딜 ė§Œė“¤ģ–“ ģ¤ė‹ˆė‹¤. ģ“ģ œ ķŒŒģ¼ģ„ ģ¼ģ¼ģ“ grep으딜 ź²€ģƒ‰ķ•˜ėŠ” ėŒ€ģ‹  **ź·øėž˜ķ”„ģ— 질문**ķ•  수 ģžˆģŠµė‹ˆė‹¤. -- **ģ½”ė“œ ź·øėž˜ķ”„ėŠ” 묓료딜, ėŖØė“  ģ²˜ė¦¬ėŠ” ė”œģ»¬ģ—ģ„œ.** ģ½”ė“œėŠ” tree-sitterģ˜ ģ¶”ģƒ 구문 트리(AST)딜 ķŒŒģ‹±ķ•©ė‹ˆė‹¤. ź°™ģ€ ģž…ė „ģ—ėŠ” ź°™ģ€ 결과넼 ė‚“ė©°, LLMģ„ ģ‚¬ģš©ķ•˜ģ§€ ģ•Šź³  ė°ģ“ķ„°ė„ 컓퓨터 ė°–ģœ¼ė”œ ģ „ģ†”ķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤. (ė¬øģ„œ, PDF, ģ“ėÆøģ§€, ė™ģ˜ģƒģ€ ė„ģš°ėÆøģ˜ ėŖØėøģ“ė‚˜ ģ„¤ģ •ķ•œ API 키넼 ģ‚¬ģš©ķ•“ ģ˜ėÆøė„¼ ė¶„ģ„ķ•©ė‹ˆė‹¤.) +- **ģ½”ė“œėŠ” 묓료딜, ė”œģ»¬ģ—ģ„œė§Œ ź·øėž˜ķ”„ė”œ ė³€ķ™˜ķ•©ė‹ˆė‹¤.** ģ½”ė“œėŠ” tree-sitterģ˜ ģ¶”ģƒ 구문 트리(AST)딜 ķŒŒģ‹±ķ•©ė‹ˆė‹¤. ź°™ģ€ ģž…ė „ģ—ėŠ” ź°™ģ€ 결과넼 ė‚“ė©°, LLMģ„ ģ‚¬ģš©ķ•˜ģ§€ ģ•Šź³  ė°ģ“ķ„°ė„ 컓퓨터 ė°–ģœ¼ė”œ ģ „ģ†”ķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤. (ė¬øģ„œ, PDF, ģ“ėÆøģ§€, ė™ģ˜ģƒģ€ ė„ģš°ėÆøģ˜ ėŖØėøģ“ė‚˜ ģ„¤ģ •ķ•œ API 키넼 ģ‚¬ģš©ķ•“ ģ˜ėÆøė„¼ ė¶„ģ„ķ•©ė‹ˆė‹¤.) - **ėŖØė“  ģ—°ź²°ģ—ėŠ” 근거가 ģžˆģŠµė‹ˆė‹¤.** 각 ģ—°ź²°ģ—ėŠ” `EXTRACTED`(ģ†ŒģŠ¤ģ— ėŖ…ģ‹œėØ) ė˜ėŠ” `INFERRED`(graphifyź°€ ꓀계넼 ķ•“ģ„ķ•“ ė„ģ¶œķ•Ø) ķƒœź·øź°€ 붙얓, 직접 ģ¶”ģ¶œķ•œ 정볓와 ģ¶”ė” ķ•œ 정볓넼 구분할 수 ģžˆģŠµė‹ˆė‹¤. - **범터 ģøė±ģŠ¤ź°€ ģ•„ė‹Œ ģ‹¤ģ œ ź·øėž˜ķ”„ģž…ė‹ˆė‹¤.** ģž„ė² ė”©ģ“ė‚˜ 범터 ģ €ģž„ģ†Œ ģ—†ģ“ ź·øėž˜ķ”„ė„¼ 직접 ķƒģƒ‰ķ•©ė‹ˆė‹¤. ģ§ˆė¬øģ„ ķ•˜ź±°ė‚˜, 두 ģš”ģ†Œ ģ‚¬ģ“ģ˜ 경딜넼 ģ¶”ģ ķ•˜ź±°ė‚˜, ķŠ¹ģ • ź°œė…ģ— ėŒ€ķ•œ ģ„¤ėŖ…ģ„ ķ™•ģøķ•  수 ģžˆģŠµė‹ˆė‹¤. > ķ•„ģš”ķ•  ė•Œė§Œ ģ‹¤ķ–‰ķ•˜ėŠ” ė°ģ„œ ė‚˜ģ•„ź°€, ģ½”ė“œĀ·ė¬øģ„œĀ·ķšŒģ˜ ģ „ė°˜ģ˜ 정볓넼 ė°±ź·øė¼ģš“ė“œģ—ģ„œ ź³„ģ† ź°±ģ‹ ķ•˜ź³  ģ‹¶ģœ¼ģ‹ ź°€ģš”? **[graphify.com](https://graphify.com)**ģ—ģ„œ ė°”ė”œ 그런 ģ„œė¹„ģŠ¤ė„¼ ė§Œė“¤ź³  ģžˆģŠµė‹ˆė‹¤. ģ§€źøˆ **[app.graphify.com](https://app.graphify.com/login)**ģ—ģ„œ 얼리 ģ•”ģ„øģŠ¤ė„¼ ģ“ģš©ķ•  수 ģžˆģŠµė‹ˆė‹¤.

- FastAPI ģ½”ė“œė² ģ“ģŠ¤ė„¼ ķž˜ 기반 ė ˆģ“ģ•„ģ›ƒģ˜ ģ§€ģ‹ ź·øėž˜ķ”„ė”œ 볓여 ģ£¼ėŠ” graphifyģ˜ ėŒ€ķ™”ķ˜• graph.html. ķƒģ§€ėœ ģ»¤ė®¤ė‹ˆķ‹°ģ˜ ė²”ė”€ė„ ķ‘œģ‹œė©ė‹ˆė‹¤. + FastAPI ģ½”ė“œė² ģ“ģŠ¤ė„¼ ķž˜ 기반 배치 ė°©ģ‹ģ˜ ģ§€ģ‹ ź·øėž˜ķ”„ė”œ 볓여 ģ£¼ėŠ” graphifyģ˜ ėŒ€ķ™”ķ˜• graph.html. ķƒģ§€ėœ ģ»¤ė®¤ė‹ˆķ‹°ģ˜ ė²”ė”€ė„ ķ‘œģ‹œė©ė‹ˆė‹¤.

graphify딜 ģ‹œź°ķ™”ķ•œ FastAPI ģ½”ė“œė² ģ“ģŠ¤ģž…ė‹ˆė‹¤. 각 ė…øė“œėŠ” ķ•˜ė‚˜ģ˜ ź°œė…ģ„, ģƒ‰ģƒģ€ ķƒģ§€ėœ ģ»¤ė®¤ė‹ˆķ‹°ė„¼ ė‚˜ķƒ€ėƒ…ė‹ˆė‹¤. graph.htmlģ—ģ„œ ėŖØė“  ģš”ģ†Œė„¼ 큓릭핓 ģ‚“ķŽ“ė³¼ 수 ģžˆģŠµė‹ˆė‹¤. @@ -128,7 +128,7 @@ Shortest path (3 hops): | LongMemEval-S (n=50) | ģ§ˆģ˜ģ‘ė‹µ ģ •ķ™•ė„ | **76%** | dense RAG와 ė™ė„  | | ź·øėž˜ķ”„ 구축 | LLM ķ¬ė ˆė”§ | **0** | ėŒ€ė¶€ė¶„ģ˜ ģ‹œģŠ¤ķ…œģ€ 토큰별 과금 | -ėŖØė“  ģ‹œģŠ¤ķ…œģ„ ė™ģ¼ķ•œ ķ…ŒģŠ¤ķŠø ķ™˜ź²½ģ—ģ„œ ź°™ģ€ ėŖØėøź³¼ ģ˜ˆģ‚°ģœ¼ė”œ ģ‹¤ķ–‰ķ–ˆģŠµė‹ˆė‹¤. ķ‰ź°€ėŠ” ė³„ė„ģ˜ 두 번째 ķ‰ź°€ģžģ™€ ėø”ė¼ģøė“œ ė°©ģ‹ģœ¼ė”œ ėŒ€ģ”° ź²€ģ¦ķ–ˆģŠµė‹ˆė‹¤(ģ¼ģ¹˜ģœØ 90.6%, Cohen's kappa 0.81). ģ‹œģŠ¤ķ…œė³„ 전첓 ź²°ź³¼ķ‘œ, ģ½”ė“œ ģ“ķ•“ ģ„±ėŠ„ ź²°ź³¼, ģž¬ķ˜„ ėŖ…ė ¹ģ–“ėŠ” **[BENCHMARKS.md](https://github.com/Graphify-Labs/graphify/blob/v8/BENCHMARKS.md)**ģ—ģ„œ ķ™•ģøķ•  수 ģžˆģŠµė‹ˆė‹¤. +ėŖØė“  ģ‹œģŠ¤ķ…œģ„ ė™ģ¼ķ•œ ķ‰ź°€ ķ™˜ź²½ģ—ģ„œ ź°™ģ€ ėŖØėøź³¼ ģ˜ˆģ‚°ģœ¼ė”œ ģ‹¤ķ–‰ķ–ˆģŠµė‹ˆė‹¤. ķ‰ź°€ģžź°€ 결과넼 ģ±„ģ ķ–ˆģœ¼ė©°, ź·ø ķŒģ •ģ„ 두 번째 ķ‰ź°€ģžģ˜ ķŒģ •ź³¼ ėø”ė¼ģøė“œ ė°©ģ‹ģœ¼ė”œ ėŒ€ģ”°ķ•“ ź²€ģ¦ķ–ˆģŠµė‹ˆė‹¤(ģ¼ģ¹˜ģœØ 90.6%, Cohen's kappa 0.81). ģ‹œģŠ¤ķ…œė³„ 전첓 ź²°ź³¼ķ‘œ, ģ½”ė“œ ģ“ķ•“ ģ„±ėŠ„ ź²°ź³¼, ģž¬ķ˜„ ėŖ…ė ¹ģ–“ėŠ” **[BENCHMARKS.md](../../BENCHMARKS.md)**ģ—ģ„œ ķ™•ģøķ•  수 ģžˆģŠµė‹ˆė‹¤. --- @@ -253,7 +253,7 @@ Codexģ—ģ„œ 병렬 ģ¶”ģ¶œģ„ ģ‚¬ģš©ķ•˜ė ¤ė©“ `~/.codex/config.toml`ģ˜ `[feature | `pdf` | PDF ģ¶”ģ¶œ | `uv tool install "graphifyy[pdf]"` | | `office` | `.docx` ė° `.xlsx` 지원 | `uv tool install "graphifyy[office]"` | | `google` | Google Sheets ė Œė”ė§ | `uv tool install "graphifyy[google]"` | -| `video` | ė™ģ˜ģƒĀ·ģ˜¤ė””ģ˜¤ 전사(faster-whisper + yt-dlp) | `uv tool install "graphifyy[video]"` | +| `video` | ė™ģ˜ģƒĀ·ģ˜¤ė””ģ˜¤ 전사(ģŒģ„±ģ„ ķ…ģŠ¤ķŠøė”œ ė³€ķ™˜, faster-whisper + yt-dlp) | `uv tool install "graphifyy[video]"` | | `mcp` | MCP stdio ģ„œė²„ | `uv tool install "graphifyy[mcp]"` | | `neo4j` | Neo4j딜 전솔 지원 | `uv tool install "graphifyy[neo4j]"` | | `falkordb` | FalkorDB딜 전솔 지원 | `uv tool install "graphifyy[falkordb]"` | @@ -273,7 +273,7 @@ Codexģ—ģ„œ 병렬 ģ¶”ģ¶œģ„ ģ‚¬ģš©ķ•˜ė ¤ė©“ `~/.codex/config.toml`ģ˜ `[feature | `ocaml` | OCaml `.ml`/`.mli` AST ģ¶”ģ¶œ | `uv tool install "graphifyy[ocaml]"` | | `commonlisp` | Common Lisp `.lisp`/`.cl`/`.lsp`/`.asd` AST ģ¶”ģ¶œ | `uv tool install "graphifyy[commonlisp]"` | | `robot` | Robot Framework `.robot`/`.resource` ģ¶”ģ¶œ(ģŠ¤ģœ„ķŠø, ķ…ŒģŠ¤ķŠø ģ¼€ģ“ģŠ¤, ķ‚¤ģ›Œė“œ, ķ‚¤ģ›Œė“œ 호출 ė° ė¦¬ģ†ŒģŠ¤Ā·ė¼ģ“ėøŒėŸ¬ė¦¬ ź°€ģ øģ˜¤źø° ꓀계) | `uv tool install "graphifyy[robot]"` | -| `chinese` | 중국얓 ģ§ˆģ˜ ė¶„ģ ˆ(jieba) | `uv tool install "graphifyy[chinese]"` | +| `chinese` | 중국얓 ģ§ˆģ˜ģ˜ 단얓 분리(jieba) | `uv tool install "graphifyy[chinese]"` | | `all` | ģœ„ģ˜ ėŖØė“  기늄 | `uv tool install "graphifyy[all]"` |

@@ -332,19 +332,18 @@ Codexģ—ģ„œ 병렬 ģ¶”ģ¶œģ„ ģ‚¬ģš©ķ•˜ė ¤ė©“ `~/.codex/config.toml`ģ˜ `[feature - **핵심 ķ—ˆėøŒ ė…øė“œ(God nodes)** — ķ”„ė”œģ ķŠøģ—ģ„œ ź°€ģž„ ė§Žģ€ ģ—°ź²°ģ„ 가진 ź°œė…ģž…ė‹ˆė‹¤. ģ£¼ģš” ķė¦„ģ“ ģ“ ė…øė“œė“¤ģ„ ź±°ģ¹©ė‹ˆė‹¤. - **ģ˜ģ™øģ˜ ģ—°ź²° ꓀계** — ģ„œė”œ 다넸 ķŒŒģ¼ģ“ė‚˜ ėŖØė“ˆģ— ģžˆėŠ” ģš”ģ†Œ ģ‚¬ģ“ģ˜ ģ—°ź²°ģž…ė‹ˆė‹¤. ģ˜ˆģƒķ•˜źø° ģ–“ė ¤ģš“ ź“€ź³„ģ¼ģˆ˜ė” ė†’ģ€ ģˆœģœ„ģ— ķ‘œģ‹œė©ė‹ˆė‹¤. -- **ģ„¤ź³„ģ˜ ģ“ģœ ** — ģøė¼ģø ģ£¼ģ„(`# NOTE:`, `# WHY:`, `# HACK:`), ė…ģŠ¤ķŠøė§, ė¬øģ„œģ— ė‹“źø“ 설계 근거넼 ė³„ė„ ė…øė“œė”œ ģ¶”ģ¶œķ•˜ź³ , 핓당 ė‚“ģš©ģ“ ģ„¤ėŖ…ķ•˜ėŠ” ģ½”ė“œģ— ģ—°ź²°ķ•©ė‹ˆė‹¤. +- **ģ„¤ź³„ģ˜ ģ“ģœ ** — ģøė¼ģø ģ£¼ģ„(`# NOTE:`, `# WHY:`, `# HACK:`), ė…ģŠ¤ķŠøė§(docstring), ė¬øģ„œģ— ė‹“źø“ 설계 근거넼 ė³„ė„ ė…øė“œė”œ ģ¶”ģ¶œķ•˜ź³ , 핓당 ė‚“ģš©ģ“ ģ„¤ėŖ…ķ•˜ėŠ” ģ½”ė“œģ— ģ—°ź²°ķ•©ė‹ˆė‹¤. - **ģ¶”ģ²œ 질문** — ź·øėž˜ķ”„ė„¼ ķ™œģš©ķ•˜ė©“ ķŠ¹ķžˆ ģž˜ 답할 수 ģžˆėŠ” 질문 4~5개넼 ģ œģ•ˆķ•©ė‹ˆė‹¤. - **ģ‹ ė¢°ė„ 태그** — ģ¶”ė” ėœ ėŖØė“  ꓀계에 `EXTRACTED`, `INFERRED`, `AMBIGUOUS` 중 ķ•˜ė‚˜ė„¼ ķ‘œģ‹œķ•©ė‹ˆė‹¤. ķ™•ģøėœ 사실과 ģ¶”ģ •ģ„ ģ–øģ œė‚˜ 구분할 수 ģžˆģŠµė‹ˆė‹¤. --- - ## ģ§€ģ›ķ•˜ėŠ” ķŒŒģ¼ | ģœ ķ˜• | ķ™•ģž„ģž | |------|-----------| | ģ½”ė“œ(tree-sitter 문법 37종) | `.py .ts .mts .cts .js .jsx .tsx .mjs .go .rs .java .c .cpp .cc .cxx .h .hpp .cu .cuh .metal .rb .cs .kt .kts .scala .php .swift .lua .luau .toc .zig .ps1 .psm1 .psd1 .ex .exs .m .mm .ml .mli .jl .vue .svelte .astro .groovy .gradle .dart .v .sv .svh .sql .f .f90 .f95 .f03 .f08 .pas .pp .dpr .dpk .lpr .inc .dfm .lfm .lpk .sh .bash .json .dm .dme .dmi .dmm .dmf .sln .slnx .csproj .fsproj .vbproj .xaml .razor .cshtml` (`.dm`/`.dme`ėŠ” `uv tool install graphifyy[dm]`, `.ml`/`.mli`ėŠ” `uv tool install graphifyy[ocaml]` ķ•„ģš”. `.mts`/`.cts`ėŠ” TypeScript ė¬øė²•ģ„, `.cc`/`.cxx`, CUDAģ˜ `.cu`/`.cuh`, Metalģ˜ `.metal`ģ€ C++ ė¬øė²•ģ„ ģž¬ģ‚¬ģš©) | -| Salesforce Apex | `.cls .trigger` (ģ •ź·œģ‹ 기반. ķ“ėž˜ģŠ¤, ģøķ„°ķŽ˜ģ“ģŠ¤, ģ—“ź±°ķ˜•, ė©”ģ„œė“œ, 트리거, SOQL/DML ꓀계 ģ¶”ģ¶œ) | +| Salesforce Apex | `.cls .trigger` (ģ •ź·œģ‹ 기반. ķ“ėž˜ģŠ¤, ģøķ„°ķŽ˜ģ“ģŠ¤, ģ—“ź±°ķ˜•, ė©”ģ„œė“œ, 트리거 ė° SOQL/DML ģ—°ź²° ꓀계 ģ¶”ģ¶œ) | | Terraform / HCL | `.tf .tfvars .hcl` (`uv tool install graphifyy[terraform]` ķ•„ģš”) | | OCaml | `.ml .mli` (`uv tool install graphifyy[ocaml]` ķ•„ģš”) | | Common Lisp | `.lisp .cl .lsp .asd` (`uv tool install graphifyy[commonlisp]` ķ•„ģš”) | @@ -380,7 +379,7 @@ graphify extract ./docs --google-workspace /graphify ./docs --update # ė³€ź²½ėœ ķŒŒģ¼ė§Œ ė‹¤ģ‹œ ģ¶”ģ¶œ /graphify . --cluster-only # ģž¬ģ¶”ģ¶œ ģ—†ģ“ ķ“ėŸ¬ģŠ¤ķ„°ė§ė§Œ ė‹¤ģ‹œ 실행 /graphify . --cluster-only --resolution 1.5 # ģ»¤ė®¤ė‹ˆķ‹°ė„¼ ė” ģ„øė°€ķ•˜ź²Œ ė¶„ķ•  -/graphify . --cluster-only --exclude-hubs 99 # 핵심 ķ—ˆėøŒ ģˆœģœ„ģ—ģ„œ ģ—°ź²°ģ“ ģ§€ė‚˜ģ¹˜ź²Œ ė§Žģ€ ģœ ķ‹øė¦¬ķ‹° ķ—ˆėøŒė„¼ ģ–µģ œ +/graphify . --cluster-only --exclude-hubs 99 # 핵심 ķ—ˆėøŒ ģˆœģœ„ģ—ģ„œ ģ—°ź²°ģ“ ģ§€ė‚˜ģ¹˜ź²Œ ė§Žģ€ ģœ ķ‹øė¦¬ķ‹° ė…øė“œģ˜ ė¹„ģ¤‘ģ„ ģ¤„ģž„ /graphify . --no-viz # HTML ģ—†ģ“ ė³“ź³ ģ„œģ™€ JSON만 ģƒģ„± /graphify . --wiki # ź·øėž˜ķ”„ģ—ģ„œ Markdown ģœ„ķ‚¤ ģƒģ„± graphify export callflow-html # Mermaid ģ•„ķ‚¤ķ…ģ²˜Ā·ķ˜øģ¶œ ķė¦„ HTML ģƒģ„± (ķ›… ģ„¤ģ¹˜ ģ‹œ Git ģ»¤ė°‹ė§ˆė‹¤ ģžė™ ģž¬ģƒģ„±) @@ -395,7 +394,7 @@ graphify export callflow-html # Mermaid ģ•„ķ‚¤ķ…ģ²˜Ā·ķ˜øģ¶œ ķė¦„ HTML graphify hook install # ģ»¤ė°‹Ā·ėøŒėžœģ¹˜ ģ²“ķ¬ģ•„ģ›ƒ ģ‹œ ģžė™ ģž¬ģƒģ„± (git pull ķ›„ģ—ėŠ” graphify update . 실행 — ģ•„ėž˜ ź¶Œģž„ ģž‘ģ—… ķė¦„ ģ°øź³ ) graphify merge-graphs a.json b.json # 두 ź·øėž˜ķ”„ 병합 -graphify prs # PR ėŒ€ģ‹œė³“ė“œ: CI 상태, 리뷰 상태, worktree ģ—°ź²° 정볓 +graphify prs # PR ėŒ€ģ‹œė³“ė“œ: CI 상태, 리뷰 상태, ģ›Œķ¬ķŠøė¦¬(worktree) ģ—°ź²° 정볓 graphify prs 42 # ź·øėž˜ķ”„ģ— ėÆøģ¹˜ėŠ” ģ˜ķ–„ģ„ ķ¬ķ•Øķ•“ PR #42 ģƒģ„ø ė¶„ģ„ graphify prs --triage # AIź°€ 리뷰 ėŒ€źø° ėŖ©ė”ģ˜ ģš°ģ„ ģˆœģœ„ 지정 (ģ„¤ģ •ėœ ė°±ģ—”ė“œ ģ‚¬ģš©) graphify prs --conflicts # ź°™ģ€ ź·øėž˜ķ”„ ģ»¤ė®¤ė‹ˆķ‹°ė„¼ ģˆ˜ģ •ķ•˜ėŠ” PR ķ™•ģø — 병합 ģˆœģ„œģ— 따넸 ģœ„ķ—˜ @@ -409,7 +408,7 @@ graphify prs --conflicts # ź°™ģ€ ź·øėž˜ķ”„ ģ»¤ė®¤ė‹ˆķ‹°ė„¼ ģˆ˜ģ •ķ•˜ ķ”„ė”œģ ķŠø ė£ØķŠøģ— `.graphifyignore`넼 ė§Œė“œģ„øģš”. `!`넼 ģ‚¬ģš©ķ•˜ėŠ” ģ œģ™ø ź·œģ¹™ģ˜ ė°˜ģ „ź¹Œģ§€ ķ¬ķ•Øķ•“ `.gitignore`와 ź°™ģ€ ė¬øė²•ģ„ ģ‚¬ģš©ķ•©ė‹ˆė‹¤. -**`.gitignore`ėŠ” ģžė™ģœ¼ė”œ ģ ģš©ė©ė‹ˆė‹¤.** graphifyėŠ” 각 ė””ė ‰ķ„°ė¦¬ģ˜ `.gitignore`넼 ģ½ģŠµė‹ˆė‹¤. `.graphifyignore`ė„ ģžˆģœ¼ė©“ 두 ķŒŒģ¼ģ˜ ź·œģ¹™ģ„ **ķ•©ģ³ģ„œ** ģ ģš©ķ•©ė‹ˆė‹¤. `.graphifyignore` ķŒØķ„“ģ„ ė§ˆģ§€ė§‰ģ— ķ‰ź°€ķ•˜ėÆ€ė”œ ź·œģ¹™ģ“ ģ¶©ėŒķ•˜ė©“ ģ“ģŖ½ģ“ ģš°ģ„ ķ•©ė‹ˆė‹¤(`!` ė°˜ģ „ ź·œģ¹™ ķ¬ķ•Ø). `.graphifyignore`넼 ģ¶”ź°€ķ•˜ė©“ ģ œģ™ø ėŒ€ģƒģ“ ėŠ˜ģ–“ė‚  뿐, `.gitignore`ź°€ ģ“ėÆø ģ œģ™øķ•œ ķŒŒģ¼ģ„ ė‹¤ģ‹œ ķ¬ķ•Øķ•˜ģ§€ėŠ” ģ•ŠģŠµė‹ˆė‹¤. ķ•˜ģœ„ 디렉터리 ė²”ģœ„ėŠ” Gitź³¼ ź°™ģ€ ė°©ģ‹ģœ¼ė”œ ģ²˜ė¦¬ķ•©ė‹ˆė‹¤. 각 ignore ķŒŒģ¼ģ€ ģžģ‹ ģ“ ģ†ķ•œ 디렉터리와 ź·ø ķ•˜ģœ„ģ—ė§Œ ģ˜ķ–„ģ„ ģ¤ė‹ˆė‹¤. +**`.gitignore`ėŠ” ģžė™ģœ¼ė”œ ģ ģš©ė©ė‹ˆė‹¤.** graphifyėŠ” 각 ė””ė ‰ķ„°ė¦¬ģ˜ `.gitignore`넼 ģ½ģŠµė‹ˆė‹¤. `.graphifyignore`ė„ ģžˆģœ¼ė©“ 두 ķŒŒģ¼ģ˜ ź·œģ¹™ģ„ **ķ•©ģ³ģ„œ** ģ ģš©ķ•©ė‹ˆė‹¤. `.graphifyignore` ķŒØķ„“ģ„ ė§ˆģ§€ė§‰ģ— ķ‰ź°€ķ•˜ėÆ€ė”œ ź·œģ¹™ģ“ ģ¶©ėŒķ•˜ė©“ ģ“ģŖ½ģ“ ģš°ģ„ ķ•©ė‹ˆė‹¤(`!` ė°˜ģ „ ź·œģ¹™ ķ¬ķ•Ø). ė‹¤ė§Œ Gitź³¼ ė§ˆģ°¬ź°€ģ§€ė”œ, ģƒģœ„ 디렉터리가 ģ œģ™øė˜ģ–“ ģžˆģœ¼ė©“ `!` ź·œģ¹™ė§Œģœ¼ė”œ ź·ø ģ•ˆģ˜ ķŒŒģ¼ģ„ ė‹¤ģ‹œ ķ¬ķ•Øķ•  수 ģ—†ģŠµė‹ˆė‹¤. 핓당 ė””ė ‰ķ„°ė¦¬ė„ 먼저 ģ œģ™ø ėŒ€ģƒģ—ģ„œ ķ•“ģ œķ•“ģ•¼ ķ•©ė‹ˆė‹¤. ķ•˜ģœ„ 디렉터리 ė²”ģœ„ėŠ” Gitź³¼ ź°™ģ€ ė°©ģ‹ģœ¼ė”œ ģ²˜ė¦¬ķ•©ė‹ˆė‹¤. 각 ignore ķŒŒģ¼ģ€ ģžģ‹ ģ“ ģ†ķ•œ 디렉터리와 ź·ø ķ•˜ģœ„ģ—ė§Œ ģ˜ķ–„ģ„ ģ¤ė‹ˆė‹¤. Gitģ—ģ„œ ģ œģ™øķ•œ ģƒģ„± ģ½”ė“œė‚˜ ķŠøėžœģŠ¤ķŒŒģ¼ėœ ģ½”ė“œė„ ź·øėž˜ķ”„ģ— ķ¬ķ•Øķ•˜ė ¤ė©“ `graphify extract`에 `--no-gitignore`넼 ģ „ė‹¬ķ•˜ģ„øģš”. ģ“ ģ˜µģ…˜ģ€ `.gitignore`와 `.git/info/exclude`넼 ė¹„ķ™œģ„±ķ™”ķ•©ė‹ˆė‹¤. `.graphifyignore`ėŠ” ź³„ģ† ģ ģš©ė©ė‹ˆė‹¤. @@ -505,7 +504,7 @@ MCP ģ„œė²„ėŠ” ė„ģš°ėÆøź°€ źµ¬ģ”°ķ™”ėœ ė°©ģ‹ģœ¼ė”œ 접근할 수 ģžˆėŠ” ė‹¤ģŒ | `--stateless` | 꺼짐 | ģ„øģ…˜ė³„ 상태넼 ģœ ģ§€ķ•˜ģ§€ ģ•ŠģŒ(ė”œė“œ ė°øėŸ°ģ‹±Ā·CI ė°°ķ¬ģš©) | | `--session-timeout` | `3600` | 상태넼 ģœ ģ§€ķ•˜ėŠ” ģ„øģ…˜ģ“ N쓈 ė™ģ•ˆ 유휓 ģƒķƒœģ“ė©“ 정리(`0`ģ“ė©“ ė¹„ķ™œģ„±ķ™”) | -źø°ė³ø ė°”ģøė”© ģ£¼ģ†Œ `127.0.0.1`ģ€ 루프백 ģ—°ź²°ė§Œ ķ—ˆģš©ķ•©ė‹ˆė‹¤. 공유 ķ˜øģŠ¤ķŠøģ—ģ„œ 외부에 ź³µź°œķ•  ė•ŒėŠ” `--host 0.0.0.0`**ź³¼** `--api-key`넼 ķ•Øź»˜ ģ„¤ģ •ķ•˜ģ„øģš”. ģ»Øķ…Œģ“ė„ˆģ—ģ„œ ģ‹¤ķ–‰ķ•˜ėŠ” ģ˜ˆģ‹œėŠ” ė‹¤ģŒź³¼ ź°™ģŠµė‹ˆė‹¤. +źø°ė³ø ė°”ģøė”© ģ£¼ģ†Œ `127.0.0.1`ģ€ 루프백 ģ—°ź²°ė§Œ ķ—ˆģš©ķ•©ė‹ˆė‹¤. 공유 ķ˜øģŠ¤ķŠøģ—ģ„œ 외부에 ź³µź°œķ•  ė•ŒėŠ” **`--host 0.0.0.0`ź³¼ `--api-key`넼 ķ•Øź»˜** ģ„¤ģ •ķ•˜ģ„øģš”. ģ»Øķ…Œģ“ė„ˆģ—ģ„œ ģ‹¤ķ–‰ķ•˜ėŠ” ģ˜ˆģ‹œėŠ” ė‹¤ģŒź³¼ ź°™ģŠµė‹ˆė‹¤. ```bash docker build -t graphify . @@ -548,7 +547,7 @@ docker run -p 8080:8080 -v "$(pwd)/graphify-out:/data" graphify \ | `GRAPHIFY_MAX_OUTPUT_TOKENS` | 정볓 ė°€ė„ź°€ ė†’ģ€ ģžė£Œ ėŖØģŒģ˜ 출렄 ķ•œė„ ģƒķ–„ | ģ„ ķƒ 사항 — 큰 ķŒŒģ¼ģ˜ 경우 예: `32768` | | `GRAPHIFY_API_TIMEOUT` | HTTP, claude-cli, Anthropic SDK, Bedrock ė°±ģ—”ė“œģ˜ ķ˜øģ¶œė³„ ģ œķ•œ ģ‹œź°„(쓈, źø°ė³øź°’: 600) | ģ„ ķƒ 사항 — `--api-timeout` ķ”Œėž˜ź·øė”œė„ 설정 ź°€ėŠ„ | | `GRAPHIFY_MAX_RETRIES` | ģš”ģ²­ ķ•œė„ 쓈과(429) ģ‹œ ķ¬źø°ķ•˜źø° ģ „ ģž¬ģ‹œė„ 횟수(źø°ė³øź°’: 6, `Retry-After` ģ¤€ģˆ˜) | ģ„ ķƒ 사항 — 씰직별 ķ•œė„ź°€ ģ—„ź²©ķ•œ 경우(예: kimi) 늘릓 수 ģžˆģŒ. `0`ģ“ė©“ ė¹„ķ™œģ„±ķ™” | -| `GRAPHIFY_MAX_RETRY_DEPTH` | ģ‘ė‹µģ“ ģž˜ė¦° 청크넼 ģ“ė¶„ķ• ķ•“ ģž¬ģ¶”ģ¶œķ•  ģµœėŒ€ ź¹Šģ“(źø°ė³øź°’: 3, 청크 ķ•˜ė‚˜ė‹¹ ķ•˜ģœ„ ķ˜øģ¶œģ“ ģµœėŒ€ 8ė°°ź¹Œģ§€ ģ¦ź°€) | ģ„ ķƒ 사항 — ģµœģ•…ģ˜ 경우 ė¹„ģš©ģ„ ģ œķ•œķ•˜ė ¤ė©“ ė‚®ź²Œ 설정. `0`ģ“ė©“ ėŖØė“  ģž¬ģ‹œė„(ģ“ė¶„ķ•  ė° ė‚“ģš© ģ—†ėŠ” ģ‘ė‹µģ˜ ģž¬ģ‹œė„)넼 ė¹„ķ™œģ„±ķ™”ķ•˜ģ—¬ 청크당 ģ •ķ™•ķžˆ ķ•œ 번만 호출 | +| `GRAPHIFY_MAX_RETRY_DEPTH` | ģ‘ė‹µģ“ ģž˜ė¦° 청크넼 ģ“ė¶„ķ• ķ•“ ģž¬ģ¶”ģ¶œķ•  ģµœėŒ€ ź¹Šģ“(źø°ė³øź°’: 3, 청크 ķ•˜ė‚˜ź°€ ģµœėŒ€ 8ź°œģ˜ ķ•˜ģœ„ 청크딜 ė‚˜ė‰˜ģ–“ 각각 ģž¬ķ˜øģ¶œėØ) | ģ„ ķƒ 사항 — ģµœģ•…ģ˜ 경우 ė¹„ģš©ģ„ ģ œķ•œķ•˜ė ¤ė©“ ė‚®ź²Œ 설정. `0`ģ“ė©“ ėŖØė“  ģž¬ģ‹œė„(ģ“ė¶„ķ•  ė° ė‚“ģš© ģ—†ėŠ” ģ‘ė‹µģ˜ ģž¬ģ‹œė„)넼 ė¹„ķ™œģ„±ķ™”ķ•˜ģ—¬ 청크당 ģ •ķ™•ķžˆ ķ•œ 번만 호출 | | `GRAPHIFY_FORCE` | ė…øė“œ ģˆ˜ź°€ ģ¤„ģ–“ė„ ź·øėž˜ķ”„ ź°•ģ œ ģž¬ģƒģ„± | ģ„ ķƒ 사항 — `--force` ķ”Œėž˜ź·øė”œė„ 설정 ź°€ėŠ„ | | `GRAPHIFY_GOOGLE_WORKSPACE` | Google Workspace 낓볓낓기 ģžė™ ķ™œģ„±ķ™” | ģ„ ķƒ 사항 — `1`딜 설정 | | `GRAPHIFY_TRIAGE_BACKEND` | `graphify prs --triage`에 ģ‚¬ģš©ķ•  ė°±ģ—”ė“œ | ģ„ ķƒ 사항 — ģ‚¬ģš© ź°€ėŠ„ķ•œ ķ‚¤ģ—ģ„œ ģžė™ 감지 | @@ -570,11 +569,10 @@ docker run -p 8080:8080 -v "$(pwd)/graphify-out:/data" graphify \ - **ė¬øģ„œ, PDF, ģ“ėÆøģ§€** — ģ˜ėÆø ģ¶”ģ¶œģ„ ģœ„ķ•“ AI ė„ģš°ėÆøė”œ ģ „ģ†”ķ•©ė‹ˆė‹¤(`/graphify` ģŠ¤ķ‚¬ģ„ 통핓 IDE ģ„øģ…˜ģ—ģ„œ ģ‚¬ģš© ģ¤‘ģø ėŖØėøģ„ ģ“ģš©). ķ—¤ė“œė¦¬ģŠ¤ ė°©ģ‹ģ˜ `graphify extract`ģ—ėŠ” `GEMINI_API_KEY` / `GOOGLE_API_KEY`(Gemini), `MOONSHOT_API_KEY`(Kimi), `ANTHROPIC_API_KEY`(Claude), `OPENAI_API_KEY`(OpenAI), `DEEPSEEK_API_KEY`(DeepSeek), 실행 ģ¤‘ģø Ollama ģøģŠ¤ķ„“ģŠ¤(`OLLAMA_BASE_URL`), ķ‘œģ¤€ ź³µźø‰ģž ģ²“ģøģ˜ AWS ģžź²© ģ¦ėŖ…(Bedrock — API 키 ģ—†ģ“ IAM ģ‚¬ģš©), ė˜ėŠ” `claude` CLI 실행 ķŒŒģ¼(Claude Code — API 키 ģ—†ģ“ Claude źµ¬ė… ģ‚¬ģš©) 중 ķ•˜ė‚˜ź°€ ķ•„ģš”ķ•©ė‹ˆė‹¤. `--dedup-llm` ķ”Œėž˜ź·øė„ ź°™ģ€ 키넼 ģ‚¬ģš©ķ•©ė‹ˆė‹¤. - **ė°ģ“ķ„° 처리 ģœ„ģ¹˜** — `graphify extract`ėŠ” ģ„¤ģ •ėœ API 키넼 źø°ģ¤€ģœ¼ė”œ ź³µźø‰ģžė„¼ ģžė™ ź°ģ§€ķ•©ė‹ˆė‹¤(ģš°ģ„ ģˆœģœ„: Gemini → Kimi → Claude → OpenAI → DeepSeek → Azure → Bedrock → Ollama). ė°ģ“ķ„° 처리 ģœ„ģ¹˜ģ— ź“€ķ•œ ģš”źµ¬ ģ‚¬ķ•­ģ“ ģžˆėŠ” ģ½”ė“œģ—ėŠ” `--backend ollama`(ģ™„ģ „ķ•œ 딜컬 처리)넼 ģ‚¬ģš©ķ•˜ź±°ė‚˜ `--backend` ķ”Œėž˜ź·øė”œ ė°±ģ—”ė“œė„¼ ėŖ…ģ‹œķ•˜ģ„øģš”. Kimi(`MOONSHOT_API_KEY`)ėŠ” 중국에 ģžˆėŠ” Moonshot AI ģ„œė²„ė”œ ģš”ģ²­ģ„ ė³“ėƒ…ė‹ˆė‹¤. - **ķ…”ė ˆė©”ķŠøė¦¬ ģ—†ģŒ** — ģ‚¬ģš© ģ¶”ģ ģ“ė‚˜ ė¶„ģ„ ė°ģ“ķ„°ė„¼ ģˆ˜ģ§‘ķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤. -- **ģ§ˆģ˜ 딜그** — ėŖØė“  `graphify query`, `graphify path`, `graphify explain`, MCP `query_graph` ķ˜øģ¶œģ„ `~/.cache/graphify-queries.log`에 JSON Lines ķ˜•ģ‹ģœ¼ė”œ źø°ė”ķ•©ė‹ˆė‹¤(ķƒ€ģž„ģŠ¤ķƒ¬ķ”„, 질문, ģžė£Œ ėŖØģŒ, ė°˜ķ™˜ėœ ė…øė“œ, ģ†Œģš” ģ‹œź°„). 전첓 부분 ź·øėž˜ķ”„ ģ‘ė‹µģ€ 기본적으딜 ģ €ģž„ķ•˜ģ§€ **ģ•ŠģŠµė‹ˆė‹¤**. źø°ė”ģ„ 끄려멓 `GRAPHIFY_QUERY_LOG_DISABLE=1`ģ„ ģ„¤ģ •ķ•˜ģ„øģš”. ė”œź¹… ģ½”ė“œ 경딜넼 ė¹„ķ™œģ„±ķ™”ķ•˜ģ§€ ģ•Šź³  ģ¶œė „ģ„ 버리려멓 `GRAPHIFY_QUERY_LOG=/dev/null`ģ„ ģ‚¬ģš©ķ•˜ģ„øģš”. +- **ģ§ˆģ˜ 딜그** — 기본적으딜 꺼져 ģžˆģœ¼ė©°, ėŖ…ģ‹œģ ģœ¼ė”œ ķ™œģ„±ķ™”ķ•˜ģ§€ ģ•Šģœ¼ė©“ źø°ė”ķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤. `GRAPHIFY_QUERY_LOG_ENABLE=1`ģ„ ģ„¤ģ •ķ•˜ė©“ `graphify query`, `graphify path`, `graphify explain`, MCP `query_graph` ķ˜øģ¶œģ„ `~/.cache/graphify-queries.log`에 JSON Lines ķ˜•ģ‹ģœ¼ė”œ źø°ė”ķ•©ė‹ˆė‹¤(ķƒ€ģž„ģŠ¤ķƒ¬ķ”„, 질문, ģžė£Œ ėŖØģŒ, ė°˜ķ™˜ėœ ė…øė“œ 수, ģ†Œģš” ģ‹œź°„). `GRAPHIFY_QUERY_LOG`에 경딜넼 ģ§€ģ •ķ•˜ė©“ ė”œź¹…ģ„ ķ™œģ„±ķ™”ķ•˜ź³  핓당 ź²½ė”œģ— źø°ė”ķ•©ė‹ˆė‹¤. 전첓 부분 ź·øėž˜ķ”„ ģ‘ė‹µģ€ 기본적으딜 ģ €ģž„ķ•˜ģ§€ **ģ•Šģœ¼ė©°**, ė”œź¹…ģ“ ķ™œģ„±ķ™”ėœ ģƒķƒœģ—ģ„œ `GRAPHIFY_QUERY_LOG_RESPONSES=1`ģ„ 설정핓야 ķ•Øź»˜ źø°ė”ė©ė‹ˆė‹¤. `GRAPHIFY_QUERY_LOG_DISABLE=1`ģ€ 다넸 ķ™œģ„±ķ™” 설정볓다 ģš°ģ„ ķ•˜ė©° ė”œź¹…ģ„ ź°•ģ œė”œ ė•ė‹ˆė‹¤. ė”œź¹… ģ½”ė“œ 경딜넼 ė¹„ķ™œģ„±ķ™”ķ•˜ģ§€ ģ•Šź³  ģ¶œė „ģ„ 버리려멓 `GRAPHIFY_QUERY_LOG=/dev/null`ģ„ ģ‚¬ģš©ķ•˜ģ„øģš”. --- - ## 문제 ķ•“ź²° **ģ„¤ģ¹˜ 후 `graphify: command not found`ź°€ ķ‘œģ‹œė˜ėŠ” 경우** @@ -848,7 +846,7 @@ graphify cluster-only ./my-project graphify cluster-only ./my-project --graph path/to/graph.json # ź·øėž˜ķ”„ ģœ„ģ¹˜ 직접 지정 graphify cluster-only ./my-project --max-concurrency 16 --batch-size 200 # ģ»¤ė®¤ė‹ˆķ‹° ģ“ė¦„ģ„ ė³‘ė ¬ė”œ 지정 (ėŒ€ķ˜• ź·øėž˜ķ”„ģš©) graphify cluster-only ./my-project --resolution 1.5 # ė” ģž‘ź³  ė§Žģ€ ģ»¤ė®¤ė‹ˆķ‹°ė”œ ė¶„ķ•  -graphify cluster-only ./my-project --exclude-hubs 99 # ģ—°ź²° ģ°Øģˆ˜ź°€ 99ė°±ė¶„ģœ„ģø ė…øė“œė„¼ ė¶„ķ• ģ—ģ„œ ģ œģ™ø +graphify cluster-only ./my-project --exclude-hubs 99 # ģ—°ź²° ģ°Øģˆ˜ģ˜ 99ė°±ė¶„ģœ„ģˆ˜ė„¼ źø°ģ¤€ģœ¼ė”œ ķ—ˆėøŒ ė…øė“œė„¼ ė¶„ķ• ģ—ģ„œ ģ œģ™ø graphify cluster-only ./my-project --no-label # ģž„ģ‹œ ģ“ė¦„ "Community N" ģœ ģ§€ graphify cluster-only ./my-project --backend=gemini # ģ»¤ė®¤ė‹ˆķ‹° ģ“ė¦„ 지정에 ģ‚¬ģš©ķ•  ė°±ģ—”ė“œ graphify cluster-only ./my-project --backend=gemini --model gemini-2.5-pro # ķŠ¹ģ • ėŖØėø 지정 @@ -860,12 +858,11 @@ graphify label ./my-project --backend=openai --model gpt-4o # ķŠ¹ģ • ė°±ģ—”ė“œ --- - ## ė” ģ•Œģ•„ė³“źø° -- [ģž‘ė™ 원리](https://github.com/Graphify-Labs/graphify/blob/v8/docs/how-it-works.md) — ģ¶”ģ¶œ ķŒŒģ“ķ”„ė¼ģø, ģ»¤ė®¤ė‹ˆķ‹° ķƒģ§€, ģ‹ ė¢°ė„ ķ‰ź°€, 벤치마크 -- [ARCHITECTURE.md](https://github.com/Graphify-Labs/graphify/blob/v8/ARCHITECTURE.md) — ėŖØė“ˆ 구성과 ģ–øģ–“ 추가 방법 -- [ģ„ ķƒģ  ģ—°ė™](https://github.com/Graphify-Labs/graphify/blob/v8/docs/docker-mcp-sqlite.md) — Docker MCP Toolkit + SQLite +- [ģž‘ė™ 원리](../../docs/how-it-works.md) — ģ¶”ģ¶œ ķŒŒģ“ķ”„ė¼ģø, ģ»¤ė®¤ė‹ˆķ‹° ķƒģ§€, ģ‹ ė¢°ė„ ķ‰ź°€, 벤치마크 +- [ARCHITECTURE.md](../../ARCHITECTURE.md) — ėŖØė“ˆ 구성과 ģ–øģ–“ 추가 방법 +- [ģ„ ķƒģ  ģ—°ė™](../../docs/docker-mcp-sqlite.md) — Docker MCP Toolkit + SQLite - [The Memory Layer](https://safishamsi.gumroad.com/l/qetvlo) — graphifyģ˜ ė°”ķƒ•ģ“ 된 ģ•„ģ“ė””ģ–“ģ™€ 전첓 ģ•„ķ‚¤ķ…ģ²˜ė„¼ ģ„¤ėŖ…ķ•˜ėŠ” ģ±… --- @@ -898,7 +895,7 @@ git checkout v8 # ķ˜„ģž¬ ź°œė°œģ“ ģ§„ķ–‰ė˜ėŠ” ėøŒėžœģ¹˜ uv sync --all-extras ``` -ģ†ŒģŠ¤ ģˆ˜ģ • ģ‚¬ķ•­ģ“ ė°”ė”œ ė°˜ģ˜ė˜ėŠ” ķŽøģ§‘ ź°€ėŠ„ ģ„¤ģ¹˜ź°€ ė˜ģ—ˆėŠ”ģ§€ ķ™•ģøķ•˜ģ„øģš”. +ģ†ŒģŠ¤ ģˆ˜ģ • ģ‚¬ķ•­ģ“ ė°”ė”œ ė°˜ģ˜ė˜ėŠ” 개발용 ģ„¤ģ¹˜(editable install)ź°€ ģ •ģƒģ ģœ¼ė”œ ė˜ģ—ˆėŠ”ģ§€ ķ™•ģøķ•˜ģ„øģš”. ```bash uv run graphify --version @@ -915,7 +912,7 @@ uv run pytest tests/ -q -k "python" # ģ“ė¦„ģœ¼ė”œ 필터링 ### CI와 ė™ģ¼ķ•œ 씰걓으딜 ź²€ģ‚¬ķ•˜źø° -źø°ģ¤€ģ“ ė˜ėŠ” CI ėŖ…ė ¹ģ–“ėŠ” [`.github/workflows/`](https://github.com/Graphify-Labs/graphify/tree/v8/.github/workflows/)에 ģžˆģŠµė‹ˆė‹¤. ė”œģ»¬ģ—ģ„œ CI와 ź°™ģ€ ė°©ģ‹ģœ¼ė”œ ź²€ģ¦ķ•˜ė ¤ė©“ Python 3.10, 3.12, 3.13 ė˜ėŠ” 3.14넼 ģ‚¬ģš©ķ•“ ė‹¤ģŒģ„ ģ‹¤ķ–‰ķ•˜ģ„øģš”. +źø°ģ¤€ģ“ ė˜ėŠ” CI ėŖ…ė ¹ģ–“ėŠ” [`.github/workflows/`](../../.github/workflows/)에 ģžˆģŠµė‹ˆė‹¤. ė”œģ»¬ģ—ģ„œ CI와 ź°™ģ€ ė°©ģ‹ģœ¼ė”œ ź²€ģ¦ķ•˜ė ¤ė©“ Python 3.10, 3.12, 3.13 ė˜ėŠ” 3.14넼 ģ‚¬ģš©ķ•“ ė‹¤ģŒģ„ ģ‹¤ķ–‰ķ•˜ģ„øģš”. ```bash uv sync --all-extras --frozen @@ -948,7 +945,7 @@ RuffėŠ” 추가 딜컬 검사(`uv run --frozen ruff check .`)에 ģœ ģš©ķ•˜ģ§€ė§Œ, **ģ¶”ģ¶œ 버그** — ģž…ė „ ķŒŒģ¼, ģŗģ‹œ ķ•­ėŖ©(`graphify-out/cache/`), ėˆ„ė½ė˜ź±°ė‚˜ ģž˜ėŖ»ėœ ė‚“ģš©ģ„ 첨부핓 ģ“ģŠˆė„¼ ė“±ė”ķ•˜ģ„øģš”. -ėŖØė“ˆė³„ ģ—­ķ• ź³¼ ģ–øģ–“ 추가 ė°©ė²•ģ€ [ARCHITECTURE.md](https://github.com/Graphify-Labs/graphify/blob/v8/ARCHITECTURE.md)넼 ģ°øź³ ķ•˜ģ„øģš”. +ėŖØė“ˆė³„ ģ—­ķ• ź³¼ ģ–øģ–“ 추가 ė°©ė²•ģ€ [ARCHITECTURE.md](../../ARCHITECTURE.md)넼 ģ°øź³ ķ•˜ģ„øģš”.