id: "a1-principles-standards-profile"
version: "1.0.0"
name: "Architecture Principles, Standards & Policies"
description: "Modeling profile for architecture principles, standards, and policies - Governance and compliance framework"
icon: "Rule"

# Note: Model elements and relationships already have a default 'description' field.
# Do not create duplicate description properties in property groups.

# Status Enumerations
statusEnumerations:
  - id: "a1.principle-lifecycle"
    name: "Principle Lifecycle"
    description: "Lifecycle status for architecture principles"
    descriptionDetailed: "Status enumeration for the various phases in the lifecycle of an architecture principle from proposal to active or deprecated."
    default: "proposed"
    values:
      - key: "proposed"
        displayName: "Proposed"
        description: "Principle has been proposed but not yet approved"
        descriptionDetailed: "The principle has been proposed and is under review, but has not yet been formally approved."
        category: "active"
        order: 1
      - key: "approved"
        displayName: "Approved"
        description: "Principle has been approved and is active"
        descriptionDetailed: "The principle has been formally approved and is now active and should be followed."
        category: "active"
        order: 2
      - key: "deprecated"
        displayName: "Deprecated"
        description: "Principle is deprecated and should no longer be used"
        descriptionDetailed: "The principle is deprecated and should no longer be applied to new designs, though it may still apply to existing systems."
        category: "deactive"
        order: 3
      - key: "superseded"
        displayName: "Superseded"
        description: "Principle has been superseded by another principle"
        descriptionDetailed: "The principle has been replaced by another principle and is no longer valid."
        category: "deactive"
        order: 4

  - id: "a1.standard-lifecycle"
    name: "Standard Lifecycle"
    description: "Lifecycle status for architecture standards"
    descriptionDetailed: "Status enumeration for the various phases in the lifecycle of an architecture standard from draft to active or deprecated."
    default: "draft"
    values:
      - key: "draft"
        displayName: "Draft"
        description: "Standard is in draft form and not yet approved"
        descriptionDetailed: "The standard is being developed and is in draft form, not yet ready for use."
        category: "active"
        order: 1
      - key: "review"
        displayName: "Under Review"
        description: "Standard is under review for approval"
        descriptionDetailed: "The standard is being reviewed by stakeholders before final approval."
        category: "active"
        order: 2
      - key: "approved"
        displayName: "Approved"
        description: "Standard has been approved and is active"
        descriptionDetailed: "The standard has been formally approved and is now active and should be followed."
        category: "active"
        order: 3
      - key: "deprecated"
        displayName: "Deprecated"
        description: "Standard is deprecated and should no longer be used"
        descriptionDetailed: "The standard is deprecated and should no longer be applied to new implementations, though it may still apply to existing systems."
        category: "deactive"
        order: 4
      - key: "superseded"
        displayName: "Superseded"
        description: "Standard has been superseded by another standard"
        descriptionDetailed: "The standard has been replaced by another standard and is no longer valid."
        category: "deactive"
        order: 5

  - id: "a1.policy-lifecycle"
    name: "Policy Lifecycle"
    description: "Lifecycle status for architecture policies"
    descriptionDetailed: "Status enumeration for the various phases in the lifecycle of an architecture policy from draft to active or retired."
    default: "draft"
    values:
      - key: "draft"
        displayName: "Draft"
        description: "Policy is in draft form and not yet approved"
        descriptionDetailed: "The policy is being developed and is in draft form, not yet ready for enforcement."
        category: "active"
        order: 1
      - key: "review"
        displayName: "Under Review"
        description: "Policy is under review for approval"
        descriptionDetailed: "The policy is being reviewed by stakeholders before final approval."
        category: "active"
        order: 2
      - key: "approved"
        displayName: "Approved"
        description: "Policy has been approved and is active"
        descriptionDetailed: "The policy has been formally approved and is now active and should be enforced."
        category: "active"
        order: 3
      - key: "suspended"
        displayName: "Suspended"
        description: "Policy is temporarily suspended"
        descriptionDetailed: "The policy is temporarily suspended and not currently enforced, but may be reactivated."
        category: "active"
        order: 4
      - key: "retired"
        displayName: "Retired"
        description: "Policy has been retired and is no longer in effect"
        descriptionDetailed: "The policy has been retired and is no longer enforced or applicable."
        category: "deactive"
        order: 5

