@every-env/compound-plugin 0.8.0 → 0.12.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 (93) hide show
  1. package/.claude-plugin/marketplace.json +3 -3
  2. package/AGENTS.md +5 -1
  3. package/CHANGELOG.md +50 -0
  4. package/CLAUDE.md +3 -3
  5. package/README.md +52 -14
  6. package/docs/plans/2026-02-14-feat-auto-detect-install-and-gemini-sync-plan.md +360 -0
  7. package/docs/plans/2026-02-25-feat-windsurf-global-scope-support-plan.md +627 -0
  8. package/docs/plans/2026-03-01-feat-ce-command-aliases-backwards-compatible-deprecation-plan.md +261 -0
  9. package/docs/plans/feature_opencode-commands-as-md-and-config-merge.md +574 -0
  10. package/docs/solutions/adding-converter-target-providers.md +692 -0
  11. package/docs/solutions/plugin-versioning-requirements.md +3 -3
  12. package/docs/specs/kiro.md +171 -0
  13. package/docs/specs/windsurf.md +477 -0
  14. package/package.json +1 -1
  15. package/plans/landing-page-launchkit-refresh.md +2 -2
  16. package/plugins/compound-engineering/.claude-plugin/plugin.json +2 -2
  17. package/plugins/compound-engineering/CHANGELOG.md +72 -1
  18. package/plugins/compound-engineering/CLAUDE.md +9 -7
  19. package/plugins/compound-engineering/README.md +10 -7
  20. package/plugins/compound-engineering/agents/research/git-history-analyzer.md +1 -1
  21. package/plugins/compound-engineering/agents/research/learnings-researcher.md +1 -1
  22. package/plugins/compound-engineering/agents/review/code-simplicity-reviewer.md +1 -1
  23. package/plugins/compound-engineering/commands/ce/brainstorm.md +145 -0
  24. package/plugins/compound-engineering/commands/ce/compound.md +240 -0
  25. package/plugins/compound-engineering/commands/ce/plan.md +636 -0
  26. package/plugins/compound-engineering/commands/ce/review.md +525 -0
  27. package/plugins/compound-engineering/commands/ce/work.md +470 -0
  28. package/plugins/compound-engineering/commands/create-agent-skill.md +1 -1
  29. package/plugins/compound-engineering/commands/deepen-plan.md +6 -6
  30. package/plugins/compound-engineering/commands/deploy-docs.md +1 -1
  31. package/plugins/compound-engineering/commands/feature-video.md +15 -6
  32. package/plugins/compound-engineering/commands/heal-skill.md +1 -1
  33. package/plugins/compound-engineering/commands/lfg.md +3 -3
  34. package/plugins/compound-engineering/commands/slfg.md +3 -3
  35. package/plugins/compound-engineering/commands/test-xcode.md +2 -2
  36. package/plugins/compound-engineering/commands/workflows/brainstorm.md +4 -123
  37. package/plugins/compound-engineering/commands/workflows/compound.md +4 -234
  38. package/plugins/compound-engineering/commands/workflows/plan.md +4 -562
  39. package/plugins/compound-engineering/commands/workflows/review.md +4 -522
  40. package/plugins/compound-engineering/commands/workflows/work.md +4 -448
  41. package/plugins/compound-engineering/skills/brainstorming/SKILL.md +3 -3
  42. package/plugins/compound-engineering/skills/document-review/SKILL.md +1 -1
  43. package/plugins/compound-engineering/skills/file-todos/SKILL.md +1 -1
  44. package/plugins/compound-engineering/skills/git-worktree/SKILL.md +5 -5
  45. package/plugins/compound-engineering/skills/proof/SKILL.md +185 -0
  46. package/plugins/compound-engineering/skills/resolve-pr-parallel/SKILL.md +1 -1
  47. package/plugins/compound-engineering/skills/setup/SKILL.md +2 -2
  48. package/src/commands/convert.ts +101 -23
  49. package/src/commands/install.ts +102 -41
  50. package/src/commands/sync.ts +58 -38
  51. package/src/converters/claude-to-kiro.ts +262 -0
  52. package/src/converters/claude-to-openclaw.ts +240 -0
  53. package/src/converters/claude-to-opencode.ts +12 -10
  54. package/src/converters/claude-to-qwen.ts +238 -0
  55. package/src/converters/claude-to-windsurf.ts +205 -0
  56. package/src/sync/gemini.ts +76 -0
  57. package/src/targets/index.ts +69 -1
  58. package/src/targets/kiro.ts +122 -0
  59. package/src/targets/openclaw.ts +96 -0
  60. package/src/targets/opencode.ts +76 -10
  61. package/src/targets/qwen.ts +64 -0
  62. package/src/targets/windsurf.ts +104 -0
  63. package/src/types/kiro.ts +44 -0
  64. package/src/types/openclaw.ts +52 -0
  65. package/src/types/opencode.ts +7 -8
  66. package/src/types/qwen.ts +48 -0
  67. package/src/types/windsurf.ts +34 -0
  68. package/src/utils/detect-tools.ts +46 -0
  69. package/src/utils/files.ts +7 -0
  70. package/src/utils/resolve-output.ts +50 -0
  71. package/src/utils/secrets.ts +24 -0
  72. package/tests/cli.test.ts +78 -0
  73. package/tests/converter.test.ts +43 -10
  74. package/tests/detect-tools.test.ts +96 -0
  75. package/tests/kiro-converter.test.ts +381 -0
  76. package/tests/kiro-writer.test.ts +273 -0
  77. package/tests/openclaw-converter.test.ts +200 -0
  78. package/tests/opencode-writer.test.ts +142 -5
  79. package/tests/qwen-converter.test.ts +238 -0
  80. package/tests/resolve-output.test.ts +131 -0
  81. package/tests/sync-gemini.test.ts +106 -0
  82. package/tests/windsurf-converter.test.ts +573 -0
  83. package/tests/windsurf-writer.test.ts +359 -0
  84. package/docs/css/docs.css +0 -675
  85. package/docs/css/style.css +0 -2886
  86. package/docs/index.html +0 -1046
  87. package/docs/js/main.js +0 -225
  88. package/docs/pages/agents.html +0 -649
  89. package/docs/pages/changelog.html +0 -534
  90. package/docs/pages/commands.html +0 -523
  91. package/docs/pages/getting-started.html +0 -582
  92. package/docs/pages/mcp-servers.html +0 -409
  93. package/docs/pages/skills.html +0 -611
