feat(uipath-planner): need-driven selection, production SDD contracts, lane hardening#2087
Conversation
…s, best-practice templates Harden uipath-planner as a need-driven SDD creator. - Recommend the to-be from a synthesized multi-factor need profile (decision nature/determinism, input structure, API-first, volume/cost, risk/reversibility -> HITL, auditability, coordination shape, change/volatility) instead of keyword matching; add the canonical per-task -> component placement model. - Add Maestro BPMN as a first-class, conditional primary scope: new bpmn-sdd-template.md, Level 1 row + signals + Flow/Case/BPMN disambiguation, Level 1.75 Pass A/A.5, Lane A routing, platform availability split, capability-map row. Never a default. - Integration Service: reuse-before-build custom connectors (uip is connectors list); route new connectors to uipath-connector-builder; add uipath-connector-builder and uipath-ixp to the task-skill enum and capability map. RPA may call APIs directly. - Reusability and shared assets (RPA Libraries, custom connectors, reusable components) as a first-class design concern; leaf resources built before consumers. - Best-practice conformance across all 7 SDD templates: Source PDD link, Assumptions, DEV/UAT/PROD environments, IS Connections + access method, Solution/Project breakdown (repo, attended/unattended), Reusable Components, Non-Functional Requirements. Automation-type-agnostic: per-type sections only for in-scope types, no N/A filler. - Validate deployment type (Automation Cloud / Automation Suite + version / standalone) from uip login status; ask when a custom host is ambiguous. - Accept non-PDD process-knowledge sources (Confluence page, BPMN model, transcript, SOP, requirements) or a bare prompt with clarifying questions; PDD stays the preferred input. Always extract AS-IS and TO-BE. - Support PDD formats md/txt/pdf/docx; add cross-platform PowerShell twins (docx-extract.ps1, sdd-to-docx.ps1) alongside the .sh scripts. Frontmatter kept close to main (light touch).
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
…, lane hardening - Level 0 suitability gate + estate sweep (verified uip verbs, discover-don't-invent drift fallback) - absorption fold + light-vs-real orchestration: mixed capabilities in one host never force Maestro - extraction test (placement rule 6): host-native first for Functions / API Workflows / connectors - resource locality: machine-local work (Excel, files, on-prem DB, terminals) → RPA; Automation Relay as confirmed option for on-prem HTTP APIs - Functions survive the full pipeline: placement → Level 1.75 derived components → host-template contract → Lane A tasks - SME readiness: default-carried vs blocking items; Status ready = structurally derivable, assumptions travel into tasks - authoring-surface purge: delivery model is the only environment constraint - solution-root + draft/ready handoff contract; deterministic Lane A root algorithm - cloud entitlement gating fixed (no lookup-optional shortcut); single-project non-trigger in frontmatter - new evals: need_driven_selection, maestro_engine_disambiguation, single_project_queue; docx conversion script twins
…e, and the RPA alternative for pure code - language: TypeScript (default) / JavaScript / Python across SKILL.md row, placement table, Step 4 bullet, and the 4 host templates - runtime: serverless or robot-hosted (roadmap) — robot-hosted Functions run inside the environment and reach on-prem endpoints; desktop apps / interactive UI stay RPA - rule 6 inverse guard + Level 1 bullet: headless deterministic compute prefers a Function over minting an RPA process
…ct redirect, add explicit ambiguous->here signal Gate failed at recall.yes 82.4% (<85%): the absolute 'Single-project request, no PDD/SDD->that product's skill' redirect suppressed ambiguous design-intent prompts. Now scoped to known-product builds, with a positive redirect for 'what should I build' asks; paid for by trimming redundant when_to_use variants. Combined frontmatter 1530/1536.
| 1. <component skill> → scaffold any unbuilt component | ||
| 2. <component skill> → testing for the component (mandatory) | ||
| 3. uipath-solution → deploy the component to Orchestrator via `uip solution` (RPA always needs uipath-solution; agents / coded-apps self-deploy) | ||
| 4. uipath-maestro-flow → design and wire the flow against the published components, validate, finalize per `Solution scope` |
There was a problem hiding this comment.
Why was Solution scope removed? It was added in this PR by someone form the agents team, either leave it as is or check with them if the approach has changed since then
There was a problem hiding this comment.
Intentional removal. A runtime contract should not be relevant at solution/design time — where the flow is authored and published is the build skill's own workflow, not a plan decision. Asking the user "SW or local solution" passes our technical implementation detail to users as a design question, which is a bad pattern anyway. Also worth noting the field had no actual consumer: uipath-maestro-flow never references Solution scope anywhere (neither on main nor on this branch), so nothing read it at runtime. If the agents team still wants a publish-target contract, it should live inside the specialist's workflow rather than the plan header — happy to loop in @radugheo to confirm.
…reenfield clarifier, pin-at-build cross-ref, terse plan-path rule
Summary
Hardens
uipath-plannerinto a need-driven solution designer across seven review rounds. The planner now recommends architecture from the synthesized need — never keywords, never authoring surfaces — and its handoff contracts survive interruption, drift, and open questions.Tool selection
uiplisting verbs per estate type (--all-folders, drift fallback: discover via--helpor Orchestrator API — never invent a verb)### Coded Functionscontract → Lane A tasksContracts
Status: draft→ready, solution-root block, one canonical tasks file, deterministic Lane A root algorithmdefault-carried(travel into tasks as assumptions) vsblocking(closed 4-item list keepsdraft) — no deadlock, no dishonest readyTests
need_driven_selection(determinism gate),maestro_engine_disambiguation,single_project_queue;e2e_rpa_sddchecker extended (Project Mode Decision, Need profile,Status: ready); Lane B evals strengthened.ps1twins added for the docx conversion scriptsValidation
hooks/validate-skill-descriptions.shpasses; eval YAMLs validated against the installed coder_eval schema (TaskDefinition.model_validate)uip1.196.4 (ixp group flagged newer-CLI-only inline)Pending
coder-evalruns for the touched/added planner tasks (needs sandbox/tenant; passing-run claims to be attached before merge)🤖 Generated with Claude Code