You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/EXECPLAN_hamilton_llm_dataflow_example.md
+44-14Lines changed: 44 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,21 +12,32 @@ Queremos que cualquier integrante del proyecto pueda ejecutar un ejemplo mínimo
12
12
-[x] (2025-11-19 10:25Z) Pruebas unitarias que describen el dataflow Hamilton deseado creadas en scripts/coding/tests/ai/examples/test_hamilton_llm_example.py.
13
13
-[x] (2025-11-19 11:05Z) Implementación del ejemplo Hamilton (driver, dataflow y cliente LLM) con pruebas pasando.
14
14
-[x] (2025-11-19 11:20Z) Documentación actualizada (guía Hamilton e índice general) y validaciones ejecutadas.
15
+
-[x] (2025-11-13 11:05Z) Refactor del driver para exponer Builder/Driver/DictResult estilo apache/hamilton y ampliación de pruebas.
16
+
-[x] (2025-11-19 11:40Z) Reubicación del paquete Hamilton a `infrastructure/workspace/hamilton_llm` y actualización de referencias documentales.
15
17
16
18
## Surprises & Discoveries
17
19
18
20
- Observación: Para aislar el error de falta de pricing fue necesario provisionar dependencias intermedias en la prueba negativa; Hamilton evalúa nodos siguiendo el orden de las firmas.
19
21
Evidence: `test_driver_reports_missing_inputs` ahora injecta idea, domain_data y edge_cases antes de omitir `pricing_policy`.
22
+
- Observación: El shimming del Builder requiere exponer adaptadores encadenables; reutilizamos un DictResult idéntico al de apache/hamilton para mantener compatibilidad conceptual.
23
+
Evidence: `test_custom_adapter_transforms_execution_result` valida la transformación de resultados.
20
24
21
25
## Decision Log
22
26
23
27
- Decision: Escalar el estimador de tokens al 75 % del prompt más un amortiguador fijo para edge cases, garantizando un costo determinista alineado a la guía.
24
28
Rationale: El largo del prompt supera los 150 tokens; sin escalar no se alcanzaba el valor esperado de 120 tokens.
25
29
Date/Author: 2025-11-19 / coding-agent
30
+
- Decision: Mantener un shim local (Builder/Driver/DictResult) compatible con la API oficial para no depender de instalaciones externas en CI.
31
+
Rationale: El entorno del repositorio no permite `pip install`; replicar la interfaz pública permite migrar a la librería real sin reescribir pruebas.
32
+
Date/Author: 2025-11-13 / coding-agent
33
+
- Decision: Trasladar el ejemplo Hamilton al árbol `infrastructure/workspace` para alinearlo con la organización de entornos ejecutables y facilitar su descubrimiento desde infraestructura.
34
+
Rationale: El ejemplo sirve como workspace autocontenible; ubicarlo junto al resto de utilidades de infraestructura responde a la retroalimentación del stakeholder y mantiene la separación documentación/código.
35
+
Date/Author: 2025-11-19 / coding-agent
26
36
27
37
## Outcomes & Retrospective
28
38
29
39
El ejemplo Hamilton quedó implementado con cobertura de pruebas dedicada y documentación cruzada.
40
+
La refactorización reciente alinea la API con `github.com/apache/hamilton`, facilitando reemplazar el shim por la dependencia real.
30
41
Las pruebas de documentación existentes siguen fallando por deuda histórica; se documentó la nueva ruta en `docs/index.md` y en la guía de gobierno para facilitar futuras remediaciones.
31
42
32
43
## Context and Orientation
@@ -41,26 +52,28 @@ El ejemplo debe incluir:
41
52
42
53
## Plan of Work
43
54
44
-
1. Crear paquete `scripts/coding/ai/examples/hamilton_llm/` con archivos `__init__.py`, `dataflow.py` y `llm_client.py`. `dataflow.py` contendrá funciones declarativas (topic, prompt_template, prompt, llm_response, business_value, cost_estimate). `llm_client.py` expondrá una clase `MockLLMClient` parametrizable. Documentar en docstrings las diferencias de ritmo de desarrollo.
45
-
2. Implementar micro driver en `scripts/coding/ai/examples/hamilton_llm/driver.py` que resuelva dependencias mediante inspección de firmas, con API `execute(targets: list[str], inputs: dict[str, Any]) -> dict[str, Any]`. Esto permitirá ejecutar el pipeline sin dependencia externa.
55
+
1. Crear paquete `infrastructure/workspace/hamilton_llm/` con archivos `__init__.py`, `dataflow.py` y `llm_client.py`. `dataflow.py` contendrá funciones declarativas (topic, prompt_template, prompt, llm_response, business_value, cost_estimate). `llm_client.py` expondrá una clase `MockLLMClient` parametrizable. Documentar en docstrings las diferencias de ritmo de desarrollo.
56
+
2. Implementar micro driver en `infrastructure/workspace/hamilton_llm/driver.py` que resuelva dependencias mediante inspección de firmas, exponiendo además un `Builder` y adaptadores `DictResult` compatibles con la API oficial. La ejecución debe aceptar configuración base (`with_config`) y adaptadores encadenables.
46
57
3. Escribir pruebas TDD en `scripts/coding/tests/ai/examples/test_hamilton_llm_example.py` que:
- Verifiquen que `llm_response` y `business_value` devuelvan valores esperados.
50
61
- Aseguren que el grafo solo ejecuta nodos necesarios y que la metadata sobre ritmo de desarrollo está presente.
51
62
4. Ejecutar pytest y observar fallo (Red).
52
-
5. Implementar código real en los módulos descritos, asegurando cobertura >80 % mediante pruebas que ejerciten rutas principales y errores controlados (por ejemplo, dependencia faltante).
63
+
5. Implementar código real en los módulos descritos, asegurando cobertura >80 % mediante pruebas que ejerciten rutas principales, errores controlados (por ejemplo, dependencia faltante) y adaptadores personalizados.
53
64
6. Re-ejecutar pytest (Green) y refactorizar si procede.
54
65
7. Actualizar `docs/gobernanza/ai/HAMILTON_FRAMEWORK_INTEGRACION_SDLC.md` en la sección de próximos pasos para referenciar el nuevo ejemplo y añadir entrada en `docs/index.md` si corresponde.
55
66
8. Documentar en el ExecPlan las decisiones, sorpresas y resultados. Incluir instrucciones de validación (`python3 -m pytest scripts/coding/tests/ai/examples/test_hamilton_llm_example.py`).
67
+
9. Mantener el shim alineado con apache/hamilton agregando pruebas de Builder y adaptadores para evitar regresiones.
56
68
57
69
## Concrete Steps
58
70
59
71
1. Añadir pruebas fallidas: crear archivo de test y ejecutar `python3 -m pytest scripts/coding/tests/ai/examples/test_hamilton_llm_example.py` desde la raíz del repo.
60
72
2. Implementar paquetes y funciones según el plan, escribir docstrings que recojan la narrativa de ritmo de desarrollo y habilidades SWE.
61
-
3. Ejecutar pytest nuevamente hasta que pase y revisar cobertura si se añade reporte.
62
-
4. Actualizar documentación cruzada e índice.
63
-
5. Registrar decisiones y sorpresas en el ExecPlan conforme aparezcan.
73
+
3. Añadir pruebas de Builder/adaptadores (`test_custom_adapter_transforms_execution_result`, `test_builder_requires_modules_before_building`) antes de implementar el shim.
74
+
4. Ejecutar pytest nuevamente hasta que pase y revisar cobertura si se añade reporte.
75
+
5. Actualizar documentación cruzada e índice.
76
+
6. Registrar decisiones y sorpresas en el ExecPlan conforme aparezcan.
64
77
65
78
## Validation and Acceptance
66
79
@@ -74,18 +87,35 @@ El driver declarativo resolverá dependencias determinísticamente, por lo que e
74
87
75
88
## Artifacts and Notes
76
89
77
-
Se espera capturar en este plan ejemplos de salida de pytest una vez los tests pasen, para documentarlos en la sección `Artifacts`. Se actualizará tras la ejecución real.
Copy file name to clipboardExpand all lines: docs/gobernanza/ai/HAMILTON_FRAMEWORK_INTEGRACION_SDLC.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -132,7 +132,7 @@ Cada subsección resume objetivos, acciones Hamilton y validaciones alineadas co
132
132
133
133
## 6. Próximos pasos
134
134
135
-
1. Ejemplo base publicado en `scripts/coding/ai/examples/hamilton_llm/`: driver declarativo + pruebas `scripts/coding/tests/ai/examples/test_hamilton_llm_example.py`. A partir de este flujo se pueden derivar variantes (e.g. adaptadores FastAPI) conservando el enfoque TDD.
135
+
1. Ejemplo base publicado en `infrastructure/workspace/hamilton_llm/`: driver declarativo + pruebas `scripts/coding/tests/ai/examples/test_hamilton_llm_example.py`. A partir de este flujo se pueden derivar variantes (e.g. adaptadores FastAPI) conservando el enfoque TDD.
136
136
2. Evaluar integración con `TASK-024-ai-telemetry-system.md` para recolectar métricas de ejecución.
137
137
3. Registrar aprendizajes en `docs/qa/registros/` una vez ejecutados pilotos.
-**Gestión de contexto multi-LLM**: [`ai_capabilities/orchestration/CONTEXT_MANAGEMENT_PLAYBOOK.md`](ai_capabilities/orchestration/CONTEXT_MANAGEMENT_PLAYBOOK.md) y módulo reutilizable [`scripts/coding/ai/shared/context_sessions.py`](../scripts/coding/ai/shared/context_sessions.py).
90
-
-**Hamilton Data→Prompt→LLM ejemplo**: [`scripts/coding/ai/examples/hamilton_llm/`](../scripts/coding/ai/examples/hamilton_llm/) con pruebas [`scripts/coding/tests/ai/examples/test_hamilton_llm_example.py`](../scripts/coding/tests/ai/examples/test_hamilton_llm_example.py).
90
+
-**Hamilton Data→Prompt→LLM ejemplo**: [`infrastructure/workspace/hamilton_llm/`](../infrastructure/workspace/hamilton_llm/) con pruebas [`scripts/coding/tests/ai/examples/test_hamilton_llm_example.py`](../scripts/coding/tests/ai/examples/test_hamilton_llm_example.py).
Copy file name to clipboardExpand all lines: docs/infraestructura/README.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,3 +23,4 @@ Cada carpeta ofrece un README inicial listo para documentar los artefactos corre
23
23
## Recursos destacados recientes
24
24
-**CPython precompilado**: consulta el [pipeline y guía de DevContainer](cpython_precompilado/pipeline_devcontainer.md) para entender cómo se construye, publica y consume el intérprete optimizado.【F:docs/infrastructure/cpython_precompilado/pipeline_devcontainer.md†L1-L99】
25
25
-**Scripts oficiales**: `build_cpython.sh`, `validate_build.sh` e `install_prebuilt_cpython.sh` viven en `infrastructure/cpython/scripts/` y cuentan con pruebas en `infrastructure/cpython/tests/`.
26
+
-**Workspace Hamilton LLM**: la carpeta [`workspace`](workspace/README.md) concentra el ejemplo `Data → Prompt → LLM → $` situado en `infrastructure/workspace/hamilton_llm/`, con pruebas asociadas en `scripts/coding/tests/ai/examples/test_hamilton_llm_example.py`.
0 commit comments