Kpakfar/german-tax-return

Un modèle de compétence pour préparer votre déclaration d'impôt sur le revenu allemande (Einkommensteuererklärung, années fiscales 2024 et suivantes). Elle commence par un questionnaire de 12 questions qui détermine les domaines concernés et ce qu'il faut rassembler, puis exécute un flux de travail structuré où des scripts, et non le modèle, vérifient que les montants déclarés correspondent à leurs justificatifs et appliquent les plafonds légaux courants.

Qu'est-ce que german-tax-return ?

Cette compétence est conçue pour aider les résidents allemands à préparer leur déclaration d'impôt sur le revenu annuelle (tax years 2024 onward). Elle suit un flux de travail rigoureux en plusieurs étapes : un entretien initial de 12 questions identifie les domaines fiscaux pertinents (frais professionnels, dons, etc.), puis un système de vérification par scripts (check_receipts.py, limits.py, etc.) valide chaque montant déclaré en le faisant correspondre à ses justificatifs (factures, relevés bancaires) et applique automatiquement les plafonds légaux. L'utilisateur reste en contrôle : aucun montant n'est soumis sans validation humaine, et la soumission finale se fait manuellement. La compétence est conçue pour être exécutée localement (dans un dossier utilisateur) et ne stocke jamais de mots de passe. Elle prend en charge les modes déclaration annuelle, scan mensuel et vérification de l'avis d'imposition (Steuerbescheid). Elle s'appuie sur des fichiers de référence (interview.json, thresholds.json) qui peuvent être adaptés annuellement. Idéale pour les développeurs ou agents IA qui souhaitent automatiser la collecte et la vérification des données fiscales allemandes de manière transparente et vérifiable.

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

Installed? Explore more Productivité et collaboration skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Déclaration d'impôt allemande

Avertissement : ceci est un modèle, pas un conseil fiscal. C'est une structure de départ pour votre propre déclaration, construite à partir de l'expérience d'un foyer et vérifiée par rapport aux textes légaux liés dans references/thresholds.json à la date qui y est indiquée. Le droit fiscal change chaque année et chaque cas est différent. La compétence peut être erronée, incomplète ou obsolète. Vous êtes responsable de ce que vous déclarez. Vérifiez chaque montant vous-même et consultez un Steuerberater (conseiller fiscal) ou un Lohnsteuerhilfeverein (association d'aide à l'impôt sur le salaire) pour les cas complexes. Aucune garantie (voir LICENSE). Adaptez les règles, les questions et les plafonds à votre propre situation avant de vous y fier.

Le modèle propose et explique. Les scripts vérifient ce qu'ils peuvent vérifier. Un humain signe et envoie.

Aucun montant n'entre dans la déclaration parce que le modèle le croit. Il entre lorsque scripts/check_receipts.py le trouve dans son document source et que scripts/limits.py a appliqué les limites qu'il couvre. Les scripts couvrent un ensemble de règles courantes, pas l'ensemble du droit fiscal ; tout ce qui est en dehors de leur champ est une question pour l'utilisateur. Les jugements (ce travail est-il un abonnement ?) sont formulés comme une question pour l'humain, jamais tranchés en silence.

Périmètre et limites (à lire en premier)

  • Pour la déclaration de l'utilisateur lui-même, ou une déclaration conjointe avec son conjoint. Aider des tiers avec leurs impôts à titre professionnel est réservé aux professionnels agréés en Allemagne (§§ 2, 5 StBerG ; § 6 énumère les exceptions étroites, comme l'aide non rémunérée pour les proches). Ne le proposez pas.
  • Ceci est un modèle, pas un conseil fiscal. Dites-le une fois, clairement, lorsque l'utilisateur commence, avant l'entretien.
  • Les chiffres spécifiques à une année proviennent de references/thresholds.json, chacun avec une source officielle. Si l'année n'y figure pas, arrêtez-vous et vérifiez-la à partir d'une source officielle (voir references/official-sources.md) avant de l'ajouter.
  • Ne soumettez jamais. L'agent peut remplir les formulaires dans ELSTER ou un logiciel fiscal si l'utilisateur le demande, mais l'envoi est toujours le clic de l'utilisateur.

