@uipath/skills 1.204.0 → 1.204.1-preview.1519
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/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/.cursor-plugin/plugin.json +1 -1
- package/CODEOWNERS +12 -14
- package/package.json +1 -1
- package/skills/uipath-agents/references/coded/embedding-in-flows.md +1 -3
- package/skills/uipath-agents/references/coded/quickstart.md +0 -2
- package/skills/uipath-agents/references/lowcode/capabilities/inline-in-flow/inline-in-flow.md +10 -8
- package/skills/uipath-agents/references/lowcode/prompting/autonomous-agent-prompting-guide.md +1 -1
- package/skills/uipath-human-in-the-loop/SKILL.md +1 -3
- package/skills/uipath-human-in-the-loop/references/hitl-node-apptask.md +0 -2
- package/skills/uipath-human-in-the-loop/references/hitl-node-coded-action-app.md +0 -2
- package/skills/uipath-human-in-the-loop/references/hitl-node-quickform.md +2 -2
- package/skills/uipath-maestro-flow/.maintenance/README.md +265 -0
- package/skills/uipath-maestro-flow/.maintenance/check-all.sh +40 -0
- package/skills/uipath-maestro-flow/.maintenance/check-anchors.sh +101 -0
- package/skills/uipath-maestro-flow/.maintenance/check-depth.sh +132 -0
- package/skills/uipath-maestro-flow/.maintenance/check-link-text.sh +123 -0
- package/skills/uipath-maestro-flow/.maintenance/check-links.sh +73 -0
- package/skills/uipath-maestro-flow/.maintenance/check-orphans.sh +93 -0
- package/skills/uipath-maestro-flow/.maintenance/check-plugin-pairs.sh +39 -0
- package/skills/uipath-maestro-flow/.maintenance/check-template.sh +42 -0
- package/skills/uipath-maestro-flow/.maintenance/check-uip-commands.sh +270 -0
- package/skills/uipath-maestro-flow/.maintenance/check-versions.sh +160 -0
- package/skills/uipath-maestro-flow/SKILL.md +69 -886
- package/skills/uipath-maestro-flow/references/author/CAPABILITY.md +207 -0
- package/skills/uipath-maestro-flow/references/author/brownfield.md +91 -0
- package/skills/uipath-maestro-flow/references/author/editing-operations-cli.md +190 -0
- package/skills/uipath-maestro-flow/references/author/editing-operations-json.md +374 -0
- package/skills/uipath-maestro-flow/references/author/editing-operations.md +104 -0
- package/skills/uipath-maestro-flow/references/author/greenfield.md +420 -0
- package/skills/uipath-maestro-flow/references/author/planning-arch.md +364 -0
- package/skills/uipath-maestro-flow/references/author/planning-impl.md +291 -0
- package/skills/uipath-maestro-flow/references/author/plugins/agent/impl.md +237 -0
- package/skills/uipath-maestro-flow/references/author/plugins/agent/planning.md +97 -0
- package/skills/uipath-maestro-flow/references/author/plugins/agentic-process/impl.md +107 -0
- package/skills/uipath-maestro-flow/references/author/plugins/agentic-process/planning.md +61 -0
- package/skills/uipath-maestro-flow/references/author/plugins/api-workflow/impl.md +108 -0
- package/skills/uipath-maestro-flow/references/author/plugins/api-workflow/planning.md +60 -0
- package/skills/uipath-maestro-flow/references/author/plugins/batch-transform/impl.md +171 -0
- package/skills/uipath-maestro-flow/references/author/plugins/batch-transform/planning.md +72 -0
- package/skills/uipath-maestro-flow/references/author/plugins/connector/impl-inline.md +120 -0
- package/skills/uipath-maestro-flow/references/author/plugins/connector/impl.md +463 -0
- package/skills/uipath-maestro-flow/references/author/plugins/connector/planning.md +186 -0
- package/skills/uipath-maestro-flow/references/author/plugins/connector-trigger/impl.md +517 -0
- package/skills/uipath-maestro-flow/references/author/plugins/connector-trigger/planning.md +115 -0
- package/skills/uipath-maestro-flow/references/author/plugins/conversational-agent/impl.md +309 -0
- package/skills/uipath-maestro-flow/references/author/plugins/conversational-agent/planning.md +133 -0
- package/skills/uipath-maestro-flow/references/author/plugins/data-fabric/impl.md +428 -0
- package/skills/uipath-maestro-flow/references/author/plugins/data-fabric/planning.md +188 -0
- package/skills/uipath-maestro-flow/references/author/plugins/decision/impl.md +83 -0
- package/skills/uipath-maestro-flow/references/author/plugins/decision/planning.md +38 -0
- package/skills/uipath-maestro-flow/references/author/plugins/delay/impl.md +38 -0
- package/skills/uipath-maestro-flow/references/author/plugins/delay/planning.md +53 -0
- package/skills/uipath-maestro-flow/references/author/plugins/end/impl.md +56 -0
- package/skills/uipath-maestro-flow/references/author/plugins/end/planning.md +28 -0
- package/skills/uipath-maestro-flow/references/author/plugins/flow/impl.md +107 -0
- package/skills/uipath-maestro-flow/references/author/plugins/flow/planning.md +58 -0
- package/skills/uipath-maestro-flow/references/author/plugins/hitl/impl.md +181 -0
- package/skills/uipath-maestro-flow/references/author/plugins/hitl/planning.md +166 -0
- package/skills/uipath-maestro-flow/references/author/plugins/http/impl-connector.md +86 -0
- package/skills/uipath-maestro-flow/references/author/plugins/http/impl-manual.md +68 -0
- package/skills/uipath-maestro-flow/references/author/plugins/http/impl.md +173 -0
- package/skills/uipath-maestro-flow/references/author/plugins/http/planning.md +107 -0
- package/skills/uipath-maestro-flow/references/author/plugins/inline-agent/impl.md +540 -0
- package/skills/uipath-maestro-flow/references/author/plugins/inline-agent/planning.md +115 -0
- package/skills/uipath-maestro-flow/references/author/plugins/inline-voice-agent/impl.md +269 -0
- package/skills/uipath-maestro-flow/references/author/plugins/inline-voice-agent/planning.md +128 -0
- package/skills/uipath-maestro-flow/references/author/plugins/ixp/impl.md +424 -0
- package/skills/uipath-maestro-flow/references/author/plugins/ixp/planning.md +95 -0
- package/skills/uipath-maestro-flow/references/author/plugins/loop/impl.md +403 -0
- package/skills/uipath-maestro-flow/references/author/plugins/loop/planning.md +60 -0
- package/skills/uipath-maestro-flow/references/author/plugins/merge/impl.md +43 -0
- package/skills/uipath-maestro-flow/references/author/plugins/merge/planning.md +24 -0
- package/skills/uipath-maestro-flow/references/author/plugins/queue/impl.md +82 -0
- package/skills/uipath-maestro-flow/references/author/plugins/queue/planning.md +44 -0
- package/skills/uipath-maestro-flow/references/author/plugins/rpa/impl.md +117 -0
- package/skills/uipath-maestro-flow/references/author/plugins/rpa/planning.md +61 -0
- package/skills/uipath-maestro-flow/references/author/plugins/scheduled-trigger/impl.md +56 -0
- package/skills/uipath-maestro-flow/references/author/plugins/scheduled-trigger/planning.md +93 -0
- package/skills/uipath-maestro-flow/references/author/plugins/script/impl.md +98 -0
- package/skills/uipath-maestro-flow/references/author/plugins/script/planning.md +42 -0
- package/skills/uipath-maestro-flow/references/author/plugins/subflow/impl.md +164 -0
- package/skills/uipath-maestro-flow/references/author/plugins/subflow/planning.md +35 -0
- package/skills/uipath-maestro-flow/references/author/plugins/summarize/impl.md +189 -0
- package/skills/uipath-maestro-flow/references/author/plugins/summarize/planning.md +66 -0
- package/skills/uipath-maestro-flow/references/author/plugins/switch/impl.md +72 -0
- package/skills/uipath-maestro-flow/references/author/plugins/switch/planning.md +34 -0
- package/skills/uipath-maestro-flow/references/author/plugins/terminate/impl.md +48 -0
- package/skills/uipath-maestro-flow/references/author/plugins/terminate/planning.md +29 -0
- package/skills/uipath-maestro-flow/references/author/plugins/transform/impl.md +252 -0
- package/skills/uipath-maestro-flow/references/author/plugins/transform/planning.md +47 -0
- package/skills/uipath-maestro-flow/references/diagnose/CAPABILITY.md +73 -0
- package/skills/uipath-maestro-flow/references/diagnose/failure-modes.md +353 -0
- package/skills/uipath-maestro-flow/references/diagnose/troubleshooting-guide.md +174 -0
- package/skills/uipath-maestro-flow/references/evaluate/CAPABILITY.md +134 -0
- package/skills/uipath-maestro-flow/references/evaluate/commands-reference.md +376 -0
- package/skills/uipath-maestro-flow/references/evaluate/eval-sets-guide.md +227 -0
- package/skills/uipath-maestro-flow/references/evaluate/evaluators-guide.md +143 -0
- package/skills/uipath-maestro-flow/references/evaluate/running-guide.md +215 -0
- package/skills/uipath-maestro-flow/references/evaluate/upload-safety.md +94 -0
- package/skills/uipath-maestro-flow/references/operate/CAPABILITY.md +77 -0
- package/skills/uipath-maestro-flow/references/operate/manage.md +39 -0
- package/skills/uipath-maestro-flow/references/operate/run.md +121 -0
- package/skills/uipath-maestro-flow/references/operate/ship.md +57 -0
- package/skills/uipath-maestro-flow/references/shared/action-nodes.md +100 -0
- package/skills/uipath-maestro-flow/references/shared/cli-commands.md +269 -0
- package/skills/uipath-maestro-flow/references/shared/cli-conventions.md +178 -0
- package/skills/uipath-maestro-flow/references/shared/file-format.md +582 -0
- package/skills/uipath-maestro-flow/references/shared/node-output-wiring.md +86 -0
- package/skills/uipath-maestro-flow/references/shared/ux-narration-and-todos.md +113 -0
- package/skills/uipath-maestro-flow/references/shared/variables-and-expressions.md +787 -0
- package/skills/uipath-platform/references/integration-service/activities.md +2 -2
- package/skills/uipath-platform/references/integration-service/activity-generation.md +8 -1
- package/skills/uipath-platform/references/integration-service/triggers.md +1 -3
- package/skills/uipath-rpa/SKILL.md +1 -0
- package/skills/uipath-rpa/references/remote-session-guide.md +348 -0
- package/version-manifest.json +1 -1
- package/skills/uipath-maestro-flow/examples/AquariumSafetyStop.flow.ts +0 -26
- package/skills/uipath-maestro-flow/examples/ArchiveCardExtract.flow.ts +0 -38
- package/skills/uipath-maestro-flow/examples/BakeOffEntryForm.flow.ts +0 -27
- package/skills/uipath-maestro-flow/examples/BeeHiveLedger.flow.ts +0 -61
- package/skills/uipath-maestro-flow/examples/BeltProgression.flow.ts +0 -53
- package/skills/uipath-maestro-flow/examples/BirdCountLookup.flow.ts +0 -24
- package/skills/uipath-maestro-flow/examples/ClubDirectory.flow.ts +0 -56
- package/skills/uipath-maestro-flow/examples/ConcertSoundcheck.flow.ts +0 -59
- package/skills/uipath-maestro-flow/examples/DoorbellLog.flow.ts +0 -45
- package/skills/uipath-maestro-flow/examples/FestivalMapScaffold.flow.ts +0 -22
- package/skills/uipath-maestro-flow/examples/FieldTripQuickForm.flow.ts +0 -45
- package/skills/uipath-maestro-flow/examples/FossilCatalogEnrich.flow.ts +0 -26
- package/skills/uipath-maestro-flow/examples/GallerySubmission.flow.ts +0 -67
- package/skills/uipath-maestro-flow/examples/GreenhouseWatering.flow.ts +0 -39
- package/skills/uipath-maestro-flow/examples/HarbourRadioLine.flow.ts +0 -31
- package/skills/uipath-maestro-flow/examples/HerbariumDispatch.flow.ts +0 -34
- package/skills/uipath-maestro-flow/examples/KilnReview.flow.ts +0 -38
- package/skills/uipath-maestro-flow/examples/LibraryDeskChat.flow.ts +0 -39
- package/skills/uipath-maestro-flow/examples/LighthouseSignal.flow.ts +0 -30
- package/skills/uipath-maestro-flow/examples/MeteorShowerPages.flow.ts +0 -39
- package/skills/uipath-maestro-flow/examples/NeighborhoodWalkPlanner.flow.ts +0 -27
- package/skills/uipath-maestro-flow/examples/ObservatorySeeing.flow.ts +0 -51
- package/skills/uipath-maestro-flow/examples/OralHistoryDigest.flow.ts +0 -31
- package/skills/uipath-maestro-flow/examples/PlanetariumConfirmation.flow.ts +0 -34
- package/skills/uipath-maestro-flow/examples/PlantNameAdvisor.flow.ts +0 -28
- package/skills/uipath-maestro-flow/examples/PostcardCaption.flow.ts +0 -44
- package/skills/uipath-maestro-flow/examples/PotteryStudioCallback.flow.ts +0 -41
- package/skills/uipath-maestro-flow/examples/RecipeScaler.flow.ts +0 -62
- package/skills/uipath-maestro-flow/examples/SeedPacketReader.flow.ts +0 -49
- package/skills/uipath-maestro-flow/examples/TideTableConverter.flow.ts +0 -35
- package/skills/uipath-maestro-flow/examples/TrailLogSummary.flow.ts +0 -75
- package/skills/uipath-maestro-flow/examples/WorkshopInventory.flow.ts +0 -27
- package/skills/uipath-maestro-flow/examples/bindings.json +0 -85
- package/skills/uipath-maestro-flow/references/CLI-LOOP.md +0 -309
- package/skills/uipath-maestro-flow/references/agent-resources.md +0 -74
- package/skills/uipath-maestro-flow/references/agent.md +0 -175
- package/skills/uipath-maestro-flow/references/agentic-process.md +0 -41
- package/skills/uipath-maestro-flow/references/api-workflow.md +0 -29
- package/skills/uipath-maestro-flow/references/author.md +0 -178
- package/skills/uipath-maestro-flow/references/batch-transform.md +0 -23
- package/skills/uipath-maestro-flow/references/bindings.md +0 -178
- package/skills/uipath-maestro-flow/references/branch.md +0 -18
- package/skills/uipath-maestro-flow/references/brownfield.md +0 -152
- package/skills/uipath-maestro-flow/references/connector-params.md +0 -624
- package/skills/uipath-maestro-flow/references/conversational.md +0 -77
- package/skills/uipath-maestro-flow/references/data-fabric.md +0 -268
- package/skills/uipath-maestro-flow/references/delay.md +0 -26
- package/skills/uipath-maestro-flow/references/diagnose.md +0 -141
- package/skills/uipath-maestro-flow/references/document-pipeline.md +0 -47
- package/skills/uipath-maestro-flow/references/error-handling.md +0 -75
- package/skills/uipath-maestro-flow/references/evaluate.md +0 -168
- package/skills/uipath-maestro-flow/references/event-trigger.md +0 -155
- package/skills/uipath-maestro-flow/references/form-trigger.md +0 -41
- package/skills/uipath-maestro-flow/references/hitl.md +0 -169
- package/skills/uipath-maestro-flow/references/http.md +0 -105
- package/skills/uipath-maestro-flow/references/inline-agent.md +0 -132
- package/skills/uipath-maestro-flow/references/ixp.md +0 -167
- package/skills/uipath-maestro-flow/references/loops.md +0 -77
- package/skills/uipath-maestro-flow/references/manual-trigger.md +0 -39
- package/skills/uipath-maestro-flow/references/operate.md +0 -204
- package/skills/uipath-maestro-flow/references/or-processes.md +0 -91
- package/skills/uipath-maestro-flow/references/parallel-merge.md +0 -21
- package/skills/uipath-maestro-flow/references/placeholder.md +0 -70
- package/skills/uipath-maestro-flow/references/published-function.md +0 -66
- package/skills/uipath-maestro-flow/references/queue.md +0 -53
- package/skills/uipath-maestro-flow/references/return.md +0 -20
- package/skills/uipath-maestro-flow/references/rpa-workflow.md +0 -27
- package/skills/uipath-maestro-flow/references/scheduled-trigger.md +0 -34
- package/skills/uipath-maestro-flow/references/script.md +0 -52
- package/skills/uipath-maestro-flow/references/subflow.md +0 -33
- package/skills/uipath-maestro-flow/references/summarize.md +0 -20
- package/skills/uipath-maestro-flow/references/switch.md +0 -20
- package/skills/uipath-maestro-flow/references/terminate.md +0 -22
- package/skills/uipath-maestro-flow/references/transform.md +0 -32
- package/skills/uipath-maestro-flow/references/voice.md +0 -70
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"name": "uipath",
|
|
10
10
|
"source": "./",
|
|
11
11
|
"description": "UiPath plugin for Claude Code — custom skills, agents, hooks, and MCP servers for UiPath workflows, UI automation, UI testing and UiPath troubleshoot",
|
|
12
|
-
"version": "1.204.
|
|
12
|
+
"version": "1.204.1",
|
|
13
13
|
"author": {
|
|
14
14
|
"name": "UiPath"
|
|
15
15
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "uipath",
|
|
3
|
-
"version": "1.204.
|
|
3
|
+
"version": "1.204.1",
|
|
4
4
|
"description": "UiPath plugin for Claude Code — custom skills, agents, hooks, and MCP servers for UiPath RPA workflows, UI automation, UI testing, Python coded agents and UiPath troubleshoot",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "UiPath"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "uipath",
|
|
3
3
|
"displayName": "UiPath",
|
|
4
|
-
"version": "1.204.
|
|
4
|
+
"version": "1.204.1",
|
|
5
5
|
"description": "UiPath plugin for Cursor — skills for building, running, testing, and deploying UiPath automations, agents, coded apps, and platform operations.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "UiPath",
|
package/CODEOWNERS
CHANGED
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
/skill-flavors/studioweb/ @astridstaicu
|
|
22
22
|
|
|
23
23
|
# preview skills
|
|
24
|
+
/preview/skills/uipath-maestro-flow/ @UiPath/maestro-cli-team
|
|
24
25
|
/preview/skills/uipath-maestro-case/ @dmetzgar @tmatup
|
|
25
26
|
/preview/skills/uipath-maestro-bpmn/ @UiPath/maestro-cli-team
|
|
26
27
|
|
|
@@ -117,15 +118,12 @@
|
|
|
117
118
|
|
|
118
119
|
# Flow skill
|
|
119
120
|
/skills/uipath-maestro-flow/ @chandusailella @mukundbayyaram @UiPath/maestro-cli-team
|
|
120
|
-
# Previous Flow generation (JSON authoring), kept only because the Studio Web
|
|
121
|
-
# flavor pins it (skill-flavors/studioweb/uipath-maestro-flow/.canonical).
|
|
122
|
-
/classic/skills/uipath-maestro-flow/ @chandusailella @mukundbayyaram @UiPath/maestro-cli-team @astridstaicu
|
|
123
121
|
# Flow test tasks (general) — more specific subfolder rules below override this
|
|
124
122
|
/tests/tasks/uipath-maestro-flow/ @UiPath/maestro-cli-team
|
|
125
123
|
|
|
126
124
|
# Context grounding team — flow plugins (Summarize/Batch Transform) + tasks
|
|
127
|
-
/skills/uipath-maestro-flow/references/summarize
|
|
128
|
-
/skills/uipath-maestro-flow/references/batch-transform
|
|
125
|
+
/skills/uipath-maestro-flow/references/author/plugins/summarize/ @gcuip @JeremyReist2 @cfauchere @CalebMartinUiPath @jordan-uipath @eteodorovici @pateljay43 @swathiJayav @UiPath/maestro-cli-team
|
|
126
|
+
/skills/uipath-maestro-flow/references/author/plugins/batch-transform/ @gcuip @JeremyReist2 @cfauchere @CalebMartinUiPath @jordan-uipath @eteodorovici @pateljay43 @swathiJayav @UiPath/maestro-cli-team
|
|
129
127
|
/tests/tasks/uipath-maestro-flow/context-grounding/ @gcuip @JeremyReist2 @cfauchere @CalebMartinUiPath @jordan-uipath @eteodorovici @pateljay43 @swathiJayav @UiPath/maestro-cli-team
|
|
130
128
|
|
|
131
129
|
# Maestro BPMN skill
|
|
@@ -157,13 +155,13 @@
|
|
|
157
155
|
/tests/tasks/uipath-connector-builder/ @mukeshkumar-uipath @chandusailella @apoosarla-uipath
|
|
158
156
|
/tests/tasks/activation/uipath-connector-builder.jsonl @mukeshkumar-uipath @chandusailella @apoosarla-uipath
|
|
159
157
|
|
|
160
|
-
# Flow skill —
|
|
158
|
+
# Flow skill — plugin guides (away team owned)
|
|
161
159
|
# Add your team here when contributing a new plugin category
|
|
162
|
-
/skills/uipath-maestro-flow/references/connector
|
|
163
|
-
/skills/uipath-maestro-flow/references/
|
|
164
|
-
/skills/uipath-maestro-flow/references/agent
|
|
165
|
-
/skills/uipath-maestro-flow/references/inline-agent
|
|
166
|
-
/skills/uipath-maestro-flow/references/data-fabric
|
|
160
|
+
/skills/uipath-maestro-flow/references/author/plugins/connector/ @chandusailella @UiPath/maestro-cli-team
|
|
161
|
+
/skills/uipath-maestro-flow/references/author/plugins/connector-trigger/ @chandusailella @UiPath/maestro-cli-team
|
|
162
|
+
/skills/uipath-maestro-flow/references/author/plugins/agent/ @UiPath/team-coded-agents @AlexandruCGhimisi @andreibalas-uipath @al3xanndru @UiPath/maestro-cli-team
|
|
163
|
+
/skills/uipath-maestro-flow/references/author/plugins/inline-agent/ @AlexandruCGhimisi @andreibalas-uipath @al3xanndru @UiPath/maestro-cli-team
|
|
164
|
+
/skills/uipath-maestro-flow/references/author/plugins/data-fabric/ @UiPath/DatafabricCodingAgent @UiPath/maestro-cli-team
|
|
167
165
|
/tests/tasks/uipath-maestro-flow/connector_features/ @chandusailella @mukundbayyaram @UiPath/maestro-cli-team
|
|
168
166
|
/tests/tasks/uipath-maestro-flow/connector_features/datafabric_connector @UiPath/DatafabricCodingAgent @UiPath/maestro-cli-team
|
|
169
167
|
# Checkers relocated to _shared/ during the host-path-removal migration (test: d61fa9d52) —
|
|
@@ -172,15 +170,15 @@
|
|
|
172
170
|
/tests/tasks/uipath-maestro-flow/_shared/check_generic_dynamic_node.py @chandusailella @mukundbayyaram @UiPath/maestro-cli-team
|
|
173
171
|
|
|
174
172
|
# IXP
|
|
175
|
-
/skills/uipath-maestro-flow/references/ixp
|
|
173
|
+
/skills/uipath-maestro-flow/references/author/plugins/ixp/ @UiPath/communications-mining @constantinmuraru @vlad-crisan @UiPath/maestro-cli-team
|
|
176
174
|
/tests/tasks/uipath-maestro-flow/ixp/ @UiPath/communications-mining @constantinmuraru @vlad-crisan @UiPath/maestro-cli-team
|
|
177
175
|
|
|
178
176
|
# Chat — inline conversational agent node + the conversation trigger and message nodes
|
|
179
|
-
/skills/uipath-maestro-flow/references/conversational
|
|
177
|
+
/skills/uipath-maestro-flow/references/author/plugins/conversational-agent/ @UiPath/jarvis @UiPath/maestro-cli-team
|
|
180
178
|
/tests/tasks/uipath-maestro-flow/conversational/ @UiPath/jarvis @UiPath/maestro-cli-team
|
|
181
179
|
|
|
182
180
|
# Voice — inline voice agent node + the trigger, dial, and end-call nodes
|
|
183
|
-
/skills/uipath-maestro-flow/references/voice
|
|
181
|
+
/skills/uipath-maestro-flow/references/author/plugins/inline-voice-agent/ @UiPath/jarvis @UiPath/maestro-cli-team
|
|
184
182
|
/tests/tasks/uipath-maestro-flow/voice/ @UiPath/jarvis @UiPath/maestro-cli-team
|
|
185
183
|
|
|
186
184
|
# Review skill
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uipath/skills",
|
|
3
|
-
"version": "1.204.
|
|
3
|
+
"version": "1.204.1-preview.1519",
|
|
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"
|
|
@@ -4,8 +4,6 @@ A coded agent can live as a sibling folder to a flow project inside the same sol
|
|
|
4
4
|
|
|
5
5
|
For the published-agent path (deployed standalone via `uip codedagent deploy`), see [coded/flow-integration.md § Pattern 2](flow-integration.md#pattern-2-published-coded-agent).
|
|
6
6
|
|
|
7
|
-
**Builder-SDK Flow projects (`.flow.ts`) — the default:** call the coded agent with an `agent({...})` step in `<Name>.flow.ts` — see [agent.md](../../../uipath-maestro-flow/references/agent.md). `compile` emits the node, definition and bindings; the JSON in this file applies to a JSON-authored `.flow`.
|
|
8
|
-
|
|
9
7
|
## Sibling Folder Structure
|
|
10
8
|
|
|
11
9
|
The `<resourceKey>` is the local UUID minted by `uip solution projects add` — stable the moment the agent joins the solution.
|
|
@@ -116,4 +114,4 @@ One `inputs.<field>` entry per property in the agent's input schema (`entry-poin
|
|
|
116
114
|
|
|
117
115
|
NEVER a plain `"=js:..."` string value — it ships as a literal string to the agent activity and fails at runtime with `Cannot find name '<identifier>'`. Complete worked example (trigger → agent → end): uipath-maestro-flow skill, agent-plugin reference § Wiring Inputs.
|
|
118
116
|
|
|
119
|
-
Input-only rule.
|
|
117
|
+
Input-only rule. Mapping the agent's output back to a flow-level global on an End node DOES use `=js:` — see [variables-and-expressions.md § Variable Updates](../../../uipath-maestro-flow/references/shared/variables-and-expressions.md#variable-updates-variableupdates).
|
|
@@ -298,8 +298,6 @@ Execute the following in order, end-to-end, in one pass — do not pause for con
|
|
|
298
298
|
|
|
299
299
|
The second command's `Data.Node` object is what gets pasted verbatim into the flow's top-level `definitions[]` array.
|
|
300
300
|
|
|
301
|
-
**Builder-SDK Flow projects (`.flow.ts`) — the default:** replace step 7 with one `agent({ key, name, ... })` step in `<Name>.flow.ts` and a `compile` — see [agent.md](../../../uipath-maestro-flow/references/agent.md). Step 7's JSON edits apply to a JSON-authored `.flow`.
|
|
302
|
-
|
|
303
301
|
7. **Wire the agent node into the `.flow` file.** Edit `<FlowName>.flow` directly:
|
|
304
302
|
- Add a `uipath.core.agent.<resourceKey>` node to `nodes[]` with one `inputs.<field>` entry per property in the agent's input schema (see step 6's `Data.Node.inputDefinition`) and `model.section: "In this solution"`.
|
|
305
303
|
- For input field values, see [embedding-in-flows.md § Wiring the Agent's Inputs](embedding-in-flows.md#wiring-the-agents-inputs).
|
package/skills/uipath-agents/references/lowcode/capabilities/inline-in-flow/inline-in-flow.md
CHANGED
|
@@ -4,8 +4,6 @@ Walkthrough for embedding a low-code autonomous agent directly inside a flow pro
|
|
|
4
4
|
|
|
5
5
|
Flow authoring itself is the responsibility of the `uipath-maestro-flow` skill — this file covers only the inline-agent side (creating the agent subdirectory, configuring it, and the shape of the `uipath.agent.autonomous` flow node that references it).
|
|
6
6
|
|
|
7
|
-
**Builder-SDK Flow projects (`.flow.ts`) — the default:** the agent is one `inlineAgent({...})` step in `<Name>.flow.ts`, and `compile` emits the flow node and the `<source>/agent.json` sidecar — see [inline-agent.md](../../../../../uipath-maestro-flow/references/inline-agent.md). The directory, `agent.json` and node JSON steps below apply to a JSON-authored `.flow`.
|
|
8
|
-
|
|
9
7
|
## When to Use
|
|
10
8
|
|
|
11
9
|
- Agent is tightly coupled to this specific flow
|
|
@@ -144,7 +142,7 @@ This skill authors the **`agent.json` side** (flatten rule: `$vars.<trigger>.out
|
|
|
144
142
|
"content": "Write a billing resolution email for this dispute:\n{{input.start__output__disputeSummary}}" }]
|
|
145
143
|
```
|
|
146
144
|
|
|
147
|
-
The **flow side**
|
|
145
|
+
The **flow side** — the trigger global and the node `agentInputVariables[]` binding (the only thing the converter turns into `JobArguments`) — is authored through the `uipath-maestro-flow` skill (Critical Rule 15). The full four-piece contract, the converter behavior, and the `content`↔`contentTokens` invariant + validator errors all live there: [inline-agent prompt-wiring guide § Wiring Flow Variables into Agent Prompts](../../../../../uipath-maestro-flow/references/author/plugins/inline-agent/impl.md#wiring-flow-variables-into-agent-prompts).
|
|
148
146
|
|
|
149
147
|
## Refresh and Validate Inline Agent
|
|
150
148
|
|
|
@@ -155,7 +153,7 @@ uip agent validate "<FlowProjectDir>/<projectId>" --inline-in-flow --output json
|
|
|
155
153
|
|
|
156
154
|
`--inline-in-flow` skips the `entry-points.json` / `project.uiproj` checks. In inline mode `refresh` regenerates `messages[].contentTokens` (from `content`) and `bindings_v2.json` — **not** `entry-points.json` (standalone only). `validate` is read-only (it flags `contentTokens` drift but doesn't repair it — fix by re-running `refresh`).
|
|
157
155
|
|
|
158
|
-
**Verify
|
|
156
|
+
**Verify at `flow debug`, not after refresh:** `refresh` never fills `inputSchema` — it is non-empty only because you authored it (`DerivedFiles: 0` is normal and does **not** mean input is missing). The end-to-end check (run `uip maestro flow debug` and confirm the agent resolves the input rather than echoing the literal `input.<key>` token) is owned by the `uipath-maestro-flow` skill — see its [inline-agent guide § Debug](../../../../../uipath-maestro-flow/references/author/plugins/inline-agent/impl.md#debug).
|
|
159
157
|
|
|
160
158
|
For inline agents with external capabilities (tools, contexts, memory spaces, or escalations), pass `--bindings-target` to **`refresh`** after all flow graph edits:
|
|
161
159
|
|
|
@@ -166,13 +164,17 @@ uip agent refresh "<FlowProjectDir>/<projectId>" --inline-in-flow \
|
|
|
166
164
|
|
|
167
165
|
`--bindings-target` propagates the inline agent's bindings (process, connection, index, memorySpace, app, etc.) into the flow project's `bindings_v2.json`. This is required for `uip solution resources refresh` to discover the bindings and create solution-level resource files. Never hand-edit `bindings_v2.json`.
|
|
168
166
|
|
|
169
|
-
> **
|
|
167
|
+
> **Ordering constraint:** run the final `uip agent refresh --inline-in-flow --bindings-target …` after all flow graph edits are complete. The `uipath-maestro-flow` skill owns direct `.flow` authoring for the inline-agent node, capability-resource nodes, and edges; refresh last so the generated bindings land in the flow project's `bindings_v2.json` before `uip solution resources refresh`. See the [Walkthrough](#walkthrough--end-to-end) for the correct sequence.
|
|
170
168
|
|
|
171
169
|
## Flow Wiring
|
|
172
170
|
|
|
173
|
-
|
|
171
|
+
After creating the inline agent, the flow needs a `uipath.agent.autonomous` node whose `inputs.source` is the inline agent's `projectId` UUID, plus edges connecting it to the rest of the flow.
|
|
172
|
+
|
|
173
|
+
**Hand off to the `uipath-maestro-flow` skill for the actual node and edge authoring.** Per Critical Rule 15, this skill does not invoke flow operations directly. Tell the user:
|
|
174
|
+
|
|
175
|
+
> The inline agent has been scaffolded at `<FlowProjectDir>/<projectId>/`. To wire it into the flow, use the `uipath-maestro-flow` skill — pass it `projectId = <uuid>` so it can add a `uipath.agent.autonomous` node with `inputs.source = <uuid>` and connect the input/success edges via direct `.flow` authoring. **After all flow graph edits are complete**, run `uip agent refresh --inline-in-flow`, then `uip agent validate --inline-in-flow`; for inline agents with external capabilities, include `--bindings-target <FlowProjectDir>/bindings_v2.json` on the refresh call.
|
|
174
176
|
|
|
175
|
-
The node JSON in § Flow Node Structure below
|
|
177
|
+
The node JSON shape that the flow skill must produce is documented in § Flow Node Structure below — keep it as a reference, not as a CLI walkthrough.
|
|
176
178
|
|
|
177
179
|
## Inline-in-Flow Resource Paths
|
|
178
180
|
|
|
@@ -236,7 +238,7 @@ Resource body shape is identical to the standalone-agent docs — only the folde
|
|
|
236
238
|
|
|
237
239
|
**Critical fields:**
|
|
238
240
|
- `inputs.source` — The inline agent's `projectId` UUID. Must match the subdirectory name and `agent.json.projectId` inside the flow project. The definition still declares `model.source: true`, but flow-core hoists that identity field onto `inputs.source` for the `uipath.agent.autonomous` node instance.
|
|
239
|
-
- `inputs.systemPrompt` / `inputs.userPrompt` —
|
|
241
|
+
- `inputs.systemPrompt` / `inputs.userPrompt` — **do not write these keys.** A prompt string on the node makes the flow converter drop every `agentInputVariables[]` entry the prompt text does not reference. Empty strings fail `uip maestro flow validate`. The canonical prompts live in `agent.json.messages[]`. Validator behavior and the older-CLI fallback: [inline-agent guide § Refresh and Validate](../../../../../uipath-maestro-flow/references/author/plugins/inline-agent/impl.md#refresh-and-validate).
|
|
240
242
|
- `definitions[]` — The `uipath.agent.autonomous` definition copied from the flow registry supplies `model.serviceType: "Orchestrator.StartInlineAgentJob"`, BPMN type, version, and context. Do not copy those fields into the node instance.
|
|
241
243
|
- No node instance `model` block — the inline-agent source lives at `inputs.source`.
|
|
242
244
|
|
package/skills/uipath-agents/references/lowcode/prompting/autonomous-agent-prompting-guide.md
CHANGED
|
@@ -53,7 +53,7 @@ The user message carries the task and the data — not the role.
|
|
|
53
53
|
|
|
54
54
|
Token form depends on context:
|
|
55
55
|
|
|
56
|
-
- **Inline-in-flow agents**
|
|
56
|
+
- **Inline-in-flow agents** reference upstream flow nodes: `{{ $vars.<flowNodeId>.output[.<field>] }}`. See the [uipath-maestro-flow inline-agent prompt-wiring guide](../../../../uipath-maestro-flow/references/author/plugins/inline-agent/impl.md#wiring-flow-variables-into-agent-prompts).
|
|
57
57
|
- **Standalone agents** reference declared inputs: `{{input.<field>}}`.
|
|
58
58
|
|
|
59
59
|
Mirror every `{{ ... }}` in `contentTokens[]` per [agent-definition.md § contentTokens Construction](../agent-definition.md#contenttokens-construction).
|
|
@@ -86,13 +86,11 @@ find . -name "*.bpmn" -maxdepth 4 | head -3
|
|
|
86
86
|
|
|
87
87
|
| Found | Surface | How HITL is added |
|
|
88
88
|
|---|---|---|
|
|
89
|
-
| `.flow
|
|
89
|
+
| `.flow` file | **Flow** | Write node JSON directly — see reference docs |
|
|
90
90
|
| `caseplan.json` (any `*.json` whose `nodes[]` carry `data.parentElement.type: "case-management:root"` — the marker is per-node; there is no `root` node on disk) | **Case** | Write `action` task into stage — see [hitl-casetask-action.md](references/hitl-casetask-action.md) |
|
|
91
91
|
| `agent.json` | **Low Code Agent** | Escalation CLI in-flight — guide manually for now |
|
|
92
92
|
| `.bpmn` (Maestro) | **Maestro** | Write the `UserTask` XML directly — see Step 5 Surface: Maestro |
|
|
93
93
|
|
|
94
|
-
**Flow surface (a `.flow.ts`, a `.flow`, or a new flow) — the default: stop here.** Hand the HITL request to the `uipath-maestro-flow` skill: it authors `hitl(...)` in `<Name>.flow.ts` — decompiling an existing `.flow` first — and compiles ([hitl.md](../uipath-maestro-flow/references/hitl.md)). Never read or hand-edit the compiled `.flow`; the next `compile` overwrites it. Steps 2–6 below cover the Case, Low-Code Agent and Maestro surfaces.
|
|
95
|
-
|
|
96
94
|
**If the user mentioned a specific file path**, use that directly.
|
|
97
95
|
|
|
98
96
|
**If no `.flow` file exists and surface is Flow**, scaffold solution-first — Flow projects MUST live inside a solution:
|
|
@@ -4,8 +4,6 @@ The AppTask variant uses a deployed coded app (Studio Web) as the task form. Nod
|
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
**Builder-SDK Flow projects (`.flow.ts`) — the default:** author a human task with `hitl({...})` in `<Name>.flow.ts` through the `uipath-maestro-flow` skill — see [hitl.md](../../uipath-maestro-flow/references/hitl.md). `compile` emits the node and overwrites the compiled `.flow`, so never write the JSON below into it by hand; it applies to a JSON-authored `.flow`.
|
|
8
|
-
|
|
9
7
|
## App Lookup and Solution Registration
|
|
10
8
|
|
|
11
9
|
Before writing the node JSON, resolve the app and register it with the solution. All API calls use auth from the stored login session (`uip login`).
|
|
@@ -6,8 +6,6 @@ Use this path when the user selects **New Coded Action App** in Step 3.
|
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
-
**Builder-SDK Flow projects (`.flow.ts`) — the default:** author the action-app task with `hitl({ variant: 'action-app', ... })` in `<Name>.flow.ts` through the `uipath-maestro-flow` skill — see [hitl.md](../../uipath-maestro-flow/references/hitl.md). `compile` emits the node and overwrites the compiled `.flow`, so skip the "write the node into the `.flow`" step below; it applies to a JSON-authored `.flow`.
|
|
10
|
-
|
|
11
9
|
## Overview
|
|
12
10
|
|
|
13
11
|
| Step | Action |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# HITL QuickForm Node — Direct JSON Reference
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The agent writes the `uipath.human-in-the-loop.quick-form` node directly into the `.flow` file as JSON. **Direct JSON is the default.** A CLI opt-in is available when the user explicitly requests it, or as a fallback if direct JSON writing fails — see [CLI reference: uip maestro flow hitl add](../../uipath-maestro-flow/references/shared/cli-commands.md#uip-maestro-flow-hitl-add).
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -71,7 +71,7 @@ Also read `workflow.variables.globals`. Each entry has an `id` that maps directl
|
|
|
71
71
|
|
|
72
72
|
> **`binding` vs `variable` prefix rule:** `binding` (input/inOut fields) uses the full path starting with `vars.` because it references an existing variable path. `variable` (output/inOut fields) uses `vars.<name>` — the `vars.` prefix is required; it declares the global variable name.
|
|
73
73
|
|
|
74
|
-
For the full variable system
|
|
74
|
+
For the full variable system, see → [How $vars paths are constructed in Flow](../../uipath-maestro-flow/references/shared/variables-and-expressions.md)
|
|
75
75
|
|
|
76
76
|
---
|
|
77
77
|
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
# Skill Maintenance
|
|
2
|
+
|
|
3
|
+
Internal tooling and conventions for maintaining the `uipath-maestro-flow` skill structure. Not loaded by agents during normal use.
|
|
4
|
+
|
|
5
|
+
## Structure
|
|
6
|
+
|
|
7
|
+
The skill is organized into four peer capabilities:
|
|
8
|
+
|
|
9
|
+
```text
|
|
10
|
+
SKILL.md ← capability router (universal rules + 4-bucket intent)
|
|
11
|
+
references/
|
|
12
|
+
├── shared/ ← cross-capability primitives
|
|
13
|
+
│ ├── cli-commands.md ← flat CLI lookup
|
|
14
|
+
│ ├── cli-conventions.md ← --output json, login, FOLDER_KEY, etc.
|
|
15
|
+
│ ├── file-format.md ← .flow JSON schema
|
|
16
|
+
│ ├── variables-and-expressions.md ← =js: Jint expressions
|
|
17
|
+
│ ├── node-output-wiring.md ← canonical $vars wiring rule
|
|
18
|
+
│ ├── action-nodes.md ← action-node boilerplate shared by plugin impl.md's
|
|
19
|
+
│ └── ux-narration-and-todos.md ← progress narration + todo engage rules
|
|
20
|
+
├── author/
|
|
21
|
+
│ ├── CAPABILITY.md ← capability index
|
|
22
|
+
│ ├── greenfield.md ← create-new-flow journey
|
|
23
|
+
│ ├── brownfield.md ← edit-existing-flow journey
|
|
24
|
+
│ ├── editing-operations.md ← strategy selection
|
|
25
|
+
│ ├── editing-operations-json.md ← Edit / Write recipes (default)
|
|
26
|
+
│ ├── editing-operations-cli.md ← CLI carve-outs
|
|
27
|
+
│ ├── planning-arch.md ← topology/plugin index
|
|
28
|
+
│ ├── planning-impl.md ← registry/binding/wiring
|
|
29
|
+
│ └── plugins/ ← per-node-type planning + impl
|
|
30
|
+
├── operate/
|
|
31
|
+
│ ├── CAPABILITY.md ← capability index
|
|
32
|
+
│ ├── ship.md ← Studio Web upload + Orchestrator deploy
|
|
33
|
+
│ ├── run.md ← debug + process run + job status/traces
|
|
34
|
+
│ └── manage.md ← instance lifecycle (pause/resume/cancel/retry)
|
|
35
|
+
├── diagnose/
|
|
36
|
+
│ ├── CAPABILITY.md ← capability index
|
|
37
|
+
│ ├── troubleshooting-guide.md ← diagnostic priority ladder
|
|
38
|
+
│ └── failure-modes.md ← pattern catalog (missing `=js:`, misshapen nodes, etc.)
|
|
39
|
+
└── evaluate/
|
|
40
|
+
├── CAPABILITY.md ← capability index
|
|
41
|
+
├── commands-reference.md ← `uip maestro flow eval` surface
|
|
42
|
+
├── eval-sets-guide.md ← eval set + data point design
|
|
43
|
+
├── evaluators-guide.md ← evaluator selection and config
|
|
44
|
+
├── running-guide.md ← Studio Web run start/status/results
|
|
45
|
+
└── upload-safety.md ← never auto-upload to satisfy a prerequisite
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
**Recursive pattern.** Skill = `SKILL.md` + `references/`. Capability = `CAPABILITY.md` + its sibling docs in the same folder. The same "index next to its references" shape at two scales. Future capabilities (e.g., `governance/`) get the template for free.
|
|
49
|
+
|
|
50
|
+
**Convention:** each capability is a self-contained folder. Every file in `<capability>/` is implicitly that-capability-scoped — path = provenance. The `CAPABILITY.md` index is always at `<capability>/CAPABILITY.md` (uniform shape across all four).
|
|
51
|
+
|
|
52
|
+
### Capability boundary
|
|
53
|
+
|
|
54
|
+
- **Author** = on disk, locally, **without `uip login`** (`flow init`, `validate`, `format`, registry, JSON edits)
|
|
55
|
+
- **Operate** = touches the cloud, **requires `uip login`** (`solution upload`, `flow debug`, `flow pack`, `process run`, `instance ...`)
|
|
56
|
+
- **Diagnose** = postmortem on a failed run, **requires `uip login`** (`instance incidents`, `instance variables`, `instance asset`, `incident get`, `job traces`)
|
|
57
|
+
- **Evaluate** = evaluations against a flow already in Studio Web; local eval-set/evaluator CRUD needs no login, **`eval run *` requires `uip login`** (`eval set`, `eval evaluator`, `eval run`)
|
|
58
|
+
|
|
59
|
+
Author terminates at `validate` + `format` and hands off to Operate. Operate hands off to Diagnose when a run faults. Diagnose hands off back to Author for the underlying fix. Evaluate attaches to a flow Operate has already uploaded.
|
|
60
|
+
|
|
61
|
+
### Capability-index template
|
|
62
|
+
|
|
63
|
+
Every `<capability>/CAPABILITY.md` follows the same 6-section structure:
|
|
64
|
+
|
|
65
|
+
1. `# <Capability> — <one-line purpose>`
|
|
66
|
+
2. `## When to use this capability`
|
|
67
|
+
3. `## Critical rules`
|
|
68
|
+
4. `## Workflow`
|
|
69
|
+
5. `## Common tasks`
|
|
70
|
+
6. `## Anti-patterns`
|
|
71
|
+
7. `## References`
|
|
72
|
+
|
|
73
|
+
## Markdown anchor slugs (`[link](file.md#section-name)`)
|
|
74
|
+
|
|
75
|
+
Anchor links are computed exactly as GitHub does — getting them wrong silently produces a dead link that markdown lint won't catch.
|
|
76
|
+
|
|
77
|
+
### Slug rule
|
|
78
|
+
|
|
79
|
+
1. Lowercase the heading
|
|
80
|
+
2. Strip these characters entirely: `` ` ``, `*`, `_`, and any non-alphanumeric/non-space/non-dash character
|
|
81
|
+
3. Replace each remaining space with `-`
|
|
82
|
+
4. **Separator characters do not collapse** — each space (or em-dash that became a space-pair) becomes its own dash
|
|
83
|
+
|
|
84
|
+
### Common gotchas
|
|
85
|
+
|
|
86
|
+
| Heading | Wrong slug | Correct slug | Why |
|
|
87
|
+
| --- | --- | --- | --- |
|
|
88
|
+
| `## 5. \`--folder-key\` requirement` | `#5--folder-key-requirement` | `#5---folder-key-requirement` | After `.` strips and backticks strip: `5 --folder-key requirement`. The space between `5` and `--` becomes a dash, joining the two literal dashes from `--folder-key` → 3 dashes |
|
|
89
|
+
| `## Reused reference ID — cross-connection ID leakage` | `#reused-reference-id-cross-connection-id-leakage` | `#reused-reference-id--cross-connection-id-leakage` | The em-dash (`—`) is stripped (non-alphanumeric/space/dash), but the spaces on either side of it survive and both become dashes → 2 dashes |
|
|
90
|
+
| `## \`variables.nodes[]\` missing → \`$vars.X.output\` resolves to undefined` | `#variablesnodes-missing-varsxoutput-resolves-to-undefined` | `#variablesnodes-missing--varsxoutput-resolves-to-undefined` | Backticks, `.`, `[`, `]`, `$` and the `→` all strip (non-alphanumeric/space/dash). The space before and after the arrow both survive → 2 consecutive dashes between `missing` and `varsxoutput` |
|
|
91
|
+
|
|
92
|
+
### Verifying anchor links
|
|
93
|
+
|
|
94
|
+
Run the anchor-checker script before committing changes that add or edit anchor links:
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
bash .maintenance/check-anchors.sh
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Returns `anchors_checked=N anchors_bad=0` on success. Exits non-zero on any bad anchor. Any non-zero `anchors_bad` lists which file → which target slug failed to resolve. An anchor resolves against either a heading slug or an explicit `<a id="...">` / `<a name="...">` tag in the target file — GitHub honors both.
|
|
101
|
+
|
|
102
|
+
## Verifying file-path links
|
|
103
|
+
|
|
104
|
+
Run the link-checker script to catch broken `[text](path)` links:
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
bash .maintenance/check-links.sh
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Returns `checked=N broken=M`. Exits non-zero on any broken link. Both checkers skip links inside fenced code blocks and inline code spans, so example links in this README don't trigger false positives.
|
|
111
|
+
|
|
112
|
+
## Verifying link text agrees with link URL
|
|
113
|
+
|
|
114
|
+
Run the link-text checker to catch links whose **text looks like a file** but whose **URL points elsewhere**:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
bash .maintenance/check-link-text.sh
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Returns `checked=N broken=M`. Exits non-zero on any mismatch. Three failure modes, all hard failures:
|
|
121
|
+
|
|
122
|
+
- **basename-mismatch** — text basename ≠ URL basename (e.g., text `AUTHOR.md`, URL `../CAPABILITY.md`).
|
|
123
|
+
- **prefix-mismatch** — basenames agree but the directory hint in the text contradicts the URL's directory (e.g., text `operate/manage.md`, URL `references/manage.md`). Tolerated when the text directory is a suffix of the URL directory (e.g., text `author/greenfield.md`, URL `references/author/greenfield.md`).
|
|
124
|
+
- **folder-url-but-text-is-file** — URL ends with `/` but text claims a file.
|
|
125
|
+
|
|
126
|
+
Only links whose text contains a file-like token (extension `.md`, `.sh`, `.json`, `.js`, `.ts`, `.py`, `.cs`, `.xaml`, `.flow`, `.yaml`, `.yml`) are evaluated; descriptive text like `[Edit/Write: Variable Operations](...)` is skipped. Same skip rules as `check-links.sh` (fenced code, inline code, http(s), slash commands, anchor-only).
|
|
127
|
+
|
|
128
|
+
## Verifying reachability depth
|
|
129
|
+
|
|
130
|
+
Run the depth-checker script to verify every file under `references/` is reachable from `SKILL.md` within the configured max hops (default 2):
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
bash .maintenance/check-depth.sh
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
Pass a custom max-hops value as the first argument:
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
bash .maintenance/check-depth.sh 3
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
Returns `total_files=N reachable_within=R unreachable=U exceeds_depth=E`. Folder links count as reachability for every file in the folder (per the agent-navigation convention below). Exits non-zero if any file is unreachable or exceeds the configured depth.
|
|
143
|
+
|
|
144
|
+
## Verifying capability-index template conformance
|
|
145
|
+
|
|
146
|
+
Run the template-checker script to verify each `CAPABILITY.md` follows the canonical 6-section structure (When to use / Critical rules / Workflow / Common tasks / Anti-patterns / References):
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
bash .maintenance/check-template.sh
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Returns `capabilities_checked=N missing_sections=M`. Exits non-zero if any `CAPABILITY.md` is missing a required section. Catches drift if a future edit removes or renames a canonical section.
|
|
153
|
+
|
|
154
|
+
## Verifying no orphaned files
|
|
155
|
+
|
|
156
|
+
Run the orphan-checker script to find `.md` files under `references/` that no other `.md` file links to:
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
bash .maintenance/check-orphans.sh
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
Returns `files_checked=N orphans=M`. Exits non-zero if any orphans are found. `CAPABILITY.md` files are excluded (they are entry points linked from SKILL.md and peer indexes; SKILL.md itself is excluded as the root entry point).
|
|
163
|
+
|
|
164
|
+
Orphans typically appear after a refactor that removed inbound links but didn't delete the now-unreferenced file. Folder links count as inbound for every `.md` inside the folder, matching the agent-navigation convention used by `check-depth.sh`.
|
|
165
|
+
|
|
166
|
+
## Verifying plugin folder pairs
|
|
167
|
+
|
|
168
|
+
Run the plugin-pairs checker to verify every plugin folder has both `planning.md` and `impl.md` (the per-plugin convention):
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
bash .maintenance/check-plugin-pairs.sh
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
Returns `plugins_checked=N missing_files=M`. Exits non-zero if any plugin folder is missing a required file. Catches half-deleted plugins or new plugin folders that haven't been completed.
|
|
175
|
+
|
|
176
|
+
## Verifying `uip` command references
|
|
177
|
+
|
|
178
|
+
Run the uip-command checker to verify every `uip ...` invocation resolves to a real command in the installed CLI:
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
bash .maintenance/check-uip-commands.sh
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
Returns `commands_checked=N unknown=M`. Exits non-zero if any referenced command path is unknown to `uip`. Verification is **help-only** — the checker walks each command path with `uip <prefix> --help`, confirms the requested segment appears in the parent's `Subcommands` list, and never executes the command for real. Help responses are cached per prefix.
|
|
185
|
+
|
|
186
|
+
The checker:
|
|
187
|
+
|
|
188
|
+
- Scans `SKILL.md` and `references/**/*.md`. Skips `.maintenance/` and root-level scratch files (`PLAN.md`, `PR_BODY.md`).
|
|
189
|
+
- Scans both **fenced code blocks** tagged `bash`, `sh`, `shell`, `zsh`, `console`, or unlabelled, **and inline backtick spans** like `` `uip maestro flow init` ``. Inline scanning catches doc-narrative drift that fenced-only scanning misses.
|
|
190
|
+
- Stops the path at the first flag, placeholder (`<...>`), shell metachar, comment (`#`), path-literal, or non-kebab-case token — so positional args like `uip maestro flow registry search outlook` don't get mistreated as subcommands.
|
|
191
|
+
- Treats trailing tokens after a leaf-with-positional-args (e.g. `uip maestro flow registry search <keyword>`) as arguments, not missing subcommands.
|
|
192
|
+
- Falls back gracefully if `uip` is not installed: warns and exits 0. Pass `--strict` to fail in CI.
|
|
193
|
+
|
|
194
|
+
Pass specific files to scan only those (e.g. for pre-commit on staged files):
|
|
195
|
+
|
|
196
|
+
```bash
|
|
197
|
+
bash .maintenance/check-uip-commands.sh references/shared/cli-commands.md
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### Skipping intentional historical references
|
|
201
|
+
|
|
202
|
+
Some docs reference removed commands on purpose — for example, a CLI version-comparison table that documents a pre-restructure prefix. Add `<!-- uip-check-skip -->` anywhere on the line to suppress checking for that line:
|
|
203
|
+
|
|
204
|
+
```markdown
|
|
205
|
+
> Replace `uip maestro flow` with `uip flow` if version < 0.3.4. <!-- uip-check-skip -->
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
For table rows, place the marker **inside a cell** so it doesn't break table structure (HTML comments render as nothing):
|
|
209
|
+
|
|
210
|
+
```markdown
|
|
211
|
+
| **< 0.3.4** | `uip flow` | `uip flow init MyProject` <!-- uip-check-skip --> |
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
## Verifying no hardcoded versions
|
|
215
|
+
|
|
216
|
+
Run the version checker to catch docs that pin a `.flow` version as authoritative instead of deferring to the live CLI:
|
|
217
|
+
|
|
218
|
+
```bash
|
|
219
|
+
bash .maintenance/check-versions.sh
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
Returns `lines_checked=N violations=M`. Exits non-zero on any violation. The `.flow` top-level `version` and node `typeVersion` are owned by `uip maestro flow init` / `uip maestro flow registry get`; hardcoding them rots silently when the CLI advances (e.g. `core.action.http.v2` `2.0`→`2.1`, `core.trigger.scheduled` `1.0`→`1.1`, top-level `1.1`→`1.2`). Two violation classes:
|
|
223
|
+
|
|
224
|
+
- **PROSE-PIN** — prose stating a version as current/required: `currently "1.1"`, `the registry currently emits "1.0"`, `must be "2.0"`, or an inline assignment `typeVersion: "2.0"` / `version: "1.1"`. Only fires outside fenced code blocks.
|
|
225
|
+
- **TOPLEVEL** — a hardcoded top-level `.flow` `"version": "x.y"` literal in a JSON example. Identified by sibling `"nodes"`/`"edges"` keys within the same fenced block; `definitions[].version` (has `"nodeType"`), `bindings_v2.json` `version` (has `"resources"`), and eval-file `version` (has `"evaluatorRefs"`/`"evaluations"`) are NOT flagged.
|
|
226
|
+
|
|
227
|
+
Deliberately NOT flagged: `"typeVersion": "x.y"` literals in node JSON examples — legitimate when paired with an adjacent registry-sourcing note, and too many true-illustrative cases to flag without noise.
|
|
228
|
+
|
|
229
|
+
Add `<!-- version-check-skip -->` anywhere on a line to suppress it — for intentional references such as an anti-pattern example (`typeVersion: "1.0.0"` shown as the *wrong* value) or a fixed non-`.flow` schema version (eval-set files). Same marker convention as `check-uip-commands.sh`; for table rows, place it inside a cell.
|
|
230
|
+
|
|
231
|
+
Pass specific files to scan only those:
|
|
232
|
+
|
|
233
|
+
```bash
|
|
234
|
+
bash .maintenance/check-versions.sh references/shared/file-format.md
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
## Running the full suite
|
|
238
|
+
|
|
239
|
+
Run all nine checkers in one invocation:
|
|
240
|
+
|
|
241
|
+
```bash
|
|
242
|
+
bash .maintenance/check-all.sh
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
Continues running all checkers even when one fails — the goal is to surface every issue in a single pass. Exits non-zero if any checker fails.
|
|
246
|
+
|
|
247
|
+
## When to run these checkers
|
|
248
|
+
|
|
249
|
+
- Before committing changes that move files or rewrite link paths — `check-all.sh` covers everything in one pass
|
|
250
|
+
- Before merging a PR that touches `references/`
|
|
251
|
+
- After a refactoring phase
|
|
252
|
+
- After deleting a doc — run `check-orphans.sh` to confirm nothing else became orphaned
|
|
253
|
+
- Before adding a new capability — run `check-template.sh` against the new `CAPABILITY.md`
|
|
254
|
+
- After adding a new plugin — run `check-plugin-pairs.sh` to confirm both `planning.md` and `impl.md` are present
|
|
255
|
+
- After a `uip` CLI version bump — run `check-uip-commands.sh` to catch any commands that were renamed or removed, and `check-versions.sh` to catch docs that pinned a now-stale `.flow`/node version
|
|
256
|
+
|
|
257
|
+
The checkers are not currently wired into CI or pre-commit hooks. They are kept as lightweight tooling in this directory so future maintainers can run them on demand.
|
|
258
|
+
|
|
259
|
+
## Reachability convention
|
|
260
|
+
|
|
261
|
+
Plugin docs (`references/author/plugins/<name>/{planning,impl}.md`) are linked from `author/CAPABILITY.md` via **folder links** (e.g., `[connector](references/plugins/connector/)`), not individual file links. Agents navigating to the folder discover both `planning.md` and `impl.md` there. This satisfies practical 2-hop reachability from `SKILL.md`.
|
|
262
|
+
|
|
263
|
+
The depth checker (`check-depth.sh`) treats folder links as reachability for every `.md` file inside the folder, matching this agent-navigation model. A strict file-link-only reachability check would flag plugin docs as "unreachable" — that's a false negative.
|
|
264
|
+
|
|
265
|
+
If a future change requires explicit file links (e.g., a task table needs a specific `impl.md` anchor), add the file link inline rather than relying on folder discovery.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Run the full audit suite for this skill.
|
|
3
|
+
# Usage: bash .maintenance/check-all.sh
|
|
4
|
+
#
|
|
5
|
+
# Runs each checker in turn and prints its summary line.
|
|
6
|
+
# Exits non-zero if any checker fails. Continues running all checkers
|
|
7
|
+
# even when one fails — the goal is to surface every issue in a single pass.
|
|
8
|
+
|
|
9
|
+
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|
10
|
+
cd "$ROOT" || exit 1
|
|
11
|
+
|
|
12
|
+
CHECKERS=(
|
|
13
|
+
"check-links.sh"
|
|
14
|
+
"check-link-text.sh"
|
|
15
|
+
"check-anchors.sh"
|
|
16
|
+
"check-depth.sh"
|
|
17
|
+
"check-template.sh"
|
|
18
|
+
"check-orphans.sh"
|
|
19
|
+
"check-plugin-pairs.sh"
|
|
20
|
+
"check-uip-commands.sh"
|
|
21
|
+
"check-versions.sh"
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
overall=0
|
|
25
|
+
|
|
26
|
+
for checker in "${CHECKERS[@]}"; do
|
|
27
|
+
echo "=== $checker ==="
|
|
28
|
+
if ! /bin/bash ".maintenance/$checker"; then
|
|
29
|
+
overall=1
|
|
30
|
+
fi
|
|
31
|
+
echo ""
|
|
32
|
+
done
|
|
33
|
+
|
|
34
|
+
if [ "$overall" -eq 0 ]; then
|
|
35
|
+
echo "All checks passed."
|
|
36
|
+
else
|
|
37
|
+
echo "One or more checks failed. See output above for details."
|
|
38
|
+
fi
|
|
39
|
+
|
|
40
|
+
exit "$overall"
|