Pular para o conteúdo
Skillpedia
Machine learning48 mil · #3026

fp-data-transforms

Faz seu agente transformar dados de forma eficiente. É útil para organizar e manipular informações como listas e objetos.

O que ela faz

Esta ferramenta ajuda a organizar e transformar dados em código de computador. Ela permite que você manipule listas (arrays), informações de objetos e combine dados de forma eficiente, tornando mais fácil trabalhar com informações complexas.

Quando usar

  • ✓Quando você recebe dados de um site ou aplicativo e precisa organizá-los para exibição.
  • ✓Ao precisar combinar configurações padrão com as preferências do usuário.
  • ✓Para agrupar informações, como pedidos de clientes, e calcular totais.

Exemplo do que pedir para a IA

“Transforme esta lista de produtos em um formato que mostre o nome e o preço de cada um.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/fp-data-transforms/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/fp-data-transforms/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta usa 'padrões funcionais' para processar os dados. Em vez de escrever instruções passo a passo, você define o que quer que aconteça com os dados, e a ferramenta cuida da execução de forma organizada.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill fp-data-transforms

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/fp-data-transforms/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Transformações Práticas de Dados

Esta habilidade abrange as transformações de dados que você faz no dia a dia: trabalhar com arrays, remodelar objetos, normalizar respostas de API, agrupar dados e acessar valores aninhados com segurança. Cada seção mostra primeiro a abordagem imperativa, depois o equivalente funcional, com avaliações honestas de quando cada abordagem se destaca.

Guia Detalhado

Leia o guia detalhado antes de executar esta habilidade. Ele retém o procedimento completo e o material de referência. Trate seus requisitos de segurança, pré-requisitos e validação como obrigatórios. Para trabalho focado, carregue as seções relevantes; para trabalho de ponta a ponta, leia o guia completamente.

Quando Usar

  • Você precisa transformar arrays, objetos, dados agrupados ou valores aninhados em TypeScript.
  • A tarefa envolve remodelar respostas de API, acesso seguro a nulos, agregação ou normalização.
  • Você deseja padrões funcionais práticos para o trabalho de dados do dia a dia em vez de loops de baixo nível.

6. Exemplos do Mundo Real

Exemplo 1: Transformar Resposta de API em Dados Prontos para UI

// API response
interface ApiOrder {
  order_id: string;
  customer: {
    id: string;
    full_name: string;
  };
  line_items: Array<{
    product_id: string;
    product_name: string;
    qty: number;
    unit_price: number;
  }>;
  order_date: string;
  status: 'pending' | 'processing' | 'shipped' | 'delivered';
}

// What the UI needs
interface OrderSummary {
  id: string;
  customerName: string;
  itemCount: number;
  total: number;
  formattedTotal: string;
  date: string;
  statusLabel: string;
  statusColor: string;
}

// Transformation
const STATUS_CONFIG: Record<string, { label: string; color: string }> = {
  pending: { label: 'Pending', color: 'yellow' },
  processing: { label: 'Processing', color: 'blue' },
  shipped: { label: 'Shipped', color: 'purple' },
  delivered: { label: 'Delivered', color: 'green' },
};

const formatCurrency = (cents: number): string =>
  `$${(cents / 100).toFixed(2)}`;

const formatDate = (iso: string): string =>
  new Date(iso).toLocaleDateString('en-US', {
    month: 'short',
    day: 'numeric',
    year: 'numeric',
  });

const toOrderSummary = (order: ApiOrder): OrderSummary => {
  const total = order.line_items.reduce(
    (sum, item) => sum + item.qty * item.unit_price,
    0
  );

  const status = STATUS_CONFIG[order.status] ?? STATUS_CONFIG.pending;

  return {
    id: order.order_id,
    customerName: order.customer.full_name,
    itemCount: order.line_items.reduce((sum, item) => sum + item.qty, 0),
    total,
    formattedTotal: formatCurrency(total),
    date: formatDate(order.order_date),
    statusLabel: status.label,
    statusColor: status.color,
  };
};

// Transform all orders
const toOrderSummaries = (orders: ApiOrder[]): OrderSummary[] =>
  orders.map(toOrderSummary);

Exemplo 2: Mesclar Configurações do Usuário com Padrões

interface AppSettings {
  theme: {
    mode: 'light' | 'dark' | 'system';
    primaryColor: string;
    fontSize: 'small' | 'medium' | 'large';
  };
  notifications: {
    email: boolean;
    push: boolean;
    sms: boolean;
    frequency: 'immediate' | 'daily' | 'weekly';
  };
  privacy: {
    showProfile: boolean;
    showActivity: boolean;
    allowAnalytics: boolean;
  };
}

type DeepPartial<T> = {
  [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
};

const DEFAULT_SETTINGS: AppSettings = {
  theme: {
    mode: 'system',
    primaryColor: '#007bff',
    fontSize: 'medium',
  },
  notifications: {
    email: true,
    push: true,
    sms: false,
    frequency: 'immediate',
  },
  privacy: {
    showProfile: true,
    showActivity: true,
    allowAnalytics: true,
  },
};

const deepMergeSettings = (
  defaults: AppSettings,
  user: DeepPartial<AppSettings>
): AppSettings => ({
  theme: { ...defaults.theme, ...user.theme },
  notifications: { ...defaults.notifications, ...user.notifications },
  privacy: { ...defaults.privacy, ...user.privacy },
});

// Usage
const userPreferences: DeepPartial<AppSettings> = {
  theme: { mode: 'dark' },
  notifications: { sms: true, frequency: 'daily' },
};

const finalSettings = deepMergeSettings(DEFAULT_SETTINGS, userPreferences);

Exemplo 3: Agrupar Pedidos por Cliente com Totais

interface Order {
  id: string;
  customerId: string;
  customerName: string;
  items: Array<{ name: string; price: number; quantity: number }>;
  date: string;
}

interface CustomerOrderSummary {
  customerId: string;

…
Perguntas frequentes

O que são 'padrões funcionais'?

São uma maneira de escrever código que foca em 'o quê' fazer com os dados, em vez de 'como' fazer passo a passo. Isso torna o código mais limpo e fácil de entender.

Para que serve 'acesso seguro a valores aninhados'?

É uma forma de acessar informações que estão dentro de outras informações (como um dado dentro de outro dado dentro de outro) sem que o programa quebre caso alguma parte do caminho não exista.

Preciso saber programação para usar?

Esta ferramenta é pensada para quem já tem alguma familiaridade com programação, mas busca simplificar tarefas comuns de manipulação de dados.

Detalhes

Descrição original do autor

Everyday data transformations using functional patterns - arrays, objects, grouping, aggregation, and null-safe access

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#3026
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas