[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6EY1NT733X3GJBZAN9FNPRT":3,"skill-same:01M6EY1NT733X3GJBZAN9FNPRT":107},{"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":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":49,"commitSha":50,"skillDirectory":51,"forksCount":52,"repositoryHtmlUrl":53,"repositoryHomepageUrl":54,"ownerHtmlUrl":55,"ownerBlogUrl":56,"ownerDescription":57,"updatedAt":58,"install":59,"resources":72},"01M6EY1NT733X3GJBZAN9FNPRT","spring-security",null,"Configure, test and review Spring Security 6\u002F7 in Spring Boot 3\u002F4 apps: SecurityFilterChain lambda DSL, method security, OAuth2 resource server with JWT, OIDC login, CSRF\u002FCORS, password encoding, headers, actuator protection, and MockMvc security tests. Use when adding or auditing authentication and authorization.","github\u002Fawesome-copilot","github","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F9919?v=4","01M6AC83DS133TPXFSP1DHNCC6","GitHub","01M6AD3PBDYPK7NVFJNJ66Y8RS",41046,"MIT","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fspring-security\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"security","spring security","spring","protection","when","dsl","mockmvc","login","headers","review","with","spring boot 3","apps","tests","boot","use","test","password","configure","csrf","lambda","server","encoding","spring boot","authentication","2026-11-10 10:12:30",false,"---\nname: spring-security\ndescription: 'Configure, test and review Spring Security 6\u002F7 in Spring Boot 3\u002F4 apps: SecurityFilterChain lambda DSL, method security, OAuth2 resource server with JWT, OIDC login, CSRF\u002FCORS, password encoding, headers, actuator protection, and MockMvc security tests. Use when adding or auditing authentication and authorization.'\n---\n\n# Spring Security\n\nPractical guidance for Spring Security 6.x (Spring Boot 3.x) and 7.x (Spring Boot 4.x). Details per topic are in `references\u002F`.\n\n## Safety rules\n\n- Never read, print, or commit secrets: `.env`, `application-*.properties` with credentials, client secrets, private keys, JWT signing keys. Reference them via environment variables or a secret manager.\n- Never disable security (`permitAll()` on everything, `csrf.disable()` for browser apps) just to make a test or demo pass.\n\n## First: detect the version\n\n1. Find the Boot version (`pom.xml` parent\u002FBOM, `build.gradle(.kts)`, `libs.versions.toml`) and run `.\u002Fmvnw dependency:tree -Dincludes=org.springframework.security` or `.\u002Fgradlew dependencies --configuration runtimeClasspath` to see the Spring Security version.\n2. Boot 3.x -> Security 6.x; Boot 4.x -> Security 7.x. Do not mix guidance: in 7.x, APIs deprecated in 6.x are removed (for example `and()` chaining, `authorizeRequests`, `AntPathRequestMatcher`\u002F`MvcRequestMatcher` style matchers; use the lambda DSL and `requestMatchers(...)`). Check the \"What's New\" and migration pages on docs.spring.io\u002Fspring-security when upgrading.\n3. Identify the app type: servlet MVC (`SecurityFilterChain`) or WebFlux (`SecurityWebFilterChain`, `@EnableWebFluxSecurity`); browser app with sessions, or stateless API.\n\n## Core configuration\n\nDeclare a `SecurityFilterChain` bean. `WebSecurityConfigurerAdapter` no longer exists.\n\n```java\n@Configuration\n@EnableWebSecurity\n@EnableMethodSecurity\nclass SecurityConfig {\n\n    @Bean\n    SecurityFilterChain api(HttpSecurity http) throws Exception {\n        http\n            .authorizeHttpRequests(auth -> auth\n                .requestMatchers(\"\u002Factuator\u002Fhealth\u002F**\", \"\u002Fpublic\u002F**\").permitAll()\n                .requestMatchers(\"\u002Fadmin\u002F**\").hasRole(\"ADMIN\")\n                .anyRequest().authenticated())\n            .oauth2ResourceServer(oauth2 -> oauth2.jwt(Customizer.withDefaults()))\n            .sessionManagement(s -> s.sessionCreationPolicy(SessionCreationPolicy.STATELESS))\n            .csrf(csrf -> csrf.disable()); \u002F\u002F only for stateless token APIs without cookies\n        return http.build();\n    }\n}\n```\n\nRules of thumb:\n\n- Rules are evaluated in order; put specific matchers first and end with `anyRequest().authenticated()` (deny by default).\n- Use multiple `SecurityFilterChain` beans with `securityMatcher(...)` and `@Order` when the app mixes an API and a browser UI.\n- Add `@EnableMethodSecurity` and use `@PreAuthorize`\u002F`@PostAuthorize` on services for fine-grained rules; see [method security](references\u002Fmethod-security.md).\n- Authentication choices: [OAuth2 resource server and JWT](references\u002Foauth2-resource-server-jwt.md), [OIDC login and OAuth2 client](references\u002Foidc-login-oauth2-client.md).\n- Session vs stateless, CSRF, CORS, headers: [web protections](references\u002Fcsrf-cors-sessions-headers.md).\n- Passwords and users: [password encoding](references\u002Fpassword-encoding.md).\n- Actuator endpoints: [actuator protection](references\u002Factuator-protection.md) (see also the `spring-observability` skill if installed).\n- Tests: [testing security](references\u002Ftesting-security.md).\n- Review: [common mistakes checklist](references\u002Freview-checklist.md).\n\n## Decision guide\n\n| Situation | Approach |\n|---|---|\n| REST API called by SPA\u002Fmobile\u002Fservices with bearer tokens | Resource server + JWT, stateless, CSRF off (no cookie auth) |\n| Server-rendered app or SPA with same-site cookie session | Form login or OIDC login, sessions, CSRF on |\n| SPA using BFF pattern | OIDC login in the backend, session cookie to browser, CSRF token via cookie repository |\n| Internal service-to-service | Client credentials grant, resource server on the receiving side |\n\n## Dependencies (pin through the Boot BOM, no explicit versions)\n\n- `spring-boot-starter-security`, plus `spring-boot-starter-oauth2-resource-server` or `spring-boot-starter-oauth2-client` on Boot 3.x. Boot 4.x names: `spring-boot-starter-security-oauth2-resource-server` \u002F `spring-boot-starter-security-oauth2-client` (the old names remain as deprecated aliases).\n- Tests: add `spring-security-test` (test scope) on Boot 3.x; on Boot 4.x use `spring-boot-starter-security-test` (plus `spring-boot-starter-security-oauth2-resource-server-test` \u002F `-client-test` when those starters are used) together with modular test starters such as `spring-boot-starter-webmvc-test`.\n\n## Verify\n\nRun the app's tests plus security-specific tests (401 without credentials, 403 with insufficient role, 200 with the right one, CSRF rejection on state-changing browser requests). Confirm no endpoint was accidentally left open by listing the mappings and checking each against the filter chain.\n\nSee also (prefer over this skill for the version in use): Spring Security reference \u003Chttps:\u002F\u002Fdocs.spring.io\u002Fspring-security\u002Freference\u002Findex.html> and migration chapter \u003Chttps:\u002F\u002Fdocs.spring.io\u002Fspring-security\u002Freference\u002Fmigration\u002Findex.html>.\n","# Spring Security\n\nPractical guidance for Spring Security 6.x (Spring Boot 3.x) and 7.x (Spring Boot 4.x). Details per topic are in `references\u002F`.\n\n## Safety rules\n\n- Never read, print, or commit secrets: `.env`, `application-*.properties` with credentials, client secrets, private keys, JWT signing keys. Reference them via environment variables or a secret manager.\n- Never disable security (`permitAll()` on everything, `csrf.disable()` for browser apps) just to make a test or demo pass.\n\n## First: detect the version\n\n1. Find the Boot version (`pom.xml` parent\u002FBOM, `build.gradle(.kts)`, `libs.versions.toml`) and run `.\u002Fmvnw dependency:tree -Dincludes=org.springframework.security` or `.\u002Fgradlew dependencies --configuration runtimeClasspath` to see the Spring Security version.\n2. Boot 3.x -> Security 6.x; Boot 4.x -> Security 7.x. Do not mix guidance: in 7.x, APIs deprecated in 6.x are removed (for example `and()` chaining, `authorizeRequests`, `AntPathRequestMatcher`\u002F`MvcRequestMatcher` style matchers; use the lambda DSL and `requestMatchers(...)`). Check the \"What's New\" and migration pages on docs.spring.io\u002Fspring-security when upgrading.\n3. Identify the app type: servlet MVC (`SecurityFilterChain`) or WebFlux (`SecurityWebFilterChain`, `@EnableWebFluxSecurity`); browser app with sessions, or stateless API.\n\n## Core configuration\n\nDeclare a `SecurityFilterChain` bean. `WebSecurityConfigurerAdapter` no longer exists.\n\n```java\n@Configuration\n@EnableWebSecurity\n@EnableMethodSecurity\nclass SecurityConfig {\n\n    @Bean\n    SecurityFilterChain api(HttpSecurity http) throws Exception {\n        http\n            .authorizeHttpRequests(auth -> auth\n                .requestMatchers(\"\u002Factuator\u002Fhealth\u002F**\", \"\u002Fpublic\u002F**\").permitAll()\n                .requestMatchers(\"\u002Fadmin\u002F**\").hasRole(\"ADMIN\")\n                .anyRequest().authenticated())\n            .oauth2ResourceServer(oauth2 -> oauth2.jwt(Customizer.withDefaults()))\n            .sessionManagement(s -> s.sessionCreationPolicy(SessionCreationPolicy.STATELESS))\n            .csrf(csrf -> csrf.disable()); \u002F\u002F only for stateless token APIs without cookies\n        return http.build();\n    }\n}\n```\n\nRules of thumb:\n\n- Rules are evaluated in order; put specific matchers first and end with `anyRequest().authenticated()` (deny by default).\n- Use multiple `SecurityFilterChain` beans with `securityMatcher(...)` and `@Order` when the app mixes an API and a browser UI.\n- Add `@EnableMethodSecurity` and use `@PreAuthorize`\u002F`@PostAuthorize` on services for fine-grained rules; see [method security](references\u002Fmethod-security.md).\n- Authentication choices: [OAuth2 resource server and JWT](references\u002Foauth2-resource-server-jwt.md), [OIDC login and OAuth2 client](references\u002Foidc-login-oauth2-client.md).\n- Session vs stateless, CSRF, CORS, headers: [web protections](references\u002Fcsrf-cors-sessions-headers.md).\n- Passwords and users: [password encoding](references\u002Fpassword-encoding.md).\n- Actuator endpoints: [actuator protection](references\u002Factuator-protection.md) (see also the `spring-observability` skill if installed).\n- Tests: [testing security](references\u002Ftesting-security.md).\n- Review: [common mistakes checklist](references\u002Freview-checklist.md).\n\n## Decision guide\n\n| Situation | Approach |\n|---|---|\n| REST API called by SPA\u002Fmobile\u002Fservices with bearer tokens | Resource server + JWT, stateless, CSRF off (no cookie auth) |\n| Server-rendered app or SPA with same-site cookie session | Form login or OIDC login, sessions, CSRF on |\n| SPA using BFF pattern | OIDC login in the backend, session cookie to browser, CSRF token via cookie repository |\n| Internal service-to-service | Client credentials grant, resource server on the receiving side |\n\n## Dependencies (pin through the Boot BOM, no explicit versions)\n\n- `spring-boot-starter-security`, plus `spring-boot-starter-oauth2-resource-server` or `spring-boot-starter-oauth2-client` on Boot 3.x. Boot 4.x names: `spring-boot-starter-security-oauth2-resource-server` \u002F `spring-boot-starter-security-oauth2-client` (the old names remain as deprecated aliases).\n- Tests: add `spring-security-test` (test scope) on Boot 3.x; on Boot 4.x use `spring-boot-starter-security-test` (plus `spring-boot-starter-security-oauth2-resource-server-test` \u002F `-client-test` when those starters are used) together with modular test starters such as `spring-boot-starter-webmvc-test`.\n\n## Verify\n\nRun the app's tests plus security-specific tests (401 without credentials, 403 with insufficient role, 200 with the right one, CSRF rejection on state-changing browser requests). Confirm no endpoint was accidentally left open by listing the mappings and checking each against the filter chain.\n\nSee also (prefer over this skill for the version in use): Spring Security reference \u003Chttps:\u002F\u002Fdocs.spring.io\u002Fspring-security\u002Freference\u002Findex.html> and migration chapter \u003Chttps:\u002F\u002Fdocs.spring.io\u002Fspring-security\u002Freference\u002Fmigration\u002Findex.html>.\n",{"name":5,"description":7},"main","61fa1fa8fcc63d6dbd2f07a75aeb8e214df5acfb","skills\u002Fspring-security",5340,"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-11 13:41:32",{"source":8,"skillName":5,"commands":60,"prompt":70,"zipAvailable":71},[61,64,67],{"tool":62,"command":63},"npx","npx skills add github\u002Fawesome-copilot --skill spring-security",{"tool":65,"command":66},"bunx","bunx skills add github\u002Fawesome-copilot --skill spring-security",{"tool":68,"command":69},"pnpm","pnpm dlx skills add github\u002Fawesome-copilot --skill spring-security","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fspring-security\u002FSKILL.md",true,[73,79,83,87,91,95,99,103],{"path":74,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":77,"sourceHtmlUrl":78},"references\u002Factuator-protection.md","REFERENCE","参考文档",2061,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fspring-security\u002Freferences\u002Factuator-protection.md",{"path":80,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":81,"sourceHtmlUrl":82},"references\u002Fcsrf-cors-sessions-headers.md",3506,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fspring-security\u002Freferences\u002Fcsrf-cors-sessions-headers.md",{"path":84,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":85,"sourceHtmlUrl":86},"references\u002Fmethod-security.md",1435,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fspring-security\u002Freferences\u002Fmethod-security.md",{"path":88,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":89,"sourceHtmlUrl":90},"references\u002Foauth2-resource-server-jwt.md",2969,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fspring-security\u002Freferences\u002Foauth2-resource-server-jwt.md",{"path":92,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":93,"sourceHtmlUrl":94},"references\u002Foidc-login-oauth2-client.md",2070,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fspring-security\u002Freferences\u002Foidc-login-oauth2-client.md",{"path":96,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":97,"sourceHtmlUrl":98},"references\u002Fpassword-encoding.md",650,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fspring-security\u002Freferences\u002Fpassword-encoding.md",{"path":100,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":101,"sourceHtmlUrl":102},"references\u002Freview-checklist.md",729,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fspring-security\u002Freferences\u002Freview-checklist.md",{"path":104,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":105,"sourceHtmlUrl":106},"references\u002Ftesting-security.md",3918,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fspring-security\u002Freferences\u002Ftesting-security.md",[108,137,165,194,228,245],{"skillNo":109,"name":110,"nameZh":6,"description":111,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":112,"categories":113,"keywords":122,"publishedAt":44},"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",[114,119],{"categoryNo":115,"categoryName":116,"taxonomyType":117,"taxonomyTypeDesc":118},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":120,"categoryName":121,"taxonomyType":117,"taxonomyTypeDesc":118},"01JBSEEDCAT000000000000023","Skill与智能体开发",[123,124,125,126,127,23,28,128,129,130,19,131,132,133,32,134,34,135,136,29],"supabase","rls","supabase rls","supabase rls policies","project","change","read","write","isolation","tables","as","prove","users","functions",{"skillNo":138,"name":139,"nameZh":6,"description":140,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":141,"categories":142,"keywords":144,"publishedAt":44},"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",[143],{"categoryNo":120,"categoryName":121,"taxonomyType":117,"taxonomyTypeDesc":118},[145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164],"distribution","skill distribution audit","audit","SET","deterministic","installer","for","discovery","comparison","helper","manifest","version","collection","drift","output","investigate","duplicate","template","release","reconcile",{"skillNo":166,"name":167,"nameZh":6,"description":168,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":169,"sourceHtmlUrl":170,"categories":171,"keywords":177,"publishedAt":44},"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",[172],{"categoryNo":173,"categoryName":174,"taxonomyType":175,"taxonomyTypeDesc":176},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[178,179,180,181,182,183,151,127,184,185,186,187,188,189,190,34,31,191,192,193],"custom","code","logicapps custom code net10 migration","migration","projects","standalone","deployment","applications","local","azure","worker","upgrades","package","Legacy","debugging","workflows",{"skillNo":195,"name":196,"nameZh":6,"description":197,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":198,"sourceHtmlUrl":199,"categories":200,"keywords":205,"publishedAt":44},"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",[201,204],{"categoryNo":202,"categoryName":203,"taxonomyType":117,"taxonomyTypeDesc":118},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":173,"categoryName":174,"taxonomyType":175,"taxonomyTypeDesc":176},[206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,23,221,222,223,224,225,151,226,227],"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":229,"name":230,"nameZh":6,"description":231,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":232,"licenseFileUrl":233,"sourceHtmlUrl":234,"categories":235,"keywords":241,"publishedAt":44},"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",[236,237,240],{"categoryNo":202,"categoryName":203,"taxonomyType":117,"taxonomyTypeDesc":118},{"categoryNo":238,"categoryName":239,"taxonomyType":117,"taxonomyTypeDesc":118},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":120,"categoryName":121,"taxonomyType":117,"taxonomyTypeDesc":118},[242,148,215,243,244],"resemble detect","https","identity",{"skillNo":246,"name":247,"nameZh":6,"description":248,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":232,"licenseFileUrl":249,"sourceHtmlUrl":250,"categories":251,"keywords":256,"publishedAt":44},"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",[252,255],{"categoryNo":253,"categoryName":254,"taxonomyType":117,"taxonomyTypeDesc":118},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":120,"categoryName":121,"taxonomyType":117,"taxonomyTypeDesc":118},[257,258,259,260,179,28,9,147,261,262,243,263,264,265,266,267,268,269,270,271,272,273,32,274,275,276,277],"playbook","quality playbook","quality","code review","tdd","run","report","spec","bug report","council","engineering","functional","spec audit","bug","verified","multi-model","three","coverage","model","regression","structural"]