angular-agents-skills 1.0.0 → 1.0.1

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 (2) hide show
  1. package/README.md +191 -95
  2. package/package.json +2 -2
package/README.md CHANGED
@@ -1,202 +1,298 @@
1
- # Angular AI
1
+ # angular-agents-skills
2
2
 
3
- > AI-agnostic Angular agents and skills for any coding tool.
3
+ > Instala conocimiento Angular production-ready en tu agente de AI coding.
4
4
 
5
- Install production-ready Angular knowledge into your AI coding agent. Agents and skills are defined once and installed into OpenCode, Claude Code, Codex, or any future tool.
5
+ Agents y skills definidos una sola vez, instalados en OpenCode, Claude Code, Codex, Cursor, Copilot o cualquier herramienta futura. Sin duplicar configuración. Sin depender de un vendor.
6
6
 
7
7
  ---
8
8
 
9
9
  ## Architecture
10
10
 
11
11
  ```
12
- angular-agent-skills/
13
- ├── agents/ # Universal agent definitions
12
+ angular-agents-skills/
13
+ ├── agents/ # Definiciones universales de agents
14
14
  │ ├── angular-architect/
15
- │ │ ├── agent.yaml # Metadata (name, description, triggers, skills)
16
- │ │ └── agent.md # Instructions (pure markdown)
15
+ │ │ ├── agent.md # Instrucciones (markdown puro)
16
+ │ │ └── configs/ # Configuración por herramienta AI
17
+ │ │ ├── opencode.yaml
18
+ │ │ ├── claude.yaml
19
+ │ │ ├── codex.yaml
20
+ │ │ ├── cursor.yaml
21
+ │ │ └── copilot.yaml
17
22
  │ ├── angular-migrator/
18
- │ │ ├── agent.yaml
19
- │ │ └── agent.md
23
+ │ │ ├── agent.md
24
+ │ │ └── configs/
20
25
  │ └── angular-reviewer/
21
- │ ├── agent.yaml
22
- │ └── agent.md
23
- ├── adapters/ # AI-specific format converters
24
- │ ├── opencode.ts
25
- │ ├── claude.ts
26
- │ └── codex.ts
27
- ├── skills/ # Reusable Angular knowledge
26
+ │ ├── agent.md
27
+ │ └── configs/
28
+ ├── skills/ # Conocimiento Angular reutilizable
28
29
  │ ├── architecture/
29
30
  │ ├── components/
30
31
  │ ├── libraries/
31
32
  │ ├── performance/
32
33
  │ ├── quality/
33
34
  │ └── reactivity/
34
- ├── src/ # CLI and core logic
35
- │ ├── cli.ts
36
- │ ├── registry.ts
37
- │ ├── types.ts
38
- └── index.ts
39
- └── tests/ # Test suite
35
+ ├── adapters/ # Conversores de formato por herramienta
36
+ │ ├── opencode/
37
+ │ ├── claude/
38
+ │ ├── codex/
39
+ ├── cursor/
40
+ └── copilot/
41
+ └── src/ # CLI y lógica core
42
+ ├── cli.ts
43
+ ├── registry.ts
44
+ └── types.ts
40
45
  ```
41
46
 
42
- ### Universal Agent Format
47
+ ### Universal Agents
43
48
 
44
- Each agent is a directory with two files:
49
+ Cada agent es un directorio con un `agent.md` (instrucciones en markdown puro) y un directorio `configs/` con archivos YAML por cada herramienta AI. Esta es la fuente de verdad. Los agents nunca dependen de ninguna herramienta específica.
45
50
 
46
- - **`agent.yaml`** — Universal metadata (name, description, triggers, skills)
47
- - **`agent.md`** — Pure markdown instructions (no frontmatter, no tool-specific syntax)
51
+ ### Skills
48
52
 
49
- This is the single source of truth. Agents never depend on any specific AI tool.
53
+ Skills son módulos de conocimiento Angular reutilizables. Cada skill es un `SKILL.md` dentro de una categoría. Los agents referencian los skills relevantes para ejecutar sus tareas.
50
54
 
51
55
  ### Adapters
52
56
 
53
- Adapters transform universal agents into tool-specific formats:
57
+ Adapters transforman agents universales al formato específico de cada herramienta:
54
58
 
55
- | Adapter | Output Format | Install Path |
59
+ | Adapter | Formato de Salida | Path de Instalación |
56
60
  |---|---|---|
57
61
  | `opencode` | Markdown + YAML frontmatter | `.opencode/agents/` |
