# skill-shamsi-graphify-2026-08-06

## Veille

**Entrada de tipo skill** (no un artículo): **graphify**, de **Safi Shamsi** (Graphify Labs, **Y Combinator S26**), convierte un proyecto completo —código, documentación, PDF, imágenes, vídeos— en un **grafo de conocimiento consultable**, invocado mediante `/graphify` desde Claude Code, Cursor, Codex, Gemini CLI, GitHub Copilot y una quincena de otros clientes. Observado el **6 de agosto de 2026**: **103 187 estrellas**, **10 024 forks**, repositorio creado el **3 de abril de 2026** —una trayectoria extraordinaria en cuatro meses—. **Apache-2.0**, Python 3.10+, rama por defecto **v8**. **Los tres compromisos de diseño caben en tres líneas del README**: *« Code maps for free, fully local »* (el código se analiza en un **AST de tree-sitter**, determinista, sin LLM, **nada sale de la máquina**); *« Every edge is explained »* (cada arista se etiqueta como **`EXTRACTED`** —explícita en la fuente— o **`INFERRED`** —resuelta por graphify—, con un tercer valor `AMBIGUOUS` que aparece en el informe); y *« Not a vector index »* —*« no embeddings, no vector store: a real graph you traverse »*—. **Tres salidas**: `graph.html` (grafo interactivo), `GRAPH_REPORT.md` (nodos god, conexiones sorprendentes, preguntas sugeridas) y `graph.json` (grafo persistente, consultable semanas después sin releer los archivos). **Tres modos de consulta** sustituyen a grep: `query` (subgrafo para una pregunta en lenguaje natural), `path A B` (camino más corto entre dos entidades) y `explain` (vecindario de un concepto). **Cobertura**: 36 gramáticas de tree-sitter (~40 lenguajes), además de Terraform, Apex, **configuraciones MCP**, manifiestos de paquetes, Office, Google Workspace, PDF, imágenes y vídeo/audio transcritos **localmente** por faster-whisper. Comunidades detectadas mediante **Leiden**, etiquetadas **sin LLM**. ⭐ **El resultado de benchmark más interesante no es una victoria, sino un resultado gratuito**: en LOCOMO, graphify logra un **recall@10 de 0,497** frente a 0,149 de supermemory y 0,048 de mem0, pero **pierde en precisión de QA** (45,3 % frente a 49,7 %); en LongMemEval-S obtiene **76 %, empatado con un RAG denso**; y la línea que importa es *« Graph build — LLM credits: **0** »*, donde el sector suele facturar por token. ⚠️ **Puntos a registrar**: la rama `main` conserva un README de la era v1 que describe un producto distinto (solo skill de Claude Code, la afirmación de « 71,5× menos tokens »); el paquete PyPI se llama **`graphifyy`**, con dos *y*, hasta que se recupere el nombre `graphify`; y un **registro de consultas** se escribe por defecto en `~/.cache/graphify-queries.log`, desactivable mediante una variable de entorno.

## Titre Article

graphify — « Turn any codebase, with its docs, SQL schemas, configs, and PDFs, into a queryable knowledge graph. A /graphify skill for Claude Code, Cursor, Codex, and Gemini CLI: local deterministic AST parsing, every edge explained, no vector store. »

## Date

2026-08-06

## URL

https://github.com/Graphify-Labs/graphify

## Keywords

skill, grafo de conocimiento, grafo de conocimiento, AST, tree-sitter, análisis estático determinista, extracción local, sin LLM, NetworkX, Leiden, detección de comunidades, nodo god, conexiones sorprendentes, EXTRACTED, INFERRED, AMBIGUOUS, procedencia de aristas, confianza, sin vectores, sin embeddings, sin almacén vectorial, recorrido de grafos, query, path, explain, graph.json, graph.html, GRAPH_REPORT, caché SHA256, actualización incremental, watch, hook post-commit, wiki rastreable por agentes, MCP stdio, Neo4j, GraphML, Obsidian, multimodal, PDF, visión, faster-whisper, transcripción local, Terraform, Apex, configuraciones MCP, manifiestos de paquetes, Google Workspace, LOCOMO, LongMemEval, recall, mem0, supermemory, RAG denso, cero créditos LLM, residencia de datos, Ollama, Bedrock, registro de consultas, telemetría, Y Combinator, Graphify Labs, Safi Shamsi

