@amsterdamdatalabs/enact-extensions 0.1.0 → 0.1.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 (152) hide show
  1. package/README.md +94 -20
  2. package/dist/index.d.ts +3 -3
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +2 -2
  5. package/dist/index.js.map +1 -1
  6. package/dist/install.d.ts +89 -0
  7. package/dist/install.d.ts.map +1 -1
  8. package/dist/install.js +219 -18
  9. package/dist/install.js.map +1 -1
  10. package/dist/validate/index.d.ts +21 -0
  11. package/dist/validate/index.d.ts.map +1 -1
  12. package/dist/validate/index.js +77 -0
  13. package/dist/validate/index.js.map +1 -1
  14. package/extensions/cmux/.agents/plugin.json +37 -0
  15. package/extensions/cmux/skills/cmux/SKILL.md +82 -0
  16. package/extensions/cmux/skills/cmux/agents/openai.yaml +4 -0
  17. package/extensions/cmux/skills/cmux/references/handles-and-identify.md +35 -0
  18. package/extensions/cmux/skills/cmux/references/panes-surfaces.md +37 -0
  19. package/extensions/cmux/skills/cmux/references/trigger-flash-and-health.md +23 -0
  20. package/extensions/cmux/skills/cmux/references/windows-workspaces.md +31 -0
  21. package/extensions/cmux/skills/cmux-vm-monitor/SKILL.md +122 -0
  22. package/extensions/cmux/skills/cmux-vm-monitor/agents/openai.yaml +4 -0
  23. package/extensions/cmux/skills/cmux-vm-monitor/references/cmux-commands.md +66 -0
  24. package/extensions/cmux/skills/cmux-vm-monitor/scripts/codex_vm_monitor.sh +45 -0
  25. package/extensions/cmux/skills/cmux-workspace/SKILL.md +93 -0
  26. package/extensions/dev-state/.agents/plugin.json +35 -0
  27. package/extensions/dev-state/skills/dev-state-plan-graduation/SKILL.md +194 -0
  28. package/extensions/dev-state/skills/dev-state-plan-graduation/agents/openai.yaml +4 -0
  29. package/extensions/dev-state/skills/dev-state-plan-graduation/references/reference.md +130 -0
  30. package/extensions/devops/.agents/plugin.json +36 -0
  31. package/extensions/devops/skills/azure-devops-cli/SKILL.md +431 -0
  32. package/extensions/devops/skills/azure-devops-cli/agents/openai.yaml +4 -0
  33. package/extensions/devops/skills/ci-pipeline-strategy/SKILL.md +217 -0
  34. package/extensions/devops/skills/ci-pipeline-strategy/agents/openai.yaml +4 -0
  35. package/{plugins/net-revenue-management/.codex-plugin → extensions/net-revenue-management/.agents}/plugin.json +10 -6
  36. package/extensions/plugin-dev/.agents/plugin.json +42 -0
  37. package/extensions/plugin-dev/.mcp.json +3 -0
  38. package/extensions/plugin-dev/agents/agent-creator.md +199 -0
  39. package/extensions/plugin-dev/agents/plugin-validator.md +91 -0
  40. package/extensions/plugin-dev/agents/skill-reviewer.md +212 -0
  41. package/extensions/plugin-dev/commands/_archive/create-marketplace.md +427 -0
  42. package/extensions/plugin-dev/commands/_archive/plugin-dev-guide.md +12 -0
  43. package/extensions/plugin-dev/commands/create-plugin.md +498 -0
  44. package/extensions/plugin-dev/commands/start.md +81 -0
  45. package/extensions/plugin-dev/hooks/hooks.json +3 -0
  46. package/extensions/plugin-dev/skills/agent-development/SKILL.md +641 -0
  47. package/extensions/plugin-dev/skills/agent-development/examples/agent-creation-prompt.md +250 -0
  48. package/extensions/plugin-dev/skills/agent-development/examples/complete-agent-examples.md +461 -0
  49. package/extensions/plugin-dev/skills/agent-development/references/advanced-agent-fields.md +246 -0
  50. package/extensions/plugin-dev/skills/agent-development/references/agent-creation-system-prompt.md +216 -0
  51. package/extensions/plugin-dev/skills/agent-development/references/permission-modes-rules.md +226 -0
  52. package/extensions/plugin-dev/skills/agent-development/references/system-prompt-design.md +464 -0
  53. package/extensions/plugin-dev/skills/agent-development/references/triggering-examples.md +474 -0
  54. package/extensions/plugin-dev/skills/agent-development/scripts/create-agent-skeleton.sh +176 -0
  55. package/extensions/plugin-dev/skills/agent-development/scripts/test-agent-trigger.sh +227 -0
  56. package/extensions/plugin-dev/skills/agent-development/scripts/validate-agent.sh +227 -0
  57. package/extensions/plugin-dev/skills/command-development/SKILL.md +763 -0
  58. package/extensions/plugin-dev/skills/command-development/examples/plugin-commands.md +612 -0
  59. package/extensions/plugin-dev/skills/command-development/examples/simple-commands.md +527 -0
  60. package/extensions/plugin-dev/skills/command-development/references/advanced-workflows.md +762 -0
  61. package/extensions/plugin-dev/skills/command-development/references/documentation-patterns.md +769 -0
  62. package/extensions/plugin-dev/skills/command-development/references/frontmatter-reference.md +508 -0
  63. package/extensions/plugin-dev/skills/command-development/references/interactive-commands.md +966 -0
  64. package/extensions/plugin-dev/skills/command-development/references/marketplace-considerations.md +943 -0
  65. package/extensions/plugin-dev/skills/command-development/references/plugin-features-reference.md +637 -0
  66. package/extensions/plugin-dev/skills/command-development/references/plugin-integration.md +191 -0
  67. package/extensions/plugin-dev/skills/command-development/references/skill-tool.md +447 -0
  68. package/extensions/plugin-dev/skills/command-development/references/testing-strategies.md +723 -0
  69. package/extensions/plugin-dev/skills/command-development/scripts/check-frontmatter.sh +234 -0
  70. package/extensions/plugin-dev/skills/command-development/scripts/validate-command.sh +160 -0
  71. package/extensions/plugin-dev/skills/hook-development/SKILL.md +861 -0
  72. package/extensions/plugin-dev/skills/hook-development/examples/load-context.sh +55 -0
  73. package/extensions/plugin-dev/skills/hook-development/examples/validate-bash.sh +57 -0
  74. package/extensions/plugin-dev/skills/hook-development/examples/validate-write.sh +48 -0
  75. package/extensions/plugin-dev/skills/hook-development/references/advanced.md +871 -0
  76. package/extensions/plugin-dev/skills/hook-development/references/hook-input-schemas.md +145 -0
  77. package/extensions/plugin-dev/skills/hook-development/references/migration.md +392 -0
  78. package/extensions/plugin-dev/skills/hook-development/references/patterns.md +430 -0
  79. package/extensions/plugin-dev/skills/hook-development/scripts/README.md +181 -0
  80. package/extensions/plugin-dev/skills/hook-development/scripts/hook-linter.sh +153 -0
  81. package/extensions/plugin-dev/skills/hook-development/scripts/test-hook.sh +276 -0
  82. package/extensions/plugin-dev/skills/hook-development/scripts/validate-hook-schema.sh +159 -0
  83. package/extensions/plugin-dev/skills/mcp-integration/SKILL.md +775 -0
  84. package/extensions/plugin-dev/skills/mcp-integration/examples/http-server.json +20 -0
  85. package/extensions/plugin-dev/skills/mcp-integration/examples/sse-server.json +19 -0
  86. package/extensions/plugin-dev/skills/mcp-integration/examples/stdio-server.json +38 -0
  87. package/extensions/plugin-dev/skills/mcp-integration/examples/ws-server.json +26 -0
  88. package/extensions/plugin-dev/skills/mcp-integration/references/authentication.md +601 -0
  89. package/extensions/plugin-dev/skills/mcp-integration/references/server-discovery.md +190 -0
  90. package/extensions/plugin-dev/skills/mcp-integration/references/server-types.md +572 -0
  91. package/extensions/plugin-dev/skills/mcp-integration/references/tool-usage.md +623 -0
  92. package/extensions/plugin-dev/skills/plugin-dev-guide/SKILL.md +222 -0
  93. package/extensions/plugin-dev/skills/plugin-structure/SKILL.md +705 -0
  94. package/extensions/plugin-dev/skills/plugin-structure/examples/advanced-plugin.md +774 -0
  95. package/extensions/plugin-dev/skills/plugin-structure/examples/minimal-plugin.md +83 -0
  96. package/extensions/plugin-dev/skills/plugin-structure/examples/standard-plugin.md +611 -0
  97. package/extensions/plugin-dev/skills/plugin-structure/references/advanced-topics.md +289 -0
  98. package/extensions/plugin-dev/skills/plugin-structure/references/component-patterns.md +592 -0
  99. package/extensions/plugin-dev/skills/plugin-structure/references/github-actions.md +233 -0
  100. package/extensions/plugin-dev/skills/plugin-structure/references/headless-ci-mode.md +193 -0
  101. package/extensions/plugin-dev/skills/plugin-structure/references/manifest-reference.md +625 -0
  102. package/extensions/plugin-dev/skills/plugin-structure/references/output-styles.md +116 -0
  103. package/extensions/plugin-dev/skills/skill-development/SKILL.md +564 -0
  104. package/extensions/plugin-dev/skills/skill-development/examples/complete-skill.md +465 -0
  105. package/extensions/plugin-dev/skills/skill-development/examples/frontmatter-templates.md +167 -0
  106. package/extensions/plugin-dev/skills/skill-development/examples/minimal-skill.md +111 -0
  107. package/extensions/plugin-dev/skills/skill-development/references/advanced-frontmatter.md +225 -0
  108. package/extensions/plugin-dev/skills/skill-development/references/commands-vs-skills.md +39 -0
  109. package/extensions/plugin-dev/skills/skill-development/references/skill-creation-workflow.md +379 -0
  110. package/extensions/plugin-dev/skills/skill-development/references/skill-creator-original.md +210 -0
  111. package/package.json +8 -11
  112. package/scripts/enact-extensions.mjs +751 -16
  113. package/scripts/hooks/session-start-drift-check.mjs +58 -0
  114. package/scripts/lib/build-index.mjs +50 -0
  115. package/scripts/lib/bundle-hash.mjs +137 -0
  116. package/scripts/lib/hooks.mjs +389 -0
  117. package/scripts/lib/ledger.mjs +162 -0
  118. package/scripts/lib/list-bundles.mjs +70 -0
  119. package/scripts/lib/outdated.mjs +144 -0
  120. package/scripts/lib/provision-mcp.mjs +369 -0
  121. package/scripts/lib/resolve-bundle.mjs +121 -0
  122. package/scripts/lib/run-install.mjs +321 -39
  123. package/scripts/lib/run-uninstall.mjs +220 -0
  124. package/scripts/lib/run-update.mjs +152 -0
  125. package/scripts/lib/run-validate.mjs +12 -18
  126. package/scripts/lib/serve.mjs +454 -0
  127. package/scripts/postinstall.mjs +63 -0
  128. package/scripts/setup-enact-context.sh +2 -2
  129. package/spec/index.json +59 -0
  130. package/web/assets/README.md +111 -0
  131. package/web/assets/logo-full.png +0 -0
  132. package/web/assets/logo-slim.png +0 -0
  133. package/web/assets/tokens/base.css +45 -0
  134. package/web/assets/tokens/colors.css +248 -0
  135. package/web/assets/tokens/effects.css +24 -0
  136. package/web/assets/tokens/fonts.css +8 -0
  137. package/web/assets/tokens/index.css +18 -0
  138. package/web/assets/tokens/spacing.css +50 -0
  139. package/web/index.html +1188 -0
  140. package/.agents/plugins/marketplace.json +0 -20
  141. package/catalog/enact-context.json +0 -9
  142. package/catalog/enact-factory.json +0 -7
  143. package/catalog/enact-operator.json +0 -7
  144. package/catalog/enact-wiki.json +0 -7
  145. package/catalog/net-revenue-management.json +0 -8
  146. package/scripts/rename-supervisor-to-operator.pl +0 -66
  147. package/scripts/sync-manifests.mjs +0 -23
  148. package/scripts/validate-catalog.mjs +0 -37
  149. package/scripts/validate-plugin.mjs +0 -10
  150. /package/{plugins → extensions}/net-revenue-management/.mcp.json +0 -0
  151. /package/{plugins → extensions}/net-revenue-management/skills/net-revenue-risks/SKILL.md +0 -0
  152. /package/{plugins → extensions}/net-revenue-management/skills/net-revenue-scenario/SKILL.md +0 -0
