Skip to content

feat(maestro-case): build missing agents and agentic processes inline during planning#1622

Open
song-zhao-25 wants to merge 13 commits into
mainfrom
feat/case-create-missing-agent
Open

feat(maestro-case): build missing agents and agentic processes inline during planning#1622
song-zhao-25 wants to merge 13 commits into
mainfrom
feat/case-create-missing-agent

Conversation

@song-zhao-25

@song-zhao-25 song-zhao-25 commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Summary

Teaches the uipath-maestro-case skill to build a missing agent inline during Phase-1 planning instead of only leaving a placeholder. When an SDD-referenced agent can't be resolved at the Rule 17 empty-lookup gate, the skill offers a third option — Create the missing agent(s) inline — alongside force-pull and skip. On Create it builds each selected agent as an in-solution low-code sibling by spawning a sub-agent that invokes the uipath-agents skill (parallel, capped at 10), registers the siblings, and rediscovers + binds them via registry --local. Built agents enter Phase 2 as normal resolved tasks.

Agent-only first cut; the orchestration is written type-agnostically so other non-connector kinds can be enabled later.

⚠️ Depends on an unreleased CLI flag

This feature relies on uip maestro case registry <search|list|get> --local, which ships in CLI PR #2614 (still open). The published @uipath/cli does not yet have it. The skill probes for --local and gracefully degrades — when the flag is absent the Create option is suppressed and behavior is exactly as today. So this PR is safe to merge independently, but the feature only activates once a CLI with --local is released. Please don't expect the Create path to be exercisable in CI until then.

What changed (10 files, docs-only)

  • SKILL.md — Rule 17 gains the agent-only Create option (constraint + redirect); the "never auto-invoke other skills / on-demand creation is future" anti-pattern is carved out for the agent path (non-agent kinds + uipath-planner keep no-auto-invoke); allowed-tools adds Agent (the sub-agent launcher).
  • references/registry-discovery.md — 3-option gate + new § Create-on-Missing orchestration (capability probe → multi-select → parallel sub-agents --skip-solution-registration → sequential uip solution project addresources refresh → rediscover/verify/bind).
  • references/plugins/tasks/agent/planning.md — new § Creating an Agent inline: the typed-contract derivation, the self-contained build brief handed to uipath-agents, the failure contract.
  • impl-json.md, placeholder-tasks.md, phased-execution.md, phase-0-interview.md, planning.md, bindings-v2-sync.md, case-commands.md — consistency edits + --local command docs.

Key design decisions

  • Skill-driven build via sub-agent → uipath-agents (not a manual handoff): agent-build knowledge stays in uipath-agents; the case skill passes a pinned brief and verifies the result.
  • Gate-selected only — SDD content alone never triggers a build (the SDD is untrusted sole input; the gate selection is the human-approval checkpoint).
  • Binding reuses name+folder with the solution_folder sentinel (resourceKey="solution_folder.<name>"); the sibling ships inside the solution .uipx and co-deploys — never a separate tenant publish.
  • Contract pins only the fields the case wires (typed Case Variable → type; unwired → the builder free-styles); type-vocabulary mapping is uipath-agents' concern.
  • Rediscovery uses registry search "<name>" --local (matches by name); get --local matches only entityKey/project Id.

Verification

  • Adversarial review across 4 dimensions (contradictions, completeness vs plan, skill-review rubric, CLI-fact accuracy). One critical defect caught and fixed: the verify step originally used get "<Name>" --local, which matches only entityKey — switched to search.
  • allowed-tools token verified against the Claude Code docs: the sub-agent launcher is Agent (not Task, which is the unrelated task-list family) — corrected in e306645a.
  • All relative links/anchors in the changed files resolve.

Runtime resolution — risk materialized and fixed (commit fb467d8)

