vigiles 27.3.0 → 29.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/README.md +1 -1
  2. package/dist/adapter-registry.d.ts +39 -0
  3. package/dist/adapter-registry.js +45 -0
  4. package/dist/adapter.d.ts +8 -0
  5. package/dist/adapter.js +10 -1
  6. package/dist/adapters/claude-code/adapter.js +9 -2
  7. package/dist/adapters/claude-code/layout.d.ts +5 -0
  8. package/dist/adapters/claude-code/plugin-loader.d.ts +10 -1
  9. package/dist/adapters/claude-code/plugin-loader.js +10 -1
  10. package/dist/adapters/codex/adapter.js +7 -2
  11. package/dist/adapters/codex/layout.d.ts +51 -5
  12. package/dist/adapters/codex/layout.js +13 -4
  13. package/dist/adapters/opencode/adapter.js +6 -0
  14. package/dist/audit-report.template.html +1 -1
  15. package/dist/audit-score.d.ts +7 -0
  16. package/dist/audit-score.js +49 -2
  17. package/dist/cli-main.js +162 -39
  18. package/dist/core/adapter.d.ts +45 -1
  19. package/dist/core/compile.js +11 -1
  20. package/dist/core/config-schema.d.ts +244 -0
  21. package/dist/core/config-schema.js +452 -0
  22. package/dist/core/hook-program.d.ts +43 -0
  23. package/dist/core/hook-program.js +32 -0
  24. package/dist/core/refs.js +10 -1
  25. package/dist/core/surface-discovery.d.ts +270 -0
  26. package/dist/core/surface-discovery.js +425 -0
  27. package/dist/core/surface-scopes.d.ts +38 -1
  28. package/dist/core/surface-scopes.js +73 -1
  29. package/dist/core/symbols.d.ts +24 -2
  30. package/dist/core/symbols.js +66 -18
  31. package/dist/core/types.d.ts +36 -107
  32. package/dist/core/validate.d.ts +46 -18
  33. package/dist/core/validate.js +98 -172
  34. package/dist/exclude.d.ts +20 -0
  35. package/dist/exclude.js +11 -1
  36. package/dist/harness-test.js +3 -3
  37. package/dist/hook-install.d.ts +53 -0
  38. package/dist/hook-install.js +60 -0
  39. package/dist/hook-runtime.d.ts +2 -2
  40. package/dist/hook-runtime.js +82 -63
  41. package/dist/layout-registry.d.ts +14 -0
  42. package/dist/layout-registry.js +40 -0
  43. package/dist/load-hook.d.ts +1 -1
  44. package/dist/load-hook.js +2 -2
  45. package/dist/plugin-loader.d.ts +49 -1
  46. package/dist/plugin-loader.js +120 -14
  47. package/dist/run-hook.js +17 -1
  48. package/dist/scan-core.d.ts +19 -0
  49. package/dist/scan-core.js +30 -0
  50. package/dist/scan-files.js +15 -5
  51. package/dist/scan.d.ts +63 -0
  52. package/dist/scan.js +68 -12
  53. package/dist/score-core.js +8 -0
  54. package/dist/setup-plan.d.ts +2 -1
  55. package/dist/setup-plan.js +7 -2
  56. package/dist/surface-discovery-fs.d.ts +12 -0
  57. package/dist/surface-discovery-fs.js +108 -0
  58. package/dist/vigilesrc.schema.json +1689 -0
  59. package/package.json +10 -6
