T-103 — Integridade referencial task→pessoa→time + slugs canônicos + validador
Owner: Pedro Villa · Frente:
anouk-interno· Prazo: 2026-04-27 · Status:concluida· Prioridade:alta
Descrição
Garantir que owner da task aponte para slug canônico do arquivo da pessoa em 00-projeto/directory/pessoas/, criando integridade referencial task → pessoa → time.
Antes desta task:
- Tasks usavam slugs curtos (
pedro,antonio,igor) - Pessoas usavam slugs completos no arquivo (
pedro-villa.md,antonio-pavanelli.md) - Mismatch impedia “vinculação inteligente” — herdar teams/empresa/frente da pessoa via base.
Depois:
- 62 owners normalizados em 68 tasks (slugs curtos → completos)
- Validador automático confere integridade
- Template e runbook documentam a convenção
Critérios de conclusão
- OWNER_SLUG_MAP atualizado em
migrate-tasks-to-notes.py(mapeia para slug completo) - Script
99-operacao/scripts/normalize-task-owners.pycriado (idempotente) - Re-execução normalizou 68 tasks (62 owners atualizados)
- Script
99-operacao/scripts/validate-tasks.pycriado com 5 checks (owner existe, owner tem teams, depends_on/blocks reais, deprecated slugs, dependências circulares) - Validador passa com 0 erros após normalização (35 pessoas, 35 com teams, 11 owners únicos em uso, 102 tasks)
- Template
00-projeto/tasks/_template.mdatualizado com tabela errado/correto + nota sobre vinculação automática - Runbook atualizado: convenção de owner canônico + comandos validate / normalize
- Base
_bases/tasks-pipeline.baseatualizada — filtros 👤 Pedro / 👤 Antônio agora usam slugs canônicos (pedro-villa,antonio-pavanelli) - Esta task (T-103) criada usando o novo padrão (
owner: pedro-villa)
Contexto
Pedro pediu em 27/04: “Quando eu vou cadastrar uma task, ela deveria ser vinculada a uma pessoa que já está cadastrada à lista de pessoas no diretório. Cada pessoa deve ser amarrada a um time. Assim já herdamos todas as informações de maneira inteligente.”
Como a “vinculação inteligente” funciona:
- Task tem
owner: pedro-villa— slug canônico - Existe arquivo
00-projeto/directory/pessoas/pedro-villa.mdcom frontmatter:teams: [anouk-projeto] empresa: Anouk Partners frente: anouk-interno cargo: Líder do projeto - Validador confere o link
- Bases podem (com queries futuras ou manualmente) cruzar dados
Limitação Bases: não faz JOIN entre Bases diferentes ainda. Mas a integridade está garantida — quem precisar de cross-data pode usar Dataview ou queries customizadas.
Histórico de status
- 2026-04-27 — concluída. 0 erros de integridade · 35 pessoas com teams · validator + normalizer prontos.
Notas operacionais
Comandos do dia-a-dia:
# Validar integridade (rodar antes de commitar mudanças em tasks/pessoas)
python 99-operacao/scripts/validate-tasks.py
# Normalizar slugs em tasks legadas (caso alguém crie task com slug curto por engano)
python 99-operacao/scripts/normalize-task-owners.py
# Re-gerar TASKS.md auto-gerado
python 99-operacao/scripts/export-tasks-dashboard.pyComo criar nova task corretamente:
- Copiar
00-projeto/tasks/_template.md - Preencher
owner: <slug>— usar slug do arquivo da pessoa, não nome curto - Validar:
python 99-operacao/scripts/validate-tasks.py→ 0 erros
Pessoas com slug igual ao nome curto (não precisam mudar): gabriel · rafael · blaschek · marcos · lucas · daniel-jackel · leandro-braga-cardoso · leandro-delecrodio · philipe-cardoso · fabio-sodeyama · amanda-ferreira · guilherme-elmec · humberto-schott · ygor-chrispin · vlamir-mazotti · mauricio-nascimento · sergio-hilario · rodrigo-eisenbraun · camila-silva · luciana-cruz · cristiane-soares · lucas-montemor · darley-silva · gustavo-moreira · taiany-campioni · jean-luc
Pessoas que tiveram slug atualizado (curto → completo):
- pedro → pedro-villa
- antonio → antonio-pavanelli
- igor → igor-reginato
- michael → michael-sousa
- ricardo → ricardo-betancourt
- bruno → bruno-serapiao
- tatiana → tatiana-souza
- gianlucca → gianlucca-piva
- carolina → carolina-araujo