doc-detective 4.33.0 → 4.34.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.
@@ -34523,6 +34523,56 @@
34523
34523
  }
34524
34524
  ]
34525
34525
  },
34526
+ "verify": {
34527
+ "title": "Recording verify guards",
34528
+ "description": "Structural assertions on the produced video file, evaluated when the recording stops. Unlike checkpoint drift (a WARNING), a violated guard FAILs the stopRecord step — these are properties you explicitly demand of the artifact.",
34529
+ "type": "object",
34530
+ "additionalProperties": false,
34531
+ "properties": {
34532
+ "minDuration": {
34533
+ "type": "number",
34534
+ "description": "Fail if the video is shorter than this many seconds.",
34535
+ "minimum": 0
34536
+ },
34537
+ "maxDuration": {
34538
+ "type": "number",
34539
+ "description": "Fail if the video is longer than this many seconds.",
34540
+ "minimum": 0
34541
+ },
34542
+ "resolution": {
34543
+ "description": "Verify the video's dimensions (±2 pixels — encoders round to even dimensions). `true` compares against the capture plan's resolved expectation (the crop rectangle when a window/viewport crop applied, else the capture frame size; skipped when no expectation exists for the engine). An object compares literal dimensions.",
34544
+ "anyOf": [
34545
+ {
34546
+ "type": "boolean",
34547
+ "title": "Verify resolution (boolean)"
34548
+ },
34549
+ {
34550
+ "type": "object",
34551
+ "title": "Verify resolution (detailed)",
34552
+ "additionalProperties": false,
34553
+ "required": [
34554
+ "width",
34555
+ "height"
34556
+ ],
34557
+ "properties": {
34558
+ "width": {
34559
+ "type": "integer",
34560
+ "minimum": 1
34561
+ },
34562
+ "height": {
34563
+ "type": "integer",
34564
+ "minimum": 1
34565
+ }
34566
+ }
34567
+ }
34568
+ ]
34569
+ },
34570
+ "notBlack": {
34571
+ "type": "boolean",
34572
+ "description": "Fail if the video is essentially all black (black frames cover 95% or more of its duration) — the classic symptom of a broken screen capture."
34573
+ }
34574
+ }
34575
+ },
34526
34576
  "checkpoints": {
34527
34577
  "title": "Recording checkpoints",
34528
34578
  "description": "Capture a checkpoint screenshot after every step while this recording is active and compare each against a persistent baseline stored beside the recording (`<path>.checkpoints/` by default). Baselines seed on the first run; on later runs, per-checkpoint variation is reported in the `stopRecord` step's outputs, and variation beyond `maxVariation` surfaces as a WARNING. If `false` or unset, no checkpoints are captured.",
@@ -34878,6 +34928,56 @@
34878
34928
  }
34879
34929
  ]
34880
34930
  },
34931
+ "verify": {
34932
+ "title": "Recording verify guards",
34933
+ "description": "Structural assertions on the produced video file, evaluated when the recording stops. Unlike checkpoint drift (a WARNING), a violated guard FAILs the stopRecord step — these are properties you explicitly demand of the artifact.",
34934
+ "type": "object",
34935
+ "additionalProperties": false,
34936
+ "properties": {
34937
+ "minDuration": {
34938
+ "type": "number",
34939
+ "description": "Fail if the video is shorter than this many seconds.",
34940
+ "minimum": 0
34941
+ },
34942
+ "maxDuration": {
34943
+ "type": "number",
34944
+ "description": "Fail if the video is longer than this many seconds.",
34945
+ "minimum": 0
34946
+ },
34947
+ "resolution": {
34948
+ "description": "Verify the video's dimensions (±2 pixels — encoders round to even dimensions). `true` compares against the capture plan's resolved expectation (the crop rectangle when a window/viewport crop applied, else the capture frame size; skipped when no expectation exists for the engine). An object compares literal dimensions.",
34949
+ "anyOf": [
34950
+ {
34951
+ "type": "boolean",
34952
+ "title": "Verify resolution (boolean)"
34953
+ },
34954
+ {
34955
+ "type": "object",
34956
+ "title": "Verify resolution (detailed)",
34957
+ "additionalProperties": false,
34958
+ "required": [
34959
+ "width",
34960
+ "height"
34961
+ ],
34962
+ "properties": {
34963
+ "width": {
34964
+ "type": "integer",
34965
+ "minimum": 1
34966
+ },
34967
+ "height": {
34968
+ "type": "integer",
34969
+ "minimum": 1
34970
+ }
34971
+ }
34972
+ }
34973
+ ]
34974
+ },
34975
+ "notBlack": {
34976
+ "type": "boolean",
34977
+ "description": "Fail if the video is essentially all black (black frames cover 95% or more of its duration) — the classic symptom of a broken screen capture."
34978
+ }
34979
+ }
34980
+ },
34881
34981
  "checkpoints": {
34882
34982
  "title": "Recording checkpoints",
34883
34983
  "description": "Capture a checkpoint screenshot after every step while this recording is active and compare each against a persistent baseline stored beside the recording (`<path>.checkpoints/` by default). Baselines seed on the first run; on later runs, per-checkpoint variation is reported in the `stopRecord` step's outputs, and variation beyond `maxVariation` surfaces as a WARNING. If `false` or unset, no checkpoints are captured.",
@@ -80245,6 +80345,56 @@
80245
80345
  }
80246
80346
  ]
80247
80347
  },
80348
+ "verify": {
80349
+ "title": "Recording verify guards",
80350
+ "description": "Structural assertions on the produced video file, evaluated when the recording stops. Unlike checkpoint drift (a WARNING), a violated guard FAILs the stopRecord step — these are properties you explicitly demand of the artifact.",
80351
+ "type": "object",
80352
+ "additionalProperties": false,
80353
+ "properties": {
80354
+ "minDuration": {
80355
+ "type": "number",
80356
+ "description": "Fail if the video is shorter than this many seconds.",
80357
+ "minimum": 0
80358
+ },
80359
+ "maxDuration": {
80360
+ "type": "number",
80361
+ "description": "Fail if the video is longer than this many seconds.",
80362
+ "minimum": 0
80363
+ },
80364
+ "resolution": {
80365
+ "description": "Verify the video's dimensions (±2 pixels — encoders round to even dimensions). `true` compares against the capture plan's resolved expectation (the crop rectangle when a window/viewport crop applied, else the capture frame size; skipped when no expectation exists for the engine). An object compares literal dimensions.",
80366
+ "anyOf": [
80367
+ {
80368
+ "type": "boolean",
80369
+ "title": "Verify resolution (boolean)"
80370
+ },
80371
+ {
80372
+ "type": "object",
80373
+ "title": "Verify resolution (detailed)",
80374
+ "additionalProperties": false,
80375
+ "required": [
80376
+ "width",
80377
+ "height"
80378
+ ],
80379
+ "properties": {
80380
+ "width": {
80381
+ "type": "integer",
80382
+ "minimum": 1
80383
+ },
80384
+ "height": {
80385
+ "type": "integer",
80386
+ "minimum": 1
80387
+ }
80388
+ }
80389
+ }
80390
+ ]
80391
+ },
80392
+ "notBlack": {
80393
+ "type": "boolean",
80394
+ "description": "Fail if the video is essentially all black (black frames cover 95% or more of its duration) — the classic symptom of a broken screen capture."
80395
+ }
80396
+ }
80397
+ },
80248
80398
  "checkpoints": {
80249
80399
  "title": "Recording checkpoints",
80250
80400
  "description": "Capture a checkpoint screenshot after every step while this recording is active and compare each against a persistent baseline stored beside the recording (`<path>.checkpoints/` by default). Baselines seed on the first run; on later runs, per-checkpoint variation is reported in the `stopRecord` step's outputs, and variation beyond `maxVariation` surfaces as a WARNING. If `false` or unset, no checkpoints are captured.",
@@ -80600,6 +80750,56 @@
80600
80750
  }
80601
80751
  ]
80602
80752
  },
