zugzbot 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 (41) hide show
  1. package/README.md +99 -23
  2. package/bin/init.js +1 -2
  3. package/package.json +2 -3
  4. package/.utils/docs_opencode/acp.md +0 -165
  5. package/.utils/docs_opencode/acp.pdf +0 -0
  6. package/.utils/docs_opencode/agents.md +0 -803
  7. package/.utils/docs_opencode/agents.pdf +0 -0
  8. package/.utils/docs_opencode/commands.md +0 -354
  9. package/.utils/docs_opencode/commands.pdf +0 -0
  10. package/.utils/docs_opencode/custom-tools.md +0 -209
  11. package/.utils/docs_opencode/custom-tools.pdf +0 -0
  12. package/.utils/docs_opencode/ecosystem.md +0 -81
  13. package/.utils/docs_opencode/ecosystem.pdf +0 -0
  14. package/.utils/docs_opencode/formatters.md +0 -142
  15. package/.utils/docs_opencode/formatters.pdf +0 -0
  16. package/.utils/docs_opencode/keybinds.md +0 -205
  17. package/.utils/docs_opencode/keybinds.pdf +0 -0
  18. package/.utils/docs_opencode/lsp.md +0 -202
  19. package/.utils/docs_opencode/lsp.pdf +0 -0
  20. package/.utils/docs_opencode/mcp-servers.md +0 -565
  21. package/.utils/docs_opencode/mcp-servers.pdf +0 -0
  22. package/.utils/docs_opencode/models.md +0 -234
  23. package/.utils/docs_opencode/models.pdf +0 -0
  24. package/.utils/docs_opencode/permissions.md +0 -248
  25. package/.utils/docs_opencode/permissions.pdf +0 -0
  26. package/.utils/docs_opencode/plugins.md +0 -409
  27. package/.utils/docs_opencode/plugins.pdf +0 -0
  28. package/.utils/docs_opencode/rules.md +0 -189
  29. package/.utils/docs_opencode/rules.pdf +0 -0
  30. package/.utils/docs_opencode/sdk.md +0 -522
  31. package/.utils/docs_opencode/sdk.pdf +0 -0
  32. package/.utils/docs_opencode/server.md +0 -324
  33. package/.utils/docs_opencode/server.pdf +0 -0
  34. package/.utils/docs_opencode/skills.md +0 -235
  35. package/.utils/docs_opencode/skills.pdf +0 -0
  36. package/.utils/docs_opencode/themes.md +0 -378
  37. package/.utils/docs_opencode/themes.pdf +0 -0
  38. package/.utils/docs_opencode/tools.md +0 -364
  39. package/.utils/docs_opencode/tools.pdf +0 -0
  40. package/.utils/export_opencode_session.py +0 -242
  41. package/.utils/toggle_model.py +0 -208
