@uipath/skills 1.197.2 → 1.198.0-preview.21

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.
Files changed (143) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/CODEOWNERS +18 -11
  4. package/README.md +1 -0
  5. package/assets/skill-status.json +8 -0
  6. package/hooks/hooks.json +44 -8
  7. package/hooks/send-telemetry.ps1 +392 -0
  8. package/hooks/send-telemetry.sh +118 -86
  9. package/hooks/set-session-env.ps1 +72 -0
  10. package/hooks/set-session-env.sh +64 -0
  11. package/hooks/suggest-permissions.ps1 +45 -0
  12. package/hooks/suggest-permissions.sh +4 -0
  13. package/package.json +1 -1
  14. package/skills/uipath-admin/references/audit-commands.md +2 -2
  15. package/skills/uipath-admin/references/audit-workflow-guide.md +4 -4
  16. package/skills/uipath-agents/references/coded/capabilities/batch-transform/planning.md +1 -1
  17. package/skills/uipath-agents/references/coded/capabilities/deeprag/planning.md +1 -1
  18. package/skills/uipath-agents/references/coded/capabilities/guardrails/guardrails-recommend.md +5 -2
  19. package/skills/uipath-agents/references/coded/capabilities/guardrails/guardrails.md +8 -4
  20. package/skills/uipath-agents/references/coded/embedding-in-flows.md +1 -1
  21. package/skills/uipath-agents/references/coded/flow-integration.md +2 -2
  22. package/skills/uipath-agents/references/coded/lifecycle/build.md +0 -1
  23. package/skills/uipath-agents/references/coded/lifecycle/setup.md +0 -1
  24. package/skills/uipath-agents/references/coded/quickstart.md +1 -1
  25. package/skills/uipath-agents/references/lowcode/agent-definition.md +24 -5
  26. package/skills/uipath-agents/references/lowcode/capabilities/built-in-tools/batch-transform/planning.md +1 -1
  27. package/skills/uipath-agents/references/lowcode/capabilities/built-in-tools/deeprag/planning.md +1 -1
  28. package/skills/uipath-agents/references/lowcode/capabilities/context/attachments.md +1 -0
  29. package/skills/uipath-agents/references/lowcode/capabilities/guardrails/guardrails-recommend.md +1 -0
  30. package/skills/uipath-api-workflow/references/cli-reference.md +1 -1
  31. package/skills/uipath-api-workflow/references/connector-activity-discovery.md +1 -1
  32. package/skills/uipath-api-workflow/references/troubleshooting.md +1 -1
  33. package/skills/uipath-automation-discovery/SKILL.md +26 -1
  34. package/skills/uipath-automation-discovery/assets/templates/estimation-worksheet-template.md +80 -0
  35. package/skills/uipath-automation-discovery/references/estimation-guide.md +104 -0
  36. package/skills/uipath-connector-builder/SKILL.md +6 -4
  37. package/skills/uipath-connector-builder/references/auth.md +137 -13
  38. package/skills/uipath-connector-builder/references/configuration.md +29 -7
  39. package/skills/uipath-connector-builder/references/debugging.md +1 -1
  40. package/skills/uipath-connector-builder/references/standard-resources.md +162 -13
  41. package/skills/uipath-governance/references/cli-cheatsheet.md +3 -3
  42. package/skills/uipath-governance/references/diagnose/references/failure-modes.md +5 -5
  43. package/skills/uipath-insights/SKILL.md +277 -0
  44. package/skills/uipath-insights/references/investigation-playbook-guide.md +145 -0
  45. package/skills/uipath-insights/references/jobs-commands-guide.md +144 -0
  46. package/skills/uipath-ixp/SKILL.md +4 -1
  47. package/skills/uipath-ixp/references/cli-reference.md +18 -3
  48. package/skills/uipath-maestro-bpmn/references/cli-conventions.md +2 -0
  49. package/skills/uipath-maestro-bpmn/validator/README.md +12 -2
  50. package/skills/uipath-maestro-case/SKILL.md +27 -13
  51. package/skills/uipath-maestro-case/assets/templates/sdd-template-examples.md +37 -4
  52. package/skills/uipath-maestro-case/assets/templates/sdd-template.md +20 -9
  53. package/skills/uipath-maestro-case/assets/templates/sdd-viewer.html +8 -7
  54. package/skills/uipath-maestro-case/references/bindings-v2-sync.md +5 -1
  55. package/skills/uipath-maestro-case/references/brownfield.md +86 -0
  56. package/skills/uipath-maestro-case/references/case-commands.md +8 -0
  57. package/skills/uipath-maestro-case/references/case-editing-operations.md +230 -21
  58. package/skills/uipath-maestro-case/references/case-schema.md +29 -11
  59. package/skills/uipath-maestro-case/references/connector-integration.md +1 -1
  60. package/skills/uipath-maestro-case/references/connector-trigger-common.md +1 -1
  61. package/skills/uipath-maestro-case/references/entry-points-sync.md +204 -0
  62. package/skills/uipath-maestro-case/references/implementation.md +19 -9
  63. package/skills/uipath-maestro-case/references/phase-0-interview.md +10 -8
  64. package/skills/uipath-maestro-case/references/phased-execution.md +11 -4
  65. package/skills/uipath-maestro-case/references/placeholder-tasks.md +24 -2
  66. package/skills/uipath-maestro-case/references/planning.md +9 -3
  67. package/skills/uipath-maestro-case/references/plugins/case/planning.md +2 -0
  68. package/skills/uipath-maestro-case/references/plugins/sla/impl-json.md +1 -1
  69. package/skills/uipath-maestro-case/references/plugins/sla/planning.md +1 -1
  70. package/skills/uipath-maestro-case/references/plugins/stages/impl-json.md +11 -10
  71. package/skills/uipath-maestro-case/references/plugins/stages/planning.md +13 -14
  72. package/skills/uipath-maestro-case/references/plugins/tasks/agent/impl-json.md +3 -1
  73. package/skills/uipath-maestro-case/references/plugins/tasks/agent/planning.md +91 -2
  74. package/skills/uipath-maestro-case/references/plugins/tasks/api-workflow/impl-json.md +3 -1
  75. package/skills/uipath-maestro-case/references/plugins/tasks/api-workflow/planning.md +87 -2
  76. package/skills/uipath-maestro-case/references/plugins/tasks/connector-activity/planning.md +1 -1
  77. package/skills/uipath-maestro-case/references/plugins/triggers/event/impl-json.md +1 -1
  78. package/skills/uipath-maestro-case/references/plugins/triggers/manual/impl-json.md +3 -1
  79. package/skills/uipath-maestro-case/references/plugins/triggers/timer/impl-json.md +2 -1
  80. package/skills/uipath-maestro-case/references/plugins/variables/bindings/impl-json.md +2 -0
  81. package/skills/uipath-maestro-case/references/plugins/variables/global-vars/impl-json.md +20 -10
  82. package/skills/uipath-maestro-case/references/plugins/variables/global-vars/planning.md +9 -8
  83. package/skills/uipath-maestro-case/references/plugins/variables/io-binding/impl-json.md +1 -1
  84. package/skills/uipath-maestro-case/references/plugins/variables/io-binding/planning.md +1 -1
  85. package/skills/uipath-maestro-case/references/registry-discovery.md +87 -10
  86. package/skills/uipath-maestro-case/references/sdd-generation-rules.md +34 -26
  87. package/skills/uipath-maestro-flow/SKILL.md +4 -1
  88. package/skills/uipath-maestro-flow/references/author/CAPABILITY.md +1 -2
  89. package/skills/uipath-maestro-flow/references/author/references/editing-operations-json.md +3 -3
  90. package/skills/uipath-maestro-flow/references/author/references/greenfield.md +4 -2
  91. package/skills/uipath-maestro-flow/references/author/references/planning-arch.md +0 -1
  92. package/skills/uipath-maestro-flow/references/author/references/planning-impl.md +0 -1
  93. package/skills/uipath-maestro-flow/references/author/references/plugins/connector/impl.md +1 -0
  94. package/skills/uipath-maestro-flow/references/author/references/plugins/connector-trigger/impl.md +7 -7
  95. package/skills/uipath-maestro-flow/references/author/references/plugins/ixp/impl.md +14 -14
  96. package/skills/uipath-maestro-flow/references/author/references/plugins/script/impl.md +10 -6
  97. package/skills/uipath-maestro-flow/references/shared/cli-conventions.md +7 -0
  98. package/skills/uipath-maestro-flow/references/shared/file-format.md +1 -1
  99. package/skills/uipath-mcp-servers/references/is-activity-workflow.md +3 -3
  100. package/skills/uipath-planner/SKILL.md +1 -1
  101. package/skills/uipath-platform/SKILL.md +4 -14
  102. package/skills/uipath-platform/references/data-fabric/data-fabric.md +1 -1
  103. package/skills/uipath-platform/references/integration-service/agent-workflow.md +4 -4
  104. package/skills/uipath-platform/references/integration-service/reference-resolution.md +1 -1
  105. package/skills/uipath-platform/references/integration-service/resources.md +5 -5
  106. package/skills/uipath-platform/references/integration-service/triggers.md +10 -9
  107. package/skills/uipath-platform/references/orchestrator/setup-environment.md +2 -0
  108. package/skills/uipath-review/SKILL.md +8 -4
  109. package/skills/uipath-review/references/agents/agent-review-checklist.md +1 -22
  110. package/skills/uipath-review/references/agents/agents-coded-rules.md +24 -7
  111. package/skills/uipath-review/references/agents/agents-lowcode-rules.md +0 -1
  112. package/skills/uipath-review/references/agents/guardrails/coded-guardrails-review.md +231 -0
  113. package/skills/uipath-review/references/rule-catalog-workflow.md +4 -2
  114. package/skills/uipath-rpa/SKILL.md +2 -2
  115. package/skills/uipath-rpa/references/activity-docs/UiPath.DataService.Activities/guides/data-service-filter-builder-guide.md +1 -1
  116. package/skills/uipath-rpa/references/activity-docs/UiPath.Web.Activities/2.5/coded/coded-api.md +1 -1
  117. package/skills/uipath-rpa/references/activity-docs/UiPath.Web.Activities/2.5/coded/curl-import.md +3 -3
  118. package/skills/uipath-rpa/references/activity-docs/UiPath.Web.Activities/2.5/coded/http-request-upgrade.md +3 -3
  119. package/skills/uipath-rpa/references/activity-docs/UiPath.Web.Activities/2.5/coded/service-discovery.md +2 -2
  120. package/skills/uipath-rpa/references/coded/coding-guidelines.md +1 -1
  121. package/skills/uipath-rpa/references/ui-automation-guide.md +7 -7
  122. package/skills/uipath-rpa/references/uia-configure-target-workflows.md +5 -5
  123. package/skills/uipath-rpa/references/uia-elements-interaction-guide.md +19 -10
  124. package/skills/uipath-rpa/references/uia-prerequisites.md +7 -7
  125. package/skills/uipath-rpa/references/validation-guide.md +2 -2
  126. package/skills/uipath-rpa/references/xaml/common-pitfalls.md +4 -0
  127. package/skills/uipath-rpa/references/xaml/csharp-activity-binding-guide.md +3 -1
  128. package/skills/uipath-rpa/references/xaml/csharp-expression-pitfalls.md +9 -4
  129. package/skills/uipath-rpa/references/xaml/workflow-guide.md +2 -2
  130. package/skills/uipath-rpa/references/xaml/xaml-basics-and-rules.md +1 -1
  131. package/skills/uipath-solution/SKILL.md +4 -4
  132. package/skills/uipath-solution/references/activate-and-manage.md +6 -1
  133. package/skills/uipath-solution/references/develop-solution.md +24 -5
  134. package/skills/uipath-solution/references/pack-and-deploy.md +5 -2
  135. package/skills/uipath-solution/references/scenarios/manual-edits.md +2 -2
  136. package/skills/uipath-solution/references/solution-overview.md +2 -2
  137. package/skills/uipath-troubleshoot/SKILL.md +3 -3
  138. package/skills/uipath-troubleshoot/references/products/agents/playbooks/context-grounding-index-not-found.md +0 -2
  139. package/skills/uipath-troubleshoot/references/products/maestro/playbooks/personal-automation-quota.md +1 -1
  140. package/version-manifest.json +3 -3
  141. package/hooks/ensure-uip.sh +0 -220
  142. package/skills/uipath-maestro-flow/references/author/references/plugins/connector/data-fabric/impl.md +0 -683
  143. package/skills/uipath-maestro-flow/references/author/references/plugins/connector/data-fabric/planning.md +0 -45
