Publish capability matrix schema

This commit is contained in:
Meta Vens 2026-07-09 11:49:15 +01:00
commit 73deb9d46e
6 changed files with 142 additions and 0 deletions

View file

@ -591,6 +591,9 @@ Recently cut:
from the exported evidence. The generic consumer smoke asserts it with
`--expect-capability-matrix`, so owner repos do not need to scrape the
Markdown report or rebuild Eve's summary logic to understand coverage.
- The capability matrix projection now has a catalog-backed schema document at
`schemas/gamecult.eve.capability_matrix.v1.schema.json`, and the generic
conformance consumer asserts that schema from the exported pack.
- Conformance export now copies handoff documents into `handoffs/*.json` rather
than exporting Eve-local source paths only. The export carries handoff export
paths for EveConformance, Sai/Norn plugins, Aetheria, and EveUnity; the

View file

@ -0,0 +1,133 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "gamecult.eve.capability_matrix.v1",
"title": "Eve Capability Matrix",
"type": "object",
"required": [
"schema",
"generatedAt",
"summary",
"capabilityGapCount",
"handoffs",
"packs",
"plugins",
"providers",
"runtimes",
"splitTargets"
],
"properties": {
"schema": {
"const": "gamecult.eve.capability_matrix.v1"
},
"generatedAt": {
"type": "string",
"minLength": 1
},
"summary": {
"type": "object"
},
"capabilityGapCount": {
"type": "integer",
"minimum": 0
},
"handoffs": {
"type": "object",
"required": [
"conformance",
"plugins",
"providers",
"runtimes"
],
"properties": {
"conformance": {
"type": "integer",
"minimum": 0
},
"plugins": {
"type": "integer",
"minimum": 0
},
"providers": {
"type": "integer",
"minimum": 0
},
"runtimes": {
"type": "integer",
"minimum": 0
}
},
"additionalProperties": true
},
"packs": {
"type": "array",
"items": {
"type": "object",
"required": [
"packId",
"ownerRepo",
"fixtureCount",
"passedFixtures",
"failedFixtures"
],
"additionalProperties": true
}
},
"plugins": {
"type": "array",
"items": {
"type": "object",
"required": [
"pluginId",
"ownerRepo",
"status",
"capabilities",
"abiOperations"
],
"additionalProperties": true
}
},
"providers": {
"type": "array",
"items": {
"type": "object",
"required": [
"providerId",
"ownerRepo",
"status",
"surfaces",
"commands"
],
"additionalProperties": true
}
},
"runtimes": {
"type": "array",
"items": {
"type": "object",
"required": [
"runtimeId",
"ownerRepo",
"status",
"supportedFeatures",
"captureStatus"
],
"additionalProperties": true
}
},
"splitTargets": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"ownerRepo",
"status",
"blockerCount",
"passedProofs"
],
"additionalProperties": true
}
}
},
"additionalProperties": true
}

View file

@ -33,6 +33,7 @@ try {
node .\tools\conformance\consume-export.mjs $consumerExport `
--expect-capability-matrix `
--expect-schema gamecult.eve.conformance_export.v1 `
--expect-schema gamecult.eve.capability_matrix.v1 `
--expect-schema gamecult.eve.command_receipt.v1 `
--expect-schema gamecult.eve.plugin_receipt.v1 `
--expect-schema gamecult.eve.plugin_abi.request.v1 `

View file

@ -75,6 +75,7 @@ foreach ($contract in @(
"gamecult.eve.command.v1",
"gamecult.eve.command_receipt.v1",
"gamecult.eve.conformance_export.v1",
"gamecult.eve.capability_matrix.v1",
"gamecult.eve.conformance_fixture.v1",
"gamecult.eve.provider_scenario.v1",
"gamecult.eve.plugin.v1",
@ -112,6 +113,7 @@ if (Test-Path -LiteralPath (Join-Path $absoluteExportDirectory "index.json")) {
}
foreach ($schemaId in @(
"gamecult.eve.conformance_export.v1",
"gamecult.eve.capability_matrix.v1",
"gamecult.eve.conformance_fixture.v1",
"gamecult.eve.provider_scenario.v1",
"gamecult.eve.provider_advertisement.v1",

View file

@ -20,6 +20,7 @@
"destinationOwner": "EveConformance",
"currentPaths": [
"schemas/gamecult.eve.conformance_export.v1.schema.json",
"schemas/gamecult.eve.capability_matrix.v1.schema.json",
"schemas/gamecult.eve.conformance_fixture.v1.schema.json",
"schemas/gamecult.eve.provider_scenario.v1.schema.json",
"schemas/gamecult.eve.provider_advertisement.v1.schema.json",
@ -67,6 +68,7 @@
"gamecult.eve.command.v1",
"gamecult.eve.command_receipt.v1",
"gamecult.eve.conformance_export.v1",
"gamecult.eve.capability_matrix.v1",
"gamecult.eve.conformance_fixture.v1",
"gamecult.eve.provider_scenario.v1",
"gamecult.eve.plugin.v1",

View file

@ -9,6 +9,7 @@
"schemas": {
"gamecult.eve.conformance_fixture.v1": "schemas/gamecult.eve.conformance_fixture.v1.schema.json",
"gamecult.eve.conformance_export.v1": "schemas/gamecult.eve.conformance_export.v1.schema.json",
"gamecult.eve.capability_matrix.v1": "schemas/gamecult.eve.capability_matrix.v1.schema.json",
"gamecult.eve.command.v1": "schemas/gamecult.eve.command.v1.schema.json",
"gamecult.eve.command_receipt.v1": "schemas/gamecult.eve.command_receipt.v1.schema.json",
"gamecult.eve.plugin.v1": "schemas/gamecult.eve.plugin.v1.schema.json",