[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6GYCEF4T69CGS4MXRS4D66M":3,"skill-same:01M6GYCEF4T69CGS4MXRS4D66M":75},{"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":16,"sourceHtmlUrl":17,"categories":18,"keywords":19,"publishedAt":33,"linkOnly":34,"markdownContent":35,"markdownBody":36,"frontMatter":37,"refName":38,"commitSha":39,"skillDirectory":40,"forksCount":41,"repositoryHtmlUrl":42,"repositoryHomepageUrl":6,"ownerHtmlUrl":43,"ownerBlogUrl":44,"ownerDescription":45,"updatedAt":46,"install":47,"resources":60},"01M6GYCEF4T69CGS4MXRS4D66M","detect-orphaned-resources-outside-state",null,"Use when live resources may exist that no state file tracks. Cross-checks the cloud inventory against state so untracked resources, their cost and risk, are surfaced.","jiayaoqijia\u002Fcryptoskill","jiayaoqijia","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1453879?v=4","01M6GMYTX7Q7S504VC6E756ENR","YQ","01M6GMYV1QKJ1CC75MTTGT9PR0",81,"MIT","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-detect-orphaned-resources-outside-state\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-detect-orphaned-resources-outside-state\u002FSKILL.md",[],[20,21,22,23,24,25,26,27,28,29,30,31,32],"state","resources","detect","detect orphaned resources outside state","file","cloud","risk","inventory","use","cost","live","tracks","when","2026-11-10 10:12:30",false,"---\nname: detect-orphaned-resources-outside-state\ndescription: Use when live resources may exist that no state file tracks. Cross-checks the cloud inventory against state so untracked resources, their cost and risk, are surfaced.\n---\n\n# Detect orphaned resources outside state\n\nResources created by hand or left by a deleted stack persist and bill while no code claims them. Detect them by diffing the cloud inventory against state.\n\n## Procedure\n\n1. Export tracked IDs from state:\n       terraform state list | xargs -I{} terraform state show {} | grep -E '^\\s+id\\s+=' | awk '{print $3}' | sort -u > tracked.txt\n2. Export live IDs for the resource types you manage:\n       aws ec2 describe-instances --query 'Reservations[].Instances[].InstanceId' --output text | tr '\\t' '\\n' | sort -u > live.txt\n3. Diff to find untracked resources (present in cloud, absent from state):\n       comm -13 tracked.txt live.txt\n4. Repeat per resource type; IDs are only meaningful within a type, so scope the diff (EC2 instance IDs vs volume IDs).\n5. Classify each orphan: adopt (import + code), delete (nobody owns it), or quarantine (unknown owner, tag and alarm).\n6. Prefer cloud-native inventory for breadth: AWS Config `list-discovered-resources`, GCP Asset Inventory, Azure Resource Graph.\n7. Run monthly, not once; manual creations and deleted stacks both produce orphans continuously.\n8. Alert on new orphans in a shared account so each gets an owner within a week.\n\n## Pitfalls\n\n- Diffing IDs across mismatched types, producing a page of false positives.\n- Adopting an orphan whose real owner uses it out of band, then destroying it in a later plan.\n- A provider id attribute in a different format than the API returns (case, prefix), so a tracked resource looks orphaned.\n- Imports tracked in a different workspace appear as \"cloud, not state\" from this one.\n- Deleting an orphan that is actually a required shared resource (a peering connection, a DNS zone) with no code.\n\n- `terraform state show` failing on a resource with sensitive attributes, so the tracked list is silently incomplete.\n- A resource shared across two states appears tracked in one and orphaned in the other's diff.\n\n## Verification\n\n    comm -13 tracked.txt live.txt | wc -l   # count of untracked resources\n    terraform state list | wc -l            # count tracked\n\nReport: orphan counts by type, the decision per orphan (adopt\u002Fdelete\u002Fquarantine), and the resulting change in the diff.\n","# Detect orphaned resources outside state\n\nResources created by hand or left by a deleted stack persist and bill while no code claims them. Detect them by diffing the cloud inventory against state.\n\n## Procedure\n\n1. Export tracked IDs from state:\n       terraform state list | xargs -I{} terraform state show {} | grep -E '^\\s+id\\s+=' | awk '{print $3}' | sort -u > tracked.txt\n2. Export live IDs for the resource types you manage:\n       aws ec2 describe-instances --query 'Reservations[].Instances[].InstanceId' --output text | tr '\\t' '\\n' | sort -u > live.txt\n3. Diff to find untracked resources (present in cloud, absent from state):\n       comm -13 tracked.txt live.txt\n4. Repeat per resource type; IDs are only meaningful within a type, so scope the diff (EC2 instance IDs vs volume IDs).\n5. Classify each orphan: adopt (import + code), delete (nobody owns it), or quarantine (unknown owner, tag and alarm).\n6. Prefer cloud-native inventory for breadth: AWS Config `list-discovered-resources`, GCP Asset Inventory, Azure Resource Graph.\n7. Run monthly, not once; manual creations and deleted stacks both produce orphans continuously.\n8. Alert on new orphans in a shared account so each gets an owner within a week.\n\n## Pitfalls\n\n- Diffing IDs across mismatched types, producing a page of false positives.\n- Adopting an orphan whose real owner uses it out of band, then destroying it in a later plan.\n- A provider id attribute in a different format than the API returns (case, prefix), so a tracked resource looks orphaned.\n- Imports tracked in a different workspace appear as \"cloud, not state\" from this one.\n- Deleting an orphan that is actually a required shared resource (a peering connection, a DNS zone) with no code.\n\n- `terraform state show` failing on a resource with sensitive attributes, so the tracked list is silently incomplete.\n- A resource shared across two states appears tracked in one and orphaned in the other's diff.\n\n## Verification\n\n    comm -13 tracked.txt live.txt | wc -l   # count of untracked resources\n    terraform state list | wc -l            # count tracked\n\nReport: orphan counts by type, the decision per orphan (adopt\u002Fdelete\u002Fquarantine), and the resulting change in the diff.\n",{"name":5,"description":7},"main","3df1d0d67b30ff15236561f8c0f9f06d33f42dfd","skills\u002Fpayments\u002F0xklen-detect-orphaned-resources-outside-state",17,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia","https:\u002F\u002Feth2030.com","Hardcore infra. Building @alt-research and applied cryptography.","2026-11-13 02:31:19",{"source":8,"skillName":5,"commands":48,"prompt":58,"zipAvailable":59},[49,52,55],{"tool":50,"command":51},"npx","npx skills add jiayaoqijia\u002Fcryptoskill --skill detect-orphaned-resources-outside-state",{"tool":53,"command":54},"bunx","bunx skills add jiayaoqijia\u002Fcryptoskill --skill detect-orphaned-resources-outside-state",{"tool":56,"command":57},"pnpm","pnpm dlx skills add jiayaoqijia\u002Fcryptoskill --skill detect-orphaned-resources-outside-state","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-detect-orphaned-resources-outside-state\u002FSKILL.md",true,[61,65,71],{"path":62,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":64,"sourceHtmlUrl":16},"LICENSE","许可证",1063,{"path":66,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":69,"sourceHtmlUrl":70},"SOURCE.md","REFERENCE","参考文档",365,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-detect-orphaned-resources-outside-state\u002FSOURCE.md",{"path":72,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":73,"sourceHtmlUrl":74},"TRUST.auto.yaml",2217,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-detect-orphaned-resources-outside-state\u002FTRUST.auto.yaml",[76,104,127,145,158,168],{"skillNo":77,"name":78,"nameZh":6,"description":79,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":80,"sourceHtmlUrl":81,"categories":82,"keywords":83,"publishedAt":33},"01M712C436EQYE43342Q4E7GG1","recipe-performance","Diagnose a specific MetaMask user flow's real-app performance and Sentry critical-user-flow telemetry with deterministic mm-harness recipes. Use for CUF boundaries, cold\u002Fwarm\u002Fbackground-resume behavior, latency regressions, lifecycle tags, duplicate or blocking network requests, long tasks, layout\u002Fpaint cost, screen redraws, React rerenders, or browser trace analysis where tests alone cannot prove the real app.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmetamask-official-recipe-performance\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmetamask-official-recipe-performance\u002FSKILL.md",[],[84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103],"performance","recipe performance","recipe","mm","sentry","harness","app","deterministic","recipes","flow","cold","critical","analysis","tasks","react","browser","layout","screen","network","metamask",{"skillNo":105,"name":106,"nameZh":6,"description":107,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":108,"licenseFileUrl":109,"sourceHtmlUrl":110,"categories":111,"keywords":112,"publishedAt":33},"01M70XT2F8A5CQZ81JBP98KSW3","mexc-spot-websocket","MEXC Spot WebSocket workflows for public streams, protobuf handling, depth maintenance, listen keys, and private streams without exposing API keys.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-websocket\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-websocket\u002FSKILL.md",[],[113,114,115,116,117,118,119,120,121,122,123,124,125,126],"mexc spot websocket","spot","websocket","api","workflows","public","listen","streams","depth","keys","for","api keys","maintenance","protobuf",{"skillNo":128,"name":129,"nameZh":6,"description":130,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":108,"licenseFileUrl":131,"sourceHtmlUrl":132,"categories":133,"keywords":134,"publishedAt":33},"01M70XT0MBXN3WZY1BKN0CPNKR","mexc-spot-rest","MEXC Spot REST workflows for public data, signed account requests, orders, wallet\u002Fadmin actions, and secure signing without exposing API keys.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-rest\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-rest\u002FSKILL.md",[],[135,114,136,137,138,139,140,124,123,122,141,142,143,118,144,117,116],"mexc spot rest","REST","admin","signing","Wallet","requests","actions","secure","data","orders",{"skillNo":146,"name":147,"nameZh":6,"description":148,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":108,"licenseFileUrl":149,"sourceHtmlUrl":150,"categories":151,"keywords":152,"publishedAt":33},"01M70XSYSVZ2N0N91XCAR2CAK0","mexc-futures-websocket","MEXC Futures WebSocket workflows for public streams, private account\u002Forder\u002Fposition streams, ping\u002Fpong, subscriptions, and depth maintenance.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-futures-websocket\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-futures-websocket\u002FSKILL.md",[],[153,154,115,155,156,125,123,157,121,120,118,117],"mexc futures websocket","futures","position","ping","subscriptions",{"skillNo":159,"name":160,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":161,"sourceHtmlUrl":162,"categories":163,"keywords":164,"publishedAt":33},"01M6H0ZWHVE5W04WG2DKQE2SQC","0xklen-version-and-refresh-sanctions-lists","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-version-and-refresh-sanctions-lists\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-version-and-refresh-sanctions-lists\u002FSKILL.md",[],[165,166,167],"refresh","0xklen version and refresh sanctions lists","version",{"skillNo":169,"name":170,"nameZh":6,"description":171,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":172,"sourceHtmlUrl":173,"categories":174,"keywords":175,"publishedAt":33},"01M6H0Z28Q3R8J0S799GJQWXM3","verify-tests-cover-changed-lines","Use when a PR adds code that the existing suite may not exercise. Measures patch coverage — the share of newly changed lines hit by tests — before approving.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-verify-tests-cover-changed-lines\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-verify-tests-cover-changed-lines\u002FSKILL.md",[],[176,177,178,179,180,181,182,28,183,184,185],"tests","cover","verify tests cover changed lines","verify","coverage","pr","exercise","patch","code","share"]