data: switch to recovered game DB and refresh cards and charts
Publish GitHub Pages output / publish (push) Successful in 44s
Publish GitHub Pages output / publish (push) Successful in 44s
This commit is contained in:
@@ -19,3 +19,11 @@ npm-debug.log*
|
||||
.DS_Store
|
||||
.codex-remote-attachments/
|
||||
*.tsbuildinfo
|
||||
|
||||
!data/game-db/
|
||||
!data/game-db/current.json
|
||||
!data/game-db/applied.json
|
||||
!data/game-db/snapshots/
|
||||
!data/game-db/snapshots/**
|
||||
data/game-db/derived/
|
||||
data/game-db/review/
|
||||
|
||||
@@ -22,15 +22,17 @@
|
||||
- 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
|
||||
## Game DB 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.
|
||||
- The captured Android game DB is the authoritative master-data source. Use scripts/game-db-source.mjs and the hash-pinned snapshot in data/game-db/current.json. Do not fetch HolodoriDB or substitute third-party data when a table is missing.
|
||||
- Preserve provenance: SUS charts are separate game assets; live event schedules and bonus rules are absent from this DB. Do not label historical manual event records as DB-derived or invent missing server data.
|
||||
- Resolve Korean song titles through Music.json titleLangId and LangMusic_Kor.json in the snapshot.
|
||||
- Keep account credentials, keys, raw memory and recovery files in ignored local inspection directories; only verified master tables and non-secret provenance belong in the source snapshot.
|
||||
|
||||
## 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.
|
||||
- A collection request starts with npm run data:sync. Compare every table and string in the selected snapshot with the last successful snapshot in data/game-db/applied.json, including non-calculator systems.
|
||||
- Read data/game-db/review/latest.json and latest.md. Report semantic changes in Korean, grouped by cards/skills, songs, events, translations and other systems. Include additions, removals, corrections and relevant dates; state unknown meanings explicitly. First import is a snapshot registration, not evidence that every row is newly added content.
|
||||
- Present the review before npm run data:apply. Then continue authorized collectors without an additional approval. Review-only requests must not extract data.
|
||||
- Reviewing does not advance the collection baseline. Extraction must use the reviewed snapshot hash; changes require a new review first. Never fall back to older or external sources after validation failure.
|
||||
- See docs/game-data-source.md for snapshot import and separate game-asset collection.
|
||||
|
||||
@@ -177,15 +177,17 @@ docker compose -f compose.prod.yaml up --build -d
|
||||
<details>
|
||||
<summary><strong>게임 데이터 갱신과 카드 표시명 수정</strong></summary>
|
||||
|
||||
먼저 공개 HolodoriDB 세 언어 원격 저장소에서 마지막 수집 이후의 모든 커밋·파일·문자열 변경을 검토합니다. 계산기와 관계없는 변경도 포함하며, 중간에 되돌려진 변경도 커밋별로 기록합니다.
|
||||
게임에서 직접 확보한 DB 스냅샷을 마스터 데이터 원본으로 사용합니다. HolodoriDB 원격 저장소를 가져오지 않습니다.
|
||||
|
||||
```bash
|
||||
npm run data:sync
|
||||
# 전체 변경을 읽고 보고한 뒤
|
||||
npm run data:apply
|
||||
```
|
||||
|
||||
검토 보고서는 `data/holodoridb-review/latest.md`, JSON 변경 전후 값은 `latest.json`, 전체 원문 변경은 `changes.patch`에 저장합니다. 보고서를 읽고 변경의 의미를 사용자에게 먼저 제공한 뒤 `npm run data:apply`로 계산기 데이터를 수집합니다. 검토만으로 마지막 수집 기준이 갱신되지는 않습니다.
|
||||
검토 결과는 `data/game-db/review/latest.json`과 `latest.md`에 저장합니다. 원본은 `data/game-db/snapshots/`, 계산기용 중간 결과는 `data/game-db/derived/`에 보관합니다. 해시가 다른 스냅샷이나 누락된 테이블을 외부 자료로 대체하지 않습니다.
|
||||
|
||||
생성된 계산기 데이터는 `data/holodoridb`에 저장합니다. 카드 일러스트, 영상과 음성은 수집 대상에서 제외합니다.
|
||||
채보 본문은 별도 게임 SUS 파일이며, 과거 이벤트 일정·배율은 DB에 없는 수동 기록입니다. DB 등록과 채보 갱신 방법 및 남은 예외는 [데이터 원본 안내](docs/game-data-source.md)를 참고하세요.
|
||||
|
||||
특별 버전명이나 번역 이름은 `data/card-overrides.csv`에서 관리합니다.
|
||||
|
||||
|
||||
+10
@@ -4,6 +4,16 @@ updatedAt: 2026-09-29T00:00:00Z
|
||||
|
||||
## 2026년 9월 29일
|
||||
|
||||
### 게임 DB 갱신
|
||||
|
||||
`NEW` 마린·코요리·코보·벨즈의 신규 ★5 수영복 카드 4장을 추가했습니다.
|
||||
|
||||
`NEW` PARADISE!, Play Dice!, PROPOSE, BAKU LOVE CHEMISTRY, Kyapi의 네 난이도 채보를 추가했습니다.
|
||||
|
||||
`IMPROVED` 메모리 수집 상한을 35개로 갱신하고, 보드의 신규 노드와 단체 악곡 효과 설명을 반영했습니다.
|
||||
|
||||
`FIX` Pretty Guardian Matsulimit Zero의 Hard·Expert 점수 분모를 게임 채보 원본 기준으로 수정했습니다.
|
||||
|
||||
### 밀어치기 자동 판정 제외
|
||||
|
||||
`FIX` 롱노트 중간·마지막 자동 판정을 밀어치기 대상에서 제외했습니다. 스페셜 시작과 정확히 겹친 자동 판정은 새 스페셜 효과를 받지 않으며, 최고점·최적 배치·달성 확률에 동일하게 반영합니다.
|
||||
|
||||
@@ -22,3 +22,7 @@ card-00004-5-uniq-0081-00,수영복,
|
||||
card-00035-5-uniq-0082-00,수영복,
|
||||
card-03005-5-uniq-0084-00,수영복,
|
||||
card-04013-5-uniq-0083-00,수영복,
|
||||
card-00023-5-uniq-0085-00,수영복,
|
||||
card-00037-5-uniq-0086-00,수영복,
|
||||
card-04012-5-uniq-0087-00,수영복,
|
||||
card-03009-5-uniq-0088-00,수영복,
|
||||
|
||||
|
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"snapshot": "snapshots/546b8e2e37db368c6731e148b88611cef105bbaa66ff567f5c1584711ef979a4",
|
||||
"manifestSha256": "9ce961de4f151aa5d06fe303c328e19443f1aa99dd0062eff10381e67b9365e2"
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"snapshot": "snapshots/546b8e2e37db368c6731e148b88611cef105bbaa66ff567f5c1584711ef979a4",
|
||||
"manifestSha256": "9ce961de4f151aa5d06fe303c328e19443f1aa99dd0062eff10381e67b9365e2"
|
||||
}
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user