## Authors

**Safi Shamsi** — créateur et mainteneur de graphify, et de **Graphify Labs**, société passée par **Y Combinator (promotion S26)** selon le badge du dépôt. Il maintient aussi le site d'annuaire `graphify.net` (cf. [[graphify-net-annuaire-ia-coding-2026-08-06]]) et publie un livre, *The Memory Layer*, sur les idées et l'architecture derrière le projet.

**Trace d'historique à connaître** : le dépôt s'appelait `safishamsi/graphify` avant son transfert vers l'organisation `Graphify-Labs`. Le README de la branche `main` porte encore l'ancien chemin dans son badge d'intégration continue et dans sa procédure d'installation manuelle.

**Signaux d'adoption au 6 août 2026** : 103 187 étoiles, 10 024 forks, 823 issues ouvertes, dernier push la veille. Le dépôt affiche un badge Trendshift et propose son README en **33 langues**. Communauté sur Discord, page LinkedIn d'entreprise.

## Ton

**Perfil**: documentación densa de un proyecto open source, escrita para ser leída por un desarrollador con prisa **y** por un agente. Registro técnico, muy pocas promesas, muchas tablas —tipos de archivo, gramáticas, variables de entorno, una referencia completa de comandos.

**Estilo**: **la demostración precede al argumento**. El README muestra una salida real antes de explicar nada —un comando `graphify explain "APIRouter"` con su vecindario anotado línea por línea, luego un `graphify path "FastAPI" "ModelField"` que muestra el camino de tres saltos. El producto se muestra funcionando sobre un repositorio que el lector ya conoce (FastAPI) antes de que se formule un solo argumento comercial.

**Tres rasgos destacables**:

1. **La posición se define mediante una negación deliberada.** *« Not a vector index. No embeddings, no vector store: a real graph you traverse. »* El proyecto se posiciona **en contra** del RAG vectorial, hoy el estándar, y esta oposición estructura todo lo demás —determinismo, coste cero, trazabilidad de las aristas.
2. **Honestidad respecto a sus propios benchmarks.** La tabla publica una **derrota**: 45,3 % de precisión de QA en LOCOMO frente a 49,7 % de supermemory. Pocos proyectos publican la columna en la que pierden.
3. **El límite de privacidad se traza por tipo de archivo, no por principio.** El código permanece local, también el vídeo (transcrito mediante faster-whisper), los documentos e imágenes van al modelo. La sección *Privacy* enumera casos en lugar de prometer localidad.

**Registro operativo impuesto al agente** (el «tono» en el sentido empleado para las entradas de tipo skill): la herramienta no le dicta nada al agente, **le proporciona un sustrato**. El README dedica una sección entera a *« Make your assistant always use the graph »* —el objetivo es que el agente consulte el grafo **antes** de leer archivos.

**Frases marcadoras**: *« query instead of grepping »*, *« Code maps for free, fully local »*, *« Every edge is explained »*, *« you always know what was found vs guessed »*, *« a real graph you traverse »*, *« Graph build — LLM credits: 0 »*.

## Pense-betes

