feat(coded-apps-skill) : Update coded-apps skill#686
Conversation
|
Consider adding smoke tests before merging. |
0eab5a9 to
d3eb42c
Compare
|
Claude finished @swati354's task in 6m 20s —— View job SummarySubstantial skill update: documents 6 new SDK methods (Feedback, Jobs control-plane, Entities query/delete, Assets/Processes getByName, Conversational Agent getAttachmentUploadUri), migrates all CLI flags to kebab-case, adds a 9-item Data Fabric anti-shapes section, and updates the deploy loop to require Change-by-Change Review1.
|
| Area | Status | Notes |
|---|---|---|
| Frontmatter | OK | name matches folder, description under 1024 chars, well-structured |
| E2E Tests | Issue | No tests/tasks/uipath-coded-apps/ directory (pre-existing gap) |
| Skill Body | OK | Critical Rules expanded with high-value guardrails; section order correct |
| References & Assets | Issue | conversational-agent.md example missing required upload headers; minor duplication in data-fabric.md |
| Repo Hygiene | OK | CODEOWNERS ✓, no secrets ✓, no cross-skill refs ✓, changes scoped ✓ |
Issues for Manual Review
- CLI flag correctness: I cannot verify that
--folder-key,--version,--client-id,--client-secret,--build-dir,--target-dir,--uipath-dir,--tenant-nameare the actual CLI flag names (vs. the prior camelCase forms). If the CLI hasn't been updated to accept kebab-case, every command example in this PR will break. Please confirm the CLI version that introduced this change. getAttachmentUploadUriupload headers: The PR description mentionsfileUploadAccess.headers,x-ms-blob-type: BlockBlob, and conditionalAuthorization— but the code example omits them. Please confirm which headers are actually required for the blob upload to succeed.uip or folders listoutput shape: The scripts assumed['Data'](PascalCase key). Verify this matches the actual--output jsonshape from the Orchestrator tool.Jobs.resumescope:oauth-scopes.mdlistsOR.Jobs.Writeforresume()butOR.Jobs(full) forstop()andrestart(). Verify this asymmetry is intentional.
Conclusion
Approve with minor changes. This is a high-quality, well-structured update that fills significant documentation gaps. The two actionable items before merge:
- Fix the
getAttachmentUploadUriexample to include required upload headers (the simplified version will cause agent failures on Azure Blob Storage). - Add blank line before
## Scopesindata-fabric.md(trivial formatting fix).
The duplication items (SKILL.md rule 14 vs pagination.md, data-fabric.md numberId guidance) are Medium and can be addressed in a follow-up.
1. New SDK methods documented
Feedback service (new subpath)
Feedback.getAll(options?)— list feedback across the tenant with filters byagentId,status,traceIdFeedback.getById(id, { folderKey })— fetch a single feedback recordreferences/sdk/feedback.md@uipath/uipath-typescript/feedbacktoimports.mdoauth-scopes.mdJobs (new control-plane methods)
Jobs.stop(jobKeys[], folderId, options?)Jobs.resume(jobKey, folderId, options?)Jobs.restart(jobKey, folderId)JobMethodsbound onJobGetResponse—job.getOutput(),job.stop(),job.resume(),job.restart()JobStopOptions,JobResumeOptions,JobMethodsEntities (Data Fabric)
Entities.deleteRecordById(entityId, recordId)— single delete, fires triggersEntities.queryRecordsById(id, options)— filter / sort / aggregate / group-byentity.deleteRecord(recordId),entity.queryRecords(options)EntityQueryFilter,EntityQueryFilterGroup,EntityQuerySortOption,EntityAggregateLogicalOperator,QueryFilterOperator,EntityAggregateFunction(runtime-exported in 1.3.7)Assets / Processes
Assets.getByName(name, options)— resolve by name within a folder (acceptsfolderId,folderKey, orfolderPath; supply exactly one)Processes.getByName(name, options)— same shapeConversational Agent
Conversations.getAttachmentUploadUri(conversationId, fileName)— lower-level alternative touploadAttachmentfor streaming/non-Filesources. Example shows the complete upload (mergesfileUploadAccess.headers, addsx-ms-blob-type: BlockBlob, conditionally attachesAuthorizationwhenrequiresAuth)2. Deploy loop updated to take
--folder-keyuip codedapp deploy --folder-key <GUID>is now the documented path;UIPATH_FOLDER_KEY=<GUID>env var is documented as the equivalent alternativeuip or folders list --output json, match on theNamefield (output rows are{ Key, Name, Path, Description, Type, ParentKey }— PascalCase)pack-publish-deploy.mdandcommands-reference.md(--folder-key,--base-url,--client-id,--build-dir,--main-file,--access-token, etc.)-v, --versionalias onpack,publish, anddeploy(deploy's-vis the target published version, different semantic from pack/publish's package version)uip or folders list-current-user→uip or folders list(CLI consolidation; default behavior is "current user's folders,"--allfor tenant-wide)3. Data Fabric anti-shapes section
New "read first" section at the top of
references/sdk/data-fabric.mddocumenting nine DF behaviors:numberIdintegers on every read pathCreateTime/UpdateTime/etc.) are row metadata, not domain fieldsIsNullfilter operatorvaluefor choice fields =numberIdas stringaggregates+groupByfield.fieldDataTypeis an object, not a string — read.namedownloadAttachmentto render; detect kind by magic-byte sniffing or optimistic<img>+onErrorfallback (neithercontentTypenor filename is reliable — DF returns genericapplication/octet-streamand storesnameas a bare UUID)