# Repository instructions ## Commit and push shorthand - When the user says "마무리 해" (or "마무리해"), treat it as authorization to verify the completed task, commit its changes, and push to the configured upstream. - Otherwise, push only with the user's explicit authorization. Preserve unrelated pending changes and report what was committed and pushed. - This shorthand does not authorize offline artifacts, version bumps, tags, or separate manual deployments. ## Online-only release policy - The supported product and release target is the online app, including the GitHub Pages deployment. - Do not run `npm run build:offline` or `npm run package:offline` during implementation, verification, commits, releases, or deployments. - Do not create, commit, upload, or publish standalone offline builds, `offline-dist/` output, or offline ZIP artifacts. - Online/offline feature parity is no longer required. Legacy offline-related source may remain only where the online Pages build still depends on shared adapters. - Verify repository changes with the relevant tests, `npm run check`, `npm run build`, and `npm run build:pages` when preparing a deployment. - Do not bump the package version, create version-specific release notes, create tags, or publish GitHub Releases for routine online commits and deployments unless the user explicitly requests them. - Use `UPDATES.md` as the single user-facing update history and include only changes that affect service users. ## HolodoriDB source policy - Always fetch the official HolodoriDB remote main before collecting or checking game data and strings. Read files at the fetched commit, not local checkout files or stale remote-tracking refs. - Use scripts/holodoridb-source.mjs for collectors. A failed remote fetch must stop collection; do not fall back to cached data or --offline. - Resolve Korean song titles through Music.json titleLangId and LangMusic_Kor.json before asking the user for names. ## Collection review before calculator extraction - A collection request starts with `npm run data:sync`: compare all three official remotes against the last successful collection commits in data/holodoridb/manifest.json. Inspect every intervening commit and every changed file, including all strings, tables unrelated to the calculator, and changes later reverted. - Read data/holodoridb-review/latest.json (full JSON before/after details), latest.md, and changes.patch. Present a Korean semantic summary grouped by content (cards/skills, songs, events, translations, other systems), describing additions, removals, corrections, and relevant dates. Do not substitute a file list or calculator-only summary for this review; state unknown meanings explicitly. - Provide this report to the user before acquiring/extracting calculator data. Then continue with `npm run data:apply` and other required collectors within the authorized task; no additional approval is implied. A review-only request must not extract data. - Reviewing does not advance the collection baseline. Extraction must use the reviewed remote commits; if any remote changes, regenerate and present the report first.