☰ Contents
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" } } }
  }
}