- **Naturaleza**: skill `/graphify` + CLI en Python, Apache-2.0, distribuida en PyPI bajo el nombre **`graphifyy`** (con dos *y*, hasta que se recupere `graphify`). Instalación mediante `uv tool install graphifyy && graphify install`. Funciona en Claude Code, Cursor, Codex, Gemini CLI, GitHub Copilot y una quincena de otros clientes.
- **⭐⭐ Los tres compromisos de diseño, y se sostienen entre sí**: 1. **El código se analiza localmente, sin LLM.** AST de tree-sitter, determinista, *« nothing leaves your machine »*. Un corpus puramente de código no requiere **ninguna clave de API** y funciona sin conexión. Los documentos, PDF e imágenes, en cambio, pasan por un modelo. 2. **Cada arista lleva su procedencia.** `EXTRACTED` = explícita en la fuente; `INFERRED` = resuelta por graphify; `AMBIGUOUS` en el informe. *« You always know what was found vs guessed. »* 3. **Sin índice vectorial.** Sin embeddings, sin almacén vectorial: un grafo que se recorre. → **Los tres se refuerzan entre sí**: el determinismo hace que el coste sea cero, el coste cero permite reconstrucciones frecuentes, y el etiquetado de las aristas hace el resultado auditable. Misma familia de razonamiento que el ejecutable que supera al brief en [[lassiege-usine-logicielle-heure-ia-2026-07-28]].
- **⭐ El grafo sustituye a grep, y ese es el argumento de uso**: `query "<pregunta>"` devuelve un subgrafo para una pregunta en lenguaje natural, `path A B` traza el camino entre dos entidades, `explain X` despliega el vecindario de un concepto. El ejemplo del README lo ilustra: `path "FastAPI" "ModelField"` devuelve un camino de tres saltos con el tipo de cada arista. **Se pregunta por una relación, no por una coincidencia de cadena.** Es exactamente el beneficio que Hugo Lassiège atribuye a GitNexus en [[lassiege-usine-logicielle-heure-ia-2026-07-28]] —*« searching for an execution flow rather than grepping a function name »*, y *« the real point isn't speed, it's detecting all the side effects »*.
- **⭐⭐ La tabla de benchmarks, leída correctamente — la línea que importa no es una victoria**: | Benchmark | Métrica | graphify | Sector | |---|---|---|---| | LOCOMO (n=300) | recall@10 | **0,497** | supermemory 0,149 · mem0 0,048 | | LOCOMO (n=300) | precisión QA | 45,3 % | **supermemory 49,7 %** · mem0 27,3 % | | LongMemEval-S (n=50) | precisión QA | 76 % | **empatado** con un RAG denso | | Construcción del grafo | créditos LLM | **0** | facturado por token en el resto del sector | → **graphify domina ampliamente en recall, pierde en precisión de QA, empata con el RAG denso en el segundo benchmark y construye su grafo de forma gratuita.** El diferenciador defendible es, por tanto, el **coste y la trazabilidad, no la calidad de las respuestas**. Presentar graphify como « mejor que el RAG » sería una sobreinterpretación que sus propias cifras contradicen. Protocolo acreditado: mismo harness, mismo modelo, mismos presupuestos, juez validado a ciegas frente a un segundo juez (**90,6 % de acuerdo, kappa de Cohen 0,81**).
- **⭐ Vale la pena compararlo con la única cifra comparable del corpus**: Compare the Market midió un grafo AST en **~70 %** frente a **~58 %** para un RAG vectorial en 79 merge requests, con el RAG rindiendo **peor que sin ningún contexto** (cf. [[comparethemarket-context-retrieval-ai-code-review-gkg-rag-2026-03-06]], retomado en [[sfeir-code-review-anneau-contraintes-2026-07-30]]). **Dos mediciones independientes convergen en la superioridad del grafo estructurado para el código** — y graphify añade que su construcción no cuesta nada.
- **Cobertura de fuentes — más amplia que "solo código"**: 36 gramáticas de tree-sitter que cubren ~40 lenguajes (hasta CUDA, Metal, Zig, Elixir, Julia, Dart, SystemVerilog, Delphi, Fortran), además de **SQL**, **Terraform/HCL**, **Apex Salesforce**, **configuraciones MCP** (`.mcp.json`, `claude_desktop_config.json` —extrae servidores, paquetes y variables de entorno requeridas—), **manifiestos de paquetes** (`pyproject.toml`, `go.mod`, `pom.xml` —un nodo canónico por paquete, de ahí un único hub—), Office, Google Workspace, PDF, imágenes, vídeo y audio. ⭐ **Aplicar graphify a las propias configuraciones MCP** es una forma inesperada e inmediatamente útil de cartografiar la propia superficie de herramientas.
- **El «porqué» extraído como objeto de primer orden**: los comentarios `# NOTE:`, `# WHY:`, `# HACK:`, los docstrings y el razonamiento de diseño presente en la documentación se convierten en **nodos independientes vinculados al código que explican**. → **La intención se trata como una entidad del grafo**, lo que aborda directamente la deuda de comprensión: se puede preguntar *por qué*, no solo *qué*.
- **Actualidad del grafo, tres mecanismos**: caché SHA256 (solo se reprocesan los archivos modificados), `--watch` (reconstrucción instantánea al guardar un archivo de código, **solo AST, sin LLM**; los documentos e imágenes señalan que se necesita un `--update`), y `graphify hook install` (**hook post-commit**, sin proceso en segundo plano). El modo `--watch` se justifica explícitamente para flujos multiagente: *« the graph stays current between waves automatically »*.
- **Salidas para agentes**: `--wiki` produce artículos de estilo enciclopédico por comunidad con un `index.md`, *« point any agent at index.md and it can navigate the knowledge base by reading files instead of parsing JSON »*. Y `--mcp` inicia un servidor MCP stdio. Exportaciones a Obsidian, GraphML (Gephi, yEd), Neo4j (cypher), SVG. → **El grafo está construido para ser leído por una máquina, con varios puntos de entrada según la herramienta.** Misma intención que el markdown servido a agentes en [[martinho-allen-cloudflare-markdown-for-agents-2026-02-12]].
- **⚠️ Privacidad — el límite es sutil, conviene conocerlo**:
- **Local**: código (tree-sitter), vídeo y audio (faster-whisper). Un corpus exclusivamente de código funciona **sin conexión**, y `--code-only` fuerza este modo en un repositorio mixto.
- **Enviado al modelo**: documentos, PDF, imágenes. En modo headless se requiere una clave de API, con una **cadena de prioridad automática** (Gemini → Kimi → Claude → OpenAI → DeepSeek → Azure → Bedrock → Ollama). ⚠️ **Kimi enruta hacia servidores de Moonshot AI en China** —el README lo señala—, y `--backend ollama` ofrece un modo totalmente local.
- **Sin telemetría**, sin seguimiento de uso.
- ⚠️ **Pero un registro de consultas se escribe por defecto** en `~/.cache/graphify-queries.log` (marca temporal, pregunta, corpus, nodos devueltos, duración). Los subgrafos no se almacenan. Se desactiva mediante `GRAPHIFY_QUERY_LOG_DISABLE=1`. **Local, pero activo sin opt-in**: conviene saberlo antes de un despliegue en un contexto sensible.
- **⚠️ Dos trampas de documentación en el propio repositorio**: 1. **La rama `main` está obsoleta.** Conserva un README (7 KB) de la era **v1** que describe *« a Claude Code skill »* para un único cliente, destacando la afirmación **« 71,5× menos tokens »** sobre un corpus Karpathy de 52 archivos, y sigue apuntando a `safishamsi/graphify`. La rama por defecto es **v8** (57 KB), que describe un producto multicliente y destaca los benchmarks LOCOMO/LongMemEval. **Hay que leer v8, nunca `main`.** 2. **El nombre del paquete**: `pip install graphifyy` (con dos *y*). El comando de la CLI y de la skill sigue siendo `graphify`.
- **Modelo de negocio, a vigilar**: la skill open source es el punto de entrada a una **plataforma comercial** en `graphify.com` —*« the always-on layer… applies the same graph approach to your entire working context: meetings, files, docs, and code, updating continuously in the background »*—, actualmente en lista de espera, con una prueba gratuita anunciada. **Open source local por un lado, servicio alojado continuo por otro**: un patrón clásico, a tener en cuenta en cualquier decisión de adopción.
- **⚠️ La tracción exige una lectura cautelosa**: **103 187 estrellas en cuatro meses** es un ritmo excepcional, incluso para una herramienta viral. La cifra es la que devuelve la API de GitHub el 6 de agosto de 2026; no dice nada sobre el uso real, y el sitio oficial del proyecto sigue mostrando **3700** (cf. [[graphify-net-annuaire-ia-coding-2026-08-06]]), señal de que la comunicación no ha seguido el ritmo. **El número de estrellas debe citarse como señal de atención, nunca como medida de adopción.**
- **Meta / referencias cruzadas**: misma familia que [[skill-gibbs-hyperresearch-2026-08-03]] (almacén persistente, procedencia, salida legible por agentes), pero para código en lugar de investigación documental; materializa en forma de producto lo que Hugo Lassiège obtiene de GitNexus en [[lassiege-usine-logicielle-heure-ia-2026-07-28]]; convergencia numérica con [[comparethemarket-context-retrieval-ai-code-review-gkg-rag-2026-03-06]] y [[sfeir-code-review-anneau-contraintes-2026-07-30]] sobre grafo AST frente a RAG vectorial; se inscribe en el contexto codificado de [[vasilopoulos-codified-context-infrastructure-ai-agents-2026-02-24]] y las plataformas de contexto de [[memodb-acontext-context-data-platform-agents-2025-12-11]]; parentesco formal con otras entradas de tipo skill, [[skill-pocock-grill-with-docs-2026-06]]; mecánica de las skills en [[agent-skills-anthropic-2025-10-16]], [[shihipar-claude-code-lessons-building-skills-2026-06-03]] y [[vincent-superpowers-agentic-skills-framework-github-2026-04-02]]. ⚠️ **Desambiguación**: el sitio `graphify.net` es una propiedad distinta de `graphify.com` (la plataforma comercial) — véase la entrada dedicada.

