DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

PerryLink /

PerryLink/dsh-excel-reconcile

Verified

按主键对齐两份 Excel/CSV 表,按容差逐字段比较,输出 Markdown 报告、JSON 结果与差异工作簿。

★ 0 Stars0 Forks4 IssuesN/A Community rating0 Confirmed installs
View on GitHubProject homepage
READMESource: main@9fbb31b1

dsh-excel-reconcile — Excel reconcile

English · 简体中文 · Español · Português · हिन्दी

dshfind

dsh-excel-reconcile joins two spreadsheets on a declared key and compares declared fields with declared tolerances, producing a markdown report, a JSON result and a diff workbook.

It reconciles; it does not adjudicate. A difference means the two sides disagree, not that either is wrong. Money is compared as integer minor units rather than floating point, so 12.3 and 12.30000000001 are the same amount at two decimal places, and a key that appears twice is reported instead of being paired with the first match.

Install

dsh plugin --profile <name> add dsh-excel-reconcile
dsh --profile <name> --dump-config | grep 'dsh-excel-reconcile'

What it looks like

Workflow diagram for dsh-excel-reconcile: document → rule pack → findings.

Workflow overview: document → rule pack → findings.

Boundary: this is a comparison tool, not an audit. It does not decide which side is correct, does not verify that an invoice exists, and does not evaluate whether a payment was due. A duplicate key is reported and left uncompared rather than paired arbitrarily, because pairing the first of several matches hides the difference that matters. Tolerances are configuration, not regulation: the report says so, and the defaults only absorb rounding.

What it answers

  • Which keys exist on one side and not the other?
  • Which matched rows disagree, on which field, and by how much?
  • Is the disagreement bigger than the tolerance I configured?
  • Which keys cannot be compared at all because they are duplicated?

Standards it follows

This package encodes no clause. The reconciliation schema is its own: keys, compared fields, join mode, tolerance and severity. That is deliberate — a reconciliation has no normative basis to cite, and inventing one would make the report look more authoritative than it is.

The only format-level standards it depends on are the OOXML spreadsheet parts (sharedStrings.xml, cellXfs/numFmtId, workbook.xml plus _rels), which are read by dsh-table-ingest.

Compatibility

Surface Status
Harness peer range >=0.1.2-rc.1 <0.2.0 || >=0.2.0-0 <0.3.0
Node `^22.19.0
Platforms all (pure ESM; no native code, no network, no model call)

What it does

The tool takes two file paths and a YAML configuration:

Field Meaning
a.table, a.keys Side A's table name and key fields
b.table, b.keys Side B's, positionally matched to A's keys
join full (default), left, inner, right
compare[] Fields to compare: a, b, kind (number/text/date), abs, rel, severity, label
duplicates reject (default) reports and skips, aggregate would sum
scale Decimal places for money, default 2

Findings are typed: number-diff, text-diff, date-diff, not-a-number, missing-in-a, missing-in-b, duplicate-key, empty-key.

Configuration

Key Default Meaning
rulesFile rules/excel-reconcile.yaml 规则库路径

Material format

a: { table: 应收, keys: [合同号] }
b: { table: 对账单, keys: [合同号] }
join: full
compare:
  - { a: 客户, kind: text }
  - { a: 金额, kind: number, abs: 0.01 }
  - { a: 到期日, kind: date }

The diff workbook has five sheets: 汇总, 差异明细 (one row per difference, filterable), 仅A存在, 仅B存在, 合并结果. The difference sheet's columns are fixed: 序号, 问题类型, 严重程度, 主键, 字段, A 侧, B 侧, 差异, 说明, 建议处理, 处理状态.

Rule sources

There is no evidence directory because there is nothing to cite: the rule pack is empty by design and each reconciliation carries its own configuration.

pnpm run check:citations   # expects 0 segments, 0 placeholders, 0 untraceable

Known limits: the join is single-level (no chained joins); a key present twice is never paired; money is compared at the configured scale, so a value carrying more decimals than that is rounded; and a column missing on one side produces a difference on every matched row rather than being skipped.

Troubleshooting

  • The plugin installs but the tool never appears: check that main resolves to lib/index.mjs and that pnpm run build produced it.
  • dsh plugin add rejects the package: the peer range covers 0.1.x and 0.2.x; outside it, grant an explicit exemption.
  • A rule did not run: read the skipped array.

Development

pnpm install
pnpm run typecheck
pnpm test
pnpm run build
node ../scripts/sync-shared.mjs dsh-excel-reconcile

PerryLink DSH Plugin Family

This project is part of the DeepSeek Harness plugin family from PerryLink. The roster stays collapsed below so every README keeps a short first screen; expand it to see every row and its status.

Expand all plugins
Plugin Status
dsh-aqua-input-check
dsh-archive-check
dsh-auto-review
dsh-autotier
dsh-bid-ca-precheck
dsh-bid-qual-check
dsh-cert-mcp
dsh-checkpoint-rewind
dsh-click
dsh-composer-history
dsh-contract-stance
dsh-customs-doc-check
dsh-data-quality
dsh-demurrage-ledger
dsh-doublecheck
dsh-drill-script-check
dsh-eia-guide-check
dsh-emergency-plan
dsh-essay-rubric-check
dsh-evidence-check
dsh-export-ctl-check
dsh-fast
dsh-fmea-table-check
dsh-forecast-penalty
dsh-fund-research
dsh-github
dsh-gongwen-flow-check
dsh-gongwen-word-check
dsh-guard-plan-qc
dsh-hazchem-check
dsh-hazplan-check
dsh-hidden-risk-map
dsh-hs-classify
dsh-icd-rule-check
dsh-industry-research
dsh-lawcite-adapter
dsh-laya
dsh-lc-doc-check
dsh-learning-gap-check
dsh-library
dsh-local-ai
dsh-lsp-actions
dsh-mask
dsh-mcp-panel
dsh-medrec-qc
dsh-memento
dsh-nsfc-form-check
dsh-nurse-record-check
dsh-observe
dsh-origin-rvc-check
dsh-ota-review-check
dsh-output-styles
dsh-paper-doc-adapter
dsh-permission-rules
dsh-permit-report-check
dsh-pipeline-check
dsh-pleading-draft
dsh-plugin-doctor
dsh-plugin-guide
dsh-plugin-kit
dsh-plugin-upgrade
dsh-policy-brief-draft
dsh-power-loss-split
dsh-power-ticket-check
dsh-ppap-check
dsh-protest-deadline
dsh-railway-window
dsh-repair-order-qc
dsh-research-report
dsh-review-reply-check
dsh-rulefile-check
dsh-safety-brief-check
dsh-score
dsh-session-sync
dsh-site-log-check
dsh-skill-pack-security
dsh-soe-decision-check
dsh-soilwater-check
dsh-sop-sync-check
dsh-spc-gbt-adapter
dsh-talk
dsh-tender-extract
dsh-tender-matrix
dsh-test-drive
dsh-ticktick
dsh-translate
dsh-warranty-calc
dsh-budget 🧊 FROZEN — see the repo README
dsh-claude-move 🧊 FROZEN — see the repo README
dsh-defend 🧊 FROZEN — see the repo README
dsh-draw 🧊 FROZEN — see the repo README
dsh-reach 🧊 FROZEN — see the repo README
dsh-background-agents 🚫 RETIRED — see the repo README
dsh-session-pin 🚫 RETIRED — see the repo README
dsh-team-rooms 🚫 RETIRED — see the repo README

License

Apache License 2.0 © 2026 dsh-excel-reconcile contributors.

—/ 5

No ratings yet

Verified DSH bundle

Commit 9fbb31b126d6

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout