Skip to content

chore: scaffold repo layout - #1

Merged
L480 merged 7 commits into
mainfrom
claude/execute-plan-md-wlkykf
Aug 2, 2026
Merged

chore: scaffold repo layout#1
L480 merged 7 commits into
mainfrom
claude/execute-plan-md-wlkykf

Conversation

@L480

@L480 L480 commented Aug 2, 2026

Copy link
Copy Markdown
Owner

Add .gitattributes marking generated paths, package init, and a
README placeholder to be filled in once the CLI exists.

Co-Authored-By: Claude Sonnet 5

claude added 7 commits August 2, 2026 16:11
Add .gitattributes marking generated paths, package init, and a
README placeholder to be filled in once the CLI exists.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013ia7VGSzYNgU1zfhBWbagU
Add tonie_writer/nfcfile.py to parse Flipper Zero NFC device files
(v4, SLIX) into a TonieTag dataclass, validating the SLIX shape the
Toniebox expects. Fixtures are real files copied from upstream.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013ia7VGSzYNgU1zfhBWbagU
Add scripts/sync_upstream.sh, which shallow-clones
nortakales/flipper-zero-tonies, mirrors only *.nfc files into
data/tonies/ via rsync --delete, and records provenance in
data/UPSTREAM.json. Commit the initial mirror (755 files) so the
repo is usable offline right after clone.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013ia7VGSzYNgU1zfhBWbagU
Add scripts/build_index.py, which walks data/tonies/**/*.nfc via the
nfcfile parser and emits a searchable JSON index plus a browsable
TONIES.md grouped by language/series, with a duplicate-UID section.
Shared text normalization (umlaut transliteration, diacritics
stripping, slugging) lives in tonie_writer/normalize.py so the index
and the CLI's fuzzy matcher stay in lockstep.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013ia7VGSzYNgU1zfhBWbagU
sync-tonies.yml runs the mirror + index rebuild nightly and pushes a
commit only when something actually changed, with a dry_run input
for testing. ci.yml runs the unittest suite plus a syntax check on
push/PR.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013ia7VGSzYNgU1zfhBWbagU
…d CLI

- tonie_writer/catalog.py: load data/tonies.json and rank queries
  against it (exact / startswith / token / fuzzy tiers), with the
  disambiguation and --language-narrowing rules from the plan.
- tonie_writer/proxmark.py: locate + invoke the pm3 client, and pure,
  hardware-free parsers for `hf 15 info`/`rdbl` output. Only ever
  builds the two safe raw magic-UID frames — csetuid is never used.
- tonie_writer/writer.py: orchestrates writing blocks (batched, with
  per-block OPTION-flag retry), writing the UID, and verifying by
  read-back, all injectable with a fake runner for testing.
- tonie_writer/cli.py + ./tonie: list/search/info/write/read/doctor/
  index subcommands.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013ia7VGSzYNgU1zfhBWbagU
README covers the quickstart, tag-compatibility warning, and command
table. docs/HARDWARE.md is the full buying guide, hf 15 command
reference, and the csetuid danger explanation. docs/WORKFLOW.md
explains what's generated vs. hand-written and how the nightly sync
and CI jobs work.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013ia7VGSzYNgU1zfhBWbagU
@L480
L480 merged commit bd8bb72 into main Aug 2, 2026
1 check passed
@L480
L480 deleted the claude/execute-plan-md-wlkykf branch August 2, 2026 16:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants