|
| 1 | +# AGENTS.md — DSRP AI Community |
| 2 | + |
| 3 | +## Memoria padre y contexto |
| 4 | + |
| 5 | +Lee primero [`../CLAUDE.md`](../CLAUDE.md). Es la memoria central de Data Science Research Perú (DSRP): marca, idioma, políticas de datos, estructura de trabajo y skills del equipo. |
| 6 | + |
| 7 | +Esta memoria complementa a `CLAUDE.md` solo para el repositorio `ai-community`. Si hay conflicto, las instrucciones explícitas del usuario y la memoria padre tienen prioridad. |
| 8 | + |
| 9 | +## Propósito del repositorio |
| 10 | + |
| 11 | +`DataScienceResearchPeru/ai-community` es el hub público de la comunidad open-source de IA de DSRP. Su modelo de participación es: |
| 12 | + |
| 13 | +```text |
| 14 | +Visitor → Contributor → Community Member → AI Builder → Mentor → Maintainer |
| 15 | +``` |
| 16 | + |
| 17 | +Las contribuciones públicas ocurren mediante fork, rama de feature, Pull Request, checks, revisión y merge. No se debe añadir masivamente a participantes a la organización. |
| 18 | + |
| 19 | +## Estado verificado — 2026-09-06 |
| 20 | + |
| 21 | +- Repositorio: `https://github.com/DataScienceResearchPeru/ai-community`. |
| 22 | +- Visibilidad: pública. |
| 23 | +- Rama por defecto: `main`. |
| 24 | +- Issues y Discussions: habilitados. |
| 25 | +- Metadatos: descripción y 15 topics de IA configurados. |
| 26 | +- Equipos cerrados: `community`, `mentors`, `maintainers`; el equipo anterior `dsrp-github-team` no fue modificado. |
| 27 | +- Permisos del repositorio: `mentors` tiene Triage; `maintainers` tiene Maintain; `community` no necesita permiso adicional en un repositorio público. |
| 28 | +- `main` está protegido: PR obligatorio, una aprobación, conversaciones resueltas, checks requeridos, aplicación a administradores, force push y eliminación bloqueados. |
| 29 | +- Checks requeridos: `Validate pull request / validate`, `Markdown check / markdown`, `Project structure / project-readme`. |
| 30 | +- Pull Request activo: #1 desde `feature/community-foundation`; sus checks pasan y requiere una aprobación independiente antes de merge. |
| 31 | + |
| 32 | +Ver el informe vigente en [`reports/github-audit.md`](reports/github-audit.md). Actualízalo cuando cambie una configuración estable. |
| 33 | + |
| 34 | +## Reglas operativas |
| 35 | + |
| 36 | +1. Trabaja en una rama de feature; no hagas commits directos a `main`. |
| 37 | +2. No borres repositorios, ramas, equipos, miembros, releases, Actions ni configuraciones existentes. |
| 38 | +3. Antes de cambios remotos, inspecciona con `gh auth status`, muestra el cambio propuesto y valida permisos/configuración existente. |
| 39 | +4. No imprimas tokens, credenciales, datos privados ni contenido de `.env`. |
| 40 | +5. Usa `--dry-run` primero para scripts que puedan modificar GitHub. |
| 41 | +6. Mantén los nombres de workflows requeridos si la protección de `main` los referencia; si cambian, actualiza la protección antes de fusionar el cambio. |
| 42 | +7. No des acceso de administrador mediante automatización. Mantén membresía de organización como excepción para colaboradores activos, mentors y maintainers. |
| 43 | + |
| 44 | +## Estructura y fuentes de verdad |
| 45 | + |
| 46 | +- `GOVERNANCE.md`: roles y decisiones de comunidad. |
| 47 | +- `CONTRIBUTING.md`, `docs/contribution-guide.md`: flujo de contribución. |
| 48 | +- `SECURITY.md` y `.gitignore`: manejo de secretos y datos. |
| 49 | +- `.github/`: templates, CODEOWNERS y workflows. |
| 50 | +- `docs/admin/`: operación manual de la comunidad. |
| 51 | +- `scripts/github/`: auditoría, equipos y protección de ramas. |
| 52 | +- `scripts/onboarding/`: invitaciones desde CSV, con confirmación y `--dry-run`. |
| 53 | + |
| 54 | +## Administración de GitHub |
| 55 | + |
| 56 | +Carga valores no secretos desde `community.config.example.env` en variables de entorno. Nunca guardes un token en el repositorio. |
| 57 | + |
| 58 | +En Windows, si una sesión no encuentra `gh` tras instalarlo, usa explícitamente: |
| 59 | + |
| 60 | +```powershell |
| 61 | +& "C:\Program Files\GitHub CLI\gh.exe" auth status |
| 62 | +``` |
| 63 | + |
| 64 | +Antes de aplicar protección, revisa el resultado: |
| 65 | + |
| 66 | +```bash |
| 67 | +scripts/github/configure-repository.sh --dry-run |
| 68 | +``` |
| 69 | + |
| 70 | +La aplicación explícita usa el payload versionado en `scripts/github/main-branch-protection.json`: |
| 71 | + |
| 72 | +```bash |
| 73 | +scripts/github/configure-repository.sh --apply-branch-protection |
| 74 | +``` |
| 75 | + |
| 76 | +## Trabajo pendiente |
| 77 | + |
| 78 | +1. Un maintainer o revisor elegible distinto del autor debe aprobar el PR #1. |
| 79 | +2. Fusionar el PR #1 únicamente después de esa aprobación y de checks exitosos. |
| 80 | +3. Crear manualmente las categorías de Discussions: Announcements, General, Ideas, Projects, Challenges, Help, Show and Tell y AI News. |
| 81 | +4. Usar `scripts/onboarding/onboard-community.sh users.csv --dry-run` antes de invitar miembros. |
0 commit comments