☰
VSuite

Template context reference

Every agent and skill template is rendered with this context (contextVersion: 2). Liquid runs with strictVariables, so referencing a path that is not listed here fails with TPL_UNKNOWN_VAR. Optional fields (Required: no) may be absent; test them with {% if %} (the renderer uses lenientIf). x[] means each element of array x. See the pack author guide.

Variable Type Required Description
contextVersion 1 | 2 yes Context contract version.
target object yes Target the output is rendered for.
target.id "opencode" | "claude-code" | "github-copilot" yes Target being generated.
target.skillsDir string yes Target-relative directory holding generated skills.
target.agentsDir string yes Target-relative directory holding generated agents.
agent object no Agent being rendered; absent for skills.
agent.id string yes Agent id.
agent.role "coordinator" | "specialist" yes Coordinators render the specialist roster.
agent.description string yes Agent description.
agent.canWriteMetrics boolean yes Whether the agent appends to the job-metrics log; always true since every agent logs through the vsuite MCP server.
agent.canWriteJournal boolean yes Deprecated v1 alias for canWriteMetrics.
agent.source "catalog" | string matching ^pack:[\s\S]{0,}$ yes Where the agent comes from: the built-in catalog or pack:<id>.
project object yes Project settings.
project.stack array of object yes Project stack from vsuite.json.
project.stack[].category string yes Stack category.
project.stack[].labels array of string yes Selected technologies in the category.
project.stack[].guidance array of string yes Guidance lines for the selected technologies.
project.preferences object yes User preferences from vsuite.json.
project.preferences.frontend object no Frontend preferences.
project.preferences.frontend.framework string no Frontend framework.
project.preferences.frontend.designLibrary string no Design library.
project.preferences.tracking object no Tracking preferences.
project.preferences.tracking.provider string no Issue tracker provider. Canonical values: None, GitHub, GitLab, Gitea; unknown names are allowed.
project.preferences.documentation object no Documentation preferences.
project.preferences.documentation.location string no Where documentation is maintained. Canonical values: None, Obsidian, Local (local .md files in the repository); unknown names are allowed.
capabilities object yes Selected capabilities, camel-cased id → enabled.
capabilities.agentMetrics boolean yes Whether the agent-metrics capability is selected.
capabilities.agentMemory boolean yes Whether the agent-memory capability is selected.
capabilities.brainstorming boolean yes Whether the brainstorming capability is selected.
capabilities.context7 boolean yes Whether the context7 capability is selected.
capabilities.playwright boolean yes Whether the playwright capability is selected.
capabilities.prisma boolean yes Whether the prisma capability is selected.
skills array of object yes Skills the agent is required to read.
skills[].id string yes Skill id.
skills[].description string yes Skill description.
skills[].path string yes Target-relative path to the skill file.
skills[].source string yes catalog for built-in skills, project for project skills.
roster object yes Selected agents visible to coordinators.
roster.specialists array of object yes Specialists a coordinator can delegate to.
roster.specialists[].id string yes Specialist agent id.
roster.specialists[].description string yes Specialist description.
roster.readOnly array of string yes Deprecated: always empty since every agent logs its own job through the vsuite MCP server.
mcps map of array of string yes MCP server id → tool names.
pack object no Pack the template belongs to; absent for built-ins.
pack.id string yes Pack id.
pack.version string yes Pack version.