80753
+ "verify": {
80754
+ "title": "Recording verify guards",
80755
+ "description": "Structural assertions on the produced video file, evaluated when the recording stops. Unlike checkpoint drift (a WARNING), a violated guard FAILs the stopRecord step — these are properties you explicitly demand of the artifact.",
80756
+ "type": "object",
80757
+ "additionalProperties": false,
80758
+ "properties": {
80759
+ "minDuration": {
80760
+ "type": "number",
80761
+ "description": "Fail if the video is shorter than this many seconds.",
80762
+ "minimum": 0
80763
+ },
80764
+ "maxDuration": {
80765
+ "type": "number",
80766
+ "description": "Fail if the video is longer than this many seconds.",
80767
+ "minimum": 0
80768
+ },
80769
+ "resolution": {
80770
+ "description": "Verify the video's dimensions (±2 pixels — encoders round to even dimensions). `true` compares against the capture plan's resolved expectation (the crop rectangle when a window/viewport crop applied, else the capture frame size; skipped when no expectation exists for the engine). An object compares literal dimensions.",
80771
+ "anyOf": [
80772
+ {
80773
+ "type": "boolean",
80774
+ "title": "Verify resolution (boolean)"
80775
+ },
80776
+ {
80777
+ "type": "object",
80778
+ "title": "Verify resolution (detailed)",
80779
+ "additionalProperties": false,
80780
+ "required": [
80781
+ "width",
80782
+ "height"
80783
+ ],
80784
+ "properties": {
80785
+ "width": {
80786
+ "type": "integer",
80787
+ "minimum": 1
80788
+ },
80789
+ "height": {
80790
+ "type": "integer",
80791
+ "minimum": 1
80792
+ }
80793
+ }
80794
+ }
80795
+ ]
80796
+ },
80797
+ "notBlack": {
80798
+ "type": "boolean",
80799
+ "description": "Fail if the video is essentially all black (black frames cover 95% or more of its duration) — the classic symptom of a broken screen capture."
80800
+ }
80801
+ }
80802
+ },
80603
80803
  "checkpoints": {
80604
80804
  "title": "Recording checkpoints",
80605
80805
  "description": "Capture a checkpoint screenshot after every step while this recording is active and compare each against a persistent baseline stored beside the recording (`<path>.checkpoints/` by default). Baselines seed on the first run; on later runs, per-checkpoint variation is reported in the `stopRecord` step's outputs, and variation beyond `maxVariation` surfaces as a WARNING. If `false` or unset, no checkpoints are captured.",
@@ -106607,6 +106807,56 @@
106607
106807
  }
106608
106808
  ]
106609
106809
  },
106810
+ "verify": {
106811
+ "title": "Recording verify guards",
106812
+ "description": "Structural assertions on the produced video file, evaluated when the recording stops. Unlike checkpoint drift (a WARNING), a violated guard FAILs the stopRecord step — these are properties you explicitly demand of the artifact.",
106813
+ "type": "object",
106814
+ "additionalProperties": false,
106815
+ "properties": {
106816
+ "minDuration": {
106817
+ "type": "number",
106818
+ "description": "Fail if the video is shorter than this many seconds.",
106819
+ "minimum": 0
106820
+ },
106821
+ "maxDuration": {
106822
+ "type": "number",
106823
+ "description": "Fail if the video is longer than this many seconds.",
106824
+ "minimum": 0
106825
+ },
106826
+ "resolution": {
106827
+ "description": "Verify the video's dimensions (±2 pixels — encoders round to even dimensions). `true` compares against the capture plan's resolved expectation (the crop rectangle when a window/viewport crop applied, else the capture frame size; skipped when no expectation exists for the engine). An object compares literal dimensions.",
106828
+ "anyOf": [
106829
+ {
106830
+ "type": "boolean",
106831
+ "title": "Verify resolution (boolean)"
106832
+ },
106833
+ {
106834
+ "type": "object",
106835
+ "title": "Verify resolution (detailed)",
106836
+ "additionalProperties": false,
106837
+ "required": [
106838
+ "width",
106839
+ "height"
106840
+ ],
106841
+ "properties": {
106842
+ "width": {
106843
+ "type": "integer",
106844
+ "minimum": 1
106845
+ },
106846
+ "height": {
106847
+ "type": "integer",
106848
+ "minimum": 1
106849
+ }
106850
+ }
106851
+ }
106852
+ ]
106853
+ },
106854
+ "notBlack": {
106855
+ "type": "boolean",
106856
+ "description": "Fail if the video is essentially all black (black frames cover 95% or more of its duration) — the classic symptom of a broken screen capture."
106857
+ }
106858
+ }
106859
+ },
106610
106860
  "checkpoints": {
106611
106861
  "title": "Recording checkpoints",
106612
106862
  "description": "Capture a checkpoint screenshot after every step while this recording is active and compare each against a persistent baseline stored beside the recording (`<path>.checkpoints/` by default). Baselines seed on the first run; on later runs, per-checkpoint variation is reported in the `stopRecord` step's outputs, and variation beyond `maxVariation` surfaces as a WARNING. If `false` or unset, no checkpoints are captured.",
@@ -106962,6 +107212,56 @@
106962
107212
  }
106963
107213
  ]
106964
107214
  },
107215
+ "verify": {
107216
+ "title": "Recording verify guards",
107217
+ "description": "Structural assertions on the produced video file, evaluated when the recording stops. Unlike checkpoint drift (a WARNING), a violated guard FAILs the stopRecord step — these are properties you explicitly demand of the artifact.",
107218
+ "type": "object",
107219
+ "additionalProperties": false,
107220
+ "properties": {
107221
+ "minDuration": {
107222
+ "type": "number",
107223
+ "description": "Fail if the video is shorter than this many seconds.",
107224
+ "minimum": 0
107225
+ },
107226
+ "maxDuration": {
107227
+ "type": "number",
107228
+ "description": "Fail if the video is longer than this many seconds.",
107229
+ "minimum": 0
107230
+ },
107231
+ "resolution": {
107232
+ "description": "Verify the video's dimensions (±2 pixels — encoders round to even dimensions). `true` compares against the capture plan's resolved expectation (the crop rectangle when a window/viewport crop applied, else the capture frame size; skipped when no expectation exists for the engine). An object compares literal dimensions.",
107233
+ "anyOf": [
107234
+ {
107235
+ "type": "boolean",
107236
+ "title": "Verify resolution (boolean)"
107237
+ },
107238
+ {
107239
+ "type": "object",
107240
+ "title": "Verify resolution (detailed)",
107241
+ "additionalProperties": false,
107242
+ "required": [
107243
+ "width",
107244
+ "height"
107245
+ ],
107246
+ "properties": {
107247
+ "width": {
107248
+ "type": "integer",
107249
+ "minimum": 1
107250
+ },
107251
+ "height": {
107252
+ "type": "integer",
107253
+ "minimum": 1
107254
+ }
107255
+ }
107256
+ }
107257
+ ]
107258
+ },
107259
+ "notBlack": {
107260
+ "type": "boolean",
107261
+ "description": "Fail if the video is essentially all black (black frames cover 95% or more of its duration) — the classic symptom of a broken screen capture."
107262
+ }
107263
+ }
107264
+ },
106965
107265
  "checkpoints": {
106966
107266
  "title": "Recording checkpoints",
106967
107267
  "description": "Capture a checkpoint screenshot after every step while this recording is active and compare each against a persistent baseline stored beside the recording (`<path>.checkpoints/` by default). Baselines seed on the first run; on later runs, per-checkpoint variation is reported in the `stopRecord` step's outputs, and variation beyond `maxVariation` surfaces as a WARNING. If `false` or unset, no checkpoints are captured.",
@@ -139331,6 +139631,56 @@
139331
139631
  }
139332
139632
  ]
139333
139633
  },
139634
+ "verify": {
139635
+ "title": "Recording verify guards",
139636
+ "description": "Structural assertions on the produced video file, evaluated when the recording stops. Unlike checkpoint drift (a WARNING), a violated guard FAILs the stopRecord step — these are properties you explicitly demand of the artifact.",
139637
+ "type": "object",
139638
+ "additionalProperties": false,
139639
+ "properties": {
139640
+ "minDuration": {
139641
+ "type": "number",
139642
+ "description": "Fail if the video is shorter than this many seconds.",
139643
+ "minimum": 0
139644
+ },
139645
+ "maxDuration": {
139646
+ "type": "number",
139647
+ "description": "Fail if the video is longer than this many seconds.",
139648
+ "minimum": 0
139649
+ },
139650
+ "resolution": {
139651
+ "description": "Verify the video's dimensions (±2 pixels — encoders round to even dimensions). `true` compares against the capture plan's resolved expectation (the crop rectangle when a window/viewport crop applied, else the capture frame size; skipped when no expectation exists for the engine). An object compares literal dimensions.",
139652
+ "anyOf": [
139653
+ {
139654
+ "type": "boolean",
139655
+ "title": "Verify resolution (boolean)"
139656
+ },
139657
+ {
139658
+ "type": "object",
139659
+ "title": "Verify resolution (detailed)",
139660
+ "additionalProperties": false,
139661
+ "required": [
139662
+ "width",
139663
+ "height"
139664
+ ],
139665
+ "properties": {
139666
+ "width": {
139667
+ "type": "integer",
139668
+ "minimum": 1
139669
+ },
139670
+ "height": {
139671
+ "type": "integer",
139672
+ "minimum": 1
139673
+ }
139674
+ }
139675
+ }
139676
+ ]
139677
+ },
139678
+ "notBlack": {
139679
+ "type": "boolean",
139680
+ "description": "Fail if the video is essentially all black (black frames cover 95% or more of its duration) — the classic symptom of a broken screen capture."
139681
+ }
139682
+ }
139683
+ },
139334
139684
  "checkpoints": {
139335
139685
  "title": "Recording checkpoints",
139336
139686
  "description": "Capture a checkpoint screenshot after every step while this recording is active and compare each against a persistent baseline stored beside the recording (`<path>.checkpoints/` by default). Baselines seed on the first run; on later runs, per-checkpoint variation is reported in the `stopRecord` step's outputs, and variation beyond `maxVariation` surfaces as a WARNING. If `false` or unset, no checkpoints are captured.",
@@ -139686,6 +140036,56 @@
139686
140036
  }
