Conversation
- skr03.json: 289 accounts (expanded Klasse 7 + granularity in 0/1/8) - skr04.json: 254 accounts derived from SKR03 cross-references - mcc_skr_mapping.json: 230 mappings incl. digital goods MCCs 5815-5818, hotel range 3351-3500, coworking (7299), commercial clothing (5137/5139) - TypeScript package: Kontenrahmen + MCCMapper with MCC range expansion, SKR03/SKR04 singletons, suggestAccount() returning undefined for unmapped - 53 Vitest tests across kontenrahmen, mcc, and data_integrity suites - JSON Schema validation for skr03.json and mcc_skr_mapping.json - GitHub Actions CI: test on Node 18/20/22 + schema validation job - MCC contribution PR template
- Move src/data/ to .gitignore (generated by prebuild from root JSON files) - Add prebuild/pretest scripts to auto-copy root JSON → src/data/ - Remove german-accounting-spec.md and TODOS.md (internal planning docs) - Fix CI schema validation to point at root-level JSON files - Rewrite README with cleaner API docs, data schema examples, contribution guide - Add MIT LICENSE
Move JSON files from project root into src/data/ — one location, no copies, no copy scripts. Remove prebuild/pretest hacks from package.json.
tsup loader:copy caused ERR_IMPORT_ASSERTION_TYPE_MISSING on Node 20 ESM. Removing the custom loader lets tsup inline the JSON directly into the JS bundle — no separate JSON files in dist/, no import attribute issues.
suggestAccount('3175') was returning mcc: '3000-3350' (the range key).
Now returns the actual queried code. Also fix CI branch trigger to include
'initial' and correct stale steuerschluessel comment in README.
JSON Schema validation was failing: skr03.json meta missing 'last_updated' and klassen entries using 'id' instead of required 'klasse' field.
scka-de
added a commit
that referenced
this pull request
Apr 3, 2026
* chore: add gstack skill routing rules to CLAUDE.md
* feat: add TypeScript package with SKR03/SKR04 + MCC mapper (v0.1.0)
- skr03.json: 289 accounts (expanded Klasse 7 + granularity in 0/1/8)
- skr04.json: 254 accounts derived from SKR03 cross-references
- mcc_skr_mapping.json: 230 mappings incl. digital goods MCCs 5815-5818,
hotel range 3351-3500, coworking (7299), commercial clothing (5137/5139)
- TypeScript package: Kontenrahmen + MCCMapper with MCC range expansion,
SKR03/SKR04 singletons, suggestAccount() returning undefined for unmapped
- 53 Vitest tests across kontenrahmen, mcc, and data_integrity suites
- JSON Schema validation for skr03.json and mcc_skr_mapping.json
- GitHub Actions CI: test on Node 18/20/22 + schema validation job
- MCC contribution PR template
* chore: clean up repo structure and add LICENSE
- Move src/data/ to .gitignore (generated by prebuild from root JSON files)
- Add prebuild/pretest scripts to auto-copy root JSON → src/data/
- Remove german-accounting-spec.md and TODOS.md (internal planning docs)
- Fix CI schema validation to point at root-level JSON files
- Rewrite README with cleaner API docs, data schema examples, contribution guide
- Add MIT LICENSE
* refactor: single source of truth for data files in src/data/
Move JSON files from project root into src/data/ — one location, no copies,
no copy scripts. Remove prebuild/pretest hacks from package.json.
* fix: inline JSON data into bundle instead of copying as separate files
tsup loader:copy caused ERR_IMPORT_ASSERTION_TYPE_MISSING on Node 20 ESM.
Removing the custom loader lets tsup inline the JSON directly into the JS
bundle — no separate JSON files in dist/, no import attribute issues.
* chore: remove sourcemaps from published package
* chore: add npm package metadata (repository, homepage, bugs, engines, author)
* fix: return queried MCC code in suggestion instead of raw range string
suggestAccount('3175') was returning mcc: '3000-3350' (the range key).
Now returns the actual queried code. Also fix CI branch trigger to include
'initial' and correct stale steuerschluessel comment in README.
* fix: add last_updated to meta and rename id→klasse in klassen array
JSON Schema validation was failing: skr03.json meta missing 'last_updated'
and klassen entries using 'id' instead of required 'klasse' field.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds the complete v0.1.0 implementation: enriched SKR03 (289 accounts) and SKR04 (254 accounts) data files, MCC-to-SKR mapping (230 codes including digital goods 5815–5818 and hotel range 3351–3500), and a TypeScript package with
SKR03/SKR04singletons andsuggestAccount(). MCC range entries (airlines, hotels, car rentals) are expanded at load time for O(1) lookup. Includes 53 Vitest tests, JSON Schema validation, GitHub Actions CI across Node 18/20/22, and a contribution PR template for new MCC mappings.