# Element Types
elementTypes:
  - id: "a1.principle"
    name: "Architecture Principle"
    description: "A fundamental rule or guideline that guides architectural decisions"
    descriptionDetailed: "An Architecture Principle represents a fundamental rule or guideline that guides architectural decisions and design choices. Principles are high-level statements that express fundamental beliefs about how architecture should be designed and evolved. They provide a framework for making consistent decisions across the organization."
    baseType: "default-model-element"
    layer: "knowledge"
    statusEnumeration: "a1.principle-lifecycle"
    organizationalRoles: ["watcher", "owner", "stakeholder"]
    propertiesSchema:
      - "a1-principle-common"
      - "a1-principle-governance"
    style:
      icon: "Idea"
      accentColor: "#0f62fe"
      defaultCanvasStyle: "card"

  - id: "a1.standard"
    name: "Architecture Standard"
    description: "A specific technical standard or specification that must be followed"
    descriptionDetailed: "An Architecture Standard represents a specific technical standard, specification, or convention that must be followed when designing or implementing systems. Standards provide concrete, actionable guidance on how to implement principles. They define specific technologies, patterns, or practices that should be used consistently across the organization."
    baseType: "default-model-element"
    layer: "knowledge"
    statusEnumeration: "a1.standard-lifecycle"
    organizationalRoles: ["watcher", "owner", "stakeholder"]
    propertiesSchema:
      - "a1-standard-common"
      - "a1-standard-compliance"
    style:
      icon: "ReferenceArchitecture"
      accentColor: "#198038"
      defaultCanvasStyle: "card"

  - id: "a1.policy"
    name: "Architecture Policy"
    description: "A mandatory rule or requirement that must be enforced"
    descriptionDetailed: "An Architecture Policy represents a mandatory rule or requirement that must be enforced across the organization. Policies are more prescriptive than principles and standards, defining what must or must not be done. They often have compliance implications and may be enforced through automated checks or governance processes."
    baseType: "default-model-element"
    layer: "knowledge"
    statusEnumeration: "a1.policy-lifecycle"
    organizationalRoles: ["watcher", "owner", "stakeholder"]
    propertiesSchema:
      - "a1-policy-common"
      - "a1-policy-enforcement"
    style:
      icon: "Security"
      accentColor: "#8a3ffc"
      defaultCanvasStyle: "card"

