bra0 / Docs / Ontologies / evoQ-kpi-shapes.shapes
Reference

evoQ-kpi-shapes.shapes

Shapes
13
Source
ontologies/governance/evidence-os/evoQ-kpi-shapes.shapes.ttl

SHACL Shapes (13)

ShapeLabelTarget classProperties
evoQ:ChangeLinkRatioShapeChange-link-ratio shape (canonical)---3
evoQ:ConnectorIngestResultShapeConnector-ingest-result shape (AC-W1.4)---4
evoQ:ControlGapResultShapeControl-gap result shape (canonical)---6
evoQ:DemoReadinessShapeDemo-readiness shape (RQ3 dogfood gate)---2
evoQ:DogfoodFreshnessResultShapeDogfood-freshness result shape (RQ3)---2
evoQ:GroundingResultShapeGrounding-result shape (RQ2)---4
evoQ:OnboardingLatencyShapeOnboarding-latency shape (H-UX-04 gate)---3
evoQ:PackBundleShapePack-bundle structural shape---4
evoQ:PackExportLatencyShapePack-export-latency shape---4
evoQ:RogueCommitDetectionShapeRogue-commit-detection shape (D19 cascade)---3
evoQ:TimeToRationaleSampleShapeTime-to-rationale sample shape---3
evoQ:TraceabilityCompletenessResultShapeTraceability-completeness result shape (RQ1)---4
evoQ:VerifiabilityLatencyResultShapeVerifiability-latency result shape (RQ4)---2

Change-link-ratio shape (canonical)

Validates % changes linked to ticket + informing decision — PRD §6.2 KPI + D08 v0.7 dogfood gate ≥ 0.80 on bra0_meta corpus. Canonical name per Nael Concern 1; evoQ:LinkRatioShape is the deprecated alias.

Target class: ---

Property pathConstraintCardinalityValidation message
evoQ:linkedCountxsd:integer · 11..linkedCount MUST be a non-negative xsd:integer.
evoQ:ratioxsd:decimal · 11..ratio MUST be xsd:decimal in [0.0, 1.0]; D08 v0.7 gate passes only at ratio ≥ 0.80 on bra0_meta corpus.
evoQ:totalCountxsd:integer · 11..totalCount MUST be a non-negative xsd:integer.

Connector-ingest-result shape (AC-W1.4)

Validates per-ingest-run result per PRD cross-cutting AC-W1.4. One row per connector invocation.

Target class: ---

Property pathConstraintCardinalityValidation message
evoQ:connectorNamexsd:string · 11..connectorName MUST be xsd:string (e.g. 'git-adr', 'jira', 'test-automation').
evoQ:failedCountxsd:nonNegativeInteger · 11..failedCount MUST be xsd:nonNegativeInteger.
evoQ:ingestedCountxsd:nonNegativeInteger · 11..ingestedCount MUST be xsd:nonNegativeInteger.
evoQ:policyViolationsxsd:nonNegativeInteger · 11..policyViolations MUST be xsd:nonNegativeInteger.

Control-gap result shape (canonical)

Validates a row in the 'controls without evidence' query result — PRD §6.2 row 3 + §4.3 W3 MUST gap detector. Canonical name per Nael Concern 1; evoQ:GapDetectorResultShape is the deprecated alias. Includes rogue-commit + AC-less variants (arch-delta §3.3 gap-detector family).

Target class: ---

Property pathConstraintCardinalityValidation message
evoQ:controlsh:IRI · 11..control MUST be an IRI (the control with a gap).
evoQ:detectionLatencyMillisxsd:nonNegativeInteger · 01..detectionLatencyMillis is optional; measures Q7 budget (≤500ms on 100k-quad graph).
evoQ:frameworksh:IRI · 0framework IRI is optional (per-framework variant filter)...*
evoQ:gapKindxsd:string · 11..gapKind MUST be one of 'no-evidence'|'rogue-commit'|'ac-less'|'framework-binding' per arch-delta §3.3 gap-detector family.
evoQ:severityTierxsd:string · 01..severityTier is optional; if present MUST be 'critical'|'major'|'minor' (Q1 W05 may widen to controlled-vocabulary IRI per Nael Concern 4).
evoQ:wallLabelxsd:string · 11..wallLabel MUST be one of the 4 walls per H-UX-07 labelling rule.

