@shiftleftpt/sbd-toe-mcp 0.20.0-beta.37 → 0.20.0-beta.38

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,6 @@
1
+ {"adoption_order_rule": "ordem topológica do subconjunto dependency (feedback excluído por definição): MP-01 → {MP-02 ∥ MP-04} → MP-03 → MP-05; MP-02 e MP-04 são incomparáveis na fonte (declarado, não inferido).", "counts": {"consumption_records": 23, "dependency_pairs": 9, "feedback_pairs": 9, "ft_textual_refs": 11, "inter_mp_typed_pairs": 18, "macro_processes": 5, "path_edges": 22, "textual_path_endpoints": 7, "textual_refs_passed_through": 22}, "curation": {"adenda": "três segmentações + lacuna de fases (2026-09-06)", "curator": "archon-2026-09-06", "ratified_by": "programme-lead", "ratified_on": "2026-09-06", "source": "agentic/briefs/2026-09-06-archon-proposta-macro-processos.md"}, "edge_typing_rule": "consumo que aparece nas «Entradas» do MP consumidor ⇒ dependency; consumo que aparece nos «Gatilhos» do consumidor ou nas realimentações declaradas (fecho, laço, realimentar, «nos seus gatilhos») ⇒ feedback. Cada aresta vive em outputs[].consumed_by com o artefacto (via) e refs.", "erratum_vs_gate_map": "o mapa ratificado dizia 17 pares; na emissão a aplicação da regra ratificada à fonte encontrou a 18.ª — MP2→MP4 («threat model … consumido por MP4: risco aceite entra na cadeia de autoridade», CLA-007), tipada feedback porque não figura nas Entradas de MP4; declarada aqui, nunca silenciada.", "layer": "macro_processes", "model_note": "MacroProcess, KnowledgeBundle (capítulo) e SDLCPhase são TRÊS SEGMENTAÇÕES do mesmo substrato — agregações/percursos diferentes de olhar para o processo de desenvolvimento segundo SbD — e não níveis de uma hierarquia nem partições umas das outras; nenhuma relação entre as três se tipa como contenção. `MP → capítulos` é «percurso publicado», e é só isso. Os rótulos MP1–MP5 são ontology-owned (MP-0N); não são IDs de requisito.", "pins": {"manual_commit": "ea6b396b9caa", "sbdtoe_ontology_tag": "sbdtoe-ontology-v2.5"}, "profiles": ["consult", "guide"], "record_type": "layer_manifest", "ref_conventions": "refs com padrão [A-Z]{3}-\\d{3} / REQ-AGN-\\d{3} são Requirement ids validados; [A-Z]{3}-K\\d{2} são metric_id validados; US-nn@cc refere a user story nn do capítulo cc (validação na materialização, Codex); F-0n e T-0n são a estrutura de medição transversal do cap. 14 — refs textuais declaradas não-modeladas (lacuna para o ciclo de assurance); restantes refs são âncoras editoriais textuais.", "schema_version": "1.0", "sdlc_phase_traversal": {"decided_by": "programme-lead 2026-09-06 (adenda à ratificação)", "reason": "a travessia MP↔fase existe mas é PARCIAL e NÃO PUBLICADA: um MP atravessa várias fases e não necessariamente na íntegra; uma fase pode conter partes de vários MP. O Manual publica por MP o percurso de CAPÍTULOS, nunca um percurso de fases («fase» ocorre uma única vez no capítulo, na frase que nega a equivalência). Lacuna declarada — NÃO derivar a travessia a partir de capítulos/assignments.", "status": "unpublished_gap"}, "validation": {"complete_instances": "5/5", "dependency_dag": "{MP-01} -> {MP-02 ∥ MP-04} -> {MP-03} -> {MP-05}", "mp02_mp04_incomparable": true, "refs_resolved": true}}
2
+ {"activities": [{"order": 1, "refs": ["CLA-001", "US-01@01"], "text": "Classificar pelos três eixos e obter o nível"}, {"order": 2, "refs": ["CLA-002", "CLA-008", "US-15@01"], "text": "Aprovar proporcionalmente e registar no inventário"}, {"order": 3, "refs": ["CLA-003", "US-02@01"], "text": "Aplicar a matriz de controlos ao nível"}, {"order": 4, "refs": ["REQ-003", "US-01@02"], "text": "Selecionar requisitos no backlog com SEC-Lx-* e registar a decisão"}, {"order": 5, "refs": ["matriz transversal (cap. 10)"], "text": "Propagar a aplicabilidade aos capítulos técnicos"}, {"order": 6, "refs": ["US-12@02"], "text": "Validar no pipeline tags e ligação a REQ-XXX"}, {"order": 7, "refs": ["CLA-004", "CLA-005", "CLA-006", "US-03@01", "US-02@02"], "text": "Reavaliar por gatilho ou ciclo, com registo"}, {"order": 8, "refs": ["GOV-006", "GOV-007"], "text": "Estender a fornecedores cláusulas e validação proporcionais"}], "ai_agentic_extension": {"refs": ["REQ-AGN-001", "REQ-AGN-002", "REQ-AGN-003", "REQ-AGN-004", "US-19@13"], "text": "Classificar e depois selecionar, com o eixo adicional A0–A4; o nível A seleciona REQ-AGN-001..004 e os requisitos AI dos capítulos; formação por perfil e nível"}, "continuity": "Aplicabilidade", "control_points": [{"refs": ["CLA-002"], "text": "Aprovação da classificação pela entidade proporcional"}, {"refs": ["US-12@02"], "text": "Verificação de tags no PR"}, {"refs": ["US-05@01"], "text": "Validação antes do go-live"}, {"refs": ["CLA-006"], "text": "Prazo de reavaliação (30 dias)"}, {"refs": ["F-01", "F-02"], "text": "Completude do denominador: F-02 = F-01"}], "expected_evidence": [{"refs": ["US-01@01"], "text": "Documento de classificação versionado + matriz aplicada"}, {"refs": ["CLA-008"], "text": "Inventário central completo"}, {"refs": ["US-04@02"], "text": "Backlog com tags SEC-Lx-* e relatórios exportáveis"}, {"refs": ["US-03@01"], "text": "Registo de revisão com trigger e justificação"}], "foundation_refs": ["F-01", "F-02"], "indicators": ["CLA-K01", "CLA-K03", "CLA-K04", "RQS-K01", "RQS-K06"], "inputs": [{"refs": [], "text": "Eixos E/D/I e limiares L1–L3 (modelo de classificação)"}, {"refs": ["CLA-008"], "text": "Inventário central de aplicações"}, {"refs": [], "text": "Matriz de controlos por nível de risco"}, {"refs": [], "text": "Catálogos com colunas L1/L2/L3 (caps. 02–14) + baseline (Fundamentos)"}], "invariant": "Um perfil de segurança registado seleciona requisitos, gates, profundidade de revisão, evidência e formação.", "label": "MP1", "mp_id": "MP-01", "name_en": "CLASSIFY → SELECT", "name_pt": "Classificar → Selecionar", "outputs": [{"consumed_by": [{"kind": "dependency", "mp": "MP-02", "refs": ["THR-001"], "via": "threat modeling formal aplica-se a L2+"}, {"kind": "dependency", "mp": "MP-03", "refs": [], "via": "gates e profundidade de verificação por nível"}, {"kind": "dependency", "mp": "MP-04", "refs": ["GOV-003"], "via": "alçadas de aprovação por nível"}, {"kind": "dependency", "mp": "MP-05", "refs": ["F-02"], "via": "inventário classificado é o denominador F-02 de todos os KPIs"}], "text": "Perfil de segurança registado (classificação aprovada + inventário + seleção de requisitos)"}], "owner_role": "appsec-engineer", "participant_roles": ["developer", "scrum-master", "arquitetos-software", "product-owner", "gestao-executiva", "grc-compliance", "qa"], "path_edges": [{"from": "01-classificacao-aplicacoes", "kind": "fluxo", "to": ["02-requisitos-seguranca"], "via_refs": ["CLA-001", "CLA-002"]}, {"from": "02-requisitos-seguranca", "kind": "fluxo", "note": "backlog SEC-Lx-* propaga aplicabilidade aos capítulos técnicos", "to": ["05-dependencias-sbom-sca", "06-desenvolvimento-seguro", "07-cicd-seguro", "08-iac-infraestrutura", "09-containers-imagens", "10-testes-seguranca", "11-deploy-seguro", "12-monitorizacao-operacoes", "13-formacao-onboarding"], "via_refs": ["REQ-003", "US-04@02", "US-12@02"]}, {"from": "00-fundamentos", "kind": "piso", "note": "independente do nível; a seleção acrescenta, nunca subtrai", "to": "todas as aplicações", "via_refs": ["baseline (oito obrigações mínimas)"]}, {"from": "01-classificacao-aplicacoes", "kind": "ramo", "note": "ramo de aquisição — fornecedores e terceiros", "to": ["14-governanca-contratacao"], "via_refs": ["GOV-006", "GOV-007"]}], "profiles": ["consult", "guide"], "proportionality_l1_l3": {"L1": "piso das oito obrigações + matriz de nível baixo; aprovação pelo responsável técnico; revisão anual", "L2": "classificação validada por AppSec (CLA-K04); revisão por alteração obrigatória", "L3": "aprovação Gestão Executiva/CISO; revisão trimestral"}, "provenance": {"anchor": "#mp1-classificar-selecionar", "manual_pin": "v1.8.0 f78dfe734a83b01fa9283c2df5a3eb0ba9528001", "source": "SbD-ToE-Manual: 010-sbd-manual/00-fundamentos/macro-processos.md"}, "question": "O que se aplica aqui?", "record_type": "macro_process", "scope_subjects": [{"refs": ["CLA-001", "CLA-008"], "subject": "application"}, {"refs": ["GOV-007"], "subject": "supplier"}, {"refs": ["A0–A4 por agente e contexto"], "subject": "ai_agent"}], "traverses_bundles": ["00-fundamentos", "01-classificacao-aplicacoes", "02-requisitos-seguranca", "05-dependencias-sbom-sca", "06-desenvolvimento-seguro", "07-cicd-seguro", "08-iac-infraestrutura", "09-containers-imagens", "10-testes-seguranca", "11-deploy-seguro", "12-monitorizacao-operacoes", "13-formacao-onboarding", "14-governanca-contratacao"], "triggers": [{"refs": ["US-01@01"], "text": "Aplicação nova ou início de projeto"}, {"refs": ["CLA-006", "CLA-004"], "text": "Alteração significativa, reavaliação ≤ 30 dias"}, {"refs": ["CLA-005"], "text": "Ciclo periódico por nível (L1 anual, L2 semestral, L3 trimestral)"}, {"refs": ["REQ-005", "US-02@02"], "text": "Alteração relevante de requisitos; pode disparar novo threat modeling"}, {"refs": [], "text": "Introdução/modificação de automação ou apoio à decisão (incl. IA); regra de reforço da matriz"}]}
3
+ {"activities": [{"order": 1, "refs": ["THR-002", "THR-003", "US-01@03"], "text": "Modelar ameaças (STRIDE baseline; LINDDUN dados pessoais; PASTA alto risco) sobre DFDs"}, {"order": 2, "refs": ["THR-004", "THR-005", "US-09@03"], "text": "Dispor cada ameaça com owner e aprovar o modelo"}, {"order": 3, "refs": ["ARC-005", "US-04@04"], "text": "Sincronizar com a arquitetura (ADR; rastreabilidade decisão↔ameaça↔controlo↔requisito)"}, {"order": 4, "refs": ["THR-007", "US-03@04"], "text": "Rever independentemente antes do go-live (L2+)"}, {"order": 5, "refs": ["US-05@02", "TST-001", "TST-007"], "text": "Definir critérios de validação e estratégia/cobertura de testes"}, {"order": 6, "refs": ["DEV-003", "TST-002", "TST-005"], "text": "Verificar com o oráculo adequado (SAST gate; DAST staging; regressão)"}, {"order": 7, "refs": ["US-09@02", "REQ-006"], "text": "Fechar sobre o requisito (REQ-XXX → evidência; matriz)"}, {"order": 8, "refs": ["US-07@10", "US-12@04", "ARC-012"], "text": "Decidir o release com aceitação explícita de risco residual; gate arquitetural"}, {"order": 9, "refs": ["processo canónico de exceções (cap. 14)"], "text": "Excecionar desvios arquiteturais em ADR com aceitação de risco"}], "ai_agentic_extension": {"refs": ["THR-008", "US-11@03", "US-12@03", "ARC-014"], "text": "Threat model estendido a componentes AI/ML e agentes com tool-use; padrões arquitetónicos dedicados"}, "continuity": "Intenção", "control_points": [{"refs": ["US-09@03"], "text": "Aprovação formal do threat model"}, {"refs": ["US-05@03"], "text": "Gate de consistência no CI/CD (alerta L2, bloqueante L3)"}, {"refs": ["THR-007"], "text": "Revisão independente antes do go-live (L2+)"}, {"refs": ["US-12@04", "ARC-012"], "text": "Gate arquitetural antes do go-live (checklist assinada em L3)"}, {"refs": ["US-07@10"], "text": "Critérios de release (L2 bloqueia High/Critical; L3 nenhum crítico sem exceção)"}], "expected_evidence": [{"refs": ["US-09@03"], "text": "Threat model versionado com aprovação"}, {"refs": ["US-04@04", "US-09@04"], "text": "ADR e ficha de solução alinhadas"}, {"refs": ["REQ-006", "THR-005"], "text": "Matriz requisito↔ameaça↔teste"}, {"refs": ["US-09@02"], "text": "Resultado e evidência por REQ-XXX"}, {"refs": ["TST-004", "US-12@04"], "text": "Relatórios de teste ligados ao build; checklist de arquitetura"}], "indicators": ["THR-K02", "THR-K05", "ARC-K02", "RQS-K03", "RQS-K05", "TST-K04"], "inputs": [{"refs": ["REQ-003"], "text": "Requisitos selecionados com SEC-Lx-* (MP1)"}, {"refs": ["THR-002", "ARC-001"], "text": "DFDs com trust boundaries; zonas de confiança"}, {"refs": [], "text": "Catálogo de ameaças mitigadas (MT-NNN)"}, {"refs": ["US-13@04", "TST-001"], "text": "Catálogo de padrões de arquitetura + estratégia de testes"}], "invariant": "Ameaças, decisões de arquitetura e testes fecham sobre o mesmo resultado declarado.", "label": "MP2", "mp_id": "MP-02", "name_en": "DESIGN → ASSURE", "name_pt": "Desenhar → Assegurar", "notes": ["ARC-015 (agente como principal) pertence à continuidade de autoridade — tratado em MP4 (declaração da própria fonte)"], "outputs": [{"consumed_by": [{"kind": "dependency", "mp": "MP-03", "refs": [], "via": "gates de promoção"}, {"kind": "feedback", "mp": "MP-04", "refs": ["CLA-007"], "via": "risco aceite entra na cadeia de autoridade (não é Entrada declarada de MP4; entra pelo circuito de exceção/aceitação)"}], "text": "Threat model aprovado e versionado com decisões"}, {"consumed_by": [{"kind": "dependency", "mp": "MP-03", "refs": ["TST-004"], "via": "promoção só com evidência"}, {"kind": "dependency", "mp": "MP-05", "refs": ["RQS-K03", "THR-K02"], "via": "indicadores"}], "text": "Evidência de verificação ligada ao build"}, {"consumed_by": [{"kind": "dependency", "mp": "MP-05", "refs": ["REQ-006"], "via": "medição e auditoria"}], "text": "Matriz requisito → ameaça → teste"}], "owner_role": "appsec-engineer", "participant_roles": ["arquitetos-software", "developer", "qa", "product-owner", "scrum-master", "gestao-executiva", "devops-sre"], "path_edges": [{"from": "02-requisitos-seguranca", "kind": "fluxo", "to": ["03-threat-modeling"], "via_refs": ["REQ-003", "REQ-005"]}, {"from": "03-threat-modeling", "kind": "fluxo", "to": ["04-arquitetura-segura"], "via_refs": ["THR-004", "THR-005", "THR-002"]}, {"from": "04-arquitetura-segura", "kind": "fluxo", "to": ["10-testes-seguranca"], "via_refs": ["ARC-005", "US-02@04", "TST-001"]}, {"from": "10-testes-seguranca", "kind": "fecho", "to": ["02-requisitos-seguranca"], "via_refs": ["TST-004", "REQ-006", "US-09@02"]}], "profiles": ["consult", "guide"], "proportionality_l1_l3": {"L1": "zonas de confiança (ARC-001), SAST como gate (DEV-003), validação funcional (REQ-001)", "L2": "threat modeling formal + rastreabilidade requisito→ameaça→teste", "L3": "revisão formal reforçada; ARC-012; critérios de release estritos"}, "provenance": {"anchor": "#mp2-desenhar-assegurar", "manual_pin": "v1.8.0 f78dfe734a83b01fa9283c2df5a3eb0ba9528001", "source": "SbD-ToE-Manual: 010-sbd-manual/00-fundamentos/macro-processos.md"}, "question": "O que foi desenhado e implementado satisfaz a intenção de segurança?", "record_type": "macro_process", "scope_subjects": [{"refs": ["L2+ (THR-*, maioria dos TST-*)"], "subject": "application"}, {"refs": ["THR-006", "US-06@04", "US-11@04"], "subject": "significant_architectural_change"}, {"refs": ["THR-008", "ARC-014"], "subject": "ai_ml_component"}], "traverses_bundles": ["02-requisitos-seguranca", "03-threat-modeling", "04-arquitetura-segura", "10-testes-seguranca"], "triggers": [{"refs": ["THR-001", "THR-007"], "text": "Nova aplicação L2+ antes do go-live"}, {"refs": ["THR-006", "US-03@03", "US-11@04"], "text": "Alteração arquitetural significativa (threat model ≤ 30 dias)"}, {"refs": ["REQ-005"], "text": "Alteração relevante de requisito"}, {"refs": ["TST-006"], "text": "Vulnerabilidade corrigida → teste de regressão"}, {"refs": ["US-05@03"], "text": "Pipeline com alteração relevante sem threat model atualizado (gate de consistência)"}]}
4
+ {"activities": [{"order": 1, "refs": ["DEP-001", "DEP-002", "DEP-003", "DEP-004"], "text": "Inventariar e verificar dependências por build (SBOM, SCA, versões fixas)"}, {"order": 2, "refs": ["DEV-002", "DEV-003", "CIC-003", "IAC-011"], "text": "Construir com gates de integração (linters, SAST, secrets scanning)"}, {"order": 3, "refs": ["CIC-001", "CIC-002", "CIC-006"], "text": "Executar o pipeline como código, triggers restritos, runners isolados"}, {"order": 4, "refs": ["CIC-007", "CNT-007", "CNT-008"], "text": "Assinar e registar proveniência de artefacto e imagem"}, {"order": 5, "refs": ["IAC-003", "IAC-007", "CNT-009"], "text": "Policy-as-code e admission control"}, {"order": 6, "refs": ["DPL-002", "DPL-003", "DPL-001", "US-15@07", "US-16@11"], "text": "Promover só com proveniência verificada, gates passados e aprovação humana"}, {"order": 7, "refs": ["DPL-004", "US-17@11", "DPL-007"], "text": "Registar o deploy com rastreabilidade end-to-end; validar em staging"}, {"order": 8, "refs": ["OPS-001", "OPS-002", "OPS-004", "OPS-005", "OPS-015"], "text": "Observar em runtime (logging estruturado, eventos, alertas, drift)"}, {"order": 9, "refs": ["DEP-010", "DPL-005", "US-15@11"], "text": "Fechar o laço de vulnerabilidade e incidente (SBOM→CVE→correção; rollback testado)"}], "ai_agentic_extension": {"refs": ["DEP-011", "DEP-012", "US-14@05", "US-19@07", "DPL-010", "DPL-011", "OPS-011", "OPS-012", "OPS-013", "OPS-014"], "text": "Identidade do que executa inclui modelo/versão, prompts/skill files, tools/MCP e mandate; AI BOM; pesos como ativo crítico; eval suite como gate; telemetria dedicada. O mandate é matéria de MP4; MP3 garante que o que corre é o que o mandate referencia"}, "continuity": "Proveniência / execução", "control_points": [{"refs": ["DEP-002", "CIC-004"], "text": "Gate SCA com bloqueio + gates de pipeline bloqueantes"}, {"refs": ["CIC-007", "CNT-007", "DPL-002"], "text": "Verificação de assinatura/proveniência antes de promoção"}, {"refs": ["CNT-009", "IAC-007"], "text": "Admission control + plan aprovado antes de apply"}, {"refs": ["DPL-001", "CIC-004", "CIC-K02"], "text": "Aprovação humana para ações irreversíveis; bypass só com aprovação registada"}, {"refs": ["DPL-008", "OPS-004"], "text": "Janela de observação pós-deploy; falha de ingestão de logs é sinal"}], "expected_evidence": [{"refs": ["DEP-001", "DEP-002", "DEP-010"], "text": "SBOM ligado ao build; relatório SCA; SBOM→CVE→ação"}, {"refs": ["CIC-005", "CIC-007"], "text": "Execução de pipeline identificável; artefacto com commit SHA e run ID"}, {"refs": ["CNT-007", "CNT-008", "CNT-009"], "text": "SBOM e assinatura por imagem; logs de admissão"}, {"refs": ["DPL-004"], "text": "Registo de deploy completo"}, {"refs": ["OPS-001", "OPS-003"], "text": "Logs estruturados persistidos e retidos"}], "indicators": ["DEP-K01", "CIC-K03", "CNT-K03", "DPL-K06", "DEP-K02", "IAC-K02"], "inputs": [{"refs": ["DEV-004", "DEV-001"], "text": "Código revisto + guidelines por stack"}, {"refs": ["DEP-005", "DEP-006", "CNT-001", "IAC-005"], "text": "Dependências e imagens de origem aprovada; IaC versionado"}, {"refs": [], "text": "Gates por nível (MP1); threat model e evidência (MP2); aprovação de deploy (MP4)"}], "invariant": "A evidência de dependências, pipeline, artefacto, deployment e runtime descreve a mesma versão lançada.", "label": "MP3", "mp_id": "MP-03", "name_en": "BUILD → RUN", "name_pt": "Construir → Executar", "outputs": [{"consumed_by": [{"kind": "dependency", "mp": "MP-05", "refs": ["DPL-K06"], "via": "indicador de evidência de deploy"}], "text": "Release rastreável (pipeline ID, hash, commit, aprovador, gates)"}, {"consumed_by": [{"kind": "dependency", "mp": "MP-05", "refs": ["OPS-010"], "via": "MTTD/MTTR"}, {"kind": "feedback", "mp": "MP-02", "refs": ["TST-006"], "via": "vulnerabilidade corrigida origina teste de regressão (gatilho de MP2)"}], "text": "Telemetria de runtime"}, {"consumed_by": [{"kind": "feedback", "mp": "MP-04", "refs": ["páginas de exceções caps. 05–12"], "via": "quando exigem exceção (gatilho de MP4)"}], "text": "Findings e desvios"}], "owner_role": "devops-sre", "participant_roles": ["developer", "appsec-engineer", "operacoes", "product-owner", "grc-compliance", "gestao-executiva"], "path_edges": [{"from": "05-dependencias-sbom-sca", "kind": "fluxo", "to": ["07-cicd-seguro"], "via_refs": ["DEP-001", "DEP-002"]}, {"from": "06-desenvolvimento-seguro", "kind": "fluxo", "to": ["07-cicd-seguro"], "via_refs": ["DEV-006", "DEV-003"]}, {"from": "07-cicd-seguro", "kind": "fluxo", "to": ["09-containers-imagens"], "via_refs": ["CIC-007", "CIC-005"]}, {"from": "09-containers-imagens", "kind": "fluxo", "to": ["11-deploy-seguro"], "via_refs": ["CNT-009", "DPL-002"]}, {"from": "08-iac-infraestrutura", "kind": "ramo", "to": ["11-deploy-seguro"], "via_refs": ["IAC-007", "IAC-004"]}, {"from": "11-deploy-seguro", "kind": "fluxo", "to": ["12-monitorizacao-operacoes"], "via_refs": ["DPL-004"]}, {"from": "12-monitorizacao-operacoes", "kind": "laço", "to": ["05-dependencias-sbom-sca"], "via_refs": ["DEP-010", "DEP-007", "DPL-005"]}], "profiles": ["consult", "guide"], "proportionality_l1_l3": {"L1": "SBOM, SCA com bloqueio, versões fixas, gates, aprovação formal de deploy, rollback testado, logging estruturado", "L2": "assinatura e proveniência", "L3": "reforços das colunas L3 dos catálogos"}, "provenance": {"anchor": "#mp3-construir-executar", "manual_pin": "v1.8.0 f78dfe734a83b01fa9283c2df5a3eb0ba9528001", "source": "SbD-ToE-Manual: 010-sbd-manual/00-fundamentos/macro-processos.md"}, "question": "O que está a correr e de onde veio?", "record_type": "macro_process", "scope_subjects": [{"refs": ["build → artefacto → imagem → deploy → runtime"], "subject": "released_version"}, {"refs": ["CIC-001"], "subject": "pipeline_as_code"}, {"refs": ["cap. 08"], "subject": "declared_infrastructure"}, {"refs": ["em operação"], "subject": "ai_agent"}], "traverses_bundles": ["05-dependencias-sbom-sca", "06-desenvolvimento-seguro", "07-cicd-seguro", "08-iac-infraestrutura", "09-containers-imagens", "11-deploy-seguro", "12-monitorizacao-operacoes"], "triggers": [{"refs": ["DEP-001", "DEV-003", "CIC-004", "DPL-003"], "text": "Cada build, cada PR, cada promoção"}, {"refs": ["DEP-007", "TST-003", "CNT-010"], "text": "CVE nova (SLA por severidade); atualização de imagem base"}, {"refs": ["IAC-012", "US-14@11"], "text": "Drift IaC/real ou drift operacional pós-deploy"}, {"refs": ["DPL-004", "US-09@07"], "text": "Incidente em produção (reconstituir até ao commit)"}, {"refs": ["DPL-010", "DPL-011"], "text": "Mudança de modelo, skill files ou system prompts (agentes)"}]}
5
+ {"activities": [{"order": 1, "refs": ["GOV-001", "GOV-002", "US-09@14"], "text": "Definir papéis e atribuir ownership por aplicação"}, {"order": 2, "refs": ["TRN-002", "TRN-004", "TRN-005", "TRN-007"], "text": "Condicionar a autoridade à competência (onboarding validado; formação contínua; terceiros equivalente)"}, {"order": 3, "refs": ["GOV-003"], "text": "Exercer a autoridade dentro das alçadas (L1/L2/L3)"}, {"order": 4, "refs": ["GOV-004", "GOV-005"], "text": "Excecionar pelo processo canónico em seis passos"}, {"order": 5, "refs": ["gestão de exceções por capítulo"], "text": "Aplicar especificidades por domínio sem substituir o processo"}, {"order": 6, "refs": ["REQ-AGN-001", "REQ-AGN-002", "US-15@02"], "text": "Mandatar automatismos e agentes (mandate em VCS; aprovação por nível A1–A4)"}, {"order": 7, "refs": ["GOV-007", "GOV-013", "GOV-014"], "text": "Governar terceiros (validação, preparação pré-acesso, revisão, remoção no próprio dia)"}, {"order": 8, "refs": ["GOV-009", "GOV-008"], "text": "Reter a evidência da decisão (artefactos referenciáveis; registo consolidado)"}], "ai_agentic_extension": {"refs": ["REQ-AGN-001", "REQ-AGN-002", "REQ-AGN-003", "REQ-AGN-004"], "text": "O agente é o caso de maior distância capacidade↔autoridade: o que está autorizado é o que o mandate declara"}, "continuity": "Autoridade e agência", "control_points": [{"refs": ["TRN-004", "US-01@13"], "text": "Acesso bloqueado até onboarding validado"}, {"refs": ["processo canónico"], "text": "Aprovação formal explícita, nominal e registada (sem aprovações tácitas)"}, {"refs": ["GOV-005"], "text": "Expiração (90 dias por defeito) — não renovação = não conformidade ativa"}, {"refs": ["GOV-014", "US-19@14"], "text": "Revisão periódica de acesso de terceiros com remoção no próprio dia"}, {"refs": ["US-15@02", "REQ-AGN-003"], "text": "Reabertura do ciclo do mandate a cada mudança; kill-switch exercitado"}, {"refs": ["US-15@07", "US-16@10", "US-16@11"], "text": "Separação entre sinal automático e decisão"}], "expected_evidence": [{"refs": ["processo canónico"], "text": "Registo de exceção completo com cadeia de autoridade"}, {"refs": ["US-01@13", "US-15@14"], "text": "Certificados/LMS; bloqueios de acesso; ready-for-access de terceiros"}, {"refs": ["REQ-AGN-001", "OPS-012"], "text": "Mandate versionado com mandate_ref; audit events"}, {"refs": ["US-19@14", "US-09@14"], "text": "Checklist de revisão de acesso; designação de owner"}, {"refs": ["GOV-009"], "text": "Artefactos de decisão referenciáveis"}], "indicators": ["GOV-K02", "GOV-K03", "GOV-K04", "GOV-K01", "TRN-K02", "TRN-K03", "CIC-K02"], "inputs": [{"refs": ["GOV-001"], "text": "Modelo formal de governação + 13 papéis"}, {"refs": ["GOV-003"], "text": "Classificação por nível (MP1) que fixa as alçadas"}, {"refs": ["TRN-001", "GOV-006"], "text": "Trilhos de formação por perfil/nível; contratos com cláusulas"}, {"refs": ["US-15@02"], "text": "Esquema mínimo de mandate (Policy 38)"}], "invariant": "Papéis, deveres de fornecedor, automatismos e exceções exigem autoridade explícita e evidência retida.", "label": "MP4", "mp_id": "MP-04", "name_en": "AUTHORISE → ACT / EXCEPT", "name_pt": "Autorizar → Agir / Excecionar", "outputs": [{"consumed_by": [{"kind": "dependency", "mp": "MP-05", "refs": ["GOV-K02", "GOV-K03", "GOV-K04"], "via": "indicadores de exceções"}, {"kind": "feedback", "mp": "MP-01", "refs": ["CLA-007"], "via": "risco residual aceite com owner e TTL re-entra na reavaliação"}, {"kind": "feedback", "mp": "MP-02", "refs": ["CLA-007"], "via": "idem, no desenho"}], "text": "Registo de exceções ativo (validade + cadeia de autoridade)"}, {"consumed_by": [{"kind": "dependency", "mp": "MP-03", "refs": ["OPS-012", "US-19@07"], "via": "audit events por tool invocation; identidade de pipeline"}], "text": "Mandate referenciável (mandate_ref)"}, {"consumed_by": [{"kind": "dependency", "mp": "MP-03", "refs": ["DPL-001"], "via": "promoção"}], "text": "Aprovação de deploy por papel autorizado"}, {"consumed_by": [{"kind": "dependency", "mp": "MP-05", "refs": ["TRN-K03", "GOV-K01"], "via": "indicadores de acesso e formação"}], "text": "Acesso concedido/revisto/revogado com evidência"}], "owner_role": "grc-compliance", "participant_roles": ["gestao-executiva", "appsec-engineer", "scrum-master", "product-owner", "security-champion", "developer", "fornecedores-terceiros", "auditores"], "path_edges": [{"from": "00-fundamentos", "kind": "fluxo", "to": ["13-formacao-onboarding"], "via_refs": ["GOV-002", "13 papéis canónicos"]}, {"from": "13-formacao-onboarding", "kind": "fluxo", "to": ["14-governanca-contratacao"], "via_refs": ["TRN-004", "TRN-005"]}, {"from": "14-governanca-contratacao", "kind": "fluxo", "to": "acção ou exceção registada", "via_refs": ["GOV-003", "GOV-004"]}, {"from": "14-governanca-contratacao", "kind": "ramo", "note": "ramo automatismos: alçadas → mandate A0–A4", "to": ["02-requisitos-seguranca"], "via_refs": ["REQ-AGN-001"]}], "profiles": ["consult", "guide"], "proportionality_l1_l3": {"L1": "exceção aprovada pelo responsável técnico; onboarding básico obrigatório; terceiros recomendado", "L2": "aprovação AppSec + responsável; formação contínua semestral", "L3": "AppSec + GRC/CISO com medida compensatória obrigatória; trimestral"}, "provenance": {"anchor": "#mp4-autorizar-agir-excecionar", "manual_pin": "v1.8.0 f78dfe734a83b01fa9283c2df5a3eb0ba9528001", "source": "SbD-ToE-Manual: 010-sbd-manual/00-fundamentos/macro-processos.md"}, "question": "Quem pode fazer isto — e onde fica registado?", "record_type": "macro_process", "scope_subjects": [{"refs": ["colaborador, owner, aprovador"], "subject": "person_in_role"}, {"refs": ["TRN-007", "GOV-013"], "subject": "supplier"}, {"refs": ["A1+", "REQ-AGN-001"], "subject": "ai_agent"}], "traverses_bundles": ["00-fundamentos", "13-formacao-onboarding", "14-governanca-contratacao", "02-requisitos-seguranca"], "triggers": [{"refs": ["US-01@13", "TRN-002", "US-09@14"], "text": "Entrada/mudança de função; designação ou rotação de owner"}, {"refs": ["GOV-007", "GOV-013", "GOV-014", "US-17@14"], "text": "Onboarding de fornecedor/contractor; revisão periódica de acesso; offboarding"}, {"refs": ["processo canónico, passo 1"], "text": "Pedido de exceção; expiração (90 dias por defeito) ou trigger fora de prazo"}, {"refs": ["US-15@02"], "text": "Novo agente ou mudança de nível/scope/allowlist (reabre proposta → aprovação)"}, {"refs": ["exceções de deploy (cap. 11)"], "text": "Emergency deploy (aprovação post-facto ≤ 24h, notificação a Gestão Executiva/CISO)"}]}
6
+ {"activities": [{"order": 1, "refs": ["CLA-008", "CLA-K01"], "text": "Estabelecer a fundação (F-02 = F-01) antes de qualquer percentagem"}, {"order": 2, "refs": ["TRN-009", "GOV-011", "OPS-010"], "text": "Recolher indicadores de domínio com fonte primária e evidência"}, {"order": 3, "refs": ["US-05@14", "US-11@14"], "text": "Agregar nas dimensões T-01..T-06 e reportar no painel executivo"}, {"order": 4, "refs": ["metodologia de validação de claims"], "text": "Validar por evidência, não por plausibilidade (backtrace por claim)"}, {"order": 5, "refs": ["EPSS/KEV (cap. 12)"], "text": "Priorizar com contexto de ameaça (EPSS/KEV sobre CVSS, nunca além do SLA)"}, {"order": 6, "refs": ["RQS-K06", "GOV-K04", "TRN-K05"], "text": "Agir sobre desvios (owner + prazo; indicadores inversos com alvo zero = SLA de finding crítico)"}, {"order": 7, "refs": ["GOV-012"], "text": "Avaliar maturidade por domínio (escala 1–3 de T-06; estagnação = dois ciclos sem plano)"}, {"order": 8, "refs": ["TST-006", "TRN-006", "TRN-K04", "CLA-004", "CLA-006", "US-13@12"], "text": "Realimentar os outros macro-processos"}], "ai_agentic_extension": {"refs": ["OPS-011", "OPS-012", "OPS-013", "OPS-014"], "text": "Fontes de medição para agentes: telemetria dedicada, audit por tool invocation, budget/runaway, jailbreak/off-policy"}, "continuity": "Asseguramento e aprendizagem", "control_points": [{"refs": ["F-01", "F-02"], "text": "F-02 = F-01 antes de qualquer percentagem"}, {"refs": [], "text": "Thresholds cumulativos por nível; indicadores inversos com alvo zero"}, {"refs": [], "text": "Evidência obrigatória por indicador (sem fonte primária não é cobertura)"}, {"refs": ["OPS-010"], "text": "Comparação obrigatória com o ciclo anterior (T-06; OPS-010)"}, {"refs": ["GOV-K08"], "text": "Desvio sem ação corretiva atribuída é falha do próprio processo"}], "dimension_refs": ["T-01", "T-02", "T-03", "T-04", "T-05", "T-06"], "expected_evidence": [{"refs": [], "text": "Registos de indicadores por período com fonte primária"}, {"refs": [], "text": "Painel executivo com F-01..F-04 e T-01..T-06"}, {"refs": ["GOV-012"], "text": "Avaliação anual de maturidade com evidência por domínio"}, {"refs": ["GOV-010"], "text": "Registo de ações corretivas com owner, prazo e fecho"}], "foundation_refs": ["F-01", "F-02", "F-03", "F-04"], "indicators": ["CLA-K01", "GOV-K07", "GOV-K08"], "inputs": [{"refs": ["F-01", "F-02", "F-03", "CLA-008"], "text": "Inventário classificado e requisitos mapeados"}, {"refs": [], "text": "Catorze catálogos de indicadores + catálogo de governação"}, {"refs": [], "text": "Evidência dos outros MP (exceções, releases, telemetria, matrizes, testes)"}, {"refs": ["canon metodologia-validacao-claims (cap. 00)"], "text": "Metodologia de validação de claims (evidência sobre plausibilidade)"}], "invariant": "Cada capítulo precisa de população elegível, contrato de evidência, dono e medida de estado resultante.", "label": "MP5", "mp_id": "MP-05", "name_en": "MEASURE → IMPROVE", "name_pt": "Medir → Melhorar", "outputs": [{"consumed_by": [], "text": "Painel executivo e relatórios por período"}, {"consumed_by": [{"kind": "feedback", "mp": "MP-01", "refs": ["CLA-004"], "via": "reclassificação"}, {"kind": "feedback", "mp": "MP-02", "refs": ["TST-006"], "via": "regressão de segurança"}, {"kind": "feedback", "mp": "MP-03", "refs": ["US-13@12"], "via": "ações corretivas nos gatilhos (ex.: sinais de jailbreak → eval suite)"}, {"kind": "feedback", "mp": "MP-04", "refs": ["TRN-006", "GOV-005"], "via": "conteúdos formativos; renovação de exceções"}], "text": "Ações corretivas com owner e prazo"}, {"consumed_by": [], "text": "Avaliação de maturidade anual por domínio (T-06)"}], "owner_role": "grc-compliance", "participant_roles": ["appsec-engineer", "gestao-executiva", "operacoes", "product-owner", "scrum-master", "security-champion", "auditores"], "path_edges": [{"from": "00/01 fundação de portfólio", "kind": "fluxo", "note": "denominador comum", "to": ["01-classificacao-aplicacoes", "02-requisitos-seguranca", "03-threat-modeling", "04-arquitetura-segura", "05-dependencias-sbom-sca", "06-desenvolvimento-seguro", "07-cicd-seguro", "08-iac-infraestrutura", "09-containers-imagens", "10-testes-seguranca", "11-deploy-seguro", "12-monitorizacao-operacoes", "13-formacao-onboarding", "14-governanca-contratacao"], "via_refs": ["F-01", "F-02", "CLA-K01", "CLA-008"]}, {"from": "KPIs de domínio (01–14)", "kind": "fluxo", "to": "dimensões transversais T-01..T-06", "via_refs": ["catálogos KPIs por capítulo"]}, {"from": "dimensões T-01..T-06", "kind": "fluxo", "to": "ação corretiva com owner e prazo", "via_refs": ["GOV-K08", "GOV-010"]}], "profiles": ["consult", "guide"], "proportionality_l1_l3": {"L1": "thresholds de base; T-06 espera nível 1", "L2": "thresholds apertam; validação contínua semestral", "L3": "trimestral; obrigações cumulativas"}, "provenance": {"anchor": "#mp5-medir-melhorar", "manual_pin": "v1.8.0 f78dfe734a83b01fa9283c2df5a3eb0ba9528001", "source": "SbD-ToE-Manual: 010-sbd-manual/00-fundamentos/macro-processos.md"}, "question": "O sistema funcionou, e o que temos de mudar?", "record_type": "macro_process", "scope_subjects": [{"refs": ["medidos sobre o portfólio classificado; a evolução do próprio Manual fica fora"], "subject": "organisation_practices_controls_knowledge"}], "traverses_bundles": ["00-fundamentos", "01-classificacao-aplicacoes", "02-requisitos-seguranca", "03-threat-modeling", "04-arquitetura-segura", "05-dependencias-sbom-sca", "06-desenvolvimento-seguro", "07-cicd-seguro", "08-iac-infraestrutura", "09-containers-imagens", "10-testes-seguranca", "11-deploy-seguro", "12-monitorizacao-operacoes", "13-formacao-onboarding", "14-governanca-contratacao"], "triggers": [{"refs": ["GOV-010"], "text": "Período de cada indicador; ciclo de validação contínua por tipo de ativo"}, {"refs": ["T-06", "GOV-012"], "text": "Avaliação anual de maturidade com comparação ao ciclo anterior"}, {"refs": ["GOV-011", "US-18@13"], "text": "Desvio face ao threshold → ação corretiva"}, {"refs": ["OPS-006", "OPS-010", "TRN-K05"], "text": "Incidente → MTTD/MTTR e causa raiz de formação"}]}
@@ -0,0 +1,46 @@
1
+ {"adoption_order_levels": [["MP-01"], ["MP-02", "MP-04"], ["MP-03"], ["MP-05"]], "adoption_order_rule": "ordem topológica do subconjunto dependency (feedback excluído por definição): MP-01 → {MP-02 ∥ MP-04} → MP-03 → MP-05; MP-02 e MP-04 são incomparáveis na fonte (declarado, não inferido).", "counts": {"consumption_records": 23, "dependency_pairs": 9, "feedback_pairs": 9, "inter_mp_typed_pairs": 18, "macro_processes": 5, "path_edges": 22}, "curation": {"adenda": "três segmentações + lacuna de fases (2026-09-06)", "curator": "archon-2026-09-06", "ratified_by": "programme-lead", "ratified_on": "2026-09-06", "source": "agentic/briefs/2026-09-06-archon-proposta-macro-processos.md"}, "edge_typing_rule": "consumo que aparece nas «Entradas» do MP consumidor ⇒ dependency; consumo que aparece nos «Gatilhos» do consumidor ou nas realimentações declaradas (fecho, laço, realimentar, «nos seus gatilhos») ⇒ feedback. Cada aresta vive em outputs[].consumed_by com o artefacto (via) e refs.", "erratum_vs_gate_map": "o mapa ratificado dizia 17 pares; na emissão a aplicação da regra ratificada à fonte encontrou a 18.ª — MP2→MP4 («threat model … consumido por MP4: risco aceite entra na cadeia de autoridade», CLA-007), tipada feedback porque não figura nas Entradas de MP4; declarada aqui, nunca silenciada.", "layer": "mp_edges", "model_note": "MacroProcess, KnowledgeBundle (capítulo) e SDLCPhase são TRÊS SEGMENTAÇÕES do mesmo substrato — agregações/percursos diferentes de olhar para o processo de desenvolvimento segundo SbD — e não níveis de uma hierarquia nem partições umas das outras; nenhuma relação entre as três se tipa como contenção. `MP → capítulos` é «percurso publicado», e é só isso. Os rótulos MP1–MP5 são ontology-owned (MP-0N); não são IDs de requisito.", "pins": {"manual_commit": "ea6b396b9caa", "sbdtoe_ontology_tag": "sbdtoe-ontology-v2.5"}, "profiles": ["consult", "guide"], "record_type": "layer_manifest", "ref_conventions": "refs com padrão [A-Z]{3}-\\d{3} / REQ-AGN-\\d{3} são Requirement ids validados; [A-Z]{3}-K\\d{2} são metric_id validados; US-nn@cc refere a user story nn do capítulo cc (validação na materialização, Codex); F-0n e T-0n são a estrutura de medição transversal do cap. 14 — refs textuais declaradas não-modeladas (lacuna para o ciclo de assurance); restantes refs são âncoras editoriais textuais.", "schema_version": "1.0", "sdlc_phase_traversal": {"decided_by": "programme-lead 2026-09-06 (adenda à ratificação)", "reason": "a travessia MP↔fase existe mas é PARCIAL e NÃO PUBLICADA: um MP atravessa várias fases e não necessariamente na íntegra; uma fase pode conter partes de vários MP. O Manual publica por MP o percurso de CAPÍTULOS, nunca um percurso de fases («fase» ocorre uma única vez no capítulo, na frase que nega a equivalência). Lacuna declarada — NÃO derivar a travessia a partir de capítulos/assignments.", "status": "unpublished_gap"}, "typed_pairs": [{"from_mp": "MP-01", "kind": "dependency", "to_mp": "MP-02"}, {"from_mp": "MP-01", "kind": "dependency", "to_mp": "MP-03"}, {"from_mp": "MP-01", "kind": "dependency", "to_mp": "MP-04"}, {"from_mp": "MP-01", "kind": "dependency", "to_mp": "MP-05"}, {"from_mp": "MP-02", "kind": "dependency", "to_mp": "MP-03"}, {"from_mp": "MP-02", "kind": "feedback", "to_mp": "MP-04"}, {"from_mp": "MP-02", "kind": "dependency", "to_mp": "MP-05"}, {"from_mp": "MP-03", "kind": "feedback", "to_mp": "MP-02"}, {"from_mp": "MP-03", "kind": "feedback", "to_mp": "MP-04"}, {"from_mp": "MP-03", "kind": "dependency", "to_mp": "MP-05"}, {"from_mp": "MP-04", "kind": "feedback", "to_mp": "MP-01"}, {"from_mp": "MP-04", "kind": "feedback", "to_mp": "MP-02"}, {"from_mp": "MP-04", "kind": "dependency", "to_mp": "MP-03"}, {"from_mp": "MP-04", "kind": "dependency", "to_mp": "MP-05"}, {"from_mp": "MP-05", "kind": "feedback", "to_mp": "MP-01"}, {"from_mp": "MP-05", "kind": "feedback", "to_mp": "MP-02"}, {"from_mp": "MP-05", "kind": "feedback", "to_mp": "MP-03"}, {"from_mp": "MP-05", "kind": "feedback", "to_mp": "MP-04"}]}
2
+ {"from_mp": "MP-01", "kind": "dependency", "output_text": "Perfil de segurança registado (classificação aprovada + inventário + seleção de requisitos)", "profiles": ["consult", "guide"], "record_type": "inter_mp_consumption", "refs": ["THR-001"], "to_mp": "MP-02", "via": "threat modeling formal aplica-se a L2+"}
3
+ {"from_mp": "MP-01", "kind": "dependency", "output_text": "Perfil de segurança registado (classificação aprovada + inventário + seleção de requisitos)", "profiles": ["consult", "guide"], "record_type": "inter_mp_consumption", "refs": [], "to_mp": "MP-03", "via": "gates e profundidade de verificação por nível"}
4
+ {"from_mp": "MP-01", "kind": "dependency", "output_text": "Perfil de segurança registado (classificação aprovada + inventário + seleção de requisitos)", "profiles": ["consult", "guide"], "record_type": "inter_mp_consumption", "refs": ["GOV-003"], "to_mp": "MP-04", "via": "alçadas de aprovação por nível"}
5
+ {"from_mp": "MP-01", "kind": "dependency", "output_text": "Perfil de segurança registado (classificação aprovada + inventário + seleção de requisitos)", "profiles": ["consult", "guide"], "record_type": "inter_mp_consumption", "refs": ["F-02"], "to_mp": "MP-05", "via": "inventário classificado é o denominador F-02 de todos os KPIs"}
6
+ {"from_mp": "MP-02", "kind": "dependency", "output_text": "Threat model aprovado e versionado com decisões", "profiles": ["consult", "guide"], "record_type": "inter_mp_consumption", "refs": [], "to_mp": "MP-03", "via": "gates de promoção"}
7
+ {"from_mp": "MP-02", "kind": "dependency", "output_text": "Evidência de verificação ligada ao build", "profiles": ["consult", "guide"], "record_type": "inter_mp_consumption", "refs": ["TST-004"], "to_mp": "MP-03", "via": "promoção só com evidência"}
8
+ {"from_mp": "MP-02", "kind": "feedback", "output_text": "Threat model aprovado e versionado com decisões", "profiles": ["consult", "guide"], "record_type": "inter_mp_consumption", "refs": ["CLA-007"], "to_mp": "MP-04", "via": "risco aceite entra na cadeia de autoridade (não é Entrada declarada de MP4; entra pelo circuito de exceção/aceitação)"}
9
+ {"from_mp": "MP-02", "kind": "dependency", "output_text": "Evidência de verificação ligada ao build", "profiles": ["consult", "guide"], "record_type": "inter_mp_consumption", "refs": ["RQS-K03", "THR-K02"], "to_mp": "MP-05", "via": "indicadores"}
10
+ {"from_mp": "MP-02", "kind": "dependency", "output_text": "Matriz requisito → ameaça → teste", "profiles": ["consult", "guide"], "record_type": "inter_mp_consumption", "refs": ["REQ-006"], "to_mp": "MP-05", "via": "medição e auditoria"}
11
+ {"from_mp": "MP-03", "kind": "feedback", "output_text": "Telemetria de runtime", "profiles": ["consult", "guide"], "record_type": "inter_mp_consumption", "refs": ["TST-006"], "to_mp": "MP-02", "via": "vulnerabilidade corrigida origina teste de regressão (gatilho de MP2)"}
12
+ {"from_mp": "MP-03", "kind": "feedback", "output_text": "Findings e desvios", "profiles": ["consult", "guide"], "record_type": "inter_mp_consumption", "refs": ["páginas de exceções caps. 05–12"], "to_mp": "MP-04", "via": "quando exigem exceção (gatilho de MP4)"}
13
+ {"from_mp": "MP-03", "kind": "dependency", "output_text": "Telemetria de runtime", "profiles": ["consult", "guide"], "record_type": "inter_mp_consumption", "refs": ["OPS-010"], "to_mp": "MP-05", "via": "MTTD/MTTR"}
14
+ {"from_mp": "MP-03", "kind": "dependency", "output_text": "Release rastreável (pipeline ID, hash, commit, aprovador, gates)", "profiles": ["consult", "guide"], "record_type": "inter_mp_consumption", "refs": ["DPL-K06"], "to_mp": "MP-05", "via": "indicador de evidência de deploy"}
15
+ {"from_mp": "MP-04", "kind": "feedback", "output_text": "Registo de exceções ativo (validade + cadeia de autoridade)", "profiles": ["consult", "guide"], "record_type": "inter_mp_consumption", "refs": ["CLA-007"], "to_mp": "MP-01", "via": "risco residual aceite com owner e TTL re-entra na reavaliação"}
16
+ {"from_mp": "MP-04", "kind": "feedback", "output_text": "Registo de exceções ativo (validade + cadeia de autoridade)", "profiles": ["consult", "guide"], "record_type": "inter_mp_consumption", "refs": ["CLA-007"], "to_mp": "MP-02", "via": "idem, no desenho"}
17
+ {"from_mp": "MP-04", "kind": "dependency", "output_text": "Mandate referenciável (mandate_ref)", "profiles": ["consult", "guide"], "record_type": "inter_mp_consumption", "refs": ["OPS-012", "US-19@07"], "to_mp": "MP-03", "via": "audit events por tool invocation; identidade de pipeline"}
18
+ {"from_mp": "MP-04", "kind": "dependency", "output_text": "Aprovação de deploy por papel autorizado", "profiles": ["consult", "guide"], "record_type": "inter_mp_consumption", "refs": ["DPL-001"], "to_mp": "MP-03", "via": "promoção"}
19
+ {"from_mp": "MP-04", "kind": "dependency", "output_text": "Acesso concedido/revisto/revogado com evidência", "profiles": ["consult", "guide"], "record_type": "inter_mp_consumption", "refs": ["TRN-K03", "GOV-K01"], "to_mp": "MP-05", "via": "indicadores de acesso e formação"}
20
+ {"from_mp": "MP-04", "kind": "dependency", "output_text": "Registo de exceções ativo (validade + cadeia de autoridade)", "profiles": ["consult", "guide"], "record_type": "inter_mp_consumption", "refs": ["GOV-K02", "GOV-K03", "GOV-K04"], "to_mp": "MP-05", "via": "indicadores de exceções"}
21
+ {"from_mp": "MP-05", "kind": "feedback", "output_text": "Ações corretivas com owner e prazo", "profiles": ["consult", "guide"], "record_type": "inter_mp_consumption", "refs": ["CLA-004"], "to_mp": "MP-01", "via": "reclassificação"}
22
+ {"from_mp": "MP-05", "kind": "feedback", "output_text": "Ações corretivas com owner e prazo", "profiles": ["consult", "guide"], "record_type": "inter_mp_consumption", "refs": ["TST-006"], "to_mp": "MP-02", "via": "regressão de segurança"}
23
+ {"from_mp": "MP-05", "kind": "feedback", "output_text": "Ações corretivas com owner e prazo", "profiles": ["consult", "guide"], "record_type": "inter_mp_consumption", "refs": ["US-13@12"], "to_mp": "MP-03", "via": "ações corretivas nos gatilhos (ex.: sinais de jailbreak → eval suite)"}
24
+ {"from_mp": "MP-05", "kind": "feedback", "output_text": "Ações corretivas com owner e prazo", "profiles": ["consult", "guide"], "record_type": "inter_mp_consumption", "refs": ["TRN-006", "GOV-005"], "to_mp": "MP-04", "via": "conteúdos formativos; renovação de exceções"}
25
+ {"from": "00-fundamentos", "kind": "piso", "mp_id": "MP-01", "profiles": ["consult", "guide"], "record_type": "path_edge", "to": "todas as aplicações", "via_refs": ["baseline (oito obrigações mínimas)"]}
26
+ {"from": "01-classificacao-aplicacoes", "kind": "fluxo", "mp_id": "MP-01", "profiles": ["consult", "guide"], "record_type": "path_edge", "to": ["02-requisitos-seguranca"], "via_refs": ["CLA-001", "CLA-002"]}
27
+ {"from": "01-classificacao-aplicacoes", "kind": "ramo", "mp_id": "MP-01", "profiles": ["consult", "guide"], "record_type": "path_edge", "to": ["14-governanca-contratacao"], "via_refs": ["GOV-006", "GOV-007"]}
28
+ {"from": "02-requisitos-seguranca", "kind": "fluxo", "mp_id": "MP-01", "profiles": ["consult", "guide"], "record_type": "path_edge", "to": ["05-dependencias-sbom-sca", "06-desenvolvimento-seguro", "07-cicd-seguro", "08-iac-infraestrutura", "09-containers-imagens", "10-testes-seguranca", "11-deploy-seguro", "12-monitorizacao-operacoes", "13-formacao-onboarding"], "via_refs": ["REQ-003", "US-04@02", "US-12@02"]}
29
+ {"from": "02-requisitos-seguranca", "kind": "fluxo", "mp_id": "MP-02", "profiles": ["consult", "guide"], "record_type": "path_edge", "to": ["03-threat-modeling"], "via_refs": ["REQ-003", "REQ-005"]}
30
+ {"from": "03-threat-modeling", "kind": "fluxo", "mp_id": "MP-02", "profiles": ["consult", "guide"], "record_type": "path_edge", "to": ["04-arquitetura-segura"], "via_refs": ["THR-004", "THR-005", "THR-002"]}
31
+ {"from": "04-arquitetura-segura", "kind": "fluxo", "mp_id": "MP-02", "profiles": ["consult", "guide"], "record_type": "path_edge", "to": ["10-testes-seguranca"], "via_refs": ["ARC-005", "US-02@04", "TST-001"]}
32
+ {"from": "10-testes-seguranca", "kind": "fecho", "mp_id": "MP-02", "profiles": ["consult", "guide"], "record_type": "path_edge", "to": ["02-requisitos-seguranca"], "via_refs": ["TST-004", "REQ-006", "US-09@02"]}
33
+ {"from": "05-dependencias-sbom-sca", "kind": "fluxo", "mp_id": "MP-03", "profiles": ["consult", "guide"], "record_type": "path_edge", "to": ["07-cicd-seguro"], "via_refs": ["DEP-001", "DEP-002"]}
34
+ {"from": "06-desenvolvimento-seguro", "kind": "fluxo", "mp_id": "MP-03", "profiles": ["consult", "guide"], "record_type": "path_edge", "to": ["07-cicd-seguro"], "via_refs": ["DEV-006", "DEV-003"]}
35
+ {"from": "07-cicd-seguro", "kind": "fluxo", "mp_id": "MP-03", "profiles": ["consult", "guide"], "record_type": "path_edge", "to": ["09-containers-imagens"], "via_refs": ["CIC-007", "CIC-005"]}
36
+ {"from": "08-iac-infraestrutura", "kind": "ramo", "mp_id": "MP-03", "profiles": ["consult", "guide"], "record_type": "path_edge", "to": ["11-deploy-seguro"], "via_refs": ["IAC-007", "IAC-004"]}
37
+ {"from": "09-containers-imagens", "kind": "fluxo", "mp_id": "MP-03", "profiles": ["consult", "guide"], "record_type": "path_edge", "to": ["11-deploy-seguro"], "via_refs": ["CNT-009", "DPL-002"]}
38
+ {"from": "11-deploy-seguro", "kind": "fluxo", "mp_id": "MP-03", "profiles": ["consult", "guide"], "record_type": "path_edge", "to": ["12-monitorizacao-operacoes"], "via_refs": ["DPL-004"]}
39
+ {"from": "12-monitorizacao-operacoes", "kind": "laço", "mp_id": "MP-03", "profiles": ["consult", "guide"], "record_type": "path_edge", "to": ["05-dependencias-sbom-sca"], "via_refs": ["DEP-010", "DEP-007", "DPL-005"]}
40
+ {"from": "00-fundamentos", "kind": "fluxo", "mp_id": "MP-04", "profiles": ["consult", "guide"], "record_type": "path_edge", "to": ["13-formacao-onboarding"], "via_refs": ["GOV-002", "13 papéis canónicos"]}
41
+ {"from": "13-formacao-onboarding", "kind": "fluxo", "mp_id": "MP-04", "profiles": ["consult", "guide"], "record_type": "path_edge", "to": ["14-governanca-contratacao"], "via_refs": ["TRN-004", "TRN-005"]}
42
+ {"from": "14-governanca-contratacao", "kind": "ramo", "mp_id": "MP-04", "profiles": ["consult", "guide"], "record_type": "path_edge", "to": ["02-requisitos-seguranca"], "via_refs": ["REQ-AGN-001"]}
43
+ {"from": "14-governanca-contratacao", "kind": "fluxo", "mp_id": "MP-04", "profiles": ["consult", "guide"], "record_type": "path_edge", "to": "acção ou exceção registada", "via_refs": ["GOV-003", "GOV-004"]}
44
+ {"from": "00/01 fundação de portfólio", "kind": "fluxo", "mp_id": "MP-05", "profiles": ["consult", "guide"], "record_type": "path_edge", "to": ["01-classificacao-aplicacoes", "02-requisitos-seguranca", "03-threat-modeling", "04-arquitetura-segura", "05-dependencias-sbom-sca", "06-desenvolvimento-seguro", "07-cicd-seguro", "08-iac-infraestrutura", "09-containers-imagens", "10-testes-seguranca", "11-deploy-seguro", "12-monitorizacao-operacoes", "13-formacao-onboarding", "14-governanca-contratacao"], "via_refs": ["F-01", "F-02", "CLA-K01", "CLA-008"]}
45
+ {"from": "KPIs de domínio (01–14)", "kind": "fluxo", "mp_id": "MP-05", "profiles": ["consult", "guide"], "record_type": "path_edge", "to": "dimensões transversais T-01..T-06", "via_refs": ["catálogos KPIs por capítulo"]}
46
+ {"from": "dimensões T-01..T-06", "kind": "fluxo", "mp_id": "MP-05", "profiles": ["consult", "guide"], "record_type": "path_edge", "to": "ação corretiva com owner e prazo", "via_refs": ["GOV-K08", "GOV-010"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shiftleftpt/sbd-toe-mcp",
3
- "version": "0.20.0-beta.37",
3
+ "version": "0.20.0-beta.38",
4
4
  "license": "Apache-2.0",
5
5
  "description": "MCP server for the SbD-ToE (Security by Design — Theory of Everything) security manual — structured tools for Claude, GitHub Copilot and other MCP clients",
6
6
  "keywords": [
@@ -56,8 +56,12 @@
56
56
  "data/publish/indexes/chunk_entity_mentions.jsonl",
57
57
  "data/publish/indexes/chunk_relation_hints.jsonl",
58
58
  "data/publish/indexes/bundle_catalog.jsonl",
59
+ "data/publish/indexes/cross_layer_referrals.jsonl",
60
+ "data/publish/indexes/bundle_policy_links.jsonl",
59
61
  "data/publish/semantic/requirement_source_coverage.jsonl",
60
62
  "data/publish/semantic/ctrl_acore_alignment.jsonl",
63
+ "data/publish/semantic/macro_processes.jsonl",
64
+ "data/publish/semantic/mp_edges.jsonl",
61
65
  "data/publish/runtime/",
62
66
  "data/publish/overlay/external_frameworks.json",
63
67
  "data/publish/overlay/external_obligations.json",