# Relationship Types
relationshipTypes:
  - id: "a1.implements"
    name: "implements"
    description: "Indicates that a standard or policy implements a principle"
    descriptionDetailed: "An Implements relationship indicates that an Architecture Standard or Architecture Policy implements or enforces an Architecture Principle. This relationship documents how principles are translated into concrete standards and policies."
    typeMappings:
      - sourceElementTypes: ["a1.standard", "a1.policy"]
        targetElementTypes: ["a1.principle"]
    bidirectional: false
    relationshipType: "default"
    prefillLabel: false
    style:
      style: "line"
      startArrow: "none"
      endArrow: "arrow"
      defaultColor: "#000000"
      thickness: 1

  - id: "a1.enforces"
    name: "enforces"
    description: "Indicates that a policy enforces a standard"
    descriptionDetailed: "An Enforces relationship indicates that an Architecture Policy enforces compliance with an Architecture Standard. This relationship documents how policies ensure adherence to standards."
    typeMappings:
      - sourceElementTypes: ["a1.policy"]
        targetElementTypes: ["a1.standard"]
    bidirectional: false
    relationshipType: "default"
    prefillLabel: false
    style:
      style: "line"
      startArrow: "none"
      endArrow: "arrow"
      defaultColor: "#000000"
      thickness: 1

  - id: "a1.applies-to"
    name: "applies to"
    description: "Indicates that a principle, standard, or policy applies to an element"
    descriptionDetailed: "An Applies To relationship indicates that an Architecture Principle, Standard, or Policy applies to a specific element (System, Container, Component, etc.). This relationship documents which elements are governed by which principles, standards, or policies."
    typeMappings:
      - sourceElementTypes: ["a1.principle", "a1.standard", "a1.policy"]
        targetElementTypes: ["*"]
    bidirectional: false
    relationshipType: "default"
    prefillLabel: false
    reverse:
      name: "governed by"
      description: "Elements that are governed by this principle, standard, or policy"
      descriptionDetailed: "The reverse of the 'Applies To' relationship. When a principle applies to a system, the system is 'governed by' the principle."
    propertiesSchema:
      details: "a1-applies-to-details"
    style:
      style: "dashed"
      startArrow: "none"
      endArrow: "arrow"
      defaultColor: "#000000"
      thickness: 1

  - id: "a1.related-to"
    name: "related to"
    description: "Indicates a general relationship between principles, standards, or policies"
    descriptionDetailed: "A Related To relationship indicates a general relationship between Architecture Principles, Standards, or Policies. This relationship can be used to document connections between related governance elements."
    typeMappings:
      - sourceElementTypes: ["a1.principle", "a1.standard", "a1.policy"]
        targetElementTypes: ["a1.principle", "a1.standard", "a1.policy"]
    bidirectional: true
    relationshipType: "default"
    prefillLabel: false
    style:
      style: "dashed"
      startArrow: "none"
      endArrow: "none"
      defaultColor: "#000000"
      thickness: 1

  - id: "a1.conflicts-with"
    name: "conflicts with"
    description: "Indicates that principles, standards, or policies conflict with each other"
    descriptionDetailed: "A Conflicts With relationship indicates that two Architecture Principles, Standards, or Policies conflict with each other. This relationship documents known conflicts or trade-offs that need to be resolved."
    typeMappings:
      - sourceElementTypes: ["a1.principle", "a1.standard", "a1.policy"]
        targetElementTypes: ["a1.principle", "a1.standard", "a1.policy"]
    bidirectional: true
    relationshipType: "default"
    prefillLabel: false
    style:
      style: "dashed"
      startArrow: "none"
      endArrow: "none"
      defaultColor: "#000000"
      thickness: 1

