Community生產力與協作github.com

Kpakfar/德國報稅

一個用於準備德國個人所得稅申報(Einkommensteuererklärung,2024 年起)的模板技能。它從 12 題的訪談開始,找出適用的領域與需準備的文件,接著執行一個有閘門的流程——由腳本(而非模型)比對申報金額與其發票,並套用常見的法律上限。

德國報稅 是什麼?

這個技能是一個用於協助建立德國個人所得稅申報的模板(Einkommensteuererklärung,自 2024 年起)。它並非稅務建議,而是提供一個結構化的起點,包含由法律文本驅動的規則。運作流程從一個 12 題的篩選訪談開始,以釐清哪些項目適用,接著引導使用者收集文件、建立分類帳,並強制執行一個「有閘門」的流程——腳本會驗證每筆申報金額是否能在其源文件中找到(例如透過 OCR 掃描發票),並套用法律上限,如免稅額與低價值資產限制。該技能支援三種模式:年度申報、每月掃描(用於持續追蹤)以及稅單核對(Steuerbescheid 比較)。它明確禁止自動提交申報;僅由使用者自行送出。腳本涵蓋常見規則,但超出範圍的判斷(例如某項訂閱是否算工作支出)則會明確詢問使用者,從不自行決定。支援平台包括所有可執行 Python 腳本的終端機環境,並設計為在本地資料夾中運作,以維護資料安全與隱私。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Kpakfar/german-tax-skill/tree/HEAD/skills/german-tax-return

Installed? Explore more 生產力與協作 skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

德國報稅 是做什麼的?

免責聲明:這是一個模板,而非稅務建議。 它僅為您建構自己的報稅申報提供一個起點,內容基於一個家庭的經驗,並依據 references/thresholds.json 中所連結的法律條文(以該檔案標示的日期為準)進行檢查。稅法每年變動,且每個案例情況不同。此技能可能錯誤、不完整或過時。您需對所提交的內容負責。請自行核對每一項數字,若遇複雜案例,請諮詢稅務顧問 (Steuerberater) 或薪資稅務協助協會 (Lohnsteuerhilfeverein)。無任何擔保(請見授權條款)。在依賴此技能前,請根據您自身情況調整其規則、問題與限制。

模型提出並解釋。腳本則檢查它們能檢查的部分。最後由真人簽署並送出。

沒有任何數字是因為模型「相信」而被納入報稅申報。只有當 scripts/check_receipts.py 在其來源文件中找到該數字,且 scripts/limits.py 已套用其涵蓋的限制後,該數字才會被納入。這些腳本涵蓋了一組常見規則,而非完整稅法;超出其範圍的任何事項,都會成為一個需要詢問使用者的問題。像是「這個訂閱是否屬於工作用途?」這類的判斷,會被記錄下來作為給人類的問題,絕不會被暗地決定。

範圍與限制(請先閱讀)

  • 僅限於使用者本人或其配偶的聯合申報。在德國,以營利為目的協助第三方處理稅務是特許專業人士的專屬業務(§§ 2, 5 StBerG;§ 6 列出了少數例外,例如無償協助親屬)。請勿提供此類服務。
  • 這是一個模板,而非稅務建議。請在使用者開始時(即在訪談之前),明確、直接地告知一次。
  • 與特定年份相關的數字來自 references/thresholds.json,每個數字均附有官方來源。如果該檔案中缺少該年份的資料,請在從官方來源驗證(請參閱 references/official-sources.md)後再行新增。
  • 絕不代為提交。若使用者要求,代理程式可在 ELSTER 或稅務軟體中填寫表格,但送出動作必須始終由使用者點擊。

模式

  1. 年度申報:完整工作流程如下。
  2. 每月掃描:請參閱 references/monthly.md。在每個月的頭幾天執行,掃描上個月的付款、發票與電子郵件。
  3. 稅單核對:將稅單 (Steuerbescheid) 與已申報的資料進行比較,列出所有差異,以及提出異議 (Einspruch) 的截止日期(稅單視為送達後一個月內,§ 355 AO)。請參閱 references/workflow.md,第 6 步驟。