58
62
  | `claude` | Markdown + YAML frontmatter | `.claude/agents/` |
59
63
  | `codex` | TOML | `.codex/agents/` |
64
+ | `cursor` | MDC (Markdown Custom) | `.cursor/rules/` |
65
+ | `copilot` | Markdown con header | `.github/` |
60
66
 
61
- Adding a new AI tool requires only creating a new adapter file no changes to agents or core logic.
67
+ Agregar una nueva herramienta AI solo requiere crear un nuevo archivo adapter — sin modificar agents ni la lógica core.
62
68
 
63
69
  ---
64
70
 
65
71
  ## Installation
66
72
 
67
- ### As CLI
73
+ ### CLI Global
68
74
 
69
75
  ```bash
70
- npm install -g angular-ai
76
+ npm install -g angular-agents-skills
71
77
  ```
72
78
 
73
- ### As dependency
79
+ ### Como dependencia del proyecto
74
80
 
75
81
  ```bash
76
- npm install angular-ai
82
+ npm install angular-agents-skills
77
83
  ```
78
84
 
85
+ ### Node.js >= 18.0.0 requerido
86
+
79
87
  ---
80
88
 
81
89
  ## Usage
82
90
 
83
- ### Install an agent
91
+ ### Instalar un agent para una herramienta
84
92
 
85
93
  ```bash
86
- # For OpenCode
87
- npx angular-ai install agent angular-architect --ai opencode
94
+ # OpenCode
95
+ npx angular-ai agent angular-architect --ai opencode
96
+
97
+ # Claude Code
98
+ npx angular-ai agent angular-architect --ai claude
99
+
100
+ # Codex
101
+ npx angular-ai agent angular-architect --ai codex
88
102
 
89
- # For Claude Code
90
- npx angular-ai install agent angular-architect --ai claude
103
+ # Cursor
104
+ npx angular-ai agent angular-architect --ai cursor
91
105
 
92
- # For Codex
93
- npx angular-ai install agent angular-architect --ai codex
106
+ # Copilot
107
+ npx angular-ai agent angular-architect --ai copilot
94
108
  ```
95
109
 
96
- ### Install for all tools
110
+ ### Instalar un agent para todas las herramientas
97
111
 
98
112
  ```bash
99
- npx angular-ai install agent angular-architect --all
113
+ npx angular-ai agent angular-architect --all
100
114
  ```
101
115
 
102
- ### Custom target directory
116
+ ### Instalar una skill
103
117
 
104
118
  ```bash
105
- npx angular-ai install agent angular-architect \
106
- --ai opencode \
107
- --agent ./my-agents
119
+ npx angular-ai skill signals-state-management --ai opencode
120
+ npx angular-ai skill defer-blocks --all
108
121
  ```
109
122
 
110
- ### List available agents
123
+ ### Directorio personalizado
111
124
 
112
125
  ```bash
113
- npx angular-ai list agents
126
+ npx angular-ai agent angular-architect --ai opencode --target ./my-agents
127
+ npx angular-ai skill signals-effects --ai claude --target ./my-skills
114
128
  ```
115
129
 
116
- ### List available adapters
130
+ ### Listar recursos disponibles
117
131
 
118
132
  ```bash
133
+ npx angular-ai list agents
134
+ npx angular-ai list skills
119
135
  npx angular-ai list adapters
120
136
  ```
121
137
 
122
138
  ---
123
139
 
124
- ## Agents
140
+ ## Available Agents
125
141
 
126
- | Agent | Purpose | Triggers |
142
+ | Agent | Descripción | Triggers |
127
143
  |---|---|---|
128
- | `angular-architect` | Generate components, services, libraries | create component, generar, scaffold |
129
- | `angular-migrator` | Migrate legacy code to modern patterns | migrate, migrar, convert to signals |
130
- | `angular-reviewer` | Review code for best practices | review, revisar, code review |
144
+ | `angular-architect` | Genera componentes, servicios y libraries siguiendo convenciones del proyecto y mejores prácticas. Usa signal-based inputs/outputs, standalone components, functional inject(). | create component, generar, scaffold, crear servicio, nueva library |
145
+ | `angular-migrator` | Migra código Angular legacy a patrones modernos: template syntax (@if/@for/@switch), signals, standalone components, host bindings. Respeta funcionalidad existente. | migrate, migrar, convertir a signals, modernizar, upgrade |
146
+ | `angular-reviewer` | Revisa PRs y código contra una checklist de performance, reactivity, arquitectura y testing. Genera reporte estructurado con blockers y sugerencias. | review, revisar, code review, PR review, check |
131
147
 