139687
140037
  ]
139688
140038
  },
140039
+ "verify": {
140040
+ "title": "Recording verify guards",
140041
+ "description": "Structural assertions on the produced video file, evaluated when the recording stops. Unlike checkpoint drift (a WARNING), a violated guard FAILs the stopRecord step — these are properties you explicitly demand of the artifact.",
140042
+ "type": "object",
140043
+ "additionalProperties": false,
140044
+ "properties": {
140045
+ "minDuration": {
140046
+ "type": "number",
140047
+ "description": "Fail if the video is shorter than this many seconds.",
140048
+ "minimum": 0
140049
+ },
140050
+ "maxDuration": {
140051
+ "type": "number",
140052
+ "description": "Fail if the video is longer than this many seconds.",
140053
+ "minimum": 0
140054
+ },
140055
+ "resolution": {
140056
+ "description": "Verify the video's dimensions (±2 pixels — encoders round to even dimensions). `true` compares against the capture plan's resolved expectation (the crop rectangle when a window/viewport crop applied, else the capture frame size; skipped when no expectation exists for the engine). An object compares literal dimensions.",
140057
+ "anyOf": [
140058
+ {
140059
+ "type": "boolean",
140060
+ "title": "Verify resolution (boolean)"
140061
+ },
140062
+ {
140063
+ "type": "object",
140064
+ "title": "Verify resolution (detailed)",
140065
+ "additionalProperties": false,
140066
+ "required": [
140067
+ "width",
140068
+ "height"
140069
+ ],
140070
+ "properties": {
140071
+ "width": {
140072
+ "type": "integer",
140073
+ "minimum": 1
140074
+ },
140075
+ "height": {
140076
+ "type": "integer",
140077
+ "minimum": 1
140078
+ }
140079
+ }
140080
+ }
140081
+ ]
140082
+ },
140083
+ "notBlack": {
140084
+ "type": "boolean",
140085
+ "description": "Fail if the video is essentially all black (black frames cover 95% or more of its duration) — the classic symptom of a broken screen capture."
140086
+ }
140087
+ }
140088
+ },
139689
140089
  "checkpoints": {
139690
140090
  "title": "Recording checkpoints",
139691
140091
  "description": "Capture a checkpoint screenshot after every step while this recording is active and compare each against a persistent baseline stored beside the recording (`<path>.checkpoints/` by default). Baselines seed on the first run; on later runs, per-checkpoint variation is reported in the `stopRecord` step's outputs, and variation beyond `maxVariation` surfaces as a WARNING. If `false` or unset, no checkpoints are captured.",
@@ -185053,6 +185453,56 @@
185053
185453
  }
185054
185454
  ]
185055
185455
  },
185456
+ "verify": {
185457
+ "title": "Recording verify guards",
185458
+ "description": "Structural assertions on the produced video file, evaluated when the recording stops. Unlike checkpoint drift (a WARNING), a violated guard FAILs the stopRecord step — these are properties you explicitly demand of the artifact.",
185459
+ "type": "object",
185460
+ "additionalProperties": false,
185461
+ "properties": {
185462
+ "minDuration": {
185463
+ "type": "number",
185464
+ "description": "Fail if the video is shorter than this many seconds.",
185465
+ "minimum": 0
185466
+ },
185467
+ "maxDuration": {
185468
+ "type": "number",
185469
+ "description": "Fail if the video is longer than this many seconds.",
185470
+ "minimum": 0
185471
+ },
185472
+ "resolution": {
185473
+ "description": "Verify the video's dimensions (±2 pixels — encoders round to even dimensions). `true` compares against the capture plan's resolved expectation (the crop rectangle when a window/viewport crop applied, else the capture frame size; skipped when no expectation exists for the engine). An object compares literal dimensions.",
185474
+ "anyOf": [
185475
+ {
185476
+ "type": "boolean",
185477
+ "title": "Verify resolution (boolean)"
185478
+ },
185479
+ {
185480
+ "type": "object",
185481
+ "title": "Verify resolution (detailed)",
185482
+ "additionalProperties": false,
185483
+ "required": [
185484
+ "width",
185485
+ "height"
185486
+ ],
185487
+ "properties": {
185488
+ "width": {
185489
+ "type": "integer",
185490
+ "minimum": 1
185491
+ },
185492
+ "height": {
185493
+ "type": "integer",
185494
+ "minimum": 1
185495
+ }
185496
+ }
185497
+ }
185498
+ ]
185499
+ },
185500
+ "notBlack": {
185501
+ "type": "boolean",
185502
+ "description": "Fail if the video is essentially all black (black frames cover 95% or more of its duration) — the classic symptom of a broken screen capture."
185503
+ }
185504
+ }
185505
+ },
185056
185506
  "checkpoints": {
185057
185507
  "title": "Recording checkpoints",
185058
185508
  "description": "Capture a checkpoint screenshot after every step while this recording is active and compare each against a persistent baseline stored beside the recording (`<path>.checkpoints/` by default). Baselines seed on the first run; on later runs, per-checkpoint variation is reported in the `stopRecord` step's outputs, and variation beyond `maxVariation` surfaces as a WARNING. If `false` or unset, no checkpoints are captured.",
@@ -185408,6 +185858,56 @@
185408
185858
  }
185409
185859
  ]
185410
185860
  },
185861
+ "verify": {
185862
+ "title": "Recording verify guards",
185863
+ "description": "Structural assertions on the produced video file, evaluated when the recording stops. Unlike checkpoint drift (a WARNING), a violated guard FAILs the stopRecord step — these are properties you explicitly demand of the artifact.",
185864
+ "type": "object",
185865
+ "additionalProperties": false,
185866
+ "properties": {
185867
+ "minDuration": {
185868
+ "type": "number",
185869
+ "description": "Fail if the video is shorter than this many seconds.",
185870
+ "minimum": 0
185871
+ },
185872
+ "maxDuration": {
185873
+ "type": "number",
185874
+ "description": "Fail if the video is longer than this many seconds.",
185875
+ "minimum": 0
185876
+ },
185877
+ "resolution": {
185878
+ "description": "Verify the video's dimensions (±2 pixels — encoders round to even dimensions). `true` compares against the capture plan's resolved expectation (the crop rectangle when a window/viewport crop applied, else the capture frame size; skipped when no expectation exists for the engine). An object compares literal dimensions.",
185879
+ "anyOf": [
185880
+ {
185881
+ "type": "boolean",
185882
+ "title": "Verify resolution (boolean)"
185883
+ },
185884
+ {
185885
+ "type": "object",
185886
+ "title": "Verify resolution (detailed)",
185887
+ "additionalProperties": false,
185888
+ "required": [
185889
+ "width",
185890
+ "height"
185891
+ ],
185892
+ "properties": {
185893
+ "width": {
185894
+ "type": "integer",
185895
+ "minimum": 1
185896
+ },
185897
+ "height": {
185898
+ "type": "integer",
185899
+ "minimum": 1
185900
+ }
185901
+ }
185902
+ }
185903
+ ]
185904
+ },
185905
+ "notBlack": {
185906
+ "type": "boolean",
185907
+ "description": "Fail if the video is essentially all black (black frames cover 95% or more of its duration) — the classic symptom of a broken screen capture."
185908
+ }
185909
+ }
185910
+ },
185411
185911
  "checkpoints": {
185412
185912
  "title": "Recording checkpoints",
185413
185913
  "description": "Capture a checkpoint screenshot after every step while this recording is active and compare each against a persistent baseline stored beside the recording (`<path>.checkpoints/` by default). Baselines seed on the first run; on later runs, per-checkpoint variation is reported in the `stopRecord` step's outputs, and variation beyond `maxVariation` surfaces as a WARNING. If `false` or unset, no checkpoints are captured.",
@@ -232514,6 +233014,56 @@
232514
233014
  }
232515
233015
  ]
232516
233016
  },
