[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6ADVNDA3PZYCQ6YTSXE9N63":3,"skill-same:01M6ADVNDA3PZYCQ6YTSXE9N63":76},{"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":26,"publishedAt":47,"linkOnly":48,"markdownContent":49,"markdownBody":50,"frontMatter":51,"refName":52,"commitSha":53,"skillDirectory":54,"forksCount":55,"repositoryHtmlUrl":56,"repositoryHomepageUrl":57,"ownerHtmlUrl":58,"ownerBlogUrl":59,"ownerDescription":60,"updatedAt":61,"install":62,"resources":75},"01M6ADVNDA3PZYCQ6YTSXE9N63","migrating-oracle-to-postgres-data-access-code",null,"Migrates .NET\u002FC# data access code from Oracle to PostgreSQL (Npgsql). Replaces Oracle NuGet packages, rewrites OracleConnection\u002FOracleCommand\u002FOracleDataReader usage, fixes DbType mappings, updates stored procedure invocation patterns, and adapts connection string configuration. Use when migrating the application code layer of a .NET project during an Oracle-to-PostgreSQL database migration.","github\u002Fawesome-copilot","github","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F9919?v=4","01M6AC83DS133TPXFSP1DHNCC6","GitHub","01M6AD3PBDYPK7NVFJNJ66Y8RS",41133,"MIT","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fmigrating-oracle-to-postgres-data-access-code\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000033","数据分析师",[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],"code","data","migrating oracle to postgres data access code","access","oracle","postgres","migration","postgresql database","when","fixes","updates","usage","C#","connection","project","use","postgresql","database","nuget","packages","2026-11-10 10:12:30",false,"---\nname: migrating-oracle-to-postgres-data-access-code\ndescription: 'Migrates .NET\u002FC# data access code from Oracle to PostgreSQL (Npgsql). Replaces Oracle NuGet packages, rewrites OracleConnection\u002FOracleCommand\u002FOracleDataReader usage, fixes DbType mappings, updates stored procedure invocation patterns, and adapts connection string configuration. Use when migrating the application code layer of a .NET project during an Oracle-to-PostgreSQL database migration.'\n---\n\n# Migrating .NET Data Access Code from Oracle to PostgreSQL\n\nMigrate the C# data access layer of a single `.Postgres`-copy project from Oracle (Oracle.ManagedDataAccess) to PostgreSQL (Npgsql). Work item by item through `Reports\u002F{ProjectName}\u002FMigrationChecklist.md`.\n\n## Prerequisites\n\n- The `.Postgres` project copy exists (created in Phase 5 setup).\n- `Reports\u002F{ProjectName}\u002FMigrationChecklist.md` exists and is the source of truth for what to change.\n- `Reports\u002F{ProjectName}\u002FOracleRiskAnalysis.md` exists for cross-referencing behavioral differences.\n\n## Workflow\n\n```\nProgress:\n- [ ] Step 1: Replace NuGet packages\n- [ ] Step 2: Update connection string configuration\n- [ ] Step 3: Rewrite ADO.NET type references\n- [ ] Step 4: Fix DbType mappings\n- [ ] Step 5: Migrate stored procedure invocation\n- [ ] Step 6: Address Oracle-specific SQL and syntax\n- [ ] Step 7: Build and verify\n```\n\n**Step 1: Replace NuGet packages**\n\nIn the `.csproj` of the `.Postgres` project:\n\n- Remove: `Oracle.ManagedDataAccess.Core`, `Oracle.EntityFrameworkCore` (and any other `Oracle.*` packages)\n- Add: `Npgsql` (for ADO.NET) and\u002For `Npgsql.EntityFrameworkCore.PostgreSQL` (for EF Core)\n- Keep version pinning consistent with the target .NET version; do not introduce newer package versions than what the solution already uses for similar packages.\n- If `System.Data` abstractions (`IDbConnection`, `IDbCommand`) are used project-wide, the surface-level code may need fewer changes — identify them first.\n\n**Step 2: Update connection string configuration**\n\n- Locate the Oracle connection string in `appsettings.json`, `appsettings.{env}.json`, `web.config`, `app.config`, or environment variable configuration.\n- Replace with a Npgsql-compatible connection string: `Host=localhost;Port=5432;Database=mydb;Username=myuser;Password=mypassword`\n- Do not hardcode credentials — use the same configuration mechanism already in use (e.g., environment variables, secrets manager, `IConfiguration`).\n- Update any named connection string keys only if they were Oracle-specific (e.g., `OracleConnection`). Prefer keeping the same key name to minimize application config changes.\n\n**Step 3: Rewrite ADO.NET type references**\n\nReplace Oracle-specific ADO.NET types with Npgsql equivalents:\n\n| Oracle type | Npgsql replacement |\n|---|---|\n| `OracleConnection` | `NpgsqlConnection` |\n| `OracleCommand` | `NpgsqlCommand` |\n| `OracleDataReader` | `NpgsqlDataReader` |\n| `OracleDataAdapter` | `NpgsqlDataAdapter` |\n| `OracleParameter` | `NpgsqlParameter` |\n| `OracleTransaction` | `NpgsqlTransaction` |\n| `OracleException` | `NpgsqlException` |\n| `OracleDbType` | `NpgsqlDbType` (from `NpgsqlTypes` namespace) |\n\nUpdate `using` directives accordingly (`using Oracle.ManagedDataAccess.Client` → `using Npgsql`).\n\nIf the codebase uses `IDbConnection`\u002F`IDbCommand` abstractions registered via DI, update only the DI registration and connection string — the consuming code may not need changes.\n\n**Step 4: Fix DbType and NpgsqlDbType mappings**\n\nOracle parameter types do not map 1:1 to Npgsql. Review every `OracleParameter` (now `NpgsqlParameter`) that sets an explicit type:\n\n| Oracle type | Notes |\n|---|---|\n| `OracleDbType.Varchar2` | Use `NpgsqlDbType.Varchar` or omit (Npgsql infers from value) |\n| `OracleDbType.Clob` | Use `NpgsqlDbType.Text` |\n| `OracleDbType.Number` | Use `NpgsqlDbType.Numeric` or `NpgsqlDbType.Integer` depending on precision |\n| `OracleDbType.Date` | Use `NpgsqlDbType.Date` (date only) or `NpgsqlDbType.Timestamp` (if time component used) |\n| `OracleDbType.TimeStamp` | Use `NpgsqlDbType.Timestamp` |\n| `OracleDbType.RefCursor` | Use `NpgsqlDbType.Refcursor` — see Step 5 |\n| `OracleDbType.Char` | Use `NpgsqlDbType.Char` |\n\nFor parameters where Oracle inferred the type from the value, Npgsql also infers — explicit type setting is often unnecessary and can be removed.\n\n**Step 5: Migrate stored procedure invocation**\n\nOracle and PostgreSQL stored procedure invocation differ significantly:\n\n- **Command type**: Retain `CommandType.StoredProcedure` for function calls. For procedures that use `OUT` parameters, PostgreSQL requires `CommandType.Text` with `CALL proc_name(...)` syntax in some versions of Npgsql — verify against the target Npgsql version.\n- **RefCursor handling**: Oracle returns ref cursors as output parameters; PostgreSQL returns them differently:\n  - For `RETURNS TABLE` \u002F `RETURNS SETOF`, use `ExecuteReader()` directly — no cursor parameter needed.\n  - For `RETURNS refcursor`, call within a transaction, read the cursor name from the output parameter, then issue `FETCH ALL IN \"\u003Ccursor_name>\"`.\n  - Remove any Oracle-specific cursor-wrapping code (e.g., `OracleRefCursor`).\n- **OUT parameters**: PostgreSQL stored procedures use `INOUT` or function return values. Verify parameter direction matches the migrated procedure signature.\n- **Sequence `NEXTVAL`**: Replace `SELECT {SEQUENCE}.NEXTVAL FROM DUAL` with `SELECT nextval('{sequence_name}')`.\n- **Named parameters**: Npgsql uses `@param_name`; Oracle used `:param_name`. Update all parameter name prefixes.\n\n**Step 6: Address Oracle-specific SQL and C# patterns**\n\nReview inline SQL strings and query builders for Oracle-specific constructs and replace:\n\n| Oracle construct | PostgreSQL replacement |\n|---|---|\n| `ROWNUM \u003C= n` | `LIMIT n` |\n| `ROWNUM = 1` | `LIMIT 1` |\n| `NVL(x, y)` | `COALESCE(x, y)` |\n| `DECODE(expr, v1, r1, ...)` | `CASE WHEN expr = v1 THEN r1 ... END` |\n| `SYSDATE` \u002F `SYSTIMESTAMP` | `NOW()` or `CURRENT_TIMESTAMP` |\n| `TO_CHAR(date, fmt)` | `TO_CHAR(date, fmt)` (mostly compatible; verify format strings) |\n| `TO_DATE(str, fmt)` | `TO_DATE(str, fmt)` (verify format strings) |\n| `TO_NUMBER(str)` | `CAST(str AS NUMERIC)` or `str::NUMERIC` |\n| `||` string concat | `||` (compatible) |\n| `DUAL` table | Remove `FROM DUAL`; PostgreSQL evaluates `SELECT expr` without a table |\n| `CONNECT BY` hierarchy | Rewrite using recursive CTEs (`WITH RECURSIVE`) |\n| `MERGE INTO` | Rewrite as `INSERT ... ON CONFLICT DO UPDATE` |\n| Empty string `''` as NULL | Oracle treats `''` as NULL; PostgreSQL does not — check comparisons and `IS NULL` guards |\n| `VARCHAR2` | `VARCHAR` or `TEXT` |\n\n**Step 7: Build and verify**\n\nAfter addressing all checklist items:\n\n1. Run `dotnet build` on the `.Postgres` project. Fix any remaining compilation errors.\n2. Verify no Oracle-specific namespaces remain: search for `Oracle.ManagedDataAccess`, `OracleConnection`, `OracleCommand`, `:param` patterns.\n3. Mark completed items in `Reports\u002F{ProjectName}\u002FMigrationChecklist.md`.\n\n## EF Core projects\n\nIf the project uses `Oracle.EntityFrameworkCore`:\n\n- Replace the provider registration in `DbContext` configuration: `.UseOracle(...)` → `.UseNpgsql(...)`\n- Replace `OracleDbContextOptionsBuilder` references.\n- Review `OnModelCreating` for Oracle-specific configurations (e.g., `HasColumnType(\"NUMBER\")` → `HasColumnType(\"numeric\")`).\n- Sequence configuration: `modelBuilder.HasSequence\u003Cint>(\"seq_name\").StartsAt(1).IncrementsBy(1)` syntax is compatible; verify column defaults referencing sequences.\n- Do not run EF Core migrations — schema is managed externally via DDL scripts (Phase 4).\n\n## Key Constraints\n\n- Work only within the `.Postgres` copy — never modify the original Oracle-targeting project.\n- Keep to existing .NET and C# versions; do not introduce newer language or runtime features.\n- Preserve comments and application logic; change only what is necessary for PostgreSQL compatibility.\n- Oracle is the source of truth — behavioral differences must be documented as bug reports, not silently altered.\n","# Migrating .NET Data Access Code from Oracle to PostgreSQL\n\nMigrate the C# data access layer of a single `.Postgres`-copy project from Oracle (Oracle.ManagedDataAccess) to PostgreSQL (Npgsql). Work item by item through `Reports\u002F{ProjectName}\u002FMigrationChecklist.md`.\n\n## Prerequisites\n\n- The `.Postgres` project copy exists (created in Phase 5 setup).\n- `Reports\u002F{ProjectName}\u002FMigrationChecklist.md` exists and is the source of truth for what to change.\n- `Reports\u002F{ProjectName}\u002FOracleRiskAnalysis.md` exists for cross-referencing behavioral differences.\n\n## Workflow\n\n```\nProgress:\n- [ ] Step 1: Replace NuGet packages\n- [ ] Step 2: Update connection string configuration\n- [ ] Step 3: Rewrite ADO.NET type references\n- [ ] Step 4: Fix DbType mappings\n- [ ] Step 5: Migrate stored procedure invocation\n- [ ] Step 6: Address Oracle-specific SQL and syntax\n- [ ] Step 7: Build and verify\n```\n\n**Step 1: Replace NuGet packages**\n\nIn the `.csproj` of the `.Postgres` project:\n\n- Remove: `Oracle.ManagedDataAccess.Core`, `Oracle.EntityFrameworkCore` (and any other `Oracle.*` packages)\n- Add: `Npgsql` (for ADO.NET) and\u002For `Npgsql.EntityFrameworkCore.PostgreSQL` (for EF Core)\n- Keep version pinning consistent with the target .NET version; do not introduce newer package versions than what the solution already uses for similar packages.\n- If `System.Data` abstractions (`IDbConnection`, `IDbCommand`) are used project-wide, the surface-level code may need fewer changes — identify them first.\n\n**Step 2: Update connection string configuration**\n\n- Locate the Oracle connection string in `appsettings.json`, `appsettings.{env}.json`, `web.config`, `app.config`, or environment variable configuration.\n- Replace with a Npgsql-compatible connection string: `Host=localhost;Port=5432;Database=mydb;Username=myuser;Password=mypassword`\n- Do not hardcode credentials — use the same configuration mechanism already in use (e.g., environment variables, secrets manager, `IConfiguration`).\n- Update any named connection string keys only if they were Oracle-specific (e.g., `OracleConnection`). Prefer keeping the same key name to minimize application config changes.\n\n**Step 3: Rewrite ADO.NET type references**\n\nReplace Oracle-specific ADO.NET types with Npgsql equivalents:\n\n| Oracle type | Npgsql replacement |\n|---|---|\n| `OracleConnection` | `NpgsqlConnection` |\n| `OracleCommand` | `NpgsqlCommand` |\n| `OracleDataReader` | `NpgsqlDataReader` |\n| `OracleDataAdapter` | `NpgsqlDataAdapter` |\n| `OracleParameter` | `NpgsqlParameter` |\n| `OracleTransaction` | `NpgsqlTransaction` |\n| `OracleException` | `NpgsqlException` |\n| `OracleDbType` | `NpgsqlDbType` (from `NpgsqlTypes` namespace) |\n\nUpdate `using` directives accordingly (`using Oracle.ManagedDataAccess.Client` → `using Npgsql`).\n\nIf the codebase uses `IDbConnection`\u002F`IDbCommand` abstractions registered via DI, update only the DI registration and connection string — the consuming code may not need changes.\n\n**Step 4: Fix DbType and NpgsqlDbType mappings**\n\nOracle parameter types do not map 1:1 to Npgsql. Review every `OracleParameter` (now `NpgsqlParameter`) that sets an explicit type:\n\n| Oracle type | Notes |\n|---|---|\n| `OracleDbType.Varchar2` | Use `NpgsqlDbType.Varchar` or omit (Npgsql infers from value) |\n| `OracleDbType.Clob` | Use `NpgsqlDbType.Text` |\n| `OracleDbType.Number` | Use `NpgsqlDbType.Numeric` or `NpgsqlDbType.Integer` depending on precision |\n| `OracleDbType.Date` | Use `NpgsqlDbType.Date` (date only) or `NpgsqlDbType.Timestamp` (if time component used) |\n| `OracleDbType.TimeStamp` | Use `NpgsqlDbType.Timestamp` |\n| `OracleDbType.RefCursor` | Use `NpgsqlDbType.Refcursor` — see Step 5 |\n| `OracleDbType.Char` | Use `NpgsqlDbType.Char` |\n\nFor parameters where Oracle inferred the type from the value, Npgsql also infers — explicit type setting is often unnecessary and can be removed.\n\n**Step 5: Migrate stored procedure invocation**\n\nOracle and PostgreSQL stored procedure invocation differ significantly:\n\n- **Command type**: Retain `CommandType.StoredProcedure` for function calls. For procedures that use `OUT` parameters, PostgreSQL requires `CommandType.Text` with `CALL proc_name(...)` syntax in some versions of Npgsql — verify against the target Npgsql version.\n- **RefCursor handling**: Oracle returns ref cursors as output parameters; PostgreSQL returns them differently:\n  - For `RETURNS TABLE` \u002F `RETURNS SETOF`, use `ExecuteReader()` directly — no cursor parameter needed.\n  - For `RETURNS refcursor`, call within a transaction, read the cursor name from the output parameter, then issue `FETCH ALL IN \"\u003Ccursor_name>\"`.\n  - Remove any Oracle-specific cursor-wrapping code (e.g., `OracleRefCursor`).\n- **OUT parameters**: PostgreSQL stored procedures use `INOUT` or function return values. Verify parameter direction matches the migrated procedure signature.\n- **Sequence `NEXTVAL`**: Replace `SELECT {SEQUENCE}.NEXTVAL FROM DUAL` with `SELECT nextval('{sequence_name}')`.\n- **Named parameters**: Npgsql uses `@param_name`; Oracle used `:param_name`. Update all parameter name prefixes.\n\n**Step 6: Address Oracle-specific SQL and C# patterns**\n\nReview inline SQL strings and query builders for Oracle-specific constructs and replace:\n\n| Oracle construct | PostgreSQL replacement |\n|---|---|\n| `ROWNUM \u003C= n` | `LIMIT n` |\n| `ROWNUM = 1` | `LIMIT 1` |\n| `NVL(x, y)` | `COALESCE(x, y)` |\n| `DECODE(expr, v1, r1, ...)` | `CASE WHEN expr = v1 THEN r1 ... END` |\n| `SYSDATE` \u002F `SYSTIMESTAMP` | `NOW()` or `CURRENT_TIMESTAMP` |\n| `TO_CHAR(date, fmt)` | `TO_CHAR(date, fmt)` (mostly compatible; verify format strings) |\n| `TO_DATE(str, fmt)` | `TO_DATE(str, fmt)` (verify format strings) |\n| `TO_NUMBER(str)` | `CAST(str AS NUMERIC)` or `str::NUMERIC` |\n| `||` string concat | `||` (compatible) |\n| `DUAL` table | Remove `FROM DUAL`; PostgreSQL evaluates `SELECT expr` without a table |\n| `CONNECT BY` hierarchy | Rewrite using recursive CTEs (`WITH RECURSIVE`) |\n| `MERGE INTO` | Rewrite as `INSERT ... ON CONFLICT DO UPDATE` |\n| Empty string `''` as NULL | Oracle treats `''` as NULL; PostgreSQL does not — check comparisons and `IS NULL` guards |\n| `VARCHAR2` | `VARCHAR` or `TEXT` |\n\n**Step 7: Build and verify**\n\nAfter addressing all checklist items:\n\n1. Run `dotnet build` on the `.Postgres` project. Fix any remaining compilation errors.\n2. Verify no Oracle-specific namespaces remain: search for `Oracle.ManagedDataAccess`, `OracleConnection`, `OracleCommand`, `:param` patterns.\n3. Mark completed items in `Reports\u002F{ProjectName}\u002FMigrationChecklist.md`.\n\n## EF Core projects\n\nIf the project uses `Oracle.EntityFrameworkCore`:\n\n- Replace the provider registration in `DbContext` configuration: `.UseOracle(...)` → `.UseNpgsql(...)`\n- Replace `OracleDbContextOptionsBuilder` references.\n- Review `OnModelCreating` for Oracle-specific configurations (e.g., `HasColumnType(\"NUMBER\")` → `HasColumnType(\"numeric\")`).\n- Sequence configuration: `modelBuilder.HasSequence\u003Cint>(\"seq_name\").StartsAt(1).IncrementsBy(1)` syntax is compatible; verify column defaults referencing sequences.\n- Do not run EF Core migrations — schema is managed externally via DDL scripts (Phase 4).\n\n## Key Constraints\n\n- Work only within the `.Postgres` copy — never modify the original Oracle-targeting project.\n- Keep to existing .NET and C# versions; do not introduce newer language or runtime features.\n- Preserve comments and application logic; change only what is necessary for PostgreSQL compatibility.\n- Oracle is the source of truth — behavioral differences must be documented as bug reports, not silently altered.\n",{"name":5,"description":7},"main","5269f7ea2d6c3a9bfda5ed878b6726cf509121fd","skills\u002Fmigrating-oracle-to-postgres-data-access-code",5354,"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-14 05:37:52",{"source":8,"skillName":5,"commands":63,"prompt":73,"zipAvailable":74},[64,67,70],{"tool":65,"command":66},"npx","npx skills add github\u002Fawesome-copilot --skill migrating-oracle-to-postgres-data-access-code",{"tool":68,"command":69},"bunx","bunx skills add github\u002Fawesome-copilot --skill migrating-oracle-to-postgres-data-access-code",{"tool":71,"command":72},"pnpm","pnpm dlx skills add github\u002Fawesome-copilot --skill migrating-oracle-to-postgres-data-access-code","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fmigrating-oracle-to-postgres-data-access-code\u002FSKILL.md",true,[],[77,109,137,161,194,211],{"skillNo":78,"name":79,"nameZh":6,"description":80,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":81,"categories":82,"keywords":91,"publishedAt":47},"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",[83,88],{"categoryNo":84,"categoryName":85,"taxonomyType":86,"taxonomyTypeDesc":87},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":89,"categoryName":90,"taxonomyType":86,"taxonomyTypeDesc":87},"01JBSEEDCAT000000000000023","Skill与智能体开发",[92,93,94,95,41,35,96,97,98,99,100,101,102,103,104,105,42,106,107,108],"supabase","rls","supabase rls","supabase rls policies","review","change","read","write","security","isolation","tables","as","tests","prove","users","functions","with",{"skillNo":110,"name":111,"nameZh":6,"description":112,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":113,"categories":114,"keywords":116,"publishedAt":47},"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",[115],{"categoryNo":89,"categoryName":90,"taxonomyType":86,"taxonomyTypeDesc":87},[117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136],"distribution","skill distribution audit","audit","SET","deterministic","installer","for","discovery","comparison","helper","manifest","version","collection","drift","output","investigate","duplicate","template","release","reconcile",{"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":141,"sourceHtmlUrl":142,"categories":143,"keywords":145,"publishedAt":47},"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",[144],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[146,27,147,33,148,149,123,41,150,151,152,153,154,155,156,42,157,158,159,160],"custom","logicapps custom code net10 migration","projects","standalone","deployment","applications","local","azure","worker","upgrades","package","apps","Legacy","debugging","workflows",{"skillNo":162,"name":163,"nameZh":6,"description":164,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":165,"sourceHtmlUrl":166,"categories":167,"keywords":172,"publishedAt":47},"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",[168,171],{"categoryNo":169,"categoryName":170,"taxonomyType":86,"taxonomyTypeDesc":87},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[173,174,175,176,177,178,179,180,181,182,183,184,185,186,30,35,187,188,189,190,191,123,192,193],"winmd api search","search","api","windows","desktop","file access","enumeration","ui","ml","file","networking","capabilities","notifications","explore","features","full","camera","events","platform","methods","controls",{"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":198,"licenseFileUrl":199,"sourceHtmlUrl":200,"categories":201,"keywords":207,"publishedAt":47},"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",[202,203,206],{"categoryNo":169,"categoryName":170,"taxonomyType":86,"taxonomyTypeDesc":87},{"categoryNo":204,"categoryName":205,"taxonomyType":86,"taxonomyTypeDesc":87},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":89,"categoryName":90,"taxonomyType":86,"taxonomyTypeDesc":87},[208,120,182,209,210],"resemble detect","https","identity",{"skillNo":212,"name":213,"nameZh":6,"description":214,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":198,"licenseFileUrl":215,"sourceHtmlUrl":216,"categories":217,"keywords":222,"publishedAt":47},"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",[218,221],{"categoryNo":219,"categoryName":220,"taxonomyType":86,"taxonomyTypeDesc":87},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":89,"categoryName":90,"taxonomyType":86,"taxonomyTypeDesc":87},[223,224,225,226,27,96,9,119,227,228,209,229,230,231,232,233,234,235,236,237,238,239,104,240,241,242,243],"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"]