@@ -1,409 +0,0 @@
1
- # Complementos
2
-
3
- Escriba sus propios complementos para extender OpenCode.
4
-
5
- Los complementos le permiten extender OpenCode al conectarse a varios eventos y personalizar el comportamiento. Puede crear complementos para agregar nuevas funciones, integrarlos con servicios externos o modificar el comportamiento predeterminado de OpenCode.
6
-
7
- Para ver ejemplos, consulte los [complementos](https://opencode.ai/docs/ecosystem#plugins) creados por la comunidad.
8
-
9
- ---
10
-
11
- ## [Usar un complemento](#usar-un-complemento)
12
-
13
- Hay dos formas de cargar complementos.
14
-
15
- ---
16
-
17
- ### [Desde archivos locales](#desde-archivos-locales)
18
-
19
- Coloque los archivos JavaScript o TypeScript en el directorio del complemento.
20
-
21
- - `.opencode/plugins/` - Complementos a nivel de proyecto
22
- - `~/.config/opencode/plugins/` - Complementos globales
23
-
24
- Los archivos en estos directorios se cargan automáticamente al inicio.
25
-
26
- ---
27
-
28
- ### [Desde npm](#desde-npm)
29
-
30
- Especifique paquetes npm en su archivo de configuración.
31
-
32
- **File**: opencode.json
33
-
34
- ```json
35
- {
36
- "$schema": "https://opencode.ai/config.json",
37
- "plugin": ["opencode-helicone-session", "opencode-wakatime", "@my-org/custom-plugin"]
38
- }
39
- ```
40
-
41
- Se admiten paquetes npm regulares y de alcance.
42
-
43
- Explore los complementos disponibles en el [ecosistema](https://opencode.ai/docs/ecosystem#plugins).
44
-
45
- ---
46
-
47
- ### [Cómo se instalan los complementos](#cómo-se-instalan-los-complementos)
48
-
49
- Los **complementos npm** se instalan automáticamente usando Bun al inicio. Los paquetes y sus dependencias se almacenan en caché en `~/.cache/opencode/node_modules/`.
50
-
51
- **Los complementos locales** se cargan directamente desde el directorio de complementos. Para usar paquetes externos, debe crear un `package.json` dentro de su directorio de configuración (consulte [Dependencias](#dependencies)), o publicar el complemento en npm y [agregarlo a su configuración](https://opencode.ai/docs/config#plugins).
52
-
53
- ---
54
-
55
- ### [Orden de carga](#orden-de-carga)
56
-
57
- Los complementos se cargan desde todas las fuentes y todos los enlaces se ejecutan en secuencia. El orden de carga es:
58
-
59
- 1. Configuración global (`~/.config/opencode/opencode.json`)
60
- 1. Configuración del proyecto (`opencode.json`)
61
- 1. Directorio global de complementos (`~/.config/opencode/plugins/`)
62
- 1. Directorio de complementos del proyecto (`.opencode/plugins/`)
63
-
64
- Los paquetes npm duplicados con el mismo nombre y versión se cargan una vez. Sin embargo, un complemento local y un complemento npm con nombres similares se cargan por separado.
65
-
66
- ---
67
-
68
- ## [Crear un complemento](#crear-un-complemento)
69
-
70
- Un complemento es un módulo **JavaScript/TypeScript** que exporta uno o más complementos. funciones. Cada función recibe un objeto de contexto y devuelve un objeto de enlace.
71
-
72
- ---
73
-
74
- ### [Dependencias](#dependencias)
75
-
76
- Los complementos locales y las herramientas personalizadas pueden utilizar paquetes npm externos. Agregue un `package.json` a su directorio de configuración con las dependencias que necesita.
77
-
78
- **File**: .opencode/package.json
79
-
80
- ```json
81
- {
82
- "dependencies": {
83
- "shescape": "^2.1.0"
84
- }
85
- }
86
- ```
87
-
88
- OpenCode ejecuta `bun install` al inicio para instalarlos. Luego, sus complementos y herramientas pueden importarlos.
89
-
90
- **File**: .opencode/plugins/my-plugin.ts
91
-
92
- ```ts
93
- import { escape } from "shescape"
94
-
95
- export const MyPlugin = async (ctx) => {
96
- return {
97
- "tool.execute.before": async (input, output) => {
98
- if (input.tool === "bash") {
99
- output.args.command = escape(output.args.command)
100
- }
101
- },
102
- }
103
- }
104
- ```
105
-
106
- ---
107
-
108
- ### [Estructura básica](#estructura-básica)
109
-
110
- **File**: .opencode/plugins/example.js
111
-
112
- ```js
113
- export const MyPlugin = async ({ project, client, $, directory, worktree }) => {
114
- console.log("Plugin initialized!")
115
-
116
- return {
117
- // Hook implementations go here
118
- }
119
- }
120
- ```
121
-
122
- La función del complemento recibe:
123
-
124
- - `project`: La información actual del proyecto.
125
- - `directory`: El directorio de trabajo actual.
126
- - `worktree`: La ruta del árbol de trabajo de git.
127
- - `client`: Un cliente SDK opencode para interactuar con la IA.
128
- - `$`: [shell API](https://bun.com/docs/runtime/shell) de Bun para ejecutar comandos.
129
-
130
- ---
131
-
132
- ### [Soporte TypeScript](#soporte-typescript)
133
-
134
- Para los complementos TypeScript, puede importar tipos desde el paquete de complementos:
135
-
136
- **File**: my-plugin.ts
137
-
138
- ```ts
139
- import type { Plugin } from "@opencode-ai/plugin"
140
-
141
- export const MyPlugin: Plugin = async ({ project, client, $, directory, worktree }) => {
142
- return {
143
- // Type-safe hook implementations
144
- }
145
- }
146
- ```
147
-
148
- ---
149
-
150
- ### [Eventos](#eventos)
151
-
152
- Los complementos pueden suscribirse a eventos como se ve a continuación en la sección Ejemplos. Aquí hay una lista de los diferentes eventos disponibles.
153
-
154
- #### [Eventos de comando](#eventos-de-comando)
155
-
156
- - `command.executed`
157
-
158
- #### [Eventos de archivo](#eventos-de-archivo)
159
-
160
- - `file.edited`
161
- - `file.watcher.updated`
162
-
163
- #### [Eventos de instalación](#eventos-de-instalación)
164
-
165
- - `installation.updated`
166
-
167
- #### [Eventos LSP](#eventos-lsp)
168
-
169
- - `lsp.client.diagnostics`
170
- - `lsp.updated`
171
-
172
- #### [Eventos de mensajes](#eventos-de-mensajes)
173
-
174
- - `message.part.removed`
175
- - `message.part.updated`
176
- - `message.removed`
177
- - `message.updated`
178
-
179
- #### [Eventos de permiso](#eventos-de-permiso)
180
-
181
- - `permission.asked`
182
- - `permission.replied`
183
-
184
- #### [Eventos del servidor](#eventos-del-servidor)
185
-
186
- - `server.connected`
187
-
188
- #### [Eventos de sesión](#eventos-de-sesión)
189
-
190
- - `session.created`
191
- - `session.compacted`
192
- - `session.deleted`
193
- - `session.diff`
194
- - `session.error`
195
- - `session.idle`
196
- - `session.status`
197
- - `session.updated`
198
-
199
- #### [Eventos de Todo](#eventos-de-todo)
200
-
201
- - `todo.updated`
202
-
203
- #### [Eventos de Shell](#eventos-de-shell)
204
-
205
- - `shell.env`
206
-
207
- #### [Eventos de herramientas](#eventos-de-herramientas)
208
-
209
- - `tool.execute.after`
210
- - `tool.execute.before`
211
-
212
- #### [Eventos TUI](#eventos-tui)
213
-
214
- - `tui.prompt.append`
215
- - `tui.command.execute`
216
- - `tui.toast.show`
217
-
218
- ---
219
-
220
- ## [Ejemplos](#ejemplos)
221
-
222
- A continuación se muestran algunos ejemplos de complementos que puede utilizar para ampliar opencode.
223
-
224
- ---
225
-
226
- ### [Enviar notificaciones](#enviar-notificaciones)
227
-
228
- Enviar notificaciones cuando ocurran ciertos eventos:
229
-
230
- **File**: .opencode/plugins/notification.js
231
-
232
- ```js
233
- export const NotificationPlugin = async ({ project, client, $, directory, worktree }) => {
234
- return {
235
- event: async ({ event }) => {
236
- // Send notification on session completion
237
- if (event.type === "session.idle") {
238
- await $`osascript -e 'display notification "Session completed!" with title "opencode"'`
239
- }
240
- },
241
- }
242
- }
243
- ```
244
-
245
- Estamos usando `osascript` para ejecutar AppleScript en macOS. Aquí lo estamos usando para enviar notificaciones.
246
-
247
- > [!NOTE]
248
- > Si está utilizando la aplicación de escritorio OpenCode, puede enviar notificaciones del sistema automáticamente cuando una respuesta esté lista o cuando se produzca un error en una sesión.
249
-
250
- ---
251
-
252
- ### [Protección .env](#protección-env)
253
-
254
- Evite que opencode lea archivos `.env`:
255
-
256
- **File**: .opencode/plugins/env-protection.js
257
-
258
- ```javascript
259
- export const EnvProtection = async ({ project, client, $, directory, worktree }) => {
260
- return {
261
- "tool.execute.before": async (input, output) => {
262
- if (input.tool === "read" && output.args.filePath.includes(".env")) {
263
- throw new Error("Do not read .env files")
264
- }
265
- },
266
- }
267
- }
268
- ```
269
-
270
- ---
271
-
272
- ### [Inyectar variables de entorno](#inyectar-variables-de-entorno)
273
-
274
- Inyecte variables de entorno en toda la ejecución del shell (herramientas de inteligencia artificial y terminales de usuario):
275
-
276
- **File**: .opencode/plugins/inject-env.js
277
-
278
- ```javascript
279
- export const InjectEnvPlugin = async () => {
280
- return {
281
- "shell.env": async (input, output) => {
282
- output.env.MY_API_KEY = "secret"
283
- output.env.PROJECT_ROOT = input.cwd
284
- },
285
- }
286
- }
287
- ```
288
-
289
- ---
290
-
291
- ### [Herramientas personalizadas](#herramientas-personalizadas)
292
-
293
- Los complementos también pueden agregar herramientas personalizadas a opencode:
294
-
295
- **File**: .opencode/plugins/custom-tools.ts
296
-
297
- ```ts
298
- import { type Plugin, tool } from "@opencode-ai/plugin"
299
-
300
- export const CustomToolsPlugin: Plugin = async (ctx) => {
301
- return {
302
- tool: {
303
- mytool: tool({
304
- description: "This is a custom tool",
305
- args: {
306
- foo: tool.schema.string(),
307
- },
308
- async execute(args, context) {
309
- const { directory, worktree } = context
310
- return `Hello ${args.foo} from ${directory} (worktree: ${worktree})`
311
- },
312
- }),
313
- },
314
- }
315
- }
316
- ```
317
-
318
- El ayudante `tool` crea una herramienta personalizada a la que opencode puede llamar. Toma una función de esquema Zod y devuelve una definición de herramienta con:
319
-
320
- - `description`: Qué hace la herramienta
321
- - `args`: Esquema Zod para los argumentos de la herramienta.
322
- - `execute`: Función que se ejecuta cuando se llama a la herramienta
323
-
324
- Sus herramientas personalizadas estarán disponibles para opencode junto con las herramientas integradas.
325
-
326
- > [!NOTE]
327
- > Si una herramienta de complemento utiliza el mismo nombre que una herramienta integrada, la herramienta de complemento tiene prioridad.
328
-
329
- ---
330
-
331
- ### [Registro](#registro)
332
-
333
- Utilice `client.app.log()` en lugar de `console.log` para el registro estructurado:
334
-
335
- **File**: .opencode/plugins/my-plugin.ts
336
-
337
- ```ts
338
- export const MyPlugin = async ({ client }) => {
339
- await client.app.log({
340
- body: {
341
- service: "my-plugin",
342
- level: "info",
343
- message: "Plugin initialized",
344
- extra: { foo: "bar" },
345
- },
346
- })
347
- }
348
- ```
349
-
350
- Niveles: `debug`, `info`, `warn`, `error`. Consulte la [documentación del SDK](https://opencode.ai/docs/sdk) para obtener más detalles.
351
-
352
- ---
353
-
354
- ### [Hooks de compactación](#hooks-de-compactación)
355
-
356
- Personalice el contexto incluido cuando se compacta una sesión:
357
-
358
- **File**: .opencode/plugins/compaction.ts
359
-
360
- ```ts
361
- import type { Plugin } from "@opencode-ai/plugin"
362
-
363
- export const CompactionPlugin: Plugin = async (ctx) => {
364
- return {
365
- "experimental.session.compacting": async (input, output) => {
366
- // Inject additional context into the compaction prompt
367
- output.context.push(`
368
- ## Custom Context
369
-
370
- Include any state that should persist across compaction:
371
- - Current task status
372
- - Important decisions made
373
- - Files being actively worked on
374
- `)
375
- },
376
- }
377
- }
378
- ```
379
-
380
- El hook `experimental.session.compacting` se activa antes de que LLM genere un resumen de continuación. Úselo para inyectar contexto específico del dominio que el mensaje de compactación predeterminado omitiría.
381
-
382
- También puede reemplazar completamente el mensaje de compactación configurando `output.prompt`:
383
-
384
- **File**: .opencode/plugins/custom-compaction.ts
385
-
386
- ```ts
387
- import type { Plugin } from "@opencode-ai/plugin"
388
-
389
- export const CustomCompactionPlugin: Plugin = async (ctx) => {
390
- return {
391
- "experimental.session.compacting": async (input, output) => {
392
- // Replace the entire compaction prompt
393
- output.prompt = `
394
- You are generating a continuation prompt for a multi-agent swarm session.
395
-
396
- Summarize:
397
- 1. The current task and its status
398
- 2. Which files are being modified and by whom
399
- 3. Any blockers or dependencies between agents
400
- 4. The next steps to complete the work
401
-
402
- Format as a structured prompt that a new agent can use to resume work.
403
- `
404
- },
405
- }
406
- }
407
- ```
408
-
409
- Cuando se configura `output.prompt`, reemplaza completamente el mensaje de compactación predeterminado. En este caso, se ignora la matriz `output.context`.
Binary file
@@ -1,189 +0,0 @@
1
- # Reglas
2
-
3
- Establezca instrucciones personalizadas para opencode.
4
-
5
- Puede proporcionar instrucciones personalizadas a opencode creando un archivo `AGENTS.md`. Esto es similar a las reglas del Cursor. Contiene instrucciones que se incluirán en el contexto de LLM para personalizar su comportamiento para su proyecto específico.
6
-
7
- ---
8
-
9
- ## [Inicializar](#inicializar)
10
-
11
- Para crear un nuevo archivo `AGENTS.md`, puede ejecutar el comando `/init` en opencode.
12
-
13
- > [!TIP]
14
- > Debes enviar el archivo `AGENTS.md` de tu proyecto a Git.
15
-
16
- Esto escaneará su proyecto y todo su contenido para comprender de qué se trata y generar un archivo `AGENTS.md` con él. Esto ayuda a opencode a navegar mejor por el proyecto.
17
-
18
- Si tiene un archivo `AGENTS.md` existente, intentará agregarlo.
19
-
20
- ---
21
-
22
- ## [Ejemplo](#ejemplo)
23
-
24
- También puedes crear este archivo manualmente. A continuación se muestra un ejemplo de algunas cosas que puede colocar en un archivo `AGENTS.md`.
25
-
26
- **File**: AGENTS.md
27
-
28
- ```markdown
29
- # SST v3 Monorepo Project
30
-
31
- This is an SST v3 monorepo with TypeScript. The project uses bun workspaces for package management.
32
-
33
- ## Project Structure
34
-
35
- - `packages/` - Contains all workspace packages (functions, core, web, etc.)
36
- - `infra/` - Infrastructure definitions split by service (storage.ts, api.ts, web.ts)
37
- - `sst.config.ts` - Main SST configuration with dynamic imports
38
-
39
- ## Code Standards
40
-
41
- - Use TypeScript with strict mode enabled
42
- - Shared code goes in `packages/core/` with proper exports configuration
43
- - Functions go in `packages/functions/`
44
- - Infrastructure should be split into logical files in `infra/`
45
-
46
- ## Monorepo Conventions
47
-
48
- - Import shared modules using workspace names: `@my-app/core/example`
49
- ```
50
-
51
- Estamos agregando instrucciones específicas del proyecto aquí y esto se compartirá con todo su equipo.
52
-
53
- ---
54
-
55
- ## [Tipos](#tipos)
56
-
57
- opencode también admite la lectura del archivo `AGENTS.md` desde múltiples ubicaciones. Y esto tiene diferentes propósitos.
58
-
59
- ### [Proyecto](#proyecto)
60
-
61
- Coloque un `AGENTS.md` en la raíz de su proyecto para reglas específicas del proyecto. Estos solo se aplican cuando trabaja en este directorio o sus subdirectorios.
62
-
63
- ### [Global](#global)
64
-
65
- También puedes tener reglas globales en un archivo `~/.config/opencode/AGENTS.md`. Esto se aplica en todas las sesiones opencode.
66
-
67
- Dado que esto no está comprometido con Git ni se comparte con su equipo, recomendamos usarlo para especificar las reglas personales que debe seguir LLM.
68
-
69
- ### [Compatibilidad con Claude Code](#compatibilidad-con-claude-code)
70
-
71
- Para los usuarios que migran desde Claude Code, OpenCode admite las convenciones de archivos de Claude Code como alternativas:
72
-
73
- - **Reglas del proyecto**: `CLAUDE.md` en el directorio de tu proyecto (se usa si no existe `AGENTS.md`)
74
- - **Reglas globales**: `~/.claude/CLAUDE.md` (se usa si no existe `~/.config/opencode/AGENTS.md`)
75
- - **Habilidades**: `~/.claude/skills/`; consulte [Habilidades del agente](https://opencode.ai/docs/skills/) para obtener más detalles.
76
-
77
- Para deshabilitar la compatibilidad de Claude Code, configure una de estas variables de entorno:
78
-
79
- **File**: Ventana de terminal
80
-
81
- ```bash
82
- export OPENCODE_DISABLE_CLAUDE_CODE=1 # Disable all .claude support
83
- export OPENCODE_DISABLE_CLAUDE_CODE_PROMPT=1 # Disable only ~/.claude/CLAUDE.md
84
- export OPENCODE_DISABLE_CLAUDE_CODE_SKILLS=1 # Disable only .claude/skills
85
- ```
86
-
87
- ---
88
-
89
- ## [Prioridad](#prioridad)
90
-
91
- Cuando se inicia opencode, busca archivos de reglas en este orden:
92
-
93
- 1. **Archivos locales** atravesando desde el directorio actual (`AGENTS.md`, `CLAUDE.md`)
94
- 1. **Archivo global** en `~/.config/opencode/AGENTS.md`
95
- 1. **Archivo de Claude Code** en `~/.claude/CLAUDE.md` (a menos que esté deshabilitado)
96
-
97
- El primer archivo coincidente gana en cada categoría. Por ejemplo, si tiene `AGENTS.md` y `CLAUDE.md`, solo se usa `AGENTS.md`. De manera similar, `~/.config/opencode/AGENTS.md` tiene prioridad sobre `~/.claude/CLAUDE.md`.
98
-
99
- ---
100
-
101
- ## [Instrucciones personalizadas](#instrucciones-personalizadas)
102
-
103
- Puede especificar archivos de instrucciones personalizados en su `opencode.json` o el `~/.config/opencode/opencode.json` global. Esto le permite a usted y a su equipo reutilizar las reglas existentes en lugar de tener que duplicarlas en AGENTS.md.
104
-
105
- Ejemplo:
106
-
107
- **File**: opencode.json
108
-
109
- ```json
110
- {
111
- "$schema": "https://opencode.ai/config.json",
112
- "instructions": ["CONTRIBUTING.md", "docs/guidelines.md", ".cursor/rules/*.md"]
113
- }
114
- ```
115
-
116
- También puede utilizar URL remotas para cargar instrucciones desde la web.
117
-
118
- **File**: opencode.json
119
-
120
- ```json
121
- {
122
- "$schema": "https://opencode.ai/config.json",
123
- "instructions": ["https://raw.githubusercontent.com/my-org/shared-rules/main/style.md"]
124
- }
125
- ```
126
-
127
- Las instrucciones remotas se recuperan con un tiempo de espera de 5 segundos.
128
-
129
- Todos los archivos de instrucciones se combinan con sus archivos `AGENTS.md`.
130
-
131
- ---
132
-
133
- ## [Hacer referencia a archivos externos](#hacer-referencia-a-archivos-externos)
134
-
135
- Si bien opencode no analiza automáticamente las referencias de archivos en `AGENTS.md`, puedes lograr una funcionalidad similar de dos maneras:
136
-
137
- ### [Usar opencode.json](#usar-opencodejson)
138
-
139
- El enfoque recomendado es utilizar el campo `instructions` en `opencode.json`:
140
-
141
- **File**: opencode.json
142
-
143
- ```json
144
- {
145
- "$schema": "https://opencode.ai/config.json",
146
- "instructions": ["docs/development-standards.md", "test/testing-guidelines.md", "packages/*/AGENTS.md"]
147
- }
148
- ```
149
-
150
- ### [Instrucciones manuales en AGENTS.md](#instrucciones-manuales-en-agentsmd)
151
-
152
- Puede enseñarle a opencode a leer archivos externos proporcionando instrucciones explícitas en su `AGENTS.md`. He aquí un ejemplo práctico:
153
-
154
- **File**: AGENTS.md
155
-
156
- ```markdown
157
- # TypeScript Project Rules
158
-
159
- ## External File Loading
160
-
161
- CRITICAL: When you encounter a file reference (e.g., @rules/general.md), use your Read tool to load it on a need-to-know basis. They're relevant to the SPECIFIC task at hand.
162
-
163
- Instructions:
164
-
165
- - Do NOT preemptively load all references - use lazy loading based on actual need
166
- - When loaded, treat content as mandatory instructions that override defaults
167
- - Follow references recursively when needed
168
-
169
- ## Development Guidelines
170
-
171
- For TypeScript code style and best practices: @docs/typescript-guidelines.md
172
- For React component architecture and hooks patterns: @docs/react-patterns.md
173
- For REST API design and error handling: @docs/api-standards.md
174
- For testing strategies and coverage requirements: @test/testing-guidelines.md
175
-
176
- ## General Guidelines
177
-
178
- Read the following file immediately as it's relevant to all workflows: @rules/general-guidelines.md.
179
- ```
180
-
181
- Este enfoque le permite:
182
-
183
- - Crear archivos de reglas modulares y reutilizables
184
- - Compartir reglas entre proyectos a través de enlaces simbólicos o submódulos de git
185
- - Mantenga AGENTS.md conciso mientras hace referencia a pautas detalladas
186
- - Asegúrese de que opencode cargue archivos solo cuando sea necesario para la tarea específica
187
-
188
- > [!TIP]
189
- > Para monorepos o proyectos con estándares compartidos, usar `opencode.json` con patrones globales (como `packages/*/AGENTS.md`) es más fácil de mantener que las instrucciones manuales.
Binary file