132
148
  ---
133
149
 
134
- ## Skills
150
+ ## Available Skills
135
151
 
136
- Skills are reusable knowledge modules that agents reference:
152
+ ### Architecture
137
153
 
138
- | Category | Skills |
154
+ | Skill | Descripción |
139
155
  |---|---|
140
- | **Architecture** | injection-tokens, overlay-animation-lifecycle |
141
- | **Components** | dynamic-components, modern-host-bindings, content-projection-ng, viewchild-contentchild-signals |
142
- | **Libraries** | standalone-component-library, monorepo-ng-packagr, library-versioning |
143
- | **Performance** | defer-blocks, control-flow-syntax |
144
- | **Quality** | pr-reviewer, vitest-angular-components |
145
- | **Reactivity** | signals-state-management, signals-inputs-outputs, signals-effects |
156
+ | `injection-tokens` | Define y consume `InjectionToken`s tipados para configuración y patrones adapter/strategy |
157
+ | `overlay-animation-lifecycle` | Coordina animaciones CSS de enter/leave para overlays (modal, popover, toast) sin Angular animations |
158
+
159
+ ### Components
160
+
161
+ | Skill | Descripción |
162
+ |---|---|
163
+ | `dynamic-components` | Crea y monta componentes dinámicamente en runtime con `createComponent()` y `ApplicationRef` |
164
+ | `modern-host-bindings` | Bindings dinámicos de clases, atributos y ARIA via objeto `host` en `@Component` |
165
+ | `content-projection-ng` | Proyección de contenido con `ng-content`, `select` y `ngProjectAs` (slots nombrados y multi-slot) |
166
+ | `viewchild-contentchild-signals` | Query de view/content children con funciones signal-based: `viewChild()`, `contentChild()`, `contentChildren()` |
167
+
168
+ ### Libraries
169
+
170
+ | Skill | Descripción |
171
+ |---|---|
172
+ | `standalone-component-library` | Scaffold de library Angular standalone con ng-packagr, barrel exports y SCSS |
173
+ | `monorepo-ng-packagr` | Estructura y operación de monorepo multi-library con ng-packagr, path aliases y scripts |
174
+ | `library-versioning` | Actualización de versiones de libraries y manejo de peer dependencies |
175
+
176
+ ### Performance
177
+
178
+ | Skill | Descripción |
179
+ |---|---|
180
+ | `defer-blocks` | Lazy-load de secciones de template con `@defer`, triggers (viewport, idle, interaction), placeholder, loading, error |
181
+ | `control-flow-syntax` | Control flow nativo del template: `@if`, `@for` (con `track`), `@switch` en vez de directivas estructurales |
182
+
183
+ ### Quality
184
+
185
+ | Skill | Descripción |
186
+ |---|---|
187
+ | `pr-reviewer` | Review de Pull Requests usando Azure DevOps MCP con reporte estructurado |
188
+ | `vitest-angular-components` | Configuración y tests de componentes standalone con Vitest browser mode + Playwright |
189
+
190
+ ### Reactivity
191
+
192
+ | Skill | Descripción |
193
+ |---|---|
194
+ | `signals-state-management` | Gestión de estado local con `signal()`, `computed()` y `linkedSignal()` |
195
+ | `signals-inputs-outputs` | Migración de `@Input()`/`@Output()` a APIs signal-based: `input()`, `output()`, `model()` |
196
+ | `signals-effects` | Uso correcto de `effect()` y `afterRenderEffect()` para side effects reactivos |
146
197
 
147
198
  ---
148
199
 
149
- ## Development
200
+ ## Supported AI Tools
201
+
202
+ | Tool | Formato | Path por Defecto | Notas |
203
+ |---|---|---|---|
204
+ | **OpenCode** | Markdown + YAML frontmatter | `.opencode/agents/` | Soporta `mode` y `permission` en frontmatter |
205
+ | **Claude Code** | Markdown + YAML frontmatter | `.claude/agents/` | Soporta `tools` en frontmatter |
206
+ | **Codex** | TOML | `.codex/agents/` | Instrucciones escapadas en `developer_instructions` |
207
+ | **Cursor** | MDC (Markdown Custom) | `.cursor/rules/` | Incluye `alwaysApply: false` en frontmatter |
208
+ | **GitHub Copilot** | Markdown | `.github/` | Archivo nombrado `copilot-instructions-<agent>.md` |
209
+
210
+ ### Agregar una nueva herramienta AI
211
+
212
+ 1. Crear `adapters/my-tool/index.ts` implementando la interfaz `Adapter`
213
+ 2. Registrar en `src/cli.ts` con `registerAdapter(createMyToolAdapter())`
214
+ 3. Listo. La CLI ahora soporta `--ai my-tool`
215
+
216
+ ---
217
+
218
+ ## Development & Contributing
219
+
220
+ ### Setup
150
221
 
