Skip to content

πŸ’ [v1.201] feat(hitl-skill): add Case Management surface β€” hitl-casetask-action.md + SKILL.md routing - #2765

Closed
github-actions[bot] wants to merge 1 commit into
release/v1.201from
feat-hitl-case-surface-CP-to-release-v1-201
Closed

πŸ’ [v1.201] feat(hitl-skill): add Case Management surface β€” hitl-casetask-action.md + SKILL.md routing#2765
github-actions[bot] wants to merge 1 commit into
release/v1.201from
feat-hitl-case-surface-CP-to-release-v1-201

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

What

Adds Human-in-the-Loop support for the Case Management surface to the uipath-human-in-the-loop skill. Supersedes #541 (closed β€” same branch, force-pushed after a rebase onto latest main plus fixes described below; GitHub won't allow reopening a closed PR whose branch was force-pushed).

Changes

SKILL.md

  • Adds Case surface detection: if caseplan.json is present (root type case-management:root), route to hitl-casetask-action.md
  • Step 3 now presents two options for Case: QuickForm and App-based
  • Step 5 has a Case section linking to the reference doc

references/hitl-casetask-action.md (new file)
Two paths, confirm before writing:

Path When to use
QuickForm Structured form fields, no deployed app. Schema lives in a separate .hitl.json file alongside caseplan.json. Action task gets context[] entries: hitlType: "quick", _schemaFileId, hitlSchemaId.
App-based Existing deployed Action Center app. hitlType: "custom" + =bindings.* references.

Key implementation detail for QuickForm: the .hitl.json file uses a unified fields[] array where each field has a direction property ("input" / "output" / "inOut").

Also documents that every action task written via direct JSON β€” QuickForm or App-based β€” needs entryConditions[] (e.g. current-stage-entered) on the task node itself. This is a general Case Management structural requirement, not HITL-specific, but its absence from the doc caused the agent to inconsistently add it, which surfaced as a uip maestro case validate failure (Task has no entry rules) during local verification below.

Eval tests

  • smoke_09_case_quickform.yaml β€” QuickForm lifecycle: creates caseplan.json, adds a QuickForm task, checks .hitl.json file + context entries
  • quality_12_case_path_selection.yaml β€” Path selection for a data-enrichment scenario: should pick QuickForm (not App-based)

Verification (actually run locally, not just described)

Ran both new tests plus a regression sample of 8 existing uipath-human-in-the-loop smoke/quality tests via coder-eval against this branch:

Task Result
skill-hitl-smoke-case-quickform (new) SUCCESS, 1.000
skill-hitl-quality-case-path-selection (new) SUCCESS, 1.000
7 existing smoke/quality regression tests SUCCESS, 1.000 each
skill-hitl-smoke-neg-admin Pre-existing known-flaky llm_judge test (0.4), already slated for deletion via #1920/#1921 β€” unrelated to this change

Along the way, fixed two test-authoring bugs found in the original tests (not skill bugs): path: "*.hitl.json" isn't glob-matched by this repo's coder-eval version (treated as a literal filename), and a grep -L bindings-check had non-portable exit-code semantics between BSD and GNU grep. Both criteria now use find-based run_command checks matching this repo's existing convention (see e.g. uipath-coded-apps tests). Also added metadata.caseExitRules to both tests' seed fixtures β€” a pre-existing case-level completion-rule requirement unrelated to HITL that a bare-bones seed caseplan.json was missing.

Manually confirmed the actual produced artifacts match the documented shapes:

  • .hitl.json has fields[] + direction (not separate inputs/outputs/inOuts arrays)
  • caseplan.json action task has data.context[] with hitlType: "quick", _schemaFileId, hitlSchemaId
  • No data.formType or inline data.schema in caseplan.json
  • root.data.uipath.bindings[] unchanged for the QuickForm path

πŸ€– Generated with Claude Code


Automatically cherry-picked from #2056 to release/v1.201 by @dushyant-uipath.

Adds Case Management as a supported HITL surface: QuickForm (Path 1) and
app-based action task (Path 2) authoring via direct JSON write into
caseplan.json, plus a matching fix to the Maestro BPMN surface's node
shape (same underlying QuickForm schema mechanism, same bugs).

Both surfaces verified live against Studio Web: the QuickForm task's
data.inputSchema/inputs/outputs (Case) and uipath:inputSchema/
HitlTaskArguments (BPMN) are required for the Edit Schema canvas to open,
and _schemaFileId is a server-assigned file ID that has to be resolved
and patched back after upload rather than invented as a placeholder UUID.
BPMN also needed bpmndi:BPMNEdge diagram-interchange entries for the
canvas connector lines to render.

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
@dushyant-uipath

Copy link
Copy Markdown
Collaborator

Superseded by #3108, which carries this same cherry-pick plus a follow-up fix (#3107). Closing to avoid confusion.

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