The previously-documented open risk (runtime resolution of the solution_folder sentinel) materialized in a live end-to-end run and is now fixed.

  • Symptom: deploy succeeded and the case became Active, but invoking it in Studio Web failed with folder not exist.
  • Cause: the case task binding authored folderPath default = the solution_folder sentinel. Deploy correctly provisions the sibling into the real solution folder (resource refresh + debug_overwrites.json), but the deployed case package's runtime binding was never remapped — so the running case used the literal string solution_folder as the Orchestrator folder. CLI source confirms the case package's bindings[].default is passed through verbatim; validate accepts both solution_folder and "".
  • Fix: the runtime folderPath binding default is now "" (empty = co-located; the case starts the sibling in its own deployed folder). The solution_folder sentinel stays ONLY in the resource-identity layer (resourceKey, resources/solution_folder/, bindings_v2.json key/value.folderPath) — they are intentionally decoupled for inline siblings, with a resourceKey carve-out so the <folderPath>.<name> formula doesn't collapse to .name. The over-stated "deploy verified" doc claims were corrected to deploy-provisions / runtime-needs-"". Applies to both the agent and agentic-process paths.
  • Verified: the corrected binding was applied and invocation succeeds on alpha.uipath.com (2026-06-24).

Tests

Deferred — they need the released --local flag plus fixtures (a pre-seeded solution with a built sibling). Planned: a smoke (gate-offer), an integration (local-rediscovery), and an e2e (io-mismatch), grading artifacts rather than commands. Tracked as a follow-up once #2614 ships.

🤖 Generated with Claude Code

@github-actions

github-actions Bot commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Claude finished @song-zhao-25's task in 4m 2s —— View job


PR Review: feat(maestro-case): build missing agents inline during planning

  • Read review criteria and project conventions
  • Read full diff and existing PR conversation
  • Read all changed files in full context
  • Apply skill-specific checks (links, cross-refs, secrets, CODEOWNERS)
  • Post review findings

Summary

Adds a third option ("Create the missing agent(s) inline") to the Rule 17 empty-lookup gate in uipath-maestro-case. When an SDD-referenced agent can't be resolved, the skill now offers to build it as an in-solution low-code sibling by spawning a sub-agent that invokes uipath-agents, then registers and binds it via registry --local. The feature is gated behind a CLI capability probe (--local flag) and degrades gracefully when absent. Well-structured 10-file docs-only change across SKILL.md, 8 reference files, and 1 plugin planning file.

Change-by-Change Review

1. skills/uipath-maestro-case/SKILL.md (+4/-3)

Severity: OK

Three targeted changes: allowed-tools gains Agent (verified correct per Claude Code docs — Agent is the sub-agent launcher, not Task). Rule 17 is expanded with the Create option + agent-only constraint + --local suppression. The anti-pattern carve-out for agent inline-create is cleanly scoped — non-agent kinds and uipath-planner keep the no-auto-invoke rule. Phase 1 bullet adds a one-sentence bridge linking to the authoritative registry-discovery.md § Create-on-Missing. Frontmatter unchanged (name matches, description under 1024 chars).

2. skills/uipath-maestro-case/references/registry-discovery.md (+57/-9)

Severity: OK

This is the authoritative home for the cross-cutting orchestration. The new § Create-on-Missing build and rediscovery (§0–4 + Reject case) is well-structured: capability probe (§0), multi-select (§1), parallel build with cap (§2), sequential registration (§3), rediscover/verify/bind (§4), and reject case. The gate prompt shape is updated cleanly — option labels are tighter (Force pull and re-resolve instead of Yes, force pull and re-resolve). The search vs get distinction for --local is correctly documented throughout (lines 98, 101, 104). The --local semantics paragraph (PascalCase keys, shape differences between search/get/list) is detailed and useful.

One small note: §3 references [implementation.md](implementation.md) § Step 6.0b — the file exists and the cross-reference is valid.

3. skills/uipath-maestro-case/references/plugins/tasks/agent/planning.md (+50/-1)

Severity: OK