## RésuméDe400mots

**graphify** (Safi Shamsi, Graphify Labs, Y Combinator S26) convierte un proyecto completo en un **grafo de conocimiento consultable**, invocado mediante `/graphify` desde Claude Code, Cursor, Codex, Gemini CLI y una quincena de otros clientes. Observado el 6 de agosto de 2026: **103 187 estrellas** para un repositorio creado el 3 de abril, Apache-2.0, Python.

**Tres compromisos sustentan el proyecto.** **El código se analiza localmente** en un AST de tree-sitter, sin LLM: determinista, nada sale de la máquina, no se requiere clave de API para un corpus puramente de código. **Cada arista lleva su procedencia** —`EXTRACTED` si es explícita en la fuente, `INFERRED` si graphify la resolvió—, *« so you can tell what was read directly from what was inferred »*. Y el proyecto se define **frente al RAG vectorial**: *« Not a vector index. No embeddings, no vector store: a real graph you traverse. »*

**El uso sustituye a grep.** `query` devuelve un subgrafo para una pregunta en lenguaje natural, `path A B` traza el camino entre dos entidades, `explain` despliega un concepto. Tres salidas: un grafo interactivo, un informe legible (nodos god, conexiones sorprendentes, preguntas sugeridas) y un `graph.json` persistente, consultable semanas después.