# Property Groups
propertyGroups:
  - id: "a1-principle-common"
    name: "Principle Common Properties"
    description: "Common properties for architecture principles"
    descriptionDetailed: "This property group contains common properties for Architecture Principle elements, including the principle category and rationale."
    properties:
      - fieldName: "principle-category"
        displayName: "Category"
        description: "The category of the principle"
        descriptionDetailed: "The category classifies the principle by its focus area. This helps organize principles by domain."
        type: "selection"
        required: false
        defaultValue: "design"
        options:
          - key: "design"
            displayName: "Design"
            description: "Design principles - guide how systems should be designed"
          - key: "technology"
            displayName: "Technology"
            description: "Technology principles - guide technology choices"
          - key: "security"
            displayName: "Security"
            description: "Security principles - guide security practices"
          - key: "data"
            displayName: "Data"
            description: "Data principles - guide data management"
          - key: "integration"
            displayName: "Integration"
            description: "Integration principles - guide system integration"
          - key: "operations"
            displayName: "Operations"
            description: "Operations principles - guide operational practices"
          - key: "governance"
            displayName: "Governance"
            description: "Governance principles - guide governance practices"
          - key: "other"
            displayName: "Other"
            description: "Other category of principle"
      - fieldName: "principle-rationale"
        displayName: "Rationale"
        description: "The rationale or reasoning behind the principle"
        descriptionDetailed: "The rationale explains why this principle is important and what benefits it provides. It helps stakeholders understand the reasoning behind the principle."
        type: "formattedText"
        required: false
        textTemplates: ["a1-principle-rationale-template"]
      - fieldName: "principle-implications"
        displayName: "Implications"
        description: "The implications of following this principle"
        descriptionDetailed: "The implications describe what it means to follow this principle in practice, including any trade-offs or considerations."
        type: "formattedText"
        required: false
        textTemplates: ["a1-principle-implications-template"]

  - id: "a1-principle-governance"
    name: "Principle Governance"
    description: "Governance properties for architecture principles"
    descriptionDetailed: "This property group contains properties for governing architecture principles, including priority and compliance level."
    properties:
      - fieldName: "principle-priority"
        displayName: "Priority"
        description: "The priority of the principle"
        descriptionDetailed: "The priority indicates how important this principle is relative to other principles."
        type: "selection"
        required: false
        defaultValue: "medium"
        options:
          - key: "very-low"
            displayName: "Very Low"
            description: "Very low priority"
          - key: "low"
            displayName: "Low"
            description: "Low priority"
          - key: "medium"
            displayName: "Medium"
            description: "Medium priority"
          - key: "high"
            displayName: "High"
            description: "High priority"
          - key: "very-high"
            displayName: "Very High"
            description: "Very high priority - critical principle"
      - fieldName: "principle-compliance-level"
        displayName: "Compliance Level"
        description: "The expected compliance level for this principle"
        descriptionDetailed: "The compliance level indicates how strictly this principle should be followed."
        type: "selection"
        required: false
        defaultValue: "should"
        options:
          - key: "must"
            displayName: "Must"
            description: "Must comply - mandatory"
          - key: "should"
            displayName: "Should"
            description: "Should comply - strongly recommended"
          - key: "may"
            displayName: "May"
            description: "May comply - optional guidance"

  - id: "a1-standard-common"
    name: "Standard Common Properties"
    description: "Common properties for architecture standards"
    descriptionDetailed: "This property group contains common properties for Architecture Standard elements, including the standard category and version."
    properties:
      - fieldName: "standard-category"
        displayName: "Category"
        description: "The category of the standard"
        descriptionDetailed: "The category classifies the standard by its type. This helps organize standards by domain."
        type: "selection"
        required: false
        defaultValue: "technology"
        options:
          - key: "technology"
            displayName: "Technology"
            description: "Technology standards - specific technologies or tools"
          - key: "pattern"
            displayName: "Pattern"
            description: "Pattern standards - architectural or design patterns"
          - key: "protocol"
            displayName: "Protocol"
            description: "Protocol standards - communication protocols"
          - key: "format"
            displayName: "Format"
            description: "Format standards - data formats or schemas"
          - key: "naming"
            displayName: "Naming"
            description: "Naming standards - naming conventions"
          - key: "documentation"
            displayName: "Documentation"
            description: "Documentation standards - documentation requirements"
          - key: "other"
            displayName: "Other"
            description: "Other category of standard"
      - fieldName: "standard-version"
        displayName: "Version"
        description: "The version of the standard"
        descriptionDetailed: "The version number or identifier for this standard. Standards may evolve over time, and versioning helps track changes."
        type: "text"
        required: false
      - fieldName: "standard-reference"
        displayName: "Reference"
        description: "Reference to external documentation or specification"
        descriptionDetailed: "A reference to external documentation, specification, or source that defines this standard in detail."
        type: "formattedText"
        required: false
        textTemplates: ["a1-standard-reference-template"]

  - id: "a1-standard-compliance"
    name: "Standard Compliance"
    description: "Compliance properties for architecture standards"
    descriptionDetailed: "This property group contains properties for tracking compliance with architecture standards."
    properties:
      - fieldName: "standard-compliance-level"
        displayName: "Compliance Level"
        description: "The required compliance level for this standard"
        descriptionDetailed: "The compliance level indicates how strictly this standard must be followed."
        type: "selection"
        required: false
        defaultValue: "required"
        options:
          - key: "mandatory"
            displayName: "Mandatory"
            description: "Mandatory - must be followed"
          - key: "required"
            displayName: "Required"
            description: "Required - should be followed unless exception approved"
          - key: "recommended"
            displayName: "Recommended"
            description: "Recommended - should be followed when applicable"
          - key: "optional"
            displayName: "Optional"
            description: "Optional - may be followed if appropriate"
      - fieldName: "standard-exception-process"
        displayName: "Exception Process"
        description: "The process for requesting exceptions to this standard"
        descriptionDetailed: "The process or procedure for requesting exceptions or deviations from this standard."
        type: "formattedText"
        required: false
        textTemplates: ["a1-exception-process-template"]

  - id: "a1-policy-common"
    name: "Policy Common Properties"
    description: "Common properties for architecture policies"
    descriptionDetailed: "This property group contains common properties for Architecture Policy elements, including the policy category and scope."
    properties:
      - fieldName: "policy-category"
        displayName: "Category"
        description: "The category of the policy"
        descriptionDetailed: "The category classifies the policy by its type. This helps organize policies by domain."
        type: "selection"
        required: false
        defaultValue: "compliance"
        options:
          - key: "compliance"
            displayName: "Compliance"
            description: "Compliance policies - enforce compliance requirements"
          - key: "security"
            displayName: "Security"
            description: "Security policies - enforce security requirements"
          - key: "quality"
            displayName: "Quality"
            description: "Quality policies - enforce quality requirements"
          - key: "governance"
            displayName: "Governance"
            description: "Governance policies - enforce governance requirements"
          - key: "operations"
            displayName: "Operations"
            description: "Operations policies - enforce operational requirements"
          - key: "other"
            displayName: "Other"
            description: "Other category of policy"
      - fieldName: "policy-scope"
        displayName: "Scope"
        description: "The scope of the policy"
        descriptionDetailed: "The scope defines what the policy applies to (e.g., all systems, specific domains, specific technologies)."
        type: "formattedText"
        required: false
        textTemplates: ["a1-policy-scope-template"]
      - fieldName: "policy-authority"
        displayName: "Authority"
        description: "The authority that established this policy"
        descriptionDetailed: "The organizational authority, committee, or role that established and owns this policy."
        type: "text"
        required: false

  - id: "a1-policy-enforcement"
    name: "Policy Enforcement"
    description: "Enforcement properties for architecture policies"
    descriptionDetailed: "This property group contains properties for enforcing architecture policies."
    properties:
      - fieldName: "policy-enforcement-level"
        displayName: "Enforcement Level"
        description: "The enforcement level for this policy"
        descriptionDetailed: "The enforcement level indicates how strictly this policy is enforced."
        type: "selection"
        required: false
        defaultValue: "enforced"
        options:
          - key: "strict"
            displayName: "Strict"
            description: "Strict enforcement - violations are blocked"
          - key: "enforced"
            displayName: "Enforced"
            description: "Enforced - violations are flagged and must be addressed"
          - key: "advisory"
            displayName: "Advisory"
            description: "Advisory - violations are noted but not blocked"
          - key: "monitored"
            displayName: "Monitored"
            description: "Monitored - compliance is tracked but not enforced"
      - fieldName: "policy-violation-consequence"
        displayName: "Violation Consequence"
        description: "The consequence of violating this policy"
        descriptionDetailed: "The consequence or impact of violating this policy, including any penalties or remediation requirements."
        type: "formattedText"
        required: false
        textTemplates: ["a1-violation-consequence-template"]

  - id: "a1-applies-to-details"
    name: "Applies To Relationship Details"
    description: "Details for Applies To relationships"
    descriptionDetailed: "This property group contains additional details for Applies To relationships between principles/standards/policies and elements."
    properties:
      - fieldName: "applies-to-compliance-status"
        displayName: "Compliance Status"
        description: "The compliance status of the element with respect to this principle, standard, or policy"
        descriptionDetailed: "An assessment of whether the element complies with the principle, standard, or policy."
        type: "selection"
        required: false
        defaultValue: "unknown"
        options:
          - key: "compliant"
            displayName: "Compliant"
            description: "Element is compliant"
          - key: "non-compliant"
            displayName: "Non-Compliant"
            description: "Element is not compliant"
          - key: "partial"
            displayName: "Partially Compliant"
            description: "Element is partially compliant"
          - key: "exception"
            displayName: "Exception Granted"
            description: "Exception has been granted"
          - key: "unknown"
            displayName: "Unknown"
            description: "Compliance status is unknown"
      - fieldName: "applies-to-notes"
        displayName: "Notes"
        description: "Additional notes about the relationship"
        descriptionDetailed: "Additional notes or details about how the principle, standard, or policy applies to the element."
        type: "formattedText"
        required: false
        textTemplates: ["a1-applies-to-notes-template"]