Demo-readiness shape (RQ3 dogfood gate)

Validates demo-readiness result — RQ3 §4.5 dogfood-rate = 1.0 CI gate per release. D08 v0.7 / v0.8 + D21 v0.9 release-demo cross-epic.

Target class: ---

Property pathConstraintCardinalityValidation message
prov:generatedAtTimexsd:dateTime · 11..PROV-O generation timestamp mandatory.
evoQ:ratioxsd:decimal · 11..dogfood-rate MUST be xsd:decimal in [0.0, 1.0]; CI gate passes only at 1.0 per D08/D21.

Dogfood-freshness result shape (RQ3)

Validates dogfood-corpus freshness in days since last snapshot pin. RQ3 §4.5 — distinct from DemoReadinessShape; tracks whether the dogfood snapshot lags reality.

Target class: ---

Property pathConstraintCardinalityValidation message
prov:generatedAtTimexsd:dateTime · 11..PROV-O generation timestamp mandatory.
evoQ:freshDaysxsd:integer · 11..freshDays MUST be xsd:integer ≥ 0 (days since last snapshot pin).

Grounding-result shape (RQ2)

Validates grounding-protocol output row — RQ2 §3.5 + PRD §6.2 (ship-blocking hard gate per Noam Finding 2). Every W4 answer carries PROV-O OR refusal artifact.

Target class: ---

Property pathConstraintCardinalityValidation message
evoQ:entitysh:IRI · 1entity MUST be an IRI (the evidence-graph entity the agent accessed or refused to claim against)...*
evoQ:groundedxsd:boolean · 11..grounded MUST be xsd:boolean. True = PROV-O trace present; False = RefusalArtifact emitted (see evo:Evidence + dcterms:type 'RefusalArtifact' per Nael Q-γ).
evoQ:invocation1 · 1evo:AmbientAgentInvocation..invocation MUST be an evo:AmbientAgentInvocation (arch-delta v0.1.4 §3.2.2).
evoQ:policyViolationsxsd:nonNegativeInteger · 11..policyViolations MUST be xsd:nonNegativeInteger (count of ODRL prohibitions triggered; must be 0 for a grounded answer).

Onboarding-latency shape (H-UX-04 gate)

Validates `topo connect → ask → pack` end-to-end wallclock per Kokoro H-UX-04 ≤10-min gate. Held at v0.7 ship per D-α 2026-04-17 (seed templates).

Target class: ---

Property pathConstraintCardinalityValidation message
evoQ:latencyMillisxsd:nonNegativeInteger · 11..latencyMillis MUST be xsd:nonNegativeInteger (wallclock ms; gate passes at ≤ 600000 = 10 min).
evoQ:windowEndxsd:dateTime · 11..windowEnd MUST be xsd:dateTime (topo pack completion).
evoQ:windowStartxsd:dateTime · 11..windowStart MUST be xsd:dateTime (topo connect invocation).

Pack-bundle structural shape

Validates the structural integrity of an E8 pack bundle per PRD §4.5 AC-W5.1. Distinct from evoQ:PackExportLatencyShape (latency distribution) — Nael Concern 1 keeps both.

Target class: ---

Property pathConstraintCardinalityValidation message
evoQ:bundleHashbundleHash MUST be a 64-char lowercase hex (SHA-256 content hash — tamper-detect). · 11..^[0-9a-f]{64}$
evoQ:frameworksh:IRI · 1framework MUST be ≥1 IRI (NIS2/DORA/ISO 27001/HDS/EHDS target framework)...*
evoQ:jsonldArtifactsh:IRI · 11..jsonldArtifact MUST be the IRI of the JSON-LD W3C artifact in the bundle.
evoQ:pdfArtifactsh:IRI · 11..pdfArtifact MUST be the IRI of the ISO 32000 PDF artifact in the bundle.