**La cobertura va más allá del código**: 36 gramáticas de tree-sitter, pero también SQL, Terraform, Apex, **configuraciones MCP**, manifiestos de paquetes, Office, PDF, imágenes y vídeo transcrito localmente. Los comentarios `# WHY:` y el razonamiento de diseño se convierten en **nodos de pleno derecho vinculados al código que explican**.

**Los benchmarks merecen una lectura atenta.** En LOCOMO, graphify domina en recall (0,497 frente a 0,149 y 0,048) pero **pierde en precisión de QA** (45,3 % frente a 49,7 %); en LongMemEval-S **empata con un RAG denso** en 76 %. La línea que importa está en otra parte: *« Graph build — LLM credits: 0 »*. El diferenciador defendible es el **coste y la trazabilidad, no la calidad de las respuestas**.

⚠️ **Tres advertencias.** La rama `main` conserva un README obsoleto de la era v1 que describe un producto distinto: hay que leer `v8`. El paquete PyPI se llama `graphifyy`, hasta que se recupere el nombre. Y un **registro local de consultas** está activo por defecto, desactivable mediante una variable de entorno.

La skill también sirve de punto de entrada a una plataforma comercial en lista de espera, graphify.com, que aplica el mismo enfoque de forma continua a todo el contexto de trabajo.

## Anti-patterns

