Releases: snapsynapse/hardguard25
Releases · snapsynapse/hardguard25
Python v1.3.1 — PyPI landing polish
Documentation and packaging polish for the HardGuard25 Python package. No code changes.
Install
```bash
pip install hardguard25
```
What's new
- Full PyPI landing page with quickstart, API reference table, sizing table, and "When NOT to Use" guardrails — so the PyPI project page stands on its own without bouncing readers to GitHub
- Root README sizing table expanded from 6 rows to the full 9-row spec set, with an entropy column and recommended defaults
- Root README excluded-letter pairings fixed to cover all 11 removed letters (added `L/1`, removed duplicate `B/D`)
Links
Python v1.3.0 — PyPI release
First PyPI release of the HardGuard25 Python reference implementation.
Install
pip install hardguard25What's in 1.3.0
Matches the v1.3.0 spec release (2026-03-09):
- 25-character unambiguous alphabet (
0123456789ACDFGHJKMNPRUWY) generate,validate,normalize,check_digitAPI- Optional Mod-25 weighted check digit (ISO 7064 style)
- Type hints +
py.typedmarker
Packaging
This release also modernizes pyproject.toml:
- SPDX license expression per PEP 639
- Explicit package discovery
- Full classifier set
Links
v1.3.0 — Agent Skill & Standard Repositioning
Added
- Agent Skill — Full HardGuard25 skill definition (skills/hardguard25/) following the agentskills.io open standard, with alphabet reference, length selection table, code examples in JS/Python/Go, normalization rules, check digit algorithm, and comparison matrix
- Skill Provenance — Version tracking metaskill (skills/skill-provenance/) for manifest and changelog integrity across sessions and platforms
- Claude Code plugin metadata (.claude-plugin/plugin.json)
- 10-domain use case table in README — order IDs, patient wristbands, license keys, IoT device tags, exam codes, and more
- "No Library Needed" section in README — raw alphabet, regex, and copy-paste generation snippets for any language
- normalize() added to all quickstart examples — lowercase/substitution handling shown by default
Changed
- README repositioned from "unique ID alphabet" to "open standard for human-safe identifiers" — leads with the problem and use cases before any code
- SPEC.md updated to Version 1.3 / March 2026
- All package versions bumped — js/package.json, python/pyproject.toml, python/init.py
v1.2.0 — HardGuard25
HardGuard25 v1.2.0
A human-friendly unique ID alphabet. 25 characters, zero ambiguity.
0 1 2 3 4 5 6 7 8 9 A C D F G H J K M N P R U W Y
What's New (since 1.0.0)
Alphabet
- E excluded — E/3 is a dyslexia confusable; digits take priority. Alphabet reduced from 26 → 25 characters.
Features
- Optional Mod-25 weighted check digit (ISO 7064 style) — catches all single-character substitution errors
- Reference implementations in JavaScript, Python, and Go — all using CSPRNG + rejection sampling
- Interactive generator app via GitHub Pages
- Collision guidance tables and entropy/recommended-length tables
- Comparison matrix against Crockford Base32, z-base-32, Canadian Postal, Nintendo Base-31, RFC 4648
Install
npm install @snapsynapse/hardguard25 # JavaScript
pip install hardguard25 # Pythonimport "github.com/snapsynapse/hardguard25/go" // Go