[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6ADQMEAN9KF4J5QDMS16NH7":3,"skill-same:01M6ADQMEAN9KF4J5QDMS16NH7":89},{"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":48,"linkOnly":49,"markdownContent":50,"markdownBody":51,"frontMatter":52,"refName":53,"commitSha":54,"skillDirectory":55,"forksCount":56,"repositoryHtmlUrl":57,"repositoryHomepageUrl":58,"ownerHtmlUrl":59,"ownerBlogUrl":60,"ownerDescription":61,"updatedAt":62,"install":63,"resources":76},"01M6ADQMEAN9KF4J5QDMS16NH7","java-debugging",null,"Debug Java applications systematically: JDWP remote debugging, jdb, VS Code and IntelliJ attach, debugging Maven\u002FGradle tests, Spring Boot and Quarkus dev mode, containers, breakpoints\u002Flogpoints, and reading stack traces. Use when the user needs to find the cause of a Java bug, exception, wrong behavior, or failing test, or asks how to attach a debugger.","github\u002Fawesome-copilot","github","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F9919?v=4","01M6AC83DS133TPXFSP1DHNCC6","GitHub","01M6AD3PBDYPK7NVFJNJ66Y8RS",41081,"MIT","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fjava-debugging\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47],"debugging","java","java debugging","how","failing","when","mode","reading","remote","how to","gradle","attach","bug","stack","intellij","containers","debugger","maven","spring boot","dev","code","boot","debug","test","2026-11-10 10:12:30",false,"---\nname: java-debugging\ndescription: 'Debug Java applications systematically: JDWP remote debugging, jdb, VS Code and IntelliJ attach, debugging Maven\u002FGradle tests, Spring Boot and Quarkus dev mode, containers, breakpoints\u002Flogpoints, and reading stack traces. Use when the user needs to find the cause of a Java bug, exception, wrong behavior, or failing test, or asks how to attach a debugger.'\n---\n\n# Java Debugging\n\nFind the root cause of a Java defect with a reproducible, hypothesis-driven loop, and attach a debugger safely when logs are not enough.\n\n## Safety rules\n\n- Bind JDWP to loopback only (`127.0.0.1`). Never bind `*:5005` on a reachable network; use an SSH tunnel or `kubectl port-forward` for remote hosts.\n- Use `suspend=n` for running applications. `suspend=y` is acceptable only for short local test runs bound to loopback (waiting for the IDE to attach). Never leave a debug agent enabled on production; JDWP gives full code execution to whoever connects.\n- Do not attach a debugger to production without explicit user instruction. Prefer reproducing locally or use read-only diagnostics (see the `java-diagnostics` skill).\n- `JAVA_TOOL_OPTIONS` is picked up by every JVM started in that environment (build tools, forked test JVMs, child processes), causing `Address already in use` clashes. Prefer scoping the flag to the one process you want to debug.\n\n## Method\n\nReproduce deterministically, minimize, read the evidence ([stack traces](references\u002Fstack-traces.md)), test one falsifiable hypothesis with the least intrusive tool (log line or logpoint before breakpoints), then add a regression test and remove debug flags and temporary logging.\n\n## Version-dependent behavior (verified)\n\n- **Helpful NullPointerException messages** (JEP 358) are off by default in JDK 14 (`-XX:+ShowCodeDetailsInExceptionMessages`) and on by default from JDK 15 (JEP 358 documents the message format). Source: \u003Chttps:\u002F\u002Fopenjdk.org\u002Fjeps\u002F358>.\n- JDWP bare `address=5005` binds all interfaces before JDK 9 and loopback from JDK 9 (see below).\n- Gradle `--debug-jvm` passes a bare address, so on JDK 8 it listens on all interfaces.\n\n## Attach a debugger (JDWP)\n\nStart the JVM:\n\n```bash\njava -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=127.0.0.1:5005 -jar app.jar\n```\n\nAlways write the explicit `127.0.0.1:5005` on every JDK version: a bare `address=5005` listens on all interfaces before JDK 9 and only on loopback from JDK 9. On JDK 8 and older, the `host:port` form may not be honored, so also restrict access with a firewall or tunnel.\n\nAttach with `jdb`:\n\n```bash\njdb -attach 127.0.0.1:5005\n# stop in com.example.OrderService.place | stop at com.example.OrderService:42\n# cont | next | step | locals | print order | where | catch java.lang.NullPointerException\n```\n\n### VS Code (Extension Pack for Java)\n\n`.vscode\u002Flaunch.json`:\n\n```json\n{\n  \"version\": \"0.2.0\",\n  \"configurations\": [\n    {\n      \"type\": \"java\",\n      \"name\": \"Attach to JVM\",\n      \"request\": \"attach\",\n      \"hostName\": \"127.0.0.1\",\n      \"port\": 5005\n    }\n  ]\n}\n```\n\n### IntelliJ IDEA\n\nRun | Edit Configurations | + | Remote JVM Debug; host `127.0.0.1`, port `5005`, debugger mode Attach. The dialog shows the matching JVM argument string.\n\n## Debug tests and frameworks\n\n| Scenario | Command (port 5005) |\n|----------|---------------------|\n| Maven Surefire unit test | `mvn test -Dmaven.surefire.debug -Dtest=OrderServiceTest` |\n| Maven Failsafe IT | `mvn verify -Dmaven.failsafe.debug -Dit.test=OrderIT` |\n| Gradle test | `gradle test --debug-jvm --tests '*OrderServiceTest'` |\n| Spring Boot (Maven) | `mvn spring-boot:run -Dspring-boot.run.jvmArguments=\"-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=127.0.0.1:5005\"` |\n| Spring Boot (Gradle) | Configure `bootRun` as below, then `gradle bootRun` (loopback, no suspend) |\n| Quarkus dev mode | `mvn quarkus:dev` (debug port 5005 open by default; `-Ddebug=5006` changes it, `-Ddebug=false` disables) |\n\nSurefire\u002FFailsafe debug mode and `--debug-jvm` suspend until a debugger attaches, which is fine for a local run. Surefire and Failsafe accept a custom agent string instead of the bare flag, e.g. `-Dmaven.surefire.debug=\"-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=127.0.0.1:5005\"`. Verified listeners on `127.0.0.1` (via `lsof -nP -iTCP:5005 -sTCP:LISTEN`) for Gradle 9.7 `--debug-jvm`, Maven Surefire 3.5 `-Dmaven.surefire.debug` and Quarkus 3.40 dev mode on JDK 26; Gradle 7.6.4, 8.0.2 (JDK 17), 8.5 (JDK 21) and 8.14.3 also listened on `127.0.0.1`. Gradle passes a bare `address=5005` (no host), so the bind address comes from the JDK: loopback on JDK 9+, but all interfaces (`0.0.0.0:5005`, checked in an `eclipse-temurin:8-jdk` container with Gradle 7.6.4 and 8.14.3) on JDK 8. Older Gradle\u002Fplugin versions were not tested; run the same `lsof` check and use an explicit loopback agent on shared networks or JDK 8.\n\nExplicit Gradle configuration (Gradle 7.6+; `debugOptions.host` was added in 7.6; Kotlin DSL):\n\n```kotlin\ntasks.withType\u003CTest> {\n    debugOptions { enabled.set(true); host.set(\"127.0.0.1\"); port.set(5005); server.set(true); suspend.set(true) }\n}\n\n\u002F\u002F BootRun extends JavaExec, not Test; configure it separately when the Boot plugin is applied.\ntasks.named\u003CJavaExec>(\"bootRun\") {\n    debugOptions { enabled.set(true); host.set(\"127.0.0.1\"); port.set(5005); server.set(true); suspend.set(false) }\n}\n```\n\nThen run `gradle test --tests '*OrderServiceTest'` or `gradle bootRun`, without `--debug-jvm` (which enables suspension). Configure only the task you are debugging; do not run both listeners on port 5005 at once. For Gradle before 7.6, use `jvmArgs(\"-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=127.0.0.1:5005\")` on the target task instead (`suspend=y` for local tests), without also enabling `debugOptions` or `--debug-jvm`. On JDK 8 and older, retain the firewall\u002Ftunnel precaution above.\n\n## Containers\n\nPublish the port to loopback only and let the JVM listen inside the container:\n\n```bash\ndocker run --rm -p 127.0.0.1:5005:5005 \\\n  -e JAVA_TOOL_OPTIONS=\"-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005\" my-app\n```\n\nInside the container the agent must bind `*` for the port mapping to work, so JDWP (full code execution) is reachable by every other container on the same Docker network; the `127.0.0.1:` mapping only blocks access from other hosts. Use this only on a developer machine where no untrusted containers share the network: run it on a dedicated user-defined network (not the shared default bridge) containing only this container, or keep the agent on `127.0.0.1` inside the container and reach it with `docker exec`\u002F`kubectl port-forward` style forwarding instead of publishing it. For Kubernetes use `kubectl port-forward pod\u002F\u003Cname> 5005:5005` against a dev\u002Fstaging pod only.\n\n## Common pitfalls\n\n- **Hot code replace** only swaps method bodies; adding\u002Fremoving methods or fields or changing signatures needs a restart (or Quarkus dev mode \u002F Spring DevTools).\n- **Missing debug info**: code compiled without `-g` shows unavailable variables (Maven and Gradle include it by default). In lambdas, step into the lambda body.\n- **Heisenbugs\u002Fraces**: pausing changes timing. Prefer logpoints, thread dumps, or JFR; suspend only the current thread, not all threads.\n- **Async and reactive code**: stack traces show scheduler frames, not the caller. Use IDE async stack traces, correlation IDs, or Reactor `Hooks.onOperatorDebug()` in dev only.\n- **Virtual threads (JDK 21+)**: there can be thousands; use `jcmd \u003Cpid> Thread.dump_to_file -format=json file.json` for an overview.\n- **Timeouts**: long pauses can trip HTTP, DB, or heartbeat timeouts; raise them locally.\n- **toString() side effects**: debugger evaluation calls `toString()`, which may trigger lazy loading or mutate state.\n\n## Optional code-navigation aid\n\nIf the Copilot CLI `lsp` tool is configured (see the `lsp-setup` skill), go-to-definition, find-references, and call hierarchy help trace the execution path. It is optional; grep and reading code work as well.\n\n## References\n\n- [Reading stack traces](references\u002Fstack-traces.md)\n- For runtime symptoms (CPU, memory, deadlocks, slow startup) use the `java-diagnostics` skill.\n\nOfficial tool docs (prefer them over this skill for the JDK in use; change `21` to your version): `jcmd` \u003Chttps:\u002F\u002Fdocs.oracle.com\u002Fen\u002Fjava\u002Fjavase\u002F21\u002Fdocs\u002Fspecs\u002Fman\u002Fjcmd.html>, JDK troubleshooting guide \u003Chttps:\u002F\u002Fdocs.oracle.com\u002Fen\u002Fjava\u002Fjavase\u002F21\u002Ftroubleshoot\u002F>.\n","# Java Debugging\n\nFind the root cause of a Java defect with a reproducible, hypothesis-driven loop, and attach a debugger safely when logs are not enough.\n\n## Safety rules\n\n- Bind JDWP to loopback only (`127.0.0.1`). Never bind `*:5005` on a reachable network; use an SSH tunnel or `kubectl port-forward` for remote hosts.\n- Use `suspend=n` for running applications. `suspend=y` is acceptable only for short local test runs bound to loopback (waiting for the IDE to attach). Never leave a debug agent enabled on production; JDWP gives full code execution to whoever connects.\n- Do not attach a debugger to production without explicit user instruction. Prefer reproducing locally or use read-only diagnostics (see the `java-diagnostics` skill).\n- `JAVA_TOOL_OPTIONS` is picked up by every JVM started in that environment (build tools, forked test JVMs, child processes), causing `Address already in use` clashes. Prefer scoping the flag to the one process you want to debug.\n\n## Method\n\nReproduce deterministically, minimize, read the evidence ([stack traces](references\u002Fstack-traces.md)), test one falsifiable hypothesis with the least intrusive tool (log line or logpoint before breakpoints), then add a regression test and remove debug flags and temporary logging.\n\n## Version-dependent behavior (verified)\n\n- **Helpful NullPointerException messages** (JEP 358) are off by default in JDK 14 (`-XX:+ShowCodeDetailsInExceptionMessages`) and on by default from JDK 15 (JEP 358 documents the message format). Source: \u003Chttps:\u002F\u002Fopenjdk.org\u002Fjeps\u002F358>.\n- JDWP bare `address=5005` binds all interfaces before JDK 9 and loopback from JDK 9 (see below).\n- Gradle `--debug-jvm` passes a bare address, so on JDK 8 it listens on all interfaces.\n\n## Attach a debugger (JDWP)\n\nStart the JVM:\n\n```bash\njava -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=127.0.0.1:5005 -jar app.jar\n```\n\nAlways write the explicit `127.0.0.1:5005` on every JDK version: a bare `address=5005` listens on all interfaces before JDK 9 and only on loopback from JDK 9. On JDK 8 and older, the `host:port` form may not be honored, so also restrict access with a firewall or tunnel.\n\nAttach with `jdb`:\n\n```bash\njdb -attach 127.0.0.1:5005\n# stop in com.example.OrderService.place | stop at com.example.OrderService:42\n# cont | next | step | locals | print order | where | catch java.lang.NullPointerException\n```\n\n### VS Code (Extension Pack for Java)\n\n`.vscode\u002Flaunch.json`:\n\n```json\n{\n  \"version\": \"0.2.0\",\n  \"configurations\": [\n    {\n      \"type\": \"java\",\n      \"name\": \"Attach to JVM\",\n      \"request\": \"attach\",\n      \"hostName\": \"127.0.0.1\",\n      \"port\": 5005\n    }\n  ]\n}\n```\n\n### IntelliJ IDEA\n\nRun | Edit Configurations | + | Remote JVM Debug; host `127.0.0.1`, port `5005`, debugger mode Attach. The dialog shows the matching JVM argument string.\n\n## Debug tests and frameworks\n\n| Scenario | Command (port 5005) |\n|----------|---------------------|\n| Maven Surefire unit test | `mvn test -Dmaven.surefire.debug -Dtest=OrderServiceTest` |\n| Maven Failsafe IT | `mvn verify -Dmaven.failsafe.debug -Dit.test=OrderIT` |\n| Gradle test | `gradle test --debug-jvm --tests '*OrderServiceTest'` |\n| Spring Boot (Maven) | `mvn spring-boot:run -Dspring-boot.run.jvmArguments=\"-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=127.0.0.1:5005\"` |\n| Spring Boot (Gradle) | Configure `bootRun` as below, then `gradle bootRun` (loopback, no suspend) |\n| Quarkus dev mode | `mvn quarkus:dev` (debug port 5005 open by default; `-Ddebug=5006` changes it, `-Ddebug=false` disables) |\n\nSurefire\u002FFailsafe debug mode and `--debug-jvm` suspend until a debugger attaches, which is fine for a local run. Surefire and Failsafe accept a custom agent string instead of the bare flag, e.g. `-Dmaven.surefire.debug=\"-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=127.0.0.1:5005\"`. Verified listeners on `127.0.0.1` (via `lsof -nP -iTCP:5005 -sTCP:LISTEN`) for Gradle 9.7 `--debug-jvm`, Maven Surefire 3.5 `-Dmaven.surefire.debug` and Quarkus 3.40 dev mode on JDK 26; Gradle 7.6.4, 8.0.2 (JDK 17), 8.5 (JDK 21) and 8.14.3 also listened on `127.0.0.1`. Gradle passes a bare `address=5005` (no host), so the bind address comes from the JDK: loopback on JDK 9+, but all interfaces (`0.0.0.0:5005`, checked in an `eclipse-temurin:8-jdk` container with Gradle 7.6.4 and 8.14.3) on JDK 8. Older Gradle\u002Fplugin versions were not tested; run the same `lsof` check and use an explicit loopback agent on shared networks or JDK 8.\n\nExplicit Gradle configuration (Gradle 7.6+; `debugOptions.host` was added in 7.6; Kotlin DSL):\n\n```kotlin\ntasks.withType\u003CTest> {\n    debugOptions { enabled.set(true); host.set(\"127.0.0.1\"); port.set(5005); server.set(true); suspend.set(true) }\n}\n\n\u002F\u002F BootRun extends JavaExec, not Test; configure it separately when the Boot plugin is applied.\ntasks.named\u003CJavaExec>(\"bootRun\") {\n    debugOptions { enabled.set(true); host.set(\"127.0.0.1\"); port.set(5005); server.set(true); suspend.set(false) }\n}\n```\n\nThen run `gradle test --tests '*OrderServiceTest'` or `gradle bootRun`, without `--debug-jvm` (which enables suspension). Configure only the task you are debugging; do not run both listeners on port 5005 at once. For Gradle before 7.6, use `jvmArgs(\"-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=127.0.0.1:5005\")` on the target task instead (`suspend=y` for local tests), without also enabling `debugOptions` or `--debug-jvm`. On JDK 8 and older, retain the firewall\u002Ftunnel precaution above.\n\n## Containers\n\nPublish the port to loopback only and let the JVM listen inside the container:\n\n```bash\ndocker run --rm -p 127.0.0.1:5005:5005 \\\n  -e JAVA_TOOL_OPTIONS=\"-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005\" my-app\n```\n\nInside the container the agent must bind `*` for the port mapping to work, so JDWP (full code execution) is reachable by every other container on the same Docker network; the `127.0.0.1:` mapping only blocks access from other hosts. Use this only on a developer machine where no untrusted containers share the network: run it on a dedicated user-defined network (not the shared default bridge) containing only this container, or keep the agent on `127.0.0.1` inside the container and reach it with `docker exec`\u002F`kubectl port-forward` style forwarding instead of publishing it. For Kubernetes use `kubectl port-forward pod\u002F\u003Cname> 5005:5005` against a dev\u002Fstaging pod only.\n\n## Common pitfalls\n\n- **Hot code replace** only swaps method bodies; adding\u002Fremoving methods or fields or changing signatures needs a restart (or Quarkus dev mode \u002F Spring DevTools).\n- **Missing debug info**: code compiled without `-g` shows unavailable variables (Maven and Gradle include it by default). In lambdas, step into the lambda body.\n- **Heisenbugs\u002Fraces**: pausing changes timing. Prefer logpoints, thread dumps, or JFR; suspend only the current thread, not all threads.\n- **Async and reactive code**: stack traces show scheduler frames, not the caller. Use IDE async stack traces, correlation IDs, or Reactor `Hooks.onOperatorDebug()` in dev only.\n- **Virtual threads (JDK 21+)**: there can be thousands; use `jcmd \u003Cpid> Thread.dump_to_file -format=json file.json` for an overview.\n- **Timeouts**: long pauses can trip HTTP, DB, or heartbeat timeouts; raise them locally.\n- **toString() side effects**: debugger evaluation calls `toString()`, which may trigger lazy loading or mutate state.\n\n## Optional code-navigation aid\n\nIf the Copilot CLI `lsp` tool is configured (see the `lsp-setup` skill), go-to-definition, find-references, and call hierarchy help trace the execution path. It is optional; grep and reading code work as well.\n\n## References\n\n- [Reading stack traces](references\u002Fstack-traces.md)\n- For runtime symptoms (CPU, memory, deadlocks, slow startup) use the `java-diagnostics` skill.\n\nOfficial tool docs (prefer them over this skill for the JDK in use; change `21` to your version): `jcmd` \u003Chttps:\u002F\u002Fdocs.oracle.com\u002Fen\u002Fjava\u002Fjavase\u002F21\u002Fdocs\u002Fspecs\u002Fman\u002Fjcmd.html>, JDK troubleshooting guide \u003Chttps:\u002F\u002Fdocs.oracle.com\u002Fen\u002Fjava\u002Fjavase\u002F21\u002Ftroubleshoot\u002F>.\n",{"name":5,"description":7},"main","5269f7ea2d6c3a9bfda5ed878b6726cf509121fd","skills\u002Fjava-debugging",5344,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot","https:\u002F\u002Fawesome-copilot.github.com\u002F","https:\u002F\u002Fgithub.com\u002Fgithub","https:\u002F\u002Fgithub.com\u002Fabout","How people build software.","2026-11-13 02:05:36",{"source":8,"skillName":5,"commands":64,"prompt":74,"zipAvailable":75},[65,68,71],{"tool":66,"command":67},"npx","npx skills add github\u002Fawesome-copilot --skill java-debugging",{"tool":69,"command":70},"bunx","bunx skills add github\u002Fawesome-copilot --skill java-debugging",{"tool":72,"command":73},"pnpm","pnpm dlx skills add github\u002Fawesome-copilot --skill java-debugging","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fjava-debugging\u002FSKILL.md",true,[77,83],{"path":78,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":81,"sourceHtmlUrl":82},"references\u002Fstack-traces.md","REFERENCE","参考文档",1678,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fjava-debugging\u002Freferences\u002Fstack-traces.md",{"path":84,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":87,"sourceHtmlUrl":88},"SKILL.md.tmpl","OTHER","其他",4417,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fgstack\u002Fios-design-review\u002FSKILL.md.tmpl",[90,124,152,176,210,227],{"skillNo":91,"name":92,"nameZh":6,"description":93,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":94,"categories":95,"keywords":104,"publishedAt":48},"01M70KXZNX9ES38N2A8M58ZZMZ","supabase-rls-policies","Write, review, and test Supabase Row Level Security (RLS) policies so that one user cannot read or change another user's rows. Use when creating or changing tables, policies, views, or security definer functions in a Supabase project, when reviewing a migration that touches RLS, or when asked to prove user isolation with pgTAP tests that sign in as two users.","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fsupabase-rls-policies\u002FSKILL.md",[96,101],{"categoryNo":97,"categoryName":98,"taxonomyType":99,"taxonomyTypeDesc":100},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":102,"categoryName":103,"taxonomyType":99,"taxonomyTypeDesc":100},"01JBSEEDCAT000000000000023","Skill与智能体开发",[105,106,107,108,109,29,110,111,112,113,114,115,116,117,118,119,120,121,122,123],"supabase","rls","supabase rls","supabase rls policies","project","review","change","read","write","security","isolation","tables","as","tests","prove","use","users","functions","with",{"skillNo":125,"name":126,"nameZh":6,"description":127,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":128,"categories":129,"keywords":131,"publishedAt":48},"01M70KWA5YWXDV6V8DZ19E3T2Y","skill-distribution-audit","Audit a skill collection before release or investigate installer omissions, archived\u002Ftemplate leakage, duplicate identities, and manifest drift. Reconcile the intended public source set, distribution manifest, and actual discovery output for a specified consumer version. Includes a deterministic set-comparison helper.","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fskill-distribution-audit\u002FSKILL.md",[130],{"categoryNo":102,"categoryName":103,"taxonomyType":99,"taxonomyTypeDesc":100},[132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151],"distribution","skill distribution audit","audit","SET","deterministic","installer","for","discovery","comparison","helper","manifest","version","collection","drift","output","investigate","duplicate","template","release","reconcile",{"skillNo":153,"name":154,"nameZh":6,"description":155,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":156,"sourceHtmlUrl":157,"categories":158,"keywords":160,"publishedAt":48},"01M70KCJPFVW7PPQ49CC5R8JGK","logicapps-custom-code-net10-migration","Migrate Azure Logic Apps Standard local-function custom-code projects from .NET 8 to .NET 10. Use for legacy Logic Apps custom-code workspace upgrades, project\u002Fpackage configuration, custom-worker settings, publication, and integrated VS Code debugging. Not for ordinary .NET applications, standalone Azure Functions, Consumption workflows, or cloud deployment.","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Flogicapps-custom-code-net10-migration\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Flogicapps-custom-code-net10-migration\u002FSKILL.md",[159],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[161,44,162,163,164,165,138,109,166,167,168,169,170,171,172,120,173,174,24,175],"custom","logicapps custom code net10 migration","migration","projects","standalone","deployment","applications","local","azure","worker","upgrades","package","apps","Legacy","workflows",{"skillNo":177,"name":178,"nameZh":6,"description":179,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":180,"sourceHtmlUrl":181,"categories":182,"keywords":187,"publishedAt":48},"01M6AEBN37RQMXJ3298PEY7PG1","winmd-api-search","Find and explore Windows desktop APIs. Use when building features that need platform capabilities — camera, file access, notifications, UI controls, AI\u002FML, sensors, networking, etc. Discovers the right API for a task and retrieves full type details (methods, properties, events, enumeration values).","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fwinmd-api-search\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fwinmd-api-search\u002FSKILL.md",[183,186],{"categoryNo":184,"categoryName":185,"taxonomyType":99,"taxonomyTypeDesc":100},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,29,203,204,205,206,207,138,208,209],"winmd api search","search","api","windows","desktop","file access","enumeration","ui","ml","file","networking","capabilities","notifications","explore","access","features","full","camera","events","platform","methods","controls",{"skillNo":211,"name":212,"nameZh":6,"description":213,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":214,"licenseFileUrl":215,"sourceHtmlUrl":216,"categories":217,"keywords":223,"publishedAt":48},"01M6AE571R3SC1ZGE202B3NB5S","resemble-detect","Deepfake detection and media safety — detect AI-generated audio, images, video, and text, trace synthesis sources, apply watermarks, verify speaker identity, and analyze media intelligence using Resemble AI","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fresemble-detect\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fresemble-detect\u002FSKILL.md",[218,219,222],{"categoryNo":184,"categoryName":185,"taxonomyType":99,"taxonomyTypeDesc":100},{"categoryNo":220,"categoryName":221,"taxonomyType":99,"taxonomyTypeDesc":100},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":102,"categoryName":103,"taxonomyType":99,"taxonomyTypeDesc":100},[224,135,197,225,226],"resemble detect","https","identity",{"skillNo":228,"name":229,"nameZh":6,"description":230,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":214,"licenseFileUrl":231,"sourceHtmlUrl":232,"categories":233,"keywords":238,"publishedAt":48},"01M6AE30BSK2HCY4TQQ22Z8JRD","quality-playbook","Run a complete quality engineering audit on any codebase. Derives behavioral requirements from the code, generates spec-traced functional tests, runs a three-pass code review with regression tests, executes a multi-model spec audit (Council of Three), and produces a consolidated bug report with TDD-verified patches. Finds the 35% of real defects that structural code review alone cannot catch. Works with any language. Trigger on 'quality playbook', 'spec audit', 'Council of Three', 'fitness-to-purpose', or 'coverage theater'.","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fquality-playbook\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fquality-playbook\u002FSKILL.md",[234,237],{"categoryNo":235,"categoryName":236,"taxonomyType":99,"taxonomyTypeDesc":100},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":102,"categoryName":103,"taxonomyType":99,"taxonomyTypeDesc":100},[239,240,241,242,44,110,9,134,243,244,225,245,246,247,248,249,250,251,36,252,253,254,118,255,256,257,258],"playbook","quality playbook","quality","code review","tdd","run","report","spec","bug report","council","engineering","functional","spec audit","verified","multi-model","three","coverage","model","regression","structural"]