The new § Creating an Agent inline section covers the agent-specific parts: I/O contract computation (Step 1), builder brief template (Step 2), binding shape (Step 3), and failure contract. The layering is clean — the cross-cutting orchestration delegates here for agent-specific content, and this file links back to registry-discovery.md § Create-on-Missing for the orchestration. The pinned I/O contract logic (wired-to-typed-var → type pinned, wired-but-type-unknown → name only, unwired → omit) is well-specified. The builder brief template is self-contained. The v1 low-code only caveat and runtime solution_folder caveat are honest.

The folder-path field table update (line 15) adds the solution_folder sentinel with a link — bridge-level, clean.

4. skills/uipath-maestro-case/references/placeholder-tasks.md (+23/-2)

Severity: OK

Adds three pieces: (1) a bridge callout at the top of § Upgrade Procedure clarifying built-inline agents skip the upgrade procedure; (2) the completion-report shape for inline-built agents (separate from placeholder listing); (3) three new anti-patterns. All bridge-level — detail defers to registry-discovery.md § Create-on-Missing. The search vs get distinction is correctly noted in §2.

5. skills/uipath-maestro-case/references/case-commands.md (+8/-0)

Severity: OK

Documents the --local flag for list/search/get with examples, option table entry, and a --local semantics paragraph covering key shapes. The get --local caveat (matches only entityKey/project Id, never display name) is clearly called out — consistent with the search vs get guidance elsewhere.

6. skills/uipath-maestro-case/references/phased-execution.md (+4/-1)

Severity: OK

Adds a row to the Phase 2 task-shape table for agent built inline (not a placeholder, fully resolved). Adds a bridge callout in the placeholder section. Updates completion report §4 to mention inline-built agents. All bridge-level with links to authoritative docs.

7. skills/uipath-maestro-case/references/planning.md (+4/-0)

Severity: Low

Two callouts added: (1) after the task-type catalog noting agent-only create-on-missing (bridge + link, line 99); (2) in §3.4 "Missing agent — offer to create first" (line 126). The §3.4 callout summarizes the orchestration flow in ~2 sentences ("spawns a sub-agent that invokes uipath-agents, then rediscovers + binds via registry --local") before linking. This is borderline per reference pointer discipline — the summary is slightly more than pure bridge, but it's needed to explain why the agent doesn't immediately fall through to the unresolved steps below. Acceptable.

8. skills/uipath-maestro-case/references/plugins/tasks/agent/impl-json.md (+3/-1)

Severity: OK

Adds a callout at Step 0 clarifying that built-inline siblings skip tasks describe (their I/O was already read via search --local during planning). Adds folderPath default for the solution_folder sentinel at Step 1. Both are agent-specific binding guidance — not duplication.

9. skills/uipath-maestro-case/references/bindings-v2-sync.md (+2/-0)

Severity: OK

Single callout explaining the solution_folder.<name> binding as the author-side counterpart mapped by resource refreshdebug_overwrites.json. Correctly notes the CLI writes that file, not the skill.

10. skills/uipath-maestro-case/references/phase-0-interview.md (+2/-2)

Severity: OK

Two edits: (1) the Placeholder — resolve later option now notes that Phase 1's Rule 17 gate additionally offers inline create for agents; (2) the empty-match batch prompt adds the Create option. Both are bridge-level annotations linking to registry-discovery.md § Create-on-Missing.

