content-workflow-asset-task-processing
Workflow-owned processing: Immutable inventory, plan revisions, per-item failure isolation, decision memory, commit gates, and the Workflow 2 handoff remain in
content-workflow-cli scene process. Use the scene tool frozen in the large-scene request only for per-asset inspection, rendering, and accepted authoring. Existing usd-cli material-task adapters remain supported where selected; changing a low-level backend must not remove batch orchestration or resume.
Run Workflow 2 over qualified (manifest_id, asset_id, task_id) work items.
Let the driving agent choose its plan; do not bake domain archetypes, task
ordering, or automatic result propagation into the runtime.
Prepare
Load
manifest_catalog.jsonand every selected finalized manifest.Load every requested domain skill and write
task_catalog.jsonusingTaskCatalogfromcontent_agent_workflows.asset_task_processing.contracts. Write one task request per catalog entry. Put user guidance in the request'sadditional_instructionsfield, copying scene-level instructions exactly fromlarge_scene_run.jsonwhen present. Keep this guidance task-wide; do not duplicate it per asset or prim.Mechanically expand each task over processable assets in its selected view:
content-workflow-cli scene process prepare \ --manifest-catalog MANIFEST_CATALOG.json \ --task-catalog TASK_CATALOG.json \ --output-dir RUN/02-asset-tasks \ --input-digest PHASE_INPUT_DIGESTThis writes immutable
asset_task_inventory.jsonand separate mutableasset_task_run_state.json. Do not edit either manually.Survey the complete work matrix and available evidence before committing the first result. Read every task request, summarize the applicable user guidance in the plan, and cite its frozen SHA-256. Write a plan draft, then preserve it as an immutable revision:
content-workflow-cli scene process record-plan \ --output-dir RUN/02-asset-tasks \ --plan-file PLAN_DRAFT.md
Process
- Choose asset-major, task-major, mixed, or concurrent progression from the evidence and resource limits. Revise the plan when new evidence warrants it.
- Process only eligible representatives. Do per-item scene inspection,
OVRTX rendering, and accepted material/physics authoring through the
workflow-owned usd-cli session. Serialize scene loads and GPU renders where
resources are constrained. Copy the parent scene task's frozen
scene_backendandscene_session_scopeinto each domain task request'sprocessing_policy. Withscene_session_scope: per_asset, create an independent usd-cli named session and checkpoint lineage for every work item. Close that state before moving to the next item; a retry starts fresh state for only the failed/deferred item and never reopens a completed item's sealed artifacts. - Consult prior results as explicit evidence when useful. Record fully
qualified citations in
informed_by_results; never copy an earlier result merely because an asset looks similar. - Write one independent
AssetTaskResultper completed work item, including original-path mapping, domain payload paths, plan revision, validation, and warnings. - Commit the result, validator report, and matching
DecisionLedgerEntryin onecommit-itemcall. Do not write the ledger and result index as separate manual steps; partial commits intentionally fail the handoff gate. - Keep each domain's preview layer separate and provisional. Preserve failed
or deferred items for explicit retry. Use an
AcceptedWaiverfor any required item intentionally omitted.
Use the phase module's status, show-item, begin-item, commit-item,
fail-item, and waive-item operations for state transitions. These are a
thin script over the package runtime, not another product-level CLI.
Material Tasks
Before processing material work, read
references/material_tasks.md. It defines the
survey and batch commands, authored-appearance evidence policy, display-color
matching route, visual review gates, and frozen task-request digest contract.
Run those steps through usd-cli for low-level scene operations, then commit
through the pure-Python asset_task_processing state machine:
content-workflow-cli scene material-task \
match-display-color \
--processing-dir RUN/02-asset-tasks \
--work-item-id TASK_ID:MANIFEST_ID:ASSET_ID \
--scope /EXACT/SOURCE/ROOT \
--top-k 5
content-workflow-cli scene material-task run-batch \
--processing-dir RUN/02-asset-tasks \
--batch-plan MATERIAL_BATCH_PLAN.json
Complete
Finalize and seal the phase only after required work is completed or waived:
content-workflow-cli scene process finalize \
--output-dir RUN/02-asset-tasks
The runtime computes processing_result.json and its output digest from the
catalogs, referenced manifests, immutable inventory, mutable state, plan
revisions, ledger, index, completed results, validator reports, and domain
outputs. Return that result to the umbrella handoff validator.
Do not author durable opinions onto the original scene here. Workflow 3 owns collection and harmonization.
When changing processing behavior, preserve immutable inventory semantics, task-request digests, per-item result independence, decision ledger integrity, and deterministic handoff validation.