@@ -0,0 +1,1689 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://unpkg.com/vigiles/dist/vigilesrc.schema.json",
4
+ "title": "vigiles configuration (.vigilesrc.json)",
5
+ "type": "object",
6
+ "properties": {
7
+ "ruleMarkers": {
8
+ "default": [
9
+ "headings",
10
+ "checkboxes"
11
+ ],
12
+ "type": "array",
13
+ "items": {
14
+ "type": "string",
15
+ "enum": [
16
+ "headings",
17
+ "checkboxes"
18
+ ]
19
+ }
20
+ },
21
+ "rules": {
22
+ "default": {},
23
+ "type": "object",
24
+ "properties": {
25
+ "spec-refs": {
26
+ "anyOf": [
27
+ {
28
+ "type": "string",
29
+ "const": "warn"
30
+ },
31
+ {
32
+ "type": "string",
33
+ "const": "error"
34
+ },
35
+ {
36
+ "type": "boolean",
37
+ "const": false
38
+ },
39
+ {
40
+ "type": "string",
41
+ "const": "off"
42
+ },
43
+ {
44
+ "type": "number",
45
+ "const": 0
46
+ },
47
+ {
48
+ "type": "number",
49
+ "const": 1
50
+ },
51
+ {
52
+ "type": "number",
53
+ "const": 2
54
+ },
55
+ {
56
+ "type": "boolean",
57
+ "const": true
58
+ }
59
+ ]
60
+ },
61
+ "orphan-docs": {
62
+ "anyOf": [
63
+ {
64
+ "type": "string",
65
+ "const": "warn"
66
+ },
67
+ {
68
+ "type": "string",
69
+ "const": "error"
70
+ },
71
+ {
72
+ "type": "boolean",
73
+ "const": false
74
+ },
75
+ {
76
+ "type": "string",
77
+ "const": "off"
78
+ },
79
+ {
80
+ "type": "number",
81
+ "const": 0
82
+ },
83
+ {
84
+ "type": "number",
85
+ "const": 1
86
+ },
87
+ {
88
+ "type": "number",
89
+ "const": 2
90
+ },
91
+ {
92
+ "type": "boolean",
93
+ "const": true
94
+ }
95
+ ]
96
+ },
97
+ "duplicate-rules": {
98
+ "anyOf": [
99
+ {
100
+ "type": "string",
101
+ "const": "warn"
102
+ },
103
+ {
104
+ "type": "string",
105
+ "const": "error"
106
+ },
107
+ {
108
+ "type": "boolean",
109
+ "const": false
110
+ },
111
+ {
112
+ "type": "string",
113
+ "const": "off"
114
+ },
115
+ {
116
+ "type": "number",
117
+ "const": 0
118
+ },
119
+ {
120
+ "type": "number",
121
+ "const": 1
122
+ },
123
+ {
124
+ "type": "number",
125
+ "const": 2
126
+ },
127
+ {
128
+ "type": "boolean",
129
+ "const": true
130
+ }
131
+ ]
132
+ },
133
+ "require-instructions-spec": {
134
+ "anyOf": [
135
+ {
136
+ "type": "string",
137
+ "const": "warn"
138
+ },
139
+ {
140
+ "type": "string",
141
+ "const": "error"
142
+ },
143
+ {
144
+ "type": "boolean",
145
+ "const": false
146
+ },
147
+ {
148
+ "type": "string",
149
+ "const": "off"
150
+ },
151
+ {
152
+ "type": "number",
153
+ "const": 0
154
+ },
155
+ {
156
+ "type": "number",
157
+ "const": 1
158
+ },
159
+ {
160
+ "type": "number",
161
+ "const": 2
162
+ },
163
+ {
164
+ "type": "boolean",
165
+ "const": true
166
+ }
167
+ ]
168
+ },
169
+ "require-skill-spec": {
170
+ "anyOf": [
171
+ {
172
+ "type": "string",
173
+ "const": "warn"
174
+ },
175
+ {
176
+ "type": "string",
177
+ "const": "error"
178
+ },
179
+ {
180
+ "type": "boolean",
181
+ "const": false
182
+ },
183
+ {
184
+ "type": "string",
185
+ "const": "off"
186
+ },
187
+ {
188
+ "type": "number",
189
+ "const": 0
190
+ },
191
+ {
192
+ "type": "number",
193
+ "const": 1
194
+ },
195
+ {
196
+ "type": "number",
197
+ "const": 2
198
+ },
199
+ {
200
+ "type": "boolean",
201
+ "const": true
202
+ }
203
+ ]
204
+ },
205
+ "integrity": {
206
+ "anyOf": [
207
+ {
208
+ "type": "string",
209
+ "const": "warn"
210
+ },
211
+ {
212
+ "type": "string",
213
+ "const": "error"
214
+ },
215
+ {
216
+ "type": "boolean",
217
+ "const": false
218
+ },
219
+ {
220
+ "type": "string",
221
+ "const": "off"
222
+ },
223
+ {
224
+ "type": "number",
225
+ "const": 0
226
+ },
227
+ {
228
+ "type": "number",
229
+ "const": 1
230
+ },
231
+ {
232
+ "type": "number",
233
+ "const": 2
234
+ },
235
+ {
236
+ "type": "boolean",
237
+ "const": true
238
+ }
239
+ ]
240
+ },
241
+ "coverage": {
242
+ "anyOf": [
243
+ {
244
+ "anyOf": [
245
+ {
246
+ "type": "string",
247
+ "const": "warn"
248
+ },
249
+ {
250
+ "type": "string",
251
+ "const": "error"
252
+ },
253
+ {
254
+ "type": "boolean",
255
+ "const": false
256
+ },
257
+ {
258
+ "type": "string",
259
+ "const": "off"
260
+ },
261
+ {
262
+ "type": "number",
263
+ "const": 0
264
+ },
265
+ {
266
+ "type": "number",
267
+ "const": 1
268
+ },
269
+ {
270
+ "type": "number",
271
+ "const": 2
272
+ },
273
+ {
274
+ "type": "boolean",
275
+ "const": true
276
+ }
277
+ ]
278
+ },
279
+ {
280
+ "type": "array",
281
+ "prefixItems": [
282
+ {
283
+ "type": "string",
284
+ "const": "warn"
285
+ },
286
+ {
287
+ "type": "object",
288
+ "properties": {
289
+ "linterRules": {
290
+ "type": "number"
291
+ },
292
+ "scripts": {
293
+ "type": "number"
294
+ }
295
+ },
296
+ "additionalProperties": false
297
+ }
298
+ ],
299
+ "items": false,
300
+ "minItems": 2,
301
+ "maxItems": 2
302
+ },
303
+ {
304
+ "type": "array",
305
+ "prefixItems": [
306
+ {
307
+ "type": "string",
308
+ "const": "error"
309
+ },
310
+ {
311
+ "type": "object",
312
+ "properties": {
313
+ "linterRules": {
314
+ "type": "number"
315
+ },
316
+ "scripts": {
317
+ "type": "number"
318
+ }
319
+ },
320
+ "additionalProperties": false
321
+ }
322
+ ],
323
+ "items": false,
324
+ "minItems": 2,
325
+ "maxItems": 2
326
+ }
327
+ ]
328
+ },
329
+ "untested-skill": {
330
+ "anyOf": [
331
+ {
332
+ "anyOf": [
333
+ {
334
+ "type": "string",
335
+ "const": "warn"
336
+ },
337
+ {
338
+ "type": "string",
339
+ "const": "error"
340
+ },
341
+ {
342
+ "type": "boolean",
343
+ "const": false
344
+ },
345
+ {
346
+ "type": "string",
347
+ "const": "off"
348
+ },
349
+ {
350
+ "type": "number",
351
+ "const": 0
352
+ },
353
+ {
354
+ "type": "number",
355
+ "const": 1
356
+ },
357
+ {
358
+ "type": "number",
359
+ "const": 2
360
+ },
361
+ {
362
+ "type": "boolean",
363
+ "const": true
364
+ }
365
+ ]
366
+ },
367
+ {
368
+ "type": "array",
369
+ "prefixItems": [
370
+ {
371
+ "type": "string",
372
+ "const": "warn"
373
+ },
374
+ {
375
+ "type": "object",
376
+ "properties": {
377
+ "include": {
378
+ "anyOf": [
379
+ {
380
+ "type": "string"
381
+ },
382
+ {
383
+ "type": "array",
384
+ "items": {
385
+ "type": "string"
386
+ }
387
+ }
388
+ ]
389
+ },
390
+ "exclude": {
391
+ "anyOf": [
392
+ {
393
+ "type": "string"
394
+ },
395
+ {
396
+ "type": "array",
397
+ "items": {
398
+ "type": "string"
399
+ }
400
+ }
401
+ ]
402
+ },
403
+ "testExtension": {
404
+ "type": "string"
405
+ }
406
+ },
407
+ "additionalProperties": false
408
+ }
409
+ ],
410
+ "items": false,
411
+ "minItems": 2,
412
+ "maxItems": 2
413
+ },
414
+ {
415
+ "type": "array",
416
+ "prefixItems": [
417
+ {
418
+ "type": "string",
419
+ "const": "error"
420
+ },
421
+ {
422
+ "type": "object",
423
+ "properties": {
424
+ "include": {
425
+ "anyOf": [
426
+ {
427
+ "type": "string"
428
+ },
429
+ {
430
+ "type": "array",
431
+ "items": {
432
+ "type": "string"
433
+ }
434
+ }
435
+ ]
436
+ },
437
+ "exclude": {
438
+ "anyOf": [
439
+ {
440
+ "type": "string"
441
+ },
442
+ {
443
+ "type": "array",
444
+ "items": {
445
+ "type": "string"
446
+ }
447
+ }
448
+ ]
449
+ },
450
+ "testExtension": {
451
+ "type": "string"
452
+ }
453
+ },
454
+ "additionalProperties": false
455
+ }
456
+ ],
457
+ "items": false,
458
+ "minItems": 2,
459
+ "maxItems": 2
460
+ }
461
+ ]
462
+ },
463
+ "untested-subagent": {
464
+ "anyOf": [
465
+ {
466
+ "anyOf": [
467
+ {
468
+ "type": "string",
469
+ "const": "warn"
470
+ },
471
+ {
472
+ "type": "string",
473
+ "const": "error"
474
+ },
475
+ {
476
+ "type": "boolean",
477
+ "const": false
478
+ },
479
+ {
480
+ "type": "string",
481
+ "const": "off"
482
+ },
483
+ {
484
+ "type": "number",
485
+ "const": 0
486
+ },
487
+ {
488
+ "type": "number",
489
+ "const": 1
490
+ },
491
+ {
492
+ "type": "number",
493
+ "const": 2
494
+ },
495
+ {
496
+ "type": "boolean",
497
+ "const": true
498
+ }
499
+ ]
500
+ },
501
+ {
502
+ "type": "array",
503
+ "prefixItems": [
504
+ {
505
+ "type": "string",
506
+ "const": "warn"
507
+ },
508
+ {
509
+ "type": "object",
510
+ "properties": {
511
+ "include": {
512
+ "anyOf": [
513
+ {
514
+ "type": "string"
515
+ },
516
+ {
517
+ "type": "array",
518
+ "items": {
519
+ "type": "string"
520
+ }
521
+ }
522
+ ]
523
+ },
524
+ "exclude": {
525
+ "anyOf": [
526
+ {
527
+ "type": "string"
528
+ },
529
+ {
530
+ "type": "array",
531
+ "items": {
532
+ "type": "string"
533
+ }
534
+ }
535
+ ]
536
+ },
537
+ "testExtension": {
538
+ "type": "string"
539
+ }
540
+ },
541
+ "additionalProperties": false
542
+ }
543
+ ],
544
+ "items": false,
545
+ "minItems": 2,
546
+ "maxItems": 2
547
+ },
548
+ {
549
+ "type": "array",
550
+ "prefixItems": [
551
+ {
552
+ "type": "string",
553
+ "const": "error"
554
+ },
555
+ {
556
+ "type": "object",
557
+ "properties": {
558
+ "include": {
559
+ "anyOf": [
560
+ {
561
+ "type": "string"
562
+ },
563
+ {
564
+ "type": "array",
565
+ "items": {
566
+ "type": "string"
567
+ }
568
+ }
569
+ ]
570
+ },
571
+ "exclude": {
572
+ "anyOf": [
573
+ {
574
+ "type": "string"
575
+ },
576
+ {
577
+ "type": "array",
578
+ "items": {
579
+ "type": "string"
580
+ }
581
+ }
582
+ ]
583
+ },
584
+ "testExtension": {
585
+ "type": "string"
586
+ }
587
+ },
588
+ "additionalProperties": false
589
+ }
590
+ ],
591
+ "items": false,
592
+ "minItems": 2,
593
+ "maxItems": 2
594
+ }
595
+ ]
596
+ },
597
+ "untested-hook": {
598
+ "anyOf": [
599
+ {
600
+ "anyOf": [
601
+ {
602
+ "type": "string",
603
+ "const": "warn"
604
+ },
605
+ {
606
+ "type": "string",
607
+ "const": "error"
608
+ },
609
+ {
610
+ "type": "boolean",
611
+ "const": false
612
+ },
613
+ {
614
+ "type": "string",
615
+ "const": "off"
616
+ },
617
+ {
618
+ "type": "number",
619
+ "const": 0
620
+ },
621
+ {
622
+ "type": "number",
623
+ "const": 1
624
+ },
625
+ {
626
+ "type": "number",
627
+ "const": 2
628
+ },
629
+ {
630
+ "type": "boolean",
631
+ "const": true
632
+ }
633
+ ]
634
+ },
635
+ {
636
+ "type": "array",
637
+ "prefixItems": [
638
+ {
639
+ "type": "string",
640
+ "const": "warn"
641
+ },
642
+ {
643
+ "type": "object",
644
+ "properties": {
645
+ "include": {
646
+ "anyOf": [
647
+ {
648
+ "type": "string"
649
+ },
650
+ {
651
+ "type": "array",
652
+ "items": {
653
+ "type": "string"
654
+ }
655
+ }
656
+ ]
657
+ },
658
+ "exclude": {
659
+ "anyOf": [
660
+ {
661
+ "type": "string"
662
+ },
663
+ {
664
+ "type": "array",
665
+ "items": {
666
+ "type": "string"
667
+ }
668
+ }
669
+ ]
670
+ },
671
+ "testExtension": {
672
+ "type": "string"
673
+ }
674
+ },
675
+ "additionalProperties": false
676
+ }
677
+ ],
678
+ "items": false,
679
+ "minItems": 2,
680
+ "maxItems": 2
681
+ },
682
+ {
683
+ "type": "array",
684
+ "prefixItems": [
685
+ {
686
+ "type": "string",
687
+ "const": "error"
688
+ },
689
+ {
690
+ "type": "object",
691
+ "properties": {
692
+ "include": {
693
+ "anyOf": [
694
+ {
695
+ "type": "string"
696
+ },
697
+ {
698
+ "type": "array",
699
+ "items": {
700
+ "type": "string"
701
+ }
702
+ }
703
+ ]
704
+ },
705
+ "exclude": {
706
+ "anyOf": [
707
+ {
708
+ "type": "string"
709
+ },
710
+ {
711
+ "type": "array",
712
+ "items": {
713
+ "type": "string"
714
+ }
715
+ }
716
+ ]
717
+ },
718
+ "testExtension": {
719
+ "type": "string"
720
+ }
721
+ },
722
+ "additionalProperties": false
723
+ }
724
+ ],
725
+ "items": false,
726
+ "minItems": 2,
727
+ "maxItems": 2
728
+ }
729
+ ]
730
+ },
731
+ "unmarked-refs": {
732
+ "anyOf": [
733
+ {
734
+ "type": "string",
735
+ "const": "warn"
736
+ },
737
+ {
738
+ "type": "string",
739
+ "const": "error"
740
+ },
741
+ {
742
+ "type": "boolean",
743
+ "const": false
744
+ },
745
+ {
746
+ "type": "string",
747
+ "const": "off"
748
+ },
749
+ {
750
+ "type": "number",
751
+ "const": 0
752
+ },
753
+ {
754
+ "type": "number",
755
+ "const": 1
756
+ },
757
+ {
758
+ "type": "number",
759
+ "const": 2
760
+ },
761
+ {
762
+ "type": "boolean",
763
+ "const": true
764
+ }
765
+ ]
766
+ },
767
+ "subagent-tool-contract": {
768
+ "anyOf": [
769
+ {
770
+ "type": "string",
771
+ "const": "warn"
772
+ },
773
+ {
774
+ "type": "string",
775
+ "const": "error"
776
+ },
777
+ {
778
+ "type": "boolean",
779
+ "const": false
780
+ },
781
+ {
782
+ "type": "string",
783
+ "const": "off"
784
+ },
785
+ {
786
+ "type": "number",
787
+ "const": 0
788
+ },
789
+ {
790
+ "type": "number",
791
+ "const": 1
792
+ },
793
+ {
794
+ "type": "number",
795
+ "const": 2
796
+ },
797
+ {
798
+ "type": "boolean",
799
+ "const": true
800
+ }
801
+ ]
802
+ },
803
+ "hook-events": {
804
+ "anyOf": [
805
+ {
806
+ "type": "string",
807
+ "const": "warn"
808
+ },
809
+ {
810
+ "type": "string",
811
+ "const": "error"
812
+ },
813
+ {
814
+ "type": "boolean",
815
+ "const": false
816
+ },
817
+ {
818
+ "type": "string",
819
+ "const": "off"
820
+ },
821
+ {
822
+ "type": "number",
823
+ "const": 0
824
+ },
825
+ {
826
+ "type": "number",
827
+ "const": 1
828
+ },
829
+ {
830
+ "type": "number",
831
+ "const": 2
832
+ },
833
+ {
834
+ "type": "boolean",
835
+ "const": true
836
+ }
837
+ ]
838
+ },
839
+ "subagent-frontmatter": {
840
+ "anyOf": [
841
+ {
842
+ "type": "string",
843
+ "const": "warn"
844
+ },
845
+ {
846
+ "type": "string",
847
+ "const": "error"
848
+ },
849
+ {
850
+ "type": "boolean",
851
+ "const": false
852
+ },
853
+ {
854
+ "type": "string",
855
+ "const": "off"
856
+ },
857
+ {
858
+ "type": "number",
859
+ "const": 0
860
+ },
861
+ {
862
+ "type": "number",
863
+ "const": 1
864
+ },
865
+ {
866
+ "type": "number",
867
+ "const": 2
868
+ },
869
+ {
870
+ "type": "boolean",
871
+ "const": true
872
+ }
873
+ ]
874
+ },
875
+ "mcp-config": {
876
+ "anyOf": [
877
+ {
878
+ "type": "string",
879
+ "const": "warn"
880
+ },
881
+ {
882
+ "type": "string",
883
+ "const": "error"
884
+ },
885
+ {
886
+ "type": "boolean",
887
+ "const": false
888
+ },
889
+ {
890
+ "type": "string",
891
+ "const": "off"
892
+ },
893
+ {
894
+ "type": "number",
895
+ "const": 0
896
+ },
897
+ {
898
+ "type": "number",
899
+ "const": 1
900
+ },
901
+ {
902
+ "type": "number",
903
+ "const": 2
904
+ },
905
+ {
906
+ "type": "boolean",
907
+ "const": true
908
+ }
909
+ ]
910
+ },
911
+ "skill-frontmatter": {
912
+ "anyOf": [
913
+ {
914
+ "type": "string",
915
+ "const": "warn"
916
+ },
917
+ {
918
+ "type": "string",
919
+ "const": "error"
920
+ },
921
+ {
922
+ "type": "boolean",
923
+ "const": false
924
+ },
925
+ {
926
+ "type": "string",
927
+ "const": "off"
928
+ },
929
+ {
930
+ "type": "number",
931
+ "const": 0
932
+ },
933
+ {
934
+ "type": "number",
935
+ "const": 1
936
+ },
937
+ {
938
+ "type": "number",
939
+ "const": 2
940
+ },
941
+ {
942
+ "type": "boolean",
943
+ "const": true
944
+ }
945
+ ]
946
+ },
947
+ "mcp-tool-resolves": {
948
+ "anyOf": [
949
+ {
950
+ "type": "string",
951
+ "const": "warn"
952
+ },
953
+ {
954
+ "type": "string",
955
+ "const": "error"
956
+ },
957
+ {
958
+ "type": "boolean",
959
+ "const": false
960
+ },
961
+ {
962
+ "type": "string",
963
+ "const": "off"
964
+ },
965
+ {
966
+ "type": "number",
967
+ "const": 0
968
+ },
969
+ {
970
+ "type": "number",
971
+ "const": 1
972
+ },
973
+ {
974
+ "type": "number",
975
+ "const": 2
976
+ },
977
+ {
978
+ "type": "boolean",
979
+ "const": true
980
+ }
981
+ ]
982
+ },
983
+ "hook-script-exists": {
984
+ "anyOf": [
985
+ {
986
+ "type": "string",
987
+ "const": "warn"
988
+ },
989
+ {
990
+ "type": "string",
991
+ "const": "error"
992
+ },
993
+ {
994
+ "type": "boolean",
995
+ "const": false
996
+ },
997
+ {
998
+ "type": "string",
999
+ "const": "off"
1000
+ },
1001
+ {
1002
+ "type": "number",
1003
+ "const": 0
1004
+ },
1005
+ {
1006
+ "type": "number",
1007
+ "const": 1
1008
+ },
1009
+ {
1010
+ "type": "number",
1011
+ "const": 2
1012
+ },
1013
+ {
1014
+ "type": "boolean",
1015
+ "const": true
1016
+ }
1017
+ ]
1018
+ },
1019
+ "prefer-compiled-hooks": {
1020
+ "anyOf": [
1021
+ {
1022
+ "type": "string",
1023
+ "const": "warn"
1024
+ },
1025
+ {
1026
+ "type": "string",
1027
+ "const": "error"
1028
+ },
1029
+ {
1030
+ "type": "boolean",
1031
+ "const": false
1032
+ },
1033
+ {
1034
+ "type": "string",
1035
+ "const": "off"
1036
+ },
1037
+ {
1038
+ "type": "number",
1039
+ "const": 0
1040
+ },
1041
+ {
1042
+ "type": "number",
1043
+ "const": 1
1044
+ },
1045
+ {
1046
+ "type": "number",
1047
+ "const": 2
1048
+ },
1049
+ {
1050
+ "type": "boolean",
1051
+ "const": true
1052
+ }
1053
+ ]
1054
+ },
1055
+ "disallowed-tools-contract": {
1056
+ "anyOf": [
1057
+ {
1058
+ "type": "string",
1059
+ "const": "warn"
1060
+ },
1061
+ {
1062
+ "type": "string",
1063
+ "const": "error"
1064
+ },
1065
+ {
1066
+ "type": "boolean",
1067
+ "const": false
1068
+ },
1069
+ {
1070
+ "type": "string",
1071
+ "const": "off"
1072
+ },
1073
+ {
1074
+ "type": "number",
1075
+ "const": 0
1076
+ },
1077
+ {
1078
+ "type": "number",
1079
+ "const": 1
1080
+ },
1081
+ {
1082
+ "type": "number",
1083
+ "const": 2
1084
+ },
1085
+ {
1086
+ "type": "boolean",
1087
+ "const": true
1088
+ }
1089
+ ]
1090
+ },
1091
+ "description-overlap": {
1092
+ "anyOf": [
1093
+ {
1094
+ "type": "string",
1095
+ "const": "warn"
1096
+ },
1097
+ {
1098
+ "type": "string",
1099
+ "const": "error"
1100
+ },
1101
+ {
1102
+ "type": "boolean",
1103
+ "const": false
1104
+ },
1105
+ {
1106
+ "type": "string",
1107
+ "const": "off"
1108
+ },
1109
+ {
1110
+ "type": "number",
1111
+ "const": 0
1112
+ },
1113
+ {
1114
+ "type": "number",
1115
+ "const": 1
1116
+ },
1117
+ {
1118
+ "type": "number",
1119
+ "const": 2
1120
+ },
1121
+ {
1122
+ "type": "boolean",
1123
+ "const": true
1124
+ }
1125
+ ]
1126
+ },
1127
+ "skill-description-budget": {
1128
+ "anyOf": [
1129
+ {
1130
+ "type": "string",
1131
+ "const": "warn"
1132
+ },
1133
+ {
1134
+ "type": "string",
1135
+ "const": "error"
1136
+ },
1137
+ {
1138
+ "type": "boolean",
1139
+ "const": false
1140
+ },
1141
+ {
1142
+ "type": "string",
1143
+ "const": "off"
1144
+ },
1145
+ {
1146
+ "type": "number",
1147
+ "const": 0
1148
+ },
1149
+ {
1150
+ "type": "number",
1151
+ "const": 1
1152
+ },
1153
+ {
1154
+ "type": "number",
1155
+ "const": 2
1156
+ },
1157
+ {
1158
+ "type": "boolean",
1159
+ "const": true
1160
+ }
1161
+ ]
1162
+ },
1163
+ "frontmatter-valid": {
1164
+ "anyOf": [
1165
+ {
1166
+ "type": "string",
1167
+ "const": "warn"
1168
+ },
1169
+ {
1170
+ "type": "string",
1171
+ "const": "error"
1172
+ },
1173
+ {
1174
+ "type": "boolean",
1175
+ "const": false
1176
+ },
1177
+ {
1178
+ "type": "string",
1179
+ "const": "off"
1180
+ },
1181
+ {
1182
+ "type": "number",
1183
+ "const": 0
1184
+ },
1185
+ {
1186
+ "type": "number",
1187
+ "const": 1
1188
+ },
1189
+ {
1190
+ "type": "number",
1191
+ "const": 2
1192
+ },
1193
+ {
1194
+ "type": "boolean",
1195
+ "const": true
1196
+ }
1197
+ ]
1198
+ },
1199
+ "mcp-hook-target-resolves": {
1200
+ "anyOf": [
1201
+ {
1202
+ "type": "string",
1203
+ "const": "warn"
1204
+ },
1205
+ {
1206
+ "type": "string",
1207
+ "const": "error"
1208
+ },
1209
+ {
1210
+ "type": "boolean",
1211
+ "const": false
1212
+ },
1213
+ {
1214
+ "type": "string",
1215
+ "const": "off"
1216
+ },
1217
+ {
1218
+ "type": "number",
1219
+ "const": 0
1220
+ },
1221
+ {
1222
+ "type": "number",
1223
+ "const": 1
1224
+ },
1225
+ {
1226
+ "type": "number",
1227
+ "const": 2
1228
+ },
1229
+ {
1230
+ "type": "boolean",
1231
+ "const": true
1232
+ }
1233
+ ]
1234
+ },
1235
+ "lethal-trifecta": {
1236
+ "anyOf": [
1237
+ {
1238
+ "type": "string",
1239
+ "const": "warn"
1240
+ },
1241
+ {
1242
+ "type": "string",
1243
+ "const": "error"
1244
+ },
1245
+ {
1246
+ "type": "boolean",
1247
+ "const": false
1248
+ },
1249
+ {
1250
+ "type": "string",
1251
+ "const": "off"
1252
+ },
1253
+ {
1254
+ "type": "number",
1255
+ "const": 0
1256
+ },
1257
+ {
1258
+ "type": "number",
1259
+ "const": 1
1260
+ },
1261
+ {
1262
+ "type": "number",
1263
+ "const": 2
1264
+ },
1265
+ {
1266
+ "type": "boolean",
1267
+ "const": true
1268
+ }
1269
+ ]
1270
+ },
1271
+ "skill-resource-resolves": {
1272
+ "anyOf": [
1273
+ {
1274
+ "type": "string",
1275
+ "const": "warn"
1276
+ },
1277
+ {
1278
+ "type": "string",
1279
+ "const": "error"
1280
+ },
1281
+ {
1282
+ "type": "boolean",
1283
+ "const": false
1284
+ },
1285
+ {
1286
+ "type": "string",
1287
+ "const": "off"
1288
+ },
1289
+ {
1290
+ "type": "number",
1291
+ "const": 0
1292
+ },
1293
+ {
1294
+ "type": "number",
1295
+ "const": 1
1296
+ },
1297
+ {
1298
+ "type": "number",
1299
+ "const": 2
1300
+ },
1301
+ {
1302
+ "type": "boolean",
1303
+ "const": true
1304
+ }
1305
+ ]
1306
+ },
1307
+ "skill-missing-fence": {
1308
+ "anyOf": [
1309
+ {
1310
+ "type": "string",
1311
+ "const": "warn"
1312
+ },
1313
+ {
1314
+ "type": "string",
1315
+ "const": "error"
1316
+ },
1317
+ {
1318
+ "type": "boolean",
1319
+ "const": false
1320
+ },
1321
+ {
1322
+ "type": "string",
1323
+ "const": "off"
1324
+ },
1325
+ {
1326
+ "type": "number",
1327
+ "const": 0
1328
+ },
1329
+ {
1330
+ "type": "number",
1331
+ "const": 1
1332
+ },
1333
+ {
1334
+ "type": "number",
1335
+ "const": 2
1336
+ },
1337
+ {
1338
+ "type": "boolean",
1339
+ "const": true
1340
+ }
1341
+ ]
1342
+ },
1343
+ "plugin-dir-layout": {
1344
+ "anyOf": [
1345
+ {
1346
+ "type": "string",
1347
+ "const": "warn"
1348
+ },
1349
+ {
1350
+ "type": "string",
1351
+ "const": "error"
1352
+ },
1353
+ {
1354
+ "type": "boolean",
1355
+ "const": false
1356
+ },
1357
+ {
1358
+ "type": "string",
1359
+ "const": "off"
1360
+ },
1361
+ {
1362
+ "type": "number",
1363
+ "const": 0
1364
+ },
1365
+ {
1366
+ "type": "number",
1367
+ "const": 1
1368
+ },
1369
+ {
1370
+ "type": "number",
1371
+ "const": 2
1372
+ },
1373
+ {
1374
+ "type": "boolean",
1375
+ "const": true
1376
+ }
1377
+ ]
1378
+ },
1379
+ "delegation-trifecta": {
1380
+ "anyOf": [
1381
+ {
1382
+ "type": "string",
1383
+ "const": "warn"
1384
+ },
1385
+ {
1386
+ "type": "string",
1387
+ "const": "error"
1388
+ },
1389
+ {
1390
+ "type": "boolean",
1391
+ "const": false
1392
+ },
1393
+ {
1394
+ "type": "string",
1395
+ "const": "off"
1396
+ },
1397
+ {
1398
+ "type": "number",
1399
+ "const": 0
1400
+ },
1401
+ {
1402
+ "type": "number",
1403
+ "const": 1
1404
+ },
1405
+ {
1406
+ "type": "number",
1407
+ "const": 2
1408
+ },
1409
+ {
1410
+ "type": "boolean",
1411
+ "const": true
1412
+ }
1413
+ ]
1414
+ },
1415
+ "hook-block-ineffective": {
1416
+ "anyOf": [
1417
+ {
1418
+ "type": "string",
1419
+ "const": "warn"
1420
+ },
1421
+ {
1422
+ "type": "string",
1423
+ "const": "error"
1424
+ },
1425
+ {
1426
+ "type": "boolean",
1427
+ "const": false
1428
+ },
1429
+ {
1430
+ "type": "string",
1431
+ "const": "off"
1432
+ },
1433
+ {
1434
+ "type": "number",
1435
+ "const": 0
1436
+ },
1437
+ {
1438
+ "type": "number",
1439
+ "const": 1
1440
+ },
1441
+ {
1442
+ "type": "number",
1443
+ "const": 2
1444
+ },
1445
+ {
1446
+ "type": "boolean",
1447
+ "const": true
1448
+ }
1449
+ ]
1450
+ },
1451
+ "hook-matcher": {
1452
+ "anyOf": [
1453
+ {
1454
+ "type": "string",
1455
+ "const": "warn"
1456
+ },
1457
+ {
1458
+ "type": "string",
1459
+ "const": "error"
1460
+ },
1461
+ {
1462
+ "type": "boolean",
1463
+ "const": false
1464
+ },
1465
+ {
1466
+ "type": "string",
1467
+ "const": "off"
1468
+ },
1469
+ {
1470
+ "type": "number",
1471
+ "const": 0
1472
+ },
1473
+ {
1474
+ "type": "number",
1475
+ "const": 1
1476
+ },
1477
+ {
1478
+ "type": "number",
1479
+ "const": 2
1480
+ },
1481
+ {
1482
+ "type": "boolean",
1483
+ "const": true
1484
+ }
1485
+ ]
1486
+ },
1487
+ "doc-refs": {
1488
+ "anyOf": [
1489
+ {
1490
+ "type": "string",
1491
+ "const": "warn"
1492
+ },
1493
+ {
1494
+ "type": "string",
1495
+ "const": "error"
1496
+ },
1497
+ {
1498
+ "type": "boolean",
1499
+ "const": false
1500
+ },
1501
+ {
1502
+ "type": "string",
1503
+ "const": "off"
1504
+ },
1505
+ {
1506
+ "type": "number",
1507
+ "const": 0
1508
+ },
1509
+ {
1510
+ "type": "number",
1511
+ "const": 1
1512
+ },
1513
+ {
1514
+ "type": "number",
1515
+ "const": 2
1516
+ },
1517
+ {
1518
+ "type": "boolean",
1519
+ "const": true
1520
+ }
1521
+ ]
1522
+ }
1523
+ },
1524
+ "additionalProperties": false
1525
+ },
1526
+ "files": {
1527
+ "default": [
1528
+ "CLAUDE.md"
1529
+ ],
1530
+ "type": "array",
1531
+ "items": {
1532
+ "type": "string"
1533
+ }
1534
+ },
1535
+ "maxRules": {
1536
+ "type": "number"
1537
+ },
1538
+ "maxTokens": {
1539
+ "type": "number"
1540
+ },
1541
+ "maxSectionLines": {
1542
+ "type": "number"
1543
+ },
1544
+ "catalogOnly": {
1545
+ "type": "boolean"
1546
+ },
1547
+ "linters": {
1548
+ "type": "object",
1549
+ "propertyNames": {
1550
+ "type": "string"
1551
+ },
1552
+ "additionalProperties": {
1553
+ "type": "object",
1554
+ "properties": {
1555
+ "rulesDir": {
1556
+ "anyOf": [
1557
+ {
1558
+ "type": "string"
1559
+ },
1560
+ {
1561
+ "type": "array",
1562
+ "items": {
1563
+ "type": "string"
1564
+ }
1565
+ }
1566
+ ]
1567
+ }
1568
+ },
1569
+ "additionalProperties": false
1570
+ }
1571
+ },
1572
+ "bundles": {
1573
+ "type": "string",
1574
+ "enum": [
1575
+ "root",
1576
+ "all"
1577
+ ]
1578
+ },
1579
+ "orphans": {
1580
+ "type": "object",
1581
+ "properties": {
1582
+ "include": {
1583
+ "anyOf": [
1584
+ {
1585
+ "type": "string"
1586
+ },
1587
+ {
1588
+ "type": "array",
1589
+ "items": {
1590
+ "type": "string"
1591
+ }
1592
+ }
1593
+ ]
1594
+ },
1595
+ "exclude": {
1596
+ "anyOf": [
1597
+ {
1598
+ "type": "string"
1599
+ },
1600
+ {
1601
+ "type": "array",
1602
+ "items": {
1603
+ "type": "string"
1604
+ }
1605
+ }
1606
+ ]
1607
+ }
1608
+ },
1609
+ "additionalProperties": false
1610
+ },
1611
+ "exclude": {
1612
+ "anyOf": [
1613
+ {
1614
+ "type": "string"
1615
+ },
1616
+ {
1617
+ "type": "array",
1618
+ "items": {
1619
+ "type": "string"
1620
+ }
1621
+ }
1622
+ ]
1623
+ },
1624
+ "sharedDirs": {
1625
+ "anyOf": [
1626
+ {
1627
+ "type": "string"
1628
+ },
1629
+ {
1630
+ "type": "array",
1631
+ "items": {
1632
+ "type": "string"
1633
+ }
1634
+ }
1635
+ ]
1636
+ },
1637
+ "harnesses": {
1638
+ "type": "object",
1639
+ "propertyNames": {
1640
+ "type": "string"
1641
+ },
1642
+ "additionalProperties": {
1643
+ "type": "object",
1644
+ "properties": {
1645
+ "roots": {
1646
+ "anyOf": [
1647
+ {
1648
+ "type": "string"
1649
+ },
1650
+ {
1651
+ "type": "array",
1652
+ "items": {
1653
+ "type": "string"
1654
+ }
1655
+ }
1656
+ ]
1657
+ }
1658
+ },
1659
+ "additionalProperties": false
1660
+ }
1661
+ },
1662
+ "audit": {
1663
+ "type": "object",
1664
+ "properties": {
1665
+ "measure": {
1666
+ "type": "boolean"
1667
+ }
1668
+ },
1669
+ "additionalProperties": false
1670
+ },
1671
+ "eval": {
1672
+ "type": "object",
1673
+ "properties": {
1674
+ "apiVersion": {
1675
+ "type": "number"
1676
+ }
1677
+ },
1678
+ "additionalProperties": false
1679
+ },
1680
+ "nudge": {
1681
+ "type": "string",
1682
+ "const": "dismissed"
1683
+ },
1684
+ "$schema": {
1685
+ "type": "string"
1686
+ }
1687
+ },
1688
+ "additionalProperties": false
1689
+ }