Skip to content

Restructure repo folder layout#41

Closed
bai-uipath wants to merge 2 commits intomainfrom
sherif/restructure-repo-folder-layout
Closed

Restructure repo folder layout#41
bai-uipath wants to merge 2 commits intomainfrom
sherif/restructure-repo-folder-layout

Conversation

@bai-uipath
Copy link
Copy Markdown
Contributor

Contribution from Sherif:

Hey! I restructured the UiPath/skills repo folder layout — moved all skills from the separate uipath/ and uipath-coded-agents/ directories into a unified skills/ directory with tiered  trust folders (official/, experimental/, community/). Also added a new README, agent discovery shims for Cursor/Codex/etc., and a skill template for contributors. No content was changed, just reorganized the structure.
I don't have write access to the repo so I can't push. Could you create a branch and push this on my behalf? I have a patch file with two commits ready to go. Here's how to apply it:

uisherif and others added 2 commits March 20, 2026 15:36
Move all skills from uipath/ and uipath-coded-agents/ into a single
skills/ directory organized by tier (official/, experimental/, community/).

- uipath-coded-workflows → skills/official/uipath-coded-workflow/
- uipath-rpa-workflows → skills/official/uipath-rpa/uipath-rpa-cli/
- uipath-flow → skills/official/uipath-flow/
- uipath-development → skills/official/uipath-development/
- uipath-servo → skills/experimental/uipath-servo/
- uipath-coded-agents/* → skills/official/uipath-coded-agent/
- activity-docs → skills/official/uipath-coded-workflow/references/activity-docs/
- hooks → hooks/ (repo root)

No content changes — pure structural reorganization.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Rewrite README.md to explain the repo as coding agent skills for UiPath
- Add AGENTS.md fallback for Windsurf, Zed, JetBrains
- Add .codex/agents/openai.yaml for OpenAI Codex discovery
- Add .cursor/rules/uipath-skills.mdc for Cursor discovery
- Add templates/SKILL-TEMPLATE.md for contributors
- Add next-steps.md tracking plugin consolidation task

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@uipreliga
Copy link
Copy Markdown
Collaborator

Code Review

Real Issues

1. Orphaned nested plugin.jsonskills/official/uipath-coded-agent/.claude-plugin/plugin.json
The file declares "skills": "./skills/" but the sub-skills (auth/, build/, deploy/, etc.) live directly in the parent directory, not under a skills/ subdirectory. This was carried over from the old uipath-coded-agents/ structure where they were at uipath-coded-agents/skills/auth/, etc. Either update the path or remove this file if the nested plugin manifest is no longer needed.

2. uipath-README-backup.md should probably not be committed — repo root
This 155-line backup of the old uipath/README.md contains 20+ internal links pointing to paths that no longer exist (e.g. skills/uipath-coded-workflows/references/...). It also references the old repo URL (github.com/UiPath/uipath-claude-plugins). If this is just for reference during the migration, consider keeping it out of the commit or adding it to .gitignore. If it's meant to stay, the links need updating.

3. License mismatch in templatetemplates/SKILL-TEMPLATE.md:6
The frontmatter says license: Apache-2.0 but the repo LICENSE file and all READMEs say MIT. Contributors using this template will set the wrong license.

4. README Quick Start references two pluginsREADME.md:33
The Quick Start instructs users to run both claude plugin install uipath@uipath-marketplace and claude plugin install uipath-coded-agents@uipath-marketplace. Since main already consolidated to a single plugin, this may need to be reconciled after rebase. The next-steps.md TODO about consolidation may already be done.

5. Empty globs: in Cursor rules.cursor/rules/uipath-skills.mdc:3
The globs: field has no value. With alwaysApply: false, this rule will likely never activate automatically in Cursor. Either set a meaningful glob pattern or remove the field if this is intended as a manual-only rule.

Nits

  • next-steps.md: Single TODO item about consolidating plugins. Could live as a GitHub issue instead of a committed file.
  • Skill catalog duplication: The same skill listing appears in README.md, AGENTS.md, and .cursor/rules/uipath-skills.mdc. Somewhat inherent to multi-agent support, but worth noting that adding/renaming a skill requires updating all three.
  • .codex/agents/openai.yaml: The skills_directory: ../../skills/ path resolves correctly but it's unclear if Codex actually consumes this file format (official docs reference AGENTS.md).

Heads-up for rebase

These aren't issues in the PR itself, but will need attention when rebasing onto current main:

  • marketplace.json — main consolidated to a single plugin ("source": "./", version 0.0.9). The branch still has the old two-plugin layout. Keep main's version.
  • plugin.json — main has version 0.0.9, branch has 0.0.8. Keep main's version.
  • hooks/ensure-uip.sh — main added an is_windows() guard for @uipath/servo install. The branch doesn't have it. Keep main's guard.
  • resources-guide.md and test-manager-guide.md — added on main under skills/uipath-platform/references/. Need to be migrated to skills/official/uipath-development/references/ during rebase.

Positive observations

  • The skills/official/ + skills/experimental/ tiered structure is clean and intuitive.
  • All 300+ file renames are at 100% similarity — no content corruption during the move.
  • Breaking the monolithic uipath-coded-agents SKILL.md into focused sub-skills (auth, build, run, evaluate, etc.) is a real improvement.
  • The SKILL-TEMPLATE.md is a good addition for standardizing new skill authoring.

@uipreliga
Copy link
Copy Markdown
Collaborator

Additional Code Review Findings

The existing review caught several issues. Here are additional findings from a holistic repo analysis:

Critical

1. Broken ../../references/activity-docs/ relative paths — 40+ links in two skills

  • skills/official/uipath-coded-workflow/SKILL.md
  • skills/official/uipath-rpa/uipath-rpa-cli/SKILL.md

On main, skills lived at skills/X/ and references/activity-docs/ was at the repo root, so ../../references/activity-docs/ resolved correctly. The restructure moved skills one level deeper (skills/official/X/) and moved activity-docs inside the coded-workflow skill (skills/official/uipath-coded-workflow/references/activity-docs/), but left all relative paths unchanged. They now resolve to skills/references/activity-docs/ — which doesn't exist.

The coded-workflow SKILL.md should use references/activity-docs/ (no ../../). The RPA skill has no local activity-docs copy at all, so it needs either a copy, symlink, or a different referencing strategy.

High

2. Directory names don't match frontmatter name: fields

Directory Frontmatter name: Mismatch
uipath-coded-workflow/ uipath-coded-workflows singular vs plural
uipath-rpa/uipath-rpa-cli/ uipath-rpa-workflows "cli" vs "workflows"
uipath-coded-agent/uipath/ uipath collides with root plugin name

This can confuse both agents and contributors about canonical skill names.

Medium

3. SKILL-TEMPLATE.md is dead on arrivaltemplates/SKILL-TEMPLATE.md
The template prescribes frontmatter (license, compatibility) and sections (Commands Reference, Examples, Troubleshooting) that zero actual skills follow. Every skill uses a different structure. Either update the template to match what skills actually look like, or remove it.

4. Duplicated "Determining Package Version" algorithm
Nearly verbatim in both uipath-coded-workflow/SKILL.md and uipath-rpa-cli/SKILL.md (only diff: coded/ vs activities/ in the path). Dual-maintenance burden.

5. Frontmatter schema inconsistency across skills

  • uipath-development and uipath-flow use metadata.allowed-tools
  • uipath-servo and all coded-agent sub-skills use top-level allowed-tools
  • uipath-coded-workflow and uipath-rpa-cli have no allowed-tools at all
  • Only coded-agent sub-skills have user-invocable: true
  • Description styles vary: some use "TRIGGER when / DO NOT TRIGGER when", others use user-intent quotes

Not clear if agents parsing these care, but standardizing would reduce ambiguity.

6. rpa-tool vs uip rpa command inconsistencyskills/official/uipath-development/SKILL.md:107-122
Uses standalone rpa-tool list-instances / rpa-tool start-studio while every other skill uses uip rpa prefix. Pre-existing from main but carried forward in the rename.

7. README repo structure lists nonexistent directoriesREADME.md:52-55
Shows uipath-coded-apps/ and community/ as "coming soon" but neither directory exists.

Low

8. ensure-uip.sh: fragile error detectionhooks/ensure-uip.sh:110
ensure_uip_tool uses grep -qi "error" on stdout to detect failures. Will false-positive on "0 errors found" and false-negative on failures without "error" in the message. Should check exit code instead.

9. ensure-uip.sh: silently mutates global npm confighooks/ensure-uip.sh:65-79
ensure_github_packages_registry permanently sets @uipath:registry and writes the GH_NPM_REGISTRY_TOKEN into the user's global .npmrc. No cleanup, no warning. Consider using a project-level .npmrc instead.

10. ensure-uip.sh not marked executablehooks/ensure-uip.sh
File is 644. Works because hooks.json invokes via bash "...", but conventionally should have +x.

Copy link
Copy Markdown
Collaborator

@gabrielavaduva gabrielavaduva left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

to mark them as experimental these are the recommended ways from claude

`There's no built-in "experimental" frontmatter field for Claude Code skills. Here are your options:

Option 1: Flag it in the description


name: my-skill
description: "[EXPERIMENTAL] Does X — still in development, may change."

Option 2: Add a warning in the skill content


name: my-skill
description: Does X

⚠️ EXPERIMENTAL: This skill is in development. Behavior may change.

Skill instructions...

Option 3: Restrict to manual-only invocation

Use disable-model-invocation: true so Claude won't auto-trigger it — users must explicitly call /my-skill:

name: my-skill
description: "[EXPERIMENTAL] Does X"
disable-model-invocation: true

This is the safest approach for skills that aren't ready for automatic use yet, since it prevents Claude from invoking them on its
own.`

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants