@tryvitris/website-harness 1.0.2 → 1.1.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 (59) hide show
  1. package/README.md +76 -74
  2. package/agent/graph.yaml +769 -764
  3. package/agent/refs/admin.md +11 -11
  4. package/agent/refs/browser.md +6 -4
  5. package/agent/refs/business.md +20 -9
  6. package/agent/refs/implement.md +8 -6
  7. package/agent/refs/scheduling.md +13 -0
  8. package/bin/api/agent/evaluate.js +3 -3
  9. package/bin/api/agent/grade.js +3 -3
  10. package/bin/api/cli/api.js +11 -11
  11. package/bin/api/cli.js +13 -13
  12. package/bin/api/engine.js +4 -4
  13. package/bin/api/hosting.js +5 -5
  14. package/bin/api/index.js +1 -1
  15. package/bin/chunks/{chunk-Q6FLOYHS.js → chunk-5KRJQKHB.js} +3 -3
  16. package/bin/chunks/{chunk-YYK6367V.js → chunk-AD7WAHW2.js} +2 -2
  17. package/bin/chunks/{chunk-GO3XEQBA.js → chunk-AS74YXGM.js} +3 -3
  18. package/bin/chunks/{chunk-GM57SNLL.js → chunk-DDJ3QCRR.js} +9 -9
  19. package/bin/chunks/chunk-GPS3SAGQ.js +1020 -0
  20. package/bin/chunks/{chunk-ATPI2YRF.js → chunk-KR5ZUZV2.js} +2 -2
  21. package/bin/chunks/{chunk-YYYPSFFZ.js → chunk-MAPY3YVE.js} +2 -2
  22. package/bin/chunks/{chunk-OQGUEQ6F.js → chunk-MYX4FET4.js} +1 -1
  23. package/bin/chunks/{chunk-XJTAR7KM.js → chunk-OZD7ZWDX.js} +1 -1
  24. package/bin/chunks/{chunk-CPQQQ5YB.js → chunk-SBOUSO3S.js} +3 -3
  25. package/bin/chunks/{chunk-BMD5GVUT.js → chunk-SXPLCCO7.js} +6 -6
  26. package/bin/chunks/{chunk-QRIYA3GJ.js → chunk-WIT6364Y.js} +3 -3
  27. package/bin/chunks/{chunk-JPQCUN2J.js → chunk-WK7HJI5H.js} +1 -1
  28. package/bin/chunks/{design-context-store-BDYBQQCO.js → design-context-store-PGXCHUOF.js} +3 -3
  29. package/bin/chunks/{packets-RXFWDCK2.js → packets-B7MCJ42T.js} +3 -3
  30. package/bin/chunks/{preparation-ETEEMB5H.js → preparation-MVKICQPD.js} +3 -3
  31. package/bin/types/src/build/index.d.ts +2 -0
  32. package/bin/types/src/cli/admin.d.ts +1 -1
  33. package/bin/types/src/scheduling/config.d.ts +11 -0
  34. package/bin/types/src/scheduling/management.d.ts +2 -0
  35. package/bin/types/src/scheduling/styles.d.ts +1 -0
  36. package/bin/types/src/scheduling/widget.d.ts +2 -0
  37. package/bin/vitris-art.js +3 -3
  38. package/bin/vitris-build.js +2 -2
  39. package/bin/vitris-create-site.js +5 -5
  40. package/bin/vitris-cursor-hook.js +3 -3
  41. package/bin/vitris-eval.js +5 -5
  42. package/bin/vitris-go.js +5 -5
  43. package/bin/vitris-harvest.js +4 -4
  44. package/bin/vitris-knowledge.js +4 -4
  45. package/bin/vitris-launch-preflight.js +3 -3
  46. package/bin/vitris-motion-view.js +3 -3
  47. package/bin/vitris-references.js +2 -2
  48. package/bin/vitris-refresh.js +4 -4
  49. package/bin/vitris-stock.js +1 -1
  50. package/bin/vitris-themes.js +3 -3
  51. package/bin/vitris-upgrade.js +4 -4
  52. package/bin/vitris-verify-browser.js +3 -3
  53. package/bin/vitris-verify-performance.js +2 -2
  54. package/bin/vitris.js +13 -13
  55. package/docs/ADMIN.md +85 -85
  56. package/docs/CLI.md +314 -312
  57. package/docs/SCHEDULING.md +67 -0
  58. package/package.json +5 -4
  59. package/bin/chunks/chunk-NMTFSWPK.js +0 -332
