From fd52a8ed57094fe46ff30ec35945fe0cf2eec541 Mon Sep 17 00:00:00 2001 From: Naveen Date: Wed, 12 Aug 2026 15:29:11 -0500 Subject: [PATCH] Add UiPath diagram design skill --- .claude-plugin/plugin.json | 2 +- .codex-plugin/plugin.json | 4 +- ACKNOWLEDGMENTS.md | 7 + CHANGELOG.md | 22 +++ README.md | 59 +++++- THIRD_PARTY_LICENSES.md | 38 ++++ docs/STRATEGY-AND-PUBLISHING-PLAN.md | 12 +- docs/skills/README.md | 5 +- docs/skills/uipath-diagram-design.md | 185 ++++++++++++++++++ package-lock.json | 4 +- package.json | 3 +- skills/uipath-diagram-design/SKILL.md | 120 ++++++++++++ .../uipath-diagram-design/agents/openai.yaml | 4 + .../example-deployment-integration.html | 25 +++ .../assets/example-deployment-integration.png | Bin 0 -> 74065 bytes .../assets/example-deployment-integration.svg | 24 +++ .../assets/example-interaction-sequence.html | 28 +++ .../assets/example-interaction-sequence.png | Bin 0 -> 49919 bytes .../assets/example-interaction-sequence.svg | 27 +++ .../assets/example-process-swimlane.html | 23 +++ .../assets/example-process-swimlane.png | Bin 0 -> 61074 bytes .../assets/example-process-swimlane.svg | 22 +++ .../assets/example-solution-architecture.html | 23 +++ .../assets/example-solution-architecture.png | Bin 0 -> 69633 bytes .../assets/example-solution-architecture.svg | 22 +++ .../assets/example-state-lifecycle.html | 24 +++ .../assets/example-state-lifecycle.png | Bin 0 -> 50595 bytes .../assets/example-state-lifecycle.svg | 23 +++ .../references/deployment-integration.md | 27 +++ .../references/evidence-and-boundaries.md | 45 +++++ .../references/export.md | 42 ++++ .../references/interaction-sequence.md | 27 +++ .../references/process-swimlane.md | 27 +++ .../references/solution-architecture.md | 27 +++ .../references/state-lifecycle.md | 25 +++ .../references/visual-system.md | 76 +++++++ .../scripts/export_diagram.py | 169 ++++++++++++++++ .../references/routing-table.md | 1 + src/skill-contracts.mjs | 1 + src/validate.mjs | 2 +- test/cli-args.test.mjs | 2 +- test/helper-assets.test.mjs | 39 +++- test/release-metadata.test.mjs | 3 +- test/skill-contracts.test.mjs | 6 +- 44 files changed, 1194 insertions(+), 31 deletions(-) create mode 100644 THIRD_PARTY_LICENSES.md create mode 100644 docs/skills/uipath-diagram-design.md create mode 100644 skills/uipath-diagram-design/SKILL.md create mode 100644 skills/uipath-diagram-design/agents/openai.yaml create mode 100644 skills/uipath-diagram-design/assets/example-deployment-integration.html create mode 100644 skills/uipath-diagram-design/assets/example-deployment-integration.png create mode 100644 skills/uipath-diagram-design/assets/example-deployment-integration.svg create mode 100644 skills/uipath-diagram-design/assets/example-interaction-sequence.html create mode 100644 skills/uipath-diagram-design/assets/example-interaction-sequence.png create mode 100644 skills/uipath-diagram-design/assets/example-interaction-sequence.svg create mode 100644 skills/uipath-diagram-design/assets/example-process-swimlane.html create mode 100644 skills/uipath-diagram-design/assets/example-process-swimlane.png create mode 100644 skills/uipath-diagram-design/assets/example-process-swimlane.svg create mode 100644 skills/uipath-diagram-design/assets/example-solution-architecture.html create mode 100644 skills/uipath-diagram-design/assets/example-solution-architecture.png create mode 100644 skills/uipath-diagram-design/assets/example-solution-architecture.svg create mode 100644 skills/uipath-diagram-design/assets/example-state-lifecycle.html create mode 100644 skills/uipath-diagram-design/assets/example-state-lifecycle.png create mode 100644 skills/uipath-diagram-design/assets/example-state-lifecycle.svg create mode 100644 skills/uipath-diagram-design/references/deployment-integration.md create mode 100644 skills/uipath-diagram-design/references/evidence-and-boundaries.md create mode 100644 skills/uipath-diagram-design/references/export.md create mode 100644 skills/uipath-diagram-design/references/interaction-sequence.md create mode 100644 skills/uipath-diagram-design/references/process-swimlane.md create mode 100644 skills/uipath-diagram-design/references/solution-architecture.md create mode 100644 skills/uipath-diagram-design/references/state-lifecycle.md create mode 100644 skills/uipath-diagram-design/references/visual-system.md create mode 100644 skills/uipath-diagram-design/scripts/export_diagram.py diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index 3431e08..eef8a58 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "uipath-boost", - "version": "0.2.0", + "version": "0.3.0", "description": "Community engineering skills for better UiPath automation delivery.", "author": { "name": "1aifanatic", diff --git a/.codex-plugin/plugin.json b/.codex-plugin/plugin.json index a227660..afa1d80 100644 --- a/.codex-plugin/plugin.json +++ b/.codex-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "uipath-boost", - "version": "0.2.0", + "version": "0.3.0", "description": "Community engineering skills for planning, designing, testing, releasing, operating, and explaining UiPath automations.", "author": { "name": "1aifanatic", @@ -22,7 +22,7 @@ "interface": { "displayName": "UiPath Boost", "shortDescription": "Community engineering practices for UiPath delivery", - "longDescription": "Use 34 complementary skills for UiPath discovery, architecture, delivery continuity, testing discipline, release readiness, operational design, and knowledge transfer while official UiPath skills remain the source of product truth.", + "longDescription": "Use 35 complementary skills for UiPath discovery, architecture, diagram design, delivery continuity, testing discipline, release readiness, operational design, and knowledge transfer while official UiPath skills remain the source of product truth.", "developerName": "1aifanatic", "category": "Developer Tools", "capabilities": [ diff --git a/ACKNOWLEDGMENTS.md b/ACKNOWLEDGMENTS.md index 49b31f2..5912285 100644 --- a/ACKNOWLEDGMENTS.md +++ b/ACKNOWLEDGMENTS.md @@ -16,6 +16,13 @@ Matt Pocock's repository is distributed under the Boost retains this acknowledgment so the source of those design influences is clear. +The `uipath-diagram-design` skill is a focused UiPath adaptation of the visual +grammar published in +[Kathryn Lavery's diagram-design repository](https://github.com/cathrynlavery/diagram-design). +The upstream project is distributed under the MIT License. UiPath Boost retains +the copyright notice, records the reviewed upstream commit, and describes its +modifications in [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md). + Current UiPath product commands, schemas, artifact validation, deployment, tenant operations, and platform behavior remain owned by the [official UiPath skills repository](https://github.com/UiPath/skills). diff --git a/CHANGELOG.md b/CHANGELOG.md index ccba2cc..f2cbe3d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,27 @@ # Changelog +## 0.3.0 - 2026-08-12 + +### Added + +- Added `uipath-diagram-design`, a model-invoked skill for five + communication-grade UiPath diagram types: solution architecture, process + swimlane, interaction sequence, state and lifecycle, and deployment and + integration. +- Added synchronized HTML, SVG, and 1600x900 PNG examples for all five types. +- Added a standard-library Python exporter that extracts inline SVG and uses an + already installed Chrome, Edge, or Chromium browser for PNG rendering. +- Added a simple three-step README quick start and a detailed skill guide with + example prompts, before-and-after guidance, output selection, and official + UiPath handoffs. +- Added third-party attribution and the retained MIT notice for Kathryn + Lavery's `diagram-design` project. + +### Changed + +- Increased the catalog to 35 skills: 15 user-invoked and 20 model-invoked. +- Updated package and plugin metadata to version 0.3.0. + ## 0.2.0 - 2026-08-05 ### Changed diff --git a/README.md b/README.md index 85dc3bf..6f9b984 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ **Community skills for better UiPath automation** -UiPath Boost v0.2 gives you 34 Agent Skills for planning, designing, testing, releasing, operating, and explaining UiPath automations. Install the full catalog once, then use `uipath-project-router` to choose the smallest correct workflow for each job. +UiPath Boost v0.3 gives you 35 Agent Skills for planning, designing, visualizing, testing, releasing, operating, and explaining UiPath automations. Install the full catalog once, then use `uipath-project-router` to choose the smallest correct workflow for each job. > [!IMPORTANT] > UiPath Boost is an independent community project maintained by [1aifanatic](https://github.com/1aifanatic). It is not an official UiPath product or skill catalog. Official UiPath skills remain the source of truth for product commands, schemas, validation, deployment, tenant operations, and current platform behavior. @@ -16,7 +16,7 @@ npm install -g @uipath/cli uip skills install ``` -### 2. Install all 34 UiPath Boost skills +### 2. Install all 35 UiPath Boost skills > [!TIP] > **Recommended:** Install the complete catalog globally. You will not need to return later and install skills one at a time. @@ -27,7 +27,7 @@ npx skills add 1aifanatic/uipath-boost --skill '*' --agent codex --global --yes That single command: -- Installs all 34 skills. +- Installs all 35 skills. - Makes them available across your projects. - Gives the Project Router every available workflow to choose from. - Avoids repeated installation whenever your work moves from discovery to development, testing, release, or support. @@ -47,13 +47,13 @@ Tell me the smallest correct sequence of official UiPath and UiPath Boost skills Do not modify files or platform resources while routing. ``` -You do not need to memorize all 34 skill names. Describe your goal and let the router select the right starting point. +You do not need to memorize all 35 skill names. Describe your goal and let the router select the right starting point. ## Why install everything at once? | Benefit | What it means for you | |---|---| -| One simple setup | Run one installation command instead of managing 34 separate installations. | +| One simple setup | Run one installation command instead of managing 35 separate installations. | | Better routing | The router can choose from the complete catalog. | | End-to-end coverage | Move from discovery through delivery, testing, release, and support without stopping to install another skill. | | Consistent teams | Developers, testers, architects, and support teams can use the same skill set. | @@ -61,17 +61,54 @@ You do not need to memorize all 34 skill names. Describe your goal and let the r ## How the skills start -Installing the full catalog makes every skill available; it does not run all 34. UiPath Boost uses two clear invocation modes: +Installing the full catalog makes every skill available; it does not run all 35. UiPath Boost uses two clear invocation modes: | Mode | What happens | Best for | |---|---|---| | **User-invoked** | You deliberately name the skill, such as `Use $uipath-project-router`. | Orchestration, durable workspaces, repository setup, and cross-project decisions. | | **Model-invoked** | You may name the skill, or the agent may select it when your request precisely matches. | Focused engineering disciplines such as component design, regression evidence, observability, or security assessment. | -The 15 user-invoked skills are `uipath-project-router`, `uipath-architecture-deepening`, `uipath-delivery-control-plane`, `uipath-discovery-with-docs`, `uipath-learning-workspace`, `uipath-program-wayfinder`, `uipath-project-handoff`, `uipath-quality-gates-setup`, `uipath-source-control-guardrails`, `uipath-stakeholder-questionnaire`, `uipath-task-refinement`, `uipath-training-lab-scaffolder`, `uipath-uat-session`, `uipath-work-intake-triage`, and `uipath-workflow-spec-workspace`. The other 19 are model-invoked. Codex enforces the split through each skill's `agents/openai.yaml`; explicit-use wording preserves the same intent in other compatible agents. +The 15 user-invoked skills are `uipath-project-router`, `uipath-architecture-deepening`, `uipath-delivery-control-plane`, `uipath-discovery-with-docs`, `uipath-learning-workspace`, `uipath-program-wayfinder`, `uipath-project-handoff`, `uipath-quality-gates-setup`, `uipath-source-control-guardrails`, `uipath-stakeholder-questionnaire`, `uipath-task-refinement`, `uipath-training-lab-scaffolder`, `uipath-uat-session`, `uipath-work-intake-triage`, and `uipath-workflow-spec-workspace`. The other 20 are model-invoked. Codex enforces the split through each skill's `agents/openai.yaml`; explicit-use wording preserves the same intent in other compatible agents. Invocation never expands authority. A skill still cannot edit source, operate a tenant, deploy, publish, or perform another consequential action unless your request authorizes it and the correct official UiPath owner performs the product work. +## Create a UiPath diagram in three simple steps + +The `uipath-diagram-design` skill creates five communication-grade diagram types: solution architecture, process swimlane, interaction sequence, state and lifecycle, and deployment and integration. + +### 1. Install it + +The recommended full-catalog command above already includes the diagram skill. To install only this skill: + +```bash +npx skills add 1aifanatic/uipath-boost --skill uipath-diagram-design --agent codex --global --yes +``` + +### 2. Describe what the reader should understand + +```text +Use $uipath-diagram-design. + +Create a UiPath solution architecture from this approved SDD. +Show the business input, UiPath services, queues, robots, human-review path, +external systems, and operational evidence. +Save HTML, SVG, and PNG and inspect the PNG before finishing. +``` + +You can also ask naturally: `Create a UiPath swimlane from these process notes and highlight the human exception handoff.` + +### 3. Use the right output + +| Format | Best use | +|---|---| +| HTML | Highest-fidelity browser view | +| SVG | Scalable documentation and editing | +| PNG | GitHub README, presentations, articles, and videos | + +![UiPath Diagram Design architecture example](skills/uipath-diagram-design/assets/example-solution-architecture.png) + +See the **[simple diagram guide and all five examples](docs/skills/uipath-diagram-design.md)**. + ## Why UiPath Boost exists Official UiPath skills are responsible for current UiPath product behavior. They author and validate product artifacts, operate the platform, troubleshoot failures, and manage product lifecycles. @@ -128,7 +165,7 @@ UiPath Boost includes Codex and Claude plugin manifests in addition to the Agent For detailed explanations, before-and-after examples, prompts, completion checks, and official UiPath handoffs, open the **[complete skill guide library](docs/skills/README.md)** or select any skill below.
-View all 34 skills by category +View all 35 skills by category ### Routing and project continuity @@ -153,6 +190,7 @@ For detailed explanations, before-and-after examples, prompts, completion checks - [`uipath-component-design`](docs/skills/uipath-component-design.md) - [`uipath-architecture-deepening`](docs/skills/uipath-architecture-deepening.md) - [`uipath-project-boundaries`](docs/skills/uipath-project-boundaries.md) +- [`uipath-diagram-design`](docs/skills/uipath-diagram-design.md) - [`uipath-prototype`](docs/skills/uipath-prototype.md) - [`uipath-safe-refactor-plan`](docs/skills/uipath-safe-refactor-plan.md) @@ -237,13 +275,14 @@ npm test npm pack --dry-run ``` -The validation suite checks all 34 skill packages, invocation policies, behavioral contracts, metadata, internal links, and retired conflicting skills. Installer tests cover interactive, selected-skill, starter, and full-catalog installation arguments. +The validation suite checks all 35 skill packages, invocation policies, behavioral contracts, metadata, internal links, and retired conflicting skills. Installer tests cover interactive, selected-skill, starter, and full-catalog installation arguments. ## Learn more - [Strategy and publishing plan](docs/STRATEGY-AND-PUBLISHING-PLAN.md) - [Changelog](CHANGELOG.md) - [Acknowledgments](ACKNOWLEDGMENTS.md) +- [Third-party licenses](THIRD_PARTY_LICENSES.md) - [Contribution guide](CONTRIBUTING.md) - [Security policy](SECURITY.md) - [Official UiPath skills](https://github.com/UiPath/skills) @@ -251,6 +290,6 @@ The validation suite checks all 34 skill packages, invocation policies, behavior ## Status and license -UiPath Boost v0.2 is a community release. Structural, behavioral-contract, metadata, link, helper-script, and installer checks protect the catalog, but not every skill has been exercised against every UiPath product, tenant configuration, license, operating system, or future CLI version. +UiPath Boost v0.3 is a community release. Structural, behavioral-contract, metadata, link, helper-script, and installer checks protect the catalog, but not every skill has been exercised against every UiPath product, tenant configuration, license, operating system, or future CLI version. Licensed under the MIT License. See [LICENSE](LICENSE). diff --git a/THIRD_PARTY_LICENSES.md b/THIRD_PARTY_LICENSES.md new file mode 100644 index 0000000..cc8369a --- /dev/null +++ b/THIRD_PARTY_LICENSES.md @@ -0,0 +1,38 @@ +# Third-Party Licenses + +## diagram-design + +The `uipath-diagram-design` visual system is a focused adaptation of +[Kathryn Lavery's diagram-design project](https://github.com/cathrynlavery/diagram-design), +reviewed at upstream commit +[`3c5c34ba3bf9dcf204b55c2dd613f8fa194cf584`](https://github.com/cathrynlavery/diagram-design/commit/3c5c34ba3bf9dcf204b55c2dd613f8fa194cf584). + +UiPath Boost narrows the general diagram system to five UiPath communication +jobs, introduces UiPath evidence and official-owner boundaries, replaces the +visual tokens with the UiPath Boost community palette and system fonts, adds +UiPath semantic roles, supplies original UiPath-focused examples, and includes +a standard-library exporter with explicit local-browser detection. + +### Retained MIT license + +MIT License + +Copyright (c) 2025 Cathryn Lavery + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/docs/STRATEGY-AND-PUBLISHING-PLAN.md b/docs/STRATEGY-AND-PUBLISHING-PLAN.md index a18e966..f80fb53 100644 --- a/docs/STRATEGY-AND-PUBLISHING-PLAN.md +++ b/docs/STRATEGY-AND-PUBLISHING-PLAN.md @@ -7,13 +7,13 @@ - **CLI command:** `uipath-boost` **Prepared:** July 31, 2026 -**Updated for v0.2.0:** August 5, 2026 +**Updated for v0.3.0:** August 12, 2026 ## 1. Executive recommendation Use a hybrid ownership strategy: -1. Keep all 34 complementary skills in this independent community repository. +1. Keep all 35 complementary skills in this independent community repository. 2. Treat this repository as the incubator, evidence base, installation source, and educational home. 3. Contribute only mature, broadly useful, UiPath-specific capabilities upstream to `UiPath/skills`. 4. Open one proposal and one pull request at a time rather than submitting the entire catalog. @@ -189,7 +189,7 @@ Publishing to skills.sh makes sense for discovery and social proof. skills.sh in Launch sequence: 1. Publish the GitHub repository publicly. -2. Confirm `npx skills add 1aifanatic/uipath-boost --list` finds 34 skills. +2. Confirm `npx skills add 1aifanatic/uipath-boost --list` finds 35 skills. 3. Perform a clean installation of `uipath-project-router` using the GitHub source. 4. Check for `https://skills.sh/1aifanatic/uipath-boost`. 5. If it is not indexed after valid public installs, open a listing request in `vercel-labs/skills`. @@ -344,12 +344,12 @@ Track outcomes rather than only install counts: - [ ] Confirm repository name and public visibility. - [ ] Initialize Git and set the default branch to `main`. -- [ ] Review all 34 skills and helper scripts. +- [ ] Review all 35 skills and helper scripts. - [ ] Confirm the community disclaimer. - [ ] Confirm license ownership and contributor policy. - [ ] Configure GitHub security advisories. - [ ] Run `npm run validate` and `npm test`. -- [ ] Push and tag `v0.2.0`. +- [ ] Push and tag `v0.3.0`. ### npm @@ -363,7 +363,7 @@ Track outcomes rather than only install counts: ### skills.sh - [ ] Verify the GitHub repository is public. -- [ ] Verify standard skill discovery returns all 34 skills. +- [ ] Verify standard skill discovery returns all 35 skills. - [ ] Install the router through `npx skills add`. - [ ] Check the canonical skills.sh page. - [ ] File a listing request if indexing does not occur. diff --git a/docs/skills/README.md b/docs/skills/README.md index 17c24ab..d2abb62 100644 --- a/docs/skills/README.md +++ b/docs/skills/README.md @@ -13,7 +13,7 @@ This library explains every UiPath Boost skill in practical language. Each guide - Official UiPath handoffs and safety boundaries. - Links to the packaged skill, templates, references, and helper scripts. -If you are unsure where to begin, start with the [UiPath Project Router](uipath-project-router.md). You can install all 34 skills once and let the router select the smallest correct workflow for each task. +If you are unsure where to begin, start with the [UiPath Project Router](uipath-project-router.md). You can install all 35 skills once and let the router select the smallest correct workflow for each task. ```bash npx skills add 1aifanatic/uipath-boost --skill '*' --agent codex --global --yes @@ -22,7 +22,7 @@ npx skills add 1aifanatic/uipath-boost --skill '*' --agent codex --global --yes ## Invocation key - **User-invoked (15):** start these deliberate workflows yourself with `Use $skill-name`. They include Project Router, Architecture Deepening, Delivery Control Plane, Discovery With Docs, Learning Workspace, Program Wayfinder, Project Handoff, Quality Gates Setup, Source Control Guardrails, Stakeholder Questionnaire, Task Refinement, Training Lab Scaffolder, UAT Session, Work Intake Triage, and Workflow Spec Workspace. -- **Model-invoked (19):** name them directly or let the agent choose them when your request precisely matches. Every individual guide shows its mode in the **At a glance** table. +- **Model-invoked (20):** name them directly or let the agent choose them when your request precisely matches. Every individual guide shows its mode in the **At a glance** table. Installing a skill only makes its instructions available. Invocation does not authorize file changes, tenant operations, deployment, publishing, or other consequential actions. @@ -55,6 +55,7 @@ Installing a skill only makes its instructions available. Invocation does not au | [UiPath Component Design](uipath-component-design.md) | A reusable behavior needs a small stable contract and test seam. | Competing designs, trade-offs, selected contract, and acceptance examples. | | [UiPath Architecture Deepening](uipath-architecture-deepening.md) | A proven review or incident hotspot needs better seam options. | Change-surface map, ranked options, and safe design handoff. | | [UiPath Project Boundaries](uipath-project-boundaries.md) | Deep imports, cycles, or private-surface use make changes unsafe. | Boundary policy, automated checks, evidence, and migration plan. | +| [UiPath Diagram Design](uipath-diagram-design.md) | Verified UiPath facts need a crisp architecture, swimlane, sequence, lifecycle, or deployment visual. | Accessible HTML, scalable SVG, reviewed PNG, and evidence status. | | [UiPath Prototype](uipath-prototype.md) | One design uncertainty can be answered by a small safe experiment. | Throwaway artifact, observed verdict, limitations, and cleanup record. | | [UiPath Safe Refactor Plan](uipath-safe-refactor-plan.md) | Proven technical debt must improve without changing approved behavior. | Invariants, safety net, tiny steps, rollback, and stop conditions. | diff --git a/docs/skills/uipath-diagram-design.md b/docs/skills/uipath-diagram-design.md new file mode 100644 index 0000000..30db741 --- /dev/null +++ b/docs/skills/uipath-diagram-design.md @@ -0,0 +1,185 @@ +# UiPath Diagram Design + +[Back to all skill guides](README.md) · [View the skill source](../../skills/uipath-diagram-design/SKILL.md) + +## At a glance + +| | | +|---|---| +| **Invocation** | Model-invoked — start it explicitly or let the agent select it when the request fits. | +| **Purpose** | Turn verified UiPath facts into a crisp explanatory diagram. | +| **Use it when** | You need architecture, a swimlane, a sequence, a lifecycle, or deployment/integration topology. | +| **Do not use it for** | Creating executable XAML, Flow, BPMN, agent, or tenant configuration. | +| **Primary output** | Matching diagram-only HTML, SVG, and 1600x900 PNG files. | +| **Maturity** | Pilot | + +## What it does + +This skill converts approved UiPath design information into a visual that people can understand quickly. It uses one of five focused diagram grammars, keeps UiPath product facts tied to evidence, exports three useful formats, and inspects the rendered PNG before declaring the work complete. + +The result is a communication artifact. It explains a design or observed system; it does not deploy, configure, or validate the underlying UiPath solution. + +## Before and after + +### Before + +A team has an SDD, review notes, screenshots, and a list of UiPath products. Someone draws many small boxes, arrows cross labels, text escapes the components, and proposed connections look identical to verified ones. The diagram is difficult to reuse in a README or presentation. + +### After + +The audience question and evidence status are explicit. One diagram type controls the layout. The visual has a clear reading direction, no more than two focal elements, contained text, traceable connectors, and accessible metadata. The team receives a browser-ready HTML file, scalable SVG, and presentation-ready PNG. + +## When to reach for it + +Invoke `$uipath-diagram-design` directly, or ask naturally for a UiPath diagram. + +| You need to show | Diagram type | Example | +|---|---|---| +| Components, services, systems, and data flow | Solution architecture | [Employee onboarding](../../skills/uipath-diagram-design/assets/example-solution-architecture.png) | +| Owners, steps, and human exception handoffs | Process swimlane | [Purchase-order change](../../skills/uipath-diagram-design/assets/example-process-swimlane.png) | +| Time-ordered calls and responses | Interaction sequence | [Refund review](../../skills/uipath-diagram-design/assets/example-interaction-sequence.png) | +| States, retries, success, and failure | State and lifecycle | [Queue recovery](../../skills/uipath-diagram-design/assets/example-state-lifecycle.png) | +| Environment promotion and external connections | Deployment and integration | [Cloud deployment](../../skills/uipath-diagram-design/assets/example-deployment-integration.png) | + +### Use a neighboring skill instead + +- Use `uipath-solution` or `uipath-planner` when the SDD or solution design must be authored first. +- Use `uipath-maestro-bpmn` when the required output is executable BPMN. +- Use `uipath-maestro-flow`, `uipath-rpa`, or `uipath-agents` for executable product artifacts. +- Use `uipath-review` when the architecture facts have not yet been verified. +- Use `uipath-solution-storytelling` when the main outcome is an article, presentation narrative, or demo script. + +## Prerequisites + +You need only three things: + +1. What you want the audience to understand. +2. An approved source such as an SDD, repository, review result, process notes, or explicit decisions. +3. A destination folder for the diagram. + +If details are intentionally fictional, say that the example is synthetic. The skill will label it clearly. + +## What it produces + +For a diagram named `employee-onboarding`, the default structure is: + +```text +diagrams/employee-onboarding/ +|-- employee-onboarding.html +|-- employee-onboarding.svg +`-- employee-onboarding.png +``` + +- **HTML:** open it directly in any modern browser; it contains the whole diagram. +- **SVG:** use it in documentation and tools that need scalable vector artwork. +- **PNG:** use it in GitHub READMEs, articles, presentations, and videos. + +Existing files are protected. A new versioned name is used instead of silently overwriting the previous diagram. + +## How it works + +### The simplest way + +1. Install the full UiPath Boost catalog once. +2. Paste one of the prompts below and attach or name your source documents. +3. Review the PNG; request content changes in plain language. + +The agent then: + +1. Selects one of the five diagram types. +2. Lists the verified, proposed, inferred, or synthetic facts. +3. Designs within the node and connector budget. +4. Creates a self-contained 1600x900 HTML diagram. +5. Exports SVG and PNG using the bundled helper. +6. Opens the PNG and corrects clipping, collisions, and ambiguous arrows. + +## Example prompt + +```text +Use $uipath-diagram-design. + +Create a solution architecture from the approved SDD in this repository. +The audience is the automation support team. +Show the business input, UiPath services, queues, robots, human-review path, +external systems, and operational evidence. + +Use only verified facts. Label any inference. Save HTML, SVG, and PNG under +diagrams/support-architecture and inspect the PNG before finishing. +``` + +Short prompts work too: + +```text +Create a UiPath swimlane from these process notes and highlight the human exception handoff. +``` + +```text +Show this queue transaction's retry and failure lifecycle as a UiPath diagram. +``` + +```text +Create a deployment diagram showing GitHub, Dev, Test, Production, robots, and SAP integration. +``` + +## Common questions + +**Do I need to choose the diagram type myself?** + +No. Describe what the reader must understand. The skill selects the smallest suitable grammar and tells you which one it used. + +**Does it create executable UiPath workflows?** + +No. The output explains verified product artifacts. Official UiPath skills remain responsible for authoring and validation. + +**Can I use the diagrams in a README or presentation?** + +Yes. Use PNG for easy sharing, SVG for scalable artwork, and HTML for the highest-fidelity browser view. + +**What happens if Chrome or Edge is unavailable?** + +HTML and SVG can still be produced. PNG remains incomplete, and the agent must report the missing browser rather than claiming success. + +**Will it include the official UiPath logo?** + +Only when you supply an authorized local asset or documented permission covering that use. The default visual system uses product names and UiPath-oriented semantics without bundling the official logo. + +## It's working if + +- The diagram answers one clear audience question. +- Every node and connection is proven, approved, inferred, or synthetic. +- The selected grammar matches the information relationship. +- Text stays inside boxes and never touches connectors. +- Off-axis paths are orthogonal and independently traceable. +- Orange identifies no more than two focal elements. +- HTML works offline, SVG parses, and PNG is exactly the requested size. +- The final response links every file and identifies the next official UiPath owner. + +## Where it fits + +This is a **model-invoked communication discipline** in UiPath Boost. It can visualize approved outputs from discovery, solution design, review, observability, security assessment, release readiness, and storytelling workflows. Use [UiPath Project Router](uipath-project-router.md) when the larger route is unclear. + +## Official UiPath handoff + +Use the owning official skill after the diagram reveals required product work: + +- `uipath-rpa` for XAML and coded workflows. +- `uipath-agents` for agents. +- `uipath-maestro-flow` or `uipath-maestro-bpmn` for executable orchestration. +- `uipath-solution` for solution design artifacts. +- `uipath-platform`, `uipath-admin`, or `uipath-governance` for tenant and platform changes. + +The diagram does not authorize those changes. + +## Related resources + +- [Skill source](../../skills/uipath-diagram-design/SKILL.md) +- [Visual system](../../skills/uipath-diagram-design/references/visual-system.md) +- [Evidence and ownership rules](../../skills/uipath-diagram-design/references/evidence-and-boundaries.md) +- [Export instructions](../../skills/uipath-diagram-design/references/export.md) +- [Exporter helper](../../skills/uipath-diagram-design/scripts/export_diagram.py) +- [HTML architecture example](../../skills/uipath-diagram-design/assets/example-solution-architecture.html) +- [HTML swimlane example](../../skills/uipath-diagram-design/assets/example-process-swimlane.html) +- [HTML sequence example](../../skills/uipath-diagram-design/assets/example-interaction-sequence.html) +- [HTML lifecycle example](../../skills/uipath-diagram-design/assets/example-state-lifecycle.html) +- [HTML deployment example](../../skills/uipath-diagram-design/assets/example-deployment-integration.html) +- [Third-party notices](../../THIRD_PARTY_LICENSES.md) diff --git a/package-lock.json b/package-lock.json index 65f5998..4b46cde 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "uipath-boost", - "version": "0.2.0", + "version": "0.3.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "uipath-boost", - "version": "0.2.0", + "version": "0.3.0", "license": "MIT", "dependencies": { "skills": "1.5.22" diff --git a/package.json b/package.json index 11bd904..be9be4c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "uipath-boost", - "version": "0.2.0", + "version": "0.3.0", "description": "Community skills for better UiPath automation.", "type": "module", "bin": { @@ -15,6 +15,7 @@ ".claude-plugin/", "README.md", "ACKNOWLEDGMENTS.md", + "THIRD_PARTY_LICENSES.md", "CHANGELOG.md", "LICENSE", "SECURITY.md" diff --git a/skills/uipath-diagram-design/SKILL.md b/skills/uipath-diagram-design/SKILL.md new file mode 100644 index 0000000..2f6be2c --- /dev/null +++ b/skills/uipath-diagram-design/SKILL.md @@ -0,0 +1,120 @@ +--- +name: uipath-diagram-design +description: "Create crisp, evidence-backed explanatory diagrams for UiPath solutions. Use for solution architecture, process swimlanes, interaction sequences, state or lifecycle models, and deployment or integration topology when verified UiPath artifacts, approved documents, or user decisions need a communication-grade HTML, SVG, and PNG visual." +--- + +# UiPath Diagram Design + +Turn verified UiPath facts into a focused communication artifact. Produce explanatory visuals; leave executable UiPath artifacts and current product truth with their official owners. + +**Maturity:** pilot. + +## Ownership Boundary + +**This custom skill owns:** communication-grade diagrams that explain verified UiPath solutions, responsibilities, interactions, lifecycles, deployments, and integrations. + +It does not author or validate `.xaml`, `.flow`, `.bpmn`, `agent.json`, `project.uiproj`, tenant configuration, or other executable product artifacts. Use official UiPath skills for those surfaces. + +## Supported Diagram Types + +| Need | Type | Read before drawing | +|---|---|---| +| Components, services, systems, and data movement | Solution architecture | [references/solution-architecture.md](references/solution-architecture.md) | +| Actor ownership and cross-functional handoffs | Process swimlane | [references/process-swimlane.md](references/process-swimlane.md) | +| Time-ordered messages among humans, agents, robots, and systems | Interaction sequence | [references/interaction-sequence.md](references/interaction-sequence.md) | +| States, transitions, retries, failures, and completion | State and lifecycle | [references/state-lifecycle.md](references/state-lifecycle.md) | +| Environment promotion and runtime connections | Deployment and integration | [references/deployment-integration.md](references/deployment-integration.md) | + +Read exactly one type reference for the primary diagram. Split the request when two grammars compete. + +## Workflow + +### 1. Establish the communication question + +Identify the audience, the decision or understanding the diagram must enable, the primary diagram type, and the required output location. + +**Completion criterion:** One sentence states what the reader must understand after viewing the diagram. + +### 2. Build the evidence inventory + +Use facts in this order: validated official-skill output, approved repository or PDD/SDD content, explicit user decisions, working notes, then clearly labeled inference. Read [references/evidence-and-boundaries.md](references/evidence-and-boundaries.md). + +Ask only for facts whose absence would materially change the diagram. Label synthetic examples, assumptions, and inference inside the artifact metadata. + +**Completion criterion:** Every node and connector is supported, user-approved, or labeled as inference or synthetic. + +### 3. Design within the visual budget + +Read [references/visual-system.md](references/visual-system.md) and the selected type reference. Use at most 9 nodes, 12 connectors, 2 orange focal elements, and 5 lanes or lifelines unless the type reference sets a stricter limit. + +Use the seven UiPath semantic roles: human, automation, orchestration, UiPath service, external system, data or artifact, and control or evidence. + +**Completion criterion:** The layout has one dominant reading direction, a clear focal point, and no unearned element. + +### 4. Create the diagram-only HTML + +Write a self-contained HTML file with one inline accessible SVG using `viewBox="0 0 1600 900"`. Include ``, `<desc>`, and `<metadata>`. Use system fonts, inline CSS, and no JavaScript or external assets. + +Save new work under `diagrams/<slug>/<slug>.html` unless the user names another location. If the target exists, add `-v2`, `-v3`, and so on rather than overwriting it. + +An official UiPath logo may appear only when the user supplies an authorized local asset or written permission. Product names and semantic shapes remain sufficient by default. + +**Completion criterion:** The HTML opens without a network connection and the SVG contains the complete diagram. + +### 5. Export SVG and PNG + +Read [references/export.md](references/export.md), then run [scripts/export_diagram.py](scripts/export_diagram.py). The helper uses only the Python standard library for SVG extraction and an already installed Chrome, Edge, or Chromium browser for PNG rendering. It never installs dependencies. + +**Completion criterion:** Matching `.html`, `.svg`, and 1600x900 `.png` files exist, or the response explicitly reports the missing browser and the incomplete PNG requirement. + +### 6. Inspect the rendered result + +Open the PNG at full resolution. Check text containment, connector routing, label gaps, attach points, hierarchy, contrast, and legibility. Correct every clipped label, box collision, shared connector path, or ambiguous arrow before finishing. + +**Completion criterion:** The rendered pixels, not only the source, pass the visual checks in the selected type reference. + +### 7. Report evidence and handoff + +Return clickable paths to every output, name the selected type, list important assumptions or inference, and state that the visual is explanatory rather than executable. + +**Completion criterion:** A reader can open the outputs, understand their evidence status, and identify the official owner for any next product change. + +## Compose With Official UiPath Skills + +- Use `uipath-solution` and `uipath-planner` for authoritative solution design content. +- Use `uipath-rpa`, `uipath-agents`, `uipath-maestro-flow`, and `uipath-maestro-bpmn` for executable artifacts. +- Use `uipath-review` to establish verified project findings. +- Use `uipath-platform`, `uipath-admin`, and `uipath-governance` for observed tenant and platform state. +- Use `uipath-process-mining` for mined process graphs; use this skill only to explain verified findings. + +## Output Contract + +- One evidence-backed diagram with one primary grammar. +- Self-contained diagram-only HTML with accessible inline SVG. +- Extracted SVG and exact-size PNG preview. +- Evidence status, assumptions, inference, and explanatory-artifact disclaimer. +- Official UiPath handoff for any executable or platform work. + +## Guardrails + +- Keep customer data, credentials, tenant identifiers, and confidential architecture out unless explicitly approved and safely handled. +- Preserve product truth from official outputs; never invent services, commands, schemas, or successful runtime behavior. +- Use orthogonal connectors for off-axis nodes and distinct attach points for multiple edges. +- Treat PNG generation as incomplete when no compatible local browser is available. +- Keep community-project labeling visible when public examples could imply UiPath endorsement. + +## Example Requests + +- "Create a UiPath solution architecture from this approved SDD." +- "Show the human exception path as a five-lane swimlane." +- "Create a sequence diagram for Maestro, an agent, a robot, and a reviewer." +- "Visualize this queue item's retry and terminal-failure lifecycle." +- "Show our Dev, Test, and Production promotion and runtime integrations." + +## Finish + +Report the generated files, selected grammar, evidence and assumptions, render validation, next official owner, and every unresolved blocker. Never imply that a UiPath artifact, tenant configuration, deployment, or runtime behavior was created or validated unless its official owner actually performed and observed that work. + +## Design Lineage + +The focused visual system is adapted from Kathryn Lavery's MIT-licensed `diagram-design` project. See [THIRD_PARTY_LICENSES.md](../../THIRD_PARTY_LICENSES.md) for the retained notice and modification summary. diff --git a/skills/uipath-diagram-design/agents/openai.yaml b/skills/uipath-diagram-design/agents/openai.yaml new file mode 100644 index 0000000..d3cfe94 --- /dev/null +++ b/skills/uipath-diagram-design/agents/openai.yaml @@ -0,0 +1,4 @@ +interface: + display_name: "UiPath Diagram Design" + short_description: "Create crisp, evidence-backed UiPath diagrams" + default_prompt: "Use $uipath-diagram-design to create a crisp, evidence-backed UiPath diagram from these verified artifacts." diff --git a/skills/uipath-diagram-design/assets/example-deployment-integration.html b/skills/uipath-diagram-design/assets/example-deployment-integration.html new file mode 100644 index 0000000..f71a4da --- /dev/null +++ b/skills/uipath-diagram-design/assets/example-deployment-integration.html @@ -0,0 +1,25 @@ +<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Cloud Deployment and Integration - Prototype +UiPath deployment and integration topologySynthetic topology showing source control and quality gates promoting a package through Development, Test, and Production folders, then using robot and Integration Service connections to Salesforce and SAP.PROTOTYPE; synthetic content; generated 2026-08-12; explanatory only; not executable. + +SYNTHETIC REFERENCE / DEPLOYMENT AND INTEGRATION / NOT EXECUTABLEA governed package moves to production, then connects at runtime +DELIVERY CONTROLUIPATH AUTOMATION CLOUDCONNECTED SYSTEMS + + + + + +COMMITSIGNED PACKAGEPROMOTERELEASERUN PROCESSBINDINGREST APIODATA + +SOURCE CONTROLGitHub main branchreviewed automation code +QUALITY GATEBuild and validationtests + package signing +ORCHESTRATORDevelopment folderdeveloper verification +ORCHESTRATORTest folderUAT evidence +ORCHESTRATORProduction folderapproved release +RUNTIMEUnattended VM poolproduction robots +UIPATH SERVICEIntegration Servicemanaged connections +CRMSalesforcecase and customer data +ERPSAP S/4HANAorders and invoices +Solid arrows show promotion and runtime calls; dashed binding connects production configuration to managed integrations. + diff --git a/skills/uipath-diagram-design/assets/example-deployment-integration.png b/skills/uipath-diagram-design/assets/example-deployment-integration.png new file mode 100644 index 0000000000000000000000000000000000000000..eae8e1c7bdec855fc1af916060b722cda2a47ab6 GIT binary patch literal 74065 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≦h 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 Y*UiPath deployment and integration topologySynthetic topology showing source control and quality gates promoting a package through Development, Test, and Production folders, then using robot and Integration Service connections to Salesforce and SAP.PROTOTYPE; synthetic content; generated 2026-08-12; explanatory only; not executable. + +SYNTHETIC REFERENCE / DEPLOYMENT AND INTEGRATION / NOT EXECUTABLEA governed package moves to production, then connects at runtime +DELIVERY CONTROLUIPATH AUTOMATION CLOUDCONNECTED SYSTEMS + + + + + +COMMITSIGNED PACKAGEPROMOTERELEASERUN PROCESSBINDINGREST APIODATA + +SOURCE CONTROLGitHub main branchreviewed automation code +QUALITY GATEBuild and validationtests + package signing +ORCHESTRATORDevelopment folderdeveloper verification +ORCHESTRATORTest folderUAT evidence +ORCHESTRATORProduction folderapproved release +RUNTIMEUnattended VM poolproduction robots +UIPATH SERVICEIntegration Servicemanaged connections +CRMSalesforcecase and customer data +ERPSAP S/4HANAorders and invoices +Solid arrows show promotion and runtime calls; dashed binding connects production configuration to managed integrations. + diff --git a/skills/uipath-diagram-design/assets/example-interaction-sequence.html b/skills/uipath-diagram-design/assets/example-interaction-sequence.html new file mode 100644 index 0000000..446fb3d --- /dev/null +++ b/skills/uipath-diagram-design/assets/example-interaction-sequence.html @@ -0,0 +1,28 @@ +Refund Review Sequence - Prototype +Customer refund verification sequenceSynthetic interaction sequence among a customer portal, Maestro, a UiPath agent, a payments API, and a finance reviewer.PROTOTYPE; synthetic content; generated 2026-08-12; explanatory only; not executable. + +SYNTHETIC REFERENCE / INTERACTION SEQUENCE / HAPPY PATHMaestro coordinates a verified customer refund + +Customer portalREQUEST CHANNEL +MaestroORCHESTRATION +UiPath agentPOLICY REASONING +Payments APITRANSACTION SYSTEM +Finance reviewerDECISION OWNER + + + +SUBMIT REFUND REQUEST +ASSESS POLICY +LOOK UP CHARGE +TRANSACTION DETAILS +RISK RECOMMENDATION +CREATE REVIEW TASK +APPROVE WITH REASON +ISSUE REFUND +REFUND RECEIPT +CONFIRM TO CUSTOMER + + + diff --git a/skills/uipath-diagram-design/assets/example-interaction-sequence.png b/skills/uipath-diagram-design/assets/example-interaction-sequence.png new file mode 100644 index 0000000000000000000000000000000000000000..bab272106daa9cd171a9275ef81d447ca5d5fd22 GIT binary patch literal 49919 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 refund verification sequenceSynthetic interaction sequence among a customer portal, Maestro, a UiPath agent, a payments API, and a finance reviewer.PROTOTYPE; synthetic content; generated 2026-08-12; explanatory only; not executable. + +SYNTHETIC REFERENCE / INTERACTION SEQUENCE / HAPPY PATHMaestro coordinates a verified customer refund + +Customer portalREQUEST CHANNEL +MaestroORCHESTRATION +UiPath agentPOLICY REASONING +Payments APITRANSACTION SYSTEM +Finance reviewerDECISION OWNER + + + +SUBMIT REFUND REQUEST +ASSESS POLICY +LOOK UP CHARGE +TRANSACTION DETAILS +RISK RECOMMENDATION +CREATE REVIEW TASK +APPROVE WITH REASON +ISSUE REFUND +REFUND RECEIPT +CONFIRM TO CUSTOMER + + + diff --git a/skills/uipath-diagram-design/assets/example-process-swimlane.html b/skills/uipath-diagram-design/assets/example-process-swimlane.html new file mode 100644 index 0000000..aabd6d8 --- /dev/null +++ b/skills/uipath-diagram-design/assets/example-process-swimlane.html @@ -0,0 +1,23 @@ +Purchase Order Exception Swimlane - Prototype +Purchase order change with a buyer exception pathSynthetic swimlane across requestor, intake automation, procurement robot, buyer, and ERP system.PROTOTYPE; synthetic content; generated 2026-08-12; explanatory only; not executable. + +PROCESS SWIMLANE / SYNTHETIC EXAMPLE / NOT EXECUTABLEPurchase-order changes with a controlled exception path + +RequestorCHANGE OWNERIntake automationUIPATH SERVICEProcurement robotUNATTENDEDBuyerEXCEPTION OWNERERP systemSYSTEM OF RECORD + + + +SUBMITSVALIDATESDEQUEUESPASSEXCEPTIONREVIEWSDECISIONNOTIFIES + +Request changeamount or date +Check requestrequired fields +Create queue itemPO transaction +Compare policyvalue + tolerance +Apply allowed changewithin policy +Review exceptionbuyer decision +Approve requestreason recorded +Update purchase orderERP document +Receive outcomechange notice + diff --git a/skills/uipath-diagram-design/assets/example-process-swimlane.png b/skills/uipath-diagram-design/assets/example-process-swimlane.png new file mode 100644 index 0000000000000000000000000000000000000000..00749fc29f39141705e25b445fcbe0d420f19289 GIT binary patch literal 61074 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ξ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 order change with a buyer exception pathSynthetic swimlane across requestor, intake automation, procurement robot, buyer, and ERP system.PROTOTYPE; synthetic content; generated 2026-08-12; explanatory only; not executable. + +PROCESS SWIMLANE / SYNTHETIC EXAMPLE / NOT EXECUTABLEPurchase-order changes with a controlled exception path + +RequestorCHANGE OWNERIntake automationUIPATH SERVICEProcurement robotUNATTENDEDBuyerEXCEPTION OWNERERP systemSYSTEM OF RECORD + + + +SUBMITSVALIDATESDEQUEUESPASSEXCEPTIONREVIEWSDECISIONNOTIFIES + +Request changeamount or date +Check requestrequired fields +Create queue itemPO transaction +Compare policyvalue + tolerance +Apply allowed changewithin policy +Review exceptionbuyer decision +Approve requestreason recorded +Update purchase orderERP document +Receive outcomechange notice + diff --git a/skills/uipath-diagram-design/assets/example-solution-architecture.html b/skills/uipath-diagram-design/assets/example-solution-architecture.html new file mode 100644 index 0000000..af7bae8 --- /dev/null +++ b/skills/uipath-diagram-design/assets/example-solution-architecture.html @@ -0,0 +1,23 @@ +Employee Onboarding Architecture - Prototype + +Employee onboarding solution architectureSynthetic UiPath architecture connecting a hire event, Integration Service, an onboarding queue, an unattended provisioning robot, Action Center approval, Microsoft 365, and audit evidence.PROTOTYPE; synthetic content; generated 2026-08-12; explanatory only; not executable. + +SYNTHETIC REFERENCE / SOLUTION ARCHITECTURE / NOT EXECUTABLEEmployee onboarding from hire event to provisioned account +BUSINESS SYSTEMSUIPATH PLATFORMWORKPLACE SERVICES + + + + +WEBHOOKHIREWORKCREATEROLE UNCLEARREQUESTS ROLEAPPROVES ACCESSUPDATESEMITS + +HR EVENTWorkday hire eventemployee + start date +UIPATH SERVICEIntegration Serviceevent normalization +DATA ARTIFACTOnboarding queueOrchestrator +AUTOMATIONProvisioning robotunattended process +EXTERNAL SYSTEMMicrosoft 365account + licenses +HUMANHiring managerconfirms access role +UIPATH SERVICEAction Centerrole approval task +CONTROL / EVIDENCEAudit trailaccount + decision + diff --git a/skills/uipath-diagram-design/assets/example-solution-architecture.png b/skills/uipath-diagram-design/assets/example-solution-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..355cd9ceb2081d1a1ddb12ebdcf43bc332eb3b35 GIT binary patch literal 69633 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 +Employee onboarding solution architectureSynthetic UiPath architecture connecting a hire event, Integration Service, an onboarding queue, an unattended provisioning robot, Action Center approval, Microsoft 365, and audit evidence.PROTOTYPE; synthetic content; generated 2026-08-12; explanatory only; not executable. + +SYNTHETIC REFERENCE / SOLUTION ARCHITECTURE / NOT EXECUTABLEEmployee onboarding from hire event to provisioned account +BUSINESS SYSTEMSUIPATH PLATFORMWORKPLACE SERVICES + + + + +WEBHOOKHIREWORKCREATEROLE UNCLEARREQUESTS ROLEAPPROVES ACCESSUPDATESEMITS + +HR EVENTWorkday hire eventemployee + start date +UIPATH SERVICEIntegration Serviceevent normalization +DATA ARTIFACTOnboarding queueOrchestrator +AUTOMATIONProvisioning robotunattended process +EXTERNAL SYSTEMMicrosoft 365account + licenses +HUMANHiring managerconfirms access role +UIPATH SERVICEAction Centerrole approval task +CONTROL / EVIDENCEAudit trailaccount + decision + diff --git a/skills/uipath-diagram-design/assets/example-state-lifecycle.html b/skills/uipath-diagram-design/assets/example-state-lifecycle.html new file mode 100644 index 0000000..b3bd83f --- /dev/null +++ b/skills/uipath-diagram-design/assets/example-state-lifecycle.html @@ -0,0 +1,24 @@ +Queue Recovery Lifecycle - Prototype +UiPath queue transaction recovery lifecycleSynthetic state machine showing a queue transaction moving from new to in progress, successful, retrying, or failed.PROTOTYPE; synthetic content; generated 2026-08-12; explanatory only; not executable. + +STATE AND LIFECYCLE / SYNTHETIC EXAMPLE / NOT EXECUTABLEQueue transactions recover predictably from transient failures + + + + + + +ADDDEQUEUECOMPLETED / OUTPUTARCHIVE +TRANSIENT ERROR [LT 3]BACKOFF ELAPSEDATTEMPTS EXHAUSTEDEVIDENCE + + + +QUEUE STATENewready for work +QUEUE STATEIn progressrobot processing +TERMINAL SUCCESSSuccessfuloutput recorded +RECOVERY STATERetryingbounded backoff +TERMINAL FAILUREFailedevidence captured +Each transition is triggered by an observable event; retry count remains bounded. + diff --git a/skills/uipath-diagram-design/assets/example-state-lifecycle.png b/skills/uipath-diagram-design/assets/example-state-lifecycle.png new file mode 100644 index 0000000000000000000000000000000000000000..0c6ecb814e6a660422c2fb6bf0d3c57049efc5f4 GIT binary patch literal 50595 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 VG&S7~`R(8LwG96*x#Rf!e*s}~E~Wqg literal 0 HcmV?d00001 diff --git a/skills/uipath-diagram-design/assets/example-state-lifecycle.svg b/skills/uipath-diagram-design/assets/example-state-lifecycle.svg new file mode 100644 index 0000000..dee52b3 --- /dev/null +++ b/skills/uipath-diagram-design/assets/example-state-lifecycle.svg @@ -0,0 +1,23 @@ +UiPath queue transaction recovery lifecycleSynthetic state machine showing a queue transaction moving from new to in progress, successful, retrying, or failed.PROTOTYPE; synthetic content; generated 2026-08-12; explanatory only; not executable. + +STATE AND LIFECYCLE / SYNTHETIC EXAMPLE / NOT EXECUTABLEQueue transactions recover predictably from transient failures + + + + + + +ADDDEQUEUECOMPLETED / OUTPUTARCHIVE +TRANSIENT ERROR [LT 3]BACKOFF ELAPSEDATTEMPTS EXHAUSTEDEVIDENCE + + + +QUEUE STATENewready for work +QUEUE STATEIn progressrobot processing +TERMINAL SUCCESSSuccessfuloutput recorded +RECOVERY STATERetryingbounded backoff +TERMINAL FAILUREFailedevidence captured +Each transition is triggered by an observable event; retry count remains bounded. + diff --git a/skills/uipath-diagram-design/references/deployment-integration.md b/skills/uipath-diagram-design/references/deployment-integration.md new file mode 100644 index 0000000..7870271 --- /dev/null +++ b/skills/uipath-diagram-design/references/deployment-integration.md @@ -0,0 +1,27 @@ +# Deployment and Integration + +Use for environment promotion, release controls, runtime compute, managed connections, and enterprise endpoints. + +## Layout + +- Use three zones when possible: delivery control, UiPath platform, and connected systems. +- Keep Dev, Test, and Production promotion on one horizontal line. +- Put runtime machines, robots, and integration services below the promotion path. +- Use orange for the release gate and Production target. +- Use link blue for external runtime calls and dashed muted lines for configuration bindings. + +## UiPath semantics + +Separate package promotion from runtime execution. A release arrow means an approved artifact moves between environments; an API arrow means a verified runtime integration. Show folders, tenants, machines, robot pools, or connections only at the level supported by evidence. + +Platform mutations remain with `uipath-platform`, `uipath-admin`, or `uipath-governance`. The diagram does not deploy or configure anything. + +## Quality checks + +- Promotion and runtime flows have visibly different paths. +- Production is not implied before an approval gate. +- External protocols are labeled. +- Cross-cutting bindings do not masquerade as runtime calls. +- No credential, tenant identifier, internal endpoint, or customer-sensitive topology appears in public output. + +See [the cloud-deployment example](../assets/example-deployment-integration.html). diff --git a/skills/uipath-diagram-design/references/evidence-and-boundaries.md b/skills/uipath-diagram-design/references/evidence-and-boundaries.md new file mode 100644 index 0000000..b1ffe70 --- /dev/null +++ b/skills/uipath-diagram-design/references/evidence-and-boundaries.md @@ -0,0 +1,45 @@ +# Evidence and UiPath Boundaries + +## Evidence priority + +Use the strongest available source for every visual claim: + +1. Validated output from an official UiPath skill or observed platform query. +2. Approved repository content, PDD, SDD, ADR, or process document. +3. An explicit user decision made for the current diagram. +4. Working notes whose status is visible. +5. A labeled inference used only to complete a communication draft. + +Never turn a proposed component, untested path, or planned deployment into an unlabeled fact. + +## Evidence inventory + +Before drawing, record for each node or connector: + +- Label and semantic role. +- Source or evidence pointer. +- Status: proven, approved, proposed, inferred, or synthetic. +- Confidentiality or redaction need. +- Official UiPath owner when executable work is implied. + +Put the overall status in ``. Use a visible eyebrow such as `APPROVED DESIGN`, `DRAFT`, `SYNTHETIC EXAMPLE`, or `OBSERVED CURRENT STATE`. + +## Official ownership + +- `.xaml` and coded workflows: `uipath-rpa`. +- Agents and `agent.json`: `uipath-agents`. +- `.flow`: `uipath-maestro-flow`. +- `.bpmn` and Maestro BPMN projects: `uipath-maestro-bpmn`. +- SDD and `.uipx`: `uipath-solution` or `uipath-planner`. +- Tenant, Orchestrator, admin, and governance state: `uipath-platform`, `uipath-admin`, or `uipath-governance`. +- Product and artifact review: `uipath-review`. + +An illustrative process diagram is not a deployable BPMN artifact. A component box is not proof of configuration. A sequence message is not proof that an API call succeeded. + +## Public and brand safety + +UiPath Boost is an independent community project. Keep that status clear in public examples. + +Use product names as text when relevant. Include a UiPath logo only when the user provides an authorized local asset or documented permission that covers the intended use. Do not download, bundle, redraw, or imply permission for the official logo. + +Use synthetic or approved redacted data in public diagrams. Exclude tenant names, folder identifiers, credentials, internal endpoints, customer names, and security-sensitive topology unless publication is explicitly authorized. diff --git a/skills/uipath-diagram-design/references/export.md b/skills/uipath-diagram-design/references/export.md new file mode 100644 index 0000000..c251b55 --- /dev/null +++ b/skills/uipath-diagram-design/references/export.md @@ -0,0 +1,42 @@ +# Export HTML to SVG and PNG + +Use the bundled helper after the HTML has been created and reviewed for structural completeness. + +## Basic command + +```bash +python scripts/export_diagram.py diagrams/my-diagram/my-diagram.html --svg --png +``` + +The helper writes files beside the HTML by default: + +```text +diagrams/my-diagram/ +|-- my-diagram.html +|-- my-diagram.svg +`-- my-diagram.png +``` + +Use `--output-dir PATH` to choose another directory. Existing outputs are protected; add `--force` only after confirming replacement is intended. Prefer a versioned diagram slug over forced replacement. + +## Browser selection + +SVG extraction uses only Python's standard library. PNG export requires an already installed Chrome, Edge, or Chromium browser. The helper checks common executable names and Windows installation paths. + +Provide a browser explicitly when detection is ambiguous: + +```bash +python scripts/export_diagram.py diagram.html --png --browser "C:\Program Files\Google\Chrome\Application\chrome.exe" +``` + +The helper never downloads or installs a browser. If no compatible browser is available, keep the valid HTML and SVG, report PNG as incomplete, and give the user the exact error. + +## Size and inspection + +The standard output is 1600x900. Change it only when the user requests another aspect ratio: + +```bash +python scripts/export_diagram.py diagram.html --svg --png --width 1920 --height 1080 +``` + +Open the PNG after export and inspect the actual rendered pixels. Successful process exit and file creation do not prove visual quality. diff --git a/skills/uipath-diagram-design/references/interaction-sequence.md b/skills/uipath-diagram-design/references/interaction-sequence.md new file mode 100644 index 0000000..a21daf3 --- /dev/null +++ b/skills/uipath-diagram-design/references/interaction-sequence.md @@ -0,0 +1,27 @@ +# Interaction Sequence + +Use for time-ordered calls, returns, approvals, events, and notifications among at most five participants. + +## Layout + +- Place participant boxes in one horizontal row. +- Draw dashed vertical lifelines and narrow activation bars. +- Let time move from top to bottom; no message arrow points upward. +- Use solid blue for calls, dashed muted lines for returns, and orange for one or two headline outcomes. +- Use a framed `ALT`, `OPT`, or `LOOP` region only when a branch is essential to the communication question. + +## UiPath semantics + +Distinguish Maestro orchestration, agent reasoning, unattended automation, human decisions, and external APIs. A human approval is a message with a decision owner; it is not an autonomous agent result. + +Keep the diagram explanatory. Route `.flow`, BPMN, agent, API workflow, and task authoring to their official owners. + +## Quality checks + +- Maximum five participants and twelve messages. +- Return messages are dashed and use filled arrowheads. +- Labels occupy the open space above their message lines. +- Activation bars start and end around the work they represent. +- Long messages do not collide with intermediate lifelines. + +See [the refund-review example](../assets/example-interaction-sequence.html). diff --git a/skills/uipath-diagram-design/references/process-swimlane.md b/skills/uipath-diagram-design/references/process-swimlane.md new file mode 100644 index 0000000..fc143df --- /dev/null +++ b/skills/uipath-diagram-design/references/process-swimlane.md @@ -0,0 +1,27 @@ +# Process Swimlane + +Use for responsibility, ownership, and handoffs across business users, UiPath automations, robots, reviewers, and systems of record. + +## Layout + +- Use horizontal lanes with labels in a fixed left margin. +- Assign every step to exactly one lane. +- Order steps so the dominant flow advances left to right. +- Emphasize the handoff that introduces human review or material coupling. +- Let straight-through and exception branches converge at a clearly owned system step. + +## UiPath semantics + +Separate a UiPath service from an unattended robot when they perform different work. Use human lanes for accountable decisions, not for passive notification. Use system lanes only for actions the external system owns. + +This is an explanatory process view, not executable BPMN. Route BPMN authoring to `uipath-maestro-bpmn`. + +## Quality checks + +- Every lane has one named owner. +- No step crosses a lane boundary. +- Handoffs cross boundaries cleanly without long backtracking paths. +- Exception labels and arrowheads remain outside node text. +- A reader can identify the system of record and decision owner immediately. + +See [the purchase-order example](../assets/example-process-swimlane.html). diff --git a/skills/uipath-diagram-design/references/solution-architecture.md b/skills/uipath-diagram-design/references/solution-architecture.md new file mode 100644 index 0000000..88682e6 --- /dev/null +++ b/skills/uipath-diagram-design/references/solution-architecture.md @@ -0,0 +1,27 @@ +# Solution Architecture + +Use for a verified overview of components, services, systems, stores, humans, and data movement. + +## Layout + +- Use a left-to-right primary flow. +- Group components into at most three zones such as business channels, UiPath platform, and enterprise systems. +- Keep primary-path nodes aligned and equal in visual weight. +- Place exception handling, human review, and evidence below the primary flow. +- Use one focal UiPath integration or service and, when needed, one focal human-review surface. + +## UiPath semantics + +Name the actual level of abstraction: `Orchestrator queue`, `unattended process`, `Action Center task`, `Integration Service connection`, or `Maestro orchestration`. Avoid a generic `UiPath` box when the owner is known. + +Use official output or approved design evidence for every connection. A line means a meaningful relationship, not merely that two products coexist. + +## Quality checks + +- Text fits comfortably inside every component. +- Zone labels have clear space above the first node. +- Main-flow labels sit above their connectors. +- Secondary paths do not cross the primary line or pass behind nodes. +- The picture remains understandable when icons are removed. + +See [the employee-onboarding example](../assets/example-solution-architecture.html). diff --git a/skills/uipath-diagram-design/references/state-lifecycle.md b/skills/uipath-diagram-design/references/state-lifecycle.md new file mode 100644 index 0000000..4b4f5e1 --- /dev/null +++ b/skills/uipath-diagram-design/references/state-lifecycle.md @@ -0,0 +1,25 @@ +# State and Lifecycle + +Use for finite states and the events, guards, retries, actions, and outcomes that connect them. + +## Layout + +- Use rounded rectangles for states, a filled dot for start, and a ringed dot for each terminal end. +- Orient the happy path left to right. +- Put recovery or exception states below the happy path. +- Label every transition as `event [guard] / action`, omitting unused parts. +- Use orange for the state or transition the reader must notice, commonly bounded retry. + +## UiPath semantics + +Name a real lifecycle surface such as a queue transaction, human task, case, job, document review, or deployment approval. Verify product-defined states with the official owner; otherwise label the lifecycle as proposed or synthetic. + +## Quality checks + +- Every state has a distinct meaning and exit condition. +- Transition count stays below twice the number of states. +- Retry guards are bounded and failure evidence is visible. +- Return paths are distinct from forward paths. +- Terminal success and failure cannot be confused. + +See [the queue-recovery example](../assets/example-state-lifecycle.html). diff --git a/skills/uipath-diagram-design/references/visual-system.md b/skills/uipath-diagram-design/references/visual-system.md new file mode 100644 index 0000000..a922adc --- /dev/null +++ b/skills/uipath-diagram-design/references/visual-system.md @@ -0,0 +1,76 @@ +# UiPath Diagram Visual System + +Use this reference for every diagram. It defines the stable communication grammar; the selected type reference defines layout. + +## Canvas and tokens + +| Role | Value | Use | +|---|---|---| +| Canvas | `#FFFFFF` | Page and label masks | +| Secondary | `#F7F8FA` | Alternating lanes and quiet zones | +| Ink | `#172033` | Primary text and component borders | +| Muted | `#667085` | Secondary text and default connectors | +| Hairline | `#D0D5DD` | Dividers and boundaries | +| Accent | `#E85D2A` | One or two focal elements | +| Accent tint | `#FFF1EB` | Focal-node fill | +| Link blue | `#356AA0` | External calls and API connections | +| Success | `#2F7D5B` | Verified outcome or evidence state | + +Use system fonts only: `system-ui`, `Segoe UI`, Arial, and a system monospace stack. Use sans-serif for names and monospace for tags, protocols, events, and technical sublabels. + +## Semantic node roles + +| Role | Treatment | +|---|---| +| Human | Quiet or dashed border, person icon optional | +| Automation | White fill, ink border | +| Orchestration | White fill, ink border; name the verified owner | +| UiPath service | Focal tint only when it is central; otherwise standard node | +| External system | Dashed muted border | +| Data or artifact | Standard node; cylinder icon optional | +| Control or evidence | Green or dashed border when evidence is the message | + +Shapes supplement labels; they never replace them. Product names do not prove a product connection exists. + +## Complexity budget + +- Maximum 9 nodes. +- Maximum 12 connectors. +- Maximum 2 orange focal elements. +- Maximum 5 lanes or lifelines. +- Maximum 3 large zones. +- Target visual density: 4 out of 10. + +Split an overloaded visual into overview and detail diagrams. + +## Connector rules + +1. Draw connectors before nodes so node fills mask line endings. +2. Use straight lines only when endpoints share an x or y coordinate. +3. Route off-axis connections with rounded orthogonal elbows; use no diagonal connectors. +4. Give every arrow label an opaque canvas-colored mask and 6-10 pixels of visible separation from the stroke. +5. Fan multiple connectors along a node edge with at least 12 pixels between attach points. +6. Keep connectors independently traceable. Offset parallel routes and bridge an unavoidable crossing on the less important path. +7. Route around non-endpoint nodes. A connector must not disappear behind an unrelated box. +8. Use dashed lines for returns, optional paths, passive evidence, or bindings; state the meaning in nearby text. + +## Diagram-only HTML contract + +- Use one inline ``. +- Include ``, ``, and `` for accessibility and evidence status. +- Use inline CSS and SVG only. +- Use no JavaScript, external fonts, linked images, gradients, shadows, glows, or decorative application chrome. +- Keep the background opaque white so PNG output matches the HTML and SVG. +- Mark synthetic, inferred, draft, and non-executable content in metadata and a small eyebrow. + +## Render review + +Inspect the PNG at 100 percent and confirm: + +- Every label is inside its intended box or label mask. +- No connector touches text. +- Arrow direction is unambiguous. +- Focal orange has one clear meaning. +- The title and eyebrow are fully visible. +- Zone and lane labels remain readable at presentation size. +- The diagram works without a legend; add a bottom legend only when shapes have non-obvious semantics. diff --git a/skills/uipath-diagram-design/scripts/export_diagram.py b/skills/uipath-diagram-design/scripts/export_diagram.py new file mode 100644 index 0000000..3f93152 --- /dev/null +++ b/skills/uipath-diagram-design/scripts/export_diagram.py @@ -0,0 +1,169 @@ +#!/usr/bin/env python3 +"""Extract an inline SVG and render a diagram-only PNG from self-contained HTML.""" + +from __future__ import annotations + +import argparse +import os +import re +import shutil +import struct +import subprocess +import sys +import tempfile +import xml.etree.ElementTree as ET +from pathlib import Path + + +SVG_PATTERN = re.compile(r"]*>.*?", re.IGNORECASE | re.DOTALL) + + +def parse_args() -> argparse.Namespace: + parser = argparse.ArgumentParser( + description="Export the single inline SVG in a UiPath diagram HTML file." + ) + parser.add_argument("html", type=Path, help="Self-contained diagram HTML file") + parser.add_argument("--svg", action="store_true", help="Write an SVG export") + parser.add_argument("--png", action="store_true", help="Write a PNG export") + parser.add_argument("--output-dir", type=Path, help="Output directory; defaults beside HTML") + parser.add_argument("--browser", help="Chrome, Edge, or Chromium executable") + parser.add_argument("--width", type=int, default=1600, help="PNG width; default 1600") + parser.add_argument("--height", type=int, default=900, help="PNG height; default 900") + parser.add_argument("--force", action="store_true", help="Replace existing SVG or PNG") + return parser.parse_args() + + +def extract_svg(html_path: Path) -> str: + html = html_path.read_text(encoding="utf-8") + matches = SVG_PATTERN.findall(html) + if len(matches) != 1: + raise ValueError(f"expected exactly one inline SVG, found {len(matches)}") + svg = matches[0].strip() + ET.fromstring(svg) + return svg + + +def browser_candidates() -> list[str]: + candidates = [ + "google-chrome", + "google-chrome-stable", + "chromium", + "chromium-browser", + "microsoft-edge", + "msedge", + ] + if sys.platform == "win32": + roots = [ + os.environ.get("PROGRAMFILES"), + os.environ.get("PROGRAMFILES(X86)"), + os.environ.get("LOCALAPPDATA"), + ] + suffixes = [ + Path("Google/Chrome/Application/chrome.exe"), + Path("Microsoft/Edge/Application/msedge.exe"), + Path("Chromium/Application/chrome.exe"), + ] + candidates.extend(str(Path(root) / suffix) for root in roots if root for suffix in suffixes) + elif sys.platform == "darwin": + candidates.extend( + [ + "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome", + "/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge", + "/Applications/Chromium.app/Contents/MacOS/Chromium", + ] + ) + return candidates + + +def resolve_browser(requested: str | None) -> str | None: + candidates = [requested] if requested else browser_candidates() + for candidate in candidates: + if not candidate: + continue + expanded = Path(candidate).expanduser() + if expanded.is_file(): + return str(expanded.resolve()) + resolved = shutil.which(candidate) + if resolved: + return resolved + return None + + +def ensure_writable(targets: list[Path], force: bool) -> None: + existing = [str(path) for path in targets if path.exists()] + if existing and not force: + joined = ", ".join(existing) + raise FileExistsError(f"output already exists: {joined}; use a versioned name or --force") + + +def png_dimensions(path: Path) -> tuple[int, int]: + header = path.read_bytes()[:24] + if len(header) != 24 or header[:8] != b"\x89PNG\r\n\x1a\n": + raise ValueError("browser output is not a valid PNG") + return struct.unpack(">II", header[16:24]) + + +def render_png(browser: str, html_path: Path, png_path: Path, width: int, height: int) -> None: + with tempfile.TemporaryDirectory(prefix="uipath-diagram-") as profile: + command = [ + browser, + "--headless=new", + "--disable-gpu", + "--hide-scrollbars", + "--force-device-scale-factor=1", + f"--window-size={width},{height}", + f"--user-data-dir={profile}", + f"--screenshot={png_path}", + html_path.as_uri(), + ] + result = subprocess.run(command, capture_output=True, text=True, timeout=60, check=False) + if result.returncode != 0 or not png_path.exists(): + details = (result.stderr or result.stdout).strip() + raise RuntimeError(f"browser PNG render failed ({result.returncode}): {details}") + actual = png_dimensions(png_path) + if actual != (width, height): + raise RuntimeError(f"expected PNG {width}x{height}, found {actual[0]}x{actual[1]}") + + +def main() -> int: + args = parse_args() + html_path = args.html.expanduser().resolve() + if not html_path.is_file(): + print(f"ERROR: HTML file not found: {html_path}", file=sys.stderr) + return 2 + if args.width <= 0 or args.height <= 0: + print("ERROR: width and height must be positive", file=sys.stderr) + return 2 + + export_svg = args.svg or not (args.svg or args.png) + export_png = args.png or not (args.svg or args.png) + output_dir = (args.output_dir or html_path.parent).expanduser().resolve() + output_dir.mkdir(parents=True, exist_ok=True) + svg_path = output_dir / f"{html_path.stem}.svg" + png_path = output_dir / f"{html_path.stem}.png" + targets = ([svg_path] if export_svg else []) + ([png_path] if export_png else []) + + try: + ensure_writable(targets, args.force) + svg = extract_svg(html_path) + if export_svg: + svg_path.write_text(svg + "\n", encoding="utf-8") + print(f"SVG: {svg_path}") + + if export_png: + browser = resolve_browser(args.browser) + if not browser: + raise RuntimeError( + "PNG export requires an installed Chrome, Edge, or Chromium browser; " + "provide its path with --browser" + ) + render_png(browser, html_path, png_path, args.width, args.height) + print(f"PNG: {png_path}") + except (FileExistsError, OSError, RuntimeError, ValueError, ET.ParseError) as error: + print(f"ERROR: {error}", file=sys.stderr) + return 1 + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/skills/uipath-project-router/references/routing-table.md b/skills/uipath-project-router/references/routing-table.md index 6941236..a257c92 100644 --- a/skills/uipath-project-router/references/routing-table.md +++ b/skills/uipath-project-router/references/routing-table.md @@ -7,6 +7,7 @@ | Existing repository lacks project context | `uipath-project-discovery-agent` | `uipath-delivery-control-plane` after official context exists | | RPA, agent, Maestro, coded app, API workflow, function, connector, or solution implementation | Owning official product skill | `uipath-task-refinement` only when an existing planner task is too large or blocked incorrectly | | Artifact or solution quality review | `uipath-review` | `uipath-architecture-deepening` or `uipath-requirement-traceability` after the report | +| Explanatory architecture, swimlane, sequence, lifecycle, or deployment visual | Official artifact or platform owner supplies verified facts | `uipath-diagram-design` creates the communication artifact | | Runtime failure, error, hang, slowdown, or wrong result | `uipath-troubleshoot` | `uipath-regression-harness` after the symptom or cause is anchored | | Test Manager operations and reports | `uipath-test` | `uipath-uat-session` only for facilitated business-language UAT observation capture | | Action Center task operations | `uipath-tasks` | `uipath-observability-design` only for task-aging metrics and correlation design | diff --git a/src/skill-contracts.mjs b/src/skill-contracts.mjs index 869a79a..d945f1e 100644 --- a/src/skill-contracts.mjs +++ b/src/skill-contracts.mjs @@ -22,6 +22,7 @@ const definitions = { "uipath-architecture-deepening": ["Find high-leverage UiPath architecture improvements", "Use $uipath-architecture-deepening to turn this proven hotspot into ranked design options.", "Use this review finding to improve an actively changing architecture hotspot.", "Review this repository for general UiPath quality.", "Keep design work read-only and hand implementation to the official artifact owner.", "A proven hotspot has ranked options, a recommendation, and a bounded handoff."], "uipath-component-design": ["Design deep, testable UiPath component contracts", "Use $uipath-component-design to compare component contracts and recommend the best seam.", "Design a reusable queue-processing component with a stable public contract.", "Implement this existing XAML workflow exactly as specified.", "Design the contract without editing product artifacts unless separately authorized.", "The selected contract is testable by real callers and differs materially from alternatives."], "uipath-delivery-control-plane": ["Establish durable UiPath delivery governance", "Use $uipath-delivery-control-plane to establish the project delivery control plane.", "Set up durable project ownership, evidence, decision, and release conventions.", "Discover the structure of this UiPath repository.", "Require official project discovery before creating delivery governance documents.", "Every recurring delivery fact has one owned, linked, and usable location."], + "uipath-diagram-design": ["Create crisp, evidence-backed UiPath diagrams", "Use $uipath-diagram-design to create a crisp, evidence-backed UiPath diagram from these verified artifacts.", "Create an explanatory UiPath architecture, swimlane, sequence, lifecycle, or deployment diagram.", "Author or validate an executable UiPath BPMN, Flow, XAML, or tenant configuration.", "Use verified or labeled synthetic facts, protect confidential topology, and keep product changes with official owners.", "Matching accessible HTML, SVG, and rendered PNG files exist and every claim has a visible evidence status."], "uipath-discovery-interview": ["Resolve UiPath decisions through frontier rounds", "Use $uipath-discovery-interview to run evidence-based discovery in frontier rounds.", "Interview stakeholders to resolve the decisions blocking an automation design.", "Look up a documented fact already present in the repository.", "Research available facts and reserve questions for accountable human decisions.", "The frontier is empty or every remaining gap has an owner and evidence request."], "uipath-discovery-with-docs": ["Run UiPath discovery with a durable paper trail", "Use $uipath-discovery-with-docs to discover this process and maintain its project records.", "Run multi-session automation discovery and preserve decisions, evidence, and terminology.", "Ask one isolated clarification that requires no durable project record.", "Write only to the agreed documentation location and preserve one source of truth.", "A planner can continue from the documents without replaying the interview."], "uipath-learning-workspace": ["Build a stateful, practice-led UiPath learning path", "Use $uipath-learning-workspace to create a mission-based UiPath learning workspace.", "Create a multi-session learning path tied to a real UiPath professional goal.", "Answer one factual question about a UiPath feature.", "Use current sources, safe labs, and synthetic data; never train against production secrets.", "Progress records show retrieval, practice, feedback, and transfer into real work."], diff --git a/src/validate.mjs b/src/validate.mjs index 06684eb..765520c 100644 --- a/src/validate.mjs +++ b/src/validate.mjs @@ -16,7 +16,7 @@ function localMarkdownLinks(markdown) { ); } -export function validateCatalog(packageRoot, expectedCount = 34) { +export function validateCatalog(packageRoot, expectedCount = 35) { const errors = []; let catalog = []; try { diff --git a/test/cli-args.test.mjs b/test/cli-args.test.mjs index 558244b..7744359 100644 --- a/test/cli-args.test.mjs +++ b/test/cli-args.test.mjs @@ -48,5 +48,5 @@ test("the bundled catalog is structurally valid", () => { const packageRoot = resolve(fileURLToPath(new URL("..", import.meta.url))); const result = validateCatalog(packageRoot); assert.deepEqual(result.errors, []); - assert.equal(result.catalog.length, 34); + assert.equal(result.catalog.length, 35); }); diff --git a/test/helper-assets.test.mjs b/test/helper-assets.test.mjs index 68c0e2d..a76359f 100644 --- a/test/helper-assets.test.mjs +++ b/test/helper-assets.test.mjs @@ -1,9 +1,10 @@ import assert from "node:assert/strict"; -import { existsSync } from "node:fs"; +import { existsSync, mkdtempSync, readFileSync, rmSync } from "node:fs"; import { dirname, join } from "node:path"; import { spawnSync } from "node:child_process"; import test from "node:test"; import { fileURLToPath } from "node:url"; +import { tmpdir } from "node:os"; const root = join(dirname(fileURLToPath(import.meta.url)), ".."); const powershellGuard = join( @@ -27,6 +28,20 @@ const powershellWizard = join( "assets", "wizard-template.ps1" ); +const diagramExporter = join( + root, + "skills", + "uipath-diagram-design", + "scripts", + "export_diagram.py" +); +const diagramExample = join( + root, + "skills", + "uipath-diagram-design", + "assets", + "example-solution-architecture.html" +); function availableCommand(candidates, args) { return candidates.find((command) => spawnSync(command, args, { encoding: "utf8" }).status === 0); @@ -38,6 +53,7 @@ const powershell = availableCommand(["pwsh", "powershell"], [ "$PSVersionTable.PSVersion.ToString()" ]); const bash = availableCommand(["bash"], ["--version"]); +const python = availableCommand(["python3", "python"], ["--version"]); function powershellArguments(...args) { return ["-NoProfile", ...(process.platform === "win32" ? ["-ExecutionPolicy", "Bypass"] : []), ...args]; @@ -95,3 +111,24 @@ test("Bash guard parses", { skip: !bash }, () => { const result = spawnSync(bash, ["-n", bashGuard], { encoding: "utf8" }); assert.equal(result.status, 0, result.stderr); }); + +test("diagram exporter extracts the example SVG without third-party packages", { skip: !python }, () => { + const outputDirectory = mkdtempSync(join(tmpdir(), "uipath-diagram-export-")); + try { + const result = spawnSync( + python, + [diagramExporter, diagramExample, "--svg", "--output-dir", outputDirectory], + { encoding: "utf8" } + ); + assert.equal(result.status, 0, result.stderr); + const exported = join(outputDirectory, "example-solution-architecture.svg"); + assert.equal(existsSync(exported), true); + const svg = readFileSync(exported, "utf8"); + assert.match(svg, /^ { const claudePlugin = readJson(".claude-plugin/plugin.json"); assert.equal(packageJson.name, "uipath-boost"); - assert.equal(packageJson.version, "0.2.0"); + assert.equal(packageJson.version, "0.3.0"); assert.equal(packageLock.version, packageJson.version); assert.equal(packageLock.packages[""].version, packageJson.version); assert.equal(codexPlugin.version, packageJson.version); @@ -26,6 +26,7 @@ test("package and plugin release metadata stay aligned", () => { ".codex-plugin/", ".claude-plugin/", "ACKNOWLEDGMENTS.md", + "THIRD_PARTY_LICENSES.md", "CHANGELOG.md" ]) { assert.ok(packageJson.files.includes(packagedPath), `${packagedPath} must ship in npm package`); diff --git a/test/skill-contracts.test.mjs b/test/skill-contracts.test.mjs index 7db7aaa..ff025bb 100644 --- a/test/skill-contracts.test.mjs +++ b/test/skill-contracts.test.mjs @@ -9,7 +9,7 @@ const packageRoot = resolve(fileURLToPath(new URL("..", import.meta.url))); const catalog = loadCatalog(packageRoot); test("every skill has an exhaustive behavioral contract", () => { - assert.equal(Object.keys(SKILL_CONTRACTS).length, 34); + assert.equal(Object.keys(SKILL_CONTRACTS).length, 35); assert.deepEqual( Object.keys(SKILL_CONTRACTS).sort(), catalog.map((skill) => skill.name).sort() @@ -27,10 +27,10 @@ test("every skill has an exhaustive behavioral contract", () => { } }); -test("the approved invocation split is 15 user and 19 model skills", () => { +test("the approved invocation split is 15 user and 20 model skills", () => { assert.equal(USER_INVOKED_SKILLS.length, 15); assert.equal( Object.values(SKILL_CONTRACTS).filter((contract) => contract.invocation === "model").length, - 19 + 20 ); });