Informatica Power Center Assessment
SnowConvert AI migrates Informatica Power Center workflows to Snowflake. This skill analyzes workflows and mappings from their source XML and SnowConvert assessment CSV reports to generate detailed migration analysis including workflow classification and complexity assessment.
Rules
Use ONLY Provided Scripts
- ONLY use the provided CLI commands:
python -m informatica_assessment_analyzer - DO NOT create custom scripts to read or manipulate the JSON file
- DO NOT use grep, jq, or other tools to parse the JSON directly
- All JSON interactions MUST go through the provided CLI
- ONLY use the provided CLI commands:
Quality Over Speed
- Each workflow deserves thorough, individual analysis
- Write specific, detailed analysis for each workflow
- DO NOT create batch analysis regardless of workflow volume
- DO NOT skip analysis steps to save time
Follow ONLY Provided Analysis Methods
- Use ONLY the workflow defined in this skill
Complete ALL Steps
- Step 4 (AI Summary) is MANDATORY before finishing
- DO NOT skip to report generation without completing all steps
- Every checkpoint in the workflow must be completed
Report Generation via Parent Skill ONLY
- The multi-report generator in the parent skill (
../SKILL.md) is the ONLY approved method - Provide the
--informatica-jsonparameter pointing to theinformatica_assessment_analysis.jsonfile generated by this skill
- The multi-report generator in the parent skill (
Workflow
Conversion Target Context
The parent assessment skill collects informatica.target ("dbt" or "scripting") from the user at Step 4. This value is persisted to .scai/config/plugin.yml as etl_informatica_target and determines how this skill frames its analysis:
- dbt: Mappings convert to dbt models. References to dbt project structure,
ref(), and Snowflake Tasks calling dbt are appropriate. - scripting: Mappings convert to Snowflake stored procedures (Snowflake Scripting). Zero dbt references allowed — use stored procedure calls, inline SQL, and
CALLstatements instead.
The sub-agent prompt from the parent includes informatica_target: <value>. Use this to select the appropriate analysis framing in Step 3 and the AI summary guide in Step 4.
Copy this checklist and track your progress:
Analysis Progress:
- [ ] Step 1: Locate and Validate Input Files
- [ ] Step 2: Generate JSON Analysis
- [ ] Step 3: Analyze Informatica workflows (sub workflow)
- [ ] Step 4: Draft AI summary (HTML AI summary)
Step 1: Locate Input Files (auto-detected)
Do NOT prompt the user for paths. Inputs are resolved automatically from project_dir configured by the parent assessment skill:
| Input | Auto-resolution |
|---|---|
ETL.Elements.csv |
Latest <project_dir>/reports/SnowConvert/ETL.Elements.*.csv |
ETL.Issues.csv |
Latest <project_dir>/reports/SnowConvert/ETL.Issues.*.csv |
| Informatica source dir | <project_dir>/source/_etl/ |
| Output dir | <project_dir>/assessment/informatica/ (create if missing) |
Validation (silent — only surface a problem to the user if validation fails):
- Confirm both
ETL.*CSVs exist. If they don't, ETL was not converted — return to the parent and ask the parent to re-run register (code add) thenconvert. - Confirm the Informatica source directory contains
.xmlfiles (PowerCenter XML exports).
Step 2: Generate JSON Analysis
Run with the auto-detected paths from Step 1:
uv run python -m informatica_assessment_analyzer <ETL.Elements> <ETL.Issues> <OUTPUT> [--source-dir <XML_SOURCE_DIR>] [--conversion-mode dbt|scripting]
--source-direnables CONNECTOR extraction from the Informatica XML, enriching the analysis with data flow edge details.--conversion-moderecords the target conversion mode in the output JSON (dbtby default). Passscriptingwhen the user selected Snowflake Scripting. The HTML report uses this value to render mode-specific content.
Step 3: Analyze Informatica Workflows
This step is a sub workflow to analyze workflows individually. After this, continue with step 4.
Important: To analyze workflows, follow the detailed instructions in references/writing_analysis.md. This reference explains:
- What to read from the XML files (MAPPING, TRANSFORMATION, SOURCE, TARGET elements)
- How to classify workflows (with concrete criteria for each category)
- Required analysis format and minimum lengths
- Effort estimation guidelines
Sub-Workflow: Analyze Each Workflow
For each pending workflow:
- Get next pending workflow:
uv run python -m informatica_assessment_analyzer informatica <JSON_PATH> pending
Analyze the workflow:
- Read the source XML file for this workflow
- Examine the mappings, transformations, source/target definitions
- Identify custom transformations, SQL overrides, complex expressions
- Classify the workflow based on the criteria in references/writing_analysis.md
Write analysis following the mandatory format in references/writing_analysis.md.
Note: Analysis is validated. If format is wrong, the command will fail with guidance.
Update the workflow with AI analysis:
uv run python -m informatica_assessment_analyzer informatica <JSON_PATH> update <WORKFLOW_PATH> \
--ai-status DONE \
--classification "Data Transformation" # or: Ingestion, Configuration & Control, Mixed: Ingestion + Transformation
--ai-analysis "<ANALYSIS_TEXT>"
- Repeat until no pending workflows remain.
Step 4: Draft AI Summary
DO NOT SKIP THIS STEP. The AI Summary is required before finishing the assessment.
Required Actions:
- Run the summary command to get all signals:
uv run python -m informatica_assessment_analyzer informatica <JSON_PATH> summary
Read the guide: references/ai_summary_guide.md
Generate summary file:
ai_informatica_summary.html- Follow the structured HTML template in the guide
- Include all 7 sections: Workload Overview, Classification Breakdown, Sources & Destinations, Connector Types, Complexity Drivers, Recommended Migration Approach, Key Risks
- Use real data from the summary command output
- Use inline styles (not CSS classes) since this is an embedded HTML snippet
- IMPORTANT: The file must be a fragment only — do NOT include
<!DOCTYPE>,<html>,<head>,<body>, or<h1>tags. The report generator provides the section heading (<h2>AI Summary</h2>) automatically.
Register the summary in the JSON:
uv run python -m informatica_assessment_analyzer informatica <JSON_PATH> ai-summary ai_informatica_summary.html
Verification Checklist:
-
ai_informatica_summary.htmlfile exists - Summary includes all 7 sections from the guide template
- Summary uses specific numbers (not vague terms like "many")
- Summary registered with
ai-summarycommand
Completion: Report to user:
- Total workflows analyzed
- JSON file location:
<output_path>/informatica_assessment_analysis.json - Go to main workflow in parent skill