ContextWeaver 1.0.13
dotnet tool install --global ContextWeaver --version 1.0.13
dotnet new tool-manifest
dotnet tool install --local ContextWeaver --version 1.0.13
#tool dotnet:?package=ContextWeaver&version=1.0.13
nuke :add-package ContextWeaver --version 1.0.13
ContextWeaver
La Herramienta CLI para el Context Engineering y Análisis Arquitectónico
ContextWeaver es una potente herramienta de línea de comandos (.NET Global Tool) diseñada para ingenieros de software,
arquitectos y desarrolladores. Transforma cualquier codebase en un **documento Markdown único, coherente y enriquecido
**, optimizado para el análisis por parte de Large Language Models (LLMs) y la colaboración en equipos.
¿Por qué ContextWeaver?
En la era del desarrollo asistido por IA, la calidad del contexto de entrada lo es todo. ContextWeaver aborda este
desafío al:
- Consolidar el Código: Combina múltiples archivos de un repositorio en un único documento Markdown, haciendo que el consumo por parte de LLMs sea más eficiente y completo.
- Optimizar el Contexto: Filtra directorios y archivos irrelevantes (ej.
node_modules,bin,obj), enfocándose en el código fuente y los artefactos clave. - Proporcionar un Mapa de Código Inteligente:
- Árbol de Directorios Navegable: Una representación visual de la estructura del proyecto con enlaces directos a cada archivo dentro del documento.
- "Repo Map" por Archivo: Extrae las firmas públicas (API) y las dependencias (
using/import) de cada archivo de código, ofreciendo un resumen de alto nivel. - Métricas Clave: Incluye el conteo de Líneas de Código (LOC) y Complejidad Ciclomática a nivel de archivo.
- Visualización Arquitectónica Avanzada:
- Soporte Dual: Genera diagramas tanto en Mermaid como en PlantUML.
- Granularidad Inteligente: Crea diagramas de dependencias a nivel global, por módulo y diagramas de contexto específicos por archivo.
- Semántica Rica: Distingue visualmente entre
class,interface,record,structyenum.
- Contexto Semántico Enriquecido para LLMs:
- Taxonomía Automática: Extrae modificadores (
abstract,sealed), interfaces implementadas y atributos clave para dar contexto inmediato sobre el rol del código. - Detección de Complejidad Cognitiva: Calcula la métrica
MaxNestingDepthpara alertar sobre lógica profundamente anidada. - Referencias Entrantes ("Used By"): Lista explícitamente qué archivos dependen del código actual, facilitando el análisis de impacto.
- Taxonomía Automática: Extrae modificadores (
- Identificar "Hotspots": Destaca automáticamente los 5 archivos con mayor tamaño (LOC) y mayor acoplamiento ( número de imports), permitiendo enfocar la atención en áreas críticas.
- Análisis de Inestabilidad Arquitectónica (Métrica de Robert C. Martin): Calcula la métrica de Inestabilidad (I = Ce / (Ca + Ce)) a nivel de módulos (carpetas/proyectos) para ayudar a entender la dirección y la salud de las dependencias arquitectónicas. Identifica módulos estables (núcleo) e inestables (implementaciones).
- Configuración Flexible y por Proyecto: La herramienta busca un archivo
.contextweaver.jsonen el directorio analizado para usar configuraciones específicas del proyecto. Si no lo encuentra, creará automáticamente uno con los valores por defecto, permitiendo una gran adaptabilidad.
Calidad de Código y Arquitectura
El proyecto se adhiere a estándares estrictos de ingeniería de software:
- Clean Architecture: Separación estricta de responsabilidades (Core, Engine, Cli).
- Zero Warnings: El código compila sin advertencias ni errores (tratados como errores).
- 100% Test Pass Rate: Todos los componentes críticos están cubiertos por pruebas unitarias y de integración.
- Static Analysis: Uso intensivo de Roslyn Analyzers y StyleCop para garantizar consistencia.
Casos de Uso:
- Context Engineering para IA: Genera un contexto rico y estructurado para tareas complejas como refactorización estratégica, análisis de seguridad preliminar o generación de documentación.
- Onboarding Acelerado: Facilita a los nuevos miembros del equipo la comprensión rápida de un codebase complejo.
- Revisiones de Código y Arquitectura: Proporciona una visión macro del proyecto para revisiones más informadas y basadas en datos.
- Transferencia de Conocimiento: Crea artefactos permanentes del estado de un proyecto en un punto específico en el tiempo.
Instalación y Uso:
ContextWeaver se distribuye como una .NET Global Tool a través de NuGet.
# Instalación desde NuGet (próximamente)
dotnet tool install --global ContextWeaver
Desarrollo Local
Si deseas probar la herramienta sin instalarla globalmente o contribuir al desarrollo:
- Clonar el repositorio:
git clone https://github.com/jmanuelsoberano/ContextWeaver.git cd ContextWeaver - Compilar y Ejecutar:
# Ejecutar directamente desde el código fuente dotnet run --project src/ContextWeaver.Cli/ContextWeaver.Cli.csproj -- --help # O para analizar el propio proyecto dotnet run --project src/ContextWeaver.Cli/ContextWeaver.Cli.csproj -- -d . -o reporte.md
Uso del Wizard Interactivo (Recomendado)
Al ejecutar contextweaver sin argumentos (o dotnet run --project ... -- wizard), se iniciará el asistente interactivo:
Selección de Archivos:
- Modo: Elegir al inicio entre "Añadir todos recursivamente" o "Selección manual vacía".
- Navegación: Use árbol de directorios interactivo.
- Teclas:
<Espacio>para selec/deselec,<i>para invertir selección en carpeta actual.
Selección de Secciones:
- Modo Inicial: "Usar Default/Guardada", "Seleccionar TODAS", o "Seleccionar NINGUNA".
- Granularidad: Ahora puede elegir independientemente entre grafos Mermaid o PlantUML.
- Persistencia: El wizard recordará su última selección de secciones para futuras ejecuciones.
Confirmación:
- Resumen claro de archivos y secciones antes de proceder.
Uso Avanzado (CLI Non-Interactive)
Para integración en scripts (CI/CD), use los flags para saltar el wizard:
# Generar reporte completo (todas las secciones) automáticamente
contextweaver --all -d . -o full_report.md
# Generar reporte seleccionando secciones específicas
# (Mermaid sí, PlantUML no)
contextweaver --sections "Header, Mermaid" -d . -o graph_report.md
# Excluir secciones específicas
contextweaver --exclude-sections "PlantUML, Hotspot" --all
Flags Disponibles:
--all: Selecciona todas las secciones y todos los archivos (salta el wizard).--sections <lista>: Lista separada por comas de secciones a incluir (búsqueda flexible, e.g., "mermaid" coincide con "Mermaid Dependency Graph").--exclude-sections <lista>: Lista de secciones a excluir.--output <archivo>: Nombre del archivo de salida.--format <fmt>:markdown(actualmente el único formato soportado completamente).
Configuración por Proyecto (Opcional)
Para anular la configuración global, crea un archivo .contextweaver.json en la raíz del proyecto que deseas analizar.
Ejemplo de .contextweaver.json:
{
"AnalysisSettings": {
"IncludedExtensions": [
".cs",
".csproj",
".yml"
],
"ExcludePatterns": [
"bin",
"obj",
"node_modules",
"docs"
]
}
}
Arquitectura
El proyecto sigue Ports & Adapters con Dependency Rule unidireccional:
ContextWeaver.Cli → ContextWeaver.Engine → ContextWeaver.Core
| Proyecto | Responsabilidad |
|---|---|
| ContextWeaver.Core | Modelos + Abstracciones (cero dependencias externas). |
| ContextWeaver.Engine | Lógica de negocio puro: Analyzers, Reporters, Services, Utilities. |
| ContextWeaver.Cli | Punto de entrada, configuración de DI y parseo de argumentos. |
🤝 Contribuir
¡Las contribuciones son bienvenidas! Por favor lee las siguientes guías antes de empezar:
- Guía de Contribución: Cómo configurar el entorno y enviar PRs.
- Código de Conducta: Nuestras normas de comunidad.
- Política de Seguridad: Cómo reportar vulnerabilidades.
📜 Historial de Cambios
Consulta el CHANGELOG para ver la historia de cambios notable.
📄 Licencia
Este proyecto está bajo la Licencia MIT.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.13 | 107 | 4/8/2026 |
| 1.0.12 | 110 | 2/26/2026 |
| 1.0.11 | 107 | 2/26/2026 |
| 1.0.10 | 111 | 2/26/2026 |
| 1.0.9 | 103 | 2/25/2026 |
| 1.0.8 | 102 | 2/25/2026 |
| 1.0.7 | 113 | 2/17/2026 |
| 1.0.6 | 208 | 9/23/2025 |
| 1.0.5 | 200 | 9/23/2025 |
| 1.0.4 | 233 | 9/23/2025 |
| 1.0.3 | 201 | 9/23/2025 |
| 1.0.2 | 201 | 9/22/2025 |
| 1.0.1 | 224 | 9/21/2025 |
| 1.0.0 | 240 | 9/19/2025 |