233017
+ "verify": {
233018
+ "title": "Recording verify guards",
233019
+ "description": "Structural assertions on the produced video file, evaluated when the recording stops. Unlike checkpoint drift (a WARNING), a violated guard FAILs the stopRecord step — these are properties you explicitly demand of the artifact.",
233020
+ "type": "object",
233021
+ "additionalProperties": false,
233022
+ "properties": {
233023
+ "minDuration": {
233024
+ "type": "number",
233025
+ "description": "Fail if the video is shorter than this many seconds.",
233026
+ "minimum": 0
233027
+ },
233028
+ "maxDuration": {
233029
+ "type": "number",
233030
+ "description": "Fail if the video is longer than this many seconds.",
233031
+ "minimum": 0
233032
+ },
233033
+ "resolution": {
233034
+ "description": "Verify the video's dimensions (±2 pixels — encoders round to even dimensions). `true` compares against the capture plan's resolved expectation (the crop rectangle when a window/viewport crop applied, else the capture frame size; skipped when no expectation exists for the engine). An object compares literal dimensions.",
233035
+ "anyOf": [
233036
+ {
233037
+ "type": "boolean",
233038
+ "title": "Verify resolution (boolean)"
233039
+ },
233040
+ {
233041
+ "type": "object",
233042
+ "title": "Verify resolution (detailed)",
233043
+ "additionalProperties": false,
233044
+ "required": [
233045
+ "width",
233046
+ "height"
233047
+ ],
233048
+ "properties": {
233049
+ "width": {
233050
+ "type": "integer",
233051
+ "minimum": 1
233052
+ },
233053
+ "height": {
233054
+ "type": "integer",
233055
+ "minimum": 1
233056
+ }
233057
+ }
233058
+ }
233059
+ ]
233060
+ },
233061
+ "notBlack": {
233062
+ "type": "boolean",
233063
+ "description": "Fail if the video is essentially all black (black frames cover 95% or more of its duration) — the classic symptom of a broken screen capture."
233064
+ }
233065
+ }
233066
+ },
232517
233067
  "checkpoints": {
232518
233068
  "title": "Recording checkpoints",
232519
233069
  "description": "Capture a checkpoint screenshot after every step while this recording is active and compare each against a persistent baseline stored beside the recording (`<path>.checkpoints/` by default). Baselines seed on the first run; on later runs, per-checkpoint variation is reported in the `stopRecord` step's outputs, and variation beyond `maxVariation` surfaces as a WARNING. If `false` or unset, no checkpoints are captured.",
@@ -232869,6 +233419,56 @@
232869
233419
  }
232870
233420
  ]
232871
233421
  },
233422
+ "verify": {
233423
+ "title": "Recording verify guards",
233424
+ "description": "Structural assertions on the produced video file, evaluated when the recording stops. Unlike checkpoint drift (a WARNING), a violated guard FAILs the stopRecord step — these are properties you explicitly demand of the artifact.",
233425
+ "type": "object",
233426
+ "additionalProperties": false,
233427
+ "properties": {
233428
+ "minDuration": {
233429
+ "type": "number",
233430
+ "description": "Fail if the video is shorter than this many seconds.",
233431
+ "minimum": 0
233432
+ },
233433
+ "maxDuration": {
233434
+ "type": "number",
233435
+ "description": "Fail if the video is longer than this many seconds.",
233436
+ "minimum": 0
233437
+ },
233438
+ "resolution": {
233439
+ "description": "Verify the video's dimensions (±2 pixels — encoders round to even dimensions). `true` compares against the capture plan's resolved expectation (the crop rectangle when a window/viewport crop applied, else the capture frame size; skipped when no expectation exists for the engine). An object compares literal dimensions.",
233440
+ "anyOf": [
233441
+ {
233442
+ "type": "boolean",
233443
+ "title": "Verify resolution (boolean)"
233444
+ },
233445
+ {
233446
+ "type": "object",
233447
+ "title": "Verify resolution (detailed)",
233448
+ "additionalProperties": false,
233449
+ "required": [
233450
+ "width",
233451
+ "height"
233452
+ ],
233453
+ "properties": {
233454
+ "width": {
233455
+ "type": "integer",
233456
+ "minimum": 1
233457
+ },
233458
+ "height": {
233459
+ "type": "integer",
233460
+ "minimum": 1
233461
+ }
233462
+ }
233463
+ }
233464
+ ]
233465
+ },
233466
+ "notBlack": {
233467
+ "type": "boolean",
233468
+ "description": "Fail if the video is essentially all black (black frames cover 95% or more of its duration) — the classic symptom of a broken screen capture."
233469
+ }
233470
+ }
233471
+ },
232872
233472
  "checkpoints": {
232873
233473
  "title": "Recording checkpoints",
232874
233474
  "description": "Capture a checkpoint screenshot after every step while this recording is active and compare each against a persistent baseline stored beside the recording (`<path>.checkpoints/` by default). Baselines seed on the first run; on later runs, per-checkpoint variation is reported in the `stopRecord` step's outputs, and variation beyond `maxVariation` surfaces as a WARNING. If `false` or unset, no checkpoints are captured.",
@@ -277498,6 +278098,56 @@
277498
278098
  }
277499
278099
  ]
277500
278100
  },
278101
+ "verify": {
278102
+ "title": "Recording verify guards",
278103
+ "description": "Structural assertions on the produced video file, evaluated when the recording stops. Unlike checkpoint drift (a WARNING), a violated guard FAILs the stopRecord step — these are properties you explicitly demand of the artifact.",
278104
+ "type": "object",
278105
+ "additionalProperties": false,
278106
+ "properties": {
278107
+ "minDuration": {
278108
+ "type": "number",
278109
+ "description": "Fail if the video is shorter than this many seconds.",
278110
+ "minimum": 0
278111
+ },
278112
+ "maxDuration": {
278113
+ "type": "number",
278114
+ "description": "Fail if the video is longer than this many seconds.",
278115
+ "minimum": 0
278116
+ },
278117
+ "resolution": {
278118
+ "description": "Verify the video's dimensions (±2 pixels — encoders round to even dimensions). `true` compares against the capture plan's resolved expectation (the crop rectangle when a window/viewport crop applied, else the capture frame size; skipped when no expectation exists for the engine). An object compares literal dimensions.",
278119
+ "anyOf": [
278120
+ {
278121
+ "type": "boolean",
278122
+ "title": "Verify resolution (boolean)"
278123
+ },
278124
+ {
278125
+ "type": "object",
278126
+ "title": "Verify resolution (detailed)",
278127
+ "additionalProperties": false,
278128
+ "required": [
278129
+ "width",
278130
+ "height"
278131
+ ],
278132
+ "properties": {
278133
+ "width": {
278134
+ "type": "integer",
278135
+ "minimum": 1
278136
+ },
278137
+ "height": {
278138
+ "type": "integer",
278139
+ "minimum": 1
278140
+ }
278141
+ }
278142
+ }
278143
+ ]
278144
+ },
278145
+ "notBlack": {
278146
+ "type": "boolean",
278147
+ "description": "Fail if the video is essentially all black (black frames cover 95% or more of its duration) — the classic symptom of a broken screen capture."
278148
+ }
278149
+ }
278150
+ },
277501
278151
  "checkpoints": {
277502
278152
  "title": "Recording checkpoints",
277503
278153
  "description": "Capture a checkpoint screenshot after every step while this recording is active and compare each against a persistent baseline stored beside the recording (`<path>.checkpoints/` by default). Baselines seed on the first run; on later runs, per-checkpoint variation is reported in the `stopRecord` step's outputs, and variation beyond `maxVariation` surfaces as a WARNING. If `false` or unset, no checkpoints are captured.",
@@ -277853,6 +278503,56 @@
277853
278503
  }
277854
278504
  ]
277855
278505
  },
278506
+ "verify": {
278507
+ "title": "Recording verify guards",
278508
+ "description": "Structural assertions on the produced video file, evaluated when the recording stops. Unlike checkpoint drift (a WARNING), a violated guard FAILs the stopRecord step — these are properties you explicitly demand of the artifact.",
278509
+ "type": "object",
278510
+ "additionalProperties": false,
278511
+ "properties": {
278512
+ "minDuration": {
278513
+ "type": "number",
278514
+ "description": "Fail if the video is shorter than this many seconds.",
278515
+ "minimum": 0
278516
+ },
278517
+ "maxDuration": {
278518
+ "type": "number",
278519
+ "description": "Fail if the video is longer than this many seconds.",
278520
+ "minimum": 0
278521
+ },
278522
+ "resolution": {
278523
+ "description": "Verify the video's dimensions (±2 pixels — encoders round to even dimensions). `true` compares against the capture plan's resolved expectation (the crop rectangle when a window/viewport crop applied, else the capture frame size; skipped when no expectation exists for the engine). An object compares literal dimensions.",
278524
+ "anyOf": [
278525
+ {
278526
+ "type": "boolean",
278527
+ "title": "Verify resolution (boolean)"
278528
+ },
278529
+ {
278530
+ "type": "object",
278531
+ "title": "Verify resolution (detailed)",
278532
+ "additionalProperties": false,
278533
+ "required": [
278534
+ "width",
278535
+ "height"
278536
+ ],
278537
+ "properties": {
278538
+ "width": {
278539
+ "type": "integer",
278540
+ "minimum": 1
278541
+ },
278542
+ "height": {
278543
+ "type": "integer",
278544
+ "minimum": 1
278545
+ }
278546
+ }
278547
+ }
278548
+ ]
278549
+ },
278550
+ "notBlack": {
278551
+ "type": "boolean",
278552
+ "description": "Fail if the video is essentially all black (black frames cover 95% or more of its duration) — the classic symptom of a broken screen capture."
278553
+ }
278554
+ }
278555
+ },
277856
278556
  "checkpoints": {
277857
278557
  "title": "Recording checkpoints",
277858
278558
  "description": "Capture a checkpoint screenshot after every step while this recording is active and compare each against a persistent baseline stored beside the recording (`<path>.checkpoints/` by default). Baselines seed on the first run; on later runs, per-checkpoint variation is reported in the `stopRecord` step's outputs, and variation beyond `maxVariation` surfaces as a WARNING. If `false` or unset, no checkpoints are captured.",
@@ -325443,6 +326143,56 @@
325443
326143
  }