- **Lire la branche `main`.** Elle décrit un produit de l'ère v1, mono-client, avec un argument marketing (« 71,5× moins de tokens ») que la version courante n'utilise plus. La branche par défaut est `v8`.
- **Citer « graphify bat le RAG ».** Ses propres benchmarks le contredisent : il perd en exactitude QA sur LOCOMO et **égale** un RAG dense sur LongMemEval-S. L'argument défendable est le coût nul et la traçabilité.
- **Annoncer « fully local » sans nuance.** Seul le code et la transcription vidéo le sont. Documents, PDF et images partent vers un modèle, sauf backend Ollama explicite.
- **Déployer en contexte sensible sans couper le journal de requêtes.** `~/.cache/graphify-queries.log` enregistre chaque question par défaut ; poser `GRAPHIFY_QUERY_LOG_DISABLE=1`.
- **Laisser la chaîne de priorité choisir le backend** dans un contexte à contrainte de résidence des données : la détection automatique peut router vers Kimi, donc vers des serveurs en Chine. Passer un `--backend` explicite.
- **Graphifier un corpus minuscule** en attendant un gain de tokens : en dessous de la taille d'une fenêtre de contexte, l'apport est structurel, pas économique.
- **Traiter 103 000 étoiles comme une mesure d'adoption.** C'est un signal d'attention sur quatre mois, rien de plus.

## Artefacts

**Sorties principales**, dans `graphify-out/` :
- `graph.html` — graphe interactif, nœuds cliquables, filtres par communauté, recherche
- `GRAPH_REPORT.md` — god nodes, connexions surprenantes avec leur justification en clair, 4-5 questions suggérées, étiquettes de confiance
- `graph.json` — le graphe complet, persistant et interrogeable

**Sorties optionnelles** : `wiki/` (articles par communauté avec `index.md`, pour navigation par un agent), `obsidian/` (coffre Obsidian), `graph.svg`, `graph.graphml` (Gephi, yEd), `cypher.txt` (Neo4j), serveur MCP stdio, `converted/` (passerelles markdown pour Google Workspace).

**Sous-produits** : `cache/` (empreintes SHA256 par fichier) et `~/.cache/graphify-queries.log` (journal des requêtes, actif par défaut).

## Commentaire

**En une phrase** : graphify parie que, pour du code, **un graphe déterministe construit gratuitement bat un index vectoriel payant** — et publie les chiffres qui le nuancent.

**L'idée centrale** tient dans une asymétrie que le projet exploite bien. Le code a une structure formelle : un analyseur syntaxique sait dire, sans deviner, que telle fonction en appelle telle autre. Le RAG vectoriel jette cette information pour la remplacer par une proximité statistique, et paie des tokens pour le faire. graphify garde la structure là où elle existe (le code, en AST local) et ne convoque un modèle que là où elle manque (la prose, les images). D'où les trois propriétés qui découlent l'une de l'autre : le déterminisme rend l'extraction gratuite, la gratuité rend la reconstruction fréquente possible, et la reconstruction fréquente rend le graphe fiable au lieu de périmé.

**Le second principe est la traçabilité.** Étiqueter chaque arête `EXTRACTED` ou `INFERRED` paraît mineur et change tout : on peut faire confiance différemment à deux relations selon leur origine, et un agent qui traverse le graphe sait quand il marche sur du solide. C'est la même discipline épistémique que les types de source dans une fiche de veille, ou que la distinction entre lecture et substitution dans [[skill-gibbs-hyperresearch-2026-08-03]].

**En résumé** : l'outil est utile, ses chiffres sont honnêtes, et son argument le plus fort est économique avant d'être qualitatif. Sa faiblesse tient à sa documentation — un dépôt dont la branche `main` décrit un produit périmé et dont le site officiel affiche 3 700 étoiles quand GitHub en compte 103 000 n'inspire pas confiance sur sa capacité à tenir sa propre cartographie à jour.

## Déclencheur

**Quand la skill s'active** : sur `/graphify <chemin>` dans un assistant de codage, après `uv tool install graphifyy && graphify install`. En dehors d'un assistant, la CLI `graphify extract` fait le même travail en mode headless, avec une clé d'API pour la partie sémantique.

**Entrées attendues** : un **répertoire quelconque** — dépôt de code, dossier de notes, corpus de PDF, mélange des trois. Aucune structure préalable n'est requise.

