tools:
- view_list
- view_create
- view_reload
- view_run
- view_compile_script
- view_call_script
- view_property_read
- view_property_discover
- view_property_write
- view_property_apply
View
L1
Use when the user asks to build or edit a Locus View (视图/面板): a Vue UI panel, inspector, table, board, or graph editor for the connected Unity project. Ignore Unity project View classes, folders, assets, and camera/runtime views.
Instructions
Use this workflow when the user asks for a Locus View or a frontend-built Unity editor interface.
-
Resolve the target View.
- Use
view_listfirst when a matching View may already exist. To change an existing View, reuse itspackageRootand continue from step 3. - For a new View, choose the template:
blankfor custom panels and early prototypes.inspector-formfor field-oriented Unity asset, GameObject, Component, Material, or ScriptableObject editing.canvas-boardfor draggable custom blocks.field-blocksfor block-based UnitySerializedPropertyeditors.node-graphfor graph editors with nodes, parameters, links, ports, layout, and scripted write-back.link-boardfor source-to-target mapping interfaces.serialized-tablefor table-based aggregation and editing ofSerializedPropertydata.
- Use
-
Create the package with
view_create.- Keep
idlowercase kebab-case and the display name concise. Pickiconfrom the tool enum, or omit it for the template default. - Set
temporary: truefor one-off display Views. They are written under the app temp directory, stay out ofLocus/Viewandview_list, and the requested id gains a unique suffix — use the returned id everywhere afterwards. displayPathonly changes the user-visible View tree path.packageNamepicks the workspace folder underLocus/Viewand defaults to the Unity project name.- Unity-capable templates (
inspector-form,field-blocks,node-graph,serialized-table) need a connected Unity editor when the View runs.
- Keep
-
Edit only inside the returned
packageRoot.- Manifest
view.jsonownsid,name,template,apiVersion, entry/style paths, scripts, capabilities, and requirements. Keep every path package-relative with forward slashes; never write absolute Unity project paths. - Main UI:
src/App.vue. Entry:src/main.ts. Styles:src/style.css(template styles extend a shared base block — keep it and append rules). Optional Unity script:unity/ViewApi.cs. Additional modules (for example asrc/store.tsfor shared state) may be created underpackageRootas needed. - Code shared across Views in the same workspace lives in the workspace
src/and is imported as@locus/project-view.
- Manifest
-
Resolve API details through the stable View contract, in this order:
runtime-api.mdin this skill package: the quick reference for@locus/view-runtimeservices (Unity property editing, drawers, drag/drop, graph/canvas, session, LLM, storage, fs, logs) and@locus/componentscomponents. Load it withknowledge_readpathskill/view/runtime-api.md.- Exported runtime sources under this skill package's
app/view-runtime/src/: exact component props, graph/canvas data shapes, and release behavior. - Locus application sources: only present in a development checkout. Installed releases do not ship them, so never depend on them from package code or instructions.
Typical starting imports:
import { view, unity, property, onEditorUpdate } from "@locus/view-runtime";
import { UnitySerializedPropertyTree, GraphView } from "@locus/components";
-
Use the right runtime path for Unity data.
SerializedPropertyediting from package code:property.fromPath("asset/<assetPath>/property/<propertyPath>")— alsoselection/…,guid/<assetGuid>/…,scene/…, andprefab/…path forms — thentree.drawDefaultEditor(),tree.require(path).draw(),property.write(target, value), or batchedproperty.apply([...]).- Unknown property paths:
view_property_discoverbefore hardcoding any path. Agent-side spot checks and one-off fixes:view_property_read,view_property_write,view_property_apply. - Custom property rendering:
propertyDrawer.registerValue/registerField/registerAttribute/registerPropertyPath/register, passed aspropertyDrawersintoUnitySerializedPropertyTree,UnityPropertyDraw, orUnityObjectPreview. Whole-object rendering:unityObjectDrawer.register(...), passed asobjectDrawersintoUnityObjectPreview. App-wide drawers (affecting chat fences and the Locus Inspector, not just this View) ship as plugin drawer packages instead — seeruntime-api.md"Plugin Drawer Packages". - Custom Unity logic: declare the C# file in
view.jsonscripts[], then call it withview.callScriptfrom package code orview_compile_script+view_call_scriptfrom the agent. - Selection-driven panels:
onEditorUpdate(handler). Unity selection and inspectors:unity.select(...),unity.inspect(...),unity.selectAsset(...),unity.selectSceneObject(...). - Locus <-> Unity drag and drop:
useUnityReferenceDrag,useUnityAssetDropTarget,UnityReferenceChip,UnityDropZone. - LLM-assisted semantic editors:
view.sessionandview.llm.
-
Keep the UI aligned with Locus / Unity Editor tool style.
- Prefer panels, split panes, inspectors, tables, trees, toolbars, and workspaces.
- Keep controls compact, neutral, and useful for long editing sessions. Use existing tokens for surfaces, borders, text, hover states, and accent color.
- Use state badges only for strong statuses such as running, error, modified, enabled, or disabled.
- Avoid marketing-style hero areas, decorative gradients, heavy shadows, oversized cards, colorful chip clusters, and continuous animation.
-
Validate, debug, and report.
- Run
view_reloadafter edits: it validates the manifest and refreshes an open host. Useview_runto open or focus the View host. - If the View fails to load or misbehaves, read
debug.mdwithknowledge_readpathskill/view/debug.md. That read activates the debugging tools (view_capture,view_snapshot,view_action,view_wait,view_console_read,view_debug_eval); plain file reads do not. Checkview_console_readfirst for frontend runtime errors. - When the user-facing reply should reference the finished View, put a standalone line in this exact format:
view:<view-id>, using the id returned byview_create,view_list, orview_reload. The Locus frontend renders that line as a View reference block with an Open View button. - Report the View id,
packageRoot, template used, files changed, reload or run result, and the standaloneview:<view-id>reference line.
- Run
Expert Next.js App Router
Developpement
Un skill qui transforme Claude en expert Next.js App Router.
Générateur de README
Developpement
Crée des README.md professionnels et complets pour vos projets.
Rédacteur de Documentation API
Developpement
Génère de la documentation API complète au format OpenAPI/Swagger.