Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
190 changes: 81 additions & 109 deletions skills/uipath-ixp/SKILL.md

Large diffs are not rendered by default.

247 changes: 106 additions & 141 deletions skills/uipath-ixp/references/cli-reference.md

Large diffs are not rendered by default.

307 changes: 122 additions & 185 deletions skills/uipath-ixp/references/improve-prompts-guide.md

Large diffs are not rendered by default.

162 changes: 67 additions & 95 deletions skills/uipath-ixp/references/label-documents-guide.md

Large diffs are not rendered by default.

56 changes: 25 additions & 31 deletions skills/uipath-ixp/references/project-setup-guide.md
Original file line number Diff line number Diff line change
@@ -1,70 +1,64 @@
# Project Setup Guide

Complete workflow for creating a **new** IXP project, labelling all documents, and getting initial metrics. Run all steps end-to-end automatically. Deployment is a separate, optional final step — [Deployment Guide](deployment-guide.md).
Create a **new** IXP project, label its documents, and obtain initial metrics end-to-end automatically. Deployment is optional and separate: [Deployment Guide](deployment-guide.md).

> **Wrong page if the project already exists.** Use `uip ixp documents upload <project-name> <file>` — see [CLI Reference § Uploading documents](cli-reference.md#uploading-documents-to-an-existing-project).

## Step 1 — Create the Project

If the user provides a name, use it. If not, generate a temporary name (e.g., `ixp_project_NNNN` with a random number) — the project will be renamed in Step 3 after the taxonomy reveals the document type.
Use the user-provided name. If none is provided, generate a temporary name such as `ixp_project_NNNN` with a random number; rename it in Step 3 after the taxonomy reveals the document type. `<folder-path>` is filtered to supported document files — see [CLI Reference § Supported document files](cli-reference.md#supported-document-files).

`<folder-path>` is filtered to supported document files — see [CLI Reference § Supported document files](cli-reference.md#supported-document-files).

**Option A — Auto-suggest taxonomy (default):**
For auto-suggested taxonomy, run:

```bash
uip ixp projects create "<name>" <folder-path> --output json
```

If the user specified what to extract, add `-d` for a better taxonomy suggestion:
If the user specified what to extract, run:

```bash
uip ixp projects create "<name>" <folder-path> -d "<what to extract>" --output json
```

This uploads documents and auto-suggests a taxonomy based on the document content (and the description if provided).

**Option B — Blank project + import taxonomy from file:**
These commands upload documents and auto-suggest a taxonomy from their content and, when provided, the description.

If the user provides a taxonomy file, create a blank project and import separately:
If the user provides a taxonomy file, run:

```bash
uip ixp projects create "<name>" <folder-path> --skip-taxonomy --output json
uip ixp projects import-taxonomy <project-name> <taxonomy-file> --output json
```

The taxonomy file can be in either format — the CLI auto-detects based on which keys are present:

- `{ "field_types": [...], "label_group": {...} }` — use when importing a taxonomy suggested by a previous `project create` run
- `{ "entity_defs": [...], "label_groups": [...] }` — use when importing a taxonomy file provided by the user, or cloning from an existing project. `projects get-taxonomy` returns these under a `dataset` wrapper (`{ status, dataset: { entity_defs, label_groups } }`); `import-taxonomy` reads `entity_defs`/`label_groups` at the **top level**, so pass the inner `dataset` object (e.g. `jq .Data.dataset`), not the whole response
The CLI detects either format from its keys:

Use the `ProjectName` from the create output for all subsequent commands. This is the lowercase slug with UUID and `-ixp` suffix (e.g., `my_invoices-f1afa9ef-ixp`), NOT the Title.
- `{ "field_types": [...], "label_group": {...} }` — taxonomy suggested by a previous `project create` run.
- `{ "entity_defs": [...], "label_groups": [...] }` — user-provided taxonomy or one cloned from an existing project. `projects get-taxonomy` returns these under a `dataset` wrapper (`{ status, dataset: { entity_defs, label_groups } }`); `import-taxonomy` requires `entity_defs`/`label_groups` at the **top level**, so pass the inner `dataset` object (for example, `jq .Data.dataset`), not the whole response.

Create the working directory using the returned `ProjectName`:
Use `ProjectName` from the create output for all subsequent commands. It is the lowercase slug with UUID and `-ixp` suffix, not the Title. Run:

```bash
mkdir -p /tmp/ixp/<project-name>/{docs,text,taxonomies,prompts}
```

## Step 2 — Configure the Model

Before labelling, configure the extraction model based on what the documents look like. Download 2-3 sample document images and view them:
Before labelling, inspect 2–3 sample document images. Run:

```bash
uip ixp documents list <project-name> --output json
uip ixp documents download <project-name> <document-id> -o /tmp/ixp/<project-name>/docs/sample --output json
```

View with the **Read tool** one full Read per document, **no `pages` parameter** (returns text + image natively). Then decide:
View each sample with the **Read tool**, using one full Read per document and **no `pages` parameter**; it returns text and image natively. Select configuration as follows:

| Document characteristics | Pre-processing | Model |
|--------------------------|---------------|-------|
|---|---|---|
| Simple documents, no tables | `none` | `gemini_2_5_flash` |
| Documents with simple tables or multiple tables | `table_mini` | `gemini_2_5_flash` |
| Complex nested tables, merged cells, multi-page tables | `table` | `gemini_2_5_flash` |
| Simple tables or multiple tables | `table_mini` | `gemini_2_5_flash` |
| Complex nested tables, merged cells, or multi-page tables | `table` | `gemini_2_5_flash` |
| Very long documents (100+ pages) | `none` or `table_mini` | `gemini_2_5_pro` |

Apply the configuration:
The default is `--model gemini_2_5_flash --preprocessing table_mini`. Apply the configuration by running:

```bash
uip ixp projects configure-model <project-name> \
Expand All @@ -73,25 +67,25 @@ uip ixp projects configure-model <project-name> \
--output json
```

**Default recommendation:** `--model gemini_2_5_flash --preprocessing table_mini` — works well for most invoice/document types.

## Step 3 — Name the Project

Based on the taxonomy from Step 1 (e.g., if it has "Invoice Details", "Line Items", "Bill-To" → it's an invoices project), give the project a descriptive title:
Use the Step 1 taxonomy to choose a descriptive title. For example, "Invoice Details", "Line Items", and "Bill-To" indicate an invoices project. Run:

```bash
uip ixp projects update-title <project-name> "Vendor Invoices" --output json
```

Skip this step if the user already provided a meaningful name in Step 1.
Skip this step when the user provided a meaningful name in Step 1.

## Step 4 — Label All Documents

**Default:** follow the [Label Documents Guide](label-documents-guide.md) to label every document in the project.
**Default:** follow the [Label Documents Guide](label-documents-guide.md) and label every document.

Labelling is optional. It produces the **project score** (`get-metrics` reports nothing until documents are confirmed) but is not required for a callable model; a trained version appears on its own within seconds of `projects create`.

Labelling is optional — it produces the **project score** (`get-metrics` reports nothing until documents are confirmed) and is not required for a callable model (a trained version appears on its own within seconds of `projects create`). Skip it only when:
Skip labelling only when:

- **The model unblocks a larger build in this session** the deliverable is something else (a flow, an automation) waiting on a callable model, and no score, metrics, or accuracy target was named. Deploy per the [Deployment Guide](deployment-guide.md) and resume the build. Canonical case: the inbound `uipath-maestro-flow` handoff (see *When NOT to Use This Skill* in [SKILL.md](../SKILL.md)).
- **The user opts out** says to skip labelling, or that somebody else will handle labelling. Stop after Step 3 and hand over the project name; labelling can happen later, in-product or via the [Label Documents Guide](label-documents-guide.md).
- **The model unblocks a larger build in this session:** the deliverable is something else, such as a flow or automation, waiting on a callable model; no score, metrics, or accuracy target was named. Deploy per the [Deployment Guide](deployment-guide.md) and resume the build. The canonical case is the inbound `uipath-maestro-flow` handoff (see *When NOT to Use This Skill* in [SKILL.md](../SKILL.md)).
- **The user opts out:** the user says to skip labelling or that somebody else will handle it. Stop after Step 3 and hand over the project name; labelling can occur later in-product or via the [Label Documents Guide](label-documents-guide.md).

Skipping is never silent: state that the model is unscored and that labelling is the fix if fields come back wrong.
Never skip silently: state that the model is unscored and that labelling is the fix if fields come back wrong.
14 changes: 14 additions & 0 deletions skills/uipath-ixp/references/unsupported-capabilities.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Unsupported Capabilities

These requests fall outside the skill. Recognise the request, reply with the standard response, route the user. Do NOT enter discovery (`uip --help`, grep, source reading) — see Critical Rule #1.

| User request | Standard response |
|--------------|-------------------|
| "Create a model" / "create a project" | **Documents or a taxonomy supplied →** use the [Project Setup Guide](project-setup-guide.md) (this skill creates the project from them). **Otherwise →** "I work on existing IXP projects rather than creating them from scratch. Create one in-product: https://docs.uipath.com/ixp/automation-cloud/latest/user-guide/managing-projects — then I can label, review, and improve it." |
| "Upload these files" / "add documents" | **Project named / already in context →** supported; upload it (see the "Upload a document" row in Task Navigation). **Otherwise →** "Name an existing project and I'll upload it — or upload in-product (e.g. for a new project): https://docs.uipath.com/ixp/automation-cloud/latest/user-guide/building-and-deploying-models." |
| "Push to an environment / another tenant" / "deploy to staging or production" | **Names an Orchestrator folder (a folder literally called `Production`) →** supported; use the "Deploy this model to a folder" row in [Task Navigation](../SKILL.md#task-navigation). **Otherwise →** "IXP has no environment or cross-tenant deploy target — a deployment is a (folder, version) pair inside one tenant." Note `projects publish --tag staging\|live` moves the tag the DU framework (and DU activities calling through it) resolve — for those consumers that IS the staging/live switch; it creates no folder deployment. |
| "Give X access" / "share this project" / "change roles or permissions" | "Access, roles, and permissions are managed in-product, not through this skill: https://docs.uipath.com/ixp/automation-cloud/latest/overview/managing-access." |
| "Use this model in my automation / workflow / agent" / "call the extractor from a process" | "Consuming a published model inside an automation is an authoring task outside this skill. See https://docs.uipath.com/ixp/automation-cloud/latest/user-guide/building-and-consuming-a-workflow." |
| "Mine these emails / communications" / "set up Communications Mining" | "Communications Mining is a separate IXP capability this skill doesn't cover (this skill is document extraction). See https://docs.uipath.com/ixp/automation-cloud/latest/cm-user-guide/introduction-to-uipath-communication-mining." |
| "Monitor the deployed model" / "how many docs did it process?" / "runtime throughput or incidents" | "Runtime/operational monitoring of a deployed model lives in Orchestrator, not this skill: https://docs.uipath.com/orchestrator/automation-cloud/latest/user-guide/about-monitoring. For design-time scores use `get-metrics` (see 'Show metrics')." |
| "Edit a data type's values" / "add or remove a Choice option" | "The CLI can rename a data type, change its instructions (`data-types update-instructions`), or delete it — but it can't add or remove the **values** of an existing Choice data type. Do that by hand in-product on the Manage Taxonomy page: https://docs.uipath.com/ixp/automation-cloud/latest/user-guide/managing-projects — then continue here." |
Loading