Skip to content

refact(skills): move task-list ownership from solution-design to planner#538

Open
RaduAna-Maria wants to merge 5 commits intomainfrom
fix/skills/move_task_list_from_solution_design_to_planner
Open

refact(skills): move task-list ownership from solution-design to planner#538
RaduAna-Maria wants to merge 5 commits intomainfrom
fix/skills/move_task_list_from_solution_design_to_planner

Conversation

@RaduAna-Maria
Copy link
Copy Markdown
Contributor

@RaduAna-Maria RaduAna-Maria commented May 4, 2026

Summary

  • Single source of truth for task lists. uipath-solution-design now produces architecture only;
    uipath-planner owns implementation tasks. Eliminates duplication between solution-design's
    per-template Implementation Plan sections and planner's plan format.
  • Load-bearing cross-skill contract. Every SDD now carries a ## Planner Handoff header (6
    fields) that the planner detects deterministically. Pipeline: PDD → solution-design (SDD) → planner
    (tasks.md) → execution.
  • Planner restructured into two lanes. PDD-driven (reads SDD, 0–2 prompts) and Non-PDD
    (elicitation, 1–5 prompts). SKILL.md slimmed from 341 → 117 lines (net -224); 4 new references
    extracted for load-on-demand.

Changes

uipath-solution-design

  • Removed ## Implementation Plan section from all 6 SDD templates (RPA, Agent, Flow, Case, Coded
    App, API Workflow). Replaced with a final numbered ## Next Steps section pointing the user at
    uipath-planner.
  • Added ## Planner Handoff header (6 fields, <!-- DO NOT RENAME --> marker) to all 6 templates,
    immediately after Document History.
  • SKILL.md: added When to Use This Skill, expanded Workflow section, dropped Critical Rules 8 &
    11 (Implementation Plan ownership / intent-based execution), added Critical Rules around the Planner
    Handoff marker, no Implementation Plan, and thorough testing. Added package-selection-guide.md to
    Reference Navigation. Description gains →uipath-planner redirect.
  • sdd-generation-guide.md: collapsed Phase 1 Steps 4 / 4.25 / 4.3 / 4.5 into one orchestrator step
    linking to canonical level homes. Deleted Phase 3 Step 3 (Create Live Tasks) and Step 4 (Execute
    Implementation Plan). Rewrote Phase 3 Step 2 to write the ## Planner Handoff header and prompt
    regenerate / keep / versioned-alongside on re-run. Added Phase 3 Step 3 (Hand Off to the Planner).
  • product-selection-guide.md: explicit canonical home for Levels 1, 1.75, 2.5 Part B, 3; Levels of
    Decision table gains an explicit ownership column. Level 3 references rewritten — flag in template,
    planner picks up.
  • rpa-product-guide.md: explicit canonical home for Levels 1.5, 2, 2.5 Part A; R-07 naming and
    REFramework guidance.

uipath-planner

  • SKILL.md slimmed from 341 → 117 lines (file is 161 lines including frontmatter and trailing
    content). Lane-based structure (Entry Guard → Lane A summary / Lane B summary).
  • 4 new references extracted (load-on-demand):
    • pdd-driven-lane-guide.md (168 lines) — Lane A end-to-end (read header, parse project list,
      derive tasks, write tasks.md, emit live tasks)
    • non-pdd-lane-guide.md (167 lines) — Lane B end-to-end (elicitation, project-type inference,
      filesystem detection, UI batch)
    • multi-skill-patterns-guide.md (132 lines) — the 6 named multi-skill patterns
    • plan-and-tasks-format.md (212 lines) — task row schema, identity tuple,
      regenerate-with-preservation, TaskCreate mapping, anti-hallucination rule
  • Description gains →uipath-solution-design redirect; TaskCreate, TaskUpdate, TaskList added to
    allowed-tools.
  • Question budget reframed to count AskUserQuestion calls (not individual questions); cap stays at
  • Dropped Stop conditions and test-coverage question — testing is always thorough; specialists handle
    their own pause points.
  • Regenerate-with-preservation: identity tuple (skill, project, subject) matches old tasks across
    SDD revisions; archive footer for removed tasks.

Tests

  • Added tests/tasks/uipath-solution-design/smoke_skill_activation.yaml (41 lines) and
    smoke_file_reading.yaml (55 lines).
  • Updated e2e_rpa_sdd/check_sdd.py, e2e_rpa_sdd.yaml, gap_detection.yaml, pdd_to_sdd.yaml,
    product_selection.yaml to assert the new ## Planner Handoff contract and removed Implementation
    Plan section.

