[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CG69B7016NG9ZP46H08AK1":3,"skill-same:01M6CG69B7016NG9ZP46H08AK1":70},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":49,"commitSha":50,"skillDirectory":51,"forksCount":52,"repositoryHtmlUrl":53,"repositoryHomepageUrl":6,"ownerHtmlUrl":54,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":55,"install":56,"resources":69},"01M6CG69B7016NG9ZP46H08AK1","db-migration-review",null,"Review and clean up auto-generated database migration files after running make migrate-create. Identifies and removes unrelated Atlas schema drift such as dropped partial indexes, no-op index recreations, and other operations not related to the intended migration. Use when creating database migrations, running make migrate-create, or reviewing .up.sql files.","codeready-toolchain\u002Ftarsy","codeready-toolchain","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F50961591?v=4","01M6CG66FNM8810W5PCNR9FCP7","CodeReady Toolchain","01M6CG66M8H48MP8DFBV9PVEYE",10,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fcodeready-toolchain\u002Ftarsy\u002Fblob\u002Fmaster\u002F.cursor\u002Fskills\u002Fdb-migration-review\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"migration","db migration review","review","database migrations","indexes","sql","operations","migrations","unrelated","create","atlas","migrate","database","use","generated","auto","files","schema","clean","up","2026-11-10 10:12:30",false,"---\nname: db-migration-review\ndescription: Review and clean up auto-generated database migration files after running make migrate-create. Identifies and removes unrelated Atlas schema drift such as dropped partial indexes, no-op index recreations, and other operations not related to the intended migration. Use when creating database migrations, running make migrate-create, or reviewing .up.sql files.\n---\n\n# DB Migration Review\n\nAtlas diffs the Ent schema against a dev database and often emits operations unrelated to the change, because it can't model some indexes. Review every generated `.up.sql` in `pkg\u002Fdatabase\u002Fmigrations\u002F` before it is committed.\n\n## Indexes Atlas can't model (never drop)\n\n| Index | Table | Created in |\n|-------|-------|------------|\n| `agentexecution_stage_id_agent_index_top_level` | `agent_executions` | `20260225235224_add_orchestrator_sub_agent_fields.up.sql` |\n| `agentexecution_parent_execution_id_agent_index_sub_agent` | `agent_executions` | `20260225235224_add_orchestrator_sub_agent_fields.up.sql` |\n| `idx_alert_sessions_alert_data_gin` | `alert_sessions` | `CreateGINIndexes` in `pkg\u002Fdatabase\u002Fmigrations.go` |\n| `idx_alert_sessions_final_analysis_gin` | `alert_sessions` | `CreateGINIndexes` in `pkg\u002Fdatabase\u002Fmigrations.go` |\n| `idx_timeline_events_content_gin` | `timeline_events` | `CreateGINIndexes` in `pkg\u002Fdatabase\u002Fmigrations.go` |\n| `idx_alert_sessions_labels_gin` | `alert_sessions` | `CreateGINIndexes` in `pkg\u002Fdatabase\u002Fmigrations.go` |\n\nThe first two are partial unique indexes (`WHERE parent_execution_id IS [NOT] NULL`) documented in `ent\u002Fschema\u002Fagentexecution.go`. The GIN indexes are created at startup.\n\n## Checklist\n\n1. Wrap the file in `BEGIN;` \u002F `COMMIT;` if Atlas didn't. A failed migration then rolls back cleanly and `recoverDirtyMigration` (`pkg\u002Fdatabase\u002Fclient.go`) can retry on the next deploy. Exception: statements that can't run in a transaction (e.g. `CREATE INDEX CONCURRENTLY`) go in their own migration file without `BEGIN`\u002F`COMMIT`.\n2. Remove any `DROP INDEX` for an index in the table above, or any other index created by hand or with a `WHERE` clause (search `pkg\u002Fdatabase\u002Fmigrations\u002F` for where it was created).\n3. Remove `DROP INDEX` + `CREATE INDEX` pairs whose `CREATE` matches the existing definition in an earlier migration (common with `sessionscore_session_id`).\n4. Remove `ALTER TABLE` statements on tables unrelated to the migration's purpose. If unsure, find the Ent schema change that caused it.\n5. Run `make migrate-hash` to update `atlas.sum`.\n\n## Adding a new index Atlas can't model\n\nWrite it as raw SQL in the migration, add a comment naming it and its migration file in the Ent schema's `Indexes()`, and add a row to the table above.\n","# DB Migration Review\n\nAtlas diffs the Ent schema against a dev database and often emits operations unrelated to the change, because it can't model some indexes. Review every generated `.up.sql` in `pkg\u002Fdatabase\u002Fmigrations\u002F` before it is committed.\n\n## Indexes Atlas can't model (never drop)\n\n| Index | Table | Created in |\n|-------|-------|------------|\n| `agentexecution_stage_id_agent_index_top_level` | `agent_executions` | `20260225235224_add_orchestrator_sub_agent_fields.up.sql` |\n| `agentexecution_parent_execution_id_agent_index_sub_agent` | `agent_executions` | `20260225235224_add_orchestrator_sub_agent_fields.up.sql` |\n| `idx_alert_sessions_alert_data_gin` | `alert_sessions` | `CreateGINIndexes` in `pkg\u002Fdatabase\u002Fmigrations.go` |\n| `idx_alert_sessions_final_analysis_gin` | `alert_sessions` | `CreateGINIndexes` in `pkg\u002Fdatabase\u002Fmigrations.go` |\n| `idx_timeline_events_content_gin` | `timeline_events` | `CreateGINIndexes` in `pkg\u002Fdatabase\u002Fmigrations.go` |\n| `idx_alert_sessions_labels_gin` | `alert_sessions` | `CreateGINIndexes` in `pkg\u002Fdatabase\u002Fmigrations.go` |\n\nThe first two are partial unique indexes (`WHERE parent_execution_id IS [NOT] NULL`) documented in `ent\u002Fschema\u002Fagentexecution.go`. The GIN indexes are created at startup.\n\n## Checklist\n\n1. Wrap the file in `BEGIN;` \u002F `COMMIT;` if Atlas didn't. A failed migration then rolls back cleanly and `recoverDirtyMigration` (`pkg\u002Fdatabase\u002Fclient.go`) can retry on the next deploy. Exception: statements that can't run in a transaction (e.g. `CREATE INDEX CONCURRENTLY`) go in their own migration file without `BEGIN`\u002F`COMMIT`.\n2. Remove any `DROP INDEX` for an index in the table above, or any other index created by hand or with a `WHERE` clause (search `pkg\u002Fdatabase\u002Fmigrations\u002F` for where it was created).\n3. Remove `DROP INDEX` + `CREATE INDEX` pairs whose `CREATE` matches the existing definition in an earlier migration (common with `sessionscore_session_id`).\n4. Remove `ALTER TABLE` statements on tables unrelated to the migration's purpose. If unsure, find the Ent schema change that caused it.\n5. Run `make migrate-hash` to update `atlas.sum`.\n\n## Adding a new index Atlas can't model\n\nWrite it as raw SQL in the migration, add a comment naming it and its migration file in the Ent schema's `Indexes()`, and add a row to the table above.\n",{"name":5,"description":7},"master","19d18feeb3bb398962a12569720c7a8a5324b82a",".cursor\u002Fskills\u002Fdb-migration-review",8,"https:\u002F\u002Fgithub.com\u002Fcodeready-toolchain\u002Ftarsy","https:\u002F\u002Fgithub.com\u002Fcodeready-toolchain","2026-11-14 13:16:34",{"source":8,"skillName":5,"commands":57,"prompt":67,"zipAvailable":68},[58,61,64],{"tool":59,"command":60},"npx","npx skills add codeready-toolchain\u002Ftarsy --skill db-migration-review",{"tool":62,"command":63},"bunx","bunx skills add codeready-toolchain\u002Ftarsy --skill db-migration-review",{"tool":65,"command":66},"pnpm","pnpm dlx skills add codeready-toolchain\u002Ftarsy --skill db-migration-review","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fcodeready-toolchain\u002Ftarsy\u002Fblob\u002Fmaster\u002F.cursor\u002Fskills\u002Fdb-migration-review\u002FSKILL.md",true,[],[71,87,100,112],{"skillNo":72,"name":73,"nameZh":6,"description":74,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":80,"publishedAt":44},"01M6CG7454FFHM2SBCX5410TZA","simple-skill","A simple test skill to verify directory layout loading.","https:\u002F\u002Fgithub.com\u002Fcodeready-toolchain\u002Ftarsy\u002Fblob\u002Fmaster\u002Ftest\u002Fe2e\u002Ftestdata\u002Fconfigs\u002Fskills-dir-layout\u002Fskills\u002Fsimple-skill\u002FSKILL.md",[77],{"categoryNo":78,"categoryName":79,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[81,82,83,84,85,86],"simple skill","simple","verify","Test Skill","test","directory",{"skillNo":88,"name":89,"nameZh":6,"description":90,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":91,"categories":92,"keywords":94,"publishedAt":44},"01M6CG72ANQ6KZDCC4GF6Q4A6E","example-skill","Example skill for config viewer e2e coverage.","https:\u002F\u002Fgithub.com\u002Fcodeready-toolchain\u002Ftarsy\u002Fblob\u002Fmaster\u002Ftest\u002Fe2e\u002Ftestdata\u002Fconfigs\u002Fconcurrency\u002Fskills\u002Fexample-skill\u002FSKILL.md",[93],{"categoryNo":78,"categoryName":79,"taxonomyType":21,"taxonomyTypeDesc":22},[95,96,97,98,99],"example","example skill","coverage","e2e","config",{"skillNo":101,"name":102,"nameZh":6,"description":103,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":106,"publishedAt":44},"01M6CG70FHCMZYMFQE9P49Y84M","networking","Network troubleshooting skills including DNS resolution, TCP connectivity, and packet analysis.","https:\u002F\u002Fgithub.com\u002Fcodeready-toolchain\u002Ftarsy\u002Fblob\u002Fmaster\u002Fpkg\u002Fconfig\u002Ftestdata\u002Fskills\u002Fnetworking\u002FSKILL.md",[],[102,107,108,109,110,111],"analysis","troubleshooting","network","dns","tcp",{"skillNo":113,"name":114,"nameZh":6,"description":115,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":116,"categories":117,"keywords":121,"publishedAt":44},"01M6CG6Y0Y8REEGACMFZ6JXKVW","kubernetes-basics","Core Kubernetes concepts including pods, deployments, services, and common troubleshooting patterns.","https:\u002F\u002Fgithub.com\u002Fcodeready-toolchain\u002Ftarsy\u002Fblob\u002Fmaster\u002Fpkg\u002Fconfig\u002Ftestdata\u002Fskills\u002Fkubernetes-basics\u002FSKILL.md",[118],{"categoryNo":119,"categoryName":120,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000011","运维与部署",[122,123,124,125,126,108,127,128],"basics","kubernetes basics","kubernetes","deployments","common","services","core"]