151
222
  ```bash
152
- # Install dependencies
223
+ # Instalar dependencias
153
224
  npm install
154
225
 
155
226
  # Build
156
227
  npm run build
157
228
 
158
- # Run tests
229
+ # Watch (dev)
230
+ npm run dev
231
+
232
+ # Tests
159
233
  npm test
160
234
 
235
+ # Tests en watch mode
236
+ npm run test:watch
237
+
161
238
  # Type check
162
239
  npm run lint
163
240
  ```
164
241
 
165
- ---
242
+ ### Adding a new Agent
166
243
 
167
- ## Adding a New Adapter
244
+ 1. Crear directorio `agents/<agent-name>/`
245
+ 2. Agregar `agent.md` con instrucciones en markdown puro (sin frontmatter, sin sintaxis de herramienta específica)
246
+ 3. Crear `configs/` con un YAML por cada herramienta AI soportada:
168
247
 
169
- 1. Create `adapters/my-tool.ts`:
170
- ```typescript
171
- import type { Adapter, AdapterOutput, InstallOptions, UniversalAgent } from '../src/types.js';
172
-
173
- export const myToolAdapter: Adapter = {
174
- name: 'my-tool',
175
- description: 'My AI Tool',
176
- defaultDir: '.my-tool/agents',
177
-
178
- generate(agent: UniversalAgent): AdapterOutput {
179
- // Transform agent to tool-specific format
180
- return {
181
- filename: `${agent.metadata.name}.ext`,
182
- content: `...`,
183
- };
184
- },
185
-
186
- getInstallPath(options: InstallOptions): string {
187
- const base = options.targetDir || this.defaultDir;
188
- return `${base}/${options.agentName}.ext`;
189
- },
190
- };
248
+ ```yaml
249
+ # agents/my-agent/configs/opencode.yaml
250
+ name: my-agent
251
+ description: Descripción del agent
252
+ mode: subagent
253
+ permission:
254
+ edit: allow
255
+ bash: ask
191
256
  ```
192
257
 
193
- 2. Register in `src/cli.ts`:
258
+ ### Adding a new Skill
259
+
260
+ 1. Crear directorio `skills/<category>/<skill-name>/`
261
+ 2. Agregar `SKILL.md` con metadata YAML al inicio y contenido en markdown
262
+
263
+ ### Adding a new Adapter
264
+
194
265
  ```typescript
195
- import { myToolAdapter } from '../adapters/my-tool.js';
196
- registerAdapter(myToolAdapter);
266
+ import type { Adapter, AdapterOutput, UniversalAgent } from '../../src/types.js';
267
+
268
+ export function createMyToolAdapter(): Adapter {
269
+ return {
270
+ name: 'my-tool',
271
+ description: 'My AI Tool',
272
+ defaultDir: '.my-tool/agents',
273
+ extension: 'md',
274
+
275
+ generate(agent: UniversalAgent, config?: Record<string, unknown>): AdapterOutput {
276
+ return {
277
+ filename: `${agent.metadata.name}.md`,
278
+ content: `---\ndescription: ${agent.metadata.description}\n---\n\n${agent.instructions.content}`,
279
+ };
280
+ },
281
+
282
+ getInstallPath(name: string, targetDir?: string): string {
283
+ const base = targetDir || this.defaultDir;
284
+ return `${base}/${name}.${this.extension}`;
285
+ },
286
+ };
287
+ }
197
288
  ```
198
289
 
199
- 3. Done. The CLI now supports `--ai my-tool`.
290
+ Registrar en `src/cli.ts`:
291
+
292
+ ```typescript
293
+ import { createMyToolAdapter } from '../adapters/my-tool/index.js';
294
+ registerAdapter(createMyToolAdapter());
295
+ ```
200
296
 
201
297
  ---
202
298
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "angular-agents-skills",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "Install Angular agents and skills for AI coding tools",
5
5
  "type": "module",
6
6
  "bin": {
@@ -42,4 +42,4 @@
42
42
  "skills",
43
43
  "adapters"
44
44
  ]
45
- }
45
+ }