{
  "schema": "weftwight.public-c4ai-context-stack/0.1",
  "kind": "c4ai-context-stack",
  "title": "C4AI context stack",
  "purpose": "Keep AI assistance grounded in selected authoring context without treating an AI response as authority.",
  "zones": [
    {
      "id": "system_rules",
      "required": true,
      "contains": ["response_contract", "forbidden_actions", "authority_boundary"],
      "rule": "Short, explicit, and versioned; never include secrets or private implementation detail."
    },
    {
      "id": "active_scope",
      "required": true,
      "contains": ["stage_id", "selected_field_refs", "author_notes", "current_values"],
      "rule": "Only intentionally selected fields may be proposed for change."
    },
    {
      "id": "world_context",
      "required": true,
      "contains": ["premise_and_tags", "environments_and_start", "characters", "primary_gear"],
      "rule": "Use concise upstream summaries and content hashes or references when a complete record is unnecessary."
    },
    {
      "id": "side_context",
      "required": false,
      "contains": ["available_tags", "project_vocabulary", "local_library_refs"],
      "rule": "A registry is advisory; it does not create shared authority or disclose another author’s private work."
    },
    {
      "id": "documentation",
      "required": true,
      "contains": ["registry_url", "document_urls", "document_hashes", "inline_constraints"],
      "rule": "Use public, versioned documents only. Inline constraints remain sufficient for an offline teammate."
    }
  ],
  "response_rule": "Return a bounded proposal or field patch bound to the request. Omitted fields remain unchanged."
}
