agent-conveyor 0.1.6 → 0.1.8
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.
- package/README.md +69 -19
- package/dist/cli/typescript-runtime.js +240 -38
- package/dist/cli/typescript-runtime.js.map +1 -1
- package/dist/runtime/codex-session.d.ts +6 -0
- package/dist/runtime/codex-session.js +27 -5
- package/dist/runtime/codex-session.js.map +1 -1
- package/dist/runtime/notifications.js +102 -1
- package/dist/runtime/notifications.js.map +1 -1
- package/dist/state/database.js +162 -24
- package/dist/state/database.js.map +1 -1
- package/dist/state/schema-v23.js +4 -2
- package/dist/state/schema-v23.js.map +1 -1
- package/dist/state/sqlite-contract.d.ts +1 -1
- package/dist/state/sqlite-contract.js +1 -1
- package/docs/landing-page.html +393 -40
- package/docs/manager-recipes.md +89 -0
- package/docs/typescript-migration/cli-contract.md +11 -14
- package/docs/typescript-migration/package-install-contract.md +1 -1
- package/docs/typescript-migration/qa-gate-matrix.md +7 -13
- package/docs/typescript-migration/sqlite-state-contract.md +2 -3
- package/docs/typescript-migration/t005-runtime-parity.md +12 -12
- package/package.json +1 -1
- package/skills/manage-codex-workers/SKILL.md +71 -16
package/docs/landing-page.html
CHANGED
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
--ink: #17202a;
|
|
15
15
|
--muted: #607080;
|
|
16
16
|
--line: #d7dde4;
|
|
17
|
-
--page: #
|
|
18
|
-
--surface: #
|
|
17
|
+
--page: #f6f8fb;
|
|
18
|
+
--surface: #ffffff;
|
|
19
19
|
--coal: #24313d;
|
|
20
20
|
--green: #257a61;
|
|
21
21
|
--blue: #2b68a8;
|
|
@@ -46,11 +46,11 @@
|
|
|
46
46
|
.topbar {
|
|
47
47
|
align-items: center;
|
|
48
48
|
display: flex;
|
|
49
|
-
gap:
|
|
49
|
+
gap: 18px;
|
|
50
50
|
justify-content: space-between;
|
|
51
51
|
margin: 0 auto;
|
|
52
52
|
max-width: 1180px;
|
|
53
|
-
padding:
|
|
53
|
+
padding: 14px 24px;
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
.brand {
|
|
@@ -58,6 +58,7 @@
|
|
|
58
58
|
display: flex;
|
|
59
59
|
font-weight: 800;
|
|
60
60
|
gap: 10px;
|
|
61
|
+
white-space: nowrap;
|
|
61
62
|
}
|
|
62
63
|
|
|
63
64
|
.brand-mark {
|
|
@@ -73,14 +74,16 @@
|
|
|
73
74
|
nav {
|
|
74
75
|
display: flex;
|
|
75
76
|
flex-wrap: wrap;
|
|
76
|
-
gap:
|
|
77
|
+
gap: 14px;
|
|
77
78
|
justify-content: flex-end;
|
|
78
79
|
}
|
|
79
80
|
|
|
80
81
|
nav a {
|
|
81
82
|
color: var(--muted);
|
|
82
|
-
font-size:
|
|
83
|
+
font-size: 13px;
|
|
84
|
+
font-weight: 700;
|
|
83
85
|
text-decoration: none;
|
|
86
|
+
white-space: nowrap;
|
|
84
87
|
}
|
|
85
88
|
|
|
86
89
|
nav a:hover {
|
|
@@ -89,7 +92,7 @@
|
|
|
89
92
|
|
|
90
93
|
.hero {
|
|
91
94
|
border-top: 1px solid rgba(36, 49, 61, 0.1);
|
|
92
|
-
min-height: min(
|
|
95
|
+
min-height: min(700px, 88vh);
|
|
93
96
|
overflow: hidden;
|
|
94
97
|
position: relative;
|
|
95
98
|
}
|
|
@@ -106,12 +109,12 @@
|
|
|
106
109
|
|
|
107
110
|
.hero-inner {
|
|
108
111
|
display: grid;
|
|
109
|
-
gap:
|
|
112
|
+
gap: 46px;
|
|
110
113
|
grid-template-columns: minmax(0, 0.95fr) minmax(430px, 1.05fr);
|
|
111
114
|
margin: 0 auto;
|
|
112
115
|
max-width: 1180px;
|
|
113
|
-
min-height: min(
|
|
114
|
-
padding:
|
|
116
|
+
min-height: min(600px, 76vh);
|
|
117
|
+
padding: 46px 24px 34px;
|
|
115
118
|
position: relative;
|
|
116
119
|
}
|
|
117
120
|
|
|
@@ -125,7 +128,7 @@
|
|
|
125
128
|
}
|
|
126
129
|
|
|
127
130
|
h1 {
|
|
128
|
-
font-size: clamp(44px,
|
|
131
|
+
font-size: clamp(44px, 5.8vw, 76px);
|
|
129
132
|
line-height: 0.95;
|
|
130
133
|
letter-spacing: 0;
|
|
131
134
|
margin: 0;
|
|
@@ -134,16 +137,57 @@
|
|
|
134
137
|
|
|
135
138
|
.hero-copy {
|
|
136
139
|
color: #354758;
|
|
137
|
-
font-size:
|
|
138
|
-
margin:
|
|
140
|
+
font-size: 18px;
|
|
141
|
+
margin: 20px 0 0;
|
|
142
|
+
max-width: 650px;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
.hero-summary {
|
|
146
|
+
color: #425467;
|
|
147
|
+
font-size: 15px;
|
|
148
|
+
font-weight: 700;
|
|
149
|
+
margin: 16px 0 0;
|
|
150
|
+
max-width: 640px;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
.hero-proof {
|
|
154
|
+
display: grid;
|
|
155
|
+
gap: 12px;
|
|
156
|
+
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
157
|
+
margin-top: 20px;
|
|
139
158
|
max-width: 650px;
|
|
140
159
|
}
|
|
141
160
|
|
|
161
|
+
.hero-proof span {
|
|
162
|
+
background: rgba(255, 255, 255, 0.68);
|
|
163
|
+
border-left: 4px solid var(--green);
|
|
164
|
+
color: #354758;
|
|
165
|
+
display: block;
|
|
166
|
+
font-size: 13px;
|
|
167
|
+
min-height: 76px;
|
|
168
|
+
padding: 12px;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
.hero-proof strong {
|
|
172
|
+
color: var(--ink);
|
|
173
|
+
display: block;
|
|
174
|
+
font-size: 14px;
|
|
175
|
+
margin-bottom: 4px;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
.hero-proof span:nth-child(2) {
|
|
179
|
+
border-color: var(--blue);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
.hero-proof span:nth-child(3) {
|
|
183
|
+
border-color: var(--gold);
|
|
184
|
+
}
|
|
185
|
+
|
|
142
186
|
.actions {
|
|
143
187
|
display: flex;
|
|
144
188
|
flex-wrap: wrap;
|
|
145
189
|
gap: 12px;
|
|
146
|
-
margin-top:
|
|
190
|
+
margin-top: 26px;
|
|
147
191
|
}
|
|
148
192
|
|
|
149
193
|
.button {
|
|
@@ -174,17 +218,49 @@
|
|
|
174
218
|
color: #edf7f2;
|
|
175
219
|
display: grid;
|
|
176
220
|
font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
|
|
177
|
-
font-size:
|
|
221
|
+
font-size: 13px;
|
|
178
222
|
gap: 9px;
|
|
179
|
-
margin-top:
|
|
223
|
+
margin-top: 22px;
|
|
180
224
|
max-width: 650px;
|
|
181
225
|
padding: 18px;
|
|
182
226
|
}
|
|
183
227
|
|
|
228
|
+
.command code {
|
|
229
|
+
overflow-wrap: anywhere;
|
|
230
|
+
}
|
|
231
|
+
|
|
184
232
|
.command span {
|
|
185
233
|
color: #91d9bd;
|
|
186
234
|
}
|
|
187
235
|
|
|
236
|
+
.transcript {
|
|
237
|
+
background: var(--surface);
|
|
238
|
+
border: 1px solid var(--line);
|
|
239
|
+
border-radius: 8px;
|
|
240
|
+
display: grid;
|
|
241
|
+
gap: 10px;
|
|
242
|
+
margin-top: 16px;
|
|
243
|
+
padding: 16px;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
.transcript-row {
|
|
247
|
+
display: grid;
|
|
248
|
+
gap: 12px;
|
|
249
|
+
grid-template-columns: 86px minmax(0, 1fr);
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
.transcript-row strong {
|
|
253
|
+
color: var(--green);
|
|
254
|
+
font-size: 12px;
|
|
255
|
+
text-transform: uppercase;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
.transcript-row p {
|
|
259
|
+
color: #425467;
|
|
260
|
+
font-size: 14px;
|
|
261
|
+
margin: 0;
|
|
262
|
+
}
|
|
263
|
+
|
|
188
264
|
.flow-stage {
|
|
189
265
|
align-self: center;
|
|
190
266
|
background: rgba(255, 253, 248, 0.74);
|
|
@@ -208,6 +284,7 @@
|
|
|
208
284
|
border: 1px solid var(--line);
|
|
209
285
|
border-radius: 8px;
|
|
210
286
|
min-height: 130px;
|
|
287
|
+
min-width: 0;
|
|
211
288
|
padding: 16px;
|
|
212
289
|
}
|
|
213
290
|
|
|
@@ -266,6 +343,10 @@
|
|
|
266
343
|
padding: 64px 24px;
|
|
267
344
|
}
|
|
268
345
|
|
|
346
|
+
#recipes .section-inner {
|
|
347
|
+
padding-top: 28px;
|
|
348
|
+
}
|
|
349
|
+
|
|
269
350
|
h2 {
|
|
270
351
|
font-size: clamp(30px, 4vw, 52px);
|
|
271
352
|
letter-spacing: 0;
|
|
@@ -287,6 +368,38 @@
|
|
|
287
368
|
grid-template-columns: repeat(5, minmax(0, 1fr));
|
|
288
369
|
}
|
|
289
370
|
|
|
371
|
+
.mode-guide {
|
|
372
|
+
display: grid;
|
|
373
|
+
gap: 12px;
|
|
374
|
+
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
375
|
+
margin: -12px 0 22px;
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
.mode-guide a {
|
|
379
|
+
background: rgba(255, 255, 255, 0.72);
|
|
380
|
+
border: 1px solid var(--line);
|
|
381
|
+
border-radius: 8px;
|
|
382
|
+
display: grid;
|
|
383
|
+
gap: 6px;
|
|
384
|
+
min-height: 104px;
|
|
385
|
+
padding: 14px;
|
|
386
|
+
text-decoration: none;
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
.mode-guide a:hover {
|
|
390
|
+
border-color: var(--blue);
|
|
391
|
+
box-shadow: 0 10px 28px rgba(23, 32, 42, 0.08);
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
.mode-guide strong {
|
|
395
|
+
font-size: 15px;
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
.mode-guide span {
|
|
399
|
+
color: var(--muted);
|
|
400
|
+
font-size: 13px;
|
|
401
|
+
}
|
|
402
|
+
|
|
290
403
|
.recipe {
|
|
291
404
|
background: var(--surface);
|
|
292
405
|
border: 1px solid var(--line);
|
|
@@ -309,6 +422,12 @@
|
|
|
309
422
|
margin: 0;
|
|
310
423
|
}
|
|
311
424
|
|
|
425
|
+
.recipe .use-case {
|
|
426
|
+
color: var(--ink);
|
|
427
|
+
font-size: 13px;
|
|
428
|
+
font-weight: 800;
|
|
429
|
+
}
|
|
430
|
+
|
|
312
431
|
.tag-row {
|
|
313
432
|
align-content: flex-start;
|
|
314
433
|
align-items: flex-start;
|
|
@@ -359,6 +478,11 @@
|
|
|
359
478
|
grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
|
|
360
479
|
}
|
|
361
480
|
|
|
481
|
+
.split h2 {
|
|
482
|
+
font-size: clamp(30px, 3.2vw, 44px);
|
|
483
|
+
max-width: 640px;
|
|
484
|
+
}
|
|
485
|
+
|
|
362
486
|
.timeline {
|
|
363
487
|
display: grid;
|
|
364
488
|
gap: 12px;
|
|
@@ -399,7 +523,29 @@
|
|
|
399
523
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
400
524
|
}
|
|
401
525
|
|
|
402
|
-
.
|
|
526
|
+
.diagnostic-strip {
|
|
527
|
+
background: #edf7f2;
|
|
528
|
+
border: 1px solid rgba(37, 122, 97, 0.22);
|
|
529
|
+
border-radius: 8px;
|
|
530
|
+
display: grid;
|
|
531
|
+
gap: 12px;
|
|
532
|
+
grid-template-columns: minmax(0, 0.7fr) minmax(0, 1fr);
|
|
533
|
+
margin-top: 14px;
|
|
534
|
+
padding: 16px;
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
.diagnostic-strip strong {
|
|
538
|
+
display: block;
|
|
539
|
+
margin-bottom: 4px;
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
.diagnostic-strip p {
|
|
543
|
+
color: #425467;
|
|
544
|
+
margin: 0;
|
|
545
|
+
}
|
|
546
|
+
|
|
547
|
+
.db-item,
|
|
548
|
+
.proof-card {
|
|
403
549
|
background: var(--surface);
|
|
404
550
|
border: 1px solid var(--line);
|
|
405
551
|
border-radius: 8px;
|
|
@@ -407,17 +553,62 @@
|
|
|
407
553
|
padding: 16px;
|
|
408
554
|
}
|
|
409
555
|
|
|
410
|
-
.db-item strong
|
|
556
|
+
.db-item strong,
|
|
557
|
+
.proof-card strong {
|
|
411
558
|
display: block;
|
|
412
559
|
margin-bottom: 6px;
|
|
413
560
|
}
|
|
414
561
|
|
|
415
|
-
.db-item p
|
|
562
|
+
.db-item p,
|
|
563
|
+
.proof-card p {
|
|
416
564
|
color: var(--muted);
|
|
417
565
|
font-size: 14px;
|
|
418
566
|
margin: 0;
|
|
419
567
|
}
|
|
420
568
|
|
|
569
|
+
.proof-grid {
|
|
570
|
+
display: grid;
|
|
571
|
+
gap: 12px;
|
|
572
|
+
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
573
|
+
}
|
|
574
|
+
|
|
575
|
+
.proof-card {
|
|
576
|
+
min-height: 146px;
|
|
577
|
+
}
|
|
578
|
+
|
|
579
|
+
.proof-card code {
|
|
580
|
+
color: var(--green);
|
|
581
|
+
display: block;
|
|
582
|
+
font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
|
|
583
|
+
font-size: 12px;
|
|
584
|
+
margin-bottom: 8px;
|
|
585
|
+
}
|
|
586
|
+
|
|
587
|
+
.release-band {
|
|
588
|
+
background: #eaf1f7;
|
|
589
|
+
}
|
|
590
|
+
|
|
591
|
+
.release-grid {
|
|
592
|
+
align-items: start;
|
|
593
|
+
display: grid;
|
|
594
|
+
gap: 18px;
|
|
595
|
+
grid-template-columns: minmax(0, 1fr) minmax(360px, 0.78fr);
|
|
596
|
+
}
|
|
597
|
+
|
|
598
|
+
.release-list {
|
|
599
|
+
display: grid;
|
|
600
|
+
gap: 10px;
|
|
601
|
+
margin: 0;
|
|
602
|
+
padding: 0;
|
|
603
|
+
}
|
|
604
|
+
|
|
605
|
+
.release-list li {
|
|
606
|
+
background: rgba(255, 255, 255, 0.74);
|
|
607
|
+
border-left: 4px solid var(--blue);
|
|
608
|
+
list-style: none;
|
|
609
|
+
padding: 12px 14px;
|
|
610
|
+
}
|
|
611
|
+
|
|
421
612
|
.closing {
|
|
422
613
|
background: var(--coal);
|
|
423
614
|
color: white;
|
|
@@ -448,20 +639,94 @@
|
|
|
448
639
|
}
|
|
449
640
|
|
|
450
641
|
.recipes,
|
|
642
|
+
.mode-guide,
|
|
643
|
+
.proof-grid,
|
|
451
644
|
.db-grid {
|
|
452
645
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
453
646
|
}
|
|
647
|
+
|
|
648
|
+
.release-grid {
|
|
649
|
+
grid-template-columns: 1fr;
|
|
650
|
+
}
|
|
651
|
+
|
|
652
|
+
.diagnostic-strip {
|
|
653
|
+
grid-template-columns: 1fr;
|
|
654
|
+
}
|
|
454
655
|
}
|
|
455
656
|
|
|
456
657
|
@media (max-width: 640px) {
|
|
457
658
|
.topbar {
|
|
458
659
|
align-items: flex-start;
|
|
459
660
|
flex-direction: column;
|
|
661
|
+
gap: 10px;
|
|
662
|
+
padding: 10px 18px;
|
|
663
|
+
}
|
|
664
|
+
|
|
665
|
+
.brand {
|
|
666
|
+
font-size: 14px;
|
|
667
|
+
}
|
|
668
|
+
|
|
669
|
+
.brand-mark {
|
|
670
|
+
height: 18px;
|
|
671
|
+
width: 26px;
|
|
672
|
+
}
|
|
673
|
+
|
|
674
|
+
nav {
|
|
675
|
+
gap: 10px;
|
|
676
|
+
flex-wrap: nowrap;
|
|
677
|
+
justify-content: flex-start;
|
|
678
|
+
overflow-x: auto;
|
|
679
|
+
padding-bottom: 2px;
|
|
680
|
+
width: 100%;
|
|
681
|
+
}
|
|
682
|
+
|
|
683
|
+
nav a {
|
|
684
|
+
font-size: 12px;
|
|
460
685
|
}
|
|
461
686
|
|
|
462
687
|
.hero-inner {
|
|
463
|
-
gap:
|
|
464
|
-
|
|
688
|
+
gap: 20px;
|
|
689
|
+
min-height: auto;
|
|
690
|
+
padding: 30px 24px 30px;
|
|
691
|
+
}
|
|
692
|
+
|
|
693
|
+
.eyebrow {
|
|
694
|
+
font-size: 11px;
|
|
695
|
+
margin-bottom: 10px;
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
.hero-copy {
|
|
699
|
+
font-size: 16px;
|
|
700
|
+
margin-top: 16px;
|
|
701
|
+
}
|
|
702
|
+
|
|
703
|
+
.hero-summary {
|
|
704
|
+
font-size: 13px;
|
|
705
|
+
margin-top: 12px;
|
|
706
|
+
}
|
|
707
|
+
|
|
708
|
+
.hero-proof {
|
|
709
|
+
gap: 8px;
|
|
710
|
+
margin-top: 16px;
|
|
711
|
+
}
|
|
712
|
+
|
|
713
|
+
.hero-proof span {
|
|
714
|
+
min-height: 0;
|
|
715
|
+
padding: 10px 12px;
|
|
716
|
+
}
|
|
717
|
+
|
|
718
|
+
.actions {
|
|
719
|
+
margin-top: 20px;
|
|
720
|
+
}
|
|
721
|
+
|
|
722
|
+
.hero .command {
|
|
723
|
+
font-size: 12px;
|
|
724
|
+
margin-top: 16px;
|
|
725
|
+
padding: 14px;
|
|
726
|
+
}
|
|
727
|
+
|
|
728
|
+
.hero .command code:nth-child(n + 2) {
|
|
729
|
+
display: none;
|
|
465
730
|
}
|
|
466
731
|
|
|
467
732
|
.flow-stage {
|
|
@@ -469,18 +734,7 @@
|
|
|
469
734
|
}
|
|
470
735
|
|
|
471
736
|
.mobile-flow-strip {
|
|
472
|
-
|
|
473
|
-
background: rgba(255, 253, 248, 0.78);
|
|
474
|
-
border: 1px solid rgba(36, 49, 61, 0.16);
|
|
475
|
-
border-radius: 8px;
|
|
476
|
-
box-shadow: 0 12px 32px rgba(23, 32, 42, 0.12);
|
|
477
|
-
display: grid;
|
|
478
|
-
gap: 8px;
|
|
479
|
-
grid-template-columns: 1fr 18px 1fr 18px 1fr;
|
|
480
|
-
margin-top: 18px;
|
|
481
|
-
min-height: 64px;
|
|
482
|
-
padding: 12px;
|
|
483
|
-
text-align: center;
|
|
737
|
+
display: none;
|
|
484
738
|
}
|
|
485
739
|
|
|
486
740
|
.mobile-flow-strip span {
|
|
@@ -494,6 +748,9 @@
|
|
|
494
748
|
}
|
|
495
749
|
|
|
496
750
|
.recipes,
|
|
751
|
+
.hero-proof,
|
|
752
|
+
.mode-guide,
|
|
753
|
+
.proof-grid,
|
|
497
754
|
.db-grid {
|
|
498
755
|
grid-template-columns: 1fr;
|
|
499
756
|
}
|
|
@@ -501,6 +758,10 @@
|
|
|
501
758
|
h1 {
|
|
502
759
|
font-size: 44px;
|
|
503
760
|
}
|
|
761
|
+
|
|
762
|
+
#recipes .section-inner {
|
|
763
|
+
padding-top: 16px;
|
|
764
|
+
}
|
|
504
765
|
}
|
|
505
766
|
</style>
|
|
506
767
|
</head>
|
|
@@ -511,7 +772,8 @@
|
|
|
511
772
|
<a href="#recipes">Recipes</a>
|
|
512
773
|
<a href="#flow">Manager Flow</a>
|
|
513
774
|
<a href="#database">Audit Trail</a>
|
|
514
|
-
<a href="
|
|
775
|
+
<a href="#release">Release</a>
|
|
776
|
+
<a href="https://github.com/neonwatty/agent-conveyor#readme">README</a>
|
|
515
777
|
</nav>
|
|
516
778
|
</header>
|
|
517
779
|
|
|
@@ -522,13 +784,22 @@
|
|
|
522
784
|
<p class="eyebrow">Local Codex manager / worker control plane</p>
|
|
523
785
|
<h1>Agent Conveyor</h1>
|
|
524
786
|
<p class="hero-copy">
|
|
525
|
-
Turn broad Codex work into repeatable manager recipes:
|
|
526
|
-
|
|
527
|
-
|
|
787
|
+
Turn broad Codex work into repeatable manager recipes: pick a
|
|
788
|
+
mode, launch one supervised worker, and require receipts before
|
|
789
|
+
the manager continues, compacts, merges, or stops.
|
|
790
|
+
</p>
|
|
791
|
+
<p class="hero-summary">
|
|
792
|
+
Built for long-running GoalBuddy boards, screenshot-driven UX
|
|
793
|
+
polish, coverage loops, and PR/CI merge supervision.
|
|
528
794
|
</p>
|
|
795
|
+
<div class="hero-proof" aria-label="Agent Conveyor outcomes">
|
|
796
|
+
<span><strong>Choose a recipe</strong>Modes, tools, permissions, and cleanup rules are locked before work starts.</span>
|
|
797
|
+
<span><strong>Route the worker</strong>Dispatch sends handoffs, records attempts, and blocks unsafe continuations.</span>
|
|
798
|
+
<span><strong>Close with proof</strong>SQLite receipts make tests, screenshots, CI, and blockers replayable.</span>
|
|
799
|
+
</div>
|
|
529
800
|
<div class="actions">
|
|
530
801
|
<a class="button primary" href="#recipes">Explore recipes</a>
|
|
531
|
-
<a class="button secondary" href="manager-recipes.md">Read the docs</a>
|
|
802
|
+
<a class="button secondary" href="https://github.com/neonwatty/agent-conveyor/blob/main/docs/manager-recipes.md">Read the docs</a>
|
|
532
803
|
</div>
|
|
533
804
|
<div class="command" aria-label="Install and recipe preview commands">
|
|
534
805
|
<code>npm install -g agent-conveyor</code>
|
|
@@ -579,9 +850,24 @@
|
|
|
579
850
|
starts it resolves to a named recipe or explicit custom mode. Each
|
|
580
851
|
recipe has settings, permissions, evidence gates, and cleanup rules.
|
|
581
852
|
</p>
|
|
853
|
+
<div class="mode-guide" aria-label="Choose a starting recipe">
|
|
854
|
+
<a href="https://github.com/neonwatty/agent-conveyor/blob/main/docs/manager-recipes.md#goalbuddy-conveyor">
|
|
855
|
+
<strong>Need overnight progress?</strong>
|
|
856
|
+
<span>Start with GoalBuddy Conveyor and one active board at a time.</span>
|
|
857
|
+
</a>
|
|
858
|
+
<a href="https://github.com/neonwatty/agent-conveyor/blob/main/docs/manager-recipes.md#ux-polish-loop">
|
|
859
|
+
<strong>Need visible quality?</strong>
|
|
860
|
+
<span>Use UX Polish when screenshots should decide the next pass.</span>
|
|
861
|
+
</a>
|
|
862
|
+
<a href="https://github.com/neonwatty/agent-conveyor/blob/main/docs/manager-recipes.md#prcimerge-ralph-loop">
|
|
863
|
+
<strong>Need a green merge?</strong>
|
|
864
|
+
<span>Use the PR/CI loop for review, CI monitoring, and merge receipts.</span>
|
|
865
|
+
</a>
|
|
866
|
+
</div>
|
|
582
867
|
<div class="recipes">
|
|
583
868
|
<article class="recipe accent-green">
|
|
584
869
|
<h3>GoalBuddy Conveyor</h3>
|
|
870
|
+
<p class="use-case">Use when the work is bigger than one safe worker turn.</p>
|
|
585
871
|
<p>Runs broad work as sequential child boards with one active child at a time.</p>
|
|
586
872
|
<div class="tag-row">
|
|
587
873
|
<span class="tag">strict</span>
|
|
@@ -591,6 +877,7 @@
|
|
|
591
877
|
</article>
|
|
592
878
|
<article class="recipe accent-blue">
|
|
593
879
|
<h3>Test Coverage Loop</h3>
|
|
880
|
+
<p class="use-case">Use when confidence is the blocker.</p>
|
|
594
881
|
<p>Improves or proves test confidence before another worker pass can begin.</p>
|
|
595
882
|
<div class="tag-row">
|
|
596
883
|
<span class="tag">strict</span>
|
|
@@ -600,6 +887,7 @@
|
|
|
600
887
|
</article>
|
|
601
888
|
<article class="recipe accent-gold">
|
|
602
889
|
<h3>UX Polish Loop</h3>
|
|
890
|
+
<p class="use-case">Use when screenshots should drive the next fix.</p>
|
|
603
891
|
<p>Iterates visible quality using screenshots, browser evidence, and visual diffs.</p>
|
|
604
892
|
<div class="tag-row">
|
|
605
893
|
<span class="tag">guided</span>
|
|
@@ -609,6 +897,7 @@
|
|
|
609
897
|
</article>
|
|
610
898
|
<article class="recipe accent-rose">
|
|
611
899
|
<h3>Nudge / What's Next</h3>
|
|
900
|
+
<p class="use-case">Use when direction is fuzzy and risk should stay low.</p>
|
|
612
901
|
<p>Observes, negotiates criteria, and asks focused next-step questions without taking over.</p>
|
|
613
902
|
<div class="tag-row">
|
|
614
903
|
<span class="tag">guided</span>
|
|
@@ -618,6 +907,7 @@
|
|
|
618
907
|
</article>
|
|
619
908
|
<article class="recipe accent-violet">
|
|
620
909
|
<h3>PR / CI / Merge Ralph Loop</h3>
|
|
910
|
+
<p class="use-case">Use when the manager should drive review to green merge.</p>
|
|
621
911
|
<p>Drives PR readiness, CI monitoring, green merge, handoff, and fresh-worker replay.</p>
|
|
622
912
|
<div class="tag-row">
|
|
623
913
|
<span class="tag">strict</span>
|
|
@@ -639,9 +929,16 @@
|
|
|
639
929
|
</p>
|
|
640
930
|
<div class="command">
|
|
641
931
|
<code><span>conveyor</span> manager-config "$TASK" --recipe goalbuddy-conveyor --mode strict</code>
|
|
932
|
+
<code><span>conveyor</span> pair --task dogfood-goalbuddy --manager-recipe goalbuddy-conveyor --path /tmp/agent-conveyor-dogfood/workerctl.db</code>
|
|
642
933
|
<code><span>conveyor</span> cycle "$TASK"</code>
|
|
643
934
|
<code><span>conveyor</span> replay "$TASK"</code>
|
|
644
935
|
</div>
|
|
936
|
+
<div class="transcript" aria-label="Example manager dispatcher worker transcript">
|
|
937
|
+
<div class="transcript-row"><strong>Manager</strong><p>Start `ux-polish-loop`; require screenshot proof before another worker pass.</p></div>
|
|
938
|
+
<div class="transcript-row"><strong>Dispatch</strong><p>Routes the task, records the command attempt, and waits for worker receipts.</p></div>
|
|
939
|
+
<div class="transcript-row"><strong>Worker</strong><p>Returns screenshot paths, changed files, tests run, and the next blocker if one remains.</p></div>
|
|
940
|
+
<div class="transcript-row"><strong>Manager</strong><p>Accepts proof, asks for one more pass, or closes the loop with replayable evidence.</p></div>
|
|
941
|
+
</div>
|
|
645
942
|
</div>
|
|
646
943
|
<div class="timeline">
|
|
647
944
|
<div class="step">
|
|
@@ -660,6 +957,27 @@
|
|
|
660
957
|
<span class="step-number">4</span>
|
|
661
958
|
<div><strong>Finish with proof</strong><p>Completion needs receipts: tests, screenshots, CI, handoff, audit, or an explicit blocker.</p></div>
|
|
662
959
|
</div>
|
|
960
|
+
<div class="step">
|
|
961
|
+
<span class="step-number">5</span>
|
|
962
|
+
<div><strong>Dogfood the package</strong><p>A clean package run launches Dispatch, records acks, satisfies criteria, and finishes without path fixes.</p></div>
|
|
963
|
+
</div>
|
|
964
|
+
</div>
|
|
965
|
+
</div>
|
|
966
|
+
</section>
|
|
967
|
+
|
|
968
|
+
<section>
|
|
969
|
+
<div class="section-inner">
|
|
970
|
+
<h2>Dogfood proof is a first-class recipe output</h2>
|
|
971
|
+
<p class="section-lede">
|
|
972
|
+
A useful manager setup is more than a prompt. It should leave enough
|
|
973
|
+
evidence for another operator to replay what happened and improve
|
|
974
|
+
the recipe when friction repeats.
|
|
975
|
+
</p>
|
|
976
|
+
<div class="proof-grid">
|
|
977
|
+
<div class="proof-card"><code>manager-config</code><strong>Settings locked</strong><p>Mode, objective, permissions, tools, epilogues, and cleanup policy are saved before the manager starts.</p></div>
|
|
978
|
+
<div class="proof-card"><code>pair --json</code><strong>Launch is explicit</strong><p>The package records manager, worker, Dispatch PID, cwd, and database path for the run.</p></div>
|
|
979
|
+
<div class="proof-card"><code>criteria --list</code><strong>Acceptance is visible</strong><p>Criteria move from accepted to satisfied with evidence instead of being inferred from chat.</p></div>
|
|
980
|
+
<div class="proof-card"><code>replay / audit</code><strong>Closeout is replayable</strong><p>Worker completion, manager decisions, finish task, and cleanup receipts remain inspectable.</p></div>
|
|
663
981
|
</div>
|
|
664
982
|
</div>
|
|
665
983
|
</section>
|
|
@@ -680,6 +998,41 @@
|
|
|
680
998
|
<div class="db-item"><strong>manager_cycles</strong><p>Observation history and the manager context used for each decision.</p></div>
|
|
681
999
|
<div class="db-item"><strong>telemetry_events</strong><p>Dispatch heartbeat, routing issues, stale work, and searchable issue clues.</p></div>
|
|
682
1000
|
</div>
|
|
1001
|
+
<div class="diagnostic-strip">
|
|
1002
|
+
<div>
|
|
1003
|
+
<strong>When a run feels wrong</strong>
|
|
1004
|
+
<p>Use the database as the bug report, not a reconstructed chat summary.</p>
|
|
1005
|
+
</div>
|
|
1006
|
+
<p>
|
|
1007
|
+
Start with `conveyor replay`, attach acceptance criteria and
|
|
1008
|
+
notification receipts, then tune the recipe gate that allowed the
|
|
1009
|
+
weak continuation.
|
|
1010
|
+
</p>
|
|
1011
|
+
</div>
|
|
1012
|
+
</div>
|
|
1013
|
+
</section>
|
|
1014
|
+
|
|
1015
|
+
<section id="release" class="release-band">
|
|
1016
|
+
<div class="section-inner release-grid">
|
|
1017
|
+
<div>
|
|
1018
|
+
<h2>Release without token wrangling</h2>
|
|
1019
|
+
<p class="section-lede">
|
|
1020
|
+
Package verification can stay separate from publish. The manual
|
|
1021
|
+
workflow first creates a review tarball; only an explicit publish
|
|
1022
|
+
run with the npm production environment uses Trusted Publishing.
|
|
1023
|
+
</p>
|
|
1024
|
+
<div class="command">
|
|
1025
|
+
<code><span>gh</span> workflow run publish.yml -f version=0.1.8 -f publish=false</code>
|
|
1026
|
+
<code><span>gh</span> workflow run publish.yml -f version=0.1.8 -f publish=true</code>
|
|
1027
|
+
<code><span>npm</span> view agent-conveyor version</code>
|
|
1028
|
+
</div>
|
|
1029
|
+
</div>
|
|
1030
|
+
<ul class="release-list">
|
|
1031
|
+
<li><strong>Verify first</strong><br />Run tests, package smoke, release check, and upload a tarball for review.</li>
|
|
1032
|
+
<li><strong>Publish intentionally</strong><br />Require `publish=true`, a matching version input, and the `npm-production` environment.</li>
|
|
1033
|
+
<li><strong>Use OIDC</strong><br />Trusted Publishing removes long-lived npm tokens from the release path.</li>
|
|
1034
|
+
<li><strong>Dogfood after publish</strong><br />Fresh-install the public package before merging release paperwork.</li>
|
|
1035
|
+
</ul>
|
|
683
1036
|
</div>
|
|
684
1037
|
</section>
|
|
685
1038
|
|
|
@@ -692,8 +1045,8 @@
|
|
|
692
1045
|
continued, stopped, compacted, or finished.
|
|
693
1046
|
</p>
|
|
694
1047
|
<div class="actions">
|
|
695
|
-
<a class="button primary" href="manager-recipes.md">Open manager recipes</a>
|
|
696
|
-
<a class="button secondary" href="
|
|
1048
|
+
<a class="button primary" href="https://github.com/neonwatty/agent-conveyor/blob/main/docs/manager-recipes.md">Open manager recipes</a>
|
|
1049
|
+
<a class="button secondary" href="https://github.com/neonwatty/agent-conveyor#readme">Read install docs</a>
|
|
697
1050
|
</div>
|
|
698
1051
|
</div>
|
|
699
1052
|
</section>
|