325444
326144
  ]
325445
326145
  },
326146
+ "verify": {
326147
+ "title": "Recording verify guards",
326148
+ "description": "Structural assertions on the produced video file, evaluated when the recording stops. Unlike checkpoint drift (a WARNING), a violated guard FAILs the stopRecord step — these are properties you explicitly demand of the artifact.",
326149
+ "type": "object",
326150
+ "additionalProperties": false,
326151
+ "properties": {
326152
+ "minDuration": {
326153
+ "type": "number",
326154
+ "description": "Fail if the video is shorter than this many seconds.",
326155
+ "minimum": 0
326156
+ },
326157
+ "maxDuration": {
326158
+ "type": "number",
326159
+ "description": "Fail if the video is longer than this many seconds.",
326160
+ "minimum": 0
326161
+ },
326162
+ "resolution": {
326163
+ "description": "Verify the video's dimensions (±2 pixels — encoders round to even dimensions). `true` compares against the capture plan's resolved expectation (the crop rectangle when a window/viewport crop applied, else the capture frame size; skipped when no expectation exists for the engine). An object compares literal dimensions.",
326164
+ "anyOf": [
326165
+ {
326166
+ "type": "boolean",
326167
+ "title": "Verify resolution (boolean)"
326168
+ },
326169
+ {
326170
+ "type": "object",
326171
+ "title": "Verify resolution (detailed)",
326172
+ "additionalProperties": false,
326173
+ "required": [
326174
+ "width",
326175
+ "height"
326176
+ ],
326177
+ "properties": {
326178
+ "width": {
326179
+ "type": "integer",
326180
+ "minimum": 1
326181
+ },
326182
+ "height": {
326183
+ "type": "integer",
326184
+ "minimum": 1
326185
+ }
326186
+ }
326187
+ }
326188
+ ]
326189
+ },
326190
+ "notBlack": {
326191
+ "type": "boolean",
326192
+ "description": "Fail if the video is essentially all black (black frames cover 95% or more of its duration) — the classic symptom of a broken screen capture."
326193
+ }
326194
+ }
326195
+ },
325446
326196
  "checkpoints": {
325447
326197
  "title": "Recording checkpoints",
325448
326198
  "description": "Capture a checkpoint screenshot after every step while this recording is active and compare each against a persistent baseline stored beside the recording (`<path>.checkpoints/` by default). Baselines seed on the first run; on later runs, per-checkpoint variation is reported in the `stopRecord` step's outputs, and variation beyond `maxVariation` surfaces as a WARNING. If `false` or unset, no checkpoints are captured.",
@@ -325798,6 +326548,56 @@
325798
326548
  }
325799
326549
  ]
325800
326550
  },
326551
+ "verify": {
326552
+ "title": "Recording verify guards",
326553
+ "description": "Structural assertions on the produced video file, evaluated when the recording stops. Unlike checkpoint drift (a WARNING), a violated guard FAILs the stopRecord step — these are properties you explicitly demand of the artifact.",
326554
+ "type": "object",
326555
+ "additionalProperties": false,
326556
+ "properties": {
326557
+ "minDuration": {
326558
+ "type": "number",
326559
+ "description": "Fail if the video is shorter than this many seconds.",
326560
+ "minimum": 0
326561
+ },
326562
+ "maxDuration": {
326563
+ "type": "number",
326564
+ "description": "Fail if the video is longer than this many seconds.",
326565
+ "minimum": 0
326566
+ },
326567
+ "resolution": {
326568
+ "description": "Verify the video's dimensions (±2 pixels — encoders round to even dimensions). `true` compares against the capture plan's resolved expectation (the crop rectangle when a window/viewport crop applied, else the capture frame size; skipped when no expectation exists for the engine). An object compares literal dimensions.",
326569
+ "anyOf": [
326570
+ {
326571
+ "type": "boolean",
326572
+ "title": "Verify resolution (boolean)"
326573
+ },
326574
+ {
326575
+ "type": "object",
326576
+ "title": "Verify resolution (detailed)",
326577
+ "additionalProperties": false,
326578
+ "required": [
326579
+ "width",
326580
+ "height"
326581
+ ],
326582
+ "properties": {
326583
+ "width": {
326584
+ "type": "integer",
326585
+ "minimum": 1
326586
+ },
326587
+ "height": {
326588
+ "type": "integer",
326589
+ "minimum": 1
326590
+ }
326591
+ }
326592
+ }
326593
+ ]
326594
+ },
326595
+ "notBlack": {
326596
+ "type": "boolean",
326597
+ "description": "Fail if the video is essentially all black (black frames cover 95% or more of its duration) — the classic symptom of a broken screen capture."
326598
+ }
326599
+ }
326600
+ },
325801
326601
  "checkpoints": {
325802
326602
  "title": "Recording checkpoints",
325803
326603
  "description": "Capture a checkpoint screenshot after every step while this recording is active and compare each against a persistent baseline stored beside the recording (`<path>.checkpoints/` by default). Baselines seed on the first run; on later runs, per-checkpoint variation is reported in the `stopRecord` step's outputs, and variation beyond `maxVariation` surfaces as a WARNING. If `false` or unset, no checkpoints are captured.",
@@ -370427,6 +371227,56 @@
370427
371227
  }
370428
371228
  ]
370429
371229
  },
371230
+ "verify": {
371231
+ "title": "Recording verify guards",
371232
+ "description": "Structural assertions on the produced video file, evaluated when the recording stops. Unlike checkpoint drift (a WARNING), a violated guard FAILs the stopRecord step — these are properties you explicitly demand of the artifact.",
371233
+ "type": "object",
371234
+ "additionalProperties": false,
371235
+ "properties": {
371236
+ "minDuration": {
371237
+ "type": "number",
371238
+ "description": "Fail if the video is shorter than this many seconds.",
371239
+ "minimum": 0
371240
+ },
371241
+ "maxDuration": {
371242
+ "type": "number",
371243
+ "description": "Fail if the video is longer than this many seconds.",
371244
+ "minimum": 0
371245
+ },
371246
+ "resolution": {
371247
+ "description": "Verify the video's dimensions (±2 pixels — encoders round to even dimensions). `true` compares against the capture plan's resolved expectation (the crop rectangle when a window/viewport crop applied, else the capture frame size; skipped when no expectation exists for the engine). An object compares literal dimensions.",
371248
+ "anyOf": [
371249
+ {
371250
+ "type": "boolean",
371251
+ "title": "Verify resolution (boolean)"
371252
+ },
371253
+ {
371254
+ "type": "object",
371255
+ "title": "Verify resolution (detailed)",
371256
+ "additionalProperties": false,
371257
+ "required": [
371258
+ "width",
371259
+ "height"
371260
+ ],
371261
+ "properties": {
371262
+ "width": {
371263
+ "type": "integer",
371264
+ "minimum": 1
371265
+ },
371266
+ "height": {
371267
+ "type": "integer",
371268
+ "minimum": 1
371269
+ }
371270
+ }
371271
+ }
371272
+ ]
371273
+ },
371274
+ "notBlack": {
371275
+ "type": "boolean",
371276
+ "description": "Fail if the video is essentially all black (black frames cover 95% or more of its duration) — the classic symptom of a broken screen capture."
371277
+ }
371278
+ }
371279
+ },
370430
371280
  "checkpoints": {
370431
371281
  "title": "Recording checkpoints",
370432
371282
  "description": "Capture a checkpoint screenshot after every step while this recording is active and compare each against a persistent baseline stored beside the recording (`<path>.checkpoints/` by default). Baselines seed on the first run; on later runs, per-checkpoint variation is reported in the `stopRecord` step's outputs, and variation beyond `maxVariation` surfaces as a WARNING. If `false` or unset, no checkpoints are captured.",
@@ -370782,6 +371632,56 @@
370782
371632
  }
370783
371633
  ]
370784
371634
  },