@@ -0,0 +1,592 @@
1
+ # Component Organization Patterns
2
+
3
+ Advanced patterns for organizing plugin components effectively.
4
+
5
+ ## Component Lifecycle
6
+
7
+ ### Discovery Phase
8
+
9
+ When Claude Code starts:
10
+
11
+ 1. **Scan enabled plugins**: Read `.claude-plugin/plugin.json` for each
12
+ 2. **Discover components**: Look in default and custom paths
13
+ 3. **Parse definitions**: Read YAML frontmatter and configurations
14
+ 4. **Register components**: Make available to Claude Code
15
+ 5. **Initialize**: Start MCP servers, register hooks
16
+
17
+ **Timing**: Component registration happens during Claude Code initialization, not continuously.
18
+
19
+ ### Activation Phase
20
+
21
+ When components are used:
22
+
23
+ **Commands**: User types slash command → Claude Code looks up → Executes
24
+ **Agents**: Task arrives → Claude Code evaluates capabilities → Selects agent
25
+ **Skills**: Task context matches description → Claude Code loads skill
26
+ **Hooks**: Event occurs → Claude Code calls matching hooks
27
+ **MCP Servers**: Tool call matches server capability → Forwards to server
28
+
29
+ ## Command Organization Patterns
30
+
31
+ ### Flat Structure
32
+
33
+ Single directory with all commands:
34
+
35
+ ```
36
+ commands/
37
+ ├── build.md
38
+ ├── test.md
39
+ ├── deploy.md
40
+ ├── review.md
41
+ └── docs.md
42
+ ```
43
+
44
+ **When to use**:
45
+
46
+ - 5-15 commands total
47
+ - All commands at same abstraction level
48
+ - No clear categorization
49
+
50
+ **Advantages**:
51
+
52
+ - Simple, easy to navigate
53
+ - No configuration needed
54
+ - Fast discovery
55
+
56
+ ### Categorized Structure
57
+
58
+ Multiple directories for different command types:
59
+
60
+ ```
61
+ commands/ # Core commands
62
+ ├── build.md
63
+ └── test.md
64
+
65
+ admin-commands/ # Administrative
66
+ ├── configure.md
67
+ └── manage.md
68
+
69
+ workflow-commands/ # Workflow automation
70
+ ├── review.md
71
+ └── deploy.md
72
+ ```
73
+
74
+ **Manifest configuration**:
75
+
76
+ ```json
77
+ {
78
+ "commands": ["./commands", "./admin-commands", "./workflow-commands"]
79
+ }
80
+ ```
81
+
82
+ **When to use**:
83
+
84
+ - 15+ commands
85
+ - Clear functional categories
86
+ - Different permission levels
87
+
88
+ **Advantages**:
89
+
90
+ - Organized by purpose
91
+ - Easier to maintain
92
+ - Can restrict access by directory
93
+
94
+ ### Hierarchical Structure
95
+
96
+ Nested organization for complex plugins:
97
+
98
+ ```
99
+ commands/
100
+ ├── ci/
101
+ │ ├── build.md
102
+ │ ├── test.md
103
+ │ └── lint.md
104
+ ├── deployment/
105
+ │ ├── staging.md
106
+ │ └── production.md
107
+ └── management/
108
+ ├── config.md
109
+ └── status.md
110
+ ```
111
+
112
+ **Note**: Claude Code doesn't support nested command discovery automatically. Use custom paths:
113
+
114
+ ```json
115
+ {
116
+ "commands": [
117
+ "./commands/ci",
118
+ "./commands/deployment",
119
+ "./commands/management"
120
+ ]
121
+ }
122
+ ```
123
+
124
+ **When to use**:
125
+
126
+ - 20+ commands
127
+ - Multi-level categorization
128
+ - Complex workflows
129
+
130
+ **Advantages**:
131
+
132
+ - Maximum organization
133
+ - Clear boundaries
134
+ - Scalable structure
135
+
136
+ ## Agent Organization Patterns
137
+
138
+ ### Role-Based Organization
139
+
140
+ Organize agents by their primary role:
141
+
142
+ ```
143
+ agents/
144
+ ├── code-reviewer.md # Reviews code
145
+ ├── test-generator.md # Generates tests
146
+ ├── documentation-writer.md # Writes docs
147
+ └── refactorer.md # Refactors code
148
+ ```
149
+
150
+ **When to use**:
151
+
152
+ - Agents have distinct, non-overlapping roles
153
+ - Users invoke agents manually
154
+ - Clear agent responsibilities
155
+
156
+ ### Capability-Based Organization
157
+
158
+ Organize by specific capabilities:
159
+
160
+ ```
161
+ agents/
162
+ ├── python-expert.md # Python-specific
163
+ ├── typescript-expert.md # TypeScript-specific
164
+ ├── api-specialist.md # API design
165
+ └── database-specialist.md # Database work
166
+ ```
167
+
168
+ **When to use**:
169
+
170
+ - Technology-specific agents
171
+ - Domain expertise focus
172
+ - Automatic agent selection
173
+
174
+ ### Workflow-Based Organization
175
+
176
+ Organize by workflow stage:
177
+
178
+ ```
179
+ agents/
180
+ ├── planning-agent.md # Planning phase
181
+ ├── implementation-agent.md # Coding phase
182
+ ├── testing-agent.md # Testing phase
183
+ └── deployment-agent.md # Deployment phase
184
+ ```
185
+
186
+ **When to use**:
187
+
188
+ - Sequential workflows
189
+ - Stage-specific expertise
190
+ - Pipeline automation
191
+
192
+ ## Skill Organization Patterns
193
+
194
+ ### Topic-Based Organization
195
+
196
+ Each skill covers a specific topic:
197
+
198
+ ```
199
+ skills/
200
+ ├── api-design/
201
+ │ └── SKILL.md
202
+ ├── error-handling/
203
+ │ └── SKILL.md
204
+ ├── testing-strategies/
205
+ │ └── SKILL.md
206
+ └── performance-optimization/
207
+ └── SKILL.md
208
+ ```
209
+
210
+ **When to use**:
211
+
212
+ - Knowledge-based skills
213
+ - Educational or reference content
214
+ - Broad applicability
215
+
216
+ ### Tool-Based Organization
217
+
218
+ Skills for specific tools or technologies:
219
+
220
+ ```
221
+ skills/
222
+ ├── docker/
223
+ │ ├── SKILL.md
224
+ │ └── references/
225
+ │ └── dockerfile-best-practices.md
226
+ ├── kubernetes/
227
+ │ ├── SKILL.md
228
+ │ └── examples/
229
+ │ └── deployment.yaml
230
+ └── terraform/
231
+ ├── SKILL.md
232
+ └── scripts/
233
+ └── validate-config.sh
234
+ ```
235
+
236
+ **When to use**:
237
+
238
+ - Tool-specific expertise
239
+ - Complex tool configurations
240
+ - Tool best practices
241
+
242
+ ### Workflow-Based Organization
243
+
244
+ Skills for complete workflows:
245
+
246
+ ```
247
+ skills/
248
+ ├── code-review-workflow/
249
+ │ ├── SKILL.md
250
+ │ └── references/
251
+ │ ├── checklist.md
252
+ │ └── standards.md
253
+ ├── deployment-workflow/
254
+ │ ├── SKILL.md
255
+ │ └── scripts/
256
+ │ ├── pre-deploy.sh
257
+ │ └── post-deploy.sh
258
+ └── testing-workflow/
259
+ ├── SKILL.md
260
+ └── examples/
261
+ └── test-structure.md
262
+ ```
263
+
264
+ **When to use**:
265
+
266
+ - Multi-step processes
267
+ - Company-specific workflows
268
+ - Process automation
269
+
270
+ ### Skill with Rich Resources
271
+
272
+ Comprehensive skill with all resource types:
273
+
274
+ ```
275
+ skills/
276
+ └── api-testing/
277
+ ├── SKILL.md # Core skill (1500 words)
278
+ ├── references/
279
+ │ ├── rest-api-guide.md
280
+ │ ├── graphql-guide.md
281
+ │ └── authentication.md
282
+ ├── examples/
283
+ │ ├── basic-test.js
284
+ │ ├── authenticated-test.js
285
+ │ └── integration-test.js
286
+ ├── scripts/
287
+ │ ├── run-tests.sh
288
+ │ └── generate-report.py
289
+ └── assets/
290
+ └── test-template.json
291
+ ```
292
+
293
+ **Resource usage**:
294
+
295
+ - **SKILL.md**: Overview and when to use resources
296
+ - **references/**: Detailed guides (loaded as needed)
297
+ - **examples/**: Copy-paste code samples
298
+ - **scripts/**: Executable test runners
299
+ - **assets/**: Templates and configurations
300
+
301
+ ## Hook Organization Patterns
302
+
303
+ ### Monolithic Configuration
304
+
305
+ Single hooks.json with all hooks:
306
+
307
+ ```
308
+ hooks/
309
+ ├── hooks.json # All hook definitions
310
+ └── scripts/
311
+ ├── validate-write.sh
312
+ ├── validate-bash.sh
313
+ └── load-context.sh
314
+ ```
315
+
316
+ **hooks.json**:
317
+
318
+ ```json
319
+ {
320
+ "hooks": {
321
+ "PreToolUse": [...],
322
+ "PostToolUse": [...],
323
+ "Stop": [...],
324
+ "SessionStart": [...]
325
+ }
326
+ }
327
+ ```
328
+
329
+ **When to use**:
330
+
331
+ - 5-10 hooks total
332
+ - Simple hook logic
333
+ - Centralized configuration
334
+
335
+ ### Event-Based Organization
336
+
337
+ Separate files per event type:
338
+
339
+ ```
340
+ hooks/
341
+ ├── hooks.json # Combines all
342
+ ├── pre-tool-use.json # PreToolUse hooks
343
+ ├── post-tool-use.json # PostToolUse hooks
344
+ ├── stop.json # Stop hooks
345
+ └── scripts/
346
+ ├── validate/
347
+ │ ├── write.sh
348
+ │ └── bash.sh
349
+ └── context/
350
+ └── load.sh
351
+ ```
352
+
353
+ **hooks.json** (combines):
354
+
355
+ ```json
356
+ {
357
+ "PreToolUse": ${file:./pre-tool-use.json},
358
+ "PostToolUse": ${file:./post-tool-use.json},
359
+ "Stop": ${file:./stop.json}
360
+ }
361
+ ```
362
+
363
+ **Note**: Use build script to combine files, Claude Code doesn't support file references.
364
+
365
+ **When to use**:
366
+
367
+ - 10+ hooks
368
+ - Different teams managing different events
369
+ - Complex hook configurations
370
+
371
+ ### Purpose-Based Organization
372
+
373
+ Group by functional purpose:
374
+
375
+ ```
376
+ hooks/
377
+ ├── hooks.json
378
+ └── scripts/
379
+ ├── security/
380
+ │ ├── validate-paths.sh
381
+ │ ├── check-credentials.sh
382
+ │ └── scan-malware.sh
383
+ ├── quality/
384
+ │ ├── lint-code.sh
385
+ │ ├── check-tests.sh
386
+ │ └── verify-docs.sh
387
+ └── workflow/
388
+ ├── notify-team.sh
389
+ └── update-status.sh
390
+ ```
391
+
392
+ **When to use**:
393
+
394
+ - Many hook scripts
395
+ - Clear functional boundaries
396
+ - Team specialization
397
+
398
+ ## Script Organization Patterns
399
+
400
+ ### Flat Scripts
401
+
402
+ All scripts in single directory:
403
+
404
+ ```
405
+ scripts/
406
+ ├── build.sh
407
+ ├── test.py
408
+ ├── deploy.sh
409
+ ├── validate.js
410
+ └── report.py
411
+ ```
412
+
413
+ **When to use**:
414
+
415
+ - 5-10 scripts
416
+ - All scripts related
417
+ - Simple plugin
418
+
419
+ ### Categorized Scripts
420
+
421
+ Group by purpose:
422
+
423
+ ```
424
+ scripts/
425
+ ├── build/
426
+ │ ├── compile.sh
427
+ │ └── package.sh
428
+ ├── test/
429
+ │ ├── run-unit.sh
430
+ │ └── run-integration.sh
431
+ ├── deploy/
432
+ │ ├── staging.sh
433
+ │ └── production.sh
434
+ └── utils/
435
+ ├── log.sh
436
+ └── notify.sh
437
+ ```
438
+
439
+ **When to use**:
440
+
441
+ - 10+ scripts
442
+ - Clear categories
443
+ - Reusable utilities
444
+
445
+ ### Language-Based Organization
446
+
447
+ Group by programming language:
448
+
449
+ ```
450
+ scripts/
451
+ ├── bash/
452
+ │ ├── build.sh
453
+ │ └── deploy.sh
454
+ ├── python/
455
+ │ ├── analyze.py
456
+ │ └── report.py
457
+ └── javascript/
458
+ ├── bundle.js
459
+ └── optimize.js
460
+ ```
461
+
462
+ **When to use**:
463
+
464
+ - Multi-language scripts
465
+ - Different runtime requirements
466
+ - Language-specific dependencies
467
+
468
+ ## Cross-Component Patterns
469
+
470
+ ### Shared Resources
471
+
472
+ Components sharing common resources:
473
+
474
+ ```
475
+ plugin/
476
+ ├── commands/
477
+ │ ├── test.md # Uses lib/test-utils.sh
478
+ │ └── deploy.md # Uses lib/deploy-utils.sh
479
+ ├── agents/
480
+ │ └── tester.md # References lib/test-utils.sh
481
+ ├── hooks/
482
+ │ └── scripts/
483
+ │ └── pre-test.sh # Sources lib/test-utils.sh
484
+ └── lib/
485
+ ├── test-utils.sh
486
+ └── deploy-utils.sh
487
+ ```
488
+
489
+ **Usage in components**:
490
+
491
+ ```bash
492
+ #!/bin/bash
493
+ source "${CLAUDE_PLUGIN_ROOT}/lib/test-utils.sh"
494
+ run_tests
495
+ ```
496
+
497
+ **Benefits**:
498
+
499
+ - Code reuse
500
+ - Consistent behavior
501
+ - Easier maintenance
502
+
503
+ ### Layered Architecture
504
+
505
+ Separate concerns into layers:
506
+
507
+ ```
508
+ plugin/
509
+ ├── commands/ # User interface layer
510
+ ├── agents/ # Orchestration layer
511
+ ├── skills/ # Knowledge layer
512
+ └── lib/
513
+ ├── core/ # Core business logic
514
+ ├── integrations/ # External services
515
+ └── utils/ # Helper functions
516
+ ```
517
+
518
+ **When to use**:
519
+
520
+ - Large plugins (100+ files)
521
+ - Multiple developers
522
+ - Clear separation of concerns
523
+
524
+ ### Plugin Within Plugin
525
+
526
+ Nested plugin structure:
527
+
528
+ ```
529
+ plugin/
530
+ ├── .claude-plugin/
531
+ │ └── plugin.json
532
+ ├── core/ # Core functionality
533
+ │ ├── commands/
534
+ │ └── agents/
535
+ └── extensions/ # Optional extensions
536
+ ├── extension-a/
537
+ │ ├── commands/
538
+ │ └── agents/
539
+ └── extension-b/
540
+ ├── commands/
541
+ └── agents/
542
+ ```
543
+
544
+ **Manifest**:
545
+
546
+ ```json
547
+ {
548
+ "commands": [
549
+ "./core/commands",
550
+ "./extensions/extension-a/commands",
551
+ "./extensions/extension-b/commands"
552
+ ]
553
+ }
554
+ ```
555
+
556
+ **When to use**:
557
+
558
+ - Modular functionality
559
+ - Optional features
560
+ - Plugin families
561
+
562
+ ## Best Practices
563
+
564
+ ### Naming
565
+
566
+ 1. **Consistent naming**: Match file names to component purpose
567
+ 2. **Descriptive names**: Indicate what component does
568
+ 3. **Avoid abbreviations**: Use full words for clarity
569
+
570
+ ### Organization
571
+
572
+ 1. **Start simple**: Use flat structure, reorganize when needed
573
+ 2. **Group related items**: Keep related components together
574
+ 3. **Separate concerns**: Don't mix unrelated functionality
575
+
576
+ ### Scalability
577
+
578
+ 1. **Plan for growth**: Choose structure that scales
579
+ 2. **Refactor early**: Reorganize before it becomes painful
580
+ 3. **Document structure**: Explain organization in README
581
+
582
+ ### Maintainability
583
+
584
+ 1. **Consistent patterns**: Use same structure throughout
585
+ 2. **Minimize nesting**: Keep directory depth manageable
586
+ 3. **Use conventions**: Follow community standards
587
+
588
+ ### Performance
589
+
590
+ 1. **Avoid deep nesting**: Impacts discovery time
591
+ 2. **Minimize custom paths**: Use defaults when possible
592
+ 3. **Keep configurations small**: Large configs slow loading