年度工作流程(依序設有閘門)

每個步驟都有一個閘門。請勿僅憑模型的判斷就通過閘門。

  1. 訪談。 以簡單明瞭的詞語,每次一或兩個問題,逐一詢問 references/interview.json 中的 12 個篩選問題。回答選項為「是」、「否」或「不確定」(「不確定」視同「是」)。然後執行 python3 scripts/interview.py --answers answers.json(或在終端機中使用 --ask 參數)。輸出將針對每個適用的領域,列出後續問題、需收集的文件、其費用的分類帳類別以及可能需要的表格。即使使用者未提及某個領域,也不應跳過。 閘門: 12 個問題全部回答完畢。
  2. 收集。 首先詢問報稅年份。收集去年的報稅資料與稅單、所有證明文件、發票、銀行匯出資料以及稅務局的信件,並統一放到一個本地資料夾中。使用 references/intake-checklist.md。 閘門: 每個檢查清單項目都有一個明確的答案(數值、是/否、無)。
  3. 安全。 在使用者的本地資料夾中工作。絕不要求或儲存密碼;由使用者自行登入。確保稅號、IBAN 以及姓名不會出現在任何會同步或分享的檔案中。 閘門: 使用者已確認資料存放的位置以及誰可以看到它。
  4. 測試任務(聘用代理程式)。 在進入新年度之前,閱讀去年的稅單,找出哪些項目被遺漏或遭到刪減。回報時請附上頁碼與行號。 閘門: 使用者對照紙本核對該發現。
  5. 建立分類帳。 在 ledger-YYYY.csv 中,每個申報費用一列(欄位說明請見 scripts/limits.py --help)。依據 references/deduction-guide.md 排序各列。混合使用的項目需記錄 work_share(工作使用比例)以及書面理由。
  6. 檢查(腳本為準,非意見)。
    • python3 scripts/check_receipts.py ledger-YYYY.csv --root FOLDER 每一筆金額都必須能在其文件中找到。若已安裝 tesseract,掃描文件將透過 OCR 讀取。失敗的資料列要嘛修正,要嘛標記為衍生數字,並在旁邊寫下計算方式。
    • python3 scripts/limits.py ledger-YYYY.csv --year YYYY 套用使用比例、上限、總額扣除額、低價值資產限制以及支付年度規則。被標記的資料列將作為問題呈現給使用者。
    • 租賃房屋:python3 scripts/afa.py split|eligible|schedule ... 閘門: 兩個腳本都退出並返回 0(在 limits.py 中,只有狀態為 approved 的資料列通過),或者所有剩餘的標記都有書面回答。
  7. 填寫、審閱、送出。 將檢查後的總額對應到表格中(references/output-template.md)。使用者審閱每個欄位並送出。收到稅單後,執行稅單核對。

輸出規則

  • 先說結果:退稅或應繳金額,以及尚有哪些障礙。
  • 顯示腳本的輸出,而非對其進行改寫。
  • 每個估計值都必須明確標示為估計值。
  • 對於德文術語,請在首次出現時提供英文 (English) 解釋。

檔案

  • scripts/interview.py + references/interview.json:12 個篩選問題 -> 收集清單
  • scripts/check_receipts.py:金額必須出現在其來源文件中
  • scripts/limits.py:每年、每人適用的法律限制
  • scripts/afa.py:建築物比例、5% 遞減資格、折舊計畫
  • scripts/monthly_scan.py:銀行 CSV + 發票 + .eml -> 每月報告
  • references/thresholds.json:附有官方來源的年度數值
  • references/deduction-guide.md:哪些費用可列舉及如何判斷
  • references/workflow.md:閘門的詳細說明、稅單核對
  • references/monthly.md:每月例行程序及如何排程
  • references/intake-checklist.md、references/output-template.md
  • references/official-sources.md
  • examples/:虛構的分類帳與收據,讓您能在一分鐘內嘗試兩種檢查
  • tests/:python3 -m unittest discover -s tests

相關技能