@shiftleftpt/sbd-toe-mcp 0.20.0-beta.3 → 0.20.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/consumed-bundle.json +12 -12
- package/data/entities/proportionality.json +3 -3
- package/data/entities/sdlc_integration.json +3 -3
- package/data/publish/indexes/bundle_catalog.jsonl +1 -1
- package/data/publish/indexes/canonical_chunks.jsonl +4903 -4902
- package/data/publish/indexes/chunk_entity_mentions.jsonl +9 -25
- package/data/publish/indexes/mcp_chunks.jsonl +125 -124
- package/data/publish/indexes/publication_manifest.json +8 -8
- package/data/publish/overlay/framework_overlay_index.json +18 -0
- package/data/publish/overlay/overlay_mappings.jsonl +120 -45
- package/data/publish/runtime/controls.json +27 -25
- package/data/publish/runtime/deterministic_manifest.json +1 -1
- package/data/publish/runtime/evidence_patterns.json +24 -24
- package/data/publish/runtime/requirement_control_links.json +334 -162
- package/data/publish/runtime/v1/manual_maturity_progression.jsonl +336 -336
- package/data/publish/runtime/v1/manual_rastreabilidade.jsonl +1105 -1105
- package/data/publish/runtime/v1/manual_threat_mitigation.jsonl +523 -523
- package/data/publish/runtime/v1/v1_manifest.json +5 -5
- package/data/reports/run_manifest.json +8 -8
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/tools/plan-repo-governance.d.ts +1 -2
- package/dist/tools/plan-repo-governance.js +19 -49
- package/dist/tools/plan-repo-governance.js.map +1 -1
- package/dist/tools/structured-tools.d.ts +4 -5
- package/dist/tools/structured-tools.js +87 -122
- package/dist/tools/structured-tools.js.map +1 -1
- package/package.json +3 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"artifact_type": "deterministic_runtime_snapshot",
|
|
3
|
-
"count":
|
|
3
|
+
"count": 265,
|
|
4
4
|
"entity_type": "RequirementControlLink",
|
|
5
5
|
"items": [
|
|
6
6
|
{
|
|
@@ -549,6 +549,51 @@
|
|
|
549
549
|
"target_label": "Segmentação e controlo arquitetural",
|
|
550
550
|
"target_type": "Control"
|
|
551
551
|
},
|
|
552
|
+
{
|
|
553
|
+
"bundle_ids": [
|
|
554
|
+
"04-arquitetura-segura"
|
|
555
|
+
],
|
|
556
|
+
"confidence": 0.9053,
|
|
557
|
+
"curation": {
|
|
558
|
+
"action": "add-secondary",
|
|
559
|
+
"curator": "archon-2026-08-29",
|
|
560
|
+
"previous_target_id": null,
|
|
561
|
+
"ratified_by": "programme-lead",
|
|
562
|
+
"ratified_on": "2026-08-30",
|
|
563
|
+
"rationale": "Parecer #7/A1: zonas documentadas, versionadas e revistas em revisão de arquitectura = rastreabilidade arquitetural; SEG continua primária.",
|
|
564
|
+
"source": "sbd-toe-ontology/agentic/briefs/2026-08-29-archon-parecer-arestas-requisito-controlo.md"
|
|
565
|
+
},
|
|
566
|
+
"evidence_unit_ids": [],
|
|
567
|
+
"justification": [
|
|
568
|
+
"bundle_grounding",
|
|
569
|
+
"chapter_grounding",
|
|
570
|
+
"curated_semantic_review",
|
|
571
|
+
"domain_mapping",
|
|
572
|
+
"lexical_alignment"
|
|
573
|
+
],
|
|
574
|
+
"link_id": "ARC-001|maps_to_control|CTRL-governance-arquitetura-segura-e-rastreavel-74562442c4",
|
|
575
|
+
"link_type": "maps_to_control",
|
|
576
|
+
"matched_control_field": "alias",
|
|
577
|
+
"matched_control_text": "Revisão de arquitectura para agente AI em A2+ {#us-16}",
|
|
578
|
+
"score_components": {
|
|
579
|
+
"chapter_overlap": [
|
|
580
|
+
"04-arquitetura-segura"
|
|
581
|
+
],
|
|
582
|
+
"mechanical_score": 0.9053,
|
|
583
|
+
"runner_up_margin": 0.3353,
|
|
584
|
+
"shared_salient_tokens": [
|
|
585
|
+
"arquitectura",
|
|
586
|
+
"revisao"
|
|
587
|
+
],
|
|
588
|
+
"token_similarity": 0.1176
|
|
589
|
+
},
|
|
590
|
+
"source_id": "ARC-001",
|
|
591
|
+
"source_label": "Zonas de confiança identificadas e documentadas",
|
|
592
|
+
"source_type": "Requirement",
|
|
593
|
+
"target_id": "CTRL-governance-arquitetura-segura-e-rastreavel-74562442c4",
|
|
594
|
+
"target_label": "Arquitetura segura e rastreável",
|
|
595
|
+
"target_type": "Control"
|
|
596
|
+
},
|
|
552
597
|
{
|
|
553
598
|
"bundle_ids": [
|
|
554
599
|
"04-arquitetura-segura"
|
|
@@ -918,6 +963,52 @@
|
|
|
918
963
|
"target_label": "Arquitetura segura e rastreável",
|
|
919
964
|
"target_type": "Control"
|
|
920
965
|
},
|
|
966
|
+
{
|
|
967
|
+
"bundle_ids": [
|
|
968
|
+
"04-arquitetura-segura"
|
|
969
|
+
],
|
|
970
|
+
"confidence": 0.9647,
|
|
971
|
+
"curation": {
|
|
972
|
+
"action": "add-primary",
|
|
973
|
+
"curator": "archon-2026-08-29",
|
|
974
|
+
"previous_target_id": null,
|
|
975
|
+
"ratified_by": "programme-lead",
|
|
976
|
+
"ratified_on": "2026-08-30",
|
|
977
|
+
"rationale": "Parecer #11/A2: alias exacto 'validação de topologia como código (L3)'; ARQ passa a secundária.",
|
|
978
|
+
"source": "sbd-toe-ontology/agentic/briefs/2026-08-29-archon-parecer-arestas-requisito-controlo.md"
|
|
979
|
+
},
|
|
980
|
+
"evidence_unit_ids": [],
|
|
981
|
+
"justification": [
|
|
982
|
+
"bundle_grounding",
|
|
983
|
+
"chapter_grounding",
|
|
984
|
+
"curated_semantic_review",
|
|
985
|
+
"domain_mapping",
|
|
986
|
+
"lexical_alignment"
|
|
987
|
+
],
|
|
988
|
+
"link_id": "ARC-013|maps_to_control|CTRL-infrastructure-segmentacao-e-controlo-arquitetural-dceb3c1f0b",
|
|
989
|
+
"link_type": "maps_to_control",
|
|
990
|
+
"matched_control_field": "alias",
|
|
991
|
+
"matched_control_text": "Segmentação de ambientes e validação de topologia como código (L3)",
|
|
992
|
+
"score_components": {
|
|
993
|
+
"chapter_overlap": [
|
|
994
|
+
"04-arquitetura-segura"
|
|
995
|
+
],
|
|
996
|
+
"mechanical_score": 0.9647,
|
|
997
|
+
"runner_up_margin": 0.0647,
|
|
998
|
+
"shared_salient_tokens": [
|
|
999
|
+
"codigo",
|
|
1000
|
+
"como",
|
|
1001
|
+
"topologia"
|
|
1002
|
+
],
|
|
1003
|
+
"token_similarity": 0.2105
|
|
1004
|
+
},
|
|
1005
|
+
"source_id": "ARC-013",
|
|
1006
|
+
"source_label": "Validação automática de topologia em CI/CD ou como código",
|
|
1007
|
+
"source_type": "Requirement",
|
|
1008
|
+
"target_id": "CTRL-infrastructure-segmentacao-e-controlo-arquitetural-dceb3c1f0b",
|
|
1009
|
+
"target_label": "Segmentação e controlo arquitetural",
|
|
1010
|
+
"target_type": "Control"
|
|
1011
|
+
},
|
|
921
1012
|
{
|
|
922
1013
|
"bundle_ids": [
|
|
923
1014
|
"04-arquitetura-segura"
|
|
@@ -1205,65 +1296,74 @@
|
|
|
1205
1296
|
"bundle_ids": [
|
|
1206
1297
|
"02-requisitos-seguranca"
|
|
1207
1298
|
],
|
|
1208
|
-
"confidence": 0.
|
|
1299
|
+
"confidence": 0.95,
|
|
1300
|
+
"curation": {
|
|
1301
|
+
"action": "retarget",
|
|
1302
|
+
"curator": "archon-2026-08-29",
|
|
1303
|
+
"previous_target_id": "CTRL-governance-classificacao-e-governacao-por-risco-97aceecf29",
|
|
1304
|
+
"ratified_by": "programme-lead",
|
|
1305
|
+
"ratified_on": "2026-08-30",
|
|
1306
|
+
"rationale": "Parecer #12: SAML/OIDC é identidade; match curado anterior por token 'funcional' (ruído). Único controlo `identity` disponível (lacuna L1).",
|
|
1307
|
+
"source": "sbd-toe-ontology/agentic/briefs/2026-08-29-archon-parecer-arestas-requisito-controlo.md"
|
|
1308
|
+
},
|
|
1209
1309
|
"evidence_unit_ids": [],
|
|
1210
1310
|
"justification": [
|
|
1211
|
-
"
|
|
1212
|
-
"chapter_grounding",
|
|
1213
|
-
"domain_mapping"
|
|
1311
|
+
"curated_semantic_review"
|
|
1214
1312
|
],
|
|
1215
|
-
"link_id": "AUT-007|maps_to_control|CTRL-
|
|
1313
|
+
"link_id": "AUT-007|maps_to_control|CTRL-identity-gestao-de-identidades-acessos-e-ownership-d0919c69af",
|
|
1216
1314
|
"link_type": "maps_to_control",
|
|
1217
|
-
"matched_control_field": "
|
|
1218
|
-
"matched_control_text": "
|
|
1315
|
+
"matched_control_field": "curation",
|
|
1316
|
+
"matched_control_text": "Gestão de identidades, acessos e ownership",
|
|
1219
1317
|
"score_components": {
|
|
1220
|
-
"chapter_overlap": [
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
"
|
|
1224
|
-
"
|
|
1225
|
-
"funcional"
|
|
1226
|
-
],
|
|
1227
|
-
"token_similarity": 0.0588
|
|
1318
|
+
"chapter_overlap": [],
|
|
1319
|
+
"mechanical_score": 0.6,
|
|
1320
|
+
"runner_up_margin": 0.01,
|
|
1321
|
+
"shared_salient_tokens": [],
|
|
1322
|
+
"token_similarity": 0.0
|
|
1228
1323
|
},
|
|
1229
1324
|
"source_id": "AUT-007",
|
|
1230
1325
|
"source_label": "Suporte a autenticação federada",
|
|
1231
1326
|
"source_type": "Requirement",
|
|
1232
|
-
"target_id": "CTRL-
|
|
1233
|
-
"target_label": "
|
|
1327
|
+
"target_id": "CTRL-identity-gestao-de-identidades-acessos-e-ownership-d0919c69af",
|
|
1328
|
+
"target_label": "Gestão de identidades, acessos e ownership",
|
|
1234
1329
|
"target_type": "Control"
|
|
1235
1330
|
},
|
|
1236
1331
|
{
|
|
1237
1332
|
"bundle_ids": [
|
|
1238
1333
|
"02-requisitos-seguranca"
|
|
1239
1334
|
],
|
|
1240
|
-
"confidence": 0.
|
|
1335
|
+
"confidence": 0.95,
|
|
1336
|
+
"curation": {
|
|
1337
|
+
"action": "retarget",
|
|
1338
|
+
"curator": "archon-2026-08-29",
|
|
1339
|
+
"previous_target_id": "CTRL-code-integrity-desenvolvimento-seguro-e-validacao-de-codigo-63dedd7460",
|
|
1340
|
+
"ratified_by": "programme-lead",
|
|
1341
|
+
"ratified_on": "2026-08-30",
|
|
1342
|
+
"rationale": "Parecer #13: factor adicional por acção sensível = autenticação/autorização; match anterior por token 'evidencia' (ruído).",
|
|
1343
|
+
"source": "sbd-toe-ontology/agentic/briefs/2026-08-29-archon-parecer-arestas-requisito-controlo.md"
|
|
1344
|
+
},
|
|
1241
1345
|
"evidence_unit_ids": [],
|
|
1242
1346
|
"justification": [
|
|
1243
|
-
"
|
|
1244
|
-
"chapter_grounding",
|
|
1245
|
-
"domain_mapping",
|
|
1246
|
-
"requirement_domain_hint"
|
|
1347
|
+
"curated_semantic_review"
|
|
1247
1348
|
],
|
|
1248
|
-
"link_id": "AUT-008|maps_to_control|CTRL-
|
|
1349
|
+
"link_id": "AUT-008|maps_to_control|CTRL-identity-gestao-de-identidades-acessos-e-ownership-d0919c69af",
|
|
1249
1350
|
"link_type": "maps_to_control",
|
|
1250
|
-
"matched_control_field": "
|
|
1251
|
-
"matched_control_text": "
|
|
1351
|
+
"matched_control_field": "curation",
|
|
1352
|
+
"matched_control_text": "Gestão de identidades, acessos e ownership",
|
|
1252
1353
|
"score_components": {
|
|
1253
|
-
"chapter_overlap": [
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
"runner_up_margin": 0.05,
|
|
1354
|
+
"chapter_overlap": [],
|
|
1355
|
+
"mechanical_score": 0.57,
|
|
1356
|
+
"runner_up_margin": 0.03,
|
|
1257
1357
|
"shared_salient_tokens": [
|
|
1258
1358
|
"evidencia"
|
|
1259
1359
|
],
|
|
1260
|
-
"token_similarity": 0.
|
|
1360
|
+
"token_similarity": 0.0714
|
|
1261
1361
|
},
|
|
1262
1362
|
"source_id": "AUT-008",
|
|
1263
1363
|
"source_label": "Step-up para acções sensíveis",
|
|
1264
1364
|
"source_type": "Requirement",
|
|
1265
|
-
"target_id": "CTRL-
|
|
1266
|
-
"target_label": "
|
|
1365
|
+
"target_id": "CTRL-identity-gestao-de-identidades-acessos-e-ownership-d0919c69af",
|
|
1366
|
+
"target_label": "Gestão de identidades, acessos e ownership",
|
|
1267
1367
|
"target_type": "Control"
|
|
1268
1368
|
},
|
|
1269
1369
|
{
|
|
@@ -1300,30 +1400,38 @@
|
|
|
1300
1400
|
"bundle_ids": [
|
|
1301
1401
|
"02-requisitos-seguranca"
|
|
1302
1402
|
],
|
|
1303
|
-
"confidence": 0.
|
|
1403
|
+
"confidence": 0.95,
|
|
1404
|
+
"curation": {
|
|
1405
|
+
"action": "retarget",
|
|
1406
|
+
"curator": "archon-2026-08-29",
|
|
1407
|
+
"previous_target_id": "CTRL-governance-capacitacao-e-onboarding-de-seguranca-f84db7abdf",
|
|
1408
|
+
"ratified_by": "programme-lead",
|
|
1409
|
+
"ratified_on": "2026-08-30",
|
|
1410
|
+
"rationale": "Parecer #14: requisito detectivo (acessos anómalos geram alerta); `monitoring ∉ domain_mapping.AUT` — aresta curada explícita; rebuild propunha fornecedores (rejeitado).",
|
|
1411
|
+
"source": "sbd-toe-ontology/agentic/briefs/2026-08-29-archon-parecer-arestas-requisito-controlo.md"
|
|
1412
|
+
},
|
|
1304
1413
|
"evidence_unit_ids": [],
|
|
1305
1414
|
"justification": [
|
|
1306
|
-
"
|
|
1307
|
-
"chapter_grounding",
|
|
1308
|
-
"domain_mapping"
|
|
1415
|
+
"curated_semantic_review"
|
|
1309
1416
|
],
|
|
1310
|
-
"link_id": "AUT-010|maps_to_control|CTRL-
|
|
1417
|
+
"link_id": "AUT-010|maps_to_control|CTRL-monitoring-monitorizacao-e-resposta-operacional-1797f0af70",
|
|
1311
1418
|
"link_type": "maps_to_control",
|
|
1312
|
-
"matched_control_field": "
|
|
1313
|
-
"matched_control_text": "
|
|
1419
|
+
"matched_control_field": "curation",
|
|
1420
|
+
"matched_control_text": "Correlação e Deteção de Anomalias",
|
|
1314
1421
|
"score_components": {
|
|
1315
|
-
"chapter_overlap": [
|
|
1316
|
-
|
|
1422
|
+
"chapter_overlap": [],
|
|
1423
|
+
"mechanical_score": 0.6433,
|
|
1424
|
+
"runner_up_margin": 0.0233,
|
|
1425
|
+
"shared_salient_tokens": [
|
|
1426
|
+
"alerta"
|
|
1317
1427
|
],
|
|
1318
|
-
"
|
|
1319
|
-
"shared_salient_tokens": [],
|
|
1320
|
-
"token_similarity": 0.0
|
|
1428
|
+
"token_similarity": 0.1111
|
|
1321
1429
|
},
|
|
1322
1430
|
"source_id": "AUT-010",
|
|
1323
1431
|
"source_label": "Alerta de acessos suspeitos",
|
|
1324
1432
|
"source_type": "Requirement",
|
|
1325
|
-
"target_id": "CTRL-
|
|
1326
|
-
"target_label": "
|
|
1433
|
+
"target_id": "CTRL-monitoring-monitorizacao-e-resposta-operacional-1797f0af70",
|
|
1434
|
+
"target_label": "Monitorização e resposta operacional",
|
|
1327
1435
|
"target_type": "Control"
|
|
1328
1436
|
},
|
|
1329
1437
|
{
|
|
@@ -2294,35 +2402,41 @@
|
|
|
2294
2402
|
"bundle_ids": [
|
|
2295
2403
|
"09-containers-imagens"
|
|
2296
2404
|
],
|
|
2297
|
-
"confidence": 0.
|
|
2405
|
+
"confidence": 0.95,
|
|
2406
|
+
"curation": {
|
|
2407
|
+
"action": "retarget",
|
|
2408
|
+
"curator": "archon-2026-08-29",
|
|
2409
|
+
"previous_target_id": "CTRL-identity-gestao-de-identidades-acessos-e-ownership-d0919c69af",
|
|
2410
|
+
"ratified_by": "programme-lead",
|
|
2411
|
+
"ratified_on": "2026-08-30",
|
|
2412
|
+
"rationale": "Parecer #23: hardening de imagem; IMG = hardening, assinatura, promoção controlada e políticas de runtime (alias 'Imagens Base Seguras e Minimalistas' arquivado em IDN por L2).",
|
|
2413
|
+
"source": "sbd-toe-ontology/agentic/briefs/2026-08-29-archon-parecer-arestas-requisito-controlo.md"
|
|
2414
|
+
},
|
|
2298
2415
|
"evidence_unit_ids": [],
|
|
2299
2416
|
"justification": [
|
|
2300
|
-
"
|
|
2301
|
-
"chapter_grounding",
|
|
2302
|
-
"domain_mapping",
|
|
2303
|
-
"lexical_alignment"
|
|
2417
|
+
"curated_semantic_review"
|
|
2304
2418
|
],
|
|
2305
|
-
"link_id": "CNT-003|maps_to_control|CTRL-
|
|
2419
|
+
"link_id": "CNT-003|maps_to_control|CTRL-supply-chain-supply-chain-segura-de-imagens-e-containers-8a8af25a4d",
|
|
2306
2420
|
"link_type": "maps_to_control",
|
|
2307
|
-
"matched_control_field": "
|
|
2308
|
-
"matched_control_text": "
|
|
2421
|
+
"matched_control_field": "curation",
|
|
2422
|
+
"matched_control_text": "Golden Base Images com Patching Automático",
|
|
2309
2423
|
"score_components": {
|
|
2310
2424
|
"chapter_overlap": [
|
|
2311
2425
|
"09-containers-imagens"
|
|
2312
2426
|
],
|
|
2313
|
-
"
|
|
2427
|
+
"mechanical_score": 0.87,
|
|
2428
|
+
"runner_up_margin": 0.3,
|
|
2314
2429
|
"shared_salient_tokens": [
|
|
2315
2430
|
"base",
|
|
2316
|
-
"
|
|
2317
|
-
"minimalista"
|
|
2431
|
+
"imagem"
|
|
2318
2432
|
],
|
|
2319
|
-
"token_similarity": 0.
|
|
2433
|
+
"token_similarity": 0.0606
|
|
2320
2434
|
},
|
|
2321
2435
|
"source_id": "CNT-003",
|
|
2322
2436
|
"source_label": "Imagens minimalistas - ausência de componentes não necessários",
|
|
2323
2437
|
"source_type": "Requirement",
|
|
2324
|
-
"target_id": "CTRL-
|
|
2325
|
-
"target_label": "
|
|
2438
|
+
"target_id": "CTRL-supply-chain-supply-chain-segura-de-imagens-e-containers-8a8af25a4d",
|
|
2439
|
+
"target_label": "Supply chain segura de imagens e containers",
|
|
2326
2440
|
"target_type": "Control"
|
|
2327
2441
|
},
|
|
2328
2442
|
{
|
|
@@ -2363,64 +2477,80 @@
|
|
|
2363
2477
|
"bundle_ids": [
|
|
2364
2478
|
"09-containers-imagens"
|
|
2365
2479
|
],
|
|
2366
|
-
"confidence": 0.
|
|
2480
|
+
"confidence": 0.95,
|
|
2481
|
+
"curation": {
|
|
2482
|
+
"action": "retarget",
|
|
2483
|
+
"curator": "archon-2026-08-29",
|
|
2484
|
+
"previous_target_id": "CTRL-identity-gestao-de-identidades-acessos-e-ownership-d0919c69af",
|
|
2485
|
+
"ratified_by": "programme-lead",
|
|
2486
|
+
"ratified_on": "2026-08-30",
|
|
2487
|
+
"rationale": "Parecer #24: hardening de runtime; match anterior por token 'ficheiro' (ruído).",
|
|
2488
|
+
"source": "sbd-toe-ontology/agentic/briefs/2026-08-29-archon-parecer-arestas-requisito-controlo.md"
|
|
2489
|
+
},
|
|
2367
2490
|
"evidence_unit_ids": [],
|
|
2368
2491
|
"justification": [
|
|
2369
|
-
"
|
|
2370
|
-
"chapter_grounding",
|
|
2371
|
-
"domain_mapping"
|
|
2492
|
+
"curated_semantic_review"
|
|
2372
2493
|
],
|
|
2373
|
-
"link_id": "CNT-005|maps_to_control|CTRL-
|
|
2494
|
+
"link_id": "CNT-005|maps_to_control|CTRL-supply-chain-supply-chain-segura-de-imagens-e-containers-8a8af25a4d",
|
|
2374
2495
|
"link_type": "maps_to_control",
|
|
2375
|
-
"matched_control_field": "
|
|
2376
|
-
"matched_control_text": "
|
|
2496
|
+
"matched_control_field": "curation",
|
|
2497
|
+
"matched_control_text": "Aplicação de políticas formais de segurança no runtime com OPA/Kyverno",
|
|
2377
2498
|
"score_components": {
|
|
2378
2499
|
"chapter_overlap": [
|
|
2379
2500
|
"09-containers-imagens"
|
|
2380
2501
|
],
|
|
2381
|
-
"
|
|
2502
|
+
"mechanical_score": 0.87,
|
|
2503
|
+
"runner_up_margin": 0.03,
|
|
2382
2504
|
"shared_salient_tokens": [
|
|
2383
|
-
"
|
|
2505
|
+
"runtime"
|
|
2384
2506
|
],
|
|
2385
|
-
"token_similarity": 0.
|
|
2507
|
+
"token_similarity": 0.04
|
|
2386
2508
|
},
|
|
2387
2509
|
"source_id": "CNT-005",
|
|
2388
2510
|
"source_label": "Sistema de ficheiros em modo de leitura em runtime",
|
|
2389
2511
|
"source_type": "Requirement",
|
|
2390
|
-
"target_id": "CTRL-
|
|
2391
|
-
"target_label": "
|
|
2512
|
+
"target_id": "CTRL-supply-chain-supply-chain-segura-de-imagens-e-containers-8a8af25a4d",
|
|
2513
|
+
"target_label": "Supply chain segura de imagens e containers",
|
|
2392
2514
|
"target_type": "Control"
|
|
2393
2515
|
},
|
|
2394
2516
|
{
|
|
2395
2517
|
"bundle_ids": [
|
|
2396
2518
|
"09-containers-imagens"
|
|
2397
2519
|
],
|
|
2398
|
-
"confidence": 0.
|
|
2520
|
+
"confidence": 0.95,
|
|
2521
|
+
"curation": {
|
|
2522
|
+
"action": "retarget",
|
|
2523
|
+
"curator": "archon-2026-08-29",
|
|
2524
|
+
"previous_target_id": "CTRL-identity-gestao-de-identidades-acessos-e-ownership-d0919c69af",
|
|
2525
|
+
"ratified_by": "programme-lead",
|
|
2526
|
+
"ratified_on": "2026-08-30",
|
|
2527
|
+
"rationale": "Parecer #25: capabilities/seccomp = hardening de runtime (alias 'Perfis seccomp/AppArmor' em IDN por L2).",
|
|
2528
|
+
"source": "sbd-toe-ontology/agentic/briefs/2026-08-29-archon-parecer-arestas-requisito-controlo.md"
|
|
2529
|
+
},
|
|
2399
2530
|
"evidence_unit_ids": [],
|
|
2400
2531
|
"justification": [
|
|
2401
|
-
"
|
|
2402
|
-
"chapter_grounding",
|
|
2403
|
-
"domain_mapping"
|
|
2532
|
+
"curated_semantic_review"
|
|
2404
2533
|
],
|
|
2405
|
-
"link_id": "CNT-006|maps_to_control|CTRL-
|
|
2534
|
+
"link_id": "CNT-006|maps_to_control|CTRL-supply-chain-supply-chain-segura-de-imagens-e-containers-8a8af25a4d",
|
|
2406
2535
|
"link_type": "maps_to_control",
|
|
2407
|
-
"matched_control_field": "
|
|
2408
|
-
"matched_control_text": "
|
|
2536
|
+
"matched_control_field": "curation",
|
|
2537
|
+
"matched_control_text": "Aplicação de políticas formais de segurança no runtime com OPA/Kyverno",
|
|
2409
2538
|
"score_components": {
|
|
2410
2539
|
"chapter_overlap": [
|
|
2411
2540
|
"09-containers-imagens"
|
|
2412
2541
|
],
|
|
2413
|
-
"
|
|
2542
|
+
"mechanical_score": 0.87,
|
|
2543
|
+
"runner_up_margin": 0.03,
|
|
2414
2544
|
"shared_salient_tokens": [
|
|
2415
2545
|
"runtime"
|
|
2416
2546
|
],
|
|
2417
|
-
"token_similarity": 0.
|
|
2547
|
+
"token_similarity": 0.0357
|
|
2418
2548
|
},
|
|
2419
2549
|
"source_id": "CNT-006",
|
|
2420
2550
|
"source_label": "Restrição de capabilities do kernel e perfis de syscall",
|
|
2421
2551
|
"source_type": "Requirement",
|
|
2422
|
-
"target_id": "CTRL-
|
|
2423
|
-
"target_label": "
|
|
2552
|
+
"target_id": "CTRL-supply-chain-supply-chain-segura-de-imagens-e-containers-8a8af25a4d",
|
|
2553
|
+
"target_label": "Supply chain segura de imagens e containers",
|
|
2424
2554
|
"target_type": "Control"
|
|
2425
2555
|
},
|
|
2426
2556
|
{
|
|
@@ -2497,32 +2627,40 @@
|
|
|
2497
2627
|
"bundle_ids": [
|
|
2498
2628
|
"09-containers-imagens"
|
|
2499
2629
|
],
|
|
2500
|
-
"confidence": 0.
|
|
2630
|
+
"confidence": 0.95,
|
|
2631
|
+
"curation": {
|
|
2632
|
+
"action": "retarget",
|
|
2633
|
+
"curator": "archon-2026-08-29",
|
|
2634
|
+
"previous_target_id": "CTRL-identity-gestao-de-identidades-acessos-e-ownership-d0919c69af",
|
|
2635
|
+
"ratified_by": "programme-lead",
|
|
2636
|
+
"ratified_on": "2026-08-30",
|
|
2637
|
+
"rationale": "Parecer #26: admission control = políticas de runtime; aliases exactos em IMG (OPA/Kyverno).",
|
|
2638
|
+
"source": "sbd-toe-ontology/agentic/briefs/2026-08-29-archon-parecer-arestas-requisito-controlo.md"
|
|
2639
|
+
},
|
|
2501
2640
|
"evidence_unit_ids": [],
|
|
2502
2641
|
"justification": [
|
|
2503
|
-
"
|
|
2504
|
-
"chapter_grounding",
|
|
2505
|
-
"domain_mapping"
|
|
2642
|
+
"curated_semantic_review"
|
|
2506
2643
|
],
|
|
2507
|
-
"link_id": "CNT-009|maps_to_control|CTRL-
|
|
2644
|
+
"link_id": "CNT-009|maps_to_control|CTRL-supply-chain-supply-chain-segura-de-imagens-e-containers-8a8af25a4d",
|
|
2508
2645
|
"link_type": "maps_to_control",
|
|
2509
|
-
"matched_control_field": "
|
|
2510
|
-
"matched_control_text": "Enforcement
|
|
2646
|
+
"matched_control_field": "curation",
|
|
2647
|
+
"matched_control_text": "Enforcement Centralizado e Auditável de Políticas no Runtime",
|
|
2511
2648
|
"score_components": {
|
|
2512
2649
|
"chapter_overlap": [
|
|
2513
2650
|
"09-containers-imagens"
|
|
2514
2651
|
],
|
|
2515
|
-
"
|
|
2652
|
+
"mechanical_score": 0.87,
|
|
2653
|
+
"runner_up_margin": 0.03,
|
|
2516
2654
|
"shared_salient_tokens": [
|
|
2517
2655
|
"politica"
|
|
2518
2656
|
],
|
|
2519
|
-
"token_similarity": 0.
|
|
2657
|
+
"token_similarity": 0.0323
|
|
2520
2658
|
},
|
|
2521
2659
|
"source_id": "CNT-009",
|
|
2522
2660
|
"source_label": "Políticas de admission control activas",
|
|
2523
2661
|
"source_type": "Requirement",
|
|
2524
|
-
"target_id": "CTRL-
|
|
2525
|
-
"target_label": "
|
|
2662
|
+
"target_id": "CTRL-supply-chain-supply-chain-segura-de-imagens-e-containers-8a8af25a4d",
|
|
2663
|
+
"target_label": "Supply chain segura de imagens e containers",
|
|
2526
2664
|
"target_type": "Control"
|
|
2527
2665
|
},
|
|
2528
2666
|
{
|
|
@@ -4196,32 +4334,38 @@
|
|
|
4196
4334
|
"bundle_ids": [
|
|
4197
4335
|
"02-requisitos-seguranca"
|
|
4198
4336
|
],
|
|
4199
|
-
"confidence": 0.
|
|
4337
|
+
"confidence": 0.95,
|
|
4338
|
+
"curation": {
|
|
4339
|
+
"action": "retarget",
|
|
4340
|
+
"curator": "archon-2026-08-29",
|
|
4341
|
+
"previous_target_id": "CTRL-code-integrity-desenvolvimento-seguro-e-validacao-de-codigo-63dedd7460",
|
|
4342
|
+
"ratified_by": "programme-lead",
|
|
4343
|
+
"ratified_on": "2026-08-30",
|
|
4344
|
+
"rationale": "Parecer #33: rotação de chaves/segredos; 'rotacao'/'chave'/'segredo' são keywords `secrets`; match anterior por 'evidencia' (ruído).",
|
|
4345
|
+
"source": "sbd-toe-ontology/agentic/briefs/2026-08-29-archon-parecer-arestas-requisito-controlo.md"
|
|
4346
|
+
},
|
|
4200
4347
|
"evidence_unit_ids": [],
|
|
4201
4348
|
"justification": [
|
|
4202
|
-
"
|
|
4203
|
-
"chapter_grounding",
|
|
4204
|
-
"domain_mapping"
|
|
4349
|
+
"curated_semantic_review"
|
|
4205
4350
|
],
|
|
4206
|
-
"link_id": "ENC-007|maps_to_control|CTRL-
|
|
4351
|
+
"link_id": "ENC-007|maps_to_control|CTRL-secrets-gestao-de-segredos-e-identidades-operacionais-e2c86cdfe9",
|
|
4207
4352
|
"link_type": "maps_to_control",
|
|
4208
|
-
"matched_control_field": "
|
|
4209
|
-
"matched_control_text": "
|
|
4353
|
+
"matched_control_field": "curation",
|
|
4354
|
+
"matched_control_text": "Proibir segredos estáticos",
|
|
4210
4355
|
"score_components": {
|
|
4211
|
-
"chapter_overlap": [
|
|
4212
|
-
|
|
4213
|
-
|
|
4214
|
-
"runner_up_margin": 0.23,
|
|
4356
|
+
"chapter_overlap": [],
|
|
4357
|
+
"mechanical_score": 0.64,
|
|
4358
|
+
"runner_up_margin": 0.07,
|
|
4215
4359
|
"shared_salient_tokens": [
|
|
4216
|
-
"
|
|
4360
|
+
"segredo"
|
|
4217
4361
|
],
|
|
4218
|
-
"token_similarity": 0.
|
|
4362
|
+
"token_similarity": 0.0417
|
|
4219
4363
|
},
|
|
4220
4364
|
"source_id": "ENC-007",
|
|
4221
4365
|
"source_label": "Rotação periódica de chaves e segredos",
|
|
4222
4366
|
"source_type": "Requirement",
|
|
4223
|
-
"target_id": "CTRL-
|
|
4224
|
-
"target_label": "
|
|
4367
|
+
"target_id": "CTRL-secrets-gestao-de-segredos-e-identidades-operacionais-e2c86cdfe9",
|
|
4368
|
+
"target_label": "Gestão de segredos e identidades operacionais",
|
|
4225
4369
|
"target_type": "Control"
|
|
4226
4370
|
},
|
|
4227
4371
|
{
|
|
@@ -4817,32 +4961,38 @@
|
|
|
4817
4961
|
"bundle_ids": [
|
|
4818
4962
|
"14-governanca-contratacao"
|
|
4819
4963
|
],
|
|
4820
|
-
"confidence": 0.
|
|
4964
|
+
"confidence": 0.95,
|
|
4965
|
+
"curation": {
|
|
4966
|
+
"action": "retarget",
|
|
4967
|
+
"curator": "archon-2026-08-29",
|
|
4968
|
+
"previous_target_id": "CTRL-identity-gestao-de-identidades-acessos-e-ownership-d0919c69af",
|
|
4969
|
+
"ratified_by": "programme-lead",
|
|
4970
|
+
"ratified_on": "2026-08-30",
|
|
4971
|
+
"rationale": "Parecer #36: evidência de decisões de risco/excepção com cadeia de autoridade = governação de excepções/accountability (exception_record, governance_kpi); match anterior por 'politica' (ruído).",
|
|
4972
|
+
"source": "sbd-toe-ontology/agentic/briefs/2026-08-29-archon-parecer-arestas-requisito-controlo.md"
|
|
4973
|
+
},
|
|
4821
4974
|
"evidence_unit_ids": [],
|
|
4822
4975
|
"justification": [
|
|
4823
|
-
"
|
|
4824
|
-
"chapter_grounding",
|
|
4825
|
-
"domain_mapping"
|
|
4976
|
+
"curated_semantic_review"
|
|
4826
4977
|
],
|
|
4827
|
-
"link_id": "GOV-009|maps_to_control|CTRL-
|
|
4978
|
+
"link_id": "GOV-009|maps_to_control|CTRL-governance-governacao-de-fornecedores-e-excecoes-a9a9ab3628",
|
|
4828
4979
|
"link_type": "maps_to_control",
|
|
4829
|
-
"matched_control_field": "
|
|
4830
|
-
"matched_control_text": "
|
|
4980
|
+
"matched_control_field": "curation",
|
|
4981
|
+
"matched_control_text": "Governação de fornecedores e exceções",
|
|
4831
4982
|
"score_components": {
|
|
4832
4983
|
"chapter_overlap": [
|
|
4833
4984
|
"14-governanca-contratacao"
|
|
4834
4985
|
],
|
|
4835
|
-
"
|
|
4836
|
-
"
|
|
4837
|
-
|
|
4838
|
-
|
|
4839
|
-
"token_similarity": 0.0312
|
|
4986
|
+
"mechanical_score": 0.84,
|
|
4987
|
+
"runner_up_margin": 0.27,
|
|
4988
|
+
"shared_salient_tokens": [],
|
|
4989
|
+
"token_similarity": 0.0
|
|
4840
4990
|
},
|
|
4841
4991
|
"source_id": "GOV-009",
|
|
4842
4992
|
"source_label": "Evidência de decisões rastreável, referenciável e retida",
|
|
4843
4993
|
"source_type": "Requirement",
|
|
4844
|
-
"target_id": "CTRL-
|
|
4845
|
-
"target_label": "
|
|
4994
|
+
"target_id": "CTRL-governance-governacao-de-fornecedores-e-excecoes-a9a9ab3628",
|
|
4995
|
+
"target_label": "Governação de fornecedores e exceções",
|
|
4846
4996
|
"target_type": "Control"
|
|
4847
4997
|
},
|
|
4848
4998
|
{
|
|
@@ -5893,67 +6043,84 @@
|
|
|
5893
6043
|
"bundle_ids": [
|
|
5894
6044
|
"02-requisitos-seguranca"
|
|
5895
6045
|
],
|
|
5896
|
-
"confidence": 0.
|
|
6046
|
+
"confidence": 0.98,
|
|
6047
|
+
"curation": {
|
|
6048
|
+
"action": "add-primary",
|
|
6049
|
+
"curator": "archon-2026-08-29",
|
|
6050
|
+
"previous_target_id": "CTRL-code-integrity-desenvolvimento-seguro-e-validacao-de-codigo-63dedd7460",
|
|
6051
|
+
"ratified_by": "programme-lead",
|
|
6052
|
+
"ratified_on": "2026-08-30",
|
|
6053
|
+
"rationale": "Parecer #46/A7: 'integrações documentadas com cláusulas de segurança' → cláusulas contratuais (FORN); substitui DEV ('Revisão de Código Segura', ruído) e CLA ('Revisão por alteração relevante', ruído).",
|
|
6054
|
+
"source": "sbd-toe-ontology/agentic/briefs/2026-08-29-archon-parecer-arestas-requisito-controlo.md"
|
|
6055
|
+
},
|
|
5897
6056
|
"evidence_unit_ids": [],
|
|
5898
6057
|
"justification": [
|
|
5899
6058
|
"bundle_grounding",
|
|
5900
6059
|
"chapter_grounding",
|
|
6060
|
+
"curated_semantic_review",
|
|
5901
6061
|
"domain_mapping",
|
|
5902
6062
|
"lexical_alignment",
|
|
5903
6063
|
"requirement_domain_hint"
|
|
5904
6064
|
],
|
|
5905
|
-
"link_id": "INT-008|maps_to_control|CTRL-governance-
|
|
6065
|
+
"link_id": "INT-008|maps_to_control|CTRL-governance-governacao-de-fornecedores-e-excecoes-a9a9ab3628",
|
|
5906
6066
|
"link_type": "maps_to_control",
|
|
5907
6067
|
"matched_control_field": "alias",
|
|
5908
|
-
"matched_control_text": "
|
|
6068
|
+
"matched_control_text": "Cláusulas Contratuais de Segurança",
|
|
5909
6069
|
"score_components": {
|
|
5910
6070
|
"chapter_overlap": [
|
|
5911
6071
|
"02-requisitos-seguranca"
|
|
5912
6072
|
],
|
|
5913
|
-
"
|
|
6073
|
+
"mechanical_score": 0.98,
|
|
6074
|
+
"runner_up_margin": 0.02,
|
|
5914
6075
|
"shared_salient_tokens": [
|
|
5915
|
-
"
|
|
6076
|
+
"clausula"
|
|
5916
6077
|
],
|
|
5917
|
-
"token_similarity": 0.
|
|
6078
|
+
"token_similarity": 0.2222
|
|
5918
6079
|
},
|
|
5919
6080
|
"source_id": "INT-008",
|
|
5920
6081
|
"source_label": "Revisão de segurança e contrato em integrações",
|
|
5921
6082
|
"source_type": "Requirement",
|
|
5922
|
-
"target_id": "CTRL-governance-
|
|
5923
|
-
"target_label": "
|
|
6083
|
+
"target_id": "CTRL-governance-governacao-de-fornecedores-e-excecoes-a9a9ab3628",
|
|
6084
|
+
"target_label": "Governação de fornecedores e exceções",
|
|
5924
6085
|
"target_type": "Control"
|
|
5925
6086
|
},
|
|
5926
6087
|
{
|
|
5927
6088
|
"bundle_ids": [
|
|
5928
6089
|
"02-requisitos-seguranca"
|
|
5929
6090
|
],
|
|
5930
|
-
"confidence": 0.
|
|
6091
|
+
"confidence": 0.95,
|
|
6092
|
+
"curation": {
|
|
6093
|
+
"action": "add-secondary",
|
|
6094
|
+
"curator": "archon-2026-08-29",
|
|
6095
|
+
"previous_target_id": "CTRL-governance-classificacao-e-governacao-por-risco-97aceecf29",
|
|
6096
|
+
"ratified_by": "programme-lead",
|
|
6097
|
+
"ratified_on": "2026-08-30",
|
|
6098
|
+
"rationale": "Parecer #46: revisão técnica da integração (integration_review); `infrastructure ∉ domain_mapping.INT` — aresta curada explícita.",
|
|
6099
|
+
"source": "sbd-toe-ontology/agentic/briefs/2026-08-29-archon-parecer-arestas-requisito-controlo.md"
|
|
6100
|
+
},
|
|
5931
6101
|
"evidence_unit_ids": [],
|
|
5932
6102
|
"justification": [
|
|
5933
|
-
"
|
|
5934
|
-
"chapter_grounding",
|
|
5935
|
-
"domain_mapping",
|
|
5936
|
-
"lexical_alignment"
|
|
6103
|
+
"curated_semantic_review"
|
|
5937
6104
|
],
|
|
5938
|
-
"link_id": "INT-008|maps_to_control|CTRL-
|
|
6105
|
+
"link_id": "INT-008|maps_to_control|CTRL-infrastructure-segmentacao-e-controlo-arquitetural-dceb3c1f0b",
|
|
5939
6106
|
"link_type": "maps_to_control",
|
|
5940
|
-
"matched_control_field": "
|
|
5941
|
-
"matched_control_text": "Revisão de
|
|
6107
|
+
"matched_control_field": "curation",
|
|
6108
|
+
"matched_control_text": "Revisão de fronteiras de confiança e integrações",
|
|
5942
6109
|
"score_components": {
|
|
5943
|
-
"chapter_overlap": [
|
|
5944
|
-
|
|
5945
|
-
|
|
5946
|
-
"runner_up_margin": 0.2033,
|
|
6110
|
+
"chapter_overlap": [],
|
|
6111
|
+
"mechanical_score": 0.66,
|
|
6112
|
+
"runner_up_margin": 0.03,
|
|
5947
6113
|
"shared_salient_tokens": [
|
|
6114
|
+
"integracoe",
|
|
5948
6115
|
"revisao"
|
|
5949
6116
|
],
|
|
5950
|
-
"token_similarity": 0.
|
|
6117
|
+
"token_similarity": 0.2
|
|
5951
6118
|
},
|
|
5952
6119
|
"source_id": "INT-008",
|
|
5953
6120
|
"source_label": "Revisão de segurança e contrato em integrações",
|
|
5954
6121
|
"source_type": "Requirement",
|
|
5955
|
-
"target_id": "CTRL-
|
|
5956
|
-
"target_label": "
|
|
6122
|
+
"target_id": "CTRL-infrastructure-segmentacao-e-controlo-arquitetural-dceb3c1f0b",
|
|
6123
|
+
"target_label": "Segmentação e controlo arquitetural",
|
|
5957
6124
|
"target_type": "Control"
|
|
5958
6125
|
},
|
|
5959
6126
|
{
|
|
@@ -6734,33 +6901,38 @@
|
|
|
6734
6901
|
"bundle_ids": [
|
|
6735
6902
|
"02-requisitos-seguranca"
|
|
6736
6903
|
],
|
|
6737
|
-
"confidence": 0.
|
|
6904
|
+
"confidence": 0.95,
|
|
6905
|
+
"curation": {
|
|
6906
|
+
"action": "retarget",
|
|
6907
|
+
"curator": "archon-2026-08-29",
|
|
6908
|
+
"previous_target_id": "CTRL-governance-capacitacao-e-onboarding-de-seguranca-f84db7abdf",
|
|
6909
|
+
"ratified_by": "programme-lead",
|
|
6910
|
+
"ratified_on": "2026-08-30",
|
|
6911
|
+
"rationale": "Parecer #51: alias exacto em CLA; match anterior por 'inclusao' ('Inclusão de Terceiros em Programas de Formação') — ruído puro.",
|
|
6912
|
+
"source": "sbd-toe-ontology/agentic/briefs/2026-08-29-archon-parecer-arestas-requisito-controlo.md"
|
|
6913
|
+
},
|
|
6738
6914
|
"evidence_unit_ids": [],
|
|
6739
6915
|
"justification": [
|
|
6740
|
-
"
|
|
6741
|
-
"chapter_grounding",
|
|
6742
|
-
"domain_mapping",
|
|
6743
|
-
"lexical_alignment"
|
|
6916
|
+
"curated_semantic_review"
|
|
6744
6917
|
],
|
|
6745
|
-
"link_id": "REQ-001|maps_to_control|CTRL-governance-
|
|
6918
|
+
"link_id": "REQ-001|maps_to_control|CTRL-governance-classificacao-e-governacao-por-risco-97aceecf29",
|
|
6746
6919
|
"link_type": "maps_to_control",
|
|
6747
|
-
"matched_control_field": "
|
|
6748
|
-
"matched_control_text": "
|
|
6920
|
+
"matched_control_field": "curation",
|
|
6921
|
+
"matched_control_text": "Integrar requisitos de segurança no backlog funcional da aplicação",
|
|
6749
6922
|
"score_components": {
|
|
6750
6923
|
"chapter_overlap": [
|
|
6751
6924
|
"02-requisitos-seguranca"
|
|
6752
6925
|
],
|
|
6753
|
-
"
|
|
6754
|
-
"
|
|
6755
|
-
|
|
6756
|
-
|
|
6757
|
-
"token_similarity": 0.1
|
|
6926
|
+
"mechanical_score": 0.84,
|
|
6927
|
+
"runner_up_margin": 0.0,
|
|
6928
|
+
"shared_salient_tokens": [],
|
|
6929
|
+
"token_similarity": 0.0
|
|
6758
6930
|
},
|
|
6759
6931
|
"source_id": "REQ-001",
|
|
6760
6932
|
"source_label": "Inclusão de requisitos de segurança",
|
|
6761
6933
|
"source_type": "Requirement",
|
|
6762
|
-
"target_id": "CTRL-governance-
|
|
6763
|
-
"target_label": "
|
|
6934
|
+
"target_id": "CTRL-governance-classificacao-e-governacao-por-risco-97aceecf29",
|
|
6935
|
+
"target_label": "Classificação e governação por risco",
|
|
6764
6936
|
"target_type": "Control"
|
|
6765
6937
|
},
|
|
6766
6938
|
{
|