@yemi33/minions 0.1.2403 → 0.1.2405

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.
@@ -0,0 +1,1421 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <meta name="description" content="A source-backed decision guide for choosing between a raw coding-agent CLI, GitHub Copilot cloud agent, Multica, and Minions.">
7
+ <title>Why Minions? | A Coding-Agent Orchestration Decision Guide</title>
8
+ <style>
9
+ :root {
10
+ color-scheme: dark;
11
+ --bg: #0d1117;
12
+ --surface: #161b22;
13
+ --surface-strong: #21262d;
14
+ --surface-soft: #0d1117;
15
+ --border: #30363d;
16
+ --text: #e6edf3;
17
+ --muted: #8b949e;
18
+ --blue: #58a6ff;
19
+ --green: #3fb950;
20
+ --yellow: #d29922;
21
+ --purple: #bc8cff;
22
+ --red: #f85149;
23
+ --orange: #e3b341;
24
+ --shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
25
+ --radius-sm: 4px;
26
+ --radius-md: 6px;
27
+ --radius-lg: 8px;
28
+ --radius-xl: 10px;
29
+ --radius-pill: 999px;
30
+ }
31
+
32
+ * { box-sizing: border-box; }
33
+ html { scroll-behavior: smooth; }
34
+ body {
35
+ margin: 0;
36
+ min-width: 280px;
37
+ overflow-x: hidden;
38
+ background:
39
+ radial-gradient(circle at 14% 3%, rgba(88, 166, 255, 0.11), transparent 31rem),
40
+ radial-gradient(circle at 90% 18%, rgba(188, 140, 255, 0.08), transparent 27rem),
41
+ var(--bg);
42
+ color: var(--text);
43
+ font-family: "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
44
+ line-height: 1.6;
45
+ }
46
+
47
+ a { color: var(--blue); }
48
+ a:hover { color: #79c0ff; }
49
+ h1, h2, h3, p { margin-top: 0; }
50
+ h1, h2, h3 { line-height: 1.14; }
51
+ code {
52
+ padding: 0.12em 0.38em;
53
+ border: 1px solid rgba(88, 166, 255, 0.24);
54
+ border-radius: var(--radius-sm);
55
+ background: rgba(88, 166, 255, 0.08);
56
+ color: #b6d9ff;
57
+ font: 0.88em ui-monospace, SFMono-Regular, Consolas, monospace;
58
+ overflow-wrap: anywhere;
59
+ }
60
+ :focus-visible {
61
+ outline: 3px solid var(--yellow);
62
+ outline-offset: 4px;
63
+ border-radius: var(--radius-md);
64
+ }
65
+ .skip-link {
66
+ position: fixed;
67
+ top: 10px;
68
+ left: 10px;
69
+ z-index: 100;
70
+ padding: 10px 14px;
71
+ transform: translateY(-150%);
72
+ border-radius: var(--radius-md);
73
+ background: var(--yellow);
74
+ color: var(--bg);
75
+ font-weight: 800;
76
+ }
77
+ .skip-link:focus { transform: translateY(0); }
78
+
79
+ .site-header {
80
+ position: sticky;
81
+ top: 0;
82
+ z-index: 50;
83
+ border-bottom: 1px solid var(--border);
84
+ background: rgba(13, 17, 23, 0.94);
85
+ backdrop-filter: blur(12px);
86
+ }
87
+ .site-nav {
88
+ display: flex;
89
+ align-items: center;
90
+ justify-content: space-between;
91
+ gap: 24px;
92
+ width: min(1180px, calc(100% - 32px));
93
+ min-height: 64px;
94
+ margin: 0 auto;
95
+ }
96
+ .brand {
97
+ display: inline-flex;
98
+ align-items: center;
99
+ gap: 10px;
100
+ flex: 0 0 auto;
101
+ color: var(--text);
102
+ font-weight: 850;
103
+ letter-spacing: -0.02em;
104
+ text-decoration: none;
105
+ }
106
+ .brand-mark {
107
+ display: grid;
108
+ width: 32px;
109
+ height: 32px;
110
+ place-items: center;
111
+ border: 1px solid rgba(88, 166, 255, 0.45);
112
+ border-radius: var(--radius-lg);
113
+ background: var(--surface-strong);
114
+ color: var(--blue);
115
+ }
116
+ .nav-links {
117
+ display: flex;
118
+ align-items: center;
119
+ gap: 8px;
120
+ overflow-x: auto;
121
+ scrollbar-width: none;
122
+ }
123
+ .nav-links::-webkit-scrollbar { display: none; }
124
+ .nav-links a {
125
+ flex: 0 0 auto;
126
+ padding: 7px 10px;
127
+ border-radius: var(--radius-md);
128
+ color: var(--muted);
129
+ font-size: 0.84rem;
130
+ font-weight: 700;
131
+ text-decoration: none;
132
+ }
133
+ .nav-links a:hover {
134
+ background: var(--surface-strong);
135
+ color: var(--text);
136
+ }
137
+ .nav-links .decision-link {
138
+ border: 1px solid var(--border);
139
+ color: var(--blue);
140
+ }
141
+
142
+ main { overflow: clip; }
143
+ .section {
144
+ width: min(1120px, calc(100% - 40px));
145
+ margin: 0 auto;
146
+ padding: 92px 0;
147
+ scroll-margin-top: 72px;
148
+ }
149
+ .section + .section { border-top: 1px solid rgba(48, 54, 61, 0.7); }
150
+ .section-heading {
151
+ max-width: 780px;
152
+ margin-bottom: 36px;
153
+ }
154
+ .eyebrow {
155
+ margin: 0 0 10px;
156
+ color: var(--blue);
157
+ font-size: 0.78rem;
158
+ font-weight: 850;
159
+ letter-spacing: 0.14em;
160
+ text-transform: uppercase;
161
+ }
162
+ h2 {
163
+ margin-bottom: 14px;
164
+ font-size: clamp(1.9rem, 4vw, 2.8rem);
165
+ letter-spacing: -0.035em;
166
+ }
167
+ .section-heading > p {
168
+ max-width: 720px;
169
+ margin-bottom: 0;
170
+ color: var(--muted);
171
+ font-size: 1.04rem;
172
+ }
173
+
174
+ .hero {
175
+ display: grid;
176
+ grid-template-columns: minmax(0, 1.08fr) minmax(360px, 0.92fr);
177
+ gap: clamp(44px, 7vw, 90px);
178
+ align-items: center;
179
+ width: min(1180px, calc(100% - 40px));
180
+ min-height: 710px;
181
+ margin: 0 auto;
182
+ padding: 88px 0 80px;
183
+ }
184
+ .hero h1 {
185
+ max-width: 760px;
186
+ margin-bottom: 24px;
187
+ font-size: clamp(3.2rem, 8vw, 6.4rem);
188
+ letter-spacing: -0.065em;
189
+ }
190
+ .hero h1 span {
191
+ color: var(--blue);
192
+ text-shadow: 0 0 34px rgba(88, 166, 255, 0.2);
193
+ }
194
+ .hero-lede {
195
+ max-width: 710px;
196
+ margin-bottom: 28px;
197
+ color: #c9d1d9;
198
+ font-size: clamp(1.08rem, 2.3vw, 1.34rem);
199
+ }
200
+ .hero-actions {
201
+ display: flex;
202
+ flex-wrap: wrap;
203
+ gap: 12px;
204
+ margin-bottom: 22px;
205
+ }
206
+ .button-link {
207
+ display: inline-flex;
208
+ align-items: center;
209
+ justify-content: center;
210
+ gap: 8px;
211
+ min-height: 44px;
212
+ padding: 10px 16px;
213
+ border: 1px solid var(--border);
214
+ border-radius: var(--radius-md);
215
+ background: var(--surface);
216
+ color: var(--text);
217
+ font-size: 0.92rem;
218
+ font-weight: 800;
219
+ text-decoration: none;
220
+ }
221
+ .button-link:hover {
222
+ border-color: #484f58;
223
+ background: var(--surface-strong);
224
+ color: var(--text);
225
+ }
226
+ .button-link.primary {
227
+ border-color: var(--blue);
228
+ background: var(--blue);
229
+ color: #07111e;
230
+ }
231
+ .button-link.primary:hover {
232
+ background: #79c0ff;
233
+ color: #07111e;
234
+ }
235
+ .hero-note {
236
+ display: flex;
237
+ align-items: flex-start;
238
+ gap: 9px;
239
+ max-width: 650px;
240
+ margin: 0;
241
+ color: var(--muted);
242
+ font-size: 0.88rem;
243
+ }
244
+ .verified-dot {
245
+ flex: 0 0 auto;
246
+ width: 9px;
247
+ height: 9px;
248
+ margin-top: 0.42rem;
249
+ border-radius: 50%;
250
+ background: var(--green);
251
+ box-shadow: 0 0 0 5px rgba(63, 185, 80, 0.12);
252
+ }
253
+
254
+ .coordination-figure {
255
+ position: relative;
256
+ margin: 0;
257
+ padding: 26px;
258
+ border: 1px solid var(--border);
259
+ border-radius: var(--radius-xl);
260
+ background:
261
+ linear-gradient(145deg, rgba(88, 166, 255, 0.08), transparent 48%),
262
+ var(--surface);
263
+ box-shadow: var(--shadow);
264
+ }
265
+ .coordination-figure::before {
266
+ content: "";
267
+ position: absolute;
268
+ inset: 9px;
269
+ pointer-events: none;
270
+ border: 1px solid rgba(88, 166, 255, 0.1);
271
+ border-radius: var(--radius-lg);
272
+ }
273
+ .figure-kicker {
274
+ position: relative;
275
+ margin-bottom: 18px;
276
+ color: var(--muted);
277
+ font-size: 0.72rem;
278
+ font-weight: 800;
279
+ letter-spacing: 0.12em;
280
+ text-transform: uppercase;
281
+ }
282
+ .ownership-stack {
283
+ position: relative;
284
+ display: grid;
285
+ gap: 12px;
286
+ }
287
+ .ownership-row {
288
+ display: grid;
289
+ grid-template-columns: 112px 1fr;
290
+ gap: 12px;
291
+ align-items: center;
292
+ }
293
+ .ownership-name {
294
+ color: #c9d1d9;
295
+ font-size: 0.82rem;
296
+ font-weight: 800;
297
+ }
298
+ .ownership-meter {
299
+ position: relative;
300
+ height: 48px;
301
+ overflow: hidden;
302
+ border: 1px solid var(--border);
303
+ border-radius: var(--radius-md);
304
+ background:
305
+ repeating-linear-gradient(90deg, transparent 0, transparent calc(25% - 1px), rgba(139, 148, 158, 0.12) 25%),
306
+ var(--surface-soft);
307
+ }
308
+ .ownership-meter span {
309
+ display: flex;
310
+ align-items: center;
311
+ height: 100%;
312
+ padding: 0 12px;
313
+ border-right: 1px solid currentColor;
314
+ background: color-mix(in srgb, currentColor 12%, transparent);
315
+ color: inherit;
316
+ font-size: 0.72rem;
317
+ font-weight: 750;
318
+ white-space: nowrap;
319
+ }
320
+ .ownership-row.cli { color: var(--yellow); }
321
+ .ownership-row.copilot { color: var(--purple); }
322
+ .ownership-row.multica { color: var(--orange); }
323
+ .ownership-row.minions { color: var(--blue); }
324
+ .ownership-row.cli .ownership-meter span { width: 25%; }
325
+ .ownership-row.copilot .ownership-meter span { width: 50%; }
326
+ .ownership-row.multica .ownership-meter span { width: 75%; }
327
+ .ownership-row.minions .ownership-meter span { width: 100%; }
328
+ .coordination-figure figcaption {
329
+ position: relative;
330
+ margin-top: 18px;
331
+ color: var(--muted);
332
+ font-size: 0.8rem;
333
+ }
334
+ .coordination-figure figcaption strong { color: var(--text); }
335
+
336
+ .progression-grid {
337
+ position: relative;
338
+ display: grid;
339
+ grid-template-columns: repeat(4, minmax(0, 1fr));
340
+ gap: 14px;
341
+ margin: 0;
342
+ padding: 0;
343
+ list-style: none;
344
+ }
345
+ .progression-grid::before {
346
+ content: "";
347
+ position: absolute;
348
+ top: 25px;
349
+ left: 8%;
350
+ right: 8%;
351
+ height: 1px;
352
+ background: linear-gradient(90deg, var(--yellow), var(--purple), var(--orange), var(--blue));
353
+ }
354
+ .progression-step {
355
+ position: relative;
356
+ min-height: 250px;
357
+ padding: 58px 20px 20px;
358
+ border: 1px solid var(--border);
359
+ border-radius: var(--radius-lg);
360
+ background: var(--surface);
361
+ }
362
+ .progression-step::before {
363
+ content: attr(data-step);
364
+ position: absolute;
365
+ top: 10px;
366
+ left: 20px;
367
+ display: grid;
368
+ width: 32px;
369
+ height: 32px;
370
+ place-items: center;
371
+ border: 1px solid currentColor;
372
+ border-radius: 50%;
373
+ background: var(--bg);
374
+ font-size: 0.72rem;
375
+ font-weight: 900;
376
+ }
377
+ .progression-step.cli { color: var(--yellow); }
378
+ .progression-step.copilot { color: var(--purple); }
379
+ .progression-step.multica { color: var(--orange); }
380
+ .progression-step.minions { color: var(--blue); }
381
+ .progression-step h3 {
382
+ margin-bottom: 12px;
383
+ color: var(--text);
384
+ font-size: 1.12rem;
385
+ }
386
+ .progression-step p {
387
+ margin: 0;
388
+ color: var(--muted);
389
+ font-size: 0.91rem;
390
+ }
391
+ .progression-step strong { color: #c9d1d9; }
392
+ .thesis {
393
+ display: grid;
394
+ grid-template-columns: auto 1fr;
395
+ gap: 16px;
396
+ align-items: center;
397
+ margin-top: 24px;
398
+ padding: 20px 22px;
399
+ border: 1px solid rgba(88, 166, 255, 0.35);
400
+ border-radius: var(--radius-lg);
401
+ background: rgba(88, 166, 255, 0.07);
402
+ }
403
+ .thesis-mark {
404
+ display: grid;
405
+ width: 36px;
406
+ height: 36px;
407
+ place-items: center;
408
+ border-radius: 50%;
409
+ background: var(--blue);
410
+ color: #07111e;
411
+ font-weight: 900;
412
+ }
413
+ .thesis p { margin: 0; }
414
+
415
+ .identity-note {
416
+ display: grid;
417
+ grid-template-columns: auto 1fr;
418
+ gap: 14px;
419
+ align-items: start;
420
+ margin-bottom: 24px;
421
+ padding: 16px 18px;
422
+ border-left: 3px solid var(--orange);
423
+ border-radius: 0 var(--radius-md) var(--radius-md) 0;
424
+ background: rgba(227, 179, 65, 0.07);
425
+ color: #c9d1d9;
426
+ }
427
+ .identity-note strong {
428
+ color: var(--orange);
429
+ font-size: 0.74rem;
430
+ letter-spacing: 0.1em;
431
+ text-transform: uppercase;
432
+ }
433
+ .identity-note p { margin: 0; }
434
+ .identity-note a { white-space: nowrap; }
435
+
436
+ .option-legend {
437
+ display: flex;
438
+ flex-wrap: wrap;
439
+ gap: 9px;
440
+ margin-bottom: 18px;
441
+ }
442
+ .option-key,
443
+ .option-name {
444
+ display: inline-flex;
445
+ align-items: center;
446
+ gap: 7px;
447
+ font-weight: 850;
448
+ }
449
+ .option-key {
450
+ padding: 6px 10px;
451
+ border: 1px solid var(--border);
452
+ border-radius: var(--radius-pill);
453
+ background: var(--surface);
454
+ color: #c9d1d9;
455
+ font-size: 0.78rem;
456
+ }
457
+ .option-key::before,
458
+ .option-name::before {
459
+ content: "";
460
+ width: 8px;
461
+ height: 8px;
462
+ border-radius: 50%;
463
+ background: var(--option-color);
464
+ }
465
+ [data-option="cli"], .option-take.cli { --option-color: var(--yellow); }
466
+ [data-option="copilot"], .option-take.copilot { --option-color: var(--purple); }
467
+ [data-option="multica"], .option-take.multica { --option-color: var(--orange); }
468
+ [data-option="minions"], .option-take.minions { --option-color: var(--blue); }
469
+
470
+ .comparison-list {
471
+ display: grid;
472
+ gap: 16px;
473
+ }
474
+ .dimension-card {
475
+ padding: 24px;
476
+ border: 1px solid var(--border);
477
+ border-radius: var(--radius-lg);
478
+ background: var(--surface);
479
+ }
480
+ .dimension-heading {
481
+ display: grid;
482
+ grid-template-columns: auto 1fr;
483
+ gap: 14px;
484
+ align-items: start;
485
+ margin-bottom: 18px;
486
+ }
487
+ .dimension-number {
488
+ display: grid;
489
+ width: 34px;
490
+ height: 34px;
491
+ place-items: center;
492
+ border: 1px solid var(--border);
493
+ border-radius: var(--radius-md);
494
+ background: var(--surface-strong);
495
+ color: var(--muted);
496
+ font: 800 0.72rem ui-monospace, SFMono-Regular, Consolas, monospace;
497
+ }
498
+ .dimension-heading h3 {
499
+ margin: 0 0 4px;
500
+ font-size: 1.2rem;
501
+ }
502
+ .dimension-heading p {
503
+ margin: 0;
504
+ color: var(--muted);
505
+ font-size: 0.9rem;
506
+ }
507
+ .option-grid {
508
+ display: grid;
509
+ grid-template-columns: repeat(4, minmax(0, 1fr));
510
+ gap: 12px;
511
+ }
512
+ .option-take {
513
+ min-width: 0;
514
+ padding: 15px;
515
+ border: 1px solid var(--border);
516
+ border-top: 2px solid var(--option-color);
517
+ border-radius: var(--radius-md);
518
+ background: var(--surface-soft);
519
+ }
520
+ .option-name {
521
+ margin-bottom: 8px;
522
+ color: #c9d1d9;
523
+ font-size: 0.78rem;
524
+ }
525
+ .option-take p {
526
+ margin: 0;
527
+ color: var(--muted);
528
+ font-size: 0.83rem;
529
+ line-height: 1.52;
530
+ }
531
+ .option-take strong { color: #c9d1d9; }
532
+ .source-mark {
533
+ display: inline-block;
534
+ margin-left: 0.2em;
535
+ color: var(--blue);
536
+ font-size: 0.72rem;
537
+ font-weight: 850;
538
+ text-decoration: none;
539
+ vertical-align: super;
540
+ }
541
+
542
+ .choice-grid {
543
+ display: grid;
544
+ grid-template-columns: repeat(2, minmax(0, 1fr));
545
+ gap: 16px;
546
+ }
547
+ .choice-card {
548
+ position: relative;
549
+ overflow: hidden;
550
+ padding: 26px;
551
+ border: 1px solid var(--border);
552
+ border-radius: var(--radius-lg);
553
+ background: var(--surface);
554
+ }
555
+ .choice-card::before {
556
+ content: "";
557
+ position: absolute;
558
+ inset: 0 auto 0 0;
559
+ width: 3px;
560
+ background: var(--choice-color);
561
+ }
562
+ .tone-cli { --choice-color: var(--yellow); }
563
+ .tone-copilot { --choice-color: var(--purple); }
564
+ .tone-multica { --choice-color: var(--orange); }
565
+ .tone-minions { --choice-color: var(--blue); }
566
+ .choice-label {
567
+ margin-bottom: 8px;
568
+ color: var(--choice-color);
569
+ font-size: 0.72rem;
570
+ font-weight: 900;
571
+ letter-spacing: 0.12em;
572
+ text-transform: uppercase;
573
+ }
574
+ .choice-card h3 {
575
+ margin-bottom: 14px;
576
+ font-size: 1.35rem;
577
+ }
578
+ .choice-card ul {
579
+ margin: 0 0 18px;
580
+ padding-left: 20px;
581
+ color: #c9d1d9;
582
+ }
583
+ .choice-card li + li { margin-top: 7px; }
584
+ .watch-out {
585
+ margin: 0;
586
+ padding-top: 14px;
587
+ border-top: 1px solid var(--border);
588
+ color: var(--muted);
589
+ font-size: 0.88rem;
590
+ }
591
+ .watch-out strong { color: var(--text); }
592
+
593
+ .tradeoff-layout {
594
+ display: grid;
595
+ grid-template-columns: minmax(0, 1.15fr) minmax(300px, 0.85fr);
596
+ gap: 18px;
597
+ }
598
+ .tradeoff-card,
599
+ .decision-rule {
600
+ border: 1px solid var(--border);
601
+ border-radius: var(--radius-lg);
602
+ background: var(--surface);
603
+ }
604
+ .tradeoff-card { padding: 26px; }
605
+ .tradeoff-card h3 { margin-bottom: 18px; }
606
+ .cost-pair {
607
+ display: grid;
608
+ grid-template-columns: 1fr 1fr;
609
+ gap: 12px;
610
+ }
611
+ .cost-pair div {
612
+ padding: 16px;
613
+ border: 1px solid var(--border);
614
+ border-radius: var(--radius-md);
615
+ background: var(--surface-soft);
616
+ }
617
+ .cost-pair strong {
618
+ display: block;
619
+ margin-bottom: 7px;
620
+ }
621
+ .cost-pair p {
622
+ margin: 0;
623
+ color: var(--muted);
624
+ font-size: 0.9rem;
625
+ }
626
+ .decision-rule {
627
+ display: flex;
628
+ flex-direction: column;
629
+ justify-content: center;
630
+ padding: 28px;
631
+ background:
632
+ linear-gradient(145deg, rgba(88, 166, 255, 0.1), transparent 60%),
633
+ var(--surface);
634
+ }
635
+ .decision-rule blockquote {
636
+ margin: 0 0 18px;
637
+ color: var(--text);
638
+ font-size: clamp(1.2rem, 2.4vw, 1.6rem);
639
+ font-weight: 750;
640
+ line-height: 1.35;
641
+ }
642
+ .decision-rule blockquote span { color: var(--blue); }
643
+ .decision-rule p {
644
+ margin: 0;
645
+ color: var(--muted);
646
+ font-size: 0.9rem;
647
+ }
648
+
649
+ .source-grid {
650
+ display: grid;
651
+ grid-template-columns: repeat(2, minmax(0, 1fr));
652
+ gap: 16px;
653
+ }
654
+ .source-group {
655
+ padding: 22px;
656
+ border: 1px solid var(--border);
657
+ border-radius: var(--radius-lg);
658
+ background: var(--surface);
659
+ }
660
+ .source-group h3 {
661
+ margin-bottom: 14px;
662
+ font-size: 1.08rem;
663
+ }
664
+ .source-group ol {
665
+ margin: 0;
666
+ padding-left: 24px;
667
+ }
668
+ .source-group li {
669
+ color: var(--muted);
670
+ font-size: 0.88rem;
671
+ }
672
+ .source-group li + li { margin-top: 10px; }
673
+ .source-group a { overflow-wrap: anywhere; }
674
+ .evidence-boundary {
675
+ margin-top: 18px;
676
+ padding: 18px 20px;
677
+ border: 1px solid rgba(210, 153, 34, 0.35);
678
+ border-radius: var(--radius-md);
679
+ background: rgba(210, 153, 34, 0.07);
680
+ color: #c9d1d9;
681
+ font-size: 0.9rem;
682
+ }
683
+ .evidence-boundary p { margin: 0; }
684
+
685
+ footer {
686
+ display: flex;
687
+ align-items: center;
688
+ justify-content: space-between;
689
+ gap: 24px;
690
+ width: min(1120px, calc(100% - 40px));
691
+ margin: 0 auto;
692
+ padding: 32px 0 44px;
693
+ border-top: 1px solid var(--border);
694
+ color: var(--muted);
695
+ font-size: 0.84rem;
696
+ }
697
+ footer nav {
698
+ display: flex;
699
+ flex-wrap: wrap;
700
+ gap: 14px;
701
+ }
702
+ footer p { margin: 0; }
703
+
704
+ @media (max-width: 980px) {
705
+ .hero {
706
+ grid-template-columns: 1fr;
707
+ min-height: auto;
708
+ padding-top: 70px;
709
+ }
710
+ .coordination-figure { max-width: 660px; }
711
+ .progression-grid {
712
+ grid-template-columns: repeat(2, minmax(0, 1fr));
713
+ }
714
+ .progression-grid::before { display: none; }
715
+ .option-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
716
+ .tradeoff-layout { grid-template-columns: 1fr; }
717
+ }
718
+
719
+ @media (max-width: 680px) {
720
+ .site-nav {
721
+ display: grid;
722
+ grid-template-columns: 1fr;
723
+ gap: 6px;
724
+ padding: 10px 0;
725
+ }
726
+ .nav-links {
727
+ width: 100%;
728
+ flex-wrap: wrap;
729
+ gap: 4px;
730
+ overflow-x: visible;
731
+ }
732
+ .nav-links a { padding: 5px 8px; }
733
+ .section {
734
+ width: min(1120px, calc(100% - 24px));
735
+ padding: 66px 0;
736
+ }
737
+ .hero {
738
+ width: min(1180px, calc(100% - 24px));
739
+ gap: 34px;
740
+ padding: 62px 0;
741
+ }
742
+ .hero h1 { font-size: clamp(3rem, 15vw, 4.5rem); }
743
+ .button-link { width: 100%; }
744
+ .coordination-figure { padding: 19px 15px; }
745
+ .ownership-row {
746
+ grid-template-columns: 1fr;
747
+ gap: 5px;
748
+ }
749
+ .ownership-meter span {
750
+ min-width: max-content;
751
+ font-size: 0.68rem;
752
+ }
753
+ .progression-grid,
754
+ .option-grid,
755
+ .choice-grid,
756
+ .source-grid,
757
+ .cost-pair {
758
+ grid-template-columns: 1fr;
759
+ }
760
+ .progression-step { min-height: 0; }
761
+ .dimension-card { padding: 16px; }
762
+ .dimension-heading {
763
+ grid-template-columns: 1fr;
764
+ gap: 9px;
765
+ }
766
+ .identity-note { grid-template-columns: 1fr; }
767
+ .identity-note a { white-space: normal; }
768
+ .choice-card,
769
+ .tradeoff-card,
770
+ .decision-rule { padding: 22px 20px; }
771
+ footer {
772
+ align-items: flex-start;
773
+ flex-direction: column;
774
+ width: min(1120px, calc(100% - 24px));
775
+ }
776
+ }
777
+
778
+ @media (prefers-reduced-motion: reduce) {
779
+ html { scroll-behavior: auto; }
780
+ *, *::before, *::after {
781
+ animation: none !important;
782
+ transition-duration: 0.01ms !important;
783
+ transition-delay: 0ms !important;
784
+ }
785
+ }
786
+ </style>
787
+ </head>
788
+ <body>
789
+ <a class="skip-link" href="#main-content">Skip to the decision guide</a>
790
+
791
+ <header class="site-header">
792
+ <nav class="site-nav" aria-label="Why Minions explainer">
793
+ <a class="brand" href="../index.html">
794
+ <span class="brand-mark" aria-hidden="true">M</span>
795
+ <span>Why Minions</span>
796
+ </a>
797
+ <div class="nav-links">
798
+ <a href="#progression">Progression</a>
799
+ <a href="#comparison">Compare</a>
800
+ <a href="#choose">Choose</a>
801
+ <a href="#trade-offs">Trade-offs</a>
802
+ <a href="#sources">Sources</a>
803
+ <a class="decision-link" href="../onboarding.md">How it runs</a>
804
+ </div>
805
+ </nav>
806
+ </header>
807
+
808
+ <main id="main-content">
809
+ <section class="hero" aria-labelledby="hero-title">
810
+ <div class="hero-copy">
811
+ <p class="eyebrow">A decision guide, not a leaderboard</p>
812
+ <h1 id="hero-title">Why <span>Minions?</span></h1>
813
+ <p class="hero-lede">
814
+ A coding agent can solve a task. The harder problem begins when the work
815
+ outlives one session: who routes the next task, isolates branches, remembers
816
+ state, reacts to CI, coordinates repositories, and shows a human what needs a decision?
817
+ </p>
818
+ <div class="hero-actions">
819
+ <a class="button-link primary" href="#choose">Find the smallest fit <span aria-hidden="true">&darr;</span></a>
820
+ <a class="button-link" href="#comparison">Compare ten dimensions</a>
821
+ </div>
822
+ <p class="hero-note">
823
+ <span class="verified-dot" aria-hidden="true"></span>
824
+ Claims were checked against current Minions source documentation and official
825
+ GitHub, Anthropic, and Multica material on July 22, 2026.
826
+ </p>
827
+ </div>
828
+
829
+ <figure class="coordination-figure" aria-labelledby="ownership-caption">
830
+ <p class="figure-kicker">How much coordination the system owns</p>
831
+ <div class="ownership-stack" aria-hidden="true">
832
+ <div class="ownership-row cli">
833
+ <span class="ownership-name">Raw CLI</span>
834
+ <div class="ownership-meter"><span>session</span></div>
835
+ </div>
836
+ <div class="ownership-row copilot">
837
+ <span class="ownership-name">Copilot</span>
838
+ <div class="ownership-meter"><span>session + PR</span></div>
839
+ </div>
840
+ <div class="ownership-row multica">
841
+ <span class="ownership-name">Multica</span>
842
+ <div class="ownership-meter"><span>team + task lifecycle</span></div>
843
+ </div>
844
+ <div class="ownership-row minions">
845
+ <span class="ownership-name">Minions</span>
846
+ <div class="ownership-meter"><span>engineering lifecycle</span></div>
847
+ </div>
848
+ </div>
849
+ <figcaption id="ownership-caption">
850
+ <strong>This is not a quality ranking.</strong> More ownership means more
851
+ automation and more operating machinery. Stop at the first model that owns
852
+ the coordination you actually need.
853
+ </figcaption>
854
+ </figure>
855
+ </section>
856
+
857
+ <section class="section" id="progression" aria-labelledby="progression-heading">
858
+ <div class="section-heading">
859
+ <p class="eyebrow">From a session to a system</p>
860
+ <h2 id="progression-heading">The agent is only the first layer.</h2>
861
+ <p>
862
+ Each option moves a different amount of work out of the operator's head.
863
+ The progression is about durable coordination, not model intelligence.
864
+ </p>
865
+ </div>
866
+
867
+ <ol class="progression-grid">
868
+ <li>
869
+ <article class="progression-step cli" data-step="01">
870
+ <h3>Run a coding CLI directly</h3>
871
+ <p>
872
+ <strong>Tight feedback loop.</strong> You pick the repository, prompt,
873
+ permissions, model, and moment-to-moment direction. You also own the
874
+ queue, branch safety, hand-offs, and recovery between sessions.
875
+ </p>
876
+ </article>
877
+ </li>
878
+ <li>
879
+ <article class="progression-step copilot" data-step="02">
880
+ <h3>Delegate a GitHub task</h3>
881
+ <p>
882
+ <strong>Background work becomes a visible GitHub session.</strong>
883
+ Copilot uses an ephemeral development environment, records logs and
884
+ commits, and can produce a branch and pull request for review.
885
+ </p>
886
+ </article>
887
+ </li>
888
+ <li>
889
+ <article class="progression-step multica" data-step="03">
890
+ <h3>Manage agents as a team</h3>
891
+ <p>
892
+ <strong>Issues, agents, squads, runtimes, and Autopilots share a board.</strong>
893
+ Multica adds assignment, progress, reusable skills, and local or cloud
894
+ execution across a broad set of coding CLIs.
895
+ </p>
896
+ </article>
897
+ </li>
898
+ <li>
899
+ <article class="progression-step minions" data-step="04">
900
+ <h3>Operate an engineering loop</h3>
901
+ <p>
902
+ <strong>Work and repository signals become durable control-plane state.</strong>
903
+ Minions continuously discovers, routes, isolates, reviews, repairs,
904
+ verifies, remembers, and recovers across linked projects.
905
+ </p>
906
+ </article>
907
+ </li>
908
+ </ol>
909
+
910
+ <div class="thesis">
911
+ <span class="thesis-mark" aria-hidden="true">!</span>
912
+ <p>
913
+ <strong>The Minions bet:</strong> after agents can write code, leverage comes
914
+ from making the surrounding engineering lifecycle explicit, inspectable,
915
+ and restart-safe.
916
+ </p>
917
+ </div>
918
+ </section>
919
+
920
+ <section class="section" id="comparison" aria-labelledby="comparison-heading">
921
+ <div class="section-heading">
922
+ <p class="eyebrow">Concrete operating differences</p>
923
+ <h2 id="comparison-heading">Compare the coordination layer, not the demo.</h2>
924
+ <p>
925
+ All four options can produce useful code. The difference is what remains
926
+ durable after a run, what reacts without a person watching, and where the
927
+ workflow boundary sits.
928
+ </p>
929
+ </div>
930
+
931
+ <div class="identity-note">
932
+ <strong>Identity check</strong>
933
+ <p>
934
+ This page interprets "MultiCA" as <strong>Multica</strong>, the project at
935
+ <a href="https://github.com/multica-ai/multica">multica-ai/multica</a>,
936
+ whose official description is "the open-source managed agents platform."
937
+ If another product was intended, the Multica column does not apply.
938
+ </p>
939
+ </div>
940
+
941
+ <div class="option-legend" aria-label="Compared operating models">
942
+ <span class="option-key" data-option="cli">Raw coding-agent CLI</span>
943
+ <span class="option-key" data-option="copilot">GitHub Copilot cloud agent</span>
944
+ <span class="option-key" data-option="multica">Multica</span>
945
+ <span class="option-key" data-option="minions">Minions</span>
946
+ </div>
947
+
948
+ <div class="comparison-list">
949
+ <article class="dimension-card">
950
+ <div class="dimension-heading">
951
+ <span class="dimension-number">01</span>
952
+ <div>
953
+ <h3>Task intake and routing</h3>
954
+ <p>Who notices work and decides which specialist should own it?</p>
955
+ </div>
956
+ </div>
957
+ <div class="option-grid">
958
+ <div class="option-take cli">
959
+ <span class="option-name">Raw CLI</span>
960
+ <p>You select a CLI and prompt it. Custom agents and subagents may delegate inside a run, but the cross-session queue and routing policy are yours.</p>
961
+ </div>
962
+ <div class="option-take copilot">
963
+ <span class="option-name">Copilot</span>
964
+ <p>Start sessions from GitHub, IDEs, chat, APIs, or integrations; choose Copilot or a custom agent. Automations can start work on schedules or events.<a class="source-mark" href="#src-copilot-start" aria-label="Copilot source C2">C2</a></p>
965
+ </div>
966
+ <div class="option-take multica">
967
+ <span class="option-name">Multica</span>
968
+ <p>Assign an issue to a named agent or a squad. A squad leader can route work to the right member while the board owns issue status.<a class="source-mark" href="#src-multica-readme" aria-label="Multica source A1">A1</a></p>
969
+ </div>
970
+ <div class="option-take minions">
971
+ <span class="option-name">Minions</span>
972
+ <p>PR signals, project and central work items, plans, and schedules enter one discovery loop. <code>routing.md</code>, priority, dependencies, and availability select the agent.<a class="source-mark" href="#src-minions-discovery" aria-label="Minions source M1">M1</a></p>
973
+ </div>
974
+ </div>
975
+ </article>
976
+
977
+ <article class="dimension-card">
978
+ <div class="dimension-heading">
979
+ <span class="dimension-number">02</span>
980
+ <div>
981
+ <h3>Parallel agents and isolation</h3>
982
+ <p>Can work run concurrently without agents colliding in one checkout?</p>
983
+ </div>
984
+ </div>
985
+ <div class="option-grid">
986
+ <div class="option-take cli">
987
+ <span class="option-name">Raw CLI</span>
988
+ <p>Multiple terminals, subagents, or cloud sandboxes can run in parallel. You still choose the isolation strategy and prevent branch, port, and file collisions.</p>
989
+ </div>
990
+ <div class="option-take copilot">
991
+ <span class="option-name">Copilot</span>
992
+ <p>Each background task runs in an ephemeral GitHub Actions-powered environment. A task is limited to one repository, one branch, one PR, and a 59-minute session.<a class="source-mark" href="#src-copilot-about" aria-label="Copilot source C1">C1</a></p>
993
+ </div>
994
+ <div class="option-take multica">
995
+ <span class="option-name">Multica</span>
996
+ <p>The daemon supports concurrent tasks and creates an isolated workspace directory for each task. Its public guide does not call that directory a Git worktree.<a class="source-mark" href="#src-multica-daemon" aria-label="Multica source A2">A2</a></p>
997
+ </div>
998
+ <div class="option-take minions">
999
+ <span class="option-name">Minions</span>
1000
+ <p>Project dispatches run in engine-owned Git worktrees, bounded by fleet concurrency. SQL live-path guards, branch mutexes, ownership markers, and quarantine protect active work.<a class="source-mark" href="#src-minions-worktrees" aria-label="Minions source M2">M2</a></p>
1001
+ </div>
1002
+ </div>
1003
+ </article>
1004
+
1005
+ <article class="dimension-card">
1006
+ <div class="dimension-heading">
1007
+ <span class="dimension-number">03</span>
1008
+ <div>
1009
+ <h3>Durable state</h3>
1010
+ <p>What remains authoritative when a process, terminal, or machine restarts?</p>
1011
+ </div>
1012
+ </div>
1013
+ <div class="option-grid">
1014
+ <div class="option-take cli">
1015
+ <span class="option-name">Raw CLI</span>
1016
+ <p>Session history, memory, and files vary by CLI. Merely launching a CLI does not create a shared ledger for work items, dependencies, PR state, retries, and schedules.</p>
1017
+ </div>
1018
+ <div class="option-take copilot">
1019
+ <span class="option-name">Copilot</span>
1020
+ <p>GitHub hosts the session log, commits, branch, and PR. That is durable product state, but its storage implementation is managed by GitHub rather than exposed as your local control-plane database.</p>
1021
+ </div>
1022
+ <div class="option-take multica">
1023
+ <span class="option-name">Multica</span>
1024
+ <p>The open-source stack uses a Go backend and PostgreSQL 17 with pgvector for managed issues, users, agents, and platform data; it can be cloud-hosted or self-hosted.<a class="source-mark" href="#src-multica-selfhost" aria-label="Multica source A3">A3</a></p>
1025
+ </div>
1026
+ <div class="option-take minions">
1027
+ <span class="option-name">Minions</span>
1028
+ <p>Local <code>engine/state.db</code> is the sole runtime-state authority. SQLite migrations, transactions, WAL reads, and event emission cover work, dispatch, PR, pipeline, schedule, watch, and memory records.<a class="source-mark" href="#src-minions-state" aria-label="Minions source M3">M3</a></p>
1029
+ </div>
1030
+ </div>
1031
+ </article>
1032
+
1033
+ <article class="dimension-card">
1034
+ <div class="dimension-heading">
1035
+ <span class="dimension-number">04</span>
1036
+ <div>
1037
+ <h3>Schedules, pipelines, and watches</h3>
1038
+ <p>Can time, dependencies, or a state change trigger the next action?</p>
1039
+ </div>
1040
+ </div>
1041
+ <div class="option-grid">
1042
+ <div class="option-take cli">
1043
+ <span class="option-name">Raw CLI</span>
1044
+ <p>Use shell scripts, CI, or CLI-specific scheduling features. They can be powerful, but you define the durable trigger, shared state, dependency hand-off, and failure policy.</p>
1045
+ </div>
1046
+ <div class="option-take copilot">
1047
+ <span class="option-name">Copilot</span>
1048
+ <p>Copilot automations can start sessions on a schedule or event. GitHub Actions can supply broader workflow composition; it is separate from the agent session itself.<a class="source-mark" href="#src-copilot-start" aria-label="Copilot source C2">C2</a></p>
1049
+ </div>
1050
+ <div class="option-take multica">
1051
+ <span class="option-name">Multica</span>
1052
+ <p>Autopilots create and route issues from cron, webhook, or manual triggers. The public overview does not claim dependency-aware pipelines or general state-condition watches.<a class="source-mark" href="#src-multica-readme" aria-label="Multica source A1">A1</a></p>
1053
+ </div>
1054
+ <div class="option-take minions">
1055
+ <span class="option-name">Minions</span>
1056
+ <p><strong>Schedules, pipelines, and watches</strong> are separate primitives: cron creates work, stages pass hand-offs through dependency gates, and persistent conditions fire notifications or follow-up actions.<a class="source-mark" href="#src-minions-watches" aria-label="Minions source M4">M4</a></p>
1057
+ </div>
1058
+ </div>
1059
+ </article>
1060
+
1061
+ <article class="dimension-card">
1062
+ <div class="dimension-heading">
1063
+ <span class="dimension-number">05</span>
1064
+ <div>
1065
+ <h3>PR review and fix loops</h3>
1066
+ <p>Who notices feedback, red CI, or conflicts and closes the loop?</p>
1067
+ </div>
1068
+ </div>
1069
+ <div class="option-grid">
1070
+ <div class="option-take cli">
1071
+ <span class="option-name">Raw CLI</span>
1072
+ <p>You bring the PR, comments, or logs back into a session, ask for a fix, push, and request review again. Scripts can automate this, but it is not implied by direct use.</p>
1073
+ </div>
1074
+ <div class="option-take copilot">
1075
+ <span class="option-name">Copilot</span>
1076
+ <p>Copilot can open a PR and respond when <code>@copilot</code> is asked to make changes. Humans iterate through GitHub; Copilot code review is a related, distinct capability.<a class="source-mark" href="#src-copilot-about" aria-label="Copilot source C1">C1</a></p>
1077
+ </div>
1078
+ <div class="option-take multica">
1079
+ <span class="option-name">Multica</span>
1080
+ <p>Agents can ship code, comment, report blockers, and reuse code-review skills. Public documentation does not establish an automatic provider-polled review &rarr; fix &rarr; re-review or CI-failure loop.</p>
1081
+ </div>
1082
+ <div class="option-take minions">
1083
+ <span class="option-name">Minions</span>
1084
+ <p>GitHub and ADO polling can dispatch review, human-feedback, review-fix, build-fix, conflict-fix, and re-review work. Freshness, deduplication, cooldown, and pause gates constrain the loop.<a class="source-mark" href="#src-minions-pr-loop" aria-label="Minions source M5">M5</a></p>
1085
+ </div>
1086
+ </div>
1087
+ </article>
1088
+
1089
+ <article class="dimension-card">
1090
+ <div class="dimension-heading">
1091
+ <span class="dimension-number">06</span>
1092
+ <div>
1093
+ <h3>Human control and observability</h3>
1094
+ <p>Can a person steer, pause, inspect, and decide without reading process output?</p>
1095
+ </div>
1096
+ </div>
1097
+ <div class="option-grid">
1098
+ <div class="option-take cli">
1099
+ <span class="option-name">Raw CLI</span>
1100
+ <p><strong>Direct synchronous control:</strong> watch every tool call, steer immediately, and grant permissions. Aggregate fleet visibility requires terminals or tooling you assemble.</p>
1101
+ </div>
1102
+ <div class="option-take copilot">
1103
+ <span class="option-name">Copilot</span>
1104
+ <p>Session logs, commits, branch diffs, and the PR make background work reviewable. Repository policies, setup steps, firewall rules, and runner settings shape execution.<a class="source-mark" href="#src-copilot-env" aria-label="Copilot source C3">C3</a></p>
1105
+ </div>
1106
+ <div class="option-take multica">
1107
+ <span class="option-name">Multica</span>
1108
+ <p>Agents have profiles, board presence, comments, statuses, and blockers. WebSocket progress plus runtime and usage surfaces provide a team-oriented operating view.<a class="source-mark" href="#src-multica-readme" aria-label="Multica source A1">A1</a></p>
1109
+ </div>
1110
+ <div class="option-take minions">
1111
+ <span class="option-name">Minions</span>
1112
+ <p>The local dashboard exposes work, plans, agents, PRs, logs, settings, and live output. Plans and merges are human approval gates by default; polling and auto-fix have master pause controls.<a class="source-mark" href="#src-minions-human" aria-label="Minions source M6">M6</a></p>
1113
+ </div>
1114
+ </div>
1115
+ </article>
1116
+
1117
+ <article class="dimension-card">
1118
+ <div class="dimension-heading">
1119
+ <span class="dimension-number">07</span>
1120
+ <div>
1121
+ <h3>Memory and knowledge</h3>
1122
+ <p>Does useful context survive and reach the right future task?</p>
1123
+ </div>
1124
+ </div>
1125
+ <div class="option-grid">
1126
+ <div class="option-take cli">
1127
+ <span class="option-name">Raw CLI</span>
1128
+ <p>Modern CLIs may offer instruction files, auto-memory, skills, hooks, and session history. Scope and sharing follow the selected CLI unless you build a wider knowledge workflow.<a class="source-mark" href="#src-cli-claude" aria-label="Raw CLI source R2">R2</a></p>
1129
+ </div>
1130
+ <div class="option-take copilot">
1131
+ <span class="option-name">Copilot</span>
1132
+ <p>Repository custom instructions, skills, MCP, and Copilot Memory can carry context into future work. Memory availability and scope depend on plan and product surface.<a class="source-mark" href="#src-copilot-about" aria-label="Copilot source C1">C1</a></p>
1133
+ </div>
1134
+ <div class="option-take multica">
1135
+ <span class="option-name">Multica</span>
1136
+ <p>Reusable skills are a first-class promise, and issues preserve team activity. Its public overview does not establish a provenance-scoped team knowledge base with task-ranked retrieval.</p>
1137
+ </div>
1138
+ <div class="option-take minions">
1139
+ <span class="option-name">Minions</span>
1140
+ <p>Markdown inbox, team notes, knowledge, personal files, and pinned context pair with scoped SQLite/FTS5 retrieval. Optional task episodes and untrusted-input fences preserve provenance and boundaries.<a class="source-mark" href="#src-minions-memory" aria-label="Minions source M7">M7</a></p>
1141
+ </div>
1142
+ </div>
1143
+ </article>
1144
+
1145
+ <article class="dimension-card">
1146
+ <div class="dimension-heading">
1147
+ <span class="dimension-number">08</span>
1148
+ <div>
1149
+ <h3>Runtime and model choice</h3>
1150
+ <p>Is the orchestration layer tied to one agent harness?</p>
1151
+ </div>
1152
+ </div>
1153
+ <div class="option-grid">
1154
+ <div class="option-take cli">
1155
+ <span class="option-name">Raw CLI</span>
1156
+ <p><strong>Direct provider choice.</strong> Start whichever CLI and model you want, with its native flags, permissions, MCPs, skills, hooks, and release cadence.</p>
1157
+ </div>
1158
+ <div class="option-take copilot">
1159
+ <span class="option-name">Copilot</span>
1160
+ <p>This column covers Copilot cloud agent itself: GitHub manages the agent environment, and some entry points allow model selection. It is not a wrapper around arbitrary local CLI providers.<a class="source-mark" href="#src-copilot-about" aria-label="Copilot source C1">C1</a></p>
1161
+ </div>
1162
+ <div class="option-take multica">
1163
+ <span class="option-name">Multica</span>
1164
+ <p>The daemon advertises a broad provider list, including Claude Code, Codex, Copilot CLI, OpenCode, Cursor Agent, and others, on local or cloud runtimes.<a class="source-mark" href="#src-multica-daemon" aria-label="Multica source A2">A2</a></p>
1165
+ </div>
1166
+ <div class="option-take minions">
1167
+ <span class="option-name">Minions</span>
1168
+ <p>Select Claude Code, Copilot CLI, or Codex CLI per agent through a versioned adapter contract. The built-in provider set is narrower than Multica's; adding one requires an adapter.<a class="source-mark" href="#src-minions-runtimes" aria-label="Minions source M8">M8</a></p>
1169
+ </div>
1170
+ </div>
1171
+ </article>
1172
+
1173
+ <article class="dimension-card">
1174
+ <div class="dimension-heading">
1175
+ <span class="dimension-number">09</span>
1176
+ <div>
1177
+ <h3>Failure recovery</h3>
1178
+ <p>What happens when an agent, checkout, engine, or dependency fails?</p>
1179
+ </div>
1180
+ </div>
1181
+ <div class="option-grid">
1182
+ <div class="option-take cli">
1183
+ <span class="option-name">Raw CLI</span>
1184
+ <p>You inspect output, resume or restart the session, repair the checkout, and decide whether to retry. Native resume features help, but there is no independent supervisor by default.</p>
1185
+ </div>
1186
+ <div class="option-take copilot">
1187
+ <span class="option-name">Copilot</span>
1188
+ <p>GitHub owns the ephemeral environment and session logs. Setup steps can make runs repeatable; sessions stop at the 59-minute hard limit, after which the task must be narrowed or restarted.<a class="source-mark" href="#src-copilot-about" aria-label="Copilot source C1">C1</a></p>
1189
+ </div>
1190
+ <div class="option-take multica">
1191
+ <span class="option-name">Multica</span>
1192
+ <p>Task lifecycle states, heartbeats, watchdogs, blocker reporting, and task-workspace garbage collection make daemon execution observable and recoverable.<a class="source-mark" href="#src-multica-daemon" aria-label="Multica source A2">A2</a></p>
1193
+ </div>
1194
+ <div class="option-take minions">
1195
+ <span class="option-name">Minions</span>
1196
+ <p>Retries, cooldowns, per-agent reassignment, typed failures, stale-orphan detection, PID reattachment, and guarded worktree quarantine preserve state and avoid success-shaped loss.<a class="source-mark" href="#src-minions-recovery" aria-label="Minions source M9">M9</a></p>
1197
+ </div>
1198
+ </div>
1199
+ </article>
1200
+
1201
+ <article class="dimension-card">
1202
+ <div class="dimension-heading">
1203
+ <span class="dimension-number">10</span>
1204
+ <div>
1205
+ <h3>Multi-project workflows</h3>
1206
+ <p>Can one outcome coordinate changes and verification across repositories?</p>
1207
+ </div>
1208
+ </div>
1209
+ <div class="option-grid">
1210
+ <div class="option-take cli">
1211
+ <span class="option-name">Raw CLI</span>
1212
+ <p>Open multiple repositories or script several sessions. You own dependency order, compatible branches, cross-repo context, separate PRs, and end-to-end verification.</p>
1213
+ </div>
1214
+ <div class="option-take copilot">
1215
+ <span class="option-name">Copilot</span>
1216
+ <p>Official limits say one session can change only its specified GitHub repository. MCP may broaden context, but one run cannot make changes across repositories.<a class="source-mark" href="#src-copilot-about" aria-label="Copilot source C1">C1</a></p>
1217
+ </div>
1218
+ <div class="option-take multica">
1219
+ <span class="option-name">Multica</span>
1220
+ <p>Projects and isolated workspaces organize work across teams. The public overview does not claim one dependency plan that fans implementation and verification into several repositories.</p>
1221
+ </div>
1222
+ <div class="option-take minions">
1223
+ <span class="option-name">Minions</span>
1224
+ <p>A cross-repo plan routes each item to its configured project, exposes cross-repo dependencies as advisory refs, tracks separate PRs, and creates one verify task per touched project.<a class="source-mark" href="#src-minions-crossrepo" aria-label="Minions source M10">M10</a></p>
1225
+ </div>
1226
+ </div>
1227
+ </article>
1228
+ </div>
1229
+ </section>
1230
+
1231
+ <section class="section" id="choose" aria-labelledby="choose-heading">
1232
+ <div class="section-heading">
1233
+ <p class="eyebrow">Choose this when</p>
1234
+ <h2 id="choose-heading">Use the smallest system that removes a real bottleneck.</h2>
1235
+ <p>
1236
+ The cheapest coordination is the coordination you do not need. Each option
1237
+ is the better fit in a recognizable situation.
1238
+ </p>
1239
+ </div>
1240
+
1241
+ <div class="choice-grid">
1242
+ <article class="choice-card tone-cli">
1243
+ <p class="choice-label">Choose raw CLI</p>
1244
+ <h3>You need a sharp tool, not a control plane.</h3>
1245
+ <ul>
1246
+ <li>The task is singular, local, exploratory, or tightly interactive.</li>
1247
+ <li>You want native access to a specific CLI's newest model and controls.</li>
1248
+ <li>You are present to steer, review commands, manage the branch, and recover.</li>
1249
+ </ul>
1250
+ <p class="watch-out"><strong>Better than Minions when:</strong> setup and orchestration would cost more than the task. For one well-scoped change, Minions is probably too much.</p>
1251
+ </article>
1252
+
1253
+ <article class="choice-card tone-copilot">
1254
+ <p class="choice-label">Choose Copilot cloud agent</p>
1255
+ <h3>You want a GitHub-native path from task to reviewable PR.</h3>
1256
+ <ul>
1257
+ <li>Your source is on GitHub and one task fits one repository and one PR.</li>
1258
+ <li>An ephemeral, GitHub-managed environment is an advantage.</li>
1259
+ <li>Your team wants logs, commits, and iteration where review already happens.</li>
1260
+ </ul>
1261
+ <p class="watch-out"><strong>Better than Minions when:</strong> GitHub-native delegation is the whole requirement and you do not want to operate a local engine, dashboard, worktrees, or state database.</p>
1262
+ </article>
1263
+
1264
+ <article class="choice-card tone-multica">
1265
+ <p class="choice-label">Choose Multica</p>
1266
+ <h3>You want an open managed-agent workspace for humans and agents.</h3>
1267
+ <ul>
1268
+ <li>A board, agent profiles, squads, comments, and blockers match your team model.</li>
1269
+ <li>You need a broad set of local and cloud coding-agent runtimes.</li>
1270
+ <li>Autopilots and reusable skills matter more than a Minions-specific PR loop.</li>
1271
+ </ul>
1272
+ <p class="watch-out"><strong>Better than Minions when:</strong> multi-user team operations and provider breadth justify a Next.js, Go, PostgreSQL, and daemon stack. Verify any required PR-loop or cross-repo behavior yourself.</p>
1273
+ </article>
1274
+
1275
+ <article class="choice-card tone-minions">
1276
+ <p class="choice-label">Choose Minions</p>
1277
+ <h3>You need durable engineering orchestration around the agents.</h3>
1278
+ <ul>
1279
+ <li>Several specialized agents must route and run work concurrently.</li>
1280
+ <li>Plans, dependencies, PR feedback, CI failures, schedules, or watches must trigger the next step.</li>
1281
+ <li>Local SQL state, isolated worktrees, cross-repo coordination, and shared knowledge need one lifecycle.</li>
1282
+ </ul>
1283
+ <p class="watch-out"><strong>Cost to accept:</strong> you operate a Node engine and dashboard, configure projects and policies, maintain worktree capacity, and review automation rather than treating the agent as a disposable command.</p>
1284
+ </article>
1285
+ </div>
1286
+ </section>
1287
+
1288
+ <section class="section" id="trade-offs" aria-labelledby="tradeoffs-heading">
1289
+ <div class="section-heading">
1290
+ <p class="eyebrow">Honest trade-offs</p>
1291
+ <h2 id="tradeoffs-heading">Minions moves coordination into software. That is both the value and the cost.</h2>
1292
+ <p>
1293
+ It does not make a weak model strong or remove the need for engineering
1294
+ judgment. It makes the queue, state, isolation, transitions, and evidence
1295
+ explicit enough to operate.
1296
+ </p>
1297
+ </div>
1298
+
1299
+ <div class="tradeoff-layout">
1300
+ <div class="tradeoff-card">
1301
+ <h3>What you gain, and what you now own</h3>
1302
+ <div class="cost-pair">
1303
+ <div>
1304
+ <strong>Gain: continuity</strong>
1305
+ <p>Work items, dependencies, retries, PR state, schedules, watches, and memory survive individual agent processes.</p>
1306
+ </div>
1307
+ <div>
1308
+ <strong>Cost: an engine</strong>
1309
+ <p>A daemon, dashboard, SQLite file, config, linked projects, and operational health become part of your development system.</p>
1310
+ </div>
1311
+ <div>
1312
+ <strong>Gain: parallel safety</strong>
1313
+ <p>Engine-owned worktrees and branch gates let agents work concurrently without sharing the operator checkout.</p>
1314
+ </div>
1315
+ <div>
1316
+ <strong>Cost: workspace capacity</strong>
1317
+ <p>Worktrees consume disk and can hit platform-specific locks; recovery logic reduces risk but does not remove infrastructure limits.</p>
1318
+ </div>
1319
+ <div>
1320
+ <strong>Gain: closed loops</strong>
1321
+ <p>PR review, comments, failing CI, conflicts, and state watches can create the next bounded task automatically.</p>
1322
+ </div>
1323
+ <div>
1324
+ <strong>Cost: policy design</strong>
1325
+ <p>Routing, pause switches, approval gates, retry semantics, and trustworthy completion reports must be configured and monitored.</p>
1326
+ </div>
1327
+ </div>
1328
+ </div>
1329
+
1330
+ <aside class="decision-rule" aria-label="Decision rule">
1331
+ <blockquote>
1332
+ Choose Minions when the recurring problem is no longer
1333
+ <span>"Can an agent write this code?"</span> but
1334
+ "Who coordinates everything around the code?"
1335
+ </blockquote>
1336
+ <p>
1337
+ If a person can comfortably hold the queue, branch state, review loop,
1338
+ and recovery plan in their head, prefer the simpler option.
1339
+ </p>
1340
+ </aside>
1341
+ </div>
1342
+ </section>
1343
+
1344
+ <section class="section" id="sources" aria-labelledby="sources-heading">
1345
+ <div class="section-heading">
1346
+ <p class="eyebrow">References</p>
1347
+ <h2 id="sources-heading">Sources and evidence boundary</h2>
1348
+ <p>
1349
+ Product capabilities change quickly. These links support the concrete claims
1350
+ above; silence in public documentation is labeled as unknown rather than
1351
+ treated as proof that a feature does not exist.
1352
+ </p>
1353
+ </div>
1354
+
1355
+ <div class="source-grid">
1356
+ <div class="source-group">
1357
+ <h3>Minions (current repository documentation)</h3>
1358
+ <ol>
1359
+ <li id="src-minions-discovery"><a href="../auto-discovery.md">M1 - Auto-discovery, routing, schedules, dispatch, and tick lifecycle</a></li>
1360
+ <li id="src-minions-worktrees"><a href="../worktree-lifecycle.md">M2 - Engine-owned worktrees, live guards, pooling, and quarantine</a></li>
1361
+ <li id="src-minions-state"><a href="../design-state-storage.md">M3 - Implemented SQLite state cutover and operations</a></li>
1362
+ <li id="src-minions-watches"><a href="../watches.md">M4 - Persistent watch conditions and follow-up actions</a>; <a href="../plan-lifecycle.md">plan and dependency pipeline</a></li>
1363
+ <li id="src-minions-pr-loop"><a href="../pr-review-fix-loop.md">M5 - Review, feedback, build-fix, conflict-fix, and re-review loop</a></li>
1364
+ <li id="src-minions-human"><a href="../human-vs-automated.md">M6 - Human gates and automated responsibilities</a></li>
1365
+ <li id="src-minions-memory"><a href="../team-memory.md">M7 - Markdown plus SQLite/FTS5 memory, provenance, and fencing</a></li>
1366
+ <li id="src-minions-runtimes"><a href="../runtime-adapters.md">M8 - Claude, Copilot, and Codex adapter contract</a></li>
1367
+ <li id="src-minions-recovery"><a href="../engine-restart.md">M9 - Restart reattachment</a>; <a href="../timeouts-and-liveness.md">timeout and orphan recovery</a></li>
1368
+ <li id="src-minions-crossrepo"><a href="../cross-repo-plans.md">M10 - Cross-repo item routing, advisory dependencies, and verify fan-out</a></li>
1369
+ </ol>
1370
+ </div>
1371
+
1372
+ <div class="source-group">
1373
+ <h3>GitHub Copilot cloud agent</h3>
1374
+ <ol>
1375
+ <li id="src-copilot-about"><a href="https://docs.github.com/en/copilot/concepts/agents/cloud-agent/about-cloud-agent">C1 - Official cloud-agent overview, customization, costs, and limits</a></li>
1376
+ <li id="src-copilot-start"><a href="https://docs.github.com/en/copilot/how-tos/use-copilot-agents/cloud-agent/start-copilot-sessions">C2 - Official session entry points and automations</a></li>
1377
+ <li id="src-copilot-env"><a href="https://docs.github.com/en/copilot/how-tos/copilot-on-github/customize-copilot/customize-cloud-agent/customize-the-agent-environment">C3 - Ephemeral environment, setup steps, and runners</a></li>
1378
+ </ol>
1379
+ </div>
1380
+
1381
+ <div class="source-group">
1382
+ <h3>Multica</h3>
1383
+ <ol>
1384
+ <li id="src-multica-readme"><a href="https://github.com/multica-ai/multica">A1 - Official repository overview: agents, squads, Autopilots, skills, runtimes, workspaces</a></li>
1385
+ <li id="src-multica-daemon"><a href="https://github.com/multica-ai/multica/blob/main/CLI_AND_DAEMON.md">A2 - Official CLI and daemon guide: task isolation, concurrency, heartbeats, watchdogs, and GC</a></li>
1386
+ <li id="src-multica-selfhost"><a href="https://github.com/multica-ai/multica/blob/main/SELF_HOSTING.md">A3 - Official self-hosting architecture: Next.js, Go, PostgreSQL 17 with pgvector, and local daemon</a></li>
1387
+ </ol>
1388
+ </div>
1389
+
1390
+ <div class="source-group">
1391
+ <h3>Direct CLI examples</h3>
1392
+ <ol>
1393
+ <li id="src-cli-copilot"><a href="https://docs.github.com/en/copilot/concepts/agents/copilot-cli/about-copilot-cli">R1 - GitHub Copilot CLI: interactive and programmatic use, sandboxes, customization, and memory</a></li>
1394
+ <li id="src-cli-claude"><a href="https://code.claude.com/docs/en/overview">R2 - Claude Code: terminal workflow, memory, skills, subagents, background agents, and schedules</a></li>
1395
+ </ol>
1396
+ </div>
1397
+ </div>
1398
+
1399
+ <div class="evidence-boundary">
1400
+ <p>
1401
+ <strong>Scope note:</strong> "Raw CLI" is an operating mode, not a single
1402
+ product, so its cells deliberately say "varies by CLI." The Copilot column
1403
+ covers GitHub Copilot cloud agent, not every GitHub or third-party agent
1404
+ feature. The Multica column uses only claims in its official public repository.
1405
+ Minions claims describe the checked-out source at the date above.
1406
+ </p>
1407
+ </div>
1408
+ </section>
1409
+ </main>
1410
+
1411
+ <footer>
1412
+ <nav aria-label="Footer">
1413
+ <a href="../index.html">Minions overview</a>
1414
+ <a href="../onboarding.md">Onboarding</a>
1415
+ <a href="memory-system.html">Memory explainer</a>
1416
+ <a href="#sources">Evidence</a>
1417
+ </nav>
1418
+ <p>Standalone HTML. No build, script, font, image, or network dependency.</p>
1419
+ </footer>
1420
+ </body>
1421
+ </html>