Net file change

  • +1221 insertions, -934 deletions across 22 files (15 skill files + 7 test files)
  • 6 SDD templates: net ~ -540 lines (Implementation Plan sections removed; Planner Handoff header
    added)
  • Planner SKILL.md: -224 lines, offset by 4 references that load on demand

Test plan

  • bash hooks/validate-skill-descriptions.sh skills/uipath-planner/SKILL.md skills/uipath-solution-design/SKILL.md passes
  • All 6 SDD templates contain ## Planner Handoff and no ## .* Implementation Plan headings
  • All internal markdown links resolve (references/*.md from SKILL.md; cross-references between
    references)
  • Run a sample PDD through uipath-solution-design; confirm the generated SDD has a populated
    ## Planner Handoff header and ends with ## Next Steps
  • Load uipath-planner with the SDD path; confirm it detects the marker, reads the 6 fields,
    writes <process>-tasks.md, and emits live TaskCreate calls
  • Re-run: regenerate solution-design → run planner again → confirm "continue / regenerate"
    prompt; pick regenerate; verify completed tasks preserved via identity matching, removed tasks land
    in Archive footer
  • Entry guard: invoke planner with a .pdf PDD path → confirm hard-block redirect to
    uipath-solution-design; with skip SDD opt-out → confirm degraded inline reading
  • Non-PDD lane: invoke planner without an SDD; confirm elicitation respects the 5-call
    AskUserQuestion budget
  • Run tests/tasks/uipath-solution-design/smoke_skill_activation.yaml and
    smoke_file_reading.yaml

🤖 Generated with Claude Code

Solution-design now produces architecture only — SDDs end with a Next Steps
pointer at uipath-planner. The planner reads SDDs via the new ## Planner
Handoff header, derives tasks per the project list, and emits live TaskCreate
calls. Single source of truth for skill-routing prompts; clearer separation
between architecture (solution-design) and orchestration (planner).

Cross-skill contract:
- ## Planner Handoff heading is the load-bearing detection marker
- 6-field header (Execution autonomy, SDD scope, Project list section,
  Tasks file, Generated by, Generation date)
- Pipeline: PDD → solution-design (SDD) → planner (tasks.md) → execution

Solution-design changes:
- Removed Implementation Plan section from all 6 SDD templates
- Added ## Planner Handoff header + ## Next Steps to all 6 templates
- SKILL.md: added When to Use, fleshed out Workflow, dropped rules 8/11,
  added planner redirect to description, listed package-selection-guide
- sdd-generation-guide.md: collapsed Phase 1 Steps 4/4.25/4.3/4.5 into one
  orchestrator step linking to canonical level homes; deleted Phase 3 Steps
  3 and 4 (no more TaskCreate / execute-implementation flows); rewrote Phase
  3 Step 2 to write the Planner Handoff header
- product-selection-guide.md: explicit canonical home for Levels 1, 1.75,
  2.5 Part B, 3; clarified RPA-specific levels live in rpa-product-guide
- rpa-product-guide.md: explicit canonical home for Levels 1.5, 2, 2.5
  Part A and naming/REFramework guidance

Planner changes:
- SKILL.md slimmed from 385 to 163 lines; restructured around two lanes
  (PDD-driven, non-PDD) plus an Entry Guard
- Description rewritten with PDD redirect; TaskCreate/TaskUpdate/TaskList
  added to allowed-tools
- 4 new references extracted: pdd-driven-lane-guide.md,
  non-pdd-lane-guide.md, multi-skill-patterns-guide.md,
  plan-and-tasks-format.md
- Question budget reframed to count AskUserQuestion calls (not individual
  questions); cap stays at 5
- Dropped Stop conditions section and test coverage question — testing is
  always thorough, specialists handle their own pause points
- New regenerate-with-preservation logic: identity tuple matching preserves
  completed work across SDD revisions; archive footer for removed tasks

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 4, 2026

Claude finished @RaduAna-Maria's task in 3m 49s —— View job


PR Review: Move task-list ownership from solution-design to planner

  • Read review criteria and project conventions
  • Analyze full diff (git diff HEAD~1...HEAD)
  • Read all changed files in full for context
  • Verify SKILL.md frontmatter validity
  • Check all relative markdown links resolve
  • Check for cross-skill references
  • Verify no secrets/tokens/personal paths
  • Check CODEOWNERS entries
  • Compile review findings

Summary

This PR restructures the boundary between uipath-solution-design and uipath-planner. Solution-design now produces architecture-only SDDs with a ## Planner Handoff header as a load-bearing contract; planner reads that header and derives task lists. Implementation Plan sections are removed from all 6 SDD templates. Planner's SKILL.md is slimmed from 385→163 lines with 4 new on-demand reference files extracted.

Change-by-Change Review

1. skills/uipath-planner/SKILL.mdOK

Well-structured two-lane architecture. Description (240 chars) is well under the 1024 cap. name matches folder. Frontmatter includes TaskCreate, TaskUpdate, TaskList in allowed-tools — consistent with the new live-task emission responsibility. Critical Rules are numbered (5 rules), Entry Guard logic is clear and deterministic. Lane A/B summaries are bridge content with links to full guides — no duplication. Anti-patterns section expanded to 17 items covering common mistakes. Reference Navigation table links all 4 new reference files.

2. skills/uipath-planner/references/pdd-driven-lane-guide.mdOK

Clean 10-step Lane A guide. Step 1 documents the 6 Planner Handoff fields with fallback defaults. Step 2 handles resume (existing tasks.md). Steps 3-4 parse the SDD and pick multi-skill patterns. Step 5 handles UI targeting as a batched AskUserQuestion. Step 9 emits live TaskCreate with Rule G-8 (best-effort, never blocks). Lane A budget table correctly shows max 2 AskUserQuestion calls. Internal links to plan-and-tasks-format.md and multi-skill-patterns-guide.md all resolve.

3. skills/uipath-planner/references/non-pdd-lane-guide.mdOK

Lane B guide preserves the elicitation flow from the old SKILL.md. Correctly cross-references pdd-driven-lane-guide.md for UI targeting wording instead of duplicating it. Filesystem probe bash command is correctly scoped. Budget table shows max 5 calls — matches Critical Rule 3.

4. skills/uipath-planner/references/multi-skill-patterns-guide.mdOK

6 named patterns extracted cleanly. Each pattern now includes mandatory testing tasks that were absent in the old SKILL.md patterns. Pattern routing table for PDD-driven lane is a clean addition. Anti-patterns section (5 items) covers common mistakes.

5. skills/uipath-planner/references/plan-and-tasks-format.mdOK

Comprehensive format spec. Task row schema is clearly defined with field rules table. Anti-hallucination rule template included. Regenerate algorithm is well-specified (identity tuple matching, archive footer for removed tasks). TaskCreate mapping table covers all file→live-task field translations. Quality rules checklist (9 items) provides self-review criteria.

6. skills/uipath-solution-design/SKILL.mdOK

Added "When to Use This Skill" section. Critical Rules expanded: Rule 8 (Planner Handoff header), Rule 11 (no Implementation Plan), Rule 12 (thorough testing), Rule 13 (AskUserQuestion for Agent/Coded App gaps), Rule 14 (numbered-choice format). Anti-patterns expanded to cover the new boundary (items 6, 7, 15). Description (243 chars) well under cap. →uipath-planner redirect present. Reference Navigation table now includes package-selection-guide.md.

7. All 6 SDD templates — OK

All templates confirmed:

  • ## Planner Handoff heading present (with `` comment)
  • 6 fields in the handoff table (Execution autonomy, SDD scope, Project list section, Tasks file, Generated by, Generation date)
  • ## Next Steps section replaces the old Implementation Plan, pointing at uipath-planner
  • No ## .* Implementation Plan headings remain
  • Template-specific Project list section values are correctly differentiated (RPA: §10, Flow: §3+§7, Case: §15+§14, Agent: §9, Coded App: §10+§9, API Workflow: §10+§5)

8. skills/uipath-solution-design/references/sdd-generation-guide.mdOK

Phase 1 Step 4 correctly collapsed into a single orchestrator step that links to canonical level homes. Phase 3 Step 2 now writes the Planner Handoff header. Phase 3 Step 3 replaced "Create Live Tasks" / "Execute Implementation Plan" with "Hand Off to the Planner". Clear separation of concerns: solution-design creates progress-tracking tasks only (Rule G-8), implementation tasks belong to planner.

9. skills/uipath-solution-design/references/product-selection-guide.mdMedium

Levels of Decision table now has an explicit Canonical home column — good for navigation. However, the Solution overview SDD structure at line 348 still lists:

6. Consolidated Implementation Plan — task ordering across projects (integrated components built before their consumers)

This contradicts the PR's core goal (Critical Rule 11: "Do not generate an Implementation Plan inside the SDD"). The solution overview template doesn't exist as a file yet (it's described inline), but this line tells the agent to include an Implementation Plan section in solution-overview SDDs. It should be renamed or removed to match the new ownership model — e.g., 6. Planner Handoff — per-project handoff headers plus cross-project task ordering notes for the planner.

Fix this →

10. skills/uipath-solution-design/references/rpa-product-guide.mdOK

Added explicit canonical-home callout for Levels 1.5, 2, 2.5 Part A. R-07 naming convention and REFramework guidance sections added. Cross-references to product-selection-guide.md for Levels 1, 1.75, 2.5 Part B, 3 are correct.

What's Missing

  • Stale "Consolidated Implementation Plan" in solution overview structure (product-selection-guide.md:348) — contradicts the new ownership model. See finding feat(CodedWorkflows): Add coded workflows plugin #9 above.
  • No e2e test tasks for uipath-planner. tests/tasks/uipath-planner/ does not exist. uipath-solution-design has 3 test files but uipath-planner has zero. Given the significant refactor, test coverage for the new lane-based planner behavior would be valuable. Severity: Medium — most skills are not yet test-compliant.
  • Description validation hook could not be run due to sandbox restrictions, but manual character count confirms both descriptions are well under 1024 chars (240 and 243 respectively).

Area Ratings

Area Status Notes
Frontmatter ✅ OK Both skills have valid frontmatter, names match folders, descriptions under 1024 chars, redirects present
E2E Tests ⚠️ Medium No test tasks for uipath-planner; uipath-solution-design has existing tests
Skill Body ✅ OK Critical Rules, When to Use, Anti-patterns all present and well-structured in both skills
References & Assets ⚠️ Medium One stale "Consolidated Implementation Plan" reference in product-selection-guide.md:348
Repo Hygiene ✅ OK CODEOWNERS entries exist for both skills, no secrets/tokens/personal paths, no cross-skill folder references, changes scoped to the two affected skills

Issues for Manual Review

  • Planner Handoff field values in templates. Each template pre-fills Project list section with template-specific section references (e.g., §10 for RPA, §3 + §7 for Flow). These are correct per the current templates, but if template sections are renumbered in a future PR, the pre-filled values will drift. Consider whether this contract is documented clearly enough to survive template evolution.
  • Solution overview SDD template. The solution overview structure is described inline in product-selection-guide.md but has no corresponding template file in assets/templates/. This is pre-existing (not introduced by this PR), but with the new Planner Handoff contract it becomes more important — solution-overview SDDs need the handoff header too.
  • Lane A "§9 contains UI applications" reference. The SKILL.md Lane A summary (line 81) says "if §9 contains UI applications" but §9 is template-specific — it's Application Inventory for RPA, Project Structure for Agents, Integrated Components for Coded Apps. The pdd-driven-lane-guide.md Step 5 correctly scopes this to "the SDD's §9 Application Inventory", so the SKILL.md summary is slightly imprecise. Low severity since the full guide is authoritative.

Conclusion

This is a well-executed refactor that cleanly separates architecture (solution-design) from task planning (planner). The ## Planner Handoff header provides a deterministic, machine-readable contract between the two skills. The planner's SKILL.md restructuring into lane-based architecture with on-demand reference loading follows best practices for LLM usability.

One medium issue to fix before merge: rename "Consolidated Implementation Plan" in the solution overview SDD structure (product-selection-guide.md:348) — it directly contradicts the PR's stated goal and Critical Rule 11.

The rest is clean. Overall: request changes on the single medium finding above.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 4, 2026

⚠️ Smoke test coverage gap — the following changed skills have no tests under tests/tasks/:

  • uipath-planner

Consider adding smoke tests before merging.


- Build + deploy crosses skill boundaries (RPA build → platform deploy)
- A target product cannot exist without other products built first (Flow needs RPA processes that don't exist yet)
- Build + verify against a live app crosses skill boundaries (RPA build → interact verify → RPA fix)
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

this contradicst with https://github.com/UiPath/skills/pull/538/changes#diff-c473ef7065f347a715000f1bc1b32104a61bf7555b4826676151f51bbe780c3dR24 which is correct, interact is not needed and rpa skill already exists

```
1. uipath-rpa → build the workflow end-to-end
2. uipath-rpa → testing (mandatory)
3. uipath-interact → observe the live app, capture screenshots / snapshots to diagnose issues
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

this is integrated in rpa skill

**When it applies:** an automation already exists; the user wants to investigate a UI issue against the live app and fix it.

```
1. uipath-interact → interact with the live app, identify the UI issue
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

same as above

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.

2 participants