Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Creates an integration testing plan for .NET data access artifacts during Oracle-to-PostgreSQL database migrations. Analyzes a single project to identify repositories, DAOs, and service layers that interact with the database, then produces a structured testing plan. Use when planning integration test coverage for a migrated project, identifying which data access methods need tests, or preparing for Oracle-to-PostgreSQL migration validation.
.claude/skills/planning-oracle-to-postgres-migration-integration-testing/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-07 | ✗→✓ | ▲ Improved | -25% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 37% | 0% |
| case-10 | ✗→✓ | ▲ Improved | -4% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 38% | 0% |
| case-08 | ✓→✗ | ▼ Worse | -77% | 0% |
Analyze a single target project to identify data access artifacts that require integration testing, then produce a structured, actionable testing plan.
Progress:
- [ ] Step 1: Identify data access artifacts
- [ ] Step 2: Classify testing priorities
- [ ] Step 3: Write the testing planStep 1: Identify data access artifacts
Scope to the target project only. Find classes and methods that interact directly with the database — repositories, DAOs, stored procedure callers, service layers performing CRUD operations.
Step 2: Classify testing priorities
Rank artifacts by migration risk. Prioritize methods that use Oracle-specific features (refcursors, TO_CHAR, implicit type coercion, NO_DATA_FOUND) over simple CRUD.
Step 3: Write the testing plan
Write a markdown plan covering:
When defining recommended test cases, explicitly include:
NULL/missing values.timestamp without time zone or timestamp(0), with explicit timezone-application expectations.Write the plan to: .github/oracle-to-postgres-migration/Reports/{TARGET_PROJECT} Integration Testing Plan.md
MyApp.Postgres), so each instance targets one database.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 30,635 | 7,473 | -76% | 1 | 1 | 0% | 6,204 | 598 | -90% | 0 | 0 | — |
case-02 | fail→fail | 26,826 | 10,134 | -62% | 1 | 1 | 0% | 5,124 | 760 | -85% | 0 | 0 | — |
case-03 | fail→fail | 3,643 | 3,886 | +7% | 1 | 1 | 0% | 265 | 634 | +139% | 0 | 0 | — |
case-04 | pass→pass | 10,100 | 9,516 | -6% | 1 | 1 | 0% | 1,867 | 2,164 | +16% | 0 | 0 | — |
case-05 | pass→pass | 9,149 | 11,457 | +25% | 1 | 1 | 0% | 1,724 | 2,505 | +45% | 0 | 0 | — |
case-06 | pass→pass | 4,285 | 4,613 | +8% | 1 | 1 | 0% | 802 | 1,335 | +66% | 0 | 0 | — |
case-07 | fail→pass | 33,597 | 22,664 | -33% | 1 | 1 | 0% | 6,236 | 4,663 | -25% | 0 | 0 | — |
case-08 | pass→fail | 20,954 | 5,405 | -74% | 1 | 1 | 0% | 4,053 | 930 | -77% | 0 | 0 | — |
case-09 | fail→pass | 27,706 | 30,651 | +11% | 1 | 1 | 0% | 4,857 | 6,661 | +37% | 0 | 0 | — |
case-10 | fail→pass | 30,875 | 29,513 | -4% | 1 | 1 | 0% | 6,216 | 5,964 | -4% | 0 | 0 | — |
case-11 | pass→pass | 25,694 | 23,356 | -9% | 1 | 1 | 0% | 4,467 | 5,021 | +12% | 0 | 0 | — |
case-12 | fail→pass | 19,508 | 22,124 | +13% | 1 | 1 | 0% | 3,452 | 4,773 | +38% | 0 | 0 | — |
case-13 | fail→fail | 14,367 | 28,898 | +101% | 1 | 1 | 0% | 2,412 | 6,024 | +150% | 0 | 0 | — |
case-14 | pass→pass | 17,611 | 32,342 | +84% | 1 | 1 | 0% | 3,032 | 6,650 | +119% | 0 | 0 | — |
case-15 | pass→pass | 25,534 | 28,419 | +11% | 1 | 1 | 0% | 4,673 | 6,255 | +34% | 0 | 0 | — |
case-16 | pass→pass | 17,400 | 21,025 | +21% | 1 | 1 | 0% | 3,210 | 4,765 | +48% | 0 | 0 | — |
case-17 | pass→pass | 16,882 | 18,679 | +11% | 1 | 1 | 0% | 2,996 | 3,931 | +31% | 0 | 0 | — |
case-18 | pass→pass | 20,826 | 20,449 | -2% | 1 | 1 | 0% | 3,833 | 4,307 | +12% | 0 | 0 | — |
case-19 | fail→fail | 25,330 | 4,170 | -84% | 1 | 1 | 0% | 4,737 | 681 | -86% | 0 | 0 | — |
case-20 | fail→fail | 13,142 | 23,236 | +77% | 1 | 1 | 0% | 2,417 | 5,267 | +118% | 0 | 0 | — |
case-21 | fail→fail | 26,759 | 4,552 | -83% | 1 | 1 | 0% | 4,897 | 613 | -87% | 0 | 0 | — |
case-22 | pass→pass | 30,429 | 27,736 | -9% | 1 | 1 | 0% | 5,953 | 5,625 | -6% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 16 counted toward the lift figure. The other 6 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +14 percentage points is the difference between those two pass rates over the 16 comparable cases. 4 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.6-flash | verified | 7/27/2026 | +36% |
Other measured skills in the registry, with their headline benchmark lift.