T-099 — Migrar TASKS.md monolítico para 1-task-1-nota + Base de pipeline
Owner: Pedro · Frente:
anouk-interno· Prazo: 2026-04-27 · Status:concluida· Prioridade:alta
Descrição
Migrar a fonte da verdade de tasks de tabela markdown monolítica (TASKS.md com 98 linhas em 7 colunas) para 1 nota por task com frontmatter rico, permitindo:
- Pipeline visual interativo via Obsidian Bases (kanban + 8 outras views)
- Filtros vivos por owner / frente / prazo / sprint / dependência
- Edição inline das propriedades (mudar
statusna nota → pipeline atualiza) - Cross-link bidirecional entre tasks e demais artefatos do vault
- Escalabilidade — TASKS.md tabela já estava ficando inviável aos 98 itens; com 200+ vira ilegível
Critérios de conclusão
- Pasta
00-projeto/tasks/criada com folder note + template - Script de migração
99-operacao/scripts/migrate-tasks-to-notes.py(idempotente) - 98 notas geradas (T-001 a T-098), uma por task, com frontmatter completo
- Base
_bases/tasks-pipeline.basecom 9 views (kanban, por owner, por frente, por prazo, sprint, completa, atrasadas, concluídas, dependências) - Script de export
99-operacao/scripts/export-tasks-dashboard.pyque gera TASKS.md read-only - TASKS.md regenerado como dashboard read-only (resumo executivo + críticas + atrasadas + em-progresso + bloqueadas + todas ativas + concluídas)
- Runbook
99-operacao/runbooks/runbook-tasks.mdcom convenções, troubleshooting, scripts - Esta task (T-099) criada manualmente seguindo o novo padrão como exemplo
Contexto
Discussão Pedro × Anouk em 27/04 — TASKS.md crescendo (98 itens, ~250 linhas) sem visão pipeline + sem filtros + sem cross-link bidirecional. Decisão: migrar para 1-task-1-nota seguindo o Caminho A discutido (Bases sobre notas individuais).
Decisões metodológicas:
- Pasta:
00-projeto/tasks/(vincula tasks ao bucket de governança do projeto) - Migração: todas 98 + parar edição manual de TASKS.md
- TASKS.md vira read-only auto-gerado (
export-tasks-dashboard.py) - Frontmatter rico: id, title, status, priority, owner, co_owners, frente, sprint, prazo, prazo_tipo, prazo_hora, created, completed, parent, depends_on, blocks, estimate, effort_real, tags, origem
Histórico de status
- 2026-04-27 — concluída. 98 notas migradas + 6 artefatos novos (template, 2 scripts, base, folder note, runbook). Esforço real: ~1.5 h. Próximo ID: T-100.
Notas operacionais
O que funcionou:
- Script idempotente — re-executar não quebra nada
- Slugs de owner pré-mapeados (Pedro Villa → pedro, Antônio → antonio, etc.)
- Title truncado no primeiro travessão
—ou ponto final
Pontos de atenção (refinar conforme uso):
- Sprint slug derivado da seção da tabela origem — para tasks novas, definir sprint no frontmatter conscientemente
depends_on/blocksnão são extraídos automaticamente — preencher manualmente quando relevanteeffort_realem concluídas migradas vai vazio — preencher só em concluídas a partir de agora
Mudança de fluxo a partir de hoje:
- Criar task = nova nota (não mais editar TASKS.md)
- Atualizar status = editar frontmatter da nota
- Visualizar pipeline = abrir
_bases/tasks-pipeline.base - Visão executiva consolidada =
TASKS.md(mas não editar — rodarexport-tasks-dashboard.py)