# Informatica Assessment

> Analyze Informatica Power Center workflows/mappings from SnowConvert ETL.* outputs and source XML files. Classifies workflows, scores migration complexity, and produces JSON for the parent assessment multi-report.

- Skill: `snowflake-labs/informatica-assessment` (Agent Skill, multi-file: 20 files)
- Install (CLI): `npx skillmds@latest add snowflake-labs/informatica-assessment`
- Raw SKILL.md: https://api.skillmd.com/api/skills/snowflake-labs/informatica-assessment/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Data & Analytics
- License: Proprietary. See License-Skills for complete terms
- Author: snowflake-labs (https://skillmd.com/u/snowflake-labs)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/snowflake-labs/informatica-assessment

---


# 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

1. **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

2. **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

3. **Follow ONLY Provided Analysis Methods**
   - Use ONLY the workflow defined in this skill

4. **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

5. **Report Generation via Parent Skill ONLY**
   - The multi-report generator in the parent skill (`../SKILL.md`) is the ONLY approved method
   - Provide the `--informatica-json` parameter pointing to the `informatica_assessment_analysis.json` file generated by this 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 `CALL` statements 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`) then `convert`.
- Confirm the Informatica source directory contains `.xml` files (PowerCenter XML exports).

---

## Step 2: Generate JSON Analysis

Run with the auto-detected paths from Step 1:

```bash
uv run python -m informatica_assessment_analyzer <ETL.Elements> <ETL.Issues> <OUTPUT> [--source-dir <XML_SOURCE_DIR>] [--conversion-mode dbt|scripting]
```

- `--source-dir` enables CONNECTOR extraction from the Informatica XML, enriching the analysis with data flow edge details.
- `--conversion-mode` records the target conversion mode in the output JSON (`dbt` by default). Pass `scripting` when 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](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:

1. Get next pending workflow:
```bash
uv run python -m informatica_assessment_analyzer informatica <JSON_PATH> pending
```

2. 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](references/writing_analysis.md)

3. Write analysis following the **mandatory format** in [references/writing_analysis.md](references/writing_analysis.md).

   **Note:** Analysis is validated. If format is wrong, the command will fail with guidance.

4. Update the workflow with AI analysis:
```bash
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>"
```

5. 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:**

1. Run the summary command to get all signals:
```bash
uv run python -m informatica_assessment_analyzer informatica <JSON_PATH> summary
```

2. Read the guide: [references/ai_summary_guide.md](references/ai_summary_guide.md)

3. 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.

4. Register the summary in the JSON:
```bash
uv run python -m informatica_assessment_analyzer informatica <JSON_PATH> ai-summary ai_informatica_summary.html
```

**Verification Checklist:**
- [ ] `ai_informatica_summary.html` file exists
- [ ] Summary includes all 7 sections from the guide template
- [ ] Summary uses specific numbers (not vague terms like "many")
- [ ] Summary registered with `ai-summary` command

**Completion:**
Report to user:
- Total workflows analyzed
- JSON file location: `<output_path>/informatica_assessment_analysis.json`
- Go to main workflow in parent skill

