TenantAtlas/specs/212-test-authoring-guardrails/contracts/test-authoring-governance.schema.json
Ahmed Darrazi b9fdd847a6
Some checks failed
PR Fast Feedback / fast-feedback (pull_request) Failing after 49s
docs: add spec 212 test authoring guardrails
2026-04-18 12:00:17 +02:00

304 lines
8.1 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://tenantatlas.local/specs/212/test-authoring-governance.schema.json",
"title": "Test Authoring Governance Pack",
"description": "Repository-owned contract for the constitution, authoring prompts, review guardrails, escalation policy, and validation scenarios introduced by Spec 212.",
"type": "object",
"additionalProperties": false,
"required": [
"schemaVersion",
"constitutionSection",
"specImpactPromptBlock",
"planImpactPromptBlock",
"taskGovernanceChecklist",
"reviewGuardrailChecklist",
"escalationPolicy",
"contributorGuidance",
"validationScenarios"
],
"properties": {
"schemaVersion": {
"type": "string"
},
"constitutionSection": {
"$ref": "#/$defs/constitutionSection"
},
"specImpactPromptBlock": {
"$ref": "#/$defs/specImpactPromptBlock"
},
"planImpactPromptBlock": {
"$ref": "#/$defs/planImpactPromptBlock"
},
"taskGovernanceChecklist": {
"$ref": "#/$defs/checklist"
},
"reviewGuardrailChecklist": {
"$ref": "#/$defs/reviewChecklist"
},
"escalationPolicy": {
"$ref": "#/$defs/escalationPolicy"
},
"contributorGuidance": {
"$ref": "#/$defs/contributorGuidance"
},
"validationScenarios": {
"type": "array",
"minItems": 2,
"items": {
"$ref": "#/$defs/validationScenario"
}
}
},
"$defs": {
"constitutionSection": {
"type": "object",
"additionalProperties": false,
"required": [
"sectionId",
"version",
"classificationRule",
"laneAwarenessRule",
"heavyJustificationRule",
"minimalFixtureRule",
"expensiveDefaultBanRule",
"reviewExpectationRule",
"escalationRule",
"linkedWorkflowSurfaces"
],
"properties": {
"sectionId": { "type": "string" },
"version": { "type": "string" },
"classificationRule": { "type": "string" },
"laneAwarenessRule": { "type": "string" },
"heavyJustificationRule": { "type": "string" },
"minimalFixtureRule": { "type": "string" },
"expensiveDefaultBanRule": { "type": "string" },
"reviewExpectationRule": { "type": "string" },
"escalationRule": { "type": "string" },
"linkedWorkflowSurfaces": {
"type": "array",
"minItems": 1,
"items": { "type": "string" }
}
}
},
"specImpactPromptBlock": {
"type": "object",
"additionalProperties": false,
"required": [
"blockId",
"requiredFields",
"narrowestProofRule",
"naAllowanceRule",
"escalationPrompt",
"reviewerHandOff"
],
"properties": {
"blockId": { "type": "string" },
"requiredFields": {
"type": "array",
"minItems": 1,
"items": { "type": "string" }
},
"narrowestProofRule": { "type": "string" },
"naAllowanceRule": { "type": "string" },
"escalationPrompt": { "type": "string" },
"reviewerHandOff": { "type": "string" }
}
},
"planImpactPromptBlock": {
"type": "object",
"additionalProperties": false,
"required": [
"blockId",
"changedTestTypes",
"helperOrFixtureImpact",
"laneReshapeQuestion",
"closingValidationRule",
"driftDocumentationRule"
],
"properties": {
"blockId": { "type": "string" },
"changedTestTypes": {
"type": "array",
"items": { "type": "string" }
},
"helperOrFixtureImpact": { "type": "string" },
"laneReshapeQuestion": { "type": "string" },
"closingValidationRule": { "type": "string" },
"driftDocumentationRule": { "type": "string" }
}
},
"checklist": {
"type": "object",
"additionalProperties": false,
"required": [
"checklistId",
"items",
"appliesWhen",
"evidenceTarget"
],
"properties": {
"checklistId": { "type": "string" },
"items": {
"type": "array",
"minItems": 1,
"items": { "type": "string" }
},
"appliesWhen": { "type": "string" },
"evidenceTarget": { "type": "string" }
}
},
"reviewChecklist": {
"type": "object",
"additionalProperties": false,
"required": [
"checklistId",
"questions",
"expectedOutcomeSet",
"maxReviewMinutes",
"escalationReference"
],
"properties": {
"checklistId": { "type": "string" },
"questions": {
"type": "array",
"minItems": 1,
"items": { "type": "string" }
},
"expectedOutcomeSet": {
"type": "array",
"minItems": 1,
"items": {
"type": "string",
"enum": [
"keep",
"split",
"document-in-feature",
"follow-up-spec",
"reject-or-split"
]
}
},
"maxReviewMinutes": {
"type": "integer",
"minimum": 1
},
"escalationReference": { "type": "string" }
}
},
"escalationPolicy": {
"type": "object",
"additionalProperties": false,
"required": [
"policyId",
"triggers",
"outcomes",
"followUpThresholdRule"
],
"properties": {
"policyId": { "type": "string" },
"triggers": {
"type": "array",
"minItems": 1,
"items": {
"type": "string",
"enum": [
"new-heavy-family",
"new-browser-coverage",
"material-lane-cost-shift",
"broad-filament-livewire-governance-surface",
"revived-expensive-default",
"budget-or-baseline-relevant-change",
"major-suite-reshaping"
]
}
},
"outcomes": {
"type": "array",
"minItems": 1,
"items": {
"type": "string",
"enum": [
"none",
"document-in-feature",
"follow-up-spec",
"reject-or-split"
]
}
},
"followUpThresholdRule": { "type": "string" }
}
},
"contributorGuidance": {
"type": "object",
"additionalProperties": false,
"required": [
"guidanceId",
"decisionPoints",
"examplePatterns",
"entryPoints",
"sharedVocabulary"
],
"properties": {
"guidanceId": { "type": "string" },
"decisionPoints": {
"type": "array",
"minItems": 1,
"items": { "type": "string" }
},
"examplePatterns": {
"type": "array",
"items": { "type": "string" }
},
"entryPoints": {
"type": "array",
"minItems": 1,
"items": { "type": "string" }
},
"sharedVocabulary": {
"type": "array",
"minItems": 1,
"items": { "type": "string" }
}
}
},
"validationScenario": {
"type": "object",
"additionalProperties": false,
"required": [
"scenarioId",
"scenarioType",
"representativeArtifact",
"expectedPromptPattern",
"expectedEscalationOutcome",
"status"
],
"properties": {
"scenarioId": { "type": "string" },
"scenarioType": {
"type": "string",
"enum": ["low-impact", "high-impact"]
},
"representativeArtifact": { "type": "string" },
"expectedPromptPattern": { "type": "string" },
"expectedEscalationOutcome": {
"type": "string",
"enum": [
"none",
"document-in-feature",
"follow-up-spec",
"reject-or-split"
]
},
"status": {
"type": "string",
"enum": ["planned", "validated", "needs-tuning"]
},
"notes": {
"type": "string"
}
}
}
}
}