@shiftleftpt/sbd-toe-mcp 0.20.0-beta.39 → 0.20.0-beta.40
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/assets/agent-guide.md +7 -0
- package/consumed-bundle.json +8 -8
- package/data/entities/proportionality.json +2 -2
- package/data/entities/sdlc_integration.json +2 -2
- package/data/publish/indexes/canonical_chunks.jsonl +4907 -4907
- package/data/publish/indexes/publication_manifest.json +1 -1
- package/data/publish/ontology/sbdtoe-ontology.yaml +129 -2
- package/data/publish/runtime/artifact_requirements.json +1059 -15
- package/data/publish/runtime/deterministic_manifest.json +1 -1
- package/data/publish/runtime/phases.json +106 -0
- package/data/publish/runtime/v1/v1_manifest.json +1 -1
- package/data/publish/semantic/ctrl_acore_alignment.jsonl +1 -1
- package/data/publish/semantic/macro_processes.jsonl +1 -1
- package/data/publish/semantic/mp_edges.jsonl +1 -1
- package/data/reports/run_manifest.json +4 -4
- package/dist/serving/agent-guide.d.ts +9 -0
- package/dist/serving/agent-guide.js +31 -0
- package/dist/serving/agent-guide.js.map +1 -1
- package/dist/serving/declared-absences.d.ts +63 -0
- package/dist/serving/declared-absences.js +114 -0
- package/dist/serving/declared-absences.js.map +1 -0
- package/dist/tools/get-chapter-capability.js +54 -7
- package/dist/tools/get-chapter-capability.js.map +1 -1
- package/dist/tools/get-guide-by-role.d.ts +2 -0
- package/dist/tools/get-guide-by-role.js +9 -0
- package/dist/tools/get-guide-by-role.js.map +1 -1
- package/dist/tools/get-macro-processes.js +2 -0
- package/dist/tools/get-macro-processes.js.map +1 -1
- package/dist/tools/get-playbook.js +3 -0
- package/dist/tools/get-playbook.js.map +1 -1
- package/dist/tools/ontology-loader.d.ts +6 -0
- package/dist/tools/ontology-loader.js +7 -0
- package/dist/tools/ontology-loader.js.map +1 -1
- package/dist/tools/plan-rollout.d.ts +8 -1
- package/dist/tools/plan-rollout.js +89 -19
- package/dist/tools/plan-rollout.js.map +1 -1
- package/dist/tools/structured-tools.js +30 -4
- package/dist/tools/structured-tools.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
meta:
|
|
2
2
|
name: SbD-ToE Manual Ontology
|
|
3
|
-
version: '2.
|
|
3
|
+
version: '2.6'
|
|
4
4
|
status: current
|
|
5
5
|
scope: Manual ontology
|
|
6
|
-
tag: sbdtoe-ontology-v2.
|
|
6
|
+
tag: sbdtoe-ontology-v2.6
|
|
7
7
|
history:
|
|
8
8
|
- version: '2.0'
|
|
9
9
|
note: V2 backbone + semantic layer (imported baseline from sbd-toe-knowledge-graph)
|
|
10
|
+
- version: '2.6'
|
|
11
|
+
date: '2026-09-07'
|
|
12
|
+
note: "Aditiva sobre 2.5 (dispatch Orchestrator + decisões do programme lead 2026-09-07, registo em agentic/decisions do programa): epistemic_model.absence_model (gap | out_of_scope | deferred | elsewhere, critério em cascata, debt_of, autoridade/prova), índice declared_absences (5 nomeadas tipadas + re-tipagem das ausências v2.2–v2.5 SEM tocar nos blocos originais — o índice prevalece), segmentation_principle nomeado com TRÊS espécies de relação inter-segmentação (travessia, dependência, piso — cap. 00 é piso, não ausência), schema aditivo em SDLCPhase (+bundle_ids derivado de assignments; manual_chapter documentado como âncora editorial) e ArtifactRequirement (+defining/cited_chapter_ids por decisão K, +required_for_levels; mandatory documentado como legacy constante), relação bundle_operates_in_phase. Nada removido nem alterado; bateria de aditividade estrita."
|
|
10
13
|
- version: '2.5'
|
|
11
14
|
date: '2026-09-06'
|
|
12
15
|
note: "Aditiva sobre 2.4 (ciclo macro-processos, gate ratificado pelo programme lead 2026-09-06 + adenda das três segmentações): entidade MacroProcess (MP-01..05) com travessias como dados declarados, 18 pares inter-MP tipados verbatim (9 dependency + 9 feedback; 23 registos de consumo; errata declarada face aos 17 do mapa: +MP2→MP4), DAG de adopção MP1 → {MP2 ∥ MP4} → MP3 → MP5, relações process_view, lacuna declarada da travessia de fases (não derivar). Ids dos 20 controlos, resolution_order, 260 práticas, catalogue_rules e acore_alignment inalterados."
|
|
@@ -97,6 +100,18 @@ epistemic_model:
|
|
|
97
100
|
deterministic: Result is exact given canonical source data
|
|
98
101
|
bounded: Result is deterministic but thresholded and contestable
|
|
99
102
|
probabilistic: Result depends on a probabilistic extraction step; not allowed in runtime
|
|
103
|
+
absence_model:
|
|
104
|
+
# v2.6 (decisão do lead 2026-09-07): vocabulário tipado para ausências declaradas. «É bom ser honesto no que
|
|
105
|
+
# não apresentamos, mas temos que distinguir o que é fora do âmbito do que é uma lacuna. A lacuna é erro ou
|
|
106
|
+
# omissão e tem que ser definido. Out-of-scope é decisão.»
|
|
107
|
+
criterion: "cascata — existe decisão registada sobre esta ausência? não → gap; sim e «nunca» → out_of_scope; sim e «depois» com gatilho declarado → deferred; sim e existe noutra superfície resolúvel → elsewhere (pointer que não resolve degrada para gap da superfície apontada)"
|
|
108
|
+
values:
|
|
109
|
+
gap: "erro ou omissão — dívida com dono (debt_of) e destino (closes_in); qualquer persona propõe, o dono da camada confirma, o lead arbitra se contestado; prova: fonte esperada identificada + ausência demonstrada"
|
|
110
|
+
out_of_scope: "fronteira deliberada; não fecha; SÓ O PROGRAMME LEAD atribui — é o que impede que uma lacuna incómoda vire fronteira por conveniência; prova: decisão registada ou declaração de fronteira na fonte + ratificação"
|
|
111
|
+
deferred: "decisão «depois» COM gatilho de activação declarado (sem gatilho não é deferred, é gap); atribui o dono da camada + autorização do lead; prova: decisão + trigger"
|
|
112
|
+
elsewhere: "existe noutra superfície; atribui o dono da camada; prova: pointer resolúvel mecanicamente"
|
|
113
|
+
debt_of: [manual_content, ontology_model, kg_surface, mcp_serving]
|
|
114
|
+
note: "«não modelado» NÃO é valor próprio — é gap/deferred com debt_of: ontology_model"
|
|
100
115
|
requirement_selection_model:
|
|
101
116
|
# v2.2 (2026-08-30) — semântica declarada pelo programme lead (pré-G-b, ciclo D2). Formulação normativa:
|
|
102
117
|
description: "O catálogo do cap. 02 (requisitos type: base) é a baseline normativa por defeito — catálogo real, seleccionado sempre, salvo overlay; os catálogos dos capítulos 03–14 (type: domain-specific) são requisitos do domínio, activados pelo contexto (Docker → 09, IaC → 08, infra → 08/11, CI → 07…); os overlays operam por categoria com replace ou extend. Selecção = baseline ∪ específicos(contexto) ⊕ overlay."
|
|
@@ -397,6 +412,8 @@ entities:
|
|
|
397
412
|
- phase_id: string
|
|
398
413
|
- label: string
|
|
399
414
|
- aliases: list[string]
|
|
415
|
+
- manual_chapter: integer # legado (v2.6): âncora editorial histórica, NÃO é contenção — não usar para cobertura; mantido inalterado (aditividade)
|
|
416
|
+
- bundle_ids: list[string] # v2.6, aditivo: travessia N:M fase↔capítulo DERIVADA dos assignments autorados (papel×nível×fase) — regra em segmentation_principle.derivations.phase_bundles
|
|
400
417
|
EvidencePattern:
|
|
401
418
|
layer: core
|
|
402
419
|
description: 'Expected evidence pattern used for deterministic review. Interprets one or more artifacts or signals as verifiable evidence; the artifact itself is not the evidence judgement. Designed as input for deterministic verification models in future ontology versions (V3).
|
|
@@ -585,6 +602,11 @@ entities:
|
|
|
585
602
|
- source_control_ids: list[string]
|
|
586
603
|
- source_practice_ids: list[string]
|
|
587
604
|
- chapter_id: string
|
|
605
|
+
- chapter_ids: list[string] # legado: união indiferenciada (semântica histórica; mantido inalterado)
|
|
606
|
+
- defining_chapter_ids: list[string] # v2.6, aditivo (decisão K aplicada): capítulos das source_practice_ids — onde o artefacto é PRESCRITO
|
|
607
|
+
- cited_chapter_ids: list[string] # v2.6, aditivo: chapter_ids ∖ defining_chapter_ids — proveniência sem prescrição
|
|
608
|
+
- mandatory: boolean # legado (v2.6): constante true em 45/45 — sem valor discriminante; mantido inalterado; usar required_for_levels
|
|
609
|
+
- required_for_levels: object # v2.6, aditivo: {L1,L2,L3} derivado pela cadeia ratificada de níveis (§1.9 do contrato KG: requisito→controlo→artefacto, applicable_levels autorados)
|
|
588
610
|
ImplementationRule:
|
|
589
611
|
layer: stub
|
|
590
612
|
description: Reserved future layer for code-generation-facing implementation rules
|
|
@@ -685,6 +707,16 @@ relations:
|
|
|
685
707
|
source_mode: heuristic
|
|
686
708
|
authority_class: normative
|
|
687
709
|
confidence_model: bounded
|
|
710
|
+
segmentation_traversals:
|
|
711
|
+
# v2.6 — travessias entre segmentações (ver segmentation_principle). Nunca contenção.
|
|
712
|
+
bundle_operates_in_phase:
|
|
713
|
+
from: KnowledgeBundle
|
|
714
|
+
to: SDLCPhase
|
|
715
|
+
status: stable
|
|
716
|
+
source_mode: derived
|
|
717
|
+
authority_class: normative
|
|
718
|
+
confidence_model: deterministic
|
|
719
|
+
note: "N:M derivada dos practice_assignments autorados (capítulo tem >=1 assignment na fase); regra declarada em segmentation_principle.derivations.phase_bundles; verificado 2026-09-07: plan 8 · design 7 · develop 9 · build 6 · test 6 · deploy 10 · operate 12 · govern 11. O cap. 00-fundamentos não entra por derivação: é PISO (terceira espécie), não ausência."
|
|
688
720
|
process_view:
|
|
689
721
|
# v2.5 — vista processual (MacroProcess). NOTA: deliberadamente NÃO existe relação MacroProcess↔SDLCPhase
|
|
690
722
|
# (ver macro_processes.sdlc_phase_traversal — lacuna declarada; travessia parcial e não publicada).
|
|
@@ -4695,3 +4727,98 @@ macro_processes:
|
|
|
4695
4727
|
L1: thresholds de base; T-06 espera nível 1
|
|
4696
4728
|
L2: thresholds apertam; validação contínua semestral
|
|
4697
4729
|
L3: trimestral; obrigações cumulativas
|
|
4730
|
+
# ---------------------------------------------------------------------------
|
|
4731
|
+
# segmentation_principle + declared_absences (v2.6, 2026-09-07 — decisões do programme lead)
|
|
4732
|
+
# ---------------------------------------------------------------------------
|
|
4733
|
+
segmentation_principle:
|
|
4734
|
+
# v2.6 — nomeado e normativo (generaliza a adenda v2.5; decisões do lead 2026-09-06 e 2026-09-07)
|
|
4735
|
+
statement: "MacroProcess, KnowledgeBundle (capítulo) e SDLCPhase são segmentações PARALELAS do mesmo substrato. Relações entre segmentações nunca se tipam como contenção (campo 1:1, int, «pertence a»). A cardinalidade é propriedade da vista (a vista processual cobre 15 capítulos; a vista de fases tem 8): nenhuma vista substitui ou vence outra."
|
|
4736
|
+
relation_species:
|
|
4737
|
+
travessia: "N:M entre segmentações, PUBLICADA na fonte (ex.: MP → capítulos) ou DERIVADA de dados autorados com regra declarada (ex.: fase ↔ capítulos via assignments). Sem fonte, não há travessia — deriva-se o que é publicado, nunca o que é conveniente."
|
|
4738
|
+
dependencia: "consumo tipado entre instâncias da MESMA segmentação (ex.: arestas inter-MP dependency|feedback, regra do template)"
|
|
4739
|
+
piso: "relação transversal de fundação — aplica-se a tudo, independentemente do eixo da segmentação (ex.: cap. 00-fundamentos: «capítulo de definição para que se entenda o resto do manual; roles e mínimos — transversal a todo o manual»). O piso NÃO é ausência de nenhuma vista, não recebe fase nem se tipa out_of_scope; a v2.5 já o publica (path_edge kind: piso; MP-01/MP-04/MP-05 atravessam-no)."
|
|
4740
|
+
derivations:
|
|
4741
|
+
phase_bundles: "SDLCPhase.bundle_ids = capítulos com >=1 practice_assignment autorado na fase (papel×nível×fase publicados no Manual). Verificado 2026-09-07: plan 8 · design 7 · develop 9 · build 6 · test 6 · deploy 10 · operate 12 · govern 11 — design inclui o cap. 04 e develop o cap. 06 porque os assignments o publicam; 6 dos 7 capítulos ausentes do rollout regressam (o 00 entra como piso). O cap. 00 fica fora desta derivação POR SER PISO, não por ausência."
|
|
4742
|
+
artifact_defining_chapters: "ArtifactRequirement.defining_chapter_ids = capítulos das source_practice_ids (decisão K, precedente ratificado v2.1/contrato §1.20); cited_chapter_ids = chapter_ids ∖ defining (ex. verificado: SBOM 7 definidores vs 15 citados)"
|
|
4743
|
+
artifact_required_levels: "ArtifactRequirement.required_for_levels derivado pela cadeia de níveis ratificada (requisito→controlo→artefacto; applicable_levels autorados)"
|
|
4744
|
+
prohibitions:
|
|
4745
|
+
- "MacroProcess ↔ SDLCPhase: travessia N:M parcial nos dois sentidos e NÃO publicada — out_of_scope (ABS-001); derivação proibida"
|
|
4746
|
+
- "manual_chapter e mandatory não são removidos nem alterados — ganham companhia (bundle_ids; required_for_levels)"
|
|
4747
|
+
declared_absences:
|
|
4748
|
+
# v2.6 — índice central das ausências declaradas, tipadas pelo absence_model. Regra de imutabilidade aditiva:
|
|
4749
|
+
# os blocos locais de v2.2–v2.5 (requirement_selection_model.status.*, acore_alignment.unaligned,
|
|
4750
|
+
# macro_processes.sdlc_phase_traversal, catalogue_rules) mantêm o texto original SEM alteração; A TIPAGEM DESTE
|
|
4751
|
+
# ÍNDICE PREVALECE sobre qualquer rótulo local anterior. Decisões: SecurityByDesign-TheoryOfEverything/agentic/decisions/2026-09-07-ausencias-tipadas-travessia-vs-contencao.md
|
|
4752
|
+
items:
|
|
4753
|
+
- absence_id: ABS-001
|
|
4754
|
+
statement: "Travessia MacroProcess ↔ SDLCPhase"
|
|
4755
|
+
absence_type: out_of_scope
|
|
4756
|
+
decided_by: programme-lead
|
|
4757
|
+
decided_on: '2026-09-07'
|
|
4758
|
+
evidence: "«não há esse walkthrough possível. Um MP pode passar várias fases e as fases podem cruzar vários MPs» — relação N:M e parcial nos dois sentidos; o Manual publica percursos ao grão capítulo («fase» ocorre 1× no capítulo, na frase que nega a equivalência)"
|
|
4759
|
+
note: "a derivação a partir de capítulos/assignments continua PROIBIDA (mantém macro_processes.sdlc_phase_traversal, cujo rótulo local unpublished_gap fica superseded por esta tipagem)"
|
|
4760
|
+
- absence_id: ABS-002
|
|
4761
|
+
statement: "Semântica decide-vs-delega por papel (GR-04)"
|
|
4762
|
+
absence_type: gap
|
|
4763
|
+
debt_of: manual_content
|
|
4764
|
+
owner: Author
|
|
4765
|
+
decided_by: "Orchestrator (proposta) + programme-lead (concordou: falha de conteúdo no painel há vários ciclos, confirmada por auditor externo)"
|
|
4766
|
+
decided_on: '2026-09-07'
|
|
4767
|
+
closes_in: "vaga de conteúdo do Manual a agendar"
|
|
4768
|
+
note: "hipótese elsewhere PARCADA para análise posterior (avaliar se há pointer real de operating model e no que resultaria); não usada aqui, não eliminada do vocabulário"
|
|
4769
|
+
- absence_id: ABS-003
|
|
4770
|
+
statement: "Atribuições (practice_assignments) para o papel fornecedores-terceiros"
|
|
4771
|
+
absence_type: gap
|
|
4772
|
+
debt_of: "a triar (manual_content provável vs kg_surface — US omite o papel, ou a extracção perde-o)"
|
|
4773
|
+
owner: "Author + Codex (triagem)"
|
|
4774
|
+
decided_on: '2026-09-07'
|
|
4775
|
+
evidence: "papel canónico existe; deveres em prosa existem (cap. 14, TRN-007, GOV-013, MP4); 0 assignments servidos (GR-04)"
|
|
4776
|
+
- absence_id: ABS-004
|
|
4777
|
+
statement: "Cross-checks normativos ISO/PCI/SOC2/HIPAA/FedRAMP/CSA"
|
|
4778
|
+
absence_type: deferred
|
|
4779
|
+
debt_of: manual_content
|
|
4780
|
+
owner: "Author / lane overlay"
|
|
4781
|
+
trigger: "ciclo do cross-check normativo (roadmap declarado)"
|
|
4782
|
+
decided_on: '2026-09-07'
|
|
4783
|
+
- absence_id: ABS-005
|
|
4784
|
+
statement: "Atribuições para gestao-executiva no cap. 01"
|
|
4785
|
+
absence_type: gap
|
|
4786
|
+
debt_of: "a triar (kg_surface se a US do cap. 01 nomeia o papel e a extracção perde; senão manual_content)"
|
|
4787
|
+
owner: "Author + Codex (triagem)"
|
|
4788
|
+
decided_on: '2026-09-07'
|
|
4789
|
+
evidence: "o catálogo dá-lhe deveres (CLA-002: aprovação L3); US-15@01 existe; atribuição não servida"
|
|
4790
|
+
# --- re-tipagem das ausências declaradas em v2.2–v2.5 (blocos originais intocados; este índice prevalece) ---
|
|
4791
|
+
- absence_id: ABS-006
|
|
4792
|
+
statement: "Operadores de overlay replace|extend (requirement_selection_model.status.overlay_operators)"
|
|
4793
|
+
absence_type: deferred
|
|
4794
|
+
debt_of: ontology_model
|
|
4795
|
+
owner: Archon
|
|
4796
|
+
trigger: "ADR 0014 (overlay corporativo)"
|
|
4797
|
+
decided_on: '2026-08-30'
|
|
4798
|
+
- absence_id: ABS-007
|
|
4799
|
+
statement: "Operação de selecção em runtime (requirement_selection_model.status.runtime_selection)"
|
|
4800
|
+
absence_type: deferred
|
|
4801
|
+
debt_of: mcp_serving
|
|
4802
|
+
owner: Pontifex
|
|
4803
|
+
trigger: "ciclo do Pontifex (pipeline d, MP1 como operação)"
|
|
4804
|
+
decided_on: '2026-08-30'
|
|
4805
|
+
- absence_id: ABS-008
|
|
4806
|
+
statement: "Alinhamento dos 58 ACM (acore_alignment.unaligned.acm)"
|
|
4807
|
+
absence_type: deferred
|
|
4808
|
+
debt_of: ontology_model
|
|
4809
|
+
owner: Archon
|
|
4810
|
+
trigger: "F-W1 — materializar a aresta ACM→CO na superfície V1 e derivar como as ACP"
|
|
4811
|
+
decided_on: '2026-09-03'
|
|
4812
|
+
- absence_id: ABS-009
|
|
4813
|
+
statement: "CTRL sem contraparte AppSec Core (CAP, C4, C3 — acore_alignment.unaligned.ctrl)"
|
|
4814
|
+
absence_type: out_of_scope
|
|
4815
|
+
decided_by: programme-lead
|
|
4816
|
+
decided_on: '2026-09-03'
|
|
4817
|
+
evidence: "âmbito do Core V1 por desenho (gate do walkthrough)"
|
|
4818
|
+
- absence_id: ABS-010
|
|
4819
|
+
statement: "Estrutura de medição F-01..F-04 / T-01..T-06 não modelada"
|
|
4820
|
+
absence_type: deferred
|
|
4821
|
+
debt_of: ontology_model
|
|
4822
|
+
owner: Archon
|
|
4823
|
+
trigger: "ciclo do desenho de assurance"
|
|
4824
|
+
decided_on: '2026-08-30'
|