AISA v2.0 / Technical documentation / brief.schema.json
brief.schema.json
JSON · 26 lines · 4,200 bytes · wiki path 10 Architecture/contracts/drafts/brief.schema.json · download the raw file · cited from Contracts
Same folder: branch-set.schema.json · configuration-summary.schema.json · cross-repo-shape.schema.json · experience-entry.schema.json · handover-packet.schema.json · normalised-arrival.schema.json · route-packet.schema.json · sign-out-document.schema.json · skill-manifest.schema.json · solution-packet.schema.json · stage-contract.schema.json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://aisa.ablera.com/contracts/drafts/brief.schema.json",
"title": "Brief — DRAFT inter-stage contract (Development S1–S2 → approval gate H2)",
"x-status": "draft",
"description": "Stage Planning: the brief names the chosen seam and the three rejected, the blast radius, the branch set across every repository and the database, and the test plan per lineage — approved by a person before any code is written. Placement order is the decision order (Goal 3): customer plug-in → customer service → database-resident code → shared code as a proposition. Required core only (D139).",
"type": "object", "additionalProperties": true,
"required": ["case_id", "reproduction", "placement", "branch_set_ref", "blast_radius", "test_plan", "predicted_minutes", "definition_of_done"],
"properties": {
"case_id": { "type": "string" },
"reproduction": { "type": "object", "required": ["reproduced", "environment", "evidence_refs"], "properties": { "reproduced": { "type": "boolean" }, "environment": { "type": "string" }, "evidence_refs": { "type": "array", "items": { "type": "string" } }, "configuration_or_code": { "type": "string", "enum": ["code", "configuration", "both"], "description": "the pre-question: if configuration, this becomes an Hd to Configuration (Agents § 5)" } } },
"placement": { "type": "object", "required": ["chosen_seam", "rejected", "why"], "properties": {
"chosen_seam": { "type": "string", "enum": ["customer_plugin", "customer_service", "database_resident", "shared_code_proposition"] },
"rejected": { "type": "array", "minItems": 3, "maxItems": 3, "items": { "type": "object", "required": ["seam", "why_not"], "properties": { "seam": { "type": "string", "enum": ["customer_plugin", "customer_service", "database_resident", "shared_code_proposition"] }, "why_not": { "type": "string" } } } },
"why": { "type": "string" },
"seam_catalogue_ref": { "type": "string", "description": "the row of the customer's seam catalogue (configuration) the choice instantiates" },
"split": { "type": "object", "description": "a mixed change is split and the split recorded: the customer-specific part ships now, the shared part becomes the proposition", "properties": { "ships_now": { "type": "string" }, "proposition": { "type": "string" }, "interim_duplication": { "type": "string" }, "removed_by_event": { "type": "string" } } },
"proposition_issue_ref": { "type": "string", "description": "shared_code_proposition: the GitLab issue on master the case closes against (D108)" } } },
"branch_set_ref": { "type": "string", "description": "the branch set paper (drafts/branch-set.schema.json)" },
"blast_radius": { "type": "object", "required": ["customers", "services", "tables", "environments"], "properties": { "customers": { "type": "array", "items": { "type": "string" } }, "services": { "type": "array", "items": { "type": "string" } }, "tables": { "type": "array", "items": { "type": "string" } }, "environments": { "type": "array", "items": { "type": "string" } }, "cross_repo_shape_ref": { "type": "string" } } },
"test_plan": { "type": "array", "minItems": 1, "items": { "type": "object", "required": ["lineage", "build", "tests"], "properties": { "lineage": { "type": "string" }, "build": { "type": "string", "description": "the build is the authority" }, "tests": { "type": "array", "items": { "type": "string", "enum": ["unit", "interface", "eval_set", "replay", "manual_surface"] } } } } },
"predicted_minutes": { "type": "number", "minimum": 0, "description": "D135: predicted time to deliver — the case budget" },
"definition_of_done": { "type": "array", "minItems": 3, "items": { "type": "string" }, "description": "DG-5: deploy, test and revert — a change missing any of the three keeps the case open" },
"port_plan": { "type": "object", "properties": { "counterpart_exists": { "type": "boolean" }, "no_counterpart_reason": { "type": "string" }, "port_goes_first_because": { "type": "string", "description": "G18: the port follows PROD verification unless the brief records why it goes first" } } }
}
}