Keep documentation and code in sync using LLMs
Project description
Speclink
Speclink mantiene la documentación y el código sincronizados mediante LLMs. Mapea automáticamente las secciones de documentación con el código relevante y las reescribe cuando detecta cambios.
Características principales
- Mapeo automático: Analiza el repositorio para vincular secciones de documentación con los símbolos de código que describen.
- Sincronización incremental: Solo actualiza las secciones de documentación afectadas por cambios recientes en el código.
- Integración con GitHub Actions: Automatiza la sincronización en el pipeline CI/CD.
- Basado en IA: Utiliza LLMs (OpenAI, Anthropic, etc.) y rerankers para recuperación de contexto de alta precisión.
Instalación
pip install speclink
Inicio rápido
1. Inicializar Speclink
Ejecutar el asistente para seleccionar los archivos de documentación a monitorizar.
speclink scope
Esto crea:
- Un directorio de configuración
.speclink/. - Un workflow
.github/workflows/speclink-sync.ymlpara la sincronización automática.
2. Configurar entorno
Crear un archivo .env o definir variables de entorno. Speclink utiliza LiteLLM, compatible con más de 100 proveedores (OpenAI, Anthropic, Mistral, Ollama, etc.).
LLM_API_KEY=tu_clave
LLM_MODEL=gpt-4o # o anthropic/claude-3-5-sonnet, mistral/mistral-large, etc.
RERANK_API_KEY=tu_clave
RERANK_MODEL=cohere/rerank-v3.5
Consultar proveedores soportados por LiteLLM para la lista completa de identificadores de modelo.
3. Análisis inicial y commit
Generar el mapeo inicial y subirlo al repositorio para habilitar la automatización.
speclink analyze
git add .speclink/ .github/
git commit -m "chore: inicializar speclink"
git push
4. Sincronización continua (automatización)
Una vez configurado, la GitHub Action se ejecuta automáticamente en cada Pull Request:
- Detecta cambios en el código.
- Re-analiza el repositorio para actualizar el mapa de trazabilidad (incremental).
- Sincroniza las secciones de documentación afectadas.
- Commitea los cambios directamente en la rama.
Funcionamiento
- Scope: Se definen qué archivos
.mdson la fuente de verdad. - Analyze: Speclink parsea el código con
tree-sittery utiliza un reranker para identificar qué archivos/funciones están relacionados con cada sección de documentación. - Sync: Cuando el código cambia, Speclink identifica las secciones afectadas, proporciona el nuevo contexto al LLM y reescribe la documentación.
Desarrollo
Requiere Python 3.12+.
git clone https://github.com/lacatu5/speclink.git
cd speclink
pip install -e .
Licencia
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file speclink-0.1.1.tar.gz.
File metadata
- Download URL: speclink-0.1.1.tar.gz
- Upload date:
- Size: 45.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c54499c7e6875c3b647fec5077ca6a5435b62da9bb03d1479a72e8cbe086da63
|
|
| MD5 |
8c5234af45e154c692f54b8b2c9497c7
|
|
| BLAKE2b-256 |
bd949e34234d98d3fea9c938540c0bc6916fab59bbf8dd10c1d8a32ec0a29abc
|
File details
Details for the file speclink-0.1.1-py3-none-any.whl.
File metadata
- Download URL: speclink-0.1.1-py3-none-any.whl
- Upload date:
- Size: 42.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
639670ff7d3430f5843df9eb7fe5e9d925507ab18e2aab25ffe8998bf742258e
|
|
| MD5 |
1acaf62e548498f873a33d60e815ba1f
|
|
| BLAKE2b-256 |
20e0cf242abe74b7a3a8324b6c6d080bf9afb199d36360182bdda27835bce331
|