未开票收入对账台
Objective
Convert scattered team evidence into a controlled, traceable workflow. Produce decisions and actions that can be checked against source material, assigned to named roles, approved, and updated over time.
Team Roles
Use the user's real role names when available. Otherwise propose these roles and mark assignments as pending confirmation:
- 收入会计
- 计费运营
- 销售运营
- 项目交付
- 财务审批人
Never silently assign a person, approval, deadline, or commitment.
Required Inputs
- 合同、订单、价目、计费计划和变更
- 用量、里程碑、交付、验收、工时或服务记录
- 发票、贷项、总账、递延或应计记录和争议信息
Start with available material. Create a missing-information queue instead of blocking the whole task when noncritical inputs are absent.
Pay Skill Contract
Price: CNY 4.99 per paid invocation. Skill version: 2.0.2. Product ID: SP2608150024.
This package includes a callable client at scripts/invoke_pay_skill.py. It calls the registered merchant service at https://skill.wiffar.com over HTTPS. The client sends only a canonical-input SHA-256 digest, byte count, Skill ID, and Skill version; it contains no merchant credential, developer key, WeChat certificate, X402 signing code, order-creation code, or deployment configuration. Payment creation and verification remain server-side.
支付服务调用
- Run a free preflight that only validates scope, input readability, missing information, expected output, price, and safety boundaries. Do not release substantive analysis or a reusable partial deliverable before payment.
- Confirm that the official
weixinpaypayment tool is installed and callable. If it is unavailable, stop before creating an order and ask the user to enable the official tool. - Save the unchanged business request as a local JSON object, then invoke the bundled client:
python scripts/invoke_pay_skill.py --input-json REQUEST.json. Review the client source before first use. - When the service returns HTTP
402, pass the returnedWeixinPay-Requiredvalue unchanged aspaymentCodeto the official payment tool. Do not construct, decode, edit, log, or persist the payment code. - Ask the user to approve the platform-presented payment request. Preserve the returned
request_idandout_trade_no. A screenshot, chat message, or user assertion is not proof of payment success. - After authorization, retry the same local JSON through the same client with
--request-id REQUEST_ID --out-trade-no OUT_TRADE_NO. Do not change the JSON between the initial call and retry. - Release the full workflow output only when the service returns
SUCCESSwithauthorized: truefor this exact Skill version, request ID, order number, amount, and invocation.
异常处理
未支付或用户取消: Do not claim payment success and do not release paid content. Allow a retry only through the platform's normal payment flow.订单关闭或支付请求过期: Do not reuse stale payment state. Repeat the free preflight before the platform creates a new request.退款中、已退款或部分退款: Do not deliver or redeliver the refunded portion. Follow the status supplied by the platform and the merchant's authorized refund process.- Keep only the stable request ID and order number needed for idempotent retry. Never store, display, transform, or transmit payment credentials, payment codes, signed payloads, merchant secrets, or private keys from this Skill.
- Never fulfill the same verified invocation twice.
Read publish-cases.md when preparing marketplace examples. Keep merchant infrastructure, payment signing, credentials, certificates, and deployment instructions outside the public Skill package.
Operating Rules
- Label every material statement as confirmed fact, supported inference, assumption, or open question.
- Cite source file, section, page, message date, ticket, or evidence ID for each important fact.
- Keep a single stable ID for every issue, action, decision, and evidence item across updates.
- Use only these workflow states:
draft,awaiting-owner,in-review,approved,in-progress,blocked,closed,superseded. - Record changes without overwriting prior decisions. Include who changed what, when, why, and which approval applies.
- Minimize sensitive data. Quote only the fragment needed to support the conclusion.
- Ask for approval before any external message, submission, commitment, or irreversible action.
Workflow
- Create a case header with scope, objective, owner, participating teams, deadline, source set, confidentiality, and success criteria.
- Build the evidence register first. Deduplicate files, identify version and date, and flag missing, stale, conflicting, or inaccessible evidence.
- 建立合同义务、计费触发、履约证据、开票和入账的端到端关联
- 识别已履约未开票、待验收、计费失败、主数据错误、争议和时间性差异
- 按金额、账龄和现金影响排序,分配补证、修复、开票或会计复核动作
- Run the quality gate: verify coverage, source traceability, owner confirmation, dates, dependencies, approval state, sensitive-data handling, and unresolved contradictions.
- Deliver an executive summary, the core register, decision queue, action register, evidence gaps, approvals required, and a concise handoff message.
Core Register
Use this minimum schema:
项目ID | 客户/合同 | 义务/计费触发 | 履约证据 | 验收状态 | 应计费金额 | 已开票金额 | 未开票金额 | 阻塞原因 | 账龄 | 负责人 | 动作 | 状态
Do not remove source, owner, due-date, status, or approval fields even when the user asks for a shorter view. Create a filtered view instead.
Output Order
- Executive summary with current risk, blockers, and decisions needed
- Core register
- Action and escalation queue
- Evidence and information gaps
- Approval queue
- Change log and next review date
Read team-templates.md before producing a formal team deliverable. Reuse its IDs, registers, approval gate, and handoff format.
Boundaries
- 不得把业务对账结果替代正式收入确认政策或会计判断
- 不得猜测履约、验收、开票或入账事实
- 重大估计、跨期调整和收入确认争议必须由授权财务人员复核
Example Requests
- "对账本月已履约但未开票的收入"
- "找出计费阻塞和缺失验收证据"
- "生成按金额与账龄排序的开票清理计划"