# 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