cmp-standards 2.7.0 → 2.8.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 (162) hide show
  1. package/README.md +633 -633
  2. package/dist/cache/EmbeddingCache.d.ts +110 -0
  3. package/dist/cache/EmbeddingCache.d.ts.map +1 -0
  4. package/dist/cache/EmbeddingCache.js +239 -0
  5. package/dist/cache/EmbeddingCache.js.map +1 -0
  6. package/dist/cache/index.d.ts +6 -0
  7. package/dist/cache/index.d.ts.map +1 -0
  8. package/dist/cache/index.js +6 -0
  9. package/dist/cache/index.js.map +1 -0
  10. package/dist/cli/index.js +0 -0
  11. package/dist/db/cloud.d.ts +1 -0
  12. package/dist/db/cloud.d.ts.map +1 -1
  13. package/dist/db/drizzle-client.d.ts +10 -1
  14. package/dist/db/drizzle-client.d.ts.map +1 -1
  15. package/dist/db/drizzle-client.js +57 -3
  16. package/dist/db/drizzle-client.js.map +1 -1
  17. package/dist/db/errors.d.ts +13 -1
  18. package/dist/db/errors.d.ts.map +1 -1
  19. package/dist/db/errors.js +49 -5
  20. package/dist/db/errors.js.map +1 -1
  21. package/dist/db/migrations.d.ts +42 -0
  22. package/dist/db/migrations.d.ts.map +1 -0
  23. package/dist/db/migrations.js +173 -0
  24. package/dist/db/migrations.js.map +1 -0
  25. package/dist/db/turso-client.d.ts +15 -3
  26. package/dist/db/turso-client.d.ts.map +1 -1
  27. package/dist/db/turso-client.js +50 -39
  28. package/dist/db/turso-client.js.map +1 -1
  29. package/dist/eslint/rules/no-async-useeffect.js +6 -6
  30. package/dist/events/EventBus.d.ts +97 -0
  31. package/dist/events/EventBus.d.ts.map +1 -0
  32. package/dist/events/EventBus.js +256 -0
  33. package/dist/events/EventBus.js.map +1 -0
  34. package/dist/events/index.d.ts +7 -0
  35. package/dist/events/index.d.ts.map +1 -0
  36. package/dist/events/index.js +9 -0
  37. package/dist/events/index.js.map +1 -0
  38. package/dist/events/types.d.ts +989 -0
  39. package/dist/events/types.d.ts.map +1 -0
  40. package/dist/events/types.js +136 -0
  41. package/dist/events/types.js.map +1 -0
  42. package/dist/experts/ConsensusEngine.d.ts +57 -0
  43. package/dist/experts/ConsensusEngine.d.ts.map +1 -0
  44. package/dist/experts/ConsensusEngine.js +146 -0
  45. package/dist/experts/ConsensusEngine.js.map +1 -0
  46. package/dist/experts/ExpertPanelService.d.ts +84 -0
  47. package/dist/experts/ExpertPanelService.d.ts.map +1 -0
  48. package/dist/experts/ExpertPanelService.js +204 -0
  49. package/dist/experts/ExpertPanelService.js.map +1 -0
  50. package/dist/experts/ExpertRouter.d.ts +68 -0
  51. package/dist/experts/ExpertRouter.d.ts.map +1 -0
  52. package/dist/experts/ExpertRouter.js +374 -0
  53. package/dist/experts/ExpertRouter.js.map +1 -0
  54. package/dist/experts/VoteCollector.d.ts +58 -0
  55. package/dist/experts/VoteCollector.d.ts.map +1 -0
  56. package/dist/experts/VoteCollector.js +146 -0
  57. package/dist/experts/VoteCollector.js.map +1 -0
  58. package/dist/experts/index.d.ts +9 -0
  59. package/dist/experts/index.d.ts.map +1 -0
  60. package/dist/experts/index.js +13 -0
  61. package/dist/experts/index.js.map +1 -0
  62. package/dist/hooks/cloud-pre-tool-use.js +20 -20
  63. package/dist/hooks/expert-review.d.ts +74 -0
  64. package/dist/hooks/expert-review.d.ts.map +1 -0
  65. package/dist/hooks/expert-review.js +220 -0
  66. package/dist/hooks/expert-review.js.map +1 -0
  67. package/dist/hooks/index.d.ts +1 -0
  68. package/dist/hooks/index.d.ts.map +1 -1
  69. package/dist/hooks/index.js +2 -0
  70. package/dist/hooks/index.js.map +1 -1
  71. package/dist/index.d.ts +13 -0
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.js +22 -0
  74. package/dist/index.js.map +1 -1
  75. package/dist/interfaces/index.d.ts +450 -0
  76. package/dist/interfaces/index.d.ts.map +1 -0
  77. package/dist/interfaces/index.js +50 -0
  78. package/dist/interfaces/index.js.map +1 -0
  79. package/dist/mcp/schemas.d.ts +278 -0
  80. package/dist/mcp/schemas.d.ts.map +1 -0
  81. package/dist/mcp/schemas.js +166 -0
  82. package/dist/mcp/schemas.js.map +1 -0
  83. package/dist/mcp/server.d.ts.map +1 -1
  84. package/dist/mcp/server.js +14 -3
  85. package/dist/mcp/server.js.map +1 -1
  86. package/dist/patterns/feedback-loop.d.ts +264 -0
  87. package/dist/patterns/feedback-loop.d.ts.map +1 -0
  88. package/dist/patterns/feedback-loop.js +329 -0
  89. package/dist/patterns/feedback-loop.js.map +1 -0
  90. package/dist/patterns/index.d.ts +9 -0
  91. package/dist/patterns/index.d.ts.map +1 -0
  92. package/dist/patterns/index.js +9 -0
  93. package/dist/patterns/index.js.map +1 -0
  94. package/dist/patterns/lifecycle.d.ts +88 -0
  95. package/dist/patterns/lifecycle.d.ts.map +1 -0
  96. package/dist/patterns/lifecycle.js +284 -0
  97. package/dist/patterns/lifecycle.js.map +1 -0
  98. package/dist/patterns/registry.d.ts +142 -0
  99. package/dist/patterns/registry.d.ts.map +1 -0
  100. package/dist/patterns/registry.js +442 -0
  101. package/dist/patterns/registry.js.map +1 -0
  102. package/dist/performance/Debouncer.d.ts +91 -0
  103. package/dist/performance/Debouncer.d.ts.map +1 -0
  104. package/dist/performance/Debouncer.js +198 -0
  105. package/dist/performance/Debouncer.js.map +1 -0
  106. package/dist/performance/MemoryDecay.d.ts +82 -0
  107. package/dist/performance/MemoryDecay.d.ts.map +1 -0
  108. package/dist/performance/MemoryDecay.js +153 -0
  109. package/dist/performance/MemoryDecay.js.map +1 -0
  110. package/dist/performance/index.d.ts +7 -0
  111. package/dist/performance/index.d.ts.map +1 -0
  112. package/dist/performance/index.js +9 -0
  113. package/dist/performance/index.js.map +1 -0
  114. package/dist/schema/expert-types.d.ts +395 -0
  115. package/dist/schema/expert-types.d.ts.map +1 -0
  116. package/dist/schema/expert-types.js +250 -0
  117. package/dist/schema/expert-types.js.map +1 -0
  118. package/dist/services/ContextGenerator.js +7 -7
  119. package/dist/services/PlanManager.d.ts +1 -1
  120. package/dist/services/PlanManager.d.ts.map +1 -1
  121. package/dist/services/PlanManager.js +26 -6
  122. package/dist/services/PlanManager.js.map +1 -1
  123. package/dist/services/ProjectScaffold.js +76 -76
  124. package/dist/services/memory-router.js +35 -35
  125. package/dist/services/pattern-tracker.js +90 -90
  126. package/dist/services/semantic-search.js +2 -2
  127. package/package.json +105 -104
  128. package/standards/README.md +50 -50
  129. package/standards/experts/expert-routing.md +215 -215
  130. package/standards/general/code-quality.md +86 -86
  131. package/standards/general/memory-usage.md +205 -205
  132. package/standards/general/sync-workflow.md +235 -235
  133. package/standards/general/workflow.md +82 -82
  134. package/standards/hooks/mandatory-tracking.md +446 -446
  135. package/standards/infrastructure/cloud-database.md +287 -287
  136. package/standards/mcp/server-design.md +243 -243
  137. package/standards/mcp/tool-patterns.md +354 -354
  138. package/standards/skills/skill-structure.md +286 -286
  139. package/standards/skills/workflow-design.md +323 -323
  140. package/standards/tools/tool-design.md +297 -297
  141. package/templates/agents/architecture-expert.md +61 -61
  142. package/templates/agents/database-expert.md +62 -62
  143. package/templates/agents/documentation-expert.md +57 -57
  144. package/templates/agents/memory-expert.md +88 -88
  145. package/templates/agents/performance-expert.md +61 -61
  146. package/templates/agents/security-expert.md +59 -59
  147. package/templates/agents/ux-expert.md +63 -63
  148. package/templates/agents/worker.md +75 -75
  149. package/templates/ai-skills/SKILL_TEMPLATE.md +55 -55
  150. package/templates/claude-settings.json +72 -72
  151. package/templates/commands/experts.md +138 -138
  152. package/templates/hooks/README.md +158 -158
  153. package/templates/hooks/project.config.json.template +77 -77
  154. package/templates/hooks/settings.local.json.template +57 -57
  155. package/templates/memory-config.json +56 -56
  156. package/templates/memory-config.schema.json +212 -212
  157. package/templates/settings.json +58 -58
  158. package/templates/skills/continue.md +205 -205
  159. package/templates/workflows/business-improvement.md +264 -264
  160. package/templates/workflows/expert-review.md +153 -153
  161. package/templates/workflows/internal-app.md +245 -245
  162. package/templates/workflows/sync-docs.md +187 -187