371635
+ "verify": {
371636
+ "title": "Recording verify guards",
371637
+ "description": "Structural assertions on the produced video file, evaluated when the recording stops. Unlike checkpoint drift (a WARNING), a violated guard FAILs the stopRecord step — these are properties you explicitly demand of the artifact.",
371638
+ "type": "object",
371639
+ "additionalProperties": false,
371640
+ "properties": {
371641
+ "minDuration": {
371642
+ "type": "number",
371643
+ "description": "Fail if the video is shorter than this many seconds.",
371644
+ "minimum": 0
371645
+ },
371646
+ "maxDuration": {
371647
+ "type": "number",
371648
+ "description": "Fail if the video is longer than this many seconds.",
371649
+ "minimum": 0
371650
+ },
371651
+ "resolution": {
371652
+ "description": "Verify the video's dimensions (±2 pixels — encoders round to even dimensions). `true` compares against the capture plan's resolved expectation (the crop rectangle when a window/viewport crop applied, else the capture frame size; skipped when no expectation exists for the engine). An object compares literal dimensions.",
371653
+ "anyOf": [
371654
+ {
371655
+ "type": "boolean",
371656
+ "title": "Verify resolution (boolean)"
371657
+ },
371658
+ {
371659
+ "type": "object",
371660
+ "title": "Verify resolution (detailed)",
371661
+ "additionalProperties": false,
371662
+ "required": [
371663
+ "width",
371664
+ "height"
371665
+ ],
371666
+ "properties": {
371667
+ "width": {
371668
+ "type": "integer",
371669
+ "minimum": 1
371670
+ },
371671
+ "height": {
371672
+ "type": "integer",
371673
+ "minimum": 1
371674
+ }
371675
+ }
371676
+ }
371677
+ ]
371678
+ },
371679
+ "notBlack": {
371680
+ "type": "boolean",
371681
+ "description": "Fail if the video is essentially all black (black frames cover 95% or more of its duration) — the classic symptom of a broken screen capture."
371682
+ }
371683
+ }
371684
+ },
370785
371685
  "checkpoints": {
370786
371686
  "title": "Recording checkpoints",
370787
371687
  "description": "Capture a checkpoint screenshot after every step while this recording is active and compare each against a persistent baseline stored beside the recording (`<path>.checkpoints/` by default). Baselines seed on the first run; on later runs, per-checkpoint variation is reported in the `stopRecord` step's outputs, and variation beyond `maxVariation` surfaces as a WARNING. If `false` or unset, no checkpoints are captured.",
@@ -421702,6 +422602,56 @@
421702
422602
  }
421703
422603
  ]
421704
422604
  },
422605
+ "verify": {
422606
+ "title": "Recording verify guards",
422607
+ "description": "Structural assertions on the produced video file, evaluated when the recording stops. Unlike checkpoint drift (a WARNING), a violated guard FAILs the stopRecord step — these are properties you explicitly demand of the artifact.",
422608
+ "type": "object",
422609
+ "additionalProperties": false,
422610
+ "properties": {
422611
+ "minDuration": {
422612
+ "type": "number",
422613
+ "description": "Fail if the video is shorter than this many seconds.",
422614
+ "minimum": 0
422615
+ },
422616
+ "maxDuration": {
422617
+ "type": "number",
422618
+ "description": "Fail if the video is longer than this many seconds.",
422619
+ "minimum": 0
422620
+ },
422621
+ "resolution": {
422622
+ "description": "Verify the video's dimensions (±2 pixels — encoders round to even dimensions). `true` compares against the capture plan's resolved expectation (the crop rectangle when a window/viewport crop applied, else the capture frame size; skipped when no expectation exists for the engine). An object compares literal dimensions.",
422623
+ "anyOf": [
422624
+ {
422625
+ "type": "boolean",
422626
+ "title": "Verify resolution (boolean)"
422627
+ },
422628
+ {
422629
+ "type": "object",
422630
+ "title": "Verify resolution (detailed)",
422631
+ "additionalProperties": false,
422632
+ "required": [
422633
+ "width",
422634
+ "height"
422635
+ ],
422636
+ "properties": {
422637
+ "width": {
422638
+ "type": "integer",
422639
+ "minimum": 1
422640
+ },
422641
+ "height": {
422642
+ "type": "integer",
422643
+ "minimum": 1
422644
+ }
422645
+ }
422646
+ }
422647
+ ]
422648
+ },
422649
+ "notBlack": {
422650
+ "type": "boolean",
422651
+ "description": "Fail if the video is essentially all black (black frames cover 95% or more of its duration) — the classic symptom of a broken screen capture."
422652
+ }
422653
+ }
422654
+ },
421705
422655
  "checkpoints": {
421706
422656
  "title": "Recording checkpoints",
421707
422657
  "description": "Capture a checkpoint screenshot after every step while this recording is active and compare each against a persistent baseline stored beside the recording (`<path>.checkpoints/` by default). Baselines seed on the first run; on later runs, per-checkpoint variation is reported in the `stopRecord` step's outputs, and variation beyond `maxVariation` surfaces as a WARNING. If `false` or unset, no checkpoints are captured.",
@@ -422057,6 +423007,56 @@
422057
423007
  }
422058
423008
  ]
422059
423009
  },
423010
+ "verify": {
423011
+ "title": "Recording verify guards",
423012
+ "description": "Structural assertions on the produced video file, evaluated when the recording stops. Unlike checkpoint drift (a WARNING), a violated guard FAILs the stopRecord step — these are properties you explicitly demand of the artifact.",
423013
+ "type": "object",
423014
+ "additionalProperties": false,
423015
+ "properties": {
423016
+ "minDuration": {
423017
+ "type": "number",
423018
+ "description": "Fail if the video is shorter than this many seconds.",
423019
+ "minimum": 0
423020
+ },
423021
+ "maxDuration": {
423022
+ "type": "number",
423023
+ "description": "Fail if the video is longer than this many seconds.",
423024
+ "minimum": 0
423025
+ },
423026
+ "resolution": {
423027
+ "description": "Verify the video's dimensions (±2 pixels — encoders round to even dimensions). `true` compares against the capture plan's resolved expectation (the crop rectangle when a window/viewport crop applied, else the capture frame size; skipped when no expectation exists for the engine). An object compares literal dimensions.",
423028
+ "anyOf": [
423029
+ {
423030
+ "type": "boolean",
423031
+ "title": "Verify resolution (boolean)"
423032
+ },
423033
+ {
423034
+ "type": "object",
423035
+ "title": "Verify resolution (detailed)",
423036
+ "additionalProperties": false,
423037
+ "required": [
423038
+ "width",
423039
+ "height"
423040
+ ],
423041
+ "properties": {
423042
+ "width": {
423043
+ "type": "integer",
423044
+ "minimum": 1
423045
+ },
423046
+ "height": {
423047
+ "type": "integer",
423048
+ "minimum": 1
423049
+ }
423050
+ }
423051
+ }
423052
+ ]
423053
+ },
423054
+ "notBlack": {
423055
+ "type": "boolean",
423056
+ "description": "Fail if the video is essentially all black (black frames cover 95% or more of its duration) — the classic symptom of a broken screen capture."
423057
+ }
423058
+ }
423059
+ },
422060
423060
  "checkpoints": {
422061
423061
  "title": "Recording checkpoints",
422062
423062
  "description": "Capture a checkpoint screenshot after every step while this recording is active and compare each against a persistent baseline stored beside the recording (`<path>.checkpoints/` by default). Baselines seed on the first run; on later runs, per-checkpoint variation is reported in the `stopRecord` step's outputs, and variation beyond `maxVariation` surfaces as a WARNING. If `false` or unset, no checkpoints are captured.",
@@ -466686,6 +467686,56 @@
466686
467686
  }
466687
467687
  ]
466688
467688
  },
467689
+ "verify": {
467690
+ "title": "Recording verify guards",
467691
+ "description": "Structural assertions on the produced video file, evaluated when the recording stops. Unlike checkpoint drift (a WARNING), a violated guard FAILs the stopRecord step — these are properties you explicitly demand of the artifact.",
467692
+ "type": "object",
467693
+ "additionalProperties": false,
467694
+ "properties": {
467695
+ "minDuration": {
467696
+ "type": "number",
467697
+ "description": "Fail if the video is shorter than this many seconds.",
467698
+ "minimum": 0
467699
+ },
467700
+ "maxDuration": {
467701
+ "type": "number",
467702
+ "description": "Fail if the video is longer than this many seconds.",
467703
+ "minimum": 0
467704
+ },
467705
+ "resolution": {
467706
+ "description": "Verify the video's dimensions (±2 pixels — encoders round to even dimensions). `true` compares against the capture plan's resolved expectation (the crop rectangle when a window/viewport crop applied, else the capture frame size; skipped when no expectation exists for the engine). An object compares literal dimensions.",
467707
+ "anyOf": [
467708
+ {
467709
+ "type": "boolean",
467710
+ "title": "Verify resolution (boolean)"
467711
+ },
467712
+ {
467713
+ "type": "object",
467714
+ "title": "Verify resolution (detailed)",
467715
+ "additionalProperties": false,
467716
+ "required": [
467717
+ "width",
467718
+ "height"
467719
+ ],
467720
+ "properties": {
467721
+ "width": {
467722
+ "type": "integer",
467723
+ "minimum": 1
467724
+ },
467725
+ "height": {
467726
+ "type": "integer",
467727
+ "minimum": 1
467728
+ }
467729
+ }
467730
+ }
467731
+ ]
467732
+ },
467733
+ "notBlack": {
467734
+ "type": "boolean",
467735
+ "description": "Fail if the video is essentially all black (black frames cover 95% or more of its duration) — the classic symptom of a broken screen capture."
467736
+ }
467737
+ }
467738
+ },
466689
467739
  "checkpoints": {
466690
467740
  "title": "Recording checkpoints",
466691
467741
  "description": "Capture a checkpoint screenshot after every step while this recording is active and compare each against a persistent baseline stored beside the recording (`<path>.checkpoints/` by default). Baselines seed on the first run; on later runs, per-checkpoint variation is reported in the `stopRecord` step's outputs, and variation beyond `maxVariation` surfaces as a WARNING. If `false` or unset, no checkpoints are captured.",
@@ -467041,6 +468091,56 @@
467041
468091
  }