What's Missing

  • Tests — No new test tasks cover the Create-on-Missing feature. The PR body explicitly acknowledges this and explains the dependency on unreleased CLI --local flag (PR #2614). Existing tests in tests/tasks/uipath-maestro-case/ cover other flows but not this one. Medium — tracked as follow-up, acceptable given CLI dependency.
  • Nothing else identified. CODEOWNERS is present. All relative links resolve. No secrets, no binary files, no cross-skill file references. Changes are scoped to uipath-maestro-case only.

Area Ratings

Area Status Notes
Frontmatter OK name matches, description under 1024 chars, allowed-tools correctly adds Agent
E2E Tests Medium Deferred — blocked on unreleased --local CLI flag; explicitly documented
Skill Body OK Rule 17 updated cleanly, anti-pattern carve-out well-scoped, Phase 1 bullet is bridge-level
References & Assets OK Authoritative content in registry-discovery.md + agent/planning.md; other files use bridge references. Minor verbosity in planning.md §3.4 callout (Low)
Repo Hygiene OK CODEOWNERS present, no secrets, scoped changes, skill-status.json entry exists

Issues for Manual Review

  • --local flag accuracy. The PR documents --local semantics (PascalCase keys, search vs get matching behavior, solution discovery walk) based on an unreleased CLI (PR #2614). These claims can't be verified against the published CLI. Once the flag ships, the documented shapes should be spot-checked.
  • solution_folder runtime resolution. The PR honestly notes this is "not yet end-to-end verified on a tenant" — validate accepts it structurally but deploy-time behavior is unproven. Worth tracking.
  • Sub-agent behavior. The builder brief template instructs uipath-agents to build non-interactively with --skip-solution-registration and return structured JSON. Whether the agents skill reliably follows this contract when invoked as a sub-agent is a runtime concern not testable from docs alone.

Conclusion

Clean, well-structured PR. The architectural layering is sound: cross-cutting orchestration in registry-discovery.md, agent-specific contract/brief/binding in agent/planning.md, bridge references everywhere else. The capability probe + graceful degradation design means the feature is safe to merge independently of the unreleased CLI flag. The main gap is test coverage, which is acknowledged and blocked on external dependencies. Approve — no blocking issues.

@song-zhao-25 song-zhao-25 force-pushed the feat/case-create-missing-agent branch from 199721c to 45812c8 Compare June 23, 2026 05:52
@song-zhao-25 song-zhao-25 changed the title feat(maestro-case): build missing agents inline during planning feat(maestro-case): build missing agents and agentic processes inline during planning Jun 23, 2026
song-zhao-25 and others added 13 commits June 24, 2026 13:16
When an SDD-referenced agent can't be resolved at the Rule 17 empty-lookup
gate, the skill now offers a third option — "Create the missing agent(s)
inline" — alongside force-pull and skip. On Create, it builds each selected
agent as an in-solution low-code sibling during Phase-1 planning by spawning
a sub-agent that invokes the uipath-agents skill (parallel, capped at 10),
registers the siblings via `uip solution project add`, then rediscovers and
binds them via `uip maestro case registry search "<name>" --local`. Built
agents enter Phase 2 as normal resolved tasks, not placeholders.

Agent-only first cut; the orchestration is written type-agnostically so other
non-connector kinds can be enabled later. Reverses the prior "plain-text
handoff, never auto-invoke" stance and carves out the SKILL.md anti-pattern
for the agent path (non-agent kinds and uipath-planner keep no-auto-invoke).

Key properties:
- Gate-selected agents only; SDD content alone never triggers a build.
- Capability probe on `registry --local`; gracefully degrades to today's
  placeholder behavior when the CLI lacks the flag.
- Binding reuses name+folder with the `solution_folder` sentinel
  (resourceKey="solution_folder.<name>"); ships inside the solution .uipx.
- Contract pins only wired fields (typed Case Variable -> type; unwired ->
  agent free-styles); type-vocabulary mapping is uipath-agents' concern.
- Rediscovery uses `registry search "<name>" --local` (matches by name);
  `get --local` matches only entityKey/project Id, never the display name.
- I/O verify rewires matched fields, warns on missing/extra, never blocks.
- solution_folder runtime resolution carries an explicit unverified caveat.

Edits across SKILL.md (Rule 17, anti-pattern), planning.md, registry-discovery.md
(new Create-on-Missing orchestration), agent plugin planning.md (new Creating an
Agent inline) + impl-json.md, placeholder-tasks.md, phased-execution.md,
phase-0-interview.md, bindings-v2-sync.md, case-commands.md (--local docs).
Verified by adversarial review (contradictions, completeness, rubric, CLI-fact
accuracy). Tests deferred until the CLI `registry --local` flag ships (PR #2614).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Follow-up to the inline Create-on-Missing agent build. Addresses skill-review
findings against the feature:

- Grant the Task tool in SKILL.md allowed-tools — the Create path spawns build
  sub-agents (one per agent, capped at 10) but the restrictive allowlist omitted
  the agent-spawning tool, so the path would stall under a host that honors it.
- Add --output json to the inline `registry search --local` commands in
  impl-json.md and placeholder-tasks.md (both parse PascalCase output).
- Phase-0 bucket-C empty-match line now lists the conditional Create option.
- Anchor the phased-execution completion-report link (#completion-report-shape).
- Note both `solution project add` positionals must be absolute (§3 Register).
- Add a rename-on-name-collision rule in §1 Select (the solution_folder.<name>
  sentinel and exact-name search rediscovery both key on the name).
- Fix the concurrency-cap precedent (uipath-automation-discovery caps at 3).
- Mark the builder-brief I/O slots as substitution placeholders; replace
  "pick a sensible type" with purpose-anchored wording.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The create-missing-agent feature spawns sub-agents (one per agent, invoking
uipath-agents). The skill uses an explicit allowed-tools allowlist, so the
sub-agent launcher must be listed by its exact runtime name. Verified against
the Claude Code docs (tools-reference.md / skills.md): the launcher tool is
`Agent`; `Task` is an unrelated family (the TaskCreate/Update/List task-list
tools). A wrong token is silently denied by the permission system, which would
have blocked all inline agent builds at runtime. Correct `Task` -> `Agent`.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…gent brief

The agent-plugin build brief said "the caller registers" without pointing to
where. Add an explicit link from agent/planning.md § Creating an Agent inline to
registry-discovery.md § Create-on-Missing Step 3 (sequential `uip solution
project add` + `resources refresh`), and note it must precede rediscovery (which
reads the .uipx Projects[]). No behavior change — surfacing only.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Remove the "agent-side analog of § Creating a Connection" framing from the
  Creating-an-Agent-inline intro — connection mechanics don't transfer; the
  load-bearing pointer to § Create-on-Missing remains.
- Drop the `uipath-automation-discovery` concurrency-cap precedent citation in
  § Create-on-Missing (keeps "cap is a resource throttle, not a safety mechanism").

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ct EntityKey claim

L1 CLI dry-run against a local --local build surfaced two doc inaccuracies in
the create-on-missing rediscovery step:

- `registry --local --output json` PascalCases I/O property keys (poText ->
  PoText, classification -> Classification), so reading field names from
  `Resource.{Inputs,Outputs}` mis-cases them and would wire fields the agent
  doesn't have (outputs have no case-preserving fallback). Verify/bind now reads
  case-preserving names + types from the sibling's raw `entry-points.json`;
  `--local` is used only to locate/confirm the sibling.
- `Resource.EntityKey` is an opaque derived key, NOT "the .uipx ProjectKey
  pre-pack" — verified: `get --local` matches that EntityKey but rejects the
  .uipx Projects[].Id. Audit-only; the node binds by name+folder.

Verified on CLI 1.197.0 (feat/case-registry-local): the full chain links
(solution init -> agent init --skip-solution-registration -> input/output add
-> project add -> search --local finds the sibling) and a solution_folder.<name>
agent binding passes `uip maestro case validate` (isolated against a known-valid
fixture). get-by-name returns 0 (search-by-name required); duplicate names are
CLI-blocked.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…d resolution

L2 deploy spike (alpha.uipath.com/CaseManagement) verified end-to-end that a
local-only sibling bound via solution_folder.<name> co-deploys with the case at
`uip solution deploy run` and resolves to the created Orchestrator folder.

Also corrects an earlier inference: `uip maestro case debug` builds the .uis
from the ENTIRE solution directory (case-debug-studio-web-service.ts:353-356,
buildSolutionPackageFromDir(solutionDir)) and uploads the whole solution to
Studio Web — so a registered sibling resolves at debug too, with no
debug_overwrites mapping needed (that maps pre-existing tenant resources;
resources refresh skips in-solution siblings by design). Prerequisite for both
deploy and debug: register the sibling in the .uipx (Step 3) first.

Closes the documented open risk on solution_folder runtime resolution.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…e (idempotency)

Resolution previously checked only the tenant index (agent-index.json); --local
was used only after building. So an agent that already existed as an in-solution
sibling (a re-run, a user-built agent, or a prior Create) was not seen at
resolution -> it fell to the Create gate -> `agent init` hit "directory exists".

Add a local-sibling check between "tenant index missed" and the gate: if
`registry search "<name>" --type agent --local` returns an exact-name
Source:local match, resolve it directly (bind solution_folder.<name>, read I/O
from the sibling's entry-points.json) and do NOT enter Create. Only agents
absent from BOTH the tenant index and local siblings reach the gate. This makes
planning idempotent and treats in-solution siblings as first-class resolvable
resources.

Residual-corner guard: a sibling whose dir exists but was never registered
(interrupted between agent init and project add, so --local can't see it) is
treated as already-built in the failure contract -- register + rediscover,
never Retry/Skip.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ess Orchestration)

Generalizes the inline-create feature from agent-only to {agent, agentic
process}. The type-agnostic orchestration (gate, multi-select, parallel build,
register, --local rediscover, bind, idempotency) is unchanged; this adds the
process-specific build path and the dual-type wording.

- NEW plugins/tasks/process/planning.md § Creating an agentic process inline:
  scaffold `uip maestro bpmn init --skip-solution-registration`, brief ->
  `uipath-maestro-bpmn`, bind `solution_folder.<name>` + resourceSubType
  "ProcessOrchestration". AGENTIC_PROCESS only — regular RPA process is not
  inline-buildable.
- process/planning.md: local-sibling resolution before the gate (idempotency)
  + solution_folder folder-path branch; process/impl-json.md: built-inline note.
- registry-discovery § Create-on-Missing: route per kind (uipath-agents /
  uipath-maestro-bpmn), `--type agent|processOrchestration`, generalized gate +
  multi-select + the "resolve in-solution siblings before gating" note.
- SKILL.md Rule 17 + anti-pattern, planning.md §3.1/§3.4 callouts,
  placeholder-tasks / phased-execution / phase-0 notes: agent -> {agent,
  agentic process}.

I/O note: BPMN has no I/O CLI verb (unlike `uip agent input/output add`) and
`validate` won't catch a .bpmn<->entry-points drift, so the build must keep both
consistent and verify treats the .bpmn as authoritative. Pre-verified:
solution_folder + ProcessOrchestration binding passes `case validate`; --local
discovers a process sibling with I/O (after CLI fix dc3fd5a9).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Adversarial review (contradiction/completeness/rubric/CLI-facts) of the
agentic-process extension surfaced 2 high + 3 medium + 3 low; all fixed:

- H1 (case-commands.md): `tasks describe --type processOrchestration` is invalid
  (CLI DESCRIBABLE_TYPES excludes it; `--type process` routes to the
  processOrchestration index). Corrected the flag doc.
- H2 (placeholder-tasks Upgrade Procedure): generalized the callout + Step 2 to
  cover a declined/failed agentic-process sibling (`--type processOrchestration`
  lookup), which was silently dropped.
- M1: collapsed the process Step-3 binding to a delta vs the agent section
  (was near-verbatim duplication).
- M2: made the .bpmn↔entry-points guidance actionable — verify reads
  entry-points.json (build-kept-consistent); .bpmn (`<uipath:variables>`) is
  source-of-record; on drift re-invoke uipath-maestro-bpmn, don't hand-patch.
- M3 (phase-0 Resolve table): split regular process/rpa (process-index.json,
  entityKey) from AGENTIC_PROCESS (processOrchestration-index.json, reaches the
  Create gate); dropped the misapplied `processOrchestrationId` identifier.
- L1 (SKILL.md Phase-1 bullet), L2 (completion-report tables: Resource column +
  agentic-process example + retitled reject section), L3 (registry-discovery
  per-type verify read + the bare-`process` code-span).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…sistency fixes

Three review findings on the create-on-missing agentic-process path:

- HIGH — built-sibling I/O read used the agent entry-points.json shape for both
  kinds. Branch by kind: agent keys I/O under entryPoints[0].input/output.properties;
  agentic process (Process Orchestration) keys it under inputSchema/outputSchema.properties.
  Reading input.properties on a BPMN sibling returns undefined -> empty contract ->
  silent mis-wire on every agentic-process Create. (planning.md, registry-discovery.md)

- MEDIUM — build brief hard-coded `bpmn init --skip-solution-registration` and asserted
  an OptedOut envelope the build-target skill (uipath-maestro-bpmn) documents nowhere.
  Delegate scaffolding to that skill; keep the (CLI-verified) skip-registration flag as
  the caller's no-register constraint; drop the unverified status assertion. (planning.md)

- MEDIUM — bindings-v2-sync.md claimed `resources refresh` maps the inline sibling via
  debug_overwrites.json, contradicting the newer L2-verified note. In-solution siblings
  are skipped by refresh and resolve via whole-solution packaging, not debug_overwrites;
  point to the L2 note as the single source. (bindings-v2-sync.md)

Plus four LOW/NIT doc fixes in the same blocks:
- .bpmn I/O lives in root <uipath:variables> (inputs scoped to the start event by
  elementId), not "start-event <uipath:variables>". (planning.md, registry-discovery.md)
- collapse the duplicated verify-read mechanics in planning.md to a pointer to §4. (planning.md)
- add --output json to the inline registry search. (impl-json.md)
- scope the L2 resolution note: deploy is spike-verified, debug is inferred from the
  packaging behavior, not separately spiked. (agent/planning.md)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… the solution_folder sentinel

The create-on-missing path authored the case agent/process task binding
with folderPath default = the `solution_folder` sentinel. That passes
`validate`, and deploy correctly *provisions* the sibling into the real
solution Orchestrator folder — but the deployed case package's runtime
binding is never remapped, so when the case starts the sibling it uses
the literal string "solution_folder" as the folder → runtime failure
"folder not exist" at invocation in Studio Web.

Fix: the runtime folderPath binding default is "" (empty = co-located;
the case starts the sibling in its own deployed folder). The
`solution_folder` sentinel stays ONLY in the resource-identity layer —
resourceKey, resources/solution_folder/ declarations, bindings_v2.json
key + value.folderPath — which drove correct provisioning. The runtime
folderPath and the identity sentinel are intentionally decoupled for
inline siblings; added a resourceKey carve-out so the <folderPath>.<name>
formula doesn't collapse to ".name". Corrected the over-stated
"deploy verified" claims to deploy-provisions / runtime-needs-"".

Applies to both the agent and agentic-process (ProcessOrchestration)
inline-build paths. Runtime-verified on alpha.uipath.com 2026-06-24.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Make the agentic-process inline-build brief mode-agnostic: lead with the
"caller registers via uip solution project add" contract and reframe
--skip-solution-registration as conditional (meaningful only when the builder
scaffolds via `uip maestro bpmn init`; a no-op when it hand-authors the .bpmn).
uipath-maestro-bpmn documents manual XML authoring, not an init flow, so the
prior hard instruction assumed a scaffold mode that skill doesn't teach.

Also: cap the Create multiSelect at 4 options (batch when more are empty);
de-duplicate the folderPath="" rationale to the canonical agent Step 3 while
keeping the value + "folder not exist" warning everywhere; document probe
caching for the pre-gate sibling check; note the dropped sibling stays
registered in the .uipx (reject case); state Create's dependency on the type
skill being installed (degrades to placeholder if absent).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@song-zhao-25 song-zhao-25 force-pushed the feat/case-create-missing-agent branch from fb467d8 to 643d790 Compare June 24, 2026 20:57
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.

1 participant