@@ -1,286 +1,286 @@
1
- # Estructura de Skills
2
-
3
- ## Qué es una Skill
4
-
5
- Una **Skill** es un conjunto de instrucciones que Claude Code puede ejecutar. Se invocan con `/skill-name` y expanden a un prompt completo.
6
-
7
- ## Ubicaciones
8
-
9
- ```
10
- .claude/
11
- ├── skills/ # Project skills
12
- │ ├── commit.md
13
- │ ├── review-pr.md
14
- │ └── create-component.md
15
- └── settings.json # Skill registration
16
-
17
- ~/.claude/
18
- └── skills/ # Global skills
19
- └── my-global-skill.md
20
- ```
21
-
22
- ## Anatomía de una Skill
23
-
24
- ```markdown
25
- ---
26
- name: create-component
27
- description: Create a new React component with tests
28
- arguments:
29
- - name: componentName
30
- description: Name of the component
31
- required: true
32
- - name: type
33
- description: Component type
34
- enum: [page, feature, ui]
35
- default: feature
36
- ---
37
-
38
- # Create Component: {{componentName}}
39
-
40
- ## Instructions
41
-
42
- 1. Create the component file at `src/components/{{type}}/{{componentName}}.tsx`
43
- 2. Create the test file at `src/components/{{type}}/{{componentName}}.test.tsx`
44
- 3. Export from barrel file
45
-
46
- ## Component Template
47
-
48
- ```tsx
49
- export function {{componentName}}() {
50
- return <div>{{componentName}}</div>
51
- }
52
- ```
53
-
54
- ## Test Template
55
-
56
- ```tsx
57
- import { render, screen } from '@testing-library/react'
58
- import { {{componentName}} } from './{{componentName}}'
59
-
60
- describe('{{componentName}}', () => {
61
- it('renders', () => {
62
- render(<{{componentName}} />)
63
- expect(screen.getByText('{{componentName}}')).toBeInTheDocument()
64
- })
65
- })
66
- ```
67
- ```
68
-
69
- ## Frontmatter
70
-
71
- ```yaml
72
- ---
73
- name: skill-name # Required: kebab-case
74
- description: Brief desc # Required: <100 chars
75
- arguments: # Optional: arguments
76
- - name: argName
77
- description: What it is
78
- required: true/false
79
- default: value
80
- enum: [opt1, opt2]
81
- ---
82
- ```
83
-
84
- ## Variables
85
-
86
- Usar `{{variable}}` para interpolación:
87
-
88
- ```markdown
89
- # Task: {{taskName}}
90
-
91
- Working on component {{componentName}} in {{directory}}.
92
- ```
93
-
94
- ## Categorías de Skills
95
-
96
- ### 1. Workflow Skills
97
-
98
- Automatizan flujos de trabajo comunes:
99
-
100
- ```markdown
101
- ---
102
- name: commit
103
- description: Create a git commit with conventional format
104
- ---
105
-
106
- # Commit Changes
107
-
108
- 1. Run `git status` to see changes
109
- 2. Run `git diff` to review changes
110
- 3. Create commit message following conventional commits
111
- 4. Execute `git commit -m "message"`
112
- ```
113
-
114
- ### 2. Generator Skills
115
-
116
- Crean código/archivos:
117
-
118
- ```markdown
119
- ---
120
- name: create-router
121
- description: Create a new TRPC router
122
- arguments:
123
- - name: routerName
124
- required: true
125
- ---
126
-
127
- # Create Router: {{routerName}}
128
-
129
- Create file at `src/server/api/routers/{{routerName}}.ts`
130
- ```
131
-
132
- ### 3. Analysis Skills
133
-
134
- Analizan código/proyecto:
135
-
136
- ```markdown
137
- ---
138
- name: review-pr
139
- description: Review pull request changes
140
- arguments:
141
- - name: prNumber
142
- required: true
143
- ---
144
-
145
- # Review PR #{{prNumber}}
146
-
147
- 1. Fetch PR changes
148
- 2. Analyze for security issues
149
- 3. Check code quality
150
- 4. Provide feedback
151
- ```
152
-
153
- ### 4. Documentation Skills
154
-
155
- Generan documentación:
156
-
157
- ```markdown
158
- ---
159
- name: document-api
160
- description: Generate API documentation
161
- ---
162
-
163
- # Document API
164
-
165
- 1. Scan all TRPC routers
166
- 2. Extract procedure signatures
167
- 3. Generate markdown docs
168
- ```
169
-
170
- ## Registrar Skills
171
-
172
- En `.claude/settings.json`:
173
-
174
- ```json
175
- {
176
- "skills": [
177
- {
178
- "name": "create-component",
179
- "file": ".claude/skills/create-component.md"
180
- },
181
- {
182
- "name": "commit",
183
- "file": ".claude/skills/commit.md"
184
- }
185
- ]
186
- }
187
- ```
188
-
189
- ## Best Practices
190
-
191
- ### 1. Instrucciones Claras
192
-
193
- ```markdown
194
- # BIEN
195
- 1. First, read the existing component at `src/components/Button.tsx`
196
- 2. Create new variant following the same pattern
197
- 3. Add to exports in `src/components/index.ts`
198
-
199
- # MAL
200
- Create a component somehow and put it somewhere.
201
- ```
202
-
203
- ### 2. Contexto Necesario
204
-
205
- ```markdown
206
- # BIEN
207
- ## Context
208
- This project uses:
209
- - React 19 with Server Components
210
- - Tailwind CSS for styling
211
- - Shadcn UI components
212
-
213
- ## Task
214
- Create component following these conventions.
215
-
216
- # MAL
217
- Create a component.
218
- ```
219
-
220
- ### 3. Ejemplos Concretos
221
-
222
- ```markdown
223
- ## Example
224
-
225
- Input: `/create-component UserProfile page`
226
-
227
- Creates:
228
- - `src/components/page/UserProfile.tsx`
229
- - `src/components/page/UserProfile.test.tsx`
230
- - Updates `src/components/page/index.ts`
231
- ```
232
-
233
- ### 4. Manejo de Errores
234
-
235
- ```markdown
236
- ## If errors occur
237
-
238
- 1. If component already exists: ask user to confirm overwrite
239
- 2. If directory missing: create it
240
- 3. If imports fail: check barrel exports exist
241
- ```
242
-
243
- ## Anti-Patterns
244
-
245
- ### NO: Skills demasiado genéricas
246
-
247
- ```markdown
248
- # MAL
249
- ---
250
- name: do-stuff
251
- description: Does things
252
- ---
253
-
254
- Do whatever the user wants.
255
- ```
256
-
257
- ### NO: Sin estructura clara
258
-
259
- ```markdown
260
- # MAL
261
- Create component and test and export and also maybe some types.
262
- ```
263
-
264
- ### NO: Hardcoded values
265
-
266
- ```markdown
267
- # MAL
268
- Create file at `/Users/carlos/project/src/Component.tsx`
269
-
270
- # BIEN
271
- Create file at `src/components/{{componentName}}.tsx`
272
- ```
273
-
274
- ## Testing Skills
275
-
276
- Antes de registrar una skill:
277
-
278
- 1. Probar con diferentes argumentos
279
- 2. Verificar que maneja edge cases
280
- 3. Confirmar que sigue los estándares del proyecto
281
-
282
- ```bash
283
- # Test skill manually
284
- /create-component TestComponent feature
285
- # Verify output matches expectations
286
- ```
1
+ # Estructura de Skills
2
+
3
+ ## Qué es una Skill
4
+
5
+ Una **Skill** es un conjunto de instrucciones que Claude Code puede ejecutar. Se invocan con `/skill-name` y expanden a un prompt completo.
6
+
7
+ ## Ubicaciones
8
+
9
+ ```
10
+ .claude/
11
+ ├── skills/ # Project skills
12
+ │ ├── commit.md
13
+ │ ├── review-pr.md
14
+ │ └── create-component.md
15
+ └── settings.json # Skill registration
16
+
17
+ ~/.claude/
18
+ └── skills/ # Global skills
19
+ └── my-global-skill.md
20
+ ```
21
+
22
+ ## Anatomía de una Skill
23
+
24
+ ```markdown
25
+ ---
26
+ name: create-component
27
+ description: Create a new React component with tests
28
+ arguments:
29
+ - name: componentName
30
+ description: Name of the component
31
+ required: true
32
+ - name: type
33
+ description: Component type
34
+ enum: [page, feature, ui]
35
+ default: feature
36
+ ---
37
+
38
+ # Create Component: {{componentName}}
39
+
40
+ ## Instructions
41
+
42
+ 1. Create the component file at `src/components/{{type}}/{{componentName}}.tsx`
43
+ 2. Create the test file at `src/components/{{type}}/{{componentName}}.test.tsx`
44
+ 3. Export from barrel file
45
+
46
+ ## Component Template
47
+
48
+ ```tsx
49
+ export function {{componentName}}() {
50
+ return <div>{{componentName}}</div>
51
+ }
52
+ ```
53
+
54
+ ## Test Template
55
+
56
+ ```tsx
57
+ import { render, screen } from '@testing-library/react'
58
+ import { {{componentName}} } from './{{componentName}}'
59
+
60
+ describe('{{componentName}}', () => {
61
+ it('renders', () => {
62
+ render(<{{componentName}} />)
63
+ expect(screen.getByText('{{componentName}}')).toBeInTheDocument()
64
+ })
65
+ })
66
+ ```
67
+ ```
68
+
69
+ ## Frontmatter
70
+
71
+ ```yaml
72
+ ---
73
+ name: skill-name # Required: kebab-case
74
+ description: Brief desc # Required: <100 chars
75
+ arguments: # Optional: arguments
76
+ - name: argName
77
+ description: What it is
78
+ required: true/false
79
+ default: value
80
+ enum: [opt1, opt2]
81
+ ---
82
+ ```
83
+
84
+ ## Variables
85
+
86
+ Usar `{{variable}}` para interpolación:
87
+
88
+ ```markdown
89
+ # Task: {{taskName}}
90
+
91
+ Working on component {{componentName}} in {{directory}}.
92
+ ```
93
+
94
+ ## Categorías de Skills
95
+
96
+ ### 1. Workflow Skills
97
+
98
+ Automatizan flujos de trabajo comunes:
99
+
100
+ ```markdown
101
+ ---
102
+ name: commit
103
+ description: Create a git commit with conventional format
104
+ ---
105
+
106
+ # Commit Changes
107
+
108
+ 1. Run `git status` to see changes
109
+ 2. Run `git diff` to review changes
110
+ 3. Create commit message following conventional commits
111
+ 4. Execute `git commit -m "message"`
112
+ ```
113
+
114
+ ### 2. Generator Skills
115
+
116
+ Crean código/archivos:
117
+
118
+ ```markdown
119
+ ---
120
+ name: create-router
121
+ description: Create a new TRPC router
122
+ arguments:
123
+ - name: routerName
124
+ required: true
125
+ ---
126
+
127
+ # Create Router: {{routerName}}
128
+
129
+ Create file at `src/server/api/routers/{{routerName}}.ts`
130
+ ```
131
+
132
+ ### 3. Analysis Skills
133
+
134
+ Analizan código/proyecto:
135
+
136
+ ```markdown
137
+ ---
138
+ name: review-pr
139
+ description: Review pull request changes
140
+ arguments:
141
+ - name: prNumber
142
+ required: true
143
+ ---
144
+
145
+ # Review PR #{{prNumber}}
146
+
147
+ 1. Fetch PR changes
148
+ 2. Analyze for security issues
149
+ 3. Check code quality
150
+ 4. Provide feedback
151
+ ```
152
+
153
+ ### 4. Documentation Skills
154
+
155
+ Generan documentación:
156
+
157
+ ```markdown
158
+ ---
159
+ name: document-api
160
+ description: Generate API documentation
161
+ ---
162
+
163
+ # Document API
164
+
165
+ 1. Scan all TRPC routers
166
+ 2. Extract procedure signatures
167
+ 3. Generate markdown docs
168
+ ```
169
+
170
+ ## Registrar Skills
171
+
172
+ En `.claude/settings.json`:
173
+
174
+ ```json
175
+ {
176
+ "skills": [
177
+ {
178
+ "name": "create-component",
179
+ "file": ".claude/skills/create-component.md"
180
+ },
181
+ {
182
+ "name": "commit",
183
+ "file": ".claude/skills/commit.md"
184
+ }
185
+ ]
186
+ }
187
+ ```
188
+
189
+ ## Best Practices
190
+
191
+ ### 1. Instrucciones Claras
192
+
193
+ ```markdown
194
+ # BIEN
195
+ 1. First, read the existing component at `src/components/Button.tsx`
196
+ 2. Create new variant following the same pattern
197
+ 3. Add to exports in `src/components/index.ts`
198
+
199
+ # MAL
200
+ Create a component somehow and put it somewhere.
201
+ ```
202
+
203
+ ### 2. Contexto Necesario
204
+
205
+ ```markdown
206
+ # BIEN
207
+ ## Context
208
+ This project uses:
209
+ - React 19 with Server Components
210
+ - Tailwind CSS for styling
211
+ - Shadcn UI components
212
+
213
+ ## Task
214
+ Create component following these conventions.
215
+
216
+ # MAL
217
+ Create a component.
218
+ ```
219
+
220
+ ### 3. Ejemplos Concretos
221
+
222
+ ```markdown
223
+ ## Example
224
+
225
+ Input: `/create-component UserProfile page`
226
+
227
+ Creates:
228
+ - `src/components/page/UserProfile.tsx`
229
+ - `src/components/page/UserProfile.test.tsx`
230
+ - Updates `src/components/page/index.ts`
231
+ ```
232
+
233
+ ### 4. Manejo de Errores
234
+
235
+ ```markdown
236
+ ## If errors occur
237
+
238
+ 1. If component already exists: ask user to confirm overwrite
239
+ 2. If directory missing: create it
240
+ 3. If imports fail: check barrel exports exist
241
+ ```
242
+
243
+ ## Anti-Patterns
244
+
245
+ ### NO: Skills demasiado genéricas
246
+
247
+ ```markdown
248
+ # MAL
249
+ ---
250
+ name: do-stuff
251
+ description: Does things
252
+ ---
253
+
254
+ Do whatever the user wants.
255
+ ```
256
+
257
+ ### NO: Sin estructura clara
258
+
259
+ ```markdown
260
+ # MAL
261
+ Create component and test and export and also maybe some types.
262
+ ```
263
+
264
+ ### NO: Hardcoded values
265
+
266
+ ```markdown
267
+ # MAL
268
+ Create file at `/Users/carlos/project/src/Component.tsx`
269
+
270
+ # BIEN
271
+ Create file at `src/components/{{componentName}}.tsx`
272
+ ```
273
+
274
+ ## Testing Skills
275
+
276
+ Antes de registrar una skill:
277
+
278
+ 1. Probar con diferentes argumentos
279
+ 2. Verificar que maneja edge cases
280
+ 3. Confirmar que sigue los estándares del proyecto
281
+
282
+ ```bash
283
+ # Test skill manually
284
+ /create-component TestComponent feature
285
+ # Verify output matches expectations
286
+ ```