DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

TYEclipse /

TYEclipse/dsh-checkdigit

Verified

Check-digit mathematics toolbox for DeepSeek Harness (dsh): generate, validate and detect Luhn / Verhoeff / Damm / ISBN / EAN / UPC / ISIN / CUSIP / IBAN check digits — zero runtime dependencies

★ 0 Stars0 Forks2 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@3d0f9b56

dsh-checkdigit

Check-digit mathematics toolbox for DeepSeek Harness (dsh): generate, validate and detect check digits for 11 schemes — Luhn, Verhoeff, Damm, ISBN-10, ISBN-13, EAN-8, EAN-13, UPC-A, ISIN, CUSIP and IBAN.

校验位数学工具箱:生成 / 验证 / 识别 11 种校验位(Luhn、Verhoeff、Damm、ISBN、EAN、UPC、ISIN、CUSIP、IBAN),零运行时依赖、纯本地算术。

Why

Language models routinely botch check-digit arithmetic: wrong card-number checksums, ISBNs that fail validation, IBANs with impossible check digits. Every algorithm here is implemented from its published specification with pure integer arithmetic — deterministic, offline, zero runtime dependencies — and cross-checked against published worked examples (Apple's US0378331005, the classic GB82 WEST 1234 5698 7654 32, the Luhn textbook example 79927398713, and more).

Install

dsh plugin --profile web add github:TYEclipse/dsh-checkdigit

Then add dsh-checkdigit to dsh.profile.bundles in your profile's package.json if it is not auto-activated, and restart dsh.

Tools

checkdigit_generate

Compute the check digit for a payload and return the complete identifier.

checkdigit_generate(scheme="luhn", payload="7992739871")
→ checkDigit: "3", complete: "79927398713"

Supported scheme values and their payloads:

scheme payload check digit example complete
luhn digits (any length ≥ 1) last digit 79927398713
verhoeff digits (any length ≥ 1) last digit 2363
damm digits (any length ≥ 1) last digit 5724
isbn10 9 digits 10th char (0-9 or X) 0306406152
isbn13 12 digits 13th digit 9780306406157
ean8 7 digits 8th digit 96385074
ean13 12 digits 13th digit 4006381333931
upca 11 digits 12th digit 036000291452
isin 2 letters + 9 alphanumerics 12th char (digit) US0378331005
cusip 8 chars from [A-Z0-9*@#] 9th char (digit) 037833100
iban 2-letter country + BBAN chars 3–4 (two digits) GB82WEST12345698765432

Use it to build test card numbers, ISBNs, barcodes, securities identifiers or account numbers whose check digits actually verify.

checkdigit_validate

Verify the check digit of a full identifier. The scheme is auto-detected when omitted (ISIN → CUSIP → IBAN → EAN-13 → UPC-A → EAN-8 → ISBN-10 → Luhn); pass scheme to force one.

checkdigit_validate(value="GB82WEST12345698765432")
→ valid: true, scheme: "iban", iban.country: "GB", iban.formatted: "GB82 WEST 1234 5698 7654 32"

checkdigit_validate(value="79927398714")
→ valid: false, scheme: "luhn", checkDigit: "4", expected: "3",
  detail: "Luhn: check digit should be 3, but the value ends in 4"

Spaces and dashes in the input are ignored. When a value is invalid, the result carries the expected check digit so callers can fix it programmatically.

checkdigit_info

Describe the supported schemes: identifier lengths, payload formats, check-digit positions and worked examples. Call with a scheme for one scheme, or without arguments for all 11.

Supported schemes

Scheme Standard Detail
Luhn ISO/IEC 7812 Credit/debit cards, IMEI, loyalty cards
Verhoeff — Dihedral-group checksum; catches all single errors and adjacent transpositions
Damm — Quasigroup operation; full-value tally must be zero
ISBN-10 ISO 2108 Mod-11; check digit may be X (= 10)
ISBN-13 ISO 2108 EAN-13 arithmetic (Bookland)
EAN-8 / EAN-13 GS1 GTIN-8 / GTIN-13 Retail barcodes
UPC-A GS1 GTIN-12 North American retail barcodes
ISIN ISO 6166 Securities; letters expand A=10…Z=35, then Luhn
CUSIP ANSI X9.6 North American securities; * @ # allowed; even positions doubled
IBAN ISO 13616 Mod-97 over letter-expanded rearranged string; BBAN length table for 75+ countries

Development

pnpm install
pnpm build
pnpm test   # 51 tests, anchors cross-checked against published worked examples
pnpm lint

License

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit 3d0f9b56fe2c

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