Skip to content

BLOGE Verify API Reference ​

This page maps a verification question to the narrowest public entry point. All APIs described here are Preview in BLOGE 0.9.8-RC1.

Entry points ​

Entry pointUse it forRequired boundaryResultImportant limit
ScenarioVerifierOne Suite, governance, Property, sensitivity, or DSL comparisonProject root, Policy, fresh per-Case bootstrapVerificationReport or specialized reportCustomer bootstrap and operators execute
BlogeScenarioTestsMap a Scenario directory to JUnit 5 dynamic testsA configured ScenarioVerifierStream<DynamicTest>Global preflight happens before tests are created
DurableVerificationRunnerA retained-session action planCompiled Graph, operators, context, durable planDurableVerificationReportOne plan at a time; uncooperative timeout poisons the runner
DurableSourceBoundVerifierDurable source-bound evidenceDurable runner inputs plus source/output bindingDurable result and receiptEvidence version determines available trust facts
VerificationProjectRunnerRequirement aggregation across Suites in one projectCommon selection, governance catalog, complete child cohortProject report/evidenceCannot assemble unrelated prior children after the fact
VerificationReactorRunnerAggregate direct Maven modulesSupported root coordinates and exact module inventoryReactor report/evidenceNested/profile-derived reactors are outside this Preview boundary
PairedExecutionCoordinatorCompare two BLOGE toolchainsFrozen Java launcher, business classpath, inputs, and both toolchainsToolchain comparison evidenceProvider-attested adapters are not BLOGE attribution
VerificationClaimsDerive decision capability from verified evidenceOriginal artifact, external receipt, correct project rootVerificationClaimAssessmentDoes not rerun the candidate bootstrap or operators

ScenarioVerifier method families ​

Method familyPurpose
verify(...) / analyze(...)Execute an ordinary Suite and return the verdict/report
Source-bound evidence overloadsPublish a sealed Suite artifact under a frozen source boundary
Governed/versioned methodsBind business contracts to selected Requirement and Oracle records
Fixture fidelity and isolation methodsAdd declared control or environment-isolation evidence
Property and sensitivity methodsExecute bounded generated samples, shrink, relations, or controlled mutants
Oracle independence methodsRun an explicitly bound reference model in a child JVM
compare(...) / compareEvidence(...)Compare one frozen DSL graph change axis

Use the dedicated report type returned by the selected method. Do not flatten specialized evidence back into an ordinary Suite verdict.

Minimal builder ​

java
ScenarioVerifier verifier = ScenarioVerifier.builder()
    .bootstrap(caseContext ->
        VerificationEnvironment.controlled(operatorRegistry))
    .projectRoot(projectRoot)
    .policy(projectRoot.resolve("src/test/bloge/verification-policy.yaml"))
    .build();

For source-bound output, add sourceBoundEvidence(), an ignored outputDirectory(...) inside the project worktree, and the required execution profile. Keep the returned receipt externally and verify it with the matching reader before claim assessment.

Input and plan types ​

TypeRole
Scenario documentSuite, Cases, graph/context, expectations, Fixture references
Policy documentAssurance floor, required inventory, effect and resource obligations
Fixture documentCall-site or effect-port matching and controlled responses
Governance catalog/contextVersioned Requirement and Oracle selection
DurableVerificationPlanFinite retained-session action chain and temporal checks
Property planDeterministic sample cohort, relation, seed, and optional supported shrink
Comparison planOne declared change axis with all non-target inputs frozen

Extension SPIs ​

SPIWhy it exists
VerificationBootstrapCreates a fresh customer verification environment per Case
VerificationEnvironmentLeaseProviderSupplies comparable isolated environment leases
VerificationOperatorRegistryForkProviderPreserves custom registry semantics while giving comparison runs independent forks
VerificationOperatorRegistryFingerprintProviderExposes stable identity for stateful custom registries
VerificationOracleReferenceModelExecutes an explicitly bound independent reference-model entry point

An SPI declaration is part of the evidence boundary. It is not proof that undeclared ambient state does not exist.

Reports, evidence, and readers ​

LayerUseRule
In-memory reportExplain Suite, Case, action, sample, or comparison outcomesRead status and ordered reason codes
Artifact directoryStore canonical manifest/report/summary/seal filesKeep it in the original ignored worktree output root
External receiptPin the exact artifact digestDo not store it inside the artifact being sealed
Family-specific readerRecompute source and projection relationshipsReject unknown versions and drift
VerificationClaimsCalculate the strongest supported gateConsume reader-verified facts; never self-declare capability

Oracle v10/v11 readers may rerun the explicitly bound reference-model child JVM. Other readers validate source-owned artifacts without executing candidate operators or the customer bootstrap.

Schema catalogs ​

Document or artifactCatalog
Scenario, Policy, Fixture, governanceVerificationSchemaCatalog
Durable actionsDurableVerificationSchemaCatalog
Durable temporal rulesDurableTemporalSchemaCatalog
Property inputPropertyVerificationSchemaCatalog
Contract sensitivity inputContractSensitivitySchemaCatalog
Governed project configurationVerificationGovernedProjectConfigurationSchemaCatalog
EvidenceThe family-specific *EvidenceSchemaCatalog listed in Evidence versions

Catalog output is the compatibility source of truth. Do not infer a document shape from a higher numeric version in another family.

Concurrency and timeout rules ​

  • A verifier with an execution profile admits one controlled run at a time.
  • JUnit directory execution completes global preflight before any customer Case starts.
  • A DurableVerificationRunner handles one retained plan at a time.
  • A timeout that cannot stop customer code poisons that runner instance; construct a new one.
  • Comparison coordinators share a bounded timeout and terminate visible child descendants.