--- name: archive description: Intelligent archiving of completed projects and notes. Moves finished items to archive with proper organization. Use when user mentions "archive", "arquivar", "mover para arquivo", "cleanup", "organizar concluídos". author: Descomplicar® Crescimento Digital version: 1.0.0 quality_score: 75 user_invocable: true desk_task: 1462 allowed-tools: Bash, Glob, Read --- # /archive - Arquivamento Automatico Skill para mover ficheiros concluidos para pastas de arquivo, mantendo o vault organizado. --- ## Comandos | Comando | Descricao | |---------|-----------| | `/archive` | Arquiva ficheiros com `status: done` ou `status: concluido` | | `/archive logs` | Arquiva logs >7 dias para 99-Arquivo | | `/archive tests` | Arquiva testes concluidos em z_tests/arquivo/ | | `/archive dry` | Mostra o que seria arquivado (sem mover) | --- ## Logica de Arquivamento ### Por Frontmatter Status ```javascript // Detectar ficheiros com status concluido const patterns = [ "status: done", "status: concluido", "status: completed", "status: archived" ]; // Pastas locais Obsidian a verificar const pastas_origem = [ "z_logs/", // Logs de trabalho "z_reflect/" // Reflexões ]; for (pasta of pastas_origem) { const ficheiros = await Glob({ pattern: pasta }); for (ficheiro of ficheiros) { const conteudo = await Read({ file_path: ficheiro }); if (matchesAnyPattern(conteudo, patterns)) { // Determinar pasta arquivo const arquivo_path = getArchivePath(ficheiro); // Mover await Bash({ command: `mv "${ficheiro}" "${arquivo_path}"` }); // Registar arquivados.push(ficheiro); } } } ``` ### Por Idade (Logs) ```javascript // /archive logs - ficheiros >7 dias na pasta z_logs/ const limite = new Date(Date.now() - 7 * 24 * 60 * 60 * 1000); // Listar ficheiros na pasta z_logs/ const logs = await Glob({ pattern: "z_logs/*.md" }); for (log of logs) { const data_ficheiro = extractDateFromFilename(log); // YYYY-MM-DD if (data_ficheiro < limite) { // Mover para pasta z_arquivo/ await Bash({ command: `mv "${log}" "z_arquivo/"` }); } } ``` --- ## Estrutura de Pastas (Obsidian Vault) ``` Planeamento/ ├── z_logs/ # Logs de trabalho │ ├── 2026-01-27-worklog.md # Activo (<7 dias) │ └── 2026-01-19-worklog.md # Mover para z_arquivo (>7 dias) │ ├── z_reflect/ # Reflexões │ ├── 2026-01-27-review.md # Activo │ └── 2026-W04-weekly.md # Mover para z_arquivo │ └── z_arquivo/ # Destino arquivamento ├── 2026-01-19-worklog.md └── 2026-W04-weekly.md ``` --- ## Regras de Arquivamento | Tipo | Criterio | Destino | |------|----------|---------| | Logs | >7 dias | z_arquivo/ | | Reflexoes | >14 dias OU weekly | z_arquivo/ | | Projectos | status: done | z_arquivo/ | --- ## Output ### /archive (normal) ```markdown ## Arquivamento - 2026-01-27 ### Movidos (5 ficheiros) | Ficheiro | Origem | Destino | |----------|--------|---------| | 2026-01-19-worklog.md | z_logs/ | z_arquivo/ | | TEST-Skills.md | z_tests/ | z_tests/arquivo/ | | ... | ... | ... | ### Ignorados (status activo) - 2026-01-27-worklog.md (activo) - TEST-Current.md (status: active) --- *Arquivamento concluido via `/archive`* ``` ### /archive dry ```markdown ## Dry Run - 2026-01-27 ### Seria arquivado (5 ficheiros) | Ficheiro | Motivo | |----------|--------| | 2026-01-19-worklog.md | >7 dias | | TEST-Done.md | status: concluido | > [!info] Nenhum ficheiro foi movido > Executar `/archive` para arquivar ``` --- ## Integracao ### Com /today (segunda-feira) O `/today` chama automaticamente `/archive logs` as segundas antes da analise semanal. ### Com /reflect Apos gerar weekly review, ficheiros de reflexao da semana anterior podem ser arquivados. --- ## Seguranca - **NUNCA arquiva** ficheiros sem pasta arquivo/ existente - **NUNCA arquiva** ficheiros em edicao (modificados <1h) - **Cria ficheiro** com lista de movidos em z_logs/: `archive-log-YYYY-MM-DD.md` --- ## Changelog ### v1.0.0 (2026-01-27) - Versao inicial - Arquivamento por frontmatter status - Arquivamento por idade (logs >7 dias) - Modo dry run - Integracao com /today --- *Skill v1.0 | Descomplicar®* --- ## Quando NÃO Usar - Para tarefas fora do domínio de especialização desta skill - Quando outra skill mais específica está disponível - Para operações que requerem confirmação manual do utilizador ## Protocolo 1. Analisar requisitos da tarefa 2. Verificar disponibilidade de ferramentas necessárias 3. Executar operações de forma incremental 4. Validar resultados antes de concluir 5. Reportar status e próximos passos ## Exemplos ### Exemplo 1: Uso Básico ``` Input: [descrição da tarefa] Output: [resultado esperado] ``` ### Exemplo 2: Uso Avançado ``` Input: [caso complexo] Output: [resultado detalhado] ```