agent-ctx 1.0.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/README.md +56 -51
  2. package/dist/commands/add.d.ts +1 -1
  3. package/dist/commands/add.d.ts.map +1 -1
  4. package/dist/commands/add.js +1 -1
  5. package/dist/commands/add.js.map +1 -1
  6. package/dist/commands/centralize.d.ts +3 -3
  7. package/dist/commands/centralize.d.ts.map +1 -1
  8. package/dist/commands/centralize.js +21 -21
  9. package/dist/commands/centralize.js.map +1 -1
  10. package/dist/commands/clean.d.ts +3 -3
  11. package/dist/commands/clean.d.ts.map +1 -1
  12. package/dist/commands/clean.js +31 -31
  13. package/dist/commands/clean.js.map +1 -1
  14. package/dist/commands/doctor.d.ts +3 -3
  15. package/dist/commands/doctor.d.ts.map +1 -1
  16. package/dist/commands/doctor.js +132 -50
  17. package/dist/commands/doctor.js.map +1 -1
  18. package/dist/commands/init.d.ts +3 -3
  19. package/dist/commands/init.d.ts.map +1 -1
  20. package/dist/commands/init.js +97 -38
  21. package/dist/commands/init.js.map +1 -1
  22. package/dist/commands/update.d.ts +3 -4
  23. package/dist/commands/update.d.ts.map +1 -1
  24. package/dist/commands/update.js +169 -52
  25. package/dist/commands/update.js.map +1 -1
  26. package/dist/index.d.ts +2 -2
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +11 -12
  29. package/dist/index.js.map +1 -1
  30. package/dist/lib/bridges.d.ts +8 -8
  31. package/dist/lib/bridges.d.ts.map +1 -1
  32. package/dist/lib/bridges.js +108 -108
  33. package/dist/lib/bridges.js.map +1 -1
  34. package/dist/lib/config.d.ts +18 -6
  35. package/dist/lib/config.d.ts.map +1 -1
  36. package/dist/lib/config.js +54 -18
  37. package/dist/lib/config.js.map +1 -1
  38. package/dist/lib/i18n.d.ts.map +1 -1
  39. package/dist/lib/i18n.js +56 -6
  40. package/dist/lib/i18n.js.map +1 -1
  41. package/dist/lib/logger.d.ts +7 -7
  42. package/dist/lib/logger.d.ts.map +1 -1
  43. package/dist/lib/logger.js +17 -17
  44. package/dist/lib/logger.js.map +1 -1
  45. package/dist/lib/templates.d.ts +1 -5
  46. package/dist/lib/templates.d.ts.map +1 -1
  47. package/dist/lib/templates.js +28 -18
  48. package/dist/lib/templates.js.map +1 -1
  49. package/dist/lib/utils.d.ts +8 -8
  50. package/dist/lib/utils.d.ts.map +1 -1
  51. package/dist/lib/utils.js +49 -21
  52. package/dist/lib/utils.js.map +1 -1
  53. package/package.json +77 -63
  54. package/src/templates/en/skills/skill-agents.md +43 -18
  55. package/src/templates/en/skills/skill-memory.md +97 -0
  56. package/src/templates/es/skills/skill-agents.md +43 -18
  57. package/src/templates/es/skills/skill-memory.md +97 -0
  58. package/dist/bin/agentrc.d.ts +0 -7
  59. package/dist/bin/agentrc.d.ts.map +0 -1
  60. package/dist/bin/agentrc.js +0 -8
  61. package/dist/bin/agentrc.js.map +0 -1
  62. package/dist/lib/wizard.d.ts +0 -22
  63. package/dist/lib/wizard.d.ts.map +0 -1
  64. package/dist/lib/wizard.js +0 -197
  65. package/dist/lib/wizard.js.map +0 -1
  66. package/src/templates/en/skills/skill-api.md +0 -117
  67. package/src/templates/en/skills/skill-git.md +0 -109
  68. package/src/templates/en/skills/skill-react.md +0 -94
  69. package/src/templates/en/skills/skill-testing.md +0 -139
  70. package/src/templates/es/skills/skill-api.md +0 -117
  71. package/src/templates/es/skills/skill-git.md +0 -108
  72. package/src/templates/es/skills/skill-react.md +0 -94
  73. package/src/templates/es/skills/skill-testing.md +0 -139
