yadflow 3.12.2 → 3.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +30 -0
- package/bin/yad.mjs +26 -6
- package/cli/checkpoint.mjs +59 -1
- package/cli/doctor.mjs +113 -1
- package/cli/epic-state.mjs +14 -6
- package/cli/gate.mjs +191 -25
- package/cli/ledger.mjs +26 -0
- package/cli/platform.mjs +80 -0
- package/package.json +3 -3
- package/skills/yad-architecture/SKILL.md +15 -3
- package/skills/yad-architecture/references/contract-format.md +4 -1
- package/skills/yad-checks/references/check-gates.md +18 -1
- package/skills/yad-checks/templates/checks/contract-check.sh +46 -3
- package/skills/yad-checks/templates/checks/epic-open.sh +41 -9
- package/skills/yad-checks/templates/checks/lineage-check.sh +38 -9
- package/skills/yad-checks/templates/checks/reconcile-debt-check.sh +39 -7
- package/skills/yad-checks/templates/checks/spec-link.sh +17 -5
- package/skills/yad-docs/templates/app/package-lock.json +7 -519
- package/skills/yad-engineer-review/references/ship-and-record.md +20 -0
- package/skills/yad-epic/references/state-schema.md +13 -0
- package/skills/yad-hub-bridge/references/bridge.md +50 -5
- package/skills/yad-hub-bridge/templates/github/yad-gate-sync.yml +6 -3
- package/skills/yad-hub-bridge/templates/gitlab/yad-gate-sync.gitlab-ci.yml +13 -2
- package/skills/yad-review-gate/SKILL.md +13 -3
- package/skills/yad-review-gate/references/gating.md +7 -3
- package/skills/yad-spec/references/spec-handoff.md +12 -2
|
@@ -347,474 +347,6 @@
|
|
|
347
347
|
"tslib": "^2.4.0"
|
|
348
348
|
}
|
|
349
349
|
},
|
|
350
|
-
"node_modules/@esbuild/aix-ppc64": {
|
|
351
|
-
"version": "0.28.1",
|
|
352
|
-
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.1.tgz",
|
|
353
|
-
"integrity": "sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==",
|
|
354
|
-
"cpu": [
|
|
355
|
-
"ppc64"
|
|
356
|
-
],
|
|
357
|
-
"dev": true,
|
|
358
|
-
"license": "MIT",
|
|
359
|
-
"optional": true,
|
|
360
|
-
"os": [
|
|
361
|
-
"aix"
|
|
362
|
-
],
|
|
363
|
-
"peer": true,
|
|
364
|
-
"engines": {
|
|
365
|
-
"node": ">=18"
|
|
366
|
-
}
|
|
367
|
-
},
|
|
368
|
-
"node_modules/@esbuild/android-arm": {
|
|
369
|
-
"version": "0.28.1",
|
|
370
|
-
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.1.tgz",
|
|
371
|
-
"integrity": "sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==",
|
|
372
|
-
"cpu": [
|
|
373
|
-
"arm"
|
|
374
|
-
],
|
|
375
|
-
"dev": true,
|
|
376
|
-
"license": "MIT",
|
|
377
|
-
"optional": true,
|
|
378
|
-
"os": [
|
|
379
|
-
"android"
|
|
380
|
-
],
|
|
381
|
-
"peer": true,
|
|
382
|
-
"engines": {
|
|
383
|
-
"node": ">=18"
|
|
384
|
-
}
|
|
385
|
-
},
|
|
386
|
-
"node_modules/@esbuild/android-arm64": {
|
|
387
|
-
"version": "0.28.1",
|
|
388
|
-
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.1.tgz",
|
|
389
|
-
"integrity": "sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==",
|
|
390
|
-
"cpu": [
|
|
391
|
-
"arm64"
|
|
392
|
-
],
|
|
393
|
-
"dev": true,
|
|
394
|
-
"license": "MIT",
|
|
395
|
-
"optional": true,
|
|
396
|
-
"os": [
|
|
397
|
-
"android"
|
|
398
|
-
],
|
|
399
|
-
"peer": true,
|
|
400
|
-
"engines": {
|
|
401
|
-
"node": ">=18"
|
|
402
|
-
}
|
|
403
|
-
},
|
|
404
|
-
"node_modules/@esbuild/android-x64": {
|
|
405
|
-
"version": "0.28.1",
|
|
406
|
-
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.1.tgz",
|
|
407
|
-
"integrity": "sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==",
|
|
408
|
-
"cpu": [
|
|
409
|
-
"x64"
|
|
410
|
-
],
|
|
411
|
-
"dev": true,
|
|
412
|
-
"license": "MIT",
|
|
413
|
-
"optional": true,
|
|
414
|
-
"os": [
|
|
415
|
-
"android"
|
|
416
|
-
],
|
|
417
|
-
"peer": true,
|
|
418
|
-
"engines": {
|
|
419
|
-
"node": ">=18"
|
|
420
|
-
}
|
|
421
|
-
},
|
|
422
|
-
"node_modules/@esbuild/darwin-arm64": {
|
|
423
|
-
"version": "0.28.1",
|
|
424
|
-
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.1.tgz",
|
|
425
|
-
"integrity": "sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==",
|
|
426
|
-
"cpu": [
|
|
427
|
-
"arm64"
|
|
428
|
-
],
|
|
429
|
-
"dev": true,
|
|
430
|
-
"license": "MIT",
|
|
431
|
-
"optional": true,
|
|
432
|
-
"os": [
|
|
433
|
-
"darwin"
|
|
434
|
-
],
|
|
435
|
-
"peer": true,
|
|
436
|
-
"engines": {
|
|
437
|
-
"node": ">=18"
|
|
438
|
-
}
|
|
439
|
-
},
|
|
440
|
-
"node_modules/@esbuild/darwin-x64": {
|
|
441
|
-
"version": "0.28.1",
|
|
442
|
-
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.1.tgz",
|
|
443
|
-
"integrity": "sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==",
|
|
444
|
-
"cpu": [
|
|
445
|
-
"x64"
|
|
446
|
-
],
|
|
447
|
-
"dev": true,
|
|
448
|
-
"license": "MIT",
|
|
449
|
-
"optional": true,
|
|
450
|
-
"os": [
|
|
451
|
-
"darwin"
|
|
452
|
-
],
|
|
453
|
-
"peer": true,
|
|
454
|
-
"engines": {
|
|
455
|
-
"node": ">=18"
|
|
456
|
-
}
|
|
457
|
-
},
|
|
458
|
-
"node_modules/@esbuild/freebsd-arm64": {
|
|
459
|
-
"version": "0.28.1",
|
|
460
|
-
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.1.tgz",
|
|
461
|
-
"integrity": "sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==",
|
|
462
|
-
"cpu": [
|
|
463
|
-
"arm64"
|
|
464
|
-
],
|
|
465
|
-
"dev": true,
|
|
466
|
-
"license": "MIT",
|
|
467
|
-
"optional": true,
|
|
468
|
-
"os": [
|
|
469
|
-
"freebsd"
|
|
470
|
-
],
|
|
471
|
-
"peer": true,
|
|
472
|
-
"engines": {
|
|
473
|
-
"node": ">=18"
|
|
474
|
-
}
|
|
475
|
-
},
|
|
476
|
-
"node_modules/@esbuild/freebsd-x64": {
|
|
477
|
-
"version": "0.28.1",
|
|
478
|
-
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.1.tgz",
|
|
479
|
-
"integrity": "sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==",
|
|
480
|
-
"cpu": [
|
|
481
|
-
"x64"
|
|
482
|
-
],
|
|
483
|
-
"dev": true,
|
|
484
|
-
"license": "MIT",
|
|
485
|
-
"optional": true,
|
|
486
|
-
"os": [
|
|
487
|
-
"freebsd"
|
|
488
|
-
],
|
|
489
|
-
"peer": true,
|
|
490
|
-
"engines": {
|
|
491
|
-
"node": ">=18"
|
|
492
|
-
}
|
|
493
|
-
},
|
|
494
|
-
"node_modules/@esbuild/linux-arm": {
|
|
495
|
-
"version": "0.28.1",
|
|
496
|
-
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.1.tgz",
|
|
497
|
-
"integrity": "sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==",
|
|
498
|
-
"cpu": [
|
|
499
|
-
"arm"
|
|
500
|
-
],
|
|
501
|
-
"dev": true,
|
|
502
|
-
"license": "MIT",
|
|
503
|
-
"optional": true,
|
|
504
|
-
"os": [
|
|
505
|
-
"linux"
|
|
506
|
-
],
|
|
507
|
-
"peer": true,
|
|
508
|
-
"engines": {
|
|
509
|
-
"node": ">=18"
|
|
510
|
-
}
|
|
511
|
-
},
|
|
512
|
-
"node_modules/@esbuild/linux-arm64": {
|
|
513
|
-
"version": "0.28.1",
|
|
514
|
-
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.1.tgz",
|
|
515
|
-
"integrity": "sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==",
|
|
516
|
-
"cpu": [
|
|
517
|
-
"arm64"
|
|
518
|
-
],
|
|
519
|
-
"dev": true,
|
|
520
|
-
"license": "MIT",
|
|
521
|
-
"optional": true,
|
|
522
|
-
"os": [
|
|
523
|
-
"linux"
|
|
524
|
-
],
|
|
525
|
-
"peer": true,
|
|
526
|
-
"engines": {
|
|
527
|
-
"node": ">=18"
|
|
528
|
-
}
|
|
529
|
-
},
|
|
530
|
-
"node_modules/@esbuild/linux-ia32": {
|
|
531
|
-
"version": "0.28.1",
|
|
532
|
-
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.1.tgz",
|
|
533
|
-
"integrity": "sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==",
|
|
534
|
-
"cpu": [
|
|
535
|
-
"ia32"
|
|
536
|
-
],
|
|
537
|
-
"dev": true,
|
|
538
|
-
"license": "MIT",
|
|
539
|
-
"optional": true,
|
|
540
|
-
"os": [
|
|
541
|
-
"linux"
|
|
542
|
-
],
|
|
543
|
-
"peer": true,
|
|
544
|
-
"engines": {
|
|
545
|
-
"node": ">=18"
|
|
546
|
-
}
|
|
547
|
-
},
|
|
548
|
-
"node_modules/@esbuild/linux-loong64": {
|
|
549
|
-
"version": "0.28.1",
|
|
550
|
-
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.1.tgz",
|
|
551
|
-
"integrity": "sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==",
|
|
552
|
-
"cpu": [
|
|
553
|
-
"loong64"
|
|
554
|
-
],
|
|
555
|
-
"dev": true,
|
|
556
|
-
"license": "MIT",
|
|
557
|
-
"optional": true,
|
|
558
|
-
"os": [
|
|
559
|
-
"linux"
|
|
560
|
-
],
|
|
561
|
-
"peer": true,
|
|
562
|
-
"engines": {
|
|
563
|
-
"node": ">=18"
|
|
564
|
-
}
|
|
565
|
-
},
|
|
566
|
-
"node_modules/@esbuild/linux-mips64el": {
|
|
567
|
-
"version": "0.28.1",
|
|
568
|
-
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.1.tgz",
|
|
569
|
-
"integrity": "sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==",
|
|
570
|
-
"cpu": [
|
|
571
|
-
"mips64el"
|
|
572
|
-
],
|
|
573
|
-
"dev": true,
|
|
574
|
-
"license": "MIT",
|
|
575
|
-
"optional": true,
|
|
576
|
-
"os": [
|
|
577
|
-
"linux"
|
|
578
|
-
],
|
|
579
|
-
"peer": true,
|
|
580
|
-
"engines": {
|
|
581
|
-
"node": ">=18"
|
|
582
|
-
}
|
|
583
|
-
},
|
|
584
|
-
"node_modules/@esbuild/linux-ppc64": {
|
|
585
|
-
"version": "0.28.1",
|
|
586
|
-
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.1.tgz",
|
|
587
|
-
"integrity": "sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==",
|
|
588
|
-
"cpu": [
|
|
589
|
-
"ppc64"
|
|
590
|
-
],
|
|
591
|
-
"dev": true,
|
|
592
|
-
"license": "MIT",
|
|
593
|
-
"optional": true,
|
|
594
|
-
"os": [
|
|
595
|
-
"linux"
|
|
596
|
-
],
|
|
597
|
-
"peer": true,
|
|
598
|
-
"engines": {
|
|
599
|
-
"node": ">=18"
|
|
600
|
-
}
|
|
601
|
-
},
|
|
602
|
-
"node_modules/@esbuild/linux-riscv64": {
|
|
603
|
-
"version": "0.28.1",
|
|
604
|
-
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.1.tgz",
|
|
605
|
-
"integrity": "sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==",
|
|
606
|
-
"cpu": [
|
|
607
|
-
"riscv64"
|
|
608
|
-
],
|
|
609
|
-
"dev": true,
|
|
610
|
-
"license": "MIT",
|
|
611
|
-
"optional": true,
|
|
612
|
-
"os": [
|
|
613
|
-
"linux"
|
|
614
|
-
],
|
|
615
|
-
"peer": true,
|
|
616
|
-
"engines": {
|
|
617
|
-
"node": ">=18"
|
|
618
|
-
}
|
|
619
|
-
},
|
|
620
|
-
"node_modules/@esbuild/linux-s390x": {
|
|
621
|
-
"version": "0.28.1",
|
|
622
|
-
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.1.tgz",
|
|
623
|
-
"integrity": "sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==",
|
|
624
|
-
"cpu": [
|
|
625
|
-
"s390x"
|
|
626
|
-
],
|
|
627
|
-
"dev": true,
|
|
628
|
-
"license": "MIT",
|
|
629
|
-
"optional": true,
|
|
630
|
-
"os": [
|
|
631
|
-
"linux"
|
|
632
|
-
],
|
|
633
|
-
"peer": true,
|
|
634
|
-
"engines": {
|
|
635
|
-
"node": ">=18"
|
|
636
|
-
}
|
|
637
|
-
},
|
|
638
|
-
"node_modules/@esbuild/linux-x64": {
|
|
639
|
-
"version": "0.28.1",
|
|
640
|
-
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.1.tgz",
|
|
641
|
-
"integrity": "sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==",
|
|
642
|
-
"cpu": [
|
|
643
|
-
"x64"
|
|
644
|
-
],
|
|
645
|
-
"dev": true,
|
|
646
|
-
"license": "MIT",
|
|
647
|
-
"optional": true,
|
|
648
|
-
"os": [
|
|
649
|
-
"linux"
|
|
650
|
-
],
|
|
651
|
-
"peer": true,
|
|
652
|
-
"engines": {
|
|
653
|
-
"node": ">=18"
|
|
654
|
-
}
|
|
655
|
-
},
|
|
656
|
-
"node_modules/@esbuild/netbsd-arm64": {
|
|
657
|
-
"version": "0.28.1",
|
|
658
|
-
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.1.tgz",
|
|
659
|
-
"integrity": "sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==",
|
|
660
|
-
"cpu": [
|
|
661
|
-
"arm64"
|
|
662
|
-
],
|
|
663
|
-
"dev": true,
|
|
664
|
-
"license": "MIT",
|
|
665
|
-
"optional": true,
|
|
666
|
-
"os": [
|
|
667
|
-
"netbsd"
|
|
668
|
-
],
|
|
669
|
-
"peer": true,
|
|
670
|
-
"engines": {
|
|
671
|
-
"node": ">=18"
|
|
672
|
-
}
|
|
673
|
-
},
|
|
674
|
-
"node_modules/@esbuild/netbsd-x64": {
|
|
675
|
-
"version": "0.28.1",
|
|
676
|
-
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.1.tgz",
|
|
677
|
-
"integrity": "sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==",
|
|
678
|
-
"cpu": [
|
|
679
|
-
"x64"
|
|
680
|
-
],
|
|
681
|
-
"dev": true,
|
|
682
|
-
"license": "MIT",
|
|
683
|
-
"optional": true,
|
|
684
|
-
"os": [
|
|
685
|
-
"netbsd"
|
|
686
|
-
],
|
|
687
|
-
"peer": true,
|
|
688
|
-
"engines": {
|
|
689
|
-
"node": ">=18"
|
|
690
|
-
}
|
|
691
|
-
},
|
|
692
|
-
"node_modules/@esbuild/openbsd-arm64": {
|
|
693
|
-
"version": "0.28.1",
|
|
694
|
-
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.1.tgz",
|
|
695
|
-
"integrity": "sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==",
|
|
696
|
-
"cpu": [
|
|
697
|
-
"arm64"
|
|
698
|
-
],
|
|
699
|
-
"dev": true,
|
|
700
|
-
"license": "MIT",
|
|
701
|
-
"optional": true,
|
|
702
|
-
"os": [
|
|
703
|
-
"openbsd"
|
|
704
|
-
],
|
|
705
|
-
"peer": true,
|
|
706
|
-
"engines": {
|
|
707
|
-
"node": ">=18"
|
|
708
|
-
}
|
|
709
|
-
},
|
|
710
|
-
"node_modules/@esbuild/openbsd-x64": {
|
|
711
|
-
"version": "0.28.1",
|
|
712
|
-
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.1.tgz",
|
|
713
|
-
"integrity": "sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==",
|
|
714
|
-
"cpu": [
|
|
715
|
-
"x64"
|
|
716
|
-
],
|
|
717
|
-
"dev": true,
|
|
718
|
-
"license": "MIT",
|
|
719
|
-
"optional": true,
|
|
720
|
-
"os": [
|
|
721
|
-
"openbsd"
|
|
722
|
-
],
|
|
723
|
-
"peer": true,
|
|
724
|
-
"engines": {
|
|
725
|
-
"node": ">=18"
|
|
726
|
-
}
|
|
727
|
-
},
|
|
728
|
-
"node_modules/@esbuild/openharmony-arm64": {
|
|
729
|
-
"version": "0.28.1",
|
|
730
|
-
"resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.1.tgz",
|
|
731
|
-
"integrity": "sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==",
|
|
732
|
-
"cpu": [
|
|
733
|
-
"arm64"
|
|
734
|
-
],
|
|
735
|
-
"dev": true,
|
|
736
|
-
"license": "MIT",
|
|
737
|
-
"optional": true,
|
|
738
|
-
"os": [
|
|
739
|
-
"openharmony"
|
|
740
|
-
],
|
|
741
|
-
"peer": true,
|
|
742
|
-
"engines": {
|
|
743
|
-
"node": ">=18"
|
|
744
|
-
}
|
|
745
|
-
},
|
|
746
|
-
"node_modules/@esbuild/sunos-x64": {
|
|
747
|
-
"version": "0.28.1",
|
|
748
|
-
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.1.tgz",
|
|
749
|
-
"integrity": "sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==",
|
|
750
|
-
"cpu": [
|
|
751
|
-
"x64"
|
|
752
|
-
],
|
|
753
|
-
"dev": true,
|
|
754
|
-
"license": "MIT",
|
|
755
|
-
"optional": true,
|
|
756
|
-
"os": [
|
|
757
|
-
"sunos"
|
|
758
|
-
],
|
|
759
|
-
"peer": true,
|
|
760
|
-
"engines": {
|
|
761
|
-
"node": ">=18"
|
|
762
|
-
}
|
|
763
|
-
},
|
|
764
|
-
"node_modules/@esbuild/win32-arm64": {
|
|
765
|
-
"version": "0.28.1",
|
|
766
|
-
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.1.tgz",
|
|
767
|
-
"integrity": "sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==",
|
|
768
|
-
"cpu": [
|
|
769
|
-
"arm64"
|
|
770
|
-
],
|
|
771
|
-
"dev": true,
|
|
772
|
-
"license": "MIT",
|
|
773
|
-
"optional": true,
|
|
774
|
-
"os": [
|
|
775
|
-
"win32"
|
|
776
|
-
],
|
|
777
|
-
"peer": true,
|
|
778
|
-
"engines": {
|
|
779
|
-
"node": ">=18"
|
|
780
|
-
}
|
|
781
|
-
},
|
|
782
|
-
"node_modules/@esbuild/win32-ia32": {
|
|
783
|
-
"version": "0.28.1",
|
|
784
|
-
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.1.tgz",
|
|
785
|
-
"integrity": "sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==",
|
|
786
|
-
"cpu": [
|
|
787
|
-
"ia32"
|
|
788
|
-
],
|
|
789
|
-
"dev": true,
|
|
790
|
-
"license": "MIT",
|
|
791
|
-
"optional": true,
|
|
792
|
-
"os": [
|
|
793
|
-
"win32"
|
|
794
|
-
],
|
|
795
|
-
"peer": true,
|
|
796
|
-
"engines": {
|
|
797
|
-
"node": ">=18"
|
|
798
|
-
}
|
|
799
|
-
},
|
|
800
|
-
"node_modules/@esbuild/win32-x64": {
|
|
801
|
-
"version": "0.28.1",
|
|
802
|
-
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.1.tgz",
|
|
803
|
-
"integrity": "sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==",
|
|
804
|
-
"cpu": [
|
|
805
|
-
"x64"
|
|
806
|
-
],
|
|
807
|
-
"dev": true,
|
|
808
|
-
"license": "MIT",
|
|
809
|
-
"optional": true,
|
|
810
|
-
"os": [
|
|
811
|
-
"win32"
|
|
812
|
-
],
|
|
813
|
-
"peer": true,
|
|
814
|
-
"engines": {
|
|
815
|
-
"node": ">=18"
|
|
816
|
-
}
|
|
817
|
-
},
|
|
818
350
|
"node_modules/@eslint-community/eslint-utils": {
|
|
819
351
|
"version": "4.9.1",
|
|
820
352
|
"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz",
|
|
@@ -1938,16 +1470,16 @@
|
|
|
1938
1470
|
}
|
|
1939
1471
|
},
|
|
1940
1472
|
"node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
|
|
1941
|
-
"version": "5.0.
|
|
1942
|
-
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.
|
|
1943
|
-
"integrity": "sha512-
|
|
1473
|
+
"version": "5.0.8",
|
|
1474
|
+
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.8.tgz",
|
|
1475
|
+
"integrity": "sha512-JZyDyq3D4AUifKTPOB7DELf6XsB3WdPuNxCtob1vFXPsSXhdAiHBWJ/tJ8HAc9aH84BK+5JFZLNkJKx3G9kzQg==",
|
|
1944
1476
|
"dev": true,
|
|
1945
1477
|
"license": "MIT",
|
|
1946
1478
|
"dependencies": {
|
|
1947
1479
|
"balanced-match": "^4.0.2"
|
|
1948
1480
|
},
|
|
1949
1481
|
"engines": {
|
|
1950
|
-
"node": "
|
|
1482
|
+
"node": "20 || >=22"
|
|
1951
1483
|
}
|
|
1952
1484
|
},
|
|
1953
1485
|
"node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
|
|
@@ -2139,9 +1671,9 @@
|
|
|
2139
1671
|
}
|
|
2140
1672
|
},
|
|
2141
1673
|
"node_modules/brace-expansion": {
|
|
2142
|
-
"version": "1.1.
|
|
2143
|
-
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.
|
|
2144
|
-
"integrity": "sha512-
|
|
1674
|
+
"version": "1.1.16",
|
|
1675
|
+
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.16.tgz",
|
|
1676
|
+
"integrity": "sha512-IDw48K2/2kRkg9LdJxurvq3lV3aBgq0REY89duEqFRthjlPdXHKMj7EnQOXVckxzgisinf3nHfrcE2FufFLXMw==",
|
|
2145
1677
|
"dev": true,
|
|
2146
1678
|
"license": "MIT",
|
|
2147
1679
|
"dependencies": {
|
|
@@ -2356,50 +1888,6 @@
|
|
|
2356
1888
|
"node": ">=10.13.0"
|
|
2357
1889
|
}
|
|
2358
1890
|
},
|
|
2359
|
-
"node_modules/esbuild": {
|
|
2360
|
-
"version": "0.28.1",
|
|
2361
|
-
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.1.tgz",
|
|
2362
|
-
"integrity": "sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==",
|
|
2363
|
-
"dev": true,
|
|
2364
|
-
"hasInstallScript": true,
|
|
2365
|
-
"license": "MIT",
|
|
2366
|
-
"optional": true,
|
|
2367
|
-
"peer": true,
|
|
2368
|
-
"bin": {
|
|
2369
|
-
"esbuild": "bin/esbuild"
|
|
2370
|
-
},
|
|
2371
|
-
"engines": {
|
|
2372
|
-
"node": ">=18"
|
|
2373
|
-
},
|
|
2374
|
-
"optionalDependencies": {
|
|
2375
|
-
"@esbuild/aix-ppc64": "0.28.1",
|
|
2376
|
-
"@esbuild/android-arm": "0.28.1",
|
|
2377
|
-
"@esbuild/android-arm64": "0.28.1",
|
|
2378
|
-
"@esbuild/android-x64": "0.28.1",
|
|
2379
|
-
"@esbuild/darwin-arm64": "0.28.1",
|
|
2380
|
-
"@esbuild/darwin-x64": "0.28.1",
|
|
2381
|
-
"@esbuild/freebsd-arm64": "0.28.1",
|
|
2382
|
-
"@esbuild/freebsd-x64": "0.28.1",
|
|
2383
|
-
"@esbuild/linux-arm": "0.28.1",
|
|
2384
|
-
"@esbuild/linux-arm64": "0.28.1",
|
|
2385
|
-
"@esbuild/linux-ia32": "0.28.1",
|
|
2386
|
-
"@esbuild/linux-loong64": "0.28.1",
|
|
2387
|
-
"@esbuild/linux-mips64el": "0.28.1",
|
|
2388
|
-
"@esbuild/linux-ppc64": "0.28.1",
|
|
2389
|
-
"@esbuild/linux-riscv64": "0.28.1",
|
|
2390
|
-
"@esbuild/linux-s390x": "0.28.1",
|
|
2391
|
-
"@esbuild/linux-x64": "0.28.1",
|
|
2392
|
-
"@esbuild/netbsd-arm64": "0.28.1",
|
|
2393
|
-
"@esbuild/netbsd-x64": "0.28.1",
|
|
2394
|
-
"@esbuild/openbsd-arm64": "0.28.1",
|
|
2395
|
-
"@esbuild/openbsd-x64": "0.28.1",
|
|
2396
|
-
"@esbuild/openharmony-arm64": "0.28.1",
|
|
2397
|
-
"@esbuild/sunos-x64": "0.28.1",
|
|
2398
|
-
"@esbuild/win32-arm64": "0.28.1",
|
|
2399
|
-
"@esbuild/win32-ia32": "0.28.1",
|
|
2400
|
-
"@esbuild/win32-x64": "0.28.1"
|
|
2401
|
-
}
|
|
2402
|
-
},
|
|
2403
1891
|
"node_modules/escalade": {
|
|
2404
1892
|
"version": "3.2.0",
|
|
2405
1893
|
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
|
|
@@ -66,6 +66,26 @@ not by hand: after recording the ship, `yad checkpoint --push` lands the new `bu
|
|
|
66
66
|
`chore(hub): …` audit-trail commit on the default branch (allowlist-scoped to the back-half ledgers,
|
|
67
67
|
never a front-half gate file); `yad tidy up` folds finished shards into `build-log.json` later.
|
|
68
68
|
|
|
69
|
+
### Retroactive ship — a pre-tracking story (#142)
|
|
70
|
+
|
|
71
|
+
A story that was merged and shipped **before** the back-half ledger existed has no build-log ship, so
|
|
72
|
+
`yad checkpoint` can't carry its `status: shipped` flip (the flip is only carried when a ship backs it,
|
|
73
|
+
#112) — leaving a raw `git push origin main` as the only way to land it, against the never-raw-git
|
|
74
|
+
convention. To reconcile it through yad, record a **retroactive** ship, then checkpoint carries the flip
|
|
75
|
+
in the same commit:
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
yad checkpoint --retro-ship <epic>/<story> --repo <r> [--task <t>] [--merge-commit <sha>] [--push]
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
It writes ONE minimal ship shard marked `retroactive: true` (`task` defaults to the sentinel `retro`;
|
|
82
|
+
`mergeCommit` is written only if you pass `--merge-commit`; `shippedAt` is the backfill date), then runs
|
|
83
|
+
the normal checkpoint so the story's already-made `status:` flip rides along in the **same** commit. It
|
|
84
|
+
refuses when the story already has a real ship (then it isn't pre-tracking — use the normal flow). It
|
|
85
|
+
does **not** author the story frontmatter — and to keep evidence and the flip atomic (the no-drift
|
|
86
|
+
invariant), it **refuses** unless you have already set `status: shipped` in `stories/<story>.md`, so a
|
|
87
|
+
ship shard is never committed while the artifact still says `approved`.
|
|
88
|
+
|
|
69
89
|
**Engagement (the Review Companion).** Each `engineer_review` entry carries `engagement: verified | none`
|
|
70
90
|
— `verified` when the engineer reviewed through the [companion](../../yad-review-companion/SKILL.md)
|
|
71
91
|
(`yad review trailer/context/nudge`, a real trailer/cards/chat session over the diff), `none` for a bare
|
|
@@ -112,6 +112,19 @@ Append-only ledger (an array). Each entry:
|
|
|
112
112
|
`source: "bridge"` marks an approval synced from a hub review PR/MR by `yad-review-gate action: sync`
|
|
113
113
|
(via `yad-hub-bridge`). Manual approvals omit `source` and are never altered by `sync`.
|
|
114
114
|
|
|
115
|
+
A **bridge** approval carries four more fields, all written by `sync` and all about *what was approved*
|
|
116
|
+
rather than *who approved*:
|
|
117
|
+
|
|
118
|
+
| Field | Meaning |
|
|
119
|
+
|-------|---------|
|
|
120
|
+
| `artifactHash` | the content fingerprint the approval is bound to (`sha256:…`). The gate drops any approval whose hash ≠ the artifact's current one — this is revoke-on-change. For architecture it is the locked contract surface, for stories the whole `stories/` set. |
|
|
121
|
+
| `approvedAt` | when the platform says the review was submitted. Used to tell a genuine re-approval from the same review read again; **absent on GitLab**, which exposes no per-approval timestamp. |
|
|
122
|
+
| `pr` | the PR/MR number the approval arrived on. The second proof of a genuine re-approval, and the only one available on GitLab: a re-opened review is always a new PR, so an approval on a different number cannot be the old one re-read. Records written before this field existed are stamped once, from the `hub-prs.json` pointer they were recorded against. |
|
|
123
|
+
| `engagement` | `verified` when the approval carried the companion's engagement marker, else `none`. Advisory unless `hub.review.requireEngagement` is on. |
|
|
124
|
+
|
|
125
|
+
`date` is when the sync **recorded** the approval, not when it was given — it is preserved across an
|
|
126
|
+
unchanged re-sync so that re-reading a review never churns the ledger.
|
|
127
|
+
|
|
115
128
|
## `comments.json`
|
|
116
129
|
Append-only ledger (an array), the machine-readable counterpart to the `reviews/*--comments.md` markdown
|
|
117
130
|
("who reviewed/commented", as `approvals.json` is "who approved"). Written by `yad-review-gate`'s
|