Community生產力與協作github.com

szalvay/small-business-payroll-prep

在發薪日前找出錯誤與遺漏。

small-business-payroll-prep 是什麼?

此技能專為小型企業的薪資準備與檢查而設計,支援多種行業(如零售、美髮沙龍、醫療保健、健身、餐飲服務、現場服務、製造業、教育等)以及多種薪資類型(時薪、月薪、佣金、小費、計件等)。它能處理跨地點和跨薪資週期的每週及每日加班、附退佣的銷售佣金、業績獎金、小費、服務工資、病假、經理月薪、津貼和獎金池等複雜情境。技能會根據產業別進行客製化的訪談,並能產生供 BambooHR、ADP Workforce Now、Paylocity、HiBob 或通用 CSV 格式使用的匯入檔案。它透過一個命令列工具執行,從 POS、打卡系統及人力資源匯出檔案中整理資料,建立審閱工作簿、證據追蹤鏈及上傳檔案,但絕不實際提交薪資,最終仍由人工審閱並提交。此技能支援 Claude Code、Cursor 或 Codex 等 AI 代理平台,適合用於設定薪資規則、執行或檢查薪資週期、在發薪日前找出錯誤,或建立薪資匯入檔案。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/szalvay/small-business-payroll-prep/tree/HEAD/skills/small-business-payroll-prep

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

在你喜歡的 AI 中提問

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

說明文件

小型企業薪資準備

在發薪日前找出錯誤與遺漏。

此技能會將業主的薪資規則,以及其 POS、打卡系統、預約系統和 HR 的匯出資料,轉換為一份已檢查的薪資:一份審閱工作簿、一份證據追蹤鏈,以及供其薪資系統上傳的檔案。它絕不實際提交薪資。員工審閱並提交。

所有操作都透過此技能資料夾中的一個命令列工具執行:

python3 scripts/payroll.py --help          # 需要 Python 3.10+ 和 openpyxl(pip install openpyxl)

在其他位置工作時,請使用技能資料夾的絕對路徑來執行,例如 python3 <技能資料夾路徑>/scripts/payroll.py run <週期資料夾>。

基本規則(請先閱讀)

  1. 只有 payroll.py run 能決定「一切無誤」。 退出碼 0 加上 output/evidence.json 中的 "status": "ALL CLEAR" 才是唯一的「一切無誤」。切勿根據您自己對數字的解讀,將執行結果描述為乾淨、完成或就緒。退出碼 2 是「未就緒」,退出碼 1 是「受阻」。
  2. 切勿發明費率、門檻、時間窗或薪資類型名稱。 如果業主尚未告知,請將其留空,以便執行時停止並詢問。猜測的數字會變成實際薪資。
  3. 業主簽署的規則是執行的法律。 規則變更應寫入 payroll_config.json,然後重新產生並重新批准「薪資規則手冊」。切勿手動編輯工作簿或匯出檔案中的任何數字;請修正輸入或規則,然後重新執行。
  4. 每個警告都需要一個決定。 每個「警告」都會阻止「一切無誤」,直到輸入被修正,或者有人將確認記錄在 period.json 中(acknowledged_warnings,包含決定者和原因)。請勿代替業主確認;必須詢問他們。
  5. 非法律或稅務建議。 州預設值僅為起點。請告知業主,必須向其薪資供應商或勞動法律師確認加班、最低工資、病假、小費和最終工資規則。
  6. 勿保留敏感資料。 引擎只需要姓名、ID、費率和工時。切勿要求或儲存社會安全號碼、銀行詳細資訊或出生日期。如果某個匯出檔案包含這些資料,請勿複製那些欄位。

工作區

<工作區>/
  payroll_config.json          業主的規則(來自訪談)
  PAY_RULES_BOOK.md / .html   以通俗英文撰寫的規則,並附有業主簽核
  connectors/                  可選的 HRIS / 薪資設定檔編輯副本
  history/weeks.json           已支付的每週工時和加班時數(由執行寫入)
  periods/<開始日期>_<結束日期>/
    period.json                日期、月度視窗、時間窗、證明、來源、確認
    raw/                       完全按原樣下載的匯出檔案
    inputs/                    引擎讀取的標準 CSV 檔案
    output/                    審閱工作簿、上傳檔案、執行摘要、evidence.json

如果業主想先看看效果,可以嘗試一個虛構的範例:payroll.py sample ./demo(一間水療中心)或 payroll.py sample ./demo --kind retail(一家連鎖店),然後對 demo/periods/ 中的每個週期依序執行 approve ./demo --by "<姓名>"、hris-import 和 run(請參閱 references/getting-started.md)。選擇最接近業主業務類別的範例。

業主的需求決定模式

1. 設定(訪談)

