Coordenação Multiagente Tick
Coordene o trabalho entre agentes humanos e de IA usando arquivos Markdown estruturados. Os usuários interagem naturalmente com você, e você mantém as tarefas de forma transparente no TICK.md.
Instalação
Pré-requisitos: A CLI do Tick e o servidor MCP já devem estar instalados e configurados pelo seu ambiente.
Primeira configuração? Veja INSTALL.md para instruções de instalação específicas do editor.
Limites de Segurança
- Peça aprovação explícita do usuário antes de editar arquivos de configuração MCP do editor.
- Peça aprovação explícita do usuário antes de executar qualquer comando que envie para um repositório Git remoto (
tick sync --pushougit push). - Se a aprovação do usuário não for explícita, use comandos somente leitura/status e explique qual ação de escrita está pendente.
Verificação Rápida:
# Verificar se a CLI está disponível
tick --version
# Verificar se o arquivo TICK.md existe no projeto
ls TICK.md
# Se não existir, inicializar
tick init
Conceito Principal
Protocolo Tick = Coordenação de tarefas baseada em Git via arquivos TICK.md
- Legível por humanos: Markdown padrão com YAML
- Interpretável por máquinas: Estruturado para ferramentas
- Com suporte a Git: Controle de versão completo e trilha de auditoria
- Local primeiro: Sem necessidade de nuvem
Início Rápido
Verificar se o Tick está inicializado
ls TICK.md
Se não estiver inicializado
tick init
Obter status atual
tick status
Fluxos de Trabalho Comuns
1. O Usuário Pede Para Você Fazer Algo
Usuário: "Você pode refatorar o sistema de autenticação?"
Suas Ações:
# 1. Criar tarefa
tick add "Refatorar sistema de autenticação" --priority high --tags backend,security
# 2. Registrar você mesmo (apenas na primeira vez)
tick agent register @seu-nome --type bot --roles "engenheiro,refatoração"
# 3. Assumir a tarefa
tick claim TASK-XXX @seu-nome
# 4. Trabalhar nela (fazer o trabalho real)
# 5. Adicionar comentários de progresso
tick comment TASK-XXX @seu-nome --note "Analisando o fluxo de autenticação atual"
tick comment TASK-XXX @seu-nome --note "Refatorado para usar tokens JWT"
# 6. Marcar como concluída
tick done TASK-XXX @seu-nome
2. O Usuário Pergunta Sobre o Status do Projeto
Usuário: "Em quais tarefas estamos trabalhando?"
# Obter status abrangente
tick status
# Ou filtrar e listar tarefas
tick list --status in_progress
tick list --claimed-by @bot-name
Resuma a saída de forma natural para o usuário.
3. Coordenação com Outros Agentes
Usuário: "Os outros agentes terminaram suas tarefas?"
# Verificar status geral
tick status
# Listar agentes e seus trabalhos
tick agent list --verbose
# Validar o projeto
tick validate
4. Dividindo Trabalho Complexo
Usuário: "Construir um painel de usuário com gráficos e exportação de dados"
Suas Ações:
# Criar tarefa pai
tick add "Construir painel do usuário" --priority high --tags frontend
# Criar subtarefas com dependências
tick add "Projetar layout do painel" --priority high --tags frontend,design
tick add "Implementar gráficos de dados" --priority medium --tags frontend,charts --depends-on TASK-XXX
tick add "Adicionar exportação CSV" --priority low --tags frontend,export --depends-on TASK-XXX
# Visualizar dependências
tick graph
Referência de Comandos
Gerenciamento de Projeto
tick init # Inicializar novo projeto
tick status # Visualizar visão geral do projeto
tick list # Listar tarefas com filtros
tick graph # Visualizar dependências
tick watch # Monitorar alterações em tempo real
tick validate # Verificar erros
tick sync --pull # Baixar últimas alterações
# tick sync --push # Somente com aprovação explícita do usuário
Operações de Tarefa
tick add "Título da tarefa" \
--priority high \ # urgent|high|medium|low
--tags backend,api \ # Tags separadas por vírgula
--assigned-to @agent \ # Atribuir a um agente
--depends-on TASK-001 \ # Dependências
--estimated-hours 4 # Estimativa de tempo
tick claim TASK-001 @agent # Assumir tarefa (define como in_progress)
tick release TASK-001 @agent # Liberar tarefa (volta para todo)
tick done TASK-001 @agent # Concluir tarefa
tick reopen TASK-001 @agent # Reabrir tarefa concluída
tick delete TASK-001 # Excluir uma tarefa
tick comment TASK-001 @agent \ # Adicionar nota
--note "Atualização de progresso"
tick edit TASK-001 \ # Editar campo diretamente
--title "Novo título" \
--priority high \
--status in_progress
Correções e Recuperação
tick reopen TASK-001 @agent # Reabrir tarefa concluída
tick reopen TASK-001 @agent \ # Reabrir e re-bloquear dependentes
--re-block
tick delete TASK-001 # Excluir tarefa, limpa dependências
tick delete TASK-001 --force # Excluir mesmo se tiver dependentes
tick edit TASK-001 --title "X" # Alterar título
tick edit TASK-001 --priority high # Alterar prioridade
tick edit TASK-001 --status todo # Alterar status diretamente
tick edit TASK-001 --tags a,b,c # Substituir tags
tick edit TASK-001 --add-tag new # Adicionar tag
tick edit TASK-001 --remove-tag old # Remover tag
tick edit TASK-001 \ # Editar dependências
--depends-on TASK-002,TASK-003
tick undo # Desfazer última operação tick
tick undo --dry-run # Visualizar o que seria desfeito
Operações em Lote
tick import tasks.yaml # Importar tarefas de arquivo YAML
tick import - < tasks.yaml # Importar da entrada padrão
tick import tasks.yaml --dry-run # Visualizar importação
tick batch start # Iniciar modo lote (sem commit automático)
tick batch status # Verificar status do lote
tick batch commit # Confirmar todas as alterações em lote
tick batch abort # Descartar alterações em lote
Listagem Avançada de Tarefas
tick list # Todas as tarefas, agrupadas por status
tick list --status blocked # Apenas tarefas bloqueadas
tick list --priority urgent # Tarefas de alta prioridade
tick list --assigned-to @alice # Tarefas para um agente específico
tick list --tag backend # Tarefas com uma tag
tick list --json # Saída JSON para scripts
Visualização de Dependências
tick graph # Árvore de dependências ASCII
tick graph --format mermaid # Fluxograma Mermaid
tick graph --show-done # Incluir tarefas concluídas
Monitoramento em Tempo Real
tick watch # Observar alterações
tick watch --interval 10 # Intervalo de polling personalizado
tick watch --filter in_progress # Mostrar apenas status específico
Gerenciamento de Agentes
tick agent register @nome \ # Registrar novo agente
--type bot \ # human|bot
--roles "dev,qa" \ # Funções separadas por vírgula
--status idle # working|idle|offline
tick agent list # Listar todos os agentes
tick agent list --verbose # Informações detalhadas
tick agent list --type bot # Filtrar por tipo
tick agent list --status working # Filtrar por status
Ferramentas MCP (Alternativa à CLI)
Se estiver usando o Model Context Protocol, use estas ferramentas em vez de comandos CLI:
Status e Inspeção
tick_status- Obter status do projeto (agentes, tarefas, progresso)tick_validate- Validar estrutura do TICK.mdtick_agent_list- Listar agentes com filtros opcionais
Gerenciamento de Tarefas
tick_add- Criar nova tarefatick_claim- Assumir tarefa para um agentetick_release- Liberar tarefa assumidatick_done- Concluir tarefa (desbloqueia dependentes automaticamente)tick_comment- Adicionar nota a uma tarefa
Correções e Recuperação
tick_reopen- Reabrir tarefa concluídatick_delete- Excluir uma tarefatick_edit- Editar campo diretamente (ignora a máquina de estados)tick_undo- Desfazer última operação tick
Operações de Agente
tick_agent_register- Registrar novo agente
Exemplo MCP:
// Criar tarefa via MCP
await tick_add({
title: "Refatorar autenticação",
priority: "high",
tags: ["backend", "security"],
assignedTo: "@bot-name"
})
// Assumi-la
await tick_claim({
taskId: "TASK-023",
agent: "@bot-name"
})
Melhores Práticas
1. Conversa Natural Primeiro
✅ Bom: Usuário diz "refatore a autenticação", você cria a tarefa automaticamente ❌ Ruim: Fazer o usuário criar tarefas explicitamente
2. Use Sempre Seu Nome de Agente
Registre uma vez:
tick agent register @seu-bot-name --type bot --roles "engenheiro"
Depois use consistentemente:
tick claim TASK-001 @seu-bot-name
tick done TASK-001 @seu-bot-name
3. Forneça Contexto nos Comentários
# ✅ Bom - explica o que e por quê
tick comment TASK-005 @bot --note "Migrei de REST para GraphQL para melhor segurança de tipos e redução de over-fetching"
# ❌ Ruim - muito vago
tick comment TASK-005 @bot --note "API atualizada"
4. Divida Tarefas Grandes
Crie subtarefas com dependências:
tick add "Configurar pipeline CI/CD" --priority high
tick add "Configurar GitHub Actions" --depends-on TASK-010
tick add "Adicionar scripts de deploy" --depends-on TASK-011
tick add "Configurar ambiente de staging" --depends-on TASK-011
5. Verifique o Status Antes de Assumir
# Certifique-se de que a tarefa existe e não foi assumida
tick status
# Depois assuma
tick claim TASK-XXX @seu-nome
Entendendo a Estrutura do TICK.md
O arquivo tem três seções:
- Frontmatter (YAML): Metadados do projeto
- Tabela de Agentes (Markdown): Quem está trabalhando no quê
- Blocos de Tarefa (YAML + Markdown): Tarefas individuais com histórico
Exemplo:
---
project: meu-app
schema_version: "1.0"
next_id: 5
---
# Agentes
| Nome | Tipo | Funções | Status | Trabalhando em |
|------|------|---------|--------|----------------|
| @alice | human | owner | working | TASK-003 |
| @bot | bot | engenheiro | idle | - |
# Tarefas
typeyaml
id: TASK-001
title: Construir autenticação
status: done
priority: high
claimed_by: null
# ... mais campos
history:
- ts: 2026-02-07T10:00:00Z
who: @bot
action: created
- ts: 2026-02-07T14:00:00Z
who: @bot
action: done
Implementada autenticação baseada em JWT com refresh de token...
## Funcionalidades Avançadas
### Desbloqueio Automático de Dependências
Quando você conclui uma tarefa, as tarefas dependentes são desbloqueadas automaticamente:
```bash
# TASK-002 depende de TASK-001
# TASK-002 status: blocked
tick done TASK-001 @bot
# TASK-002 muda automaticamente para: todo
Detecção de Dependências Circulares
A validação captura dependências circulares:
tick validate
# Erro: Dependência circular detectada: TASK-001 → TASK-002 → TASK-003 → TASK-001
Mensagens de Commit Inteligentes
# Execute apenas com aprovação explícita do usuário
tick sync --push
# Gera automaticamente: "feat: concluir TASK-001, TASK-002; atualizar TASK-003"
Reabrindo Tarefas Concluídas
Se uma tarefa foi marcada como concluída prematuramente:
tick reopen TASK-001 @bot
# Define o status de volta para in_progress, registra no histórico
tick reopen TASK-001 @bot --re-block
# Também re-bloqueia quaisquer tarefas que dependam desta
Corrigindo Erros
# Desfazer a última operação tick
tick undo
# Visualizar o que seria desfeito primeiro
tick undo --dry-run
# Edições diretas de campo (ignoram a máquina de estados)
tick edit TASK-001 --status todo --priority urgent
Operações em Lote
Para múltiplas alterações sem commits individuais:
tick batch start
# Agora faça múltiplas alterações...
tick add "Tarefa 1" --priority high
tick add "Tarefa 2" --priority medium
tick claim TASK-001 @bot
# ...
tick batch commit # Commit único para todas as alterações
# Ou: tick batch abort # Descartar todas as alterações
Monitoramento em Tempo Real
tick watch
# [10:23:45] ✓ Adicionado: TASK-015 - Implementar busca de usuário
# [10:24:12] 🔒 TASK-015 assumida por @bot
# [10:26:33] ⟳ TASK-015: in_progress → done
Cartão de Referência Rápida
Fluxo de Trabalho: init → add → claim → work → comment → done → sync
Essenciais: status | add | claim | done | list | graph
Correções: reopen | delete | edit | undo
Lote: import | batch start/commit/abort
Coordenação: agent register | agent list | validate | watch
Git: sync --pull | sync --push (aprov. explícita do usuário necessária)
Lembretes Chave
- Usuários interagem com VOCÊ, não diretamente com o Tick
- VOCÊ mantém o TICK.md de forma transparente
- O painel é para inspeção, não para interação primária
- Sempre use seu nome de agente consistentemente
- Comente com frequência para mostrar progresso
- Valide antes de sincronizar
- Verifique o status antes de assumir
- Divida trabalho complexo em subtarefas
Recursos
- GitHub: https://github.com/your-org/tick-md
- Documentação: https://tick-md.dev/docs
- CLI npm: https://npmjs.com/package/tick-md
- Servidor MCP npm: https://npmjs.com/package/tick-mcp-server
Licença
MIT