/studio-assistant-action-surface-guide
Lists the exact APM Assistant apply_studio_actions mutation surface, field rules, ref ordering, and payload self-checks. Use before emitting or validating any APM Studio mutation tool call.
$ npx -y skills add apm-studio/apm-studio --skill studio-assistant-action-surface-guide --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/studio-assistant-action-surface-guide
Context preview
The summary Claude sees to decide when to auto-load this skill.
Lists the exact APM Assistant apply_studio_actions mutation surface, field rules, ref ordering, and payload self-checks. Use before emitting or validating any APM Studio mutation tool call.
SKILL.md
studio-assistant-action-surface-guide.SKILL.mdname: studio-assistant-action-surface-guide
description: "Lists the exact APM Assistant apply_studio_actions mutation surface, field rules, ref ordering, and payload self-checks. Use before emitting or validating any APM Studio mutation tool call."
compatibility: Designed for the APM Studio built-in assistant projection.
APM Studio Assistant Action Surface
Use this skill when you need to produce, inspect, or verify an `apply_studio_actions` payload.
Output Shape
- Mutations must go through `apply_studio_actions`.
- Tool arguments must be `{ "version": 1, "actions": [...] }`.
- Do not paste raw JSON or fenced JSON into the assistant reply text.
- Omit unspecified optional fields. Do not send empty strings, null placeholders, or empty draft objects.
- Validate the whole payload before calling the tool; one invalid action can cause the call to fail.
Ordering And Refs
- Actions are applied sequentially.
- Use snapshot ids for existing objects.
- Use `ref` only for objects created earlier in the same tool call.
- Keep dependent actions in order: create dependencies first, then attach/update/use them.
- Never invent ids such as `agent-1`, `team-1`, `relation-1`, or `draft-1`.
Action Families
- Instruction draft CRUD: `createInstructionDraft`, `updateInstructionDraft`, `deleteInstructionDraft`
- Skill draft CRUD: `createSkillDraft`, `updateSkillDraft`, `deleteSkillDraft`
- Skill files: `upsertSkillBundleFile`, `deleteSkillBundleEntry`
- Agent CRUD: `createAgent`, `updateAgent`, `deleteAgent`
- Team CRUD: `createTeam`, `updateTeam`, `deleteTeam`
- Participants: `attachAgentToTeam`, `detachParticipantFromTeam`, `updateParticipantSubscriptions`
- Relations: `connectAgents`, `updateRelation`, `removeRelation`
- Studio UI: `showAgent`, `showTeam`, `showDraft`, `setStudioPanel`, `setStudioNodeVisibility`, `setStudioNodeFrame`
Agent Fields
`createAgent` and `updateAgent` support:
- `description`
- `model`
- `modelVariant`
- Skill additions: `addSkillUrns`, `addSkillDraftIds`, `addSkillDraftRefs`, inline `addSkillDrafts`
- Skill removals: `removeSkillUrns`, `removeSkillDraftIds`
- MCP changes: `addMcpServerNames`, `removeMcpServerNames`
Rules:
- Do not include Instruction fields on Agent actions. Instruction drafts are standalone primitives.
- Use inline `addSkillDrafts` when the Skill dependency is new and known.
- Use only available model and variant ids from the snapshot.
- MCP names must already exist in Studio MCP library context; do not invent them.
Team And Relation Fields
`createTeam` supports:
- `name`, `description`, `teamRules`, `safety`
- `participantAgentIds`, `participantAgentRefs`, `participantAgentNames`
- inline `relations`
`updateTeam` supports:
- `name`, `description`, `teamRules`, `safety`
Relation payloads use:
- source locators: `sourceParticipantKey`, `sourceAgentId`, `sourceAgentRef`, `sourceAgentName`
- target locators: `targetParticipantKey`, `targetAgentId`, `targetAgentRef`, `targetAgentName`
- `direction`, `name`, `description`
Rules:
- `teamRules` must be an array of strings.
- Every new relation needs non-empty `name` and `description`.
- Use `source...` and `target...` fields for relation endpoints.
- For brand-new Teams with known participants, prefer participants and relations directly on `createTeam`.
Draft And Bundle Fields
- Instruction/Skill CRUD acts on local drafts only.
- Skill file actions target saved Skill drafts only.
- Bundle paths are relative to the Skill root.
- Bundle paths must not target `SKILL.md` or `draft.json`.
- Use bundle files for `references/*`, `scripts/*`, `assets/*`, and `agents/openai.yaml`.
- Bundle filenames should be stable and human-readable; do not append random strings, hashes, timestamps, or cache-busting suffixes unless the user explicitly wants versioned files.
Participant Subscriptions
`updateParticipantSubscriptions` targets a participant by:
- `participantKey`
- attached `agentId`
- same-call `agentRef`
- exact `agentName`
`subscriptions` supports:
- `messagesFromParticipantKeys`
- `messagesFromAgentIds`
- `messagesFromAgentRefs`
- `messagesFromAgentNames`
- `messageTags`
- `callboardKeys`
- `eventTypes`
Rules:
- Use `null` to clear subscriptions.
- `eventTypes` currently supports only `runtime.idle`.
- `callboardKeys` is canonical.
UI Operations
- `showAgent`: select/reveal an Agent, or open its editor with `surface: "editor"`.
- `showTeam`: select/reveal a Team, or open its editor with `surface: "editor"` and optional `editorMode`.
- `showDraft`: open a saved or same-call Instruction/Skill draft editor.
- `setStudioPanel`: open or close `packages`, `workspaceTracking`, or `terminal`.
- `setStudioNodeVisibility`: hide or show an existing Agent or Team.
- `setStudioNodeFrame`: set absolute canvas `position` and/or `size` for an Agent or Team.
UI-only operations are hot Studio state changes. Do not describe them as packaged, saved, installed, or runtime-affecting.
Examples
Read `references/payload-examples.md` only when you need concrete payload examples.
Read more
name: studio-assistant-action-surface-guide description: "Lists the exact APM Assistant apply_studio_actions mutation surface, field rules, ref ordering, and payload self-checks. Use before emitting or validating any APM Studio mutation tool call." compatibility: Designed for the APM Studio built-in assistant projection.
APM Studio Assistant Action Surface
Use this skill when you need to produce, inspect, or verify an `apply_studio_actions` payload.
Output Shape
- Mutations must go through `apply_studio_actions`.
- Tool arguments must be `{ "version": 1, "actions": [...] }`.
- Do not paste raw JSON or fenced JSON into the assistant reply text.
- Omit unspecified optional fields. Do not send empty strings, null placeholders, or empty draft objects.
- Validate the whole payload before calling the tool; one invalid action can cause the call to fail.
Ordering And Refs
- Actions are applied sequentially.
- Use snapshot ids for existing objects.
- Use `ref` only for objects created earlier in the same tool call.
- Keep dependent actions in order: create dependencies first, then attach/update/use them.
- Never invent ids such as `agent-1`, `team-1`, `relation-1`, or `draft-1`.
Action Families
- Instruction draft CRUD: `createInstructionDraft`, `updateInstructionDraft`, `deleteInstructionDraft`
- Skill draft CRUD: `createSkillDraft`, `updateSkillDraft`, `deleteSkillDraft`
- Skill files: `upsertSkillBundleFile`, `deleteSkillBundleEntry`
- Agent CRUD: `createAgent`, `updateAgent`, `deleteAgent`
- Team CRUD: `createTeam`, `updateTeam`, `deleteTeam`
- Participants: `attachAgentToTeam`, `detachParticipantFromTeam`, `updateParticipantSubscriptions`
- Relations: `connectAgents`, `updateRelation`, `removeRelation`
- Studio UI: `showAgent`, `showTeam`, `showDraft`, `setStudioPanel`, `setStudioNodeVisibility`, `setStudioNodeFrame`
Agent Fields
`createAgent` and `updateAgent` support:
- `description`
- `model`
- `modelVariant`
- Skill additions: `addSkillUrns`, `addSkillDraftIds`, `addSkillDraftRefs`, inline `addSkillDrafts`
- Skill removals: `removeSkillUrns`, `removeSkillDraftIds`
- MCP changes: `addMcpServerNames`, `removeMcpServerNames`
Rules:
- Do not include Instruction fields on Agent actions. Instruction drafts are standalone primitives.
- Use inline `addSkillDrafts` when the Skill dependency is new and known.
- Use only available model and variant ids from the snapshot.
- MCP names must already exist in Studio MCP library context; do not invent them.
Team And Relation Fields
`createTeam` supports:
- `name`, `description`, `teamRules`, `safety`
- `participantAgentIds`, `participantAgentRefs`, `participantAgentNames`
- inline `relations`
`updateTeam` supports:
- `name`, `description`, `teamRules`, `safety`
Relation payloads use:
- source locators: `sourceParticipantKey`, `sourceAgentId`, `sourceAgentRef`, `sourceAgentName`
- target locators: `targetParticipantKey`, `targetAgentId`, `targetAgentRef`, `targetAgentName`
- `direction`, `name`, `description`
Rules:
- `teamRules` must be an array of strings.
- Every new relation needs non-empty `name` and `description`.
- Use `source...` and `target...` fields for relation endpoints.
- For brand-new Teams with known participants, prefer participants and relations directly on `createTeam`.
Draft And Bundle Fields
- Instruction/Skill CRUD acts on local drafts only.
- Skill file actions target saved Skill drafts only.
- Bundle paths are relative to the Skill root.
- Bundle paths must not target `SKILL.md` or `draft.json`.
- Use bundle files for `references/*`, `scripts/*`, `assets/*`, and `agents/openai.yaml`.
- Bundle filenames should be stable and human-readable; do not append random strings, hashes, timestamps, or cache-busting suffixes unless the user explicitly wants versioned files.
Participant Subscriptions
`updateParticipantSubscriptions` targets a participant by:
- `participantKey`
- attached `agentId`
- same-call `agentRef`
- exact `agentName`
`subscriptions` supports:
- `messagesFromParticipantKeys`
- `messagesFromAgentIds`
- `messagesFromAgentRefs`
- `messagesFromAgentNames`
- `messageTags`
- `callboardKeys`
- `eventTypes`
Rules:
- Use `null` to clear subscriptions.
- `eventTypes` currently supports only `runtime.idle`.
- `callboardKeys` is canonical.
UI Operations
- `showAgent`: select/reveal an Agent, or open its editor with `surface: "editor"`.
- `showTeam`: select/reveal a Team, or open its editor with `surface: "editor"` and optional `editorMode`.
- `showDraft`: open a saved or same-call Instruction/Skill draft editor.
- `setStudioPanel`: open or close `packages`, `workspaceTracking`, or `terminal`.
- `setStudioNodeVisibility`: hide or show an existing Agent or Team.
- `setStudioNodeFrame`: set absolute canvas `position` and/or `size` for an Agent or Team.
UI-only operations are hot Studio state changes. Do not describe them as packaged, saved, installed, or runtime-affecting.
Examples
Read `references/payload-examples.md` only when you need concrete payload examples.
A local GUI for Agent Package Manager packages: import agents, skills, prompts, hooks, and MCP configs, then sync them to Codex, Claude, Cursor, Gemini, OpenCode, and more. APM Studio is the visual layer for the APM ecosystem.
Repo: apm-studio/apm-studio
Other skills on apm-studio.
- /find-skills
Finds, compares, and applies existing external Skills before creating a new one. Use when the user asks to find a Skill, search skills.sh, recommend an existing Skill, or install/apply a GitHub or skills.sh Skill.
Open skill - /studio-assistant-agent-guide
Helps design or revise APM Studio Agents with strong role focus, Skill/MCP/model choices, and Team participant readiness. Use for Agent creation, Agent updates, role design, and participant-quality decisions. For exact payload fields, load studio-assistant-action-surface-guide.
Open skill - /studio-assistant-instruction-design-guide
Helps the APM Studio Assistant design strong standalone Instruction content. Use when deciding what belongs in a project/file rule, how concise it should be, and how to express durable coding guidance.
Open skill - /studio-assistant-skill-creator-guide
Helps the APM Studio Assistant create or extend Skills in an app-safe way. Use when the user wants a new Skill, a better SKILL.md, extra references or scripts, tighter trigger wording, or agents/openai.yaml metadata inside a Skill draft folder.
Open skill - /studio-assistant-studio-guide
Explains APM Studio navigation, UI vocabulary, Packages behavior, Workspace vs thread terminology, and visible control names. Use for product-help questions. For direct UI mutation payloads, load studio-assistant-ui-operations-guide.
Open skill - /studio-assistant-team-guide
Explains the current APM Studio Team contract: participants, relations, subscriptions, teamRules, safety, and package-safe field boundaries. Use for Team contract, relation, subscription, and runtime guardrail questions. For role split/topology decisions, load
Open skill