# Validations
validations:
  - id: "a1-principle-should-have-rationale"
    name: "Principle Should Have Rationale"
    description: "Architecture principles should have a rationale"
    severity: "warning"
    scope:
      elementTypes: ["a1.principle"]
    validation: "element.properties.common != null && element.properties.common['principle-rationale'] != null && element.properties.common['principle-rationale'] != ''"
    message: "Architecture Principle '{{element.properties.name}}' should have a rationale"
    suggestion: "Add a rationale explaining why this principle is important and what benefits it provides"

  - id: "a1-standard-should-have-reference"
    name: "Standard Should Have Reference"
    description: "Architecture standards should have a reference"
    severity: "info"
    scope:
      elementTypes: ["a1.standard"]
    validation: "element.properties.common != null && element.properties.common['standard-reference'] != null && element.properties.common['standard-reference'] != ''"
    message: "Architecture Standard '{{element.properties.name}}' could have a reference to external documentation"
    suggestion: "Add a reference to external documentation or specification that defines this standard"

  - id: "a1-policy-should-have-scope"
    name: "Policy Should Have Scope"
    description: "Architecture policies should have a scope"
    severity: "warning"
    scope:
      elementTypes: ["a1.policy"]
    validation: "element.properties.common != null && element.properties.common['policy-scope'] != null && element.properties.common['policy-scope'] != ''"
    message: "Architecture Policy '{{element.properties.name}}' should have a scope"
    suggestion: "Add a scope defining what this policy applies to"

  - id: "a1-principle-should-implement-standards"
    name: "Principle Should Have Implementing Standards"
    description: "Architecture principles should have standards that implement them"
    severity: "info"
    scope:
      elementTypes: ["a1.principle"]
    validation: "element.relationships[type == 'a1.implements'].count() > 0"
    message: "Architecture Principle '{{element.properties.name}}' could have standards or policies that implement it"
    suggestion: "Add 'Implements' relationships to document which standards or policies implement this principle"

  - id: "a1-standard-should-implement-principles"
    name: "Standard Should Implement Principles"
    description: "Architecture standards should implement principles"
    severity: "info"
    scope:
      elementTypes: ["a1.standard"]
    validation: "element.relationships[type == 'a1.implements'].count() > 0"
    message: "Architecture Standard '{{element.properties.name}}' could implement architecture principles"
    suggestion: "Add 'Implements' relationships to document which principles this standard implements"

  - id: "a1-governance-should-apply-to-elements"
    name: "Governance Should Apply To Elements"
    description: "Principles, standards, and policies should be linked to elements they apply to"
    severity: "info"
    scope:
      elementTypes: ["a1.principle", "a1.standard", "a1.policy"]
    validation: "element.relationships[type == 'a1.applies-to'].count() > 0"
    message: "{{element.properties.name}} could be linked to elements it applies to"
    suggestion: "Add 'Applies To' relationships to document which elements are governed by this principle, standard, or policy"

