APM

>Agent Skill

@microsoft/fabric-deploy

skilldevelopment

The Engineer skill — deploys Fabric items in dependency-ordered waves and remediates issues found during validation. Use when user says "deploy", "create items", "run deployment", "fix deployment issues", "remediate", or after user sign-off is complete. Do NOT use for design (use fabric-design) or testing (use fabric-test).

pythontestingdocumentation
apm::install
$apm install @microsoft/fabric-deploy
apm::skill.md
---
name: fabric-deploy
description: >
  The Engineer skill — deploys Fabric items in dependency-ordered waves and
  remediates issues found during validation. Use when user says "deploy",
  "create items", "run deployment", "fix deployment issues",
  "remediate", or after user sign-off is complete. Do NOT use for design
  (use fabric-design) or testing (use fabric-test).
pre-compute: [deploy-script-gen]
---

# Fabric Deployment

> **⚡ Fast-forward:** After sign-off approval, `run-pipeline.py advance --approve` auto-generates deployment artifacts: workspace/ with .platform files, config.yml, deploy script, and taskflow JSON. The agent creates `deployment-handoff.md` and `phase-progress.md` during this phase.

## Deployment Mode

Check the `deploy_mode` field in the agent prompt (set in pipeline-state.json):

- **`live`** — User wants to deploy to a live Fabric workspace. Present the deploy script and guide them through running it.
- **`artifacts_only`** (default) — No live deployment. Review generated artifacts and write the handoff with items in `planned` status.

## Instructions

### Step 1: Verify Artifacts

Confirm `deploy/` contains: `.platform` files, `config.yml`, deploy script, and taskflow JSON (auto-generated by pipeline).

### Step 2: Deploy or Review

**If deploy_mode is `live`:**

Present the deploy script to the user and instruct them to run it:
```bash
cd _projects/[name]/deploy
python deploy-[name].py
```
The script handles: workspace creation, capacity assignment, fabric-cicd deployment, and Variable Library population — all interactively. The user must have Azure credentials (`az login`).

After the user confirms deployment is complete, write `deployment-handoff.md` with items in `deployed` status.

**If deploy_mode is `artifacts_only`:**

Review the generated artifacts. Present a summary of what would be deployed (items, waves, script location). Write `deployment-handoff.md` with:
- `deployment_mode: artifacts_only`
- All items with `status: planned`
- Implementation Notes (deviations only)
- Configuration Rationale table

## Constraints

- Do NOT read registry JSON files directly — use Python tools (`deploy-script-gen.py`, `deployment_loader`, `registry_loader`)
- Follow the architecture handoff exactly — no design decisions
- Never proceed to next wave if current wave has failures

## Mode 2: Remediation (Phase 3+)

Fix deployment and configuration issues identified during validation.

### Step 1: Load Remediation Log

Read `_projects/[name]/docs/remediation-log.md`. Filter issues where `routed_to: engineer`.

### Step 2: Fix Issues

- **Deployment issues** — re-deploy item via `fabric-cicd`, verify with `validate-items.py`
- **Configuration issues** — update settings via Fabric REST API or portal, re-run validation
- **Transient issues** — wait appropriate interval, retry validation

### Step 3: Update Remediation Log

Set `status: resolved`, fill `resolution` (max 20 words), record `resolved_iteration`.

### Step 4: Escalate Design Issues

If `category: design` → set `outcome: escalated`, STOP. Cannot fix architecture — escalate.

### Step 5: Trigger Re-Validation

Set `outcome: remediated` and advance pipeline to re-trigger QA validation.

Max 3 remediation iterations.

## Handoff

After producing the output file, advance:
```bash
python _shared/scripts/run-pipeline.py advance --project <project-name> -q
```

If the output shows `🟢 AUTO-CHAIN → <skill>`, **invoke that skill immediately** — do NOT stop and ask the user.
Only `🛑 HUMAN GATE` (Phase 2b sign-off) requires user action.