Prompt de Implementación: Generador de Artefactos HTML Autocontenidos
INSTRUCCIÓN PRINCIPAL
Prompt de Implementación: Generador de Artefactos HTML Autocontenidos
Para usar en: Nueva instancia de Claude Code con contexto fresco
Modo de trabajo: Director de proyecto + equipo de agentes
Fecha de creación: 29/03/2026
INSTRUCCIÓN PRINCIPAL
Necesito implementar una nueva capacidad para AmCham Spain OS: generación de artefactos HTML autocontenidos — archivos .html únicos que se abren en cualquier navegador sin servidor, con gráficos interactivos, branding corporativo y datos embebidos.
Trabaja como Director de Proyecto. En cada fase:
Delega la implementación a agentes especializados (en paralelo cuando sea posible)
Audita el resultado de cada agente antes de pasar a la siguiente fase
Verifica que el código cumple los estándares del repositorio
No avances a la fase siguiente hasta que la actual esté validada
CONTEXTO DEL REPOSITORIO
Qué es AmCham Spain OS
Sistema operativo digital de la Cámara de Comercio de EE.UU. en España. Genera documentos ejecutivos, investigaciones, briefings y visualizaciones de datos para 5 comités temáticos.
Colores:
Azul Marino: #00247D (Pantone 280) — títulos, headers, fondos principales
Rojo Corporativo: #D1232A (Pantone 186) — acentos, CTAs, alertas
Azul Claro: #8FACD0 (Pantone 2717) — elementos decorativos
Negro: #000000 — cuerpo de texto
Gris Claro: #D3D3D3 — fondos secundarios
Blanco: #FFFFFF — fondos principales
Semánticos (gráficos):
Positivo: #27ae60 Negativo: #e74c3c Alerta: #f39c12
Tipografías:
Títulos: Playfair Display (serif) — Google Fonts
Cuerpo: DM Sans (sans-serif) — Google Fonts
Formato numérico: español (1.234,56 — punto miles, coma decimal)
Estructura de directorios relevante
amchamspain-os-main/
├── lib/ # Bibliotecas Python
│ ├── pdf_generator.py # CORPORATE_CSS aquí
│ ├── template_engine.py # Motor
│ ├── datawrapper_client.py # Referencia de cómo se generan gráficos
│ └── html_artifact.py # ← CREAR AQUÍ
├── templates/
│ ├── html-artifact/ # ← CREAR AQUÍ (plantillas)
│ └── briefing-ejecutivo/ # Referencia de estructura template
├── .claude/
│ ├── skills/ # Skills conversacionales
│ ├── commands/ # Comandos /slash
│ └── rules/ # Reglas del sistema
├── outputs/
│ └── html/ # ← CREAR AQUÍ (directorio de salida)
├── config/
│ └── GUIA_ESTILO_VISUAL.md # Biblia visual
└── CLAUDE.md # Hub de navegación del sistema
ESPECIFICACIÓN TÉCNICA
Archivo principal: lib/html_artifact.py
Clase HtmlArtifact con estos métodos públicos:
classHtmlArtifact:"""Genera archivos HTML autocontenidos con branding AmCham Spain."""ARTIFACT_TYPES=["dashboard","report","infographic","chart","brief"]defgenerate(self,content:str,# Markdown o HTML del cuerpoartifact_type:str,# Uno de ARTIFACT_TYPEStitle:str,# Título del documentosubtitle:str="",# Subtítulo opcionaldata:dict|None=None,# Datos para Chart.js {charts: [...]}sources:list[str]=[],# Fuentes citadasclassification:str="Uso Interno",auto_open:bool=True,# Abrir en navegadoroutput_dir:str="outputs/html",)->Path:"""Genera .html y retorna la ruta del archivo creado."""defgenerate_from_markdown(self,md_path:str,# Ruta a archivo .md existenteartifact_type:str="report",data:dict|None=None,auto_open:bool=True,)->Path:"""Convierte un .md existente del repo en HTML interactivo."""
Estructura del dict data para gráficos:
data={"kpis":[{"label":"Exportaciones","value":"16.800M EUR","change":"+5,2%","trend":"up"},{"label":"Importaciones","value":"12.340M EUR","change":"+3,1%","trend":"up"},],"charts":[{"id":"chart-1","type":"bar",# bar | line | doughnut | radar | polarArea"title":"Top 10 Productos","labels":["Automóviles","Maquinaria",...],"datasets":[{"label":"2024","data":[3200,2800,...],"color":"#00247D"},{"label":"2023","data":[2900,2600,...],"color":"#8FACD0"},]},{"id":"chart-2","type":"line","title":"Evolución 2020-2024","labels":["2020","2021","2022","2023","2024"],"datasets":[{"label":"Exportaciones","data":[14200,14800,15300,16000,16800],"color":"#00247D"},{"label":"Importaciones","data":[10500,11200,11800,12000,12340],"color":"#D1232A"},]}],"tables":[{"id":"table-1","title":"Detalle por Sector","headers":["Sector","Exportaciones","Importaciones","Balanza"],"rows":[["Automóvil","3.200M","1.800M","+1.400M"],["Maquinaria","2.800M","2.100M","+700M"],]}]}
CDNs (sin dependencias locales)
<!-- Tailwind CSS Play CDN — layout y utilidades --><scriptsrc="https://cdn.tailwindcss.com"></script><!-- Chart.js 4 — gráficos interactivos (SOLO si data.charts existe) --><scriptsrc="https://cdn.jsdelivr.net/npm/chart.js@4"></script><!-- Google Fonts — tipografías corporativas --><linkhref="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;700&family=DM+Sans:wght@400;500;700&display=swap"rel="stylesheet">
Plantillas HTML: templates/html-artifact/
6 archivos con marcadores que el generador sustituye:
Archivo
Variables clave
Componentes visuales
base.html
, , , , , 29/03/2026, Uso Interno
Header, footer, estructura base
dashboard.html
Hereda base + , ,
Grid de KPIs, gráficos Chart.js, tablas con hover
report.html
Hereda base + ,
Prompt de Implementación: Generador de Artefactos HTML Autocontenidos
Para usar en: Nueva instancia de Claude Code con contexto fresco
Modo de trabajo: Director de proyecto + equipo de agentes
Fecha de creación: 29/03/2026
INSTRUCCIÓN PRINCIPAL
Necesito implementar una nueva capacidad para AmCham Spain OS: generación de artefactos HTML autocontenidos — archivos .html únicos que se abren en cualquier navegador sin servidor, con gráficos interactivos, branding corporativo y datos embebidos.
Trabaja como Director de Proyecto. En cada fase:
Delega la implementación a agentes especializados (en paralelo cuando sea posible)
Audita el resultado de cada agente antes de pasar a la siguiente fase
Verifica que el código cumple los estándares del repositorio
No avances a la fase siguiente hasta que la actual esté validada
CONTEXTO DEL REPOSITORIO
Qué es AmCham Spain OS
Sistema operativo digital de la Cámara de Comercio de EE.UU. en España. Genera documentos ejecutivos, investigaciones, briefings y visualizaciones de datos para 5 comités temáticos.
Colores:
Azul Marino: #00247D (Pantone 280) — títulos, headers, fondos principales
Rojo Corporativo: #D1232A (Pantone 186) — acentos, CTAs, alertas
Azul Claro: #8FACD0 (Pantone 2717) — elementos decorativos
Negro: #000000 — cuerpo de texto
Gris Claro: #D3D3D3 — fondos secundarios
Blanco: #FFFFFF — fondos principales
Semánticos (gráficos):
Positivo: #27ae60 Negativo: #e74c3c Alerta: #f39c12
Tipografías:
Títulos: Playfair Display (serif) — Google Fonts
Cuerpo: DM Sans (sans-serif) — Google Fonts
Formato numérico: español (1.234,56 — punto miles, coma decimal)
Estructura de directorios relevante
amchamspain-os-main/
├── lib/ # Bibliotecas Python
│ ├── pdf_generator.py # CORPORATE_CSS aquí
│ ├── template_engine.py # Motor
│ ├── datawrapper_client.py # Referencia de cómo se generan gráficos
│ └── html_artifact.py # ← CREAR AQUÍ
├── templates/
│ ├── html-artifact/ # ← CREAR AQUÍ (plantillas)
│ └── briefing-ejecutivo/ # Referencia de estructura template
├── .claude/
│ ├── skills/ # Skills conversacionales
│ ├── commands/ # Comandos /slash
│ └── rules/ # Reglas del sistema
├── outputs/
│ └── html/ # ← CREAR AQUÍ (directorio de salida)
├── config/
│ └── GUIA_ESTILO_VISUAL.md # Biblia visual
└── CLAUDE.md # Hub de navegación del sistema
ESPECIFICACIÓN TÉCNICA
Archivo principal: lib/html_artifact.py
Clase HtmlArtifact con estos métodos públicos:
classHtmlArtifact:"""Genera archivos HTML autocontenidos con branding AmCham Spain."""ARTIFACT_TYPES=["dashboard","report","infographic","chart","brief"]defgenerate(self,content:str,# Markdown o HTML del cuerpoartifact_type:str,# Uno de ARTIFACT_TYPEStitle:str,# Título del documentosubtitle:str="",# Subtítulo opcionaldata:dict|None=None,# Datos para Chart.js {charts: [...]}sources:list[str]=[],# Fuentes citadasclassification:str="Uso Interno",auto_open:bool=True,# Abrir en navegadoroutput_dir:str="outputs/html",)->Path:"""Genera .html y retorna la ruta del archivo creado."""defgenerate_from_markdown(self,md_path:str,# Ruta a archivo .md existenteartifact_type:str="report",data:dict|None=None,auto_open:bool=True,)->Path:"""Convierte un .md existente del repo en HTML interactivo."""
Estructura del dict data para gráficos:
data={"kpis":[{"label":"Exportaciones","value":"16.800M EUR","change":"+5,2%","trend":"up"},{"label":"Importaciones","value":"12.340M EUR","change":"+3,1%","trend":"up"},],"charts":[{"id":"chart-1","type":"bar",# bar | line | doughnut | radar | polarArea"title":"Top 10 Productos","labels":["Automóviles","Maquinaria",...],"datasets":[{"label":"2024","data":[3200,2800,...],"color":"#00247D"},{"label":"2023","data":[2900,2600,...],"color":"#8FACD0"},]},{"id":"chart-2","type":"line","title":"Evolución 2020-2024","labels":["2020","2021","2022","2023","2024"],"datasets":[{"label":"Exportaciones","data":[14200,14800,15300,16000,16800],"color":"#00247D"},{"label":"Importaciones","data":[10500,11200,11800,12000,12340],"color":"#D1232A"},]}],"tables":[{"id":"table-1","title":"Detalle por Sector","headers":["Sector","Exportaciones","Importaciones","Balanza"],"rows":[["Automóvil","3.200M","1.800M","+1.400M"],["Maquinaria","2.800M","2.100M","+700M"],]}]}
CDNs (sin dependencias locales)
<!-- Tailwind CSS Play CDN — layout y utilidades --><scriptsrc="https://cdn.tailwindcss.com"></script><!-- Chart.js 4 — gráficos interactivos (SOLO si data.charts existe) --><scriptsrc="https://cdn.jsdelivr.net/npm/chart.js@4"></script><!-- Google Fonts — tipografías corporativas --><linkhref="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;700&family=DM+Sans:wght@400;500;700&display=swap"rel="stylesheet">
Plantillas HTML: templates/html-artifact/
6 archivos con marcadores que el generador sustituye:
Archivo
Variables clave
Componentes visuales
base.html
, , , , , ,
Header, footer, estructura base
dashboard.html
Hereda base + , ,
Grid de KPIs, gráficos Chart.js, tablas con hover
report.html
Hereda base + ,
TOC clickable, secciones colapsables con toggle
chart.html
Hereda base +
Layout de gráficos 1-col o 2-col responsive
brief.html
Hereda base +
Prompt de Implementación: Generador de Artefactos HTML Autocontenidos
Para usar en: Nueva instancia de Claude Code con contexto fresco
Modo de trabajo: Director de proyecto + equipo de agentes
Fecha de creación: 29/03/2026
INSTRUCCIÓN PRINCIPAL
Necesito implementar una nueva capacidad para AmCham Spain OS: generación de artefactos HTML autocontenidos — archivos .html únicos que se abren en cualquier navegador sin servidor, con gráficos interactivos, branding corporativo y datos embebidos.
Trabaja como Director de Proyecto. En cada fase:
Delega la implementación a agentes especializados (en paralelo cuando sea posible)
Audita el resultado de cada agente antes de pasar a la siguiente fase
Verifica que el código cumple los estándares del repositorio
No avances a la fase siguiente hasta que la actual esté validada
CONTEXTO DEL REPOSITORIO
Qué es AmCham Spain OS
Sistema operativo digital de la Cámara de Comercio de EE.UU. en España. Genera documentos ejecutivos, investigaciones, briefings y visualizaciones de datos para 5 comités temáticos.
Colores:
Azul Marino: #00247D (Pantone 280) — títulos, headers, fondos principales
Rojo Corporativo: #D1232A (Pantone 186) — acentos, CTAs, alertas
Azul Claro: #8FACD0 (Pantone 2717) — elementos decorativos
Negro: #000000 — cuerpo de texto
Gris Claro: #D3D3D3 — fondos secundarios
Blanco: #FFFFFF — fondos principales
Semánticos (gráficos):
Positivo: #27ae60 Negativo: #e74c3c Alerta: #f39c12
Tipografías:
Títulos: Playfair Display (serif) — Google Fonts
Cuerpo: DM Sans (sans-serif) — Google Fonts
Formato numérico: español (1.234,56 — punto miles, coma decimal)
Estructura de directorios relevante
amchamspain-os-main/
├── lib/ # Bibliotecas Python
│ ├── pdf_generator.py # CORPORATE_CSS aquí
│ ├── template_engine.py # Motor
│ ├── datawrapper_client.py # Referencia de cómo se generan gráficos
│ └── html_artifact.py # ← CREAR AQUÍ
├── templates/
│ ├── html-artifact/ # ← CREAR AQUÍ (plantillas)
│ └── briefing-ejecutivo/ # Referencia de estructura template
├── .claude/
│ ├── skills/ # Skills conversacionales
│ ├── commands/ # Comandos /slash
│ └── rules/ # Reglas del sistema
├── outputs/
│ └── html/ # ← CREAR AQUÍ (directorio de salida)
├── config/
│ └── GUIA_ESTILO_VISUAL.md # Biblia visual
└── CLAUDE.md # Hub de navegación del sistema
ESPECIFICACIÓN TÉCNICA
Archivo principal: lib/html_artifact.py
Clase HtmlArtifact con estos métodos públicos:
classHtmlArtifact:"""Genera archivos HTML autocontenidos con branding AmCham Spain."""ARTIFACT_TYPES=["dashboard","report","infographic","chart","brief"]defgenerate(self,content:str,# Markdown o HTML del cuerpoartifact_type:str,# Uno de ARTIFACT_TYPEStitle:str,# Título del documentosubtitle:str="",# Subtítulo opcionaldata:dict|None=None,# Datos para Chart.js {charts: [...]}sources:list[str]=[],# Fuentes citadasclassification:str="Uso Interno",auto_open:bool=True,# Abrir en navegadoroutput_dir:str="outputs/html",)->Path:"""Genera .html y retorna la ruta del archivo creado."""defgenerate_from_markdown(self,md_path:str,# Ruta a archivo .md existenteartifact_type:str="report",data:dict|None=None,auto_open:bool=True,)->Path:"""Convierte un .md existente del repo en HTML interactivo."""
Estructura del dict data para gráficos:
data={"kpis":[{"label":"Exportaciones","value":"16.800M EUR","change":"+5,2%","trend":"up"},{"label":"Importaciones","value":"12.340M EUR","change":"+3,1%","trend":"up"},],"charts":[{"id":"chart-1","type":"bar",# bar | line | doughnut | radar | polarArea"title":"Top 10 Productos","labels":["Automóviles","Maquinaria",...],"datasets":[{"label":"2024","data":[3200,2800,...],"color":"#00247D"},{"label":"2023","data":[2900,2600,...],"color":"#8FACD0"},]},{"id":"chart-2","type":"line","title":"Evolución 2020-2024","labels":["2020","2021","2022","2023","2024"],"datasets":[{"label":"Exportaciones","data":[14200,14800,15300,16000,16800],"color":"#00247D"},{"label":"Importaciones","data":[10500,11200,11800,12000,12340],"color":"#D1232A"},]}],"tables":[{"id":"table-1","title":"Detalle por Sector","headers":["Sector","Exportaciones","Importaciones","Balanza"],"rows":[["Automóvil","3.200M","1.800M","+1.400M"],["Maquinaria","2.800M","2.100M","+700M"],]}]}
CDNs (sin dependencias locales)
<!-- Tailwind CSS Play CDN — layout y utilidades --><scriptsrc="https://cdn.tailwindcss.com"></script><!-- Chart.js 4 — gráficos interactivos (SOLO si data.charts existe) --><scriptsrc="https://cdn.jsdelivr.net/npm/chart.js@4"></script><!-- Google Fonts — tipografías corporativas --><linkhref="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;700&family=DM+Sans:wght@400;500;700&display=swap"rel="stylesheet">
Plantillas HTML: templates/html-artifact/
6 archivos con marcadores que el generador sustituye:
Archivo
Variables clave
Componentes visuales
base.html
, , , , , ,
Header, footer, estructura base
dashboard.html
Hereda base + , ,
Grid de KPIs, gráficos Chart.js, tablas con hover
report.html
Hereda base + ,
TOC clickable, secciones colapsables con toggle
chart.html
Hereda base +
Layout de gráficos 1-col o 2-col responsive
brief.html
Hereda base + , ,
Resumen ejecutivo, findings con iconos, timeline
infographic.html
Hereda base +
Prompt de Implementación: Generador de Artefactos HTML Autocontenidos
Para usar en: Nueva instancia de Claude Code con contexto fresco
Modo de trabajo: Director de proyecto + equipo de agentes
Fecha de creación: 29/03/2026
INSTRUCCIÓN PRINCIPAL
Necesito implementar una nueva capacidad para AmCham Spain OS: generación de artefactos HTML autocontenidos — archivos .html únicos que se abren en cualquier navegador sin servidor, con gráficos interactivos, branding corporativo y datos embebidos.
Trabaja como Director de Proyecto. En cada fase:
Delega la implementación a agentes especializados (en paralelo cuando sea posible)
Audita el resultado de cada agente antes de pasar a la siguiente fase
Verifica que el código cumple los estándares del repositorio
No avances a la fase siguiente hasta que la actual esté validada
CONTEXTO DEL REPOSITORIO
Qué es AmCham Spain OS
Sistema operativo digital de la Cámara de Comercio de EE.UU. en España. Genera documentos ejecutivos, investigaciones, briefings y visualizaciones de datos para 5 comités temáticos.
Colores:
Azul Marino: #00247D (Pantone 280) — títulos, headers, fondos principales
Rojo Corporativo: #D1232A (Pantone 186) — acentos, CTAs, alertas
Azul Claro: #8FACD0 (Pantone 2717) — elementos decorativos
Negro: #000000 — cuerpo de texto
Gris Claro: #D3D3D3 — fondos secundarios
Blanco: #FFFFFF — fondos principales
Semánticos (gráficos):
Positivo: #27ae60 Negativo: #e74c3c Alerta: #f39c12
Tipografías:
Títulos: Playfair Display (serif) — Google Fonts
Cuerpo: DM Sans (sans-serif) — Google Fonts
Formato numérico: español (1.234,56 — punto miles, coma decimal)
Estructura de directorios relevante
amchamspain-os-main/
├── lib/ # Bibliotecas Python
│ ├── pdf_generator.py # CORPORATE_CSS aquí
│ ├── template_engine.py # Motor
│ ├── datawrapper_client.py # Referencia de cómo se generan gráficos
│ └── html_artifact.py # ← CREAR AQUÍ
├── templates/
│ ├── html-artifact/ # ← CREAR AQUÍ (plantillas)
│ └── briefing-ejecutivo/ # Referencia de estructura template
├── .claude/
│ ├── skills/ # Skills conversacionales
│ ├── commands/ # Comandos /slash
│ └── rules/ # Reglas del sistema
├── outputs/
│ └── html/ # ← CREAR AQUÍ (directorio de salida)
├── config/
│ └── GUIA_ESTILO_VISUAL.md # Biblia visual
└── CLAUDE.md # Hub de navegación del sistema
ESPECIFICACIÓN TÉCNICA
Archivo principal: lib/html_artifact.py
Clase HtmlArtifact con estos métodos públicos:
classHtmlArtifact:"""Genera archivos HTML autocontenidos con branding AmCham Spain."""ARTIFACT_TYPES=["dashboard","report","infographic","chart","brief"]defgenerate(self,content:str,# Markdown o HTML del cuerpoartifact_type:str,# Uno de ARTIFACT_TYPEStitle:str,# Título del documentosubtitle:str="",# Subtítulo opcionaldata:dict|None=None,# Datos para Chart.js {charts: [...]}sources:list[str]=[],# Fuentes citadasclassification:str="Uso Interno",auto_open:bool=True,# Abrir en navegadoroutput_dir:str="outputs/html",)->Path:"""Genera .html y retorna la ruta del archivo creado."""defgenerate_from_markdown(self,md_path:str,# Ruta a archivo .md existenteartifact_type:str="report",data:dict|None=None,auto_open:bool=True,)->Path:"""Convierte un .md existente del repo en HTML interactivo."""
Estructura del dict data para gráficos:
data={"kpis":[{"label":"Exportaciones","value":"16.800M EUR","change":"+5,2%","trend":"up"},{"label":"Importaciones","value":"12.340M EUR","change":"+3,1%","trend":"up"},],"charts":[{"id":"chart-1","type":"bar",# bar | line | doughnut | radar | polarArea"title":"Top 10 Productos","labels":["Automóviles","Maquinaria",...],"datasets":[{"label":"2024","data":[3200,2800,...],"color":"#00247D"},{"label":"2023","data":[2900,2600,...],"color":"#8FACD0"},]},{"id":"chart-2","type":"line","title":"Evolución 2020-2024","labels":["2020","2021","2022","2023","2024"],"datasets":[{"label":"Exportaciones","data":[14200,14800,15300,16000,16800],"color":"#00247D"},{"label":"Importaciones","data":[10500,11200,11800,12000,12340],"color":"#D1232A"},]}],"tables":[{"id":"table-1","title":"Detalle por Sector","headers":["Sector","Exportaciones","Importaciones","Balanza"],"rows":[["Automóvil","3.200M","1.800M","+1.400M"],["Maquinaria","2.800M","2.100M","+700M"],]}]}
CDNs (sin dependencias locales)
<!-- Tailwind CSS Play CDN — layout y utilidades --><scriptsrc="https://cdn.tailwindcss.com"></script><!-- Chart.js 4 — gráficos interactivos (SOLO si data.charts existe) --><scriptsrc="https://cdn.jsdelivr.net/npm/chart.js@4"></script><!-- Google Fonts — tipografías corporativas --><linkhref="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;700&family=DM+Sans:wght@400;500;700&display=swap"rel="stylesheet">
Plantillas HTML: templates/html-artifact/
6 archivos con marcadores que el generador sustituye:
Archivo
Variables clave
Componentes visuales
base.html
, , , , , ,
Header, footer, estructura base
dashboard.html
Hereda base + , ,
Grid de KPIs, gráficos Chart.js, tablas con hover
report.html
Hereda base + ,
TOC clickable, secciones colapsables con toggle
chart.html
Hereda base +
Layout de gráficos 1-col o 2-col responsive
brief.html
Hereda base + , ,
Resumen ejecutivo, findings con iconos, timeline
infographic.html
Hereda base +
Bloques visuales con iconos, números grandes, paleta semántica
Requisitos de cada plantilla:
HTML5 válido y autocontenido (un solo archivo, sin imports locales)
Responsive: funciona en desktop (1200px+), tablet (768px), y móvil (375px)
Tailwind para layout, CSS custom para branding AmCham sobre Tailwind
Logo AmCham como SVG inline en el header (no como imagen externa)
Footer con: fuentes, fecha de generación, clasificación, "AmCham Spain OS"
Idioma: todo en español con tildes y eñes correctas
Skill: .claude/skills/html-artifact.md
# Skill: Generador de Artefactos HTML## Activación-"hazme un dashboard", "genera un HTML interactivo", "quiero ver esto en el navegador"
-"artefacto HTML", "visualización interactiva", "HTML con gráficos"
-/artifact [tipo] [tema]
## Tipos disponibles-dashboard: KPIs + gráficos + tablas (para datos cuantitativos)
-report: Informe ejecutivo interactivo (para documentos largos)
-chart: Solo gráficos Chart.js (para visualización de datos pura)
-brief: Briefing 1-página (para resúmenes rápidos)
-infographic: Bloques visuales con datos (para comunicación visual)
## Flujo1. Detectar tipo de artefacto según el contexto
2. Si hay datos: estructurarlos en formato {kpis, charts, tables}
3. Si es markdown existente: usar generate_from_markdown()
4. Generar HTML con lib/html_artifact.py
5. Abrir automáticamente en navegador
6. Informar: ruta del archivo + peso + tipo generado
## Integración-Puede usarse tras /research para visualizar resultados
-Puede usarse tras /generate para versión HTML interactiva
-Los .html generados se catalogan automáticamente en Notion (rule catalog-sync)
## Módulo
lib/html_artifact.py
Comando: .claude/commands/artifact.md
Genera un artefacto HTML autocontenido e interactivo.
Uso: /artifact [tipo] [tema]
Tipos: dashboard | report | chart | brief | infographic
Ejemplos:
/artifact dashboard "Comercio bilateral España-EEUU 2024"
/artifact report → convierte el último output .md en HTML interactivo
/artifact chart "Evolución PIB España vs UE 2020-2024"
/artifact brief "Resumen AI Act para comité Economía Digital"
El archivo se genera en outputs/html/ y se abre automáticamente en el navegador.
Demo CLI
El módulo debe ser ejecutable directamente para testing:
pythonlib/html_artifact.py--demo
# Genera outputs/html/demo_dashboard.html con datos de ejemplo y lo abre en el navegador
pythonlib/html_artifact.py--demo--typereport
# Genera outputs/html/demo_report.html
pythonlib/html_artifact.py--demo--typechart
# etc.
FASES DE IMPLEMENTACIÓN
Fase 1: Módulo Core (lib/html_artifact.py)
Agente: Desarrollador backend Python
Entregable:lib/html_artifact.py funcional con clase HtmlArtifactCriterios de aceptación:
Importa y reutiliza CORPORATE_CSS de pdf_generator.py
Convierte Markdown a HTML (con markdown2 como en pdf_generator)
Genera HTML autocontenido con CDNs de Tailwind, Chart.js, Google Fonts
Soporta los 5 tipos de artefacto
Maneja data dict para KPIs, charts y tables
Genera Chart.js configs correctas embebidas en <script>
Nombre de archivo: {tipo}_{slug_titulo}_{YYYYMMDD}.html
auto_open=True abre el archivo con webbrowser.open()
Encoding UTF-8 correcto en Windows (sys.stdout.reconfigure)
Ejecutable como CLI: python lib/html_artifact.py --demo [--type TYPE]
Auditoría del Director:
Verificar que NO se reinventa CSS (debe importar de pdf_generator)
Verificar que el HTML generado es válido y autocontenido
Verificar que --demo genera y abre un HTML correcto
Fase 2: Plantillas HTML (templates/html-artifact/)
Agente: Desarrollador frontend / diseñador HTML
Entregable: 6 archivos HTML en templates/html-artifact/Criterios de aceptación:
base.html con estructura completa (head, header, body, footer)
Tailwind CSS via Play CDN para layout responsive
CSS custom sobre Tailwind para branding AmCham (colores exactos HEX)
infographic.html: bloques visuales con números grandes y colores semánticos
Todas las plantillas usan Playfair Display (títulos) + DM Sans (cuerpo)
Auditoría del Director:
Abrir cada plantilla en Chrome y verificar rendering
Verificar responsive con DevTools (375px, 768px, 1200px)
Verificar print preview (Ctrl+P)
Verificar que los colores coinciden EXACTAMENTE con la guía visual
Fase 3: Skill + Comando + Directorio
Agente: Integrador de sistema
Entregable:.claude/skills/html-artifact.md, .claude/commands/artifact.md, directorio outputs/html/Criterios de aceptación:
Skill describe activación, tipos, flujo e integración
Comando /artifact con sintaxis y ejemplos
Directorio outputs/html/ creado (con .gitkeep)
Auditoría del Director:
Verificar coherencia entre skill, comando y módulo Python
Fase 4: Documentación y registro
Agente: Documentador
Entregable: Actualizaciones a CLAUDE.md, commands-list.md, quick-references.md
Archivos a modificar:
.claude/rules/20-reference/commands-list.md → añadir /artifact en sección de comandos
.claude/rules/20-reference/quick-references.md → añadir referencia a skill y módulo
CLAUDE.md → añadir sección "Artefactos HTML" en la documentación principal
Criterios de aceptación:
/artifact aparece en commands-list con descripción y tipos
quick-references incluye skill, módulo y plantillas
CLAUDE.md documenta la capacidad con routing table actualizada
Auditoría del Director:
Verificar que la documentación es consistente entre los 3 archivos
Fase 5: Test End-to-End
Agente: QA / Tester
Entregable: Ejecución exitosa de --demo para los 5 tipos
Tests:
# Test 1: Demo dashboard (caso principal)
pythonlib/html_artifact.py--demo--typedashboard
# Test 2: Demo report
pythonlib/html_artifact.py--demo--typereport
# Test 3: Demo chart
pythonlib/html_artifact.py--demo--typechart
# Test 4: Demo brief
pythonlib/html_artifact.py--demo--typebrief
# Test 5: Demo infographic
pythonlib/html_artifact.py--demo--typeinfographic
Verificaciones por cada HTML generado:
Se abre en el navegador sin errores de consola (F12)
Los gráficos Chart.js renderizan correctamente con tooltips
Los colores coinciden con la paleta corporativa
Las tipografías cargan (Playfair Display + DM Sans)
Es responsive (redimensionar ventana)
Print preview funciona (Ctrl+P)
El archivo pesa < 500KB
Formato numérico español (1.234,56)
Fuentes citadas en el footer
Fecha en formato DD/MM/YYYY
Auditoría del Director:
Abrir cada HTML generado y verificar todos los puntos
Si hay errores, devolver a la fase correspondiente para corrección
REGLAS CRÍTICAS PARA TODOS LOS AGENTES
REUTILIZARCORPORATE_CSS de lib/pdf_generator.py — no reinventar estilos
NUNCA eliminar tildes o eñes del texto (ni siquiera "preventivamente")
SIEMPREpython -X utf8 + sys.stdout.reconfigure(encoding='utf-8') en Windows
SIEMPRE formato numérico español: 1.234,56 (punto miles, coma decimal)
SIEMPRE colores HEX exactos de la paleta (no aproximados)
NO crear dependencias locales — todo via CDN
NO crear archivos innecesarios — ceñirse al plan
NO modificar archivos existentes excepto los listados en Fase 4
Leer config/GUIA_ESTILO_VISUAL.md antes de implementar cualquier visual
Leer lib/pdf_generator.py antes de escribir CSS
RESULTADO ESPERADO
Al finalizar las 5 fases, el sistema debe poder:
Usuario: "Hazme un dashboard con datos de comercio España-EEUU"
↓
Claude: Recopila datos → genera HTML → abre en navegador
↓
Archivo: outputs/html/dashboard_comercio_espana_eeuu_20260329.html
- 150-300KB, autocontenido
- KPIs interactivos
- Gráficos Chart.js con tooltips
- Tablas con hover
- Branding AmCham perfecto
- Responsive + print-ready
Bloques visuales con iconos, números grandes, paleta semántica
Requisitos de cada plantilla:
HTML5 válido y autocontenido (un solo archivo, sin imports locales)
Responsive: funciona en desktop (1200px+), tablet (768px), y móvil (375px)
Tailwind para layout, CSS custom para branding AmCham sobre Tailwind
Logo AmCham como SVG inline en el header (no como imagen externa)
Footer con: fuentes, fecha de generación, clasificación, "AmCham Spain OS"
Idioma: todo en español con tildes y eñes correctas
Skill: .claude/skills/html-artifact.md
# Skill: Generador de Artefactos HTML## Activación-"hazme un dashboard", "genera un HTML interactivo", "quiero ver esto en el navegador"
-"artefacto HTML", "visualización interactiva", "HTML con gráficos"
-/artifact [tipo] [tema]
## Tipos disponibles-dashboard: KPIs + gráficos + tablas (para datos cuantitativos)
-report: Informe ejecutivo interactivo (para documentos largos)
-chart: Solo gráficos Chart.js (para visualización de datos pura)
-brief: Briefing 1-página (para resúmenes rápidos)
-infographic: Bloques visuales con datos (para comunicación visual)
## Flujo1. Detectar tipo de artefacto según el contexto
2. Si hay datos: estructurarlos en formato {kpis, charts, tables}
3. Si es markdown existente: usar generate_from_markdown()
4. Generar HTML con lib/html_artifact.py
5. Abrir automáticamente en navegador
6. Informar: ruta del archivo + peso + tipo generado
## Integración-Puede usarse tras /research para visualizar resultados
-Puede usarse tras /generate para versión HTML interactiva
-Los .html generados se catalogan automáticamente en Notion (rule catalog-sync)
## Módulo
lib/html_artifact.py
Comando: .claude/commands/artifact.md
Genera un artefacto HTML autocontenido e interactivo.
Uso: /artifact [tipo] [tema]
Tipos: dashboard | report | chart | brief | infographic
Ejemplos:
/artifact dashboard "Comercio bilateral España-EEUU 2024"
/artifact report → convierte el último output .md en HTML interactivo
/artifact chart "Evolución PIB España vs UE 2020-2024"
/artifact brief "Resumen AI Act para comité Economía Digital"
El archivo se genera en outputs/html/ y se abre automáticamente en el navegador.
Demo CLI
El módulo debe ser ejecutable directamente para testing:
pythonlib/html_artifact.py--demo
# Genera outputs/html/demo_dashboard.html con datos de ejemplo y lo abre en el navegador
pythonlib/html_artifact.py--demo--typereport
# Genera outputs/html/demo_report.html
pythonlib/html_artifact.py--demo--typechart
# etc.
FASES DE IMPLEMENTACIÓN
Fase 1: Módulo Core (lib/html_artifact.py)
Agente: Desarrollador backend Python
Entregable:lib/html_artifact.py funcional con clase HtmlArtifactCriterios de aceptación:
Importa y reutiliza CORPORATE_CSS de pdf_generator.py
Convierte Markdown a HTML (con markdown2 como en pdf_generator)
Genera HTML autocontenido con CDNs de Tailwind, Chart.js, Google Fonts
Soporta los 5 tipos de artefacto
Maneja data dict para KPIs, charts y tables
Genera Chart.js configs correctas embebidas en <script>
Nombre de archivo: {tipo}_{slug_titulo}_{YYYYMMDD}.html
auto_open=True abre el archivo con webbrowser.open()
Encoding UTF-8 correcto en Windows (sys.stdout.reconfigure)
Ejecutable como CLI: python lib/html_artifact.py --demo [--type TYPE]
Auditoría del Director:
Verificar que NO se reinventa CSS (debe importar de pdf_generator)
Verificar que el HTML generado es válido y autocontenido
Verificar que --demo genera y abre un HTML correcto
Fase 2: Plantillas HTML (templates/html-artifact/)
Agente: Desarrollador frontend / diseñador HTML
Entregable: 6 archivos HTML en templates/html-artifact/Criterios de aceptación:
base.html con estructura completa (head, header, body, footer)
Tailwind CSS via Play CDN para layout responsive
CSS custom sobre Tailwind para branding AmCham (colores exactos HEX)
infographic.html: bloques visuales con números grandes y colores semánticos
Todas las plantillas usan Playfair Display (títulos) + DM Sans (cuerpo)
Auditoría del Director:
Abrir cada plantilla en Chrome y verificar rendering
Verificar responsive con DevTools (375px, 768px, 1200px)
Verificar print preview (Ctrl+P)
Verificar que los colores coinciden EXACTAMENTE con la guía visual
Fase 3: Skill + Comando + Directorio
Agente: Integrador de sistema
Entregable:.claude/skills/html-artifact.md, .claude/commands/artifact.md, directorio outputs/html/Criterios de aceptación:
Skill describe activación, tipos, flujo e integración
Comando /artifact con sintaxis y ejemplos
Directorio outputs/html/ creado (con .gitkeep)
Auditoría del Director:
Verificar coherencia entre skill, comando y módulo Python
Fase 4: Documentación y registro
Agente: Documentador
Entregable: Actualizaciones a CLAUDE.md, commands-list.md, quick-references.md
Archivos a modificar:
.claude/rules/20-reference/commands-list.md → añadir /artifact en sección de comandos
.claude/rules/20-reference/quick-references.md → añadir referencia a skill y módulo
CLAUDE.md → añadir sección "Artefactos HTML" en la documentación principal
Criterios de aceptación:
/artifact aparece en commands-list con descripción y tipos
quick-references incluye skill, módulo y plantillas
CLAUDE.md documenta la capacidad con routing table actualizada
Auditoría del Director:
Verificar que la documentación es consistente entre los 3 archivos
Fase 5: Test End-to-End
Agente: QA / Tester
Entregable: Ejecución exitosa de --demo para los 5 tipos
Tests:
# Test 1: Demo dashboard (caso principal)
pythonlib/html_artifact.py--demo--typedashboard
# Test 2: Demo report
pythonlib/html_artifact.py--demo--typereport
# Test 3: Demo chart
pythonlib/html_artifact.py--demo--typechart
# Test 4: Demo brief
pythonlib/html_artifact.py--demo--typebrief
# Test 5: Demo infographic
pythonlib/html_artifact.py--demo--typeinfographic
Verificaciones por cada HTML generado:
Se abre en el navegador sin errores de consola (F12)
Los gráficos Chart.js renderizan correctamente con tooltips
Los colores coinciden con la paleta corporativa
Las tipografías cargan (Playfair Display + DM Sans)
Es responsive (redimensionar ventana)
Print preview funciona (Ctrl+P)
El archivo pesa < 500KB
Formato numérico español (1.234,56)
Fuentes citadas en el footer
Fecha en formato DD/MM/YYYY
Auditoría del Director:
Abrir cada HTML generado y verificar todos los puntos
Si hay errores, devolver a la fase correspondiente para corrección
REGLAS CRÍTICAS PARA TODOS LOS AGENTES
REUTILIZARCORPORATE_CSS de lib/pdf_generator.py — no reinventar estilos
NUNCA eliminar tildes o eñes del texto (ni siquiera "preventivamente")
SIEMPREpython -X utf8 + sys.stdout.reconfigure(encoding='utf-8') en Windows
SIEMPRE formato numérico español: 1.234,56 (punto miles, coma decimal)
SIEMPRE colores HEX exactos de la paleta (no aproximados)
NO crear dependencias locales — todo via CDN
NO crear archivos innecesarios — ceñirse al plan
NO modificar archivos existentes excepto los listados en Fase 4
Leer config/GUIA_ESTILO_VISUAL.md antes de implementar cualquier visual
Leer lib/pdf_generator.py antes de escribir CSS
RESULTADO ESPERADO
Al finalizar las 5 fases, el sistema debe poder:
Usuario: "Hazme un dashboard con datos de comercio España-EEUU"
↓
Claude: Recopila datos → genera HTML → abre en navegador
↓
Archivo: outputs/html/dashboard_comercio_espana_eeuu_20260329.html
- 150-300KB, autocontenido
- KPIs interactivos
- Gráficos Chart.js con tooltips
- Tablas con hover
- Branding AmCham perfecto
- Responsive + print-ready
, ,
Resumen ejecutivo, findings con iconos, timeline
infographic.html
Hereda base +
Prompt de Implementación: Generador de Artefactos HTML Autocontenidos
Para usar en: Nueva instancia de Claude Code con contexto fresco
Modo de trabajo: Director de proyecto + equipo de agentes
Fecha de creación: 29/03/2026
INSTRUCCIÓN PRINCIPAL
Necesito implementar una nueva capacidad para AmCham Spain OS: generación de artefactos HTML autocontenidos — archivos .html únicos que se abren en cualquier navegador sin servidor, con gráficos interactivos, branding corporativo y datos embebidos.
Trabaja como Director de Proyecto. En cada fase:
Delega la implementación a agentes especializados (en paralelo cuando sea posible)
Audita el resultado de cada agente antes de pasar a la siguiente fase
Verifica que el código cumple los estándares del repositorio
No avances a la fase siguiente hasta que la actual esté validada
CONTEXTO DEL REPOSITORIO
Qué es AmCham Spain OS
Sistema operativo digital de la Cámara de Comercio de EE.UU. en España. Genera documentos ejecutivos, investigaciones, briefings y visualizaciones de datos para 5 comités temáticos.
Colores:
Azul Marino: #00247D (Pantone 280) — títulos, headers, fondos principales
Rojo Corporativo: #D1232A (Pantone 186) — acentos, CTAs, alertas
Azul Claro: #8FACD0 (Pantone 2717) — elementos decorativos
Negro: #000000 — cuerpo de texto
Gris Claro: #D3D3D3 — fondos secundarios
Blanco: #FFFFFF — fondos principales
Semánticos (gráficos):
Positivo: #27ae60 Negativo: #e74c3c Alerta: #f39c12
Tipografías:
Títulos: Playfair Display (serif) — Google Fonts
Cuerpo: DM Sans (sans-serif) — Google Fonts
Formato numérico: español (1.234,56 — punto miles, coma decimal)
Estructura de directorios relevante
amchamspain-os-main/
├── lib/ # Bibliotecas Python
│ ├── pdf_generator.py # CORPORATE_CSS aquí
│ ├── template_engine.py # Motor
│ ├── datawrapper_client.py # Referencia de cómo se generan gráficos
│ └── html_artifact.py # ← CREAR AQUÍ
├── templates/
│ ├── html-artifact/ # ← CREAR AQUÍ (plantillas)
│ └── briefing-ejecutivo/ # Referencia de estructura template
├── .claude/
│ ├── skills/ # Skills conversacionales
│ ├── commands/ # Comandos /slash
│ └── rules/ # Reglas del sistema
├── outputs/
│ └── html/ # ← CREAR AQUÍ (directorio de salida)
├── config/
│ └── GUIA_ESTILO_VISUAL.md # Biblia visual
└── CLAUDE.md # Hub de navegación del sistema
ESPECIFICACIÓN TÉCNICA
Archivo principal: lib/html_artifact.py
Clase HtmlArtifact con estos métodos públicos:
classHtmlArtifact:"""Genera archivos HTML autocontenidos con branding AmCham Spain."""ARTIFACT_TYPES=["dashboard","report","infographic","chart","brief"]defgenerate(self,content:str,# Markdown o HTML del cuerpoartifact_type:str,# Uno de ARTIFACT_TYPEStitle:str,# Título del documentosubtitle:str="",# Subtítulo opcionaldata:dict|None=None,# Datos para Chart.js {charts: [...]}sources:list[str]=[],# Fuentes citadasclassification:str="Uso Interno",auto_open:bool=True,# Abrir en navegadoroutput_dir:str="outputs/html",)->Path:"""Genera .html y retorna la ruta del archivo creado."""defgenerate_from_markdown(self,md_path:str,# Ruta a archivo .md existenteartifact_type:str="report",data:dict|None=None,auto_open:bool=True,)->Path:"""Convierte un .md existente del repo en HTML interactivo."""
Estructura del dict data para gráficos:
data={"kpis":[{"label":"Exportaciones","value":"16.800M EUR","change":"+5,2%","trend":"up"},{"label":"Importaciones","value":"12.340M EUR","change":"+3,1%","trend":"up"},],"charts":[{"id":"chart-1","type":"bar",# bar | line | doughnut | radar | polarArea"title":"Top 10 Productos","labels":["Automóviles","Maquinaria",...],"datasets":[{"label":"2024","data":[3200,2800,...],"color":"#00247D"},{"label":"2023","data":[2900,2600,...],"color":"#8FACD0"},]},{"id":"chart-2","type":"line","title":"Evolución 2020-2024","labels":["2020","2021","2022","2023","2024"],"datasets":[{"label":"Exportaciones","data":[14200,14800,15300,16000,16800],"color":"#00247D"},{"label":"Importaciones","data":[10500,11200,11800,12000,12340],"color":"#D1232A"},]}],"tables":[{"id":"table-1","title":"Detalle por Sector","headers":["Sector","Exportaciones","Importaciones","Balanza"],"rows":[["Automóvil","3.200M","1.800M","+1.400M"],["Maquinaria","2.800M","2.100M","+700M"],]}]}
CDNs (sin dependencias locales)
<!-- Tailwind CSS Play CDN — layout y utilidades --><scriptsrc="https://cdn.tailwindcss.com"></script><!-- Chart.js 4 — gráficos interactivos (SOLO si data.charts existe) --><scriptsrc="https://cdn.jsdelivr.net/npm/chart.js@4"></script><!-- Google Fonts — tipografías corporativas --><linkhref="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;700&family=DM+Sans:wght@400;500;700&display=swap"rel="stylesheet">
Plantillas HTML: templates/html-artifact/
6 archivos con marcadores que el generador sustituye:
Archivo
Variables clave
Componentes visuales
base.html
, , , , , ,
Header, footer, estructura base
dashboard.html
Hereda base + , ,
Grid de KPIs, gráficos Chart.js, tablas con hover
report.html
Hereda base + ,
TOC clickable, secciones colapsables con toggle
chart.html
Hereda base +
Layout de gráficos 1-col o 2-col responsive
brief.html
Hereda base + , ,
Resumen ejecutivo, findings con iconos, timeline
infographic.html
Hereda base +
Bloques visuales con iconos, números grandes, paleta semántica
Requisitos de cada plantilla:
HTML5 válido y autocontenido (un solo archivo, sin imports locales)
Responsive: funciona en desktop (1200px+), tablet (768px), y móvil (375px)
Tailwind para layout, CSS custom para branding AmCham sobre Tailwind
Logo AmCham como SVG inline en el header (no como imagen externa)
Footer con: fuentes, fecha de generación, clasificación, "AmCham Spain OS"
Idioma: todo en español con tildes y eñes correctas
Skill: .claude/skills/html-artifact.md
# Skill: Generador de Artefactos HTML## Activación-"hazme un dashboard", "genera un HTML interactivo", "quiero ver esto en el navegador"
-"artefacto HTML", "visualización interactiva", "HTML con gráficos"
-/artifact [tipo] [tema]
## Tipos disponibles-dashboard: KPIs + gráficos + tablas (para datos cuantitativos)
-report: Informe ejecutivo interactivo (para documentos largos)
-chart: Solo gráficos Chart.js (para visualización de datos pura)
-brief: Briefing 1-página (para resúmenes rápidos)
-infographic: Bloques visuales con datos (para comunicación visual)
## Flujo1. Detectar tipo de artefacto según el contexto
2. Si hay datos: estructurarlos en formato {kpis, charts, tables}
3. Si es markdown existente: usar generate_from_markdown()
4. Generar HTML con lib/html_artifact.py
5. Abrir automáticamente en navegador
6. Informar: ruta del archivo + peso + tipo generado
## Integración-Puede usarse tras /research para visualizar resultados
-Puede usarse tras /generate para versión HTML interactiva
-Los .html generados se catalogan automáticamente en Notion (rule catalog-sync)
## Módulo
lib/html_artifact.py
Comando: .claude/commands/artifact.md
Genera un artefacto HTML autocontenido e interactivo.
Uso: /artifact [tipo] [tema]
Tipos: dashboard | report | chart | brief | infographic
Ejemplos:
/artifact dashboard "Comercio bilateral España-EEUU 2024"
/artifact report → convierte el último output .md en HTML interactivo
/artifact chart "Evolución PIB España vs UE 2020-2024"
/artifact brief "Resumen AI Act para comité Economía Digital"
El archivo se genera en outputs/html/ y se abre automáticamente en el navegador.
Demo CLI
El módulo debe ser ejecutable directamente para testing:
pythonlib/html_artifact.py--demo
# Genera outputs/html/demo_dashboard.html con datos de ejemplo y lo abre en el navegador
pythonlib/html_artifact.py--demo--typereport
# Genera outputs/html/demo_report.html
pythonlib/html_artifact.py--demo--typechart
# etc.
FASES DE IMPLEMENTACIÓN
Fase 1: Módulo Core (lib/html_artifact.py)
Agente: Desarrollador backend Python
Entregable:lib/html_artifact.py funcional con clase HtmlArtifactCriterios de aceptación:
Importa y reutiliza CORPORATE_CSS de pdf_generator.py
Convierte Markdown a HTML (con markdown2 como en pdf_generator)
Genera HTML autocontenido con CDNs de Tailwind, Chart.js, Google Fonts
Soporta los 5 tipos de artefacto
Maneja data dict para KPIs, charts y tables
Genera Chart.js configs correctas embebidas en <script>
Nombre de archivo: {tipo}_{slug_titulo}_{YYYYMMDD}.html
auto_open=True abre el archivo con webbrowser.open()
Encoding UTF-8 correcto en Windows (sys.stdout.reconfigure)
Ejecutable como CLI: python lib/html_artifact.py --demo [--type TYPE]
Auditoría del Director:
Verificar que NO se reinventa CSS (debe importar de pdf_generator)
Verificar que el HTML generado es válido y autocontenido
Verificar que --demo genera y abre un HTML correcto
Fase 2: Plantillas HTML (templates/html-artifact/)
Agente: Desarrollador frontend / diseñador HTML
Entregable: 6 archivos HTML en templates/html-artifact/Criterios de aceptación:
base.html con estructura completa (head, header, body, footer)
Tailwind CSS via Play CDN para layout responsive
CSS custom sobre Tailwind para branding AmCham (colores exactos HEX)
infographic.html: bloques visuales con números grandes y colores semánticos
Todas las plantillas usan Playfair Display (títulos) + DM Sans (cuerpo)
Auditoría del Director:
Abrir cada plantilla en Chrome y verificar rendering
Verificar responsive con DevTools (375px, 768px, 1200px)
Verificar print preview (Ctrl+P)
Verificar que los colores coinciden EXACTAMENTE con la guía visual
Fase 3: Skill + Comando + Directorio
Agente: Integrador de sistema
Entregable:.claude/skills/html-artifact.md, .claude/commands/artifact.md, directorio outputs/html/Criterios de aceptación:
Skill describe activación, tipos, flujo e integración
Comando /artifact con sintaxis y ejemplos
Directorio outputs/html/ creado (con .gitkeep)
Auditoría del Director:
Verificar coherencia entre skill, comando y módulo Python
Fase 4: Documentación y registro
Agente: Documentador
Entregable: Actualizaciones a CLAUDE.md, commands-list.md, quick-references.md
Archivos a modificar:
.claude/rules/20-reference/commands-list.md → añadir /artifact en sección de comandos
.claude/rules/20-reference/quick-references.md → añadir referencia a skill y módulo
CLAUDE.md → añadir sección "Artefactos HTML" en la documentación principal
Criterios de aceptación:
/artifact aparece en commands-list con descripción y tipos
quick-references incluye skill, módulo y plantillas
CLAUDE.md documenta la capacidad con routing table actualizada
Auditoría del Director:
Verificar que la documentación es consistente entre los 3 archivos
Fase 5: Test End-to-End
Agente: QA / Tester
Entregable: Ejecución exitosa de --demo para los 5 tipos
Tests:
# Test 1: Demo dashboard (caso principal)
pythonlib/html_artifact.py--demo--typedashboard
# Test 2: Demo report
pythonlib/html_artifact.py--demo--typereport
# Test 3: Demo chart
pythonlib/html_artifact.py--demo--typechart
# Test 4: Demo brief
pythonlib/html_artifact.py--demo--typebrief
# Test 5: Demo infographic
pythonlib/html_artifact.py--demo--typeinfographic
Verificaciones por cada HTML generado:
Se abre en el navegador sin errores de consola (F12)
Los gráficos Chart.js renderizan correctamente con tooltips
Los colores coinciden con la paleta corporativa
Las tipografías cargan (Playfair Display + DM Sans)
Es responsive (redimensionar ventana)
Print preview funciona (Ctrl+P)
El archivo pesa < 500KB
Formato numérico español (1.234,56)
Fuentes citadas en el footer
Fecha en formato DD/MM/YYYY
Auditoría del Director:
Abrir cada HTML generado y verificar todos los puntos
Si hay errores, devolver a la fase correspondiente para corrección
REGLAS CRÍTICAS PARA TODOS LOS AGENTES
REUTILIZARCORPORATE_CSS de lib/pdf_generator.py — no reinventar estilos
NUNCA eliminar tildes o eñes del texto (ni siquiera "preventivamente")
SIEMPREpython -X utf8 + sys.stdout.reconfigure(encoding='utf-8') en Windows
SIEMPRE formato numérico español: 1.234,56 (punto miles, coma decimal)
SIEMPRE colores HEX exactos de la paleta (no aproximados)
NO crear dependencias locales — todo via CDN
NO crear archivos innecesarios — ceñirse al plan
NO modificar archivos existentes excepto los listados en Fase 4
Leer config/GUIA_ESTILO_VISUAL.md antes de implementar cualquier visual
Leer lib/pdf_generator.py antes de escribir CSS
RESULTADO ESPERADO
Al finalizar las 5 fases, el sistema debe poder:
Usuario: "Hazme un dashboard con datos de comercio España-EEUU"
↓
Claude: Recopila datos → genera HTML → abre en navegador
↓
Archivo: outputs/html/dashboard_comercio_espana_eeuu_20260329.html
- 150-300KB, autocontenido
- KPIs interactivos
- Gráficos Chart.js con tooltips
- Tablas con hover
- Branding AmCham perfecto
- Responsive + print-ready
Bloques visuales con iconos, números grandes, paleta semántica
Requisitos de cada plantilla:
HTML5 válido y autocontenido (un solo archivo, sin imports locales)
Responsive: funciona en desktop (1200px+), tablet (768px), y móvil (375px)
Tailwind para layout, CSS custom para branding AmCham sobre Tailwind
Logo AmCham como SVG inline en el header (no como imagen externa)
Footer con: fuentes, fecha de generación, clasificación, "AmCham Spain OS"
Idioma: todo en español con tildes y eñes correctas
Skill: .claude/skills/html-artifact.md
# Skill: Generador de Artefactos HTML## Activación-"hazme un dashboard", "genera un HTML interactivo", "quiero ver esto en el navegador"
-"artefacto HTML", "visualización interactiva", "HTML con gráficos"
-/artifact [tipo] [tema]
## Tipos disponibles-dashboard: KPIs + gráficos + tablas (para datos cuantitativos)
-report: Informe ejecutivo interactivo (para documentos largos)
-chart: Solo gráficos Chart.js (para visualización de datos pura)
-brief: Briefing 1-página (para resúmenes rápidos)
-infographic: Bloques visuales con datos (para comunicación visual)
## Flujo1. Detectar tipo de artefacto según el contexto
2. Si hay datos: estructurarlos en formato {kpis, charts, tables}
3. Si es markdown existente: usar generate_from_markdown()
4. Generar HTML con lib/html_artifact.py
5. Abrir automáticamente en navegador
6. Informar: ruta del archivo + peso + tipo generado
## Integración-Puede usarse tras /research para visualizar resultados
-Puede usarse tras /generate para versión HTML interactiva
-Los .html generados se catalogan automáticamente en Notion (rule catalog-sync)
## Módulo
lib/html_artifact.py
Comando: .claude/commands/artifact.md
Genera un artefacto HTML autocontenido e interactivo.
Uso: /artifact [tipo] [tema]
Tipos: dashboard | report | chart | brief | infographic
Ejemplos:
/artifact dashboard "Comercio bilateral España-EEUU 2024"
/artifact report → convierte el último output .md en HTML interactivo
/artifact chart "Evolución PIB España vs UE 2020-2024"
/artifact brief "Resumen AI Act para comité Economía Digital"
El archivo se genera en outputs/html/ y se abre automáticamente en el navegador.
Demo CLI
El módulo debe ser ejecutable directamente para testing:
pythonlib/html_artifact.py--demo
# Genera outputs/html/demo_dashboard.html con datos de ejemplo y lo abre en el navegador
pythonlib/html_artifact.py--demo--typereport
# Genera outputs/html/demo_report.html
pythonlib/html_artifact.py--demo--typechart
# etc.
FASES DE IMPLEMENTACIÓN
Fase 1: Módulo Core (lib/html_artifact.py)
Agente: Desarrollador backend Python
Entregable:lib/html_artifact.py funcional con clase HtmlArtifactCriterios de aceptación:
Importa y reutiliza CORPORATE_CSS de pdf_generator.py
Convierte Markdown a HTML (con markdown2 como en pdf_generator)
Genera HTML autocontenido con CDNs de Tailwind, Chart.js, Google Fonts
Soporta los 5 tipos de artefacto
Maneja data dict para KPIs, charts y tables
Genera Chart.js configs correctas embebidas en <script>
Nombre de archivo: {tipo}_{slug_titulo}_{YYYYMMDD}.html
auto_open=True abre el archivo con webbrowser.open()
Encoding UTF-8 correcto en Windows (sys.stdout.reconfigure)
Ejecutable como CLI: python lib/html_artifact.py --demo [--type TYPE]
Auditoría del Director:
Verificar que NO se reinventa CSS (debe importar de pdf_generator)
Verificar que el HTML generado es válido y autocontenido
Verificar que --demo genera y abre un HTML correcto
Fase 2: Plantillas HTML (templates/html-artifact/)
Agente: Desarrollador frontend / diseñador HTML
Entregable: 6 archivos HTML en templates/html-artifact/Criterios de aceptación:
base.html con estructura completa (head, header, body, footer)
Tailwind CSS via Play CDN para layout responsive
CSS custom sobre Tailwind para branding AmCham (colores exactos HEX)
infographic.html: bloques visuales con números grandes y colores semánticos
Todas las plantillas usan Playfair Display (títulos) + DM Sans (cuerpo)
Auditoría del Director:
Abrir cada plantilla en Chrome y verificar rendering
Verificar responsive con DevTools (375px, 768px, 1200px)
Verificar print preview (Ctrl+P)
Verificar que los colores coinciden EXACTAMENTE con la guía visual
Fase 3: Skill + Comando + Directorio
Agente: Integrador de sistema
Entregable:.claude/skills/html-artifact.md, .claude/commands/artifact.md, directorio outputs/html/Criterios de aceptación:
Skill describe activación, tipos, flujo e integración
Comando /artifact con sintaxis y ejemplos
Directorio outputs/html/ creado (con .gitkeep)
Auditoría del Director:
Verificar coherencia entre skill, comando y módulo Python
Fase 4: Documentación y registro
Agente: Documentador
Entregable: Actualizaciones a CLAUDE.md, commands-list.md, quick-references.md
Archivos a modificar:
.claude/rules/20-reference/commands-list.md → añadir /artifact en sección de comandos
.claude/rules/20-reference/quick-references.md → añadir referencia a skill y módulo
CLAUDE.md → añadir sección "Artefactos HTML" en la documentación principal
Criterios de aceptación:
/artifact aparece en commands-list con descripción y tipos
quick-references incluye skill, módulo y plantillas
CLAUDE.md documenta la capacidad con routing table actualizada
Auditoría del Director:
Verificar que la documentación es consistente entre los 3 archivos
Fase 5: Test End-to-End
Agente: QA / Tester
Entregable: Ejecución exitosa de --demo para los 5 tipos
Tests:
# Test 1: Demo dashboard (caso principal)
pythonlib/html_artifact.py--demo--typedashboard
# Test 2: Demo report
pythonlib/html_artifact.py--demo--typereport
# Test 3: Demo chart
pythonlib/html_artifact.py--demo--typechart
# Test 4: Demo brief
pythonlib/html_artifact.py--demo--typebrief
# Test 5: Demo infographic
pythonlib/html_artifact.py--demo--typeinfographic
Verificaciones por cada HTML generado:
Se abre en el navegador sin errores de consola (F12)
Los gráficos Chart.js renderizan correctamente con tooltips
Los colores coinciden con la paleta corporativa
Las tipografías cargan (Playfair Display + DM Sans)
Es responsive (redimensionar ventana)
Print preview funciona (Ctrl+P)
El archivo pesa < 500KB
Formato numérico español (1.234,56)
Fuentes citadas en el footer
Fecha en formato DD/MM/YYYY
Auditoría del Director:
Abrir cada HTML generado y verificar todos los puntos
Si hay errores, devolver a la fase correspondiente para corrección
REGLAS CRÍTICAS PARA TODOS LOS AGENTES
REUTILIZARCORPORATE_CSS de lib/pdf_generator.py — no reinventar estilos
NUNCA eliminar tildes o eñes del texto (ni siquiera "preventivamente")
SIEMPREpython -X utf8 + sys.stdout.reconfigure(encoding='utf-8') en Windows
SIEMPRE formato numérico español: 1.234,56 (punto miles, coma decimal)
SIEMPRE colores HEX exactos de la paleta (no aproximados)
NO crear dependencias locales — todo via CDN
NO crear archivos innecesarios — ceñirse al plan
NO modificar archivos existentes excepto los listados en Fase 4
Leer config/GUIA_ESTILO_VISUAL.md antes de implementar cualquier visual
Leer lib/pdf_generator.py antes de escribir CSS
RESULTADO ESPERADO
Al finalizar las 5 fases, el sistema debe poder:
Usuario: "Hazme un dashboard con datos de comercio España-EEUU"
↓
Claude: Recopila datos → genera HTML → abre en navegador
↓
Archivo: outputs/html/dashboard_comercio_espana_eeuu_20260329.html
- 150-300KB, autocontenido
- KPIs interactivos
- Gráficos Chart.js con tooltips
- Tablas con hover
- Branding AmCham perfecto
- Responsive + print-ready
TOC clickable, secciones colapsables con toggle
chart.html
Hereda base +
Layout de gráficos 1-col o 2-col responsive
brief.html
Hereda base +
Prompt de Implementación: Generador de Artefactos HTML Autocontenidos
Para usar en: Nueva instancia de Claude Code con contexto fresco
Modo de trabajo: Director de proyecto + equipo de agentes
Fecha de creación: 29/03/2026
INSTRUCCIÓN PRINCIPAL
Necesito implementar una nueva capacidad para AmCham Spain OS: generación de artefactos HTML autocontenidos — archivos .html únicos que se abren en cualquier navegador sin servidor, con gráficos interactivos, branding corporativo y datos embebidos.
Trabaja como Director de Proyecto. En cada fase:
Delega la implementación a agentes especializados (en paralelo cuando sea posible)
Audita el resultado de cada agente antes de pasar a la siguiente fase
Verifica que el código cumple los estándares del repositorio
No avances a la fase siguiente hasta que la actual esté validada
CONTEXTO DEL REPOSITORIO
Qué es AmCham Spain OS
Sistema operativo digital de la Cámara de Comercio de EE.UU. en España. Genera documentos ejecutivos, investigaciones, briefings y visualizaciones de datos para 5 comités temáticos.
Colores:
Azul Marino: #00247D (Pantone 280) — títulos, headers, fondos principales
Rojo Corporativo: #D1232A (Pantone 186) — acentos, CTAs, alertas
Azul Claro: #8FACD0 (Pantone 2717) — elementos decorativos
Negro: #000000 — cuerpo de texto
Gris Claro: #D3D3D3 — fondos secundarios
Blanco: #FFFFFF — fondos principales
Semánticos (gráficos):
Positivo: #27ae60 Negativo: #e74c3c Alerta: #f39c12
Tipografías:
Títulos: Playfair Display (serif) — Google Fonts
Cuerpo: DM Sans (sans-serif) — Google Fonts
Formato numérico: español (1.234,56 — punto miles, coma decimal)
Estructura de directorios relevante
amchamspain-os-main/
├── lib/ # Bibliotecas Python
│ ├── pdf_generator.py # CORPORATE_CSS aquí
│ ├── template_engine.py # Motor
│ ├── datawrapper_client.py # Referencia de cómo se generan gráficos
│ └── html_artifact.py # ← CREAR AQUÍ
├── templates/
│ ├── html-artifact/ # ← CREAR AQUÍ (plantillas)
│ └── briefing-ejecutivo/ # Referencia de estructura template
├── .claude/
│ ├── skills/ # Skills conversacionales
│ ├── commands/ # Comandos /slash
│ └── rules/ # Reglas del sistema
├── outputs/
│ └── html/ # ← CREAR AQUÍ (directorio de salida)
├── config/
│ └── GUIA_ESTILO_VISUAL.md # Biblia visual
└── CLAUDE.md # Hub de navegación del sistema
ESPECIFICACIÓN TÉCNICA
Archivo principal: lib/html_artifact.py
Clase HtmlArtifact con estos métodos públicos:
classHtmlArtifact:"""Genera archivos HTML autocontenidos con branding AmCham Spain."""ARTIFACT_TYPES=["dashboard","report","infographic","chart","brief"]defgenerate(self,content:str,# Markdown o HTML del cuerpoartifact_type:str,# Uno de ARTIFACT_TYPEStitle:str,# Título del documentosubtitle:str="",# Subtítulo opcionaldata:dict|None=None,# Datos para Chart.js {charts: [...]}sources:list[str]=[],# Fuentes citadasclassification:str="Uso Interno",auto_open:bool=True,# Abrir en navegadoroutput_dir:str="outputs/html",)->Path:"""Genera .html y retorna la ruta del archivo creado."""defgenerate_from_markdown(self,md_path:str,# Ruta a archivo .md existenteartifact_type:str="report",data:dict|None=None,auto_open:bool=True,)->Path:"""Convierte un .md existente del repo en HTML interactivo."""
Estructura del dict data para gráficos:
data={"kpis":[{"label":"Exportaciones","value":"16.800M EUR","change":"+5,2%","trend":"up"},{"label":"Importaciones","value":"12.340M EUR","change":"+3,1%","trend":"up"},],"charts":[{"id":"chart-1","type":"bar",# bar | line | doughnut | radar | polarArea"title":"Top 10 Productos","labels":["Automóviles","Maquinaria",...],"datasets":[{"label":"2024","data":[3200,2800,...],"color":"#00247D"},{"label":"2023","data":[2900,2600,...],"color":"#8FACD0"},]},{"id":"chart-2","type":"line","title":"Evolución 2020-2024","labels":["2020","2021","2022","2023","2024"],"datasets":[{"label":"Exportaciones","data":[14200,14800,15300,16000,16800],"color":"#00247D"},{"label":"Importaciones","data":[10500,11200,11800,12000,12340],"color":"#D1232A"},]}],"tables":[{"id":"table-1","title":"Detalle por Sector","headers":["Sector","Exportaciones","Importaciones","Balanza"],"rows":[["Automóvil","3.200M","1.800M","+1.400M"],["Maquinaria","2.800M","2.100M","+700M"],]}]}
CDNs (sin dependencias locales)
<!-- Tailwind CSS Play CDN — layout y utilidades --><scriptsrc="https://cdn.tailwindcss.com"></script><!-- Chart.js 4 — gráficos interactivos (SOLO si data.charts existe) --><scriptsrc="https://cdn.jsdelivr.net/npm/chart.js@4"></script><!-- Google Fonts — tipografías corporativas --><linkhref="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;700&family=DM+Sans:wght@400;500;700&display=swap"rel="stylesheet">
Plantillas HTML: templates/html-artifact/
6 archivos con marcadores que el generador sustituye:
Archivo
Variables clave
Componentes visuales
base.html
, , , , , ,
Header, footer, estructura base
dashboard.html
Hereda base + , ,
Grid de KPIs, gráficos Chart.js, tablas con hover
report.html
Hereda base + ,
TOC clickable, secciones colapsables con toggle
chart.html
Hereda base +
Layout de gráficos 1-col o 2-col responsive
brief.html
Hereda base + , ,
Resumen ejecutivo, findings con iconos, timeline
infographic.html
Hereda base +
Prompt de Implementación: Generador de Artefactos HTML Autocontenidos
Para usar en: Nueva instancia de Claude Code con contexto fresco
Modo de trabajo: Director de proyecto + equipo de agentes
Fecha de creación: 29/03/2026
INSTRUCCIÓN PRINCIPAL
Necesito implementar una nueva capacidad para AmCham Spain OS: generación de artefactos HTML autocontenidos — archivos .html únicos que se abren en cualquier navegador sin servidor, con gráficos interactivos, branding corporativo y datos embebidos.
Trabaja como Director de Proyecto. En cada fase:
Delega la implementación a agentes especializados (en paralelo cuando sea posible)
Audita el resultado de cada agente antes de pasar a la siguiente fase
Verifica que el código cumple los estándares del repositorio
No avances a la fase siguiente hasta que la actual esté validada
CONTEXTO DEL REPOSITORIO
Qué es AmCham Spain OS
Sistema operativo digital de la Cámara de Comercio de EE.UU. en España. Genera documentos ejecutivos, investigaciones, briefings y visualizaciones de datos para 5 comités temáticos.
Colores:
Azul Marino: #00247D (Pantone 280) — títulos, headers, fondos principales
Rojo Corporativo: #D1232A (Pantone 186) — acentos, CTAs, alertas
Azul Claro: #8FACD0 (Pantone 2717) — elementos decorativos
Negro: #000000 — cuerpo de texto
Gris Claro: #D3D3D3 — fondos secundarios
Blanco: #FFFFFF — fondos principales
Semánticos (gráficos):
Positivo: #27ae60 Negativo: #e74c3c Alerta: #f39c12
Tipografías:
Títulos: Playfair Display (serif) — Google Fonts
Cuerpo: DM Sans (sans-serif) — Google Fonts
Formato numérico: español (1.234,56 — punto miles, coma decimal)
Estructura de directorios relevante
amchamspain-os-main/
├── lib/ # Bibliotecas Python
│ ├── pdf_generator.py # CORPORATE_CSS aquí
│ ├── template_engine.py # Motor
│ ├── datawrapper_client.py # Referencia de cómo se generan gráficos
│ └── html_artifact.py # ← CREAR AQUÍ
├── templates/
│ ├── html-artifact/ # ← CREAR AQUÍ (plantillas)
│ └── briefing-ejecutivo/ # Referencia de estructura template
├── .claude/
│ ├── skills/ # Skills conversacionales
│ ├── commands/ # Comandos /slash
│ └── rules/ # Reglas del sistema
├── outputs/
│ └── html/ # ← CREAR AQUÍ (directorio de salida)
├── config/
│ └── GUIA_ESTILO_VISUAL.md # Biblia visual
└── CLAUDE.md # Hub de navegación del sistema
ESPECIFICACIÓN TÉCNICA
Archivo principal: lib/html_artifact.py
Clase HtmlArtifact con estos métodos públicos:
classHtmlArtifact:"""Genera archivos HTML autocontenidos con branding AmCham Spain."""ARTIFACT_TYPES=["dashboard","report","infographic","chart","brief"]defgenerate(self,content:str,# Markdown o HTML del cuerpoartifact_type:str,# Uno de ARTIFACT_TYPEStitle:str,# Título del documentosubtitle:str="",# Subtítulo opcionaldata:dict|None=None,# Datos para Chart.js {charts: [...]}sources:list[str]=[],# Fuentes citadasclassification:str="Uso Interno",auto_open:bool=True,# Abrir en navegadoroutput_dir:str="outputs/html",)->Path:"""Genera .html y retorna la ruta del archivo creado."""defgenerate_from_markdown(self,md_path:str,# Ruta a archivo .md existenteartifact_type:str="report",data:dict|None=None,auto_open:bool=True,)->Path:"""Convierte un .md existente del repo en HTML interactivo."""
Estructura del dict data para gráficos:
data={"kpis":[{"label":"Exportaciones","value":"16.800M EUR","change":"+5,2%","trend":"up"},{"label":"Importaciones","value":"12.340M EUR","change":"+3,1%","trend":"up"},],"charts":[{"id":"chart-1","type":"bar",# bar | line | doughnut | radar | polarArea"title":"Top 10 Productos","labels":["Automóviles","Maquinaria",...],"datasets":[{"label":"2024","data":[3200,2800,...],"color":"#00247D"},{"label":"2023","data":[2900,2600,...],"color":"#8FACD0"},]},{"id":"chart-2","type":"line","title":"Evolución 2020-2024","labels":["2020","2021","2022","2023","2024"],"datasets":[{"label":"Exportaciones","data":[14200,14800,15300,16000,16800],"color":"#00247D"},{"label":"Importaciones","data":[10500,11200,11800,12000,12340],"color":"#D1232A"},]}],"tables":[{"id":"table-1","title":"Detalle por Sector","headers":["Sector","Exportaciones","Importaciones","Balanza"],"rows":[["Automóvil","3.200M","1.800M","+1.400M"],["Maquinaria","2.800M","2.100M","+700M"],]}]}
CDNs (sin dependencias locales)
<!-- Tailwind CSS Play CDN — layout y utilidades --><scriptsrc="https://cdn.tailwindcss.com"></script><!-- Chart.js 4 — gráficos interactivos (SOLO si data.charts existe) --><scriptsrc="https://cdn.jsdelivr.net/npm/chart.js@4"></script><!-- Google Fonts — tipografías corporativas --><linkhref="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;700&family=DM+Sans:wght@400;500;700&display=swap"rel="stylesheet">
Plantillas HTML: templates/html-artifact/
6 archivos con marcadores que el generador sustituye:
Archivo
Variables clave
Componentes visuales
base.html
, , , , , ,
Header, footer, estructura base
dashboard.html
Hereda base + , ,
Grid de KPIs, gráficos Chart.js, tablas con hover
report.html
Hereda base + ,
TOC clickable, secciones colapsables con toggle
chart.html
Hereda base +
Layout de gráficos 1-col o 2-col responsive
brief.html
Hereda base + , ,
Resumen ejecutivo, findings con iconos, timeline
infographic.html
Hereda base +
Bloques visuales con iconos, números grandes, paleta semántica
Requisitos de cada plantilla:
HTML5 válido y autocontenido (un solo archivo, sin imports locales)
Responsive: funciona en desktop (1200px+), tablet (768px), y móvil (375px)
Tailwind para layout, CSS custom para branding AmCham sobre Tailwind
Logo AmCham como SVG inline en el header (no como imagen externa)
Footer con: fuentes, fecha de generación, clasificación, "AmCham Spain OS"
Idioma: todo en español con tildes y eñes correctas
Skill: .claude/skills/html-artifact.md
# Skill: Generador de Artefactos HTML## Activación-"hazme un dashboard", "genera un HTML interactivo", "quiero ver esto en el navegador"
-"artefacto HTML", "visualización interactiva", "HTML con gráficos"
-/artifact [tipo] [tema]
## Tipos disponibles-dashboard: KPIs + gráficos + tablas (para datos cuantitativos)
-report: Informe ejecutivo interactivo (para documentos largos)
-chart: Solo gráficos Chart.js (para visualización de datos pura)
-brief: Briefing 1-página (para resúmenes rápidos)
-infographic: Bloques visuales con datos (para comunicación visual)
## Flujo1. Detectar tipo de artefacto según el contexto
2. Si hay datos: estructurarlos en formato {kpis, charts, tables}
3. Si es markdown existente: usar generate_from_markdown()
4. Generar HTML con lib/html_artifact.py
5. Abrir automáticamente en navegador
6. Informar: ruta del archivo + peso + tipo generado
## Integración-Puede usarse tras /research para visualizar resultados
-Puede usarse tras /generate para versión HTML interactiva
-Los .html generados se catalogan automáticamente en Notion (rule catalog-sync)
## Módulo
lib/html_artifact.py
Comando: .claude/commands/artifact.md
Genera un artefacto HTML autocontenido e interactivo.
Uso: /artifact [tipo] [tema]
Tipos: dashboard | report | chart | brief | infographic
Ejemplos:
/artifact dashboard "Comercio bilateral España-EEUU 2024"
/artifact report → convierte el último output .md en HTML interactivo
/artifact chart "Evolución PIB España vs UE 2020-2024"
/artifact brief "Resumen AI Act para comité Economía Digital"
El archivo se genera en outputs/html/ y se abre automáticamente en el navegador.
Demo CLI
El módulo debe ser ejecutable directamente para testing:
pythonlib/html_artifact.py--demo
# Genera outputs/html/demo_dashboard.html con datos de ejemplo y lo abre en el navegador
pythonlib/html_artifact.py--demo--typereport
# Genera outputs/html/demo_report.html
pythonlib/html_artifact.py--demo--typechart
# etc.
FASES DE IMPLEMENTACIÓN
Fase 1: Módulo Core (lib/html_artifact.py)
Agente: Desarrollador backend Python
Entregable:lib/html_artifact.py funcional con clase HtmlArtifactCriterios de aceptación:
Importa y reutiliza CORPORATE_CSS de pdf_generator.py
Convierte Markdown a HTML (con markdown2 como en pdf_generator)
Genera HTML autocontenido con CDNs de Tailwind, Chart.js, Google Fonts
Soporta los 5 tipos de artefacto
Maneja data dict para KPIs, charts y tables
Genera Chart.js configs correctas embebidas en <script>
Nombre de archivo: {tipo}_{slug_titulo}_{YYYYMMDD}.html
auto_open=True abre el archivo con webbrowser.open()
Encoding UTF-8 correcto en Windows (sys.stdout.reconfigure)
Ejecutable como CLI: python lib/html_artifact.py --demo [--type TYPE]
Auditoría del Director:
Verificar que NO se reinventa CSS (debe importar de pdf_generator)
Verificar que el HTML generado es válido y autocontenido
Verificar que --demo genera y abre un HTML correcto
Fase 2: Plantillas HTML (templates/html-artifact/)
Agente: Desarrollador frontend / diseñador HTML
Entregable: 6 archivos HTML en templates/html-artifact/Criterios de aceptación:
base.html con estructura completa (head, header, body, footer)
Tailwind CSS via Play CDN para layout responsive
CSS custom sobre Tailwind para branding AmCham (colores exactos HEX)
infographic.html: bloques visuales con números grandes y colores semánticos
Todas las plantillas usan Playfair Display (títulos) + DM Sans (cuerpo)
Auditoría del Director:
Abrir cada plantilla en Chrome y verificar rendering
Verificar responsive con DevTools (375px, 768px, 1200px)
Verificar print preview (Ctrl+P)
Verificar que los colores coinciden EXACTAMENTE con la guía visual
Fase 3: Skill + Comando + Directorio
Agente: Integrador de sistema
Entregable:.claude/skills/html-artifact.md, .claude/commands/artifact.md, directorio outputs/html/Criterios de aceptación:
Skill describe activación, tipos, flujo e integración
Comando /artifact con sintaxis y ejemplos
Directorio outputs/html/ creado (con .gitkeep)
Auditoría del Director:
Verificar coherencia entre skill, comando y módulo Python
Fase 4: Documentación y registro
Agente: Documentador
Entregable: Actualizaciones a CLAUDE.md, commands-list.md, quick-references.md
Archivos a modificar:
.claude/rules/20-reference/commands-list.md → añadir /artifact en sección de comandos
.claude/rules/20-reference/quick-references.md → añadir referencia a skill y módulo
CLAUDE.md → añadir sección "Artefactos HTML" en la documentación principal
Criterios de aceptación:
/artifact aparece en commands-list con descripción y tipos
quick-references incluye skill, módulo y plantillas
CLAUDE.md documenta la capacidad con routing table actualizada
Auditoría del Director:
Verificar que la documentación es consistente entre los 3 archivos
Fase 5: Test End-to-End
Agente: QA / Tester
Entregable: Ejecución exitosa de --demo para los 5 tipos
Tests:
# Test 1: Demo dashboard (caso principal)
pythonlib/html_artifact.py--demo--typedashboard
# Test 2: Demo report
pythonlib/html_artifact.py--demo--typereport
# Test 3: Demo chart
pythonlib/html_artifact.py--demo--typechart
# Test 4: Demo brief
pythonlib/html_artifact.py--demo--typebrief
# Test 5: Demo infographic
pythonlib/html_artifact.py--demo--typeinfographic
Verificaciones por cada HTML generado:
Se abre en el navegador sin errores de consola (F12)
Los gráficos Chart.js renderizan correctamente con tooltips
Los colores coinciden con la paleta corporativa
Las tipografías cargan (Playfair Display + DM Sans)
Es responsive (redimensionar ventana)
Print preview funciona (Ctrl+P)
El archivo pesa < 500KB
Formato numérico español (1.234,56)
Fuentes citadas en el footer
Fecha en formato DD/MM/YYYY
Auditoría del Director:
Abrir cada HTML generado y verificar todos los puntos
Si hay errores, devolver a la fase correspondiente para corrección
REGLAS CRÍTICAS PARA TODOS LOS AGENTES
REUTILIZARCORPORATE_CSS de lib/pdf_generator.py — no reinventar estilos
NUNCA eliminar tildes o eñes del texto (ni siquiera "preventivamente")
SIEMPREpython -X utf8 + sys.stdout.reconfigure(encoding='utf-8') en Windows
SIEMPRE formato numérico español: 1.234,56 (punto miles, coma decimal)
SIEMPRE colores HEX exactos de la paleta (no aproximados)
NO crear dependencias locales — todo via CDN
NO crear archivos innecesarios — ceñirse al plan
NO modificar archivos existentes excepto los listados en Fase 4
Leer config/GUIA_ESTILO_VISUAL.md antes de implementar cualquier visual
Leer lib/pdf_generator.py antes de escribir CSS
RESULTADO ESPERADO
Al finalizar las 5 fases, el sistema debe poder:
Usuario: "Hazme un dashboard con datos de comercio España-EEUU"
↓
Claude: Recopila datos → genera HTML → abre en navegador
↓
Archivo: outputs/html/dashboard_comercio_espana_eeuu_20260329.html
- 150-300KB, autocontenido
- KPIs interactivos
- Gráficos Chart.js con tooltips
- Tablas con hover
- Branding AmCham perfecto
- Responsive + print-ready
Bloques visuales con iconos, números grandes, paleta semántica
Requisitos de cada plantilla:
HTML5 válido y autocontenido (un solo archivo, sin imports locales)
Responsive: funciona en desktop (1200px+), tablet (768px), y móvil (375px)
Tailwind para layout, CSS custom para branding AmCham sobre Tailwind
Logo AmCham como SVG inline en el header (no como imagen externa)
Footer con: fuentes, fecha de generación, clasificación, "AmCham Spain OS"
Idioma: todo en español con tildes y eñes correctas
Skill: .claude/skills/html-artifact.md
# Skill: Generador de Artefactos HTML## Activación-"hazme un dashboard", "genera un HTML interactivo", "quiero ver esto en el navegador"
-"artefacto HTML", "visualización interactiva", "HTML con gráficos"
-/artifact [tipo] [tema]
## Tipos disponibles-dashboard: KPIs + gráficos + tablas (para datos cuantitativos)
-report: Informe ejecutivo interactivo (para documentos largos)
-chart: Solo gráficos Chart.js (para visualización de datos pura)
-brief: Briefing 1-página (para resúmenes rápidos)
-infographic: Bloques visuales con datos (para comunicación visual)
## Flujo1. Detectar tipo de artefacto según el contexto
2. Si hay datos: estructurarlos en formato {kpis, charts, tables}
3. Si es markdown existente: usar generate_from_markdown()
4. Generar HTML con lib/html_artifact.py
5. Abrir automáticamente en navegador
6. Informar: ruta del archivo + peso + tipo generado
## Integración-Puede usarse tras /research para visualizar resultados
-Puede usarse tras /generate para versión HTML interactiva
-Los .html generados se catalogan automáticamente en Notion (rule catalog-sync)
## Módulo
lib/html_artifact.py
Comando: .claude/commands/artifact.md
Genera un artefacto HTML autocontenido e interactivo.
Uso: /artifact [tipo] [tema]
Tipos: dashboard | report | chart | brief | infographic
Ejemplos:
/artifact dashboard "Comercio bilateral España-EEUU 2024"
/artifact report → convierte el último output .md en HTML interactivo
/artifact chart "Evolución PIB España vs UE 2020-2024"
/artifact brief "Resumen AI Act para comité Economía Digital"
El archivo se genera en outputs/html/ y se abre automáticamente en el navegador.
Demo CLI
El módulo debe ser ejecutable directamente para testing:
pythonlib/html_artifact.py--demo
# Genera outputs/html/demo_dashboard.html con datos de ejemplo y lo abre en el navegador
pythonlib/html_artifact.py--demo--typereport
# Genera outputs/html/demo_report.html
pythonlib/html_artifact.py--demo--typechart
# etc.
FASES DE IMPLEMENTACIÓN
Fase 1: Módulo Core (lib/html_artifact.py)
Agente: Desarrollador backend Python
Entregable:lib/html_artifact.py funcional con clase HtmlArtifactCriterios de aceptación:
Importa y reutiliza CORPORATE_CSS de pdf_generator.py
Convierte Markdown a HTML (con markdown2 como en pdf_generator)
Genera HTML autocontenido con CDNs de Tailwind, Chart.js, Google Fonts
Soporta los 5 tipos de artefacto
Maneja data dict para KPIs, charts y tables
Genera Chart.js configs correctas embebidas en <script>
Nombre de archivo: {tipo}_{slug_titulo}_{YYYYMMDD}.html
auto_open=True abre el archivo con webbrowser.open()
Encoding UTF-8 correcto en Windows (sys.stdout.reconfigure)
Ejecutable como CLI: python lib/html_artifact.py --demo [--type TYPE]
Auditoría del Director:
Verificar que NO se reinventa CSS (debe importar de pdf_generator)
Verificar que el HTML generado es válido y autocontenido
Verificar que --demo genera y abre un HTML correcto
Fase 2: Plantillas HTML (templates/html-artifact/)
Agente: Desarrollador frontend / diseñador HTML
Entregable: 6 archivos HTML en templates/html-artifact/Criterios de aceptación:
base.html con estructura completa (head, header, body, footer)
Tailwind CSS via Play CDN para layout responsive
CSS custom sobre Tailwind para branding AmCham (colores exactos HEX)
infographic.html: bloques visuales con números grandes y colores semánticos
Todas las plantillas usan Playfair Display (títulos) + DM Sans (cuerpo)
Auditoría del Director:
Abrir cada plantilla en Chrome y verificar rendering
Verificar responsive con DevTools (375px, 768px, 1200px)
Verificar print preview (Ctrl+P)
Verificar que los colores coinciden EXACTAMENTE con la guía visual
Fase 3: Skill + Comando + Directorio
Agente: Integrador de sistema
Entregable:.claude/skills/html-artifact.md, .claude/commands/artifact.md, directorio outputs/html/Criterios de aceptación:
Skill describe activación, tipos, flujo e integración
Comando /artifact con sintaxis y ejemplos
Directorio outputs/html/ creado (con .gitkeep)
Auditoría del Director:
Verificar coherencia entre skill, comando y módulo Python
Fase 4: Documentación y registro
Agente: Documentador
Entregable: Actualizaciones a CLAUDE.md, commands-list.md, quick-references.md
Archivos a modificar:
.claude/rules/20-reference/commands-list.md → añadir /artifact en sección de comandos
.claude/rules/20-reference/quick-references.md → añadir referencia a skill y módulo
CLAUDE.md → añadir sección "Artefactos HTML" en la documentación principal
Criterios de aceptación:
/artifact aparece en commands-list con descripción y tipos
quick-references incluye skill, módulo y plantillas
CLAUDE.md documenta la capacidad con routing table actualizada
Auditoría del Director:
Verificar que la documentación es consistente entre los 3 archivos
Fase 5: Test End-to-End
Agente: QA / Tester
Entregable: Ejecución exitosa de --demo para los 5 tipos
Tests:
# Test 1: Demo dashboard (caso principal)
pythonlib/html_artifact.py--demo--typedashboard
# Test 2: Demo report
pythonlib/html_artifact.py--demo--typereport
# Test 3: Demo chart
pythonlib/html_artifact.py--demo--typechart
# Test 4: Demo brief
pythonlib/html_artifact.py--demo--typebrief
# Test 5: Demo infographic
pythonlib/html_artifact.py--demo--typeinfographic
Verificaciones por cada HTML generado:
Se abre en el navegador sin errores de consola (F12)
Los gráficos Chart.js renderizan correctamente con tooltips
Los colores coinciden con la paleta corporativa
Las tipografías cargan (Playfair Display + DM Sans)
Es responsive (redimensionar ventana)
Print preview funciona (Ctrl+P)
El archivo pesa < 500KB
Formato numérico español (1.234,56)
Fuentes citadas en el footer
Fecha en formato DD/MM/YYYY
Auditoría del Director:
Abrir cada HTML generado y verificar todos los puntos
Si hay errores, devolver a la fase correspondiente para corrección
REGLAS CRÍTICAS PARA TODOS LOS AGENTES
REUTILIZARCORPORATE_CSS de lib/pdf_generator.py — no reinventar estilos
NUNCA eliminar tildes o eñes del texto (ni siquiera "preventivamente")
SIEMPREpython -X utf8 + sys.stdout.reconfigure(encoding='utf-8') en Windows
SIEMPRE formato numérico español: 1.234,56 (punto miles, coma decimal)
SIEMPRE colores HEX exactos de la paleta (no aproximados)
NO crear dependencias locales — todo via CDN
NO crear archivos innecesarios — ceñirse al plan
NO modificar archivos existentes excepto los listados en Fase 4
Leer config/GUIA_ESTILO_VISUAL.md antes de implementar cualquier visual
Leer lib/pdf_generator.py antes de escribir CSS
RESULTADO ESPERADO
Al finalizar las 5 fases, el sistema debe poder:
Usuario: "Hazme un dashboard con datos de comercio España-EEUU"
↓
Claude: Recopila datos → genera HTML → abre en navegador
↓
Archivo: outputs/html/dashboard_comercio_espana_eeuu_20260329.html
- 150-300KB, autocontenido
- KPIs interactivos
- Gráficos Chart.js con tooltips
- Tablas con hover
- Branding AmCham perfecto
- Responsive + print-ready
, ,
Resumen ejecutivo, findings con iconos, timeline
infographic.html
Hereda base +
Prompt de Implementación: Generador de Artefactos HTML Autocontenidos
Para usar en: Nueva instancia de Claude Code con contexto fresco
Modo de trabajo: Director de proyecto + equipo de agentes
Fecha de creación: 29/03/2026
INSTRUCCIÓN PRINCIPAL
Necesito implementar una nueva capacidad para AmCham Spain OS: generación de artefactos HTML autocontenidos — archivos .html únicos que se abren en cualquier navegador sin servidor, con gráficos interactivos, branding corporativo y datos embebidos.
Trabaja como Director de Proyecto. En cada fase:
Delega la implementación a agentes especializados (en paralelo cuando sea posible)
Audita el resultado de cada agente antes de pasar a la siguiente fase
Verifica que el código cumple los estándares del repositorio
No avances a la fase siguiente hasta que la actual esté validada
CONTEXTO DEL REPOSITORIO
Qué es AmCham Spain OS
Sistema operativo digital de la Cámara de Comercio de EE.UU. en España. Genera documentos ejecutivos, investigaciones, briefings y visualizaciones de datos para 5 comités temáticos.
Colores:
Azul Marino: #00247D (Pantone 280) — títulos, headers, fondos principales
Rojo Corporativo: #D1232A (Pantone 186) — acentos, CTAs, alertas
Azul Claro: #8FACD0 (Pantone 2717) — elementos decorativos
Negro: #000000 — cuerpo de texto
Gris Claro: #D3D3D3 — fondos secundarios
Blanco: #FFFFFF — fondos principales
Semánticos (gráficos):
Positivo: #27ae60 Negativo: #e74c3c Alerta: #f39c12
Tipografías:
Títulos: Playfair Display (serif) — Google Fonts
Cuerpo: DM Sans (sans-serif) — Google Fonts
Formato numérico: español (1.234,56 — punto miles, coma decimal)
Estructura de directorios relevante
amchamspain-os-main/
├── lib/ # Bibliotecas Python
│ ├── pdf_generator.py # CORPORATE_CSS aquí
│ ├── template_engine.py # Motor
│ ├── datawrapper_client.py # Referencia de cómo se generan gráficos
│ └── html_artifact.py # ← CREAR AQUÍ
├── templates/
│ ├── html-artifact/ # ← CREAR AQUÍ (plantillas)
│ └── briefing-ejecutivo/ # Referencia de estructura template
├── .claude/
│ ├── skills/ # Skills conversacionales
│ ├── commands/ # Comandos /slash
│ └── rules/ # Reglas del sistema
├── outputs/
│ └── html/ # ← CREAR AQUÍ (directorio de salida)
├── config/
│ └── GUIA_ESTILO_VISUAL.md # Biblia visual
└── CLAUDE.md # Hub de navegación del sistema
ESPECIFICACIÓN TÉCNICA
Archivo principal: lib/html_artifact.py
Clase HtmlArtifact con estos métodos públicos:
classHtmlArtifact:"""Genera archivos HTML autocontenidos con branding AmCham Spain."""ARTIFACT_TYPES=["dashboard","report","infographic","chart","brief"]defgenerate(self,content:str,# Markdown o HTML del cuerpoartifact_type:str,# Uno de ARTIFACT_TYPEStitle:str,# Título del documentosubtitle:str="",# Subtítulo opcionaldata:dict|None=None,# Datos para Chart.js {charts: [...]}sources:list[str]=[],# Fuentes citadasclassification:str="Uso Interno",auto_open:bool=True,# Abrir en navegadoroutput_dir:str="outputs/html",)->Path:"""Genera .html y retorna la ruta del archivo creado."""defgenerate_from_markdown(self,md_path:str,# Ruta a archivo .md existenteartifact_type:str="report",data:dict|None=None,auto_open:bool=True,)->Path:"""Convierte un .md existente del repo en HTML interactivo."""
Estructura del dict data para gráficos:
data={"kpis":[{"label":"Exportaciones","value":"16.800M EUR","change":"+5,2%","trend":"up"},{"label":"Importaciones","value":"12.340M EUR","change":"+3,1%","trend":"up"},],"charts":[{"id":"chart-1","type":"bar",# bar | line | doughnut | radar | polarArea"title":"Top 10 Productos","labels":["Automóviles","Maquinaria",...],"datasets":[{"label":"2024","data":[3200,2800,...],"color":"#00247D"},{"label":"2023","data":[2900,2600,...],"color":"#8FACD0"},]},{"id":"chart-2","type":"line","title":"Evolución 2020-2024","labels":["2020","2021","2022","2023","2024"],"datasets":[{"label":"Exportaciones","data":[14200,14800,15300,16000,16800],"color":"#00247D"},{"label":"Importaciones","data":[10500,11200,11800,12000,12340],"color":"#D1232A"},]}],"tables":[{"id":"table-1","title":"Detalle por Sector","headers":["Sector","Exportaciones","Importaciones","Balanza"],"rows":[["Automóvil","3.200M","1.800M","+1.400M"],["Maquinaria","2.800M","2.100M","+700M"],]}]}
CDNs (sin dependencias locales)
<!-- Tailwind CSS Play CDN — layout y utilidades --><scriptsrc="https://cdn.tailwindcss.com"></script><!-- Chart.js 4 — gráficos interactivos (SOLO si data.charts existe) --><scriptsrc="https://cdn.jsdelivr.net/npm/chart.js@4"></script><!-- Google Fonts — tipografías corporativas --><linkhref="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;700&family=DM+Sans:wght@400;500;700&display=swap"rel="stylesheet">
Plantillas HTML: templates/html-artifact/
6 archivos con marcadores que el generador sustituye:
Archivo
Variables clave
Componentes visuales
base.html
, , , , , ,
Header, footer, estructura base
dashboard.html
Hereda base + , ,
Grid de KPIs, gráficos Chart.js, tablas con hover
report.html
Hereda base + ,
TOC clickable, secciones colapsables con toggle
chart.html
Hereda base +
Layout de gráficos 1-col o 2-col responsive
brief.html
Hereda base + , ,
Resumen ejecutivo, findings con iconos, timeline
infographic.html
Hereda base +
Bloques visuales con iconos, números grandes, paleta semántica
Requisitos de cada plantilla:
HTML5 válido y autocontenido (un solo archivo, sin imports locales)
Responsive: funciona en desktop (1200px+), tablet (768px), y móvil (375px)
Tailwind para layout, CSS custom para branding AmCham sobre Tailwind
Logo AmCham como SVG inline en el header (no como imagen externa)
Footer con: fuentes, fecha de generación, clasificación, "AmCham Spain OS"
Idioma: todo en español con tildes y eñes correctas
Skill: .claude/skills/html-artifact.md
# Skill: Generador de Artefactos HTML## Activación-"hazme un dashboard", "genera un HTML interactivo", "quiero ver esto en el navegador"
-"artefacto HTML", "visualización interactiva", "HTML con gráficos"
-/artifact [tipo] [tema]
## Tipos disponibles-dashboard: KPIs + gráficos + tablas (para datos cuantitativos)
-report: Informe ejecutivo interactivo (para documentos largos)
-chart: Solo gráficos Chart.js (para visualización de datos pura)
-brief: Briefing 1-página (para resúmenes rápidos)
-infographic: Bloques visuales con datos (para comunicación visual)
## Flujo1. Detectar tipo de artefacto según el contexto
2. Si hay datos: estructurarlos en formato {kpis, charts, tables}
3. Si es markdown existente: usar generate_from_markdown()
4. Generar HTML con lib/html_artifact.py
5. Abrir automáticamente en navegador
6. Informar: ruta del archivo + peso + tipo generado
## Integración-Puede usarse tras /research para visualizar resultados
-Puede usarse tras /generate para versión HTML interactiva
-Los .html generados se catalogan automáticamente en Notion (rule catalog-sync)
## Módulo
lib/html_artifact.py
Comando: .claude/commands/artifact.md
Genera un artefacto HTML autocontenido e interactivo.
Uso: /artifact [tipo] [tema]
Tipos: dashboard | report | chart | brief | infographic
Ejemplos:
/artifact dashboard "Comercio bilateral España-EEUU 2024"
/artifact report → convierte el último output .md en HTML interactivo
/artifact chart "Evolución PIB España vs UE 2020-2024"
/artifact brief "Resumen AI Act para comité Economía Digital"
El archivo se genera en outputs/html/ y se abre automáticamente en el navegador.
Demo CLI
El módulo debe ser ejecutable directamente para testing:
pythonlib/html_artifact.py--demo
# Genera outputs/html/demo_dashboard.html con datos de ejemplo y lo abre en el navegador
pythonlib/html_artifact.py--demo--typereport
# Genera outputs/html/demo_report.html
pythonlib/html_artifact.py--demo--typechart
# etc.
FASES DE IMPLEMENTACIÓN
Fase 1: Módulo Core (lib/html_artifact.py)
Agente: Desarrollador backend Python
Entregable:lib/html_artifact.py funcional con clase HtmlArtifactCriterios de aceptación:
Importa y reutiliza CORPORATE_CSS de pdf_generator.py
Convierte Markdown a HTML (con markdown2 como en pdf_generator)
Genera HTML autocontenido con CDNs de Tailwind, Chart.js, Google Fonts
Soporta los 5 tipos de artefacto
Maneja data dict para KPIs, charts y tables
Genera Chart.js configs correctas embebidas en <script>
Nombre de archivo: {tipo}_{slug_titulo}_{YYYYMMDD}.html
auto_open=True abre el archivo con webbrowser.open()
Encoding UTF-8 correcto en Windows (sys.stdout.reconfigure)
Ejecutable como CLI: python lib/html_artifact.py --demo [--type TYPE]
Auditoría del Director:
Verificar que NO se reinventa CSS (debe importar de pdf_generator)
Verificar que el HTML generado es válido y autocontenido
Verificar que --demo genera y abre un HTML correcto
Fase 2: Plantillas HTML (templates/html-artifact/)
Agente: Desarrollador frontend / diseñador HTML
Entregable: 6 archivos HTML en templates/html-artifact/Criterios de aceptación:
base.html con estructura completa (head, header, body, footer)
Tailwind CSS via Play CDN para layout responsive
CSS custom sobre Tailwind para branding AmCham (colores exactos HEX)
infographic.html: bloques visuales con números grandes y colores semánticos
Todas las plantillas usan Playfair Display (títulos) + DM Sans (cuerpo)
Auditoría del Director:
Abrir cada plantilla en Chrome y verificar rendering
Verificar responsive con DevTools (375px, 768px, 1200px)
Verificar print preview (Ctrl+P)
Verificar que los colores coinciden EXACTAMENTE con la guía visual
Fase 3: Skill + Comando + Directorio
Agente: Integrador de sistema
Entregable:.claude/skills/html-artifact.md, .claude/commands/artifact.md, directorio outputs/html/Criterios de aceptación:
Skill describe activación, tipos, flujo e integración
Comando /artifact con sintaxis y ejemplos
Directorio outputs/html/ creado (con .gitkeep)
Auditoría del Director:
Verificar coherencia entre skill, comando y módulo Python
Fase 4: Documentación y registro
Agente: Documentador
Entregable: Actualizaciones a CLAUDE.md, commands-list.md, quick-references.md
Archivos a modificar:
.claude/rules/20-reference/commands-list.md → añadir /artifact en sección de comandos
.claude/rules/20-reference/quick-references.md → añadir referencia a skill y módulo
CLAUDE.md → añadir sección "Artefactos HTML" en la documentación principal
Criterios de aceptación:
/artifact aparece en commands-list con descripción y tipos
quick-references incluye skill, módulo y plantillas
CLAUDE.md documenta la capacidad con routing table actualizada
Auditoría del Director:
Verificar que la documentación es consistente entre los 3 archivos
Fase 5: Test End-to-End
Agente: QA / Tester
Entregable: Ejecución exitosa de --demo para los 5 tipos
Tests:
# Test 1: Demo dashboard (caso principal)
pythonlib/html_artifact.py--demo--typedashboard
# Test 2: Demo report
pythonlib/html_artifact.py--demo--typereport
# Test 3: Demo chart
pythonlib/html_artifact.py--demo--typechart
# Test 4: Demo brief
pythonlib/html_artifact.py--demo--typebrief
# Test 5: Demo infographic
pythonlib/html_artifact.py--demo--typeinfographic
Verificaciones por cada HTML generado:
Se abre en el navegador sin errores de consola (F12)
Los gráficos Chart.js renderizan correctamente con tooltips
Los colores coinciden con la paleta corporativa
Las tipografías cargan (Playfair Display + DM Sans)
Es responsive (redimensionar ventana)
Print preview funciona (Ctrl+P)
El archivo pesa < 500KB
Formato numérico español (1.234,56)
Fuentes citadas en el footer
Fecha en formato DD/MM/YYYY
Auditoría del Director:
Abrir cada HTML generado y verificar todos los puntos
Si hay errores, devolver a la fase correspondiente para corrección
REGLAS CRÍTICAS PARA TODOS LOS AGENTES
REUTILIZARCORPORATE_CSS de lib/pdf_generator.py — no reinventar estilos
NUNCA eliminar tildes o eñes del texto (ni siquiera "preventivamente")
SIEMPREpython -X utf8 + sys.stdout.reconfigure(encoding='utf-8') en Windows
SIEMPRE formato numérico español: 1.234,56 (punto miles, coma decimal)
SIEMPRE colores HEX exactos de la paleta (no aproximados)
NO crear dependencias locales — todo via CDN
NO crear archivos innecesarios — ceñirse al plan
NO modificar archivos existentes excepto los listados en Fase 4
Leer config/GUIA_ESTILO_VISUAL.md antes de implementar cualquier visual
Leer lib/pdf_generator.py antes de escribir CSS
RESULTADO ESPERADO
Al finalizar las 5 fases, el sistema debe poder:
Usuario: "Hazme un dashboard con datos de comercio España-EEUU"
↓
Claude: Recopila datos → genera HTML → abre en navegador
↓
Archivo: outputs/html/dashboard_comercio_espana_eeuu_20260329.html
- 150-300KB, autocontenido
- KPIs interactivos
- Gráficos Chart.js con tooltips
- Tablas con hover
- Branding AmCham perfecto
- Responsive + print-ready
Bloques visuales con iconos, números grandes, paleta semántica
Requisitos de cada plantilla:
HTML5 válido y autocontenido (un solo archivo, sin imports locales)
Responsive: funciona en desktop (1200px+), tablet (768px), y móvil (375px)
Tailwind para layout, CSS custom para branding AmCham sobre Tailwind
Logo AmCham como SVG inline en el header (no como imagen externa)
Footer con: fuentes, fecha de generación, clasificación, "AmCham Spain OS"
Idioma: todo en español con tildes y eñes correctas
Skill: .claude/skills/html-artifact.md
# Skill: Generador de Artefactos HTML## Activación-"hazme un dashboard", "genera un HTML interactivo", "quiero ver esto en el navegador"
-"artefacto HTML", "visualización interactiva", "HTML con gráficos"
-/artifact [tipo] [tema]
## Tipos disponibles-dashboard: KPIs + gráficos + tablas (para datos cuantitativos)
-report: Informe ejecutivo interactivo (para documentos largos)
-chart: Solo gráficos Chart.js (para visualización de datos pura)
-brief: Briefing 1-página (para resúmenes rápidos)
-infographic: Bloques visuales con datos (para comunicación visual)
## Flujo1. Detectar tipo de artefacto según el contexto
2. Si hay datos: estructurarlos en formato {kpis, charts, tables}
3. Si es markdown existente: usar generate_from_markdown()
4. Generar HTML con lib/html_artifact.py
5. Abrir automáticamente en navegador
6. Informar: ruta del archivo + peso + tipo generado
## Integración-Puede usarse tras /research para visualizar resultados
-Puede usarse tras /generate para versión HTML interactiva
-Los .html generados se catalogan automáticamente en Notion (rule catalog-sync)
## Módulo
lib/html_artifact.py
Comando: .claude/commands/artifact.md
Genera un artefacto HTML autocontenido e interactivo.
Uso: /artifact [tipo] [tema]
Tipos: dashboard | report | chart | brief | infographic
Ejemplos:
/artifact dashboard "Comercio bilateral España-EEUU 2024"
/artifact report → convierte el último output .md en HTML interactivo
/artifact chart "Evolución PIB España vs UE 2020-2024"
/artifact brief "Resumen AI Act para comité Economía Digital"
El archivo se genera en outputs/html/ y se abre automáticamente en el navegador.
Demo CLI
El módulo debe ser ejecutable directamente para testing:
pythonlib/html_artifact.py--demo
# Genera outputs/html/demo_dashboard.html con datos de ejemplo y lo abre en el navegador
pythonlib/html_artifact.py--demo--typereport
# Genera outputs/html/demo_report.html
pythonlib/html_artifact.py--demo--typechart
# etc.
FASES DE IMPLEMENTACIÓN
Fase 1: Módulo Core (lib/html_artifact.py)
Agente: Desarrollador backend Python
Entregable:lib/html_artifact.py funcional con clase HtmlArtifactCriterios de aceptación:
Importa y reutiliza CORPORATE_CSS de pdf_generator.py
Convierte Markdown a HTML (con markdown2 como en pdf_generator)
Genera HTML autocontenido con CDNs de Tailwind, Chart.js, Google Fonts
Soporta los 5 tipos de artefacto
Maneja data dict para KPIs, charts y tables
Genera Chart.js configs correctas embebidas en <script>
Nombre de archivo: {tipo}_{slug_titulo}_{YYYYMMDD}.html
auto_open=True abre el archivo con webbrowser.open()
Encoding UTF-8 correcto en Windows (sys.stdout.reconfigure)
Ejecutable como CLI: python lib/html_artifact.py --demo [--type TYPE]
Auditoría del Director:
Verificar que NO se reinventa CSS (debe importar de pdf_generator)
Verificar que el HTML generado es válido y autocontenido
Verificar que --demo genera y abre un HTML correcto
Fase 2: Plantillas HTML (templates/html-artifact/)
Agente: Desarrollador frontend / diseñador HTML
Entregable: 6 archivos HTML en templates/html-artifact/Criterios de aceptación:
base.html con estructura completa (head, header, body, footer)
Tailwind CSS via Play CDN para layout responsive
CSS custom sobre Tailwind para branding AmCham (colores exactos HEX)
infographic.html: bloques visuales con números grandes y colores semánticos
Todas las plantillas usan Playfair Display (títulos) + DM Sans (cuerpo)
Auditoría del Director:
Abrir cada plantilla en Chrome y verificar rendering
Verificar responsive con DevTools (375px, 768px, 1200px)
Verificar print preview (Ctrl+P)
Verificar que los colores coinciden EXACTAMENTE con la guía visual
Fase 3: Skill + Comando + Directorio
Agente: Integrador de sistema
Entregable:.claude/skills/html-artifact.md, .claude/commands/artifact.md, directorio outputs/html/Criterios de aceptación:
Skill describe activación, tipos, flujo e integración
Comando /artifact con sintaxis y ejemplos
Directorio outputs/html/ creado (con .gitkeep)
Auditoría del Director:
Verificar coherencia entre skill, comando y módulo Python
Fase 4: Documentación y registro
Agente: Documentador
Entregable: Actualizaciones a CLAUDE.md, commands-list.md, quick-references.md
Archivos a modificar:
.claude/rules/20-reference/commands-list.md → añadir /artifact en sección de comandos
.claude/rules/20-reference/quick-references.md → añadir referencia a skill y módulo
CLAUDE.md → añadir sección "Artefactos HTML" en la documentación principal
Criterios de aceptación:
/artifact aparece en commands-list con descripción y tipos
quick-references incluye skill, módulo y plantillas
CLAUDE.md documenta la capacidad con routing table actualizada
Auditoría del Director:
Verificar que la documentación es consistente entre los 3 archivos
Fase 5: Test End-to-End
Agente: QA / Tester
Entregable: Ejecución exitosa de --demo para los 5 tipos
Tests:
# Test 1: Demo dashboard (caso principal)
pythonlib/html_artifact.py--demo--typedashboard
# Test 2: Demo report
pythonlib/html_artifact.py--demo--typereport
# Test 3: Demo chart
pythonlib/html_artifact.py--demo--typechart
# Test 4: Demo brief
pythonlib/html_artifact.py--demo--typebrief
# Test 5: Demo infographic
pythonlib/html_artifact.py--demo--typeinfographic
Verificaciones por cada HTML generado:
Se abre en el navegador sin errores de consola (F12)
Los gráficos Chart.js renderizan correctamente con tooltips
Los colores coinciden con la paleta corporativa
Las tipografías cargan (Playfair Display + DM Sans)
Es responsive (redimensionar ventana)
Print preview funciona (Ctrl+P)
El archivo pesa < 500KB
Formato numérico español (1.234,56)
Fuentes citadas en el footer
Fecha en formato DD/MM/YYYY
Auditoría del Director:
Abrir cada HTML generado y verificar todos los puntos
Si hay errores, devolver a la fase correspondiente para corrección
REGLAS CRÍTICAS PARA TODOS LOS AGENTES
REUTILIZARCORPORATE_CSS de lib/pdf_generator.py — no reinventar estilos
NUNCA eliminar tildes o eñes del texto (ni siquiera "preventivamente")
SIEMPREpython -X utf8 + sys.stdout.reconfigure(encoding='utf-8') en Windows
SIEMPRE formato numérico español: 1.234,56 (punto miles, coma decimal)
SIEMPRE colores HEX exactos de la paleta (no aproximados)
NO crear dependencias locales — todo via CDN
NO crear archivos innecesarios — ceñirse al plan
NO modificar archivos existentes excepto los listados en Fase 4
Leer config/GUIA_ESTILO_VISUAL.md antes de implementar cualquier visual
Leer lib/pdf_generator.py antes de escribir CSS
RESULTADO ESPERADO
Al finalizar las 5 fases, el sistema debe poder:
Usuario: "Hazme un dashboard con datos de comercio España-EEUU"
↓
Claude: Recopila datos → genera HTML → abre en navegador
↓
Archivo: outputs/html/dashboard_comercio_espana_eeuu_20260329.html
- 150-300KB, autocontenido
- KPIs interactivos
- Gráficos Chart.js con tooltips
- Tablas con hover
- Branding AmCham perfecto
- Responsive + print-ready