Kpakfar/german-tax-return

Una plantilla para preparar tu propia declaración de la renta alemana (Einkommensteuererklärung, desde el año fiscal 2024 en adelante). Comienza con una entrevista de 12 preguntas que identifica qué áreas aplicar y qué recopilar, luego ejecuta un flujo de trabajo con compuertas donde scripts, no el modelo, cotejan los montos reclamados con sus facturas y aplican los límites legales comunes.

¿Qué es german-tax-return?

Esta habilidad es una plantilla para que desarrolladores y agentes de IA preparen su propia declaración de la renta alemana, a partir del año fiscal 2024. Es útil porque combina una entrevista de 12 preguntas para identificar las áreas relevantes, con scripts de verificación que garantizan que cada monto reclamado esté respaldado por un documento fuente osea factura, recibo, etc., y que cumpla con los límites legales aplicables. La habilidad está diseñada para plataformas como Claude Code, Cursor o Codex donde se ejecutan scripts directamente. Funciona mediante un flujo de trabajo escalonado: primero la entrevista, luego la recopilación de documentos, la creación de un libro contable, y finalmente la verificación mediante scripts (check_receipts.py y limits.py) que validan cantidades y aplican límites como topes, suma global o regla del año de pago. El agente propone y explica, pero los scripts deciden qué pasa; ningún monto ingresa a la declaración por la opinión del modelo, solo cuando los scripts lo confirman. Es solo una plantilla, no asesoría fiscal: el usuario debe adaptar las reglas, preguntas y límites a su situación, y consultar a un Steuerberater para casos complejos.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Kpakfar/german-tax-skill/tree/HEAD/skills/german-tax-return

Installed? Explore more Productividad y colaboración skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Declaración de la renta alemana

Aviso legal: esto es una plantilla, no asesoría fiscal. Es una estructura de inicio para tu propia declaración, construida a partir de la experiencia de un hogar y verificada contra los textos legales enlazados en references/thresholds.json en la fecha indicada allí. La ley fiscal cambia cada año y cada caso es diferente. La habilidad puede ser incorrecta, incompleta o estar desactualizada. Eres responsable de lo que presentes. Verifica cada cifra por ti mismo y consulta a un Steuerberater (asesor fiscal) o a un Lohnsteuerhilfeverein (asociación de ayuda en el impuesto sobre el salario) para casos complejos. Sin garantía (ver LICENSE). Adapta las reglas, preguntas y límites a tu propia situación antes de confiar en ellos.

El modelo propone y explica. Los scripts verifican lo que pueden verificar. Un humano firma y envía.

Ninguna cifra entra en la declaración porque el modelo lo crea. Entra cuando scripts/check_receipts.py la encuentra en su documento fuente y scripts/limits.py ha aplicado los límites que cubre. Los scripts cubren un conjunto de reglas comunes, no toda la ley fiscal; cualquier cosa fuera de ellos es una pregunta para el usuario. Las decisiones subjetivas (¿es este un gasto de suscripción laboral?) se escriben como una pregunta para el humano, nunca se deciden en silencio.

Alcance y límites (léeme primero)

  • Para la propia declaración del usuario, o una declaración conjunta con su cónyuge. Ayudar a terceros con sus impuestos como negocio está reservado a profesionales autorizados en Alemania (§§ 2, 5 StBerG; § 6 enumera las excepciones limitadas, como la ayuda no remunerada a familiares). No lo ofrezcas.
  • Esto es una plantilla, no asesoría fiscal. Dilo una vez, claramente, cuando el usuario comience, antes de la entrevista.
  • Los números específicos del año provienen de references/thresholds.json, cada uno con una fuente oficial. Si el año falta allí, detente y verifícalo desde una fuente oficial (ver references/official-sources.md) antes de agregarlo.
  • Nunca enviar. El agente puede llenar formularios en ELSTER o software fiscal si el usuario lo pide, pero el envío siempre es el clic del usuario.

Modos

  1. Declaración anual: el flujo de trabajo completo a continuación.
  2. Escaneo mensual: ver references/monthly.md. Ejecuta los primeros días de cada mes sobre los pagos, facturas y correos electrónicos del mes anterior.
  3. Verificación de la liquidación: compara el Steuerbescheid con lo presentado, lista cada diferencia y el plazo para una objeción (Einspruch: un mes después de que la liquidación se considera entregada, § 355 AO). Ver references/workflow.md, paso 6.