package/docs/css/docs.css DELETED
@@ -1,675 +0,0 @@
1
- /* Documentation-specific styles */
2
-
3
- /* ============================================
4
- Documentation Layout
5
- ============================================ */
6
-
7
- .docs-layout {
8
- display: grid;
9
- grid-template-columns: 1fr;
10
- min-height: 100vh;
11
- }
12
-
13
- @media (min-width: 1024px) {
14
- .docs-layout {
15
- grid-template-columns: 280px 1fr;
16
- }
17
- }
18
-
19
- /* ============================================
20
- Sidebar
21
- ============================================ */
22
-
23
- .docs-sidebar {
24
- position: fixed;
25
- top: 0;
26
- left: -300px;
27
- width: 280px;
28
- height: 100vh;
29
- background-color: var(--color-background);
30
- border-right: 1px solid var(--color-border);
31
- overflow-y: auto;
32
- transition: left 0.3s ease;
33
- z-index: 100;
34
- }
35
-
36
- .docs-sidebar.open {
37
- left: 0;
38
- }
39
-
40
- @media (min-width: 1024px) {
41
- .docs-sidebar {
42
- position: sticky;
43
- left: 0;
44
- }
45
- }
46
-
47
- .sidebar-header {
48
- padding: var(--space-l);
49
- border-bottom: 1px solid var(--color-border);
50
- }
51
-
52
- .sidebar-header .nav-brand {
53
- display: flex;
54
- align-items: center;
55
- gap: var(--space-s);
56
- text-decoration: none;
57
- color: var(--color-text-primary);
58
- font-weight: 600;
59
- }
60
-
61
- .sidebar-header .logo-icon {
62
- color: var(--color-accent);
63
- font-size: var(--font-size-l);
64
- }
65
-
66
- .sidebar-header .logo-text {
67
- display: inline;
68
- }
69
-
70
- .sidebar-nav {
71
- padding: var(--space-l);
72
- }
73
-
74
- .nav-section {
75
- margin-bottom: var(--space-xl);
76
- }
77
-
78
- .nav-section h3 {
79
- font-size: var(--font-size-xs);
80
- font-weight: 600;
81
- text-transform: uppercase;
82
- letter-spacing: 0.05em;
83
- color: var(--color-text-tertiary);
84
- margin: 0 0 var(--space-m) 0;
85
- }
86
-
87
- .nav-section ul {
88
- list-style: none;
89
- margin: 0;
90
- padding: 0;
91
- }
92
-
93
- .nav-section li {
94
- margin: 0;
95
- }
96
-
97
- .nav-section a {
98
- display: block;
99
- padding: var(--space-s) var(--space-m);
100
- color: var(--color-text-secondary);
101
- text-decoration: none;
102
- font-size: var(--font-size-s);
103
- border-radius: var(--radius-s);
104
- transition: all 0.2s ease;
105
- }
106
-
107
- .nav-section a:hover {
108
- color: var(--color-text-primary);
109
- background-color: var(--color-surface);
110
- }
111
-
112
- .nav-section a.active {
113
- color: var(--color-accent);
114
- background-color: var(--color-accent-light);
115
- }
116
-
117
- /* ============================================
118
- Main Content
119
- ============================================ */
120
-
121
- .docs-content {
122
- padding: var(--space-xl);
123
- max-width: 900px;
124
- }
125
-
126
- @media (min-width: 1024px) {
127
- .docs-content {
128
- padding: var(--space-xxl);
129
- }
130
- }
131
-
132
- .docs-header {
133
- display: flex;
134
- align-items: center;
135
- justify-content: space-between;
136
- margin-bottom: var(--space-xl);
137
- }
138
-
139
- .breadcrumb {
140
- display: flex;
141
- align-items: center;
142
- gap: var(--space-s);
143
- font-size: var(--font-size-s);
144
- color: var(--color-text-tertiary);
145
- }
146
-
147
- .breadcrumb a {
148
- color: var(--color-text-secondary);
149
- text-decoration: none;
150
- }
151
-
152
- .breadcrumb a:hover {
153
- color: var(--color-accent);
154
- }
155
-
156
- .mobile-menu-toggle {
157
- display: flex;
158
- align-items: center;
159
- justify-content: center;
160
- width: 40px;
161
- height: 40px;
162
- background: none;
163
- border: 1px solid var(--color-border);
164
- border-radius: var(--radius-s);
165
- color: var(--color-text-secondary);
166
- cursor: pointer;
167
- }
168
-
169
- @media (min-width: 1024px) {
170
- .mobile-menu-toggle {
171
- display: none;
172
- }
173
- }
174
-
175
- /* ============================================
176
- Article Styles
177
- ============================================ */
178
-
179
- .docs-article {
180
- line-height: 1.7;
181
- }
182
-
183
- .docs-article h1 {
184
- font-size: var(--font-size-xl);
185
- margin-bottom: var(--space-l);
186
- }
187
-
188
- .docs-article h2 {
189
- font-size: var(--font-size-l);
190
- margin-top: var(--space-xxl);
191
- margin-bottom: var(--space-l);
192
- padding-bottom: var(--space-s);
193
- border-bottom: 1px solid var(--color-border);
194
- display: flex;
195
- align-items: center;
196
- gap: var(--space-s);
197
- }
198
-
199
- .docs-article h2 i {
200
- color: var(--color-accent);
201
- }
202
-
203
- .docs-article h3 {
204
- font-size: var(--font-size-m);
205
- margin-top: var(--space-xl);
206
- margin-bottom: var(--space-m);
207
- }
208
-
209
- .docs-article h4 {
210
- font-size: var(--font-size-s);
211
- margin-top: var(--space-l);
212
- margin-bottom: var(--space-s);
213
- }
214
-
215
- .docs-article p {
216
- margin-bottom: var(--space-l);
217
- }
218
-
219
- .docs-article .lead {
220
- font-size: var(--font-size-l);
221
- color: var(--color-text-secondary);
222
- margin-bottom: var(--space-xl);
223
- }
224
-
225
- .docs-article ul,
226
- .docs-article ol {
227
- margin-bottom: var(--space-l);
228
- padding-left: var(--space-xl);
229
- }
230
-
231
- .docs-article li {
232
- margin-bottom: var(--space-s);
233
- }
234
-
235
- /* ============================================
236
- Code Blocks in Docs
237
- ============================================ */
238
-
239
- .docs-article .card-code-block {
240
- margin: var(--space-l) 0;
241
- }
242
-
243
- .docs-article code {
244
- font-family: var(--font-mono);
245
- font-size: 0.9em;
246
- background-color: var(--color-surface);
247
- padding: 2px 6px;
248
- border-radius: var(--radius-xs);
249
- color: var(--color-accent);
250
- }
251
-
252
- .docs-article pre code {
253
- background: none;
254
- padding: 0;
255
- color: var(--color-code-text);
256
- }
257
-
258
- /* ============================================
259
- Tables
260
- ============================================ */
261
-
262
- .docs-table {
263
- width: 100%;
264
- border-collapse: collapse;
265
- margin: var(--space-l) 0;
266
- font-size: var(--font-size-s);
267
- }
268
-
269
- .docs-table th,
270
- .docs-table td {
271
- padding: var(--space-m);
272
- text-align: left;
273
- border-bottom: 1px solid var(--color-border);
274
- }
275
-
276
- .docs-table th {
277
- font-weight: 600;
278
- color: var(--color-text-primary);
279
- background-color: var(--color-surface);
280
- }
281
-
282
- .docs-table td {
283
- color: var(--color-text-secondary);
284
- }
285
-
286
- .docs-table code {
287
- font-size: 0.85em;
288
- }
289
-
290
- /* ============================================
291
- Callouts
292
- ============================================ */
293
-
294
- .callout {
295
- display: flex;
296
- gap: var(--space-m);
297
- padding: var(--space-l);
298
- border-radius: var(--radius-m);
299
- margin: var(--space-l) 0;
300
- }
301
-
302
- .callout-icon {
303
- font-size: var(--font-size-l);
304
- flex-shrink: 0;
305
- }
306
-
307
- .callout-content h4 {
308
- margin: 0 0 var(--space-s) 0;
309
- font-size: var(--font-size-s);
310
- }
311
-
312
- .callout-content p {
313
- margin: 0;
314
- font-size: var(--font-size-s);
315
- }
316
-
317
- .callout-info {
318
- background-color: rgba(99, 102, 241, 0.1);
319
- border: 1px solid rgba(99, 102, 241, 0.2);
320
- }
321
-
322
- .callout-info .callout-icon {
323
- color: var(--color-accent);
324
- }
325
-
326
- .callout-info .callout-content h4 {
327
- color: var(--color-accent);
328
- }
329
-
330
- .callout-tip {
331
- background-color: rgba(16, 185, 129, 0.1);
332
- border: 1px solid rgba(16, 185, 129, 0.2);
333
- }
334
-
335
- .callout-tip .callout-icon {
336
- color: var(--color-success);
337
- }
338
-
339
- .callout-tip .callout-content h4 {
340
- color: var(--color-success);
341
- }
342
-
343
- .callout-warning {
344
- background-color: rgba(245, 158, 11, 0.1);
345
- border: 1px solid rgba(245, 158, 11, 0.2);
346
- }
347
-
348
- .callout-warning .callout-icon {
349
- color: var(--color-warning);
350
- }
351
-
352
- .callout-warning .callout-content h4 {
353
- color: var(--color-warning);
354
- }
355
-
356
- /* ============================================
357
- Badges
358
- ============================================ */
359
-
360
- .badge {
361
- display: inline-block;
362
- padding: 2px 8px;
363
- font-size: var(--font-size-xs);
364
- font-weight: 600;
365
- border-radius: var(--radius-s);
366
- text-transform: uppercase;
367
- letter-spacing: 0.03em;
368
- }
369
-
370
- .badge-critical {
371
- background-color: rgba(239, 68, 68, 0.15);
372
- color: var(--color-error);
373
- }
374
-
375
- .badge-important {
376
- background-color: rgba(245, 158, 11, 0.15);
377
- color: var(--color-warning);
378
- }
379
-
380
- .badge-nice {
381
- background-color: rgba(99, 102, 241, 0.15);
382
- color: var(--color-accent);
383
- }
384
-
385
- /* ============================================
386
- Philosophy Grid
387
- ============================================ */
388
-
389
- .philosophy-grid {
390
- display: grid;
391
- grid-template-columns: repeat(1, 1fr);
392
- gap: var(--space-l);
393
- margin: var(--space-xl) 0;
394
- }
395
-
396
- @media (min-width: 640px) {
397
- .philosophy-grid {
398
- grid-template-columns: repeat(2, 1fr);
399
- }
400
- }
401
-
402
- .philosophy-card {
403
- padding: var(--space-xl);
404
- background-color: var(--color-surface);
405
- border-radius: var(--radius-m);
406
- border: 1px solid var(--color-border);
407
- }
408
-
409
- .philosophy-icon {
410
- font-size: var(--font-size-xl);
411
- color: var(--color-accent);
412
- margin-bottom: var(--space-m);
413
- }
414
-
415
- .philosophy-card h4 {
416
- margin: 0 0 var(--space-s) 0;
417
- color: var(--color-text-primary);
418
- }
419
-
420
- .philosophy-card p {
421
- margin: 0;
422
- font-size: var(--font-size-s);
423
- color: var(--color-text-secondary);
424
- }
425
-
426
- /* ============================================
427
- Blockquotes
428
- ============================================ */
429
-
430
- .highlight-quote {
431
- font-size: var(--font-size-l);
432
- font-style: italic;
433
- color: var(--color-accent);
434
- padding: var(--space-xl);
435
- margin: var(--space-xl) 0;
436
- background: linear-gradient(135deg, var(--color-accent-lighter), transparent);
437
- border-left: 4px solid var(--color-accent);
438
- border-radius: var(--radius-m);
439
- }
440
-
441
- /* ============================================
442
- Navigation Footer
443
- ============================================ */
444
-
445
- .docs-nav-footer {
446
- display: flex;
447
- justify-content: space-between;
448
- gap: var(--space-l);
449
- margin-top: var(--space-xxl);
450
- padding-top: var(--space-xl);
451
- border-top: 1px solid var(--color-border);
452
- }
453
-
454
- .nav-prev,
455
- .nav-next {
456
- display: flex;
457
- flex-direction: column;
458
- gap: var(--space-xs);
459
- padding: var(--space-l);
460
- background-color: var(--color-surface);
461
- border-radius: var(--radius-m);
462
- text-decoration: none;
463
- transition: all 0.2s ease;
464
- flex: 1;
465
- max-width: 300px;
466
- }
467
-
468
- .nav-prev:hover,
469
- .nav-next:hover {
470
- background-color: var(--color-surface-hover);
471
- border-color: var(--color-accent);
472
- }
473
-
474
- .nav-next {
475
- text-align: right;
476
- margin-left: auto;
477
- }
478
-
479
- .nav-label {
480
- font-size: var(--font-size-xs);
481
- color: var(--color-text-tertiary);
482
- text-transform: uppercase;
483
- letter-spacing: 0.05em;
484
- }
485
-
486
- .nav-title {
487
- font-weight: 600;
488
- color: var(--color-accent);
489
- display: flex;
490
- align-items: center;
491
- gap: var(--space-s);
492
- }
493
-
494
- .nav-next .nav-title {
495
- justify-content: flex-end;
496
- }
497
-
498
- /* ============================================
499
- Mobile Sidebar Overlay
500
- ============================================ */
501
-
502
- @media (max-width: 1023px) {
503
- .docs-sidebar.open::before {
504
- content: '';
505
- position: fixed;
506
- top: 0;
507
- left: 0;
508
- right: 0;
509
- bottom: 0;
510
- background-color: rgba(0, 0, 0, 0.5);
511
- z-index: -1;
512
- }
513
- }
514
-
515
- /* ============================================
516
- Changelog Styles
517
- ============================================ */
518
-
519
- .version-section {
520
- margin-bottom: var(--space-xxl);
521
- padding-bottom: var(--space-xl);
522
- border-bottom: 1px solid var(--color-border);
523
- }
524
-
525
- .version-section:last-child {
526
- border-bottom: none;
527
- }
528
-
529
- .version-header {
530
- display: flex;
531
- align-items: center;
532
- gap: var(--space-m);
533
- margin-bottom: var(--space-l);
534
- flex-wrap: wrap;
535
- }
536
-
537
- .version-header h2 {
538
- margin: 0;
539
- padding: 0;
540
- border: none;
541
- font-size: var(--font-size-xl);
542
- color: var(--color-text-primary);
543
- }
544
-
545
- .version-date {
546
- font-size: var(--font-size-s);
547
- color: var(--color-text-tertiary);
548
- background-color: var(--color-surface);
549
- padding: var(--space-xs) var(--space-m);
550
- border-radius: var(--radius-s);
551
- }
552
-
553
- .version-badge {
554
- font-size: var(--font-size-xs);
555
- font-weight: 600;
556
- padding: var(--space-xs) var(--space-m);
557
- border-radius: var(--radius-s);
558
- background-color: var(--color-accent);
559
- color: white;
560
- }
561
-
562
- .version-badge.major {
563
- background-color: var(--color-warning);
564
- }
565
-
566
- .version-description {
567
- font-size: var(--font-size-m);
568
- color: var(--color-text-secondary);
569
- margin-bottom: var(--space-l);
570
- font-style: italic;
571
- }
572
-
573
- .changelog-category {
574
- margin-bottom: var(--space-l);
575
- padding: var(--space-l);
576
- background-color: var(--color-surface);
577
- border-radius: var(--radius-m);
578
- border-left: 4px solid var(--color-border);
579
- }
580
-
581
- .changelog-category h3 {
582
- margin: 0 0 var(--space-m) 0;
583
- font-size: var(--font-size-m);
584
- display: flex;
585
- align-items: center;
586
- gap: var(--space-s);
587
- }
588
-
589
- .changelog-category h3 i {
590
- font-size: var(--font-size-s);
591
- }
592
-
593
- .changelog-category h4 {
594
- margin: var(--space-l) 0 var(--space-s) 0;
595
- font-size: var(--font-size-s);
596
- color: var(--color-text-secondary);
597
- }
598
-
599
- .changelog-category ul {
600
- margin: 0;
601
- padding-left: var(--space-xl);
602
- }
603
-
604
- .changelog-category li {
605
- margin-bottom: var(--space-s);
606
- }
607
-
608
- .changelog-category.added {
609
- border-left-color: var(--color-success);
610
- }
611
-
612
- .changelog-category.added h3 {
613
- color: var(--color-success);
614
- }
615
-
616
- .changelog-category.improved {
617
- border-left-color: var(--color-accent);
618
- }
619
-
620
- .changelog-category.improved h3 {
621
- color: var(--color-accent);
622
- }
623
-
624
- .changelog-category.changed {
625
- border-left-color: var(--color-warning);
626
- }
627
-
628
- .changelog-category.changed h3 {
629
- color: var(--color-warning);
630
- }
631
-
632
- .changelog-category.fixed {
633
- border-left-color: var(--color-error);
634
- }
635
-
636
- .changelog-category.fixed h3 {
637
- color: var(--color-error);
638
- }
639
-
640
- .version-summary {
641
- margin-top: var(--space-l);
642
- }
643
-
644
- .version-summary h4 {
645
- margin-bottom: var(--space-m);
646
- }
647
-
648
- .version-summary table {
649
- width: 100%;
650
- max-width: 400px;
651
- border-collapse: collapse;
652
- font-size: var(--font-size-s);
653
- }
654
-
655
- .version-summary th,
656
- .version-summary td {
657
- padding: var(--space-s) var(--space-m);
658
- text-align: left;
659
- border-bottom: 1px solid var(--color-border);
660
- }
661
-
662
- .version-summary th {
663
- font-weight: 600;
664
- background-color: var(--color-surface);
665
- }
666
-
667
- .version-summary .positive {
668
- color: var(--color-success);
669
- font-weight: 600;
670
- }
671
-
672
- .version-summary .negative {
673
- color: var(--color-error);
674
- font-weight: 600;
675
- }