Revisão Diária
Banner de Inicialização
Quando a habilidade é iniciada, exibe o seguinte banner:
═══════════════════════════════════════════════════════════════
▌ Revisão Diária ▐
Gera relatórios estruturados de revisão diária com base no histórico de conversas locais do Claude Code
═══════════════════════════════════════════════════════════════
Lei Shu │ WeChat: AIRay1015 │ github.com/akira82-ai
───────────────────────────────────────────────────────────────
- Suporta 4 intervalos de tempo: Hoje / Ontem / Últimos 3 dias / Últimos 7 dias
- Extrai automaticamente registros de conversa, estatísticas de chamadas de ferramentas e commits Git
- Gera relatórios estruturados: Resumo / Estatísticas de Trabalho / Sucessos e Avanços / Dificuldades e Pontos de Bloqueio / Autoavaliação da IA
- Relatório salvo automaticamente no diretório de trabalho atual
═══════════════════════════════════════════════════════════════
Última atualização: 2026-04-06
Processamento de Parâmetros
Se o usuário não especificar um intervalo de tempo, use AskUserQuestion para perguntar, com as opções:
- Hoje
- Ontem
- Últimos 3 dias
- Últimos 7 dias
Não forneça outras opções. Com base na escolha do usuário, calcule o intervalo de datas correspondente (hoje, 1 dia atrás, 3 dias atrás, 7 dias atrás), usando timestamp no fuso horário UTC.
Etapas de Extração de Dados
Passo 1: Obter lista de mensagens de history.jsonl
Execute um script Python com Bash para ler ~/.claude/history.jsonl, filtrando todos os registros dentro do intervalo de datas especificado, com base no timestamp. Cada registro contém: display (conteúdo da entrada do usuário), timestamp (milissegundos Unix), project (caminho do projeto), sessionId. Conte o número exato de mensagens. Se vários dias forem selecionados (últimos 3 dias, últimos 7 dias), conte separadamente por dia.
Passo 2: Obter lista de sessões envolvidas
Extraia sessionIds únicos e seus caminhos de projeto correspondentes do Passo 1.
Nota sobre o Formato de Timestamp (Importante)
Os formatos de timestamp das duas fontes de dados são diferentes. O script deve tratá-los de forma unificada:
- O campo timestamp em
history.jsonlé int (milissegundos Unix), ex:1770288337219 - O campo timestamp em arquivos JSONL de projeto é uma string ISO 8601, ex:
"2026-03-31T04:24:20.514Z"
Defina uma função de análise unificada no início do script:
def to_ms(ts):
if isinstance(ts, (int, float)):
return ts
if isinstance(ts, str):
dt = datetime.datetime.fromisoformat(ts.replace('Z', '+00:00'))
return int(dt.timestamp() * 1000)
return 0
Todas as comparações e filtros de timestamp subsequentes devem usar to_ms() para converter antes de comparar.
Passo 3: Extrair conteúdo detalhado de arquivos JSONL do projeto
Use o script extract.py incluído na habilidade para extrair dados, garantindo processamento de timestamp estável e confiável.
Chamar script:
python ~/.claude/plugins/marketplaces/airay-skills/skills/airay-agent-review/scripts/extract.py --start_ms <start_ms> --end_ms <end_ms>
Estrutura de dados retornada pelo script:
{
"sessions": [...],
"total_messages": N,
"tool_calls": {"Bash": 36, "Read": 2, "Write": 2, ...},
"tool_errors": {...},
"files_touched": ["path/to/file1", "path/to/file2", ...],
"projects": ["/path/to/project1", "/path/to/project2"],
"user_messages": [...]
}
O script lida internamente com:
- Conversão de formato de timestamp (int milissegundos / string ISO 8601 tratados de forma unificada)
- Iteração do array content (verificando tool_use e server_tool_use)
- Codificação de caminho (substituição de / no caminho do projeto por -)
- Estatísticas de erro (marcação is_error)
Passo 4: Obter registros de commit Git
Para os diretórios de projeto envolvidos na data atual, execute git log --since="<data_início> 00:00:00" --until="<data_fim+1dia> 00:00:00" --oneline para obter os registros de commit.
Formato do Relatório
1. Resumo (máximo 100 caracteres)
- Use um parágrafo para resumir o que foi concluído no intervalo de tempo especificado
- Foco nos pontos principais, alta densidade de informação
- Pode começar com uma "frase de efeito".
2. Estatísticas de Trabalho
- Números exatos, sem estimativas. Formato de tabela: | Indicador | Valor | | Mensagens suas | N | | Projetos envolvidos | N | | Chamadas de ferramentas | N (falhas N) | | Commits Git | N |
3. Sucessos e Avanços
- Agrupar por projeto, cada projeto com um subtítulo: ### [Nome do Projeto] Título Resumido
- Descrever quais tarefas foram concluídas, o que foi descoberto, quais processos foram suaves.
- Não incluir horários específicos.
Modelo de referência:
### [ Nome do Projeto ]
Descrição do conteúdo, etc.
4. Dificuldades e Pontos de Bloqueio
- Listar dificuldades e obstáculos encontrados, incluindo: limitações externas (limitação de API, etc.), limites da capacidade da ferramenta, erros de estratégia operacional, etc.
- Não incluir horários específicos.
5. Autoavaliação da IA: Avaliação sobre Você
Avalie o usuário do ponto de vista da IA. Requisitos:
- Direto, sem rodeios, profundo
- Baseado em comportamentos específicos da conversa, com exemplos
- Incluir: pontos fortes do usuário, áreas de melhoria, traços de pensamento dignos de reconhecimento
- Tom sincero, pode apontar deficiências
Saída
Após a geração do relatório:
- Exibir completamente no terminal
- Salvar no diretório de trabalho atual, nomeado como: YYYY-MM-DD.md (para intervalos de vários dias, o nome do arquivo será YYYY-MM-DD~YYYY-MM-DD.md)
- Se o arquivo já existir, sobrescrever
Regras de Formatação
- Todos os números estatísticos devem ser exatos, sem "aproximadamente" ou "cerca de"
- Não incluir horários específicos (ex: 02:35, madrugada)
- Sucessos e Avanços agrupados por projeto, não por tempo
- Não incluir seção "Próximos Passos"
- Usar português
- Não usar emoji