From layerline
Manage Layerline project assets — create, update, archive, restore, comment, and track output completion. Use whenever the user asks Claude Code to add a new asset to a project, change an asset's status, browse assets, comment on an asset, mark a modeling/texturing/rigging output as done, or configure how an asset is exported. Covers the asset CRUD tools, asset-comment threading with @mentions and
How this skill is triggered — by the user, by Claude, or both
Slash command
/layerline:assetsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Workflow for managing project assets in Layerline (`mcp__layerline__*` tools, asset domain).
Workflow for managing project assets in Layerline (mcp__layerline__* tools, asset domain).
An asset is a top-level production unit in a project — a character, prop, level, etc. It has:
Characters, Props, Environments, …) → tags are also folder namesModeling, Texturing, Rigging, …). Each output tracks its own completion based on linked tasks; you can also override per-output completion manually.layerline:storage) holding the files that belong to this assetlist_assets(projectId) // all visible assets
get_asset(assetId) // status, output statuses, task counts, thumbnail
get_working_assets(projectId, limit?) // assets linked to my tasks + recently modified
get_asset_activity_log(projectId, assetId?, limit?)
get_asset_statuses(projectId)
External users only see assets attached to tasks they're assigned to. If list_assets looks empty, double-check the user's role.
create_asset(projectId, name, assetTagName, assetTagFolder, outputFolders[])
update_asset(assetId, name?, description?, statusId?, metadata?)
archive_asset(assetId, reason) // soft delete with reason
restore_asset(assetId) // unarchive
delete_asset(assetId) // permanent — confirm with user first
Picking assetTagName / assetTagFolder / outputFolders: these define the cloud folder layout. The user usually has conventions — check get_project or look at sibling assets via list_assets to match. Typical:
assetTagName: "Characters", assetTagFolder: "Characters"outputFolders: ["Modeling", "Texturing", "Rigging"] for charactersoutputFolders: ["Modeling", "Texturing"] for propsstatusId resolution: call get_asset_statuses(projectId), find the status by name, then pass the id.
Threaded discussion on an asset — supports @user mentions and #path/to/file references.
list_asset_comments(assetId) // threaded structure
create_asset_comment(assetId, content, parentId?) // parentId for single-level reply
update_asset_comment(commentId, content)
delete_asset_comment(commentId)
Mentions are auto-parsed from content text. To mention [email protected], write @huelder in the body.
Each output tag (e.g. "Modeling") has a status derived from the tasks linked to it. You can manually override:
mark_output_complete(assetId, outputTag) // override → complete
unmark_output_complete(assetId, outputTag) // remove override; revert to task-based
update_task_output_overrides(projectId, assetId, overrides[])
// overrides: [{ taskId, excludedOutputs: ["Modeling", ...] }]
update_task_output_overrides is for when one task shouldn't contribute to a given output (e.g. a "Concept" task linked to a character but excluded from the "Rigging" calc).
get_asset_statuses(projectId)
update_asset_status(projectId, statusId, name?, color?, sortOrder?, isDefault?, isComplete?)
isDefault is the status given to new assets. isComplete flags the status as a "done" state for progress calculations.
Layerline ships with per-asset export settings used by Maya/Blender exporters:
get_asset_export_config(assetId)
update_asset_export_config(assetId, defaultFbxOptions?, defaultExportGroupName?)
create_file_config(assetId, filePath, enabled?, fbxOverrides?, exportGroupName?, customOutputPath?)
create_animation_clip(fileConfigId, name, startFrame, endFrame, loop?)
A file_config overrides export options for one specific file inside the asset; animation_clip defines a frame-range clip on top of a file_config (used for batch animation export).
Project-level export settings live in the export-settings tools (get_export_settings, update_export_settings, list_export_filter_rules, create_filter_rule, list_export_overrides, create_export_override, list_script_templates).
list_assets(projectId) → confirm no duplicate name.create_asset(projectId, name="Hero Knight", assetTagName="Characters", assetTagFolder="Characters", outputFolders=["Modeling","Texturing","Rigging"]).Characters/Hero Knight/ with three output folders.list_assets(projectId) → resolve assetId.mark_output_complete(assetId, outputTag="Modeling").get_asset_statuses(projectId) → find the Review status id.update_asset(assetId, statusId=<found id>).assetId.create_asset_comment(assetId, content="sword feels too short, please bump scale @rigger #Characters/Hero Knight/Rigging/sword.fbx").layerline:storage (file boxes + LS upload flow).layerline:genstudio (generate with assetName + assetTagFolder + projectId auto-persists as a new asset).layerline:reviews (create_review with asset_id).npx claudepluginhub bitvoke/layerline-skills --plugin layerlineCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.