본문으로 건너뛰기
cccskills
무료GitHub에 공개

storage-migration

Use before changing PlainTab persistent storage, including localStorage keys, IndexedDB keys or record formats, `LS_VERSION`, `DB_VERSION`, `ptab_schema_version`, migration code, backup/import/export storage shape, wallpaper cache cleanup, or any task that may affect old users upgrading across versions.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(2)

  • SKILL.md3.0 KB
  • agents/openai.yaml314 B

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

PlainTab Storage Migration

Use this skill as a red-line checklist for storage changes. User data safety and jump-upgrade behavior matter more than implementation neatness.

First Reads

  1. Read .claude/rules/00-core.md.
  2. Read .claude/rules/10-storage.md.
  3. If wallpaper rendering, first paint, settings UI, language, search, or command palette storage is touched, read the matching rule file from .claude/rules/README.md.

Version Rules

  • DB_VERSION is only for IndexedDB structure: object stores, indexes, keyPath, or autoIncrement.
  • LS_VERSION / ptab_schema_version is for PlainTab application data semantics.
  • If an IndexedDB-only change affects key names, record shape, references, old data cleanup, or jump upgrades, bump LS_VERSION and add a WallpaperData.migrate() path.
  • Do not use IndexedDB version upgrades for application-level migration decisions.
  • Pure discardable cache changes do not need LS_VERSION if missing or stale cache cannot be misread and does not require cleanup.

Migration Discipline

Before production edits, write or update a focused check in docs/ai-tasks/ and watch it fail for the missing migration behavior.

For each migration step:

  1. Detect from persisted data, not app release numbers. Prefer ptab_schema_version, legacy ptab_version, old key presence, and current model facts.
  2. Make the step idempotent. A browser close midway must be safe to retry.
  3. Write large data first, then write references.
  4. Never write references to missing Blob records.
  5. Remove references before deleting large data.
  6. Mark migration complete only after required new data and cleanup succeed.
  7. Do not overwrite non-default data already created by a newer version.
  8. Keep runtime modules reading only the current schema after migration.

Cleanup Rules

  • Delete obsolete localStorage keys after successful migration.
  • Delete obsolete IndexedDB keys with targeted deletes. Do not delete the whole PlainTab database while current data uses the same store.
  • Avoid permanent top-level marker keys for one-off migrations. If cleanup truly needs an idempotent retry marker, keep it scoped to an existing owned model, document why persisted facts are insufficient, and include a cleanup/removal path.
  • Keep old migration code for enough releases to support users who skip versions.

Validation

Run the focused migration check, then JS syntax validation:

node docs\ai-tasks\<migration-test>.js
Get-ChildItem -Recurse js -Include *.js | ForEach-Object { node --check $_.FullName }
git diff --check -- js docs/ai-tasks .claude/rules

If storage behavior changes, update .claude/rules/10-storage.md in the same change.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Claude adapter for bumping the PlainTab version. Use when the user asks "更新版本", "bump version", "upgrade to vX.Y.Z", "发布新版本", or asks to prepare a PlainTab release.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

kaininx/PlainTab952026년 5월 27일 업데이트

Use when preparing a PlainTab release or bumping the PlainTab version, triggered by phrases like "更新版本", "bump version", "upgrade to vX.Y.Z", "发布新版本". Updates manifest.json, runtime UI/version constants, localized changelogs, store listings, release notes, validation notes, and current project docs.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

kaininx/PlainTab952026년 5월 27일 업데이트

Claude adapter for preparing and creating PlainTab git commits with scoped, detailed Conventional Commit messages. Use when the user asks to commit, 提交, stage changes, or use precise Conventional Commit / Google-style commit messages.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

kaininx/PlainTab952026년 5월 27일 업데이트

Prepare and create PlainTab git commits with scoped Conventional Commit subjects and detailed commit bodies. Use when the user asks to commit, 提交, create a git commit, stage changes, or asks for precise Conventional Commits / Google-style commit messages; especially when the worktree may contain unrelated user changes.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

kaininx/PlainTab952026년 5월 27일 업데이트

diagnose

무료

Claude adapter for diagnosing PlainTab bugs, broken flows, startup issues, storage or wallpaper regressions, and performance regressions.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

kaininx/PlainTab952026년 5월 27일 업데이트

diagnose

무료

Use when diagnosing PlainTab bugs, broken UI behavior, failing extension/web-mode flows, storage or wallpaper regressions, startup issues, or performance regressions.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

kaininx/PlainTab952026년 5월 27일 업데이트

kaininx의 스킬 모두 보기

이 스킬의 문제 신고