Skip to content
Back to skills

1765 Download Tracking 6630b86d

BSecurity

Sistema de seguimiento de descargas anónimo para Claude Code Templates, inspirado en npm analytics.

  • 9 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 11, 2026
devopsgobashsqlnodetestingdebugginggitapibackendci/cd

Works with

  • claude code
  • cli
  • api
  • mcp

Security analysis

B88/100
  • mediumUses curl or wget to download content
  • mediumInstalls packages at runtime which could introduce malicious dependencies
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned October 11, 2026

npx -y skills add tools-only/X-Skills --skill 1765-download_tracking_6630b86d --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 1765 Download Tracking 6630b86d?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 1765 Download Tracking 6630b86d
[![Security: B — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-1765-download-tracking-6630b86d/badge)](https://www.skillsdirectory.com/skills/tools-only-1765-download-tracking-6630b86d)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
# Download Tracking System

Sistema de seguimiento de descargas anónimo para Claude Code Templates, inspirado en npm analytics.

## Descripción

Este sistema rastrea las descargas e instalaciones de componentes de forma completamente anónima para:
- Identificar los componentes más populares
- Mejorar la calidad de los componentes más utilizados
- Entender patrones de uso para desarrollo futuro
- Proporcionar estadísticas públicas similares a npm

## Arquitectura

### Backend (Vercel + Supabase)

1. **API Endpoint**: `/api/track-download-supabase.js`
   - Recibe requests POST con datos de descarga
   - Valida y almacena en Supabase (PostgreSQL)
   - Maneja rate limiting y validaciones

2. **Base de Datos**:
   ```sql
   -- Tabla principal de descargas
   component_downloads (
     id, component_type, component_name, component_path,
     category, download_timestamp, user_agent, ip_address,
     country, cli_version, created_at
   )
   
   -- Tabla de estadísticas agregadas
   download_stats (
     id, component_type, component_name, total_downloads,
     last_download, created_at, updated_at
   )
   ```

### Cliente (CLI)

1. **TrackingService**: Maneja el envío de datos
   - Dual endpoint: Base de datos + telemetría
   - Fire-and-forget (no bloquea al usuario)
   - Respeta opt-out del usuario
   - Timeout de 5 segundos

2. **Integración**: Se ejecuta automáticamente en:
   - `--agent`, `--command`, `--mcp`, `--setting`, `--hook`
   - Instalaciones de templates
   - Health checks
   - Lanzamientos de analytics dashboard

## Datos Recopilados

### Información Anónima
- **Tipo de componente**: agent, command, mcp, setting, hook
- **Nombre del componente**: ej. "api-security-audit"
- **Categoría**: ej. "security", "testing", "automation"
- **Timestamp**: Momento de instalación
- **Plataforma**: OS (linux, darwin, win32)
- **Versión CLI**: Para compatibilidad
- **País**: Solo código de 2 letras (IP geolocation)

### NO se Recopila
- ❌ Información personal identificable
- ❌ Nombres de usuario
- ❌ Rutas completas de archivos
- ❌ Contenido de proyectos
- ❌ Tokens o credenciales

## Configuración

### Variables de Entorno

```bash
# Desactivar tracking completamente
export CCT_NO_TRACKING=true
export CCT_NO_ANALYTICS=true

# Modo debug (mostrar info de tracking)
export CCT_DEBUG=true

# Base de datos (Supabase)
export SUPABASE_URL="https://..."
export SUPABASE_SERVICE_ROLE_KEY="..."
```

### Opt-out del Usuario

El tracking se desactiva automáticamente si:
- `CCT_NO_TRACKING=true`
- `CCT_NO_ANALYTICS=true` 
- `CI=true` (entornos CI/CD)

## Desarrollo

### Setup Local

1. Instalar dependencias:
   ```bash
   npm install
   ```

2. Configurar Vercel:
   ```bash
   # Instalar Vercel CLI
   npm i -g vercel
   
   # Configurar proyecto
   vercel
   ```

3. Configurar base de datos (Supabase):
   ```bash
   # Crear proyecto en Supabase
   # Copiar SUPABASE_URL y SUPABASE_SERVICE_ROLE_KEY
   # Agregar variables de entorno en Vercel Dashboard
   ```

### Testing

```bash
# Test local con CLI
CCT_DEBUG=true node cli-tool/bin/create-claude-config.js --agent deep-research-team/academic-researcher

# Test sin tracking (simula opt-out)
CCT_NO_TRACKING=true node cli-tool/bin/create-claude-config.js --agent test-agent

# Test directo al API
curl -X POST https://www.aitmpl.com/api/track-download-supabase \
  -H "Content-Type: application/json" \
  -d '{"type":"agent","name":"test","path":"test","category":"test","cliVersion":"1.19.0"}'
```

### Deployment

```bash
# Deploy a Vercel
vercel --prod

# Verificar endpoints
curl -X POST https://tu-dominio.com/api/track-download-supabase \
  -H "Content-Type: application/json" \
  -d '{"type":"agent","name":"test","path":"test","category":"test","cliVersion":"1.19.0"}'
```

## API Reference

### POST /api/track-download-supabase

**Request Body:**
```json
{
  "type": "agent|command|mcp|setting|hook|template",
  "name": "component-name",
  "path": "optional/component/path", 
  "category": "component-category",
  "cliVersion": "1.0.0"
}
```

**Response:**
```json
{
  "success": true,
  "message": "Download tracked successfully",
  "data": {
    "type": "agent",
    "name": "component-name", 
    "timestamp": "2023-12-07T10:30:00.000Z"
  }
}
```

**Error Response:**
```json
{
  "error": "Bad Request",
  "message": "Component type and name are required"
}
```

## Monitoreo

### Health Check

```bash
# Verificar salud del API
curl https://tu-dominio.com/api/track-download
```

### Métricas

El sistema proporciona métricas para:
- Total de descargas por componente
- Tendencias de popularidad
- Distribución geográfica
- Versiones de CLI más usadas
- Patrones temporales de uso

### Logs

Los logs incluyen:
- Requests exitosos/fallidos
- Errores de validación
- Problemas de conectividad a BD
- Rate limiting activado

## Seguridad

### Protecciones Implementadas

1. **Rate Limiting**: Por IP y por endpoint
2. **Validación de Input**: Sanitización de todos los campos
3. **Timeout**: 5s máximo por request
4. **CORS**: Headers configurados apropiadamente
5. **SQL Injection**: Queries parametrizadas
6. **Privacy**: No PII, solo métricas agregadas

### Compliance

- **GDPR**: No se almacenan datos personales identificables
- **CCPA**: Sistema completamente anónimo
- **Opt-out**: Múltiples formas de desactivar tracking

## Troubleshooting

### Problemas Comunes

1. **Tracking no funciona**: 
   - Verificar conectividad de red
   - Comprobar variables de entorno
   - Revisar logs con `CCT_DEBUG=true`

2. **Base de datos no responde**:
   - Verificar `POSTGRES_URL`
   - Comprobar límites de conexión
   - Revisar logs de Vercel

3. **Rate limiting activo**:
   - Espaciar requests
   - Implementar backoff exponencial
   - Contactar soporte si persiste

### Debugging

```bash
# Debug completo
CCT_DEBUG=true node cli-tool/src/index.js --agent api-security-audit

# Solo tracking de base de datos
# (modificar código temporalmente)

# Verificar payload
console.log(JSON.stringify(payload, null, 2))
```

## Roadmap

### Próximas Features

1. **Dashboard Público**: Estadísticas en tiempo real
2. **API Pública**: Endpoint para consultar métricas
3. **Webhooks**: Notificaciones de descargas populares
4. **ML Insights**: Recomendaciones basadas en patrones
5. **Retention Analytics**: Análisis de uso continuado

### Mejoras Técnicas

1. **Caching**: Redis para requests frecuentes
2. **CDN**: Distribución geográfica
3. **Monitoring**: Alertas y métricas avanzadas
4. **Backup**: Replicación de base de datos
5. **Performance**: Optimización de queries

## Contribuir

1. Fork el repositorio
2. Crear branch: `git checkout -b feature/tracking-improvement`
3. Commit cambios: `git commit -m 'Add tracking feature'`
4. Push branch: `git push origin feature/tracking-improvement`
5. Crear Pull Request

## Licencia

MIT License - Ver [LICENSE](LICENSE) para detalles.

## Contacto

- Issues: [GitHub Issues](https://github.com/davila7/claude-code-templates/issues)
- Discussions: [GitHub Discussions](https://github.com/davila7/claude-code-templates/discussions)
- Email: soporte@claude-code-templates.com

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.