Replace the terse install summary with a click-by-click guide that
covers the full setup in both README.md and README.zh-CN.md:
clone+pip, GCP service account, moving the key out of the repo,
creating the sheet with header row, writing config.json, and a
sanity check. Flag the zh-CN tab-name gotcha (工作表1 vs Sheet1)
that causes HTTP 400 Unable to parse range.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- frankfurter.app now redirects to frankfurter.dev/v1/ and blocks the
default Python urllib UA with 403. Hit the new endpoint directly and
send a named User-Agent.
- Extend .gitignore to block common service-account and credential file
patterns (asset/, *-sa.json, *-service-account*.json, *credentials*.json,
*-key.json) so keys can't be committed by accident.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Receipt-image to Google Sheets expense logger with HKD conversion.
Includes SKILL.md, categories/schema reference, config template,
and Python scripts for FX conversion (frankfurter.app) and Sheets append.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>