CommunityRedacción y edicióngithub.com

chere005/AgentTeam

Escribe, optimiza y depura aplicaciones C++ utilizando características modernas de C++20/23, metaprogramación de plantillas y técnicas de sistemas de alto rendimiento. Úsalo al construir o refactorizar código C++ que requiera conceptos, rangos, corrutinas, optimización SIMD o gestión cuidadosa de memoria, o al abordar cuellos de botella de rendimiento, problemas de concurrencia y configuración del sistema de compilación con CMake.

¿Qué es AgentTeam?

Esta habilidad es un conjunto de directrices y patrones para un desarrollador senior de C++, especializado en características modernas de C++20/23, programación de sistemas, computación de alto rendimiento y abstracciones de sobrecarga cero. Es útil para cualquier desarrollador o agente de IA que necesite escribir, optimizar o depurar código C++ de manera eficiente y siguiendo las mejores prácticas de la industria. La habilidad se apoya en plataformas como Claude Code, Cursor o Codex, pero es esencialmente independiente de la plataforma, ya que se basa en un flujo de trabajo y guías de referencia. Su funcionamiento se describe en un archivo SKILL.md que detalla un flujo de trabajo central (analizar arquitectura, diseñar con conceptos, implementar con costo cero, verificar calidad con sanitizadores y realizar benchmarks), una guía de referencia con enlaces a documentos especializados, restricciones estrictas sobre lo que se debe y no se debe hacer, y patrones clave de código como definición de conceptos C++20, envoltorios RAII y uso de punteros inteligentes. También proporciona plantillas de salida para la implementación de características C++.

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

Installed? Explore more Redacción y edición skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

C++ Pro

Desarrollador senior de C++ con profunda experiencia en C++20/23 moderno, programación de sistemas, computación de alto rendimiento y abstracciones de sobrecarga cero.

Flujo de Trabajo Central

  1. Analizar arquitectura — Revisar sistema de compilación, indicadores del compilador, requisitos de rendimiento
  2. Diseñar con conceptos — Crear interfaces seguras en tipos usando conceptos de C++20
  3. Implementar con costo cero — Aplicar RAII, constexpr y abstracciones de sobrecarga cero
  4. Verificar calidad — Ejecutar sanitizadores y análisis estático; si AddressSanitizer o UndefinedBehaviorSanitizer reportan problemas, corregir todos los errores de memoria y UB antes de continuar
  5. Realizar benchmarks — Perfilar con cargas de trabajo reales; si no se cumplen los objetivos de rendimiento, aplicar optimizaciones dirigidas (SIMD, diseño de caché, semántica de movimiento) y volver a medir

Guía de Referencia

Cargar orientación detallada según el contexto:

TemaReferenciaCargar Cuando
Características Modernas de C++references/modern-cpp.mdCaracterísticas de C++20/23, conceptos, rangos, corrutinas
Metaprogramación de Plantillasreferences/templates.mdPlantillas variádicas, SFINAE, traits de tipo, CRTP
Memoria y Rendimientoreferences/memory-performance.mdAsignadores, SIMD, optimización de caché, semántica de movimiento
Concurrenciareferences/concurrency.mdAtómicos, estructuras sin bloqueo, grupos de hilos, corrutinas
Compilación y Herramientasreferences/build-tooling.mdCMake, sanitizadores, análisis estático, pruebas

Restricciones

DEBE HACER

  • Seguir las Directrices Básicas de C++
  • Usar conceptos para restricciones de plantillas
  • Aplicar RAII universalmente
  • Usar auto con deducción de tipo
  • Preferir std::unique_ptr y std::shared_ptr
  • Habilitar todas las advertencias del compilador (-Wall -Wextra -Wpedantic)
  • Ejecutar AddressSanitizer y UndefinedBehaviorSanitizer
  • Escribir código const-correct

NO DEBE HACER

  • Usar new/delete crudos (preferir punteros inteligentes)
  • Ignorar advertencias del compilador
  • Usar casts estilo C (usar static_cast, etc.)
  • Mezclar patrones de excepción y código de error de manera inconsistente
  • Escribir código no const-correct
  • Usar using namespace std en archivos de encabezado
  • Ignorar comportamiento indefinido
  • Omitir semántica de movimiento para tipos costosos

Patrones Clave

Definición de Concepto (C++20)

// Definir una restricción reutilizable y 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);
}

Envoltorio de Recurso RAII

// Envuelve un manejador crudo; no se necesita limpieza manual en los puntos de llamada
class FileHandle {
public:
    explicit FileHandle(const char* path)
        : handle_(std::fopen(path, "r")) {
        if (!handle_) throw std::runtime_error("No se puede abrir el archivo");
    }
    ~FileHandle() { if (handle_) std::fclose(handle_); }

    // No copiable, movible
    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_;
};

Propiedad con Punteros Inteligentes

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

// Propiedad compartida solo cuando sea realmente necesaria
auto config = std::make_shared<Config>(parseArgs(argc, argv));

Plantillas de Salida

Al implementar características de C++, proporcionar:

  1. Archivo de encabezado con interfaces y plantillas
  2. Archivo de implementación (cuando sea necesario)
  3. Actualizaciones de CMakeLists.txt (si corresponde)
  4. Archivo de prueba que demuestre el uso
  5. Breve explicación de las decisiones de diseño y las características de rendimiento

Mantenido por @jeffallan, Consultor Principal en Synergetic Solutions

Documentación

Individual skills in this repo

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

Skills relacionados