| 1 | {
|
| 2 | "schema_version": 1,
|
| 3 | "semantics_version": "platform-v1",
|
| 4 | "note": "Fairness contract for the platform lane. A semantics class describes the workflow contract both platforms must satisfy before their rows are comparable; rows record platform_semantics_version, platform_semantics_class, protection_variant, platform_comparison_key, and semantic_contract_match. Class names, variant names, and field meanings are immutable once published (ADR-0005): material changes require a new class/variant name or a semantics_version bump recorded on every row.",
|
| 5 | "classes": {
|
| 6 | "integration-default": {
|
| 7 | "description": "The default hosted integration workflow: the task branch must be published to the platform; the change is integrated as a reviewable unit (a pull request on GitHub, the pushed virtual branch on oak); the platform's default merge method lands it in main; the merged result must then be present in a local checkout.",
|
| 8 | "branch_publish_required": true,
|
| 9 | "integration_object": "pull_request_or_platform_equivalent",
|
| 10 | "merge_method": "platform_default",
|
| 11 | "async_mergeability_check": "platform_dependent; GitHub computes PR mergeability asynchronously and that settling is a measured operation; oak merge is synchronous so the settle has no equivalent (null, poll_iterations structurally 0)",
|
| 12 | "local_sync_required": true
|
| 13 | },
|
| 14 | "minimal-merge": {
|
| 15 | "description": "The fastest honest path the platform offers from a local task branch to the change merged in main: publish is still required, but no reviewable unit is required when the platform can integrate directly; merge method is the cheapest the platform allows under the protection variant.",
|
| 16 | "branch_publish_required": true,
|
| 17 | "integration_object": "optional",
|
| 18 | "merge_method": "fastest_available",
|
| 19 | "async_mergeability_check": "platform_dependent",
|
| 20 | "local_sync_required": true
|
| 21 | }
|
| 22 | },
|
| 23 | "protection_variants": [
|
| 24 | "protection-none",
|
| 25 | "check-instant",
|
| 26 | "check-slow60s",
|
| 27 | "required-review",
|
| 28 | "strict-uptodate",
|
| 29 | "merge-queue"
|
| 30 | ],
|
| 31 | "implemented_protection_variants": [
|
| 32 | "protection-none",
|
| 33 | "check-instant"
|
| 34 | ],
|
| 35 | "protection_variants_note": "Implemented: protection-none, and check-instant - a required status check that the HARNESS posts instantly via the commit status API (deterministic, free, no Actions); PRs need that status green before merge, measured as integration.checks.green.settle. The remaining variants are declared now so their names are reserved with fixed meaning (ADR-0005) before any rows are published under them. Requesting an unimplemented variant yields skip rows, never silently different semantics."
|
| 36 | }
|