**Options qui changent le comportement** : `--code-only` (n'indexe que le code, donc aucun appel réseau), `--update` (ne retraite que les fichiers modifiés), `--watch` (reconstruction continue), `--wiki` (sortie navigable par un agent), `--mcp` (serveur MCP stdio), `--backend ollama` (tout en local, y compris la partie sémantique).

**Quand ne pas la déclencher** : sur un corpus de quelques fichiers qui tient déjà dans une fenêtre de contexte — le README le dit lui-même à propos de son exemple à 6 fichiers, *« graph value there is structural clarity, not compression »*. Et sur un corpus dont les documents sont confidentiels sans backend local configuré, puisque la passe sémantique les enverrait à un modèle distant.

## Fonctionnement

**Le pipeline se lit en quatre temps.**

1. **Extraction, par type de fichier.** Le code passe par tree-sitter : AST, graphe d'appels, docstrings, le tout déterministe et local. La prose, les PDF et les images passent par un modèle. La vidéo et l'audio sont transcrits localement par faster-whisper, puis traités comme de la prose. Les commentaires d'intention (`# WHY:`, `# HACK:`) sont extraits comme nœuds distincts.
2. **Résolution et fusion.** Les nœuds et arêtes sont fusionnés dans un graphe NetworkX. Les liens inter-fichiers (`calls`, `imports`, `inherits`, `mixes_in`) sont résolus à travers ~40 langages. Un paquet référencé depuis plusieurs manifestes devient **un seul nœud canonique**, donc un hub.
3. **Structuration.** L'algorithme **Leiden** découpe le graphe en communautés, **labellisées sans LLM**. Les nœuds de plus fort degré sont désignés *god nodes*. Les connexions inattendues sont classées par un score composite, une arête code-article pesant plus qu'une arête code-code.
4. **Restitution.** Trois artefacts, plus les exports optionnels. Chaque arête conserve son étiquette de provenance jusqu'à la sortie.

**La boucle de fraîcheur** est traitée à trois niveaux de coût croissant : le cache SHA256 évite tout retraitement inutile ; `--watch` reconstruit instantanément sur sauvegarde d'un fichier de code, **sans appel LLM** ; le hook post-commit reconstruit à chaque commit sans processus résident.

**L'interrogation** se fait ensuite contre `graph.json`, sans relire les fichiers sources : `query` pour une question ouverte, `path` pour une relation entre deux entités, `explain` pour un voisinage.

## Lecture commentée du SKILL.md

Le fichier commenté est le README de la branche `v8` (57 Ko), qui fait office de spécification publique de la skill, et le `skills/graphify/skill.md` qu'installe la commande `graphify install`.

**L'énoncé de mission, en une phrase, place le verbe au bon endroit** :

> *« Type `/graphify` in your AI coding assistant and it maps your entire project (code, docs, PDFs, images, videos) into a **knowledge graph** you can **query instead of grepping** through files. »*

*Glose* : la promesse n'est pas « comprendre votre code » mais **remplacer une opération précise** — le grep. Une skill qui se définit par le geste qu'elle supprime est plus facile à évaluer qu'une skill qui promet de la compréhension.

**Les trois puces qui suivent sont la spécification réelle** :

> *« **Code maps for free, fully local.** Code is parsed with tree-sitter AST: deterministic, no LLM, nothing leaves your machine. (Docs, PDFs, images and video use your assistant's model, or a configured API key, for a semantic pass.) »*

*Glose* : la parenthèse fait le travail honnête. Elle dit exactement où finit le local. Beaucoup d'outils annoncent « fully local » et laissent le lecteur découvrir l'exception.

> *« **Every edge is explained.** Each connection is tagged `EXTRACTED` (explicit in the source) or `INFERRED` (resolved by graphify), so you can tell what was read directly from what was inferred. »*

*Glose* : la définition des deux étiquettes est donnée **dans la même phrase** que leur nom. Un agent qui lit cette ligne sait comment pondérer une arête sans consulter d'autre documentation.

> *« **Not a vector index.** No embeddings, no vector store: a real graph you traverse. »*

*Glose* : positionnement par la négation, assumé. Le projet se situe dans un paysage où le RAG vectoriel est le défaut, et refuse d'y entrer.

**La sortie montrée avant d'être décrite** — choix de rédaction remarquable :

```text
$ graphify path "FastAPI" "ModelField"
Shortest path (3 hops):
  FastAPI --uses--> DefaultPlaceholder <--references-- get_request_handler() --references--> ModelField
```

*Glose* : trois sauts, le sens de chaque arête, son type. Le lecteur comprend en une ligne ce que « traverser un graphe » veut dire, sur un dépôt qu'il connaît. C'est plus efficace que n'importe quel paragraphe d'explication.

**La section qui trahit l'intention profonde** s'intitule *« Make your assistant always use the graph »*.

*Glose* : l'objectif n'est pas qu'un humain lance une commande, c'est que **l'agent consulte le graphe avant de lire les fichiers**. La skill vise à s'insérer dans la boucle par défaut de l'assistant, pas à rester un outil invoqué à la demande. C'est le même mouvement que la rule de routage vers les skills chez Hugo Lassiège : rendre le bon réflexe automatique.

**Choix de design à retenir** : l'**extraction hybride par type de fichier** (déterministe où la structure existe, sémantique ailleurs) est la décision qui produit toutes les autres propriétés ; le **cache SHA256** et le **hook post-commit** traitent la fraîcheur comme un problème d'ingénierie et non de discipline ; et la **sortie en wiki markdown** reconnaît qu'un agent lit mieux des fichiers qu'il ne parse du JSON.

## GrapheDeConnaissance

- Safi Shamsi —a_créé→ graphify (METHODOLOGIE, 0.97)
- Graphify Labs —publie→ graphify (METHODOLOGIE, 0.95)
- graphify —permet→ d'interroger un projet par traversée de graphe au lieu de grepper des fichiers (CITATION, 0.96)
- graphify —utilise→ tree-sitter (TECHNOLOGIE, 0.97)
- graphify —utilise→ NetworkX (TECHNOLOGIE, 0.93)
- graphify —utilise→ algorithme de Leiden (CONCEPT, 0.93)
- analyse AST locale —permet→ une extraction de code déterministe, sans appel de modèle et sans sortie de données (AFFIRMATION, 0.96)
- graphify —s_oppose_à→ l'index vectoriel, refusant embeddings et magasin de vecteurs (CITATION, 0.96)
- étiquetage EXTRACTED et INFERRED —permet→ de distinguer une relation lue dans la source d'une relation déduite (AFFIRMATION, 0.96)
- graphify —mesure→ un recall@10 de 0,497 sur LOCOMO contre 0,149 pour supermemory et 0,048 pour mem0 (MESURE, 0.93)
- graphify —mesure→ une exactitude QA de 45,3 % sur LOCOMO, inférieure aux 49,7 % de supermemory (MESURE, 0.93)
- graphify —mesure→ 76 % d'exactitude sur LongMemEval-S, à égalité avec un RAG dense (MESURE, 0.92)
- construction du graphe par AST —réduit→ le coût de construction à zéro crédit de modèle (MESURE, 0.95)
- graphe de code structuré —surpasse→ la récupération vectorielle pour la compréhension de code (AFFIRMATION, 0.85)
- graphify —s_applique_à→ code, documents, PDF, images, vidéo, configurations MCP et manifestes de paquets (AFFIRMATION, 0.94)
- commentaires d'intention —fait_partie_de→ le graphe, comme nœuds distincts reliés au code qu'ils expliquent (AFFIRMATION, 0.92)
- cache par empreinte et hook post-commit —résout→ la péremption du graphe face à un code qui change (AFFIRMATION, 0.92)
- sortie en wiki markdown —permet→ à un agent de naviguer la base de connaissance en lisant des fichiers plutôt qu'en analysant du JSON (CITATION, 0.92)
- graphify —utilise→ faster-whisper pour transcrire vidéo et audio localement (TECHNOLOGIE, 0.9)
- journal de requêtes local —s_oppose_à→ l'absence totale de trace, étant actif par défaut et désactivable par variable d'environnement (AFFIRMATION, 0.9)
- détection automatique de backend —s_oppose_à→ une contrainte de résidence des données, pouvant router vers des serveurs situés en Chine (AFFIRMATION, 0.88)
- graphify —converge_avec→ GitNexus (TECHNOLOGIE, 0.85)
- Graphify Labs —publie→ une plateforme commerciale appliquant la même approche en continu à tout le contexte de travail (AFFIRMATION, 0.9)
- branche main du dépôt —s_oppose_à→ la branche v8, en décrivant un produit de génération antérieure (AFFIRMATION, 0.92)

---
Canonical: https://www.thekb.eu/es/fiches/skill-shamsi-graphify-2026-08-06/