467042
468092
  ]
467043
468093
  },
468094
+ "verify": {
468095
+ "title": "Recording verify guards",
468096
+ "description": "Structural assertions on the produced video file, evaluated when the recording stops. Unlike checkpoint drift (a WARNING), a violated guard FAILs the stopRecord step — these are properties you explicitly demand of the artifact.",
468097
+ "type": "object",
468098
+ "additionalProperties": false,
468099
+ "properties": {
468100
+ "minDuration": {
468101
+ "type": "number",
468102
+ "description": "Fail if the video is shorter than this many seconds.",
468103
+ "minimum": 0
468104
+ },
468105
+ "maxDuration": {
468106
+ "type": "number",
468107
+ "description": "Fail if the video is longer than this many seconds.",
468108
+ "minimum": 0
468109
+ },
468110
+ "resolution": {
468111
+ "description": "Verify the video's dimensions (±2 pixels — encoders round to even dimensions). `true` compares against the capture plan's resolved expectation (the crop rectangle when a window/viewport crop applied, else the capture frame size; skipped when no expectation exists for the engine). An object compares literal dimensions.",
468112
+ "anyOf": [
468113
+ {
468114
+ "type": "boolean",
468115
+ "title": "Verify resolution (boolean)"
468116
+ },
468117
+ {
468118
+ "type": "object",
468119
+ "title": "Verify resolution (detailed)",
468120
+ "additionalProperties": false,
468121
+ "required": [
468122
+ "width",
468123
+ "height"
468124
+ ],
468125
+ "properties": {
468126
+ "width": {
468127
+ "type": "integer",
468128
+ "minimum": 1
468129
+ },
468130
+ "height": {
468131
+ "type": "integer",
468132
+ "minimum": 1
468133
+ }
468134
+ }
468135
+ }
468136
+ ]
468137
+ },
468138
+ "notBlack": {
468139
+ "type": "boolean",
468140
+ "description": "Fail if the video is essentially all black (black frames cover 95% or more of its duration) — the classic symptom of a broken screen capture."
468141
+ }
468142
+ }
468143
+ },
467044
468144
  "checkpoints": {
467045
468145
  "title": "Recording checkpoints",
467046
468146
  "description": "Capture a checkpoint screenshot after every step while this recording is active and compare each against a persistent baseline stored beside the recording (`<path>.checkpoints/` by default). Baselines seed on the first run; on later runs, per-checkpoint variation is reported in the `stopRecord` step's outputs, and variation beyond `maxVariation` surfaces as a WARNING. If `false` or unset, no checkpoints are captured.",
@@ -513362,6 +514462,56 @@
513362
514462
  }
513363
514463
  ]
513364
514464
  },
514465
+ "verify": {
514466
+ "title": "Recording verify guards",
514467
+ "description": "Structural assertions on the produced video file, evaluated when the recording stops. Unlike checkpoint drift (a WARNING), a violated guard FAILs the stopRecord step — these are properties you explicitly demand of the artifact.",
514468
+ "type": "object",
514469
+ "additionalProperties": false,
514470
+ "properties": {
514471
+ "minDuration": {
514472
+ "type": "number",
514473
+ "description": "Fail if the video is shorter than this many seconds.",
514474
+ "minimum": 0
514475
+ },
514476
+ "maxDuration": {
514477
+ "type": "number",
514478
+ "description": "Fail if the video is longer than this many seconds.",
514479
+ "minimum": 0
514480
+ },
514481
+ "resolution": {
514482
+ "description": "Verify the video's dimensions (±2 pixels — encoders round to even dimensions). `true` compares against the capture plan's resolved expectation (the crop rectangle when a window/viewport crop applied, else the capture frame size; skipped when no expectation exists for the engine). An object compares literal dimensions.",
514483
+ "anyOf": [
514484
+ {
514485
+ "type": "boolean",
514486
+ "title": "Verify resolution (boolean)"
514487
+ },
514488
+ {
514489
+ "type": "object",
514490
+ "title": "Verify resolution (detailed)",
514491
+ "additionalProperties": false,
514492
+ "required": [
514493
+ "width",
514494
+ "height"
514495
+ ],
514496
+ "properties": {
514497
+ "width": {
514498
+ "type": "integer",
514499
+ "minimum": 1
514500
+ },
514501
+ "height": {
514502
+ "type": "integer",
514503
+ "minimum": 1
514504
+ }
514505
+ }
514506
+ }
514507
+ ]
514508
+ },
514509
+ "notBlack": {
514510
+ "type": "boolean",
514511
+ "description": "Fail if the video is essentially all black (black frames cover 95% or more of its duration) — the classic symptom of a broken screen capture."
514512
+ }
514513
+ }
514514
+ },
513365
514515
  "checkpoints": {
513366
514516
  "title": "Recording checkpoints",
513367
514517
  "description": "Capture a checkpoint screenshot after every step while this recording is active and compare each against a persistent baseline stored beside the recording (`<path>.checkpoints/` by default). Baselines seed on the first run; on later runs, per-checkpoint variation is reported in the `stopRecord` step's outputs, and variation beyond `maxVariation` surfaces as a WARNING. If `false` or unset, no checkpoints are captured.",
@@ -513717,6 +514867,56 @@
513717
514867
  }
513718
514868
  ]
513719
514869
  },
514870
+ "verify": {
514871
+ "title": "Recording verify guards",
514872
+ "description": "Structural assertions on the produced video file, evaluated when the recording stops. Unlike checkpoint drift (a WARNING), a violated guard FAILs the stopRecord step — these are properties you explicitly demand of the artifact.",
514873
+ "type": "object",
514874
+ "additionalProperties": false,
514875
+ "properties": {
514876
+ "minDuration": {
514877
+ "type": "number",
514878
+ "description": "Fail if the video is shorter than this many seconds.",
514879
+ "minimum": 0
514880
+ },
514881
+ "maxDuration": {
514882
+ "type": "number",
514883
+ "description": "Fail if the video is longer than this many seconds.",
514884
+ "minimum": 0
514885
+ },
514886
+ "resolution": {
514887
+ "description": "Verify the video's dimensions (±2 pixels — encoders round to even dimensions). `true` compares against the capture plan's resolved expectation (the crop rectangle when a window/viewport crop applied, else the capture frame size; skipped when no expectation exists for the engine). An object compares literal dimensions.",
514888
+ "anyOf": [
514889
+ {
514890
+ "type": "boolean",
514891
+ "title": "Verify resolution (boolean)"
514892
+ },
514893
+ {
514894
+ "type": "object",
514895
+ "title": "Verify resolution (detailed)",
514896
+ "additionalProperties": false,
514897
+ "required": [
514898
+ "width",
514899
+ "height"
514900
+ ],
514901
+ "properties": {
514902
+ "width": {
514903
+ "type": "integer",
514904
+ "minimum": 1
514905
+ },
514906
+ "height": {
514907
+ "type": "integer",
514908
+ "minimum": 1
514909
+ }
514910
+ }
514911
+ }
514912
+ ]
514913
+ },
514914
+ "notBlack": {
514915
+ "type": "boolean",
514916
+ "description": "Fail if the video is essentially all black (black frames cover 95% or more of its duration) — the classic symptom of a broken screen capture."
514917
+ }
514918
+ }
514919
+ },
513720
514920
  "checkpoints": {
513721
514921
  "title": "Recording checkpoints",
513722
514922
  "description": "Capture a checkpoint screenshot after every step while this recording is active and compare each against a persistent baseline stored beside the recording (`<path>.checkpoints/` by default). Baselines seed on the first run; on later runs, per-checkpoint variation is reported in the `stopRecord` step's outputs, and variation beyond `maxVariation` surfaces as a WARNING. If `false` or unset, no checkpoints are captured.",
@@ -561691,6 +562891,56 @@
561691
562891
  }
561692
562892
  ]
561693
562893
  },