# Text Templates
textTemplates:
  - id: "a1-principle-rationale-template"
    name: "Principle Rationale Template"
    description: "Template for documenting the rationale behind an architecture principle"
    descriptionDetailed: "Use this template when documenting the rationale for an architecture principle to ensure consistent structure and coverage of reasoning."
    content: |
      ## Why This Principle Matters
      
      Explain why this principle is important and what benefits it provides.
      
      ## Context
      
      Describe the context or situation that makes this principle relevant.
      
      ## Expected Benefits
      
      List the expected benefits of following this principle.

  - id: "a1-principle-implications-template"
    name: "Principle Implications Template"
    description: "Template for documenting the implications of following an architecture principle"
    descriptionDetailed: "Use this template when documenting the implications of an architecture principle to ensure consistent structure and coverage of trade-offs."
    content: |
      ## What This Means in Practice
      
      Describe what it means to follow this principle in practice.
      
      ## Trade-offs
      
      Document any trade-offs or considerations when applying this principle.
      
      ## Implementation Considerations
      
      Note any important considerations for implementing this principle.

  - id: "a1-standard-reference-template"
    name: "Standard Reference Template"
    description: "Template for documenting references to external documentation or specifications"
    descriptionDetailed: "Use this template when documenting references to external documentation or specifications for architecture standards."
    content: |
      ## External Documentation
      
      Provide links or references to external documentation that defines this standard.
      
      ## Specification Details
      
      Include key details from the specification or documentation.
      
      ## Related Resources
      
      List any related resources or additional reading materials.

  - id: "a1-exception-process-template"
    name: "Exception Process Template"
    description: "Template for documenting the process for requesting exceptions to a standard"
    descriptionDetailed: "Use this template when documenting the exception process for architecture standards to ensure consistent structure."
    content: |
      ## Exception Request Process
      
      Describe the process for requesting exceptions or deviations from this standard.
      
      ## Approval Requirements
      
      Specify who needs to approve exceptions and what information is required.
      
      ## Review Criteria
      
      Document the criteria used to evaluate exception requests.

  - id: "a1-policy-scope-template"
    name: "Policy Scope Template"
    description: "Template for documenting the scope of an architecture policy"
    descriptionDetailed: "Use this template when documenting the scope of an architecture policy to ensure consistent structure."
    content: |
      ## What This Policy Applies To
      
      Define what the policy applies to (e.g., all systems, specific domains, specific technologies).
      
      ## Exclusions
      
      Document any explicit exclusions or exceptions to the scope.
      
      ## Context
      
      Provide additional context about the scope if needed.

  - id: "a1-violation-consequence-template"
    name: "Violation Consequence Template"
    description: "Template for documenting the consequences of violating an architecture policy"
    descriptionDetailed: "Use this template when documenting violation consequences for architecture policies to ensure consistent structure."
    content: |
      ## Impact of Violations
      
      Describe the impact or consequences of violating this policy.
      
      ## Remediation Requirements
      
      Specify what actions are required to remediate violations.
      
      ## Penalties
      
      Document any penalties or enforcement actions that may apply.

  - id: "a1-applies-to-notes-template"
    name: "Applies To Notes Template"
    description: "Template for documenting notes about how a principle, standard, or policy applies to an element"
    descriptionDetailed: "Use this template when documenting notes about the application of governance elements to ensure consistent structure."
    content: |
      ## Application Details
      
      Describe how the principle, standard, or policy applies to this element.
      
      ## Specific Considerations
      
      Note any specific considerations or context relevant to this application.
      
      ## Compliance Notes
      
      Add any additional notes about compliance or implementation.

# Metadata
metadata:
  tags:
    - "principles"
    - "standards"
    - "policies"
    - "governance"
    - "architecture"
    - "compliance"
  source: "Internal"
