Skills: Skills de Operações com Arquivos
Última atualização: 2026-08-31
Arquivos são o suporte do código — um Skill que não opera arquivos é como um designer sem mãos.
1. Caixa de ferramentas de operações com arquivos
(1) Operações de leitura
| Operação | Ferramenta | Caso de uso |
|---|---|---|
| Ler arquivo único | Read | Revisar arquivo específico |
| Buscar nomes de arquivo | Glob | Determinar escopo de arquivos |
| Buscar conteúdo de arquivos | Grep | Localizar padrões de código |
(2) Operações de escrita
| Operação | Ferramenta | Risco | Caso de uso |
|---|---|---|---|
| Edição precisa | Edit | 🟡 | Corrigir bugs, ajustes pequenos |
| Criar/sobrescrever | Write | 🔴 | Novos arquivos, reescrita completa |
| Modificação em lote | Edit + loop | 🟡 | Renomear, substituição em lote |
(3) Operações de execução
| Operação | Ferramenta | Caso de uso |
|---|---|---|
| Formatar código | Bash(prettier) | Padronização de estilo de código |
| Executar scripts | Bash(python) | Processamento de dados, operações em lote |
| Operações Git | Bash(git) | Gerenciamento de versão |
2. Modos de operação com arquivos
(1) Modo de análise somente leitura
Não modificar nenhum arquivo, apenas exibir resultados da análise:
---
name: code-metrics
description: "Análise de métricas de código"
tools:
- Read
- Grep
- Glob
---
## Fluxo de execução
1. Glob para determinar o escopo de arquivos do projeto
2. Grep para contar padrões de código (classes, funções, TODOs)
3. Read para analisar detalhadamente arquivos-chave
4. Exibir relatório de métricas, sem modificações em arquivos
(2) Modo de modificação segura
Fazer backup antes de modificar, verificar após:
## Regras de modificação segura
1. Leia o conteúdo atual do arquivo
2. Analise o que precisa ser modificado
3. Edite com precisão, altere apenas as linhas alvo
4. Bash para executar testes de verificação
5. Se os testes falharem, explique o problema e sugira rollback
(3) Modo de operação em lote
## Fluxo de renomeação em lote
1. Glob para obter a lista de arquivos alvo
2. Liste todas as modificações planejadas
3. Edite um a um para executar as modificações
4. Bash para executar a suíte completa de testes para verificação
3. Estratégia de busca
(1) Princípio de buscar primeiro
Abordagem errada: Ler todos os arquivos → Verificar um por um
Abordagem correta: Buscar para localizar → Leitura direcionada
(2) Padrões de busca comuns
| Alvo da busca | Padrão Grep | Exemplo |
|---|---|---|
| Definições de função | def \w+|function \w+ |
Encontrar todas as funções |
| Comentários TODO | TODO|FIXME|HACK |
Encontrar dívida técnica |
| Riscos de segurança | eval(|exec(|subprocess |
Encontrar chamadas perigosas |
| Definições de tipo | class \w+|interface \w+ |
Encontrar estruturas de tipo |
| Arquivos de teste | test_|_test|\.spec\. |
Encontrar arquivos de teste |
(3) Coordenação entre busca e leitura
graph TD
A[Glob: Determinar lista de arquivos] --> B[Grep: Buscar padrões-chave]
B --> C{Encontrou o alvo?}
C -->|Sim| D[Read: Leitura profunda]
C -->|Não| E[Expandir escopo da busca]
D --> F{Precisa modificar?}
F -->|Sim| G[Edit: Modificação precisa]
F -->|Não| H[Exibir resultados da análise]
4. Operações com arquivos na prática
▶ Exemplo: Skill de migração de projeto
Alice precisa migrar um projeto de JavaScript para TypeScript:
---
name: js-to-ts-migration
description: "Migrar arquivos JS para TS"
tools:
- Read
- Write
- Glob
- Grep
- Bash
---
## Fluxo de migração
1. Glob para encontrar todos os arquivos .js
2. Para cada arquivo:
a. Leia o conteúdo
b. Analise dependências e exports
c. Use Write para criar o arquivo .ts correspondente
d. Adicione anotações de tipo
3. Bash para executar tsc --noEmit para verificação
4. Exiba o relatório de migração
Bob disse: "O maior medo com operações de arquivos é exclusão ou modificação acidental — buscar para localizar, edição precisa, verificação posterior, os três passos são essenciais."
❓ Perguntas Frequentes
P: Como escolher entre Edit e Write? R: Para modificar arquivos existentes, prefira Edit (preciso por linha). Para criar novos arquivos, use Write. Nunca use Write para sobrescrever uma pequena parte de um arquivo grande. P: Como evitar esquecer arquivos em operações em lote? R: Primeiro use Glob para listar todos os arquivos alvo e confirme o escopo antes de operar um por um. Registre o progresso em cada etapa para retomada após interrupção. P: Como lidar com arquivos grandes? R: Use Grep para localizar números de linha alvo, depois use Read com intervalos de números de linha para ler trechos relevantes, evitando ler o arquivo inteiro e desperdiçar contexto.
📖 Resumo
- Três tipos de operação: análise somente leitura, modificação segura, operações em lote
- Buscar primeiro: Glob/Grep para localizar, depois Read para aprofundar, finalmente Edit/Write para modificar
- Princípio de segurança: ler antes de modificar, editar com precisão, verificar após modificar
- Estratégia para arquivos grandes: ler por intervalo de números de linha, não carregar o arquivo inteiro
📝 Exercícios
- Básico (dificuldade⭐): Crie um Skill de análise somente leitura que conte ocorrências e distribuição de TODO/FIXME em um projeto.
- Intermediário (dificuldade⭐⭐): Crie um Skill de modificação segura que adicione automaticamente type hints a funções Python e execute testes após a modificação.
- Avançado (dificuldade⭐⭐⭐): Crie um Skill de migração em lote que converta CommonJS require para ES Module import, tratando casos extremos como dependências circulares.