Skill v1.0.3
currentAutomated scan100/1001 files
version: "1.0.3" name: unity-batch description: Unified batch and async-job orchestration — batch queries, preview-confirm-execute mutations, background job scheduling and polling, and bulk scene operations. Use when an operation touches many objects at once, running or polling long async jobs, or applying preview-then-commit bulk edits, even if the user just says "批量" or "一次性改很多". 统一的批量与异步任务编排(批量查询、预览-确认-执行变更、后台任务调度与轮询、批量场景操作);当用户要一次性操作大量对象、运行或轮询长时异步任务、或执行先预览后提交的批量编辑时使用。
Unity Batch Skills
Batch workflow orchestration for query, preview, execution, reports, and async jobs.
Operating Mode
本模块共 22 个 skill,按 Operation 区分为两类:
- 18 个 SemiAuto(query / preview / report / job 查询类):
batch_query_gameobjects/batch_query_components/batch_query_assets/batch_preview_rename/batch_preview_set_property/batch_preview_replace_material/batch_report_get/batch_report_list/job_status/job_progress/job_logs/job_list/batch_fix_missing_scripts/batch_standardize_naming/batch_set_render_layer/batch_replace_material/batch_validate_scene_objects/batch_cleanup_temp_objects。Approval 模式下可直接执行。 - 4 个 FullAuto(Execute 类,C# 未标
Mode走默认SkillMode.FullAuto):batch_execute/job_wait/job_cancel/batch_retry_failed。Approval 模式下首次调用返MODE_RESTRICTED,走 grant 协议。 - Auto / Bypass:两类都直接执行。不含 NeverInSemi 高危 skill(无 Delete/MayEnterPlayMode/MayTriggerReload 标记)。
注意:batch_execute(confirmToken)本身放行,但它执行的 preview 内容可能包括对场景对象的删除/改属性等高影响动作 —— 请确保batch_preview_*返回的 sample/risk 字段已审阅。confirmToken 一次性消费、过期需重新 preview。
DO NOT (common hallucinations):
- Always call a
batch_preview_*skill first —batch_executerequires aconfirmTokenfrom a preview, it cannot be called directly batch_rundoes not exist → usebatch_execute(confirmToken)job_poll/job_resultdo not exist → usejob_statusto check and retrieve async job resultsbatch_delete/batch_movedo not exist → useassetmodule for asset-level operations
Routing:
- For asset-level bulk operations (move, copy, delete) →
assetmodule - For workflow session/task undo tracking →
workflowmodule - For scene object validation →
batch_validate_scene_objects(this module) - For async job polling →
job_status/job_wait(this module)
Skills
batch_query_gameobjects
Query GameObjects with unified batch filters. queryJson supports name/path/instanceId/tag/layer/active/componentType/sceneName/parentPath/prefabSource/includeInactive/limit.
| Parameter | Type | Required | Default | Description | |
|---|---|---|---|---|---|
queryJson | string | No | null | JSON query filter envelope | |
sampleLimit | int | No | 20 | Max sample objects returned |
batch_query_components
Query components with unified batch filters. Optional componentType narrows the result.
| Parameter | Type | Required | Default | Description | |
|---|---|---|---|---|---|
queryJson | string | No | null | JSON query filter envelope | |
componentType | string | No | null | Optional component type constraint | |
sampleLimit | int | No | 20 | Max sample objects returned |
batch_query_assets
Query project assets by type, path pattern, and labels. Read-only.
| Parameter | Type | Required | Default | Description | |
|---|---|---|---|---|---|
searchFilter | string | No | null | Raw Unity AssetDatabase filter string | |
folder | string | No | "Assets" | Search root folder | |
typeFilter | string | No | null | Asset type (prefix t: optional, e.g. Texture2D) | |
namePattern | string | No | null | Case-insensitive regex for filename | |
labelFilter | string | No | null | Asset label (prefix l: optional) | |
maxResults | int | No | 200 | Max results returned |
batch_preview_rename
Preview batch renaming. mode supports prefix / suffix / replace / regex_replace.
| Parameter | Type | Required | Default | Description | |
|---|---|---|---|---|---|
queryJson | string | No | null | JSON query filter envelope | |
mode | string | No | "prefix" | Rename mode | |
prefix | string | No | null | Prefix to add | |
suffix | string | No | null | Suffix to add | |
search | string | No | null | Plain text search term | |
replacement | string | No | null | Plain text replacement | |
regexPattern | string | No | null | Regex search pattern | |
regexReplacement | string | No | null | Regex replacement text | |
sampleLimit | int | No | DefaultSampleLimit | Max preview items |
batch_preview_set_property
Preview setting a component property or field across queried targets.
| Parameter | Type | Required | Default | Description | |
|---|---|---|---|---|---|
queryJson | string | No | null | JSON query filter envelope | |
componentType | string | No | null | Target component type | |
propertyName | string | No | null | Property or field name | |
value | string | No | null | Literal value | |
referencePath | string | No | null | Scene reference path | |
referenceName | string | No | null | Scene reference object name | |
assetPath | string | No | null | Asset reference path | |
sampleLimit | int | No | DefaultSampleLimit | Max preview items |
batch_preview_replace_material
Preview replacing Renderer materials across queried targets.
| Parameter | Type | Required | Default | Description | |
|---|---|---|---|---|---|
queryJson | string | No | null | JSON query filter envelope | |
materialPath | string | No | null | Replacement material asset path | |
sampleLimit | int | No | DefaultSampleLimit | Max preview items |
batch_execute
Execute a previously previewed batch operation by confirmToken. Large operations return a jobId.
| Parameter | Type | Required | Default | Description | |
|---|---|---|---|---|---|
confirmToken | string | Yes | - | Preview confirmation token | |
runAsync | bool | No | true | Run as async job | |
chunkSize | int | No | 100 | Batch execution chunk size | |
progressGranularity | int | No | 10 | Emit a progressEvent every N items processed |
batch_report_get
Get a batch execution report by reportId.
| Parameter | Type | Required | Default | Description | |
|---|---|---|---|---|---|
reportId | string | Yes | - | Batch report identifier |
batch_report_list
List recent batch reports.
| Parameter | Type | Required | Default | Description | |
|---|---|---|---|---|---|
limit | int | No | 20 | Max reports returned |
job_status
Get status for an asynchronous UnitySkills job.
| Parameter | Type | Required | Default | Description | |
|---|---|---|---|---|---|
jobId | string | Yes | - | Job identifier |
job_progress
Get fine-grained progress events for a job via incremental polling. Use offset to fetch only new events since the last call (pass previous totalCount as next offset).
Note: Also exposed as HTTPGET /jobs/{id}/progressand Pythonclient.get_job_progress(job_id, offset)— all three paths share the same response shape.
| Parameter | Type | Required | Default | Description | |
|---|---|---|---|---|---|
jobId | string | Yes | - | Job identifier | |
offset | int | No | 0 | Skip first N events (use previous totalCount for incremental polling) |
Response fields: jobId, status, totalCount, offset, events[] (timestamp ms, progress, stage, description), terminal.
job_logs
Get structured logs for a UnitySkills job.
| Parameter | Type | Required | Default | Description | |
|---|---|---|---|---|---|
jobId | string | Yes | - | Job identifier | |
limit | int | No | 100 | Max log entries returned |
job_list
List recent UnitySkills jobs.
| Parameter | Type | Required | Default | Description | |
|---|---|---|---|---|---|
limit | int | No | 20 | Max jobs returned |
job_wait
Wait for a UnitySkills job to finish or until timeoutMs elapses.
| Parameter | Type | Required | Default | Description | |
|---|---|---|---|---|---|
jobId | string | Yes | - | Job identifier | |
timeoutMs | int | No | 10000 | Wait timeout in milliseconds |
job_cancel
Cancel a UnitySkills job if the job supports cancellation.
| Parameter | Type | Required | Default | Description | |
|---|---|---|---|---|---|
jobId | string | Yes | - | Job identifier |
batch_fix_missing_scripts
Preview batch removal of missing scripts. Execute with batch_execute(confirmToken).
| Parameter | Type | Required | Default | Description | |
|---|---|---|---|---|---|
queryJson | string | No | null | JSON query filter envelope | |
sampleLimit | int | No | DefaultSampleLimit | Max preview items |
batch_standardize_naming
Preview standardizing names by trimming whitespace and normalizing separators. Execute with batch_execute(confirmToken).
| Parameter | Type | Required | Default | Description | |
|---|---|---|---|---|---|
queryJson | string | No | null | JSON query filter envelope | |
separator | string | No | "_" | Replacement separator | |
sampleLimit | int | No | DefaultSampleLimit | Max preview items |
batch_set_render_layer
Preview setting GameObject layers in batch. Execute with batch_execute(confirmToken).
| Parameter | Type | Required | Default | Description | |
|---|---|---|---|---|---|
queryJson | string | No | null | JSON query filter envelope | |
layer | string | No | null | Target layer name | |
recursive | bool | No | false | Apply recursively to children | |
sampleLimit | int | No | DefaultSampleLimit | Max preview items |
batch_replace_material
Preview replacing materials in batch. Execute with batch_execute(confirmToken).
| Parameter | Type | Required | Default | Description | |
|---|---|---|---|---|---|
queryJson | string | No | null | JSON query filter envelope | |
materialPath | string | No | null | Replacement material asset path | |
sampleLimit | int | No | DefaultSampleLimit | Max preview items |
batch_validate_scene_objects
Analyze scene objects for missing scripts, missing references, duplicate names, and empty objects.
| Parameter | Type | Required | Default | Description | |
|---|---|---|---|---|---|
issueLimit | int | No | 100 | Max issues returned |
batch_cleanup_temp_objects
Preview deleting temporary helper objects by common temp-name patterns. Execute with batch_execute(confirmToken).
| Parameter | Type | Required | Default | Description | |
|---|---|---|---|---|---|
queryJson | string | No | null | JSON query filter envelope | |
patternsCsv | string | No | null | Comma-separated temp-name patterns | |
sampleLimit | int | No | DefaultSampleLimit | Max preview items |
batch_retry_failed
Re-run only the failed items from a previous batch execution report. Returns a new jobId and originalReportId.
| Parameter | Type | Required | Default | Description | |
|---|---|---|---|---|---|
reportId | string | Yes | — | Prior batch report ID to resume from | |
runAsync | bool | No | true | Whether to run asynchronously (returns jobId) | |
chunkSize | int | No | 100 | Chunk size per retry batch |
Exact Signatures
Exact names, parameters, defaults, and returns are defined by GET /skills/schema or unity_skills.get_skill_schema(), not by this file.