562894
+ "verify": {
562895
+ "title": "Recording verify guards",
562896
+ "description": "Structural assertions on the produced video file, evaluated when the recording stops. Unlike checkpoint drift (a WARNING), a violated guard FAILs the stopRecord step — these are properties you explicitly demand of the artifact.",
562897
+ "type": "object",
562898
+ "additionalProperties": false,
562899
+ "properties": {
562900
+ "minDuration": {
562901
+ "type": "number",
562902
+ "description": "Fail if the video is shorter than this many seconds.",
562903
+ "minimum": 0
562904
+ },
562905
+ "maxDuration": {
562906
+ "type": "number",
562907
+ "description": "Fail if the video is longer than this many seconds.",
562908
+ "minimum": 0
562909
+ },
562910
+ "resolution": {
562911
+ "description": "Verify the video's dimensions (±2 pixels — encoders round to even dimensions). `true` compares against the capture plan's resolved expectation (the crop rectangle when a window/viewport crop applied, else the capture frame size; skipped when no expectation exists for the engine). An object compares literal dimensions.",
562912
+ "anyOf": [
562913
+ {
562914
+ "type": "boolean",
562915
+ "title": "Verify resolution (boolean)"
562916
+ },
562917
+ {
562918
+ "type": "object",
562919
+ "title": "Verify resolution (detailed)",
562920
+ "additionalProperties": false,
562921
+ "required": [
562922
+ "width",
562923
+ "height"
562924
+ ],
562925
+ "properties": {
562926
+ "width": {
562927
+ "type": "integer",
562928
+ "minimum": 1
562929
+ },
562930
+ "height": {
562931
+ "type": "integer",
562932
+ "minimum": 1
562933
+ }
562934
+ }
562935
+ }
562936
+ ]
562937
+ },
562938
+ "notBlack": {
562939
+ "type": "boolean",
562940
+ "description": "Fail if the video is essentially all black (black frames cover 95% or more of its duration) — the classic symptom of a broken screen capture."
562941
+ }
562942
+ }
562943
+ },
561694
562944
  "checkpoints": {
561695
562945
  "title": "Recording checkpoints",
561696
562946
  "description": "Capture a checkpoint screenshot after every step while this recording is active and compare each against a persistent baseline stored beside the recording (`<path>.checkpoints/` by default). Baselines seed on the first run; on later runs, per-checkpoint variation is reported in the `stopRecord` step's outputs, and variation beyond `maxVariation` surfaces as a WARNING. If `false` or unset, no checkpoints are captured.",
@@ -562046,6 +563296,56 @@
562046
563296
  }
562047
563297
  ]
562048
563298
  },
563299
+ "verify": {
563300
+ "title": "Recording verify guards",
563301
+ "description": "Structural assertions on the produced video file, evaluated when the recording stops. Unlike checkpoint drift (a WARNING), a violated guard FAILs the stopRecord step — these are properties you explicitly demand of the artifact.",
563302
+ "type": "object",
563303
+ "additionalProperties": false,
563304
+ "properties": {
563305
+ "minDuration": {
563306
+ "type": "number",
563307
+ "description": "Fail if the video is shorter than this many seconds.",
563308
+ "minimum": 0
563309
+ },
563310
+ "maxDuration": {
563311
+ "type": "number",
563312
+ "description": "Fail if the video is longer than this many seconds.",
563313
+ "minimum": 0
563314
+ },
563315
+ "resolution": {
563316
+ "description": "Verify the video's dimensions (±2 pixels — encoders round to even dimensions). `true` compares against the capture plan's resolved expectation (the crop rectangle when a window/viewport crop applied, else the capture frame size; skipped when no expectation exists for the engine). An object compares literal dimensions.",
563317
+ "anyOf": [
563318
+ {
563319
+ "type": "boolean",
563320
+ "title": "Verify resolution (boolean)"
563321
+ },
563322
+ {
563323
+ "type": "object",
563324
+ "title": "Verify resolution (detailed)",
563325
+ "additionalProperties": false,
563326
+ "required": [
563327
+ "width",
563328
+ "height"
563329
+ ],
563330
+ "properties": {
563331
+ "width": {
563332
+ "type": "integer",
563333
+ "minimum": 1
563334
+ },
563335
+ "height": {
563336
+ "type": "integer",
563337
+ "minimum": 1
563338
+ }
563339
+ }
563340
+ }
563341
+ ]
563342
+ },
563343
+ "notBlack": {
563344
+ "type": "boolean",
563345
+ "description": "Fail if the video is essentially all black (black frames cover 95% or more of its duration) — the classic symptom of a broken screen capture."
563346
+ }
563347
+ }
563348
+ },
562049
563349
  "checkpoints": {
562050
563350
  "title": "Recording checkpoints",
562051
563351
  "description": "Capture a checkpoint screenshot after every step while this recording is active and compare each against a persistent baseline stored beside the recording (`<path>.checkpoints/` by default). Baselines seed on the first run; on later runs, per-checkpoint variation is reported in the `stopRecord` step's outputs, and variation beyond `maxVariation` surfaces as a WARNING. If `false` or unset, no checkpoints are captured.",
@@ -606675,6 +607975,56 @@
606675
607975
  }
606676
607976
  ]
606677
607977
  },
607978
+ "verify": {
607979
+ "title": "Recording verify guards",
607980
+ "description": "Structural assertions on the produced video file, evaluated when the recording stops. Unlike checkpoint drift (a WARNING), a violated guard FAILs the stopRecord step — these are properties you explicitly demand of the artifact.",
607981
+ "type": "object",
607982
+ "additionalProperties": false,
607983
+ "properties": {
607984
+ "minDuration": {
607985
+ "type": "number",
607986
+ "description": "Fail if the video is shorter than this many seconds.",
607987
+ "minimum": 0
607988
+ },
607989
+ "maxDuration": {
607990
+ "type": "number",
607991
+ "description": "Fail if the video is longer than this many seconds.",
607992
+ "minimum": 0
607993
+ },
607994
+ "resolution": {
607995
+ "description": "Verify the video's dimensions (±2 pixels — encoders round to even dimensions). `true` compares against the capture plan's resolved expectation (the crop rectangle when a window/viewport crop applied, else the capture frame size; skipped when no expectation exists for the engine). An object compares literal dimensions.",
607996
+ "anyOf": [
607997
+ {
607998
+ "type": "boolean",
607999
+ "title": "Verify resolution (boolean)"
608000
+ },
608001
+ {
608002
+ "type": "object",
608003
+ "title": "Verify resolution (detailed)",
608004
+ "additionalProperties": false,
608005
+ "required": [
608006
+ "width",
608007
+ "height"
608008
+ ],
608009
+ "properties": {
608010
+ "width": {
608011
+ "type": "integer",
608012
+ "minimum": 1
608013
+ },
608014
+ "height": {
608015
+ "type": "integer",
608016
+ "minimum": 1
608017
+ }
608018
+ }
608019
+ }
608020
+ ]
608021
+ },
608022
+ "notBlack": {
608023
+ "type": "boolean",
608024
+ "description": "Fail if the video is essentially all black (black frames cover 95% or more of its duration) — the classic symptom of a broken screen capture."
608025
+ }
608026
+ }
608027
+ },
606678
608028
  "checkpoints": {
606679
608029
  "title": "Recording checkpoints",
606680
608030
  "description": "Capture a checkpoint screenshot after every step while this recording is active and compare each against a persistent baseline stored beside the recording (`<path>.checkpoints/` by default). Baselines seed on the first run; on later runs, per-checkpoint variation is reported in the `stopRecord` step's outputs, and variation beyond `maxVariation` surfaces as a WARNING. If `false` or unset, no checkpoints are captured.",
@@ -607030,6 +608380,56 @@
607030
608380
  }
607031
608381
  ]
607032
608382
  },
608383
+ "verify": {
608384
+ "title": "Recording verify guards",
608385
+ "description": "Structural assertions on the produced video file, evaluated when the recording stops. Unlike checkpoint drift (a WARNING), a violated guard FAILs the stopRecord step — these are properties you explicitly demand of the artifact.",
608386
+ "type": "object",
608387
+ "additionalProperties": false,
608388
+ "properties": {
608389
+ "minDuration": {
608390
+ "type": "number",
608391
+ "description": "Fail if the video is shorter than this many seconds.",
608392
+ "minimum": 0
608393
+ },
608394
+ "maxDuration": {
608395
+ "type": "number",
608396
+ "description": "Fail if the video is longer than this many seconds.",
608397
+ "minimum": 0
608398
+ },
608399
+ "resolution": {
608400
+ "description": "Verify the video's dimensions (±2 pixels — encoders round to even dimensions). `true` compares against the capture plan's resolved expectation (the crop rectangle when a window/viewport crop applied, else the capture frame size; skipped when no expectation exists for the engine). An object compares literal dimensions.",
608401
+ "anyOf": [
608402
+ {
608403
+ "type": "boolean",
608404
+ "title": "Verify resolution (boolean)"
608405
+ },
608406
+ {
608407
+ "type": "object",
608408
+ "title": "Verify resolution (detailed)",
608409
+ "additionalProperties": false,
608410
+ "required": [
608411
+ "width",
608412
+ "height"
608413
+ ],
608414
+ "properties": {
608415
+ "width": {
608416
+ "type": "integer",
608417
+ "minimum": 1
608418
+ },
608419
+ "height": {
608420
+ "type": "integer",
608421
+ "minimum": 1
608422
+ }
608423
+ }
608424
+ }
608425
+ ]
608426
+ },
608427
+ "notBlack": {
608428
+ "type": "boolean",
608429
+ "description": "Fail if the video is essentially all black (black frames cover 95% or more of its duration) — the classic symptom of a broken screen capture."
608430
+ }
608431
+ }
608432
+ },
607033
608433
  "checkpoints": {
607034
608434
  "title": "Recording checkpoints",
607035
608435
  "description": "Capture a checkpoint screenshot after every step while this recording is active and compare each against a persistent baseline stored beside the recording (`<path>.checkpoints/` by default). Baselines seed on the first run; on later runs, per-checkpoint variation is reported in the `stopRecord` step's outputs, and variation beyond `maxVariation` surfaces as a WARNING. If `false` or unset, no checkpoints are captured.",