@uipath/skills 1.201.0-preview.605 → 1.201.0-preview.612

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CODEOWNERS CHANGED
@@ -79,16 +79,13 @@
79
79
  /tests/tasks/activation/uipath-functions.jsonl @AlexBizon @UiPath/team-coded-agents
80
80
 
81
81
  # Planner skill (PDD → SDD design + multi-skill task planning)
82
- /skills/uipath-planner/ @RaduAna-Maria @abhiram-vad @charlesliu9 @song-zhao-25
83
- /tests/tasks/uipath-planner/ @RaduAna-Maria @abhiram-vad @charlesliu9 @song-zhao-25
84
- # Case-design evals migrated from uipath-maestro-case (planner-sole-SDD-author) — case owners stay reviewers
85
- /tests/tasks/uipath-planner/_shared/ @RaduAna-Maria @abhiram-vad @charlesliu9 @song-zhao-25 @jundayin
86
- /tests/tasks/uipath-planner/case_design_interview/ @RaduAna-Maria @abhiram-vad @charlesliu9 @song-zhao-25 @jundayin
87
- /tests/tasks/uipath-planner/case_design_loan/ @RaduAna-Maria @abhiram-vad @charlesliu9 @song-zhao-25 @jundayin
88
- /tests/tasks/uipath-planner/case_finalize_draft/ @RaduAna-Maria @abhiram-vad @charlesliu9 @song-zhao-25 @jundayin
89
- /tests/tasks/uipath-planner/case_finalize_draft_loan/ @RaduAna-Maria @abhiram-vad @charlesliu9 @song-zhao-25 @jundayin
90
- /tests/tasks/uipath-planner/case_finalize_draft_picker/ @RaduAna-Maria @abhiram-vad @charlesliu9 @song-zhao-25 @jundayin
91
- /tests/tasks/uipath-planner/case_finalize_draft_reject/ @RaduAna-Maria @abhiram-vad @charlesliu9 @song-zhao-25 @jundayin
82
+ /skills/uipath-planner/ @RaduAna-Maria
83
+ /tests/tasks/uipath-planner/ @RaduAna-Maria
84
+ /skills/uipath-planner/references/case/ @RaduAna-Maria @abhiram-vad @charlesliu9 @song-zhao-25
85
+ /skills/uipath-planner/assets/templates/case/ @RaduAna-Maria @abhiram-vad @charlesliu9 @song-zhao-25
86
+ /skills/uipath-planner/scripts/case/ @RaduAna-Maria @abhiram-vad @charlesliu9 @song-zhao-25
87
+ /tests/tasks/uipath-planner/case/ @abhiram-vad @charlesliu9 @song-zhao-25 @jundayin
88
+ /tests/tasks/uipath-planner/_shared/ @abhiram-vad @charlesliu9 @song-zhao-25 @jundayin
92
89
 
93
90
  # Solution skill (uip solution lifecycle)
94
91
  /skills/uipath-solution/ @UiPath/team-merlot @UiPath/team-orange
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uipath/skills",
3
- "version": "1.201.0-preview.605",
3
+ "version": "1.201.0-preview.612",
4
4
  "description": "UiPath agent skills for Claude Code, Codex, Cursor, Copilot, Gemini and OpenCode — RPA, UI automation, UI testing, coded agents/apps/workflows, and troubleshooting. Distributed as the UiPath Claude Code plugin.",
