Awesome CopilotAdventures

Customization primitives

Choose the smallest primitive that reliably supplies the missing behavior.

---
config:
  theme: base
  look: classic
  themeVariables:
    darkMode: false
    background: "#ffffff"
    primaryColor: "#f5f5f5"
    primaryTextColor: "#111111"
    primaryBorderColor: "#555555"
    secondaryColor: "#e0e0e0"
    secondaryTextColor: "#111111"
    secondaryBorderColor: "#666666"
    tertiaryColor: "#bdbdbd"
    tertiaryTextColor: "#111111"
    tertiaryBorderColor: "#444444"
    lineColor: "#444444"
    textColor: "#111111"
    mainBkg: "#f5f5f5"
    nodeBorder: "#555555"
    clusterBkg: "#ffffff"
    clusterBorder: "#999999"
    edgeLabelBackground: "#ffffff"
    actorBkg: "#e0e0e0"
    actorBorder: "#555555"
    actorTextColor: "#111111"
    actorLineColor: "#777777"
    signalColor: "#333333"
    signalTextColor: "#111111"
    labelBoxBkgColor: "#f5f5f5"
    labelBoxBorderColor: "#777777"
    labelTextColor: "#111111"
    loopTextColor: "#111111"
    activationBkgColor: "#bdbdbd"
    activationBorderColor: "#555555"
    noteBkgColor: "#f5f5f5"
    noteTextColor: "#111111"
    noteBorderColor: "#777777"
    attributeBackgroundColorOdd: "#f5f5f5"
    attributeBackgroundColorEven: "#e0e0e0"
---
flowchart TD
    accTitle: Select the smallest customization primitive
    accDescr: Decide whether context is automatic, then choose a task prompt, reusable skill, role profile, external capability or deterministic check.
    N["What is missing?"] --> A{"Apply automatically?"}
    A -- Yes --> I["Instructions"]
    A -- No --> K{"What kind of need?"}
    K -- Repeatable command --> P["Prompt file"]
    K -- Reusable expertise --> S["Agent Skill"]
    K -- Role + tools --> C["Custom agent"]
    K -- External capability --> M["MCP server"]
    K -- Deterministic enforcement --> H["Hook"]

Legend. Diamonds are selection questions. Labeled arrows describe the need; rectangles are the customization primitives.

Explanation. Choose based on responsibility and invocation, not perceived sophistication. A skill is not a permission boundary and a prompt is not automatically applied context.

Need Primitive Key boundary
Context applied automatically Repository or path-specific instructions Keep scope explicit and avoid conflicts
A manually invoked task template Prompt file Local invocation is intentional, not automatic
Reusable expertise loaded when relevant Agent Skill Expertise is not a permanent persona
A role with tools and optional handoffs Custom agent (.agent.md) Tool access and handoffs must be explicit
Access to an external system Model Context Protocol server Trust, authentication, data exposure, and side effects vary
A deterministic lifecycle command Hook Preview schema, shell safety, timeout, and secret handling matter

[!IMPORTANT] Prompt files are supported by the VS Code Local harness, but agents running in the Agent Host do not use them. Use an Agent Skill when the behavior must travel to the Copilot harness.

[!WARNING] Agent hooks in VS Code are Preview as of 2026-09-05. Review every command, input, output, timeout, and secret exposure path.

Portability

Primitive VS Code Local Copilot harness / Agent Host Copilot CLI Cloud agent
Instructions Yes, subject to scope Yes, subject to discovery Yes, subject to discovery Yes, documented locations apply
Prompt files Yes No Do not assume Do not assume
Agent Skills Yes Yes Yes Yes
Custom agents Yes Yes Yes Yes, with property differences
MCP Yes Use portable configuration Yes Support and policy vary
Hooks Preview Preview Documented support varies Documented support varies

Do not use deprecated custom chat modes as a substitute for custom agents. MCP means Model Context Protocol.

Practice with Laws of Eldoria, Skills of Algora, and Agents of Stellaris.

Official references

Search

Search in English. Source paths and executable examples retain their original text.