diff --git a/planeacion/Horas-etapas-Balam-2026-07-28.xlsx b/planeacion/Horas-etapas-Balam-2026-07-28.xlsx
new file mode 100644
index 0000000..d664396
Binary files /dev/null and b/planeacion/Horas-etapas-Balam-2026-07-28.xlsx differ
diff --git a/planeacion/generar_horas_etapas_2026_07_28.py b/planeacion/generar_horas_etapas_2026_07_28.py
new file mode 100644
index 0000000..04168fb
--- /dev/null
+++ b/planeacion/generar_horas_etapas_2026_07_28.py
@@ -0,0 +1,187 @@
+"""Genera Horas-etapas-Balam-2026-07-28.xlsx — resumen de horas POR ETAPA para Erika.
+
+Pedido por Erika el 27-jul (6:46 pm: "las ya completas más que nada para ver
+cuántas son") y aclarado el 28-jul (8:36 am): el Excel es el insumo del conteo
+de horas de cada etapa "sobre todo para la FACTURACIÓN correspondiente".
+
+Las horas trabajadas se leen del Excel interno (`Plan-actividades-avance-2026-07-27.xlsx`),
+que a su vez sale de `Seguimiento-horas.csv` — una sola fuente de datos, igual que
+`generar_resumen_erika_2026_07_27.py`. Los rangos estimados y montos son los
+contractuales de la propuesta v1.2 (§4) y de la Adenda 01 (Jira → BIND).
+"""
+import os
+from datetime import date
+
+import openpyxl
+from openpyxl.styles import Alignment, Border, Font, PatternFill, Side
+from openpyxl.utils import get_column_letter
+
+BASE = os.path.dirname(os.path.abspath(__file__))
+SRC = os.path.join(BASE, "Plan-actividades-avance-2026-07-27.xlsx")
+DST = os.path.join(BASE, "Horas-etapas-Balam-2026-07-28.xlsx")
+EMISION = date(2026, 7, 28) # fecha de emisión; horas al corte del lunes 27-jul
+TARIFA = 600 # MXN/h + IVA (propuesta v1.2 §3.3)
+
+# Marca Balam
+CAFE, AMARILLO, CREMA = "331F0E", "F7BD0C", "FDF3D8"
+V_FILL, V_FONT = "C6EFCE", "006100" # verde
+A_FILL, A_FONT = "FFEB9C", "9C6500" # amarillo
+GRIS = "595959"
+BORDE = "D9D9D9"
+
+thin = Side(style="thin", color=BORDE)
+box = Border(left=thin, right=thin, top=thin, bottom=thin)
+
+# --- Horas trabajadas desde el Excel interno (única fuente) -------------------
+wsrc = openpyxl.load_workbook(SRC).active
+trab = {}
+for row in range(2, wsrc.max_row + 1):
+ nombre = str(wsrc.cell(row=row, column=1).value or "").strip()
+ if nombre.startswith(("Etapa 0", "Etapa 1", "Integracion")):
+ clave = "TOTAL" if nombre.startswith("Integracion") else nombre.split(" ")[0] + nombre.split(" ")[1]
+ trab[clave] = float(wsrc.cell(row=row, column=10).value or 0)
+
+E0, E1, TOTAL = trab["Etapa0"], trab["Etapa1"], trab["TOTAL"]
+assert abs((E0 + E1) - TOTAL) < 0.01, f"Horas no cuadran: {E0} + {E1} != {TOTAL}"
+
+# --- Filas del resumen --------------------------------------------------------
+# (etapa, estatus, kind_estatus, est_min, est_max, trabajadas o None)
+ETAPAS = [
+ ("Etapa 0 — Discovery, infraestructura y prototipo visual",
+ "✅ Completada y validada (24-jul)", "ok", 18, 22, E0),
+ ("Etapa 1 — Plataforma base y sincronización con BIND",
+ "🟡 En curso · 6 de 8 entregables terminados", "curso", 32, 39, E1),
+ ("Etapa 2 — Facturación (consulta y emisión), catálogo y multimoneda",
+ "⚪ Próxima", "prox", 38, 46, None),
+ ("Etapa 3 — Cobranza, tablero, reportes y cierre",
+ "⚪ Próxima", "prox", 24, 29, None),
+]
+ADENDA = ("Adicional — Integración Jira → BIND (Adenda 01)",
+ "📋 En aprobación · no estaba en la propuesta original", "prox", 9, 12, None)
+
+SUB_MIN = sum(e[3] for e in ETAPAS) # 112
+SUB_MAX = sum(e[4] for e in ETAPAS) # 136
+TOT_MIN, TOT_MAX = SUB_MIN + ADENDA[3], SUB_MAX + ADENDA[4] # 121, 148
+
+
+def dinero(h):
+ return f"${h * TARIFA:,.0f}"
+
+
+def rango_dinero(lo, hi):
+ return f"{dinero(lo)} – {dinero(hi)}"
+
+
+# --- Construcción -------------------------------------------------------------
+wb = openpyxl.Workbook()
+ws = wb.active
+ws.title = "Horas por etapa"
+
+ws["A1"] = "Proyecto Balam · Plataforma de Automatización Financiera"
+ws["A1"].font = Font(bold=True, size=14, color=CAFE)
+ws["A2"] = ("Horas por etapa — emitido el 28-jul-2026 · horas trabajadas al corte "
+ "del lunes 27-jul-2026 · tarifa $600 MXN/h + IVA")
+ws["A2"].font = Font(size=10, italic=True, color=GRIS)
+
+ENC = ["Etapa", "Estatus", "Horas estimadas", "Horas trabajadas\n(al 27-jul)",
+ "Importe estimado\n(MXN, antes de IVA)"]
+ANCHOS = [52, 34, 15, 15, 20]
+FILA_ENC = 4
+
+for i, (txt, ancho) in enumerate(zip(ENC, ANCHOS), start=1):
+ c = ws.cell(row=FILA_ENC, column=i, value=txt)
+ c.font = Font(bold=True, size=10, color=CAFE)
+ c.fill = PatternFill("solid", fgColor=AMARILLO)
+ c.alignment = Alignment(horizontal="center", vertical="center", wrap_text=True)
+ c.border = box
+ ws.column_dimensions[get_column_letter(i)].width = ancho
+ws.row_dimensions[FILA_ENC].height = 28
+
+
+def fila(r, nombre, estatus, kind, est, trabajadas, importe, bold=False, fill=None):
+ c = ws.cell(row=r, column=1, value=nombre)
+ c.font = Font(bold=bold, size=10, color=CAFE)
+ c.alignment = Alignment(vertical="center", wrap_text=True)
+
+ cs = ws.cell(row=r, column=2, value=estatus)
+ cs.font = Font(size=9, color=GRIS)
+ cs.alignment = Alignment(vertical="center", wrap_text=True)
+ if kind == "ok":
+ cs.font = Font(size=9, color=V_FONT); cs.fill = PatternFill("solid", fgColor=V_FILL)
+ elif kind == "curso":
+ cs.font = Font(size=9, color=A_FONT); cs.fill = PatternFill("solid", fgColor=A_FILL)
+
+ ce = ws.cell(row=r, column=3, value=est)
+ ce.font = Font(bold=bold, size=10, color=CAFE)
+ ce.alignment = Alignment(horizontal="center", vertical="center")
+
+ ct = ws.cell(row=r, column=4, value=trabajadas if trabajadas is not None else "—")
+ if trabajadas is not None:
+ ct.number_format = "0.00"
+ ct.font = Font(bold=bold or trabajadas is not None, size=10, color=CAFE)
+ ct.alignment = Alignment(horizontal="center", vertical="center")
+
+ ci = ws.cell(row=r, column=5, value=importe)
+ ci.font = Font(bold=bold, size=10, color=CAFE)
+ ci.alignment = Alignment(horizontal="right", vertical="center")
+
+ for col in range(1, 6):
+ ws.cell(row=r, column=col).border = box
+ if fill:
+ ws.cell(row=r, column=col).fill = PatternFill("solid", fgColor=fill)
+ ws.row_dimensions[r].height = 26
+
+
+r = FILA_ENC + 1
+for nombre, estatus, kind, lo, hi, t in ETAPAS:
+ fila(r, nombre, estatus, kind, f"{lo} – {hi}", t, rango_dinero(lo, hi))
+ r += 1
+
+fila(r, "Subtotal — propuesta v1.2", "", "sub", f"{SUB_MIN} – {SUB_MAX}", TOTAL,
+ rango_dinero(SUB_MIN, SUB_MAX), bold=True, fill=CREMA)
+r += 1
+
+nombre, estatus, kind, lo, hi, t = ADENDA
+fila(r, nombre, estatus, kind, f"{lo} – {hi}", t, rango_dinero(lo, hi))
+r += 1
+
+fila(r, "Total con Adenda 01", "", "tot", f"{TOT_MIN} – {TOT_MAX}", TOTAL,
+ rango_dinero(TOT_MIN, TOT_MAX), bold=True, fill=CREMA)
+r += 2
+
+# --- Notas --------------------------------------------------------------------
+notas = [
+ f"Horas trabajadas al corte del lunes 27-jul-2026, del control de horas del proyecto "
+ f"(mismas cifras del Excel de avance enviado el 27-jul): Etapa 0 {E0:.2f} h · "
+ f"Etapa 1 {E1:.2f} h · total {TOTAL:.2f} h.",
+ f"La Etapa 0 cerró en {E0:.2f} h, dentro del rango contractual de 18–22 h "
+ f"(a $600/h: {dinero(E0)} antes de IVA).",
+ "Referencia de facturación (propuesta v1.2, §3.3): la facturación inicial es de 30 h — "
+ "$18,000 + IVA — y cubre la Etapa 0 completa más el inicio de la Etapa 1; se emite en "
+ "cuanto se confirme el visto bueno. Los avances posteriores se facturan semanalmente "
+ "(viernes) por horas efectivamente trabajadas, con pago a 30 días naturales.",
+ "La integración Jira → BIND no estaba contemplada en la propuesta original; se "
+ "formaliza en la Adenda 01 (compartida el 28-jul) y se ejecuta tras su aprobación "
+ "por escrito.",
+ "Los rangos de horas operan con tope por etapa: al aproximarse al máximo, el trabajo "
+ "se detiene y se revisa el alcance antes de continuar.",
+]
+for txt in notas:
+ c = ws.cell(row=r, column=1, value=txt)
+ c.font = Font(italic=True, size=9, color=CAFE)
+ c.alignment = Alignment(wrap_text=True, vertical="top")
+ ws.merge_cells(start_row=r, start_column=1, end_row=r, end_column=5)
+ ws.row_dimensions[r].height = 28 if len(txt) > 120 else 16
+ r += 1
+
+ws.freeze_panes = f"A{FILA_ENC + 1}"
+ws.sheet_view.showGridLines = False
+ws.print_area = f"A1:E{r}"
+ws.page_setup.orientation = "landscape"
+ws.page_setup.fitToWidth = 1
+ws.sheet_properties.pageSetUpPr.fitToPage = True
+
+wb.save(DST)
+print("OK ->", DST)
+print(f" E0 {E0:.2f} h · E1 {E1:.2f} h · total {TOTAL:.2f} h · "
+ f"v1.2 {SUB_MIN}–{SUB_MAX} h · con adenda {TOT_MIN}–{TOT_MAX} h")
diff --git a/propuesta/01 - ADENDA-INTEGRACION-JIRA.md b/propuesta/01 - ADENDA-INTEGRACION-JIRA.md
new file mode 100644
index 0000000..047deef
--- /dev/null
+++ b/propuesta/01 - ADENDA-INTEGRACION-JIRA.md
@@ -0,0 +1,66 @@
+# Adenda 01 — Integración Jira → BIND
+## Generación automática de cotizaciones desde los tickets de facturación
+
+| | |
+|---|---|
+| **Preparada para** | Noe Rocha (CTO) · Araceli Sánchez Jiménez (CEO/Operaciones) · Erika Chávez (PM) · Pedro Alberto Ayala Elizondo (Contacto técnico) |
+| **Preparada por** | Johann Velazquez — Consultor de Software · Monterrey, N.L. |
+| **Fecha** | 28 de julio de 2026 |
+| **Documento** | Adenda 01 a la Propuesta Comercial v1.2 — solicitud de cambio conforme a la §10 (control de cambios) |
+| **Vigencia** | 30 días naturales a partir de la fecha de emisión |
+
+---
+
+## 1. Antecedente
+
+La propuesta v1.2 dejó Jira explícitamente **fuera del alcance** del MVP (§1.3 y Anexo A.4), conforme a la información disponible al momento de cotizar. Durante el Discovery y las sesiones de julio, la dirección confirmó que el proceso interno evolucionó: **hoy todo el flujo de facturación de Balam nace y se gobierna en Jira** — *"lo que no está en Jira no se procesa"* — con una bandeja dedicada (**Facturación**, llave `FAC-`) y un flujo de estatus formal que culmina en "resuelto".
+
+En la sesión del 22 de julio el CTO planteó incorporar esta conectividad como ajuste de alcance; en la validación del prototipo del 24 de julio se ratificó, y en la sesión técnica del 27 de julio con Pedro Ayala quedó confirmada la viabilidad: la API de Jira cubre **lectura y escritura** de tickets, se entregó el token de integración (**"PAF"**, vigente al 27-jul-2027) y se documentaron los límites de consumo del lado de Atlassian. La estimación preliminar (~10 h) se comunicó a la PM el 21 de julio; esta adenda la formaliza por escrito, como lo prevé el control de cambios de la propuesta.
+
+## 2. Alcance del cambio
+
+La integración agrega a la primera etapa las siguientes capacidades:
+
+1. **Conexión con la API de Jira** mediante el token PAF y lectura de los tickets de la bandeja **Facturación (`FAC-`)**, con consumo autorregulado conforme a los límites de velocidad documentados por Atlassian.
+2. **Generación automática de la cotización en BIND** cuando un ticket alcanza el estatus disparador que Balam defina (candidato natural: la entrada del ticket al proceso de facturación, previo a "resuelto"), a través de la misma **capa de escritura controlada** del MVP.
+3. **Trazabilidad ticket ↔ cotización ↔ prefactura/factura**, visible en la plataforma y registrada en la bitácora de auditoría. Los tickets leídos alimentan además la vista *"qué necesita atención"* del tablero.
+4. **Pruebas controladas:** scripts de consulta y de creación/edición sobre un registro de prueba, y una **prueba observada** con el equipo de Balam antes de habilitar la generación automática en operación (según lo acordado en la sesión del 27 de julio).
+
+> **El control fiscal no cambia.** La integración crea **cotizaciones, nunca facturas**: se mantiene la cadena acordada — cotización → prefactura → **aprobación humana** → timbrado por el PAC de BIND — con modo de simulación (*dry-run*), feature flag y registro en bitácora. No existe timbrado automático.
+
+## 3. Qué no incluye
+
+- **Alta automática de clientes en BIND.** Si el cliente del ticket no existe en BIND, la plataforma lo **detecta y lo notifica**; darlo de alta automáticamente es una decisión de proceso aún abierta y, de aprobarse, se estima por separado.
+- **Tickets con múltiples facturas.** El supuesto de esta adenda es *un ticket → una cotización*. El manejo del caso masivo (un ticket con un listado de decenas de facturas) se define junto con Balam; si requiere desarrollo adicional, se estima por separado.
+- **Otros usos de Jira** — reporteo de horas de consultores, tableros sobre otras bandejas o el espacio comercial para pipeline de ventas — así como los módulos diferidos del Anexo B, permanecen fuera del alcance.
+
+## 4. Estimación e inversión
+
+| Concepto | Horas | Inversión (MXN) |
+|---|---|---|
+| Integración Jira → BIND: lectura de la bandeja FAC, disparador por estatus, cotización automática, trazabilidad y pruebas | 9 – 12 | $5,400 – $7,200 |
+
+- **Tarifa vigente:** $600 MXN/h + IVA (§3.3). El rango es consistente con la estimación de ~10 h comunicada el 21 de julio y opera bajo el mismo esquema de horas reales **con tope**: al aproximarse al máximo, el trabajo se detiene y se revisa con Balam.
+- **Facturación:** como el resto de los avances — semanal (viernes) por horas efectivamente trabajadas, con pago a 30 días naturales.
+- **Efecto en el total de la primera etapa:** de 112 – 136 h ($67,200 – $81,600) pasa a **121 – 148 h ($72,600 – $88,800)**, antes de IVA.
+
+## 5. Supuestos y dependencias
+
+1. **Definición del flujo de facturación** por parte de Balam (actualmente en revisión interna; sesión por agendar): de ella salen el estatus disparador y las reglas de prefactura. La implementación de esta adenda inicia una vez cerrada esa definición.
+2. **Token PAF vigente** con visibilidad de la bandeja FAC (entregado el 27 de julio) y un interlocutor técnico (Pedro) para dudas de Jira, con respuesta en menos de 48 horas.
+3. **Diagrama del flujo Jira de facturación** en tamaño legible (comprometido por Balam en la sesión del 22 de julio).
+4. **Bandeja FAC como fuente.** FAC opera como bandeja "padre" del proceso de facturación; si las pruebas muestran que algún disparador nace en otra bandeja sin reflejarse en FAC, el ajuste se revisa en conjunto.
+5. **Sin ambiente de pruebas de BIND:** toda prueba de escritura será acotada, acordada previamente y observada, como se convino con el CTO.
+
+## 6. Condiciones
+
+Todo lo no modificado por esta adenda — condiciones comerciales (§3.3), garantía de 45 días, propiedad del código, metodología de desarrollo y supuestos generales — permanece en los términos de la propuesta v1.2 y del contrato de servicios firmado. La mención de Jira como "fuera de alcance" (§1.3 y Anexo A) queda sustituida por el alcance acotado que esta adenda define.
+
+## 7. Aceptación
+
+Conforme a la §10 de la propuesta (control de cambios), esta adenda se ejecuta tras su **aprobación por escrito**; basta la confirmación por correo electrónico. No requiere un nuevo contrato.
+
+---
+
+**Johann Velazquez** · Consultor de Software
+Monterrey, Nuevo León
diff --git a/propuesta/Adenda-01-Integracion-Jira-Balam.pdf b/propuesta/Adenda-01-Integracion-Jira-Balam.pdf
new file mode 100644
index 0000000..bee4600
Binary files /dev/null and b/propuesta/Adenda-01-Integracion-Jira-Balam.pdf differ
diff --git a/propuesta/Adenda-01-Integracion-Jira.html b/propuesta/Adenda-01-Integracion-Jira.html
new file mode 100644
index 0000000..62ab6f7
--- /dev/null
+++ b/propuesta/Adenda-01-Integracion-Jira.html
@@ -0,0 +1,377 @@
+
+
+
+
+Adenda 01 — Integración Jira → BIND · Balam
+
+
+
+
+
+
+
+
+
Adenda 01 · Propuesta Comercial
+
+
+
+
Integración Jira → BIND
+
Generación automática de cotizaciones desde los tickets de facturación — Balam
+
+
+
+
+
+
+
+
+
+
+
+ La propuesta v1.2 dejó Jira explícitamente fuera del alcance del MVP (§1.3 y Anexo A.4), conforme a la información disponible al momento de cotizar. Durante el Discovery y las sesiones de julio, la dirección confirmó que el proceso interno evolucionó: hoy todo el flujo de facturación de Balam nace y se gobierna en Jira — "lo que no está en Jira no se procesa" — con una bandeja dedicada (Facturación, llave FAC-) y un flujo de estatus formal que culmina en "resuelto".
+
+ En la sesión del 22 de julio el CTO planteó incorporar esta conectividad como ajuste de alcance; en la validación del prototipo del 24 de julio se ratificó, y en la sesión técnica del 27 de julio con Pedro Ayala quedó confirmada la viabilidad: la API de Jira cubre lectura y escritura de tickets, se entregó el token de integración ("PAF", vigente al 27-jul-2027) y se documentaron los límites de consumo del lado de Atlassian. La estimación preliminar (~10 h) se comunicó a la PM el 21 de julio; esta adenda la formaliza por escrito, como lo prevé el control de cambios de la propuesta.
+
+
+
+
+
+ La integración agrega a la primera etapa las siguientes capacidades:
+
+
+ - Conexión con la API de Jira mediante el token PAF y lectura de los tickets de la bandeja Facturación (
FAC-), con consumo autorregulado conforme a los límites de velocidad documentados por Atlassian.
+ - Generación automática de la cotización en BIND cuando un ticket alcanza el estatus disparador que Balam defina (candidato natural: la entrada del ticket al proceso de facturación, previo a "resuelto"), a través de la misma capa de escritura controlada del MVP.
+ - Trazabilidad ticket ↔ cotización ↔ prefactura/factura, visible en la plataforma y registrada en la bitácora de auditoría. Los tickets leídos alimentan además la vista "qué necesita atención" del tablero.
+ - Pruebas controladas: scripts de consulta y de creación/edición sobre un registro de prueba, y una prueba observada con el equipo de Balam antes de habilitar la generación automática en operación (según lo acordado en la sesión del 27 de julio).
+
+
+
+ Ticket Jira (FAC)→
+ Cotización BIND (automática)→
+ Prefactura→
+ Aprobación humana→
+ Timbrado (PAC de BIND)
+
+
+ El control fiscal no cambia. La integración crea cotizaciones, nunca facturas: se mantiene la cadena acordada — cotización → prefactura → aprobación humana → timbrado por el PAC de BIND — con modo de simulación (dry-run), feature flag y registro en bitácora. No existe timbrado automático.
+
+
+
+
+
+
+ - Alta automática de clientes en BIND. Si el cliente del ticket no existe en BIND, la plataforma lo detecta y lo notifica; darlo de alta automáticamente es una decisión de proceso aún abierta y, de aprobarse, se estima por separado.
+ - Tickets con múltiples facturas. El supuesto de esta adenda es un ticket → una cotización. El manejo del caso masivo (un ticket con un listado de decenas de facturas) se define junto con Balam; si requiere desarrollo adicional, se estima por separado.
+ - Otros usos de Jira — reporteo de horas de consultores, tableros sobre otras bandejas o el espacio comercial para pipeline de ventas — así como los módulos diferidos del Anexo B, permanecen fuera del alcance.
+
+
+
+
+
+
+
+ | Concepto | Horas | Inversión (MXN) |
+
+ | Primera etapa — propuesta v1.2 (Etapas 0 a 3) | 112 – 136 | $67,200 – $81,600 |
+ | Adenda 01 — Integración Jira → BIND: lectura de la bandeja FAC, disparador por estatus, cotización automática, trazabilidad y pruebas | 9 – 12 | $5,400 – $7,200 |
+ | Total de la primera etapa con adenda | 121 – 148 | $72,600 – $88,800 |
+
+
+
+
+ - Tarifa vigente: $600 MXN/h + IVA (§3.3). El rango es consistente con la estimación de ~10 h comunicada el 21 de julio y opera bajo el mismo esquema de horas reales con tope: al aproximarse al máximo, el trabajo se detiene y se revisa con Balam.
+ - Facturación: como el resto de los avances — semanal (viernes) por horas efectivamente trabajadas, con pago a 30 días naturales.
+ - Cifras antes de IVA.
+
+
+
+
+ 05
Supuestos y dependencias
+
+
+ - Definición del flujo de facturación por parte de Balam (actualmente en revisión interna; sesión por agendar): de ella salen el estatus disparador y las reglas de prefactura. La implementación de esta adenda inicia una vez cerrada esa definición.
+ - Token PAF vigente con visibilidad de la bandeja FAC (entregado el 27 de julio) y un interlocutor técnico (Pedro) para dudas de Jira, con respuesta en menos de 48 horas.
+ - Diagrama del flujo Jira de facturación en tamaño legible (comprometido por Balam en la sesión del 22 de julio).
+ - Bandeja FAC como fuente. FAC opera como bandeja "padre" del proceso de facturación; si las pruebas muestran que algún disparador nace en otra bandeja sin reflejarse en FAC, el ajuste se revisa en conjunto.
+ - Sin ambiente de pruebas de BIND: toda prueba de escritura será acotada, acordada previamente y observada, como se convino con el CTO.
+
+
+
+
+
+
+ Todo lo no modificado por esta adenda — condiciones comerciales (§3.3), garantía de 45 días, propiedad del código, metodología de desarrollo y supuestos generales — permanece en los términos de la propuesta v1.2 y del contrato de servicios firmado. La mención de Jira como "fuera de alcance" (§1.3 y Anexo A) queda sustituida por el alcance acotado que esta adenda define.
+
+
+
+
+
+ Conforme a la §10 de la propuesta (control de cambios), esta adenda se ejecuta tras su aprobación por escrito; basta la confirmación por correo electrónico. No requiere un nuevo contrato.
+
+
+
Johann Velazquez
+
Consultor de Software · Monterrey, Nuevo León
+
+
+
+
+
+
+
diff --git a/propuesta/adenda-01.pdf.config.json b/propuesta/adenda-01.pdf.config.json
new file mode 100644
index 0000000..75982a4
--- /dev/null
+++ b/propuesta/adenda-01.pdf.config.json
@@ -0,0 +1,32 @@
+{
+ "input_html": "Adenda-01-Integracion-Jira.html",
+ "output_pdf": "Adenda-01-Integracion-Jira-Balam.pdf",
+
+ "page_size": "Letter",
+ "cover_full_bleed": true,
+ "render_timeout_ms": 30000,
+
+ "metadata": {
+ "title": "Adenda 01 — Integración Jira → BIND · Plataforma de Automatización Financiera · Balam",
+ "author": "Johann Velazquez",
+ "subject": "Solicitud de cambio a la propuesta v1.2: generación automática de cotizaciones en BIND desde tickets de Jira",
+ "keywords": "adenda, Jira, BIND, Balam, control de cambios, cotizaciones"
+ },
+
+ "footer": {
+ "text": "Adenda 01 · Integración Jira → BIND · Balam — Confidencial",
+ "skip_first_page": true,
+ "skip_pages": [],
+ "page_number_format": "{page} / {pages}",
+ "rule": true,
+ "font_size_pt": 7.5,
+ "margin_mm": 12,
+ "color": [0.46, 0.51, 0.57]
+ },
+
+ "fonts": {
+ "footer_ttf": "fonts/Carlito-Regular.ttf"
+ },
+
+ "toc": {}
+}