marcelocruzrpa/uipath-ai-skills/uipath-core
Claude Code and agent skill by marcelocruzrpa/uipath-ai-skills
- community
Checking that the SKILL.md file is still in the repository.
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.
Install
npx vskill@latest install marcelocruzrpa/uipath-ai-skills/uipath-coreSKILL.md
UiPath Core Skill
⚠️ Safety Rules (I-1, I-2 inrules.md)- Playwright/browser inspection is READ-ONLY. Login page → STOP, WAIT for user. Seeui-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:
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
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
| Phase | Read before completing | |
|---|---|---|
| 0 | scaffolding.md → CRITICAL: Architecture Selection for PDDs (P-2) | |
| 1 | decomposition.md → Universal Rules 1–8, naming + arguments (Rule 8 = credentials) | |
| 2 | ui-inspection.md → Playwright MCP workflow + Login Gate (I-2); ui-inspection-reference.md for desktop | |
| 2b | cheat-sheet.md → selectors.json schema | |
| 2c | scripts/generate_object_repository.py (Lint 94 is ERROR if skipped) | |
| 2d | generation.md → Wiring Object Repository References | |
| 3 | cheat-sheet.md → JSON spec patterns; scripts/generate_workflow.py (Rules G-1, G-2) | |
| 3b | scripts/modify_framework.py wire-uielement; decomposition.md § UiElement chain | |
| 3c | scripts/modify_framework.py replace-marker SCAFFOLD.DISPATCHER_GET_ITEM (Rule G-3) | |
| 4 | decomposition.md § Login/Launch + REFramework wiring; A-7 log bookends | |
| 5 | scripts/validate_xaml <project> --lint | |
| 6 | scripts/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 needlessGetRobotAssetround-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)
| Task | Read first | |
|---|---|---|
| Generate a XAML workflow (any kind) | cheat-sheet.md → JSON spec patterns → scripts/generate_workflow.py (G-1) | |
| Scaffold a project | scaffolding.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 XAML | Run scripts/validate_xaml <project> --lint | |
| Fix a specific lint warning | lint-reference.md → search by lint number | |
| Write an expression (VB.NET/C#) | expr-foundations.md (start here for any expression task) | |
| Decomposition / project structure | decomposition.md → Decomposition rules (Universal 1-8, Browser 9-13, Desktop 14) | |
| Fix a user's .xaml file | skill-guide.md → Example 6 | |
| Tasks, form tasks | → uipath-tasks skill (read its SKILL.md) |
Activity-Specific Reference
| Task | File | Section guidance (for large files) | |
|---|---|---|---|
| Pick the right activity for an intent | references/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 system | xaml-data.md (255 lines) | Grep for activity name | |
| Error handling, TryCatch, Throw, RetryScope | xaml-error-handling.md (194 lines) | Read in full | |
| InvokeWorkflowFile, InvokeCode, InvokeMethod | xaml-invoke.md (175 lines) | Read in full | |
| Orchestrator, queues, HTTP, credentials | xaml-orchestrator.md (293 lines) | Grep for activity name | |
| Excel, Email, PDF activities | xaml-integrations.md (285 lines) | Grep: ## Excel, ## Email, or ## PDF | |
| Build/fix selectors | xaml-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.md | Selector guidance only. XAML generation via generate_workflow.py (G-1) |
Expression Reference (large files — use targeted reads)
| Task | File | Section guidance | |
|---|---|---|---|
| DataTable expressions (Select, Compute, LINQ) | expr-datatable.md (432 lines) | Grep: ## Select, ## Compute, ## LINQ, ## Filter | |
| String/DateTime/numeric expressions | expr-strings-datetime.md (502 lines) | Grep: ## String, ## DateTime, ## Numeric, ## Regex | |
| JSON, collections, type conversions | expr-collections-json.md (462 lines) | Grep: ## JSON, ## Dictionary, ## List, ## LINQ |
Project & Configuration
| Task | Read first | |
|---|---|---|
| Choose template or variant | scaffolding.md → Choosing the Right Variant | |
| Browser automation with Playwright | ui-inspection.md → Playwright MCP workflow | |
| Desktop app inspection | ui-inspection.md → Desktop Inspection → ui-inspection-reference.md | |
| Login/Launch pattern | decomposition.md → Login/Launch section | |
| Config.xlsx keys and structure | config-sample.md → three-sheet reference, decision flowchart | |
| Extract Config keys from project | Run validate_xaml <project> --lint — lint 39 | |
| Lint regression tests | Run 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 fields | scaffolding.md → Key project.json Configuration Fields |
Ground Rules
Full rule definitions with rationale:references/rules.md. Rules below are referenced by ID.
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckinguipath-core/SKILL.md
Popularity
- Repository stars
- 107
- Repository forks
- 20
- 7-day trend score
- 23
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/marcelocruzrpa/uipath-ai-skills/uipath-core)