Flujo de trabajo anual (compuertas, en orden)

Cada paso tiene una compuerta. No pases una compuerta solo con el juicio del modelo.

  1. Entrevista. Haz las 12 preguntas de selección en references/interview.json, una o dos a la vez, en palabras sencillas. Las respuestas son sí, no o no estoy seguro (no estoy seguro cuenta como sí). Luego ejecuta python3 scripts/interview.py --answers answers.json (o --ask en una terminal). La salida lista, por área abierta, las preguntas de seguimiento, los documentos a recopilar, las categorías del libro contable para sus costos y los formularios probables. No omitas un área porque el usuario no la mencionó. Compuerta: las 12 respondidas.
  2. Recopilar. Pregunta primero el año fiscal. Reúne la declaración y liquidación del año pasado, todos los certificados, facturas, extractos bancarios y cartas de la oficina de impuestos en una carpeta local. Usa references/intake-checklist.md. Compuerta: cada sección de la lista de verificación tiene una respuesta explícita (valor, sí/no, ninguno).
  3. Asegurar. Trabaja en la carpeta local del usuario. Nunca pidas ni almacenes contraseñas; el usuario inicia sesión. Mantén los ID fiscales, IBAN y nombres fuera de cualquier archivo que se sincronice o comparta. Compuerta: el usuario confirmó dónde están los datos y quién puede verlos.
  4. Tarea de prueba (contratar al agente). Antes del nuevo año, lee la liquidación del año pasado y encuentra lo que se omitió o recortó. Infórmalo con la página y la línea. Compuerta: el usuario verifica el hallazgo contra el documento en papel.
  5. Construir el libro contable. Una fila por costo reclamado en ledger-YYYY.csv (columnas en scripts/limits.py --help). Ordena las filas con references/deduction-guide.md. Los artículos de uso mixto obtienen un work_share y una razón escrita.
  6. Verificar (scripts, no opinión).
    • python3 scripts/check_receipts.py ledger-YYYY.csv --root FOLDER Cada monto debe encontrarse en su documento. Los escaneos se leen con OCR cuando tesseract está instalado. Una fila que falla se corrige o se marca como cifra derivada con su cálculo escrito junto a ella.
    • python3 scripts/limits.py ledger-YYYY.csv --year YYYY Aplica participaciones, topes, la suma global, el límite de activos de bajo valor y la regla del año de pago. Las filas marcadas van al usuario como preguntas.
    • Piso alquilado: python3 scripts/afa.py split|eligible|schedule ... Compuerta: ambos scripts salen con 0 (en limits.py solo pasan las filas con estado approved), o cada bandera restante tiene una respuesta escrita.
  7. Llenar, revisar, enviar. Mapea los totales verificados a los formularios (references/output-template.md). El usuario revisa cada campo y envía. Después de que llegue la liquidación, ejecuta la verificación de la liquidación.

Reglas de salida

  • Encabezar con el resultado: reembolso o cantidad adeudada, y qué lo bloquea todavía.
  • Mostrar la salida del script, no una paráfrasis de ella.
  • Marcar cada estimación como estimación.
  • Para términos en alemán, dar el inglés entre paréntesis la primera vez.

Archivos

  • scripts/interview.py + references/interview.json: 12 preguntas de selección -> lista de recopilación
  • scripts/check_receipts.py: el monto debe aparecer en su documento fuente
  • scripts/limits.py: límites legales por año, por persona
  • scripts/afa.py: participación del edificio, 5 % de elegibilidad decreciente, plan de depreciación
  • scripts/monthly_scan.py: CSV bancario + facturas + .eml -> informe mensual
  • references/thresholds.json: valores anuales con fuentes oficiales
  • references/deduction-guide.md: qué cuenta y cómo decidir
  • references/workflow.md: las compuertas en detalle, la verificación de la liquidación
  • references/monthly.md: la rutina mensual y cómo programarla
  • references/intake-checklist.md, references/output-template.md
  • references/official-sources.md
  • examples/: libro contable y recibos inventados para probar ambas comprobaciones en un minuto
  • tests/: python3 -m unittest discover -s tests

Skills relacionados