{"id":"e9721182-90c9-4af8-b9a8-60420643b171","shortId":"c5j75R","kind":"skill","title":"creating-oracle-to-postgres-master-migration-plan","tagline":"Discovers all projects in a .NET solution, classifies each for Oracle-to-PostgreSQL migration eligibility, and produces a persistent master migration plan. Use when starting a multi-project Oracle-to-PostgreSQL migration, creating a migration inventory, or assessing which .NET pr","description":"# Creating an Oracle-to-PostgreSQL Master Migration Plan\n\nAnalyze a .NET solution, classify every project for Oracle→PostgreSQL migration eligibility, and write a structured plan that downstream agents and skills can parse.\n\n## Workflow\n\n```\nProgress:\n- [ ] Step 1: Discover projects in the solution\n- [ ] Step 2: Classify each project\n- [ ] Step 3: Confirm with user\n- [ ] Step 4: Write the plan file\n```\n\n**Step 1: Discover projects**\n\nFind the Solution File (it has a `.sln` or `.slnx` extension) in the workspace root (ask the user if multiple exist). Parse it to extract all `.csproj` project references. For each project, note the name, path, and type (class library, web API, console, test, etc.).\n\n**Step 2: Classify each project**\n\nScan every non-test project for Oracle indicators:\n\n- NuGet references: `Oracle.ManagedDataAccess`, `Oracle.EntityFrameworkCore` (check `.csproj` and `packages.config`)\n- Config entries: Oracle connection strings in `appsettings.json`, `web.config`, `app.config`\n- Code usage: `OracleConnection`, `OracleCommand`, `OracleDataReader`\n- DDL cross-references under `.github/oracle-to-postgres-migration/DDL/Oracle/` (if present)\n\nAssign one classification per project:\n\n| Classification | Meaning |\n|---|---|\n| **MIGRATE** | Has Oracle interactions requiring conversion |\n| **SKIP** | No Oracle indicators (UI-only, shared utility, etc.) |\n| **ALREADY_MIGRATED** | A `-postgres` or `.Postgres` duplicate exists and appears processed |\n| **TEST_PROJECT** | Test project; handled by the testing workflow |\n\n**Step 3: Confirm with user**\n\nPresent the classified list. Let the user adjust classifications or migration ordering before finalizing.\n\n**Step 4: Write the plan file**\n\nSave to: `.github/oracle-to-postgres-migration/Reports/Master Migration Plan.md`\n\nUse this exact template — downstream consumers depend on the structure:\n\n````markdown\n# Master Migration Plan\n\n**Solution:** {solution file name}\n**Solution Root:** {REPOSITORY_ROOT}\n**Created:** {timestamp}\n**Last Updated:** {timestamp}\n\n## Solution Summary\n\n| Metric | Count |\n|--------|-------|\n| Total projects in solution | {n} |\n| Projects requiring migration | {n} |\n| Projects already migrated | {n} |\n| Projects skipped (no Oracle usage) | {n} |\n| Test projects (handled separately) | {n} |\n\n## Project Inventory\n\n| # | Project Name | Path | Classification | Notes |\n|---|---|---|---|---|\n| 1 | {name} | {relative path} | MIGRATE | {notes} |\n| 2 | {name} | {relative path} | SKIP | No Oracle dependencies |\n\n## Migration Order\n\n1. **{ProjectName}** — {rationale, e.g., \"Core data access library; other projects depend on it.\"}\n2. **{ProjectName}** — {rationale}\n````\n\nOrder projects so that shared/foundational libraries are migrated before their dependents.","tags":["creating","oracle","postgres","master","migration","plan","awesome","copilot","github","agent-skills","agents","custom-agents"],"capabilities":["skill","source-github","skill-creating-oracle-to-postgres-master-migration-plan","topic-agent-skills","topic-agents","topic-awesome","topic-custom-agents","topic-github-copilot","topic-hacktoberfest","topic-prompt-engineering"],"categories":["awesome-copilot"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/github/awesome-copilot/creating-oracle-to-postgres-master-migration-plan","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add github/awesome-copilot","source_repo":"https://github.com/github/awesome-copilot","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 33270 github stars · SKILL.md body (2,763 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T18:52:08.894Z","embedding":null,"createdAt":"2026-04-18T20:30:49.215Z","updatedAt":"2026-05-18T18:52:08.894Z","lastSeenAt":"2026-05-18T18:52:08.894Z","tsv":"'1':89,112,339,355 '2':96,161,345,368 '3':101,248 '4':106,267 'access':361 'adjust':259 'agent':81 'alreadi':227,318 'analyz':62 'api':156 'app.config':190 'appear':236 'appsettings.json':188 'ask':130 'assess':49 'assign':204 'check':178 'class':153 'classif':206,209,260,337 'classifi':16,66,97,162,254 'code':191 'config':182 'confirm':102,249 'connect':185 'consol':157 'consum':282 'convers':216 'core':359 'count':307 'creat':2,44,53,299 'creating-oracle-to-postgres-master-migration-plan':1 'cross':198 'cross-refer':197 'csproj':141,179 'data':360 'ddl':196 'depend':283,352,365,381 'discov':9,90,113 'downstream':80,281 'duplic':233 'e.g':358 'elig':24,73 'entri':183 'etc':159,226 'everi':67,166 'exact':279 'exist':135,234 'extens':125 'extract':139 'file':110,118,271,293 'final':265 'find':115 'github/oracle-to-postgres-migration/ddl/oracle':201 'github/oracle-to-postgres-migration/reports/master':274 'handl':242,329 'indic':173,220 'interact':214 'inventori':47,333 'last':301 'let':256 'librari':154,362,376 'list':255 'markdown':287 'master':6,29,59,288 'mean':210 'metric':306 'migrat':7,23,30,43,46,60,72,211,228,262,275,289,315,319,343,353,378 'multi':37 'multi-project':36 'multipl':134 'n':312,316,320,326,331 'name':149,294,335,340,346 'net':14,51,64 'non':168 'non-test':167 'note':147,338,344 'nuget':174 'one':205 'oracl':3,20,40,56,70,172,184,213,219,324,351 'oracle-to-postgresql':19,39,55 'oracle.entityframeworkcore':177 'oracle.manageddataaccess':176 'oraclecommand':194 'oracleconnect':193 'oracledataread':195 'order':263,354,371 'packages.config':181 'pars':85,136 'path':150,336,342,348 'per':207 'persist':28 'plan':8,31,61,78,109,270,290 'plan.md':276 'postgr':5,230,232 'postgresql':22,42,58,71 'pr':52 'present':203,252 'process':237 'produc':26 'progress':87 'project':11,38,68,91,99,114,142,146,164,170,208,239,241,309,313,317,321,328,332,334,364,372 'projectnam':356,369 'rational':357,370 'refer':143,175,199 'relat':341,347 'repositori':297 'requir':215,314 'root':129,296,298 'save':272 'scan':165 'separ':330 'share':224 'shared/foundational':375 'skill':83 'skill-creating-oracle-to-postgres-master-migration-plan' 'skip':217,322,349 'sln':122 'slnx':124 'solut':15,65,94,117,291,292,295,304,311 'source-github' 'start':34 'step':88,95,100,105,111,160,247,266 'string':186 'structur':77,286 'summari':305 'templat':280 'test':158,169,238,240,245,327 'timestamp':300,303 'topic-agent-skills' 'topic-agents' 'topic-awesome' 'topic-custom-agents' 'topic-github-copilot' 'topic-hacktoberfest' 'topic-prompt-engineering' 'total':308 'type':152 'ui':222 'ui-on':221 'updat':302 'usag':192,325 'use':32,277 'user':104,132,251,258 'util':225 'web':155 'web.config':189 'workflow':86,246 'workspac':128 'write':75,107,268","prices":[{"id":"5551c5d0-06ec-48ba-80f4-e0603ea3fb73","listingId":"e9721182-90c9-4af8-b9a8-60420643b171","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"github","category":"awesome-copilot","install_from":"skills.sh"},"createdAt":"2026-04-18T20:30:49.215Z"}],"sources":[{"listingId":"e9721182-90c9-4af8-b9a8-60420643b171","source":"github","sourceId":"github/awesome-copilot/creating-oracle-to-postgres-master-migration-plan","sourceUrl":"https://github.com/github/awesome-copilot/tree/main/skills/creating-oracle-to-postgres-master-migration-plan","isPrimary":false,"firstSeenAt":"2026-04-18T21:48:56.748Z","lastSeenAt":"2026-05-18T18:52:08.894Z"},{"listingId":"e9721182-90c9-4af8-b9a8-60420643b171","source":"skills_sh","sourceId":"github/awesome-copilot/creating-oracle-to-postgres-master-migration-plan","sourceUrl":"https://skills.sh/github/awesome-copilot/creating-oracle-to-postgres-master-migration-plan","isPrimary":true,"firstSeenAt":"2026-04-18T20:30:49.215Z","lastSeenAt":"2026-05-07T22:40:31.241Z"}],"details":{"listingId":"e9721182-90c9-4af8-b9a8-60420643b171","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"github","slug":"creating-oracle-to-postgres-master-migration-plan","github":{"repo":"github/awesome-copilot","stars":33270,"topics":["agent-skills","agents","ai","awesome","custom-agents","github-copilot","hacktoberfest","prompt-engineering"],"license":"mit","html_url":"https://github.com/github/awesome-copilot","pushed_at":"2026-05-18T01:26:59Z","description":"Community-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.","skill_md_sha":"5db371e24ad57723414348868da94f7bc4a34558","skill_md_path":"skills/creating-oracle-to-postgres-master-migration-plan/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/github/awesome-copilot/tree/main/skills/creating-oracle-to-postgres-master-migration-plan"},"layout":"multi","source":"github","category":"awesome-copilot","frontmatter":{"name":"creating-oracle-to-postgres-master-migration-plan","description":"Discovers all projects in a .NET solution, classifies each for Oracle-to-PostgreSQL migration eligibility, and produces a persistent master migration plan. Use when starting a multi-project Oracle-to-PostgreSQL migration, creating a migration inventory, or assessing which .NET projects contain Oracle dependencies."},"skills_sh_url":"https://skills.sh/github/awesome-copilot/creating-oracle-to-postgres-master-migration-plan"},"updatedAt":"2026-05-18T18:52:08.894Z"}}