package/agent/graph.yaml CHANGED
@@ -1,764 +1,769 @@
1
- {
2
- "version": 3,
3
- "stop_at": "preview_ready",
4
- "nodes": [
5
- {
6
- "id": "harvest",
7
- "needs": [],
8
- "inputs": [
9
- "launch.json"
10
- ],
11
- "writes": [
12
- "onboarding/brief.json",
13
- "onboarding/raw",
14
- "onboarding/harvest-inventory.json",
15
- "media/harvest"
16
- ],
17
- "refs": [
18
- "harvest"
19
- ],
20
- "tools": [
21
- "npm run harvest"
22
- ],
23
- "eval": "harvest",
24
- "maxAttempts": 4,
25
- "kind": "tool",
26
- "command": [
27
- "--experimental-strip-types",
28
- "{harness}/scripts/harvest.ts",
29
- "--no-prompt"
30
- ]
31
- },
32
- {
33
- "id": "business",
34
- "needs": [
35
- "harvest"
36
- ],
37
- "inputs": [
38
- "onboarding/brief.json",
39
- "onboarding/copy",
40
- "agent/change-request.json"
41
- ],
42
- "optionalInputs": [
43
- "agent/site-memory.json"
44
- ],
45
- "writes": [
46
- "onboarding/business.json"
47
- ],
48
- "refs": [
49
- "business",
50
- "contracts"
51
- ],
52
- "optionalRefs": [
53
- "refine"
54
- ],
55
- "tools": [],
56
- "eval": "business",
57
- "maxAttempts": 4,
58
- "kind": "agent"
59
- },
60
- {
61
- "id": "business-review",
62
- "needs": [
63
- "business"
64
- ],
65
- "inputs": [
66
- "onboarding/business.json"
67
- ],
68
- "writes": [
69
- "agent/reviews/business-review.json"
70
- ],
71
- "refs": [
72
- "critic",
73
- "contracts"
74
- ],
75
- "tools": [],
76
- "eval": "business-review",
77
- "maxAttempts": 4,
78
- "kind": "critic",
79
- "repair": "business"
80
- },
81
- {
82
- "id": "media",
83
- "needs": [
84
- "harvest"
85
- ],
86
- "inputs": [
87
- "onboarding/brief.json",
88
- "media/harvest"
89
- ],
90
- "writes": [
91
- "onboarding/media-inventory.json",
92
- "onboarding/contact-sheet.html",
93
- "media/stock",
94
- "media/recovered",
95
- "onboarding/media-requests.json"
96
- ],
97
- "refs": [
98
- "media",
99
- "contracts"
100
- ],
101
- "tools": [],
102
- "eval": "media",
103
- "maxAttempts": 4,
104
- "kind": "agent"
105
- },
106
- {
107
- "id": "narrative",
108
- "needs": [
109
- "business-review",
110
- "media"
111
- ],
112
- "inputs": [
113
- "onboarding/business.json",
114
- "onboarding/media-inventory.json"
115
- ],
116
- "writes": [
117
- "onboarding/narrative-brief.json"
118
- ],
119
- "refs": [
120
- "narrative",
121
- "contracts"
122
- ],
123
- "tools": [],
124
- "eval": "narrative",
125
- "maxAttempts": 4,
126
- "kind": "agent"
127
- },
128
- {
129
- "id": "narrative-review",
130
- "needs": [
131
- "narrative"
132
- ],
133
- "inputs": [
134
- "onboarding/narrative-brief.json",
135
- "onboarding/business.json"
136
- ],
137
- "writes": [
138
- "agent/reviews/narrative-review.json"
139
- ],
140
- "refs": [
141
- "critic",
142
- "contracts"
143
- ],
144
- "tools": [],
145
- "eval": "narrative-review",
146
- "maxAttempts": 4,
147
- "kind": "critic",
148
- "repair": "narrative"
149
- },
150
- {
151
- "id": "reference-analysis",
152
- "needs": [
153
- "narrative-review"
154
- ],
155
- "inputs": [
156
- "onboarding/narrative-brief.json",
157
- "onboarding/media-inventory.json"
158
- ],
159
- "writes": [
160
- "onboarding/reference-analysis.json"
161
- ],
162
- "refs": [
163
- "design-calibration",
164
- "contracts"
165
- ],
166
- "tools": [],
167
- "eval": "reference-analysis",
168
- "maxAttempts": 4,
169
- "kind": "agent"
170
- },
171
- {
172
- "id": "direction",
173
- "needs": [
174
- "reference-analysis"
175
- ],
176
- "inputs": [
177
- "onboarding/business.json",
178
- "onboarding/media-inventory.json",
179
- "onboarding/narrative-brief.json",
180
- "onboarding/reference-analysis.json",
181
- "agent/request.json"
182
- ],
183
- "writes": [
184
- "onboarding/direction.json",
185
- "theme/defaults.json"
186
- ],
187
- "refs": [
188
- "direction",
189
- "contracts",
190
- "design-calibration",
191
- "accessibility",
192
- "motion",
193
- "typography"
194
- ],
195
- "tools": [],
196
- "eval": "direction",
197
- "maxAttempts": 4,
198
- "kind": "agent",
199
- "optionalRefs": [
200
- "inspiration",
201
- "variant-directions",
202
- "refine",
203
- "motion-count",
204
- "motion-numeric",
205
- "motion-text",
206
- "motion-image",
207
- "motion-process",
208
- "motion-sequence",
209
- "motion-page"
210
- ],
211
- "optionalInputs": [
212
- "agent/assigned-direction.json",
213
- "agent/site-memory.json",
214
- "onboarding/media-requests.json"
215
- ]
216
- },
217
- {
218
- "id": "direction-review",
219
- "needs": [
220
- "direction"
221
- ],
222
- "inputs": [
223
- "onboarding/direction.json",
224
- "theme/defaults.json"
225
- ],
226
- "writes": [
227
- "agent/reviews/direction-review.json"
228
- ],
229
- "refs": [
230
- "critic",
231
- "contracts",
232
- "design-calibration",
233
- "motion",
234
- "typography"
235
- ],
236
- "tools": [],
237
- "eval": "direction-review",
238
- "maxAttempts": 4,
239
- "kind": "critic",
240
- "repair": "direction",
241
- "optionalRefs": [
242
- "motion-count",
243
- "motion-numeric",
244
- "motion-text",
245
- "motion-image",
246
- "motion-process",
247
- "motion-sequence",
248
- "motion-page"
249
- ]
250
- },
251
- {
252
- "id": "storyboard",
253
- "needs": [
254
- "direction-review"
255
- ],
256
- "inputs": [
257
- "onboarding/business.json",
258
- "onboarding/direction.json",
259
- "onboarding/media-inventory.json"
260
- ],
261
- "writes": [
262
- "onboarding/storyboard.json",
263
- "onboarding/media-selection.json"
264
- ],
265
- "refs": [
266
- "storyboard",
267
- "contracts",
268
- "design-calibration",
269
- "seo",
270
- "media",
271
- "motion",
272
- "icons",
273
- "analytics"
274
- ],
275
- "optionalRefs": [
276
- "design-synthesis",
277
- "motion-count",
278
- "motion-numeric",
279
- "motion-text",
280
- "motion-image",
281
- "motion-process",
282
- "motion-sequence",
283
- "motion-page"
284
- ],
285
- "optionalInputs": [
286
- "onboarding/synthesis-plan.json",
287
- "onboarding/media-requests.json"
288
- ],
289
- "tools": [],
290
- "eval": "storyboard",
291
- "maxAttempts": 4,
292
- "kind": "agent"
293
- },
294
- {
295
- "id": "copy",
296
- "needs": [
297
- "storyboard"
298
- ],
299
- "inputs": [
300
- "onboarding/business.json",
301
- "onboarding/storyboard.json",
302
- "agent/change-request.json"
303
- ],
304
- "writes": [
305
- "onboarding/copy-plan.json"
306
- ],
307
- "refs": [
308
- "copy",
309
- "contracts",
310
- "seo",
311
- "geo"
312
- ],
313
- "optionalRefs": [
314
- "design-synthesis",
315
- "refine"
316
- ],
317
- "optionalInputs": [
318
- "onboarding/synthesis-plan.json",
319
- "agent/site-memory.json"
320
- ],
321
- "tools": [],
322
- "eval": "copy",
323
- "maxAttempts": 4,
324
- "kind": "agent"
325
- },
326
- {
327
- "id": "copy-review",
328
- "needs": [
329
- "copy"
330
- ],
331
- "inputs": [
332
- "onboarding/business.json",
333
- "onboarding/storyboard.json",
334
- "onboarding/copy-plan.json"
335
- ],
336
- "writes": [
337
- "agent/reviews/copy-review.json"
338
- ],
339
- "refs": [
340
- "critic",
341
- "contracts"
342
- ],
343
- "tools": [],
344
- "eval": "copy-review",
345
- "maxAttempts": 4,
346
- "kind": "critic",
347
- "repair": "copy"
348
- },
349
- {
350
- "id": "representative",
351
- "needs": [
352
- "copy-review"
353
- ],
354
- "inputs": [
355
- "onboarding/direction.json",
356
- "onboarding/storyboard.json",
357
- "onboarding/copy-plan.json"
358
- ],
359
- "writes": [
360
- "pages",
361
- "components",
362
- "agent/decisions/authoring-decisions.json",
363
- "site.json"
364
- ],
365
- "refs": [
366
- "implement",
367
- "accessibility",
368
- "usability",
369
- "media",
370
- "motion",
371
- "icons",
372
- "analytics",
373
- "typography"
374
- ],
375
- "tools": [],
376
- "eval": "representative",
377
- "maxAttempts": 4,
378
- "kind": "agent",
379
- "optionalRefs": [
380
- "components",
381
- "compose",
382
- "design-synthesis",
383
- "motion-count",
384
- "motion-numeric",
385
- "motion-text",
386
- "motion-image",
387
- "motion-process",
388
- "motion-sequence",
389
- "motion-page"
390
- ],
391
- "optionalInputs": [
392
- "onboarding/synthesis-plan.json",
393
- "onboarding/media-requests.json",
394
- "onboarding/media-selection.json"
395
- ],
396
- "historicalAfter": "pages"
397
- },
398
- {
399
- "id": "representative-browser",
400
- "needs": [
401
- "representative"
402
- ],
403
- "inputs": [
404
- "pages",
405
- "components",
406
- "theme",
407
- "media",
408
- "site.json",
409
- "public",
410
- "onboarding/storyboard.json"
411
- ],
412
- "writes": [
413
- "agent/reviews/representative-browser.json",
414
- "agent/screenshots/representative-browser"
415
- ],
416
- "refs": [
417
- "browser",
418
- "motion",
419
- "icons",
420
- "analytics",
421
- "typography"
422
- ],
423
- "tools": [],
424
- "eval": "representative-browser",
425
- "maxAttempts": 4,
426
- "kind": "tool",
427
- "command": [
428
- "--experimental-strip-types",
429
- "{harness}/scripts/verify-browser.ts",
430
- "--site",
431
- "{site}",
432
- "--representative"
433
- ],
434
- "repair": "representative",
435
- "historicalAfter": "pages",
436
- "optionalRefs": [
437
- "motion-count",
438
- "motion-numeric",
439
- "motion-text",
440
- "motion-image",
441
- "motion-process",
442
- "motion-sequence"
443
- ]
444
- },
445
- {
446
- "id": "representative-review",
447
- "needs": [
448
- "representative-browser"
449
- ],
450
- "inputs": [
451
- "dist",
452
- "onboarding/direction.json"
453
- ],
454
- "writes": [
455
- "agent/reviews/representative-review.json"
456
- ],
457
- "refs": [
458
- "critic",
459
- "contracts",
460
- "design-calibration",
461
- "motion",
462
- "icons",
463
- "typography"
464
- ],
465
- "tools": [],
466
- "eval": "representative-review",
467
- "maxAttempts": 4,
468
- "kind": "critic",
469
- "repair": "representative",
470
- "historicalAfter": "pages",
471
- "optionalRefs": [
472
- "motion-count",
473
- "motion-numeric",
474
- "motion-text",
475
- "motion-image",
476
- "motion-process",
477
- "motion-sequence",
478
- "motion-page"
479
- ]
480
- },
481
- {
482
- "id": "representative-quality",
483
- "needs": [
484
- "representative-review"
485
- ],
486
- "inputs": [
487
- "dist",
488
- "pages",
489
- "onboarding/direction.json",
490
- "onboarding/narrative-brief.json",
491
- "onboarding/copy-plan.json",
492
- "onboarding/storyboard.json",
493
- "agent/decisions/authoring-decisions.json",
494
- "agent/reviews/representative-browser.json",
495
- "agent/screenshots/representative-browser"
496
- ],
497
- "writes": [
498
- "agent/reviews/representative-quality.json"
499
- ],
500
- "refs": [
501
- "design-quality",
502
- "critic",
503
- "contracts",
504
- "design-calibration",
505
- "motion",
506
- "typography"
507
- ],
508
- "tools": [],
509
- "eval": "representative-quality",
510
- "maxAttempts": 3,
511
- "kind": "critic",
512
- "repair": "representative",
513
- "historicalAfter": "pages",
514
- "optionalRefs": [
515
- "motion-count",
516
- "motion-numeric",
517
- "motion-text",
518
- "motion-image",
519
- "motion-process",
520
- "motion-sequence",
521
- "motion-page"
522
- ]
523
- },
524
- {
525
- "id": "copy-expansion",
526
- "needs": [
527
- "representative-quality"
528
- ],
529
- "inputs": [
530
- "onboarding/storyboard.json",
531
- "onboarding/copy-plan.json",
532
- "onboarding/business.json",
533
- "pages",
534
- "components"
535
- ],
536
- "writes": [
537
- "onboarding/copy-plan.json"
538
- ],
539
- "refs": [
540
- "copy",
541
- "contracts",
542
- "motion"
543
- ],
544
- "tools": [],
545
- "eval": "copy-expansion",
546
- "maxAttempts": 4,
547
- "kind": "agent",
548
- "historicalAfter": "pages",
549
- "optionalRefs": [
550
- "motion-page"
551
- ]
552
- },
553
- {
554
- "id": "pages",
555
- "needs": [
556
- "copy-expansion"
557
- ],
558
- "inputs": [
559
- "onboarding/storyboard.json",
560
- "onboarding/copy-plan.json",
561
- "onboarding/direction.json",
562
- "agent/change-request.json"
563
- ],
564
- "writes": [
565
- "pages",
566
- "components",
567
- "agent/decisions/authoring-decisions.json"
568
- ],
569
- "refs": [
570
- "implement",
571
- "accessibility",
572
- "performance",
573
- "motion",
574
- "icons",
575
- "analytics",
576
- "typography"
577
- ],
578
- "optionalRefs": [
579
- "design-synthesis",
580
- "refine",
581
- "motion-count",
582
- "motion-numeric",
583
- "motion-text",
584
- "motion-image",
585
- "motion-process",
586
- "motion-sequence",
587
- "motion-page"
588
- ],
589
- "optionalInputs": [
590
- "onboarding/synthesis-plan.json",
591
- "agent/site-memory.json"
592
- ],
593
- "tools": [],
594
- "eval": "pages",
595
- "maxAttempts": 4,
596
- "kind": "agent"
597
- },
598
- {
599
- "id": "browser",
600
- "needs": [
601
- "pages"
602
- ],
603
- "inputs": [
604
- "pages",
605
- "components",
606
- "theme",
607
- "media",
608
- "site.json",
609
- "public",
610
- "onboarding/storyboard.json"
611
- ],
612
- "writes": [
613
- "agent/reviews/browser.json",
614
- "agent/screenshots/browser"
615
- ],
616
- "refs": [
617
- "browser",
618
- "motion",
619
- "icons",
620
- "analytics",
621
- "typography"
622
- ],
623
- "tools": [],
624
- "eval": "browser",
625
- "maxAttempts": 4,
626
- "kind": "tool",
627
- "command": [
628
- "--experimental-strip-types",
629
- "{harness}/scripts/verify-browser.ts",
630
- "--site",
631
- "{site}"
632
- ],
633
- "repair": "pages",
634
- "optionalRefs": [
635
- "motion-count",
636
- "motion-numeric",
637
- "motion-text",
638
- "motion-image",
639
- "motion-process",
640
- "motion-sequence",
641
- "motion-page"
642
- ]
643
- },
644
- {
645
- "id": "visual-review",
646
- "needs": [
647
- "browser"
648
- ],
649
- "inputs": [
650
- "dist",
651
- "onboarding/direction.json"
652
- ],
653
- "writes": [
654
- "agent/reviews/visual-review.json"
655
- ],
656
- "refs": [
657
- "critic",
658
- "contracts",
659
- "design-calibration",
660
- "media",
661
- "motion",
662
- "icons"
663
- ],
664
- "tools": [],
665
- "eval": "visual-review",
666
- "maxAttempts": 4,
667
- "kind": "critic",
668
- "repair": "pages",
669
- "optionalInputs": [
670
- "onboarding/media-requests.json",
671
- "onboarding/media-selection.json"
672
- ],
673
- "optionalRefs": [
674
- "motion-count",
675
- "motion-numeric",
676
- "motion-text",
677
- "motion-image",
678
- "motion-process",
679
- "motion-sequence",
680
- "motion-page"
681
- ]
682
- },
683
- {
684
- "id": "content-review",
685
- "needs": [
686
- "visual-review"
687
- ],
688
- "inputs": [
689
- "dist",
690
- "onboarding/business.json",
691
- "onboarding/copy-plan.json"
692
- ],
693
- "writes": [
694
- "agent/reviews/content-review.json"
695
- ],
696
- "refs": [
697
- "critic",
698
- "contracts",
699
- "design-calibration",
700
- "media"
701
- ],
702
- "tools": [],
703
- "eval": "content-review",
704
- "maxAttempts": 4,
705
- "kind": "critic",
706
- "repair": "pages",
707
- "optionalInputs": [
708
- "onboarding/media-requests.json",
709
- "onboarding/media-selection.json"
710
- ]
711
- },
712
- {
713
- "id": "preview",
714
- "needs": [
715
- "content-review"
716
- ],
717
- "inputs": [
718
- "dist",
719
- "agent/reviews",
720
- "onboarding/business.json",
721
- "onboarding/media-inventory.json",
722
- "onboarding/direction.json",
723
- "onboarding/storyboard.json",
724
- "onboarding/copy-plan.json"
725
- ],
726
- "writes": [],
727
- "refs": [],
728
- "tools": [],
729
- "eval": "preview",
730
- "maxAttempts": 4,
731
- "kind": "tool",
732
- "command": [
733
- "--experimental-strip-types",
734
- "{harness}/scripts/eval-site.ts",
735
- "--site",
736
- "{site}",
737
- "--node",
738
- "preview"
739
- ],
740
- "repair": "pages"
741
- },
742
- {
743
- "id": "launch",
744
- "needs": [
745
- "preview"
746
- ],
747
- "inputs": [
748
- "launch.json"
749
- ],
750
- "writes": [
751
- "launch.json"
752
- ],
753
- "refs": [
754
- "launch",
755
- "analytics"
756
- ],
757
- "tools": [],
758
- "eval": "launch",
759
- "maxAttempts": 4,
760
- "kind": "agent",
761
- "optional": true
762
- }
763
- ]
764
- }
1
+ {
2
+ "version": 3,
3
+ "stop_at": "preview_ready",
4
+ "nodes": [
5
+ {
6
+ "id": "harvest",
7
+ "needs": [],
8
+ "inputs": [
9
+ "launch.json"
10
+ ],
11
+ "writes": [
12
+ "onboarding/brief.json",
13
+ "onboarding/raw",
14
+ "onboarding/harvest-inventory.json",
15
+ "media/harvest"
16
+ ],
17
+ "refs": [
18
+ "harvest"
19
+ ],
20
+ "tools": [
21
+ "npm run harvest"
22
+ ],
23
+ "eval": "harvest",
24
+ "maxAttempts": 4,
25
+ "kind": "tool",
26
+ "command": [
27
+ "--experimental-strip-types",
28
+ "{harness}/scripts/harvest.ts",
29
+ "--no-prompt"
30
+ ]
31
+ },
32
+ {
33
+ "id": "business",
34
+ "needs": [
35
+ "harvest"
36
+ ],
37
+ "inputs": [
38
+ "onboarding/brief.json",
39
+ "onboarding/copy",
40
+ "agent/change-request.json"
41
+ ],
42
+ "optionalInputs": [
43
+ "agent/site-memory.json"
44
+ ],
45
+ "writes": [
46
+ "onboarding/business.json"
47
+ ],
48
+ "refs": [
49
+ "business",
50
+ "contracts"
51
+ ],
52
+ "optionalRefs": [
53
+ "refine",
54
+ "scheduling"
55
+ ],
56
+ "tools": [],
57
+ "eval": "business",
58
+ "maxAttempts": 4,
59
+ "kind": "agent"
60
+ },
61
+ {
62
+ "id": "business-review",
63
+ "needs": [
64
+ "business"
65
+ ],
66
+ "inputs": [
67
+ "onboarding/business.json"
68
+ ],
69
+ "writes": [
70
+ "agent/reviews/business-review.json"
71
+ ],
72
+ "refs": [
73
+ "critic",
74
+ "contracts"
75
+ ],
76
+ "tools": [],
77
+ "eval": "business-review",
78
+ "maxAttempts": 4,
79
+ "kind": "critic",
80
+ "repair": "business"
81
+ },
82
+ {
83
+ "id": "media",
84
+ "needs": [
85
+ "harvest"
86
+ ],
87
+ "inputs": [
88
+ "onboarding/brief.json",
89
+ "media/harvest"
90
+ ],
91
+ "writes": [
92
+ "onboarding/media-inventory.json",
93
+ "onboarding/contact-sheet.html",
94
+ "media/stock",
95
+ "media/recovered",
96
+ "onboarding/media-requests.json"
97
+ ],
98
+ "refs": [
99
+ "media",
100
+ "contracts"
101
+ ],
102
+ "tools": [],
103
+ "eval": "media",
104
+ "maxAttempts": 4,
105
+ "kind": "agent"
106
+ },
107
+ {
108
+ "id": "narrative",
109
+ "needs": [
110
+ "business-review",
111
+ "media"
112
+ ],
113
+ "inputs": [
114
+ "onboarding/business.json",
115
+ "onboarding/media-inventory.json"
116
+ ],
117
+ "writes": [
118
+ "onboarding/narrative-brief.json"
119
+ ],
120
+ "refs": [
121
+ "narrative",
122
+ "contracts"
123
+ ],
124
+ "tools": [],
125
+ "eval": "narrative",
126
+ "maxAttempts": 4,
127
+ "kind": "agent",
128
+ "optionalRefs": [
129
+ "scheduling"
130
+ ]
131
+ },
132
+ {
133
+ "id": "narrative-review",
134
+ "needs": [
135
+ "narrative"
136
+ ],
137
+ "inputs": [
138
+ "onboarding/narrative-brief.json",
139
+ "onboarding/business.json"
140
+ ],
141
+ "writes": [
142
+ "agent/reviews/narrative-review.json"
143
+ ],
144
+ "refs": [
145
+ "critic",
146
+ "contracts"
147
+ ],
148
+ "tools": [],
149
+ "eval": "narrative-review",
150
+ "maxAttempts": 4,
151
+ "kind": "critic",
152
+ "repair": "narrative"
153
+ },
154
+ {
155
+ "id": "reference-analysis",
156
+ "needs": [
157
+ "narrative-review"
158
+ ],
159
+ "inputs": [
160
+ "onboarding/narrative-brief.json",
161
+ "onboarding/media-inventory.json"
162
+ ],
163
+ "writes": [
164
+ "onboarding/reference-analysis.json"
165
+ ],
166
+ "refs": [
167
+ "design-calibration",
168
+ "contracts"
169
+ ],
170
+ "tools": [],
171
+ "eval": "reference-analysis",
172
+ "maxAttempts": 4,
173
+ "kind": "agent"
174
+ },
175
+ {
176
+ "id": "direction",
177
+ "needs": [
178
+ "reference-analysis"
179
+ ],
180
+ "inputs": [
181
+ "onboarding/business.json",
182
+ "onboarding/media-inventory.json",
183
+ "onboarding/narrative-brief.json",
184
+ "onboarding/reference-analysis.json",
185
+ "agent/request.json"
186
+ ],
187
+ "writes": [
188
+ "onboarding/direction.json",
189
+ "theme/defaults.json"
190
+ ],
191
+ "refs": [
192
+ "direction",
193
+ "contracts",
194
+ "design-calibration",
195
+ "accessibility",
196
+ "motion",
197
+ "typography"
198
+ ],
199
+ "tools": [],
200
+ "eval": "direction",
201
+ "maxAttempts": 4,
202
+ "kind": "agent",
203
+ "optionalRefs": [
204
+ "inspiration",
205
+ "variant-directions",
206
+ "refine",
207
+ "motion-count",
208
+ "motion-numeric",
209
+ "motion-text",
210
+ "motion-image",
211
+ "motion-process",
212
+ "motion-sequence",
213
+ "motion-page"
214
+ ],
215
+ "optionalInputs": [
216
+ "agent/assigned-direction.json",
217
+ "agent/site-memory.json",
218
+ "onboarding/media-requests.json"
219
+ ]
220
+ },
221
+ {
222
+ "id": "direction-review",
223
+ "needs": [
224
+ "direction"
225
+ ],
226
+ "inputs": [
227
+ "onboarding/direction.json",
228
+ "theme/defaults.json"
229
+ ],
230
+ "writes": [
231
+ "agent/reviews/direction-review.json"
232
+ ],
233
+ "refs": [
234
+ "critic",
235
+ "contracts",
236
+ "design-calibration",
237
+ "motion",
238
+ "typography"
239
+ ],
240
+ "tools": [],
241
+ "eval": "direction-review",
242
+ "maxAttempts": 4,
243
+ "kind": "critic",
244
+ "repair": "direction",
245
+ "optionalRefs": [
246
+ "motion-count",
247
+ "motion-numeric",
248
+ "motion-text",
249
+ "motion-image",
250
+ "motion-process",
251
+ "motion-sequence",
252
+ "motion-page"
253
+ ]
254
+ },
255
+ {
256
+ "id": "storyboard",
257
+ "needs": [
258
+ "direction-review"
259
+ ],
260
+ "inputs": [
261
+ "onboarding/business.json",
262
+ "onboarding/direction.json",
263
+ "onboarding/media-inventory.json"
264
+ ],
265
+ "writes": [
266
+ "onboarding/storyboard.json",
267
+ "onboarding/media-selection.json"
268
+ ],
269
+ "refs": [
270
+ "storyboard",
271
+ "contracts",
272
+ "design-calibration",
273
+ "seo",
274
+ "media",
275
+ "motion",
276
+ "icons",
277
+ "analytics"
278
+ ],
279
+ "optionalRefs": [
280
+ "design-synthesis",
281
+ "motion-count",
282
+ "motion-numeric",
283
+ "motion-text",
284
+ "motion-image",
285
+ "motion-process",
286
+ "motion-sequence",
287
+ "motion-page"
288
+ ],
289
+ "optionalInputs": [
290
+ "onboarding/synthesis-plan.json",
291
+ "onboarding/media-requests.json"
292
+ ],
293
+ "tools": [],
294
+ "eval": "storyboard",
295
+ "maxAttempts": 4,
296
+ "kind": "agent"
297
+ },
298
+ {
299
+ "id": "copy",
300
+ "needs": [
301
+ "storyboard"
302
+ ],
303
+ "inputs": [
304
+ "onboarding/business.json",
305
+ "onboarding/storyboard.json",
306
+ "agent/change-request.json"
307
+ ],
308
+ "writes": [
309
+ "onboarding/copy-plan.json"
310
+ ],
311
+ "refs": [
312
+ "copy",
313
+ "contracts",
314
+ "seo",
315
+ "geo"
316
+ ],
317
+ "optionalRefs": [
318
+ "design-synthesis",
319
+ "refine"
320
+ ],
321
+ "optionalInputs": [
322
+ "onboarding/synthesis-plan.json",
323
+ "agent/site-memory.json"
324
+ ],
325
+ "tools": [],
326
+ "eval": "copy",
327
+ "maxAttempts": 4,
328
+ "kind": "agent"
329
+ },
330
+ {
331
+ "id": "copy-review",
332
+ "needs": [
333
+ "copy"
334
+ ],
335
+ "inputs": [
336
+ "onboarding/business.json",
337
+ "onboarding/storyboard.json",
338
+ "onboarding/copy-plan.json"
339
+ ],
340
+ "writes": [
341
+ "agent/reviews/copy-review.json"
342
+ ],
343
+ "refs": [
344
+ "critic",
345
+ "contracts"
346
+ ],
347
+ "tools": [],
348
+ "eval": "copy-review",
349
+ "maxAttempts": 4,
350
+ "kind": "critic",
351
+ "repair": "copy"
352
+ },
353
+ {
354
+ "id": "representative",
355
+ "needs": [
356
+ "copy-review"
357
+ ],
358
+ "inputs": [
359
+ "onboarding/direction.json",
360
+ "onboarding/storyboard.json",
361
+ "onboarding/copy-plan.json"
362
+ ],
363
+ "writes": [
364
+ "pages",
365
+ "components",
366
+ "agent/decisions/authoring-decisions.json",
367
+ "site.json"
368
+ ],
369
+ "refs": [
370
+ "implement",
371
+ "accessibility",
372
+ "usability",
373
+ "media",
374
+ "motion",
375
+ "icons",
376
+ "analytics",
377
+ "typography"
378
+ ],
379
+ "tools": [],
380
+ "eval": "representative",
381
+ "maxAttempts": 4,
382
+ "kind": "agent",
383
+ "optionalRefs": [
384
+ "components",
385
+ "compose",
386
+ "design-synthesis",
387
+ "motion-count",
388
+ "motion-numeric",
389
+ "motion-text",
390
+ "motion-image",
391
+ "motion-process",
392
+ "motion-sequence",
393
+ "motion-page"
394
+ ],
395
+ "optionalInputs": [
396
+ "onboarding/synthesis-plan.json",
397
+ "onboarding/media-requests.json",
398
+ "onboarding/media-selection.json"
399
+ ],
400
+ "historicalAfter": "pages"
401
+ },
402
+ {
403
+ "id": "representative-browser",
404
+ "needs": [
405
+ "representative"
406
+ ],
407
+ "inputs": [
408
+ "pages",
409
+ "components",
410
+ "theme",
411
+ "media",
412
+ "site.json",
413
+ "public",
414
+ "onboarding/storyboard.json"
415
+ ],
416
+ "writes": [
417
+ "agent/reviews/representative-browser.json",
418
+ "agent/screenshots/representative-browser"
419
+ ],
420
+ "refs": [
421
+ "browser",
422
+ "motion",
423
+ "icons",
424
+ "analytics",
425
+ "typography"
426
+ ],
427
+ "tools": [],
428
+ "eval": "representative-browser",
429
+ "maxAttempts": 4,
430
+ "kind": "tool",
431
+ "command": [
432
+ "--experimental-strip-types",
433
+ "{harness}/scripts/verify-browser.ts",
434
+ "--site",
435
+ "{site}",
436
+ "--representative"
437
+ ],
438
+ "repair": "representative",
439
+ "historicalAfter": "pages",
440
+ "optionalRefs": [
441
+ "motion-count",
442
+ "motion-numeric",
443
+ "motion-text",
444
+ "motion-image",
445
+ "motion-process",
446
+ "motion-sequence"
447
+ ]
448
+ },
449
+ {
450
+ "id": "representative-review",
451
+ "needs": [
452
+ "representative-browser"
453
+ ],
454
+ "inputs": [
455
+ "dist",
456
+ "onboarding/direction.json"
457
+ ],
458
+ "writes": [
459
+ "agent/reviews/representative-review.json"
460
+ ],
461
+ "refs": [
462
+ "critic",
463
+ "contracts",
464
+ "design-calibration",
465
+ "motion",
466
+ "icons",
467
+ "typography"
468
+ ],
469
+ "tools": [],
470
+ "eval": "representative-review",
471
+ "maxAttempts": 4,
472
+ "kind": "critic",
473
+ "repair": "representative",
474
+ "historicalAfter": "pages",
475
+ "optionalRefs": [
476
+ "motion-count",
477
+ "motion-numeric",
478
+ "motion-text",
479
+ "motion-image",
480
+ "motion-process",
481
+ "motion-sequence",
482
+ "motion-page"
483
+ ]
484
+ },
485
+ {
486
+ "id": "representative-quality",
487
+ "needs": [
488
+ "representative-review"
489
+ ],
490
+ "inputs": [
491
+ "dist",
492
+ "pages",
493
+ "onboarding/direction.json",
494
+ "onboarding/narrative-brief.json",
495
+ "onboarding/copy-plan.json",
496
+ "onboarding/storyboard.json",
497
+ "agent/decisions/authoring-decisions.json",
498
+ "agent/reviews/representative-browser.json",
499
+ "agent/screenshots/representative-browser"
500
+ ],
501
+ "writes": [
502
+ "agent/reviews/representative-quality.json"
503
+ ],
504
+ "refs": [
505
+ "design-quality",
506
+ "critic",
507
+ "contracts",
508
+ "design-calibration",
509
+ "motion",
510
+ "typography"
511
+ ],
512
+ "tools": [],
513
+ "eval": "representative-quality",
514
+ "maxAttempts": 3,
515
+ "kind": "critic",
516
+ "repair": "representative",
517
+ "historicalAfter": "pages",
518
+ "optionalRefs": [
519
+ "motion-count",
520
+ "motion-numeric",
521
+ "motion-text",
522
+ "motion-image",
523
+ "motion-process",
524
+ "motion-sequence",
525
+ "motion-page"
526
+ ]
527
+ },
528
+ {
529
+ "id": "copy-expansion",
530
+ "needs": [
531
+ "representative-quality"
532
+ ],
533
+ "inputs": [
534
+ "onboarding/storyboard.json",
535
+ "onboarding/copy-plan.json",
536
+ "onboarding/business.json",
537
+ "pages",
538
+ "components"
539
+ ],
540
+ "writes": [
541
+ "onboarding/copy-plan.json"
542
+ ],
543
+ "refs": [
544
+ "copy",
545
+ "contracts",
546
+ "motion"
547
+ ],
548
+ "tools": [],
549
+ "eval": "copy-expansion",
550
+ "maxAttempts": 4,
551
+ "kind": "agent",
552
+ "historicalAfter": "pages",
553
+ "optionalRefs": [
554
+ "motion-page"
555
+ ]
556
+ },
557
+ {
558
+ "id": "pages",
559
+ "needs": [
560
+ "copy-expansion"
561
+ ],
562
+ "inputs": [
563
+ "onboarding/storyboard.json",
564
+ "onboarding/copy-plan.json",
565
+ "onboarding/direction.json",
566
+ "agent/change-request.json"
567
+ ],
568
+ "writes": [
569
+ "pages",
570
+ "components",
571
+ "agent/decisions/authoring-decisions.json"
572
+ ],
573
+ "refs": [
574
+ "implement",
575
+ "accessibility",
576
+ "performance",
577
+ "motion",
578
+ "icons",
579
+ "analytics",
580
+ "typography"
581
+ ],
582
+ "optionalRefs": [
583
+ "design-synthesis",
584
+ "refine",
585
+ "motion-count",
586
+ "motion-numeric",
587
+ "motion-text",
588
+ "motion-image",
589
+ "motion-process",
590
+ "motion-sequence",
591
+ "motion-page"
592
+ ],
593
+ "optionalInputs": [
594
+ "onboarding/synthesis-plan.json",
595
+ "agent/site-memory.json"
596
+ ],
597
+ "tools": [],
598
+ "eval": "pages",
599
+ "maxAttempts": 4,
600
+ "kind": "agent"
601
+ },
602
+ {
603
+ "id": "browser",
604
+ "needs": [
605
+ "pages"
606
+ ],
607
+ "inputs": [
608
+ "pages",
609
+ "components",
610
+ "theme",
611
+ "media",
612
+ "site.json",
613
+ "public",
614
+ "onboarding/storyboard.json"
615
+ ],
616
+ "writes": [
617
+ "agent/reviews/browser.json",
618
+ "agent/screenshots/browser"
619
+ ],
620
+ "refs": [
621
+ "browser",
622
+ "motion",
623
+ "icons",
624
+ "analytics",
625
+ "typography"
626
+ ],
627
+ "tools": [],
628
+ "eval": "browser",
629
+ "maxAttempts": 4,
630
+ "kind": "tool",
631
+ "command": [
632
+ "--experimental-strip-types",
633
+ "{harness}/scripts/verify-browser.ts",
634
+ "--site",
635
+ "{site}"
636
+ ],
637
+ "repair": "pages",
638
+ "optionalRefs": [
639
+ "motion-count",
640
+ "motion-numeric",
641
+ "motion-text",
642
+ "motion-image",
643
+ "motion-process",
644
+ "motion-sequence",
645
+ "motion-page",
646
+ "scheduling"
647
+ ]
648
+ },
649
+ {
650
+ "id": "visual-review",
651
+ "needs": [
652
+ "browser"
653
+ ],
654
+ "inputs": [
655
+ "dist",
656
+ "onboarding/direction.json"
657
+ ],
658
+ "writes": [
659
+ "agent/reviews/visual-review.json"
660
+ ],
661
+ "refs": [
662
+ "critic",
663
+ "contracts",
664
+ "design-calibration",
665
+ "media",
666
+ "motion",
667
+ "icons"
668
+ ],
669
+ "tools": [],
670
+ "eval": "visual-review",
671
+ "maxAttempts": 4,
672
+ "kind": "critic",
673
+ "repair": "pages",
674
+ "optionalInputs": [
675
+ "onboarding/media-requests.json",
676
+ "onboarding/media-selection.json"
677
+ ],
678
+ "optionalRefs": [
679
+ "motion-count",
680
+ "motion-numeric",
681
+ "motion-text",
682
+ "motion-image",
683
+ "motion-process",
684
+ "motion-sequence",
685
+ "motion-page"
686
+ ]
687
+ },
688
+ {
689
+ "id": "content-review",
690
+ "needs": [
691
+ "visual-review"
692
+ ],
693
+ "inputs": [
694
+ "dist",
695
+ "onboarding/business.json",
696
+ "onboarding/copy-plan.json"
697
+ ],
698
+ "writes": [
699
+ "agent/reviews/content-review.json"
700
+ ],
701
+ "refs": [
702
+ "critic",
703
+ "contracts",
704
+ "design-calibration",
705
+ "media"
706
+ ],
707
+ "tools": [],
708
+ "eval": "content-review",
709
+ "maxAttempts": 4,
710
+ "kind": "critic",
711
+ "repair": "pages",
712
+ "optionalInputs": [
713
+ "onboarding/media-requests.json",
714
+ "onboarding/media-selection.json"
715
+ ]
716
+ },
717
+ {
718
+ "id": "preview",
719
+ "needs": [
720
+ "content-review"
721
+ ],
722
+ "inputs": [
723
+ "dist",
724
+ "agent/reviews",
725
+ "onboarding/business.json",
726
+ "onboarding/media-inventory.json",
727
+ "onboarding/direction.json",
728
+ "onboarding/storyboard.json",
729
+ "onboarding/copy-plan.json"
730
+ ],
731
+ "writes": [],
732
+ "refs": [],
733
+ "tools": [],
734
+ "eval": "preview",
735
+ "maxAttempts": 4,
736
+ "kind": "tool",
737
+ "command": [
738
+ "--experimental-strip-types",
739
+ "{harness}/scripts/eval-site.ts",
740
+ "--site",
741
+ "{site}",
742
+ "--node",
743
+ "preview"
744
+ ],
745
+ "repair": "pages"
746
+ },
747
+ {
748
+ "id": "launch",
749
+ "needs": [
750
+ "preview"
751
+ ],
752
+ "inputs": [
753
+ "launch.json"
754
+ ],
755
+ "writes": [
756
+ "launch.json"
757
+ ],
758
+ "refs": [
759
+ "launch",
760
+ "analytics"
761
+ ],
762
+ "tools": [],
763
+ "eval": "launch",
764
+ "maxAttempts": 4,
765
+ "kind": "agent",
766
+ "optional": true
767
+ }
768
+ ]
769
+ }