Skip to content

🚧feat(coded-apps): document Validation Station subcomponents + smoke test#2082

Open
nickgatej wants to merge 1 commit into
mainfrom
feat/add-skills-for-vs-subcomponents
Open

🚧feat(coded-apps): document Validation Station subcomponents + smoke test#2082
nickgatej wants to merge 1 commit into
mainfrom
feat/add-skills-for-vs-subcomponents

Conversation

@nickgatej

Copy link
Copy Markdown

Summary

  • Add a Compose-your-own layout: subcomponents section to skills/uipath-coded-apps/references/widgets/validation-station.md, documenting the five composable Validation Station subcomponents (DocumentViewer, CompactDocTypeField, CompactFieldsForm, CompactTableEditor, CompactBusinessRules) plus the useBucketArtifacts hook, with a runnable end-to-end example.
  • Cover the four easy-to-get-wrong must-knows: fetch artifacts once and share, give sdk/data/folderId to CompactFieldsForm only, set persistent: false for static grids (StrictMode blank-render), and hide the form's built-in Business Rules / Doc Type panels when rendering those standalone. Mirrored in the Anti-patterns section.
  • Explain the shared instanceId store that links the subcomponents (field selection → viewer highlight → table editor → rule focus).
  • Add pending-publish smoke test tests/tasks/uipath-coded-apps/ui_validation_station_subcomponents_smoke.yaml (mode:build) grading an agent composing a custom DU review screen from the subcomponents.

Test plan

  • /lint-task tests/tasks/uipath-coded-apps/ui_validation_station_subcomponents_smoke.yaml is clean
  • Task is held out of running experiment suites until the npm release exports the subcomponents (documented in the YAML header)
  • Relative links in the reference doc resolve

🤖 Generated with Claude Code

Document the compose-your-own-layout subcomponents export path for the
Validation Station widget (DocumentViewer, CompactDocTypeField,
CompactFieldsForm, CompactTableEditor, CompactBusinessRules +
useBucketArtifacts), including the four easy-to-get-wrong must-knows and
matching anti-patterns. Add a pending-publish smoke test that grades an
agent composing a custom DU review screen from those subcomponents.

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

github-actions Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Claude finished @nickgatej's task in 3m 15s —— View job


Coder-eval task lint (advisory)

1 task YAML changed; verdicts: 0 Critical, 0 High, 0 Medium, 1 Low, 0 OK.

Rubric: .claude/commands/lint-task.md. This check is advisory and never blocks merge.

Evidence of passing run

High — PR body does not claim the changed task has been run and passed. The YAML header documents this intentionally (PENDING PUBLISH — … this eval will fail by design), so the task cannot pass yet. Once the npm release exports the subcomponents, please edit the PR description to add a line like:

Ran skill-coded-apps-ui-validation-station-subcomponents-smoke locally and it passed.

Per-task lint

tests/tasks/uipath-coded-apps/ui_validation_station_subcomponents_smoke.yaml — verdict: Low

Issues:

  • [Low] Meaningful coverage (line 95-99): sdk= count check (grep -oE 'sdk=') counts all occurrences in the file, not only JSX props. An agent writing const sdk = useAuth() (assignment) instead of const { sdk } = useAuth() (destructuring) would produce count=2 and fail despite correctly passing sdk to only one subcomponent. Destructuring is the common pattern so this is unlikely, but the criterion is fragile.

Suggested fixes:

  • Tighten the grep to match only JSX prop context, e.g. grep -oE '\bsdk=\{' src/components/ReviewWorkspace.tsx (matches sdk={...} in JSX, not sdk = ... in variable declarations).

Within-PR duplicates

  • No duplicate clusters detected.

Conclusion

⚠ 1 task has issues, max severity Low (rubric) + High (missing passing-run claim — expected for a pending-publish task). Advisory only — not blocking merge.

Overall the task is well-designed: the prompt describes the goal (custom layout with specific panels) without leaking the subcomponent API surface the skill teaches; criteria cover all four documented must-knows with count-constrained greps and a negative check against the all-in-one <ValidationStation>; no self-report pattern; no near-duplication with the existing e2e_du_validation_station_app.yaml (which tests the all-in-one widget + full deploy lifecycle, a materially distinct surface).


@github-actions

github-actions Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Claude finished @nickgatej's task in 2m 25s —— View job


PR Review: Validation Station Subcomponents

  • Read review criteria and project conventions
  • Read full diff and changed files
  • Check relative links resolve
  • Check for cross-skill references, secrets, paths
  • Verify test task structure and tags
  • Check CODEOWNERS
  • Post review findings

Summary

Adds a Compose-your-own layout: subcomponents section to the existing Validation Station widget reference, documenting five composable subcomponents and a data hook, plus anti-patterns. Includes a new smoke test task that grades whether an agent correctly composes a custom DU review screen from those subcomponents.