5
5
  "author": {
6
6
  "name": "UiPath"
@@ -79,7 +79,7 @@ If the user provides a taxonomy file, use `--skip-taxonomy` and `import-taxonomy
79
79
  | "Roll back to a previous version" / "Restore version N" | `uip ixp projects publish <project-name> --model-version <N> --output json` — re-publishes an earlier version. Get available versions from `uip ixp projects list-models <project-name> --output json`. |
80
80
  | "Unpublish a model" / "Take a model out of production" | `uip ixp projects unpublish <project-name> --model-version <N> --output json` — removes a version from the published set (it stays trained/listable). `--model-version` is required; find published versions via `list-models` (`Pinned: true`). To change which version is live, `publish` a different one instead. |
81
81
  | "Remove the live/staging tag" / "Untag a version" | `uip ixp projects untag <project-name> --tag <live\|staging> --output json` — removes the named tag (the version it pointed at stays published). **`untag` is the only way to remove a tag** — do NOT `unpublish` or re-`publish` to clear it (`unpublish` removes publication, not the tag; `publish` without `--tag` leaves the existing tag untouched). To switch `live`→`staging`, `publish --tag staging` instead. |
82
- | "Deploy this model to a folder" / "make it callable at runtime" / "deploy version N" | `uip ixp deployments create <project-name> --version <N> --folder-key <guid> [--title <title>] --output json` — deploys a trained version to an Orchestrator folder, making it callable by activity packs and Maestro Flow. `--version` (from `projects list-models`) and `--folder-key` (from `uip or folders list --output json`) are both **required**; `--title` defaults to the project name minus `-ixp`. **`create` never repoints an existing deployment** — a title already deployed in that folder on a different version is a `409`; use `upgrade` (next row). Read `DeploymentName` off the response: it is slugged and suffixed, never the title or the project name. See [cli-reference § Deployments](references/cli-reference.md#deployments). |
82
+ | "Deploy this model to a folder" / "make it callable at runtime" / "deploy version N" | `uip ixp deployments create <project-name> --version <N> --folder-key <guid> [--title <title>] --output json` — deploys a trained version to an Orchestrator folder, making it callable by activity packs and Maestro Flow. `--version` (from `projects list-models`) and `--folder-key` (from `uip or folders list --output json`) are both **required** — when the user names a folder instead of giving its key, resolve the name through that same `folders list`; ask only when no folder was identified at all. `--title` defaults to the project name minus `-ixp`. **`create` never repoints an existing deployment** — a title already deployed in that folder on a different version is a `409`; use `upgrade` (next row). Read `DeploymentName` off the response: it is slugged and suffixed, never the title or the project name. See [cli-reference § Deployments](references/cli-reference.md#deployments). |
83
83
  | "Move a deployment to another version" / "upgrade the deployed model" / "that folder is serving an old version" | `uip ixp deployments upgrade <project-name> <deployment-name> --version <N> --folder-key <guid> --output json` — `<deployment-name>` is the `DeploymentName` from `deployments list`, **not** the title (a title there is a `404`). Changes which version **every runtime caller of that folder and name** gets, so confirm intent on a shared folder. **Not a rollback path** — the target version must still appear in `projects list-models`. See [cli-reference § create vs upgrade](references/cli-reference.md#create-vs-upgrade). |
84
84
  | "Where is this model deployed?" / "list deployments" / "which folder or version is live at runtime" | `uip ixp deployments list <project-name> --output json` — array of `DeploymentName`, `DeploymentTitle`, `ModelVersion`, `FolderKey`, `DeployedAt`; `[]` for a never-deployed project. **The only reliable source of `DeploymentName`** — run it before any `upgrade`. |
85
85
  | "Show metrics" / "What are the scores?" | `uip ixp projects get-metrics <project-name> --model-version <N> --output json` — **always name the version.** Without `--model-version` the CLI returns the **latest trained** version, which is not necessarily the published/live one; get the live version from `list-models` first (see "How is this project performing?"). |
@@ -112,6 +112,8 @@ If the user provides a taxonomy file, use `--skip-taxonomy` and `import-taxonomy
112
112
  | Field instructions conflict with label_def instructions | `fields update-prompts` only edits per-field instructions, NOT the parent label_def instructions | Before iterating, read the label_def `instructions` and update them with `groups update-prompts` if they contradict the per-field prompts. |
113
113
  | A confirmed line item now reads back as the first row, or the other rows' `Occurrence` numbers shifted | Expected: the read returns annotation↔prediction matched pairs first, so confirmed rows sort ahead of unconfirmed ones | Nothing to fix — values and page locations are unchanged. Re-run `get-predictions` before the next per-occurrence call and target the row by its values (Critical Rule 18). |
114
114
  | A second `--occurrence` call landed on the wrong row, or `unconfirm --occurrence N` no-ops | Indices came from a read taken *before* an earlier confirm renumbered the group | Re-read `get-predictions` between per-occurrence writes, or issue them as one `--updates` call. |
115
+ | `deployments create` returns `409` | That title is already deployed in that folder on a different version — `create` only ever ADDS | Use `deployments upgrade <project-name> <deployment-name>` instead, taking `<deployment-name>` from `deployments list` (Critical Rule #20). |
116
+ | `deployments upgrade` returns `404` | A `DeploymentTitle` was passed where `DeploymentName` is expected — the name is slugged and suffixed (`invoices` → `invoices-08963f00-ixp`), so it cannot be derived from the title | Run `deployments list <project-name> --output json` and pass its `DeploymentName` verbatim. |
115
117
 
116
118
  ## Unsupported Capabilities
117
119
 
@@ -121,7 +123,11 @@ These requests fall outside the skill. Recognise the request, reply with the sta
121
123
  |--------------|-------------------|
122
124
  | "Create a model" / "create a project" | **Documents or a taxonomy supplied →** use the [Project Setup Guide](references/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." |
123
125
  | "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." |
126
+ <<<<<<< HEAD
124
127
  | "Deploy this model" / "push to staging / production / folder / environment / tenant" | **Folder deployment is supported** — deploy with `uip ixp deployments create` (see the "Deploy this model to a folder" row in [Task Navigation](#task-navigation)). If the user NAMES a folder rather than giving its key, resolve the name with `uip or folders list --output json` — ask only when no folder was identified at all. For anything that is not an Orchestrator folder: "I deploy model versions to Orchestrator **folders**. Binding to environments or another tenant is a product-side flow: https://docs.uipath.com/ixp/automation-cloud/latest/user-guide/building-and-deploying-models." 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. |
128
+ =======
129
+ | "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](#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` tags a version *inside* the project — it deploys nothing. |
130
+ >>>>>>> 6788b15df (docs(uipath-ixp): stop documenting folder deploys as unsupported (#2794))
125
131
  | "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." |
126
132
  | "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." |
127
133
  | "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." |
@@ -16,7 +16,7 @@ Never execute the work. Outputs are SDD markdown, plan/tasks markdown, and live
16
16
 
17
17
  The skill has three paths, decided by the **Entry Guard**:
18
18
 
19
- - **Phase D — Design.** Input is a PDD, or an explicit "design / architect this" request. Author the SDD; the SDD write ends the turn, and Lane A continues on the next turn. See [sdd-generation-guide.md](references/sdd-generation-guide.md). **Case Management designs run through Phase D's Case Design Lane** ([case-design-lane-guide.md](references/case-design-lane-guide.md)) — a conversational design ending in ONE Case Review confirmation.
19
+ - **Phase D — Design.** Input is a PDD, or an explicit "design / architect this" request. Author the SDD; the SDD write ends the turn, and Lane A continues on the next turn. See [sdd-generation-guide.md](references/sdd-generation-guide.md). **Case Management designs run through Phase D's Case Design Lane** ([case-design-lane-guide.md](references/case/case-design-lane-guide.md)) — a conversational design ending in ONE Case Review confirmation.
20
20
  - **Lane A — PDD-driven.** Input is an SDD with the `## Planner Handoff` marker (written by Phase D, or hand-written). Read it, derive tasks, emit live tasks. Zero to two user prompts. See [pdd-driven-lane-guide.md](references/pdd-driven-lane-guide.md).
21
21
  - **Lane B — Non-PDD.** No SDD; a non-PDD multi-project request. Elicit preferences, detect project type, write a plan, emit live tasks. 0–3 prompts (5-call cap). See [non-pdd-lane-guide.md](references/non-pdd-lane-guide.md).
22
22
 
@@ -47,7 +47,7 @@ The skill has three paths, decided by the **Entry Guard**:
47
47
  - **When you map or copy content out of another document** (a source SDD into a client template, a PDD into an SDD, one SDD section into another), **carry its markers through byte-for-byte.** Re-wording a marker you did not author destroys a gap someone else recorded. Add new markers for the gaps *you* find; never edit the ones already there.
48
48
  11. **The terminal artefact of a Solution build is a packed `.uipx`.** The SDD's `## Next Steps` section points the user at the `uipath-solution` skill (`uip solution init` → `project add` per project → `resources refresh` → `pack`). A bare project folder is not the deliverable. Exception: when the Constraint Gate blocks Solutions for the delivery model — standalone, Automation Suite older than 2.2510, or a user exclusion — rewrite Next Steps to per-package Orchestrator publish routed via `uipath-platform`.
49
49
  12. **Never copy SDD architecture into the plan, and never invent selectors or UI targets.** The plan references SDD section paths in skill prompts; it does not duplicate architecture content. Selectors require application inspection at development time — leave them for the specialist.
50
- 13. **Sole author of Case Management SDDs.** Every case design path — conversational, build handoff from `uipath-maestro-case`, draft finalization, PDD-driven — runs the Case Design Lane ([case-design-lane-guide.md](references/case-design-lane-guide.md)), which owns the conversation, the one confirmation, and the write; the case model and its defaults live in [case-design-layers-guide.md](references/case-design-layers-guide.md) and the render contract in the case SDD template. Design time resolves identities only — never schema discovery, project scaffolding, or create-on-missing; those are build concerns, recorded as gate decisions.
50
+ 13. **Sole author of Case Management SDDs.** Every case design path — conversational, build handoff from `uipath-maestro-case`, draft finalization, PDD-driven — runs the Case Design Lane ([case-design-lane-guide.md](references/case/case-design-lane-guide.md)), which owns the conversation, the one confirmation, and the write; the case model and its defaults live in [case-design-layers-guide.md](references/case/case-design-layers-guide.md) and the render contract in the case SDD template. Design time resolves identities only — never schema discovery, project scaffolding, or create-on-missing; those are build concerns, recorded as gate decisions.
51
51
 
52
52
  ## Entry Guard
53
53
 
@@ -56,7 +56,7 @@ Run this guard before anything else.
56
56
  ```text
57
57
  0. Product design-lane signals — checked first. Some products register a
58
58
  dedicated Phase D design lane (today: Case Management —
59
- references/case-design-lane-guide.md). Route to Phase D — Design through
59
+ references/case/case-design-lane-guide.md). Route to Phase D — Design through
60
60
  the product's lane when any of these fire (the path taxonomy stays the three
61
61
  paths above; a lane is Phase D's product-specific entrance):
62
62
  - a build request handed off by that product's build skill because its
@@ -164,8 +164,8 @@ High-level view of what each specialist owns. **Do not describe internal flows o
164
164
  | File | Purpose |
165
165
  |------|---------|
166
166
  | [SDD Generation Guide](references/sdd-generation-guide.md) | Phase orchestrator — Phase 1, 2, 3 step-by-step instructions |
167
- | [Case Design Lane Guide](references/case-design-lane-guide.md) | The case design conversation — entry, tenant grounding, authoring policy, the one Case Review, and the write |
168
- | [Case Design Layers Guide](references/case-design-layers-guide.md) | The case model and every design **Default** — skeleton (triggers, stages, the nine task types), gates (lifecycle rules, exits, sequencing, secondary lanes), data (variables, outputs, expressions), time (SLAs, escalations, responses), naming rules, and the closure checklist |
167
+ | [Case Design Lane Guide](references/case/case-design-lane-guide.md) | The case design conversation — entry, tenant grounding, authoring policy, the one Case Review, and the write |
168
+ | [Case Design Layers Guide](references/case/case-design-layers-guide.md) | The case model and every design **Default** — skeleton (triggers, stages, the nine task types), gates (lifecycle rules, exits, sequencing, secondary lanes), data (variables, outputs, expressions), time (SLAs, escalations, responses), naming rules, and the closure checklist |
169
169
  | [PDD Analysis Guide](references/pdd-analysis-guide.md) | How to extract structured data from PDDs in any format |
170
170
  | [Product Selection Guide](references/product-selection-guide.md) | **Constraint Gate** (delivery model + exclusions filter), **Level 1** (primary scope), **Level 1.75** (Solution composition), **Level 2.5 Part B** (cross-product project list merge), **Level 3** (capability add-ons), template mapping |
171
171
  | [Platform Availability Guide](references/platform-availability-guide.md) | Product × delivery-model availability matrix (Cloud / Automation Suite / standalone), alternatives for blocked products, verification rule for uncertain cells. Load whenever the Constraint Gate runs — every delivery model: "Cloud is not uniform", variants (GovCloud / Dedicated / Test Cloud) and per-tenant entitlements can block products inside the Cloud column. |
@@ -182,7 +182,7 @@ High-level view of what each specialist owns. **Do not describe internal flows o
182
182
  | [RPA Template](assets/templates/rpa-sdd-template.md) | SDD template for RPA Process / Library / Test Automation |
183
183
  | [Flow Template](assets/templates/flow-sdd-template.md) | SDD template for Maestro Flow |
184
184
  | [BPMN Template](assets/templates/bpmn-sdd-template.md) | SDD template for Maestro BPMN |
185
- | [Case Management Template](assets/templates/case-sdd-template.md) | SDD template for Case Management (downstream Case Definition Blueprint shape) |
185
+ | [Case Management Template](assets/templates/case/case-sdd-template.md) | SDD template for Case Management (downstream Case Definition Blueprint shape) |
186
186
  | [Agent Template](assets/templates/agent-sdd-template.md) | SDD template for UiPath Agents |
187
187
  | [Coded App Template](assets/templates/coded-app-sdd-template.md) | SDD template for Coded Apps (web) |
188
188
  | [API Workflow Template](assets/templates/api-workflow-sdd-template.md) | SDD template for API Workflows |
@@ -212,7 +212,7 @@ Config-as-In: runtime business rules (priority bands, thresholds, taxonomies) ri
212
212
  **Purpose:** The case plan. Every stage has entry/exit conditions, optional SLA, and complete task detail blocks. Case has no BPMN-style edges; transitions are expressed by stage entry/exit conditions.
213
213
 
214
214
  **Authoring rules** — this template IS the render contract: cell rules live inline at each cell. Design
215
- semantics (type enum, gates, sequencing, SLA surface): [case-design-layers-guide.md](../../references/case-design-layers-guide.md).
215
+ semantics (type enum, gates, sequencing, SLA surface): [case-design-layers-guide.md](../../../references/case/case-design-layers-guide.md).
216
216
  During draft finalization, do NOT open that link — the draft is the settled design and this template is
217
217
  the complete normalization contract; finalization preserves existing display names verbatim.
218
218
  Template-local rules:
@@ -605,7 +605,7 @@ there. Pass --draft so the gate also checks inventory parity, verbatim `=js:` pr
605
605
  executable threshold encoding. What the DRAFT specifically needs repaired on the way through is the
606
606
  lane guide's § Resumption; the shape is here.
607
607
 
608
- Gate: run <py> "<skill folder>/scripts/audit_sdd.py" <sdd path> [--draft <draft path>] on the
608
+ Gate: run <py> "<skill folder>/scripts/case/audit_sdd.py" <sdd path> [--draft <draft path>] on the
609
609
  on-disk file BEFORE the Status: ready flip — in every mode. `<py>` = the first of `python3`, `python`,
610
610
  `py` that runs (Windows usually has no `python3` alias); only if all three are absent verify manually. RUN it, never open the script source —
611
611
  its findings are the interface. Minting charset is ADVISORY — it never gates, and a name the user, the
@@ -8,9 +8,9 @@ Case knowledge is split three ways. Read all three to begin, in parallel, **at m
8
8
  |---|---|
9
9
  | this file | the conversation: entry, tenant grounding, authoring policy, the one confirmation, the write |
10
10
  | [case-design-layers-guide.md](case-design-layers-guide.md) | the case model and every design **Default** — skeleton, gates, data, SLAs, naming, the closure checklist |
11
- | [`case-sdd-template.md`](../assets/templates/case-sdd-template.md) | the render contract — skeleton, cell rules inline, validation footer |
11
+ | [`case-sdd-template.md`](../../assets/templates/case/case-sdd-template.md) | the render contract — skeleton, cell rules inline, validation footer |
12
12
 
13
- That is the COMPLETE design reading set. NEVER read `scripts/audit_sdd.py` — scripts are RUN, and their findings are the interface. Do NOT read the generic Phase D references (pdd-analysis, product-selection beyond the Constraint Gate): scope is already decided. Reference paths resolve against this skill's base directory, given at invocation — never hunt with `find` / global `ls`. Everything after the SDD (tasks.md, caseplan.json, validate, publish) belongs to `uipath-maestro-case`.
13
+ That is the COMPLETE design reading set. NEVER read `scripts/case/audit_sdd.py` — scripts are RUN, and their findings are the interface. Do NOT read the generic Phase D references (pdd-analysis, product-selection beyond the Constraint Gate): scope is already decided. Reference paths resolve against this skill's base directory, given at invocation — never hunt with `find` / global `ls`. Everything after the SDD (tasks.md, caseplan.json, validate, publish) belongs to `uipath-maestro-case`.
14
14
 
15
15
  **Draft finalization reads less (hard):** this file's §Resumption + §Terminal step, `sdd.draft.md`, and the template (its validation footer is the gate) — once each. NOT the layers guide: finalization normalizes structure, it does not redesign. No subagents, no background tasks, no tenant discovery unless identities are needed and a session exists.
16
16
 
@@ -106,7 +106,7 @@ When the user mentions `file`, `attachment`, `PDF`, `upload`, `evidence`, `recei
106
106
 
107
107
  ### Sketch — best assumption, every field
108
108
 
109
- Fill the complete SDD shape against [`case-sdd-template.md`](../assets/templates/case-sdd-template.md) from what Listen captured. Every open field takes the **Default** stated in its layer ([case-design-layers-guide.md](case-design-layers-guide.md)) — decided and disclosed, never asked. Platform schema and compliance constraints override user phrasing (§Authoring policy): apply silently, then surface as a decision line.
109
+ Fill the complete SDD shape against [`case-sdd-template.md`](../../assets/templates/case/case-sdd-template.md) from what Listen captured. Every open field takes the **Default** stated in its layer ([case-design-layers-guide.md](case-design-layers-guide.md)) — decided and disclosed, never asked. Platform schema and compliance constraints override user phrasing (§Authoring policy): apply silently, then surface as a decision line.
110
110
 
111
111
  Settle before Confirm: case name, prefix, ≥ 1 trigger, ≥ 1 stage, ≥ 1 typed task per stage, ≥ 1 case exit — by user input or by layer default.
112
112
 
@@ -210,7 +210,7 @@ On the accept answer: write the SDD to disk in batches, gate it, flip it. The mo
210
210
  | Direct design (design/generate a case SDD, greenfield, no PDD) | `<CASE_NAME_KEBAB>-sdd.md` | STOP — the write is a turn boundary; `## Next Steps` points at Lane A or `uipath-maestro-case` for a later, opt-in turn |
211
211
  | Draft request (user asked for a reviewable draft and to stop) | `sdd.draft.md`, or `<name>-sdd.draft.md` when the request names the file | STOP. Never promote a draft |
212
212
  | Draft finalization (a `sdd.draft.md` exists, user asks to finalize) | the draft's basename minus `.draft` | STOP. §Resumption owns the procedure; the draft stays on disk beside the final |
213
- | PDD-driven case (a PDD routed to Phase D, scope picked Case Management) | the standard Phase D output path ([sdd-generation-guide.md](sdd-generation-guide.md)) | Standard Phase D flow — the case body still obeys the layers guide and the template |
213
+ | PDD-driven case (a PDD routed to Phase D, scope picked Case Management) | the standard Phase D output path ([sdd-generation-guide.md](../sdd-generation-guide.md)) | Standard Phase D flow — the case body still obeys the layers guide and the template |
214
214
 
215
215
  Never write `sdd.md` AND `<case>-sdd.md` for the same design. Report the path in one line.
216
216
 
@@ -243,7 +243,7 @@ user-facing** (Resources and Integrations carries every user-relevant outcome).
243
243
 
244
244
  ## HTML preview
245
245
 
246
- Optional, **on-request only** — never offered proactively. Self-contained local HTML review of the case design (Case Definition, collapsible Stages & Tasks, Personas, Integrations; filters and search). Generation: Read [`assets/templates/sdd-viewer.html`](../assets/templates/sdd-viewer.html), replace the `__SDD_DATA__` token in its `<script id="sdd-data">` block with JSON serialized from the in-memory model (schema in the template's header comment — do NOT re-parse the SDD when the model is live), Write `./sdd-viewer.html`, tell the user: `Generated ./sdd-viewer.html — open it in a browser to review.` Failure → one-line notice, continue. Downstream build phases ignore this file.
246
+ Optional, **on-request only** — never offered proactively. Self-contained local HTML review of the case design (Case Definition, collapsible Stages & Tasks, Personas, Integrations; filters and search). Generation: Read [`assets/templates/case/sdd-viewer.html`](../../assets/templates/case/sdd-viewer.html), replace the `__SDD_DATA__` token in its `<script id="sdd-data">` block with JSON serialized from the in-memory model (schema in the template's header comment — do NOT re-parse the SDD when the model is live), Write `./sdd-viewer.html`, tell the user: `Generated ./sdd-viewer.html — open it in a browser to review.` Failure → one-line notice, continue. Downstream build phases ignore this file.
247
247
 
248
248
  ## Resumption
249
249
 
@@ -274,7 +274,7 @@ If the user explicitly asks to finalize the existing draft, choose `Use the draf
274
274
  10. Write, gate, flip per §Terminal step (the draft on disk is also a recovery point, so a compaction means re-finalizing from it), then the audit with the draft comparison:
275
275
 
276
276
  ```bash
277
- python3 "<this skill's folder>/scripts/audit_sdd.py" <final SDD path> --draft <draft path>
277
+ python3 "<this skill's folder>/scripts/case/audit_sdd.py" <final SDD path> --draft <draft path>
278
278
  # python3 absent (common on Windows) → retry the same line with `python`, then `py`
279
279
  ```
280
280
 
@@ -41,7 +41,7 @@ Reason the shape from the process — never reach for the template first. Build
41
41
 
42
42
  ### Task types
43
43
 
44
- <!-- parsed at runtime by scripts/audit_sdd.py — do not rename this heading or reshape this table/fence; a rename disarms the checks and audit_sdd.py will report "model checks disarmed" -->
44
+ <!-- parsed at runtime by scripts/case/audit_sdd.py — do not rename this heading or reshape this table/fence; a rename disarms the checks and audit_sdd.py will report "model checks disarmed" -->
45
45
 
46
46
  The enum is closed — exactly these nine literals, used verbatim as the SDD `Type:` value. The `type` says **how the work gets done**, not what it is about — read the verb + the actor:
47
47
 
@@ -112,7 +112,7 @@ The case, each stage, and each task move through gates driven by **rules** in di
112
112
 
113
113
  ### Lifecycle gates
114
114
 
115
- <!-- parsed at runtime by scripts/audit_sdd.py — do not rename this heading or reshape this table/fence; a rename disarms the checks and audit_sdd.py will report "model checks disarmed" -->
115
+ <!-- parsed at runtime by scripts/case/audit_sdd.py — do not rename this heading or reshape this table/fence; a rename disarms the checks and audit_sdd.py will report "model checks disarmed" -->
116
116
 
117
117
  | Gate | Marks complete | Legal WHEN rules |
118
118
  |---|---|---|
@@ -400,7 +400,7 @@ Never author `start-task` as a stage-entry row on the breached stage: it validat
400
400
 
401
401
  ### Naming rules
402
402
 
403
- <!-- parsed at runtime by scripts/audit_sdd.py — do not rename this heading or reshape this table/fence; a rename disarms the checks and audit_sdd.py will report "model checks disarmed" -->
403
+ <!-- parsed at runtime by scripts/case/audit_sdd.py — do not rename this heading or reshape this table/fence; a rename disarms the checks and audit_sdd.py will report "model checks disarmed" -->
404
404
 
405
405
  Safe display characters for stage labels, task display names, and condition/SLA/escalation titles:
406
406
 
@@ -427,7 +427,7 @@ Comparison exact — case-sensitive, untrimmed. Never normalize external lookup
427
427
 
428
428
  ## Layer closure — the design checklist
429
429
 
430
- ONE checklist. Settle every item by assumption during Sketch; re-walk at Confirm (fix failures silently — authoring defects, not user decisions; unfixable → Review Flags). Mechanical shape/contract checks are NOT here — `scripts/audit_sdd.py` owns them (enforcement list: template § Validation); run it on the written file.
430
+ ONE checklist. Settle every item by assumption during Sketch; re-walk at Confirm (fix failures silently — authoring defects, not user decisions; unfixable → Review Flags). Mechanical shape/contract checks are NOT here — `scripts/case/audit_sdd.py` owns them (enforcement list: template § Validation); run it on the written file.
431
431
 
432
432
  **Blocking — the design is unbuildable or unreviewable until fixed:**
433
433
 
@@ -554,7 +554,7 @@ Based on the Level 1 primary, select one template:
554
554
  | RPA Process, Library, Test Automation | `../assets/templates/rpa-sdd-template.md` |
555
555
  | Maestro Flow | `../assets/templates/flow-sdd-template.md` |
556
556
  | Maestro BPMN | `../assets/templates/bpmn-sdd-template.md` |
557
- | Case Management | `../assets/templates/case-sdd-template.md` |
557
+ | Case Management | `../assets/templates/case/case-sdd-template.md` |
558
558
  | Agents | `../assets/templates/agent-sdd-template.md` |
559
559
  | Coded Apps | `../assets/templates/coded-app-sdd-template.md` |
560
560
  | API Workflows | `../assets/templates/api-workflow-sdd-template.md` |
@@ -304,7 +304,7 @@ The architectural core sections differ per template. For each product, generate
304
304
  - §3 Personas & App Views
305
305
  - §4 Integrations (resource roll-up for connectors, API workflows, agents, processes/RPA, child cases, external agents, IXP models, coded functions)
306
306
  - Case section headings render in the template's long form (`## Section 1: Case Definition`, …) — the heading TEXT is load-bearing downstream (`uipath-maestro-case` parses it verbatim); `§N` is the reference notation in planner docs only. Do not emit the legacy planner-only `§3 Stages` / `§4 Tasks Grid` / `§13 Task Type Registry` format.
307
- - Case body content obeys [case-design-layers-guide.md](case-design-layers-guide.md) (model, authoring method, closure checklist) and the case SDD template's inline render contract (gate: `audit_sdd.py` per its § Validation footer); tenant grounding runs per the lane's §Tenant grounding. For conversational (non-PDD) case requests, delegated case design, and case draft finalization, the whole flow is the Case Design Lane — [case-design-lane-guide.md](case-design-lane-guide.md) — not the generic 3-phase model in this guide.
307
+ - Case body content obeys [case-design-layers-guide.md](case/case-design-layers-guide.md) (model, authoring method, closure checklist) and the case SDD template's inline render contract (gate: `audit_sdd.py` per its § Validation footer); tenant grounding runs per the lane's §Tenant grounding. For conversational (non-PDD) case requests, delegated case design, and case draft finalization, the whole flow is the Case Design Lane — [case-design-lane-guide.md](case/case-design-lane-guide.md) — not the generic 3-phase model in this guide.
308
308
 
309
309
  **Agents:**
310
310
  - §2 Agent Framework (LangGraph / LlamaIndex / OpenAI Agents / Simple Function)
@@ -222,7 +222,7 @@ def lineage_findings(text: str) -> list[str]:
222
222
  return findings
223
223
 
224
224
 
225
- LAYERS_MD = Path(__file__).resolve().parent.parent / "references" / "case-design-layers-guide.md"
225
+ LAYERS_MD = Path(__file__).resolve().parent.parent.parent / "references" / "case" / "case-design-layers-guide.md"
226
226
 
227
227
 
228
228
  def load_model_facts() -> tuple[dict, str | None]:
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "schemaVersion": 2,
3
- "skillsVersion": "1.201.0-preview.605",
3
+ "skillsVersion": "1.201.0-preview.612",
4
4
  "targetCli": "^1.201.0"
5
5
  }