{"id":"eb4bd56f-fbcb-4b0d-bd74-f4d20f037d81","entityType":"agent","slug":"clawhub-tuobadaidai-payroll-data-audit","name":"Payroll Data Audit","canonicalUrl":"https://www.xpersona.co/agent/clawhub-tuobadaidai-payroll-data-audit","canonicalPath":"/agent/clawhub-tuobadaidai-payroll-data-audit","generatedAt":"2026-10-10T07:40:04.067Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-10T00:29:07.473Z","emptyReason":null},"description":"工资数据审核系统，基于确定性规则引擎 + Python 脚本执行。 全量对齐《工资审核标准流程 SOP》6 步流程。v7.2 修复P0阻断bug：_get_pay_month() 支持 中文格式（\"2026年4月\"/\"2026年04月\"/\"202604\"），RL-003/RL-007 排除逻辑完全生效。 v7.1... Skill: Payroll Data Audit Owner: tuobadaidai Summary: 工资数据审核系统，基于确定性规则引擎 + Python 脚本执行。 全量对齐《工资审核标准流程 SOP》6 步流程。v7.2 修复P0阻断bug：_get_pay_month() 支持 中文格式（\"2026年4月\"/\"2026年04月\"/\"202604\"），RL-003/RL-007 排除逻辑完全生效。 v7.1... Tags: latest:7.4.1 Version history: v6.2.3 | 2026-07-24T09:18:50.184Z | user Restore from backup - payroll data audit system v7.4.1 | 2026-06-05T09:02:37.485Z | user v7.4.1: SKILL.md 标题对齐版本号 + deliver_to_f","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.8K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s171s30jbmhtrc2kxbr4hxmyn583gsk3:payroll-data-audit","sourceUrl":"https://clawhub.ai/tuobadaidai/payroll-data-audit","homepage":"https://clawhub.ai/tuobadaidai/skills/payroll-data-audit","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/tuobadaidai/payroll-data-audit","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/tuobadaidai/skills/payroll-data-audit","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":65,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"工资数据审核系统，基于确定性规则引擎 + Python 脚本执行。 全量对齐《工资审核标准流程 SOP》6 步流程。v7.2 修复P0阻断bug：_get_pay_month() 支持 中文格式（\"2026年4月\"/\"2026年04月\"/\"202604\"），RL-003/RL-007 排除逻辑完全生效。 v7.1..."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T00:29:07.473Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T00:29:07.473Z","emptyReason":null},"stars":null,"forks":null,"downloads":1836,"packageName":null,"latestVersion":"6.2.3","tractionLabel":"1.8K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T00:29:07.473Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T00:29:07.473Z","lastCrawledAt":"2026-10-10T00:29:07.473Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T00:29:07.473Z","lastVerifiedAt":null,"highlights":[{"version":"6.2.3","createdAt":"2026-07-24T09:18:50.184Z","changelog":"Restore from backup - payroll data audit system","fileCount":18,"zipByteSize":87676},{"version":"7.4.1","createdAt":"2026-06-05T09:02:37.485Z","changelog":"v7.4.1: SKILL.md 标题对齐版本号 + deliver_to_feishu.py 自动化交付完整流程。","fileCount":54,"zipByteSize":223221},{"version":"7.4.0","createdAt":"2026-06-05T08:53:03.551Z","changelog":"v7.4: 交付流程加固 — 新增 deliver_to_feishu.py 自动化交付（验证→上传11个文件→创建飞书文档→生成交付消息），LLM不可干预。v7.3.1: 修复5个Agent bug。","fileCount":54,"zipByteSize":223133},{"version":"7.3.0","createdAt":"2026-06-05T07:39:16.977Z","changelog":"Payroll Data Audit v7.3.0 - 新增 RL-013「多主体/多合同/多雇员号警告」规则，自动检测工资表存在多人多主体或工号混用的情形。 - references/rules.json：增加 RL-013 规则条目及描述。 - scripts/rules_engine.py：实现 RL-013 检查逻辑，支持配置参数；同步完善异常警告输出包含具体详情。 - scripts/tests/test_rules_engine.py：对应新增 RL-013 的完整单测用例。 - SKILL.md/说明文档：补充 RL-013 使用场景、参数说明、运行结果展示。 - 其余小修正：完善文档表达，修正部分细节描述。","fileCount":19,"zipByteSize":98303},{"version":"7.2.1","createdAt":"2026-06-05T06:57:37.960Z","changelog":"Payroll Data Audit v7.2.1 - Minor version update with no new features or bugfixes described in the changelog. - Documentation and metadata updated; no logic changes indicated.","fileCount":19,"zipByteSize":97635},{"version":"7.2.0","createdAt":"2026-06-05T06:33:08.314Z","changelog":"Payroll Data Audit v7.2.0 - 修复 P0 阻断问题：pay month 字段自动识别支持中文格式日期（如“2026年4月”、“2026年04月”、“202604”）。 - RL-003 / RL-007 规则的特殊人员&状态列排除逻辑完整生效，提升误判准确性。 - 其余系统功能与使用方式保持不变。 - skill-card.md 文件移除，文档内容现集中于 SKILL.md。","fileCount":19,"zipByteSize":97691},{"version":"7.1.1","createdAt":"2026-06-04T08:53:54.490Z","changelog":"v7.1.1: 修复v7.1.0 excluded=0问题 — _check_red_line统一exclusion_mask追踪,所有红线分支(excl_mask)正确传入_build_judgment,RL-002/003/005改用状态列优先,RL-007新员工+调薪排除计入excluded","fileCount":19,"zipByteSize":96860},{"version":"7.1.0","createdAt":"2026-06-04T08:18:00.992Z","changelog":"v7.1.0: 修复5个P0阻断bug — Bug1(RL-003):排除逻辑同时检查'状态'列(全角→半角统一); Bug2(RL-004):全角括号()→半角()统一匹配; Bug3(RL-005):同上; Bug4(RL-007):移除prev_non_first限制(上月1号调薪纳入豁免)+新增新员工排除; Bug5(FR-003):出勤工资校验排除实习生/日薪; YL-006同步修复上月1号豁免","fileCount":19,"zipByteSize":96648}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s171s30jbmhtrc2kxbr4hxmyn583gsk3:payroll-data-audit","setupComplexity":"medium","setupSteps":["Python environment detected. Create a strict virtual environment (`python -m venv .venv`) before installing dependencies to prevent system-level package conflicts.","Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-tuobadaidai-payroll-data-audit/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-tuobadaidai-payroll-data-audit/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-tuobadaidai-payroll-data-audit/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-tuobadaidai-payroll-data-audit/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-tuobadaidai-payroll-data-audit/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-tuobadaidai-payroll-data-audit/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T07:40:04.063Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-tuobadaidai-payroll-data-audit/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-tuobadaidai-payroll-data-audit/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-tuobadaidai-payroll-data-audit/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-tuobadaidai-payroll-data-audit/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-10T00:29:07.473Z","emptyReason":null},"readme":"Skill: Payroll Data Audit\n\nOwner: tuobadaidai\n\nSummary: 工资数据审核系统，基于确定性规则引擎 + Python 脚本执行。 全量对齐《工资审核标准流程 SOP》6 步流程。v7.2 修复P0阻断bug：_get_pay_month() 支持 中文格式（\"2026年4月\"/\"2026年04月\"/\"202604\"），RL-003/RL-007 排除逻辑完全生效。 v7.1...\n\nTags: latest:7.4.1\n\nVersion history:\n\nv6.2.3 | 2026-07-24T09:18:50.184Z | user\n\nRestore from backup - payroll data audit system\n\nv7.4.1 | 2026-06-05T09:02:37.485Z | user\n\nv7.4.1: SKILL.md 标题对齐版本号 + deliver_to_feishu.py 自动化交付完整流程。\n\nv7.4.0 | 2026-06-05T08:53:03.551Z | user\n\nv7.4: 交付流程加固 — 新增 deliver_to_feishu.py 自动化交付（验证→上传11个文件→创建飞书文档→生成交付消息），LLM不可干预。v7.3.1: 修复5个Agent bug。\n\nv7.3.0 | 2026-06-05T07:39:16.977Z | auto\n\nPayroll Data Audit v7.3.0\n\n- 新增 RL-013「多主体/多合同/多雇员号警告」规则，自动检测工资表存在多人多主体或工号混用的情形。\n- references/rules.json：增加 RL-013 规则条目及描述。\n- scripts/rules_engine.py：实现 RL-013 检查逻辑，支持配置参数；同步完善异常警告输出包含具体详情。\n- scripts/tests/test_rules_engine.py：对应新增 RL-013 的完整单测用例。\n- SKILL.md/说明文档：补充 RL-013 使用场景、参数说明、运行结果展示。\n- 其余小修正：完善文档表达，修正部分细节描述。\n\nv7.2.1 | 2026-06-05T06:57:37.960Z | auto\n\nPayroll Data Audit v7.2.1\n\n- Minor version update with no new features or bugfixes described in the changelog.\n- Documentation and metadata updated; no logic changes indicated.\n\nv7.2.0 | 2026-06-05T06:33:08.314Z | auto\n\nPayroll Data Audit v7.2.0\n\n- 修复 P0 阻断问题：pay month 字段自动识别支持中文格式日期（如“2026年4月”、“2026年04月”、“202604”）。\n- RL-003 / RL-007 规则的特殊人员&状态列排除逻辑完整生效，提升误判准确性。\n- 其余系统功能与使用方式保持不变。\n- skill-card.md 文件移除，文档内容现集中于 SKILL.md。\n\nv7.1.1 | 2026-06-04T08:53:54.490Z | user\n\nv7.1.1: 修复v7.1.0 excluded=0问题 — _check_red_line统一exclusion_mask追踪,所有红线分支(excl_mask)正确传入_build_judgment,RL-002/003/005改用状态列优先,RL-007新员工+调薪排除计入excluded\n\nv7.1.0 | 2026-06-04T08:18:00.992Z | user\n\nv7.1.0: 修复5个P0阻断bug — Bug1(RL-003):排除逻辑同时检查'状态'列(全角→半角统一); Bug2(RL-004):全角括号()→半角()统一匹配; Bug3(RL-005):同上; Bug4(RL-007):移除prev_non_first限制(上月1号调薪纳入豁免)+新增新员工排除; Bug5(FR-003):出勤工资校验排除实习生/日薪; YL-006同步修复上月1号豁免\n\nv7.0.0 | 2026-06-03T08:30:05.199Z | user\n\nv7.0.0: 对齐SOP文档20260603 - 最低工资2520/加班32h/总额环比±5%/状态列识别替代岗位列/标准工资三字段红线(RL-007)/出勤工资红线(RL-005)/出勤天数红线(RL-006)/公式误差红线/轮班补贴校验(BR-005)/按人分析双条件(>10%且>1000元)/连续在职定义/补发提成波动±20%/往月非1号转正调薪豁免/新字段7个(标准绩效工资/标准福利/C1&C2班/C班/D班/部门四级/币种)/COLUMN_ALIAS扩充10+列名变体\n\nv6.3.0 | 2026-06-03T07:54:43.364Z | user\n\nv6.3.0: 修复RL-003排除(实习生日薪/月薪/入离职/请假); 修复RL-004排除(实习生月薪); 修复YL-006非1号转正调薪误报; COLUMN_ALIAS扩充40+别名; 新增连续在职环比分析; 新增场景十文件交付; 审核清单增强\n\nv6.2.2 | 2026-06-02T03:41:07.381Z | user\n\nv6.2.0: 新增总审核报告(Master Report)+规则判定过程详解(judgment)+黄线排除逻辑完善; v6.2.1: 修复rules.json路径+mask未定义bug+编排指南(单节点原则); v6.2.2: 修正_meta.json changelog和日期\n\nv6.2.1 | 2026-06-02T03:20:51.580Z | user\n\nv6.2.0: 新增总审核报告(Master Report)+规则判定过程详解(judgment)+黄线排除逻辑完善; v6.2.1: 修复rules.json路径(rules_engine/kanban从references/→scripts/容错); 修复_check_blue_line mask未定义UnboundLocalError\n\nv6.0.3 | 2026-06-02T02:03:02.085Z | user\n\nv6.0.0: 新增表格化报告+动态交互看板+数据支撑索引; v6.0.1: 修复采样导入bug+看板支持--audit-result; v6.0.2: 修复发薪月格式不匹配(新入职/离职统计正确); v6.0.3: 修复pipeline报告生成调用链(先aggregate再传summary)\n\nv5.5.1 | 2026-06-01T09:50:22.793Z | user\n\nv5.5.1: 新增run_full_pipeline端到端流水线/修复pandas索引bug/fillna崩溃/exclusions修复/版本统一/56测试全通过\n\nv5.4.1 | 2026-06-01T09:14:55.872Z | user\n\nv5.4.1 修复版：修复pandas布尔索引崩溃/fillna崩溃/方向公式支持/向后兼容字段/核心测试34/34通过\n\nv5.4.0 | 2026-06-01T09:02:33.151Z | user\n\nv5.4.0: 新增data_scan强制第一步/分段审核/抽样校验/审核看板/SOP全量对齐v1.0/rules_engine重构/新增4脚本/政策条件改为精确匹配\n\nv5.0.1 | 2026-05-26T10:01:14.239Z | user\n\nv5.0.1: 修复页面标题（v4.0.1→v5.0.0），内容同 v5.0.0\n\nv5.0.0 | 2026-05-26T09:51:50.729Z | user\n\nv5.0.0 全量对齐工资审核SOP：新增道旅国际政策(POL-004/005)、姓名重复检测、总额环比分析(±10%阈值)、分主体对比、按人深入分析(连续在职筛选+排除逻辑+六类变化分类+核实标记)、5项新threshold、56测试全通过\n\nv4.0.2 | 2026-05-26T07:28:28.072Z | user\n\nskill-crafter 优化版：英文触发词 + Task类型标注 + 确认门 + 红线阻断规则 + 踩坑记录沉淀 + 端到端示例优化\n\nv4.0.1 | 2026-05-26T07:07:48.370Z | user\n\nv4.0.1: 修复索引对齐bug + fillna(0)空值处理 + 空数据快速返回 + YL-005规则修正 + RL-004字段缺失跳过 + 56测试全通过\n\nv4.0.0 | 2026-05-26T04:17:20.861Z | user\n\nv3→v4 重大架构升级：确定性 Python 脚本引擎替代 LLM 计算。新增 7 个脚本 + rules.json 规则引擎 + 列名容错 + decimal 精度处理 + HTML 报告自动生成\n\nv3.0.0 | 2026-05-25T11:03:43.456Z | auto\n\n**payroll-data-audit v3.0.0 – Major upgrade with modularized references and enhanced logic**\n\n- Modularized core audit logic into dedicated reference files for fields, formulas, anomalies, and analysis.\n- Introduced a scenario-based decision flow, mapping user requests to four explicit audit modes.\n- Expanded and clarified \"red line\" (P0) critical issue checks and added more sophisticated exception scanning.\n- Added step-by-step audit process descriptions, directly referencing supporting reference documents.\n- Enhanced documentation with quick-reference rule sections and practical audit tips.\n- Removed obsolete reference content; improved data source, formatting, and business rule override guidance.\n\nv1.0.0 | 2026-05-21T10:49:58.253Z | user\n\nInitial release\n\nArchive index:\n\nArchive v6.2.3: 18 files, 87676 bytes\n\nFiles: _meta.json (137b), requirements.txt (44b), scripts/data_scan.py (10846b), scripts/generate_data_index.py (8007b), scripts/generate_kanban_v6.py (21021b), scripts/generate_kanban.py (22871b), scripts/generate_master_report.py (15225b), scripts/generate_report_v6.py (35295b), scripts/generate_report.py (33255b), scripts/rules_engine.py (53041b), scripts/rules.json (12148b), scripts/run_audit.py (11747b), scripts/run_full_pipeline.py (22082b), scripts/sampling_verify.py (10751b), scripts/tests/test_parameterized.py (20378b), scripts/tests/test_rules_engine.py (16700b), skill-card.md (2643b), SKILL.md (19510b)\n\nFile v6.2.3:SKILL.md\n\n---\nname: payroll-data-audit\nversion: 6.2.2\ndescription: 工资数据审核系统，基于确定性规则引擎 + Python 脚本执行。\n  全量对齐《工资审核标准流程 SOP》6 步流程。v6.2 新增总审核报告（Master Report）、\n  规则判定过程详解（judgment）、黄线排除逻辑完善。v6.2.1 新增编排指南：单节点原则。\n  Use when user asks to 工资数据审核、薪资校验、算薪逻辑验证、薪酬合规检查、\n  工资单审核、月度薪资校验、发薪前数据检查、payroll audit、salary check、\n  wage verification、payroll compliance.\n  不适用于非薪酬类数据审核、纯算薪操作（非审核）、外部薪酬调研、个税/社保计算.\n  此技能需手动触发.\n---\n\n# Payroll Data Audit v6.2\n\n**架构原则**：确定性操作下沉到代码，模糊推理留给 LLM。AI 不做计算和判断，只做路由决策和报告翻译。\n\n## 概述\n\n工资数据审核系统，全量对齐《工资审核标准流程 SOP》6 步流程，对飞书/SAP/ADP 导出的工资表执行自动化合规校验。SOP 覆盖率 95%（41/43 项）。\n\n### v6.2 新功能\n\n- **总审核报告（Master Report）**：Phase 7/7，将数据扫描、审核结果、判定过程、问题清单、抽样校验聚合为一份完整的 HTML 总报告（`06_master_report.html`）\n- **规则判定过程详解（judgment）**：每条规则输出 `judgment` 字段，包含规则逻辑、检查范围、排除人数及原因、实际检查人数、通过率、判定结论，让看报告的人能看到\"怎么判的、排了谁、阈值是什么\"\n- **黄线排除逻辑完善**：YL-001~004、YL-006 新增实习生/日薪/保洁/当月入职/当月离职排除；YL-005（出勤天数超计薪天数）不排除任何人（数据质量问题全员检查）\n\n### v6.0 新功能\n\n- **表格化报告**：整体以表格形式呈现，信息密度高，替代 v5 的卡片+SVG 风格\n- **动态交互看板**：支持筛选/排序/搜索/展开明细/导出CSV/深色模式（零依赖，纯内嵌JS）\n- **数据支撑索引**：`data_index.json` 作为报告和看板的关联核心，保证数据一致性\n- **三者联动**：报告 ↔ 看板 ↔ 数据索引，通过 rule_id 双向锚定\n\n### 功能范围\n\n- **SOP 第一步（强制）**：数据扫描确认（发薪月/公司主体/计薪项/特殊人员/工号重复检测）\n- 字段完整性检查（30+ 列名容错映射）\n- 公式校验（Decimal 精度，0.01 容差）\n- 业务逻辑校验（出勤工资/天数/绩效系数/加班/最低工资）\n- 红线校验（实发≤0、加班超36h、低于最低工资、社保未缴）\n- 黄线校验（绩效异常、出勤超限、工资波动）\n- 蓝线校验（跨月趋势，仅提示）\n- 政策校验（道旅国际豁免、15号后入职、实习生/保洁豁免、离职当月社保）\n- 人数对比分析（新入职/离职/波动>5%）\n- 总额环比分析（12项计薪科目，±10%阈值自动标记）\n- 分主体/分四级部门对比（按公司主体分组环比）\n- 按人深入分析（连续在职筛选+排除逻辑+六类变化分类+核实标记）\n- HTML/Markdown 审核报告生成\n- **数据支撑**：每个审核结论必须有数据依据\n- **审核清单看板**：完整条目清单（结果+数据依据+处理建议），HTML+Markdown 双格式\n- **分段审核**：7阶段独立执行，避免上下文截断，支持断点续传\n- **抽样校验**：随机抽样+独立重算+偏差检测，二次确认审核结果\n- **超链接复核**：异常项可点击复核链接（支持 {emp_id}/{emp_name}/{row_index}）\n- **端到端流水线**：`run_full_pipeline.py` 一键跑完不中断（数据扫描→审核→报告→看板→抽样→问题清单→总审核报告）\n\n**不覆盖**：实际算薪操作、薪酬市场调研、个税计算、社保核算。\n\n### SOP 流程映射\n\n| SOP 步骤 | 本 Skill 对应 | 说明 |\n|---------|-------------|------|\n| 第一步：审核流程（强制） | `data_scan.py` + 用户确认 | **禁止跳步** |\n| 第二步：数据逻辑验证 | `rules_engine.py` 公式+业务逻辑 | 公式校验+5项业务规则 |\n| 第三步：异常数据扫描 | `rules_engine.py` 红/黄/蓝线 | 4红+6黄+4蓝 |\n| 第四步：总额对比分析 | `rules_engine.py --prev` 总额环比 | ±10%阈值 |\n| 第五步：按人深入分析 | `rules_engine.py --prev` 按人分析 | 排除+6类变化 |\n| 第六步：汇总审核报告 | `generate_report.py` / `generate_report_v6.py` | 结构化报告（v5）/ 表格化报告（v6） |\n| 第七步：审核清单看板 | `generate_kanban.py` / `generate_kanban_v6.py` | 静态看板（v5）/ 动态交互看板（v6） |\n| 第八步：抽样校验 | `sampling_verify.py` | 二次确认审核结果 |\n| 数据支撑索引 | `generate_data_index.py` | 三者关联核心（报告↔看板↔数据） |\n|| 分段审核编排 | `run_audit.py` | 7阶段独立执行+断点续传 |\n|| 端到端流水线 | `run_full_pipeline.py` | 一键跑完不中断，始终生成所有输出（含总报告） |\n|| 总审核报告 | `generate_master_report.py` | 聚合所有输出为一份完整 HTML 总报告 |\n\n## 使用\n\n### 决策路由\n\n先判断用户需求属于哪类场景，再执行对应流程：\n\n| 用户说的 | 匹配场景 | 执行 |\n|---------|---------|------|\n| \"帮我审核本月工资数据\" | 完整审核 (Step 1→6) | 先 data_scan → 用户确认 → run_full_audit |\n| \"快速看看有没有问题\" | 红线校验 | `--step red_lines` |\n| \"发薪前帮我理一下数据\" | 字段检查 | `--step fields` |\n| \"帮我验一下公式对不对\" | 公式校验 | `--step formulas` |\n| \"帮我出个审核报告\" | 报告生成 | `generate_report.py` |\n| \"帮我出个表格版审核报告\" | 报告生成 v6 | `generate_report_v6.py` |\n| \"帮我出个审核清单/看板\" | 审核清单看板 | `generate_kanban.py` |\n| \"帮我出个动态交互看板\" | 动态看板 v6 | `generate_kanban_v6.py`（需要 data_index.json） |\n| \"分段审核/怕上下文截断\" | 分段审核 | `run_audit.py` |\n| \"帮我二次确认审核结果\" | 抽样校验 | `sampling_verify.py` |\n| \"从头到尾跑一遍审核\" | 端到端流水线 | `run_full_pipeline.py`（含 v6 报告+看板+索引） |\n\n### 场景零：数据扫描确认（⚠️ 强制第一步）\n\n**⚠️ 禁止跳过此步骤直接执行审核！**\n\n出报告前必须先数据扫描确认，等待用户回复\"确认无误\"后才执行后续审核。\n\n**第一步：数据扫描**\n\n```bash\npython3 scripts/data_scan.py \\\n  --data <工资数据.csv> \\\n  --output /tmp/data_scan_result.json\n```\n\n扫描输出以下信息供用户确认：\n- 发薪月分布（往月/最新发薪月对应人数）\n- 最新发薪月公司主体列表及对应人数\n- 主要计薪项数据（应发合计、实发金额合计、加班费合计、个人社保合计、个人公积金合计）\n- 特殊字段识别（实习生人数、保洁人数、入职人数、离职人数、转正/调薪人数）\n- 工号重复检测\n\n**数据扫描输出示例**：\n\n```\n============================================================\n📊 工资数据扫描报告\n============================================================\n\n📋 总记录数: 2000\n📅 最新发薪月: 2026-05\n\n📅 发薪月分布:\n  2026-05: 2000 人 ← 最新\n  2026-04: 1980 人\n\n🏢 公司主体分布:\n  道旅科技: 1500 人\n  道旅国际: 300 人\n  道旅服务: 200 人\n\n💰 主要计薪项汇总:\n  应发合计: ¥15,234,567.89\n  实发金额合计: ¥12,345,678.90\n  加班费小计: ¥234,567.89\n  个人社保: ¥1,234,567.89\n  个人公积金: ¥987,654.32\n\n👥 特殊人员:\n  新入职: 15 人\n  离职: 8 人\n  转正: 12 人\n  调薪: 5 人\n\n🔍 数据质量检测:\n  工号重复: ✅ 无异常\n  姓名为空: ✅ 无异常\n\n============================================================\n请确认以上数据是否正确，回复'确认无误'后开始正式审核。\n============================================================\n```\n\n**第二步：用户确认**\n\n等待用户回复\"确认无误\"或指出问题。**如果用户指出问题，先修正数据再继续。**\n\n**第三步：正式审核**\n\n用户确认后才执行场景一的完整审核流程。\n\n### 场景一：完整审核（Step 1 → 6）\n\n**第一步：获取数据** — 要求用户提供本月工资数据文件（CSV/Excel），**必须同时提供上月数据**用于跨月对比。\n\n**第二步：数据扫描确认** — 见场景零。\n\n**第三步：执行审核**\n\n```bash\npython3 -m scripts.rules_engine \\\n  --data <本月工资数据.csv> \\\n  --prev <上月工资数据.csv> \\\n  --output /tmp/audit_result.json\n```\n\n**第四步：确认门** — 如果 `summary.blocked == true`（触发红线），**不要生成报告**，先输出红线清单并要求用户确认数据修正后再继续。\n\n**第五步：生成报告** — 通过红线后，用脚本输出 JSON 生成人类可读报告：\n\n```bash\npython3 scripts/generate_report.py \\\n  --input /tmp/audit_result.json \\\n  --format both\n```\n\n**输出文件**：`report.html` + `report.md` 在工作目录。\n\n### 场景二：快速红线校验\n\n```bash\npython3 -m scripts.rules_engine \\\n  --data <工资数据.csv> \\\n  --step red_lines \\\n  --output /tmp/red_lines_result.json\n```\n\n适用于发薪前快速检查，只需 10 秒。\n\n### 场景三：数据梳理（字段检查）\n\n```bash\npython3 -m scripts.rules_engine \\\n  --data <工资数据.csv> \\\n  --step fields \\\n  --output /tmp/fields_result.json\n```\n\n检查必填字段是否缺失、格式是否正确。\n\n### 场景四：公式校验\n\n```bash\npython3 -m scripts.rules_engine \\\n  --data <工资数据.csv> \\\n  --step formulas \\\n  --output /tmp/formulas_result.json\n```\n\n验证应发/实发计算是否与公式一致。\n\n### 场景五：报告生成\n\n```bash\n# HTML 可视化报告\npython3 scripts/generate_report.py \\\n  --input /tmp/audit_result.json --format html --output report.html\n\n# Markdown 报告\npython3 scripts/generate_report.py \\\n  --input /tmp/audit_result.json --format markdown --output report.md\n\n# 两者都生成\npython3 scripts/generate_report.py \\\n  --input /tmp/audit_result.json --format both\n```\n\n### 场景六：审核清单看板（Step 7）\n\n**审核清单看板 = 完整审核条目展开清单**，每条包含审核结果 + 数据依据 + 处理建议。\n```bash\npython3 scripts/generate_kanban.py --input /tmp/audit_result.json --format both\n```\n**超链接复核**：`--review-link \"https://hr.example/emp/{emp_id}?row={row_index}\"`\n输出 `kanban.html` + `kanban.md`，展开 rules.json 所有规则（28+条）。\n### 场景七：抽样校验（Step 8，推荐）\n\n审核完成后进行二次确认：`python3 scripts/sampling_verify.py --data <数据.csv> --audit <审核结果.json> --sample-size 30 --threshold 0.05 --output <输出.json>`\n\n**流程**：随机抽样→独立重算（公式/红线/业务规则）→交叉对比→偏差率≤5%通过；>5%触发根因分析后重新审核。偏差超标时输出根因报告并使用 `run_audit.py --resume` 断点重审。\n### 场景八：分段审核编排（推荐大数据量场景）\n\n`python3 scripts/run_audit.py --data <本月.csv> --prev <上月.csv> --output-dir /tmp/audit_phases`\n\n7个独立阶段（字段→公式→业务规则→红线阻断门→黄线→蓝线→汇总），每阶段输出独立 JSON，避免上下文截断。红线触发时自动阻断后续阶段。支持断点续传：`--resume`。\n\n### 场景九：端到端流水线（一键跑完不中断）\n红线/偏差/缺失字段均标记为问题写入清单，不阻断。输出：`00_data_scan.json` `01_audit_result.json` `02_report.html/md` `02_report_v6.html/md`（表格化，推荐）`02a_data_index.json`（三者关联核心）`03_kanban.html/md` `03_kanban_v6.html`（动态交互，推荐）`04_sampling_verify.json` `05_issue_report.md`(问题清单)。\n```bash\npython3 scripts/run_full_pipeline.py --data <本月.csv> --prev <上月.csv> --output-dir /tmp/audit_output --review-link \"https://hr.example/emp/{emp_id}?row={row_index}\"\n```\n\n## 补充说明\n\n### 数据来源\n\n- **优先**：飞书多维表格导出 CSV / SAP HCM 导出 Excel / ADP 导出\n- **降级**：要求用户提供 CSV/Excel 文件\n- **兜底**：无任何数据源时拒绝执行，回复：\"请提供工资数据文件（CSV 或 Excel 格式），我才能进行审核。\"\n\n### 数据支撑原则\n\n**每个审核结论必须有数据依据，不凭空判断。** 这是审核系统的核心原则——**\"审核通过\"不是感觉出来的，是数据算出来的。**\n\n#### 一、\"通过\"结论的数据支撑逻辑\n\n每个判定为\"正常/通过\"的审核项目，必须同时输出以下三项数据：\n\n| 要素 | 说明 | 示例 |\n|------|------|------|\n| **检查数** | 共检查了多少条记录 | \"2000条记录\" |\n| **通过数** | 多少条符合规则 | \"1998条通过\" |\n| **阈值** | 判定标准是什么 | \"容差0.01元\" |\n\n**完整示例**：\n- ✅ 正确：\"公式校验通过：2000条记录全部在0.01元容差范围内，通过率100%\"\n- ❌ 错误：\"公式校验通过\"（无数据支撑，无法验证结论可靠性）\n\n**为什么必须这样**：如果没有检查数和通过数，\"通过\"可能是只检查了1条、也可能是2000条——可信度完全不同。\n\n#### 二、异常结论的数据支撑\n\n必须列出具体人员、工号、异常值、预期值、违反的规则ID：\n\n- ✅ 正确：\"张三（工号E001）实发金额为-500元，预期值≥0，违反RL-001（实发≤0），严重等级：BLOCK\"\n- ❌ 错误：\"有人实发金额异常\"（无具体信息，无法采取行动）\n\n#### 三、趋势判断的数据支撑\n\n必须给出具体数值、变化幅度、驱动因素：\n\n- ✅ 正确：\"应发总额环比+12.3%（¥15.2M→¥17.1M），超出±10%正常范围，主要由业务线奖金增加导致（+45.2%，¥2.1M→¥3.0M）\"\n- ❌ 错误：\"工资总额有明显增长\"（无数据，无法判断合理性）\n\n#### 四、排除说明的数据支撑\n\n当某人被排除在异常分析外时，必须说明排除原因和依据：\n\n- ✅ 正确：\"李四（工号E002）应发变化+15.8%，但4月有调薪记录（调薪生效日期=2026-04-01），匹配排除规则'调薪'，已排除\"\n- ❌ 错误：\"李四的变化是正常的\"（无依据）\n\n#### 五、红线阻断的数据支撑\n红线触发时输出：触发人数/具体名单(工号+姓名+异常值)/违反规则(ID+名称)。\n**报告\"结论与建议\"结构**：总体结论(检查数+各维度通过/异常数)→各维度详情表格(检查数/通过数/异常数/通过率/结论)→异常明细→建议行动(基于具体数据)。\n\n### 列名容错\n\n脚本内置 `COLUMN_ALIAS` 字典，自动映射 30+ 种常见列名变体。如果列名无法识别，脚本返回 `{\"error\": \"Missing column: XXX\"}`，LLM 必须原文转述。\n\n### 精度处理\n\n金额计算使用 `decimal.Decimal`，避免浮点误差累积。公式校验容差 0.01（1 分钱）。\n\n### 规则更新\n\n所有规则集中在 `references/rules.json`。修改规则只需编辑此文件，无需修改脚本。**为什么这样设计**：业务规则变化频繁（如最低工资调整），集中管理避免每次都要改代码。\n\n#### 如何扩展规则\n\n1. **新增红线**：在 `rules.json` 的 `red_lines` 数组中添加新对象，包含 `id`、`name`、`condition`、`field`、`severity: \"BLOCK\"`\n2. **新增黄线**：在 `yellow_lines` 数组中添加，`action: \"flag_and_explain\"`\n3. **新增蓝线**：在 `blue_lines` 数组中添加，`action: \"note_only\"`\n4. **新增政策**：在 `policies` 数组中添加，包含 `condition`（触发条件）和 `effect`（豁免效果）\n5. **新增业务规则**：在 `business_rules` 数组中添加，支持 `field1 <= field2` 类双字段比较\n6. **新增排除条件**：在 `person_analysis_exclusions` 对象中添加新 key，包含 `field`、`condition`、`note`\n\n**规则 ID 命名规范**：`{类型}-{序号}`，如 `RL-005`（第5条红线）、`YL-007`（第7条黄线）、`POL-006`（第6条政策）、`BR-005`（第5条业务规则）\n\n**添加规则后不需要修改任何 Python 代码**，引擎自动加载。\n\n### 红线阻断\n\n红线触发 → 立即阻断，不继续后续步骤，不生成报告。**为什么**：红线代表严重违规（如负实发、低于最低工资），必须先修正数据再审核，否则报告无意义。\n\n### 编排指南：单节点原则（v6.2.1 新增）\n\n**本 Skill 被 Workflow Orchestration Skill 编排时，必须作为单节点调用。**\n\n根因：`run_full_pipeline.py` 已是端到端流水线，内部按序完成所有 8 步（扫描→规则→红黄蓝线→报告→看板→抽样→问题清单→总报告）。拆成多节点编排无收益——每个节点仍调用同一个 skill，内部全量执行一遍。\n\n| 错误做法 | 正确做法 |\n|----------|----------|\n| N1 data_scan → N2 rules_engine → N3 generate_report → ... | N1 run_full_pipeline.py 一键跑完 |\n\n**唯一例外**：当业务确实需要中间状态可见性或独立重试时，才使用 `run_audit.py` 分段模式（7阶段+断点续传），但仍然是**同一 skill 的多次调用**，不是拆成多个 skill。\n\n### 常见错误场景\n\n| 场景 | 处理 |\n|------|------|\n| 数据源字段缺失 | 列出缺失字段清单，要求用户补充后重试 |\n| 日期格式混乱 | 脚本自动尝试多种格式解析，失败则返回错误 |\n| 无上月数据 | 跨月对比/按人分析跳过，在报告中标注\"无基准数据\" |\n| Python 环境无 pandas | 提示用户 `pip install pandas numpy openpyxl` |\n| 红线触发 | 立即阻断，不继续后续步骤 |\n\n### 目录结构\n\n```\npayroll-data-audit/\n├── SKILL.md\n├── _meta.json\n├── scripts/\n│   ├── data_scan.py               # 数据扫描（SOP 第一步）\n│   ├── rules_engine.py            # 统一规则引擎（OOP）\n│   ├── generate_report.py         # HTML/Markdown 报告生成器（v5，兼容）\n│   ├── generate_report_v6.py      # 表格化报告生成器（v6，推荐）\n│   ├── generate_kanban.py         # 审核清单看板生成器（Step 7，静态）\n│   ├── generate_kanban_v6.py      # 动态交互看板生成器（v6，推荐）\n│   ├── generate_data_index.py     # 数据支撑索引生成器（v6，三者关联核心）\n│   ├── run_audit.py               # 分段审核编排器（7阶段+断点续传）\n│   ├── run_full_pipeline.py       # 端到端流水线（含 v6 输出 + 总报告）\n│   ├── generate_master_report.py  # 总审核报告生成器（v6.2，聚合所有输出）\n│   ├── sampling_verify.py         # 抽样校验器（二次确认）\n│   └── tests/                     # pytest 测试套件\n│       ├── test_rules_engine.py\n│       └── test_parameterized.py\n├── references/\n│   └── rules.json                 # 所有规则声明（唯一真相来源）\n└── .github/workflows/\n    └── test.yml                   # CI/CD\n```\n\n### 依赖\n\n```bash\npip install pandas numpy openpyxl\n```\n\n### 测试\n\n```bash\ncd payroll-data-audit\npython -m pytest scripts/tests/ -v --cov=scripts.rules_engine --cov-report=term-missing\n```\n\nCI/CD 自动运行：push/PR 时触发 pytest + coverage（80% 门槛）+ lint。\n\nFile v6.2.3:_meta.json\n\n{\n  \"ownerId\": \"kn70tx725606ywwb5gfj0vpxjx83admr\",\n  \"slug\": \"payroll-data-audit\",\n  \"version\": \"6.2.3\",\n  \"publishedAt\": 1784884730184\n}\n\nFile v6.2.3:scripts/rules.json\n\n{\n  \"version\": \"5.1.0\",\n  \"metadata\": {\n    \"lastUpdated\": \"2026-06-01\",\n    \"updatedBy\": \"HRCOE\",\n    \"description\": \"工资数据审核规则库，所有阈值和逻辑以本文件为准。全量对齐SOP v1.0\",\n    \"changelog\": \"v5.1.0: 新增道旅国际社保/公积金豁免政策(POL-004/POL-005); 新增业务逻辑校验规则(BR-001~BR-004); 新增按人分析排除条件(person_analysis_exclusions); 新增请假>2天排除逻辑; 新增多主体发薪检测\"\n  },\n  \"thresholds\": {\n    \"overtime_limit\": 36,\n    \"overtime_unit\": \"hour\",\n    \"overtime_breakdown\": [\n      \"平时加班时数\",\n      \"周末加班时数\",\n      \"法定加班时数\"\n    ],\n    \"min_wage_default\": 2360,\n    \"min_wage_shenzhen\": 2360,\n    \"min_wage_guangzhou\": 2300,\n    \"min_wage_dongguan\": 1900,\n    \"perf_coefficient_max\": 1.5,\n    \"perf_coefficient_min\": 0.5,\n    \"perf_coefficient_swing\": 0.5,\n    \"bonus_volatility_threshold\": 0.5,\n    \"supply_volatility_threshold\": 5000,\n    \"headcount_variance_threshold\": 0.05,\n    \"supply_months_tolerance\": 2\n  },\n  \"red_lines\": [\n    {\n      \"id\": \"RL-001\",\n      \"name\": \"实发≤0\",\n      \"description\": \"实发金额合计≤0，必须立即核实\",\n      \"condition\": \"sum(实发金额合计) <= 0\",\n      \"field\": \"实发金额合计\",\n      \"exclusions\": [],\n      \"severity\": \"BLOCK\",\n      \"action\": \"stop_and_alert\"\n    },\n    {\n      \"id\": \"RL-002\",\n      \"name\": \"加班超36h\",\n      \"description\": \"月加班总时数>36小时，违反劳动法\",\n      \"condition\": \"sum(平时加班时数 + 周末加班时数 + 法定加班时数) > 36\",\n      \"field\": \"平时加班时数\",\n      \"exclusions\": [\n        \"当月入职\",\n        \"当月离职\",\n        \"实习生\",\n        \"保洁\",\n        \"请假超过15天\"\n      ],\n      \"severity\": \"BLOCK\",\n      \"action\": \"stop_and_alert\"\n    },\n    {\n      \"id\": \"RL-003\",\n      \"name\": \"低于最低工资\",\n      \"description\": \"应发合计低于当地最低工资标准\",\n      \"condition\": \"应发合计 < 当地最低工资\",\n      \"field\": \"应发合计\",\n      \"exclusions\": [\n        \"实习生\",\n        \"保洁\",\n        \"当月长时间请假\",\n        \"当月入职\",\n        \"当月离职\"\n      ],\n      \"severity\": \"BLOCK\",\n      \"action\": \"stop_and_alert\"\n    },\n    {\n      \"id\": \"RL-004\",\n      \"name\": \"社保公积金应缴未缴\",\n      \"description\": \"不符合豁免政策但个人社保/公积金扣款为0\",\n      \"condition\": \"不符合豁免政策 AND 个人社保 == 0\",\n      \"field\": \"个人社保\",\n      \"exclusions\": [\n        \"实习生\",\n        \"日薪\",\n        \"保洁\"\n      ],\n      \"severity\": \"BLOCK\",\n      \"action\": \"stop_and_alert\"\n    }\n  ],\n  \"yellow_lines\": [\n    {\n      \"id\": \"YL-001\",\n      \"name\": \"绩效系数过高\",\n      \"threshold\": 1.5,\n      \"field\": \"绩效系数\",\n      \"description\": \"绩效系数>1.5，需核实是否有特殊贡献依据\",\n      \"action\": \"flag_and_explain\",\n      \"exclusions\": [\"实习生\", \"日薪\", \"保洁\", \"当月入职\", \"当月离职\"]\n    },\n    {\n      \"id\": \"YL-002\",\n      \"name\": \"绩效系数过低\",\n      \"threshold\": 0.5,\n      \"field\": \"绩效系数\",\n      \"description\": \"绩效系数<0.5，需核实绩效评估是否合理\",\n      \"action\": \"flag_and_explain\",\n      \"exclusions\": [\"实习生\", \"日薪\", \"保洁\", \"当月入职\", \"当月离职\"]\n    },\n    {\n      \"id\": \"YL-003\",\n      \"name\": \"绩效系数月度波动大\",\n      \"threshold\": 0.5,\n      \"field\": \"绩效系数\",\n      \"description\": \"本月系数与上月系数差值>0.5，需核实评估依据\",\n      \"action\": \"flag_and_explain\",\n      \"exclusions\": [\"实习生\", \"日薪\", \"保洁\", \"当月入职\", \"当月离职\"]\n    },\n    {\n      \"id\": \"YL-004\",\n      \"name\": \"住宿扣款变化\",\n      \"threshold\": 0,\n      \"field\": \"住宿扣款\",\n      \"description\": \"本月住宿扣款与上月不一致，需确认是否退宿或新入住\",\n      \"action\": \"flag_and_explain\",\n      \"exclusions\": [\"实习生\", \"日薪\", \"保洁\"]\n    },\n    {\n      \"id\": \"YL-005\",\n      \"name\": \"出勤天数超计薪天数\",\n      \"threshold\": 0,\n      \"field\": \"实际计薪出勤天数\",\n      \"description\": \"实际计薪出勤天数 > 应计薪出勤天数，排班数据可能有误\",\n      \"action\": \"flag_and_explain\"\n    },\n    {\n      \"id\": \"YL-006\",\n      \"name\": \"标准工资无依据变化\",\n      \"threshold\": 0,\n      \"field\": \"标准基本工资\",\n      \"description\": \"本月&上月均无调薪/转正记录但标准工资有变化\",\n      \"action\": \"flag_and_explain\",\n      \"exclusions\": [\"实习生\", \"日薪\", \"保洁\", \"当月入职\"]\n    }\n  ],\n  \"blue_lines\": [\n    {\n      \"id\": \"BL-001\",\n      \"name\": \"业务线奖金波动\",\n      \"description\": \"季度奖金发放导致的正常波动\",\n      \"action\": \"note_only\"\n    },\n    {\n      \"id\": \"BL-002\",\n      \"name\": \"加班费波动\",\n      \"description\": \"法定节假日加班费与普通加班费差异\",\n      \"action\": \"note_only\"\n    },\n    {\n      \"id\": \"BL-003\",\n      \"name\": \"补发波动\",\n      \"description\": \"某月突然增加补发，需确认依据\",\n      \"action\": \"note_only\"\n    },\n    {\n      \"id\": \"BL-004\",\n      \"name\": \"提成波动\",\n      \"description\": \"业务正常波动，±50%以内属正常\",\n      \"threshold\": 0.5,\n      \"action\": \"note_only\"\n    }\n  ],\n  \"policies\": [\n    {\n      \"id\": \"POL-001\",\n      \"name\": \"15号后入职当月不缴社保公积金\",\n      \"condition\": \"入职日期.day > 15\",\n      \"effect\": {\n        \"个人社保\": 0,\n        \"个人公积金\": 0\n      },\n      \"applies_to\": \"both\",\n      \"note\": \"入职当月不缴纳，次月起缴纳\"\n    },\n    {\n      \"id\": \"POL-002\",\n      \"name\": \"实习生/保洁豁免社保公积金\",\n      \"condition\": \"岗位 in [实习生, 日薪, 保洁]\",\n      \"effect\": {\n        \"个人社保\": 0,\n        \"个人公积金\": 0\n      },\n      \"applies_to\": \"both\",\n      \"note\": \"非全日制实习生按需调整\"\n    },\n    {\n      \"id\": \"POL-003\",\n      \"name\": \"离职当月社保公积金缴纳规则\",\n      \"condition\": \"离职日期.day <= 15\",\n      \"effect\": {\n        \"个人社保\": 0,\n        \"个人公积金\": 0\n      },\n      \"applies_to\": \"both\",\n      \"note\": \"15号前离职当月不缴，15号后离职当月缴纳\"\n    },\n    {\n      \"id\": \"POL-004\",\n      \"name\": \"道旅国际-社保豁免\",\n      \"condition\": \"公司主体 == '道旅国际'\",\n      \"effect\": {\n        \"个人社保\": 0\n      },\n      \"applies_to\": \"both\",\n      \"note\": \"道旅国际员工不缴纳个人社保\"\n    },\n    {\n      \"id\": \"POL-005\",\n      \"name\": \"道旅国际-公积金豁免\",\n      \"condition\": \"公司主体 == '道旅国际' AND 入职月数 <= 2\",\n      \"effect\": {\n        \"个人公积金\": 0\n      },\n      \"applies_to\": \"both\",\n      \"note\": \"道旅国际员工入职2个月内不缴纳个人公积金\"\n    }\n  ],\n  \"formula_rules\": [\n    {\n      \"id\": \"FR-001\",\n      \"name\": \"应发合计校验\",\n      \"description\": \"应发合计 = 各收入科目之和 - 其他扣减\",\n      \"left\": \"应发合计\",\n      \"right_fields\": [\n        \"实际出勤工资小计\",\n        \"实际绩效工资\",\n        \"实际出勤福利小计\",\n        \"轮班补贴\",\n        \"加班费小计\",\n        \"业务线奖金合计\",\n        \"提成\",\n        \"补发\"\n      ],\n      \"deductions\": [\n        \"其他扣减\"\n      ],\n      \"tolerance\": 0,\n      \"applies_to\": \"all\"\n    },\n    {\n      \"id\": \"FR-002\",\n      \"name\": \"实发合计校验\",\n      \"description\": \"实发合计 = 应发合计 - 代扣款项 + 补贴\",\n      \"left\": \"实发金额合计\",\n      \"deductions\": [\n        \"个人社保\",\n        \"个人公积金\",\n        \"个税\",\n        \"税后扣减\",\n        \"住宿扣款\",\n        \"社保差额\",\n        \"公积金差额\"\n      ],\n      \"additions\": [\n        \"经济补偿金\"\n      ],\n      \"tolerance\": 0,\n      \"applies_to\": \"all\"\n    },\n    {\n      \"id\": \"FR-003\",\n      \"name\": \"出勤工资校验\",\n      \"description\": \"实际出勤工资小计 ≤ 标准基本工资\",\n      \"left\": \"实际出勤工资小计\",\n      \"right_field\": \"标准基本工资\",\n      \"tolerance\": 0,\n      \"direction\": \"lte\",\n      \"applies_to\": \"all\",\n      \"exclusions\": [\n        \"实习生\",\n        \"日薪\"\n      ]\n    },\n    {\n      \"id\": \"FR-004\",\n      \"name\": \"计薪天数校验\",\n      \"description\": \"实际计薪出勤天数 ≤ 应计薪出勤天数\",\n      \"left\": \"实际计薪出勤天数\",\n      \"right_field\": \"应计薪出勤天数\",\n      \"tolerance\": 0,\n      \"direction\": \"lte\",\n      \"applies_to\": \"all\"\n    }\n  ],\n  \"business_rules\": [\n    {\n      \"id\": \"BR-001\",\n      \"name\": \"出勤工资不超过标准工资\",\n      \"condition\": \"实际出勤工资小计 <= 标准基本工资\",\n      \"exclusions_field\": \"岗位\",\n      \"exclusions_values\": [\n        \"实习生(日薪)\",\n        \"日薪\"\n      ],\n      \"description\": \"实际出勤工资小计不应超过标准基本工资（排除日薪实习生）\",\n      \"severity\": \"yellow\"\n    },\n    {\n      \"id\": \"BR-002\",\n      \"name\": \"出勤天数不超过应出勤天数\",\n      \"condition\": \"实际计薪出勤天数 <= 应计薪出勤天数\",\n      \"description\": \"实际计薪出勤天数不应超过应计薪出勤天数\",\n      \"severity\": \"yellow\"\n    },\n    {\n      \"id\": \"BR-003\",\n      \"name\": \"绩效系数在合理范围\",\n      \"condition\": \"绩效系数 >= 0.5 AND 绩效系数 <= 1.5\",\n      \"description\": \"绩效系数应在0.5~1.5之间\",\n      \"severity\": \"yellow\"\n    },\n    {\n      \"id\": \"BR-004\",\n      \"name\": \"班天数不超过计薪天数\",\n      \"condition\": \"班天数合计 <= 实际计薪出勤天数\",\n      \"description\": \"排班天数合计不应超过实际计薪出勤天数\",\n      \"severity\": \"yellow\"\n    }\n  ],\n  \"person_analysis_exclusions\": {\n    \"离职\": {\n      \"field\": \"离职日期\",\n      \"condition\": \"离职日期 in 当月\",\n      \"note\": \"当月离职人员，工资因不满勤而下降属正常\"\n    },\n    \"新入职不满勤\": {\n      \"field\": \"入职日期\",\n      \"condition\": \"入职日期 in 上月 AND 上月不满勤\",\n      \"note\": \"上月新入职人员，上月不满勤导致基数偏低\"\n    },\n    \"转正\": {\n      \"field\": \"转正薪资生效日期\",\n      \"condition\": \"转正薪资生效日期 in [上月, 当月]\",\n      \"note\": \"转正导致标准工资变化属正常\"\n    },\n    \"调薪\": {\n      \"field\": \"调薪生效日期\",\n      \"condition\": \"调薪生效日期 in [上月, 当月]\",\n      \"note\": \"调薪导致标准工资变化属正常\"\n    },\n    \"请假\": {\n      \"field\": \"请假天数\",\n      \"condition\": \"病假 > 2 OR 事假 > 2\",\n      \"note\": \"请假导致计薪天数下降属正常\"\n    },\n    \"多主体发薪\": {\n      \"field\": \"工号\",\n      \"condition\": \"同一工号在多个公司主体出现\",\n      \"note\": \"多主体发薪人员不应直接对比单一主体工资\"\n    }\n  },\n  \"required_fields\": {\n    \"基础信息\": [\n      \"发薪月\",\n      \"公司主体\",\n      \"姓名代号\",\n      \"工号\"\n    ],\n    \"人员变动\": [\n      \"入职日期\",\n      \"离职日期\"\n    ],\n    \"工资变动\": [\n      \"转正薪资生效日期\",\n      \"调薪生效日期\"\n    ],\n    \"出勤\": [\n      \"实际计薪出勤天数\",\n      \"实际出勤工资小计\",\n      \"应计薪出勤天数\"\n    ],\n    \"绩效\": [\n      \"绩效系数\",\n      \"实际绩效工资\"\n    ],\n    \"福利补贴\": [\n      \"实际出勤福利小计\",\n      \"轮班补贴\"\n    ],\n    \"加班\": [\n      \"加班费小计\",\n      \"平时加班时数\",\n      \"周末加班时数\",\n      \"法定加班时数\"\n    ],\n    \"奖金提成\": [\n      \"业务线奖金合计\",\n      \"提成\",\n      \"其他奖金\"\n    ],\n    \"调整项\": [\n      \"补发\",\n      \"其他扣减\"\n    ],\n    \"最终结果\": [\n      \"应发合计\",\n      \"实发金额合计\"\n    ],\n    \"社保公积金\": [\n      \"个人社保\",\n      \"个人公积金\"\n    ],\n    \"代扣税\": [\n      \"个税\",\n      \"税后扣减\",\n      \"住宿扣款\",\n      \"社保差额\",\n      \"公积金差额\",\n      \"经济补偿金\"\n    ],\n    \"请假\": [\n      \"病假\",\n      \"事假\"\n    ]\n  }\n}\n\nFile v6.2.3:skill-card.md\n\n## Description: <br>\nPayroll Data Audit helps agents run deterministic payroll-data checks and produce audit reports for CSV or Excel payroll exports. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[tuobadaidai](https://clawhub.ai/user/tuobadaidai) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nHR, payroll, and finance reviewers use this skill to audit monthly payroll exports before payroll release, validate formulas and policy rules, compare current and prior periods, and create data-backed issue reports. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Payroll inputs and generated reports can contain sensitive employee compensation data. <br>\nMitigation: Run the skill only on authorized payroll data, write outputs to restricted directories, and treat generated JSON, Markdown, HTML, and issue reports as sensitive files. <br>\nRisk: Review-link URLs may expose raw employee identifiers if configured with employee fields. <br>\nMitigation: Use review links that avoid raw employee identifiers or route through an access-controlled internal system. <br>\nRisk: Generated HTML reports may carry weak privacy and HTML-safety guardrails. <br>\nMitigation: Review, redact, or sanitize generated HTML before sharing outside the payroll review group. <br>\nRisk: Payroll audit conclusions may be misleading if source data or red-line findings are not reviewed. <br>\nMitigation: Complete the data-scan confirmation step and have qualified payroll reviewers validate blocking findings before using outputs for payroll decisions. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/tuobadaidai/skills/payroll-data-audit) <br>\n- [Publisher profile](https://clawhub.ai/user/tuobadaidai) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown guidance with shell commands; generated audit artifacts may include JSON, Markdown, HTML, and CSV-style exports.] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Processes payroll CSV or Excel inputs and writes persistent audit outputs to caller-selected paths.] <br>\n\n## Skill Version(s): <br>\n6.2.3 (source: server release evidence; artifact frontmatter reports 6.2.2) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v6.2.3:requirements.txt\n\npandas>=2.0.0\nnumpy>=1.24.0\nopenpyxl>=3.1.0\n\nArchive v7.4.1: 54 files, 223221 bytes\n\nFiles: _delivery/00_data_scan.json (1249b), _delivery/01_audit_result.json (63388b), _delivery/02_report_v6.html (49447b), _delivery/02_report_v6.md (4704b), _delivery/02_report.html (17804b), _delivery/02_report.md (5395b), _delivery/02a_data_index.json (31186b), _delivery/03_kanban_v6.html (37946b), _delivery/03_kanban.html (30954b), _delivery/03_kanban.md (5643b), _delivery/04_sampling_verify.json (4551b), _delivery/05_issue_report.md (3638b), _delivery/06_master_report.html (20126b), _delivery/audit_summary.md (687b), _delivery/delivery_message.md (1591b), _delivery/delivery_result.json (4302b), _meta.json (137b), _send/02_report_v6.html (49447b), _send/03_kanban_v6.html (37946b), _send/05_issue_report.md (3638b), _send/06_master_report.html (20126b), _send/delivery_message.md (1591b), _send/delivery_result.json (4302b), _upload_temp/00_data_scan.json (1249b), _upload_temp/01_audit_result.json (63388b), _upload_temp/02_report_v6.html (49447b), _upload_temp/02_report_v6.md (4704b), _upload_temp/02a_data_index.json (31186b), _upload_temp/03_kanban_v6.html (37946b), _upload_temp/03_kanban.md (5643b), _upload_temp/04_sampling_verify.json (4551b), _upload_temp/05_issue_report.md (3638b), _upload_temp/06_master_report.html (20126b), _upload_temp/audit_summary.md (687b), 02_report_v6.md (4704b), references/rules.json (15277b), requirements.txt (44b), scripts/data_scan.py (10846b), scripts/deliver_audit_files.py (6638b), scripts/deliver_to_feishu.py (9767b), scripts/generate_data_index.py (8007b), scripts/generate_kanban_v6.py (21021b), scripts/generate_kanban.py (22871b), scripts/generate_master_report.py (15225b), scripts/generate_report_v6.py (35295b), scripts/generate_report.py (33255b), scripts/rules_engine.py (80672b), scripts/run_audit.py (11747b), scripts/run_full_pipeline.py (23146b), scripts/sampling_verify.py (10751b), scripts/tests/test_parameterized.py (20378b), scripts/tests/test_rules_engine.py (19920b), skill-card.md (2458b), SKILL.md (22750b)\n\nFile v7.4.1:SKILL.md\n\n---\nname: payroll-data-audit\nversion: 7.4.0\ndescription: 工资数据审核系统，基于确定性规则引擎 + Python 脚本执行。\n  全量对齐《工资审核标准流程 SOP》6 步流程。v7.2 修复P0阻断bug：_get_pay_month() 支持\n  中文格式（\"2026年4月\"/\"2026年04月\"/\"202604\"），RL-003/RL-007 排除逻辑完全生效。\n  v7.1 修复5个P0阻断bug：全角/半角括号统一、RL-003状态列检查、RL-007新员工排除+上月1号调薪豁免、FR-003实习生排除、YL-006上月1号豁免。\n  v6.2 新增总审核报告（Master Report）、 规则判定过程详解（judgment）、黄线排除逻辑完善。\n  v6.2.1 新增编排指南：单节点原则。\n  Use when user asks to 工资数据审核、薪资校验、算薪逻辑验证、薪酬合规检查、\n  工资单审核、月度薪资校验、发薪前数据检查、payroll audit、salary check、\n  wage verification、payroll compliance.\n  不适用于非薪酬类数据审核、纯算薪操作（非审核）、外部薪酬调研、个税/社保计算.\n  此技能需手动触发.\n---\n\n# Payroll Data Audit v7.4.1\n\n**架构原则**：确定性操作下沉到代码，模糊推理留给 LLM。AI 不做计算和判断，只做路由决策和报告翻译。\n\n## 概述\n\n工资数据审核系统，全量对齐《工资审核标准流程 SOP》6 步流程，对飞书/SAP/ADP 导出的工资表执行自动化合规校验。SOP 覆盖率 95%（41/43 项）。\n\n### v6.3 新功能\n\n- **RL-003 排除逻辑修复**：低于最低工资检查排除实习生(日薪)、实习生(月薪)、当月入职、当月离职、当月长时间请假（病假>5天或事假>5天）\n- **RL-004 排除逻辑修复**：社保公积金应缴未缴排除实习生(月薪)\n- **YL-006 误报修复**：非1号转正/调薪导致的跨月工资变化不再误报（生效日期在[上月发薪月, 当月发薪月]范围内自动排除）\n- **COLUMN_ALIAS 扩充**：新增 40+ 个字段别名变体，覆盖更多实际工资表列名（如\"应发工资合计\"、\"实发工资\"、\"个人所得税扣款\"等）\n- **连续在职人员环比分析**：新增 `analyze_continuous_employees()` 方法，自动识别连续在职人员，排除实习生/当月入离职/近期调薪转正/请假>2天/多主体发薪人员，对比12项计薪科目环比变化，自动标记 >10% 异常波动并分类原因\n- **场景十·文件交付（Step 9）**：新增 `deliver_audit_files.py`，11个必发文件清单生成 + 审核结论摘要自动生成，流水线结束后 Phase 8/8 自动交付准备\n- **审核清单增强**：呈现审核数据情况、通过/不通过原因、判定过程详解\n\n### v6.2 新功能\n\n- **总审核报告（Master Report）**：Phase 7/7，将数据扫描、审核结果、判定过程、问题清单、抽样校验聚合为一份完整的 HTML 总报告（`06_master_report.html`）\n- **规则判定过程详解（judgment）**：每条规则输出 `judgment` 字段，包含规则逻辑、检查范围、排除人数及原因、实际检查人数、通过率、判定结论，让看报告的人能看到\"怎么判的、排了谁、阈值是什么\"\n- **黄线排除逻辑完善**：YL-001~004、YL-006 新增实习生/日薪/保洁/当月入职/当月离职排除；YL-005（出勤天数超计薪天数）不排除任何人（数据质量问题全员检查）\n\n### v6.0 新功能\n\n- **表格化报告**：整体以表格形式呈现，信息密度高，替代 v5 的卡片+SVG 风格\n- **动态交互看板**：支持筛选/排序/搜索/展开明细/导出CSV/深色模式（零依赖，纯内嵌JS）\n- **数据支撑索引**：`data_index.json` 作为报告和看板的关联核心，保证数据一致性\n- **三者联动**：报告 ↔ 看板 ↔ 数据索引，通过 rule_id 双向锚定\n\n### 功能范围\n\n- **SOP 第一步（强制）**：数据扫描确认（发薪月/公司主体/计薪项/特殊人员/工号重复检测）\n- 字段完整性检查（30+ 列名容错映射）\n- 公式校验（Decimal 精度，0.01 容差）\n- 业务逻辑校验（出勤工资/天数/绩效系数/加班/最低工资）\n- 红线校验（实发≤0、加班超36h、低于最低工资、社保未缴）\n- 黄线校验（绩效异常、出勤超限、工资波动）\n- 蓝线校验（跨月趋势，仅提示）\n- 政策校验（道旅国际豁免、15号后入职、实习生/保洁豁免、离职当月社保）\n- 人数对比分析（新入职/离职/波动>5%）\n- 总额环比分析（12项计薪科目，±10%阈值自动标记）\n- 分主体/分四级部门对比（按公司主体分组环比）\n- 按人深入分析（连续在职筛选+排除逻辑+六类变化分类+核实标记）\n- HTML/Markdown 审核报告生成\n- **数据支撑**：每个审核结论必须有数据依据\n- **审核清单看板**：完整条目清单（结果+数据依据+处理建议），HTML+Markdown 双格式\n- **分段审核**：7阶段独立执行，避免上下文截断，支持断点续传\n- **抽样校验**：随机抽样+独立重算+偏差检测，二次确认审核结果\n- **超链接复核**：异常项可点击复核链接（支持 {emp_id}/{emp_name}/{row_index}）\n- **端到端流水线**：`run_full_pipeline.py` 一键跑完不中断（数据扫描→审核→报告→看板→抽样→问题清单→总审核报告）\n\n**不覆盖**：实际算薪操作、薪酬市场调研、个税计算、社保核算。\n\n### SOP 流程映射\n\n| SOP 步骤 | 本 Skill 对应 | 说明 |\n|---------|-------------|------|\n| 第一步：审核流程（强制） | `data_scan.py` + 用户确认 | **禁止跳步** |\n| 第二步：数据逻辑验证 | `rules_engine.py` 公式+业务逻辑 | 公式校验+5项业务规则 |\n| 第三步：异常数据扫描 | `rules_engine.py` 红/黄/蓝线 | 4红+6黄+4蓝 |\n| 第四步：总额对比分析 | `rules_engine.py --prev` 总额环比 | ±10%阈值 |\n| 第五步：按人深入分析 | `rules_engine.py --prev` 按人分析 | 排除+6类变化 |\n| 第六步：汇总审核报告 | `generate_report.py` / `generate_report_v6.py` | 结构化报告（v5）/ 表格化报告（v6） |\n| 第七步：审核清单看板 | `generate_kanban.py` / `generate_kanban_v6.py` | 静态看板（v5）/ 动态交互看板（v6） |\n| 第八步：抽样校验 | `sampling_verify.py` | 二次确认审核结果 |\n| 数据支撑索引 | `generate_data_index.py` | 三者关联核心（报告↔看板↔数据） |\n|| 分段审核编排 | `run_audit.py` | 7阶段独立执行+断点续传 |\n|| 端到端流水线 | `run_full_pipeline.py` | 一键跑完不中断，始终生成所有输出（含总报告） |\n|| 总审核报告 | `generate_master_report.py` | 聚合所有输出为一份完整 HTML 总报告 |\n| 连续在职环比分析 | `rules_engine.py::analyze_continuous_employees()` | 12项计薪科目环比，排除规则，异常标记 |\n| 文件交付（Step 9） | `deliver_to_feishu.py` | 11个必发文件上传云盘 + 飞书文档创建 + 交付消息生成（自动化交付，LLM只负责发送） |\n\n## 使用\n\n### 决策路由\n\n先判断用户需求属于哪类场景，再执行对应流程：\n\n| 用户说的 | 匹配场景 | 执行 |\n|---------|---------|------|\n| \"帮我审核本月工资数据\" | 完整审核 (Step 1→6) | 先 data_scan → 用户确认 → run_full_audit |\n| \"快速看看有没有问题\" | 红线校验 | `--step red_lines` |\n| \"发薪前帮我理一下数据\" | 字段检查 | `--step fields` |\n| \"帮我验一下公式对不对\" | 公式校验 | `--step formulas` |\n| \"帮我出个审核报告\" | 报告生成 | `generate_report.py` |\n| \"帮我出个表格版审核报告\" | 报告生成 v6 | `generate_report_v6.py` |\n| \"帮我出个审核清单/看板\" | 审核清单看板 | `generate_kanban.py` |\n| \"帮我出个动态交互看板\" | 动态看板 v6 | `generate_kanban_v6.py`（需要 data_index.json） |\n| \"分段审核/怕上下文截断\" | 分段审核 | `run_audit.py` |\n| \"帮我二次确认审核结果\" | 抽样校验 | `sampling_verify.py` |\n| \"从头到尾跑一遍审核\" | 端到端流水线 | `run_full_pipeline.py`（含 v6 报告+看板+索引+总报告+交付摘要） |\n| \"审核完了把文件发给我\" | 文件交付 | `deliver_to_feishu.py`（自动上传11个文件+创建飞书文档+生成交付消息，LLM只负责发送消息） |\n\n### 场景零：数据扫描确认（⚠️ 强制第一步）\n\n**⚠️ 禁止跳过此步骤直接执行审核！**\n\n出报告前必须先数据扫描确认，等待用户回复\"确认无误\"后才执行后续审核。\n\n**第一步：数据扫描**\n\n```bash\npython3 scripts/data_scan.py \\\n  --data <工资数据.csv> \\\n  --output /tmp/data_scan_result.json\n```\n\n扫描输出以下信息供用户确认：\n- 发薪月分布（往月/最新发薪月对应人数）\n- 最新发薪月公司主体列表及对应人数\n- 主要计薪项数据（应发合计、实发金额合计、加班费合计、个人社保合计、个人公积金合计）\n- 特殊字段识别（实习生人数、保洁人数、入职人数、离职人数、转正/调薪人数）\n- 工号重复检测\n\n**数据扫描输出示例**：\n\n```\n============================================================\n📊 工资数据扫描报告\n============================================================\n\n📋 总记录数: 2000\n📅 最新发薪月: 2026-05\n\n📅 发薪月分布:\n  2026-05: 2000 人 ← 最新\n  2026-04: 1980 人\n\n🏢 公司主体分布:\n  道旅科技: 1500 人\n  道旅国际: 300 人\n  道旅服务: 200 人\n\n💰 主要计薪项汇总:\n  应发合计: ¥15,234,567.89\n  实发金额合计: ¥12,345,678.90\n  加班费小计: ¥234,567.89\n  个人社保: ¥1,234,567.89\n  个人公积金: ¥987,654.32\n\n👥 特殊人员:\n  新入职: 15 人\n  离职: 8 人\n  转正: 12 人\n  调薪: 5 人\n\n🔍 数据质量检测:\n  工号重复: ✅ 无异常\n  姓名为空: ✅ 无异常\n\n============================================================\n请确认以上数据是否正确，回复'确认无误'后开始正式审核。\n============================================================\n```\n\n**第二步：用户确认**\n\n等待用户回复\"确认无误\"或指出问题。**如果用户指出问题，先修正数据再继续。**\n\n**第三步：正式审核**\n\n用户确认后才执行场景一的完整审核流程。\n\n### 场景一：完整审核（Step 1 → 6）\n\n**第一步：获取数据** — 要求用户提供本月工资数据文件（CSV/Excel），**必须同时提供上月数据**用于跨月对比。\n\n**第二步：数据扫描确认** — 见场景零。\n\n**第三步：执行审核**\n\n```bash\npython3 -m scripts.rules_engine \\\n  --data <本月工资数据.csv> \\\n  --prev <上月工资数据.csv> \\\n  --output /tmp/audit_result.json\n```\n\n**第四步：确认门** — 如果 `summary.blocked == true`（触发红线），**不要生成报告**，先输出红线清单并要求用户确认数据修正后再继续。\n\n**第五步：生成报告** — 通过红线后，用脚本输出 JSON 生成人类可读报告：\n\n```bash\npython3 scripts/generate_report.py \\\n  --input /tmp/audit_result.json \\\n  --format both\n```\n\n**输出文件**：`report.html` + `report.md` 在工作目录。\n\n### 场景二：快速红线校验\n\n```bash\npython3 -m scripts.rules_engine \\\n  --data <工资数据.csv> \\\n  --step red_lines \\\n  --output /tmp/red_lines_result.json\n```\n\n适用于发薪前快速检查，只需 10 秒。\n\n### 场景三：数据梳理（字段检查）\n\n```bash\npython3 -m scripts.rules_engine \\\n  --data <工资数据.csv> \\\n  --step fields \\\n  --output /tmp/fields_result.json\n```\n\n检查必填字段是否缺失、格式是否正确。\n\n### 场景四：公式校验\n\n```bash\npython3 -m scripts.rules_engine \\\n  --data <工资数据.csv> \\\n  --step formulas \\\n  --output /tmp/formulas_result.json\n```\n\n验证应发/实发计算是否与公式一致。\n\n### 场景五：报告生成\n\n```bash\n# HTML 可视化报告\npython3 scripts/generate_report.py \\\n  --input /tmp/audit_result.json --format html --output report.html\n\n# Markdown 报告\npython3 scripts/generate_report.py \\\n  --input /tmp/audit_result.json --format markdown --output report.md\n\n# 两者都生成\npython3 scripts/generate_report.py \\\n  --input /tmp/audit_result.json --format both\n```\n\n### 场景六：审核清单看板（Step 7）\n\n**审核清单看板 = 完整审核条目展开清单**，每条包含审核结果 + 数据依据 + 处理建议。\n```bash\npython3 scripts/generate_kanban.py --input /tmp/audit_result.json --format both\n```\n**超链接复核**：`--review-link \"https://hr.example/emp/{emp_id}?row={row_index}\"`\n输出 `kanban.html` + `kanban.md`，展开 rules.json 所有规则（28+条）。\n### 场景七：抽样校验（Step 8，推荐）\n\n审核完成后进行二次确认：`python3 scripts/sampling_verify.py --data <数据.csv> --audit <审核结果.json> --sample-size 30 --threshold 0.05 --output <输出.json>`\n\n**流程**：随机抽样→独立重算（公式/红线/业务规则）→交叉对比→偏差率≤5%通过；>5%触发根因分析后重新审核。偏差超标时输出根因报告并使用 `run_audit.py --resume` 断点重审。\n### 场景八：分段审核编排（推荐大数据量场景）\n\n`python3 scripts/run_audit.py --data <本月.csv> --prev <上月.csv> --output-dir /tmp/audit_phases`\n\n7个独立阶段（字段→公式→业务规则→红线阻断门→黄线→蓝线→汇总），每阶段输出独立 JSON，避免上下文截断。红线触发时自动阻断后续阶段。支持断点续传：`--resume`。\n\n### 场景九：端到端流水线（一键跑完不中断）\n**输出文件**：`00_data_scan.json` `01_audit_result.json` `02_report.html/md` `02_report_v6.html/md`（表格化，推荐）`02a_data_index.json`（三者关联核心）`03_kanban.html/md` `03_kanban_v6.html`（动态交互，推荐）`04_sampling_verify.json` `05_issue_report.md`(问题清单) `06_master_report.html`(总审核报告) `audit_summary.md`(审核结论摘要)。\n```bash\npython3 scripts/run_full_pipeline.py --data <本月.csv> --prev <上月.csv> --output-dir /tmp/audit_output --review-link \"https://hr.example/emp/{emp_id}?row={row_index}\"\n```\n\n### 场景十：文件交付到飞书（Step 9，强制）\n\n**审核完成后必须执行此步骤，不可跳过。**\n\n```bash\npython3 scripts/deliver_to_feishu.py --output-dir /tmp/audit_output --audit-result /tmp/audit_output/01_audit_result.json\n```\n\n**自动化交付流程**（LLM 不可干预、不可跳过）：\n1. **验证文件完整性** — 检查 11 个必发文件全部存在，缺失则拒绝执行\n2. **上传文件到飞书云盘** — 逐一上传，输出上传结果\n3. **创建飞书文档** — 用 `02_report_v6.md` import 为 docx 格式\n4. **生成交付消息** — 自动生成包含文档链接+文件清单+总额环比的完整飞书消息\n5. **输出 delivery_message.md + delivery_result.json** — 供 LLM 直接发送\n\n**⚠️ LLM 层唯一职责**：把 `delivery_message.md` 的内容通过消息工具发送到飞书。\n**⚠️ 禁止**：自行挑选文件上传、自行创建文档格式、自行裁剪交付内容。\n\n### 数据来源\n\n- **优先**：飞书多维表格导出 CSV / SAP HCM 导出 Excel / ADP 导出\n- **降级**：要求用户提供 CSV/Excel 文件\n- **兜底**：无任何数据源时拒绝执行，回复：\"请提供工资数据文件（CSV 或 Excel 格式），我才能进行审核。\"\n\n### 数据支撑原则\n\n**每个审核结论必须有数据依据，不凭空判断。** 这是审核系统的核心原则——**\"审核通过\"不是感觉出来的，是数据算出来的。**\n\n#### 一、\"通过\"结论的数据支撑逻辑\n\n每个判定为\"正常/通过\"的审核项目，必须同时输出以下三项数据：\n\n| 要素 | 说明 | 示例 |\n|------|------|------|\n| **检查数** | 共检查了多少条记录 | \"2000条记录\" |\n| **通过数** | 多少条符合规则 | \"1998条通过\" |\n| **阈值** | 判定标准是什么 | \"容差0.01元\" |\n\n**完整示例**：\n- ✅ 正确：\"公式校验通过：2000条记录全部在0.01元容差范围内，通过率100%\"\n- ❌ 错误：\"公式校验通过\"（无数据支撑，无法验证结论可靠性）\n\n**为什么必须这样**：如果没有检查数和通过数，\"通过\"可能是只检查了1条、也可能是2000条——可信度完全不同。\n\n#### 二、异常结论的数据支撑\n\n必须列出具体人员、工号、异常值、预期值、违反的规则ID：\n\n- ✅ 正确：\"张三（工号E001）实发金额为-500元，预期值≥0，违反RL-001（实发≤0），严重等级：BLOCK\"\n- ❌ 错误：\"有人实发金额异常\"（无具体信息，无法采取行动）\n\n#### 三、趋势判断的数据支撑\n\n必须给出具体数值、变化幅度、驱动因素：\n\n- ✅ 正确：\"应发总额环比+12.3%（¥15.2M→¥17.1M），超出±10%正常范围，主要由业务线奖金增加导致（+45.2%，¥2.1M→¥3.0M）\"\n- ❌ 错误：\"工资总额有明显增长\"（无数据，无法判断合理性）\n\n#### 四、排除说明的数据支撑\n\n当某人被排除在异常分析外时，必须说明排除原因和依据：\n\n- ✅ 正确：\"李四（工号E002）应发变化+15.8%，但4月有调薪记录（调薪生效日期=2026-04-01），匹配排除规则'调薪'，已排除\"\n- ❌ 错误：\"李四的变化是正常的\"（无依据）\n\n#### 五、红线阻断的数据支撑\n红线触发时输出：触发人数/具体名单(工号+姓名+异常值)/违反规则(ID+名称)。\n**报告\"结论与建议\"结构**：总体结论(检查数+各维度通过/异常数)→各维度详情表格(检查数/通过数/异常数/通过率/结论)→异常明细→建议行动(基于具体数据)。\n\n### 列名容错\n\n脚本内置 `COLUMN_ALIAS` 字典，自动映射 30+ 种常见列名变体。如果列名无法识别，脚本返回 `{\"error\": \"Missing column: XXX\"}`，LLM 必须原文转述。\n\n### 精度处理\n\n金额计算使用 `decimal.Decimal`，避免浮点误差累积。公式校验容差 0.01（1 分钱）。\n\n### 规则更新\n\n所有规则集中在 `references/rules.json`。修改规则只需编辑此文件，无需修改脚本。**为什么这样设计**：业务规则变化频繁（如最低工资调整），集中管理避免每次都要改代码。\n\n#### 如何扩展规则\n\n1. **新增红线**：在 `rules.json` 的 `red_lines` 数组中添加新对象，包含 `id`、`name`、`condition`、`field`、`severity: \"BLOCK\"`\n2. **新增黄线**：在 `yellow_lines` 数组中添加，`action: \"flag_and_explain\"`\n3. **新增蓝线**：在 `blue_lines` 数组中添加，`action: \"note_only\"`\n4. **新增政策**：在 `policies` 数组中添加，包含 `condition`（触发条件）和 `effect`（豁免效果）\n5. **新增业务规则**：在 `business_rules` 数组中添加，支持 `field1 <= field2` 类双字段比较\n6. **新增排除条件**：在 `person_analysis_exclusions` 对象中添加新 key，包含 `field`、`condition`、`note`\n\n**规则 ID 命名规范**：`{类型}-{序号}`，如 `RL-005`（第5条红线）、`YL-007`（第7条黄线）、`POL-006`（第6条政策）、`BR-005`（第5条业务规则）\n\n**添加规则后不需要修改任何 Python 代码**，引擎自动加载。\n\n### 红线阻断\n\n红线触发 → 立即阻断，不继续后续步骤，不生成报告。**为什么**：红线代表严重违规（如负实发、低于最低工资），必须先修正数据再审核，否则报告无意义。\n\n### 编排指南：单节点原则（v6.2.1 新增）\n\n**本 Skill 被 Workflow Orchestration Skill 编排时，必须作为单节点调用。**\n\n根因：`run_full_pipeline.py` 已是端到端流水线，内部按序完成所有 8 步（扫描→规则→红黄蓝线→报告→看板→抽样→问题清单→总报告）。拆成多节点编排无收益——每个节点仍调用同一个 skill，内部全量执行一遍。\n\n| 错误做法 | 正确做法 |\n|----------|----------|\n| N1 data_scan → N2 rules_engine → N3 generate_report → ... | N1 run_full_pipeline.py 一键跑完 |\n\n**唯一例外**：当业务确实需要中间状态可见性或独立重试时，才使用 `run_audit.py` 分段模式（7阶段+断点续传），但仍然是**同一 skill 的多次调用**，不是拆成多个 skill。\n\n### 常见错误场景\n\n| 场景 | 处理 |\n|------|------|\n| 数据源字段缺失 | 列出缺失字段清单，要求用户补充后重试 |\n| 日期格式混乱 | 脚本自动尝试多种格式解析，失败则返回错误 |\n| 无上月数据 | 跨月对比/按人分析跳过，在报告中标注\"无基准数据\" |\n| Python 环境无 pandas | 提示用户 `pip install pandas numpy openpyxl` |\n| 红线触发 | 立即阻断，不继续后续步骤 |\n\n### 目录结构\n\n```\npayroll-data-audit/\n├── SKILL.md\n├── _meta.json\n├── scripts/\n│   ├── data_scan.py               # 数据扫描（SOP 第一步）\n│   ├── rules_engine.py            # 统一规则引擎（OOP）\n│   ├── generate_report.py         # HTML/Markdown 报告生成器（v5，兼容）\n│   ├── generate_report_v6.py      # 表格化报告生成器（v6，推荐）\n│   ├── generate_kanban.py         # 审核清单看板生成器（Step 7，静态）\n│   ├── generate_kanban_v6.py      # 动态交互看板生成器（v6，推荐）\n│   ├── generate_data_index.py     # 数据支撑索引生成器（v6，三者关联核心）\n│   ├── run_audit.py               # 分段审核编排器（7阶段+断点续传）\n│   ├── run_full_pipeline.py       # 端到端流水线（含 v6 输出 + 总报告）\n│   ├── generate_master_report.py  # 总审核报告生成器（v6.2，聚合所有输出）\n│   ├── sampling_verify.py         # 抽样校验器（二次确认）\n│   ├── deliver_audit_files.py     # 文件交付清单生成器（v6.3，仅生成清单，已废弃）\n│   ├── deliver_to_feishu.py       # 文件交付到飞书（v7.4，自动上传+文档+消息，推荐）\n│   └── tests/                     # pytest 测试套件\n│       ├── test_rules_engine.py\n│       └── test_parameterized.py\n├── references/\n│   └── rules.json                 # 所有规则声明（唯一真相来源）\n└── .github/workflows/\n    └── test.yml                   # CI/CD\n```\n\n### 依赖\n\n```bash\npip install pandas numpy openpyxl\n```\n\n### 测试\n\n```bash\ncd payroll-data-audit\npython -m pytest scripts/tests/ -v --cov=scripts.rules_engine --cov-report=term-missing\n```\n\nCI/CD 自动运行：push/PR 时触发 pytest + coverage（80% 门槛）+ lint。\n\nFile v7.4.1:_meta.json\n\n{\n  \"ownerId\": \"kn70tx725606ywwb5gfj0vpxjx83admr\",\n  \"slug\": \"payroll-data-audit\",\n  \"version\": \"7.4.1\",\n  \"publishedAt\": 1780650157485\n}\n\nFile v7.4.1:references/rules.json\n\n{\n  \"version\": \"7.0.0\",\n  \"metadata\": {\n    \"lastUpdated\": \"2026-06-03\",\n    \"updatedBy\": \"HRCOE\",\n    \"description\": \"工资数据审核规则库，所有阈值和逻辑以本文件为准。全量对齐SOP v1.0\",\n    \"changelog\": \"v7.0.0: 对齐SOP文档20260603 - 最低工资2520/加班32h/总额环比±5%/标准工资三字段红线/出勤工资红线/出勤天数红线/公式红线/状态列替代岗位列/病假事假列名对齐/轮班补贴校验/连续在职定义/按人分析双条件/补发提成波动±20%\"\n  },\n  \"thresholds\": {\n    \"overtime_limit\": 32,\n    \"overtime_unit\": \"hour\",\n    \"overtime_breakdown\": [\n      \"平时加班时数\",\n      \"周末加班时数\",\n      \"法定加班时数\"\n    ],\n    \"min_wage_default\": 2520,\n    \"min_wage_shenzhen\": 2360,\n    \"min_wage_guangzhou\": 2300,\n    \"min_wage_dongguan\": 1900,\n    \"perf_coefficient_max\": 1.5,\n    \"perf_coefficient_min\": 0.5,\n    \"perf_coefficient_swing\": 0.5,\n    \"bonus_volatility_threshold\": 0.2,\n    \"supply_volatility_threshold\": 0.2,\n    \"headcount_variance_threshold\": 0.05,\n    \"total_variance_threshold\": 0.05,\n    \"supply_months_tolerance\": 2\n  },\n  \"red_lines\": [\n    {\n      \"id\": \"RL-001\",\n      \"name\": \"实发≤0\",\n      \"description\": \"实发金额合计≤0，必须立即核实\",\n      \"condition\": \"sum(实发金额合计) <= 0\",\n      \"field\": \"实发金额合计\",\n      \"exclusions\": [],\n      \"severity\": \"BLOCK\",\n      \"action\": \"stop_and_alert\"\n    },\n    {\n      \"id\": \"RL-002\",\n      \"name\": \"加班超32h\",\n      \"description\": \"月加班总时数>32小时，违反劳动法\",\n      \"condition\": \"sum(平时加班时数 + 周末加班时数 + 法定加班时数) > 32\",\n      \"field\": \"平时加班时数\",\n      \"exclusions\": [\n        \"当月入职\",\n        \"当月离职\",\n        \"实习生\",\n        \"保洁\",\n        \"当月长时间请假\"\n      ],\n      \"severity\": \"BLOCK\",\n      \"action\": \"stop_and_alert\"\n    },\n    {\n      \"id\": \"RL-003\",\n      \"name\": \"低于最低工资\",\n      \"description\": \"应发合计低于当地最低工资标准\",\n      \"condition\": \"应发合计 < 当地最低工资\",\n      \"field\": \"应发合计\",\n      \"exclusions\": [\n        \"实习生\",\n        \"保洁\",\n        \"当月长时间请假\",\n        \"当月入职\",\n        \"当月离职\",\n        \"实习生(日薪)\",\n        \"实习生(月薪)\"\n      ],\n      \"severity\": \"BLOCK\",\n      \"action\": \"stop_and_alert\"\n    },\n    {\n      \"id\": \"RL-004\",\n      \"name\": \"社保公积金应缴未缴\",\n      \"description\": \"不符合豁免政策但个人社保/公积金扣款为0\",\n      \"condition\": \"不符合豁免政策 AND 个人社保 == 0\",\n      \"field\": \"个人社保\",\n      \"exclusions\": [\n        \"实习生\",\n        \"日薪\",\n        \"保洁\",\n        \"实习生(月薪)\"\n      ],\n      \"severity\": \"BLOCK\",\n      \"action\": \"stop_and_alert\"\n    },\n    {\n      \"id\": \"RL-005\",\n      \"name\": \"出勤工资超标准\",\n      \"description\": \"实际出勤工资小计 > 标准基本工资（排除实习生/日薪/保洁）\",\n      \"condition\": \"实际出勤工资小计 > 标准基本工资\",\n      \"field\": \"实际出勤工资小计\",\n      \"exclusions\": [\n        \"实习生\",\n        \"日薪\",\n        \"保洁\"\n      ],\n      \"severity\": \"BLOCK\",\n      \"action\": \"stop_and_alert\"\n    },\n    {\n      \"id\": \"RL-006\",\n      \"name\": \"出勤天数超应出勤\",\n      \"description\": \"实际计薪出勤天数 > 应计薪出勤天数\",\n      \"condition\": \"实际计薪出勤天数 > 应计薪出勤天数\",\n      \"field\": \"实际计薪出勤天数\",\n      \"exclusions\": [],\n      \"severity\": \"BLOCK\",\n      \"action\": \"stop_and_alert\"\n    },\n    {\n      \"id\": \"RL-007\",\n      \"name\": \"标准工资三字段变化无记录\",\n      \"description\": \"标准基本工资/标准绩效工资/标准福利任一变化，但无调薪/转正记录\",\n      \"condition\": \"标准基本工资≠上月 OR 标准绩效工资≠上月 OR 标准福利≠上月\",\n      \"field\": \"标准基本工资\",\n      \"exclusions\": [],\n      \"severity\": \"BLOCK\",\n      \"action\": \"stop_and_alert\"\n    }\n  ],\n  \"yellow_lines\": [\n    {\n      \"id\": \"YL-001\",\n      \"name\": \"绩效系数过高\",\n      \"threshold\": 1.5,\n      \"field\": \"绩效系数\",\n      \"description\": \"绩效系数>1.5，需核实是否有特殊贡献依据\",\n      \"action\": \"flag_and_explain\",\n      \"exclusions\": [\n        \"实习生\",\n        \"日薪\",\n        \"保洁\",\n        \"当月入职\",\n        \"当月离职\"\n      ]\n    },\n    {\n      \"id\": \"YL-002\",\n      \"name\": \"绩效系数过低\",\n      \"threshold\": 0.5,\n      \"field\": \"绩效系数\",\n      \"description\": \"绩效系数<0.5，需核实绩效评估是否合理\",\n      \"action\": \"flag_and_explain\",\n      \"exclusions\": [\n        \"实习生\",\n        \"日薪\",\n        \"保洁\",\n        \"当月入职\",\n        \"当月离职\"\n      ]\n    },\n    {\n      \"id\": \"YL-003\",\n      \"name\": \"绩效系数月度波动大\",\n      \"threshold\": 0.5,\n      \"field\": \"绩效系数\",\n      \"description\": \"本月系数与上月系数差值>0.5，需核实评估依据\",\n      \"action\": \"flag_and_explain\",\n      \"exclusions\": [\n        \"实习生\",\n        \"日薪\",\n        \"保洁\",\n        \"当月入职\",\n        \"当月离职\"\n      ]\n    },\n    {\n      \"id\": \"YL-004\",\n      \"name\": \"住宿扣款变化\",\n      \"threshold\": 0,\n      \"field\": \"住宿扣款\",\n      \"description\": \"本月住宿扣款与上月不一致，需确认是否退宿或新入住\",\n      \"action\": \"flag_and_explain\",\n      \"exclusions\": [\n        \"实习生\",\n        \"日薪\",\n        \"保洁\"\n      ]\n    },\n    {\n      \"id\": \"YL-005\",\n      \"name\": \"出勤天数超计薪天数\",\n      \"threshold\": 0,\n      \"field\": \"实际计薪出勤天数\",\n      \"description\": \"实际计薪出勤天数 > 应计薪出勤天数，排班数据可能有误\",\n      \"action\": \"flag_and_explain\"\n    },\n    {\n      \"id\": \"YL-006\",\n      \"name\": \"标准工资无依据变化\",\n      \"threshold\": 0,\n      \"field\": \"标准基本工资\",\n      \"description\": \"本月&上月均无调薪/转正记录但标准工资有变化\",\n      \"action\": \"flag_and_explain\",\n      \"exclusions\": [\n        \"实习生\",\n        \"日薪\",\n        \"保洁\",\n        \"当月入职\",\n        \"当月离职\"\n      ]\n    }\n  ],\n  \"blue_lines\": [\n    {\n      \"id\": \"BL-001\",\n      \"name\": \"业务线奖金波动\",\n      \"description\": \"季度奖金发放导致的正常波动\",\n      \"action\": \"note_only\"\n    },\n    {\n      \"id\": \"BL-002\",\n      \"name\": \"加班费波动\",\n      \"description\": \"法定节假日加班费与普通加班费差异\",\n      \"action\": \"note_only\"\n    },\n    {\n      \"id\": \"BL-003\",\n      \"name\": \"补发波动\",\n      \"description\": \"某月突然增加补发，需确认依据\",\n      \"action\": \"note_only\"\n    },\n    {\n      \"id\": \"BL-004\",\n      \"name\": \"提成波动\",\n      \"description\": \"业务正常波动，±20%以内属正常\",\n      \"threshold\": 0.2,\n      \"action\": \"note_only\"\n    }\n  ],\n  \"policies\": [\n    {\n      \"id\": \"POL-001\",\n      \"name\": \"15号后入职当月不缴社保公积金\",\n      \"condition\": \"入职日期.day > 15\",\n      \"effect\": {\n        \"个人社保\": 0,\n        \"个人公积金\": 0\n      },\n      \"applies_to\": \"both\",\n      \"note\": \"入职当月15号后可以不缴纳，次月起缴纳。已缴纳的也合理（公司代缴），不做违规判定。\",\n      \"check_scope\": \"note_only\"\n    },\n    {\n      \"id\": \"POL-002\",\n      \"name\": \"实习生/保洁豁免社保公积金\",\n      \"condition\": \"岗位 in [实习生, 日薪, 保洁]\",\n      \"effect\": {\n        \"个人社保\": 0,\n        \"个人公积金\": 0\n      },\n      \"applies_to\": \"both\",\n      \"note\": \"非全日制实习生按需调整\"\n    },\n    {\n      \"id\": \"POL-003\",\n      \"name\": \"离职当月社保公积金缴纳规则\",\n      \"condition\": \"离职日期.day <= 15\",\n      \"effect\": {\n        \"个人社保\": 0,\n        \"个人公积金\": 0\n      },\n      \"applies_to\": \"both\",\n      \"note\": \"15号前离职当月不缴，15号后离职当月缴纳。仅检查当月离职人员，不检查非离职人员。\",\n      \"check_scope\": \"leavers_only\"\n    },\n    {\n      \"id\": \"POL-004\",\n      \"name\": \"道旅国际-社保豁免\",\n      \"condition\": \"公司主体 == '道旅国际'\",\n      \"effect\": {\n        \"个人社保\": 0\n      },\n      \"applies_to\": \"both\",\n      \"note\": \"道旅国际员工不缴纳个人社保\"\n    },\n    {\n      \"id\": \"POL-005\",\n      \"name\": \"道旅国际-公积金豁免\",\n      \"condition\": \"公司主体 == '道旅国际' AND 入职月数 <= 2\",\n      \"effect\": {\n        \"个人公积金\": 0\n      },\n      \"applies_to\": \"both\",\n      \"note\": \"道旅国际员工入职2个月内可以不缴纳个人公积金。已缴纳的也合理，不做违规判定。\",\n      \"check_scope\": \"note_only\"\n    }\n  ],\n  \"formula_rules\": [\n    {\n      \"id\": \"FR-001\",\n      \"name\": \"应发合计校验\",\n      \"description\": \"应发合计 = 各收入科目之和 - 其他扣减\",\n      \"left\": \"应发合计\",\n      \"right_fields\": [\n        \"实际出勤工资小计\",\n        \"实际绩效工资\",\n        \"实际出勤福利小计\",\n        \"轮班补贴\",\n        \"加班费小计\",\n        \"业务线奖金合计\",\n        \"提成&其他&奖金\",\n        \"补发\"\n      ],\n      \"deductions\": [\n        \"其他扣减\"\n      ],\n      \"tolerance\": 0,\n      \"applies_to\": \"all\"\n    },\n    {\n      \"id\": \"FR-002\",\n      \"name\": \"实发合计校验\",\n      \"description\": \"实发合计 = 应发合计 - 代扣款项 + 补贴\",\n      \"left\": \"实发金额合计\",\n      \"deductions\": [\n        \"个人社保\",\n        \"个人公积金\",\n        \"个人所得税\",\n        \"税后扣减项\",\n        \"个人住宿扣款\",\n        \"个人承担社保差额\",\n        \"个人承担公积金差额\"\n      ],\n      \"additions\": [\n        \"经济补偿金\"\n      ],\n      \"tolerance\": 0,\n      \"applies_to\": \"all\"\n    },\n    {\n      \"id\": \"FR-003\",\n      \"name\": \"出勤工资校验\",\n      \"description\": \"实际出勤工资小计 ≤ 标准基本工资\",\n      \"left\": \"实际出勤工资小计\",\n      \"right_field\": \"标准基本工资\",\n      \"tolerance\": 0,\n      \"direction\": \"lte\",\n      \"applies_to\": \"all\",\n      \"exclusions\": [\n        \"实习生\",\n        \"日薪\"\n      ]\n    },\n    {\n      \"id\": \"FR-004\",\n      \"name\": \"计薪天数校验\",\n      \"description\": \"实际计薪出勤天数 ≤ 应计薪出勤天数\",\n      \"left\": \"实际计薪出勤天数\",\n      \"right_field\": \"应计薪出勤天数\",\n      \"tolerance\": 0,\n      \"direction\": \"lte\",\n      \"applies_to\": \"all\"\n    }\n  ],\n  \"business_rules\": [\n    {\n      \"id\": \"BR-001\",\n      \"name\": \"出勤工资不超过标准工资\",\n      \"condition\": \"实际出勤工资小计 <= 标准基本工资\",\n      \"exclusions_field\": \"岗位\",\n      \"exclusions_values\": [\n        \"实习生(日薪)\",\n        \"日薪\"\n      ],\n      \"description\": \"实际出勤工资小计不应超过标准基本工资（排除日薪实习生）\",\n      \"severity\": \"yellow\"\n    },\n    {\n      \"id\": \"BR-002\",\n      \"name\": \"出勤天数不超过应出勤天数\",\n      \"condition\": \"实际计薪出勤天数 <= 应计薪出勤天数\",\n      \"description\": \"实际计薪出勤天数不应超过应计薪出勤天数\",\n      \"severity\": \"yellow\"\n    },\n    {\n      \"id\": \"BR-003\",\n      \"name\": \"绩效系数在合理范围\",\n      \"condition\": \"绩效系数 >= 0.5 AND 绩效系数 <= 1.5\",\n      \"description\": \"绩效系数应在0.5~1.5之间\",\n      \"severity\": \"yellow\"\n    },\n    {\n      \"id\": \"BR-004\",\n      \"name\": \"班天数不超过计薪天数\",\n      \"condition\": \"班天数合计 <= 实际计薪出勤天数\",\n      \"description\": \"排班天数合计不应超过实际计薪出勤天数\",\n      \"severity\": \"yellow\"\n    },\n    {\n      \"id\": \"BR-005\",\n      \"name\": \"轮班天数不超过计薪天数\",\n      \"condition\": \"C1&C2班天数 + C班天数 + D班天数 <= 实际计薪出勤天数\",\n      \"description\": \"C1&C2班天数+C班天数+D班天数不应超过实际计薪出勤天数\",\n      \"severity\": \"red\"\n    }\n  ],\n  \"person_analysis_exclusions\": {\n    \"离职\": {\n      \"field\": \"离职日期\",\n      \"condition\": \"离职日期 in 当月\",\n      \"note\": \"当月离职人员，工资因不满勤而下降属正常\"\n    },\n    \"新入职不满勤\": {\n      \"field\": \"入职日期\",\n      \"condition\": \"入职日期 in 上月 AND 上月不满勤\",\n      \"note\": \"上月新入职人员，上月不满勤导致基数偏低\"\n    },\n    \"转正\": {\n      \"field\": \"转正薪资生效日期\",\n      \"condition\": \"转正薪资生效日期 in [上月, 当月]\",\n      \"note\": \"转正导致标准工资变化属正常\"\n    },\n    \"调薪\": {\n      \"field\": \"调薪生效日期\",\n      \"condition\": \"调薪生效日期 in [上月, 当月]\",\n      \"note\": \"调薪导致标准工资变化属正常\"\n    },\n    \"请假\": {\n      \"field\": \"请假天数\",\n      \"condition\": \"病假 > 2 OR 事假 > 2\",\n      \"note\": \"请假导致计薪天数下降属正常\"\n    },\n    \"多主体发薪\": {\n      \"field\": \"工号\",\n      \"condition\": \"同一工号在多个公司主体出现\",\n      \"note\": \"多主体发薪人员不应直接对比单一主体工资\"\n    }\n  },\n  \"required_fields\": {\n    \"基础信息\": [\n      \"发薪月\",\n      \"公司主体\",\n      \"姓名代号\",\n      \"工号\"\n    ],\n    \"人员变动\": [\n      \"入职日期\"\n    ],\n    \"工资变动\": [\n    ],\n    \"出勤\": [\n      \"实际计薪出勤天数\",\n      \"实际出勤工资小计\",\n      \"应计薪出勤天数\"\n    ],\n    \"绩效\": [\n      \"绩效系数\",\n      \"实际绩效工资\"\n    ],\n    \"福利补贴\": [\n      \"标准福利\",\n      \"通讯补贴\",\n      \"电脑补贴\",\n      \"交通补贴\",\n      \"住房补贴\",\n      \"约定补贴\",\n      \"餐补\",\n      \"实际出勤福利小计\",\n      \"轮班补贴\"\n    ],\n    \"加班\": [\n      \"加班费小计\",\n      \"平时加班时数\",\n      \"周末加班时数\",\n      \"法定加班时数\"\n    ],\n    \"奖金提成\": [\n      \"业务线奖金合计\",\n      \"提成&其他&奖金\",\n      \"补发\",\n      \"其他扣减\"\n    ],\n    \"应发项\": [\n      \"标准基本工资\",\n      \"标准绩效工资\",\n      \"应计薪出勤天数\",\n      \"实际计薪出勤天数\",\n      \"实际出勤工资小计\",\n      \"绩效系数\",\n      \"实际绩效工资\",\n      \"实际出勤福利小计\",\n      \"轮班补贴\",\n      \"C1&C2班天数\",\n      \"C班天数\",\n      \"D班天数\",\n      \"加班费小计\",\n      \"业务线奖金合计\",\n      \"提成&其他&奖金\",\n      \"补发\",\n      \"其他扣减\",\n      \"应发合计\"\n    ],\n    \"实发代扣项\": [\n      \"个人社保\",\n      \"个人公积金\",\n      \"个人所得税\",\n      \"税后扣减项\",\n      \"个人住宿扣款\",\n      \"个人承担社保差额\",\n      \"个人承担公积金差额\",\n      \"经济补偿金\"\n    ],\n    \"最终结果\": [\n      \"应发合计\",\n      \"实发金额合计\"\n    ],\n    \"社保公积金\": [\n      \"个人社保\",\n      \"个人公积金\"\n    ],\n    \"代扣税\": [\n      \"个人所得税\",\n      \"税后扣减项\",\n      \"个人住宿扣款\",\n      \"个人承担社保差额\",\n      \"个人承担公积金差额\",\n      \"经济补偿金\"\n    ],\n    \"请假\": [\n      \"病假（天）\",\n      \"事假（天）\"\n    ]\n  }\n}\n\nFile v7.4.1:_delivery/02_report_v6.md\n\n# 📋 工资审核报告 v6.0\n\n**审核时间**: 2026-06-05 16:13:26  \n**规则版本**: 7.0.0  \n**数据量**: 947 人  \n**审核结论**: 🔴 存在红线异常，禁止出报告\n\n## 📊 审核结论汇总表\n\n| 维度 | 规则ID | 检查数 | 通过数 | 异常数 | 通过率 | 结论 |\n|------|--------|--------|--------|--------|--------|------|\n| 字段完整性 | FC-001 | 65 | 65 | 0 | 100.0% | ✅ 通过 |\n| 应发合计校验 | FR-001 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n| 实发合计校验 | FR-002 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n| 出勤工资校验 | FR-003 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n| 计薪天数校验 | FR-004 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | RL-001 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | RL-002 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | RL-003 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | RL-004 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | RL-005 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | RL-006 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | RL-007 | 947 | 806 | 141 | 85.1% | 🔴 阻断 |\n|  | YL-001 | 947 | 943 | 4 | 99.6% | 🟠 异常 |\n|  | YL-002 | 947 | 943 | 4 | 99.6% | 🟠 异常 |\n|  | YL-003 | 947 | 944 | 3 | 99.7% | 🟠 异常 |\n|  | YL-004 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | YL-005 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | YL-006 | 947 | 804 | 143 | 84.9% | 🟠 异常 |\n|  | BL-001 | 947 | 816 | 131 | 86.2% | 🔵 提示 |\n|  | BL-002 | 947 | 778 | 169 | 82.2% | 🔵 提示 |\n|  | BL-003 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | BL-004 | 947 | 621 | 326 | 65.6% | 🔵 提示 |\n| 15号后入职当月不缴社保公积金 |  | 445 | 445 | 0 | 100.0% | ✅ 通过 |\n| 实习生/保洁豁免社保公积金 |  | 50 | 50 | 0 | 100.0% | ✅ 通过 |\n| 离职当月社保公积金缴纳规则 |  | 6 | 6 | 0 | 100.0% | ✅ 通过 |\n| 道旅国际-社保豁免 |  | 11 | 11 | 0 | 100.0% | ✅ 通过 |\n| 道旅国际-公积金豁免 |  | 11 | 11 | 0 | 100.0% | ✅ 通过 |\n|  | BR-001 | 947 | 32 | 915 | 3.4% | 🟠 异常 |\n|  | BR-002 | 947 | 0 | 947 | 0.0% | 🟠 异常 |\n|  | BR-003 | 947 | 0 | 947 | 0.0% | 🟠 异常 |\n|  | BR-004 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | BR-005 | 947 | 945 | 2 | 99.8% | 🟠 异常 |\n\n## 📝 审核结论与数据支撑\n\n**异常项（需核实）：**\n- ❌ 红线 标准工资三字段变化无记录：141人异常，检查947人\n- ❌ 黄线 绩效系数过高：4人异常，检查947人\n- ❌ 黄线 绩效系数过低：4人异常，检查947人\n- ❌ 黄线 绩效系数月度波动大：3人异常，检查947人\n- ❌ 黄线 标准工资无依据变化：143人异常，检查947人\n- ❌ 业务规则 出勤工资不超过标准工资：915人异常，检查947人\n- ❌ 业务规则 出勤天数不超过应出勤天数：947人异常，检查947人\n- ❌ 业务规则 绩效系数在合理范围：947人异常，检查947人\n- ❌ 业务规则 轮班天数不超过计薪天数：2人异常，检查947人\n\n**通过项（数据支撑）：**\n- ✅ 字段完整性通过：65个必填字段全部存在，零缺失\n- ✅ 公式校验通过：947条记录全部在容差范围内，零误差\n- ✅ 公式校验通过：947条记录全部在容差范围内，零误差\n- ✅ 公式校验通过：947条记录全部在容差范围内，零误差\n- ✅ 公式校验通过：947条记录全部在容差范围内，零误差\n- ✅ 特殊政策执行通过：5项政策校验零违规\n- ✅ 总额环比正常：应发合计 从¥15,340,225→¥15,020,897，变化-2.1%，在±10%正常范围内\n- ✅ 总额环比正常：实发金额合计 从¥14,272,483→¥13,307,958，变化-6.8%，在±10%正常范围内\n- ✅ 总额环比正常：实际出勤工资小计 从¥10,943,185→¥11,250,835，变化+2.8%，在±10%正常范围内\n- ✅ 总额环比正常：实际绩效工资 从¥2,847,352→¥2,847,173，变化-0.0%，在±10%正常范围内\n\n## 📈 总额环比分析\n\n| 指标 | 本月 | 上月 | 变化率 | 状态 |\n|------|------|------|--------|------|\n| 人数 | 947 | 954 | -0.7% | ✅ 正常 |\n| 应发合计 | ¥15,020,897 | ¥15,340,225 | -2.1% | ✅ |\n| 实发金额合计 | ¥13,307,958 | ¥14,272,483 | -6.8% | ✅ |\n| 实际出勤工资小计 | ¥11,250,835 | ¥10,943,185 | +2.8% | ✅ |\n| 实际绩效工资 | ¥2,847,173 | ¥2,847,352 | -0.0% | ✅ |\n| 加班费小计 | ¥92,748 | ¥1,202 | +7617.5% | ⚠️ |\n| 业务线奖金合计 | ¥42,770 | ¥952,910 | -95.5% | ⚠️ |\n| 提成&其他&奖金 | ¥290,518 | ¥362,797 | -19.9% | ⚠️ |\n| 补发 | ¥260,654 | ¥159 | +164195.0% | ⚠️ |\n\n---\n*由 payroll-data-audit v6.0 自动生成 | 全量对齐 SOP | 关联文件: data_index.json + kanban.html*\n\nFile v7.4.1:_delivery/02_report.md\n\n# 📋 工资审核报告\n\n**审核时间**: 2026-06-05 16:13:26  \n**规则版本**: 7.0.0  \n**数据量**: 947 人  \n**审核结论**: 🔴 存在红线异常，禁止出报告\n\n## 📝 审核结论与数据支撑\n\n**异常项（需核实）：**\n- ❌ 🔴 标准工资三字段变化无记录：141人触发，共检查947人\n- ❌ ⚠️ 绩效系数过高：4人触发，共检查947人\n- ❌ ⚠️ 绩效系数过低：4人触发，共检查947人\n- ❌ ⚠️ 绩效系数月度波动大：3人触发，共检查947人\n- ❌ ⚠️ 标准工资无依据变化：143人触发，共检查947人\n- ❌ 📐 出勤工资不超过标准工资：915人异常，共检查947人\n- ❌ 📐 出勤天数不超过应出勤天数：947人异常，共检查947人\n- ❌ 📐 绩效系数在合理范围：947人异常，共检查947人\n- ❌ 📐 轮班天数不超过计薪天数：2人异常，共检查947人\n\n**通过项（数据支撑）：**\n- ✅ 公式校验通过：947条记录全部在容差范围内，零误差\n- ✅ 公式校验通过：947条记录全部在容差范围内，零误差\n- ✅ 公式校验通过：947条记录全部在容差范围内，零误差\n- ✅ 公式校验通过：947条记录全部在容差范围内，零误差\n- ✅ 字段完整性通过：65个必填字段全部存在，零缺失\n- ✅ 特殊政策执行通过：5项政策校验零违规\n- ✅ 总额环比正常：应发合计 从¥15,340,225→¥15,020,897，变化-2.1%，在±10%正常范围内\n- ✅ 总额环比正常：实发金额合计 从¥14,272,483→¥13,307,958，变化-6.8%，在±10%正常范围内\n- ✅ 总额环比正常：实际出勤工资小计 从¥10,943,185→¥11,250,835，变化+2.8%，在±10%正常范围内\n- ✅ 总额环比正常：实际绩效工资 从¥2,847,352→¥2,847,173，变化-0.0%，在±10%正常范围内\n\n## 👥 1. 基础数据概览\n\n| 指标 | 本月 | 上月 | 变化 |\n|------|------|------|------|\n| 人数 | 947 | 954 | -0.7% |\n| 应发合计 | ¥15,020,897 | ¥15,340,225 | -2.1% |\n| 实发金额合计 | ¥13,307,958 | ¥14,272,483 | -6.8% |\n| 实际出勤工资小计 | ¥11,250,835 | ¥10,943,185 | +2.8% |\n| 实际绩效工资 | ¥2,847,173 | ¥2,847,352 | -0.0% |\n| 加班费小计 | ¥92,748 | ¥1,202 | +7617.5% |\n| 业务线奖金合计 | ¥42,770 | ¥952,910 | -95.5% |\n| 提成&其他&奖金 | ¥290,518 | ¥362,797 | -19.9% |\n| 补发 | ¥260,654 | ¥159 | +164195.0% |\n\n## 🏛️ 2. 特殊政策执行情况\n\n- ✅ 15号后入职当月不缴社保公积金 (符合条件445人，违规0人)\n- ✅ 实习生/保洁豁免社保公积金 (符合条件50人，违规0人)\n- ✅ 离职当月社保公积金缴纳规则 (符合条件6人，违规0人)\n- ✅ 道旅国际-社保豁免 (符合条件11人，违规0人)\n- ✅ 道旅国际-公积金豁免 (符合条件11人，违规0人)\n\n## 🔍 3. 异常数据扫描结果\n\n### 🔴 红线异常（必须核实）\n\n**标准工资三字段变化无记录** (141人触发 / 共947人)\n- 128671De2Ml4(5): 43888.47\n- 895922Sx4St1(7): 39543.02\n- 150669Lv7Rk2(16): 41493.02\n- 964730Rn2Ru5(19): 24161.72\n- 620006La1Tm2(28): 24793.02\n- 905144Qi7Ey8(42): 29543.02\n- 643796Pl1Gt3(51): 21355.1\n- 598353He2Yv9(67): 35943.02\n- 785932Yx6Fx3(109): 24125.18\n- 157927Sl6Er2(214): 24243.02\n- 516628Zx4Rk3(255): 21393.02\n- 608716Lv4Na3(267): 28193.02\n- 160718Ze5Ko1(296): 54190.63\n- 875611Jr9Gd6(320): 26743.02\n- 879265Ph8Ta0(457): 17586.15\n- 641792Ck9Yi4(452): 21912.77\n- 482269Ma5Sh4(461): 23193.01\n- 220828Ux6Ec4(466): 17433.02\n- 802239Co5Lt3(473): 22293.02\n- 446494Ug8Fy7(477): 25417.22\n\n### ⚠️ 黄线异常（关注核实）\n\n**绩效系数过高** (4人触发)\n  - 812248Fd9Er4(541), 919637Sc8Xg2(607), 512791Mh2Rt5(115), 336523Vz6Gb9(674)\n\n**绩效系数过低** (4人触发)\n  - 130032Bp7Vd3(338), 603178Ww0Be7(706), 539775Ic0Kw3(1105), 481204Bp0Qc5(467)\n\n**绩效系数月度波动大** (3人触发)\n  - 491087Ak6Wa8(65), 481204Bp0Qc5(467), 790066Ae7Cx7(1592)\n\n**标准工资无依据变化** (143人触发)\n  - 425269Wa0Wr3(1), 100776Wz9Jx4(3), 128671De2Ml4(5), 895922Sx4St1(7), 150669Lv7Rk2(16), 964730Rn2Ru5(19), 620006La1Tm2(28), 905144Qi7Ey8(42), 643796Pl1Gt3(51), 598353He2Yv9(67)\n\n### ℹ️ 蓝线波动（了解即可）\n\n- 业务线奖金波动 (131人)\n- 加班费波动 (169人)\n- 提成波动 (326人)\n\n## 📈 4. 总额分析\n\n| 计薪项 | 本月总额 | 上月总额 | 变化率 | 状态 |\n|--------|---------|---------|--------|------|\n| 应发合计 | ¥15,020,897 | ¥15,340,225 | -2.1% | ✅ |\n| 实发金额合计 | ¥13,307,958 | ¥14,272,483 | -6.8% | ✅ |\n| 实际出勤工资小计 | ¥11,250,835 | ¥10,943,185 | +2.8% | ✅ |\n| 实际绩效工资 | ¥2,847,173 | ¥2,847,352 | -0.0% | ✅ |\n| 加班费小计 | ¥92,748 | ¥1,202 | +7617.5% | ⚠️ |\n| 业务线奖金合计 | ¥42,770 | ¥952,910 | -95.5% | ⚠️ |\n| 提成&其他&奖金 | ¥290,518 | ¥362,797 | -19.9% | ⚠️ |\n| 补发 | ¥260,654 | ¥159 | +164195.0% | ⚠️ |\n\n## 📐 公式校验 & 字段完整性\n\n| 公式 | 检查数 | 通过 | 失败 |\n|------|--------|------|------|\n| ✅ 应发合计校验 | 947 | 947 | 0 |\n| ✅ 实发合计校验 | 947 | 947 | 0 |\n| ✅ 出勤工资校验 | 947 | 947 | 0 |\n| ✅ 计薪天数校验 | 947 | 947 | 0 |\n\n**字段完整性**: 检查65个字段，缺失0个，格式错误0个\n\n---\n*由 payroll-data-audit v5.1 自动生成 | 全量对齐 SOP v1.0*\n\nFile v7.4.1:_delivery/03_kanban.md\n\n# 📋 工资审核清单看板\n\n**审核时间**: 2026-06-05T16:13:26.249840  \n**检查记录**: 947 条  \n**版本**: 7.0.0  \n\n## 📊 审核概览\n\n| 指标 | 数值 |\n|------|------|\n| 审核条目总数 | 32 |\n| ✅ 通过 | 20 |\n| 🟠 异常 | 8 |\n| 🔴 阻断 | 1 |\n| 🔵 提示 | 3 |\n| 综合通过率 | 87.7% |\n\n## 📋 审核清单明细\n\n| # | 类别 | 规则ID | 审核条目 | 结果 | 检查数 | 通过 | 异常 | 通过率 | 数据依据 | 处理建议 |\n|---|------|--------|---------|------|--------|------|------|--------|---------|---------|\n| 1 | 字段完整性 | FC-001 | 必填字段检查 | ✅ 通过 | 947 | 947 | 0 | 100% | 检查 65 个字段，全部完整且格式正确 | 无需操作 |\n| 2 | 公式校验 | FR-001 | 应发合计校验 | ✅ 通过 | 947 | 947 | 0 | 100.0% | 947条记录中全部通过，容差0.01元 | 无需操作 |\n| 3 | 公式校验 | FR-002 | 实发合计校验 | ✅ 通过 | 947 | 947 | 0 | 100.0% | 947条记录中全部通过，容差0.01元 | 无需操作 |\n| 4 | 公式校验 | FR-003 | 出勤工资校验 | ✅ 通过 | 947 | 947 | 0 | 100.0% | 947条记录中全部通过，容差0.01元 | 无需操作 |\n| 5 | 公式校验 | FR-004 | 计薪天数校验 | ✅ 通过 | 947 | 947 | 0 | 100.0% | 947条记录中全部通过，容差0.01元 | 无需操作 |\n| 6 | 业务规则 | BR-001 | 出勤工资不超过标准工资 | 🟠 异常 | 947 | 32 | 915 | 3.4% | 947条记录中915条触发业务规则异常 | 核实: 425269Wa0Wr3(1); 100776Wz9Jx4(3); 313161Hq4Dj6(4); 128671De2Ml4(5); 334147Fa... |\n| 7 | 业务规则 | BR-002 | 出勤天数不超过应出勤天数 | 🟠 异常 | 947 | 0 | 947 | 0.0% | 947条记录中947条触发业务规则异常 | 核实: 425269Wa0Wr3(1); 100776Wz9Jx4(3); 313161Hq4Dj6(4); 128671De2Ml4(5); 334147Fa... |\n| 8 | 业务规则 | BR-003 | 绩效系数在合理范围 | 🟠 异常 | 947 | 0 | 947 | 0.0% | 947条记录中947条触发业务规则异常 | 核实: 425269Wa0Wr3(1); 100776Wz9Jx4(3); 313161Hq4Dj6(4); 128671De2Ml4(5); 334147Fa... |\n| 9 | 业务规则 | BR-004 | 班天数不超过计薪天数 | ✅ 通过 | 947 | 947 | 0 | 100.0% | 947条记录中全部符合业务规则 | 无需操作 |\n| 10 | 业务规则 | BR-005 | 轮班天数不超过计薪天数 | 🟠 异常 | 947 | 945 | 2 | 99.8% | 947条记录中2条触发业务规则异常 | 核实: 847238Vf1Cg1(570); 388095Mf1Ay6(913) |\n| 11 | 红线 | RL-001 |  | ✅ 通过 | 947 | 947 | 0 | 100.0% | 947条记录中全部通过红线校验 | 无需操作 |\n| 12 | 红线 | RL-002 |  | ✅ 通过 | 947 | 947 | 0 | 100.0% | 947条记录中全部通过红线校验 | 无需操作 |\n| 13 | 红线 | RL-003 |  | ✅ 通过 | 947 | 947 | 0 | 100.0% | 947条记录中全部通过红线校验 | 无需操作 |\n| 14 | 红线 | RL-004 |  | ✅ 通过 | 947 | 947 | 0 | 100.0% | 947条记录中全部通过红线校验 | 无需操作 |\n| 15 | 红线 | RL-005 |  | ✅ 通过 | 947 | 947 | 0 | 100.0% | 947条记录中全部通过红线校验 | 无需操作 |\n| 16 | 红线 | RL-006 |  | ✅ 通过 | 947 | 947 | 0 | 100.0% | 947条记录中全部通过红线校验 | 无需操作 |\n| 17 | 红线 | RL-007 |  | 🔴 阻断 | 947 | 806 | 141 | 85.1% | 947条记录中141条触发红线（严重违规） | 立即核实并修正: 128671De2Ml4(5)=43888.47; 895922Sx4St1(7)=39543.02; 150669Lv7Rk2(16)=41... |\n| 18 | 黄线 | YL-001 |  | 🟠 异常 | 947 | 943 | 4 | 99.6% | 947条记录中4条需核实 | 核实以下人员: 核实: 812248Fd9Er4(541); 919637Sc8Xg2(607); 512791Mh2Rt5(115); 336523Vz6Gb... |\n| 19 | 黄线 | YL-002 |  | 🟠 异常 | 947 | 943 | 4 | 99.6% | 947条记录中4条需核实 | 核实以下人员: 核实: 130032Bp7Vd3(338); 603178Ww0Be7(706); 539775Ic0Kw3(1105); 481204Bp0Q... |\n| 20 | 黄线 | YL-003 |  | 🟠 异常 | 947 | 944 | 3 | 99.7% | 947条记录中3条需核实 | 核实以下人员: 核实: 491087Ak6Wa8(65); 481204Bp0Qc5(467); 790066Ae7Cx7(1592) |\n| 21 | 黄线 | YL-004 |  | ✅ 通过 | 947 | 947 | 0 | 100.0% | 947条记录中全部正常 | 无需操作 |\n| 22 | 黄线 | YL-005 |  | ✅ 通过 | 947 | 947 | 0 | 100.0% | 947条记录中全部正常 | 无需操作 |\n| 23 | 黄线 | YL-006 |  | 🟠 异常 | 947 | 804 | 143 | 84.9% | 947条记录中143条需核实 | 核实以下人员: 核实: 425269Wa0Wr3(1); 100776Wz9Jx4(3); 128671De2Ml4(5); 895922Sx4St1(7); ... |\n| 24 | 蓝线 | BL-001 |  | 🔵 提示 | 947 | 816 | 131 | 86.2% | 947条记录中131条有波动趋势（正常范围） | 关注趋势变化 |\n| 25 | 蓝线 | BL-002 |  | 🔵 提示 | 947 | 778 | 169 | 82.2% | 947条记录中169条有波动趋势（正常范围） | 关注趋势变化 |\n| 26 | 蓝线 | BL-003 |  | ✅ 通过 | 947 | 947 | 0 | 100.0% | 947条记录中无异常波动 | 无需操作 |\n| 27 | 蓝线 | BL-004 |  | 🔵 提示 | 947 | 621 | 326 | 65.6% | 947条记录中326条有波动趋势（正常范围） | 关注趋势变化 |\n| 28 | 政策校验 |  |  | ✅ 通过 | 947 | 947 | 0 | 100.0% | 947条记录中全部符合政策规定 | 无需操作 |\n| 29 | 政策校验 |  |  | ✅ 通过 | 947 | 947 | 0 | 100.0% | 947条记录中全部符合政策规定 | 无需操作 |\n| 30 | 政策校验 |  |  | ✅ 通过 | 947 | 947 | 0 | 100.0% | 947条记录中全部符合政策规定 | 无需操作 |\n| 31 | 政策校验 |  |  | ✅ 通过 | 947 | 947 | 0 | 100.0% | 947条记录中全部符合政策规定 | 无需操作 |\n| 32 | 政策校验 |  |  | ✅ 通过 | 947 | 947 | 0 | 100.0% | 947条记录中全部符合政策规定 | 无需操作 |\n\n---\n*工资审核清单看板 v5.3 | 基于确定性规则引擎生成 | 每个审核结论均有数据依据*\n\nFile v7.4.1:_delivery/05_issue_report.md\n\n# 审核问题报告清单\n\n**生成时间**: 2026-06-05 16:13:27\n**总问题数**: 26\n**P0(红线)**: 10\n**P1(预警)**: 16\n\n---\n\n## 问题列表\n\n| 序号 | 阶段 | 严重级别 | 问题 | 详情 | 建议行动 |\n|------|------|---------|------|------|---------|\n| 1 | 红线扫描 | 🔴 P0 | RL-007: 标准工资三字段变化无记录 | 128671De2Ml4(5):  | 立即核实并修正数据 |\n| 2 | 红线扫描 | 🔴 P0 | RL-007: 标准工资三字段变化无记录 | 895922Sx4St1(7):  | 立即核实并修正数据 |\n| 3 | 红线扫描 | 🔴 P0 | RL-007: 标准工资三字段变化无记录 | 150669Lv7Rk2(16):  | 立即核实并修正数据 |\n| 4 | 红线扫描 | 🔴 P0 | RL-007: 标准工资三字段变化无记录 | 964730Rn2Ru5(19):  | 立即核实并修正数据 |\n| 5 | 红线扫描 | 🔴 P0 | RL-007: 标准工资三字段变化无记录 | 620006La1Tm2(28):  | 立即核实并修正数据 |\n| 6 | 红线扫描 | 🔴 P0 | RL-007: 标准工资三字段变化无记录 | 905144Qi7Ey8(42):  | 立即核实并修正数据 |\n| 7 | 红线扫描 | 🔴 P0 | RL-007: 标准工资三字段变化无记录 | 643796Pl1Gt3(51):  | 立即核实并修正数据 |\n| 8 | 红线扫描 | 🔴 P0 | RL-007: 标准工资三字段变化无记录 | 598353He2Yv9(67):  | 立即核实并修正数据 |\n| 9 | 红线扫描 | 🔴 P0 | RL-007: 标准工资三字段变化无记录 | 785932Yx6Fx3(109):  | 立即核实并修正数据 |\n| 10 | 红线扫描 | 🔴 P0 | RL-007: 标准工资三字段变化无记录 | 157927Sl6Er2(214):  | 立即核实并修正数据 |\n| 11 | 黄线扫描 | 🟠 P1 | YL-001: 绩效系数过高 | 812248Fd9Er4(541):  | 人工核实是否正常 |\n| 12 | 黄线扫描 | 🟠 P1 | YL-001: 绩效系数过高 | 919637Sc8Xg2(607):  | 人工核实是否正常 |\n| 13 | 黄线扫描 | 🟠 P1 | YL-001: 绩效系数过高 | 512791Mh2Rt5(115):  | 人工核实是否正常 |\n| 14 | 黄线扫描 | 🟠 P1 | YL-001: 绩效系数过高 | 336523Vz6Gb9(674):  | 人工核实是否正常 |\n| 15 | 黄线扫描 | 🟠 P1 | YL-002: 绩效系数过低 | 130032Bp7Vd3(338):  | 人工核实是否正常 |\n| 16 | 黄线扫描 | 🟠 P1 | YL-002: 绩效系数过低 | 603178Ww0Be7(706):  | 人工核实是否正常 |\n| 17 | 黄线扫描 | 🟠 P1 | YL-002: 绩效系数过低 | 539775Ic0Kw3(1105):  | 人工核实是否正常 |\n| 18 | 黄线扫描 | 🟠 P1 | YL-002: 绩效系数过低 | 481204Bp0Qc5(467):  | 人工核实是否正常 |\n| 19 | 黄线扫描 | 🟠 P1 | YL-003: 绩效系数月度波动大 | 491087Ak6Wa8(65):  | 人工核实是否正常 |\n| 20 | 黄线扫描 | 🟠 P1 | YL-003: 绩效系数月度波动大 | 481204Bp0Qc5(467):  | 人工核实是否正常 |\n| 21 | 黄线扫描 | 🟠 P1 | YL-003: 绩效系数月度波动大 | 790066Ae7Cx7(1592):  | 人工核实是否正常 |\n| 22 | 黄线扫描 | 🟠 P1 | YL-006: 标准工资无依据变化 | 425269Wa0Wr3(1):  | 人工核实是否正常 |\n| 23 | 黄线扫描 | 🟠 P1 | YL-006: 标准工资无依据变化 | 100776Wz9Jx4(3):  | 人工核实是否正常 |\n| 24 | 黄线扫描 | 🟠 P1 | YL-006: 标准工资无依据变化 | 128671De2Ml4(5):  | 人工核实是否正常 |\n| 25 | 黄线扫描 | 🟠 P1 | YL-006: 标准工资无依据变化 | 895922Sx4St1(7):  | 人工核实是否正常 |\n| 26 | 黄线扫描 | 🟠 P1 | YL-006: 标准工资无依据变化 | 150669Lv7Rk2(16):  | 人工核实是否正常 |\n\n---\n\n## 按阶段汇总\n\n| 阶段 | P0 | P1 | 总计 |\n|------|----|----|-----|\n| 红线扫描 | 10 | 0 | 10 |\n| 黄线扫描 | 0 | 16 | 16 |\n\n---\n\n> 本清单由 `run_full_pipeline.py` 自动生成。\n> 所有问题已记录，请逐项核实后处理。\n\nFile v7.4.1:_delivery/audit_summary.md\n\n# 审核结论摘要\n\n**审核时间**: 2026-06-05T16:13:26.249840\n**审核版本**: 7.0.0\n**审核范围**: 947 条记录\n\n## 总体结论\n\n🔴 **审核未通过** - 触发 141 条红线，需要立即处理。\n\n## 审核维度\n\n| 维度 | 结果 |\n|------|------|\n| 🔴 红线 | 141 条触发 |\n| ⚠️  黄线 | 154 条触发 |\n| ℹ️  蓝线 | 626 条提示 |\n| 📐 公式校验 | 通过 ✅ |\n| 📋 字段检查 | 通过 ✅ |\n\n## 详细报告\n\n请查阅以下文件获取完整信息：\n- `06_master_report.html` - 总审核报告（一份看全）\n- `03_kanban_v6.html` - 动态交互看板（筛选/排序/导出）\n- `05_issue_report.md` - 问题清单（逐项跟进）\n\nFile v7.4.1:_delivery/delivery_message.md\n\n**📊 工资审核报告 — 完整交付**\n\n**审核范围**：947人\n\n### 总体结论\n🔴 **审核未通过** — 触发 141 条红线，需要立即处理。\n\n| 维度 | 结果 |\n|------|------|\n| 📐 公式校验 | ✅ 通过 |\n| 📋 字段检查 | ✅ 通过 |\n| 🔴 红线 | 141 条 |\n| ⚠️ 黄线 | 154 条 |\n| ℹ️ 蓝线 | 626 条 |\n\n### 📎 交付文件清单\n\n**📄 飞书文档（在线查看）：**\nhttps://didatravel.feishu.cn/docx/ZCNPdzmyToS690xSmK2cGjVsnFe\n\n**📁 云盘文件（11/11 个）：**\n- 00_data_scan.json — 数据扫描确认\n- 01_audit_result.json — 审核结果\n- 02_report_v6.html — 表格化审核报告（推荐）\n- 02_report_v6.md — Markdown 审核报告\n- 02a_data_index.json — 数据支撑索引\n- 03_kanban_v6.html — 动态交互看板（推荐）\n- 03_kanban.md — Markdown 审核清单\n- 04_sampling_verify.json — 抽样校验结果\n- 05_issue_report.md — 问题清单\n- 06_master_report.html — 总审核报告\n- audit_summary.md — 审核结论摘要（自动生成）\n\n### 📊 总额环比\n- 应发合计：15,340,225 → 15,020,897 (-2.1%)\n- 实发金额合计：14,272,483 → 13,307,958 (-6.8%)\n- 实际出勤工资小计：10,943,185 → 11,250,835 (+2.8%)\n- 实际绩效工资：2,847,352 → 2,847,173 (-0.0%)\n- 加班费小计：1,202 → 92,748 (+7617.5%) ⚠️\n- 业务线奖金合计：952,910 → 42,770 (-95.5%) ⚠️\n- 提成&其他&奖金：362,797 → 290,518 (-19.9%) ⚠️\n- 补发：159 → 260,654 (+164195.0%) ⚠️\n\n---\n*由 payroll-data-audit 自动交付 | 时间: 2026-06-05 16:44:12*\n\nFile v7.4.1:_send/05_issue_report.md\n\n# 审核问题报告清单\n\n**生成时间**: 2026-06-05 16:13:27\n**总问题数**: 26\n**P0(红线)**: 10\n**P1(预警)**: 16\n\n---\n\n## 问题列表\n\n| 序号 | 阶段 | 严重级别 | 问题 | 详情 | 建议行动 |\n|------|------|---------|------|------|---------|\n| 1 | 红线扫描 | 🔴 P0 | RL-007: 标准工资三字段变化无记录 | 128671De2Ml4(5):  | 立即核实并修正数据 |\n| 2 | 红线扫描 | 🔴 P0 | RL-007: 标准工资三字段变化无记录 | 895922Sx4St1(7):  | 立即核实并修正数据 |\n| 3 | 红线扫描 | 🔴 P0 | RL-007: 标准工资三字段变化无记录 | 150669Lv7Rk2(16):  | 立即核实并修正数据 |\n| 4 | 红线扫描 | 🔴 P0 | RL-007: 标准工资三字段变化无记录 | 964730Rn2Ru5(19):  | 立即核实并修正数据 |\n| 5 | 红线扫描 | 🔴 P0 | RL-007: 标准工资三字段变化无记录 | 620006La1Tm2(28):  | 立即核实并修正数据 |\n| 6 | 红线扫描 | 🔴 P0 | RL-007: 标准工资三字段变化无记录 | 905144Qi7Ey8(42):  | 立即核实并修正数据 |\n| 7 | 红线扫描 | 🔴 P0 | RL-007: 标准工资三字段变化无记录 | 643796Pl1Gt3(51):  | 立即核实并修正数据 |\n| 8 | 红线扫描 | 🔴 P0 | RL-007: 标准工资三字段变化无记录 | 598353He2Yv9(67):  | 立即核实并修正数据 |\n| 9 | 红线扫描 | 🔴 P0 | RL-007: 标准工资三字段变化无记录 | 785932Yx6Fx3(109):  | 立即核实并修正数据 |\n| 10 | 红线扫描 | 🔴 P0 | RL-007: 标准工资三字段变化无记录 | 157927Sl6Er2(214):  | 立即核实并修正数据 |\n| 11 | 黄线扫描 | 🟠 P1 | YL-001: 绩效系数过高 | 812248Fd9Er4(541):  | 人工核实是否正常 |\n| 12 | 黄线扫描 | 🟠 P1 | YL-001: 绩效系数过高 | 919637Sc8Xg2(607):  | 人工核实是否正常 |\n| 13 | 黄线扫描 | 🟠 P1 | YL-001: 绩效系数过高 | 512791Mh2Rt5(115):  | 人工核实是否正常 |\n| 14 | 黄线扫描 | 🟠 P1 | YL-001: 绩效系数过高 | 336523Vz6Gb9(674):  | 人工核实是否正常 |\n| 15 | 黄线扫描 | 🟠 P1 | YL-002: 绩效系数过低 | 130032Bp7Vd3(338):  | 人工核实是否正常 |\n| 16 | 黄线扫描 | 🟠 P1 | YL-002: 绩效系数过低 | 603178Ww0Be7(706):  | 人工核实是否正常 |\n| 17 | 黄线扫描 | 🟠 P1 | YL-002: 绩效系数过低 | 539775Ic0Kw3(1105):  | 人工核实是否正常 |\n| 18 | 黄线扫描 | 🟠 P1 | YL-002: 绩效系数过低 | 481204Bp0Qc5(467):  | 人工核实是否正常 |\n| 19 | 黄线扫描 | 🟠 P1 | YL-003: 绩效系数月度波动大 | 491087Ak6Wa8(65):  | 人工核实是否正常 |\n| 20 | 黄线扫描 | 🟠 P1 | YL-003: 绩效系数月度波动大 | 481204Bp0Qc5(467):  | 人工核实是否正常 |\n| 21 | 黄线扫描 | 🟠 P1 | YL-003: 绩效系数月度波动大 | 790066Ae7Cx7(1592):  | 人工核实是否正常 |\n| 22 | 黄线扫描 | 🟠 P1 | YL-006: 标准工资无依据变化 | 425269Wa0Wr3(1):  | 人工核实是否正常 |\n| 23 | 黄线扫描 | 🟠 P1 | YL-006: 标准工资无依据变化 | 100776Wz9Jx4(3):  | 人工核实是否正常 |\n| 24 | 黄线扫描 | 🟠 P1 | YL-006: 标准工资无依据变化 | 128671De2Ml4(5):  | 人工核实是否正常 |\n| 25 | 黄线扫描 | 🟠 P1 | YL-006: 标准工资无依据变化 | 895922Sx4St1(7):  | 人工核实是否正常 |\n| 26 | 黄线扫描 | 🟠 P1 | YL-006: 标准工资无依据变化 | 150669Lv7Rk2(16):  | 人工核实是否正常 |\n\n---\n\n## 按阶段汇总\n\n| 阶段 | P0 | P1 | 总计 |\n|------|----|----|-----|\n| 红线扫描 | 10 | 0 | 10 |\n| 黄线扫描 | 0 | 16 | 16 |\n\n---\n\n> 本清单由 `run_full_pipeline.py` 自动生成。\n> 所有问题已记录，请逐项核实后处理。\n\nFile v7.4.1:_send/delivery_message.md\n\n**📊 工资审核报告 — 完整交付**\n\n**审核范围**：947人\n\n### 总体结论\n🔴 **审核未通过** — 触发 141 条红线，需要立即处理。\n\n| 维度 | 结果 |\n|------|------|\n| 📐 公式校验 | ✅ 通过 |\n| 📋 字段检查 | ✅ 通过 |\n| 🔴 红线 | 141 条 |\n| ⚠️ 黄线 | 154 条 |\n| ℹ️ 蓝线 | 626 条 |\n\n### 📎 交付文件清单\n\n**📄 飞书文档（在线查看）：**\nhttps://didatravel.feishu.cn/docx/ZCNPdzmyToS690xSmK2cGjVsnFe\n\n**📁 云盘文件（11/11 个）：**\n- 00_data_scan.json — 数据扫描确认\n- 01_audit_result.json — 审核结果\n- 02_report_v6.html — 表格化审核报告（推荐）\n- 02_report_v6.md — Markdown 审核报告\n- 02a_data_index.json — 数据支撑索引\n- 03_kanban_v6.html — 动态交互看板（推荐）\n- 03_kanban.md — Markdown 审核清单\n- 04_sampling_verify.json — 抽样校验结果\n- 05_issue_report.md — 问题清单\n- 06_master_report.html — 总审核报告\n- audit_summary.md — 审核结论摘要（自动生成）\n\n### 📊 总额环比\n- 应发合计：15,340,225 → 15,020,897 (-2.1%)\n- 实发金额合计：14,272,483 → 13,307,958 (-6.8%)\n- 实际出勤工资小计：10,943,185 → 11,250,835 (+2.8%)\n- 实际绩效工资：2,847,352 → 2,847,173 (-0.0%)\n- 加班费小计：1,202 → 92,748 (+7617.5%) ⚠️\n- 业务线奖金合计：952,910 → 42,770 (-95.5%) ⚠️\n- 提成&其他&奖金：362,797 → 290,518 (-19.9%) ⚠️\n- 补发：159 → 260,654 (+164195.0%) ⚠️\n\n---\n*由 payroll-data-audit 自动交付 | 时间: 2026-06-05 16:44:12*\n\nFile v7.4.1:_upload_temp/02_report_v6.md\n\n# 📋 工资审核报告 v6.0\n\n**审核时间**: 2026-06-05 16:13:26  \n**规则版本**: 7.0.0  \n**数据量**: 947 人  \n**审核结论**: 🔴 存在红线异常，禁止出报告\n\n## 📊 审核结论汇总表\n\n| 维度 | 规则ID | 检查数 | 通过数 | 异常数 | 通过率 | 结论 |\n|------|--------|--------|--------|--------|--------|------|\n| 字段完整性 | FC-001 | 65 | 65 | 0 | 100.0% | ✅ 通过 |\n| 应发合计校验 | FR-001 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n| 实发合计校验 | FR-002 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n| 出勤工资校验 | FR-003 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n| 计薪天数校验 | FR-004 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | RL-001 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | RL-002 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | RL-003 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | RL-004 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | RL-005 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | RL-006 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | RL-007 | 947 | 806 | 141 | 85.1% | 🔴 阻断 |\n|  | YL-001 | 947 | 943 | 4 | 99.6% | 🟠 异常 |\n|  | YL-002 | 947 | 943 | 4 | 99.6% | 🟠 异常 |\n|  | YL-003 | 947 | 944 | 3 | 99.7% | 🟠 异常 |\n|  | YL-004 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | YL-005 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | YL-006 | 947 | 804 | 143 | 84.9% | 🟠 异常 |\n|  | BL-001 | 947 | 816 | 131 | 86.2% | 🔵 提示 |\n|  | BL-002 | 947 | 778 | 169 | 82.2% | 🔵 提示 |\n|  | BL-003 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | BL-004 | 947 | 621 | 326 | 65.6% | 🔵 提示 |\n| 15号后入职当月不缴社保公积金 |  | 445 | 445 | 0 | 100.0% | ✅ 通过 |\n| 实习生/保洁豁免社保公积金 |  | 50 | 50 | 0 | 100.0% | ✅ 通过 |\n| 离职当月社保公积金缴纳规则 |  | 6 | 6 | 0 | 100.0% | ✅ 通过 |\n| 道旅国际-社保豁免 |  | 11 | 11 | 0 | 100.0% | ✅ 通过 |\n| 道旅国际-公积金豁免 |  | 11 | 11 | 0 | 100.0% | ✅ 通过 |\n|  | BR-001 | 947 | 32 | 915 | 3.4% | 🟠 异常 |\n|  | BR-002 | 947 | 0 | 947 | 0.0% | 🟠 异常 |\n|  | BR-003 | 947 | 0 | 947 | 0.0% | 🟠 异常 |\n|  | BR-004 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | BR-005 | 947 | 945 | 2 | 99.8% | 🟠 异常 |\n\n## 📝 审核结论与数据支撑\n\n**异常项（需核实）：**\n- ❌ 红线 标准工资三字段变化无记录：141人异常，检查947人\n- ❌ 黄线 绩效系数过高：4人异常，检查947人\n- ❌ 黄线 绩效系数过低：4人异常，检查947人\n- ❌ 黄线 绩效系数月度波动大：3人异常，检查947人\n- ❌ 黄线 标准工资无依据变化：143人异常，检查947人\n- ❌ 业务规则 出勤工资不超过标准工资：915人异常，检查947人\n- ❌ 业务规则 出勤天数不超过应出勤天数：947人异常，检查947人\n- ❌ 业务规则 绩效系数在合理范围：947人异常，检查947人\n- ❌ 业务规则 轮班天数不超过计薪天数：2人异常，检查947人\n\n**通过项（数据支撑）：**\n- ✅ 字段完整性通过：65个必填字段全部存在，零缺失\n- ✅ 公式校验通过：947条记录全部在容差范围内，零误差\n- ✅ 公式校验通过：947条记录全部在容差范围内，零误差\n- ✅ 公式校验通过：947条记录全部在容差范围内，零误差\n- ✅ 公式校验通过：947条记录全部在容差范围内，零误差\n- ✅ 特殊政策执行通过：5项政策校验零违规\n- ✅ 总额环比正常：应发合计 从¥15,340,225→¥15,020,897，变化-2.1%，在±10%正常范围内\n- ✅ 总额环比正常：实发金额合计 从¥14,272,483→¥13,307,958，变化-6.8%，在±10%正常范围内\n- ✅ 总额环比正常：实际出勤工资小计 从¥10,943,185→¥11,250,835，变化+2.8%，在±10%正常范围内\n- ✅ 总额环比正常：实际绩效工资 从¥2,847,352→¥2,847,173，变化-0.0%，在±10%正常范围内\n\n## 📈 总额环比分析\n\n| 指标 | 本月 | 上月 | 变化率 | 状态 |\n|------|------|------|--------|------|\n| 人数 | 947 | 954 | -0.7% | ✅ 正常 |\n| 应发合计 | ¥15,020,897 | ¥15,340,225 | -2.1% | ✅ |\n| 实发金额合计 | ¥13,307,958 | ¥14,272,483 | -6.8% | ✅ |\n| 实际出勤工资小计 | ¥11,250,835 | ¥10,943,185 | +2.8% | ✅ |\n| 实际绩效工资 | ¥2,847,173 | ¥2,847,352 | -0.0% | ✅ |\n| 加班费小计 | ¥92,748 | ¥1,202 | +7617.5% | ⚠️ |\n| 业务线奖金合计 | ¥42,770 | ¥952,910 | -95.5% | ⚠️ |\n| 提成&其他&奖金 | ¥290,518 | ¥362,797 | -19.9% | ⚠️ |\n| 补发 | ¥260,654 | ¥159 | +164195.0% | ⚠️ |\n\n---\n*由 payroll-data-audit v6.0 自动生成 | 全量对齐 SOP | 关联文件: data_index.json + kanban.html*\n\nArchive v7.4.0: 54 files, 223133 bytes\n\nFiles: _delivery/00_data_scan.json (1249b), _delivery/01_audit_result.json (63388b), _delivery/02_report_v6.html (49447b), _delivery/02_report_v6.md (4704b), _delivery/02_report.html (17804b), _delivery/02_report.md (5395b), _delivery/02a_data_index.json (31186b), _delivery/03_kanban_v6.html (37946b), _delivery/03_kanban.html (30954b), _delivery/03_kanban.md (5643b), _delivery/04_sampling_verify.json (4551b), _delivery/05_issue_report.md (3638b), _delivery/06_master_report.html (20126b), _delivery/audit_summary.md (687b), _delivery/delivery_message.md (1591b), _delivery/delivery_result.json (4302b), _meta.json (137b), _send/02_report_v6.html (49447b), _send/03_kanban_v6.html (37946b), _send/05_issue_report.md (3638b), _send/06_master_report.html (20126b), _send/delivery_message.md (1591b), _send/delivery_result.json (4302b), _upload_temp/00_data_scan.json (1249b), _upload_temp/01_audit_result.json (63388b), _upload_temp/02_report_v6.html (49447b), _upload_temp/02_report_v6.md (4704b), _upload_temp/02a_data_index.json (31186b), _upload_temp/03_kanban_v6.html (37946b), _upload_temp/03_kanban.md (5643b), _upload_temp/04_sampling_verify.json (4551b), _upload_temp/05_issue_report.md (3638b), _upload_temp/06_master_report.html (20126b), _upload_temp/audit_summary.md (687b), 02_report_v6.md (4704b), references/rules.json (15277b), requirements.txt (44b), scripts/data_scan.py (10846b), scripts/deliver_audit_files.py (6638b), scripts/deliver_to_feishu.py (9767b), scripts/generate_data_index.py (8007b), scripts/generate_kanban_v6.py (21021b), scripts/generate_kanban.py (22871b), scripts/generate_master_report.py (15225b), scripts/generate_report_v6.py (35295b), scripts/generate_report.py (33255b), scripts/rules_engine.py (80672b), scripts/run_audit.py (11747b), scripts/run_full_pipeline.py (23146b), scripts/sampling_verify.py (10751b), scripts/tests/test_parameterized.py (20378b), scripts/tests/test_rules_engine.py (19920b), skill-card.md (2336b), SKILL.md (22750b)\n\nFile v7.4.0:SKILL.md\n\n---\nname: payroll-data-audit\nversion: 7.4.0\ndescription: 工资数据审核系统，基于确定性规则引擎 + Python 脚本执行。\n  全量对齐《工资审核标准流程 SOP》6 步流程。v7.2 修复P0阻断bug：_get_pay_month() 支持\n  中文格式（\"2026年4月\"/\"2026年04月\"/\"202604\"），RL-003/RL-007 排除逻辑完全生效。\n  v7.1 修复5个P0阻断bug：全角/半角括号统一、RL-003状态列检查、RL-007新员工排除+上月1号调薪豁免、FR-003实习生排除、YL-006上月1号豁免。\n  v6.2 新增总审核报告（Master Report）、 规则判定过程详解（judgment）、黄线排除逻辑完善。\n  v6.2.1 新增编排指南：单节点原则。\n  Use when user asks to 工资数据审核、薪资校验、算薪逻辑验证、薪酬合规检查、\n  工资单审核、月度薪资校验、发薪前数据检查、payroll audit、salary check、\n  wage verification、payroll compliance.\n  不适用于非薪酬类数据审核、纯算薪操作（非审核）、外部薪酬调研、个税/社保计算.\n  此技能需手动触发.\n---\n\n# Payroll Data Audit v7.3.0\n\n**架构原则**：确定性操作下沉到代码，模糊推理留给 LLM。AI 不做计算和判断，只做路由决策和报告翻译。\n\n## 概述\n\n工资数据审核系统，全量对齐《工资审核标准流程 SOP》6 步流程，对飞书/SAP/ADP 导出的工资表执行自动化合规校验。SOP 覆盖率 95%（41/43 项）。\n\n### v6.3 新功能\n\n- **RL-003 排除逻辑修复**：低于最低工资检查排除实习生(日薪)、实习生(月薪)、当月入职、当月离职、当月长时间请假（病假>5天或事假>5天）\n- **RL-004 排除逻辑修复**：社保公积金应缴未缴排除实习生(月薪)\n- **YL-006 误报修复**：非1号转正/调薪导致的跨月工资变化不再误报（生效日期在[上月发薪月, 当月发薪月]范围内自动排除）\n- **COLUMN_ALIAS 扩充**：新增 40+ 个字段别名变体，覆盖更多实际工资表列名（如\"应发工资合计\"、\"实发工资\"、\"个人所得税扣款\"等）\n- **连续在职人员环比分析**：新增 `analyze_continuous_employees()` 方法，自动识别连续在职人员，排除实习生/当月入离职/近期调薪转正/请假>2天/多主体发薪人员，对比12项计薪科目环比变化，自动标记 >10% 异常波动并分类原因\n- **场景十·文件交付（Step 9）**：新增 `deliver_audit_files.py`，11个必发文件清单生成 + 审核结论摘要自动生成，流水线结束后 Phase 8/8 自动交付准备\n- **审核清单增强**：呈现审核数据情况、通过/不通过原因、判定过程详解\n\n### v6.2 新功能\n\n- **总审核报告（Master Report）**：Phase 7/7，将数据扫描、审核结果、判定过程、问题清单、抽样校验聚合为一份完整的 HTML 总报告（`06_master_report.html`）\n- **规则判定过程详解（judgment）**：每条规则输出 `judgment` 字段，包含规则逻辑、检查范围、排除人数及原因、实际检查人数、通过率、判定结论，让看报告的人能看到\"怎么判的、排了谁、阈值是什么\"\n- **黄线排除逻辑完善**：YL-001~004、YL-006 新增实习生/日薪/保洁/当月入职/当月离职排除；YL-005（出勤天数超计薪天数）不排除任何人（数据质量问题全员检查）\n\n### v6.0 新功能\n\n- **表格化报告**：整体以表格形式呈现，信息密度高，替代 v5 的卡片+SVG 风格\n- **动态交互看板**：支持筛选/排序/搜索/展开明细/导出CSV/深色模式（零依赖，纯内嵌JS）\n- **数据支撑索引**：`data_index.json` 作为报告和看板的关联核心，保证数据一致性\n- **三者联动**：报告 ↔ 看板 ↔ 数据索引，通过 rule_id 双向锚定\n\n### 功能范围\n\n- **SOP 第一步（强制）**：数据扫描确认（发薪月/公司主体/计薪项/特殊人员/工号重复检测）\n- 字段完整性检查（30+ 列名容错映射）\n- 公式校验（Decimal 精度，0.01 容差）\n- 业务逻辑校验（出勤工资/天数/绩效系数/加班/最低工资）\n- 红线校验（实发≤0、加班超36h、低于最低工资、社保未缴）\n- 黄线校验（绩效异常、出勤超限、工资波动）\n- 蓝线校验（跨月趋势，仅提示）\n- 政策校验（道旅国际豁免、15号后入职、实习生/保洁豁免、离职当月社保）\n- 人数对比分析（新入职/离职/波动>5%）\n- 总额环比分析（12项计薪科目，±10%阈值自动标记）\n- 分主体/分四级部门对比（按公司主体分组环比）\n- 按人深入分析（连续在职筛选+排除逻辑+六类变化分类+核实标记）\n- HTML/Markdown 审核报告生成\n- **数据支撑**：每个审核结论必须有数据依据\n- **审核清单看板**：完整条目清单（结果+数据依据+处理建议），HTML+Markdown 双格式\n- **分段审核**：7阶段独立执行，避免上下文截断，支持断点续传\n- **抽样校验**：随机抽样+独立重算+偏差检测，二次确认审核结果\n- **超链接复核**：异常项可点击复核链接（支持 {emp_id}/{emp_name}/{row_index}）\n- **端到端流水线**：`run_full_pipeline.py` 一键跑完不中断（数据扫描→审核→报告→看板→抽样→问题清单→总审核报告）\n\n**不覆盖**：实际算薪操作、薪酬市场调研、个税计算、社保核算。\n\n### SOP 流程映射\n\n| SOP 步骤 | 本 Skill 对应 | 说明 |\n|---------|-------------|------|\n| 第一步：审核流程（强制） | `data_scan.py` + 用户确认 | **禁止跳步** |\n| 第二步：数据逻辑验证 | `rules_engine.py` 公式+业务逻辑 | 公式校验+5项业务规则 |\n| 第三步：异常数据扫描 | `rules_engine.py` 红/黄/蓝线 | 4红+6黄+4蓝 |\n| 第四步：总额对比分析 | `rules_engine.py --prev` 总额环比 | ±10%阈值 |\n| 第五步：按人深入分析 | `rules_engine.py --prev` 按人分析 | 排除+6类变化 |\n| 第六步：汇总审核报告 | `generate_report.py` / `generate_report_v6.py` | 结构化报告（v5）/ 表格化报告（v6） |\n| 第七步：审核清单看板 | `generate_kanban.py` / `generate_kanban_v6.py` | 静态看板（v5）/ 动态交互看板（v6） |\n| 第八步：抽样校验 | `sampling_verify.py` | 二次确认审核结果 |\n| 数据支撑索引 | `generate_data_index.py` | 三者关联核心（报告↔看板↔数据） |\n|| 分段审核编排 | `run_audit.py` | 7阶段独立执行+断点续传 |\n|| 端到端流水线 | `run_full_pipeline.py` | 一键跑完不中断，始终生成所有输出（含总报告） |\n|| 总审核报告 | `generate_master_report.py` | 聚合所有输出为一份完整 HTML 总报告 |\n| 连续在职环比分析 | `rules_engine.py::analyze_continuous_employees()` | 12项计薪科目环比，排除规则，异常标记 |\n| 文件交付（Step 9） | `deliver_to_feishu.py` | 11个必发文件上传云盘 + 飞书文档创建 + 交付消息生成（自动化交付，LLM只负责发送） |\n\n## 使用\n\n### 决策路由\n\n先判断用户需求属于哪类场景，再执行对应流程：\n\n| 用户说的 | 匹配场景 | 执行 |\n|---------|---------|------|\n| \"帮我审核本月工资数据\" | 完整审核 (Step 1→6) | 先 data_scan → 用户确认 → run_full_audit |\n| \"快速看看有没有问题\" | 红线校验 | `--step red_lines` |\n| \"发薪前帮我理一下数据\" | 字段检查 | `--step fields` |\n| \"帮我验一下公式对不对\" | 公式校验 | `--step formulas` |\n| \"帮我出个审核报告\" | 报告生成 | `generate_report.py` |\n| \"帮我出个表格版审核报告\" | 报告生成 v6 | `generate_report_v6.py` |\n| \"帮我出个审核清单/看板\" | 审核清单看板 | `generate_kanban.py` |\n| \"帮我出个动态交互看板\" | 动态看板 v6 | `generate_kanban_v6.py`（需要 data_index.json） |\n| \"分段审核/怕上下文截断\" | 分段审核 | `run_audit.py` |\n| \"帮我二次确认审核结果\" | 抽样校验 | `sampling_verify.py` |\n| \"从头到尾跑一遍审核\" | 端到端流水线 | `run_full_pipeline.py`（含 v6 报告+看板+索引+总报告+交付摘要） |\n| \"审核完了把文件发给我\" | 文件交付 | `deliver_to_feishu.py`（自动上传11个文件+创建飞书文档+生成交付消息，LLM只负责发送消息） |\n\n### 场景零：数据扫描确认（⚠️ 强制第一步）\n\n**⚠️ 禁止跳过此步骤直接执行审核！**\n\n出报告前必须先数据扫描确认，等待用户回复\"确认无误\"后才执行后续审核。\n\n**第一步：数据扫描**\n\n```bash\npython3 scripts/data_scan.py \\\n  --data <工资数据.csv> \\\n  --output /tmp/data_scan_result.json\n```\n\n扫描输出以下信息供用户确认：\n- 发薪月分布（往月/最新发薪月对应人数）\n- 最新发薪月公司主体列表及对应人数\n- 主要计薪项数据（应发合计、实发金额合计、加班费合计、个人社保合计、个人公积金合计）\n- 特殊字段识别（实习生人数、保洁人数、入职人数、离职人数、转正/调薪人数）\n- 工号重复检测\n\n**数据扫描输出示例**：\n\n```\n============================================================\n📊 工资数据扫描报告\n============================================================\n\n📋 总记录数: 2000\n📅 最新发薪月: 2026-05\n\n📅 发薪月分布:\n  2026-05: 2000 人 ← 最新\n  2026-04: 1980 人\n\n🏢 公司主体分布:\n  道旅科技: 1500 人\n  道旅国际: 300 人\n  道旅服务: 200 人\n\n💰 主要计薪项汇总:\n  应发合计: ¥15,234,567.89\n  实发金额合计: ¥12,345,678.90\n  加班费小计: ¥234,567.89\n  个人社保: ¥1,234,567.89\n  个人公积金: ¥987,654.32\n\n👥 特殊人员:\n  新入职: 15 人\n  离职: 8 人\n  转正: 12 人\n  调薪: 5 人\n\n🔍 数据质量检测:\n  工号重复: ✅ 无异常\n  姓名为空: ✅ 无异常\n\n============================================================\n请确认以上数据是否正确，回复'确认无误'后开始正式审核。\n============================================================\n```\n\n**第二步：用户确认**\n\n等待用户回复\"确认无误\"或指出问题。**如果用户指出问题，先修正数据再继续。**\n\n**第三步：正式审核**\n\n用户确认后才执行场景一的完整审核流程。\n\n### 场景一：完整审核（Step 1 → 6）\n\n**第一步：获取数据** — 要求用户提供本月工资数据文件（CSV/Excel），**必须同时提供上月数据**用于跨月对比。\n\n**第二步：数据扫描确认** — 见场景零。\n\n**第三步：执行审核**\n\n```bash\npython3 -m scripts.rules_engine \\\n  --data <本月工资数据.csv> \\\n  --prev <上月工资数据.csv> \\\n  --output /tmp/audit_result.json\n```\n\n**第四步：确认门** — 如果 `summary.blocked == true`（触发红线），**不要生成报告**，先输出红线清单并要求用户确认数据修正后再继续。\n\n**第五步：生成报告** — 通过红线后，用脚本输出 JSON 生成人类可读报告：\n\n```bash\npython3 scripts/generate_report.py \\\n  --input /tmp/audit_result.json \\\n  --format both\n```\n\n**输出文件**：`report.html` + `report.md` 在工作目录。\n\n### 场景二：快速红线校验\n\n```bash\npython3 -m scripts.rules_engine \\\n  --data <工资数据.csv> \\\n  --step red_lines \\\n  --output /tmp/red_lines_result.json\n```\n\n适用于发薪前快速检查，只需 10 秒。\n\n### 场景三：数据梳理（字段检查）\n\n```bash\npython3 -m scripts.rules_engine \\\n  --data <工资数据.csv> \\\n  --step fields \\\n  --output /tmp/fields_result.json\n```\n\n检查必填字段是否缺失、格式是否正确。\n\n### 场景四：公式校验\n\n```bash\npython3 -m scripts.rules_engine \\\n  --data <工资数据.csv> \\\n  --step formulas \\\n  --output /tmp/formulas_result.json\n```\n\n验证应发/实发计算是否与公式一致。\n\n### 场景五：报告生成\n\n```bash\n# HTML 可视化报告\npython3 scripts/generate_report.py \\\n  --input /tmp/audit_result.json --format html --output report.html\n\n# Markdown 报告\npython3 scripts/generate_report.py \\\n  --input /tmp/audit_result.json --format markdown --output report.md\n\n# 两者都生成\npython3 scripts/generate_report.py \\\n  --input /tmp/audit_result.json --format both\n```\n\n### 场景六：审核清单看板（Step 7）\n\n**审核清单看板 = 完整审核条目展开清单**，每条包含审核结果 + 数据依据 + 处理建议。\n```bash\npython3 scripts/generate_kanban.py --input /tmp/audit_result.json --format both\n```\n**超链接复核**：`--review-link \"https://hr.example/emp/{emp_id}?row={row_index}\"`\n输出 `kanban.html` + `kanban.md`，展开 rules.json 所有规则（28+条）。\n### 场景七：抽样校验（Step 8，推荐）\n\n审核完成后进行二次确认：`python3 scripts/sampling_verify.py --data <数据.csv> --audit <审核结果.json> --sample-size 30 --threshold 0.05 --output <输出.json>`\n\n**流程**：随机抽样→独立重算（公式/红线/业务规则）→交叉对比→偏差率≤5%通过；>5%触发根因分析后重新审核。偏差超标时输出根因报告并使用 `run_audit.py --resume` 断点重审。\n### 场景八：分段审核编排（推荐大数据量场景）\n\n`python3 scripts/run_audit.py --data <本月.csv> --prev <上月.csv> --output-dir /tmp/audit_phases`\n\n7个独立阶段（字段→公式→业务规则→红线阻断门→黄线→蓝线→汇总），每阶段输出独立 JSON，避免上下文截断。红线触发时自动阻断后续阶段。支持断点续传：`--resume`。\n\n### 场景九：端到端流水线（一键跑完不中断）\n**输出文件**：`00_data_scan.json` `01_audit_result.json` `02_report.html/md` `02_report_v6.html/md`（表格化，推荐）`02a_data_index.json`（三者关联核心）`03_kanban.html/md` `03_kanban_v6.html`（动态交互，推荐）`04_sampling_verify.json` `05_issue_report.md`(问题清单) `06_master_report.html`(总审核报告) `audit_summary.md`(审核结论摘要)。\n```bash\npython3 scripts/run_full_pipeline.py --data <本月.csv> --prev <上月.csv> --output-dir /tmp/audit_output --review-link \"https://hr.example/emp/{emp_id}?row={row_index}\"\n```\n\n### 场景十：文件交付到飞书（Step 9，强制）\n\n**审核完成后必须执行此步骤，不可跳过。**\n\n```bash\npython3 scripts/deliver_to_feishu.py --output-dir /tmp/audit_output --audit-result /tmp/audit_output/01_audit_result.json\n```\n\n**自动化交付流程**（LLM 不可干预、不可跳过）：\n1. **验证文件完整性** — 检查 11 个必发文件全部存在，缺失则拒绝执行\n2. **上传文件到飞书云盘** — 逐一上传，输出上传结果\n3. **创建飞书文档** — 用 `02_report_v6.md` import 为 docx 格式\n4. **生成交付消息** — 自动生成包含文档链接+文件清单+总额环比的完整飞书消息\n5. **输出 delivery_message.md + delivery_result.json** — 供 LLM 直接发送\n\n**⚠️ LLM 层唯一职责**：把 `delivery_message.md` 的内容通过消息工具发送到飞书。\n**⚠️ 禁止**：自行挑选文件上传、自行创建文档格式、自行裁剪交付内容。\n\n### 数据来源\n\n- **优先**：飞书多维表格导出 CSV / SAP HCM 导出 Excel / ADP 导出\n- **降级**：要求用户提供 CSV/Excel 文件\n- **兜底**：无任何数据源时拒绝执行，回复：\"请提供工资数据文件（CSV 或 Excel 格式），我才能进行审核。\"\n\n### 数据支撑原则\n\n**每个审核结论必须有数据依据，不凭空判断。** 这是审核系统的核心原则——**\"审核通过\"不是感觉出来的，是数据算出来的。**\n\n#### 一、\"通过\"结论的数据支撑逻辑\n\n每个判定为\"正常/通过\"的审核项目，必须同时输出以下三项数据：\n\n| 要素 | 说明 | 示例 |\n|------|------|------|\n| **检查数** | 共检查了多少条记录 | \"2000条记录\" |\n| **通过数** | 多少条符合规则 | \"1998条通过\" |\n| **阈值** | 判定标准是什么 | \"容差0.01元\" |\n\n**完整示例**：\n- ✅ 正确：\"公式校验通过：2000条记录全部在0.01元容差范围内，通过率100%\"\n- ❌ 错误：\"公式校验通过\"（无数据支撑，无法验证结论可靠性）\n\n**为什么必须这样**：如果没有检查数和通过数，\"通过\"可能是只检查了1条、也可能是2000条——可信度完全不同。\n\n#### 二、异常结论的数据支撑\n\n必须列出具体人员、工号、异常值、预期值、违反的规则ID：\n\n- ✅ 正确：\"张三（工号E001）实发金额为-500元，预期值≥0，违反RL-001（实发≤0），严重等级：BLOCK\"\n- ❌ 错误：\"有人实发金额异常\"（无具体信息，无法采取行动）\n\n#### 三、趋势判断的数据支撑\n\n必须给出具体数值、变化幅度、驱动因素：\n\n- ✅ 正确：\"应发总额环比+12.3%（¥15.2M→¥17.1M），超出±10%正常范围，主要由业务线奖金增加导致（+45.2%，¥2.1M→¥3.0M）\"\n- ❌ 错误：\"工资总额有明显增长\"（无数据，无法判断合理性）\n\n#### 四、排除说明的数据支撑\n\n当某人被排除在异常分析外时，必须说明排除原因和依据：\n\n- ✅ 正确：\"李四（工号E002）应发变化+15.8%，但4月有调薪记录（调薪生效日期=2026-04-01），匹配排除规则'调薪'，已排除\"\n- ❌ 错误：\"李四的变化是正常的\"（无依据）\n\n#### 五、红线阻断的数据支撑\n红线触发时输出：触发人数/具体名单(工号+姓名+异常值)/违反规则(ID+名称)。\n**报告\"结论与建议\"结构**：总体结论(检查数+各维度通过/异常数)→各维度详情表格(检查数/通过数/异常数/通过率/结论)→异常明细→建议行动(基于具体数据)。\n\n### 列名容错\n\n脚本内置 `COLUMN_ALIAS` 字典，自动映射 30+ 种常见列名变体。如果列名无法识别，脚本返回 `{\"error\": \"Missing column: XXX\"}`，LLM 必须原文转述。\n\n### 精度处理\n\n金额计算使用 `decimal.Decimal`，避免浮点误差累积。公式校验容差 0.01（1 分钱）。\n\n### 规则更新\n\n所有规则集中在 `references/rules.json`。修改规则只需编辑此文件，无需修改脚本。**为什么这样设计**：业务规则变化频繁（如最低工资调整），集中管理避免每次都要改代码。\n\n#### 如何扩展规则\n\n1. **新增红线**：在 `rules.json` 的 `red_lines` 数组中添加新对象，包含 `id`、`name`、`condition`、`field`、`severity: \"BLOCK\"`\n2. **新增黄线**：在 `yellow_lines` 数组中添加，`action: \"flag_and_explain\"`\n3. **新增蓝线**：在 `blue_lines` 数组中添加，`action: \"note_only\"`\n4. **新增政策**：在 `policies` 数组中添加，包含 `condition`（触发条件）和 `effect`（豁免效果）\n5. **新增业务规则**：在 `business_rules` 数组中添加，支持 `field1 <= field2` 类双字段比较\n6. **新增排除条件**：在 `person_analysis_exclusions` 对象中添加新 key，包含 `field`、`condition`、`note`\n\n**规则 ID 命名规范**：`{类型}-{序号}`，如 `RL-005`（第5条红线）、`YL-007`（第7条黄线）、`POL-006`（第6条政策）、`BR-005`（第5条业务规则）\n\n**添加规则后不需要修改任何 Python 代码**，引擎自动加载。\n\n### 红线阻断\n\n红线触发 → 立即阻断，不继续后续步骤，不生成报告。**为什么**：红线代表严重违规（如负实发、低于最低工资），必须先修正数据再审核，否则报告无意义。\n\n### 编排指南：单节点原则（v6.2.1 新增）\n\n**本 Skill 被 Workflow Orchestration Skill 编排时，必须作为单节点调用。**\n\n根因：`run_full_pipeline.py` 已是端到端流水线，内部按序完成所有 8 步（扫描→规则→红黄蓝线→报告→看板→抽样→问题清单→总报告）。拆成多节点编排无收益——每个节点仍调用同一个 skill，内部全量执行一遍。\n\n| 错误做法 | 正确做法 |\n|----------|----------|\n| N1 data_scan → N2 rules_engine → N3 generate_report → ... | N1 run_full_pipeline.py 一键跑完 |\n\n**唯一例外**：当业务确实需要中间状态可见性或独立重试时，才使用 `run_audit.py` 分段模式（7阶段+断点续传），但仍然是**同一 skill 的多次调用**，不是拆成多个 skill。\n\n### 常见错误场景\n\n| 场景 | 处理 |\n|------|------|\n| 数据源字段缺失 | 列出缺失字段清单，要求用户补充后重试 |\n| 日期格式混乱 | 脚本自动尝试多种格式解析，失败则返回错误 |\n| 无上月数据 | 跨月对比/按人分析跳过，在报告中标注\"无基准数据\" |\n| Python 环境无 pandas | 提示用户 `pip install pandas numpy openpyxl` |\n| 红线触发 | 立即阻断，不继续后续步骤 |\n\n### 目录结构\n\n```\npayroll-data-audit/\n├── SKILL.md\n├── _meta.json\n├── scripts/\n│   ├── data_scan.py               # 数据扫描（SOP 第一步）\n│   ├── rules_engine.py            # 统一规则引擎（OOP）\n│   ├── generate_report.py         # HTML/Markdown 报告生成器（v5，兼容）\n│   ├── generate_report_v6.py      # 表格化报告生成器（v6，推荐）\n│   ├── generate_kanban.py         # 审核清单看板生成器（Step 7，静态）\n│   ├── generate_kanban_v6.py      # 动态交互看板生成器（v6，推荐）\n│   ├── generate_data_index.py     # 数据支撑索引生成器（v6，三者关联核心）\n│   ├── run_audit.py               # 分段审核编排器（7阶段+断点续传）\n│   ├── run_full_pipeline.py       # 端到端流水线（含 v6 输出 + 总报告）\n│   ├── generate_master_report.py  # 总审核报告生成器（v6.2，聚合所有输出）\n│   ├── sampling_verify.py         # 抽样校验器（二次确认）\n│   ├── deliver_audit_files.py     # 文件交付清单生成器（v6.3，仅生成清单，已废弃）\n│   ├── deliver_to_feishu.py       # 文件交付到飞书（v7.4，自动上传+文档+消息，推荐）\n│   └── tests/                     # pytest 测试套件\n│       ├── test_rules_engine.py\n│       └── test_parameterized.py\n├── references/\n│   └── rules.json                 # 所有规则声明（唯一真相来源）\n└── .github/workflows/\n    └── test.yml                   # CI/CD\n```\n\n### 依赖\n\n```bash\npip install pandas numpy openpyxl\n```\n\n### 测试\n\n```bash\ncd payroll-data-audit\npython -m pytest scripts/tests/ -v --cov=scripts.rules_engine --cov-report=term-missing\n```\n\nCI/CD 自动运行：push/PR 时触发 pytest + coverage（80% 门槛）+ lint。\n\nFile v7.4.0:_meta.json\n\n{\n  \"ownerId\": \"kn70tx725606ywwb5gfj0vpxjx83admr\",\n  \"slug\": \"payroll-data-audit\",\n  \"version\": \"7.4.0\",\n  \"publishedAt\": 1780649583551\n}\n\nFile v7.4.0:references/rules.json\n\n{\n  \"version\": \"7.0.0\",\n  \"metadata\": {\n    \"lastUpdated\": \"2026-06-03\",\n    \"updatedBy\": \"HRCOE\",\n    \"description\": \"工资数据审核规则库，所有阈值和逻辑以本文件为准。全量对齐SOP v1.0\",\n    \"changelog\": \"v7.0.0: 对齐SOP文档20260603 - 最低工资2520/加班32h/总额环比±5%/标准工资三字段红线/出勤工资红线/出勤天数红线/公式红线/状态列替代岗位列/病假事假列名对齐/轮班补贴校验/连续在职定义/按人分析双条件/补发提成波动±20%\"\n  },\n  \"thresholds\": {\n    \"overtime_limit\": 32,\n    \"overtime_unit\": \"hour\",\n    \"overtime_breakdown\": [\n      \"平时加班时数\",\n      \"周末加班时数\",\n      \"法定加班时数\"\n    ],\n    \"min_wage_default\": 2520,\n    \"min_wage_shenzhen\": 2360,\n    \"min_wage_guangzhou\": 2300,\n    \"min_wage_dongguan\": 1900,\n    \"perf_coefficient_max\": 1.5,\n    \"perf_coefficient_min\": 0.5,\n    \"perf_coefficient_swing\": 0.5,\n    \"bonus_volatility_threshold\": 0.2,\n    \"supply_volatility_threshold\": 0.2,\n    \"headcount_variance_threshold\": 0.05,\n    \"total_variance_threshold\": 0.05,\n    \"supply_months_tolerance\": 2\n  },\n  \"red_lines\": [\n    {\n      \"id\": \"RL-001\",\n      \"name\": \"实发≤0\",\n      \"description\": \"实发金额合计≤0，必须立即核实\",\n      \"condition\": \"sum(实发金额合计) <= 0\",\n      \"field\": \"实发金额合计\",\n      \"exclusions\": [],\n      \"severity\": \"BLOCK\",\n      \"action\": \"stop_and_alert\"\n    },\n    {\n      \"id\": \"RL-002\",\n      \"name\": \"加班超32h\",\n      \"description\": \"月加班总时数>32小时，违反劳动法\",\n      \"condition\": \"sum(平时加班时数 + 周末加班时数 + 法定加班时数) > 32\",\n      \"field\": \"平时加班时数\",\n      \"exclusions\": [\n        \"当月入职\",\n        \"当月离职\",\n        \"实习生\",\n        \"保洁\",\n        \"当月长时间请假\"\n      ],\n      \"severity\": \"BLOCK\",\n      \"action\": \"stop_and_alert\"\n    },\n    {\n      \"id\": \"RL-003\",\n      \"name\": \"低于最低工资\",\n      \"description\": \"应发合计低于当地最低工资标准\",\n      \"condition\": \"应发合计 < 当地最低工资\",\n      \"field\": \"应发合计\",\n      \"exclusions\": [\n        \"实习生\",\n        \"保洁\",\n        \"当月长时间请假\",\n        \"当月入职\",\n        \"当月离职\",\n        \"实习生(日薪)\",\n        \"实习生(月薪)\"\n      ],\n      \"severity\": \"BLOCK\",\n      \"action\": \"stop_and_alert\"\n    },\n    {\n      \"id\": \"RL-004\",\n      \"name\": \"社保公积金应缴未缴\",\n      \"description\": \"不符合豁免政策但个人社保/公积金扣款为0\",\n      \"condition\": \"不符合豁免政策 AND 个人社保 == 0\",\n      \"field\": \"个人社保\",\n      \"exclusions\": [\n        \"实习生\",\n        \"日薪\",\n        \"保洁\",\n        \"实习生(月薪)\"\n      ],\n      \"severity\": \"BLOCK\",\n      \"action\": \"stop_and_alert\"\n    },\n    {\n      \"id\": \"RL-005\",\n      \"name\": \"出勤工资超标准\",\n      \"description\": \"实际出勤工资小计 > 标准基本工资（排除实习生/日薪/保洁）\",\n      \"condition\": \"实际出勤工资小计 > 标准基本工资\",\n      \"field\": \"实际出勤工资小计\",\n      \"exclusions\": [\n        \"实习生\",\n        \"日薪\",\n        \"保洁\"\n      ],\n      \"severity\": \"BLOCK\",\n      \"action\": \"stop_and_alert\"\n    },\n    {\n      \"id\": \"RL-006\",\n      \"name\": \"出勤天数超应出勤\",\n      \"description\": \"实际计薪出勤天数 > 应计薪出勤天数\",\n      \"condition\": \"实际计薪出勤天数 > 应计薪出勤天数\",\n      \"field\": \"实际计薪出勤天数\",\n      \"exclusions\": [],\n      \"severity\": \"BLOCK\",\n      \"action\": \"stop_and_alert\"\n    },\n    {\n      \"id\": \"RL-007\",\n      \"name\": \"标准工资三字段变化无记录\",\n      \"description\": \"标准基本工资/标准绩效工资/标准福利任一变化，但无调薪/转正记录\",\n      \"condition\": \"标准基本工资≠上月 OR 标准绩效工资≠上月 OR 标准福利≠上月\",\n      \"field\": \"标准基本工资\",\n      \"exclusions\": [],\n      \"severity\": \"BLOCK\",\n      \"action\": \"stop_and_alert\"\n    }\n  ],\n  \"yellow_lines\": [\n    {\n      \"id\": \"YL-001\",\n      \"name\": \"绩效系数过高\",\n      \"threshold\": 1.5,\n      \"field\": \"绩效系数\",\n      \"description\": \"绩效系数>1.5，需核实是否有特殊贡献依据\",\n      \"action\": \"flag_and_explain\",\n      \"exclusions\": [\n        \"实习生\",\n        \"日薪\",\n        \"保洁\",\n        \"当月入职\",\n        \"当月离职\"\n      ]\n    },\n    {\n      \"id\": \"YL-002\",\n      \"name\": \"绩效系数过低\",\n      \"threshold\": 0.5,\n      \"field\": \"绩效系数\",\n      \"description\": \"绩效系数<0.5，需核实绩效评估是否合理\",\n      \"action\": \"flag_and_explain\",\n      \"exclusions\": [\n        \"实习生\",\n        \"日薪\",\n        \"保洁\",\n        \"当月入职\",\n        \"当月离职\"\n      ]\n    },\n    {\n      \"id\": \"YL-003\",\n      \"name\": \"绩效系数月度波动大\",\n      \"threshold\": 0.5,\n      \"field\": \"绩效系数\",\n      \"description\": \"本月系数与上月系数差值>0.5，需核实评估依据\",\n      \"action\": \"flag_and_explain\",\n      \"exclusions\": [\n        \"实习生\",\n        \"日薪\",\n        \"保洁\",\n        \"当月入职\",\n        \"当月离职\"\n      ]\n    },\n    {\n      \"id\": \"YL-004\",\n      \"name\": \"住宿扣款变化\",\n      \"threshold\": 0,\n      \"field\": \"住宿扣款\",\n      \"description\": \"本月住宿扣款与上月不一致，需确认是否退宿或新入住\",\n      \"action\": \"flag_and_explain\",\n      \"exclusions\": [\n        \"实习生\",\n        \"日薪\",\n        \"保洁\"\n      ]\n    },\n    {\n      \"id\": \"YL-005\",\n      \"name\": \"出勤天数超计薪天数\",\n      \"threshold\": 0,\n      \"field\": \"实际计薪出勤天数\",\n      \"description\": \"实际计薪出勤天数 > 应计薪出勤天数，排班数据可能有误\",\n      \"action\": \"flag_and_explain\"\n    },\n    {\n      \"id\": \"YL-006\",\n      \"name\": \"标准工资无依据变化\",\n      \"threshold\": 0,\n      \"field\": \"标准基本工资\",\n      \"description\": \"本月&上月均无调薪/转正记录但标准工资有变化\",\n      \"action\": \"flag_and_explain\",\n      \"exclusions\": [\n        \"实习生\",\n        \"日薪\",\n        \"保洁\",\n        \"当月入职\",\n        \"当月离职\"\n      ]\n    }\n  ],\n  \"blue_lines\": [\n    {\n      \"id\": \"BL-001\",\n      \"name\": \"业务线奖金波动\",\n      \"description\": \"季度奖金发放导致的正常波动\",\n      \"action\": \"note_only\"\n    },\n    {\n      \"id\": \"BL-002\",\n      \"name\": \"加班费波动\",\n      \"description\": \"法定节假日加班费与普通加班费差异\",\n      \"action\": \"note_only\"\n    },\n    {\n      \"id\": \"BL-003\",\n      \"name\": \"补发波动\",\n      \"description\": \"某月突然增加补发，需确认依据\",\n      \"action\": \"note_only\"\n    },\n    {\n      \"id\": \"BL-004\",\n      \"name\": \"提成波动\",\n      \"description\": \"业务正常波动，±20%以内属正常\",\n      \"threshold\": 0.2,\n      \"action\": \"note_only\"\n    }\n  ],\n  \"policies\": [\n    {\n      \"id\": \"POL-001\",\n      \"name\": \"15号后入职当月不缴社保公积金\",\n      \"condition\": \"入职日期.day > 15\",\n      \"effect\": {\n        \"个人社保\": 0,\n        \"个人公积金\": 0\n      },\n      \"applies_to\": \"both\",\n      \"note\": \"入职当月15号后可以不缴纳，次月起缴纳。已缴纳的也合理（公司代缴），不做违规判定。\",\n      \"check_scope\": \"note_only\"\n    },\n    {\n      \"id\": \"POL-002\",\n      \"name\": \"实习生/保洁豁免社保公积金\",\n      \"condition\": \"岗位 in [实习生, 日薪, 保洁]\",\n      \"effect\": {\n        \"个人社保\": 0,\n        \"个人公积金\": 0\n      },\n      \"applies_to\": \"both\",\n      \"note\": \"非全日制实习生按需调整\"\n    },\n    {\n      \"id\": \"POL-003\",\n      \"name\": \"离职当月社保公积金缴纳规则\",\n      \"condition\": \"离职日期.day <= 15\",\n      \"effect\": {\n        \"个人社保\": 0,\n        \"个人公积金\": 0\n      },\n      \"applies_to\": \"both\",\n      \"note\": \"15号前离职当月不缴，15号后离职当月缴纳。仅检查当月离职人员，不检查非离职人员。\",\n      \"check_scope\": \"leavers_only\"\n    },\n    {\n      \"id\": \"POL-004\",\n      \"name\": \"道旅国际-社保豁免\",\n      \"condition\": \"公司主体 == '道旅国际'\",\n      \"effect\": {\n        \"个人社保\": 0\n      },\n      \"applies_to\": \"both\",\n      \"note\": \"道旅国际员工不缴纳个人社保\"\n    },\n    {\n      \"id\": \"POL-005\",\n      \"name\": \"道旅国际-公积金豁免\",\n      \"condition\": \"公司主体 == '道旅国际' AND 入职月数 <= 2\",\n      \"effect\": {\n        \"个人公积金\": 0\n      },\n      \"applies_to\": \"both\",\n      \"note\": \"道旅国际员工入职2个月内可以不缴纳个人公积金。已缴纳的也合理，不做违规判定。\",\n      \"check_scope\": \"note_only\"\n    }\n  ],\n  \"formula_rules\": [\n    {\n      \"id\": \"FR-001\",\n      \"name\": \"应发合计校验\",\n      \"description\": \"应发合计 = 各收入科目之和 - 其他扣减\",\n      \"left\": \"应发合计\",\n      \"right_fields\": [\n        \"实际出勤工资小计\",\n        \"实际绩效工资\",\n        \"实际出勤福利小计\",\n        \"轮班补贴\",\n        \"加班费小计\",\n        \"业务线奖金合计\",\n        \"提成&其他&奖金\",\n        \"补发\"\n      ],\n      \"deductions\": [\n        \"其他扣减\"\n      ],\n      \"tolerance\": 0,\n      \"applies_to\": \"all\"\n    },\n    {\n      \"id\": \"FR-002\",\n      \"name\": \"实发合计校验\",\n      \"description\": \"实发合计 = 应发合计 - 代扣款项 + 补贴\",\n      \"left\": \"实发金额合计\",\n      \"deductions\": [\n        \"个人社保\",\n        \"个人公积金\",\n        \"个人所得税\",\n        \"税后扣减项\",\n        \"个人住宿扣款\",\n        \"个人承担社保差额\",\n        \"个人承担公积金差额\"\n      ],\n      \"additions\": [\n        \"经济补偿金\"\n      ],\n      \"tolerance\": 0,\n      \"applies_to\": \"all\"\n    },\n    {\n      \"id\": \"FR-003\",\n      \"name\": \"出勤工资校验\",\n      \"description\": \"实际出勤工资小计 ≤ 标准基本工资\",\n      \"left\": \"实际出勤工资小计\",\n      \"right_field\": \"标准基本工资\",\n      \"tolerance\": 0,\n      \"direction\": \"lte\",\n      \"applies_to\": \"all\",\n      \"exclusions\": [\n        \"实习生\",\n        \"日薪\"\n      ]\n    },\n    {\n      \"id\": \"FR-004\",\n      \"name\": \"计薪天数校验\",\n      \"description\": \"实际计薪出勤天数 ≤ 应计薪出勤天数\",\n      \"left\": \"实际计薪出勤天数\",\n      \"right_field\": \"应计薪出勤天数\",\n      \"tolerance\": 0,\n      \"direction\": \"lte\",\n      \"applies_to\": \"all\"\n    }\n  ],\n  \"business_rules\": [\n    {\n      \"id\": \"BR-001\",\n      \"name\": \"出勤工资不超过标准工资\",\n      \"condition\": \"实际出勤工资小计 <= 标准基本工资\",\n      \"exclusions_field\": \"岗位\",\n      \"exclusions_values\": [\n        \"实习生(日薪)\",\n        \"日薪\"\n      ],\n      \"description\": \"实际出勤工资小计不应超过标准基本工资（排除日薪实习生）\",\n      \"severity\": \"yellow\"\n    },\n    {\n      \"id\": \"BR-002\",\n      \"name\": \"出勤天数不超过应出勤天数\",\n      \"condition\": \"实际计薪出勤天数 <= 应计薪出勤天数\",\n      \"description\": \"实际计薪出勤天数不应超过应计薪出勤天数\",\n      \"severity\": \"yellow\"\n    },\n    {\n      \"id\": \"BR-003\",\n      \"name\": \"绩效系数在合理范围\",\n      \"condition\": \"绩效系数 >= 0.5 AND 绩效系数 <= 1.5\",\n      \"description\": \"绩效系数应在0.5~1.5之间\",\n      \"severity\": \"yellow\"\n    },\n    {\n      \"id\": \"BR-004\",\n      \"name\": \"班天数不超过计薪天数\",\n      \"condition\": \"班天数合计 <= 实际计薪出勤天数\",\n      \"description\": \"排班天数合计不应超过实际计薪出勤天数\",\n      \"severity\": \"yellow\"\n    },\n    {\n      \"id\": \"BR-005\",\n      \"name\": \"轮班天数不超过计薪天数\",\n      \"condition\": \"C1&C2班天数 + C班天数 + D班天数 <= 实际计薪出勤天数\",\n      \"description\": \"C1&C2班天数+C班天数+D班天数不应超过实际计薪出勤天数\",\n      \"severity\": \"red\"\n    }\n  ],\n  \"person_analysis_exclusions\": {\n    \"离职\": {\n      \"field\": \"离职日期\",\n      \"condition\": \"离职日期 in 当月\",\n      \"note\": \"当月离职人员，工资因不满勤而下降属正常\"\n    },\n    \"新入职不满勤\": {\n      \"field\": \"入职日期\",\n      \"condition\": \"入职日期 in 上月 AND 上月不满勤\",\n      \"note\": \"上月新入职人员，上月不满勤导致基数偏低\"\n    },\n    \"转正\": {\n      \"field\": \"转正薪资生效日期\",\n      \"condition\": \"转正薪资生效日期 in [上月, 当月]\",\n      \"note\": \"转正导致标准工资变化属正常\"\n    },\n    \"调薪\": {\n      \"field\": \"调薪生效日期\",\n      \"condition\": \"调薪生效日期 in [上月, 当月]\",\n      \"note\": \"调薪导致标准工资变化属正常\"\n    },\n    \"请假\": {\n      \"field\": \"请假天数\",\n      \"condition\": \"病假 > 2 OR 事假 > 2\",\n      \"note\": \"请假导致计薪天数下降属正常\"\n    },\n    \"多主体发薪\": {\n      \"field\": \"工号\",\n      \"condition\": \"同一工号在多个公司主体出现\",\n      \"note\": \"多主体发薪人员不应直接对比单一主体工资\"\n    }\n  },\n  \"required_fields\": {\n    \"基础信息\": [\n      \"发薪月\",\n      \"公司主体\",\n      \"姓名代号\",\n      \"工号\"\n    ],\n    \"人员变动\": [\n      \"入职日期\"\n    ],\n    \"工资变动\": [\n    ],\n    \"出勤\": [\n      \"实际计薪出勤天数\",\n      \"实际出勤工资小计\",\n      \"应计薪出勤天数\"\n    ],\n    \"绩效\": [\n      \"绩效系数\",\n      \"实际绩效工资\"\n    ],\n    \"福利补贴\": [\n      \"标准福利\",\n      \"通讯补贴\",\n      \"电脑补贴\",\n      \"交通补贴\",\n      \"住房补贴\",\n      \"约定补贴\",\n      \"餐补\",\n      \"实际出勤福利小计\",\n      \"轮班补贴\"\n    ],\n    \"加班\": [\n      \"加班费小计\",\n      \"平时加班时数\",\n      \"周末加班时数\",\n      \"法定加班时数\"\n    ],\n    \"奖金提成\": [\n      \"业务线奖金合计\",\n      \"提成&其他&奖金\",\n      \"补发\",\n      \"其他扣减\"\n    ],\n    \"应发项\": [\n      \"标准基本工资\",\n      \"标准绩效工资\",\n      \"应计薪出勤天数\",\n      \"实际计薪出勤天数\",\n      \"实际出勤工资小计\",\n      \"绩效系数\",\n      \"实际绩效工资\",\n      \"实际出勤福利小计\",\n      \"轮班补贴\",\n      \"C1&C2班天数\",\n      \"C班天数\",\n      \"D班天数\",\n      \"加班费小计\",\n      \"业务线奖金合计\",\n      \"提成&其他&奖金\",\n      \"补发\",\n      \"其他扣减\",\n      \"应发合计\"\n    ],\n    \"实发代扣项\": [\n      \"个人社保\",\n      \"个人公积金\",\n      \"个人所得税\",\n      \"税后扣减项\",\n      \"个人住宿扣款\",\n      \"个人承担社保差额\",\n      \"个人承担公积金差额\",\n      \"经济补偿金\"\n    ],\n    \"最终结果\": [\n      \"应发合计\",\n      \"实发金额合计\"\n    ],\n    \"社保公积金\": [\n      \"个人社保\",\n      \"个人公积金\"\n    ],\n    \"代扣税\": [\n      \"个人所得税\",\n      \"税后扣减项\",\n      \"个人住宿扣款\",\n      \"个人承担社保差额\",\n      \"个人承担公积金差额\",\n      \"经济补偿金\"\n    ],\n    \"请假\": [\n      \"病假（天）\",\n      \"事假（天）\"\n    ]\n  }\n}\n\nFile v7.4.0:_delivery/02_report_v6.md\n\n# 📋 工资审核报告 v6.0\n\n**审核时间**: 2026-06-05 16:13:26  \n**规则版本**: 7.0.0  \n**数据量**: 947 人  \n**审核结论**: 🔴 存在红线异常，禁止出报告\n\n## 📊 审核结论汇总表\n\n| 维度 | 规则ID | 检查数 | 通过数 | 异常数 | 通过率 | 结论 |\n|------|--------|--------|--------|--------|--------|------|\n| 字段完整性 | FC-001 | 65 | 65 | 0 | 100.0% | ✅ 通过 |\n| 应发合计校验 | FR-001 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n| 实发合计校验 | FR-002 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n| 出勤工资校验 | FR-003 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n| 计薪天数校验 | FR-004 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | RL-001 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | RL-002 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | RL-003 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | RL-004 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | RL-005 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | RL-006 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | RL-007 | 947 | 806 | 141 | 85.1% | 🔴 阻断 |\n|  | YL-001 | 947 | 943 | 4 | 99.6% | 🟠 异常 |\n|  | YL-002 | 947 | 943 | 4 | 99.6% | 🟠 异常 |\n|  | YL-003 | 947 | 944 | 3 | 99.7% | 🟠 异常 |\n|  | YL-004 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | YL-005 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | YL-006 | 947 | 804 | 143 | 84.9% | 🟠 异常 |\n|  | BL-001 | 947 | 816 | 131 | 86.2% | 🔵 提示 |\n|  | BL-002 | 947 | 778 | 169 | 82.2% | 🔵 提示 |\n|  | BL-003 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | BL-004 | 947 | 621 | 326 | 65.6% | 🔵 提示 |\n| 15号后入职当月不缴社保公积金 |  | 445 | 445 | 0 | 100.0% | ✅ 通过 |\n| 实习生/保洁豁免社保公积金 |  | 50 | 50 | 0 | 100.0% | ✅ 通过 |\n| 离职当月社保公积金缴纳规则 |  | 6 | 6 | 0 | 100.0% | ✅ 通过 |\n| 道旅国际-社保豁免 |  | 11 | 11 | 0 | 100.0% | ✅ 通过 |\n| 道旅国际-公积金豁免 |  | 11 | 11 | 0 | 100.0% | ✅ 通过 |\n|  | BR-001 | 947 | 32 | 915 | 3.4% | 🟠 异常 |\n|  | BR-002 | 947 | 0 | 947 | 0.0% | 🟠 异常 |\n|  | BR-003 | 947 | 0 | 947 | 0.0% | 🟠 异常 |\n|  | BR-004 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | BR-005 | 947 | 945 | 2 | 99.8% | 🟠 异常 |\n\n## 📝 审核结论与数据支撑\n\n**异常项（需核实）：**\n- ❌ 红线 标准工资三字段变化无记录：141人异常，检查947人\n- ❌ 黄线 绩效系数过高：4人异常，检查947人\n- ❌ 黄线 绩效系数过低：4人异常，检查947人\n- ❌ 黄线 绩效系数月度波动大：3人异常，检查947人\n- ❌ 黄线 标准工资无依据变化：143人异常，检查947人\n- ❌ 业务规则 出勤工资不超过标准工资：915人异常，检查947人\n- ❌ 业务规则 出勤天数不超过应出勤天数：947人异常，检查947人\n- ❌ 业务规则 绩效系数在合理范围：947人异常，检查947人\n- ❌ 业务规则 轮班天数不超过计薪天数：2人异常，检查947人\n\n**通过项（数据支撑）：**\n- ✅ 字段完整性通过：65个必填字段全部存在，零缺失\n- ✅ 公式校验通过：947条记录全部在容差范围内，零误差\n- ✅ 公式校验通过：947条记录全部在容差范围内，零误差\n- ✅ 公式校验通过：947条记录全部在容差范围内，零误差\n- ✅ 公式校验通过：947条记录全部在容差范围内，零误差\n- ✅ 特殊政策执行通过：5项政策校验零违规\n- ✅ 总额环比正常：应发合计 从¥15,340,225→¥15,020,897，变化-2.1%，在±10%正常范围内\n- ✅ 总额环比正常：实发金额合计 从¥14,272,483→¥13,307,958，变化-6.8%，在±10%正常范围内\n- ✅ 总额环比正常：实际出勤工资小计 从¥10,943,185→¥11,250,835，变化+2.8%，在±10%正常范围内\n- ✅ 总额环比正常：实际绩效工资 从¥2,847,352→¥2,847,173，变化-0.0%，在±10%正常范围内\n\n## 📈 总额环比分析\n\n| 指标 | 本月 | 上月 | 变化率 | 状态 |\n|------|------|------|--------|------|\n| 人数 | 947 | 954 | -0.7% | ✅ 正常 |\n| 应发合计 | ¥15,020,897 | ¥15,340,225 | -2.1% | ✅ |\n| 实发金额合计 | ¥13,307,958 | ¥14,272,483 | -6.8% | ✅ |\n| 实际出勤工资小计 | ¥11,250,835 | ¥10,943,185 | +2.8% | ✅ |\n| 实际绩效工资 | ¥2,847,173 | ¥2,847,352 | -0.0% | ✅ |\n| 加班费小计 | ¥92,748 | ¥1,202 | +7617.5% | ⚠️ |\n| 业务线奖金合计 | ¥42,770 | ¥952,910 | -95.5% | ⚠️ |\n| 提成&其他&奖金 | ¥290,518 | ¥362,797 | -19.9% | ⚠️ |\n| 补发 | ¥260,654 | ¥159 | +164195.0% | ⚠️ |\n\n---\n*由 payroll-data-audit v6.0 自动生成 | 全量对齐 SOP | 关联文件: data_index.json + kanban.html*\n\nFile v7.4.0:_delivery/02_report.md\n\n# 📋 工资审核报告\n\n**审核时间**: 2026-06-05 16:13:26  \n**规则版本**: 7.0.0  \n**数据量**: 947 人  \n**审核结论**: 🔴 存在红线异常，禁止出报告\n\n## 📝 审核结论与数据支撑\n\n**异常项（需核实）：**\n- ❌ 🔴 标准工资三字段变化无记录：141人触发，共检查947人\n- ❌ ⚠️ 绩效系数过高：4人触发，共检查947人\n- ❌ ⚠️ 绩效系数过低：4人触发，共检查947人\n- ❌ ⚠️ 绩效系数月度波动大：3人触发，共检查947人\n- ❌ ⚠️ 标准工资无依据变化：143人触发，共检查947人\n- ❌ 📐 出勤工资不超过标准工资：915人异常，共检查947人\n- ❌ 📐 出勤天数不超过应出勤天数：947人异常，共检查947人\n- ❌ 📐 绩效系数在合理范围：947人异常，共检查947人\n- ❌ 📐 轮班天数不超过计薪天数：2人异常，共检查947人\n\n**通过项（数据支撑）：**\n- ✅ 公式校验通过：947条记录全部在容差范围内，零误差\n- ✅ 公式校验通过：947条记录全部在容差范围内，零误差\n- ✅ 公式校验通过：947条记录全部在容差范围内，零误差\n- ✅ 公式校验通过：947条记录全部在容差范围内，零误差\n- ✅ 字段完整性通过：65个必填字段全部存在，零缺失\n- ✅ 特殊政策执行通过：5项政策校验零违规\n- ✅ 总额环比正常：应发合计 从¥15,340,225→¥15,020,897，变化-2.1%，在±10%正常范围内\n- ✅ 总额环比正常：实发金额合计 从¥14,272,483→¥13,307,958，变化-6.8%，在±10%正常范围内\n- ✅ 总额环比正常：实际出勤工资小计 从¥10,943,185→¥11,250,835，变化+2.8%，在±10%正常范围内\n- ✅ 总额环比正常：实际绩效工资 从¥2,847,352→¥2,847,173，变化-0.0%，在±10%正常范围内\n\n## 👥 1. 基础数据概览\n\n| 指标 | 本月 | 上月 | 变化 |\n|------|------|------|------|\n| 人数 | 947 | 954 | -0.7% |\n| 应发合计 | ¥15,020,897 | ¥15,340,225 | -2.1% |\n| 实发金额合计 | ¥13,307,958 | ¥14,272,483 | -6.8% |\n| 实际出勤工资小计 | ¥11,250,835 | ¥10,943,185 | +2.8% |\n| 实际绩效工资 | ¥2,847,173 | ¥2,847,352 | -0.0% |\n| 加班费小计 | ¥92,748 | ¥1,202 | +7617.5% |\n| 业务线奖金合计 | ¥42,770 | ¥952,910 | -95.5% |\n| 提成&其他&奖金 | ¥290,518 | ¥362,797 | -19.9% |\n| 补发 | ¥260,654 | ¥159 | +164195.0% |\n\n## 🏛️ 2. 特殊政策执行情况\n\n- ✅ 15号后入职当月不缴社保公积金 (符合条件445人，违规0人)\n- ✅ 实习生/保洁豁免社保公积金 (符合条件50人，违规0人)\n- ✅ 离职当月社保公积金缴纳规则 (符合条件6人，违规0人)\n- ✅ 道旅国际-社保豁免 (符合条件11人，违规0人)\n- ✅ 道旅国际-公积金豁免 (符合条件11人，违规0人)\n\n## 🔍 3. 异常数据扫描结果\n\n### 🔴 红线异常（必须核实）\n\n**标准工资三字段变化无记录** (141人触发 / 共947人)\n- 128671De2Ml4(5): 43888.47\n- 895922Sx4St1(7): 39543.02\n- 150669Lv7Rk2(16): 41493.02\n- 964730Rn2Ru5(19): 24161.72\n- 620006La1Tm2(28): 24793.02\n- 905144Qi7Ey8(42): 29543.02\n- 643796Pl1Gt3(51): 21355.1\n- 598353He2Yv9(67): 35943.02\n- 785932Yx6Fx3(109): 24125.18\n- 157927Sl6Er2(214): 24243.02\n- 516628Zx4Rk3(255): 21393.02\n- 608716Lv4Na3(267): 28193.02\n- 160718Ze5Ko1(296): 54190.63\n- 875611Jr9Gd6(320): 26743.02\n- 879265Ph8Ta0(457): 17586.15\n- 641792Ck9Yi4(452): 21912.77\n- 482269Ma5Sh4(461): 23193.01\n- 220828Ux6Ec4(466): 17433.02\n- 802239Co5Lt3(473): 22293.02\n- 446494Ug8Fy7(477): 25417.22\n\n### ⚠️ 黄线异常（关注核实）\n\n**绩效系数过高** (4人触发)\n  - 812248Fd9Er4(541), 919637Sc8Xg2(607), 512791Mh2Rt5(115), 336523Vz6Gb9(674)\n\n**绩效系数过低** (4人触发)\n  - 130032Bp7Vd3(338), 603178Ww0Be7(706), 539775Ic0Kw3(1105), 481204Bp0Qc5(467)\n\n**绩效系数月度波动大** (3人触发)\n  - 491087Ak6Wa8(65), 481204Bp0Qc5(467), 790066Ae7Cx7(1592)\n\n**标准工资无依据变化** (143人触发)\n  - 425269Wa0Wr3(1), 100776Wz9Jx4(3), 128671De2Ml4(5), 895922Sx4St1(7), 150669Lv7Rk2(16), 964730Rn2Ru5(19), 620006La1Tm2(28), 905144Qi7Ey8(42), 643796Pl1Gt3(51), 598353He2Yv9(67)\n\n### ℹ️ 蓝线波动（了解即可）\n\n- 业务线奖金波动 (131人)\n- 加班费波动 (169人)\n- 提成波动 (326人)\n\n## 📈 4. 总额分析\n\n| 计薪项 | 本月总额 | 上月总额 | 变化率 | 状态 |\n|--------|---------|---------|--------|------|\n| 应发合计 | ¥15,020,897 | ¥15,340,225 | -2.1% | ✅ |\n| 实发金额合计 | ¥13,307,958 | ¥14,272,483 | -6.8% | ✅ |\n| 实际出勤工资小计 | ¥11,250,835 | ¥10,943,185 | +2.8% | ✅ |\n| 实际绩效工资 | ¥2,847,173 | ¥2,847,352 | -0.0% | ✅ |\n| 加班费小计 | ¥92,748 | ¥1,202 | +7617.5% | ⚠️ |\n| 业务线奖金合计 | ¥42,770 | ¥952,910 | -95.5% | ⚠️ |\n| 提成&其他&奖金 | ¥290,518 | ¥362,797 | -19.9% | ⚠️ |\n| 补发 | ¥260,654 | ¥159 | +164195.0% | ⚠️ |\n\n## 📐 公式校验 & 字段完整性\n\n| 公式 | 检查数 | 通过 | 失败 |\n|------|--------|------|------|\n| ✅ 应发合计校验 | 947 | 947 | 0 |\n| ✅ 实发合计校验 | 947 | 947 | 0 |\n| ✅ 出勤工资校验 | 947 | 947 | 0 |\n| ✅ 计薪天数校验 | 947 | 947 | 0 |\n\n**字段完整性**: 检查65个字段，缺失0个，格式错误0个\n\n---\n*由 payroll-data-audit v5.1 自动生成 | 全量对齐 SOP v1.0*\n\nFile v7.4.0:_delivery/03_kanban.md\n\n# 📋 工资审核清单看板\n\n**审核时间**: 2026-06-05T16:13:26.249840  \n**检查记录**: 947 条  \n**版本**: 7.0.0  \n\n## 📊 审核概览\n\n| 指标 | 数值 |\n|------|------|\n| 审核条目总数 | 32 |\n| ✅ 通过 | 20 |\n| 🟠 异常 | 8 |\n| 🔴 阻断 | 1 |\n| 🔵 提示 | 3 |\n| 综合通过率 | 87.7% |\n\n## 📋 审核清单明细\n\n| # | 类别 | 规则ID | 审核条目 | 结果 | 检查数 | 通过 | 异常 | 通过率 | 数据依据 | 处理建议 |\n|---|------|--------|---------|------|--------|------|------|--------|---------|---------|\n| 1 | 字段完整性 | FC-001 | 必填字段检查 | ✅ 通过 | 947 | 947 | 0 | 100% | 检查 65 个字段，全部完整且格式正确 | 无需操作 |\n| 2 | 公式校验 | FR-001 | 应发合计校验 | ✅ 通过 | 947 | 947 | 0 | 100.0% | 947条记录中全部通过，容差0.01元 | 无需操作 |\n| 3 | 公式校验 | FR-002 | 实发合计校验 | ✅ 通过 | 947 | 947 | 0 | 100.0% | 947条记录中全部通过，容差0.01元 | 无需操作 |\n| 4 | 公式校验 | FR-003 | 出勤工资校验 | ✅ 通过 | 947 | 947 | 0 | 100.0% | 947条记录中全部通过，容差0.01元 | 无需操作 |\n| 5 | 公式校验 | FR-004 | 计薪天数校验 | ✅ 通过 | 947 | 947 | 0 | 100.0% | 947条记录中全部通过，容差0.01元 | 无需操作 |\n| 6 | 业务规则 | BR-001 | 出勤工资不超过标准工资 | 🟠 异常 | 947 | 32 | 915 | 3.4% | 947条记录中915条触发业务规则异常 | 核实: 425269Wa0Wr3(1); 100776Wz9Jx4(3); 313161Hq4Dj6(4); 128671De2Ml4(5); 334147Fa... |\n| 7 | 业务规则 | BR-002 | 出勤天数不超过应出勤天数 | 🟠 异常 | 947 | 0 | 947 | 0.0% | 947条记录中947条触发业务规则异常 | 核实: 425269Wa0Wr3(1); 100776Wz9Jx4(3); 313161Hq4Dj6(4); 128671De2Ml4(5); 334147Fa... |\n| 8 | 业务规则 | BR-003 | 绩效系数在合理范围 | 🟠 异常 | 947 | 0 | 947 | 0.0% | 947条记录中947条触发业务规则异常 | 核实: 425269Wa0Wr3(1); 100776Wz9Jx4(3); 313161Hq4Dj6(4); 128671De2Ml4(5); 334147Fa... |\n| 9 | 业务规则 | BR-004 | 班天数不超过计薪天数 | ✅ 通过 | 947 | 947 | 0 | 100.0% | 947条记录中全部符合业务规则 | 无需操作 |\n| 10 | 业务规则 | BR-005 | 轮班天数不超过计薪天数 | 🟠 异常 | 947 | 945 | 2 | 99.8% | 947条记录中2条触发业务规则异常 | 核实: 847238Vf1Cg1(570); 388095Mf1Ay6(913) |\n| 11 | 红线 | RL-001 |  | ✅ 通过 | 947 | 947 | 0 | 100.0% | 947条记录中全部通过红线校验 | 无需操作 |\n| 12 | 红线 | RL-002 |  | ✅ 通过 | 947 | 947 | 0 | 100.0% | 947条记录中全部通过红线校验 | 无需操作 |\n| 13 | 红线 | RL-003 |  | ✅ 通过 | 947 | 947 | 0 | 100.0% | 947条记录中全部通过红线校验 | 无需操作 |\n| 14 | 红线 | RL-004 |  | ✅ 通过 | 947 | 947 | 0 | 100.0% | 947条记录中全部通过红线校验 | 无需操作 |\n| 15 | 红线 | RL-005 |  | ✅ 通过 | 947 | 947 | 0 | 100.0% | 947条记录中全部通过红线校验 | 无需操作 |\n| 16 | 红线 | RL-006 |  | ✅ 通过 | 947 | 947 | 0 | 100.0% | 947条记录中全部通过红线校验 | 无需操作 |\n| 17 | 红线 | RL-007 |  | 🔴 阻断 | 947 | 806 | 141 | 85.1% | 947条记录中141条触发红线（严重违规） | 立即核实并修正: 128671De2Ml4(5)=43888.47; 895922Sx4St1(7)=39543.02; 150669Lv7Rk2(16)=41... |\n| 18 | 黄线 | YL-001 |  | 🟠 异常 | 947 | 943 | 4 | 99.6% | 947条记录中4条需核实 | 核实以下人员: 核实: 812248Fd9Er4(541); 919637Sc8Xg2(607); 512791Mh2Rt5(115); 336523Vz6Gb... |\n| 19 | 黄线 | YL-002 |  | 🟠 异常 | 947 | 943 | 4 | 99.6% | 947条记录中4条需核实 | 核实以下人员: 核实: 130032Bp7Vd3(338); 603178Ww0Be7(706); 539775Ic0Kw3(1105); 481204Bp0Q... |\n| 20 | 黄线 | YL-003 |  | 🟠 异常 | 947 | 944 | 3 | 99.7% | 947条记录中3条需核实 | 核实以下人员: 核实: 491087Ak6Wa8(65); 481204Bp0Qc5(467); 790066Ae7Cx7(1592) |\n| 21 | 黄线 | YL-004 |  | ✅ 通过 | 947 | 947 | 0 | 100.0% | 947条记录中全部正常 | 无需操作 |\n| 22 | 黄线 | YL-005 |  | ✅ 通过 | 947 | 947 | 0 | 100.0% | 947条记录中全部正常 | 无需操作 |\n| 23 | 黄线 | YL-006 |  | 🟠 异常 | 947 | 804 | 143 | 84.9% | 947条记录中143条需核实 | 核实以下人员: 核实: 425269Wa0Wr3(1); 100776Wz9Jx4(3); 128671De2Ml4(5); 895922Sx4St1(7); ... |\n| 24 | 蓝线 | BL-001 |  | 🔵 提示 | 947 | 816 | 131 | 86.2% | 947条记录中131条有波动趋势（正常范围） | 关注趋势变化 |\n| 25 | 蓝线 | BL-002 |  | 🔵 提示 | 947 | 778 | 169 | 82.2% | 947条记录中169条有波动趋势（正常范围） | 关注趋势变化 |\n| 26 | 蓝线 | BL-003 |  | ✅ 通过 | 947 | 947 | 0 | 100.0% | 947条记录中无异常波动 | 无需操作 |\n| 27 | 蓝线 | BL-004 |  | 🔵 提示 | 947 | 621 | 326 | 65.6% | 947条记录中326条有波动趋势（正常范围） | 关注趋势变化 |\n| 28 | 政策校验 |  |  | ✅ 通过 | 947 | 947 | 0 | 100.0% | 947条记录中全部符合政策规定 | 无需操作 |\n| 29 | 政策校验 |  |  | ✅ 通过 | 947 | 947 | 0 | 100.0% | 947条记录中全部符合政策规定 | 无需操作 |\n| 30 | 政策校验 |  |  | ✅ 通过 | 947 | 947 | 0 | 100.0% | 947条记录中全部符合政策规定 | 无需操作 |\n| 31 | 政策校验 |  |  | ✅ 通过 | 947 | 947 | 0 | 100.0% | 947条记录中全部符合政策规定 | 无需操作 |\n| 32 | 政策校验 |  |  | ✅ 通过 | 947 | 947 | 0 | 100.0% | 947条记录中全部符合政策规定 | 无需操作 |\n\n---\n*工资审核清单看板 v5.3 | 基于确定性规则引擎生成 | 每个审核结论均有数据依据*\n\nFile v7.4.0:_delivery/05_issue_report.md\n\n# 审核问题报告清单\n\n**生成时间**: 2026-06-05 16:13:27\n**总问题数**: 26\n**P0(红线)**: 10\n**P1(预警)**: 16\n\n---\n\n## 问题列表\n\n| 序号 | 阶段 | 严重级别 | 问题 | 详情 | 建议行动 |\n|------|------|---------|------|------|---------|\n| 1 | 红线扫描 | 🔴 P0 | RL-007: 标准工资三字段变化无记录 | 128671De2Ml4(5):  | 立即核实并修正数据 |\n| 2 | 红线扫描 | 🔴 P0 | RL-007: 标准工资三字段变化无记录 | 895922Sx4St1(7):  | 立即核实并修正数据 |\n| 3 | 红线扫描 | 🔴 P0 | RL-007: 标准工资三字段变化无记录 | 150669Lv7Rk2(16):  | 立即核实并修正数据 |\n| 4 | 红线扫描 | 🔴 P0 | RL-007: 标准工资三字段变化无记录 | 964730Rn2Ru5(19):  | 立即核实并修正数据 |\n| 5 | 红线扫描 | 🔴 P0 | RL-007: 标准工资三字段变化无记录 | 620006La1Tm2(28):  | 立即核实并修正数据 |\n| 6 | 红线扫描 | 🔴 P0 | RL-007: 标准工资三字段变化无记录 | 905144Qi7Ey8(42):  | 立即核实并修正数据 |\n| 7 | 红线扫描 | 🔴 P0 | RL-007: 标准工资三字段变化无记录 | 643796Pl1Gt3(51):  | 立即核实并修正数据 |\n| 8 | 红线扫描 | 🔴 P0 | RL-007: 标准工资三字段变化无记录 | 598353He2Yv9(67):  | 立即核实并修正数据 |\n| 9 | 红线扫描 | 🔴 P0 | RL-007: 标准工资三字段变化无记录 | 785932Yx6Fx3(109):  | 立即核实并修正数据 |\n| 10 | 红线扫描 | 🔴 P0 | RL-007: 标准工资三字段变化无记录 | 157927Sl6Er2(214):  | 立即核实并修正数据 |\n| 11 | 黄线扫描 | 🟠 P1 | YL-001: 绩效系数过高 | 812248Fd9Er4(541):  | 人工核实是否正常 |\n| 12 | 黄线扫描 | 🟠 P1 | YL-001: 绩效系数过高 | 919637Sc8Xg2(607):  | 人工核实是否正常 |\n| 13 | 黄线扫描 | 🟠 P1 | YL-001: 绩效系数过高 | 512791Mh2Rt5(115):  | 人工核实是否正常 |\n| 14 | 黄线扫描 | 🟠 P1 | YL-001: 绩效系数过高 | 336523Vz6Gb9(674):  | 人工核实是否正常 |\n| 15 | 黄线扫描 | 🟠 P1 | YL-002: 绩效系数过低 | 130032Bp7Vd3(338):  | 人工核实是否正常 |\n| 16 | 黄线扫描 | 🟠 P1 | YL-002: 绩效系数过低 | 603178Ww0Be7(706):  | 人工核实是否正常 |\n| 17 | 黄线扫描 | 🟠 P1 | YL-002: 绩效系数过低 | 539775Ic0Kw3(1105):  | 人工核实是否正常 |\n| 18 | 黄线扫描 | 🟠 P1 | YL-002: 绩效系数过低 | 481204Bp0Qc5(467):  | 人工核实是否正常 |\n| 19 | 黄线扫描 | 🟠 P1 | YL-003: 绩效系数月度波动大 | 491087Ak6Wa8(65):  | 人工核实是否正常 |\n| 20 | 黄线扫描 | 🟠 P1 | YL-003: 绩效系数月度波动大 | 481204Bp0Qc5(467):  | 人工核实是否正常 |\n| 21 | 黄线扫描 | 🟠 P1 | YL-003: 绩效系数月度波动大 | 790066Ae7Cx7(1592):  | 人工核实是否正常 |\n| 22 | 黄线扫描 | 🟠 P1 | YL-006: 标准工资无依据变化 | 425269Wa0Wr3(1):  | 人工核实是否正常 |\n| 23 | 黄线扫描 | 🟠 P1 | YL-006: 标准工资无依据变化 | 100776Wz9Jx4(3):  | 人工核实是否正常 |\n| 24 | 黄线扫描 | 🟠 P1 | YL-006: 标准工资无依据变化 | 128671De2Ml4(5):  | 人工核实是否正常 |\n| 25 | 黄线扫描 | 🟠 P1 | YL-006: 标准工资无依据变化 | 895922Sx4St1(7):  | 人工核实是否正常 |\n| 26 | 黄线扫描 | 🟠 P1 | YL-006: 标准工资无依据变化 | 150669Lv7Rk2(16):  | 人工核实是否正常 |\n\n---\n\n## 按阶段汇总\n\n| 阶段 | P0 | P1 | 总计 |\n|------|----|----|-----|\n| 红线扫描 | 10 | 0 | 10 |\n| 黄线扫描 | 0 | 16 | 16 |\n\n---\n\n> 本清单由 `run_full_pipeline.py` 自动生成。\n> 所有问题已记录，请逐项核实后处理。\n\nFile v7.4.0:_delivery/audit_summary.md\n\n# 审核结论摘要\n\n**审核时间**: 2026-06-05T16:13:26.249840\n**审核版本**: 7.0.0\n**审核范围**: 947 条记录\n\n## 总体结论\n\n🔴 **审核未通过** - 触发 141 条红线，需要立即处理。\n\n## 审核维度\n\n| 维度 | 结果 |\n|------|------|\n| 🔴 红线 | 141 条触发 |\n| ⚠️  黄线 | 154 条触发 |\n| ℹ️  蓝线 | 626 条提示 |\n| 📐 公式校验 | 通过 ✅ |\n| 📋 字段检查 | 通过 ✅ |\n\n## 详细报告\n\n请查阅以下文件获取完整信息：\n- `06_master_report.html` - 总审核报告（一份看全）\n- `03_kanban_v6.html` - 动态交互看板（筛选/排序/导出）\n- `05_issue_report.md` - 问题清单（逐项跟进）\n\nFile v7.4.0:_delivery/delivery_message.md\n\n**📊 工资审核报告 — 完整交付**\n\n**审核范围**：947人\n\n### 总体结论\n🔴 **审核未通过** — 触发 141 条红线，需要立即处理。\n\n| 维度 | 结果 |\n|------|------|\n| 📐 公式校验 | ✅ 通过 |\n| 📋 字段检查 | ✅ 通过 |\n| 🔴 红线 | 141 条 |\n| ⚠️ 黄线 | 154 条 |\n| ℹ️ 蓝线 | 626 条 |\n\n### 📎 交付文件清单\n\n**📄 飞书文档（在线查看）：**\nhttps://didatravel.feishu.cn/docx/ZCNPdzmyToS690xSmK2cGjVsnFe\n\n**📁 云盘文件（11/11 个）：**\n- 00_data_scan.json — 数据扫描确认\n- 01_audit_result.json — 审核结果\n- 02_report_v6.html — 表格化审核报告（推荐）\n- 02_report_v6.md — Markdown 审核报告\n- 02a_data_index.json — 数据支撑索引\n- 03_kanban_v6.html — 动态交互看板（推荐）\n- 03_kanban.md — Markdown 审核清单\n- 04_sampling_verify.json — 抽样校验结果\n- 05_issue_report.md — 问题清单\n- 06_master_report.html — 总审核报告\n- audit_summary.md — 审核结论摘要（自动生成）\n\n### 📊 总额环比\n- 应发合计：15,340,225 → 15,020,897 (-2.1%)\n- 实发金额合计：14,272,483 → 13,307,958 (-6.8%)\n- 实际出勤工资小计：10,943,185 → 11,250,835 (+2.8%)\n- 实际绩效工资：2,847,352 → 2,847,173 (-0.0%)\n- 加班费小计：1,202 → 92,748 (+7617.5%) ⚠️\n- 业务线奖金合计：952,910 → 42,770 (-95.5%) ⚠️\n- 提成&其他&奖金：362,797 → 290,518 (-19.9%) ⚠️\n- 补发：159 → 260,654 (+164195.0%) ⚠️\n\n---\n*由 payroll-data-audit 自动交付 | 时间: 2026-06-05 16:44:12*\n\nFile v7.4.0:_send/05_issue_report.md\n\n# 审核问题报告清单\n\n**生成时间**: 2026-06-05 16:13:27\n**总问题数**: 26\n**P0(红线)**: 10\n**P1(预警)**: 16\n\n---\n\n## 问题列表\n\n| 序号 | 阶段 | 严重级别 | 问题 | 详情 | 建议行动 |\n|------|------|---------|------|------|---------|\n| 1 | 红线扫描 | 🔴 P0 | RL-007: 标准工资三字段变化无记录 | 128671De2Ml4(5):  | 立即核实并修正数据 |\n| 2 | 红线扫描 | 🔴 P0 | RL-007: 标准工资三字段变化无记录 | 895922Sx4St1(7):  | 立即核实并修正数据 |\n| 3 | 红线扫描 | 🔴 P0 | RL-007: 标准工资三字段变化无记录 | 150669Lv7Rk2(16):  | 立即核实并修正数据 |\n| 4 | 红线扫描 | 🔴 P0 | RL-007: 标准工资三字段变化无记录 | 964730Rn2Ru5(19):  | 立即核实并修正数据 |\n| 5 | 红线扫描 | 🔴 P0 | RL-007: 标准工资三字段变化无记录 | 620006La1Tm2(28):  | 立即核实并修正数据 |\n| 6 | 红线扫描 | 🔴 P0 | RL-007: 标准工资三字段变化无记录 | 905144Qi7Ey8(42):  | 立即核实并修正数据 |\n| 7 | 红线扫描 | 🔴 P0 | RL-007: 标准工资三字段变化无记录 | 643796Pl1Gt3(51):  | 立即核实并修正数据 |\n| 8 | 红线扫描 | 🔴 P0 | RL-007: 标准工资三字段变化无记录 | 598353He2Yv9(67):  | 立即核实并修正数据 |\n| 9 | 红线扫描 | 🔴 P0 | RL-007: 标准工资三字段变化无记录 | 785932Yx6Fx3(109):  | 立即核实并修正数据 |\n| 10 | 红线扫描 | 🔴 P0 | RL-007: 标准工资三字段变化无记录 | 157927Sl6Er2(214):  | 立即核实并修正数据 |\n| 11 | 黄线扫描 | 🟠 P1 | YL-001: 绩效系数过高 | 812248Fd9Er4(541):  | 人工核实是否正常 |\n| 12 | 黄线扫描 | 🟠 P1 | YL-001: 绩效系数过高 | 919637Sc8Xg2(607):  | 人工核实是否正常 |\n| 13 | 黄线扫描 | 🟠 P1 | YL-001: 绩效系数过高 | 512791Mh2Rt5(115):  | 人工核实是否正常 |\n| 14 | 黄线扫描 | 🟠 P1 | YL-001: 绩效系数过高 | 336523Vz6Gb9(674):  | 人工核实是否正常 |\n| 15 | 黄线扫描 | 🟠 P1 | YL-002: 绩效系数过低 | 130032Bp7Vd3(338):  | 人工核实是否正常 |\n| 16 | 黄线扫描 | 🟠 P1 | YL-002: 绩效系数过低 | 603178Ww0Be7(706):  | 人工核实是否正常 |\n| 17 | 黄线扫描 | 🟠 P1 | YL-002: 绩效系数过低 | 539775Ic0Kw3(1105):  | 人工核实是否正常 |\n| 18 | 黄线扫描 | 🟠 P1 | YL-002: 绩效系数过低 | 481204Bp0Qc5(467):  | 人工核实是否正常 |\n| 19 | 黄线扫描 | 🟠 P1 | YL-003: 绩效系数月度波动大 | 491087Ak6Wa8(65):  | 人工核实是否正常 |\n| 20 | 黄线扫描 | 🟠 P1 | YL-003: 绩效系数月度波动大 | 481204Bp0Qc5(467):  | 人工核实是否正常 |\n| 21 | 黄线扫描 | 🟠 P1 | YL-003: 绩效系数月度波动大 | 790066Ae7Cx7(1592):  | 人工核实是否正常 |\n| 22 | 黄线扫描 | 🟠 P1 | YL-006: 标准工资无依据变化 | 425269Wa0Wr3(1):  | 人工核实是否正常 |\n| 23 | 黄线扫描 | 🟠 P1 | YL-006: 标准工资无依据变化 | 100776Wz9Jx4(3):  | 人工核实是否正常 |\n| 24 | 黄线扫描 | 🟠 P1 | YL-006: 标准工资无依据变化 | 128671De2Ml4(5):  | 人工核实是否正常 |\n| 25 | 黄线扫描 | 🟠 P1 | YL-006: 标准工资无依据变化 | 895922Sx4St1(7):  | 人工核实是否正常 |\n| 26 | 黄线扫描 | 🟠 P1 | YL-006: 标准工资无依据变化 | 150669Lv7Rk2(16):  | 人工核实是否正常 |\n\n---\n\n## 按阶段汇总\n\n| 阶段 | P0 | P1 | 总计 |\n|------|----|----|-----|\n| 红线扫描 | 10 | 0 | 10 |\n| 黄线扫描 | 0 | 16 | 16 |\n\n---\n\n> 本清单由 `run_full_pipeline.py` 自动生成。\n> 所有问题已记录，请逐项核实后处理。\n\nFile v7.4.0:_send/delivery_message.md\n\n**📊 工资审核报告 — 完整交付**\n\n**审核范围**：947人\n\n### 总体结论\n🔴 **审核未通过** — 触发 141 条红线，需要立即处理。\n\n| 维度 | 结果 |\n|------|------|\n| 📐 公式校验 | ✅ 通过 |\n| 📋 字段检查 | ✅ 通过 |\n| 🔴 红线 | 141 条 |\n| ⚠️ 黄线 | 154 条 |\n| ℹ️ 蓝线 | 626 条 |\n\n### 📎 交付文件清单\n\n**📄 飞书文档（在线查看）：**\nhttps://didatravel.feishu.cn/docx/ZCNPdzmyToS690xSmK2cGjVsnFe\n\n**📁 云盘文件（11/11 个）：**\n- 00_data_scan.json — 数据扫描确认\n- 01_audit_result.json — 审核结果\n- 02_report_v6.html — 表格化审核报告（推荐）\n- 02_report_v6.md — Markdown 审核报告\n- 02a_data_index.json — 数据支撑索引\n- 03_kanban_v6.html — 动态交互看板（推荐）\n- 03_kanban.md — Markdown 审核清单\n- 04_sampling_verify.json — 抽样校验结果\n- 05_issue_report.md — 问题清单\n- 06_master_report.html — 总审核报告\n- audit_summary.md — 审核结论摘要（自动生成）\n\n### 📊 总额环比\n- 应发合计：15,340,225 → 15,020,897 (-2.1%)\n- 实发金额合计：14,272,483 → 13,307,958 (-6.8%)\n- 实际出勤工资小计：10,943,185 → 11,250,835 (+2.8%)\n- 实际绩效工资：2,847,352 → 2,847,173 (-0.0%)\n- 加班费小计：1,202 → 92,748 (+7617.5%) ⚠️\n- 业务线奖金合计：952,910 → 42,770 (-95.5%) ⚠️\n- 提成&其他&奖金：362,797 → 290,518 (-19.9%) ⚠️\n- 补发：159 → 260,654 (+164195.0%) ⚠️\n\n---\n*由 payroll-data-audit 自动交付 | 时间: 2026-06-05 16:44:12*\n\nFile v7.4.0:_upload_temp/02_report_v6.md\n\n# 📋 工资审核报告 v6.0\n\n**审核时间**: 2026-06-05 16:13:26  \n**规则版本**: 7.0.0  \n**数据量**: 947 人  \n**审核结论**: 🔴 存在红线异常，禁止出报告\n\n## 📊 审核结论汇总表\n\n| 维度 | 规则ID | 检查数 | 通过数 | 异常数 | 通过率 | 结论 |\n|------|--------|--------|--------|--------|--------|------|\n| 字段完整性 | FC-001 | 65 | 65 | 0 | 100.0% | ✅ 通过 |\n| 应发合计校验 | FR-001 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n| 实发合计校验 | FR-002 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n| 出勤工资校验 | FR-003 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n| 计薪天数校验 | FR-004 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | RL-001 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | RL-002 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | RL-003 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | RL-004 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | RL-005 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | RL-006 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | RL-007 | 947 | 806 | 141 | 85.1% | 🔴 阻断 |\n|  | YL-001 | 947 | 943 | 4 | 99.6% | 🟠 异常 |\n|  | YL-002 | 947 | 943 | 4 | 99.6% | 🟠 异常 |\n|  | YL-003 | 947 | 944 | 3 | 99.7% | 🟠 异常 |\n|  | YL-004 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | YL-005 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | YL-006 | 947 | 804 | 143 | 84.9% | 🟠 异常 |\n|  | BL-001 | 947 | 816 | 131 | 86.2% | 🔵 提示 |\n|  | BL-002 | 947 | 778 | 169 | 82.2% | 🔵 提示 |\n|  | BL-003 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | BL-004 | 947 | 621 | 326 | 65.6% | 🔵 提示 |\n| 15号后入职当月不缴社保公积金 |  | 445 | 445 | 0 | 100.0% | ✅ 通过 |\n| 实习生/保洁豁免社保公积金 |  | 50 | 50 | 0 | 100.0% | ✅ 通过 |\n| 离职当月社保公积金缴纳规则 |  | 6 | 6 | 0 | 100.0% | ✅ 通过 |\n| 道旅国际-社保豁免 |  | 11 | 11 | 0 | 100.0% | ✅ 通过 |\n| 道旅国际-公积金豁免 |  | 11 | 11 | 0 | 100.0% | ✅ 通过 |\n|  | BR-001 | 947 | 32 | 915 | 3.4% | 🟠 异常 |\n|  | BR-002 | 947 | 0 | 947 | 0.0% | 🟠 异常 |\n|  | BR-003 | 947 | 0 | 947 | 0.0% | 🟠 异常 |\n|  | BR-004 | 947 | 947 | 0 | 100.0% | ✅ 通过 |\n|  | BR-005 | 947 | 945 | 2 | 99.8% | 🟠 异常 |\n\n## 📝 审核结论与数据支撑\n\n**异常项（需核实）：**\n- ❌ 红线 标准工资三字段变化无记录：141人异常，检查947人\n- ❌ 黄线 绩效系数过高：4人异常，检查947人\n- ❌ 黄线 绩效系数过低：4人异常，检查947人\n- ❌ 黄线 绩效系数月度波动大：3人异常，检查947人\n- ❌ 黄线 标准工资无依据变化：143人异常，检查947人\n- ❌ 业务规则 出勤工资不超过标准工资：915人异常，检查947人\n- ❌ 业务规则 出勤天数不超过应出勤天数：947人异常，检查947人\n- ❌ 业务规则 绩效系数在合理范围：947人异常，检查947人\n- ❌ 业务规则 轮班天数不超过计薪天数：2人异常，检查947人\n\n**通过项（数据支撑）：**\n- ✅ 字段完整性通过：65个必填字段全部存在，零缺失\n- ✅ 公式校验通过：947条记录全部在容差范围内，零误差\n- ✅ 公式校验通过：947条记录全部在容差范围内，零误差\n- ✅ 公式校验通过：947条记录全部在容差范围内，零误差\n- ✅ 公式校验通过：947条记录全部在容差范围内，零误差\n- ✅ 特殊政策执行通过：5项政策校验零违规\n- ✅ 总额环比正常：应发合计 从¥15,340,225→¥15,020,897，变化-2.1%，在±10%正常范围内\n- ✅ 总额环比正常：实发金额合计 从¥14,272,483→¥13,307,958，变化-6.8%，在±10%正常范围内\n- ✅ 总额环比正常：实际出勤工资小计 从¥10,943,185→¥11,250,835，变化+2.8%，在±10%正常范围内\n- ✅ 总额环比正常：实际绩效工资 从¥2,847,352→¥2,847,173，变化-0.0%，在±10%正常范围内\n\n## 📈 总额环比分析\n\n| 指标 | 本月 | 上月 | 变化率 | 状态 |\n|------|------|------|--------|------|\n| 人数 | 947 | 954 | -0.7% | ✅ 正常 |\n| 应发合计 | ¥15,020,897 | ¥15,340,225 | -2.1% | ✅ |\n| 实发金额合计 | ¥13,307,958 | ¥14,272,483 | -6.8% | ✅ |\n| 实际出勤工资小计 | ¥11,250,835 | ¥10,943,185 | +2.8% | ✅ |\n| 实际绩效工资 | ¥2,847,173 | ¥2,847,352 | -0.0% | ✅ |\n| 加班费小计 | ¥92,748 | ¥1,202 | +7617.5% | ⚠️ |\n| 业务线奖金合计 | ¥42,770 | ¥952,910 | -95.5% | ⚠️ |\n| 提成&其他&奖金 | ¥290,518 | ¥362,797 | -19.9% | ⚠️ |\n| 补发 | ¥260,654 | ¥159 | +164195.0% | ⚠️ |\n\n---\n*由 payroll-data-audit v6.0 自动生成 | 全量对齐 SOP | 关联文件: data_index.json + kanban.html*\n\nArchive v7.3.0: 19 files, 98303 bytes\n\nFiles: _meta.json (137b), references/rules.json (15080b), requirements.txt (44b), scripts/data_scan.py (10846b), scripts/deliver_audit_files.py (6638b), scripts/generate_data_index.py (8007b), scripts/generate_kanban_v6.py (21021b), scripts/generate_kanban.py (22871b), scripts/generate_master_report.py (15225b), scripts/generate_report_v6.py (35295b), scripts/generate_report.py (33255b), scripts/rules_engine.py (78757b), scripts/run_audit.py (11747b), scripts/run_full_pipeline.py (23146b), scripts/sampling_verify.py (10751b), scripts/tests/test_parameterized.py (20378b), scripts/tests/test_rules_engine.py (19920b), skill-card.md (2425b), SKILL.md (21490b)\n\nFile v7.3.0:SKILL.md\n\n---\nname: payroll-data-audit\nversion: 7.3.0\ndescription: 工资数据审核系统，基于确定性规则引擎 + Python 脚本执行。\n  全量对齐《工资审核标准流程 SOP》6 步流程。v7.2 修复P0阻断bug：_get_pay_month() 支持\n  中文格式（\"2026年4月\"/\"2026年04月\"/\"202604\"），RL-003/RL-007 排除逻辑完全生效。\n  v7.1 修复5个P0阻断bug：全角/半角括号统一、RL-003状态列检查、RL-007新员工排除+上月1号调薪豁免、FR-003实习生排除、YL-006上月1号豁免。\n  v6.2 新增总审核报告（Master Report）、 规则判定过程详解（judgment）、黄线排除逻辑完善。\n  v6.2.1 新增编排指南：单节点原则。\n  Use when user asks to 工资数据审核、薪资校验、算薪逻辑验证、薪酬合规检查、\n  工资单审核、月度薪资校验、发薪前数据检查、payroll audit、salary check、\n  wage verification、payroll compliance.\n  不适用于非薪酬类数据审核、纯算薪操作（非审核）、外部薪酬调研、个税/社保计算.\n  此技能需手动触发.\n---\n\n# Payroll Data Audit v7.3.0\n\n**架构原则**：确定性操作下沉到代码，模糊推理留给 LLM。AI 不做计算和判断，只做路由决策和报告翻译。\n\n## 概述\n\n工资数据审核系统，全量对齐《工资审核标准流程 SOP》6 步流程，对飞书/SAP/ADP 导出的工资表执行自动化合规校验。SOP 覆盖率 95%（41/43 项）。\n\n### v6.3 新功能\n\n- **RL-003 排除逻辑修复**：低于最低工资检查排除实习生(日薪)、实习生(月薪)、当月入职、当月离职、当月长时间请假（病假>5天或事假>5天）\n- **RL-004 排除逻辑修复**：社保公积金应缴未缴排除实习生(月薪)\n- **YL-006 误报修复**：非1号转正/调薪导致的跨月工资变化不再误报（生效日期在[上月发薪月, 当月发薪月]范围内自动排除）\n- **COLUMN_ALIAS 扩充**：新增 40+ 个字段别名变体，覆盖更多实际工资表列名（如\"应发工资合计\"、\"实发工资\"、\"个人所得税扣款\"等）\n- **连续在职人员环比分析**：新增 `analyze_continuous_employees()` 方法，自动识别连续在职人员，排除实习生/当月入离职/近期调薪转正/请假>2天/多主体发薪人员，对比12项计薪科目环比变化，自动标记 >10% 异常波动并分类原因\n- **场景十·文件交付（Step 9）**：新增 `deliver_audit_files.py`，11个必发文件清单生成 + 审核结论摘要自动生成，流水线结束后 Phase 8/8 自动交付准备\n- **审核清单增强**：呈现审核数据情况、通过/不通过原因、判定过程详解\n\n### v6.2 新功能\n\n- **总审核报告（Master Report）**：Phase 7/7，将数据扫描、审核结果、判定过程、问题清单、抽样校验聚合为一份完整的 HTML 总报告（`06_master_report.html`）\n- **规则判定过程详解（judgment）**：每条规则输出 `judgment` 字段，包含规则逻辑、检查范围、排除人数及原因、实际检查人数、通过率、判定结论，让看报告的人能看到\"怎么判的、排了谁、阈值是什么\"\n- **黄线排除逻辑完善**：YL-001~004、YL-006 新增实习生/日薪/保洁/当月入职/当月离职排除；YL-005（出勤天数超计薪天数）不排除任何人（数据质量问题全员检查）\n\n### v6.0 新功能\n\n- **表格化报告**：整体以表格形式呈现，信息密度高，替代 v5 的卡片+SVG 风格\n- **动态交互看板**：支持筛选/排序/搜索/展开明细/导出CSV/深色模式（零依赖，纯内嵌JS）\n- **数据支撑索引**：`data_index.json` 作为报告和看板的关联核心，保证数据一致性\n- **三者联动**：报告 ↔ 看板 ↔ 数据索引，通过 rule_id 双向锚定\n\n### 功能范围\n\n- **SOP 第一步（强制）**：数据扫描确认（发薪月/公司主体/计薪项/特殊人员/工号重复检测）\n- 字段完整性检查（30+ 列名容错映射）\n- 公式校验（Decimal 精度，0.01 容差）\n- 业务逻辑校验（出勤工资/天数/绩效系数/加班/最低工资）\n- 红线校验（实发≤0、加班超36h、低于最低工资、社保未缴）\n- 黄线校验（绩效异常、出勤超限、工资波动）\n- 蓝线校验（跨月趋势，仅提示）\n- 政策校验（道旅国际豁免、15号后入职、实习生/保洁豁免、离职当月社保）\n- 人数对比分析（新入职/离职/波动>5%）\n- 总额环比分析（12项计薪科目，±10%阈值自动标记）\n- 分主体/分四级部门对比（按公司主体分组环比）\n- 按人深入分析（连续在职筛选+排除逻辑+六类变化分类+核实标记）\n- HTML/Markdown 审核报告生成\n- **数据支撑**：每个审核结论必须有数据依据\n- **审核清单看板**：完整条目清单（结果+数据依据+处理建议），HTML+Markdown 双格式\n- **分段审核**：7阶段独立执行，避免上下文截断，支持断点续传\n- **抽样校验**：随机抽样+独立重算+偏差检测，二次确认审核结果\n- **超链接复核**：异常项可点击复核链接（支持 {emp_id}/{emp_name}/{row_index}）\n- **端到端流水线**：`run_full_pipeline.py` 一键跑完不中断（数据扫描→审核→报告→看板→抽样→问题清单→总审核报告）\n\n**不覆盖**：实际算薪操作、薪酬市场调研、个税计算、社保核算。\n\n### SOP 流程映射\n\n| SOP 步骤 | 本 Skill 对应 | 说明 |\n|---------|-------------|------|\n| 第一步：审核流程（强制） | `data_scan.py` + 用户确认 | **禁止跳步** |\n| 第二步：数据逻辑验证 | `rules_engine.py` 公式+业务逻辑 | 公式校验+5项业务规则 |\n| 第三步：异常数据扫描 | `rules_engine.py` 红/黄/蓝线 | 4红+6黄+4蓝 |\n| 第四步：总额对比分析 | `rules_engine.py --prev` 总额环比 | ±10%阈值 |\n| 第五步：按人深入分析 | `rules_engine.py --prev` 按人分析 | 排除+6类变化 |\n| 第六步：汇总审核报告 | `generate_report.py` / `generate_report_v6.py` | 结构化报告（v5）/ 表格化报告（v6） |\n| 第七步：审核清单看板 | `generate_kanban.py` / `generate_kanban_v6.py` | 静态看板（v5）/ 动态交互看板（v6） |\n| 第八步：抽样校验 | `sampling_verify.py` | 二次确认审核结果 |\n| 数据支撑索引 | `generate_data_index.py` | 三者关联核心（报告↔看板↔数据） |\n|| 分段审核编排 | `run_audit.py` | 7阶段独立执行+断点续传 |\n|| 端到端流水线 | `run_full_pipeline.py` | 一键跑完不中断，始终生成所有输出（含总报告） |\n|| 总审核报告 | `generate_master_report.py` | 聚合所有输出为一份完整 HTML 总报告 |\n| 连续在职环比分析 | `rules_engine.py::analyze_continuous_employees()` | 12项计薪科目环比，排除规则，异常标记 |\n| 文件交付（Step 9） | `deliver_audit_files.py` + `run_full_pipeline.py` Phase 8 | 11个必发文件+审核结论摘要自动生成 |\n\n## 使用\n\n### 决策路由\n\n先判断用户需求属于哪类场景，再执行对应流程：\n\n| 用户说的 | 匹配场景 | 执行 |\n|---------|---------|------|\n| \"帮我审核本月工资数据\" | 完整审核 (Step 1→6) | 先 data_scan → 用户确认 → run_full_audit |\n| \"快速看看有没有问题\" | 红线校验 | `--step red_lines` |\n| \"发薪前帮我理一下数据\" | 字段检查 | `--step fields` |\n| \"帮我验一下公式对不对\" | 公式校验 | `--step formulas` |\n| \"帮我出个审核报告\" | 报告生成 | `generate_report.py` |\n| \"帮我出个表格版审核报告\" | 报告生成 v6 | `generate_report_v6.py` |\n| \"帮我出个审核清单/看板\" | 审核清单看板 | `generate_kanban.py` |\n| \"帮我出个动态交互看板\" | 动态看板 v6 | `generate_kanban_v6.py`（需要 data_index.json） |\n| \"分段审核/怕上下文截断\" | 分段审核 | `run_audit.py` |\n| \"帮我二次确认审核结果\" | 抽样校验 | `sampling_verify.py` |\n| \"从头到尾跑一遍审核\" | 端到端流水线 | `run_full_pipeline.py`（含 v6 报告+看板+索引+总报告+交付摘要） |\n| \"审核完了把文件发给我\" | 文件交付 | `deliver_audit_files.py`（11个必发文件+审核摘要） |\n\n### 场景零：数据扫描确认（⚠️ 强制第一步）\n\n**⚠️ 禁止跳过此步骤直接执行审核！**\n\n出报告前必须先数据扫描确认，等待用户回复\"确认无误\"后才执行后续审核。\n\n**第一步：数据扫描**\n\n```bash\npython3 scripts/data_scan.py \\\n  --data <工资数据.csv> \\\n  --output /tmp/data_scan_result.json\n```\n\n扫描输出以下信息供用户确认：\n- 发薪月分布（往月/最新发薪月对应人数）\n- 最新发薪月公司主体列表及对应人数\n- 主要计薪项数据（应发合计、实发金额合计、加班费合计、个人社保合计、个人公积金合计）\n- 特殊字段识别（实习生人数、保洁人数、入职人数、离职人数、转正/调薪人数）\n- 工号重复检测\n\n**数据扫描输出示例**：\n\n```\n============================================================\n📊 工资数据扫描报告\n============================================================\n\n📋 总记录数: 2000\n📅 最新发薪月: 2026-05\n\n📅 发薪月分布:\n  2026-05: 2000 人 ← 最新\n  2026-04: 1980 人\n\n🏢 公司主体分布:\n  道旅科技: 1500 人\n  道旅国际: 300 人\n  道旅服务: 200 人\n\n💰 主要计薪项汇总:\n  应发合计: ¥15,234,567.89\n  实发金额合计: ¥12,345,678.90\n  加班费小计: ¥234,567.89\n  个人社保: ¥1,234,567.89\n  个人公积金: ¥987,654.32\n\n👥 特殊人员:\n  新入职: 15 人\n  离职: 8 人\n  转正: 12 人\n  调薪: 5 人\n\n🔍 数据质量检测:\n  工号重复: ✅ 无异常\n  姓名为空: ✅ 无异常\n\n============================================================\n请确认以上数据是否正确，回复'确认无误'后开始正式审核。\n============================================================\n```\n\n**第二步：用户确认**\n\n等待用户回复\"确认无误\"或指出问题。**如果用户指出问题，先修正数据再继续。**\n\n**第三步：正式审核**\n\n用户确认后才执行场景一的完整审核流程。\n\n### 场景一：完整审核（Step 1 → 6）\n\n**第一步：获取数据** — 要求用户提供本月工资数据文件（CSV/Excel），**必须同时提供上月数据**用于跨月对比。\n\n**第二步：数据扫描确认** — 见场景零。\n\n**第三步：执行审核**\n\n```bash\npython3 -m scripts.rules_engine \\\n  --data <本月工资数据.csv> \\\n  --prev <上月工资数据.csv> \\\n  --output /tmp/audit_result.json\n```\n\n**第四步：确认门** — 如果 `summary.blocked == true`（触发红线），**不要生成报告**，先输出红线清单并要求用户确认数据修正后再继续。\n\n**第五步：生成报告** — 通过红线后，用脚本输出 JSON 生成人类可读报告：\n\n```bash\npython3 scripts/generate_report.py \\\n  --input /tmp/audit_result.json \\\n  --format both\n```\n\n**输出文件**：`report.html` + `report.md` 在工作目录。\n\n### 场景二：快速红线校验\n\n```bash\npython3 -m scripts.rules_engine \\\n  --data <工资数据.csv> \\\n  --step red_lines \\\n  --output /tmp/red_lines_result.json\n```\n\n适用于发薪前快速检查，只需 10 秒。\n\n### 场景三：数据梳理（字段检查）\n\n```bash\npython3 -m scripts.rules_engine \\\n  --data <工资数据.csv> \\\n  --step fields \\\n  --output /tmp/fields_result.json\n```\n\n检查必填字段是否缺失、格式是否正确。\n\n### 场景四：公式校验\n\n```bash\npython3 -m scripts.rules_engine \\\n  --data <工资数据.csv> \\\n  --step formulas \\\n  --output /tmp/formulas_result.json\n```\n\n验证应发/实发计算是否与公式一致。\n\n### 场景五：报告生成\n\n```bash\n# HTML 可视化报告\npython3 scripts/generate_report.py \\\n  --input /tmp/audit_result.json --format html --output report.html\n\n# Markdown 报告\npython3 scripts/generate_report.py \\\n  --input /tmp/audit_result.json --format markdown --output report.md\n\n# 两者都生成\npython3 scripts/generate_report.py \\\n  --input /tmp/audit_result.json --format both\n```\n\n### 场景六：审核清单看板（Step 7）\n\n**审核清单看板 = 完整审核条目展开清单**，每条包含审核结果 + 数据依据 + 处理建议。\n```bash\npython3 scripts/generate_kanban.py --input /tmp/audit_result.json --format both\n```\n**超链接复核**：`--review-link \"https://hr.example/emp/{emp_id}?row={row_index}\"`\n输出 `kanban.html` + `kanban.md`，展开 rules.json 所有规则（28+条）。\n### 场景七：抽样校验（Step 8，推荐）\n\n审核完成后进行二次确认：`python3 scripts/sampling_verify.py --data <数据.csv> --audit <审核结果.json> --sample-size 30 --threshold 0.05 --output <输出.json>`\n\n**流程**：随机抽样→独立重算（公式/红线/业务规则）→交叉对比→偏差率≤5%通过；>5%触发根因分析后重新审核。偏差超标时输出根因报告并使用 `run_audit.py --resume` 断点重审。\n### 场景八：分段审核编排（推荐大数据量场景）\n\n`python3 scripts/run_audit.py --data <本月.csv> --prev <上月.csv> --output-dir /tmp/audit_phases`\n\n7个独立阶段（字段→公式→业务规则→红线阻断门→黄线→蓝线→汇总），每阶段输出独立 JSON，避免上下文截断。红线触发时自动阻断后续阶段。支持断点续传：`--resume`。\n\n### 场景九：端到端流水线（一键跑完不中断）\n**输出文件**：`00_data_scan.json` `01_audit_result.json` `02_report.html/md` `02_report_v6.html/md`（表格化，推荐）`02a_data_index.json`（三者关联核心）`03_kanban.html/md` `03_kanban_v6.html`（动态交互，推荐）`04_sampling_verify.json` `05_issue_report.md`(问题清单) `06_master_report.html`(总审核报告) `audit_summary.md`(审核结论摘要)。\n```bash\npython3 scripts/run_full_pipeline.py --data <本月.csv> --prev <上月.csv> --output-dir /tmp/audit_output --review-link \"https://hr.example/emp/{emp_id}?row={row_index}\"\n```\n\n## 补充说明\n\n### 数据来源\n\n- **优先**：飞书多维表格导出 CSV / SAP HCM 导出 Excel / ADP 导出\n- **降级**：要求用户提供 CSV/Excel 文件\n- **兜底**：无任何数据源时拒绝执行，回复：\"请提供工资数据文件（CSV 或 Excel 格式），我才能进行审核。\"\n\n### 数据支撑原则\n\n**每个审核结论必须有数据依据，不凭空判断。** 这是审核系统的核心原则——**\"审核通过\"不是感觉出来的，是数据算出来的。**\n\n#### 一、\"通过\"结论的数据支撑逻辑\n\n每个判定为\"正常/通过\"的审核项目，必须同时输出以下三项数据：\n\n| 要素 | 说明 | 示例 |\n|------|------|------|\n| **检查数** | 共检查了多少条记录 | \"2000条记录\" |\n| **通过数** | 多少条符合规则 | \"1998条通过\" |\n| **阈值** | 判定标准是什么 | \"容差0.01元\" |\n\n**完整示例**：\n- ✅ 正确：\"公式校验通过：2000条记录全部在0.01元容差范围内，通过率100%\"\n- ❌ 错误：\"公式校验通过\"（无数据支撑，无法验证结论可靠性）\n\n**为什么必须这样**：如果没有检查数和通过数，\"通过\"可能是只检查了1条、也可能是2000条——可信度完全不同。\n\n#### 二、异常结论的数据支撑\n\n必须列出具体人员、工号、异常值、预期值、违反的规则ID：\n\n- ✅ 正确：\"张三（工号E001）实发金额为-500元，预期值≥0，违反RL-001（实发≤0），严重等级：BLOCK\"\n- ❌ 错误：\"有人实发金额异常\"（无具体信息，无法采取行动）\n\n#### 三、趋势判断的数据支撑\n\n必须给出具体数值、变化幅度、驱动因素：\n\n- ✅ 正确：\"应发总额环比+12.3%（¥15.2M→¥17.1M），超出±10%正常范围，主要由业务线奖金增加导致（+45.2%，¥2.1M→¥3.0M）\"\n- ❌ 错误：\"工资总额有明显增长\"（无数据，无法判断合理性）\n\n#### 四、排除说明的数据支撑\n\n当某人被排除在异常分析外时，必须说明排除原因和依据：\n\n- ✅ 正确：\"李四（工号E002）应发变化+15.8%，但4月有调薪记录（调薪生效日期=2026-04-01），匹配排除规则'调薪'，已排除\"\n- ❌ 错误：\"李四的变化是正常的\"（无依据）\n\n#### 五、红线阻断的数据支撑\n红线触发时输出：触发人数/具体名单(工号+姓名+异常值)/违反规则(ID+名称)。\n**报告\"结论与建议\"结构**：总体结论(检查数+各维度通过/异常数)→各维度详情表格(检查数/通过数/异常数/通过率/结论)→异常明细→建议行动(基于具体数据)。\n\n### 列名容错\n\n脚本内置 `COLUMN_ALIAS` 字典，自动映射 30+ 种常见列名变体。如果列名无法识别，脚本返回 `{\"error\": \"Missing column: XXX\"}`，LLM 必须原文转述。\n\n### 精度处理\n\n金额计算使用 `decimal.Decimal`，避免浮点误差累积。公式校验容差 0.01（1 分钱）。\n\n### 规则更新\n\n所有规则集中在 `references/rules.json`。修改规则只需编辑此文件，无需修改脚本。**为什么这样设计**：业务规则变化频繁（如最低工资调整），集中管理避免每次都要改代码。\n\n#### 如何扩展规则\n\n1. **新增红线**：在 `rules.json` 的 `red_lines` 数组中添加新对象，包含 `id`、`name`、`condition`、`field`、`severity: \"BLOCK\"`\n2. **新增黄线**：在 `yellow_lines` 数组中添加，`action: \"flag_and_explain\"`\n3. **新增蓝线**：在 `blue_lines` 数组中添加，`action: \"note_only\"`\n4. **新增政策**：在 `policies` 数组中添加，包含 `condition`（触发条件）和 `effect`（豁免效果）\n5. **新增业务规则**：在 `business_rules` 数组中添加，支持 `field1 <= field2` 类双字段比较\n6. **新增排除条件**：在 `person_analysis_exclusions` 对象中添加新 key，包含 `field`、`condition`、`note`\n\n**规则 ID 命名规范**：`{类型}-{序号}`，如 `RL-005`（第5条红线）、`YL-007`（第7条黄线）、`POL-006`（第6条政策）、`BR-005`（第5条业务规则）\n\n**添加规则后不需要修改任何 Python 代码**，引擎自动加载。\n\n### 红线阻断\n\n红线触发 → 立即阻断，不继续后续步骤，不生成报告。**为什么**：红线代表严重违规（如负实发、低于最低工资），必须先修正数据再审核，否则报告无意义。\n\n### 编排指南：单节点原则（v6.2.1 新增）\n\n**本 Skill 被 Workflow Orchestration Skill 编排时，必须作为单节点调用。**\n\n根因：`run_full_pipeline.py` 已是端到端流水线，内部按序完成所有 8 步（扫描→规则→红黄蓝线→报告→看板→抽样→问题清单→总报告）。拆成多节点编排无收益——每个节点仍调用同一个 skill，内部全量执行一遍。\n\n| 错误做法 | 正确做法 |\n|----------|----------|\n| N1 data_scan → N2 rules_engine → N3 generate_report → ... | N1 run_full_pipeline.py 一键跑完 |\n\n**唯一例外**：当业务确实需要中间状态可见性或独立重试时，才使用 `run_audit.py` 分段模式（7阶段+断点续传），但仍然是**同一 skill 的多次调用**，不是拆成多个 skill。\n\n### 常见错误场景\n\n| 场景 | 处理 |\n|------|------|\n| 数据源字段缺失 | 列出缺失字段清单，要求用户补充后重试 |\n| 日期格式混乱 | 脚本自动尝试多种格式解析，失败则返回错误 |\n| 无上月数据 | 跨月对比/按人分析跳过，在报告中标注\"无基准数据\" |\n| Python 环境无 pandas | 提示用户 `pip install pandas numpy openpyxl` |\n| 红线触发 | 立即阻断，不继续后续步骤 |\n\n### 目录结构\n\n```\npayroll-data-audit/\n├── SKILL.md\n├── _meta.json\n├── scripts/\n│   ├── data_scan.py               # 数据扫描（SOP 第一步）\n│   ├── rules_engine.py            # 统一规则引擎（OOP）\n│   ├── generate_report.py         # HTML/Markdown 报告生成器（v5，兼容）\n│   ├── generate_report_v6.py      # 表格化报告生成器（v6，推荐）\n│   ├── generate_kanban.py         # 审核清单看板生成器（Step 7，静态）\n│   ├── generate_kanban_v6.py      # 动态交互看板生成器（v6，推荐）\n│   ├── generate_data_index.py     # 数据支撑索引生成器（v6，三者关联核心）\n│   ├── run_audit.py               # 分段审核编排器（7阶段+断点续传）\n│   ├── run_full_pipeline.py       # 端到端流水线（含 v6 输出 + 总报告）\n│   ├── generate_master_report.py  # 总审核报告生成器（v6.2，聚合所有输出）\n│   ├── sampling_verify.py         # 抽样校验器（二次确认）\n│   └── tests/                     # pytest 测试套件\n│       ├── test_rules_engine.py\n│       └── test_parameterized.py\n├── references/\n│   └── rules.json                 # 所有规则声明（唯一真相来源）\n└── .github/workflows/\n    └── test.yml                   # CI/CD\n```\n\n### 依赖\n\n```bash\npip install pandas numpy openpyxl\n```\n\n### 测试\n\n```bash\ncd payroll-data-audit\npython -m pytest scripts/tests/ -v --cov=scripts.rules_engine --cov-report=term-missing\n```\n\nCI/CD 自动运行：push/PR 时触发 pytest + coverage（80% 门槛）+ lint。\n\nFile v7.3.0:_meta.json\n\n{\n  \"ownerId\": \"kn70tx725606ywwb5gfj0vpxjx83admr\",\n  \"slug\": \"payroll-data-audit\",\n  \"version\": \"7.3.0\",\n  \"publishedAt\": 1780645156977\n}\n\nFile v7.3.0:references/rules.json\n\n{\n  \"version\": \"7.0.0\",\n  \"metadata\": {\n    \"lastUpdated\": \"2026-06-03\",\n    \"updatedBy\": \"HRCOE\",\n    \"description\": \"工资数据审核规则库，所有阈值和逻辑以本文件为准。全量对齐SOP v1.0\",\n    \"changelog\": \"v7.0.0: 对齐SOP文档20260603 - 最低工资2520/加班32h/总额环比±5%/标准工资三字段红线/出勤工资红线/出勤天数红线/公式红线/状态列替代岗位列/病假事假列名对齐/轮班补贴校验/连续在职定义/按人分析双条件/补发提成波动±20%\"\n  },\n  \"thresholds\": {\n    \"overtime_limit\": 32,\n    \"overtime_unit\": \"hour\",\n    \"overtime_breakdown\": [\n      \"平时加班时数\",\n      \"周末加班时数\",\n      \"法定加班时数\"\n    ],\n    \"min_wage_default\": 2520,\n    \"min_wage_shenzhen\": 2360,\n    \"min_wage_guangzhou\": 2300,\n    \"min_wage_dongguan\": 1900,\n    \"perf_coefficient_max\": 1.5,\n    \"perf_coefficient_min\": 0.5,\n    \"perf_coefficient_swing\": 0.5,\n    \"bonus_volatility_threshold\": 0.2,\n    \"supply_volatility_threshold\": 0.2,\n    \"headcount_variance_threshold\": 0.05,\n    \"total_variance_threshold\": 0.05,\n    \"supply_months_tolerance\": 2\n  },\n  \"red_lines\": [\n    {\n      \"id\": \"RL-001\",\n      \"name\": \"实发≤0\",\n      \"description\": \"实发金额合计≤0，必须立即核实\",\n      \"condition\": \"sum(实发金额合计) <= 0\",\n      \"field\": \"实发金额合计\",\n      \"exclusions\": [],\n      \"severity\": \"BLOCK\",\n      \"action\": \"stop_and_alert\"\n    },\n    {\n      \"id\": \"RL-002\",\n      \"name\": \"加班超32h\",\n      \"description\": \"月加班总时数>32小时，违反劳动法\",\n      \"condition\": \"sum(平时加班时数 + 周末加班时数 + 法定加班时数) > 32\",\n      \"field\": \"平时加班时数\",\n      \"exclusions\": [\n        \"当月入职\",\n        \"当月离职\",\n        \"实习生\",\n        \"保洁\",\n        \"当月长时间请假\"\n      ],\n      \"severity\": \"BLOCK\",\n      \"action\": \"stop_and_alert\"\n    },\n    {\n      \"id\": \"RL-003\",\n      \"name\": \"低于最低工资\",\n      \"description\": \"应发合计低于当地最低工资标准\",\n      \"condition\": \"应发合计 < 当地最低工资\",\n      \"field\": \"应发合计\",\n      \"exclusions\": [\n        \"实习生\",\n        \"保洁\",\n        \"当月长时间请假\",\n        \"当月入职\",\n        \"当月离职\",\n        \"实习生(日薪)\",\n        \"实习生(月薪)\"\n      ],\n      \"severity\": \"BLOCK\",\n      \"action\": \"stop_and_alert\"\n    },\n    {\n      \"id\": \"RL-004\",\n      \"name\": \"社保公积金应缴未缴\",\n      \"description\": \"不符合豁免政策但个人社保/公积金扣款为0\",\n      \"condition\": \"不符合豁免政策 AND 个人社保 == 0\",\n      \"field\": \"个人社保\",\n      \"exclusions\": [\n        \"实习生\",\n        \"日薪\",\n        \"保洁\",\n        \"实习生(月薪)\"\n      ],\n      \"severity\": \"BLOCK\",\n      \"action\": \"stop_and_alert\"\n    },\n    {\n      \"id\": \"RL-005\",\n      \"name\": \"出勤工资超标准\",\n      \"description\": \"实际出勤工资小计 > 标准基本工资（排除实习生/日薪/保洁）\",\n      \"condition\": \"实际出勤工资小计 > 标准基本工资\",\n      \"field\": \"实际出勤工资小计\",\n      \"exclusions\": [\n        \"实习生(日薪)\",\n        \"实习生(月薪)\",\n        \"保洁\"\n      ],\n      \"severity\": \"BLOCK\",\n      \"action\": \"stop_and_alert\"\n    },\n    {\n      \"id\": \"RL-006\",\n      \"name\": \"出勤天数超应出勤\",\n      \"description\": \"实际计薪出勤天数 > 应计薪出勤天数\",\n      \"condition\": \"实际计薪出勤天数 > 应计薪出勤天数\",\n      \"field\": \"实际计薪出勤天数\",\n      \"exclusions\": [],\n      \"severity\": \"BLOCK\",\n      \"action\": \"stop_and_alert\"\n    },\n    {\n      \"id\": \"RL-007\",\n      \"name\": \"标准工资三字段变化无记录\",\n      \"description\": \"标准基本工资/标准绩效工资/标准福利任一变化，但无调薪/转正记录\",\n      \"condition\": \"标准基本工资≠上月 OR 标准绩效工资≠上月 OR 标准福利≠上月\",\n      \"field\": \"标准基本工资\",\n      \"exclusions\": [],\n      \"severity\": \"BLOCK\",\n      \"action\": \"stop_and_alert\"\n    }\n  ],\n  \"yellow_lines\": [\n    {\n      \"id\": \"YL-001\",\n      \"name\": \"绩效系数过高\",\n      \"threshold\": 1.5,\n      \"field\": \"绩效系数\",\n      \"description\": \"绩效系数>1.5，需核实是否有特殊贡献依据\",\n      \"action\": \"flag_and_explain\",\n      \"exclusions\": [\n        \"实习生\",\n        \"日薪\",\n        \"保洁\",\n        \"当月入职\",\n        \"当月离职\"\n      ]\n    },\n    {\n      \"id\": \"YL-002\",\n      \"name\": \"绩效系数过低\",\n      \"threshold\": 0.5,\n      \"field\": \"绩效系数\",\n      \"description\": \"绩效系数<0.5，需核实绩效评估是否合理\",\n      \"action\": \"flag_and_explain\",\n      \"exclusions\": [\n        \"实习生\",\n        \"日薪\",\n        \"保洁\",\n        \"当月入职\",\n        \"当月离职\"\n      ]\n    },\n    {\n      \"id\": \"YL-003\",\n      \"name\": \"绩效系数月度波动大\",\n      \"threshold\": 0.5,\n      \"field\": \"绩效系数\",\n      \"description\": \"本月系数与上月系数差值>0.5，需核实评估依据\",\n      \"action\": \"flag_and_explain\",\n      \"exclusions\": [\n        \"实习生\",\n        \"日薪\",\n        \"保洁\",\n        \"当月入职\",\n        \"当月离职\"\n      ]\n    },\n    {\n      \"id\": \"YL-004\",\n      \"name\": \"住宿扣款变化\",\n      \"threshold\": 0,\n      \"field\": \"住宿扣款\",\n      \"description\": \"本月住宿扣款与上月不一致，需确认是否退宿或新入住\",\n      \"action\": \"flag_and_explain\",\n      \"exclusions\": [\n        \"实习生\",\n        \"日薪\",\n        \"保洁\"\n      ]\n    },\n    {\n      \"id\": \"YL-005\",\n      \"name\": \"出勤天数超计薪天数\",\n      \"threshold\": 0,\n      \"field\": \"实际计薪出勤天数\",\n      \"description\": \"实际计薪出勤天数 > 应计薪出勤天数，排班数据可能有误\",\n      \"action\": \"flag_and_explain\"\n    },\n    {\n      \"id\": \"YL-006\",\n      \"name\": \"标准工资无依据变化\",\n      \"threshold\": 0,\n      \"field\": \"标准基本工资\",\n      \"description\": \"本月&上月均无调薪/转正记录但标准工资有变化\",\n      \"action\": \"flag_and_explain\",\n      \"exclusions\": [\n        \"实习生\",\n        \"日薪\",\n        \"保洁\",\n        \"当月入职\",\n        \"当月离职\"\n      ]\n    }\n  ],\n  \"blue_lines\": [\n    {\n      \"id\": \"BL-001\",\n      \"name\": \"业务线奖金波动\",\n      \"description\": \"季度奖金发放导致的正常波动\",\n      \"action\": \"note_only\"\n    },\n    {\n      \"id\": \"BL-002\",\n      \"name\": \"加班费波动\",\n      \"description\": \"法定节假日加班费与普通加班费差异\",\n      \"action\": \"note_only\"\n    },\n    {\n      \"id\": \"BL-003\",\n      \"name\": \"补发波动\",\n      \"description\": \"某月突然增加补发，需确认依据\",\n      \"action\": \"note_only\"\n    },\n    {\n      \"id\": \"BL-004\",\n      \"name\": \"提成波动\",\n      \"description\": \"业务正常波动，±20%以内属正常\",\n      \"threshold\": 0.2,\n      \"action\": \"note_only\"\n    }\n  ],\n  \"policies\": [\n    {\n      \"id\": \"POL-001\",\n      \"name\": \"15号后入职当月不缴社保公积金\",\n      \"condition\": \"入职日期.day > 15\",\n      \"effect\": {\n        \"个人社保\": 0,\n        \"个人公积金\": 0\n      },\n      \"applies_to\": \"both\",\n      \"note\": \"入职当月不缴纳，次月起缴纳\"\n    },\n    {\n      \"id\": \"POL-002\",\n      \"name\": \"实习生/保洁豁免社保公积金\",\n      \"condition\": \"岗位 in [实习生, 日薪, 保洁]\",\n      \"effect\": {\n        \"个人社保\": 0,\n        \"个人公积金\": 0\n      },\n      \"applies_to\": \"both\",\n      \"note\": \"非全日制实习生按需调整\"\n    },\n    {\n      \"id\": \"POL-003\",\n      \"name\": \"离职当月社保公积金缴纳规则\",\n      \"condition\": \"离职日期.day <= 15\",\n      \"effect\": {\n        \"个人社保\": 0,\n        \"个人公积金\": 0\n      },\n      \"applies_to\": \"both\",\n      \"note\": \"15号前离职当月不缴，15号后离职当月缴纳\"\n    },\n    {\n      \"id\": \"POL-004\",\n      \"name\": \"道旅国际-社保豁免\",\n      \"condition\": \"公司主体 == '道旅国际'\",\n      \"effect\": {\n        \"个人社保\": 0\n      },\n      \"applies_to\": \"both\",\n      \"note\": \"道旅国际员工不缴纳个人社保\"\n    },\n    {\n      \"id\": \"POL-005\",\n      \"name\": \"道旅国际-公积金豁免\",\n      \"condition\": \"公司主体 == '道旅国际' AND 入职月数 <= 2\",\n      \"effect\": {\n        \"个人公积金\": 0\n      },\n      \"applies_to\": \"both\",\n      \"note\": \"道旅国际员工入职2个月内不缴纳个人公积金\"\n    }\n  ],\n  \"formula_rules\": [\n    {\n      \"id\": \"FR-001\",\n      \"name\": \"应发合计校验\",\n      \"description\": \"应发合计 = 各收入科目之和 - 其他扣减\",\n      \"left\": \"应发合计\",\n      \"right_fields\": [\n        \"实际出勤工资小计\",\n        \"实际绩效工资\",\n        \"实际出勤福利小计\",\n        \"轮班补贴\",\n        \"加班费小计\",\n        \"业务线奖金合计\",\n        \"提成&其他&奖金\",\n        \"补发\"\n      ],\n      \"deductions\": [\n        \"其他扣减\"\n      ],\n      \"tolerance\": 0,\n      \"applies_to\": \"all\"\n    },\n    {\n      \"id\": \"FR-002\",\n      \"name\": \"实发合计校验\",\n      \"description\": \"实发合计 = 应发合计 - 代扣款项 + 补贴\",\n      \"left\": \"实发金额合计\",\n      \"deductions\": [\n        \"个人社保\",\n        \"个人公积金\",\n        \"个人所得税\",\n        \"税后扣减项\",\n        \"个人住宿扣款\",\n        \"个人承担社保差额\",\n        \"个人承担公积金差额\"\n      ],\n      \"additions\": [\n        \"经济补偿金\"\n      ],\n      \"tolerance\": 0,\n      \"applies_to\": \"all\"\n    },\n    {\n      \"id\": \"FR-003\",\n      \"name\": \"出勤工资校验\",\n      \"description\": \"实际出勤工资小计 ≤ 标准基本工资\",\n      \"left\": \"实际出勤工资小计\",\n      \"right_field\": \"标准基本工资\",\n      \"tolerance\": 0,\n      \"direction\": \"lte\",\n      \"applies_to\": \"all\",\n      \"exclusions\": [\n        \"实习生\",\n        \"日薪\"\n      ]\n    },\n    {\n      \"id\": \"FR-004\",\n      \"name\": \"计薪天数校验\",\n      \"description\": \"实际计薪出勤天数 ≤ 应计薪出勤天数\",\n      \"left\": \"实际计薪出勤天数\",\n      \"right_field\": \"应计薪出勤天数\",\n      \"tolerance\": 0,\n      \"direction\": \"lte\",\n      \"applies_to\": \"all\"\n    }\n  ],\n  \"business_rules\": [\n    {\n      \"id\": \"BR-001\",\n      \"name\": \"出勤工资不超过标准工资\",\n      \"condition\": \"实际出勤工资小计 <= 标准基本工资\",\n      \"exclusions_field\": \"岗位\",\n      \"exclusions_values\": [\n        \"实习生(日薪)\",\n        \"日薪\"\n      ],\n      \"description\": \"实际出勤工资小计不应超过标准基本工资（排除日薪实习生）\",\n      \"severity\": \"yellow\"\n    },\n    {\n      \"id\": \"BR-002\",\n      \"name\": \"出勤天数不超过应出勤天数\",\n      \"condition\": \"实际计薪出勤天数 <= 应计薪出勤天数\",\n      \"description\": \"实际计薪出勤天数不应超过应计薪出勤天数\",\n      \"severity\": \"yellow\"\n    },\n    {\n      \"id\": \"BR-003\",\n      \"name\": \"绩效系数在合理范围\",\n      \"condition\": \"绩效系数 >= 0.5 AND 绩效系数 <= 1.5\",\n      \"description\": \"绩效系数应在0.5~1.5之间\",\n      \"severity\": \"yellow\"\n    },\n    {\n      \"id\": \"BR-004\",\n      \"name\": \"班天数不超过计薪天数\",\n      \"condition\": \"班天数合计 <= 实际计薪出勤天数\",\n      \"description\": \"排班天数合计不应超过实际计薪出勤天数\",\n      \"severity\": \"yellow\"\n    },\n    {\n      \"id\": \"BR-005\",\n      \"name\": \"轮班天数不超过计薪天数\",\n      \"condition\": \"C1&C2班天数 + C班天数 + D班天数 <= 实际计薪出勤天数\",\n      \"description\": \"C1&C2班天数+C班天数+D班天数不应超过实际计薪出勤天数\",\n      \"severity\": \"red\"\n    }\n  ],\n  \"person_analysis_exclusions\": {\n    \"离职\": {\n      \"field\": \"离职日期\",\n      \"condition\": \"离职日期 in 当月\",\n      \"note\": \"当月离职人员，工资因不满勤而下降属正常\"\n    },\n    \"新入职不满勤\": {\n      \"field\": \"入职日期\",\n      \"condition\": \"入职日期 in 上月 AND 上月不满勤\",\n      \"note\": \"上月新入职人员，上月不满勤导致基数偏低\"\n    },\n    \"转正\": {\n      \"field\": \"转正薪资生效日期\",\n      \"condition\": \"转正薪资生效日期 in [上月, 当月]\",\n      \"note\": \"转正导致标准工资变化属正常\"\n    },\n    \"调薪\": {\n      \"field\": \"调薪生效日期\",\n      \"condition\": \"调薪生效日期 in [上月, 当月]\",\n      \"note\": \"调薪导致标准工资变化属正常\"\n    },\n    \"请假\": {\n      \"field\": \"请假天数\",\n      \"condition\": \"病假 > 2 OR 事假 > 2\",\n      \"note\": \"请假导致计薪天数下降属正常\"\n    },\n    \"多主体发薪\": {\n      \"field\": \"工号\",\n      \"condition\": \"同一工号在多个公司主体出现\",\n      \"note\": \"多主体发薪人员不应直接对比单一主体工资\"\n    }\n  },\n  \"required_fields\": {\n    \"基础信息\": [\n      \"发薪月\",\n      \"公司主体\",\n      \"姓名代号\",\n      \"工号\"\n    ],\n    \"人员变动\": [\n      \"入职日期\",\n      \"离职日期\"\n    ],\n    \"工资变动\": [\n      \"转正薪资生效日期\",\n      \"调薪生效日期\"\n    ],\n    \"出勤\": [\n      \"实际计薪出勤天数\",\n      \"实际出勤工资小计\",\n      \"应计薪出勤天数\"\n    ],\n    \"绩效\": [\n      \"绩效系数\",\n      \"实际绩效工资\"\n    ],\n    \"福利补贴\": [\n      \"标准福利\",\n      \"通讯补贴\",\n      \"电脑补贴\",\n      \"交通补贴\",\n      \"住房补贴\",\n      \"约定补贴\",\n      \"餐补\",\n      \"实际出勤福利小计\",\n      \"轮班补贴\"\n    ],\n    \"加班\": [\n      \"加班费小计\",\n      \"平时加班时数\",\n      \"周末加班时数\",\n      \"法定加班时数\"\n    ],\n    \"奖金提成\": [\n      \"业务线奖金合计\",\n      \"提成&其他&奖金\",\n      \"补发\",\n      \"其他扣减\"\n    ],\n    \"应发项\": [\n      \"标准基本工资\",\n      \"标准绩效工资\",\n      \"应计薪出勤天数\",\n      \"实际计薪出勤天数\",\n      \"实际出勤工资小计\",\n      \"绩效系数\",\n      \"实际绩效工资\",\n      \"实际出勤福利小计\",\n      \"轮班补贴\",\n      \"C1&C2班天数\",\n      \"C班天数\",\n      \"D班天数\",\n      \"加班费小计\",\n      \"业务线奖金合计\",\n      \"提成&其他&奖金\",\n      \"补发\",\n      \"其他扣减\",\n      \"应发合计\"\n    ],\n    \"实发代扣项\": [\n      \"个人社保\",\n      \"个人公积金\",\n      \"个人所得税\",\n      \"税后扣减项\",\n      \"个人住宿扣款\",\n      \"个人承担社保差额\",\n      \"个人承担公积金差额\",\n      \"经济补偿金\"\n    ],\n    \"最终结果\": [\n      \"应发合计\",\n      \"实发金额合计\"\n    ],\n    \"社保公积金\": [\n      \"个人社保\",\n      \"个人公积金\"\n    ],\n    \"代扣税\": [\n      \"个人所得税\",\n      \"税后扣减项\",\n      \"个人住宿扣款\",\n      \"个人承担社保差额\",\n      \"个人承担公积金差额\",\n      \"经济补偿金\"\n    ],\n    \"请假\": [\n      \"病假（天）\",\n      \"事假（天）\"\n    ]\n  }\n}\n\nFile v7.3.0:skill-card.md\n\n## Description: <br>\nPayroll Data Audit helps agents run deterministic Python workflows to audit payroll exports against a six-step payroll SOP. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[tuobadaidai](https://clawhub.ai/user/tuobadaidai) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nHR, payroll, and audit teams use this skill to scan payroll exports, validate formulas and business rules, compare current and prior periods, and generate payroll audit reports before payroll release. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill processes payroll inputs and creates detailed compensation audit reports that may contain sensitive personal data. <br>\nMitigation: Install only for authorized HR or payroll use, keep inputs and generated reports in approved locations, and restrict sharing to approved reviewers. <br>\nRisk: Generated HTML reports and review links may be unsafe when produced from untrusted or manipulated payroll or audit data. <br>\nMitigation: Avoid opening generated HTML from untrusted data until escaping and review-link validation are fixed, and review generated links before distribution. <br>\nRisk: Sampling verification may overstate independence from prior audit results. <br>\nMitigation: Treat sampling output as supporting evidence and require additional manual review before relying on it for final payroll decisions. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/tuobadaidai/payroll-data-audit) <br>\n- [Rule definitions](references/rules.json) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown guidance with shell commands; generated audit outputs include JSON, HTML, and Markdown reports.] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Outputs may contain sensitive payroll and compensation data and should be stored and shared only in approved locations.] <br>\n\n## Skill Version(s): <br>\n7.3.0 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v7.3.0:requirements.txt\n\npandas>=2.0.0\nnumpy>=1.24.0\nopenpyxl>=3.1.0\n\nArchive v7.2.1: 19 files, 97635 bytes\n\nFiles: _meta.json (137b), references/rules.json (14059b), requirements.txt (44b), scripts/data_scan.py (10846b), scripts/deliver_audit_files.py (6638b), scripts/generate_data_index.py (8007b), scripts/generate_kanban_v6.py (21021b), scripts/generate_kanban.py (22871b), scripts/generate_master_report.py (15225b), scripts/generate_report_v6.py (35295b), scripts/generate_report.py (33255b), scripts/rules_engine.py (77786b), scripts/run_audit.py (11747b), scripts/run_full_pipeline.py (23146b), scripts/sampling_verify.py (10751b), scripts/tests/test_parameterized.py (20378b), scripts/tests/test_rules_engine.py (19011b), skill-card.md (2478b), SKILL.md (21490b)\n\nFile v7.2.1:SKILL.md\n\n---\nname: payroll-data-audit\nversion: 7.2.1\ndescription: 工资数据审核系统，基于确定性规则引擎 + Python 脚本执行。\n  全量对齐《工资审核标准流程 SOP》6 步流程。v7.2 修复P0阻断bug：_get_pay_month() 支持\n  中文格式（\"2026年4月\"/\"2026年04月\"/\"202604\"），RL-003/RL-007 排除逻辑完全生效。\n  v7.1 修复5个P0阻断bug：全角/半角括号统一、RL-003状态列检查、RL-007新员工排除+上月1号调薪豁免、FR-003实习生排除、YL-006上月1号豁免。\n  v6.2 新增总审核报告（Master Report）、 规则判定过程详解（judgment）、黄线排除逻辑完善。\n  v6.2.1 新增编排指南：单节点原则。\n  Use when user asks to 工资数据审核、薪资校验、算薪逻辑验证、薪酬合规检查、\n  工资单审核、月度薪资校验、发薪前数据检查、payroll audit、salary check、\n  wage verification、payroll compliance.\n  不适用于非薪酬类数据审核、纯算薪操作（非审核）、外部薪酬调研、个税/社保计算.\n  此技能需手动触发.\n---\n\n# Payroll Data Audit v7.2.1\n\n**架构原则**：确定性操作下沉到代码，模糊推理留给 LLM。AI 不做计算和判断，只做路由决策和报告翻译。\n\n## 概述\n\n工资数据审核系统，全量对齐《工资审核标准流程 SOP》6 步流程，对飞书/SAP/ADP 导出的工资表执行自动化合规校验。SOP 覆盖率 95%（41/43 项）。\n\n### v6.3 新功能\n\n- **RL-003 排除逻辑修复**：低于最低工资检查排除实习生(日薪)、实习生(月薪)、当月入职、当月离职、当月长时间请假（病假>5天或事假>5天）\n- **RL-004 排除逻辑修复**：社保公积金应缴未缴排除实习生(月薪)\n- **YL-006 误报修复**：非1号转正/调薪导致的跨月工资变化不再误报（生效日期在[上月发薪月, 当月发薪月]范围内自动排除）\n- **COLUMN_ALIAS 扩充**：新增 40+ 个字段别名变体，覆盖更多实际工资表列名（如\"应发工资合计\"、\"实发工资\"、\"个人所得税扣款\"等）\n- **连续在职人员环比分析**：新增 `analyze_continuous_employees()` 方法，自动识别连续在职人员，排除实习生/当月入离职/近期调薪转正/请假>2天/多主体发薪人员，对比12项计薪科目环比变化，自动标记 >10% 异常波动并分类原因\n- **场景十·文件交付（Step 9）**：新增 `deliver_audit_files.py`，11个必发文件清单生成 + 审核结论摘要自动生成，流水线结束后 Phase 8/8 自动交付准备\n- **审核清单增强**：呈现审核数据情况、通过/不通过原因、判定过程详解\n\n### v6.2 新功能\n\n- **总审核报告（Master Report）**：Phase 7/7，将数据扫描、审核结果、判定过程、问题清单、抽样校验聚合为一份完整的 HTML 总报告（`06_master_report.html`）\n- **规则判定过程详解（judgment）**：每条规则输出 `judgment` 字段，包含规则逻辑、检查范围、排除人数及原因、实际检查人数、通过率、判定结论，让看报告的人能看到\"怎么判的、排了谁、阈值是什么\"\n- **黄线排除逻辑完善**：YL-001~004、YL-006 新增实习生/日薪/保洁/当月入职/当月离职排除；YL-005（出勤天数超计薪天数）不排除任何人（数据质量问题全员检查）\n\n### v6.0 新功能\n\n- **表格化报告**：整体以表格形式呈现，信息密度高，替代 v5 的卡片+SVG 风格\n- **动态交互看板**：支持筛选/排序/搜索/展开明细/导出CSV/深色模式（零依赖，纯内嵌JS）\n- **数据支撑索引**：`data_index.json` 作为报告和看板的关联核心，保证数据一致性\n- **三者联动**：报告 ↔ 看板 ↔ 数据索引，通过 rule_id 双向锚定\n\n### 功能范围\n\n- **SOP 第一步（强制）**：数据扫描确认（发薪月/公司主体/计薪项/特殊人员/工号重复检测）\n- 字段完整性检查（30+ 列名容错映射）\n- 公式校验（Decimal 精度，0.01 容差）\n- 业务逻辑校验（出勤工资/天数/绩效系数/加班/最低工资）\n- 红线校验（实发≤0、加班超36h、低于最低工资、社保未缴）\n- 黄线校验（绩效异常、出勤超限、工资波动）\n- 蓝线校验（跨月趋势，仅提示）\n- 政策校验（道旅国际豁免、15号后入职、实习生/保洁豁免、离职当月社保）\n- 人数对比分析（新入职/离职/波动>5%）\n- 总额环比分析（12项计薪科目，±10%阈值自动标记）\n- 分主体/分四级部门对比（按公司主体分组环比）\n- 按人深入分析（连续在职筛选+排除逻辑+六类变化分类+核实标记）\n- HTML/Markdown 审核报告生成\n- **数据支撑**：每个审核结论必须有数据依据\n- **审核清单看板**：完整条目清单（结果+数据依据+处理建议），HTML+Markdown 双格式\n- **分段审核**：7阶段独立执行，避免上下文截断，支持断点续传\n- **抽样校验**：随机抽样+独立重算+偏差检测，二次确认审核结果\n- **超链接复核**：异常项可点击复核链接（支持 {emp_id}/{emp_name}/{row_index}）\n- **端到端流水线**：`run_full_pipeline.py` 一键跑完不中断（数据扫描→审核→报告→看板→抽样→问题清单→总审核报告）\n\n**不覆盖**：实际算薪操作、薪酬市场调研、个税计算、社保核算。\n\n### SOP 流程映射\n\n| SOP 步骤 | 本 Skill 对应 | 说明 |\n|---------|-------------|------|\n| 第一步：审核流程（强制） | `data_scan.py` + 用户确认 | **禁止跳步** |\n| 第二步：数据逻辑验证 | `rules_engine.py` 公式+业务逻辑 | 公式校验+5项业务规则 |\n| 第三步：异常数据扫描 | `rules_engine.py` 红/黄/蓝线 | 4红+6黄+4蓝 |\n| 第四步：总额对比分析 | `rules_engine.py --prev` 总额环比 | ±10%阈值 |\n| 第五步：按人深入分析 | `rules_engine.py --prev` 按人分析 | 排除+6类变化 |\n| 第六步：汇总审核报告 | `generate_report.py` / `generate_report_v6.py` | 结构化报告（v5）/ 表格化报告（v6） |\n| 第七步：审核清单看板 | `generate_kanban.py` / `generate_kanban_v6.py` | 静态看板（v5）/ 动态交互看板（v6） |\n\nArchive v7.2.0: 19 files, 97691 bytes\n\nFiles: _meta.json (137b), references/rules.json (14059b), requirements.txt (44b), scripts/data_scan.py (10846b), scripts/deliver_audit_files.py (6638b), scripts/generate_data_index.py (8007b), scripts/generate_kanban_v6.py (21021b), scripts/generate_kanban.py (22871b), scripts/generate_master_report.py (15225b), scripts/generate_report_v6.py (35295b), scripts/generate_report.py (33255b), scripts/rules_engine.py (77786b), scripts/run_audit.py (11747b), scripts/run_full_pipeline.py (23146b), scripts/sampling_verify.py (10751b), scripts/tests/test_parameterized.py (20378b), scripts/tests/test_rules_engine.py (19011b), skill-card.md (2366b), SKILL.md (21490b)\n\nArchive v7.1.1: 19 files, 96860 bytes\n\nFiles: _meta.json (137b), references/rules.json (14059b), requirements.txt (44b), scripts/data_scan.py (10846b), scripts/deliver_audit_files.py (6638b), scripts/generate_data_index.py (8007b), scripts/generate_kanban_v6.py (21021b), scripts/generate_kanban.py (22871b), scripts/generate_master_report.py (15225b), scripts/generate_report_v6.py (35295b), scripts/generate_report.py (33255b), scripts/rules_engine.py (77016b), scripts/run_audit.py (11747b), scripts/run_full_pipeline.py (23146b), scripts/sampling_verify.py (10751b), scripts/tests/test_parameterized.py (20378b), scripts/tests/test_rules_engine.py (16742b), skill-card.md (2373b), SKILL.md (21340b)\n\nArchive v7.1.0: 19 files, 96648 bytes\n\nFiles: _meta.json (137b), references/rules.json (14059b), requirements.txt (44b), scripts/data_scan.py (10846b), scripts/deliver_audit_files.py (6638b), scripts/generate_data_index.py (8007b), scripts/generate_kanban_v6.py (21021b), scripts/generate_kanban.py (22871b), scripts/generate_master_report.py (15225b), scripts/generate_report_v6.py (35295b), scripts/generate_report.py (33255b), scripts/rules_engine.py (76558b), scripts/run_audit.py (11747b), scripts/run_full_pipeline.py (23146b), scripts/sampling_verify.py (10751b), scripts/tests/test_parameterized.py (20378b), scripts/tests/test_rules_engine.py (16742b), skill-card.md (2398b), SKILL.md (21340b)\n\nArchive v7.0.0: 19 files, 96159 bytes\n\nFiles: _meta.json (137b), references/rules.json (14059b), requirements.txt (44b), scripts/data_scan.py (10846b), scripts/deliver_audit_files.py (6638b), scripts/generate_data_index.py (8007b), scripts/generate_kanban_v6.py (21021b), scripts/generate_kanban.py (22871b), scripts/generate_master_report.py (15225b), scripts/generate_report_v6.py (35295b), scripts/generate_report.py (33255b), scripts/rules_engine.py (75624b), scripts/run_audit.py (11747b), scripts/run_full_pipeline.py (23146b), scripts/sampling_verify.py (10751b), scripts/tests/test_parameterized.py (20378b), scripts/tests/test_rules_engine.py (16742b), skill-card.md (2271b), SKILL.md (21156b)\n\nArchive v6.3.0: 19 files, 94133 bytes\n\nFiles: _meta.json (137b), references/rules.json (12928b), requirements.txt (44b), scripts/data_scan.py (10846b), scripts/deliver_audit_files.py (6638b), scripts/generate_data_index.py (8007b), scripts/generate_kanban_v6.py (21021b), scripts/generate_kanban.py (22871b), scripts/generate_master_report.py (15225b), scripts/generate_report_v6.py (35295b), scripts/generate_report.py (33255b), scripts/rules_engine.py (66099b), scripts/run_audit.py (11747b), scripts/run_full_pipeline.py (23146b), scripts/sampling_verify.py (10751b), scripts/tests/test_parameterized.py (20378b), scripts/tests/test_rules_engine.py (16700b), skill-card.md (2280b), SKILL.md (21156b)","readmeExcerpt":"Skill: Payroll Data Audit Owner: tuobadaidai Summary: 工资数据审核系统，基于确定性规则引擎 + Python 脚本执行。 全量对齐《工资审核标准流程 SOP》6 步流程。v7.2 修复P0阻断bug：_get_pay_month() 支持 中文格式（\"2026年4月\"/\"2026年04月\"/\"202604\"），RL-003/RL-007 排除逻辑完全生效。 v7.1... Tags: latest:7.4.1 Version history: v6.2.3 | 2026-07-24T09:18:50.184Z | user Restore from backup - payroll data audit system v7.4.1 | 2026-06-05T09:02:37.485Z | user v7.4.1: SKILL.md 标题对齐版本号 + deliver_to_f","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"python3 scripts/data_scan.py \\\n  --data <工资数据.csv> \\\n  --output /tmp/data_scan_result.json"},{"language":"text","snippet":"============================================================\n📊 工资数据扫描报告\n============================================================\n\n📋 总记录数: 2000\n📅 最新发薪月: 2026-05\n\n📅 发薪月分布:\n  2026-05: 2000 人 ← 最新\n  2026-04: 1980 人\n\n🏢 公司主体分布:\n  道旅科技: 1500 人\n  道旅国际: 300 人\n  道旅服务: 200 人\n\n💰 主要计薪项汇总:\n  应发合计: ¥15,234,567.89\n  实发金额合计: ¥12,345,678.90\n  加班费小计: ¥234,567.89\n  个人社保: ¥1,234,567.89\n  个人公积金: ¥987,654.32\n\n👥 特殊人员:\n  新入职: 15 人\n  离职: 8 人\n  转正: 12 人\n  调薪: 5 人\n\n🔍 数据质量检测:\n  工号重复: ✅ 无异常\n  姓名为空: ✅ 无异常\n\n============================================================\n请确认以上数据是否正确，回复'确认无误'后开始正式审核。\n============================================================"},{"language":"bash","snippet":"python3 -m scripts.rules_engine \\\n  --data <本月工资数据.csv> \\\n  --prev <上月工资数据.csv> \\\n  --output /tmp/audit_result.json"},{"language":"bash","snippet":"python3 scripts/generate_report.py \\\n  --input /tmp/audit_result.json \\\n  --format both"},{"language":"bash","snippet":"python3 -m scripts.rules_engine \\\n  --data <工资数据.csv> \\\n  --step red_lines \\\n  --output /tmp/red_lines_result.json"},{"language":"bash","snippet":"python3 -m scripts.rules_engine \\\n  --data <工资数据.csv> \\\n  --step fields \\\n  --output /tmp/fields_result.json"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: payroll-data-audit\nversion: 6.2.2\ndescription: 工资数据审核系统，基于确定性规则引擎 + Python 脚本执行。\n  全量对齐《工资审核标准流程 SOP》6 步流程。v6.2 新增总审核报告（Master Report）、\n  规则判定过程详解（judgment）、黄线排除逻辑完善。v6.2.1 新增编排指南：单节点原则。\n  Use when user asks to 工资数据审核、薪资校验、算薪逻辑验证、薪酬合规检查、\n  工资单审核、月度薪资校验、发薪前数据检查、payroll audit、salary check、\n  wage verification、payroll compliance.\n  不适用于非薪酬类数据审核、纯算薪操作（非审核）、外部薪酬调研、个税/社保计算.\n  此技能需手动触发.\n---\n\n# Payroll Data Audit v6.2\n\n**架构原则**：确定性操作下沉到代码，模糊推理留给 LLM。AI 不做计算和判断，只做路由决策和报告翻译。\n\n## 概述\n\n工资数据审核系统，全量对齐《工资审核标准流程 SOP》6 步流程，对飞书/SAP/ADP 导出的工资表执行自动化合规校验。SOP 覆盖率 95%（41/43 项）。\n\n### v6.2 新功能\n\n- **总审核报告（Master Report）**：Phase 7/7，将数据扫描、审核结果、判定过程、问题清单、抽样校验聚合为一份完整的 HTML 总报告（`06_master_report.html`）\n- **规则判定过程详解（judgment）**：每条规则输出 `judgment` 字段，包含规则逻辑、检查范围、排除人数及原因、实际检查人数、通过率、判定结论，让看报告的人能看到\"怎么判的、排了谁、阈值是什么\"\n- **黄线排除逻辑完善**：YL-001~004、YL-006 新增实习生/日薪/保洁/当月入职/当月离职排除；YL-005（出勤天数超计薪天数）不排除任何人（数据质量问题全员检查）\n\n### v6.0 新功能\n\n- **表格化报告**：整体以表格形式呈现，信息密度高，替代 v5 的卡片+SVG 风格\n- **动态交互看板**：支持筛选/排序/搜索/展开明细/导出CSV/深色模式（零依赖，纯内嵌JS）\n- **数据支撑索引**：`data_index.json` 作为报告和看板的关联核心，保证数据一致性\n- **三者联动**：报告 ↔ 看板 ↔ 数据索引，通过 rule_id 双向锚定\n\n### 功能范围\n\n- **SOP 第一步（强制）**：数据扫描确认（发薪月/公司主体/计薪项/特殊人员/工号重复检测）\n- 字段完整性检查（30+ 列名容错映射）\n- 公式校验（Decimal 精度，0.01 容差）\n- 业务逻辑校验（出勤工资/天数/绩效系数/加班/最低工资）\n- 红线校验（实发≤0、加班超36h、低于最低工资、社保未缴）\n- 黄线校验（绩效异常、出勤超限、工资波动）\n- 蓝线校验（跨月趋势，仅提示）\n- 政策校验（道旅国际豁免、15号后入职、实习生/保洁豁免、离职当月社保）\n- 人数对比分析（新入职/离职/波动>5%）\n- 总额环比分析（12项计薪科目，±10%阈值自动标记）\n- 分主体/分四级部门对比（按公司主体分组环比）\n- 按人深入分析（连续在职筛选+排除逻辑+六类变化分类+核实标记）\n- HTML/Markdown 审核报告生成\n- **数据支撑**：每个审核结论必须有数据依据\n- **审核清单看板**：完整条目清单（结果+数据依据+处理建议），HTML+Markdown 双格式\n- **分段审核**：7阶段独立执行，避免上下文截断，支持断点续传\n- **抽样校验**：随机抽样+独立重算+偏差检测，二次确认审核结果\n- **超链接复核**：异常项可点击复核链接（支持 {emp_id}/{emp_name}/{row_index}）\n- **端到端流水线**：`run_full_pipeline.py` 一键跑完不中断（数据扫描→审核→报告→看板→抽样→问题清单→总审核报告）\n\n**不覆盖**：实际算薪操作、薪酬市场调研、个税计算、社保核算。\n\n### SOP 流程映射\n\n| SOP 步骤 | 本 Skill 对应 | 说明 |\n|---------|-------------|------|\n| 第一步：审核流程（强制） | `data_scan.py` + 用户确认 | **禁止跳步** |\n| 第二步：数据逻辑验证 | `rules_engine.py` 公式+业务逻辑 | 公式校验+5项业务规则 |\n| 第三步：异常数据扫描 | `rules_engine.py` 红/黄/蓝线 | 4红+6黄+4蓝 |\n| 第四步：总额对比分析 | `rules_engine.py --prev` 总额环比 | ±10%阈值 |\n| 第五步：按人深入分析 | `rules_engine.py --prev` 按人分析 | 排除+6类变化 |\n| 第六步：汇总审核报告 | `generate_report.py` / `generate_report_v6.py` | 结构化报告（v5）/ 表格化报告（v6） |\n| 第七步：审核清单看板 | `generate_kanban.py` / `generate_kanban_v6.py` | 静态看板（v5）/ 动态交互看板（v6） |\n| 第八步：抽样校验 | `sampling_verify.py` | 二次确认审核结果 |\n| 数据支撑索引 | `generate_data_index.py` | 三者关联核心（报告↔看板↔数据） |\n|| 分段审核编排 | `run_audit.py` | 7阶段独立执行+断点续传 |\n|| 端到端流水线 | `run_full_pipeline.py` | 一键跑完不中断，始终生成所有输出（含总报告） |\n|| 总审核报告 | `generate_master_report.py` | 聚合所有输出为一份完整 HTML 总报告 |\n\n## 使用\n\n### 决策路由\n\n先判断用户需求属于哪类场景，再执行对应流程：\n\n| 用户说的 | 匹配场景 | 执行 |\n|---------|---------|------|\n| \"帮我审核本月工资数据\" | 完整审核 (Step 1→6) | 先 data_scan → 用户确认 → run_full_audit |\n| \"快速看看有没有问题\" | 红线校验 | `--step red_lines` |\n| \"发薪前帮我理一下数据\" | 字段检查 | `--step fields` |\n| \"帮我验一下公式对不对\" | 公式校验 | `--step formulas` |\n| \"帮我出个审核报告\" | 报告生成 | `generate_report.py` |\n| \"帮我出个表格版审核报告\" | 报告生成 v6 | `generate_report_v6.py` |\n| \"帮我出个审核清单"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn70tx725606ywwb5gfj0vpxjx83admr\",\n  \"slug\": \"payroll-data-audit\",\n  \"version\": \"6.2.3\",\n  \"publishedAt\": 1784884730184\n}"},{"path":"scripts/rules.json","content":"{\n  \"version\": \"5.1.0\",\n  \"metadata\": {\n    \"lastUpdated\": \"2026-06-01\",\n    \"updatedBy\": \"HRCOE\",\n    \"description\": \"工资数据审核规则库，所有阈值和逻辑以本文件为准。全量对齐SOP v1.0\",\n    \"changelog\": \"v5.1.0: 新增道旅国际社保/公积金豁免政策(POL-004/POL-005); 新增业务逻辑校验规则(BR-001~BR-004); 新增按人分析排除条件(person_analysis_exclusions); 新增请假>2天排除逻辑; 新增多主体发薪检测\"\n  },\n  \"thresholds\": {\n    \"overtime_limit\": 36,\n    \"overtime_unit\": \"hour\",\n    \"overtime_breakdown\": [\n      \"平时加班时数\",\n      \"周末加班时数\",\n      \"法定加班时数\"\n    ],\n    \"min_wage_default\": 2360,\n    \"min_wage_shenzhen\": 2360,\n    \"min_wage_guangzhou\": 2300,\n    \"min_wage_dongguan\": 1900,\n    \"perf_coefficient_max\": 1.5,\n    \"perf_coefficient_min\": 0.5,\n    \"perf_coefficient_swing\": 0.5,\n    \"bonus_volatility_threshold\": 0.5,\n    \"supply_volatility_threshold\": 5000,\n    \"headcount_variance_threshold\": 0.05,\n    \"supply_months_tolerance\": 2\n  },\n  \"red_lines\": [\n    {\n      \"id\": \"RL-001\",\n      \"name\": \"实发≤0\",\n      \"description\": \"实发金额合计≤0，必须立即核实\",\n      \"condition\": \"sum(实发金额合计) <= 0\",\n      \"field\": \"实发金额合计\",\n      \"exclusions\": [],\n      \"severity\": \"BLOCK\",\n      \"action\": \"stop_and_alert\"\n    },\n    {\n      \"id\": \"RL-002\",\n      \"name\": \"加班超36h\",\n      \"description\": \"月加班总时数>36小时，违反劳动法\",\n      \"condition\": \"sum(平时加班时数 + 周末加班时数 + 法定加班时数) > 36\",\n      \"field\": \"平时加班时数\",\n      \"exclusions\": [\n        \"当月入职\",\n        \"当月离职\",\n        \"实习生\",\n        \"保洁\",\n        \"请假超过15天\"\n      ],\n      \"severity\": \"BLOCK\",\n      \"action\": \"stop_and_alert\"\n    },\n    {\n      \"id\": \"RL-003\",\n      \"name\": \"低于最低工资\",\n      \"description\": \"应发合计低于当地最低工资标准\",\n      \"condition\": \"应发合计 < 当地最低工资\",\n      \"field\": \"应发合计\",\n      \"exclusions\": [\n        \"实习生\",\n        \"保洁\",\n        \"当月长时间请假\",\n        \"当月入职\",\n        \"当月离职\"\n      ],\n      \"severity\": \"BLOCK\",\n      \"action\": \"stop_and_alert\"\n    },\n    {\n      \"id\": \"RL-004\",\n      \"name\": \"社保公积金应缴未缴\",\n      \"description\": \"不符合豁免政策但个人社保/公积金扣款为0\",\n      \"condition\": \"不符合豁免政策 AND 个人社保 == 0\",\n      \"field\": \"个人社保\",\n      \"exclusions\": [\n        \"实习生\",\n        \"日薪\",\n        \"保洁\"\n      ],\n      \"severity\": \"BLOCK\",\n      \"action\": \"stop_and_alert\"\n    }\n  ],\n  \"yellow_lines\": [\n    {\n      \"id\": \"YL-001\",\n      \"name\": \"绩效系数过高\",\n      \"threshold\": 1.5,\n      \"field\": \"绩效系数\",\n      \"description\": \"绩效系数>1.5，需核实是否有特殊贡献依据\",\n      \"action\": \"flag_and_explain\",\n      \"exclusions\": [\"实习生\", \"日薪\", \"保洁\", \"当月入职\", \"当月离职\"]\n    },\n    {\n      \"id\": \"YL-002\",\n      \"name\": \"绩效系数过低\",\n      \"threshold\": 0.5,\n      \"field\": \"绩效系数\",\n      \"description\": \"绩效系数<0.5，需核实绩效评估是否合理\",\n      \"action\": \"flag_and_explain\",\n      \"exclusions\": [\"实习生\", \"日薪\", \"保洁\", \"当月入职\", \"当月离职\"]\n    },\n    {\n      \"id\": \"YL-003\",\n      \"name\": \"绩效系数月度波动大\",\n      \"threshold\": 0.5,\n      \"field\": \"绩效系数\",\n      \"description\": \"本月系数与上月系数差值>0.5，需核实评估依据\",\n      \"action\": \"flag_and_explain\",\n      \"exclusions\": [\"实习生\", \"日薪\", \"保洁\", \"当月入职\", \"当月离职\"]\n    },\n    {\n      \"id\": \"YL-004\",\n      \"name\": \"住宿扣款变化\",\n      \"threshold\": 0,\n      \"field\": \"住宿扣款\",\n      \"description\": \"本月住宿扣款与上月不一致，需确认是"},{"path":"skill-card.md","content":"## Description: <br>\nPayroll Data Audit helps agents run deterministic payroll-data checks and produce audit reports for CSV or Excel payroll exports. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[tuobadaidai](https://clawhub.ai/user/tuobadaidai) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nHR, payroll, and finance reviewers use this skill to audit monthly payroll exports before payroll release, validate formulas and policy rules, compare current and prior periods, and create data-backed issue reports. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Payroll inputs and generated reports can contain sensitive employee compensation data. <br>\nMitigation: Run the skill only on authorized payroll data, write outputs to restricted directories, and treat generated JSON, Markdown, HTML, and issue reports as sensitive files. <br>\nRisk: Review-link URLs may expose raw employee identifiers if configured with employee fields. <br>\nMitigation: Use review links that avoid raw employee identifiers or route through an access-controlled internal system. <br>\nRisk: Generated HTML reports may carry weak privacy and HTML-safety guardrails. <br>\nMitigation: Review, redact, or sanitize generated HTML before sharing outside the payroll review group. <br>\nRisk: Payroll audit conclusions may be misleading if source data or red-line findings are not reviewed. <br>\nMitigation: Complete the data-scan confirmation step and have qualified payroll reviewers validate blocking findings before using outputs for payroll decisions. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/tuobadaidai/skills/payroll-data-audit) <br>\n- [Publisher profile](https://clawhub.ai/user/tuobadaidai) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown guidance with shell commands; generated audit artifacts may include JSON, Markdown, HTML, and CSV-style exports.] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Processes payroll CSV or Excel inputs and writes persistent audit outputs to caller-selected paths.] <br>\n\n## Skill Version(s): <br>\n6.2.3 (source: server release evidence; artifact frontmatter reports 6.2.2) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>"},{"path":"requirements.txt","content":"pandas>=2.0.0\nnumpy>=1.24.0\nopenpyxl>=3.1.0"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"工资数据审核系统，基于确定性规则引擎 + Python 脚本执行。 全量对齐《工资审核标准流程 SOP》6 步流程。v7.2 修复P0阻断bug：_get_pay_month() 支持 中文格式（\"2026年4月\"/\"2026年04月\"/\"202604\"），RL-003/RL-007 排除逻辑完全生效。 v7.1... Skill: Payroll Data Audit Owner: tuobadaidai Summary: 工资数据审核系统，基于确定性规则引擎 + Python 脚本执行。 全量对齐《工资审核标准流程 SOP》6 步流程。v7.2 修复P0阻断bug：_get_pay_month() 支持 中文格式（\"2026年4月\"/\"2026年04月\"/\"202604\"），RL-003/RL-007 排除逻辑完全生效。 v7.1... Tags: latest:7.4.1 Version history: v6.2.3 | 2026-07-24T09:18:50.184Z | user Restore from backup - payroll data audit system v7.4.1 | 2026-06-05T09:02:37.485Z | user v7.4.1: SKILL.md 标题对齐版本号 + deliver_to_f","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1265,"uniquenessScore":48,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T00:29:07.473Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-10T00:29:07.473Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T07:40:04.067Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}