# Aphoria Claims Import Template
#
# This file demonstrates the TOML format for bulk claim import.
# Generate this template: aphoria claims import --template > my-claims.toml
#
# Import commands:
#   aphoria claims import my-claims.toml --validate-only  # Validate format
#   aphoria claims import my-claims.toml --dry-run        # Preview changes
#   aphoria claims import my-claims.toml                  # Import for real
#
# Merge strategies:
#   --merge skip_existing      (default) Skip claims with duplicate IDs
#   --merge overwrite          Replace existing claims with same ID
#   --merge fail_on_duplicate  Exit with error if any ID exists
#
# Output formats:
#   --format table  (default) Human-readable with symbols
#   --format json   Machine-readable for tooling

# ============================================================================
# Example 1: Architecture Decision
# ============================================================================

[[claim]]
id = "myapp-core-no-tokio-001"
concept_path = "myapp/core/imports/tokio"
predicate = "imported"
value = false
comparison = "absent"
provenance = "Architecture decision by tech lead 2024-12-15"
invariant = "Core modules MUST remain sync-only"
consequence = "Importing tokio makes core async-only, breaking sync library users"
authority_tier = "expert"
evidence = ["ADR-003", "design review notes"]
category = "architecture"
status = "active"
created_by = "tech-lead"
created_at = "2024-12-15T10:00:00Z"

# ============================================================================
# Example 2: Security Requirement
# ============================================================================

[[claim]]
id = "myapp-http-tls-cert-validation-001"
concept_path = "myapp/httpclient/tls/certificate_validation"
predicate = "enabled"
value = true
comparison = "equals"
provenance = "OWASP A02:2021 - Cryptographic Failures"
invariant = "HTTP clients MUST validate TLS certificates"
consequence = "Disabled validation exposes MITM attacks"
authority_tier = "regulatory"
evidence = ["OWASP Top 10", "CWE-295"]
category = "security"
status = "active"
created_by = "security-team"
created_at = "2024-12-15T10:00:00Z"

# ============================================================================
# Example 3: Safety Invariant
# ============================================================================

[[claim]]
id = "myapp-pool-max-size-001"
concept_path = "myapp/pool/config/max_size"
predicate = "max_value"
value = 50
comparison = "equals"
provenance = "Load testing results 2024-12-10"
invariant = "Connection pool size MUST NOT exceed 50"
consequence = "Larger pools cause OOM under sustained load"
authority_tier = "expert"
evidence = ["tests/pool_tests.rs load test"]
category = "safety"
status = "active"
created_by = "sre-team"
created_at = "2024-12-15T10:00:00Z"

# ============================================================================
# Field Reference
# ============================================================================
#
# Required fields:
#   id              - Unique kebab-case identifier (e.g., "myapp-feature-001")
#   concept_path    - Hierarchical path to concept (e.g., "myapp/module/feature")
#   predicate       - Property being claimed (e.g., "enabled", "max_version")
#   value           - Expected value (bool, number, or "text")
#   comparison      - How to compare: equals, not_equals, present, absent, contains, not_contains
#   provenance      - Where this rule came from
#   invariant       - What MUST remain true
#   consequence     - What breaks if violated
#   authority_tier  - regulatory, clinical, observational, expert, community, anecdotal
#   category        - safety, architecture, security, imports, constants, derives, etc.
#   created_by      - Author name
#   created_at      - ISO 8601 timestamp
#
# Optional fields:
#   evidence        - Array of supporting references (default: [])
#   status          - active (default), deprecated, superseded
#   supersedes      - ID of claim this replaces
#   updated_at      - ISO 8601 timestamp of last update
#
# ============================================================================
# Comparison Modes
# ============================================================================
#
#   equals          - Value must exactly match
#   not_equals      - Value must differ
#   present         - Value must exist
#   absent          - Value must not exist
#   contains        - Value must contain substring/element
#   not_contains    - Value must not contain substring/element
#
# ============================================================================
# Authority Tiers (strongest to weakest)
# ============================================================================
#
#   1. regulatory     - Legal/regulatory mandate (FDA, GDPR)
#   2. clinical       - Peer-reviewed clinical evidence
#   3. observational  - Real-world data, case studies
#   4. expert         - Senior engineer/architect decision
#   5. community      - Team consensus, convention
#   6. anecdotal      - Individual experience, suggestion
