[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M74C87AE0ES8402NNRWHK9SW":3,"skill-same:01M74C87AE0ES8402NNRWHK9SW":56},{"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":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":26,"commitSha":27,"skillDirectory":28,"forksCount":29,"repositoryHtmlUrl":30,"repositoryHomepageUrl":31,"ownerHtmlUrl":32,"ownerBlogUrl":33,"ownerDescription":34,"updatedAt":35,"install":36,"resources":49},"01M74C87AE0ES8402NNRWHK9SW","idempotent-sql-design",null,"Idempotent SQL Design","CarlosCaPe\u002Foctorato","CarlosCaPe","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F39838249?v=4","01M72WXX4ZRR8MBH1EP1QND2FQ","dataqbs","01M72WXX5NA7YCKRSJ54GW1GQ8",18,"MIT","https:\u002F\u002Fgithub.com\u002FCarlosCaPe\u002Foctorato\u002Fblob\u002Fmaster\u002Fskills\u002Fidempotent-sql-design\u002FSKILL.md",[],[],"2026-11-11 15:11:14",false,"---\nname: idempotent-sql-design\ndescription: \"Idempotent SQL Design\"\nmetadata:\n  short-description: \"Idempotent SQL Design\"\n  original-index: 04\n---\n\n# Idempotent SQL Design\n\n## What\n\nScripts that check the current state before acting, so they can be safely\nre-run without causing errors or duplicate changes. Running the script once\nor ten times produces the same final state.\n\n## Why\n\nDeployments fail. Networks drop. Operators re-run scripts \"just to be sure.\"\nAn idempotent script handles all of these gracefully -- it skips work that's\nalready done and only applies what's missing.\n\n## How\n\n### Column renames\n```sql\n-- Check before acting\nIF EXISTS (\n    SELECT 1 FROM information_schema.columns\n    WHERE table_schema = 'public'\n      AND table_name = 'Applicant'\n      AND column_name = 'SpeialtyRequirement'  -- old name\n) THEN\n    ALTER TABLE public.\"Applicant\"\n        RENAME COLUMN \"SpeialtyRequirement\" TO \"SpecialtyRequirement\";\n    RAISE NOTICE 'Renamed: SpeialtyRequirement -> SpecialtyRequirement';\nELSE\n    RAISE NOTICE 'Skipped: SpeialtyRequirement (already renamed)';\nEND IF;\n```\n\n### Index creation\n```sql\n-- Only create if missing\nIF NOT EXISTS (\n    SELECT 1 FROM pg_indexes\n    WHERE schemaname = 'public'\n      AND indexname = 'ix_my_index'\n) THEN\n    CREATE INDEX ix_my_index ON public.\"MyTable\" (\"MyColumn\");\nEND IF;\n```\n\n### FK constraints\n```sql\n-- Only add if missing\nIF NOT EXISTS (\n    SELECT 1 FROM information_schema.table_constraints\n    WHERE constraint_name = 'fk_my_constraint'\n) THEN\n    ALTER TABLE public.\"MyTable\"\n        ADD CONSTRAINT fk_my_constraint\n        FOREIGN KEY (\"MyColumn\") REFERENCES public.\"OtherTable\"(\"Id\");\nEND IF;\n```\n\n## Key Principle\n\nThe pattern is always:\n1. **Query current state** (does the old column exist? does the index exist?)\n2. **Act only if needed** (IF EXISTS \u002F IF NOT EXISTS)\n3. **Report what happened** (RAISE NOTICE with [OK] or [--] prefix)\n\n## When to Use\n\n- Every DDL script. Always.\n- Especially critical for scripts deployed to multiple environments where\n  some may already have partial changes applied\n\n## Where We Used It\n\n- ****: Column renames + procedure updates (check old\u002Fnew state first)\n- **\u002F**: FK constraint creation (check constraint existence)\n- **\u002F**: Index creation (check index existence)\n\n---\n\n*Category: Reliability | Origin: *\n","# Idempotent SQL Design\n\n## What\n\nScripts that check the current state before acting, so they can be safely\nre-run without causing errors or duplicate changes. Running the script once\nor ten times produces the same final state.\n\n## Why\n\nDeployments fail. Networks drop. Operators re-run scripts \"just to be sure.\"\nAn idempotent script handles all of these gracefully -- it skips work that's\nalready done and only applies what's missing.\n\n## How\n\n### Column renames\n```sql\n-- Check before acting\nIF EXISTS (\n    SELECT 1 FROM information_schema.columns\n    WHERE table_schema = 'public'\n      AND table_name = 'Applicant'\n      AND column_name = 'SpeialtyRequirement'  -- old name\n) THEN\n    ALTER TABLE public.\"Applicant\"\n        RENAME COLUMN \"SpeialtyRequirement\" TO \"SpecialtyRequirement\";\n    RAISE NOTICE 'Renamed: SpeialtyRequirement -> SpecialtyRequirement';\nELSE\n    RAISE NOTICE 'Skipped: SpeialtyRequirement (already renamed)';\nEND IF;\n```\n\n### Index creation\n```sql\n-- Only create if missing\nIF NOT EXISTS (\n    SELECT 1 FROM pg_indexes\n    WHERE schemaname = 'public'\n      AND indexname = 'ix_my_index'\n) THEN\n    CREATE INDEX ix_my_index ON public.\"MyTable\" (\"MyColumn\");\nEND IF;\n```\n\n### FK constraints\n```sql\n-- Only add if missing\nIF NOT EXISTS (\n    SELECT 1 FROM information_schema.table_constraints\n    WHERE constraint_name = 'fk_my_constraint'\n) THEN\n    ALTER TABLE public.\"MyTable\"\n        ADD CONSTRAINT fk_my_constraint\n        FOREIGN KEY (\"MyColumn\") REFERENCES public.\"OtherTable\"(\"Id\");\nEND IF;\n```\n\n## Key Principle\n\nThe pattern is always:\n1. **Query current state** (does the old column exist? does the index exist?)\n2. **Act only if needed** (IF EXISTS \u002F IF NOT EXISTS)\n3. **Report what happened** (RAISE NOTICE with [OK] or [--] prefix)\n\n## When to Use\n\n- Every DDL script. Always.\n- Especially critical for scripts deployed to multiple environments where\n  some may already have partial changes applied\n\n## Where We Used It\n\n- ****: Column renames + procedure updates (check old\u002Fnew state first)\n- **\u002F**: FK constraint creation (check constraint existence)\n- **\u002F**: Index creation (check index existence)\n\n---\n\n*Category: Reliability | Origin: *\n",{"name":5,"metadata":24,"description":7},{"original-index":25,"short-description":7},4,"master","b4414608cd5a3f87d1525b518f1c6add8363540d","skills\u002Fidempotent-sql-design",6,"https:\u002F\u002Fgithub.com\u002FCarlosCaPe\u002Foctorato","https:\u002F\u002Fwww.dataqbs.com\u002Foctorato","https:\u002F\u002Fgithub.com\u002FCarlosCaPe","www.dataqbs.com"," AI-powered data engineering\r\n& consulting\r\n\r\nWe build data platforms that turn complexity into clarity — from cloud architecture and ETL pipelines to AI-driven","2026-11-14 00:21:00",{"source":8,"skillName":5,"commands":37,"prompt":47,"zipAvailable":48},[38,41,44],{"tool":39,"command":40},"npx","npx skills add CarlosCaPe\u002Foctorato --skill idempotent-sql-design",{"tool":42,"command":43},"bunx","bunx skills add CarlosCaPe\u002Foctorato --skill idempotent-sql-design",{"tool":45,"command":46},"pnpm","pnpm dlx skills add CarlosCaPe\u002Foctorato --skill idempotent-sql-design","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FCarlosCaPe\u002Foctorato\u002Fblob\u002Fmaster\u002Fskills\u002Fidempotent-sql-design\u002FSKILL.md",true,[50],{"path":51,"resourceType":52,"resourceTypeDesc":53,"sizeBytes":54,"sourceHtmlUrl":55},"skill.json","REFERENCE","参考文档",141,"https:\u002F\u002Fgithub.com\u002FCarlosCaPe\u002Foctorato\u002Fblob\u002Fmaster\u002Fskills\u002Fidempotent-sql-design\u002Fskill.json",[57,66,74,81,89,97],{"skillNo":58,"name":59,"nameZh":6,"description":60,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":61,"licenseFileUrl":62,"sourceHtmlUrl":63,"categories":64,"keywords":65,"publishedAt":19},"01M74EVAA4A4B4AKR5TT732GP4","yeet","Use only when the user explicitly asks to stage, commit, push, and open a GitHub pull request in one flow using the GitHub CLI (`gh`).","Apache-2.0","https:\u002F\u002Fgithub.com\u002FCarlosCaPe\u002Foctorato\u002Fblob\u002Fmaster\u002Fskills\u002Fyeet\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FCarlosCaPe\u002Foctorato\u002Fblob\u002Fmaster\u002Fskills\u002Fyeet\u002FSKILL.md",[],[],{"skillNo":67,"name":68,"nameZh":6,"description":69,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":61,"licenseFileUrl":70,"sourceHtmlUrl":71,"categories":72,"keywords":73,"publishedAt":19},"01M74EV4WMRDKP2NQS4YWR8PXH","wrangler","Cloudflare Workers CLI for deploying, developing, and managing Workers, KV, R2, D1, Vectorize, Hyperdrive, Workers AI, Containers, Queues, Workflows, Pipelines, and Secrets Store. Load before running wrangler commands to ensure correct syntax and best practices. Biases towards retrieval from Cloudflare docs over pre-trained knowledge.","https:\u002F\u002Fgithub.com\u002FCarlosCaPe\u002Foctorato\u002Fblob\u002Fmaster\u002Fskills\u002Fwrangler\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FCarlosCaPe\u002Foctorato\u002Fblob\u002Fmaster\u002Fskills\u002Fwrangler\u002FSKILL.md",[],[],{"skillNo":75,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":80,"publishedAt":19},"01M74EV05MHTXKEXD4B2QJEYTF","workspace-skill-discovery","Discover and include ALL skills across the workspace — not just global ones. Use at the start of every session or when the user asks about available skills. Ensures project-level skills (under .claude\u002Fskills\u002F or skills\u002F in any repo) are never missed.","https:\u002F\u002Fgithub.com\u002FCarlosCaPe\u002Foctorato\u002Fblob\u002Fmaster\u002Fskills\u002Fworkspace-skill-discovery\u002FSKILL.md",[],[],{"skillNo":82,"name":83,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":61,"licenseFileUrl":85,"sourceHtmlUrl":86,"categories":87,"keywords":88,"publishedAt":19},"01M74ETV78525B4VP2F28Z6NRD","workers-best-practices","Reviews and authors Cloudflare Workers code against production best practices. Load when writing new Workers, reviewing Worker code, configuring wrangler.jsonc, or checking for common Workers anti-patterns (streaming, floating promises, global state, secrets, bindings, observability). Biases towards retrieval from Cloudflare docs over pre-trained knowledge.","https:\u002F\u002Fgithub.com\u002FCarlosCaPe\u002Foctorato\u002Fblob\u002Fmaster\u002Fskills\u002Fworkers-best-practices\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FCarlosCaPe\u002Foctorato\u002Fblob\u002Fmaster\u002Fskills\u002Fworkers-best-practices\u002FSKILL.md",[],[],{"skillNo":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":61,"licenseFileUrl":93,"sourceHtmlUrl":94,"categories":95,"keywords":96,"publishedAt":19},"01M74ETR75NF67WGVEN7288ACV","winui-app","Create, build and design WinUI 3 desktop apps with C# and the Windows App SDK following Microsoft's official guidance and CommunityToolkit. Covers XAML, navigation, theming, accessibility and deployment.","https:\u002F\u002Fgithub.com\u002FCarlosCaPe\u002Foctorato\u002Fblob\u002Fmaster\u002Fskills\u002Fwinui-app\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FCarlosCaPe\u002Foctorato\u002Fblob\u002Fmaster\u002Fskills\u002Fwinui-app\u002FSKILL.md",[],[],{"skillNo":98,"name":99,"nameZh":6,"description":100,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":101,"categories":102,"keywords":103,"publishedAt":19},"01M74ETJFRNPPNSQZ36C6HD6CW","windows-brain-script-portability","Scripts in ~\u002F.claude\u002Fscripts\u002F that run on a Windows brain: use the python3.cmd shim and not bare python3, and reconfigure stdout to UTF-8 if you print symbols. Use it when writing a brain script or triaging a Windows-only crash.","https:\u002F\u002Fgithub.com\u002FCarlosCaPe\u002Foctorato\u002Fblob\u002Fmaster\u002Fskills\u002Fwindows-brain-script-portability\u002FSKILL.md",[],[]]