@connexum/agent-standards 0.0.0-stage → 0.1.0-beta.2

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.
@@ -0,0 +1,707 @@
1
+ {
2
+ "version": "2026-10-20",
3
+ "note": "How the first scan decides, for every My-CC pack, whether an agent needs it, and for every requirement in a pack, whether it is required, recommended or not needed for that agent. The agent's sector comes from what the scan reads (purpose, tools, data classes, connections); a declared industry wins over the inferred one. A pack is fit when its sector matches the agent's (cross-industry and AI-specific packs fit every agent) and its jurisdiction covers where the agent's people are. Within a fit pack, a requirement that needs a capability the agent does not have (physical parts, cardholder data, PHI, ...) is not needed, with the reason. My-CC's own enforcement wins where a rule carries one (block = required, warn = recommended). Patterns are case-insensitive regular expressions shared by both languages. Overlaps: when two packs that fit the same agent both ask for the same thing (minimum necessary, de-identification, audit, access, breach notice, risk assessment, human oversight, consent and rights, vendor contracts, encryption), each requirement names the other packs that also cover it, so one control can satisfy several. Required means a law in force where the agent's people are, in the agent's sector or cross-industry, AND the scan found on the agent what the law regulates (a requirement of the pack touches a capability the agent has: PHI, privileged material, parts, billing, research subjects, a device, cardholder or personal data, ...). A sector match without that evidence is a recommendation, with the reason. Packs, and requirements, are only ever graded for agents that were scanned.",
4
+ "industries": [
5
+ {
6
+ "id": "Pharmaceutical",
7
+ "signals": [
8
+ "formulary",
9
+ "\\bdrug",
10
+ "\\bndc\\b",
11
+ "\\bgpi",
12
+ "medi-span",
13
+ "pharmac",
14
+ "rebate",
15
+ "p&t",
16
+ "biosimilar",
17
+ "\\bfda\\b",
18
+ "prescri",
19
+ "quantity limit"
20
+ ]
21
+ },
22
+ {
23
+ "id": "Healthcare",
24
+ "signals": [
25
+ "\\bphi\\b",
26
+ "patient",
27
+ "clinical",
28
+ "\\behr\\b",
29
+ "hospital",
30
+ "prior auth",
31
+ "medical",
32
+ "health plan",
33
+ "\\bmember",
34
+ "claims?\\b",
35
+ "denial",
36
+ "appeal"
37
+ ]
38
+ },
39
+ {
40
+ "id": "Legal",
41
+ "signals": [
42
+ "legal",
43
+ "case law",
44
+ "litigation",
45
+ "court",
46
+ "attorney",
47
+ "privileged",
48
+ "matter\\b",
49
+ "docket",
50
+ "brief\\b",
51
+ "discovery"
52
+ ]
53
+ },
54
+ {
55
+ "id": "Fintech",
56
+ "signals": [
57
+ "payment",
58
+ "cardholder",
59
+ "\\bcard\\b",
60
+ "transaction",
61
+ "\\bkyc\\b",
62
+ "\\baml\\b",
63
+ "wallet",
64
+ "\\bloan",
65
+ "credit"
66
+ ]
67
+ },
68
+ {
69
+ "id": "Financial",
70
+ "signals": [
71
+ "bank",
72
+ "securities",
73
+ "trading",
74
+ "portfolio",
75
+ "broker",
76
+ "ledger"
77
+ ]
78
+ },
79
+ {
80
+ "id": "Education",
81
+ "signals": [
82
+ "student",
83
+ "school",
84
+ "course",
85
+ "\\bgrade",
86
+ "ferpa",
87
+ "learner",
88
+ "curriculum"
89
+ ]
90
+ },
91
+ {
92
+ "id": "Government",
93
+ "signals": [
94
+ "agency",
95
+ "public sector",
96
+ "citizen",
97
+ "federal",
98
+ "municipal"
99
+ ]
100
+ },
101
+ {
102
+ "id": "Aerospace",
103
+ "signals": [
104
+ "aircraft",
105
+ "aviation",
106
+ "airworthiness",
107
+ "\\bfaa\\b",
108
+ "\\beasa\\b",
109
+ "avionics"
110
+ ]
111
+ },
112
+ {
113
+ "id": "Defense",
114
+ "signals": [
115
+ "defen[cs]e",
116
+ "\\bitar\\b",
117
+ "classified",
118
+ "\\bdod\\b",
119
+ "military"
120
+ ]
121
+ },
122
+ {
123
+ "id": "Industrial / OT",
124
+ "signals": [
125
+ "\\bplc\\b",
126
+ "scada",
127
+ "\\bics\\b",
128
+ "plant floor",
129
+ "sensor",
130
+ "operational technology"
131
+ ]
132
+ },
133
+ {
134
+ "id": "Automotive",
135
+ "signals": [
136
+ "vehicle",
137
+ "automotive",
138
+ "\\becu\\b",
139
+ "26262"
140
+ ]
141
+ },
142
+ {
143
+ "id": "Retail / Consumer",
144
+ "signals": [
145
+ "retail",
146
+ "shopper",
147
+ "e-?commerce",
148
+ "loyalty",
149
+ "storefront"
150
+ ]
151
+ },
152
+ {
153
+ "id": "Cybersecurity",
154
+ "signals": [
155
+ "vulnerabilit",
156
+ "\\bsiem\\b",
157
+ "threat",
158
+ "incident response",
159
+ "\\bcve\\b"
160
+ ]
161
+ },
162
+ {
163
+ "id": "Medical Device / SaMD",
164
+ "signals": [
165
+ "\\bsamd\\b",
166
+ "medical device",
167
+ "510\\(k\\)"
168
+ ]
169
+ },
170
+ {
171
+ "id": "Medical Laboratory / Clinical Diagnostics",
172
+ "signals": [
173
+ "lab result",
174
+ "specimen",
175
+ "\\bclia\\b",
176
+ "diagnostic"
177
+ ]
178
+ },
179
+ {
180
+ "id": "Hospital IT / Medical Device Networks",
181
+ "signals": [
182
+ "hospital network",
183
+ "biomed",
184
+ "\\bpacs\\b"
185
+ ]
186
+ }
187
+ ],
188
+ "related": {
189
+ "Pharmaceutical": [
190
+ "Healthcare"
191
+ ],
192
+ "Medical Device / SaMD": [
193
+ "Healthcare"
194
+ ],
195
+ "Medical Laboratory / Clinical Diagnostics": [
196
+ "Healthcare"
197
+ ],
198
+ "Hospital IT / Medical Device Networks": [
199
+ "Healthcare"
200
+ ],
201
+ "Fintech": [
202
+ "Financial"
203
+ ],
204
+ "Financial": [
205
+ "Fintech"
206
+ ]
207
+ },
208
+ "everySector": [
209
+ "Cross-Industry",
210
+ "AI-Specific"
211
+ ],
212
+ "regionSectors": {
213
+ "US": "us",
214
+ "EU": "eu",
215
+ "UK": "uk",
216
+ "APAC": "apac"
217
+ },
218
+ "regions": [
219
+ [
220
+ "^(global|international)",
221
+ "global"
222
+ ],
223
+ [
224
+ "colorado|us-co",
225
+ "us-co"
226
+ ],
227
+ [
228
+ "california|us-ca",
229
+ "us-ca"
230
+ ],
231
+ [
232
+ "illinois|us-il",
233
+ "us-il"
234
+ ],
235
+ [
236
+ "texas|us-tx",
237
+ "us-tx"
238
+ ],
239
+ [
240
+ "new york",
241
+ "us-ny"
242
+ ],
243
+ [
244
+ "florida",
245
+ "us-fl"
246
+ ],
247
+ [
248
+ "utah|us-ut",
249
+ "us-ut"
250
+ ],
251
+ [
252
+ "maryland|us-md",
253
+ "us-md"
254
+ ],
255
+ [
256
+ "tennessee|us-tn",
257
+ "us-tn"
258
+ ],
259
+ [
260
+ "^us|united states",
261
+ "us"
262
+ ],
263
+ [
264
+ "^(eu|european|de\\b|fr\\b)",
265
+ "eu"
266
+ ],
267
+ [
268
+ "^(uk|gb|united kingdom)",
269
+ "uk"
270
+ ],
271
+ [
272
+ "^(au|nz|cn|china|jp|japan|kr|sg|th|vn|in\\b|hk|apac)",
273
+ "apac"
274
+ ],
275
+ [
276
+ "^(ca\\b|canada)",
277
+ "ca"
278
+ ],
279
+ [
280
+ "^(br\\b|brazil)",
281
+ "br"
282
+ ]
283
+ ],
284
+ "capabilities": [
285
+ {
286
+ "id": "physical_goods",
287
+ "label": "physical parts or goods",
288
+ "requirement": [
289
+ "\\bparts\\b",
290
+ "manufactur",
291
+ "weld",
292
+ "heat treat",
293
+ "\\bndt\\b",
294
+ "plating",
295
+ "composites",
296
+ "\\bfod\\b",
297
+ "traveller",
298
+ "\\bspc\\b",
299
+ "serialized",
300
+ "lot-controlled",
301
+ "counterfeit",
302
+ "special processes",
303
+ "incoming inspection",
304
+ "airworthiness",
305
+ "warranty",
306
+ "on-time delivery",
307
+ "\\bppm\\b",
308
+ "first-pass yield",
309
+ "nadcap",
310
+ "product realisation",
311
+ "product safety",
312
+ "purchasing controls"
313
+ ],
314
+ "agent": [
315
+ "\\bparts (list|inventory|traceab|lookup)",
316
+ "parts\\.",
317
+ "inventory",
318
+ "shipment",
319
+ "manufacturing (line|process|plant|floor)",
320
+ "production line",
321
+ "warehouse",
322
+ "bill of materials"
323
+ ]
324
+ },
325
+ {
326
+ "id": "cardholder",
327
+ "label": "cardholder data",
328
+ "requirement": [
329
+ "cardholder",
330
+ "\\bpan\\b",
331
+ "payment card"
332
+ ],
333
+ "agent": [
334
+ "cardholder",
335
+ "payment card",
336
+ "\\bpan\\b"
337
+ ],
338
+ "dataClass": "cardholder"
339
+ },
340
+ {
341
+ "id": "phi",
342
+ "label": "protected health information",
343
+ "requirement": [
344
+ "\\bphi\\b",
345
+ "protected health",
346
+ "medical record",
347
+ "\\behr\\b",
348
+ "business associate",
349
+ "\\bbaa\\b"
350
+ ],
351
+ "agent": [
352
+ "\\bphi\\b",
353
+ "patient record",
354
+ "\\behr\\b"
355
+ ],
356
+ "dataClass": "phi"
357
+ },
358
+ {
359
+ "id": "personal",
360
+ "label": "personal data",
361
+ "requirement": [
362
+ "personal data",
363
+ "data subject",
364
+ "\\bpii\\b",
365
+ "right to erasure",
366
+ "\\bdpia\\b"
367
+ ],
368
+ "agent": [
369
+ "personal data",
370
+ "\\bpii\\b",
371
+ "customer record"
372
+ ],
373
+ "dataClass": "pii",
374
+ "impliedBy": [
375
+ "phi",
376
+ "cardholder"
377
+ ]
378
+ },
379
+ {
380
+ "id": "minors",
381
+ "label": "data about children or students",
382
+ "requirement": [
383
+ "\\bchild",
384
+ "minors?\\b",
385
+ "coppa",
386
+ "student record"
387
+ ],
388
+ "agent": [
389
+ "student",
390
+ "\\bchild",
391
+ "minor"
392
+ ]
393
+ },
394
+ {
395
+ "id": "ot_hardware",
396
+ "label": "operational technology or hardware",
397
+ "requirement": [
398
+ "\\bplc\\b",
399
+ "scada",
400
+ "firmware",
401
+ "safety instrumented",
402
+ "\\bot network"
403
+ ],
404
+ "agent": [
405
+ "\\bplc\\b",
406
+ "scada",
407
+ "firmware"
408
+ ]
409
+ },
410
+ {
411
+ "id": "model_training",
412
+ "label": "training or fine-tuning a model",
413
+ "requirement": [
414
+ "training data",
415
+ "fine-tun",
416
+ "dataset curation",
417
+ "model training"
418
+ ],
419
+ "agent": [
420
+ "fine-tun",
421
+ "training data",
422
+ "train(s|ing)? (a |the )?model"
423
+ ]
424
+ },
425
+ {
426
+ "id": "privileged",
427
+ "label": "privileged or attorney-client material",
428
+ "requirement": [
429
+ "privileged",
430
+ "attorney-client",
431
+ "client confiden"
432
+ ],
433
+ "agent": [
434
+ "privileged",
435
+ "attorney-client"
436
+ ],
437
+ "dataClass": "privileged"
438
+ },
439
+ {
440
+ "id": "clinical_research",
441
+ "label": "clinical research or human subjects",
442
+ "requirement": [
443
+ "\\birb\\b",
444
+ "clinical (trial|investigation|study)",
445
+ "human subjects?",
446
+ "informed consent",
447
+ "research subject"
448
+ ],
449
+ "agent": [
450
+ "clinical trial",
451
+ "research subject",
452
+ "\\birb\\b",
453
+ "study protocol"
454
+ ]
455
+ },
456
+ {
457
+ "id": "medical_device",
458
+ "label": "a regulated medical device or SaMD",
459
+ "requirement": [
460
+ "medical device",
461
+ "\\bsamd\\b",
462
+ "510\\(k\\)",
463
+ "62304",
464
+ "device master record",
465
+ "design history file",
466
+ "\\bqsr\\b",
467
+ "\\bqmsr\\b",
468
+ "premarket"
469
+ ],
470
+ "agent": [
471
+ "medical device",
472
+ "\\bsamd\\b",
473
+ "device firmware"
474
+ ]
475
+ },
476
+ {
477
+ "id": "billing",
478
+ "label": "billing, claims or payments to providers",
479
+ "requirement": [
480
+ "billing",
481
+ "claims? submission",
482
+ "reimbursement",
483
+ "kickback",
484
+ "\\bstark\\b",
485
+ "referral",
486
+ "surprise bill",
487
+ "good faith estimate",
488
+ "coding (accuracy|compliance)",
489
+ "\\bcpt\\b",
490
+ "\\bicd-10"
491
+ ],
492
+ "agent": [
493
+ "billing",
494
+ "claims? submission",
495
+ "reimbursement",
496
+ "\\bcpt\\b"
497
+ ]
498
+ },
499
+ {
500
+ "id": "drug_supply",
501
+ "label": "drug dispensing, distribution or the supply chain",
502
+ "requirement": [
503
+ "\\bdscsa\\b",
504
+ "\\b340b\\b",
505
+ "dispens",
506
+ "wholesale",
507
+ "distribution",
508
+ "serialization",
509
+ "transaction (history|information|statement)",
510
+ "covered entity purchas"
511
+ ],
512
+ "agent": [
513
+ "dispens",
514
+ "\\bdscsa\\b",
515
+ "wholesale",
516
+ "340b"
517
+ ]
518
+ },
519
+ {
520
+ "id": "manufacturing",
521
+ "label": "manufacturing, laboratory or trial operations (GxP)",
522
+ "requirement": [
523
+ "\\bgmp\\b",
524
+ "\\bglp\\b",
525
+ "\\bgcp\\b",
526
+ "batch record",
527
+ "laboratory practice",
528
+ "manufacturing practice",
529
+ "validation of (computeri[sz]ed )?systems used in"
530
+ ],
531
+ "agent": [
532
+ "\\bgmp\\b",
533
+ "batch record",
534
+ "laboratory"
535
+ ]
536
+ },
537
+ {
538
+ "id": "financial_reporting",
539
+ "label": "financial reporting controls",
540
+ "requirement": [
541
+ "financial reporting",
542
+ "\\bicfr\\b",
543
+ "ssae",
544
+ "\\bsoc 1\\b",
545
+ "general ledger"
546
+ ],
547
+ "agent": [
548
+ "financial reporting",
549
+ "general ledger",
550
+ "\\bicfr\\b"
551
+ ]
552
+ },
553
+ {
554
+ "id": "consumer",
555
+ "label": "consumer-facing claims or marketing",
556
+ "requirement": [
557
+ "deceptive",
558
+ "unfair",
559
+ "advertis",
560
+ "consumer (protection|claims)",
561
+ "endorsement",
562
+ "dark pattern"
563
+ ],
564
+ "agent": [
565
+ "consumer",
566
+ "marketing",
567
+ "advertis",
568
+ "customer-facing"
569
+ ]
570
+ },
571
+ {
572
+ "id": "interoperability",
573
+ "label": "patient access or interoperability APIs",
574
+ "requirement": [
575
+ "patient access api",
576
+ "\\bfhir\\b",
577
+ "interoperab",
578
+ "provider directory",
579
+ "payer-to-payer"
580
+ ],
581
+ "agent": [
582
+ "\\bfhir\\b",
583
+ "patient access",
584
+ "interoperab"
585
+ ]
586
+ },
587
+ {
588
+ "id": "conditions_of_participation",
589
+ "label": "operating a hospital or provider facility",
590
+ "requirement": [
591
+ "conditions of participation",
592
+ "\\bcop\\b",
593
+ "medical staff",
594
+ "nursing services",
595
+ "discharge planning"
596
+ ],
597
+ "agent": [
598
+ "hospital operations",
599
+ "discharge",
600
+ "nursing"
601
+ ]
602
+ }
603
+ ],
604
+ "lawTypes": [
605
+ "Law or regulation"
606
+ ],
607
+ "overlaps": [
608
+ {
609
+ "id": "minimum_necessary",
610
+ "label": "minimum necessary / data minimisation",
611
+ "patterns": [
612
+ "minimum necessary",
613
+ "minimi[sz]ation",
614
+ "data minimi",
615
+ "only the data"
616
+ ]
617
+ },
618
+ {
619
+ "id": "deidentification",
620
+ "label": "de-identification / pseudonymisation",
621
+ "patterns": [
622
+ "de-?identif",
623
+ "pseudonymi",
624
+ "anonymi",
625
+ "safe harbor"
626
+ ]
627
+ },
628
+ {
629
+ "id": "audit",
630
+ "label": "audit trail and logging",
631
+ "patterns": [
632
+ "audit",
633
+ "logging",
634
+ "record of processing",
635
+ "records of processing",
636
+ "traceab"
637
+ ]
638
+ },
639
+ {
640
+ "id": "access",
641
+ "label": "access control",
642
+ "patterns": [
643
+ "access control",
644
+ "least privilege",
645
+ "logical access",
646
+ "authori[sz]ation",
647
+ "authentication"
648
+ ]
649
+ },
650
+ {
651
+ "id": "breach",
652
+ "label": "breach or incident notification",
653
+ "patterns": [
654
+ "breach",
655
+ "incident (notification|response)",
656
+ "notify"
657
+ ]
658
+ },
659
+ {
660
+ "id": "risk",
661
+ "label": "risk or impact assessment",
662
+ "patterns": [
663
+ "risk (assessment|management)",
664
+ "impact assessment",
665
+ "\\bdpia\\b",
666
+ "\\bfmea\\b"
667
+ ]
668
+ },
669
+ {
670
+ "id": "human_oversight",
671
+ "label": "human oversight of automated decisions",
672
+ "patterns": [
673
+ "human (oversight|review|in the loop)",
674
+ "automated decision",
675
+ "right to (contest|appeal)"
676
+ ]
677
+ },
678
+ {
679
+ "id": "consent_rights",
680
+ "label": "consent and individual rights",
681
+ "patterns": [
682
+ "consent",
683
+ "opt-?out",
684
+ "right to (know|delete|erasure|access)",
685
+ "data subject"
686
+ ]
687
+ },
688
+ {
689
+ "id": "vendor",
690
+ "label": "vendor and contract controls",
691
+ "patterns": [
692
+ "business associate",
693
+ "\\bbaa\\b",
694
+ "processor agreement",
695
+ "\\bdpa\\b",
696
+ "vendor"
697
+ ]
698
+ },
699
+ {
700
+ "id": "encryption",
701
+ "label": "encryption",
702
+ "patterns": [
703
+ "encrypt"
704
+ ]
705
+ }
706
+ ]
707
+ }
@@ -0,0 +1,13 @@
1
+ import type { AgentProfile, Framework, FrameworkApplicability } from './types.js';
2
+ /** The pack bound on the agent that carries this framework, if any (ids as My-CC publishes them; version suffixes ignored). */
3
+ export declare function boundPackFor(fw: Framework, profile: AgentProfile): string | null;
4
+ /** Does the framework fit this agent's industry, data, regions or tools? (Only used when its pack is not bound.) */
5
+ export declare function fits(fw: Framework, profile: AgentProfile): boolean;
6
+ /**
7
+ * Which frameworks apply to this agent, and how: 'always' (OWASP LLM, OWASP Agentic, My-CC runtime), 'installed' (its
8
+ * My-CC pack is bound to the agent), 'recommended' (it fits the industry, data or regions but no pack is bound; documented,
9
+ * not scored), 'not_applicable' (does not fit; omitted with the reason). Practice frameworks are My-CC checks with no pack:
10
+ * applicable when they fit.
11
+ */
12
+ export declare function applicability(profile: AgentProfile): FrameworkApplicability[];
13
+ //# sourceMappingURL=applicability.d.ts.map