業主尚未有 payroll_config.json,或想要更改員工的薪資方式。

  1. 詢問他們所屬的行業以及員工的薪資方式(references/questionnaire.md 中的 start.1 和 start.2)。及早告知他們此工具無法處理的需求(該文件中「Not handled yet」欄位)。
  2. 詢問他們想如何回答其餘問題:由您進行訪談,或使用其行業適用的可填寫訪談工作簿(payroll.py intake-workbook intake.xlsx --industry <行業ID>,然後執行 compile-intake intake.xlsx payroll_config.json)。
  3. 如果是訪談,請遵循 references/questionnaire.md:一次只問一個問題,僅詢問與他們的薪資方式相符的核心章節,以及其行業適用的補充套件。在寫下任何規則之前,先逐節回報給業主。
  4. 按照 references/config-reference.md 撰寫設定檔。從 payroll.py init <工作區> 開始。從 assets/states/ 載入州預設值,並讓業主確認它們(references/state-rules.md)。
  5. 執行 payroll.py validate <工作區> 直到顯示 VALID。
  6. 執行 payroll.py rulebook <工作區>,帶業主逐條檢視每個規則 ID,修正後重新產生。
  7. 當業主同意時,執行 payroll.py approve <工作區> --by "<業主姓名>"。

2. 開始一個薪資週期

payroll.py new-period <工作區> --start YYYY-MM-DD --end YYYY-MM-DD --pay-date YYYY-MM-DD(在支付月度獎勵的執行中加上 --monthly;月度視窗預設為結束日期所屬的日曆月,或使用 --month-start 和 --month-end 設定)。

按日期順序執行週期:跨兩個週期的工作週需要前一個週期的工時。對於第一個週期,請參閱 references/config-reference.md 中的「history」說明。

它會印出該週期觸及的工週、邊界週警告,以及來自 systems.pos_reports 的匯出核對清單。將該核對清單提供給業主。

3. 將匯出資料轉換為輸入

  • HR 花名冊、薪資費率和請假:payroll.py hris-import <週期> --roster <檔案> --time-off <檔案>,使用 systems.hris 中的設定檔(references/hris-connectors.md)。閱讀 output/hris_import_report.md;使用 --map field=Header 或編輯 <工作區>/connectors/ 中的設定檔副本來修正 FAIL。
  • POS 報表:將每個報表映射為標準 CSV(references/input-formats.md、references/pos-mapping.md)。根據欄位標題文字映射,絕不根據欄位位置。將每個報表及其列印的總計記錄在 period.json 的 sources 中,以便執行時能證明沒有任何資料被刪除或重複計算。
  • 如果某個輸入在本週期確實沒有任何內容(某個地點無人請假),請在 period.json 中記錄一個證明,而不是提供一個空白檔案。

然後執行 payroll.py check <週期>:顯示 READY TO RUN,或需要修正的確切 FAIL。

4. 執行

payroll.py run <週期>。它會執行閘門檢查、計算、核對每個輸入總計與已支付金額、獨立重新計算所有項目(稽核)、與上一期比較,然後寫入薪資檔案,並列印 ALL CLEAR、NOT CLEAR 或 BLOCKED。

  • BLOCKED(受阻): 未計算任何項目。修正 FAIL 行(通常是輸入問題)後重新執行。
  • NOT CLEAR(未就緒): 閱讀原因。修正輸入或規則;對於業主接受的警告,將他們的確認新增到 period.json。重新執行。來自 NOT CLEAR 執行的上傳檔案將命名為 DO_NOT_UPLOAD_...;每次執行都會先清除前一次執行的輸出。
  • ALL CLEAR(一切無誤): 將 output/payroll_review_<日期>.xlsx、run_summary.html 和上傳檔案發送給業主。指出「發現」和「獎勵備註」中他們應注意的事項。業主審閱並上傳;您不需要。

對於高風險的執行(第一次實際週期、新地點、規則變更),請在移交之前,讓另一個代理使用 references/auditor.md 審閱輸出。

5. 變更規則

編輯 payroll_config.json,驗證,重新產生規則手冊,再次取得業主的批准(approve),然後重新執行該週期。規則手冊中的指紋會隨著每次規則變更而改變,因此過時的批准會自動被偵測到。

查閱指引

需求檔案
按行業分類的訪談問題,含原因及已知缺口references/questionnaire.md
每個設定欄位references/config-reference.md
標準 CSV 輸入格式references/input-formats.md
POS 報表映射(及已知的報表陷阱)references/pos-mapping.md
HR 及薪資系統入門指引references/hris-connectors.md
州預設值及需確認的事項references/state-rules.md
每個閘門檢查存在的原因references/lessons.md
獨立審閱摘要references/auditor.md
初次使用指南(附水療中心及零售範例)references/getting-started.md

相關技能