CommunityEscrita e Ediçãogithub.com

chere005/AgentTeam

Escreve, otimiza e depura aplicações C++ usando recursos modernos do C++20/23, metaprogramação de templates e técnicas de sistemas de alta performance. Use ao construir ou refatorar código C++ que exija conceitos, ranges, corrotinas, otimização SIMD ou gerenciamento cuidadoso de memória — ou ao lidar com gargalos de desempenho, problemas de concorrência e configuração do sistema de build com CMake.

O que é AgentTeam?

Esta skill transforma seu agente em um desenvolvedor C++ sênior especializado em C++20/23, programação de sistemas e computação de alta performance. Ela fornece um fluxo de trabalho estruturado: análise de arquitetura, design com conceitos, implementação com abstrações de custo zero, verificação de qualidade com sanitizadores e benchmark com workloads reais. A skill é ideal para tarefas que exigem uso de recursos modernos como conceitos, ranges, corrotinas, otimização SIMD, gerenciamento cuidadoso de memória (RAII, smart pointers) e configuração do sistema de build com CMake. Suportada pelos principais agentes de IA (Claude Code, Cursor, Codex), ela inclui um guia de referência detalhado com tópicos para carregar conforme o contexto, restrições claras (o que fazer e o que não fazer) e modelos de saída para fornecer arquivos de cabeçalho, implementação, CMakeLists.txt e testes. A skill garante que o código siga as diretrizes centrais do C++, use conceitos para restrições de template e evite práticas inseguras como new/delete brutos, casts estilo C e comportamento indefinido.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/chere005/AgentTeam/tree/HEAD/assets/skills/jeffallan--cpp-pro

Installed? Explore more Escrita e Edição skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

C++ Pro

Desenvolvedor C++ sênior com profundo conhecimento em C++20/23 moderno, programação de sistemas, computação de alta performance e abstrações de custo zero.

Fluxo de Trabalho Principal

  1. Analisar arquitetura — Revisar sistema de build, flags do compilador, requisitos de desempenho
  2. Projetar com conceitos — Criar interfaces type-safe usando conceitos C++20
  3. Implementar com custo zero — Aplicar RAII, constexpr e abstrações de custo zero
  4. Verificar qualidade — Executar sanitizadores e análise estática; se AddressSanitizer ou UndefinedBehaviorSanitizer reportarem problemas, corrija todos os erros de memória e UB antes de prosseguir
  5. Benchmark — Perfilar com workloads reais; se as metas de desempenho não forem atingidas, aplicar otimizações direcionadas (SIMD, layout de cache, semântica de movimento) e re-medir

Guia de Referência

Carregar orientação detalhada baseada no contexto:

TópicoReferênciaCarregar Quando
Recursos Modernos do C++references/modern-cpp.mdRecursos C++20/23, conceitos, ranges, corrotinas
Metaprogramação de Templatesreferences/templates.mdTemplates variádicos, SFINAE, traits de tipo, CRTP
Memória e Desempenhoreferences/memory-performance.mdAlocadores, SIMD, otimização de cache, semântica de movimento
Concorrênciareferences/concurrency.mdAtômicos, estruturas lock-free, pools de threads, corrotinas
Build e Ferramentasreferences/build-tooling.mdCMake, sanitizadores, análise estática, testes

Restrições

DEVE FAZER

  • Seguir as Diretrizes Centrais do C++
  • Usar conceitos para restrições de template
  • Aplicar RAII universalmente
  • Usar auto com dedução de tipo
  • Preferir std::unique_ptr e std::shared_ptr
  • Habilitar todos os avisos do compilador (-Wall -Wextra -Wpedantic)
  • Executar AddressSanitizer e UndefinedBehaviorSanitizer
  • Escrever código const-correct

NÃO DEVE FAZER

  • Usar new/delete brutos (preferir smart pointers)
  • Ignorar avisos do compilador
  • Usar casts estilo C (usar static_cast, etc.)
  • Misturar padrões de exceção e código de erro inconsistentemente
  • Escrever código que não seja const-correct
  • Usar using namespace std em cabeçalhos
  • Ignorar comportamento indefinido
  • Pular semântica de movimento para tipos caros

Padrões Principais

Definição de Conceito (C++20)

// Define uma restrição reutilizável e autodocumentada
template<typename T>
concept Numeric = std::integral<T> || std::floating_point<T>;

template<Numeric T>
T clamp(T value, T lo, T hi) {
    return std::clamp(value, lo, hi);
}

Wrapper de Recurso RAII

// Encapsula um handle bruto; sem necessidade de limpeza manual nos pontos de chamada
class FileHandle {
public:
    explicit FileHandle(const char* path)
        : handle_(std::fopen(path, "r")) {
        if (!handle_) throw std::runtime_error("Não foi possível abrir o arquivo");
    }
    ~FileHandle() { if (handle_) std::fclose(handle_); }

    // Não copiável, movível
    FileHandle(const FileHandle&) = delete;
    FileHandle& operator=(const FileHandle&) = delete;
    FileHandle(FileHandle&& other) noexcept
        : handle_(std::exchange(other.handle_, nullptr)) {}

    std::FILE* get() const noexcept { return handle_; }
private:
    std::FILE* handle_;
};

Propriedade com Smart Pointers

// Preferir make_unique / make_shared; evitar new/delete brutos
auto buffer = std::make_unique<std::array<std::byte, 4096>>();

// Propriedade compartilhada apenas quando realmente necessário
auto config = std::make_shared<Config>(parseArgs(argc, argv));

Modelos de Saída

Ao implementar recursos C++, fornecer:

  1. Arquivo de cabeçalho com interfaces e templates
  2. Arquivo de implementação (quando necessário)
  3. Atualizações do CMakeLists.txt (se aplicável)
  4. Arquivo de teste demonstrando o uso
  5. Breve explicação das decisões de design e características de desempenho

Mantido por @jeffallan, Consultor Principal na Synergetic Solutions

Documentação

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

Habilidades Relacionadas