Agent skill

UiPath Project Generator

by marcelocruzrpa in marcelocruzrpa/uipath-ai-skills

Generates UiPath Studio projects, REFramework scaffolds, XAML workflows and expressions through 104 deterministic Python generators instead of hand-written XAML.

MITAuto-check passedProductivity & Automation

Install UiPath Project Generator

skills CLI
$ npx skills add marcelocruzrpa/uipath-ai-skills --skill uipath-core -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install marcelocruzrpa/uipath-ai-skills uipath-core --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/marcelocruzrpa/uipath-ai-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/uipath-core .claude/skills/uipath-core && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
uipath-core
GitHub stars
108
Token cost
~6.9k tokens
SKILL.md length
2,860 words
Files
924 (incl. scripts, references, assets)
Skills in repo
2
Repo updated
First seen
Licence
MIT

At a glance

Generates UiPath Studio projects, REFramework scaffolds, XAML workflows and expressions through 104 deterministic Python generators instead of hand-written XAML.

  • Works in 9 steps: G-4 — Never generate XAML from scratch.… → G-5 — Never guess NuGet package… → G-1 — ⛔ Create .xaml files ONLY via… → …
  • Scaffolding a REFramework project for a new UiPath automation
  • SKILL.md covers Hard Rule: Never Write .xaml…, Planning Workflow (read this…, When To Read Which Reference and Ground Rules, plus 9 more sections
  • Calls python, python3 and npm

What it does

The skill treats XAML as generated output: every .xaml file must come from `python -m uipath_core.scaffold_project` or `python scripts/generate_workflow.py`, never from the Write tool. Hand-written XAML is said to bypass lint rules 1 through 122 and produce workflows that will not run, so when a generator's output is wrong the agent fixes the JSON spec, with only narrow edits through `modify_framework.py`. The baseline is Studio 24.10 on Windows, and plugin generators extend the 104 built in.

Before drafting a plan from a PDD or other requirements, the agent answers a plan self-check: does each workflow follow the approach the document specifies rather than a substitute, and is there an inspection step for every target app, Playwright for browser apps and PowerShell for desktop apps where available. The plan must echo the check back. Inspection is read-only, a login page means stopping to wait for you, and the skill never generates credentials, real or fake. The bundled assets include generator snapshots and lint test cases, across 926 files.

When your agent uses it

  • Scaffolding a REFramework project for a new UiPath automation
  • Generating XAML workflows such as queue dispatchers, Excel read and write, or login flows
  • Writing VB or C# expressions for UiPath activities
  • Turning a process design document into a planned UiPath project

Example prompts

  • “Scaffold a REFramework dispatcher and performer for processing invoices from a queue.”
  • “Generate a workflow that logs in to the ACME test app and reads the order table.”
  • “Plan a UiPath project from this PDD and list how each target app will be inspected.”
  • “Add a try-catch with retry around the Excel update step in my UiPath project.”

Requirements

  • Python to run the generators
  • UiPath Studio, with the template baseline for Studio 24.10 on Windows
  • Playwright or PowerShell for read-only app inspection (optional)

Workflow steps

9 steps, taken from the first numbered list in SKILL.md.

  1. G-4 — Never generate XAML from scratch. Copy from closest template and modify.
  2. G-5 — Never guess NuGet package versions. Run scripts/resolve_nuget.py.
  3. G-1 — ⛔ Create .xaml files ONLY via scripts/generate_workflow.py. Never hand-write. See generation.md § Workflow Generation CLI.
  4. P-1 — Follow the PDD exactly. Implement the specified approach faithfully — propose alternatives separately.
  5. P-2 — Architecture selection: PDD describes BOTH reading AND processing items? → Dispatcher + Performer. See scaffolding.md.
  6. A-5 — Modular decomposition. Break into Workflows// subfolders. See decomposition.md.
  7. I-2 — ⛔ HALT at login gates during Playwright inspection. End your response, wait for user.
  8. G-3 — ⛔ Framework wiring: GENERATE FIRST, WIRE SECOND. Snippets MUST come from generator output. See scaffolding.md Phase 3c.
  9. G-2 — ⛔ JSON specs: WRITE TO DISK, NEVER INLINE. See cheat-sheet.md § type keys for valid types.

What it can do on your machine

Read from SKILL.md and the folder at commit b3dad28. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/, which the agent can run.

    Shell commands in SKILL.md call:

    • python
    • python3
    • npm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

UiPath Project Generator loads about 6.9k tokens when it runs, and up to ~618k if it reads all its reference files. Until then it costs about 141 tokens; SKILL.md has 2,860 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~141
When it runs · the whole SKILL.md, loaded when a task matches
~6.9k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~618k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from marcelocruzrpa/uipath-ai-skills at commit b3dad28, republished under its MIT licence (© marcelocruzrpa). 2,860 words, ~6,897 tokens.

Download SKILL.mdSave it as .claude/skills/uipath-core/SKILL.md (or your agent's skills folder). This skill also uses 923 other files; get the full folder from GitHub.
name
uipath-core
description
Build UiPath Studio projects, REFramework scaffolds, XAML workflows, and VB/C# expressions via 104 deterministic Python generators (plus plugin generators). ALWAYS use this skill — never hand-write .xaml files. TRIGGER when the user mentions UiPath, REFramework, XAML, RPA, Orchestrator, UiPath Studio, dispatcher, performer, queue items, robot, ACME (test app), .xaml, project.json, Config.xlsx, or asks to build/generate/scaffold/automate anything resembling RPA. SKIP only when the task is explicitly Power Automate, n8n, Zapier, or non-UiPath RPA.

UiPath Core Skill

⚠️ Safety Rules (I-1, I-2 in rules.md)

  • Playwright/browser inspection is READ-ONLY. Login page → STOP, WAIT for user. See ui-inspection.md → Login Gate.
  • Desktop inspection via PowerShell (inspect-ui-tree.ps1): read-only tree inspection only.
  • NEVER generate credentials, tokens, or passwords — real or fake.

Generate production-quality UiPath automation artifacts using real Studio-exported templates and comprehensive reference documentation. Template baseline: Studio 24.10 Windows.

Hard Rule: Never Write .xaml by Hand

If you are about to use the Write tool with a .xaml extension, STOP. Every .xaml file in this skill MUST come from python -m uipath_core.scaffold_project or python scripts/generate_workflow.py. Hand-written XAML bypasses lint rules 1–122 and produces unrunnable workflows. If generator output is wrong, fix the JSON spec — do not edit .xaml manually except for narrow modify_framework.py operations.

This rule overrides any plan you would have produced from training memory.

Planning Workflow (read this BEFORE drafting any plan)

When the user hands you a PDD, requirements doc, or "build a UiPath project that does X" — STOP before drafting architecture. Read this section first; it overrides any plan you would have produced from training memory. The full text of every gate below lives in references/scaffolding.md § "Generating a Full Project" — this is the planner-side hoist.

PLAN SELF-CHECK — answer BEFORE presenting your plan to the user
  • For EACH workflow in my plan: does it implement the PDD's specified approach, or did I substitute a "better" alternative? (e.g., InvokeCode SHA1 instead of browser automation of sha1-online.com) → If ANY substitution exists: REMOVE it and implement the PDD way. Propose the alternative AFTER.
  • Does my plan include an explicit inspection step for EVERY target app? → Browser apps: "Inspect [app] with Playwright" (if Playwright MCP available) → Desktop apps: "Inspect [app] with PowerShell" (if PowerShell available on Windows) → If ANY app lacks an inspection step and the tool is available: ADD it now.

If you cannot answer YES to all checks, revise your plan before presenting it.

Echo-back requirement: the produced plan MUST contain a PLAN SELF-CHECK: block (in Phase 0 or as Phase 0.5) with two ✓ lines, one per box, naming the specifics — for example:

PLAN SELF-CHECK:
  ✓ No PDD substitutions — SHA1 computed via sha1-online.com browser flow as PDD specifies
  ✓ Phase 2 includes inspection for every target app: System1 + SHA1Online

For a single-app or non-UI process, the second line still appears — e.g. ✓ Phase 2 explicitly notes no UI inspection required (no browser/desktop apps in scope). A plan without this echo-back block is incomplete; revise before presenting.

PLAN OUTPUT FORMAT — present your plan using this structure
Phase 0:  Architecture decision — Sequence vs Dispatcher+Performer (P-2); A-1 wiring
Phase 1:  Workflows + arguments — one entry per .xaml with In/Out/InOut signatures
Phase 2:  EACH app to inspect — one bullet per target app, e.g. "Inspect acme-test.com with Playwright"
Phase 2b: Write selectors.json (apps → screens → elements with taxonomy_type)
Phase 2c: generate_object_repository.py --from-selectors selectors.json --project-dir <each project>
Phase 2d: Pass --project-dir to every generate_workflow.py call (auto-wires obj_repo refs)
Phase 3:  Generate sub-workflows ONE AT A TIME — validate_xaml --lint after EACH file
Phase 3b: modify_framework.py wire-uielement <project> <AppName> for EACH app with UI
Phase 3c: (Dispatcher only) wire SCAFFOLD.DISPATCHER_GET_ITEM marker — generate snippet first (G-3)
Phase 4:  Wire Main.xaml — orchestration only, log bookends (A-7)
Phase 5:  Project-level validation — validate_xaml <project_folder> --lint
Phase 6:  Output Config.xlsx required keys grouped by sheet — validate_xaml --config-keys <project>

If Phase 2 is empty or missing, you are violating the skill rules. Even when no UI inspection is needed (no browser/desktop apps), state that explicitly: Phase 2: no UI inspection required (no browser/desktop apps in scope).

Per-phase reference anchors
PhaseRead before completing
0scaffolding.md → CRITICAL: Architecture Selection for PDDs (P-2)
1decomposition.md → Universal Rules 1–8, naming + arguments (Rule 8 = credentials)
2ui-inspection.md → Playwright MCP workflow + Login Gate (I-2); ui-inspection-reference.md for desktop
2bcheat-sheet.md → selectors.json schema
2cscripts/generate_object_repository.py (Lint 94 is ERROR if skipped)
2dgeneration.md → Wiring Object Repository References
3cheat-sheet.md → JSON spec patterns; scripts/generate_workflow.py (Rules G-1, G-2)
3bscripts/modify_framework.py wire-uielement; decomposition.md § UiElement chain
3cscripts/modify_framework.py replace-marker SCAFFOLD.DISPATCHER_GET_ITEM (Rule G-3)
4decomposition.md § Login/Launch + REFramework wiring; A-7 log bookends
5scripts/validate_xaml <project> --lint
6scripts/validate_xaml --config-keys <project>; config-sample.md
Config layout rule of thumb

When listing required Config.xlsx keys (Phase 6), apply this rule before falling back to config-sample.md's decision flowchart:

  • URLs, API endpoints, file/network paths, shared values across projects, or anything whose value may change frequently → Assets sheet. They are environment-specific, fetched from Orchestrator at InitAllSettings, and admins update them without redeploying. If you expect the value to be tuned post-deployment (timeouts, thresholds, recipient lists, feature flags, batch sizes), it belongs here too — Settings/Constants require a redeploy to change.
  • Credential asset NAMES → Settings sheet. The string in the cell is just a name passed to GetRobotCredential; storing it in Assets would trigger a needless GetRobotAsset round-trip. The credential value itself never appears in Config.xlsx — fetch it at point of use.
  • Project identity (queue name, process name, processes-to-kill list) → Settings sheet. Local to the project, never changes per environment.
  • Framework knobs (retry counts, log message templates) → Constants sheet. Identical across dev/staging/prod.

validate_xaml --config-keys <project> auto-classifies via this rule and emits a per-key reason — review the suggestion before manually editing Config.xlsx.

Compat-v2 (version-band) requirement — ENFORCED: every scaffold_project.py invocation MUST include --band <stable_year> (e.g., --band 25). To pick the band: run python scripts/resolve_nuget.py --all and read the major year of UiPath.System.Activities in the output — that's the latest stable. Available band profiles live under references/version-profiles/UiPath.System.Activities/<year>.<minor>.json. Every dependency MUST be resolved via python scripts/resolve_nuget.py <package> — no version literals from training memory (G-5). If project.json is generated without versionBand, lints 120–122 will REJECT it. The 23.10.x and 24.x bands are end-of-life and MUST NOT be used for new projects in 2026.

Final gate

If you are about to present an architectural plan and have NOT produced a Phase 2: inspection list with one entry per target app (or an explicit "no UI in scope" line), you are violating skill rules — go back and add Phase 2 first.

When To Read Which Reference

Start here. Match the user's task to the right file, then read only what's needed. For files > 200 lines, use grep or line-range reads — never read entire large files or XAML assets.

Common Tasks (check these first)
TaskRead first
Generate a XAML workflow (any kind)cheat-sheet.md → JSON spec patterns → scripts/generate_workflow.py (G-1)
Scaffold a projectscaffolding.md → Template Selection → run scripts/scaffold_project.py
Plan a new project (PDD → architecture)scaffolding.md → PLAN SELF-CHECK & Phase 0–6 (READ BEFORE PLANNING)
Inspect a web app (selectors)ui-inspection.md → Playwright MCP workflow → playwright-selectors.md
Validate XAMLRun scripts/validate_xaml <project> --lint
Fix a specific lint warninglint-reference.md → search by lint number
Write an expression (VB.NET/C#)expr-foundations.md (start here for any expression task)
Decomposition / project structuredecomposition.md → Decomposition rules (Universal 1-8, Browser 9-13, Desktop 14)
Fix a user's .xaml fileskill-guide.md → Example 6
Tasks, form tasks→ uipath-tasks skill (read its SKILL.md)
Activity-Specific Reference
TaskFileSection guidance (for large files)
Pick the right activity for an intentreferences/routing-index.md (auto-generated)Grep for the user's intent or the closest activity name. Don't guess generator names from filenames.
Core activities (Assign, Log, Delay, InputDialog)xaml-foundations.md (165 lines)Read in full
Control flow (If, ForEach, While, Flowchart)xaml-control-flow.md (208 lines)Read in full
DataTable ops, file systemxaml-data.md (255 lines)Grep for activity name
Error handling, TryCatch, Throw, RetryScopexaml-error-handling.md (194 lines)Read in full
InvokeWorkflowFile, InvokeCode, InvokeMethodxaml-invoke.md (175 lines)Read in full
Orchestrator, queues, HTTP, credentialsxaml-orchestrator.md (293 lines)Grep for activity name
Excel, Email, PDF activitiesxaml-integrations.md (285 lines)Grep: ## Excel, ## Email, or ## PDF
Build/fix selectorsxaml-ui-automation.md (576 lines)Don't read in full. Grep: ## Selector Reference or specific selector type
UI automation XAML (NClick, NTypeInto, etc.)xaml-ui-automation.mdSelector guidance only. XAML generation via generate_workflow.py (G-1)
Expression Reference (large files — use targeted reads)
TaskFileSection guidance
DataTable expressions (Select, Compute, LINQ)expr-datatable.md (432 lines)Grep: ## Select, ## Compute, ## LINQ, ## Filter
String/DateTime/numeric expressionsexpr-strings-datetime.md (502 lines)Grep: ## String, ## DateTime, ## Numeric, ## Regex
JSON, collections, type conversionsexpr-collections-json.md (462 lines)Grep: ## JSON, ## Dictionary, ## List, ## LINQ
Project & Configuration
TaskRead first
Choose template or variantscaffolding.md → Choosing the Right Variant
Browser automation with Playwrightui-inspection.md → Playwright MCP workflow
Desktop app inspectionui-inspection.md → Desktop Inspection → ui-inspection-reference.md
Login/Launch patterndecomposition.md → Login/Launch section
Config.xlsx keys and structureconfig-sample.md → three-sheet reference, decision flowchart
Extract Config keys from projectRun validate_xaml <project> --lint — lint 39
Lint regression testsRun scripts/run_lint_tests.py
Ground rules (all rule definitions)rules.md — single source of truth for G/I/A/P/S rules
project.json schema and configuration fieldsscaffolding.md → Key project.json Configuration Fields

Ground Rules

Full rule definitions with rationale: references/rules.md. Rules below are referenced by ID.

  1. G-4 — Never generate XAML from scratch. Copy from closest template and modify.
  2. G-5 — Never guess NuGet package versions. Run scripts/resolve_nuget.py.
  3. G-1 — ⛔ Create .xaml files ONLY via scripts/generate_workflow.py. Never hand-write. See generation.md § Workflow Generation CLI.
  4. P-1 — Follow the PDD exactly. Implement the specified approach faithfully — propose alternatives separately.
  5. P-2 — Architecture selection: PDD describes BOTH reading AND processing items? → Dispatcher + Performer. See scaffolding.md.
  6. A-5 — Modular decomposition. Break into Workflows/<AppName>/ subfolders. See decomposition.md.
  7. I-2 — ⛔ HALT at login gates during Playwright inspection. End your response, wait for user.
  8. G-3 — ⛔ Framework wiring: GENERATE FIRST, WIRE SECOND. Snippets MUST come from generator output. See scaffolding.md Phase 3c.
  9. G-2 — ⛔ JSON specs: WRITE TO DISK, NEVER INLINE. See cheat-sheet.md § type keys for valid types.

CRITICAL: Project Context Check (Always Do This First)

Before generating ANY XAML, determine project context:

A) project.json EXISTS (inside existing project):

  • Generate the .xaml file inside the project directory
  • Check dependencies — add missing NuGet packages: python3 scripts/resolve_nuget.py --add <project_dir> PackageName

B) project.json DOES NOT EXIST:

  • Scaffold first — a standalone .xaml is useless without project.json
  • Use scripts/scaffold_project.py (see scaffolding.md)
  • Do NOT create the project folder before scaffolding. The script creates <o>/<n>/ automatically. Pre-creating causes duplicate nesting.

Capabilities

  1. Generate XAML workflow files — copy from real Studio exports and modify
  2. Scaffold UiPath projects — Simple sequence, REFramework Dispatcher, or REFramework Performer
  3. Write expressions — VB.NET and C# for UiPath activities (LINQ, DataTable, JSON, DateTime, etc.)
  4. Build selectors — strict, fuzzy, dynamic, wildcard, regex selectors for web/desktop/SAP
  5. HTTP API integration — OAuth token flows, retry policies, query parameters, response handling
  6. Tasks tasks — → Fully decoupled to uipath-tasks skill (generators, lint rules, scaffold hooks all live in uipath-tasks/extensions/, loaded via plugin_loader.py)
  7. UI automation — NApplicationCard, NClick, NTypeInto, NSelectItem, NGetText, Extract Table Data, Check App State — via scripts/generate_activities
  8. Error handling & workflow — TryCatch, RetryScope, Throw/Rethrow, InvokeWorkflowFile, AddQueueItem, GetRobotCredential, BuildDataTable, IfElseIfV2, MultipleAssign — via scripts/generate_activities
  9. File system operations — Copy/Move/Delete files, Create Directory, Path Exists
  10. Invoke Code/Method — inline C#/VB.NET code blocks, instance/static method calls
Show full SKILL.md (1,277 more words)Show less

Reference Files

FileCoverage
references/xaml-foundations.mdXAML file structure, namespace declarations, core activities (Assign, Log, InputDialog, MessageBox, Delay), variable & argument declarations
references/xaml-control-flow.mdIf, IfElseIf, ForEach, ForEachRow, While, DoWhile, Break/Continue, ForEachFile, Flowchart, State Machine, annotations
references/xaml-data.mdBuildDataTable, AddDataRow, FilterDataTable, MergeDataTable, SortDataTable, OutputDataTable, JoinDataTables, LookupDataTable, DeserializeJSON, file system ops
references/xaml-error-handling.mdTryCatch, Throw/Rethrow, exception types, RetryScope (incl. NCheckState condition)
references/xaml-invoke.mdInvokeWorkflowFile, InvokeCode, InvokeMethod
references/xaml-orchestrator.mdGetRobotAsset, GetRobotCredential, AddQueueItem, GetQueueItem, SetTransactionStatus, HTTP Request. Tasks → uipath-tasks skill
references/xaml-integrations.mdExcel Classic Workbook (ReadRange, WriteRange, WriteCell), Email/Integration Service (GetIMAP, SendMail), PDF (ReadPDFText, ReadPDFWithOCR)
references/xaml-ui-automation.mdSelector construction, dynamic selectors, fuzzy/regex, anchor targeting, desktop frameworks, Version table. For XAML generation use generators — this file is for selector guidance and activity property reference. Large file — use grep or line-range reads.
references/expr-foundations.mdVB.NET + C# expression syntax, null safety patterns. Read first for any expression task
references/expr-datatable.mdDataTable operations: Select, Compute, filter, sort, lookup, merge, clone, column ops, row iteration. Large file — grep for section.
references/expr-strings-datetime.mdString (split, join, trim, replace, format), DateTime (parse, format, diff, business days), file/path, numeric, regex. Large file — grep for section.
references/expr-collections-json.mdArray/List, Dictionary, JSON (JObject, JArray, parse, query, build), LINQ on typed collections, type conversions, Queue Item. Large file — grep for section.
references/routing-index.mdActivity selection index — auto-generated from references/annotations/*.json. Maps user intent → generator with description + use_when per activity, plus a "don't auto-generate" section listing wizard-only activities. Consult this BEFORE guessing a generator name. Regenerate with uipath-core/scripts/generate_routing_index.py.
references/golden-templates.mdTemplate catalog — patterns extracted from each real template file
references/scaffolding.mdTemplate selection, NuGet mapping, XAML validation, project scaffolding (variants, dispatcher/performer, transaction types), full project generation checklist
references/decomposition.mdNaming conventions, decomposition rules (universal 1-8, browser 9-13, desktop 14), common process patterns, argument design, Login/Launch pattern, REFramework Init/Close, UiElement chain
references/generation.mdObject Repository, Workflow Generation CLI (JSON spec format, 104 core generators + plugin extensions), Activity Generators (usage pattern, what model provides vs what generators lock down)
references/ui-inspection.mdPlaywright MCP workflow (login gate, 5-step process, element mapping), Desktop inspection (PowerShell, inspect-ui-tree.ps1, framework detection)
references/skill-guide.mdIndex + examples. Routes to scaffolding/decomposition/generation/ui-inspection. Contains 7 worked examples + anti-example
references/lint-reference.md85 lint rules by severity, searchable by lint number (core rules; plugins add more — uipath-tasks registers AC-26..AC-34)
references/playwright-selectors.mdPlaywright MCP → UiPath selector mapping
references/config-sample.mdConfig.xlsx three-sheet reference (Settings, Constants, Assets), key naming conventions, sheet placement decision flowchart, required keys output format
references/cheat-sheet.mdJSON spec patterns (multiple_assign, if, try_catch, foreach_row, pick_login_validation, filter_data_table, add_queue_item, selectors.json), modify_framework.py CLI+Python API, valid enum values, naming, quick rules
references/cheat-sheet.md § Desktop Form-FillingDesktop form-filling: tab nav, idx selectors, save verification, data externalization
references/ui-inspection-reference.mdinspect-ui-tree.ps1 reference — UIA→UiPath property mapping, framework detection, WinForms
references/rules.mdGround Rules Reference — single source of truth for all generation (G), inspection (I), architecture (A), PDD (P), SAP (S), and skill authoring (K) rules. Other docs reference by ID
Scripts

All scripts/ paths below are relative to this skill's directory (.claude/skills/uipath-core/). Invoke from the skill root: cd .claude/skills/uipath-core && python3 scripts/<script>.py ...

FilePurpose
scripts/validate_xamlValidate generated XAML — structural checks + lint rules (core + plugin). Use --golden for asset templates. See lint-reference.md for full rule table.
scripts/resolve_nuget.pyResolve real NuGet versions. Query UiPath feed for latest stable. Validate project.json. Add/update deps in existing project.json (--add).
scripts/scaffold_project.pyScaffold UiPath projects (sequence / dispatcher / performer). Customizes Config.xlsx. Dispatcher replaces GetQueueItem with DataTable row indexing.
scripts/config_xlsx_manager.pyAdd/list/validate Config.xlsx keys. Cross-references XAML Config() refs vs actual sheets.
scripts/modify_framework.pyInsert InvokeWorkflowFile into framework files, replace SCAFFOLD.* markers, wire UiElement argument chain (wire-uielement), add variables with auto type normalization (add-variables), replace placeholder expressions (set-expression). ⛔ G-8: Never Edit/Write .xaml directly — use this script or generate_workflow.py.
scripts/generate_activitiesDeterministic XAML generators for 95 core activities. Locks down enums, versions, child elements. MANDATORY for NTypeInto, NClick, NGetText, NCheckState, NApplicationCard, etc. Plugin skills add more (e.g., Tasks, SAP WinGUI).
scripts/generate_workflow.pyGenerate complete .xaml files from JSON specs. 104 core generators + plugin generators loaded via plugin_loader.py. Covers ALL activities including Pick login validation, TryCatch, ForEachRow, NExtractData, NCheckState. Pass --project-dir <project> to auto-wire Object Repository references (Reference=/ContentHash= on TargetAnchorable) from .objects/refs.json. ⛔ Do NOT write .xaml by hand — use this CLI instead.
scripts/generate_object_repository.pyGenerate Object Repository (.objects/ tree). CLI: python3 generate_object_repository.py --from-selectors selectors.json --project-dir <dir>. Reads selectors.json (written during Playwright inspection) with full app/screen/element hierarchy. Lint 94 is ERROR — project cannot pass validation without populated Object Repository.
scripts/inspect-ui-tree.ps1Windows-only. Inspect desktop app UI tree via UIA API. Run via Bash (powershell -File).
scripts/regression_test.pyRegression tests — validates templates, scaffolding, naming conventions, line count accuracy, skill integrity
scripts/run_lint_tests.pyLint regression: verifies bad XAML test cases trigger expected lints. Run after modifying lint rules.
Battle-test scripts (manual-only)

scripts/battle_test_studio.py and scripts/battle_test_activities.py are NOT run by CI and have side-effects: they shell out to uip rpa create-project, scaffold real UiPath Studio Desktop projects under the system temp dir, and invoke Studio via IPC. Run them manually after generator changes (to confirm Studio still accepts the produced XAML) and before cutting a release. Requirements: UiPath Studio Desktop installed locally, @uipath/cli (npm i -g @uipath/cli) on PATH, and a free Studio editor process available for IPC. Pair with scripts/grade_battle_test.py to score the resulting projects.

Key Architecture Rules

Full definitions: references/rules.md § Architecture Rules (A-1 through A-12).

App initialization (A-1): ALL apps open and ready by end of InitAllApplications.xaml. Action workflows ONLY attach (OpenMode="Never"). Wire UiElement chain: python3 scripts/modify_framework.py wire-uielement <project> <AppName>.

Key constraints: no flat files in Workflows/ (must be in app subfolders), login stays inside AppName_Launch.xaml (no separate AppName_Login.xaml), navigation uses shared Utils/Browser_NavigateToUrl.xaml (A-6), persistence activities stay in Main.xaml (A-2), SetTransactionStatus.xaml never modified (A-4), dispatchers pass Nothing for in_TransactionItem.

Login/Launch Workflow Pattern

See decomposition.md → "Login/Launch Workflow Pattern" for the full recipe, required XAML structure, argument design, UiElement reference chain, and common mistakes. Key rule: login stays inside AppName_Launch.xaml — NEVER create a separate AppName_Login.xaml. Copy structure from golden sample WebAppName_Launch.xaml.

Quick Validation Reference

For detailed lint rules by number, see lint-reference.md. The most critical categories:

🔴 Studio crash — Inline Result= on modern activities, hallucinated enum values (AttachMode="ByUrl", Version="V3"/"V4", ElementType="InputBoxText"), missing xmlns declarations, hallucinated properties (NApplicationCard Url=, NCheckState Appears=, NTypeInto EmptyField=, AddQueueItem.SpecificContent). See cheat-sheet.md → Valid Enum Values.

🟡 Compile error / silent data loss — Wrong enum namespace (UIAutomation vs UIAutomationNext), C# syntax in Throw expressions, InteractionMode on activities that don't support it (only NClick/NTypeInto have it), QueueName= instead of QueueType=, empty Out/InOut argument bindings, direction tag mismatches.

🟢 Production / security — Credentials via GetRobotCredential inside the workflow (never as arguments), API/network wrapped in RetryScope, URLs from Config (never hardcoded), browser IsIncognito="True", log bookends on every workflow.

Desktop App Automation

When automating a desktop application (not browser/web):

  1. Get the executable path first. Before generating NApplicationCard XAML, you MUST have the full .exe path. Never use placeholders. ASK → STOP → WAIT. UWP apps use the package AppId.

  2. Desktop vs Browser differences: Desktop uses TargetApp.FilePath (no BrowserType/Url/IsIncognito), InteractionMode = HardwareEvents or Simulate (NOT DebuggerApi). Selectors use <wnd app='...' /> with automationid, cls, aaname, role attributes.

  3. Inspection is mandatory when PowerShell is available (Windows) — run inspect-ui-tree.ps1 BEFORE generating desktop XAML.

  4. WinForms tab names vs group box names: When inspect-ui-tree.ps1 shows a TabControl, children at depth 2 are TabItems (actual tab names for navigation). Children at depth 3 are GroupBoxes (visual containers INSIDE a tab, NOT navigation targets). See decomposition.md → Rule 14 supplement and ui-inspection-reference.md → WinForms Tab Control Hierarchy.

Naming Conventions

Variables: camelCase with type prefix — strName, intCount, boolSuccess, dt_Report, dr_Row, arr_Files, dict_Config, dtmStart, dblAmount, jo_Response, secstrPassword, qi_Item, mm_Mail.

Arguments: {direction}_{typePrefix}{Name} — in_strUserName, out_boolSuccess, io_dt_Data.

Workflow files: PascalCase with underscores — WebApp_CreateRecord.xaml, App_Close.xaml.

See cheat-sheet.md → Naming Quick Reference for the full type prefix table.

Selectors — Always Default to Strict

Generators default to SearchSteps="Selector" (strict). Use FuzzySelector only when user requests or strict proven unreliable. Always populate BOTH FullSelectorArgument and FuzzySelectorArgument.

Tested Models

This skill is developed and tested with Claude Opus and Claude Sonnet. The prompt engineering (HALT semantics, routing table placement, urgency tiers) is Claude-optimized. Other LLMs may work but are untested — expect to adapt the prompt layer.

© marcelocruzrpa, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 923 other files (scripts, references, assets) in uipath-core of marcelocruzrpa/uipath-ai-skills.

  • SKILL.md
  • assets/generator-snapshots/attach_and_navigate.xaml
  • assets/generator-snapshots/data_operations.xaml
  • assets/generator-snapshots/excel_read_write.xaml
  • assets/generator-snapshots/file_operations.xaml
  • assets/generator-snapshots/if_else_control_flow.xaml
  • assets/generator-snapshots/message_box_dialog.xaml
  • assets/generator-snapshots/misc_activities.xaml
  • assets/generator-snapshots/pdf_extraction.xaml
  • assets/generator-snapshots/queue_dispatcher.xaml
  • assets/generator-snapshots/sap_wingui_workflow.xaml
  • assets/generator-snapshots/simple_log.xaml
  • assets/generator-snapshots/try_catch_with_retry.xaml
  • assets/generator-snapshots/ui_automation_login.xaml
  • assets/generator-snapshots/while_loop.xaml
  • assets/lint-test-cases/bad_ACME_Login.xaml
  • assets/lint-test-cases/bad_AppName_DoAction.xaml
  • assets/lint-test-cases/bad_AppName_Launch_noout.xaml
  • … and 906 more

Open the folder on GitHubat commit b3dad28

Compare with similar skills

UiPath Project Generator next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

UiPath Project Generator compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
UiPath Project Generator this skillmarcelocruzrpa/uipath-ai-skills108—~6.9kAutomated safety check: PassMIT
Skyvern Browser AutomationSkyvern-AI/skyvern23k1 repos~2.9kAutomated safety check: PassAGPL-3.0
CUAWright Web Task Automationmicrosoft/CUAWright6k—~2kAutomated safety check: NotesMIT
Skyvern Browser AutomationSkyvern-AI/skyvern23k—~1.9kAutomated safety check: PassAGPL-3.0
AI Search Hubminsight-ai-info/AI-Search-Hub1.3k—~1.3kAutomated safety check: PassNone
Robocorp Automationrobocorp/robocorp653—~3.3kAutomated safety check: PassApache-2.0

Similar skills

  • Skyvern Browser Automation

    Skyvern-AI/skyvern

    Picks the right Skyvern CLI command for a web task, from quick yes/no checks to reusable multi-page workflows, instead of falling back to plain page fetching.

    23k GitHub starsUsed in 1 repo~2.9k tokens
    Productivity & AutomationAuto-check passed
  • Official

    Solves web tasks by driving a local Playwright browser one bash command at a time, saving a reusable script, screenshots and an action log for each run.

    6k GitHub stars~2k tokensUpdated 5 days ago
    Productivity & AutomationAuto-check: notes
  • Skyvern Browser Automation

    Skyvern-AI/skyvern

    Automates websites with Skyvern's AI browser agent to fill forms, extract data, download files, log in and run multi-step workflows through SDKs, REST, MCP or a CLI.

    23k GitHub stars~1.9k tokensUpdated yesterday
    Productivity & AutomationAuto-check passed
  • AI Search Hub

    minsight-ai-info/AI-Search-Hub

    Run the AI Search Hub browser automation scripts for Yuanbao, LongCat, Doubao, Qwen, Gemini, Grok, and MiniMax.

    1.3k GitHub stars~1.3k tokensUpdated 5 mo ago
    Productivity & AutomationAuto-check passed
  • Robocorp Automation

    robocorp/robocorp

    Bootstrap from an empty folder or build, debug, locally run, and validate Python automations built with Robocorp or Sema4.ai tooling, robocorp.tasks, rcc, robocorp-browser, and RPA Framework.

    653 GitHub stars~3.3k tokensUpdated 2 days ago
    Productivity & AutomationAuto-check passed
  • Native Python in n8n Code Nodes

    czlonkowski/n8n-skills

    Explains how to write native Python in n8n Code nodes, including the two input variables, blocked imports and fixes for common errors.

    6.4k GitHub stars~2.8k tokensUpdated 2 days ago
    Productivity & AutomationAuto-check passed

More from marcelocruzrpa/uipath-ai-skills

  • UiPath Tasks Workflows

    marcelocruzrpa/uipath-ai-skills

    Generates UiPath Tasks workflows for form tasks, external tasks and task management, with form.io schemas, lint rules and scaffold hooks loaded through uipath-core.

    108 GitHub stars~3k tokensUpdated 2 mo ago
    Auto-check passed

Questions about UiPath Project Generator

What does UiPath Project Generator do?

Generates UiPath Studio projects, REFramework scaffolds, XAML workflows and expressions through 104 deterministic Python generators instead of hand-written XAML. py`, never from the Write tool.py`.

When should I use UiPath Project Generator?

UiPath Project Generator fits situations like: scaffolding a REFramework project for a new UiPath automation; generating XAML workflows such as queue dispatchers, Excel read and write, or login flows; writing VB or C# expressions for UiPath activities; turning a process design document into a planned UiPath project.

How do I install UiPath Project Generator in Claude Code?

Run `npx skills add marcelocruzrpa/uipath-ai-skills --skill uipath-core -a claude-code`. Or copy the skill folder (uipath-core in marcelocruzrpa/uipath-ai-skills) into .claude/skills/uipath-core in your project. Claude Code loads it when a task matches its description.

How do I install UiPath Project Generator in Codex?

Run `npx skills add marcelocruzrpa/uipath-ai-skills --skill uipath-core -a codex`. Or copy the skill folder (uipath-core in marcelocruzrpa/uipath-ai-skills) into .agents/skills/uipath-core in your project. Codex loads it when a task matches its description.

Can I use UiPath Project Generator in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add marcelocruzrpa/uipath-ai-skills --skill uipath-core -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/uipath-core, .gemini/skills/uipath-core, .github/skills/uipath-core and .opencode/skills/uipath-core in your project.

What does UiPath Project Generator need to run?

Going by SKILL.md and its folder, UiPath Project Generator needs the command-line tools its instructions call (python, python3 and npm). Our summary lists: Python to run the generators; UiPath Studio, with the template baseline for Studio 24.10 on Windows; Playwright or PowerShell for read-only app inspection (optional).

Does UiPath Project Generator access the network?

SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is UiPath Project Generator safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does UiPath Project Generator use?

UiPath Project Generator is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does UiPath Project Generator use?

About 6.9k tokens (SKILL.md is roughly 28k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 611k tokens, read only when the agent opens those files.

What are the alternatives to UiPath Project Generator?

Skills that share tags, products or a category with UiPath Project Generator: Skyvern Browser Automation (Skyvern-AI/skyvern, 23k stars), CUAWright Web Task Automation (microsoft/CUAWright, 6k stars), Skyvern Browser Automation (Skyvern-AI/skyvern, 23k stars) and AI Search Hub (minsight-ai-info/AI-Search-Hub, 1.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains UiPath Project Generator?

marcelocruzrpa (a GitHub user) maintains it in marcelocruzrpa/uipath-ai-skills, which has 108 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on July 17, 2026.

Source: marcelocruzrpa/uipath-ai-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.