@@ -1,117 +0,0 @@
1
- ---
2
- name: api-design
3
- description: Diseña APIs REST con patrones consistentes, códigos HTTP apropiados y validación. Usar cuando se crean endpoints, manejo de errores o versionado de APIs.
4
- ---
5
-
6
- # API Design
7
-
8
- Patrones y mejores prácticas para diseñar APIs REST.
9
-
10
- ## Cuándo usar
11
-
12
- - Diseñar endpoints REST
13
- - Manejar errores de forma consistente
14
- - Versionado de APIs
15
- - Validación de requests
16
-
17
- ## Convenciones REST
18
-
19
- ### Estructura de URLs
20
-
21
- ```
22
- GET /api/v1/users # Listar usuarios
23
- GET /api/v1/users/:id # Obtener usuario
24
- POST /api/v1/users # Crear usuario
25
- PUT /api/v1/users/:id # Actualizar completo
26
- PATCH /api/v1/users/:id # Actualizar parcial
27
- DELETE /api/v1/users/:id # Eliminar usuario
28
- ```
29
-
30
- ### Query Parameters
31
-
32
- ```
33
- GET /api/v1/users?
34
- page=1& # Paginación
35
- limit=20& # Items por página
36
- sort=createdAt:desc& # Ordenamiento
37
- filter[status]=active # Filtros
38
- ```
39
-
40
- ## Respuestas Estándar
41
-
42
- ### Éxito (200, 201)
43
-
44
- ```json
45
- {
46
- "success": true,
47
- "data": { "id": "123", "name": "John Doe" },
48
- "meta": { "page": 1, "total": 100 }
49
- }
50
- ```
51
-
52
- ### Error (400, 404, 500)
53
-
54
- ```json
55
- {
56
- "success": false,
57
- "error": {
58
- "code": "VALIDATION_ERROR",
59
- "message": "Email is required",
60
- "details": [{ "field": "email", "message": "Required" }]
61
- }
62
- }
63
- ```
64
-
65
- ## Códigos HTTP
66
-
67
- | Código | Significado | Uso |
68
- |--------|-------------|-----|
69
- | 200 | OK | GET, PUT/PATCH exitoso |
70
- | 201 | Created | POST exitoso |
71
- | 204 | No Content | DELETE exitoso |
72
- | 400 | Bad Request | Validación fallida |
73
- | 401 | Unauthorized | No autenticado |
74
- | 403 | Forbidden | Sin permisos |
75
- | 404 | Not Found | Recurso no existe |
76
- | 500 | Server Error | Error interno |
77
-
78
- ## Ejemplo de Validación
79
-
80
- ```typescript
81
- import { z } from 'zod';
82
-
83
- const userSchema = z.object({
84
- email: z.string().email(),
85
- name: z.string().min(2),
86
- role: z.enum(['admin', 'user'])
87
- });
88
-
89
- export function validate(schema: z.ZodSchema) {
90
- return (req, res, next) => {
91
- const result = schema.safeParse(req.body);
92
- if (!result.success) {
93
- return res.status(400).json({
94
- success: false,
95
- error: { code: 'VALIDATION_ERROR', details: result.error.issues }
96
- });
97
- }
98
- req.body = result.data;
99
- next();
100
- };
101
- }
102
- ```
103
-
104
- ## Mejores prácticas
105
-
106
- ### ✅ Hacer
107
-
108
- - Usar HTTPS siempre
109
- - Versionado en URL (`/api/v1/`)
110
- - Rate limiting
111
- - Respuestas consistentes
112
-
113
- ### ❌ Evitar
114
-
115
- - Verbos en URLs (`/getUsers`, `/deleteUser`)
116
- - Exponer IDs internos
117
- - Respuestas sin formato estándar
@@ -1,108 +0,0 @@
1
- ---
2
- name: git-workflow
3
- description: Convenciones Git, estrategias de branching y formato de commits. Usar cuando se crean commits, branches, PRs o se resuelven conflictos.
4
- ---
5
-
6
- # Git Workflow
7
-
8
- Convenciones Git, commits y patrones de flujo de trabajo.
9
-
10
- ## Cuándo usar
11
-
12
- - Escribir mensajes de commit
13
- - Crear feature branches
14
- - Gestionar pull requests
15
- - Resolver conflictos o hacer rebase
16
-
17
- ## Commits (Conventional Commits)
18
-
19
- ### Formato
20
-
21
- ```
22
- <type>(<scope>): <description>
23
-
24
- [cuerpo opcional]
25
-
26
- [footer opcional]
27
- ```
28
-
29
- ### Tipos
30
-
31
- | Tipo | Descripción |
32
- |------|-------------|
33
- | `feat` | Nueva funcionalidad |
34
- | `fix` | Corrección de bug |
35
- | `docs` | Solo documentación |
36
- | `style` | Formato (sin cambio de código) |
37
- | `refactor` | Refactorización |
38
- | `test` | Añadir/modificar tests |
39
- | `chore` | Mantenimiento, deps |
40
- | `perf` | Mejora de rendimiento |
41
-
42
- ### Ejemplos
43
-
44
- ```bash
45
- feat(auth): añadir login con Google OAuth
46
- fix(api): manejar respuesta null en fetch de usuario
47
- docs: actualizar guía de instalación
48
-
49
- # Breaking change
50
- feat(api)!: cambiar formato de respuesta
51
-
52
- BREAKING CHANGE: Response ahora devuelve datos en `result` en vez de `data`
53
- ```
54
-
55
- ## Estrategia de Branching (Git Flow)
56
-
57
- ```
58
- main (producción)
59
-
60
- └── develop (desarrollo)
61
-
62
- ├── feature/nueva-funcionalidad
63
- ├── bugfix/corregir-bug
64
- └── release/v1.2.0
65
- ```
66
-
67
- ### Crear Feature Branch
68
-
69
- ```bash
70
- git checkout develop
71
- git pull origin develop
72
- git checkout -b feature/nombre-descriptivo
73
- ```
74
-
75
- ## Comandos Útiles
76
-
77
- ```bash
78
- # Stash
79
- git stash # Guardar cambios
80
- git stash pop # Restaurar cambios
81
-
82
- # Rebase interactivo
83
- git rebase -i HEAD~3 # Últimos 3 commits
84
-
85
- # Cherry Pick
86
- git cherry-pick abc123 # Aplicar commit específico
87
-
88
- # Bisect (encontrar bug)
89
- git bisect start
90
- git bisect bad # Commit actual tiene bug
91
- git bisect good abc123 # Commit bueno conocido
92
- ```
93
-
94
- ## Mejores prácticas
95
-
96
- ### ✅ Hacer
97
-
98
- - Commits atómicos (un cambio lógico por commit)
99
- - PRs pequeños y enfocados
100
- - Rebase antes de merge
101
- - Squash commits WIP
102
-
103
- ### ❌ Evitar
104
-
105
- - Commits con solo "fix" o "update"
106
- - PRs gigantes (>500 líneas)
107
- - Force push a branches compartidas
108
- - Mezclar refactors con features
@@ -1,94 +0,0 @@
1
- ---
2
- name: react-patterns
3
- description: Patrones de componentes React, hooks y mejores prácticas con TypeScript. Usar cuando se crean componentes, custom hooks u optimización de renderizado.
4
- ---
5
-
6
- # React Patterns
7
-
8
- Patrones y mejores prácticas para desarrollo React.
9
-
10
- ## Cuándo usar
11
-
12
- - Crear componentes reutilizables
13
- - Manejar estado complejo
14
- - Optimizar rendimiento de renderizado
15
- - Construir custom hooks
16
-
17
- ## Patrones de Componentes
18
-
19
- ### Componente Funcional con Props Tipadas
20
-
21
- ```tsx
22
- interface ButtonProps {
23
- variant: 'primary' | 'secondary';
24
- children: React.ReactNode;
25
- onClick?: () => void;
26
- disabled?: boolean;
27
- }
28
-
29
- export function Button({ variant, children, onClick, disabled }: ButtonProps) {
30
- return (
31
- <button
32
- className={`btn btn-${variant}`}
33
- onClick={onClick}
34
- disabled={disabled}
35
- >
36
- {children}
37
- </button>
38
- );
39
- }
40
- ```
41
-
42
- ### Custom Hook
43
-
44
- ```tsx
45
- function useToggle(initialValue = false) {
46
- const [value, setValue] = useState(initialValue);
47
-
48
- const toggle = useCallback(() => setValue(v => !v), []);
49
- const setTrue = useCallback(() => setValue(true), []);
50
- const setFalse = useCallback(() => setValue(false), []);
51
-
52
- return { value, toggle, setTrue, setFalse };
53
- }
54
- ```
55
-
56
- ### Compound Components
57
-
58
- ```tsx
59
- const Card = ({ children }) => <div className="card">{children}</div>;
60
- Card.Header = ({ children }) => <div className="card-header">{children}</div>;
61
- Card.Body = ({ children }) => <div className="card-body">{children}</div>;
62
-
63
- // Uso:
64
- <Card>
65
- <Card.Header>Título</Card.Header>
66
- <Card.Body>Contenido</Card.Body>
67
- </Card>
68
- ```
69
-
70
- ## Estructura de Directorios
71
-
72
- ```
73
- components/
74
- ├── ui/ # Componentes base (Button, Input, Modal)
75
- ├── features/ # Componentes específicos de features
76
- ├── layouts/ # Layouts y wrappers
77
- └── hooks/ # Custom hooks reutilizables
78
- ```
79
-
80
- ## Mejores prácticas
81
-
82
- ### ✅ Hacer
83
-
84
- - Usar `useMemo` y `useCallback` para optimización
85
- - Tipar todas las props con TypeScript
86
- - Extraer lógica a custom hooks
87
- - Composición sobre herencia
88
-
89
- ### ❌ Evitar
90
-
91
- - Props drilling excesivo (usar Context)
92
- - useEffect sin dependencias correctas
93
- - Estado en el componente incorrecto
94
- - Listas sin `key`
@@ -1,139 +0,0 @@
1
- ---
2
- name: testing-practices
3
- description: Estrategias de testing, patrones y mejores prácticas con Jest/Vitest. Usar cuando se escriben unit tests, integration tests o mocking de dependencias.
4
- ---
5
-
6
- # Testing Practices
7
-
8
- Estrategias y patrones para testing efectivo.
9
-
10
- ## Cuándo usar
11
-
12
- - Escribir unit tests
13
- - Crear integration tests
14
- - Mockear dependencias
15
- - Testear componentes React
16
-
17
- ## Pirámide de Testing
18
-
19
- ```
20
- /\
21
- / \ E2E Tests (Playwright, Cypress)
22
- /----\
23
- / \ Integration Tests
24
- /--------\
25
- / \ Unit Tests
26
- /____________\
27
- ```
28
-
29
- ## Unit Tests (Vitest)
30
-
31
- ### Test Básico
32
-
33
- ```typescript
34
- import { describe, it, expect } from 'vitest';
35
- import { sum } from './sum';
36
-
37
- describe('sum', () => {
38
- it('debería sumar dos números positivos', () => {
39
- expect(sum(1, 2)).toBe(3);
40
- });
41
-
42
- it('debería manejar números negativos', () => {
43
- expect(sum(-1, 1)).toBe(0);
44
- });
45
- });
46
- ```
47
-
48
- ### Test con Setup/Teardown
49
-
50
- ```typescript
51
- describe('UserService', () => {
52
- let service: UserService;
53
-
54
- beforeEach(() => {
55
- service = new UserService();
56
- });
57
-
58
- afterEach(() => {
59
- vi.clearAllMocks();
60
- });
61
-
62
- it('debería crear un usuario', async () => {
63
- const user = await service.create({ name: 'Test' });
64
- expect(user.id).toBeDefined();
65
- });
66
- });
67
- ```
68
-
69
- ## Mocking
70
-
71
- ```typescript
72
- // Mock de módulo
73
- vi.mock('./database', () => ({
74
- query: vi.fn().mockResolvedValue([{ id: 1, name: 'Test' }])
75
- }));
76
-
77
- // Mock de función
78
- const mockFetch = vi.fn().mockResolvedValue({
79
- json: () => Promise.resolve({ data: 'test' })
80
- });
81
-
82
- // Spy
83
- const spy = vi.spyOn(console, 'log');
84
- myFunction();
85
- expect(spy).toHaveBeenCalledWith('mensaje esperado');
86
- ```
87
-
88
- ## React Testing Library
89
-
90
- ```typescript
91
- import { render, screen, fireEvent } from '@testing-library/react';
92
-
93
- test('debería mostrar e interactuar con botón', async () => {
94
- const handleClick = vi.fn();
95
- render(<Button onClick={handleClick}>Click me</Button>);
96
-
97
- const button = screen.getByRole('button', { name: /click me/i });
98
- expect(button).toBeInTheDocument();
99
-
100
- await fireEvent.click(button);
101
- expect(handleClick).toHaveBeenCalledTimes(1);
102
- });
103
- ```
104
-
105
- ## Estructura de Tests
106
-
107
- ```
108
- __tests__/
109
- ├── unit/
110
- │ ├── services/
111
- │ └── utils/
112
- ├── integration/
113
- │ └── api/
114
- └── e2e/
115
- └── flows/
116
- ```
117
-
118
- ## Mejores prácticas
119
-
120
- ### ✅ Hacer
121
-
122
- - Una aserción por test (cuando sea posible)
123
- - Nombres descriptivos: `debería_X_cuando_Y`
124
- - Arrange-Act-Assert (AAA)
125
- - Tests independientes
126
-
127
- ### ❌ Evitar
128
-
129
- - Tests que dependen del orden
130
- - Lógica en tests
131
- - Tests flaky (intermitentes)
132
- - Mockear todo indiscriminadamente
133
-
134
- ## Cobertura Recomendada
135
-
136
- - Statements: 80%
137
- - Branches: 75%
138
- - Functions: 80%
139
- - Lines: 80%