Skip to content
unity-batch logo

unity-batch

Unified batch query, preview-confirm-execute mutation, async job orchestration, and bulk scene cleanup. Use confirmToken to commit and poll jobs by jobId. Exact signatures via GET /skills/schema.

SKILL.md

Full skill instructions

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_execute requires a confirmToken from a preview, it cannot be called directly
  • batch_run does not exist → use batch_execute(confirmToken)
  • job_poll / job_result do not exist → use job_status to check and retrieve async job results
  • batch_delete / batch_move do not exist → use asset module for asset-level operations

Routing:

  • For asset-level bulk operations (move, copy, delete) → asset module
  • For workflow session/​task undo tracking → workflow module
  • 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.

ParameterTypeRequiredDefaultDescription
queryJsonstringNonullJSON query filter envelope
sampleLimitintNo20Max sample objects returned

batch_query_components

Query components with unified batch filters. Optional componentType narrows the result.

ParameterTypeRequiredDefaultDescription
queryJsonstringNonullJSON query filter envelope
componentTypestringNonullOptional component type constraint
sampleLimitintNo20Max sample objects returned

batch_query_assets

Query project assets by type, path pattern, and labels. Read-only.

ParameterTypeRequiredDefaultDescription
searchFilterstringNonullRaw Unity AssetDatabase filter string
folderstringNo"Assets"Search root folder
typeFilterstringNonullAsset type (prefix t: optional, e.g. Texture2D)
namePatternstringNonullCase-insensitive regex for filename
labelFilterstringNonullAsset label (prefix l: optional)
maxResultsintNo200Max results returned

batch_preview_rename

Preview batch renaming. mode supports prefix / suffix / replace / regex_replace.

ParameterTypeRequiredDefaultDescription
queryJsonstringNonullJSON query filter envelope
modestringNo"prefix"Rename mode
prefixstringNonullPrefix to add
suffixstringNonullSuffix to add
searchstringNonullPlain text search term
replacementstringNonullPlain text replacement
regexPatternstringNonullRegex search pattern
regexReplacementstringNonullRegex replacement text
sampleLimitintNoDefaultSampleLimitMax preview items

batch_preview_set_property

Preview setting a component property or field across queried targets.

ParameterTypeRequiredDefaultDescription
queryJsonstringNonullJSON query filter envelope
componentTypestringNonullTarget component type
propertyNamestringNonullProperty or field name
valuestringNonullLiteral value
referencePathstringNonullScene reference path
referenceNamestringNonullScene reference object name
assetPathstringNonullAsset reference path
sampleLimitintNoDefaultSampleLimitMax preview items

batch_preview_replace_material

Preview replacing Renderer materials across queried targets.

ParameterTypeRequiredDefaultDescription
queryJsonstringNonullJSON query filter envelope
materialPathstringNonullReplacement material asset path
sampleLimitintNoDefaultSampleLimitMax preview items

batch_execute

Execute a previously previewed batch operation by confirmToken. Large operations return a jobId.

ParameterTypeRequiredDefaultDescription
confirmTokenstringYes-Preview confirmation token
runAsyncboolNotrueRun as async job
chunkSizeintNo100Batch execution chunk size
progressGranularityintNo10Emit a progressEvent every N items processed

batch_report_get

Get a batch execution report by reportId.

ParameterTypeRequiredDefaultDescription
reportIdstringYes-Batch report identifier

batch_report_list

List recent batch reports.

ParameterTypeRequiredDefaultDescription
limitintNo20Max reports returned

job_status

Get status for an asynchronous UnitySkills job.

ParameterTypeRequiredDefaultDescription
jobIdstringYes-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 HTTP GET /​jobs/​{id}/​progress and Python client.get_job_progress(job_id, offset) — all three paths share the same response shape.

ParameterTypeRequiredDefaultDescription
jobIdstringYes-Job identifier
offsetintNo0Skip 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.

ParameterTypeRequiredDefaultDescription
jobIdstringYes-Job identifier
limitintNo100Max log entries returned

job_list

List recent UnitySkills jobs.

ParameterTypeRequiredDefaultDescription
limitintNo20Max jobs returned

job_wait

Wait for a UnitySkills job to finish or until timeoutMs elapses.

ParameterTypeRequiredDefaultDescription
jobIdstringYes-Job identifier
timeoutMsintNo10000Wait timeout in milliseconds

job_cancel

Cancel a UnitySkills job if the job supports cancellation.

ParameterTypeRequiredDefaultDescription
jobIdstringYes-Job identifier

batch_fix_missing_scripts

Preview batch removal of missing scripts. Execute with batch_execute(confirmToken).

ParameterTypeRequiredDefaultDescription
queryJsonstringNonullJSON query filter envelope
sampleLimitintNoDefaultSampleLimitMax preview items

batch_standardize_naming

Preview standardizing names by trimming whitespace and normalizing separators. Execute with batch_execute(confirmToken).

ParameterTypeRequiredDefaultDescription
queryJsonstringNonullJSON query filter envelope
separatorstringNo"_"Replacement separator
sampleLimitintNoDefaultSampleLimitMax preview items

batch_set_render_layer

Preview setting GameObject layers in batch. Execute with batch_execute(confirmToken).

ParameterTypeRequiredDefaultDescription
queryJsonstringNonullJSON query filter envelope
layerstringNonullTarget layer name
recursiveboolNofalseApply recursively to children
sampleLimitintNoDefaultSampleLimitMax preview items

batch_replace_material

Preview replacing materials in batch. Execute with batch_execute(confirmToken).

ParameterTypeRequiredDefaultDescription
queryJsonstringNonullJSON query filter envelope
materialPathstringNonullReplacement material asset path
sampleLimitintNoDefaultSampleLimitMax preview items

batch_validate_scene_objects

Analyze scene objects for missing scripts, missing references, duplicate names, and empty objects.

ParameterTypeRequiredDefaultDescription
issueLimitintNo100Max issues returned

batch_cleanup_temp_objects

Preview deleting temporary helper objects by common temp-name patterns. Execute with batch_execute(confirmToken).

ParameterTypeRequiredDefaultDescription
queryJsonstringNonullJSON query filter envelope
patternsCsvstringNonullComma-separated temp-name patterns
sampleLimitintNoDefaultSampleLimitMax preview items

batch_retry_failed

Re-run only the failed items from a previous batch execution report. Returns a new jobId and originalReportId.

ParameterTypeRequiredDefaultDescription
reportIdstringYes—Prior batch report ID to resume from
runAsyncboolNotrueWhether to run asynchronously (returns jobId)
chunkSizeintNo100Chunk 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.