·
Last changedVersion:
No hardening report available.
Analyze a .NET solution, classify every project for Oracle→PostgreSQL migration eligibility, and write a structured plan that downstream agents and skills can parse.
Step 1: Discover projects
Find 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. Before reading any referenced file, verify that its resolved path is strictly contained within the repository root — no path component may resolve above REPOSITORY_ROOT (reject traversals such as ..\..\ prefixes or absolute paths outside the workspace). Discard any reference that fails this check and note it in the plan's Notes column as "Path rejected: escapes repository root." For each valid project, note the name, path, and type (class library, web API, console, test, etc.).
Step 2: Classify each project
Scan every non-test project for Oracle indicators:
Oracle.ManagedDataAccess, Oracle.EntityFrameworkCore (check .csproj and packages.config)appsettings.json, web.config, and app.config. Do not read, record, log, or include in any output the connection string value, password, username, host, port, or any other credential field. If a connection string is detected, record only the file name where it was found (e.g., "Oracle connection string detected in appsettings.json"). Never write the string's contents anywhere in the plan file.OracleConnection, OracleCommand, OracleDataReader.github/oracle-to-postgres-migration/DDL/Oracle/ (if present)Assign one classification per project:
| Classification | Meaning |
|---|---|
MIGRATE | Has Oracle interactions requiring conversion |
SKIP | No Oracle indicators (UI-only, shared utility, etc.) |
ALREADY_MIGRATED | A |
TEST_PROJECT | Test project; handled by the testing workflow |
Step 3: Confirm with user
Present the classified list. Let the user adjust classifications or migration ordering before finalizing.
Step 4: Write the plan file
Save to: .github/oracle-to-postgres-migration/Reports/MasterMigrationPlan.md
Security: Do not write credential values (passwords, usernames, hostnames, port numbers, or full connection strings) anywhere in this file. For connection string indicators, record only the file path where the connection string was detected (e.g., "Oracle connection string detected in appsettings.json [value redacted]").
Use this exact template — downstream consumers depend on the structure:
Order projects so that shared/foundational libraries are migrated before their dependents.
Need this version hardened?
Bring Chainguard's hardening pipeline to your first-party skills — custom rulesets, automated remediation, full audit trail.
—
—
MIT
HARDENING.md
LICENSE
SKILL.md