Change-by-Change Review

1. skills/uipath-coded-apps/references/widgets/validation-station.md — +99 lines

Severity: Low

Well-structured addition. The new section follows the existing doc's patterns, covers the four must-knows clearly, and the code example is complete and consistent with the Web App integration example above it. Anti-patterns mirror the must-knows correctly.

All relative links resolve:

  • ../create-action-app.md
  • ../oauth-scopes.md ✅ (pre-existing)
  • ../sdk/action-center.md ✅ (pre-existing)
  • #static-assets--vite-plugin ✅ (internal anchor, pre-existing heading at line 38)

No cross-skill references. No secrets or personal paths.

Minor items:

  • Line 320<FIRST_VERSION_WITH_SUBCOMPONENTS> placeholder is intentional (pending npm publish), but once the version is known this should be updated. Fine for now given the PENDING PUBLISH header on the test.

  • Line 327 — The internal anchor link [Static Assets](#static-assets--vite-plugin) renders with title-case in the link text but targets a heading with an em-dash (## Static Assets — Vite Plugin). GitHub's anchor generation handles this correctly, but worth a quick manual check after merge since em-dash anchoring can vary across renderers.

2. tests/tasks/uipath-coded-apps/ui_validation_station_subcomponents_smoke.yaml — +123 lines (new)

Severity: Medium

Good test that validates four concrete must-knows from the doc via run_command checks. The PENDING PUBLISH header clearly explains why it shouldn't run yet. Prompt is goal-oriented and doesn't hand-hold. Success criteria use side-effects (file existence, grep), not self-reports.

Issues:

  • Missing sandbox block (Low). The test template shows sandbox: node: {} for tasks that need Node. This task is source-only (no uip or npm), so omitting is arguably fine — but including an empty sandbox: block would be consistent with other coded-apps smoke tasks. Not blocking.

  • run_limits instead of inheriting (Low). The task declares run_limits: expected_turns: 10, turn_timeout: 600 at the top level. Per the template and conventions, tasks should inherit from the experiment config and only override what differs. expected_turns and turn_timeout are reasonable overrides for a source-only smoke test, but run_limits is the coder_eval field (vs. the template's comment-style). This is fine — just noting it follows a slightly different shape than the template's max_iterations.

  • sdk= count check could false-positive (Low, line 94-98). The criterion grep -oE 'sdk=' ... | wc -l counts occurrences of sdk= in the file. If the agent destructures or assigns sdk to a variable like const sdk = ... (unlikely in JSX but possible in the preamble), that would inflate the count. The description says "Exactly one sdk= JSX prop" — the grep doesn't distinguish JSX props from JS assignments. Low risk since the prompt constrains the agent to a single component, but worth noting. A more precise pattern like [< ]sdk= or sdk={ in JSX context would be tighter.

    Fix this →

What's Missing

  • No e2e test. Per CONTRIBUTING.md, new skill coverage needs ≥1 smoke + ≥1 e2e. This PR adds a smoke test only. Given the subcomponents are pending npm publish (making e2e infeasible today), this is acceptable — but an e2e task should follow once the package ships. Medium.
  • Version placeholder in docs. <FIRST_VERSION_WITH_SUBCOMPONENTS> at line 320 needs to be filled in once known. Tracked implicitly by the PENDING PUBLISH header.

Area Ratings

Area Status Notes
Frontmatter OK No frontmatter changes (reference file, not SKILL.md)
E2E Tests Issue Smoke test present; e2e test deferred (acceptable given pending publish)
Skill Body OK No SKILL.md changes
References & Assets OK Clean addition, all links resolve, no duplication
Repo Hygiene OK CODEOWNERS already covers /skills/uipath-coded-apps/ and /tests/tasks/uipath-coded-apps/; no secrets, no cross-skill refs

Issues for Manual Review

  • Domain accuracy of subcomponent props/behavior. The useBucketArtifacts hook signature, persistent semantics, instanceId store linking, and CompactFieldsForm being the sole persistence owner are all domain claims this reviewer cannot verify against the actual npm package. These should be validated by someone with access to the @uipath/ui-widgets-validation-station source.
  • Sample repo link. The link to document-validation-subcomponents-app in the UiPath SDK repo (line 389) points to a sample that may not exist yet. Verify the sample is published before or alongside this merge.

Conclusion

Clean, well-scoped PR. The documentation is thorough and follows existing patterns. The smoke test is well-designed with specific criteria for each must-know. The only structural gap is the missing e2e test, which is reasonably deferred. Approve — the Low/Medium items above are non-blocking suggestions.

@nickgatej nickgatej changed the title feat(coded-apps): document Validation Station subcomponents + smoke test 🚧feat(coded-apps): document Validation Station subcomponents + smoke test Jul 16, 2026
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