@@ -0,0 +1,277 @@
1
+ ---
2
+ name: uipath-insights
3
+ description: "UiPath Insights job monitoring via `uip insights` — query job execution metrics, failure analysis, and process performance. Covers job KPIs, failure reasons, completion trends, process breakdowns. For Orchestrator job start/stop/logs→uipath-platform, root-cause analysis of specific errors→uipath-troubleshoot, RPA workflow authoring→uipath-rpa."
4
+ when_to_use: "User says 'job failures', 'automation health', 'job success rate', 'processing time', 'which processes fail the most', 'failure reasons', 'job trends', 'how many jobs ran', 'insights dashboard', 'job metrics', 'job KPIs', 'job performance', 'uncompleted jobs', 'pending jobs', 'faulted jobs', 'job timeline', 'process details'. Also 'uip insights', 'insights jobs'. NOT for starting/stopping jobs (uipath-platform), NOT for root-cause debugging of a specific job error (uipath-troubleshoot), NOT for queue metrics (not yet supported)."
5
+ allowed-tools: Bash, Read
6
+ ---
7
+
8
+ # UiPath Insights — Job Monitoring Agent Skill
9
+
10
+ Insights provides analytics and monitoring for UiPath automation execution. This skill covers **job monitoring** — querying aggregated job execution data for dashboards, health checks, and failure investigation.
11
+
12
+ All operations go through `uip insights jobs <subcommand> --output json`.
13
+
14
+ ---
15
+
16
+ ## When to Use
17
+
18
+ - Checking overall automation health (how many jobs ran, how many succeeded)
19
+ - Investigating job failures (which processes fail most, what are the failure reasons)
20
+ - Monitoring job execution trends over time (completed/uncompleted timelines)
21
+ - Getting per-process performance breakdowns
22
+ - Drilling into specific failure details for investigation
23
+
24
+ > **Not in scope:** Starting, stopping, or managing individual jobs (use `uip or jobs` via uipath-platform). Root-cause debugging of a specific job's error (use uipath-troubleshoot). Queue item metrics, robot utilization, or dashboard CRUD (not yet available in CLI).
25
+
26
+ ---
27
+
28
+ ## Login & Tenant Setup
29
+
30
+ **Default to Production. Only switch environment/org/tenant when explicitly stated in the request.**
31
+
32
+ - If the request mentions no environment, use the current session (defaults to prod `cloud.uipath.com`)
33
+ - If the request explicitly names an environment/org/tenant, check `uip login status` and re-login if needed
34
+
35
+ ```bash
36
+ # Check current environment, org, and tenant
37
+ uip login status --output json
38
+
39
+ # Login to a specific environment
40
+ uip login --authority https://alpha.uipath.com --tenant MyTenant
41
+
42
+ # Switch tenant within the same environment
43
+ uip login tenant set MyTenant
44
+ ```
45
+
46
+ ---
47
+
48
+ ## Critical Rules
49
+
50
+ 1. **A time range is always required.** Every `uip insights jobs` command needs either `--time-range <minutes>` (relative) or both `--started-after <epoch-ms>` and `--started-before <epoch-ms>` (absolute). Without one, the command fails. Common values:
51
+ - `--time-range 60` — last 1 hour
52
+ - `--time-range 1440` — last 24 hours
53
+ - `--time-range 10080` — last 7 days
54
+ - `--time-range 43200` — last 30 days
55
+
56
+ 2. **Always use `--output json`.** All commands return a JSON envelope: `{ Result: "Success", Code: "<code>", Data: { ... } }`. Parse the `Data` field for the actual metrics.
57
+
58
+ 3. **Filter options are repeatable.** `--folder-key`, `--process-name`, and `--machine-name` can be specified multiple times to filter by several values: `--process-name "ProcessA" --process-name "ProcessB"`.
59
+
60
+ 4. **Empty data is normal.** If no jobs ran in the time window, the response will have `Data` with null/zero/empty fields. This is not an error.
61
+
62
+ 5. **Start with summary, then drill down.** For any investigation, start with `summary` to get the big picture, then use specific subcommands to investigate areas of concern.
63
+
64
+ ---
65
+
66
+ ## Command Reference
67
+
68
+ All commands share these filter options:
69
+
70
+ | Option | Description |
71
+ |--------|-------------|
72
+ | `--time-range <minutes>` | Relative time range in minutes |
73
+ | `--started-after <epoch-ms>` | Absolute start time (Unix epoch ms) |
74
+ | `--started-before <epoch-ms>` | Absolute end time (Unix epoch ms) |
75
+ | `--folder-key <guid>` | Filter by folder key (repeatable) |
76
+ | `--process-name <name>` | Filter by process name (repeatable) |
77
+ | `--machine-name <name>` | Filter by machine name (repeatable) |
78
+ | `--timezone-offset <minutes>` | Client timezone offset from UTC |
79
+
80
+ ### summary
81
+
82
+ Get job KPIs: total count, successful count, and average processing time.
83
+
84
+ ```bash
85
+ uip insights jobs summary --time-range 1440 --output json
86
+ ```
87
+
88
+ **Key Data fields:** `jobsCount`, `successfulJobsCount`, `averageProcessingTime`
89
+
90
+ **Use when:** User asks "how are my automations doing?" or "what's my job success rate?"
91
+
92
+ ### completed-timeline
93
+
94
+ Get completed jobs over time, grouped by job state (successful, faulted, stopped, etc.).
95
+
96
+ ```bash
97
+ uip insights jobs completed-timeline --time-range 1440 --output json
98
+ ```
99
+
100
+ **Key Data fields:** `jobState`, `jobCountByTime`, `timestamp`
101
+
102
+ **Use when:** User asks "show me job completion trends" or "when do most jobs run?"
103
+
104
+ ### uncompleted-timeline
105
+
106
+ Get running and pending jobs over time.
107
+
108
+ ```bash
109
+ uip insights jobs uncompleted-timeline --time-range 1440 --output json
110
+ ```
111
+
112
+ **Key Data fields:** `jobState`, `jobCountByTime`, `timestamp`
113
+
114
+ **Use when:** User asks "are there stuck jobs?" or "how many jobs are still running?"
115
+
116
+ ### top-failures
117
+
118
+ Get processes ranked by failure count.
119
+
120
+ ```bash
121
+ uip insights jobs top-failures --time-range 43200 --output json
122
+ ```
123
+
124
+ **Key Data fields:** `processName`, `jobCountByTime`
125
+
126
+ **Use when:** User asks "which processes fail the most?" or "what's causing failures?"
127
+
128
+ ### failures-by-reason
129
+
130
+ Get job failures grouped by exception reason, with total job count for context.
131
+
132
+ ```bash
133
+ uip insights jobs failures-by-reason --time-range 1440 --output json
134
+ ```
135
+
136
+ **Key Data fields:** `processExceptionReason`, `processName`, `robotName`, `jobsCount`
137
+
138
+ **Use when:** User asks "why are jobs failing?" or "what are the common error messages?"
139
+
140
+ ### process-details
141
+
142
+ Get per-process job breakdown with counts by state.
143
+
144
+ ```bash
145
+ uip insights jobs process-details --time-range 1440 --output json
146
+ ```
147
+
148
+ **Key Data fields:** `processName`, `jobAggregate`
149
+
150
+ **Use when:** User asks "show me per-process stats" or "which process has the most faulted jobs?"
151
+
152
+ ### failure-details
153
+
154
+ Get detailed failure information for drill-down investigation.
155
+
156
+ ```bash
157
+ uip insights jobs failure-details --time-range 1440 --output json
158
+ ```
159
+
160
+ **Key Data fields:** `processName`, `machineName`, `processExceptionReason`, `startTime`, `endTime`
161
+
162
+ **Use when:** User asks "show me the details of recent failures" or "which machines are failing?"
163
+
164
+ ---
165
+
166
+ ## Workflow: Investigate Job Health
167
+
168
+ Follow this pattern when a user asks about automation health or job failures:
169
+
170
+ ```bash
171
+ # 1. Check login
172
+ uip login status --output json
173
+
174
+ # 2. Get the big picture — how many jobs ran? how many succeeded?
175
+ uip insights jobs summary --time-range 1440 --output json
176
+
177
+ # 3. If success rate is low, find which processes fail most
178
+ uip insights jobs top-failures --time-range 1440 --output json
179
+
180
+ # 4. Find out WHY they're failing
181
+ uip insights jobs failures-by-reason --time-range 1440 --output json
182
+
183
+ # 5. Drill into specific failure details
184
+ uip insights jobs failure-details --time-range 1440 --output json
185
+
186
+ # 6. For time-based trends, check timelines
187
+ uip insights jobs completed-timeline --time-range 10080 --output json
188
+ ```
189
+
190
+ **Present findings clearly:** After gathering data, summarize for the user:
191
+ - Total jobs vs successful jobs (derive failure rate)
192
+ - Top failing processes by name
193
+ - Most common failure reasons
194
+ - Which machines are affected
195
+ - Whether failures are trending up or down
196
+
197
+ ---
198
+
199
+ ## Workflow: Filter by Folder or Process
200
+
201
+ When the user asks about a specific folder or process:
202
+
203
+ ```bash
204
+ # Filter by folder
205
+ uip insights jobs summary --time-range 1440 --folder-key "abc-123-def" --output json
206
+
207
+ # Filter by process name
208
+ uip insights jobs top-failures --time-range 43200 --process-name "Invoice_Processing" --output json
209
+
210
+ # Combine filters
211
+ uip insights jobs failures-by-reason --time-range 1440 \
212
+ --folder-key "abc-123-def" \
213
+ --process-name "Invoice_Processing" \
214
+ --output json
215
+ ```
216
+
217
+ To discover available folder keys, use `uip or folders list --output json` (from the uipath-platform skill).
218
+
219
+ ---
220
+
221
+ ## Workflow: Absolute Time Range
222
+
223
+ When the user specifies an exact date range instead of "last N hours":
224
+
225
+ ```bash
226
+ # Convert dates to epoch milliseconds
227
+ # Example: 2026-07-01 00:00:00 UTC to 2026-07-06 00:00:00 UTC
228
+ uip insights jobs summary \
229
+ --started-after 1782691200000 \
230
+ --started-before 1783123200000 \
231
+ --output json
232
+ ```
233
+
234
+ Compute epoch milliseconds in bash:
235
+ ```bash
236
+ # macOS
237
+ START=$(date -j -f "%Y-%m-%d" "2026-07-01" +%s)000
238
+ END=$(date -j -f "%Y-%m-%d" "2026-07-06" +%s)000
239
+
240
+ # Linux
241
+ START=$(date -d "2026-07-01" +%s)000
242
+ END=$(date -d "2026-07-06" +%s)000
243
+
244
+ uip insights jobs summary --started-after "$START" --started-before "$END" --output json
245
+ ```
246
+
247
+ ---
248
+
249
+ ## Troubleshooting
250
+
251
+ | Error | Cause | Fix |
252
+ |-------|-------|-----|
253
+ | `Not logged in` | Auth expired | `uip login` |
254
+ | `time range is required` | Missing `--time-range` or `--started-after`/`--started-before` | Add `--time-range 1440` (or your preferred window) |
255
+ | `API request failed: 401` | Token doesn't have Insights access | Re-login; ensure the org has Insights enabled |
256
+ | `API request failed: 403` | User has no folder permissions | Check folder assignments in Orchestrator Admin |
257
+ | `API request failed: 500` | Server error (often missing time range on older deployments) | Ensure time range is provided in the request body |
258
+ | All Data fields are null/zero | No jobs ran in the given time window | Widen the `--time-range` (try 43200 for 30 days) |
259
+
260
+ ---
261
+
262
+ ## What NOT to Do
263
+
264
+ - **Don't call `uip insights jobs` without a time range.** The server returns a 500 with a misleading success-shaped response. Always pass `--time-range` or `--started-after`/`--started-before`.
265
+ - **Don't start, stop, or manage individual jobs.** This skill is for monitoring and analytics only. Use `uip or jobs start/stop` via uipath-platform to manage jobs.
266
+ - **Don't construct raw API calls to the Insights endpoint.** The CLI handles auth headers (`X-UiPath-Internal-AccountName`, `X-UiPath-Internal-TenantName`), URL construction, and error handling. Hand-rolling `curl` or `fetch` calls will miss these.
267
+ - **Don't retry on auth errors.** If `uip insights jobs` returns 401 or "Not logged in", the fix is `uip login`, not retrying the same command.
268
+ - **Don't use this skill for root-cause debugging.** "Why did job X fail with error Y?" is a troubleshooting question — hand off to uipath-troubleshoot. This skill answers "which processes fail the most and what are the common reasons."
269
+
270
+ ---
271
+
272
+ ## References
273
+
274
+ For deeper guidance, read these files only when needed:
275
+
276
+ - [`references/jobs-commands-guide.md`](references/jobs-commands-guide.md) — Full command reference with all options, response shapes, and example outputs
277
+ - [`references/investigation-playbook-guide.md`](references/investigation-playbook-guide.md) — Step-by-step playbooks for common investigation scenarios
@@ -0,0 +1,145 @@
1
+ # Insights — Investigation Playbooks
2
+
3
+ Step-by-step playbooks for common job monitoring scenarios. Each playbook shows the exact commands to run and how to interpret the results.
4
+
5
+ ## Playbook 1: "How healthy are my automations?"
6
+
7
+ User asks about overall automation health, success rates, or general status.
8
+
9
+ ```bash
10
+ # Step 1: Get the summary KPIs
11
+ uip insights jobs summary --time-range 1440 --output json
12
+
13
+ # Step 2: Interpret the results
14
+ # - jobsCount: total jobs in the time window
15
+ # - successfulJobsCount: jobs that completed successfully
16
+ # - averageProcessingTime: mean execution time in seconds
17
+ #
18
+ # Failure rate = (jobsCount - successfulJobsCount) / jobsCount * 100
19
+ #
20
+ # Thresholds (rules of thumb):
21
+ # < 5% failure rate → healthy
22
+ # 5-15% failure rate → needs attention
23
+ # > 15% failure rate → investigate immediately
24
+ ```
25
+
26
+ If the failure rate is concerning, move to Playbook 2.
27
+
28
+ ## Playbook 2: "Which processes are failing?"
29
+
30
+ User wants to know what's breaking.
31
+
32
+ ```bash
33
+ # Step 1: Get processes ranked by failure count (use 30 days for a broader view)
34
+ uip insights jobs top-failures --time-range 43200 --output json
35
+
36
+ # Step 2: Get the failure reasons
37
+ uip insights jobs failures-by-reason --time-range 43200 --output json
38
+
39
+ # Step 3: Present findings as a table:
40
+ # | Process Name | Failure Count | Top Reason |
41
+ # |---|---|---|
42
+ # | Invoice_Processing | 23 | ApplicationException: File not found |
43
+ # | Email_Parser | 15 | TimeoutException: SMTP server unreachable |
44
+ ```
45
+
46
+ ## Playbook 3: "Why did this specific process fail?"
47
+
48
+ User asks about failures in a specific process.
49
+
50
+ ```bash
51
+ # Step 1: Filter failures to that process
52
+ uip insights jobs failures-by-reason --time-range 1440 \
53
+ --process-name "Invoice_Processing" --output json
54
+
55
+ # Step 2: Get detailed failure info (machine, timestamps, error messages)
56
+ uip insights jobs failure-details --time-range 1440 \
57
+ --process-name "Invoice_Processing" --output json
58
+
59
+ # Step 3: Check if it's a recent regression with the timeline
60
+ uip insights jobs completed-timeline --time-range 10080 \
61
+ --process-name "Invoice_Processing" --output json
62
+
63
+ # Step 4: Present findings:
64
+ # - Most common error reason
65
+ # - Which machines are affected
66
+ # - When failures started (trend direction)
67
+ # - Recommended next steps
68
+ ```
69
+
70
+ ## Playbook 4: "Are there stuck or long-running jobs?"
71
+
72
+ User asks about jobs that haven't completed.
73
+
74
+ ```bash
75
+ # Step 1: Check uncompleted jobs
76
+ uip insights jobs uncompleted-timeline --time-range 1440 --output json
77
+
78
+ # Step 2: Get the summary to compare completed vs uncompleted
79
+ uip insights jobs summary --time-range 1440 --output json
80
+
81
+ # Step 3: If many uncompleted, check per-process breakdown
82
+ uip insights jobs process-details --time-range 1440 --output json
83
+ ```
84
+
85
+ ## Playbook 5: "Compare this week vs last week"
86
+
87
+ User wants to see if things are getting better or worse.
88
+
89
+ ```bash
90
+ # This week (last 7 days)
91
+ uip insights jobs summary --time-range 10080 --output json
92
+
93
+ # For last week, use absolute timestamps
94
+ # Calculate: last Monday to this Monday in epoch ms
95
+ uip insights jobs summary \
96
+ --started-after <last-monday-epoch-ms> \
97
+ --started-before <this-monday-epoch-ms> \
98
+ --output json
99
+
100
+ # Compare jobsCount, successfulJobsCount, and averageProcessingTime
101
+ # between the two results
102
+ ```
103
+
104
+ ## Playbook 6: "Show me jobs for a specific folder"
105
+
106
+ User asks about a specific Orchestrator folder.
107
+
108
+ ```bash
109
+ # Step 1: Find the folder key (requires uipath-platform)
110
+ uip or folders list --output json
111
+ # Look for the folder's Key (GUID) in the output
112
+
113
+ # Step 2: Query insights with folder filter
114
+ uip insights jobs summary --time-range 1440 \
115
+ --folder-key "abc-123-def" --output json
116
+
117
+ uip insights jobs top-failures --time-range 1440 \
118
+ --folder-key "abc-123-def" --output json
119
+ ```
120
+
121
+ ## Interpreting Array Data
122
+
123
+ Several endpoints return parallel arrays. The same index across arrays corresponds to the same entity:
124
+
125
+ ```json
126
+ {
127
+ "processName": ["ProcessA", "ProcessB", "ProcessC"],
128
+ "jobCountByTime": [[10, 5, 2]]
129
+ }
130
+ ```
131
+
132
+ This means:
133
+ - ProcessA had 10 failures
134
+ - ProcessB had 5 failures
135
+ - ProcessC had 2 failures
136
+
137
+ ## When to Hand Off to Other Skills
138
+
139
+ | Situation | Hand off to |
140
+ |---|---|
141
+ | User wants to start/stop/restart a specific job | `uipath-platform` (`uip or jobs start`) |
142
+ | User wants to read the logs of a failed job | `uipath-platform` (`uip or jobs logs`) |
143
+ | User wants to debug why a specific job error happened | `uipath-troubleshoot` |
144
+ | User wants to find a folder key to filter by | `uipath-platform` (`uip or folders list`) |
145
+ | User wants to fix the code that's causing failures | `uipath-rpa` or `uipath-agents` |
@@ -0,0 +1,144 @@
1
+ # Insights Jobs — Command Reference
2
+
3
+ Complete reference for `uip insights jobs` subcommands with response shapes and examples.
4
+
5
+ ## Shared Options
6
+
7
+ Every subcommand accepts these filter options:
8
+
9
+ ```
10
+ --time-range <minutes> Relative time range (e.g. 1440 = 24h, 43200 = 30d)
11
+ --started-after <epoch-ms> Absolute start time as Unix epoch milliseconds
12
+ --started-before <epoch-ms> Absolute end time as Unix epoch milliseconds
13
+ --folder-key <guid> Folder key filter (repeatable)
14
+ --process-name <name> Process name filter (repeatable)
15
+ --machine-name <name> Machine name filter (repeatable)
16
+ --timezone-offset <minutes> Client timezone offset from UTC
17
+ --output <format> Output format: json, yaml, table (always use json)
18
+ ```
19
+
20
+ **Time range rule:** Either `--time-range` OR both `--started-after` and `--started-before` must be provided. Omitting both causes a validation error.
21
+
22
+ **Repeatable options:** `--folder-key`, `--process-name`, and `--machine-name` can be specified multiple times:
23
+ ```bash
24
+ uip insights jobs summary --time-range 1440 \
25
+ --process-name "ProcessA" \
26
+ --process-name "ProcessB" \
27
+ --output json
28
+ ```
29
+
30
+ ## Response Envelope
31
+
32
+ All commands return:
33
+ ```json
34
+ {
35
+ "Result": "Success",
36
+ "Code": "<CommandCode>",
37
+ "Data": { ... }
38
+ }
39
+ ```
40
+
41
+ On error:
42
+ ```json
43
+ {
44
+ "Result": "Failure",
45
+ "Message": "<error description>",
46
+ "Instructions": "<how to fix>",
47
+ "ErrorCode": "unknown_error"
48
+ }
49
+ ```
50
+
51
+ ## Response Data Shape
52
+
53
+ All endpoints return the same `JobsResponse` shape. Fields are populated or null depending on the endpoint:
54
+
55
+ ```typescript
56
+ interface JobsResponse {
57
+ jobState: string[] | null;
58
+ robotName: string[] | null;
59
+ processName: string[] | null;
60
+ jobCount: number[] | null;
61
+ jobCountByTime: number[][] | null;
62
+ folderName: string[] | null;
63
+ folderKey: string[] | null;
64
+ machineName: string[] | null;
65
+ hostMachineName: string[] | null;
66
+ machineKey: string[] | null;
67
+ machineStatus: string[] | null;
68
+ timestamp: string[] | null;
69
+ processExceptionType: string[] | null;
70
+ processExceptionReason: string[] | null;
71
+ startTime: string[] | null;
72
+ endTime: string[] | null;
73
+ utilizationTime: string[] | null;
74
+ duration: number[] | null;
75
+ successRate: number[] | null;
76
+ averageProcessingTime: number | null;
77
+ jobsCount: number | null;
78
+ successfulJobsCount: number | null;
79
+ jobAggregate: number[][] | null;
80
+ creationTime: string[] | null;
81
+ folderId: string[] | null;
82
+ jobKey: string[] | null;
83
+ }
84
+ ```
85
+
86
+ ## Per-Endpoint Key Fields
87
+
88
+ | Endpoint | Code | Key Data Fields |
89
+ |----------|------|-----------------|
90
+ | `summary` | `InsightsJobsSummary` | `jobsCount`, `successfulJobsCount`, `averageProcessingTime` |
91
+ | `completed-timeline` | `InsightsJobsCompletedTimeline` | `jobState`, `jobCountByTime`, `timestamp` |
92
+ | `uncompleted-timeline` | `InsightsJobsUncompletedTimeline` | `jobState`, `jobCountByTime`, `timestamp` |
93
+ | `top-failures` | `InsightsJobsTopFailures` | `processName`, `jobCountByTime` |
94
+ | `failures-by-reason` | `InsightsJobsFailuresByReason` | `processExceptionReason`, `processName`, `robotName`, `jobsCount` |
95
+ | `process-details` | `InsightsJobsProcessDetails` | `processName`, `jobAggregate` |
96
+ | `failure-details` | `InsightsJobsFailureDetails` | `processName`, `machineName`, `processExceptionReason`, `startTime`, `endTime` |
97
+
98
+ ## Example: Summary
99
+
100
+ ```bash
101
+ $ uip insights jobs summary --time-range 1440 --output json
102
+ {
103
+ "Result": "Success",
104
+ "Code": "InsightsJobsSummary",
105
+ "Data": {
106
+ "jobsCount": 142,
107
+ "successfulJobsCount": 135,
108
+ "averageProcessingTime": 45.7,
109
+ "jobState": null,
110
+ "processName": null,
111
+ ...
112
+ }
113
+ }
114
+ ```
115
+
116
+ Deriving metrics:
117
+ - **Failure rate:** `(jobsCount - successfulJobsCount) / jobsCount * 100`
118
+ - **Success rate:** `successfulJobsCount / jobsCount * 100`
119
+
120
+ ## Example: Top Failures with Filter
121
+
122
+ ```bash
123
+ $ uip insights jobs top-failures --time-range 43200 \
124
+ --folder-key "a1b2c3d4-e5f6-7890-abcd-ef1234567890" \
125
+ --output json
126
+ {
127
+ "Result": "Success",
128
+ "Code": "InsightsJobsTopFailures",
129
+ "Data": {
130
+ "processName": ["Invoice_Processing", "Email_Parser", "Data_Upload"],
131
+ "jobCountByTime": [[23, 15, 8]],
132
+ ...
133
+ }
134
+ }
135
+ ```
136
+
137
+ The `processName` array and `jobCountByTime[0]` array are parallel — index 0 of both corresponds to the same process.
138
+
139
+ ## API Details
140
+
141
+ - **Base URL:** `{host}/{orgId}/{tenantName}/insightsrtm_/api/v1.0/InsightsJobs/{endpoint}`
142
+ - **Method:** POST (all endpoints)
143
+ - **Auth:** Bearer token + `X-UiPath-Internal-AccountName` + `X-UiPath-Internal-TenantName` headers
144
+ - **The CLI handles all of this.** Do not construct raw API calls — use `uip insights jobs <subcommand>`.
@@ -50,6 +50,8 @@ Do not answer these from this skill. Re-activate `uipath-maestro-flow` and follo
50
50
  13. **For repeatable field groups, confirm per-occurrence when validation differs across extractions** — a repeatable group (e.g. `Line Items`) produces one extraction per physical line/section. Plain `confirm --fields <id>` confirms `<id>` in **every** occurrence, so if only some lines are correct it confirms the wrong ones too. Each label in `get-predictions` carries an explicit 0-based `Occurrence` (repeated same-named labels appear in document order); if all occurrences are correct use the plain form, otherwise target with `--group`. `--group <name> --occurrence <N>` confirms **ONE** occurrence; `--group <name> --updates '[...]'` confirms **SEVERAL** in one atomic call (avoids N round-trips) — `--occurrence <N>` ≡ a single-entry `--updates`, same per-occurrence logic. `--group` must be the FULL label path from the `Name` field (e.g. `"Invoice > Line Items"`), not the leaf. Without `--fields`, every predicted field in the occurrence is confirmed; with it, only those. Occurrences not selected keep their existing annotation. Flag details: [CLI Reference](references/cli-reference.md#labellings).
51
51
  14. **`confirm` is additive — it never un-confirms.** The labelling endpoint is full-replacement, so `confirm`/`mark-missing` carry every existing annotation forward: `--occurrence 0` on an already-labelled table yields "row 0 confirmed AND everything previously confirmed stays confirmed" — NOT "only row 0". To roll back a confirmation, use `unconfirm` (see the task-navigation table).
52
52
  15. **F1 reflects confirmed labels, not document truth — never blind-confirm.** F1/`ProjectScore` measure prediction-vs-confirmed-label agreement, so a wrong value you confirm becomes the "right" answer and scores 1.00. A perfect score is **not** evidence the values are correct. Before confirming, sanity-check each value against the document. The per-document no-`--fields` form (confirm all predicted fields on one document) is fine once you've reviewed them all; never run `confirm` without a document-id — that confirms every document at once, bypassing review. See [Label Documents Guide](references/label-documents-guide.md) §2c.
53
+ 16. **Ambiguous entity reference → ask, never guess.** Projects (Titles), field groups, fields, and data types share one namespace in user speech ("rename subscriptions"). Before any mutation (`update-title`, `rename`, `delete`, `change-type`), resolve which entity KIND the user means. If the name matches more than one kind — in the user's own context or in `projects list` / taxonomy output — STOP and ask which one (project / group / field / data type). Do NOT pick one, and do NOT mutate several candidates "to cover all cases". When the user can't be asked interactively, surface the question through whatever channel the task provides and stop.
54
+ 17. **Reuse the built-in data types before adding new ones.** Every IXP project ships with default data types — `Exact Text`, `Inferred Text`, `Number`, `Date`, `Monetary Quantity`, `Boolean` (the project's `entity_defs` from `projects get-taxonomy` are the authoritative list). Before `data-types add` or picking a field's `--type`, reuse a matching default — e.g. `Monetary Quantity` for a currency amount, never a hand-rolled clone (`Currency Amount`). Add a new type only when no default covers it: a project-specific `Choice`, or a concept needing its own tailored extraction instructions. Never add one just to reformat — the pre-trained defaults keep their fixed output format regardless of instructions. Mapping: [CLI Reference § Default data types](references/cli-reference.md#default-data-types).
53
55
 
54
56
  ## Quick Start
55
57
 
@@ -79,8 +81,9 @@ If the user provides a taxonomy file, use `--skip-taxonomy` and `import-taxonomy
79
81
  | "Upload a document" / "Add documents to an existing project" | `uip ixp documents upload <project-name> <file> --output json` — see [CLI Reference § Uploading documents](references/cli-reference.md#uploading-documents-to-an-existing-project). One file per call; loop for multiple. For brand-new projects use `projects create` instead. |
80
82
  | "Delete a document" / "Remove a document" | `uip ixp documents delete <project-name> <document-id> -y --output json` — irreversible, triggers retrain. `-y/--yes` is required (the CLI never prompts). To delete by filename, look up the `DocumentId` via `documents list` (the `Filename` field shows the original upload name). |
81
83
  | "Add / delete / rename a field group" | `uip ixp groups {add,delete,rename} <project-name> --name <name> ... --output json` — see [CLI Reference § Groups](references/cli-reference.md#groups). `groups add` requires `--instructions` and `--fields '<json>'` — pass **all** of the new group's fields in that one `--fields` array (batch); do NOT create the group then add fields one at a time (use `fields add` only for an already-existing group). `delete` requires `-y/--yes` (the CLI never prompts). |
82
- | "Add / edit / rename / delete a data type" | `uip ixp data-types {add,update-instructions,rename,delete} <project-name> --name <name> ... --output json` — see [CLI Reference § Data Types](references/cli-reference.md#data-types). `add` requires `--kind` (text/date/money/number/boolean/choice) and `--instructions`. `--input-value` (exact-match/inferred) is required only for `--kind text` and `--kind choice`; the other kinds don't have this property and the CLI rejects the flag for them. `delete` requires `-y/--yes` (the CLI never prompts); deleting a data type breaks any field referencing it. |
84
+ | "Add / edit / rename / delete a data type" | `uip ixp data-types {add,update-instructions,rename,delete} <project-name> --name <name> ... --output json` — see [CLI Reference § Data Types](references/cli-reference.md#data-types). `add` requires `--kind` (text/date/money/number/boolean/choice) and `--instructions`. `--input-value` (exact-match/inferred) is required only for `--kind text` and `--kind choice`; the other kinds don't have this property and the CLI rejects the flag for them. `delete` requires `-y/--yes` (the CLI never prompts); deleting a data type breaks any field referencing it. **Reuse a default data type before adding a custom one (Critical Rule 17)** — most needs map to a built-in (e.g. currency → `Monetary Quantity`). |
83
85
  | "Add / delete / rename / retype a field" | `uip ixp fields {add,delete,rename,change-type} <project-name> --group <name> --field <name> ... --output json` — see [CLI Reference § Fields](references/cli-reference.md#fields). `delete` requires `-y/--yes`; `change-type` deletes annotations and also requires `-y/--yes`. |
86
+ | "Fix an OCR-garbled value" / "Confirm with a correction" | `uip ixp labellings confirm <project-name> <document-id> --fields <ids> --corrections '[{"field_id":"<id>","value":"<fixed>"}]' --output json` — confirms the listed fields and records the corrected value for the garbled one (include the corrected field's id in `--fields`). **`--corrections` is only for OCR garble** — the prediction is already the right answer in the right location, merely misread (e.g. `MSIÓÓÓ601020/` → `MSI0601020`); never use it to flip a wrong prediction, that field stays unannotated (Critical Rule 8). For one occurrence of a repeatable group add `--group <name> --occurrence <N>`; in the batched `--group <name> --updates '[…]'` form each entry takes `"corrections": {"<field_id>": "<value>"}` (an object keyed by field id, not the flat array). See [CLI Reference](references/cli-reference.md#labellings). |
84
87
  | "Mark a field as missing for a document" | `uip ixp labellings mark-missing <project-name> <document-id> --fields <ids> --output json` — marks the listed fields missing; use when a field is genuinely absent and IXP predicted no value for it. Listing the field in `labellings confirm --fields` records the same missing marker when the field appears in predictions with an empty value. **Only mark a field missing if IXP also predicted nothing for it** — never to override a wrong prediction. See Critical Rule 12. |
85
88
  | "Undo / unconfirm a wrong confirmation" | `uip ixp labellings unconfirm <project-name> <document-id> --fields <ids> --output json` — rolls back an earlier `confirm` or `mark-missing` for the listed fields (`confirm` can't un-confirm — Critical Rule 14). Every other annotation on the document is carried forward. With `--fields` alone, a field id shared across occurrences of a repeatable group is removed from **all** of them; to roll back specific occurrences, add `--group` with `--occurrence <N>` or `--updates '[…]'` (mirrors `confirm` — see the row below and Critical Rule 14). |
86
89
  | "Confirm one line item / extraction" / "Confirm only this occurrence" | `uip ixp labellings confirm <project-name> <document-id> --group <name> --occurrence <N> [--fields <ids>] --output json` — targets one specific extraction of a repeatable field group (0-based index). Without `--fields`, confirms every predicted field in that occurrence; with `--fields`, only those. Other occurrences untouched. For confirming multiple occurrences in one call, use `--updates '[…]'` instead. See Critical Rule 13. |
@@ -2,7 +2,7 @@
2
2
 
3
3
  All commands use `uip ixp` prefix. Always append `--output json` when parsing output programmatically.
4
4
 
5
- > **Destructive commands require `-y, --yes`.** Every irreversible `uip ixp` command (all `delete`s and `fields change-type`) gates on `-y/--yes`; the CLI never prompts. `--confirm-data-loss` is accepted but is a **deprecated no-op** — it does NOT satisfy the confirmation, so always pass `-y/--yes`.
5
+ > **Destructive commands require `-y, --yes`.** Every irreversible `uip ixp` command (all `delete`s and `fields change-type`) gates on `-y/--yes`; the CLI never prompts. Always pass `-y/--yes`.
6
6
 
7
7
  ## Projects
8
8
 
@@ -76,13 +76,28 @@ Manage the reusable type definitions (entity_defs) that fields reference via `fi
76
76
  | `uip ixp data-types rename <project-name> --name <name> --new-name <name> --output json` | Rename a data type. Existing field references (via `field_type_id`) stay intact. |
77
77
  | `uip ixp data-types delete <project-name> --name <name> -y --output json` | Delete a data type. **IRREVERSIBLE** — any field referencing it via `field_type_id` will break. `-y, --yes` is **required** (the CLI never prompts). |
78
78
 
79
+ ### Default data types
80
+
81
+ Every IXP project ships with the built-in data types below (the project's `entity_defs` from `projects get-taxonomy` are the authoritative list). **Before `data-types add`, or before choosing a field's `--type` (in `fields add` / `groups add`), check the existing `entity_defs` and reuse a matching default.** A redundant custom type (e.g. a `Currency Amount` when `Monetary Quantity` already exists) splits annotations across two types and forfeits the default's pre-trained model. Add a new data type only when it carries something no default does — a `Choice`, or a reusable concept that needs its own tailored extraction instructions — not as a clone of a default.
82
+
83
+ | Default type | `--kind` | `--input-value` | Reuse for |
84
+ |--------------|----------|-----------------|-----------|
85
+ | `Exact Text` | `text` | `exact-match` | Text copied verbatim from the document — names, IDs, addresses, codes |
86
+ | `Inferred Text` | `text` | `inferred` | Text derived/computed, not appearing verbatim in the document |
87
+ | `Number` | `number` | — | Counts, quantities, plain numbers |
88
+ | `Date` | `date` | — | Dates |
89
+ | `Monetary Quantity` | `money` | — | Any currency / monetary amount — total, subtotal, tax, unit price, freight |
90
+ | `Boolean` | `boolean` | — | True / false values |
91
+
92
+ `Date`, `Number`, and `Monetary Quantity` carry pre-trained models with a fixed output format (e.g. `Monetary Quantity` normalises `"1M USD"`, `"USD 1000000"`, and `"1,000,000 usd"` all to `1,000,000.00 USD`) — instructions cannot change their formatting, so a hand-rolled equivalent is strictly worse. `Choice` is the only `--kind` with no default: choice types are always project-specific (`data-types add --kind choice --choices …`).
93
+
79
94
  ## Groups
80
95
 
81
96
  Manage field groups (label_defs) — the document type containers for fields. To edit fields **inside** an existing group, use the `fields` subject below.
82
97
 
83
98
  | Command | Description |
84
99
  |---------|-------------|
85
- | `uip ixp groups add <project-name> --name <group-name> --instructions <text> --fields <json> --output json` | Create a new field group with its fields. `--instructions` describes what document/section the group covers (the model sees it during extraction). `--fields` is a JSON array `[{"name":"...","type":"<type-name>","instructions":"..."}]` — **put ALL of the new group's fields in this one array (batch); do NOT create the group then add its fields one at a time.** Every entry must include `name`, `type`, and a non-empty `instructions`. `type` resolves against the project's `entity_defs`. To add a field to an **already-existing** group, use `fields add` instead. |
100
+ | `uip ixp groups add <project-name> --name <group-name> --instructions <text> --fields <json> --output json` | Create a new field group with its fields. `--instructions` describes what document/section the group covers (the model sees it during extraction). `--fields` is a JSON array `[{"name":"...","type":"<type-name>","instructions":"..."}]` — **put ALL of the new group's fields in this one array (batch); do NOT create the group then add its fields one at a time.** Every entry must include `name`, `type`, and a non-empty `instructions`. `type` resolves against the project's `entity_defs` — reuse a [default data type](#default-data-types) before inventing a new one. To add a field to an **already-existing** group, use `fields add` instead. |
86
101
  | `uip ixp groups delete <project-name> --name <group-name> -y --output json` | Delete a field group. **IRREVERSIBLE** — deletes all annotations on all fields in the group. `-y, --yes` is **required** (the CLI never prompts). |
87
102
  | `uip ixp groups rename <project-name> --name <group-name> --new-name <name> --output json` | Rename a field group. Preserves all fields and annotations. |
88
103
  | `uip ixp groups update-prompts <project-name> --updates <json> --output json` | Bulk-update field group (label_def) instructions. `--updates` is a JSON array `[{"name":"<group>","instructions":"..."}]` matched by group name. Existing fields are preserved. Unmatched names are reported in the response without failing the command. |
@@ -93,7 +108,7 @@ Structural edits to a field within an existing field group. For instruction-only
93
108
 
94
109
  | Command | Description |
95
110
  |---------|-------------|
96
- | `uip ixp fields add <project-name> --group <field-group-name> --field <name> --type <type-name> --instructions <text> --output json` | Add a new field to an **existing** field group. `--type` is the name of an entity_def in the project's taxonomy (see `projects get-taxonomy`). `--instructions` is required — describe what to extract and where it appears. |
111
+ | `uip ixp fields add <project-name> --group <field-group-name> --field <name> --type <type-name> --instructions <text> --output json` | Add a new field to an **existing** field group. `--type` is the name of an entity_def in the project's taxonomy (see `projects get-taxonomy`) — reuse a [default data type](#default-data-types) (e.g. `Monetary Quantity` for a currency amount) before adding a custom one. `--instructions` is required — describe what to extract and where it appears. |
97
112
  | `uip ixp fields delete <project-name> --group <field-group-name> --field <name> -y --output json` | Remove a field from a field group. `-y, --yes` is **required** (the CLI never prompts). |
98
113
  | `uip ixp fields rename <project-name> --group <field-group-name> --field <name> --new-name <name> --output json` | Rename a field. Preserves `field_id` and existing annotations. |
99
114
  | `uip ixp fields change-type <project-name> --group <field-group-name> --field <name> --type <type-name> -y --output json` | Change a field's type. **IRREVERSIBLE** — the server creates a new field under the hood, so all existing annotations for that field are deleted. `-y, --yes` is **required** (the CLI never prompts). |
@@ -25,6 +25,8 @@ particular, there is **no** `uip maestro bpmn validate` command — see
25
25
  [Validation](structural-bpmn.md#validation). Validation is done with the bundled
26
26
  offline validator, not a CLI.
27
27
 
28
+ > **Don't conclude "it doesn't exist" from truncated discovery output.** A row past a cutoff reads exactly like a missing row. Two cutoffs bite here: `registry list` defaults to **30** — pass `--limit -1` for the full set — and piping `registry search`/`is connections list` through `head`/`tail`/`grep -m`/a pager drops everything past the cap. To check existence, narrow the query (keyword to `registry search`, `--all-folders` to connection lists) rather than capping rows; cap only data already known complete.
29
+
28
30
  ## Output parsing
29
31
 
30
32
  Whenever a CLI result is parsed programmatically, pass `--output json`. If a