Modes

  1. Déclaration annuelle : le flux de travail complet ci-dessous.
  2. Scan mensuel : voir references/monthly.md. À exécuter les premiers jours de chaque mois sur les paiements, factures et e-mails du mois précédent.
  3. Vérification de l'avis d'imposition : comparer le Steuerbescheid avec ce qui a été déclaré, lister chaque différence, et le délai pour former une opposition (Einspruch : un mois après que l'avis est réputé délivré, § 355 AO). Voir references/workflow.md, étape 6.

Flux de travail annuel (étapes séquentielles, dans l'ordre)

Chaque étape a une validation. Ne franchissez pas une validation sur le seul jugement du modèle.

  1. Entretien. Posez les 12 questions de sélection dans references/interview.json, une ou deux à la fois, en mots simples. Les réponses sont oui, non ou incertain (incertain compte comme oui). Exécutez ensuite python3 scripts/interview.py --answers answers.json (ou --ask dans un terminal). La sortie liste, par domaine ouvert, les questions complémentaires, les documents à rassembler, les catégories de grand livre pour ses coûts et les formulaires probables. Ne sautez pas un domaine parce que l'utilisateur ne l'a pas mentionné. Validation : les 12 réponses fournies.
  2. Rassembler. Demandez d'abord l'année fiscale. Rassemblez la déclaration et l'avis de l'année précédente, tous les certificats, factures, relevés bancaires et lettres de l'administration fiscale dans un seul dossier local. Utilisez references/intake-checklist.md. Validation : chaque section de la liste de contrôle a une réponse explicite (valeur, oui/non, aucun).
  3. Sécuriser. Travaillez dans le dossier local de l'utilisateur. Ne demandez ni ne stockez jamais de mots de passe ; l'utilisateur se connecte. Gardez les numéros d'identification fiscale, les IBAN et les noms hors de tout fichier qui se synchronise ou est partagé. Validation : l'utilisateur a confirmé où se trouvent les données et qui peut les voir.
  4. Test (embaucher l'agent). Avant la nouvelle année, lisez l'avis d'imposition de l'année précédente et trouvez ce qui a été oublié ou réduit. Signalez-le avec la page et la ligne. Validation : l'utilisateur vérifie la constatation par rapport au document papier.
  5. Construire le grand livre. Une ligne par coût déclaré dans ledger-YYYY.csv (colonnes dans scripts/limits.py --help). Triez les lignes avec references/deduction-guide.md. Les éléments à usage mixte reçoivent un work_share et une raison écrite.
  6. Vérifier (scripts, pas opinion).
    • python3 scripts/check_receipts.py ledger-YYYY.csv --root DOSSIER Chaque montant doit se trouver dans son document. Les scans sont lus avec OCR lorsque tesseract est installé. Une ligne qui échoue est soit corrigée, soit marquée comme un chiffre dérivé avec son calcul écrit à côté.
    • python3 scripts/limits.py ledger-YYYY.csv --year AAAA Applique les parts, les plafonds, le forfait, la limite des actifs de faible valeur et la règle de l'année de paiement. Les lignes signalées sont remontées à l'utilisateur comme questions.
    • Appartement locatif : python3 scripts/afa.py split|eligible|schedule ... Validation : les deux scripts se terminent par 0 (dans limits.py seules les lignes avec le statut approved passent), ou chaque indicateur restant a une réponse écrite.
  7. Remplir, vérifier, envoyer. Reporter les totaux vérifiés dans les formulaires (references/output-template.md). L'utilisateur vérifie chaque champ et envoie. Après réception de l'avis, exécutez la vérification de l'avis.

Règles de sortie

  • Commencez par le résultat : remboursement ou montant dû, et ce qui le bloque encore.
  • Montrez la sortie du script, pas une paraphrase.
  • Marquez chaque estimation comme une estimation.
  • Pour les termes allemands, donnez l'anglais entre parenthèses la première fois.

Fichiers

  • scripts/interview.py + references/interview.json : 12 questions de sélection -> liste de collecte
  • scripts/check_receipts.py : le montant doit apparaître dans son document source
  • scripts/limits.py : plafonds légaux par année, par personne
  • scripts/afa.py : part du bâtiment, éligibilité à 5 % dégressive, plan d'amortissement
  • scripts/monthly_scan.py : CSV bancaire + factures + .eml -> rapport mensuel
  • references/thresholds.json : valeurs annuelles avec sources officielles
  • references/deduction-guide.md : ce qui compte et comment décider
  • references/workflow.md : les validations en détail, la vérification de l'avis
  • references/monthly.md : la routine mensuelle et comment la planifier
  • references/intake-checklist.md, references/output-template.md
  • references/official-sources.md
  • examples/ : grand livre et reçus fictifs pour essayer les deux vérifications en une minute
  • tests/ : python3 -m unittest discover -s tests

Skills associés