|
| 1 | +--- |
| 2 | +id: agent-manifest-v1 |
| 3 | +version: 1.0.0 |
| 4 | +language: es |
| 5 | +generated_by: agent-automation |
| 6 | +description: >- |
| 7 | + Documento maestro que describe el agente/entorno de ejecución para |
| 8 | + NetOpsToolkit: arquitectura, catálogo de `skills`, contratos de invocación, |
| 9 | + políticas de seguridad y checklist de despliegue. |
| 10 | +--- |
| 11 | + |
| 12 | +# Agent Manifest — NetOpsToolkit |
| 13 | + |
| 14 | +## Propósito |
| 15 | + |
| 16 | +Este documento describe cómo un "agent" (humano o automatizado) debe |
| 17 | +descubrir, validar e invocar las capacidades (`skills`) del proyecto. |
| 18 | + |
| 19 | +## Arquitectura (resumen) |
| 20 | + |
| 21 | +- Frontend SPA construido con Vite, Tailwind y módulos ES (entry: `src/js/main.js`). |
| 22 | +- Herramientas organizadas en `src/js/tools/` y wrappers de plataforma en `src/js/platform/`. |
| 23 | +- Serverless: Netlify Functions en `netlify/functions/` (ej. `geo-ip.js`). |
| 24 | +- Tests: Jest (`tests/`). |
| 25 | + |
| 26 | +## Catálogo de skills |
| 27 | + |
| 28 | +El catálogo machine-readable se encuentra en `docs/skills.md`. |
| 29 | +Los agentes deben leer el frontmatter YAML para mapear `skill.id` a la |
| 30 | +implementación adecuada (módulo lazy-loaded o función serverless). |
| 31 | + |
| 32 | +## Contrato de invocación (ejemplos) |
| 33 | + |
| 34 | +1) Invocar skill en cliente (módulo JS): |
| 35 | + |
| 36 | +```js |
| 37 | +import('./src/js/tools/ip-lookup.js').then(({run})=>{ |
| 38 | + return run({clientIp: '1.2.3.4'}) |
| 39 | +}) |
| 40 | +``` |
| 41 | + |
| 42 | +2) Invocar skill como API (Netlify Function): |
| 43 | + |
| 44 | +Request POST /.netlify/functions/skill-proxy |
| 45 | +Payload: |
| 46 | +```json |
| 47 | +{ "skill": "ip-lookup", "input": { "clientIp": "1.2.3.4" } } |
| 48 | +``` |
| 49 | + |
| 50 | +Response esperado (estándar): |
| 51 | +```json |
| 52 | +{ "status": "ok", "skill": "ip-lookup", "result": { ... } } |
| 53 | +``` |
| 54 | + |
| 55 | +## Requisitos de runtime y secrets |
| 56 | + |
| 57 | +- Node >=16 para funciones serverless y scripts de build. |
| 58 | +- Secretos (añadir en Netlify / GitHub Secrets): `NETLIFY_AUTH_TOKEN`, `NETLIFY_SITE_ID`, `SENTRY_DSN` (si aplica). |
| 59 | + |
| 60 | +## CI/CD |
| 61 | + |
| 62 | +- CI: `npm run lint`, `npm test -- --coverage` en PRs. |
| 63 | +- Deploy: build y despliegue automático a Netlify en `main` (workflow incluido). |
| 64 | + |
| 65 | +## Observabilidad y errores |
| 66 | + |
| 67 | +- Integrar Sentry/Roweball para errores client-side si se decide. |
| 68 | +- Enviar métricas vitales y eventos de uso desde `src/js/analytics.js`. |
| 69 | + |
| 70 | +## Seguridad |
| 71 | + |
| 72 | +- Mantener `netlify.toml` y `public/_headers` con CSP y headers. |
| 73 | +- Revisar dependencias periódicamente (`npm audit`) y actualizar. |
| 74 | + |
| 75 | +## Checklist de despliegue (antes de merge a `main`) |
| 76 | + |
| 77 | +- [ ] Lint limpio (`npm run lint`). |
| 78 | +- [ ] Tests pasando con coverage aceptable (`npm test`). |
| 79 | +- [ ] Actualizar `docs/skills.md` si se añade/actualiza un skill. |
| 80 | +- [ ] Revisar `netlify.toml` y variables de entorno. |
| 81 | + |
| 82 | +## Onboarding para contributors |
| 83 | + |
| 84 | +- Añadir nueva herramienta: crear module en `src/js/tools/`, tests en `tests/`, y entry en `docs/skills.md`. |
| 85 | +- Seguir Conv. Commits y abrir PR con descripción y screenshots si aplica. |
0 commit comments