Summary
Templates should be strictly harness-agnostic — they define the agent's role (instructions, prompts, env vars, resources), not its execution mechanics. However, several harness-specific fields still leak into the template layer:
image — container image belongs to the harness-config, not the template
model — LLM model identifier is harness-specific; templates should use size aliases instead
auth_selectedType — authentication mechanism is a harness concern
These fields are currently accepted in scion-agent.yaml (the template config) and documented in templates.md, blurring the template/harness-config boundary.
Related Issues
Proposed Changes
1. Deprecate harness-specific fields in scion-agent.yaml
Mark image, model (when set to a concrete model name), and auth_selectedType as deprecated in the agent schema (agent-v1.schema.json). They continue to work for backward compatibility as override values, but emit deprecation warnings during template validation.
2. Implement model size aliases
Add model_aliases map to HarnessConfigEntry so harness-configs can define:
# harness-configs/claude/config.yaml
model_aliases:
small: haiku
medium: sonnet
large: opus
Templates then use the abstract alias:
# templates/code-reviewer/scion-agent.yaml
model: large # resolved to "opus" when using claude harness-config
Concrete model names pass through unchanged for backward compatibility.
3. Update documentation
Update templates.md to:
- Remove
image/model/auth from template config examples
- Document model size aliases as the recommended approach
- Clarify that harness-specific overrides in templates are deprecated
4. Add deprecation warnings
ValidateAgnosticTemplate warns when a template uses image, auth_selectedType, or a concrete (non-alias) model value, guiding users to move these to harness-configs.
Summary
Templates should be strictly harness-agnostic — they define the agent's role (instructions, prompts, env vars, resources), not its execution mechanics. However, several harness-specific fields still leak into the template layer:
image— container image belongs to the harness-config, not the templatemodel— LLM model identifier is harness-specific; templates should use size aliases insteadauth_selectedType— authentication mechanism is a harness concernThese fields are currently accepted in
scion-agent.yaml(the template config) and documented intemplates.md, blurring the template/harness-config boundary.Related Issues
Proposed Changes
1. Deprecate harness-specific fields in
scion-agent.yamlMark
image,model(when set to a concrete model name), andauth_selectedTypeas deprecated in the agent schema (agent-v1.schema.json). They continue to work for backward compatibility as override values, but emit deprecation warnings during template validation.2. Implement model size aliases
Add
model_aliasesmap toHarnessConfigEntryso harness-configs can define:Templates then use the abstract alias:
Concrete model names pass through unchanged for backward compatibility.
3. Update documentation
Update
templates.mdto:image/model/authfrom template config examples4. Add deprecation warnings
ValidateAgnosticTemplatewarns when a template usesimage,auth_selectedType, or a concrete (non-alias)modelvalue, guiding users to move these to harness-configs.