O Elis usa contratos JSON para definir o comportamento de cada agente.
{
"agent": "nome_do_agente",
"model": "haiku|sonnet|opus",
"skill": "/skill_name",
"skill_reference": "external-skill-name",
"role": "Descricao do papel",
"capabilities": [
"Lista de capacidades"
],
"input_contract": {
"required": ["campos_obrigatorios"],
"optional": ["campos_opcionais"]
},
"output_contract": {
"format": "json|files",
"schema": { "estrutura_do_output" }
},
"quality_gates": {
"gate_name": true,
"another_gate": "value"
},
"timeout_ms": 60000,
"retry_on_fail": true,
"max_retries": 2
}agent: Nome unico do agentemodel: Modelo Claude a usar (haiku para tasks rapidas, sonnet para complexas)skill: Skill interno do Claude Code (ex:/designer)skill_reference: Skill externo do SkillsMP
role: Descricao do papel do agentecapabilities: Lista do que o agente pode fazer
input_contract.required: Campos que DEVEM ser fornecidosinput_contract.optional: Campos opcionaisoutput_contract.format: Tipo de saida (json ou files)output_contract.schema: Estrutura esperada do output
Criterios que o output deve passar antes de ser aceito:
complete_color_palette: true = paleta completamin_competitors: 3 = minimo 3 competidores analisadosresponsive_at_all_breakpoints: true = responsivo em 320, 768, 1024, 1440
timeout_ms: Tempo maximo de execucaoretry_on_fail: Se deve tentar novamente em caso de falhamax_retries: Numero maximo de tentativas
{
"agent": "designer",
"model": "sonnet",
"skill": "/designer",
"role": "Elite UI/Visual Designer",
"capabilities": [
"Design system completo",
"Color theory e paletas",
"Typography systems",
"Component specifications",
"Animation intentions",
"2026 design trends"
],
"input_contract": {
"required": ["project_brief"],
"optional": [
"reference_url",
"brand_guidelines",
"target_emotion",
"style_direction"
]
},
"output_contract": {
"format": "json",
"schema": {
"status": "success|partial|failed",
"confidence": "high|medium|low",
"design_system": {
"colors": {
"primary": "hsl()",
"secondary": "hsl()",
"accent": "hsl()",
"neutrals": ["array"],
"semantic": {}
},
"typography": {
"font_display": "string",
"font_body": "string",
"scale": {},
"weights": []
},
"spacing": {},
"effects": {},
"borders": {}
},
"visual_hierarchy": {},
"components": [],
"animations": {},
"decorative_elements": {}
}
},
"quality_gates": {
"complete_color_palette": true,
"typography_scale_min_sizes": 6,
"responsive_strategy_defined": true,
"accessibility_considered": true
},
"timeout_ms": 90000,
"retry_on_fail": true,
"max_retries": 2
}O Elis valida automaticamente:
- Pre-execucao: Input tem todos os campos required?
- Pos-execucao: Output segue o schema?
- Quality Gates: Todos os gates passaram?
Se alguma validacao falhar:
- Retry com o mesmo agente (se retry_on_fail = true)
- Apos max_retries, tenta fallback
- Se nao houver fallback, reporta erro ao usuario
Voce pode modificar os contratos no arquivo elis.md:
- Abra
~/.claude/commands/elis.md - Encontre o contrato do agente
- Modifique conforme necessario
- Salve o arquivo
Exemplo: Aumentar timeout do Builder:
{
"agent": "builder",
"timeout_ms": 300000 // 5 minutos em vez de 3
}