원클릭으로
create-migration
Create a new PebbleDB/SQLite database migration following the project pattern
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Create a new PebbleDB/SQLite database migration following the project pattern
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Load project context for the audiobook-organizer codebase. Invoke this skill at the start of any agent that needs project knowledge. Reads live docs files — no hardcoded values. Falls back to generic behavior on non-audiobook-organizer projects.
Initialize server authentication and retrieve API key. SSH to the audiobook-organizer server, restart the service, read the bootstrap token from the .bootstrap-token file (no longer logged in plaintext — pen-test CRIT-1), exchange it for an API key via POST /api/v1/auth/bootstrap, and write the key to .claude/.api-token (shared across worktrees, auto-cleanup after 8 hours). Use when starting fresh or when the API key has expired.
Build and deploy audiobook-organizer to the production Linux server
Reference guide for common audiobook-organizer tasks and recurring patterns. Helps identify which tasks have existing skills or which new skills might be useful. Use when starting a new task to see if there's a pattern match, or to discover which skills exist for database, build, deployment, debugging, or operational tasks.
Pull logs from the audiobook-organizer service and provide web UI login instructions. Requires running server-bootstrap first to get .api-token file. Reads journalctl via SSH (supports tail, filter, streaming), extracts login credentials, and provides instructions for accessing the web dashboard. Use when troubleshooting server issues, checking service status, or needing to log into the web UI.
Build and deploy the audiobook-organizer using Makefile targets. Handles full builds (frontend + backend), API-only builds, test runs, and deployment. Always uses `make` targets instead of manual commands; auto-installs frontend dependencies before builds. Use when asked to build, run, test, deploy, or for frontend dev server.
| name | create-migration |
| description | Create a new PebbleDB/SQLite database migration following the project pattern |
| disable-model-invocation | true |
Create a new migration in internal/database/migrations.go following the established pattern.
Find the current highest migration version:
grep 'Version:' internal/database/migrations.go | grep -oP '\d+' | sort -n | tail -1
Create the migration function at the end of migrations.go (before the closing of the file), following this pattern:
func migration<NNN>Up(store Store) error {
// For PebbleDB operations:
ps, ok := store.(*PebbleStore)
if !ok {
return nil // Skip for non-Pebble stores
}
_ = ps
// For SQLite operations:
ss, ok := store.(*SQLiteStore)
if !ok {
return nil
}
_, err := ss.db.Exec(`ALTER TABLE books ADD COLUMN new_field TEXT DEFAULT ''`)
return err
}
Register the migration in the migrations slice:
{
Version: <next_version>,
Description: "<description>",
Up: migration<NNN>Up,
Down: nil,
},
Update the file version header at the top of migrations.go
Down: nil unless rollback is critical (most migrations are additive)go build ./internal/database/... after addingmy_backfill_v1_done) to prevent re-runs