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. |