Pack-export-latency shape

Validates time-to-prepare-audit latency samples (wallclock frame 1 → bundle-ready). PRD §6.2 row 4; storyboard-audit-pack 4:51 live-measured post-W29 per Athena Finding 3.

Target class: ---

Property pathConstraintCardinalityValidation message
evoQ:frameworksh:IRI · 11..framework IRI MUST identify the framework pack measured.
evoQ:latencyMillisxsd:nonNegativeInteger · 11..latencyMillis MUST be xsd:nonNegativeInteger (wallclock ms).
evoQ:windowEndxsd:dateTime · 11..windowEnd MUST be xsd:dateTime (bundle-ready wallclock).
evoQ:windowStartxsd:dateTime · 11..windowStart MUST be xsd:dateTime (frame 1 wallclock).

Rogue-commit-detection shape (D19 cascade)

Validates rogue-commit detector output (commits without prov:wasInformedBy ADR linkage). Relocated to E4 per Nael Finding 6 — arch-delta §3.3 Data Plane gap-detector authority.

Target class: ---

Property pathConstraintCardinalityValidation message
prov:generatedAtTimexsd:dateTime · 11..PROV-O generation timestamp mandatory (when the detector surfaced the rogue commit).
evoQ:commit1 · 1evo:Commit..commit MUST be an evo:Commit instance (the rogue commit).
evoQ:detectionLatencyMillisxsd:nonNegativeInteger · 11..detectionLatencyMillis MUST be xsd:nonNegativeInteger (Q7 budget ≤500ms / 100k-quad).

Time-to-rationale sample shape

Validates a single wallclock sample for time-to-rationale KPI (indexed ADR opened → trail entry visible) per PRD §6.2 row 1.

Target class: ---

Property pathConstraintCardinalityValidation message
prov:generatedAtTimexsd:dateTime · 11..PROV-O generation timestamp is mandatory.
evoQ:decisionIrish:IRI · 11..decisionIri MUST be an IRI (the indexed ADR sampled).
evoQ:latencyMillisxsd:nonNegativeInteger · 11..latencyMillis MUST be xsd:nonNegativeInteger (wallclock ms).

Traceability-completeness result shape (RQ1)

Validates the SPARQL result row of the Trust Coverage (traceability-completeness) query per RQ1 §2.4 + §2.5 + PRD §6.1.

Target class: ---

Property pathConstraintCardinalityValidation message
evoQ:completenessRatioxsd:decimal · 11..completenessRatio MUST be xsd:decimal in [0.0, 1.0] (withEvidence / demandingEvidence).
evoQ:demandingEvidencexsd:integer · 11..demandingEvidence MUST be a non-negative xsd:integer (total controls under evidence demand).
evoQ:thresholdModexsd:string · 11..thresholdMode MUST be 'strict' (θ) or 'relaxed' (θ') per RQ1 §2.3.
evoQ:withEvidencexsd:integer · 11..withEvidence MUST be a non-negative xsd:integer (count of controls with ≥1 evidence binding).

Verifiability-latency result shape (RQ4)

RQ4 §5.5 — time for a third party to verify an answer against the exported pack bundle. Hybrid vs baseline latency comparison.

Target class: ---

Property pathConstraintCardinalityValidation message
evoQ:bundleHashxsd:string · 11..bundleHash MUST be xsd:string (SHA-256 hex of the verified bundle).
evoQ:latencyMillisxsd:nonNegativeInteger · 11..latencyMillis MUST be xsd:nonNegativeInteger.

SPARQL example

# List all shapes and their target classes
PREFIX sh: <http://www.w3.org/ns/shacl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

SELECT ?shape ?label ?target
WHERE {
  ?shape a sh:NodeShape ;
         rdfs:label ?label .
  OPTIONAL { ?shape sh:targetClass ?target }
}
ORDER BY ?label