Documentación técnica — architect CLI

Índice de la documentación interna del proyecto. Orientada a desarrolladores e IAs que necesitan entender, modificar o extender el sistema.


Archivos

ArchivoContenido
usage.mdFormas de uso: flags, logging, configs, CI/CD, scripts, agentes custom, multi-proyecto
architecture.mdVisión general, diagrama de componentes y flujo completo de ejecución
core-loop.mdEl loop while True, safety nets, StopReason, graceful close, hooks post-edit, human logging, ContextManager, parallel tools, SelfEvaluator
data-models.mdTodos los modelos de datos: Pydantic, dataclasses, jerarquía de errores
tools-and-execution.mdSistema de tools: filesystem, edición, búsqueda, MCP, ExecutionEngine
agents-and-modes.mdAgentes por defecto, registry, prompts del sistema
config-reference.mdSchema completo de configuración, precedencia, variables de entorno
logging.mdSistema de logging: 3 pipelines, nivel HUMAN, iconos, HumanFormatter, structlog
ai-guide.mdGuía para IA: invariantes críticos, patrones, dónde añadir cosas, trampas
testing.mdMapa de tests: ~597 tests en 25 archivos, cobertura por módulo
security.mdModelo de seguridad: capas defensivas, modelo de amenazas, superficie de ataque, hardening
mcp-server.mdCrear un MCP Server: guía para exponer architect como herramienta remota via JSON-RPC 2.0
containers.mdContenedores: ejecución en Docker, Kubernetes y Red Hat OpenShift
good-practices.mdBuenas prácticas: prompts efectivos, optimización de costes, hooks, errores comunes
fast-usage.mdGuía rápida: instalación, configuración mínima y comandos esenciales

Resumen rápido

architect es una CLI headless que conecta un LLM a herramientas de sistema de archivos (y opcionalmente a servidores MCP remotos). El usuario describe una tarea en lenguaje natural; el sistema itera: llama al LLM → el LLM decide qué herramientas usar → las herramientas se ejecutan → los resultados vuelven al LLM → siguiente iteración.

architect run "refactoriza main.py" -a build --mode yolo

         ├─ load_config()         YAML + env + CLI flags
         ├─ configure_logging()   3 pipelines: HUMAN + técnico + JSON file
         ├─ ToolRegistry          local tools + MCP remotas
         ├─ RepoIndexer           árbol del workspace → system prompt
         ├─ LLMAdapter            LiteLLM + retries selectivos + prompt caching + local cache
         ├─ ContextManager        pruning de contexto (3 niveles)
         ├─ CostTracker           seguimiento de costes + budget enforcement

         ├─ AgentLoop (build por defecto)        while True + safety nets
         │       │
         │       ├─ [check safety nets]   max_steps / budget / timeout / context_full → StopReason
         │       ├─ [check shutdown]      SIGINT/SIGTERM → graceful close
         │       ├─ [StepTimeout]         SIGALRM por step
         │       ├─ llm.completion()      → streaming chunks a stderr
         │       ├─ cost_tracker.record() → coste del step; BudgetExceededError si excede
         │       ├─ engine.execute()      → paralelo si posible → validar → confirmar
         │       ├─ PostEditHooks         → auto-lint/test tras edit_file/write_file/apply_patch
         │       ├─ HumanLog              → eventos HUMAN (25) a stderr (pipeline separado)
         │       ├─ ctx.append_results()  → siguiente iteración
         │       ├─ context_mgr.prune()   → truncar/resumir/ventana
         │       └─ _graceful_close()     → ultima llamada al LLM sin tools (resumen)

         └─ SelfEvaluator (opcional, --self-eval)
                 └─ evaluate_basic() / evaluate_full()

Stack: Python 3.12+, Click, Pydantic v2, LiteLLM, httpx, structlog, tenacity.

Versión actual: 0.15.3


Novedades recientes (v0.9–v0.15)

VersiónFuncionalidad
v0.9.0edit_file (str-replace incremental) + apply_patch (unified diff)
v0.10.0RepoIndexer (árbol del proyecto en system prompt) + search_code, grep, find_files
v0.11.0ContextManager (pruning 3 niveles) + parallel tool calls (ThreadPoolExecutor)
v0.12.0SelfEvaluator (auto-evaluación) + --self-eval basic/full
v0.13.0RunCommandTool (ejecución de código) + 4 capas de seguridad + --allow-commands/--no-commands
v0.14.0CostTracker + PriceLoader + LocalLLMCache + prompt caching + --budget/--show-costs/--cache
v0.15.0while True loop (v3) + StopReason enum + PostEditHooks + HUMAN log level + HumanLog + graceful close + build como agente default
v0.15.2HumanFormatter con iconos (🔄🔧🌐✅⚡❌📦🔍) + distinción MCP + evento llm_response + coste en completado
v0.15.3Fix pipeline structlog: wrap_for_formatter siempre activo, human logging funciona sin --log-file