{
  "frameworks": {
    "csa-aicm": {
      "name": "CSA AI Controls Matrix",
      "publisher": "Cloud Security Alliance",
      "edition": "1.1.0",
      "kind": "control",
      "relation": "supports control",
      "status": "stable",
      "citation_unit": "control",
      "source_artefact": "CSA AI Controls Matrix v1.1.0",
      "retrieved": "2026-07-07",
      "catalogue": "subset",
      "ids_cited": 79,
      "ids_total": null
    },
    "csa-ccm": {
      "name": "CSA Cloud Controls Matrix",
      "publisher": "Cloud Security Alliance",
      "edition": "4.1.0",
      "kind": "control",
      "relation": "supports control",
      "status": "stable",
      "citation_unit": "control",
      "source_artefact": "CSA Cloud Controls Matrix v4.1.0",
      "retrieved": "2026-07-07",
      "catalogue": "subset",
      "ids_cited": 57,
      "ids_total": null
    },
    "iso-23894": {
      "name": "ISO/IEC 23894:2023 AI guidance on risk management",
      "publisher": "ISO/IEC",
      "edition": "2023",
      "kind": "guidance",
      "relation": "aligns with guidance",
      "status": "stable",
      "citation_unit": "clause or annex objective",
      "source_artefact": "ISO/IEC 23894:2023, clauses 5-6 and Annexes A-B (headings only)",
      "retrieved": "2026-08-16",
      "catalogue": "subset",
      "ids_cited": 14,
      "ids_total": null
    },
    "iso-42001": {
      "name": "ISO/IEC 42001:2023 AI management system",
      "publisher": "ISO/IEC",
      "edition": "2023",
      "kind": "control",
      "relation": "supports control",
      "status": "stable",
      "citation_unit": "clause or Annex A control",
      "source_artefact": "ISO/IEC 42001:2023, Annex A and clauses 4-10 (headings only)",
      "retrieved": "2026-08-16",
      "catalogue": "subset",
      "ids_cited": 18,
      "ids_total": null
    },
    "atlas": {
      "name": "MITRE ATLAS",
      "publisher": "MITRE",
      "edition": "2026.06",
      "kind": "technique",
      "relation": "mitigates technique",
      "status": "snapshot",
      "citation_unit": "technique",
      "source_artefact": "MITRE ATLAS content version 2026.06, techniques.csv",
      "retrieved": "2026-08-16",
      "catalogue": "subset",
      "ids_cited": 67,
      "ids_total": null
    },
    "cwe": {
      "name": "MITRE CWE",
      "publisher": "MITRE",
      "edition": "4.20",
      "kind": "weakness",
      "relation": "mitigates weakness",
      "status": "snapshot",
      "citation_unit": "weakness",
      "source_artefact": "CWE List Version 4.20 (cwec_v4.20.xml, Weakness entries; Deprecated/Obsolete excluded)",
      "retrieved": "2026-08-22",
      "catalogue": "subset",
      "ids_cited": 72,
      "ids_total": null
    },
    "nist-80053": {
      "name": "NIST SP 800-53 Security and Privacy Controls",
      "publisher": "NIST",
      "edition": "Rev 5 (catalog 5.2.0)",
      "kind": "control",
      "relation": "supports control",
      "status": "stable",
      "citation_unit": "control",
      "source_artefact": "NIST SP 800-53 Rev 5, OSCAL catalog",
      "retrieved": "2026-08-16",
      "catalogue": "subset",
      "ids_cited": 67,
      "ids_total": null
    },
    "nist-airmf": {
      "name": "NIST AI Risk Management Framework",
      "publisher": "NIST",
      "edition": "1.0 (NIST AI 100-1)",
      "kind": "guidance",
      "relation": "aligns with guidance",
      "status": "stable",
      "citation_unit": "subcategory",
      "source_artefact": "NIST AI 100-1, AI Risk Management Framework 1.0",
      "retrieved": "2026-08-16",
      "catalogue": "subset",
      "ids_cited": 24,
      "ids_total": null
    },
    "nist-ssdf": {
      "name": "NIST Secure Software Development Framework",
      "publisher": "NIST",
      "edition": "1.1 (SP 800-218)",
      "kind": "control",
      "relation": "supports control",
      "status": "stable",
      "citation_unit": "task",
      "source_artefact": "NIST SP 800-218 v1.1 SSDF, OSCAL catalog",
      "retrieved": "2026-08-16",
      "catalogue": "subset",
      "ids_cited": 20,
      "ids_total": null
    },
    "owasp-api": {
      "name": "OWASP API Security Top 10",
      "publisher": "OWASP Foundation",
      "edition": "2023",
      "kind": "risk",
      "relation": "addresses risk",
      "status": "stable",
      "citation_unit": "risk category",
      "source_artefact": "OWASP API Security Top 10 2023",
      "retrieved": "2026-08-16",
      "catalogue": "subset",
      "ids_cited": 8,
      "ids_total": null
    },
    "owasp-asi": {
      "name": "OWASP Top 10 for Agentic Applications",
      "publisher": "OWASP Foundation",
      "edition": "2026",
      "kind": "risk",
      "relation": "addresses risk",
      "status": "stable",
      "citation_unit": "risk category",
      "source_artefact": "OWASP Top 10 for Agentic Applications, Version 2026 (December 2025)",
      "retrieved": "2026-08-16",
      "catalogue": "subset",
      "ids_cited": 9,
      "ids_total": null
    },
    "owasp-asvs": {
      "name": "OWASP Application Security Verification Standard",
      "publisher": "OWASP Foundation",
      "edition": "5.0.0",
      "kind": "control",
      "relation": "supports control",
      "status": "stable",
      "citation_unit": "chapter",
      "source_artefact": "OWASP Application Security Verification Standard (ASVS) 5.0.0 (tag v5.0.0_release)",
      "retrieved": "2026-08-16",
      "catalogue": "subset",
      "ids_cited": 13,
      "ids_total": null
    },
    "owasp-cheatsheet": {
      "name": "OWASP Cheat Sheet Series",
      "publisher": "OWASP Foundation",
      "edition": "commit f54d8ded2764010ecacd0deb87e1586da32d41dd (2026-07-04)",
      "kind": "guidance",
      "relation": "aligns with guidance",
      "status": "snapshot",
      "citation_unit": "cheat sheet",
      "source_artefact": "OWASP Cheat Sheet Series (OWASP/CheatSheetSeries repo, commit f54d8de, 2026-07-04)",
      "retrieved": "2026-08-16",
      "catalogue": "subset",
      "ids_cited": 27,
      "ids_total": null
    },
    "owasp-llm": {
      "name": "OWASP Top 10 for LLM Applications",
      "publisher": "OWASP Foundation",
      "edition": "2026",
      "kind": "risk",
      "relation": "addresses risk",
      "status": "stable",
      "citation_unit": "risk category",
      "source_artefact": "OWASP Top 10 for LLM Applications, Version 2026",
      "retrieved": "2026-08-16",
      "catalogue": "full",
      "ids_cited": 10,
      "ids_total": 10
    },
    "owasp-mcp": {
      "name": "OWASP MCP Top 10",
      "publisher": "OWASP Foundation",
      "edition": "2025",
      "kind": "risk",
      "relation": "addresses risk",
      "status": "beta",
      "citation_unit": "risk category",
      "source_artefact": "OWASP MCP Top 10 (2025, Beta)",
      "retrieved": "2026-08-16",
      "catalogue": "full",
      "ids_cited": 10,
      "ids_total": 10
    },
    "owasp-proactive": {
      "name": "OWASP Top 10 Proactive Controls",
      "publisher": "OWASP Foundation",
      "edition": "4.0.0",
      "kind": "control",
      "relation": "supports control",
      "status": "stable",
      "citation_unit": "control",
      "source_artefact": "OWASP Top 10 Proactive Controls v4.0.0 (2024)",
      "retrieved": "2026-08-16",
      "catalogue": "subset",
      "ids_cited": 9,
      "ids_total": null
    },
    "owasp-web": {
      "name": "OWASP Top 10 (Web Application Security Risks)",
      "publisher": "OWASP Foundation",
      "edition": "2025",
      "kind": "risk",
      "relation": "addresses risk",
      "status": "stable",
      "citation_unit": "risk category",
      "source_artefact": "OWASP Top 10:2025 (Web Application Security Risks)",
      "retrieved": "2026-08-16",
      "catalogue": "full",
      "ids_cited": 10,
      "ids_total": 10
    }
  },
  "mappings": [
    {
      "rule_id": "datbnd",
      "rule_title": "Classify content by sensitivity tier",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-data-boundary.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "DSP-10",
      "identifier_title": "Sensitive Data Transfer"
    },
    {
      "rule_id": "datbnd",
      "rule_title": "Classify content by sensitivity tier",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-data-boundary.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "DSP-17",
      "identifier_title": "Sensitive Data Protection"
    },
    {
      "rule_id": "datbnd",
      "rule_title": "Classify content by sensitivity tier",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-data-boundary.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "DSP-24",
      "identifier_title": "Data Differentiation and Relevance"
    },
    {
      "rule_id": "datbnd",
      "rule_title": "Classify content by sensitivity tier",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-data-boundary.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "IAM-16",
      "identifier_title": "Knowledge Access Control - Need to Know"
    },
    {
      "rule_id": "datbnd",
      "rule_title": "Classify content by sensitivity tier",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-data-boundary.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "DSP-04",
      "identifier_title": "Data Classification"
    },
    {
      "rule_id": "secsec",
      "rule_title": "Keep secrets out",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-keep-secrets-out.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "DSP-17",
      "identifier_title": "Sensitive Data Protection"
    },
    {
      "rule_id": "secsec",
      "rule_title": "Keep secrets out",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-keep-secrets-out.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "LOG-08",
      "identifier_title": "Audit Logs Sanitization"
    },
    {
      "rule_id": "secsec",
      "rule_title": "Keep secrets out",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-keep-secrets-out.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "AIS-12",
      "identifier_title": "Source Code Management"
    },
    {
      "rule_id": "secsec",
      "rule_title": "Keep secrets out",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-keep-secrets-out.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "IAM-14",
      "identifier_title": "Credentials Management"
    },
    {
      "rule_id": "seclpr",
      "rule_title": "Retrieval enforces the requester's authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-least-privilege-retrieval.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "IAM-18",
      "identifier_title": "Agent Access Restriction"
    },
    {
      "rule_id": "seclpr",
      "rule_title": "Retrieval enforces the requester's authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-least-privilege-retrieval.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "IAM-05",
      "identifier_title": "Least Privilege"
    },
    {
      "rule_id": "seclpr",
      "rule_title": "Retrieval enforces the requester's authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-least-privilege-retrieval.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "IAM-15",
      "identifier_title": "Authorization Mechanisms"
    },
    {
      "rule_id": "seclpr",
      "rule_title": "Retrieval enforces the requester's authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-least-privilege-retrieval.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "IAM-16",
      "identifier_title": "Knowledge Access Control - Need to Know"
    },
    {
      "rule_id": "secncb",
      "rule_title": "No cross-context bleed",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-no-cross-context-bleed.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "AIS-14",
      "identifier_title": "AI Cache Protection"
    },
    {
      "rule_id": "secncb",
      "rule_title": "No cross-context bleed",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-no-cross-context-bleed.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "IAM-16",
      "identifier_title": "Knowledge Access Control - Need to Know"
    },
    {
      "rule_id": "secncb",
      "rule_title": "No cross-context bleed",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-no-cross-context-bleed.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "AIS-11",
      "identifier_title": "Agents Security Boundaries"
    },
    {
      "rule_id": "secncb",
      "rule_title": "No cross-context bleed",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-no-cross-context-bleed.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "I&S-06",
      "identifier_title": "Segmentation and Segregation"
    },
    {
      "rule_id": "secndc",
      "rule_title": "No disclosure of secrets or hidden context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-no-hidden-context-disclosure.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "AIS-15",
      "identifier_title": "Prompt Differentiation"
    },
    {
      "rule_id": "secndc",
      "rule_title": "No disclosure of secrets or hidden context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-no-hidden-context-disclosure.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "DSP-17",
      "identifier_title": "Sensitive Data Protection"
    },
    {
      "rule_id": "secndc",
      "rule_title": "No disclosure of secrets or hidden context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-no-hidden-context-disclosure.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "IAM-16",
      "identifier_title": "Knowledge Access Control - Need to Know"
    },
    {
      "rule_id": "secndc",
      "rule_title": "No disclosure of secrets or hidden context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-no-hidden-context-disclosure.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "TVM-13",
      "identifier_title": "Guardrails"
    },
    {
      "rule_id": "secrot",
      "rule_title": "Rotate a leaked secret",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-rotate-leaked-secret.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "SEF-07",
      "identifier_title": "Incident Management and Response"
    },
    {
      "rule_id": "secrot",
      "rule_title": "Rotate a leaked secret",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-rotate-leaked-secret.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "CEK-12",
      "identifier_title": "Key Rotation"
    },
    {
      "rule_id": "secrot",
      "rule_title": "Rotate a leaked secret",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-rotate-leaked-secret.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "CEK-19",
      "identifier_title": "Key Compromise"
    },
    {
      "rule_id": "secrot",
      "rule_title": "Rotate a leaked secret",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-rotate-leaked-secret.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "IAM-14",
      "identifier_title": "Credentials Management"
    },
    {
      "rule_id": "secau1",
      "rule_title": "Strong authentication",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authentication.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "IAM-13",
      "identifier_title": "Strong Authentication"
    },
    {
      "rule_id": "secau1",
      "rule_title": "Strong authentication",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authentication.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "IAM-14",
      "identifier_title": "Credentials Management"
    },
    {
      "rule_id": "secazn",
      "rule_title": "Least-privilege authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authorization.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "IAM-16",
      "identifier_title": "Knowledge Access Control - Need to Know"
    },
    {
      "rule_id": "secazn",
      "rule_title": "Least-privilege authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authorization.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "IAM-17",
      "identifier_title": "Output Modification and Special Authorization"
    },
    {
      "rule_id": "secazn",
      "rule_title": "Least-privilege authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authorization.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "IAM-18",
      "identifier_title": "Agent Access Restriction"
    },
    {
      "rule_id": "secazn",
      "rule_title": "Least-privilege authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authorization.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "IAM-05",
      "identifier_title": "Least Privilege"
    },
    {
      "rule_id": "secazn",
      "rule_title": "Least-privilege authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authorization.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "IAM-15",
      "identifier_title": "Authorization Mechanisms"
    },
    {
      "rule_id": "seccry",
      "rule_title": "Sound cryptography",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-cryptography.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "CEK-03",
      "identifier_title": "Data Protection"
    },
    {
      "rule_id": "seccry",
      "rule_title": "Sound cryptography",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-cryptography.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "CEK-04",
      "identifier_title": "Encryption Algorithm"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "MDS-12",
      "identifier_title": "Open Model Risk Assessment"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "TVM-06",
      "identifier_title": "External Library Vulnerabilities"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "UEM-02",
      "identifier_title": "Application and Service Approval"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "MDS-02",
      "identifier_title": "Model Artifact Scanning"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "MDS-09",
      "identifier_title": "Model Signing/Ownership Verification"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "STA-01",
      "identifier_title": "Supply Chain Risk Management Policies and Procedures"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "STA-08",
      "identifier_title": "Supply Chain Inventory"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "STA-09",
      "identifier_title": "Service Bill of Material (BOM)"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "STA-10",
      "identifier_title": "Supply Chain Risk Management"
    },
    {
      "rule_id": "secfid",
      "rule_title": "Validate federated identity and token flows",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-federated-identity-flow.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "IAM-13",
      "identifier_title": "Strong Authentication"
    },
    {
      "rule_id": "secfid",
      "rule_title": "Validate federated identity and token flows",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-federated-identity-flow.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "IAM-14",
      "identifier_title": "Credentials Management"
    },
    {
      "rule_id": "secfid",
      "rule_title": "Validate federated identity and token flows",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-federated-identity-flow.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "IAM-15",
      "identifier_title": "Authorization Mechanisms"
    },
    {
      "rule_id": "sechau",
      "rule_title": "Human authorization for consequential actions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-human-authorization.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "CCC-05",
      "identifier_title": "Change Agreements"
    },
    {
      "rule_id": "sechau",
      "rule_title": "Human authorization for consequential actions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-human-authorization.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "CCC-04",
      "identifier_title": "Unauthorized Change Protection"
    },
    {
      "rule_id": "sechau",
      "rule_title": "Human authorization for consequential actions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-human-authorization.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "GRC-15",
      "identifier_title": "Human supervision"
    },
    {
      "rule_id": "secinp",
      "rule_title": "Validate external input at the boundary",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-input-validation.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "AIS-08",
      "identifier_title": "API Security"
    },
    {
      "rule_id": "secinp",
      "rule_title": "Validate external input at the boundary",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-input-validation.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "AIS-09",
      "identifier_title": "Input Validation"
    },
    {
      "rule_id": "secagt",
      "rule_title": "Trust between agents is earned, not inherited",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-inter-agent-trust.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "IAM-05",
      "identifier_title": "Least Privilege"
    },
    {
      "rule_id": "secagt",
      "rule_title": "Trust between agents is earned, not inherited",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-inter-agent-trust.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "IAM-13",
      "identifier_title": "Strong Authentication"
    },
    {
      "rule_id": "secagt",
      "rule_title": "Trust between agents is earned, not inherited",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-inter-agent-trust.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "IAM-15",
      "identifier_title": "Authorization Mechanisms"
    },
    {
      "rule_id": "secagt",
      "rule_title": "Trust between agents is earned, not inherited",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-inter-agent-trust.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "AIS-11",
      "identifier_title": "Agents Security Boundaries"
    },
    {
      "rule_id": "secagt",
      "rule_title": "Trust between agents is earned, not inherited",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-inter-agent-trust.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "IAM-18",
      "identifier_title": "Agent Access Restriction"
    },
    {
      "rule_id": "seckey",
      "rule_title": "Key management",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-key-management.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "CEK-01",
      "identifier_title": "Encryption and Key Management Policy and Procedures"
    },
    {
      "rule_id": "seckey",
      "rule_title": "Key management",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-key-management.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "CEK-10",
      "identifier_title": "Key Generation"
    },
    {
      "rule_id": "seckey",
      "rule_title": "Key management",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-key-management.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "CEK-11",
      "identifier_title": "Key Purpose"
    },
    {
      "rule_id": "seckey",
      "rule_title": "Key management",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-key-management.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "CEK-12",
      "identifier_title": "Key Rotation"
    },
    {
      "rule_id": "seckey",
      "rule_title": "Key management",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-key-management.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "CEK-13",
      "identifier_title": "Key Revocation"
    },
    {
      "rule_id": "seckey",
      "rule_title": "Key management",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-key-management.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "CEK-14",
      "identifier_title": "Key Destruction"
    },
    {
      "rule_id": "seckey",
      "rule_title": "Key management",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-key-management.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "CEK-21",
      "identifier_title": "Key Inventory Management"
    },
    {
      "rule_id": "seclpt",
      "rule_title": "Least-privilege tool and file access",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-least-privilege-tools.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "AIS-13",
      "identifier_title": "AI Sandboxing"
    },
    {
      "rule_id": "seclpt",
      "rule_title": "Least-privilege tool and file access",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-least-privilege-tools.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "IAM-10",
      "identifier_title": "Management of Privileged Access Roles"
    },
    {
      "rule_id": "seclpt",
      "rule_title": "Least-privilege tool and file access",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-least-privilege-tools.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "UEM-02",
      "identifier_title": "Application and Service Approval"
    },
    {
      "rule_id": "seclpt",
      "rule_title": "Least-privilege tool and file access",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-least-privilege-tools.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "IAM-05",
      "identifier_title": "Least Privilege"
    },
    {
      "rule_id": "seclpt",
      "rule_title": "Least-privilege tool and file access",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-least-privilege-tools.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "IAM-18",
      "identifier_title": "Agent Access Restriction"
    },
    {
      "rule_id": "secred",
      "rule_title": "Redact sensitive content from logs",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-log-redaction.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "DSP-17",
      "identifier_title": "Sensitive Data Protection"
    },
    {
      "rule_id": "secred",
      "rule_title": "Redact sensitive content from logs",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-log-redaction.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "LOG-08",
      "identifier_title": "Audit Logs Sanitization"
    },
    {
      "rule_id": "secred",
      "rule_title": "Redact sensitive content from logs",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-log-redaction.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "LOG-09",
      "identifier_title": "Log Records"
    },
    {
      "rule_id": "secenc",
      "rule_title": "Encode output for its sink",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-encoding.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "AIS-10",
      "identifier_title": "Output Validation"
    },
    {
      "rule_id": "secout",
      "rule_title": "Generated output is untrusted input",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-handling.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "AIS-05",
      "identifier_title": "Application Security Testing"
    },
    {
      "rule_id": "secout",
      "rule_title": "Generated output is untrusted input",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-handling.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "AIS-09",
      "identifier_title": "Input Validation"
    },
    {
      "rule_id": "secout",
      "rule_title": "Generated output is untrusted input",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-handling.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "AIS-13",
      "identifier_title": "AI Sandboxing"
    },
    {
      "rule_id": "secout",
      "rule_title": "Generated output is untrusted input",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-handling.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "TVM-13",
      "identifier_title": "Guardrails"
    },
    {
      "rule_id": "secout",
      "rule_title": "Generated output is untrusted input",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-handling.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "AIS-10",
      "identifier_title": "Output Validation"
    },
    {
      "rule_id": "secpsn",
      "rule_title": "Resist data, model, and memory poisoning",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-poisoning-resistance.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "MDS-06",
      "identifier_title": "Adversarial Attack Analysis"
    },
    {
      "rule_id": "secpsn",
      "rule_title": "Resist data, model, and memory poisoning",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-poisoning-resistance.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "MDS-07",
      "identifier_title": "Robustness against Adversarial Attack / Model Hardening"
    },
    {
      "rule_id": "secpsn",
      "rule_title": "Resist data, model, and memory poisoning",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-poisoning-resistance.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "DSP-21",
      "identifier_title": "Data Poisoning Prevention & Detection"
    },
    {
      "rule_id": "secpsn",
      "rule_title": "Resist data, model, and memory poisoning",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-poisoning-resistance.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "DSP-23",
      "identifier_title": "Data Integrity Check"
    },
    {
      "rule_id": "secpsn",
      "rule_title": "Resist data, model, and memory poisoning",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-poisoning-resistance.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "MDS-01",
      "identifier_title": "Training Pipeline Security"
    },
    {
      "rule_id": "secpsn",
      "rule_title": "Resist data, model, and memory poisoning",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-poisoning-resistance.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "MDS-08",
      "identifier_title": "Model Integrity Checks"
    },
    {
      "rule_id": "secaud",
      "rule_title": "Protect audit records from the actors they record",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-protect-audit-records.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "LOG-04",
      "identifier_title": "Audit Logs Access and Accountability"
    },
    {
      "rule_id": "secaud",
      "rule_title": "Protect audit records from the actors they record",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-protect-audit-records.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "LOG-02",
      "identifier_title": "Audit Logs Protection"
    },
    {
      "rule_id": "secaud",
      "rule_title": "Protect audit records from the actors they record",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-protect-audit-records.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "LOG-10",
      "identifier_title": "Audit Records Protection"
    },
    {
      "rule_id": "secvln",
      "rule_title": "Reject known-vulnerable dependency versions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-reject-vulnerable-versions.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "TVM-03",
      "identifier_title": "Vulnerability Identification"
    },
    {
      "rule_id": "secvln",
      "rule_title": "Reject known-vulnerable dependency versions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-reject-vulnerable-versions.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "TVM-06",
      "identifier_title": "External Library Vulnerabilities"
    },
    {
      "rule_id": "secpub",
      "rule_title": "Publish artefacts with verifiable integrity",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-release-integrity.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "MDS-09",
      "identifier_title": "Model Signing/Ownership Verification"
    },
    {
      "rule_id": "secdsz",
      "rule_title": "Deserialize untrusted data only as data",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-safe-deserialization.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "AIS-09",
      "identifier_title": "Input Validation"
    },
    {
      "rule_id": "secdsz",
      "rule_title": "Deserialize untrusted data only as data",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-safe-deserialization.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "MDS-02",
      "identifier_title": "Model Artifact Scanning"
    },
    {
      "rule_id": "secdsz",
      "rule_title": "Deserialize untrusted data only as data",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-safe-deserialization.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "MDS-13",
      "identifier_title": "Secure Model Format"
    },
    {
      "rule_id": "seccfg",
      "rule_title": "Secure by default configuration",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-secure-configuration.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "CCC-06",
      "identifier_title": "Change Management Baseline"
    },
    {
      "rule_id": "seccfg",
      "rule_title": "Secure by default configuration",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-secure-configuration.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "CCC-07",
      "identifier_title": "Detection of Baseline Deviation"
    },
    {
      "rule_id": "seccfg",
      "rule_title": "Secure by default configuration",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-secure-configuration.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "AIS-02",
      "identifier_title": "Application Security Baseline Requirements"
    },
    {
      "rule_id": "seccfg",
      "rule_title": "Secure by default configuration",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-secure-configuration.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "I&S-04",
      "identifier_title": "OS Hardening and Base Controls"
    },
    {
      "rule_id": "seclog",
      "rule_title": "Security logging with traceable context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-security-logging.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "LOG-01",
      "identifier_title": "Logging and Monitoring Policy and Procedures"
    },
    {
      "rule_id": "seclog",
      "rule_title": "Security logging with traceable context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-security-logging.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "LOG-07",
      "identifier_title": "Logging Scope"
    },
    {
      "rule_id": "seclog",
      "rule_title": "Security logging with traceable context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-security-logging.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "LOG-09",
      "identifier_title": "Log Records"
    },
    {
      "rule_id": "seclog",
      "rule_title": "Security logging with traceable context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-security-logging.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "LOG-12",
      "identifier_title": "Transaction/Activity Logging"
    },
    {
      "rule_id": "seclog",
      "rule_title": "Security logging with traceable context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-security-logging.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "LOG-13",
      "identifier_title": "Access Control Logs"
    },
    {
      "rule_id": "sectok",
      "rule_title": "Secure session and token handling",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-session-token-management.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "CEK-03",
      "identifier_title": "Data Protection"
    },
    {
      "rule_id": "sectok",
      "rule_title": "Secure session and token handling",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-session-token-management.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "IAM-13",
      "identifier_title": "Strong Authentication"
    },
    {
      "rule_id": "sectok",
      "rule_title": "Secure session and token handling",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-session-token-management.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "IAM-14",
      "identifier_title": "Credentials Management"
    },
    {
      "rule_id": "secssr",
      "rule_title": "Validate server-initiated requests",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-ssrf-prevention.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "AIS-09",
      "identifier_title": "Input Validation"
    },
    {
      "rule_id": "secssr",
      "rule_title": "Validate server-initiated requests",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-ssrf-prevention.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "I&S-09",
      "identifier_title": "Network Defense"
    },
    {
      "rule_id": "secthm",
      "rule_title": "Threat-model new trust boundaries before implementation",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-threat-model-boundaries.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "TVM-04",
      "identifier_title": "Threat Analysis and Modelling"
    },
    {
      "rule_id": "sectvl",
      "rule_title": "Validate tool arguments before use",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-tool-argument-validation.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "AIS-09",
      "identifier_title": "Input Validation"
    },
    {
      "rule_id": "sectvl",
      "rule_title": "Validate tool arguments before use",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-tool-argument-validation.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "AIS-11",
      "identifier_title": "Agents Security Boundaries"
    },
    {
      "rule_id": "sectvl",
      "rule_title": "Validate tool arguments before use",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-tool-argument-validation.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "AIS-13",
      "identifier_title": "AI Sandboxing"
    },
    {
      "rule_id": "sectvl",
      "rule_title": "Validate tool arguments before use",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-tool-argument-validation.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "IAM-18",
      "identifier_title": "Agent Access Restriction"
    },
    {
      "rule_id": "secunt",
      "rule_title": "Untrusted content is data, not instructions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-untrusted-content.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "AIS-09",
      "identifier_title": "Input Validation"
    },
    {
      "rule_id": "secunt",
      "rule_title": "Untrusted content is data, not instructions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-untrusted-content.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "AIS-11",
      "identifier_title": "Agents Security Boundaries"
    },
    {
      "rule_id": "secunt",
      "rule_title": "Untrusted content is data, not instructions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-untrusted-content.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "DSP-24",
      "identifier_title": "Data Differentiation and Relevance"
    },
    {
      "rule_id": "secunt",
      "rule_title": "Untrusted content is data, not instructions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-untrusted-content.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "TVM-02",
      "identifier_title": "Malware and Malicious Instructions Protection Policy and Procedures"
    },
    {
      "rule_id": "secunt",
      "rule_title": "Untrusted content is data, not instructions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-untrusted-content.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "TVM-13",
      "identifier_title": "Guardrails"
    },
    {
      "rule_id": "secunt",
      "rule_title": "Untrusted content is data, not instructions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-untrusted-content.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "AIS-15",
      "identifier_title": "Prompt Differentiation"
    },
    {
      "rule_id": "secvde",
      "rule_title": "Verify a dependency exists before adding it",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-verify-dependency-exists.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "AIS-12",
      "identifier_title": "Source Code Management"
    },
    {
      "rule_id": "secvde",
      "rule_title": "Verify a dependency exists before adding it",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-verify-dependency-exists.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "MDS-02",
      "identifier_title": "Model Artifact Scanning"
    },
    {
      "rule_id": "secvde",
      "rule_title": "Verify a dependency exists before adding it",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-verify-dependency-exists.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "MDS-12",
      "identifier_title": "Open Model Risk Assessment"
    },
    {
      "rule_id": "secvde",
      "rule_title": "Verify a dependency exists before adding it",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-verify-dependency-exists.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "STA-09",
      "identifier_title": "Service Bill of Material (BOM)"
    },
    {
      "rule_id": "secvde",
      "rule_title": "Verify a dependency exists before adding it",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-verify-dependency-exists.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "TVM-06",
      "identifier_title": "External Library Vulnerabilities"
    },
    {
      "rule_id": "secvde",
      "rule_title": "Verify a dependency exists before adding it",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-verify-dependency-exists.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "UEM-02",
      "identifier_title": "Application and Service Approval"
    },
    {
      "rule_id": "secvde",
      "rule_title": "Verify a dependency exists before adding it",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-verify-dependency-exists.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "STA-08",
      "identifier_title": "Supply Chain Inventory"
    },
    {
      "rule_id": "secres",
      "rule_title": "Bounded consumption and safe failure",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECA-resource-bounds.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "AIS-13",
      "identifier_title": "AI Sandboxing"
    },
    {
      "rule_id": "secres",
      "rule_title": "Bounded consumption and safe failure",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECA-resource-bounds.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "MDS-11",
      "identifier_title": "Model Failure"
    },
    {
      "rule_id": "secrst",
      "rule_title": "A destructive operation requires a verified restore path",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECA-verified-restore-path.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "BCR-08",
      "identifier_title": "Backup"
    },
    {
      "rule_id": "secmin",
      "rule_title": "Minimize personal data sent to AI services",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-data-minimization.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "DSP-17",
      "identifier_title": "Sensitive Data Protection"
    },
    {
      "rule_id": "secmin",
      "rule_title": "Minimize personal data sent to AI services",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-data-minimization.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "DSP-08",
      "identifier_title": "Data Privacy by Design and Default"
    },
    {
      "rule_id": "secmin",
      "rule_title": "Minimize personal data sent to AI services",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-data-minimization.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "DSP-12",
      "identifier_title": "Limitation of Purpose in Personal Data Processing"
    },
    {
      "rule_id": "secmin",
      "rule_title": "Minimize personal data sent to AI services",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-data-minimization.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "DSP-22",
      "identifier_title": "Privacy Enhancing Technologies"
    },
    {
      "rule_id": "secdrr",
      "rule_title": "Honour residency, retention, and deletion",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-data-residency-retention.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "DSP-11",
      "identifier_title": "Personal Data Access, Reversal, Rectification and Deletion"
    },
    {
      "rule_id": "secdrr",
      "rule_title": "Honour residency, retention, and deletion",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-data-residency-retention.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "DSP-16",
      "identifier_title": "Data Retention and Deletion"
    },
    {
      "rule_id": "secdrr",
      "rule_title": "Honour residency, retention, and deletion",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-data-residency-retention.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "DSP-19",
      "identifier_title": "Data Location"
    },
    {
      "rule_id": "secpur",
      "rule_title": "Bind personal-data use to its authorized purpose",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-purpose-limitation.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "DSP-12",
      "identifier_title": "Limitation of Purpose in Personal Data Processing"
    },
    {
      "rule_id": "secsyn",
      "rule_title": "Fixtures and examples use synthetic data",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-synthetic-fixture-data.md",
      "framework": "csa-aicm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "DSP-15",
      "identifier_title": "Limitation of Production Data Use"
    },
    {
      "rule_id": "datbnd",
      "rule_title": "Classify content by sensitivity tier",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-data-boundary.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "DSP-10",
      "identifier_title": "Sensitive Data Transfer"
    },
    {
      "rule_id": "datbnd",
      "rule_title": "Classify content by sensitivity tier",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-data-boundary.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "DSP-17",
      "identifier_title": "Sensitive Data Protection"
    },
    {
      "rule_id": "datbnd",
      "rule_title": "Classify content by sensitivity tier",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-data-boundary.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "DSP-04",
      "identifier_title": "Data Classification"
    },
    {
      "rule_id": "secsec",
      "rule_title": "Keep secrets out",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-keep-secrets-out.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "DSP-17",
      "identifier_title": "Sensitive Data Protection"
    },
    {
      "rule_id": "secsec",
      "rule_title": "Keep secrets out",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-keep-secrets-out.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "LOG-08",
      "identifier_title": "Audit Logs Sanitization"
    },
    {
      "rule_id": "secsec",
      "rule_title": "Keep secrets out",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-keep-secrets-out.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "IAM-14",
      "identifier_title": "Credentials Management"
    },
    {
      "rule_id": "seclpr",
      "rule_title": "Retrieval enforces the requester's authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-least-privilege-retrieval.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "IAM-05",
      "identifier_title": "Least Privilege"
    },
    {
      "rule_id": "seclpr",
      "rule_title": "Retrieval enforces the requester's authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-least-privilege-retrieval.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "IAM-15",
      "identifier_title": "Authorization Mechanisms"
    },
    {
      "rule_id": "secncb",
      "rule_title": "No cross-context bleed",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-no-cross-context-bleed.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "I&S-06",
      "identifier_title": "Segmentation and Segregation"
    },
    {
      "rule_id": "secndc",
      "rule_title": "No disclosure of secrets or hidden context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-no-hidden-context-disclosure.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "DSP-17",
      "identifier_title": "Sensitive Data Protection"
    },
    {
      "rule_id": "secrot",
      "rule_title": "Rotate a leaked secret",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-rotate-leaked-secret.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "SEF-07",
      "identifier_title": "Incident Management and Response"
    },
    {
      "rule_id": "secrot",
      "rule_title": "Rotate a leaked secret",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-rotate-leaked-secret.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "CEK-12",
      "identifier_title": "Key Rotation"
    },
    {
      "rule_id": "secrot",
      "rule_title": "Rotate a leaked secret",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-rotate-leaked-secret.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "CEK-19",
      "identifier_title": "Key Compromise"
    },
    {
      "rule_id": "secrot",
      "rule_title": "Rotate a leaked secret",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-rotate-leaked-secret.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "IAM-14",
      "identifier_title": "Credentials Management"
    },
    {
      "rule_id": "secau1",
      "rule_title": "Strong authentication",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authentication.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "IAM-13",
      "identifier_title": "Strong Authentication"
    },
    {
      "rule_id": "secau1",
      "rule_title": "Strong authentication",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authentication.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "IAM-14",
      "identifier_title": "Credentials Management"
    },
    {
      "rule_id": "secazn",
      "rule_title": "Least-privilege authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authorization.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "IAM-05",
      "identifier_title": "Least Privilege"
    },
    {
      "rule_id": "secazn",
      "rule_title": "Least-privilege authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authorization.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "IAM-15",
      "identifier_title": "Authorization Mechanisms"
    },
    {
      "rule_id": "seccry",
      "rule_title": "Sound cryptography",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-cryptography.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "CEK-03",
      "identifier_title": "Data Protection"
    },
    {
      "rule_id": "seccry",
      "rule_title": "Sound cryptography",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-cryptography.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "CEK-04",
      "identifier_title": "Encryption Algorithm"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "TVM-06",
      "identifier_title": "External Library Vulnerabilities"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "UEM-02",
      "identifier_title": "Application and Service Approval"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "STA-01",
      "identifier_title": "Supply Chain Risk Management Policies and Procedures"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "STA-08",
      "identifier_title": "Supply Chain Inventory"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "STA-09",
      "identifier_title": "Service Bill of Material (BOM)"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "STA-10",
      "identifier_title": "Supply Chain Risk Management"
    },
    {
      "rule_id": "secfid",
      "rule_title": "Validate federated identity and token flows",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-federated-identity-flow.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "IAM-13",
      "identifier_title": "Strong Authentication"
    },
    {
      "rule_id": "secfid",
      "rule_title": "Validate federated identity and token flows",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-federated-identity-flow.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "IAM-14",
      "identifier_title": "Credentials Management"
    },
    {
      "rule_id": "secfid",
      "rule_title": "Validate federated identity and token flows",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-federated-identity-flow.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "IAM-15",
      "identifier_title": "Authorization Mechanisms"
    },
    {
      "rule_id": "sechau",
      "rule_title": "Human authorization for consequential actions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-human-authorization.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "CCC-05",
      "identifier_title": "Change Agreements"
    },
    {
      "rule_id": "sechau",
      "rule_title": "Human authorization for consequential actions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-human-authorization.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "CCC-04",
      "identifier_title": "Unauthorized Change Protection"
    },
    {
      "rule_id": "secinp",
      "rule_title": "Validate external input at the boundary",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-input-validation.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "AIS-04",
      "identifier_title": "Secure Application Development Lifecycle"
    },
    {
      "rule_id": "secagt",
      "rule_title": "Trust between agents is earned, not inherited",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-inter-agent-trust.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "IAM-05",
      "identifier_title": "Least Privilege"
    },
    {
      "rule_id": "secagt",
      "rule_title": "Trust between agents is earned, not inherited",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-inter-agent-trust.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "IAM-12",
      "identifier_title": "Unique Identities"
    },
    {
      "rule_id": "secagt",
      "rule_title": "Trust between agents is earned, not inherited",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-inter-agent-trust.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "IAM-13",
      "identifier_title": "Strong Authentication"
    },
    {
      "rule_id": "secagt",
      "rule_title": "Trust between agents is earned, not inherited",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-inter-agent-trust.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "IAM-15",
      "identifier_title": "Authorization Mechanisms"
    },
    {
      "rule_id": "seckey",
      "rule_title": "Key management",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-key-management.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "CEK-01",
      "identifier_title": "Encryption and Key Management Policy and Procedures"
    },
    {
      "rule_id": "seckey",
      "rule_title": "Key management",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-key-management.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "CEK-10",
      "identifier_title": "Key Generation"
    },
    {
      "rule_id": "seckey",
      "rule_title": "Key management",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-key-management.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "CEK-11",
      "identifier_title": "Key Purpose"
    },
    {
      "rule_id": "seckey",
      "rule_title": "Key management",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-key-management.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "CEK-12",
      "identifier_title": "Key Rotation"
    },
    {
      "rule_id": "seckey",
      "rule_title": "Key management",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-key-management.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "CEK-13",
      "identifier_title": "Key Revocation"
    },
    {
      "rule_id": "seckey",
      "rule_title": "Key management",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-key-management.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "CEK-14",
      "identifier_title": "Key Destruction"
    },
    {
      "rule_id": "seckey",
      "rule_title": "Key management",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-key-management.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "CEK-21",
      "identifier_title": "Key Inventory Management"
    },
    {
      "rule_id": "seclpt",
      "rule_title": "Least-privilege tool and file access",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-least-privilege-tools.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "IAM-10",
      "identifier_title": "Management of Privileged Access Roles"
    },
    {
      "rule_id": "seclpt",
      "rule_title": "Least-privilege tool and file access",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-least-privilege-tools.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "UEM-02",
      "identifier_title": "Application and Service Approval"
    },
    {
      "rule_id": "seclpt",
      "rule_title": "Least-privilege tool and file access",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-least-privilege-tools.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "IAM-05",
      "identifier_title": "Least Privilege"
    },
    {
      "rule_id": "secred",
      "rule_title": "Redact sensitive content from logs",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-log-redaction.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "DSP-08",
      "identifier_title": "Data Privacy by Design and Default"
    },
    {
      "rule_id": "secred",
      "rule_title": "Redact sensitive content from logs",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-log-redaction.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "DSP-17",
      "identifier_title": "Sensitive Data Protection"
    },
    {
      "rule_id": "secred",
      "rule_title": "Redact sensitive content from logs",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-log-redaction.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "LOG-08",
      "identifier_title": "Audit Logs Sanitization"
    },
    {
      "rule_id": "secred",
      "rule_title": "Redact sensitive content from logs",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-log-redaction.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "LOG-09",
      "identifier_title": "Log Records"
    },
    {
      "rule_id": "secenc",
      "rule_title": "Encode output for its sink",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-encoding.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "AIS-04",
      "identifier_title": "Secure Application Development Lifecycle"
    },
    {
      "rule_id": "secout",
      "rule_title": "Generated output is untrusted input",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-handling.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "AIS-04",
      "identifier_title": "Secure Application Development Lifecycle"
    },
    {
      "rule_id": "secout",
      "rule_title": "Generated output is untrusted input",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-handling.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "AIS-05",
      "identifier_title": "Application Security Testing"
    },
    {
      "rule_id": "secaud",
      "rule_title": "Protect audit records from the actors they record",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-protect-audit-records.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "LOG-04",
      "identifier_title": "Audit Logs Access and Accountability"
    },
    {
      "rule_id": "secaud",
      "rule_title": "Protect audit records from the actors they record",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-protect-audit-records.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "LOG-02",
      "identifier_title": "Audit Logs Protection"
    },
    {
      "rule_id": "secaud",
      "rule_title": "Protect audit records from the actors they record",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-protect-audit-records.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "LOG-10",
      "identifier_title": "Audit Records Protection"
    },
    {
      "rule_id": "secvln",
      "rule_title": "Reject known-vulnerable dependency versions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-reject-vulnerable-versions.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "TVM-03",
      "identifier_title": "Vulnerability Identification"
    },
    {
      "rule_id": "secvln",
      "rule_title": "Reject known-vulnerable dependency versions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-reject-vulnerable-versions.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "TVM-06",
      "identifier_title": "External Library Vulnerabilities"
    },
    {
      "rule_id": "secdsz",
      "rule_title": "Deserialize untrusted data only as data",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-safe-deserialization.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "AIS-04",
      "identifier_title": "Secure Application Development Lifecycle"
    },
    {
      "rule_id": "seccfg",
      "rule_title": "Secure by default configuration",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-secure-configuration.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "CCC-06",
      "identifier_title": "Change Management Baseline"
    },
    {
      "rule_id": "seccfg",
      "rule_title": "Secure by default configuration",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-secure-configuration.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "CCC-07",
      "identifier_title": "Detection of Baseline Deviation"
    },
    {
      "rule_id": "seccfg",
      "rule_title": "Secure by default configuration",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-secure-configuration.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "AIS-02",
      "identifier_title": "Application Security Baseline Requirements"
    },
    {
      "rule_id": "seccfg",
      "rule_title": "Secure by default configuration",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-secure-configuration.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "I&S-04",
      "identifier_title": "OS Hardening and Base Controls"
    },
    {
      "rule_id": "seclog",
      "rule_title": "Security logging with traceable context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-security-logging.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "LOG-01",
      "identifier_title": "Logging and Monitoring Policy and Procedures"
    },
    {
      "rule_id": "seclog",
      "rule_title": "Security logging with traceable context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-security-logging.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "LOG-07",
      "identifier_title": "Logging Scope"
    },
    {
      "rule_id": "seclog",
      "rule_title": "Security logging with traceable context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-security-logging.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "LOG-09",
      "identifier_title": "Log Records"
    },
    {
      "rule_id": "seclog",
      "rule_title": "Security logging with traceable context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-security-logging.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "LOG-12",
      "identifier_title": "Transaction/Activity Logging"
    },
    {
      "rule_id": "seclog",
      "rule_title": "Security logging with traceable context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-security-logging.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "LOG-13",
      "identifier_title": "Access Control Logs"
    },
    {
      "rule_id": "sectok",
      "rule_title": "Secure session and token handling",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-session-token-management.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "CEK-03",
      "identifier_title": "Data Protection"
    },
    {
      "rule_id": "sectok",
      "rule_title": "Secure session and token handling",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-session-token-management.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "IAM-13",
      "identifier_title": "Strong Authentication"
    },
    {
      "rule_id": "sectok",
      "rule_title": "Secure session and token handling",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-session-token-management.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "IAM-14",
      "identifier_title": "Credentials Management"
    },
    {
      "rule_id": "secssr",
      "rule_title": "Validate server-initiated requests",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-ssrf-prevention.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "AIS-04",
      "identifier_title": "Secure Application Development Lifecycle"
    },
    {
      "rule_id": "secssr",
      "rule_title": "Validate server-initiated requests",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-ssrf-prevention.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "I&S-09",
      "identifier_title": "Network Defense"
    },
    {
      "rule_id": "secthm",
      "rule_title": "Threat-model new trust boundaries before implementation",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-threat-model-boundaries.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "TVM-04",
      "identifier_title": "Threat Analysis and Modelling"
    },
    {
      "rule_id": "sectvl",
      "rule_title": "Validate tool arguments before use",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-tool-argument-validation.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "AIS-04",
      "identifier_title": "Secure Application Development Lifecycle"
    },
    {
      "rule_id": "secunt",
      "rule_title": "Untrusted content is data, not instructions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-untrusted-content.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "AIS-04",
      "identifier_title": "Secure Application Development Lifecycle"
    },
    {
      "rule_id": "secunt",
      "rule_title": "Untrusted content is data, not instructions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-untrusted-content.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "TVM-02",
      "identifier_title": "Malware and Malicious Instructions Protection Policy and Procedures"
    },
    {
      "rule_id": "secvde",
      "rule_title": "Verify a dependency exists before adding it",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-verify-dependency-exists.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "STA-01",
      "identifier_title": "Supply Chain Risk Management Policies and Procedures"
    },
    {
      "rule_id": "secvde",
      "rule_title": "Verify a dependency exists before adding it",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-verify-dependency-exists.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "STA-03",
      "identifier_title": "SSRM Supply Chain"
    },
    {
      "rule_id": "secvde",
      "rule_title": "Verify a dependency exists before adding it",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-verify-dependency-exists.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "STA-09",
      "identifier_title": "Service Bill of Material (BOM)"
    },
    {
      "rule_id": "secvde",
      "rule_title": "Verify a dependency exists before adding it",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-verify-dependency-exists.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "TVM-06",
      "identifier_title": "External Library Vulnerabilities"
    },
    {
      "rule_id": "secvde",
      "rule_title": "Verify a dependency exists before adding it",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-verify-dependency-exists.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "UEM-02",
      "identifier_title": "Application and Service Approval"
    },
    {
      "rule_id": "secvde",
      "rule_title": "Verify a dependency exists before adding it",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-verify-dependency-exists.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "STA-08",
      "identifier_title": "Supply Chain Inventory"
    },
    {
      "rule_id": "secres",
      "rule_title": "Bounded consumption and safe failure",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECA-resource-bounds.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "I&S-02",
      "identifier_title": "Capacity and Resource Planning"
    },
    {
      "rule_id": "secrst",
      "rule_title": "A destructive operation requires a verified restore path",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECA-verified-restore-path.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "BCR-08",
      "identifier_title": "Backup"
    },
    {
      "rule_id": "secmin",
      "rule_title": "Minimize personal data sent to AI services",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-data-minimization.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "DSP-17",
      "identifier_title": "Sensitive Data Protection"
    },
    {
      "rule_id": "secmin",
      "rule_title": "Minimize personal data sent to AI services",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-data-minimization.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "DSP-08",
      "identifier_title": "Data Privacy by Design and Default"
    },
    {
      "rule_id": "secmin",
      "rule_title": "Minimize personal data sent to AI services",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-data-minimization.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "DSP-12",
      "identifier_title": "Limitation of Purpose in Personal Data Processing"
    },
    {
      "rule_id": "secdrr",
      "rule_title": "Honour residency, retention, and deletion",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-data-residency-retention.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "DSP-11",
      "identifier_title": "Personal Data Access, Reversal, Rectification and Deletion"
    },
    {
      "rule_id": "secdrr",
      "rule_title": "Honour residency, retention, and deletion",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-data-residency-retention.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "DSP-16",
      "identifier_title": "Data Retention and Deletion"
    },
    {
      "rule_id": "secdrr",
      "rule_title": "Honour residency, retention, and deletion",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-data-residency-retention.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "DSP-19",
      "identifier_title": "Data Location"
    },
    {
      "rule_id": "secpur",
      "rule_title": "Bind personal-data use to its authorized purpose",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-purpose-limitation.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "DSP-12",
      "identifier_title": "Limitation of Purpose in Personal Data Processing"
    },
    {
      "rule_id": "secsyn",
      "rule_title": "Fixtures and examples use synthetic data",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-synthetic-fixture-data.md",
      "framework": "csa-ccm",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "DSP-15",
      "identifier_title": "Limitation of Production Data Use"
    },
    {
      "rule_id": "clmobs",
      "rule_title": "Claims about the work rest on observation",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-ACCUR-claims-rest-on-observation.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.12",
      "identifier_title": "Transparency and explainability"
    },
    {
      "rule_id": "setcmp",
      "rule_title": "A completeness claim enumerates its set",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-ACCUR-completeness-claim-enumerates-its-set.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.12",
      "identifier_title": "Transparency and explainability"
    },
    {
      "rule_id": "evgcmp",
      "rule_title": "Evidence-grounded completion",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-ACCUR-evidence-grounded-completion.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.12",
      "identifier_title": "Transparency and explainability"
    },
    {
      "rule_id": "estsep",
      "rule_title": "Measured and estimated figures stay separate",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-ACCUR-measured-and-estimated-figures-stay-separate.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.12",
      "identifier_title": "Transparency and explainability"
    },
    {
      "rule_id": "nofabr",
      "rule_title": "No fabrication",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-ACCUR-no-fabrication.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.12",
      "identifier_title": "Transparency and explainability"
    },
    {
      "rule_id": "nofabr",
      "rule_title": "No fabrication",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-ACCUR-no-fabrication.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "B.5",
      "identifier_title": "Risk sources related to machine learning"
    },
    {
      "rule_id": "artbr1",
      "rule_title": "Branch and merge only on green",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-branch-and-merge-on-green.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.7",
      "identifier_title": "Maintainability"
    },
    {
      "rule_id": "artbr1",
      "rule_title": "Branch and merge only on green",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-branch-and-merge-on-green.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "B.7",
      "identifier_title": "System life cycle issues"
    },
    {
      "rule_id": "cmtidn",
      "rule_title": "Commit identity",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-commit-identity.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.2",
      "identifier_title": "Accountability"
    },
    {
      "rule_id": "nocncl",
      "rule_title": "No concealed failure",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-no-concealed-failure.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.12",
      "identifier_title": "Transparency and explainability"
    },
    {
      "rule_id": "nocncl",
      "rule_title": "No concealed failure",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-no-concealed-failure.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "6.7",
      "identifier_title": "Recording and reporting"
    },
    {
      "rule_id": "prtbrn",
      "rule_title": "Protected-branch integrity",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-protected-branch-integrity.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.7",
      "identifier_title": "Maintainability"
    },
    {
      "rule_id": "prtbrn",
      "rule_title": "Protected-branch integrity",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-protected-branch-integrity.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "B.7",
      "identifier_title": "System life cycle issues"
    },
    {
      "rule_id": "trkasy",
      "rule_title": "A launched task stays observable",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-track-launched-work.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "6.7",
      "identifier_title": "Recording and reporting"
    },
    {
      "rule_id": "wowo01",
      "rule_title": "Workers produce inert data",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-workers-produce-inert-data.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.2",
      "identifier_title": "Accountability"
    },
    {
      "rule_id": "wowo01",
      "rule_title": "Workers produce inert data",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-workers-produce-inert-data.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "B.4",
      "identifier_title": "Level of automation"
    },
    {
      "rule_id": "dfdpth",
      "rule_title": "Defence in depth by default",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-defence-in-depth-default.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.11",
      "identifier_title": "Security"
    },
    {
      "rule_id": "mtchcd",
      "rule_title": "Match the surrounding code",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-match-surrounding-code.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.7",
      "identifier_title": "Maintainability"
    },
    {
      "rule_id": "smlcng",
      "rule_title": "Prefer the smallest correct change",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-smallest-correct-change.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.7",
      "identifier_title": "Maintainability"
    },
    {
      "rule_id": "srfcp1",
      "rule_title": "Surface a counterproductive instruction before executing it",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-surface-counterproductive-instructions.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "6.2",
      "identifier_title": "Communication and consultation"
    },
    {
      "rule_id": "srfcp1",
      "rule_title": "Surface a counterproductive instruction before executing it",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-surface-counterproductive-instructions.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.2",
      "identifier_title": "Accountability"
    },
    {
      "rule_id": "asadv1",
      "rule_title": "Assess and advise are discussion only",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-assess-advise-discussion-only.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.2",
      "identifier_title": "Accountability"
    },
    {
      "rule_id": "asadv1",
      "rule_title": "Assess and advise are discussion only",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-assess-advise-discussion-only.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "B.4",
      "identifier_title": "Level of automation"
    },
    {
      "rule_id": "chtrk1",
      "rule_title": "Change record",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-change-record.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "6.7",
      "identifier_title": "Recording and reporting"
    },
    {
      "rule_id": "clrfy1",
      "rule_title": "Clarify before acting",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-clarify-before-acting.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "6.2",
      "identifier_title": "Communication and consultation"
    },
    {
      "rule_id": "cntdef",
      "rule_title": "Continue by default",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-continue-by-default.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "B.4",
      "identifier_title": "Level of automation"
    },
    {
      "rule_id": "exauth",
      "rule_title": "Express authorization before execution",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-express-authorization-before-execution.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.2",
      "identifier_title": "Accountability"
    },
    {
      "rule_id": "exauth",
      "rule_title": "Express authorization before execution",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-express-authorization-before-execution.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "B.4",
      "identifier_title": "Level of automation"
    },
    {
      "rule_id": "humovs",
      "rule_title": "Human oversight and the autonomy threshold",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-human-oversight-and-autonomy-threshold.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.2",
      "identifier_title": "Accountability"
    },
    {
      "rule_id": "humovs",
      "rule_title": "Human oversight and the autonomy threshold",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-human-oversight-and-autonomy-threshold.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.10",
      "identifier_title": "Safety"
    },
    {
      "rule_id": "humovs",
      "rule_title": "Human oversight and the autonomy threshold",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-human-oversight-and-autonomy-threshold.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "B.4",
      "identifier_title": "Level of automation"
    },
    {
      "rule_id": "recfst",
      "rule_title": "Records first",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-records-first.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "6.7",
      "identifier_title": "Recording and reporting"
    },
    {
      "rule_id": "trstre",
      "rule_title": "Trust recovery and escalation",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-trust-recovery-escalation.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.2",
      "identifier_title": "Accountability"
    },
    {
      "rule_id": "trstre",
      "rule_title": "Trust recovery and escalation",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-trust-recovery-escalation.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.12",
      "identifier_title": "Transparency and explainability"
    },
    {
      "rule_id": "trsrcv",
      "rule_title": "Autonomy steps down after a confirmed trust loss",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-trust-recovery-ext.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.2",
      "identifier_title": "Accountability"
    },
    {
      "rule_id": "deccls",
      "rule_title": "Decision classification before enacting",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/20-PROGR-decision-classification-before-enacting.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "A.2",
      "identifier_title": "Accountability"
    },
    {
      "rule_id": "deccls",
      "rule_title": "Decision classification before enacting",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/20-PROGR-decision-classification-before-enacting.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "B.4",
      "identifier_title": "Level of automation"
    },
    {
      "rule_id": "secsec",
      "rule_title": "Keep secrets out",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-keep-secrets-out.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.11",
      "identifier_title": "Security"
    },
    {
      "rule_id": "seclpr",
      "rule_title": "Retrieval enforces the requester's authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-least-privilege-retrieval.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.8",
      "identifier_title": "Privacy"
    },
    {
      "rule_id": "seclpr",
      "rule_title": "Retrieval enforces the requester's authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-least-privilege-retrieval.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.11",
      "identifier_title": "Security"
    },
    {
      "rule_id": "secncb",
      "rule_title": "No cross-context bleed",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-no-cross-context-bleed.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.8",
      "identifier_title": "Privacy"
    },
    {
      "rule_id": "secncb",
      "rule_title": "No cross-context bleed",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-no-cross-context-bleed.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.11",
      "identifier_title": "Security"
    },
    {
      "rule_id": "secndc",
      "rule_title": "No disclosure of secrets or hidden context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-no-hidden-context-disclosure.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.8",
      "identifier_title": "Privacy"
    },
    {
      "rule_id": "secndc",
      "rule_title": "No disclosure of secrets or hidden context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-no-hidden-context-disclosure.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.11",
      "identifier_title": "Security"
    },
    {
      "rule_id": "secrot",
      "rule_title": "Rotate a leaked secret",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-rotate-leaked-secret.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.11",
      "identifier_title": "Security"
    },
    {
      "rule_id": "secau1",
      "rule_title": "Strong authentication",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authentication.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.11",
      "identifier_title": "Security"
    },
    {
      "rule_id": "secazn",
      "rule_title": "Least-privilege authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authorization.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.11",
      "identifier_title": "Security"
    },
    {
      "rule_id": "seccry",
      "rule_title": "Sound cryptography",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-cryptography.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.8",
      "identifier_title": "Privacy"
    },
    {
      "rule_id": "seccry",
      "rule_title": "Sound cryptography",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-cryptography.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.11",
      "identifier_title": "Security"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.11",
      "identifier_title": "Security"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "B.5",
      "identifier_title": "Risk sources related to machine learning"
    },
    {
      "rule_id": "sechau",
      "rule_title": "Human authorization for consequential actions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-human-authorization.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.2",
      "identifier_title": "Accountability"
    },
    {
      "rule_id": "sechau",
      "rule_title": "Human authorization for consequential actions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-human-authorization.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.10",
      "identifier_title": "Safety"
    },
    {
      "rule_id": "sechau",
      "rule_title": "Human authorization for consequential actions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-human-authorization.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "B.4",
      "identifier_title": "Level of automation"
    },
    {
      "rule_id": "secinp",
      "rule_title": "Validate external input at the boundary",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-input-validation.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.9",
      "identifier_title": "Robustness"
    },
    {
      "rule_id": "secinp",
      "rule_title": "Validate external input at the boundary",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-input-validation.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.11",
      "identifier_title": "Security"
    },
    {
      "rule_id": "secagt",
      "rule_title": "Trust between agents is earned, not inherited",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-inter-agent-trust.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.11",
      "identifier_title": "Security"
    },
    {
      "rule_id": "seckey",
      "rule_title": "Key management",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-key-management.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.11",
      "identifier_title": "Security"
    },
    {
      "rule_id": "seclpt",
      "rule_title": "Least-privilege tool and file access",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-least-privilege-tools.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.11",
      "identifier_title": "Security"
    },
    {
      "rule_id": "secred",
      "rule_title": "Redact sensitive content from logs",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-log-redaction.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.8",
      "identifier_title": "Privacy"
    },
    {
      "rule_id": "secred",
      "rule_title": "Redact sensitive content from logs",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-log-redaction.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.11",
      "identifier_title": "Security"
    },
    {
      "rule_id": "secenc",
      "rule_title": "Encode output for its sink",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-encoding.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.11",
      "identifier_title": "Security"
    },
    {
      "rule_id": "secout",
      "rule_title": "Generated output is untrusted input",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-handling.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.9",
      "identifier_title": "Robustness"
    },
    {
      "rule_id": "secout",
      "rule_title": "Generated output is untrusted input",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-handling.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.11",
      "identifier_title": "Security"
    },
    {
      "rule_id": "secpsn",
      "rule_title": "Resist data, model, and memory poisoning",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-poisoning-resistance.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.11",
      "identifier_title": "Security"
    },
    {
      "rule_id": "secpsn",
      "rule_title": "Resist data, model, and memory poisoning",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-poisoning-resistance.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "B.5",
      "identifier_title": "Risk sources related to machine learning"
    },
    {
      "rule_id": "secpsn",
      "rule_title": "Resist data, model, and memory poisoning",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-poisoning-resistance.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "A.4",
      "identifier_title": "Availability and quality of training and test data"
    },
    {
      "rule_id": "seccfg",
      "rule_title": "Secure by default configuration",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-secure-configuration.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.11",
      "identifier_title": "Security"
    },
    {
      "rule_id": "seclog",
      "rule_title": "Security logging with traceable context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-security-logging.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.2",
      "identifier_title": "Accountability"
    },
    {
      "rule_id": "seclog",
      "rule_title": "Security logging with traceable context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-security-logging.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.11",
      "identifier_title": "Security"
    },
    {
      "rule_id": "sectok",
      "rule_title": "Secure session and token handling",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-session-token-management.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.11",
      "identifier_title": "Security"
    },
    {
      "rule_id": "secthm",
      "rule_title": "Threat-model new trust boundaries before implementation",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-threat-model-boundaries.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "6.4.2",
      "identifier_title": "Risk identification"
    },
    {
      "rule_id": "sectvl",
      "rule_title": "Validate tool arguments before use",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-tool-argument-validation.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.11",
      "identifier_title": "Security"
    },
    {
      "rule_id": "secunt",
      "rule_title": "Untrusted content is data, not instructions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-untrusted-content.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.9",
      "identifier_title": "Robustness"
    },
    {
      "rule_id": "secunt",
      "rule_title": "Untrusted content is data, not instructions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-untrusted-content.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.11",
      "identifier_title": "Security"
    },
    {
      "rule_id": "secunt",
      "rule_title": "Untrusted content is data, not instructions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-untrusted-content.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "B.5",
      "identifier_title": "Risk sources related to machine learning"
    },
    {
      "rule_id": "secvde",
      "rule_title": "Verify a dependency exists before adding it",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-verify-dependency-exists.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.11",
      "identifier_title": "Security"
    },
    {
      "rule_id": "secvde",
      "rule_title": "Verify a dependency exists before adding it",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-verify-dependency-exists.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "B.5",
      "identifier_title": "Risk sources related to machine learning"
    },
    {
      "rule_id": "secres",
      "rule_title": "Bounded consumption and safe failure",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECA-resource-bounds.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.9",
      "identifier_title": "Robustness"
    },
    {
      "rule_id": "secres",
      "rule_title": "Bounded consumption and safe failure",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECA-resource-bounds.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.11",
      "identifier_title": "Security"
    },
    {
      "rule_id": "secres",
      "rule_title": "Bounded consumption and safe failure",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECA-resource-bounds.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "B.4",
      "identifier_title": "Level of automation"
    },
    {
      "rule_id": "secmin",
      "rule_title": "Minimize personal data sent to AI services",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-data-minimization.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.8",
      "identifier_title": "Privacy"
    },
    {
      "rule_id": "secdrr",
      "rule_title": "Honour residency, retention, and deletion",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-data-residency-retention.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.8",
      "identifier_title": "Privacy"
    },
    {
      "rule_id": "secpur",
      "rule_title": "Bind personal-data use to its authorized purpose",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-purpose-limitation.md",
      "framework": "iso-23894",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "A.8",
      "identifier_title": "Privacy"
    },
    {
      "rule_id": "refcap",
      "rule_title": "Capture the reference when the claim is made",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-ACCUR-reference-capture.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "A.7.5",
      "identifier_title": "Data provenance"
    },
    {
      "rule_id": "artbr1",
      "rule_title": "Branch and merge only on green",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-branch-and-merge-on-green.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "A.6.1.3",
      "identifier_title": "Processes for responsible design and development of AI systems"
    },
    {
      "rule_id": "brnrot",
      "rule_title": "Cut branches from the live protected line and re-home after a rewrite",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-branch-rooted-on-live-main.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "A.6.1.3",
      "identifier_title": "Processes for responsible design and development of AI systems"
    },
    {
      "rule_id": "cmtidn",
      "rule_title": "Commit identity",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-commit-identity.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "A.3.2",
      "identifier_title": "AI roles and responsibilities"
    },
    {
      "rule_id": "gatdis",
      "rule_title": "Gate discipline",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-gate-discipline.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "A.6.2.4",
      "identifier_title": "AI system verification and validation"
    },
    {
      "rule_id": "nocncl",
      "rule_title": "No concealed failure",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-no-concealed-failure.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "A.6.2.4",
      "identifier_title": "AI system verification and validation"
    },
    {
      "rule_id": "prtbrn",
      "rule_title": "Protected-branch integrity",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-protected-branch-integrity.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "A.6.1.3",
      "identifier_title": "Processes for responsible design and development of AI systems"
    },
    {
      "rule_id": "reqstp",
      "rule_title": "A required step remains required under friction",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-required-step-remains-required.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "10.2",
      "identifier_title": "Nonconformity and corrective action"
    },
    {
      "rule_id": "rerunf",
      "rule_title": "A rerun pass does not erase an earlier failure",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-rerun-pass-is-still-failure.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "A.6.2.4",
      "identifier_title": "AI system verification and validation"
    },
    {
      "rule_id": "trkasy",
      "rule_title": "A launched task stays observable",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-track-launched-work.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "A.6.2.6",
      "identifier_title": "AI system operation and monitoring"
    },
    {
      "rule_id": "valgat",
      "rule_title": "Validation is a gate on apply",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-validation-gates-apply.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "A.6.2.4",
      "identifier_title": "AI system verification and validation"
    },
    {
      "rule_id": "wowo01",
      "rule_title": "Workers produce inert data",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-workers-produce-inert-data.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "A.6.1.3",
      "identifier_title": "Processes for responsible design and development of AI systems"
    },
    {
      "rule_id": "chgchk",
      "rule_title": "A behavioural change carries a check that fails without it",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-change-carries-check.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "A.6.2.4",
      "identifier_title": "AI system verification and validation"
    },
    {
      "rule_id": "fndfix",
      "rule_title": "A verification finding is fixed, not argued away",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-findings-are-fixed-not-argued.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "A.6.2.4",
      "identifier_title": "AI system verification and validation"
    },
    {
      "rule_id": "hiasrv",
      "rule_title": "High-assurance verification",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-high-assurance-verification.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "A.6.2.4",
      "identifier_title": "AI system verification and validation"
    },
    {
      "rule_id": "lvw001",
      "rule_title": "Isolate verifiers and judge by their result signal",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-lightweight-verifier-workers.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "A.6.2.4",
      "identifier_title": "AI system verification and validation"
    },
    {
      "rule_id": "slfgrd",
      "rule_title": "Propose a guardrail when an error reveals a gap",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-self-guardrail-from-error.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "10.2",
      "identifier_title": "Nonconformity and corrective action"
    },
    {
      "rule_id": "srfcp1",
      "rule_title": "Surface a counterproductive instruction before executing it",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-surface-counterproductive-instructions.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "A.3.3",
      "identifier_title": "Reporting of concerns"
    },
    {
      "rule_id": "tsthrm",
      "rule_title": "A test's verdict comes from the code, not its surroundings",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-test-hermeticity.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "A.6.2.4",
      "identifier_title": "AI system verification and validation"
    },
    {
      "rule_id": "vrfdiv",
      "rule_title": "Verifier diversity",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-verifier-diversity.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "A.6.2.4",
      "identifier_title": "AI system verification and validation"
    },
    {
      "rule_id": "aitreg",
      "rule_title": "Maintain an AI toolchain register",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-ai-toolchain-register.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "A.4.4",
      "identifier_title": "Tooling resources"
    },
    {
      "rule_id": "asadv1",
      "rule_title": "Assess and advise are discussion only",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-assess-advise-discussion-only.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "A.9.2",
      "identifier_title": "Processes for responsible use of AI systems"
    },
    {
      "rule_id": "chtrk1",
      "rule_title": "Change record",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-change-record.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "7.5.2",
      "identifier_title": "Creating and updating documented information"
    },
    {
      "rule_id": "chtrk1",
      "rule_title": "Change record",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-change-record.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "7.5.3",
      "identifier_title": "Control of documented information"
    },
    {
      "rule_id": "chgtrk",
      "rule_title": "Change record has a curated public face",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-change-tracking-ext.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "A.8.5",
      "identifier_title": "Information for interested parties"
    },
    {
      "rule_id": "exauth",
      "rule_title": "Express authorization before execution",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-express-authorization-before-execution.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "A.9.2",
      "identifier_title": "Processes for responsible use of AI systems"
    },
    {
      "rule_id": "humovs",
      "rule_title": "Human oversight and the autonomy threshold",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-human-oversight-and-autonomy-threshold.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "A.3.2",
      "identifier_title": "AI roles and responsibilities"
    },
    {
      "rule_id": "humovs",
      "rule_title": "Human oversight and the autonomy threshold",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-human-oversight-and-autonomy-threshold.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "A.9.2",
      "identifier_title": "Processes for responsible use of AI systems"
    },
    {
      "rule_id": "recfst",
      "rule_title": "Records first",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-records-first.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "7.5.2",
      "identifier_title": "Creating and updating documented information"
    },
    {
      "rule_id": "recfst",
      "rule_title": "Records first",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-records-first.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "7.5.3",
      "identifier_title": "Control of documented information"
    },
    {
      "rule_id": "sescls",
      "rule_title": "Close each session on green",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-session-close-on-green.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "8.1",
      "identifier_title": "Operational planning and control"
    },
    {
      "rule_id": "sesres",
      "rule_title": "Resume from the durable handoff",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-session-resume-from-handoff.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "8.1",
      "identifier_title": "Operational planning and control"
    },
    {
      "rule_id": "deccls",
      "rule_title": "Decision classification before enacting",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/20-PROGR-decision-classification-before-enacting.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "A.9.2",
      "identifier_title": "Processes for responsible use of AI systems"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "A.4.4",
      "identifier_title": "Tooling resources"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "A.10.3",
      "identifier_title": "Suppliers"
    },
    {
      "rule_id": "sechau",
      "rule_title": "Human authorization for consequential actions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-human-authorization.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "A.9.2",
      "identifier_title": "Processes for responsible use of AI systems"
    },
    {
      "rule_id": "secred",
      "rule_title": "Redact sensitive content from logs",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-log-redaction.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "A.6.2.8",
      "identifier_title": "AI system recording of event logs"
    },
    {
      "rule_id": "secpsn",
      "rule_title": "Resist data, model, and memory poisoning",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-poisoning-resistance.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "A.7.3",
      "identifier_title": "Acquisition of data"
    },
    {
      "rule_id": "secpsn",
      "rule_title": "Resist data, model, and memory poisoning",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-poisoning-resistance.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "A.7.4",
      "identifier_title": "Quality of data for AI systems"
    },
    {
      "rule_id": "seclog",
      "rule_title": "Security logging with traceable context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-security-logging.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "A.6.2.8",
      "identifier_title": "AI system recording of event logs"
    },
    {
      "rule_id": "secres",
      "rule_title": "Bounded consumption and safe failure",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECA-resource-bounds.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "A.6.2.6",
      "identifier_title": "AI system operation and monitoring"
    },
    {
      "rule_id": "secmin",
      "rule_title": "Minimize personal data sent to AI services",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-data-minimization.md",
      "framework": "iso-42001",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "A.7.6",
      "identifier_title": "Data preparation"
    },
    {
      "rule_id": "corrob",
      "rule_title": "Corroborate external claims",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-ACCUR-corroborate-external-claims.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0067.000",
      "identifier_title": "Citations"
    },
    {
      "rule_id": "wowo01",
      "rule_title": "Workers produce inert data",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-workers-produce-inert-data.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0053",
      "identifier_title": "AI Agent Tool Invocation"
    },
    {
      "rule_id": "humovs",
      "rule_title": "Human oversight and the autonomy threshold",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-human-oversight-and-autonomy-threshold.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0053",
      "identifier_title": "AI Agent Tool Invocation"
    },
    {
      "rule_id": "humovs",
      "rule_title": "Human oversight and the autonomy threshold",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-human-oversight-and-autonomy-threshold.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0086",
      "identifier_title": "Exfiltration via AI Agent Tool Invocation"
    },
    {
      "rule_id": "humovs",
      "rule_title": "Human oversight and the autonomy threshold",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-human-oversight-and-autonomy-threshold.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0101",
      "identifier_title": "Data Destruction via AI Agent Tool Invocation"
    },
    {
      "rule_id": "secegr",
      "rule_title": "Egress goes only to expected destinations",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-egress-destinations.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0025",
      "identifier_title": "Exfiltration via Cyber Means"
    },
    {
      "rule_id": "secegr",
      "rule_title": "Egress goes only to expected destinations",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-egress-destinations.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0086",
      "identifier_title": "Exfiltration via AI Agent Tool Invocation"
    },
    {
      "rule_id": "secsec",
      "rule_title": "Keep secrets out",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-keep-secrets-out.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0082",
      "identifier_title": "RAG Credential Harvesting"
    },
    {
      "rule_id": "secsec",
      "rule_title": "Keep secrets out",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-keep-secrets-out.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0083",
      "identifier_title": "Credentials from AI Agent Configuration"
    },
    {
      "rule_id": "secsec",
      "rule_title": "Keep secrets out",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-keep-secrets-out.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0098",
      "identifier_title": "AI Agent Tool Credential Harvesting"
    },
    {
      "rule_id": "secsec",
      "rule_title": "Keep secrets out",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-keep-secrets-out.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0055",
      "identifier_title": "Unsecured Credentials"
    },
    {
      "rule_id": "secsec",
      "rule_title": "Keep secrets out",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-keep-secrets-out.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0095.000",
      "identifier_title": "Code Repositories"
    },
    {
      "rule_id": "seclpr",
      "rule_title": "Retrieval enforces the requester's authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-least-privilege-retrieval.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0053",
      "identifier_title": "AI Agent Tool Invocation"
    },
    {
      "rule_id": "seclpr",
      "rule_title": "Retrieval enforces the requester's authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-least-privilege-retrieval.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0082",
      "identifier_title": "RAG Credential Harvesting"
    },
    {
      "rule_id": "seclpr",
      "rule_title": "Retrieval enforces the requester's authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-least-privilege-retrieval.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0085",
      "identifier_title": "Data from AI Services"
    },
    {
      "rule_id": "secncb",
      "rule_title": "No cross-context bleed",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-no-cross-context-bleed.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0057",
      "identifier_title": "LLM Data Leakage"
    },
    {
      "rule_id": "secncb",
      "rule_title": "No cross-context bleed",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-no-cross-context-bleed.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0080",
      "identifier_title": "AI Agent Context Poisoning"
    },
    {
      "rule_id": "secndc",
      "rule_title": "No disclosure of secrets or hidden context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-no-hidden-context-disclosure.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0082",
      "identifier_title": "RAG Credential Harvesting"
    },
    {
      "rule_id": "secndc",
      "rule_title": "No disclosure of secrets or hidden context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-no-hidden-context-disclosure.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0098",
      "identifier_title": "AI Agent Tool Credential Harvesting"
    },
    {
      "rule_id": "secndc",
      "rule_title": "No disclosure of secrets or hidden context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-no-hidden-context-disclosure.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0056",
      "identifier_title": "Extract LLM System Prompt"
    },
    {
      "rule_id": "secndc",
      "rule_title": "No disclosure of secrets or hidden context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-no-hidden-context-disclosure.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0057",
      "identifier_title": "LLM Data Leakage"
    },
    {
      "rule_id": "secndc",
      "rule_title": "No disclosure of secrets or hidden context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-no-hidden-context-disclosure.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0069",
      "identifier_title": "Discover LLM System Information"
    },
    {
      "rule_id": "secndc",
      "rule_title": "No disclosure of secrets or hidden context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-no-hidden-context-disclosure.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0084",
      "identifier_title": "Discover AI Agent Configuration"
    },
    {
      "rule_id": "secrot",
      "rule_title": "Rotate a leaked secret",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-rotate-leaked-secret.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0012",
      "identifier_title": "Valid Accounts"
    },
    {
      "rule_id": "secrot",
      "rule_title": "Rotate a leaked secret",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-rotate-leaked-secret.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0091.000",
      "identifier_title": "Application Access Token"
    },
    {
      "rule_id": "secrot",
      "rule_title": "Rotate a leaked secret",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-rotate-leaked-secret.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0091.001",
      "identifier_title": "Web Session Cookie"
    },
    {
      "rule_id": "secau1",
      "rule_title": "Strong authentication",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authentication.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0012",
      "identifier_title": "Valid Accounts"
    },
    {
      "rule_id": "secau1",
      "rule_title": "Strong authentication",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authentication.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0055",
      "identifier_title": "Unsecured Credentials"
    },
    {
      "rule_id": "secazn",
      "rule_title": "Least-privilege authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authorization.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0053",
      "identifier_title": "AI Agent Tool Invocation"
    },
    {
      "rule_id": "secazn",
      "rule_title": "Least-privilege authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authorization.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0082",
      "identifier_title": "RAG Credential Harvesting"
    },
    {
      "rule_id": "secazn",
      "rule_title": "Least-privilege authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authorization.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0085",
      "identifier_title": "Data from AI Services"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0018.002",
      "identifier_title": "Embed Malware"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0111",
      "identifier_title": "AI Supply Chain Reputation Inflation"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0112.001",
      "identifier_title": "AI Artifacts"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0010.001",
      "identifier_title": "AI Software"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0010.003",
      "identifier_title": "Model"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0010.005",
      "identifier_title": "AI Agent Tool"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0011.000",
      "identifier_title": "Unsafe AI Artifacts"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0011.001",
      "identifier_title": "Malicious Package"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0011.002",
      "identifier_title": "Poisoned AI Agent Tool"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0104",
      "identifier_title": "Publish Poisoned AI Agent Tool"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0109",
      "identifier_title": "AI Supply Chain Rug Pull"
    },
    {
      "rule_id": "sechau",
      "rule_title": "Human authorization for consequential actions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-human-authorization.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0053",
      "identifier_title": "AI Agent Tool Invocation"
    },
    {
      "rule_id": "sechau",
      "rule_title": "Human authorization for consequential actions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-human-authorization.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0086",
      "identifier_title": "Exfiltration via AI Agent Tool Invocation"
    },
    {
      "rule_id": "sechau",
      "rule_title": "Human authorization for consequential actions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-human-authorization.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0081",
      "identifier_title": "Modify AI Agent Configuration"
    },
    {
      "rule_id": "sechau",
      "rule_title": "Human authorization for consequential actions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-human-authorization.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0101",
      "identifier_title": "Data Destruction via AI Agent Tool Invocation"
    },
    {
      "rule_id": "secinp",
      "rule_title": "Validate external input at the boundary",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-input-validation.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0049",
      "identifier_title": "Exploit Public-Facing Application"
    },
    {
      "rule_id": "secinp",
      "rule_title": "Validate external input at the boundary",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-input-validation.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0050",
      "identifier_title": "Command and Scripting Interpreter"
    },
    {
      "rule_id": "secagt",
      "rule_title": "Trust between agents is earned, not inherited",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-inter-agent-trust.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0051.001",
      "identifier_title": "Indirect"
    },
    {
      "rule_id": "secagt",
      "rule_title": "Trust between agents is earned, not inherited",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-inter-agent-trust.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0053",
      "identifier_title": "AI Agent Tool Invocation"
    },
    {
      "rule_id": "secagt",
      "rule_title": "Trust between agents is earned, not inherited",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-inter-agent-trust.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0073",
      "identifier_title": "Impersonation"
    },
    {
      "rule_id": "seckey",
      "rule_title": "Key management",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-key-management.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0012",
      "identifier_title": "Valid Accounts"
    },
    {
      "rule_id": "seckey",
      "rule_title": "Key management",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-key-management.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0055",
      "identifier_title": "Unsecured Credentials"
    },
    {
      "rule_id": "seclpt",
      "rule_title": "Least-privilege tool and file access",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-least-privilege-tools.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0053",
      "identifier_title": "AI Agent Tool Invocation"
    },
    {
      "rule_id": "seclpt",
      "rule_title": "Least-privilege tool and file access",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-least-privilege-tools.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0086",
      "identifier_title": "Exfiltration via AI Agent Tool Invocation"
    },
    {
      "rule_id": "seclpt",
      "rule_title": "Least-privilege tool and file access",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-least-privilege-tools.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0098",
      "identifier_title": "AI Agent Tool Credential Harvesting"
    },
    {
      "rule_id": "seclpt",
      "rule_title": "Least-privilege tool and file access",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-least-privilege-tools.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0101",
      "identifier_title": "Data Destruction via AI Agent Tool Invocation"
    },
    {
      "rule_id": "seclpt",
      "rule_title": "Least-privilege tool and file access",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-least-privilege-tools.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0112.000",
      "identifier_title": "Local AI Agent"
    },
    {
      "rule_id": "secred",
      "rule_title": "Redact sensitive content from logs",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-log-redaction.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0055",
      "identifier_title": "Unsecured Credentials"
    },
    {
      "rule_id": "secred",
      "rule_title": "Redact sensitive content from logs",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-log-redaction.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0063",
      "identifier_title": "Discover AI Model Outputs"
    },
    {
      "rule_id": "secenc",
      "rule_title": "Encode output for its sink",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-encoding.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0050",
      "identifier_title": "Command and Scripting Interpreter"
    },
    {
      "rule_id": "secenc",
      "rule_title": "Encode output for its sink",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-encoding.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0113",
      "identifier_title": "Steal Web Session Cookie"
    },
    {
      "rule_id": "secenc",
      "rule_title": "Encode output for its sink",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-encoding.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0077",
      "identifier_title": "LLM Response Rendering"
    },
    {
      "rule_id": "secout",
      "rule_title": "Generated output is untrusted input",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-handling.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0050",
      "identifier_title": "Command and Scripting Interpreter"
    },
    {
      "rule_id": "secout",
      "rule_title": "Generated output is untrusted input",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-handling.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0077",
      "identifier_title": "LLM Response Rendering"
    },
    {
      "rule_id": "secout",
      "rule_title": "Generated output is untrusted input",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-handling.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0102",
      "identifier_title": "Generate Malicious Commands"
    },
    {
      "rule_id": "secpin",
      "rule_title": "Referenced instructions are pinned and re-verified",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-pin-referenced-instructions.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0010",
      "identifier_title": "AI Supply Chain Compromise"
    },
    {
      "rule_id": "secpin",
      "rule_title": "Referenced instructions are pinned and re-verified",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-pin-referenced-instructions.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0051",
      "identifier_title": "LLM Prompt Injection"
    },
    {
      "rule_id": "secpsn",
      "rule_title": "Resist data, model, and memory poisoning",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-poisoning-resistance.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0010.002",
      "identifier_title": "Data"
    },
    {
      "rule_id": "secpsn",
      "rule_title": "Resist data, model, and memory poisoning",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-poisoning-resistance.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0066",
      "identifier_title": "Retrieval Content Crafting"
    },
    {
      "rule_id": "secpsn",
      "rule_title": "Resist data, model, and memory poisoning",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-poisoning-resistance.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0018.000",
      "identifier_title": "Poison AI Model"
    },
    {
      "rule_id": "secpsn",
      "rule_title": "Resist data, model, and memory poisoning",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-poisoning-resistance.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0020",
      "identifier_title": "Poison Training Data"
    },
    {
      "rule_id": "secpsn",
      "rule_title": "Resist data, model, and memory poisoning",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-poisoning-resistance.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0059",
      "identifier_title": "Erode Dataset Integrity"
    },
    {
      "rule_id": "secpsn",
      "rule_title": "Resist data, model, and memory poisoning",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-poisoning-resistance.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0070",
      "identifier_title": "RAG Poisoning"
    },
    {
      "rule_id": "secpsn",
      "rule_title": "Resist data, model, and memory poisoning",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-poisoning-resistance.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0071",
      "identifier_title": "False RAG Entry Injection"
    },
    {
      "rule_id": "secpsn",
      "rule_title": "Resist data, model, and memory poisoning",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-poisoning-resistance.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0080",
      "identifier_title": "AI Agent Context Poisoning"
    },
    {
      "rule_id": "secpsn",
      "rule_title": "Resist data, model, and memory poisoning",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-poisoning-resistance.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0099",
      "identifier_title": "AI Agent Tool Data Poisoning"
    },
    {
      "rule_id": "secpth",
      "rule_title": "Higher-trust instructions outrank lower-trust ones",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-prompt-trust-hierarchy.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0051",
      "identifier_title": "LLM Prompt Injection"
    },
    {
      "rule_id": "secpth",
      "rule_title": "Higher-trust instructions outrank lower-trust ones",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-prompt-trust-hierarchy.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0054",
      "identifier_title": "LLM Jailbreak"
    },
    {
      "rule_id": "seccfg",
      "rule_title": "Secure by default configuration",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-secure-configuration.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0049",
      "identifier_title": "Exploit Public-Facing Application"
    },
    {
      "rule_id": "seccfg",
      "rule_title": "Secure by default configuration",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-secure-configuration.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0063",
      "identifier_title": "Discover AI Model Outputs"
    },
    {
      "rule_id": "sectok",
      "rule_title": "Secure session and token handling",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-session-token-management.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0055",
      "identifier_title": "Unsecured Credentials"
    },
    {
      "rule_id": "sectok",
      "rule_title": "Secure session and token handling",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-session-token-management.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0091.000",
      "identifier_title": "Application Access Token"
    },
    {
      "rule_id": "sectok",
      "rule_title": "Secure session and token handling",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-session-token-management.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0091.001",
      "identifier_title": "Web Session Cookie"
    },
    {
      "rule_id": "sectok",
      "rule_title": "Secure session and token handling",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-session-token-management.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0113",
      "identifier_title": "Steal Web Session Cookie"
    },
    {
      "rule_id": "sectvl",
      "rule_title": "Validate tool arguments before use",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-tool-argument-validation.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0050",
      "identifier_title": "Command and Scripting Interpreter"
    },
    {
      "rule_id": "sectvl",
      "rule_title": "Validate tool arguments before use",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-tool-argument-validation.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0102",
      "identifier_title": "Generate Malicious Commands"
    },
    {
      "rule_id": "secunt",
      "rule_title": "Untrusted content is data, not instructions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-untrusted-content.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0068",
      "identifier_title": "LLM Prompt Obfuscation"
    },
    {
      "rule_id": "secunt",
      "rule_title": "Untrusted content is data, not instructions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-untrusted-content.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0070",
      "identifier_title": "RAG Poisoning"
    },
    {
      "rule_id": "secunt",
      "rule_title": "Untrusted content is data, not instructions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-untrusted-content.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0078",
      "identifier_title": "Drive-by Compromise"
    },
    {
      "rule_id": "secunt",
      "rule_title": "Untrusted content is data, not instructions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-untrusted-content.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0080",
      "identifier_title": "AI Agent Context Poisoning"
    },
    {
      "rule_id": "secunt",
      "rule_title": "Untrusted content is data, not instructions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-untrusted-content.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0092",
      "identifier_title": "Manipulate User LLM Chat History"
    },
    {
      "rule_id": "secunt",
      "rule_title": "Untrusted content is data, not instructions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-untrusted-content.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0094",
      "identifier_title": "Delay Execution of LLM Instructions"
    },
    {
      "rule_id": "secunt",
      "rule_title": "Untrusted content is data, not instructions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-untrusted-content.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0099",
      "identifier_title": "AI Agent Tool Data Poisoning"
    },
    {
      "rule_id": "secunt",
      "rule_title": "Untrusted content is data, not instructions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-untrusted-content.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0051.000",
      "identifier_title": "Direct"
    },
    {
      "rule_id": "secunt",
      "rule_title": "Untrusted content is data, not instructions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-untrusted-content.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0051.001",
      "identifier_title": "Indirect"
    },
    {
      "rule_id": "secunt",
      "rule_title": "Untrusted content is data, not instructions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-untrusted-content.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0051.002",
      "identifier_title": "Triggered"
    },
    {
      "rule_id": "secunt",
      "rule_title": "Untrusted content is data, not instructions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-untrusted-content.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0054",
      "identifier_title": "LLM Jailbreak"
    },
    {
      "rule_id": "secunt",
      "rule_title": "Untrusted content is data, not instructions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-untrusted-content.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0093",
      "identifier_title": "Prompt Infiltration via Public-Facing Application"
    },
    {
      "rule_id": "secunt",
      "rule_title": "Untrusted content is data, not instructions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-untrusted-content.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0100",
      "identifier_title": "AI Agent Clickbait"
    },
    {
      "rule_id": "secunt",
      "rule_title": "Untrusted content is data, not instructions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-untrusted-content.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0110",
      "identifier_title": "AI Agent Tool Poisoning"
    },
    {
      "rule_id": "secvde",
      "rule_title": "Verify a dependency exists before adding it",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-verify-dependency-exists.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0011.001",
      "identifier_title": "Malicious Package"
    },
    {
      "rule_id": "secres",
      "rule_title": "Bounded consumption and safe failure",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECA-resource-bounds.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0046",
      "identifier_title": "Spamming AI System with Chaff Data"
    },
    {
      "rule_id": "secres",
      "rule_title": "Bounded consumption and safe failure",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECA-resource-bounds.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0029",
      "identifier_title": "Denial of AI Service"
    },
    {
      "rule_id": "secres",
      "rule_title": "Bounded consumption and safe failure",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECA-resource-bounds.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0034.000",
      "identifier_title": "Excessive Queries"
    },
    {
      "rule_id": "secres",
      "rule_title": "Bounded consumption and safe failure",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECA-resource-bounds.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0034.001",
      "identifier_title": "Resource-Intensive Queries"
    },
    {
      "rule_id": "secres",
      "rule_title": "Bounded consumption and safe failure",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECA-resource-bounds.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0034.002",
      "identifier_title": "Agentic Resource Consumption"
    },
    {
      "rule_id": "secmin",
      "rule_title": "Minimize personal data sent to AI services",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-data-minimization.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0024.000",
      "identifier_title": "Infer Training Data Membership"
    },
    {
      "rule_id": "secmin",
      "rule_title": "Minimize personal data sent to AI services",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-data-minimization.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "broad",
      "identifier": "AML.T0024.001",
      "identifier_title": "Invert AI Model"
    },
    {
      "rule_id": "secmin",
      "rule_title": "Minimize personal data sent to AI services",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-data-minimization.md",
      "framework": "atlas",
      "relation": "mitigates technique",
      "fit": "tight",
      "identifier": "AML.T0057",
      "identifier_title": "LLM Data Leakage"
    },
    {
      "rule_id": "datbnd",
      "rule_title": "Classify content by sensitivity tier",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-data-boundary.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "broad",
      "identifier": "CWE-200",
      "identifier_title": "Exposure of Sensitive Information to an Unauthorized Actor"
    },
    {
      "rule_id": "secegr",
      "rule_title": "Egress goes only to expected destinations",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-egress-destinations.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "broad",
      "identifier": "CWE-610",
      "identifier_title": "Externally Controlled Reference to a Resource in Another Sphere"
    },
    {
      "rule_id": "secegr",
      "rule_title": "Egress goes only to expected destinations",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-egress-destinations.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-923",
      "identifier_title": "Improper Restriction of Communication Channel to Intended Endpoints"
    },
    {
      "rule_id": "secsec",
      "rule_title": "Keep secrets out",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-keep-secrets-out.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "broad",
      "identifier": "CWE-798",
      "identifier_title": "Use of Hard-coded Credentials"
    },
    {
      "rule_id": "secsec",
      "rule_title": "Keep secrets out",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-keep-secrets-out.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-532",
      "identifier_title": "Insertion of Sensitive Information into Log File"
    },
    {
      "rule_id": "secsec",
      "rule_title": "Keep secrets out",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-keep-secrets-out.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-540",
      "identifier_title": "Inclusion of Sensitive Information in Source Code"
    },
    {
      "rule_id": "seclpr",
      "rule_title": "Retrieval enforces the requester's authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-least-privilege-retrieval.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "broad",
      "identifier": "CWE-285",
      "identifier_title": "Improper Authorization"
    },
    {
      "rule_id": "seclpr",
      "rule_title": "Retrieval enforces the requester's authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-least-privilege-retrieval.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-441",
      "identifier_title": "Unintended Proxy or Intermediary ('Confused Deputy')"
    },
    {
      "rule_id": "secncb",
      "rule_title": "No cross-context bleed",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-no-cross-context-bleed.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "broad",
      "identifier": "CWE-200",
      "identifier_title": "Exposure of Sensitive Information to an Unauthorized Actor"
    },
    {
      "rule_id": "secncb",
      "rule_title": "No cross-context bleed",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-no-cross-context-bleed.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "broad",
      "identifier": "CWE-653",
      "identifier_title": "Improper Isolation or Compartmentalization"
    },
    {
      "rule_id": "secncb",
      "rule_title": "No cross-context bleed",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-no-cross-context-bleed.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-488",
      "identifier_title": "Exposure of Data Element to Wrong Session"
    },
    {
      "rule_id": "secndc",
      "rule_title": "No disclosure of secrets or hidden context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-no-hidden-context-disclosure.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "broad",
      "identifier": "CWE-497",
      "identifier_title": "Exposure of Sensitive System Information to an Unauthorized Control Sphere"
    },
    {
      "rule_id": "secndc",
      "rule_title": "No disclosure of secrets or hidden context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-no-hidden-context-disclosure.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-200",
      "identifier_title": "Exposure of Sensitive Information to an Unauthorized Actor"
    },
    {
      "rule_id": "secau1",
      "rule_title": "Strong authentication",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authentication.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "broad",
      "identifier": "CWE-306",
      "identifier_title": "Missing Authentication for Critical Function"
    },
    {
      "rule_id": "secau1",
      "rule_title": "Strong authentication",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authentication.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "broad",
      "identifier": "CWE-798",
      "identifier_title": "Use of Hard-coded Credentials"
    },
    {
      "rule_id": "secau1",
      "rule_title": "Strong authentication",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authentication.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-287",
      "identifier_title": "Improper Authentication"
    },
    {
      "rule_id": "secazn",
      "rule_title": "Least-privilege authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authorization.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "broad",
      "identifier": "CWE-284",
      "identifier_title": "Improper Access Control"
    },
    {
      "rule_id": "secazn",
      "rule_title": "Least-privilege authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authorization.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-862",
      "identifier_title": "Missing Authorization"
    },
    {
      "rule_id": "secazn",
      "rule_title": "Least-privilege authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authorization.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-863",
      "identifier_title": "Incorrect Authorization"
    },
    {
      "rule_id": "secazn",
      "rule_title": "Least-privilege authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authorization.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-915",
      "identifier_title": "Improperly Controlled Modification of Dynamically-Determined Object Attributes"
    },
    {
      "rule_id": "seccet",
      "rule_title": "Configuration that executes on load is treated as code",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-config-is-executable-trust-gate.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-829",
      "identifier_title": "Inclusion of Functionality from Untrusted Control Sphere"
    },
    {
      "rule_id": "seccry",
      "rule_title": "Sound cryptography",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-cryptography.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "broad",
      "identifier": "CWE-311",
      "identifier_title": "Missing Encryption of Sensitive Data"
    },
    {
      "rule_id": "seccry",
      "rule_title": "Sound cryptography",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-cryptography.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-295",
      "identifier_title": "Improper Certificate Validation"
    },
    {
      "rule_id": "seccry",
      "rule_title": "Sound cryptography",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-cryptography.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-327",
      "identifier_title": "Use of a Broken or Risky Cryptographic Algorithm"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "broad",
      "identifier": "CWE-1357",
      "identifier_title": "Reliance on Insufficiently Trustworthy Component"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-494",
      "identifier_title": "Download of Code Without Integrity Check"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-829",
      "identifier_title": "Inclusion of Functionality from Untrusted Control Sphere"
    },
    {
      "rule_id": "secfcl",
      "rule_title": "Fail closed in security-relevant paths",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-fail-closed.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-636",
      "identifier_title": "Not Failing Securely ('Failing Open')"
    },
    {
      "rule_id": "secfid",
      "rule_title": "Validate federated identity and token flows",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-federated-identity-flow.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "broad",
      "identifier": "CWE-287",
      "identifier_title": "Improper Authentication"
    },
    {
      "rule_id": "secfid",
      "rule_title": "Validate federated identity and token flows",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-federated-identity-flow.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-304",
      "identifier_title": "Missing Critical Step in Authentication"
    },
    {
      "rule_id": "secfid",
      "rule_title": "Validate federated identity and token flows",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-federated-identity-flow.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-347",
      "identifier_title": "Improper Verification of Cryptographic Signature"
    },
    {
      "rule_id": "secupl",
      "rule_title": "Validate and contain uploaded files",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-file-upload-handling.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-434",
      "identifier_title": "Unrestricted Upload of File with Dangerous Type"
    },
    {
      "rule_id": "secupl",
      "rule_title": "Validate and contain uploaded files",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-file-upload-handling.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-646",
      "identifier_title": "Reliance on File Name or Extension of Externally-Supplied File"
    },
    {
      "rule_id": "sechau",
      "rule_title": "Human authorization for consequential actions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-human-authorization.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "broad",
      "identifier": "CWE-862",
      "identifier_title": "Missing Authorization"
    },
    {
      "rule_id": "sechau",
      "rule_title": "Human authorization for consequential actions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-human-authorization.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-451",
      "identifier_title": "User Interface (UI) Misrepresentation of Critical Information"
    },
    {
      "rule_id": "secinp",
      "rule_title": "Validate external input at the boundary",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-input-validation.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "broad",
      "identifier": "CWE-74",
      "identifier_title": "Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection')"
    },
    {
      "rule_id": "secinp",
      "rule_title": "Validate external input at the boundary",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-input-validation.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-20",
      "identifier_title": "Improper Input Validation"
    },
    {
      "rule_id": "secagt",
      "rule_title": "Trust between agents is earned, not inherited",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-inter-agent-trust.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "broad",
      "identifier": "CWE-501",
      "identifier_title": "Trust Boundary Violation"
    },
    {
      "rule_id": "secagt",
      "rule_title": "Trust between agents is earned, not inherited",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-inter-agent-trust.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-272",
      "identifier_title": "Least Privilege Violation"
    },
    {
      "rule_id": "secagt",
      "rule_title": "Trust between agents is earned, not inherited",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-inter-agent-trust.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-290",
      "identifier_title": "Authentication Bypass by Spoofing"
    },
    {
      "rule_id": "seckey",
      "rule_title": "Key management",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-key-management.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "broad",
      "identifier": "CWE-323",
      "identifier_title": "Reusing a Nonce, Key Pair in Encryption"
    },
    {
      "rule_id": "seckey",
      "rule_title": "Key management",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-key-management.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-321",
      "identifier_title": "Use of Hard-coded Cryptographic Key"
    },
    {
      "rule_id": "seckey",
      "rule_title": "Key management",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-key-management.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-324",
      "identifier_title": "Use of a Key Past its Expiration Date"
    },
    {
      "rule_id": "seclpt",
      "rule_title": "Least-privilege tool and file access",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-least-privilege-tools.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "broad",
      "identifier": "CWE-269",
      "identifier_title": "Improper Privilege Management"
    },
    {
      "rule_id": "seclpt",
      "rule_title": "Least-privilege tool and file access",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-least-privilege-tools.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-250",
      "identifier_title": "Execution with Unnecessary Privileges"
    },
    {
      "rule_id": "seclpt",
      "rule_title": "Least-privilege tool and file access",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-least-privilege-tools.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-272",
      "identifier_title": "Least Privilege Violation"
    },
    {
      "rule_id": "secred",
      "rule_title": "Redact sensitive content from logs",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-log-redaction.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "broad",
      "identifier": "CWE-200",
      "identifier_title": "Exposure of Sensitive Information to an Unauthorized Actor"
    },
    {
      "rule_id": "secred",
      "rule_title": "Redact sensitive content from logs",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-log-redaction.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-532",
      "identifier_title": "Insertion of Sensitive Information into Log File"
    },
    {
      "rule_id": "secopd",
      "rule_title": "Social pressure is not authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-operator-deception.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-807",
      "identifier_title": "Reliance on Untrusted Inputs in a Security Decision"
    },
    {
      "rule_id": "secenc",
      "rule_title": "Encode output for its sink",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-encoding.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "broad",
      "identifier": "CWE-116",
      "identifier_title": "Improper Encoding or Escaping of Output"
    },
    {
      "rule_id": "secenc",
      "rule_title": "Encode output for its sink",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-encoding.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-838",
      "identifier_title": "Inappropriate Encoding for Output Context"
    },
    {
      "rule_id": "secout",
      "rule_title": "Generated output is untrusted input",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-handling.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "broad",
      "identifier": "CWE-20",
      "identifier_title": "Improper Input Validation"
    },
    {
      "rule_id": "secout",
      "rule_title": "Generated output is untrusted input",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-handling.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-1426",
      "identifier_title": "Improper Validation of Generative AI Output"
    },
    {
      "rule_id": "secpin",
      "rule_title": "Referenced instructions are pinned and re-verified",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-pin-referenced-instructions.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "broad",
      "identifier": "CWE-353",
      "identifier_title": "Missing Support for Integrity Check"
    },
    {
      "rule_id": "secpin",
      "rule_title": "Referenced instructions are pinned and re-verified",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-pin-referenced-instructions.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "broad",
      "identifier": "CWE-494",
      "identifier_title": "Download of Code Without Integrity Check"
    },
    {
      "rule_id": "secpin",
      "rule_title": "Referenced instructions are pinned and re-verified",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-pin-referenced-instructions.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-829",
      "identifier_title": "Inclusion of Functionality from Untrusted Control Sphere"
    },
    {
      "rule_id": "secpsn",
      "rule_title": "Resist data, model, and memory poisoning",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-poisoning-resistance.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "broad",
      "identifier": "CWE-348",
      "identifier_title": "Use of Less Trusted Source"
    },
    {
      "rule_id": "secpsn",
      "rule_title": "Resist data, model, and memory poisoning",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-poisoning-resistance.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-345",
      "identifier_title": "Insufficient Verification of Data Authenticity"
    },
    {
      "rule_id": "secpth",
      "rule_title": "Higher-trust instructions outrank lower-trust ones",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-prompt-trust-hierarchy.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "broad",
      "identifier": "CWE-1427",
      "identifier_title": "Improper Neutralization of Input Used for LLM Prompting"
    },
    {
      "rule_id": "secaud",
      "rule_title": "Protect audit records from the actors they record",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-protect-audit-records.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "broad",
      "identifier": "CWE-732",
      "identifier_title": "Incorrect Permission Assignment for Critical Resource"
    },
    {
      "rule_id": "secaud",
      "rule_title": "Protect audit records from the actors they record",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-protect-audit-records.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-471",
      "identifier_title": "Modification of Assumed-Immutable Data (MAID)"
    },
    {
      "rule_id": "secvln",
      "rule_title": "Reject known-vulnerable dependency versions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-reject-vulnerable-versions.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-1395",
      "identifier_title": "Dependency on Vulnerable Third-Party Component"
    },
    {
      "rule_id": "secpub",
      "rule_title": "Publish artefacts with verifiable integrity",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-release-integrity.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "broad",
      "identifier": "CWE-345",
      "identifier_title": "Insufficient Verification of Data Authenticity"
    },
    {
      "rule_id": "secpub",
      "rule_title": "Publish artefacts with verifiable integrity",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-release-integrity.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-353",
      "identifier_title": "Missing Support for Integrity Check"
    },
    {
      "rule_id": "secdsz",
      "rule_title": "Deserialize untrusted data only as data",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-safe-deserialization.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "broad",
      "identifier": "CWE-20",
      "identifier_title": "Improper Input Validation"
    },
    {
      "rule_id": "secdsz",
      "rule_title": "Deserialize untrusted data only as data",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-safe-deserialization.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-502",
      "identifier_title": "Deserialization of Untrusted Data"
    },
    {
      "rule_id": "seccfg",
      "rule_title": "Secure by default configuration",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-secure-configuration.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-1188",
      "identifier_title": "Initialization of a Resource with an Insecure Default"
    },
    {
      "rule_id": "seccfg",
      "rule_title": "Secure by default configuration",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-secure-configuration.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-1269",
      "identifier_title": "Product Released in Non-Release Configuration"
    },
    {
      "rule_id": "seclog",
      "rule_title": "Security logging with traceable context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-security-logging.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-778",
      "identifier_title": "Insufficient Logging"
    },
    {
      "rule_id": "sectok",
      "rule_title": "Secure session and token handling",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-session-token-management.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "broad",
      "identifier": "CWE-522",
      "identifier_title": "Insufficiently Protected Credentials"
    },
    {
      "rule_id": "sectok",
      "rule_title": "Secure session and token handling",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-session-token-management.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-331",
      "identifier_title": "Insufficient Entropy"
    },
    {
      "rule_id": "sectok",
      "rule_title": "Secure session and token handling",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-session-token-management.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-352",
      "identifier_title": "Cross-Site Request Forgery (CSRF)"
    },
    {
      "rule_id": "sectok",
      "rule_title": "Secure session and token handling",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-session-token-management.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-613",
      "identifier_title": "Insufficient Session Expiration"
    },
    {
      "rule_id": "secssr",
      "rule_title": "Validate server-initiated requests",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-ssrf-prevention.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-918",
      "identifier_title": "Server-Side Request Forgery (SSRF)"
    },
    {
      "rule_id": "secspr",
      "rule_title": "Resolve privileged filesystem paths against symlink races",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-symlink-resolution.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "broad",
      "identifier": "CWE-367",
      "identifier_title": "Time-of-check Time-of-use (TOCTOU) Race Condition"
    },
    {
      "rule_id": "secspr",
      "rule_title": "Resolve privileged filesystem paths against symlink races",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-symlink-resolution.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-59",
      "identifier_title": "Improper Link Resolution Before File Access ('Link Following')"
    },
    {
      "rule_id": "secspr",
      "rule_title": "Resolve privileged filesystem paths against symlink races",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-symlink-resolution.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-363",
      "identifier_title": "Race Condition Enabling Link Following"
    },
    {
      "rule_id": "sectvl",
      "rule_title": "Validate tool arguments before use",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-tool-argument-validation.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "broad",
      "identifier": "CWE-22",
      "identifier_title": "Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')"
    },
    {
      "rule_id": "sectvl",
      "rule_title": "Validate tool arguments before use",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-tool-argument-validation.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "broad",
      "identifier": "CWE-77",
      "identifier_title": "Improper Neutralization of Special Elements used in a Command ('Command Injection')"
    },
    {
      "rule_id": "sectvl",
      "rule_title": "Validate tool arguments before use",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-tool-argument-validation.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-20",
      "identifier_title": "Improper Input Validation"
    },
    {
      "rule_id": "sectvl",
      "rule_title": "Validate tool arguments before use",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-tool-argument-validation.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-88",
      "identifier_title": "Improper Neutralization of Argument Delimiters in a Command ('Argument Injection')"
    },
    {
      "rule_id": "secunt",
      "rule_title": "Untrusted content is data, not instructions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-untrusted-content.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-1427",
      "identifier_title": "Improper Neutralization of Input Used for LLM Prompting"
    },
    {
      "rule_id": "secvde",
      "rule_title": "Verify a dependency exists before adding it",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-verify-dependency-exists.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "broad",
      "identifier": "CWE-1357",
      "identifier_title": "Reliance on Insufficiently Trustworthy Component"
    },
    {
      "rule_id": "secres",
      "rule_title": "Bounded consumption and safe failure",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECA-resource-bounds.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "broad",
      "identifier": "CWE-674",
      "identifier_title": "Uncontrolled Recursion"
    },
    {
      "rule_id": "secres",
      "rule_title": "Bounded consumption and safe failure",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECA-resource-bounds.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "broad",
      "identifier": "CWE-834",
      "identifier_title": "Excessive Iteration"
    },
    {
      "rule_id": "secres",
      "rule_title": "Bounded consumption and safe failure",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECA-resource-bounds.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-400",
      "identifier_title": "Uncontrolled Resource Consumption"
    },
    {
      "rule_id": "secres",
      "rule_title": "Bounded consumption and safe failure",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECA-resource-bounds.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-770",
      "identifier_title": "Allocation of Resources Without Limits or Throttling"
    },
    {
      "rule_id": "secmin",
      "rule_title": "Minimize personal data sent to AI services",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-data-minimization.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "broad",
      "identifier": "CWE-359",
      "identifier_title": "Exposure of Private Personal Information to an Unauthorized Actor"
    },
    {
      "rule_id": "secmin",
      "rule_title": "Minimize personal data sent to AI services",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-data-minimization.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "tight",
      "identifier": "CWE-201",
      "identifier_title": "Insertion of Sensitive Information Into Sent Data"
    },
    {
      "rule_id": "secsyn",
      "rule_title": "Fixtures and examples use synthetic data",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-synthetic-fixture-data.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "broad",
      "identifier": "CWE-359",
      "identifier_title": "Exposure of Private Personal Information to an Unauthorized Actor"
    },
    {
      "rule_id": "secsyn",
      "rule_title": "Fixtures and examples use synthetic data",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-synthetic-fixture-data.md",
      "framework": "cwe",
      "relation": "mitigates weakness",
      "fit": "broad",
      "identifier": "CWE-531",
      "identifier_title": "Inclusion of Sensitive Information in Test Code"
    },
    {
      "rule_id": "reprod",
      "rule_title": "Reproduce a defect before fixing it",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-ACCUR-reproduce-before-fix.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "SI-2",
      "identifier_title": "Flaw Remediation"
    },
    {
      "rule_id": "tstamp",
      "rule_title": "A current timestamp is read from the clock",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-ACCUR-timestamp-from-clock.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "AU-8",
      "identifier_title": "Time Stamps"
    },
    {
      "rule_id": "actbef",
      "rule_title": "Anything wrong is fixed first",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-anything-wrong-fixed-first.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "SI-2",
      "identifier_title": "Flaw Remediation"
    },
    {
      "rule_id": "artbr1",
      "rule_title": "Branch and merge only on green",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-branch-and-merge-on-green.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "SA-10",
      "identifier_title": "Developer Configuration Management"
    },
    {
      "rule_id": "artbr1",
      "rule_title": "Branch and merge only on green",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-branch-and-merge-on-green.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "CM-3",
      "identifier_title": "Configuration Change Control"
    },
    {
      "rule_id": "artbr1",
      "rule_title": "Branch and merge only on green",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-branch-and-merge-on-green.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "CM-3(2)",
      "identifier_title": "Testing, Validation, and Documentation of Changes"
    },
    {
      "rule_id": "brnrot",
      "rule_title": "Cut branches from the live protected line and re-home after a rewrite",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-branch-rooted-on-live-main.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "SA-10",
      "identifier_title": "Developer Configuration Management"
    },
    {
      "rule_id": "brnrot",
      "rule_title": "Cut branches from the live protected line and re-home after a rewrite",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-branch-rooted-on-live-main.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "CM-3",
      "identifier_title": "Configuration Change Control"
    },
    {
      "rule_id": "brnrot",
      "rule_title": "Cut branches from the live protected line and re-home after a rewrite",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-branch-rooted-on-live-main.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "CM-3(2)",
      "identifier_title": "Testing, Validation, and Documentation of Changes"
    },
    {
      "rule_id": "chkfcl",
      "rule_title": "A check fails closed on input it cannot read",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-check-fails-closed-on-unreadable.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "SI-17",
      "identifier_title": "Fail-safe Procedures"
    },
    {
      "rule_id": "gatdis",
      "rule_title": "Gate discipline",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-gate-discipline.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "CM-3(2)",
      "identifier_title": "Testing, Validation, and Documentation of Changes"
    },
    {
      "rule_id": "gatdis",
      "rule_title": "Gate discipline",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-gate-discipline.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "SA-11",
      "identifier_title": "Developer Testing and Evaluation"
    },
    {
      "rule_id": "nocncl",
      "rule_title": "No concealed failure",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-no-concealed-failure.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "SA-11",
      "identifier_title": "Developer Testing and Evaluation"
    },
    {
      "rule_id": "prtbrn",
      "rule_title": "Protected-branch integrity",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-protected-branch-integrity.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "CM-3",
      "identifier_title": "Configuration Change Control"
    },
    {
      "rule_id": "prtbrn",
      "rule_title": "Protected-branch integrity",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-protected-branch-integrity.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "CM-5",
      "identifier_title": "Access Restrictions for Change"
    },
    {
      "rule_id": "rerunf",
      "rule_title": "A rerun pass does not erase an earlier failure",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-rerun-pass-is-still-failure.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "SI-2",
      "identifier_title": "Flaw Remediation"
    },
    {
      "rule_id": "septsk",
      "rule_title": "Separate task changes from pre-existing work",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-separate-task-changes.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "CM-3",
      "identifier_title": "Configuration Change Control"
    },
    {
      "rule_id": "valgat",
      "rule_title": "Validation is a gate on apply",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-validation-gates-apply.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "SA-11",
      "identifier_title": "Developer Testing and Evaluation"
    },
    {
      "rule_id": "valgat",
      "rule_title": "Validation is a gate on apply",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-validation-gates-apply.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "CM-3(2)",
      "identifier_title": "Testing, Validation, and Documentation of Changes"
    },
    {
      "rule_id": "wowo01",
      "rule_title": "Workers produce inert data",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-workers-produce-inert-data.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "AC-6",
      "identifier_title": "Least Privilege"
    },
    {
      "rule_id": "wowo01",
      "rule_title": "Workers produce inert data",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-workers-produce-inert-data.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "CM-5",
      "identifier_title": "Access Restrictions for Change"
    },
    {
      "rule_id": "chgchk",
      "rule_title": "A behavioural change carries a check that fails without it",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-change-carries-check.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "CM-3(2)",
      "identifier_title": "Testing, Validation, and Documentation of Changes"
    },
    {
      "rule_id": "chgchk",
      "rule_title": "A behavioural change carries a check that fails without it",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-change-carries-check.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "SA-11",
      "identifier_title": "Developer Testing and Evaluation"
    },
    {
      "rule_id": "dfdpth",
      "rule_title": "Defence in depth by default",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-defence-in-depth-default.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "SA-8",
      "identifier_title": "Security and Privacy Engineering Principles"
    },
    {
      "rule_id": "fndfix",
      "rule_title": "A verification finding is fixed, not argued away",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-findings-are-fixed-not-argued.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "SA-11",
      "identifier_title": "Developer Testing and Evaluation"
    },
    {
      "rule_id": "fndfix",
      "rule_title": "A verification finding is fixed, not argued away",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-findings-are-fixed-not-argued.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "SI-2",
      "identifier_title": "Flaw Remediation"
    },
    {
      "rule_id": "hiasrv",
      "rule_title": "High-assurance verification",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-high-assurance-verification.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "CM-3(2)",
      "identifier_title": "Testing, Validation, and Documentation of Changes"
    },
    {
      "rule_id": "hiasrv",
      "rule_title": "High-assurance verification",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-high-assurance-verification.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "SA-11(3)",
      "identifier_title": "Independent Verification of Assessment Plans and Evidence"
    },
    {
      "rule_id": "lvw001",
      "rule_title": "Isolate verifiers and judge by their result signal",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-lightweight-verifier-workers.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "SA-11(3)",
      "identifier_title": "Independent Verification of Assessment Plans and Evidence"
    },
    {
      "rule_id": "mindep",
      "rule_title": "Minimize external dependencies in favour of standard libraries",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-minimize-dependencies.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "SA-8",
      "identifier_title": "Security and Privacy Engineering Principles"
    },
    {
      "rule_id": "tsthrm",
      "rule_title": "A test's verdict comes from the code, not its surroundings",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-test-hermeticity.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "SA-8(29)",
      "identifier_title": "Repeatable and Documented Procedures"
    },
    {
      "rule_id": "tsthrm",
      "rule_title": "A test's verdict comes from the code, not its surroundings",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-test-hermeticity.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "SA-11",
      "identifier_title": "Developer Testing and Evaluation"
    },
    {
      "rule_id": "vrfdiv",
      "rule_title": "Verifier diversity",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-verifier-diversity.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "SA-11(3)",
      "identifier_title": "Independent Verification of Assessment Plans and Evidence"
    },
    {
      "rule_id": "aitreg",
      "rule_title": "Maintain an AI toolchain register",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-ai-toolchain-register.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "CM-8",
      "identifier_title": "System Component Inventory"
    },
    {
      "rule_id": "chtrk1",
      "rule_title": "Change record",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-change-record.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "CM-3",
      "identifier_title": "Configuration Change Control"
    },
    {
      "rule_id": "recncl",
      "rule_title": "Reconcile the record against reality",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-reconcile-record-against-reality.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "CA-7",
      "identifier_title": "Continuous Monitoring"
    },
    {
      "rule_id": "bgcwai",
      "rule_title": "Background work during CI waits",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/30-SPEED-background-work-during-ci-waits.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "CM-3(2)",
      "identifier_title": "Testing, Validation, and Documentation of Changes"
    },
    {
      "rule_id": "datbnd",
      "rule_title": "Classify content by sensitivity tier",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-data-boundary.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "MP-3",
      "identifier_title": "Media Marking"
    },
    {
      "rule_id": "secegr",
      "rule_title": "Egress goes only to expected destinations",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-egress-destinations.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "SC-7",
      "identifier_title": "Boundary Protection"
    },
    {
      "rule_id": "secegr",
      "rule_title": "Egress goes only to expected destinations",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-egress-destinations.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "AC-4",
      "identifier_title": "Information Flow Enforcement"
    },
    {
      "rule_id": "secegr",
      "rule_title": "Egress goes only to expected destinations",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-egress-destinations.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "SC-7(5)",
      "identifier_title": "Deny by Default - Allow by Exception"
    },
    {
      "rule_id": "secsec",
      "rule_title": "Keep secrets out",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-keep-secrets-out.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "IA-5(7)",
      "identifier_title": "No Embedded Unencrypted Static Authenticators"
    },
    {
      "rule_id": "seclpr",
      "rule_title": "Retrieval enforces the requester's authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-least-privilege-retrieval.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "AC-3",
      "identifier_title": "Access Enforcement"
    },
    {
      "rule_id": "seclpr",
      "rule_title": "Retrieval enforces the requester's authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-least-privilege-retrieval.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "AC-6",
      "identifier_title": "Least Privilege"
    },
    {
      "rule_id": "secncb",
      "rule_title": "No cross-context bleed",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-no-cross-context-bleed.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "AC-4",
      "identifier_title": "Information Flow Enforcement"
    },
    {
      "rule_id": "secncb",
      "rule_title": "No cross-context bleed",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-no-cross-context-bleed.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "SC-4",
      "identifier_title": "Information in Shared System Resources"
    },
    {
      "rule_id": "secndc",
      "rule_title": "No disclosure of secrets or hidden context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-no-hidden-context-disclosure.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "AC-4",
      "identifier_title": "Information Flow Enforcement"
    },
    {
      "rule_id": "secrot",
      "rule_title": "Rotate a leaked secret",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-rotate-leaked-secret.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "IR-4",
      "identifier_title": "Incident Handling"
    },
    {
      "rule_id": "secrot",
      "rule_title": "Rotate a leaked secret",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-rotate-leaked-secret.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "IA-5",
      "identifier_title": "Authenticator Management"
    },
    {
      "rule_id": "secau1",
      "rule_title": "Strong authentication",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authentication.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "IA-5(5)",
      "identifier_title": "Change Authenticators Prior to Delivery"
    },
    {
      "rule_id": "secau1",
      "rule_title": "Strong authentication",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authentication.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "IA-5(7)",
      "identifier_title": "No Embedded Unencrypted Static Authenticators"
    },
    {
      "rule_id": "secau1",
      "rule_title": "Strong authentication",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authentication.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "IA-2",
      "identifier_title": "Identification and Authentication (Organizational Users)"
    },
    {
      "rule_id": "secazn",
      "rule_title": "Least-privilege authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authorization.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "AC-3",
      "identifier_title": "Access Enforcement"
    },
    {
      "rule_id": "secazn",
      "rule_title": "Least-privilege authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authorization.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "AC-6",
      "identifier_title": "Least Privilege"
    },
    {
      "rule_id": "seccet",
      "rule_title": "Configuration that executes on load is treated as code",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-config-is-executable-trust-gate.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "SI-7",
      "identifier_title": "Software, Firmware, and Information Integrity"
    },
    {
      "rule_id": "seccry",
      "rule_title": "Sound cryptography",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-cryptography.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "SC-8",
      "identifier_title": "Transmission Confidentiality and Integrity"
    },
    {
      "rule_id": "seccry",
      "rule_title": "Sound cryptography",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-cryptography.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "SC-28",
      "identifier_title": "Protection of Information at Rest"
    },
    {
      "rule_id": "seccry",
      "rule_title": "Sound cryptography",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-cryptography.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "SC-13",
      "identifier_title": "Cryptographic Protection"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "SR-3",
      "identifier_title": "Supply Chain Controls and Processes"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "SR-4",
      "identifier_title": "Provenance"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "SR-11",
      "identifier_title": "Component Authenticity"
    },
    {
      "rule_id": "secgci",
      "rule_title": "Guardrail configuration is integrity-protected",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-guardrail-config-integrity.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "AC-6(1)",
      "identifier_title": "Authorize Access to Security Functions"
    },
    {
      "rule_id": "secgci",
      "rule_title": "Guardrail configuration is integrity-protected",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-guardrail-config-integrity.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "SI-7",
      "identifier_title": "Software, Firmware, and Information Integrity"
    },
    {
      "rule_id": "secgci",
      "rule_title": "Guardrail configuration is integrity-protected",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-guardrail-config-integrity.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "CM-3",
      "identifier_title": "Configuration Change Control"
    },
    {
      "rule_id": "secgci",
      "rule_title": "Guardrail configuration is integrity-protected",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-guardrail-config-integrity.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "CM-5",
      "identifier_title": "Access Restrictions for Change"
    },
    {
      "rule_id": "sechau",
      "rule_title": "Human authorization for consequential actions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-human-authorization.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "CM-3",
      "identifier_title": "Configuration Change Control"
    },
    {
      "rule_id": "sechau",
      "rule_title": "Human authorization for consequential actions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-human-authorization.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "CM-5",
      "identifier_title": "Access Restrictions for Change"
    },
    {
      "rule_id": "secinp",
      "rule_title": "Validate external input at the boundary",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-input-validation.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "SI-10",
      "identifier_title": "Information Input Validation"
    },
    {
      "rule_id": "secinp",
      "rule_title": "Validate external input at the boundary",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-input-validation.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "SI-10(5)",
      "identifier_title": "Restrict Inputs to Trusted Sources and Approved Formats"
    },
    {
      "rule_id": "secinp",
      "rule_title": "Validate external input at the boundary",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-input-validation.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "SI-10(6)",
      "identifier_title": "Injection Prevention"
    },
    {
      "rule_id": "secagt",
      "rule_title": "Trust between agents is earned, not inherited",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-inter-agent-trust.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "AC-3",
      "identifier_title": "Access Enforcement"
    },
    {
      "rule_id": "secagt",
      "rule_title": "Trust between agents is earned, not inherited",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-inter-agent-trust.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "AC-6",
      "identifier_title": "Least Privilege"
    },
    {
      "rule_id": "secagt",
      "rule_title": "Trust between agents is earned, not inherited",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-inter-agent-trust.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "IA-9",
      "identifier_title": "Service Identification and Authentication"
    },
    {
      "rule_id": "secagt",
      "rule_title": "Trust between agents is earned, not inherited",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-inter-agent-trust.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "SI-10",
      "identifier_title": "Information Input Validation"
    },
    {
      "rule_id": "seckey",
      "rule_title": "Key management",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-key-management.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "IA-5(7)",
      "identifier_title": "No Embedded Unencrypted Static Authenticators"
    },
    {
      "rule_id": "seckey",
      "rule_title": "Key management",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-key-management.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "SC-12",
      "identifier_title": "Cryptographic Key Establishment and Management"
    },
    {
      "rule_id": "seclpt",
      "rule_title": "Least-privilege tool and file access",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-least-privilege-tools.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "SC-39",
      "identifier_title": "Process Isolation"
    },
    {
      "rule_id": "seclpt",
      "rule_title": "Least-privilege tool and file access",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-least-privilege-tools.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "AC-6",
      "identifier_title": "Least Privilege"
    },
    {
      "rule_id": "seclpt",
      "rule_title": "Least-privilege tool and file access",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-least-privilege-tools.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "CM-7",
      "identifier_title": "Least Functionality"
    },
    {
      "rule_id": "secred",
      "rule_title": "Redact sensitive content from logs",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-log-redaction.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "AU-3(3)",
      "identifier_title": "Limit Personally Identifiable Information Elements"
    },
    {
      "rule_id": "secenc",
      "rule_title": "Encode output for its sink",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-encoding.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "SI-10(6)",
      "identifier_title": "Injection Prevention"
    },
    {
      "rule_id": "secout",
      "rule_title": "Generated output is untrusted input",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-handling.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "SA-11",
      "identifier_title": "Developer Testing and Evaluation"
    },
    {
      "rule_id": "secout",
      "rule_title": "Generated output is untrusted input",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-handling.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "SI-10(6)",
      "identifier_title": "Injection Prevention"
    },
    {
      "rule_id": "secout",
      "rule_title": "Generated output is untrusted input",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-handling.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "SI-15",
      "identifier_title": "Information Output Filtering"
    },
    {
      "rule_id": "secpsn",
      "rule_title": "Resist data, model, and memory poisoning",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-poisoning-resistance.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "SI-7",
      "identifier_title": "Software, Firmware, and Information Integrity"
    },
    {
      "rule_id": "secpsn",
      "rule_title": "Resist data, model, and memory poisoning",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-poisoning-resistance.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "SI-10(5)",
      "identifier_title": "Restrict Inputs to Trusted Sources and Approved Formats"
    },
    {
      "rule_id": "rmvpth",
      "rule_title": "Prefer removing a path over constraining or monitoring it",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-prefer-removing-a-path.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "AC-6",
      "identifier_title": "Least Privilege"
    },
    {
      "rule_id": "rmvpth",
      "rule_title": "Prefer removing a path over constraining or monitoring it",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-prefer-removing-a-path.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "SC-7",
      "identifier_title": "Boundary Protection"
    },
    {
      "rule_id": "rmvpth",
      "rule_title": "Prefer removing a path over constraining or monitoring it",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-prefer-removing-a-path.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "CM-7",
      "identifier_title": "Least Functionality"
    },
    {
      "rule_id": "secaud",
      "rule_title": "Protect audit records from the actors they record",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-protect-audit-records.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "AU-9",
      "identifier_title": "Protection of Audit Information"
    },
    {
      "rule_id": "secvln",
      "rule_title": "Reject known-vulnerable dependency versions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-reject-vulnerable-versions.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "RA-5",
      "identifier_title": "Vulnerability Monitoring and Scanning"
    },
    {
      "rule_id": "secpub",
      "rule_title": "Publish artefacts with verifiable integrity",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-release-integrity.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "SI-7",
      "identifier_title": "Software, Firmware, and Information Integrity"
    },
    {
      "rule_id": "secpub",
      "rule_title": "Publish artefacts with verifiable integrity",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-release-integrity.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "SR-4",
      "identifier_title": "Provenance"
    },
    {
      "rule_id": "seccfg",
      "rule_title": "Secure by default configuration",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-secure-configuration.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "CM-6",
      "identifier_title": "Configuration Settings"
    },
    {
      "rule_id": "seccfg",
      "rule_title": "Secure by default configuration",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-secure-configuration.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "CM-7",
      "identifier_title": "Least Functionality"
    },
    {
      "rule_id": "seccfg",
      "rule_title": "Secure by default configuration",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-secure-configuration.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "SI-11",
      "identifier_title": "Error Handling"
    },
    {
      "rule_id": "seclog",
      "rule_title": "Security logging with traceable context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-security-logging.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "AU-2",
      "identifier_title": "Event Logging"
    },
    {
      "rule_id": "seclog",
      "rule_title": "Security logging with traceable context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-security-logging.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "AU-3",
      "identifier_title": "Content of Audit Records"
    },
    {
      "rule_id": "seclog",
      "rule_title": "Security logging with traceable context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-security-logging.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "AU-12",
      "identifier_title": "Audit Record Generation"
    },
    {
      "rule_id": "sectok",
      "rule_title": "Secure session and token handling",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-session-token-management.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "IA-5",
      "identifier_title": "Authenticator Management"
    },
    {
      "rule_id": "sectok",
      "rule_title": "Secure session and token handling",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-session-token-management.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "SC-23",
      "identifier_title": "Session Authenticity"
    },
    {
      "rule_id": "sectok",
      "rule_title": "Secure session and token handling",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-session-token-management.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "SC-23(1)",
      "identifier_title": "Invalidate Session Identifiers at Logout"
    },
    {
      "rule_id": "secthm",
      "rule_title": "Threat-model new trust boundaries before implementation",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-threat-model-boundaries.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "SA-8",
      "identifier_title": "Security and Privacy Engineering Principles"
    },
    {
      "rule_id": "secthm",
      "rule_title": "Threat-model new trust boundaries before implementation",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-threat-model-boundaries.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "SA-11(2)",
      "identifier_title": "Threat Modeling and Vulnerability Analyses"
    },
    {
      "rule_id": "sectvl",
      "rule_title": "Validate tool arguments before use",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-tool-argument-validation.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "SI-10",
      "identifier_title": "Information Input Validation"
    },
    {
      "rule_id": "sectvl",
      "rule_title": "Validate tool arguments before use",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-tool-argument-validation.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "SI-10(6)",
      "identifier_title": "Injection Prevention"
    },
    {
      "rule_id": "secunt",
      "rule_title": "Untrusted content is data, not instructions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-untrusted-content.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "SI-10(6)",
      "identifier_title": "Injection Prevention"
    },
    {
      "rule_id": "secres",
      "rule_title": "Bounded consumption and safe failure",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECA-resource-bounds.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "SC-5",
      "identifier_title": "Denial-of-service Protection"
    },
    {
      "rule_id": "secres",
      "rule_title": "Bounded consumption and safe failure",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECA-resource-bounds.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "SC-6",
      "identifier_title": "Resource Availability"
    },
    {
      "rule_id": "secrst",
      "rule_title": "A destructive operation requires a verified restore path",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECA-verified-restore-path.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "CP-9",
      "identifier_title": "System Backup"
    },
    {
      "rule_id": "secrst",
      "rule_title": "A destructive operation requires a verified restore path",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECA-verified-restore-path.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "CP-9(1)",
      "identifier_title": "Testing for Reliability and Integrity"
    },
    {
      "rule_id": "secrst",
      "rule_title": "A destructive operation requires a verified restore path",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECA-verified-restore-path.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "CP-10",
      "identifier_title": "System Recovery and Reconstitution"
    },
    {
      "rule_id": "secrst",
      "rule_title": "A destructive operation requires a verified restore path",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECA-verified-restore-path.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "CP-9(2)",
      "identifier_title": "Test Restoration Using Sampling"
    },
    {
      "rule_id": "secmin",
      "rule_title": "Minimize personal data sent to AI services",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-data-minimization.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "SI-19",
      "identifier_title": "De-identification"
    },
    {
      "rule_id": "secmin",
      "rule_title": "Minimize personal data sent to AI services",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-data-minimization.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "SI-12(1)",
      "identifier_title": "Limit Personally Identifiable Information Elements"
    },
    {
      "rule_id": "secdrr",
      "rule_title": "Honour residency, retention, and deletion",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-data-residency-retention.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "SA-9(5)",
      "identifier_title": "Processing, Storage, and Service Location"
    },
    {
      "rule_id": "secdrr",
      "rule_title": "Honour residency, retention, and deletion",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-data-residency-retention.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "SI-12",
      "identifier_title": "Information Management and Retention"
    },
    {
      "rule_id": "secdrr",
      "rule_title": "Honour residency, retention, and deletion",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-data-residency-retention.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "SI-12(3)",
      "identifier_title": "Information Disposal"
    },
    {
      "rule_id": "secpur",
      "rule_title": "Bind personal-data use to its authorized purpose",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-purpose-limitation.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "PT-2",
      "identifier_title": "Authority to Process Personally Identifiable Information"
    },
    {
      "rule_id": "secpur",
      "rule_title": "Bind personal-data use to its authorized purpose",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-purpose-limitation.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "PT-3",
      "identifier_title": "Personally Identifiable Information Processing Purposes"
    },
    {
      "rule_id": "secsyn",
      "rule_title": "Fixtures and examples use synthetic data",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-synthetic-fixture-data.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "SA-3(2)",
      "identifier_title": "Use of Live or Operational Data"
    },
    {
      "rule_id": "secsyn",
      "rule_title": "Fixtures and examples use synthetic data",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-synthetic-fixture-data.md",
      "framework": "nist-80053",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "SA-15(9)",
      "identifier_title": "Use of Live Data"
    },
    {
      "rule_id": "clmobs",
      "rule_title": "Claims about the work rest on observation",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-ACCUR-claims-rest-on-observation.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "GOVERN 4.1",
      "identifier_title": "Organizational policies and practices are in place to foster a critical thinking and safety-first mindset."
    },
    {
      "rule_id": "setcmp",
      "rule_title": "A completeness claim enumerates its set",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-ACCUR-completeness-claim-enumerates-its-set.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "GOVERN 4.1",
      "identifier_title": "Organizational policies and practices are in place to foster a critical thinking and safety-first mindset."
    },
    {
      "rule_id": "corrob",
      "rule_title": "Corroborate external claims",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-ACCUR-corroborate-external-claims.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "GOVERN 4.1",
      "identifier_title": "Organizational policies and practices are in place to foster a critical thinking and safety-first mindset."
    },
    {
      "rule_id": "corrob",
      "rule_title": "Corroborate external claims",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-ACCUR-corroborate-external-claims.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MEASURE 2.9",
      "identifier_title": "The AI model is explained, validated, and documented, and AI system output is interpreted within its context."
    },
    {
      "rule_id": "evgcmp",
      "rule_title": "Evidence-grounded completion",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-ACCUR-evidence-grounded-completion.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "GOVERN 4.1",
      "identifier_title": "Organizational policies and practices are in place to foster a critical thinking and safety-first mindset."
    },
    {
      "rule_id": "grdinp",
      "rule_title": "A guard is only as good as its input",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-ACCUR-guard-input-soundness.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MEASURE 2.13",
      "identifier_title": "Effectiveness of the employed TEVV metrics and processes in the MEASURE function are evaluated and documented."
    },
    {
      "rule_id": "grdinp",
      "rule_title": "A guard is only as good as its input",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-ACCUR-guard-input-soundness.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "MAP 2.3",
      "identifier_title": "Scientific integrity and TEVV considerations are identified and documented, including those related to experimental design, data collection and selection, and construct validation."
    },
    {
      "rule_id": "estsep",
      "rule_title": "Measured and estimated figures stay separate",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-ACCUR-measured-and-estimated-figures-stay-separate.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MEASURE 1.1",
      "identifier_title": "Approaches and metrics for measurement of AI risks enumerated during the MAP function are selected for implementation."
    },
    {
      "rule_id": "nofabr",
      "rule_title": "No fabrication",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-ACCUR-no-fabrication.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "GOVERN 4.1",
      "identifier_title": "Organizational policies and practices are in place to foster a critical thinking and safety-first mindset."
    },
    {
      "rule_id": "nofabr",
      "rule_title": "No fabrication",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-ACCUR-no-fabrication.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MEASURE 2.9",
      "identifier_title": "The AI model is explained, validated, and documented, and AI system output is interpreted within its context."
    },
    {
      "rule_id": "rdbchr",
      "rule_title": "Read before characterizing",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-ACCUR-read-before-characterizing.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "GOVERN 4.1",
      "identifier_title": "Organizational policies and practices are in place to foster a critical thinking and safety-first mindset."
    },
    {
      "rule_id": "rdbchr",
      "rule_title": "Read before characterizing",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-ACCUR-read-before-characterizing.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MEASURE 2.9",
      "identifier_title": "The AI model is explained, validated, and documented, and AI system output is interpreted within its context."
    },
    {
      "rule_id": "valinf",
      "rule_title": "Validate an inferred premise before acting",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-ACCUR-validate-inference-before-action.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "GOVERN 4.1",
      "identifier_title": "Organizational policies and practices are in place to foster a critical thinking and safety-first mindset."
    },
    {
      "rule_id": "actbef",
      "rule_title": "Anything wrong is fixed first",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-anything-wrong-fixed-first.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MANAGE 4.3",
      "identifier_title": "Incidents and errors are communicated to relevant AI actors, including affected communities. Processes for tracking, responding to, and recovering from incidents and errors are followed and documented."
    },
    {
      "rule_id": "artbr1",
      "rule_title": "Branch and merge only on green",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-branch-and-merge-on-green.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MANAGE 4.1",
      "identifier_title": "Post-deployment AI system monitoring plans are implemented, including mechanisms for capturing and evaluating input from users and other relevant AI actors, appeal and override, decommissioning, incident response, recovery, and change management."
    },
    {
      "rule_id": "brnrot",
      "rule_title": "Cut branches from the live protected line and re-home after a rewrite",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-branch-rooted-on-live-main.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MANAGE 4.1",
      "identifier_title": "Post-deployment AI system monitoring plans are implemented, including mechanisms for capturing and evaluating input from users and other relevant AI actors, appeal and override, decommissioning, incident response, recovery, and change management."
    },
    {
      "rule_id": "cmtidn",
      "rule_title": "Commit identity",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-commit-identity.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "GOVERN 2.1",
      "identifier_title": "Roles and responsibilities and lines of communication related to mapping, measuring, and managing AI risks are documented."
    },
    {
      "rule_id": "gatdis",
      "rule_title": "Gate discipline",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-gate-discipline.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "GOVERN 4.1",
      "identifier_title": "Organizational policies and practices are in place to foster a critical thinking and safety-first mindset."
    },
    {
      "rule_id": "liccmp",
      "rule_title": "Verify licence compatibility before introducing third-party material",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-licence-compatibility.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "GOVERN 1.1",
      "identifier_title": "Legal and regulatory requirements involving AI are understood, managed, and documented."
    },
    {
      "rule_id": "nocncl",
      "rule_title": "No concealed failure",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-no-concealed-failure.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "GOVERN 4.3",
      "identifier_title": "Organizational practices are in place to enable AI testing, identification of incidents, and information sharing."
    },
    {
      "rule_id": "nocncl",
      "rule_title": "No concealed failure",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-no-concealed-failure.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "MANAGE 4.3",
      "identifier_title": "Incidents and errors are communicated to relevant AI actors, including affected communities. Processes for tracking, responding to, and recovering from incidents and errors are followed and documented."
    },
    {
      "rule_id": "prtbrn",
      "rule_title": "Protected-branch integrity",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-protected-branch-integrity.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MANAGE 4.1",
      "identifier_title": "Post-deployment AI system monitoring plans are implemented, including mechanisms for capturing and evaluating input from users and other relevant AI actors, appeal and override, decommissioning, incident response, recovery, and change management."
    },
    {
      "rule_id": "reqstp",
      "rule_title": "A required step remains required under friction",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-required-step-remains-required.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MANAGE 4.3",
      "identifier_title": "Incidents and errors are communicated to relevant AI actors, including affected communities. Processes for tracking, responding to, and recovering from incidents and errors are followed and documented."
    },
    {
      "rule_id": "trkasy",
      "rule_title": "A launched task stays observable",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-track-launched-work.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MANAGE 4.3",
      "identifier_title": "Incidents and errors are communicated to relevant AI actors, including affected communities. Processes for tracking, responding to, and recovering from incidents and errors are followed and documented."
    },
    {
      "rule_id": "valgat",
      "rule_title": "Validation is a gate on apply",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-validation-gates-apply.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MAP 4.2",
      "identifier_title": "Internal risk controls for components of the AI system, including third-party AI technologies, are identified and documented."
    },
    {
      "rule_id": "wowo01",
      "rule_title": "Workers produce inert data",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-workers-produce-inert-data.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MAP 4.2",
      "identifier_title": "Internal risk controls for components of the AI system, including third-party AI technologies, are identified and documented."
    },
    {
      "rule_id": "fndfix",
      "rule_title": "A verification finding is fixed, not argued away",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-findings-are-fixed-not-argued.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "GOVERN 4.1",
      "identifier_title": "Organizational policies and practices are in place to foster a critical thinking and safety-first mindset."
    },
    {
      "rule_id": "fndfix",
      "rule_title": "A verification finding is fixed, not argued away",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-findings-are-fixed-not-argued.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MANAGE 2.3",
      "identifier_title": "Procedures are followed to respond to and recover from a previously unknown risk when it is identified."
    },
    {
      "rule_id": "hiasrv",
      "rule_title": "High-assurance verification",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-high-assurance-verification.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "MEASURE 1.3",
      "identifier_title": "Internal experts who did not serve as front-line developers for the system and/or independent assessors are involved in regular assessments and updates."
    },
    {
      "rule_id": "lvw001",
      "rule_title": "Isolate verifiers and judge by their result signal",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-lightweight-verifier-workers.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MEASURE 1.3",
      "identifier_title": "Internal experts who did not serve as front-line developers for the system and/or independent assessors are involved in regular assessments and updates."
    },
    {
      "rule_id": "lvw001",
      "rule_title": "Isolate verifiers and judge by their result signal",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-lightweight-verifier-workers.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MEASURE 2.13",
      "identifier_title": "Effectiveness of the employed TEVV metrics and processes in the MEASURE function are evaluated and documented."
    },
    {
      "rule_id": "slfgrd",
      "rule_title": "Propose a guardrail when an error reveals a gap",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-self-guardrail-from-error.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "MANAGE 2.3",
      "identifier_title": "Procedures are followed to respond to and recover from a previously unknown risk when it is identified."
    },
    {
      "rule_id": "srfcp1",
      "rule_title": "Surface a counterproductive instruction before executing it",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-surface-counterproductive-instructions.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "GOVERN 3.2",
      "identifier_title": "Policies and procedures are in place to define and differentiate roles and responsibilities for human-AI configurations and oversight."
    },
    {
      "rule_id": "srfcp1",
      "rule_title": "Surface a counterproductive instruction before executing it",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-surface-counterproductive-instructions.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "GOVERN 4.1",
      "identifier_title": "Organizational policies and practices are in place to foster a critical thinking and safety-first mindset."
    },
    {
      "rule_id": "vrfdiv",
      "rule_title": "Verifier diversity",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-verifier-diversity.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MEASURE 1.3",
      "identifier_title": "Internal experts who did not serve as front-line developers for the system and/or independent assessors are involved in regular assessments and updates."
    },
    {
      "rule_id": "vrfdiv",
      "rule_title": "Verifier diversity",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-verifier-diversity.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MEASURE 2.1",
      "identifier_title": "Test sets, metrics, and details about the tools used during TEVV are documented."
    },
    {
      "rule_id": "aitreg",
      "rule_title": "Maintain an AI toolchain register",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-ai-toolchain-register.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "GOVERN 1.6",
      "identifier_title": "Mechanisms are in place to inventory AI systems and are resourced according to organizational risk priorities."
    },
    {
      "rule_id": "asadv1",
      "rule_title": "Assess and advise are discussion only",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-assess-advise-discussion-only.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "GOVERN 3.2",
      "identifier_title": "Policies and procedures are in place to define and differentiate roles and responsibilities for human-AI configurations and oversight."
    },
    {
      "rule_id": "asadv1",
      "rule_title": "Assess and advise are discussion only",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-assess-advise-discussion-only.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MAP 3.5",
      "identifier_title": "Processes for human oversight are defined, assessed, and documented in accordance with organizational policies."
    },
    {
      "rule_id": "chtrk1",
      "rule_title": "Change record",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-change-record.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MANAGE 4.1",
      "identifier_title": "Post-deployment AI system monitoring plans are implemented, including mechanisms for capturing and evaluating input from users and other relevant AI actors, appeal and override, decommissioning, incident response, recovery, and change management."
    },
    {
      "rule_id": "clrfy1",
      "rule_title": "Clarify before acting",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-clarify-before-acting.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "GOVERN 4.1",
      "identifier_title": "Organizational policies and practices are in place to foster a critical thinking and safety-first mindset."
    },
    {
      "rule_id": "clrfy1",
      "rule_title": "Clarify before acting",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-clarify-before-acting.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MAP 1.6",
      "identifier_title": "System requirements (e.g., \"the system shall respect the privacy of its users\") are elicited from and understood by relevant AI actors."
    },
    {
      "rule_id": "exauth",
      "rule_title": "Express authorization before execution",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-express-authorization-before-execution.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "GOVERN 3.2",
      "identifier_title": "Policies and procedures are in place to define and differentiate roles and responsibilities for human-AI configurations and oversight."
    },
    {
      "rule_id": "exauth",
      "rule_title": "Express authorization before execution",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-express-authorization-before-execution.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MAP 3.5",
      "identifier_title": "Processes for human oversight are defined, assessed, and documented in accordance with organizational policies."
    },
    {
      "rule_id": "humovs",
      "rule_title": "Human oversight and the autonomy threshold",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-human-oversight-and-autonomy-threshold.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "GOVERN 3.2",
      "identifier_title": "Policies and procedures are in place to define and differentiate roles and responsibilities for human-AI configurations and oversight."
    },
    {
      "rule_id": "humovs",
      "rule_title": "Human oversight and the autonomy threshold",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-human-oversight-and-autonomy-threshold.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "MAP 3.5",
      "identifier_title": "Processes for human oversight are defined, assessed, and documented in accordance with organizational policies."
    },
    {
      "rule_id": "recncl",
      "rule_title": "Reconcile the record against reality",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-reconcile-record-against-reality.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "GOVERN 1.5",
      "identifier_title": "Ongoing monitoring and periodic review of the risk management process and its outcomes are planned."
    },
    {
      "rule_id": "recfst",
      "rule_title": "Records first",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-records-first.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "GOVERN 1.4",
      "identifier_title": "The risk management process and its outcomes are established through transparent policies, procedures, and other controls."
    },
    {
      "rule_id": "trstre",
      "rule_title": "Trust recovery and escalation",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-trust-recovery-escalation.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "MANAGE 4.3",
      "identifier_title": "Incidents and errors are communicated to relevant AI actors, including affected communities. Processes for tracking, responding to, and recovering from incidents and errors are followed and documented."
    },
    {
      "rule_id": "trsrcv",
      "rule_title": "Autonomy steps down after a confirmed trust loss",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-trust-recovery-ext.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "GOVERN 3.2",
      "identifier_title": "Policies and procedures are in place to define and differentiate roles and responsibilities for human-AI configurations and oversight."
    },
    {
      "rule_id": "trsrcv",
      "rule_title": "Autonomy steps down after a confirmed trust loss",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-trust-recovery-ext.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "MANAGE 4.3",
      "identifier_title": "Incidents and errors are communicated to relevant AI actors, including affected communities. Processes for tracking, responding to, and recovering from incidents and errors are followed and documented."
    },
    {
      "rule_id": "deccls",
      "rule_title": "Decision classification before enacting",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/20-PROGR-decision-classification-before-enacting.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "GOVERN 3.2",
      "identifier_title": "Policies and procedures are in place to define and differentiate roles and responsibilities for human-AI configurations and oversight."
    },
    {
      "rule_id": "deccls",
      "rule_title": "Decision classification before enacting",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/20-PROGR-decision-classification-before-enacting.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "MAP 3.5",
      "identifier_title": "Processes for human oversight are defined, assessed, and documented in accordance with organizational policies."
    },
    {
      "rule_id": "csttir",
      "rule_title": "Cost tier",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/40-COST-cost-tier.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "GOVERN 1.3",
      "identifier_title": "Processes, procedures, and practices are in place to determine the needed level of risk management activities."
    },
    {
      "rule_id": "csttir",
      "rule_title": "Cost tier",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/40-COST-cost-tier.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MAP 1.5",
      "identifier_title": "Organizational risk tolerances are determined and documented."
    },
    {
      "rule_id": "secsec",
      "rule_title": "Keep secrets out",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-keep-secrets-out.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MAP 4.2",
      "identifier_title": "Internal risk controls for components of the AI system, including third-party AI technologies, are identified and documented."
    },
    {
      "rule_id": "seclpr",
      "rule_title": "Retrieval enforces the requester's authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-least-privilege-retrieval.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MAP 4.2",
      "identifier_title": "Internal risk controls for components of the AI system, including third-party AI technologies, are identified and documented."
    },
    {
      "rule_id": "secncb",
      "rule_title": "No cross-context bleed",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-no-cross-context-bleed.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MAP 4.2",
      "identifier_title": "Internal risk controls for components of the AI system, including third-party AI technologies, are identified and documented."
    },
    {
      "rule_id": "secndc",
      "rule_title": "No disclosure of secrets or hidden context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-no-hidden-context-disclosure.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MAP 4.2",
      "identifier_title": "Internal risk controls for components of the AI system, including third-party AI technologies, are identified and documented."
    },
    {
      "rule_id": "secrot",
      "rule_title": "Rotate a leaked secret",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-rotate-leaked-secret.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MANAGE 2.3",
      "identifier_title": "Procedures are followed to respond to and recover from a previously unknown risk when it is identified."
    },
    {
      "rule_id": "secrot",
      "rule_title": "Rotate a leaked secret",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-rotate-leaked-secret.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MANAGE 4.3",
      "identifier_title": "Incidents and errors are communicated to relevant AI actors, including affected communities. Processes for tracking, responding to, and recovering from incidents and errors are followed and documented."
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "GOVERN 6.1",
      "identifier_title": "Policies and procedures are in place that address AI risks associated with third-party entities."
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MANAGE 3.1",
      "identifier_title": "AI risks and benefits from third-party resources are regularly monitored, and risk controls are applied and documented."
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MAP 4.2",
      "identifier_title": "Internal risk controls for components of the AI system, including third-party AI technologies, are identified and documented."
    },
    {
      "rule_id": "sechau",
      "rule_title": "Human authorization for consequential actions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-human-authorization.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "GOVERN 3.2",
      "identifier_title": "Policies and procedures are in place to define and differentiate roles and responsibilities for human-AI configurations and oversight."
    },
    {
      "rule_id": "sechau",
      "rule_title": "Human authorization for consequential actions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-human-authorization.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "MAP 3.5",
      "identifier_title": "Processes for human oversight are defined, assessed, and documented in accordance with organizational policies."
    },
    {
      "rule_id": "secagt",
      "rule_title": "Trust between agents is earned, not inherited",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-inter-agent-trust.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MAP 4.2",
      "identifier_title": "Internal risk controls for components of the AI system, including third-party AI technologies, are identified and documented."
    },
    {
      "rule_id": "seclpt",
      "rule_title": "Least-privilege tool and file access",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-least-privilege-tools.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MAP 4.2",
      "identifier_title": "Internal risk controls for components of the AI system, including third-party AI technologies, are identified and documented."
    },
    {
      "rule_id": "secred",
      "rule_title": "Redact sensitive content from logs",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-log-redaction.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MAP 4.2",
      "identifier_title": "Internal risk controls for components of the AI system, including third-party AI technologies, are identified and documented."
    },
    {
      "rule_id": "secout",
      "rule_title": "Generated output is untrusted input",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-handling.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "GOVERN 4.1",
      "identifier_title": "Organizational policies and practices are in place to foster a critical thinking and safety-first mindset."
    },
    {
      "rule_id": "secout",
      "rule_title": "Generated output is untrusted input",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-handling.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MAP 4.2",
      "identifier_title": "Internal risk controls for components of the AI system, including third-party AI technologies, are identified and documented."
    },
    {
      "rule_id": "secout",
      "rule_title": "Generated output is untrusted input",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-handling.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MEASURE 2.9",
      "identifier_title": "The AI model is explained, validated, and documented, and AI system output is interpreted within its context."
    },
    {
      "rule_id": "secpin",
      "rule_title": "Referenced instructions are pinned and re-verified",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-pin-referenced-instructions.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MANAGE 3.1",
      "identifier_title": "AI risks and benefits from third-party resources are regularly monitored, and risk controls are applied and documented."
    },
    {
      "rule_id": "secpin",
      "rule_title": "Referenced instructions are pinned and re-verified",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-pin-referenced-instructions.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MAP 4.2",
      "identifier_title": "Internal risk controls for components of the AI system, including third-party AI technologies, are identified and documented."
    },
    {
      "rule_id": "secpsn",
      "rule_title": "Resist data, model, and memory poisoning",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-poisoning-resistance.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MANAGE 3.1",
      "identifier_title": "AI risks and benefits from third-party resources are regularly monitored, and risk controls are applied and documented."
    },
    {
      "rule_id": "secpsn",
      "rule_title": "Resist data, model, and memory poisoning",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-poisoning-resistance.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MAP 4.2",
      "identifier_title": "Internal risk controls for components of the AI system, including third-party AI technologies, are identified and documented."
    },
    {
      "rule_id": "secpth",
      "rule_title": "Higher-trust instructions outrank lower-trust ones",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-prompt-trust-hierarchy.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MAP 4.2",
      "identifier_title": "Internal risk controls for components of the AI system, including third-party AI technologies, are identified and documented."
    },
    {
      "rule_id": "secvln",
      "rule_title": "Reject known-vulnerable dependency versions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-reject-vulnerable-versions.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MANAGE 3.1",
      "identifier_title": "AI risks and benefits from third-party resources are regularly monitored, and risk controls are applied and documented."
    },
    {
      "rule_id": "seclog",
      "rule_title": "Security logging with traceable context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-security-logging.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "GOVERN 4.3",
      "identifier_title": "Organizational practices are in place to enable AI testing, identification of incidents, and information sharing."
    },
    {
      "rule_id": "seclog",
      "rule_title": "Security logging with traceable context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-security-logging.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MAP 4.2",
      "identifier_title": "Internal risk controls for components of the AI system, including third-party AI technologies, are identified and documented."
    },
    {
      "rule_id": "secunt",
      "rule_title": "Untrusted content is data, not instructions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-untrusted-content.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MAP 4.2",
      "identifier_title": "Internal risk controls for components of the AI system, including third-party AI technologies, are identified and documented."
    },
    {
      "rule_id": "secvde",
      "rule_title": "Verify a dependency exists before adding it",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-verify-dependency-exists.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "GOVERN 6.1",
      "identifier_title": "Policies and procedures are in place that address AI risks associated with third-party entities."
    },
    {
      "rule_id": "secvde",
      "rule_title": "Verify a dependency exists before adding it",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-verify-dependency-exists.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MANAGE 3.1",
      "identifier_title": "AI risks and benefits from third-party resources are regularly monitored, and risk controls are applied and documented."
    },
    {
      "rule_id": "secres",
      "rule_title": "Bounded consumption and safe failure",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECA-resource-bounds.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MAP 4.2",
      "identifier_title": "Internal risk controls for components of the AI system, including third-party AI technologies, are identified and documented."
    },
    {
      "rule_id": "secmin",
      "rule_title": "Minimize personal data sent to AI services",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-data-minimization.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "MAP 4.2",
      "identifier_title": "Internal risk controls for components of the AI system, including third-party AI technologies, are identified and documented."
    },
    {
      "rule_id": "secdrr",
      "rule_title": "Honour residency, retention, and deletion",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-data-residency-retention.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "GOVERN 1.1",
      "identifier_title": "Legal and regulatory requirements involving AI are understood, managed, and documented."
    },
    {
      "rule_id": "secpur",
      "rule_title": "Bind personal-data use to its authorized purpose",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-purpose-limitation.md",
      "framework": "nist-airmf",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "GOVERN 1.1",
      "identifier_title": "Legal and regulatory requirements involving AI are understood, managed, and documented."
    },
    {
      "rule_id": "reprod",
      "rule_title": "Reproduce a defect before fixing it",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-ACCUR-reproduce-before-fix.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "RV.1.2",
      "identifier_title": "Test code to confirm new vulnerabilities"
    },
    {
      "rule_id": "artbr1",
      "rule_title": "Branch and merge only on green",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-branch-and-merge-on-green.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "PS.1.1",
      "identifier_title": "Protect stored code with least privilege"
    },
    {
      "rule_id": "artbr1",
      "rule_title": "Branch and merge only on green",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-branch-and-merge-on-green.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "PW.7.1",
      "identifier_title": "Decide on code review and analysis"
    },
    {
      "rule_id": "brnrot",
      "rule_title": "Cut branches from the live protected line and re-home after a rewrite",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-branch-rooted-on-live-main.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "PW.7.1",
      "identifier_title": "Decide on code review and analysis"
    },
    {
      "rule_id": "cmtidn",
      "rule_title": "Commit identity",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-commit-identity.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "PS.1.1",
      "identifier_title": "Protect stored code with least privilege"
    },
    {
      "rule_id": "gatdis",
      "rule_title": "Gate discipline",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-gate-discipline.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "PO.4.1",
      "identifier_title": "Define software security check criteria"
    },
    {
      "rule_id": "gatdis",
      "rule_title": "Gate discipline",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-gate-discipline.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "PW.8.2",
      "identifier_title": "Perform and document code testing"
    },
    {
      "rule_id": "prtbrn",
      "rule_title": "Protected-branch integrity",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-protected-branch-integrity.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "PW.7.1",
      "identifier_title": "Decide on code review and analysis"
    },
    {
      "rule_id": "prtbrn",
      "rule_title": "Protected-branch integrity",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-protected-branch-integrity.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "PS.1.1",
      "identifier_title": "Protect stored code with least privilege"
    },
    {
      "rule_id": "valgat",
      "rule_title": "Validation is a gate on apply",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-validation-gates-apply.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "PW.7.1",
      "identifier_title": "Decide on code review and analysis"
    },
    {
      "rule_id": "valgat",
      "rule_title": "Validation is a gate on apply",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-validation-gates-apply.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "PW.8.1",
      "identifier_title": "Decide on executable code testing"
    },
    {
      "rule_id": "wowo01",
      "rule_title": "Workers produce inert data",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-workers-produce-inert-data.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "PW.7.2",
      "identifier_title": "Perform code review and analysis"
    },
    {
      "rule_id": "wowo01",
      "rule_title": "Workers produce inert data",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-workers-produce-inert-data.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "PS.1.1",
      "identifier_title": "Protect stored code with least privilege"
    },
    {
      "rule_id": "chgchk",
      "rule_title": "A behavioural change carries a check that fails without it",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-change-carries-check.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "PW.8.2",
      "identifier_title": "Perform and document code testing"
    },
    {
      "rule_id": "fndfix",
      "rule_title": "A verification finding is fixed, not argued away",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-findings-are-fixed-not-argued.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "PO.4.1",
      "identifier_title": "Define software security check criteria"
    },
    {
      "rule_id": "fndfix",
      "rule_title": "A verification finding is fixed, not argued away",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-findings-are-fixed-not-argued.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "PW.7.2",
      "identifier_title": "Perform code review and analysis"
    },
    {
      "rule_id": "hiasrv",
      "rule_title": "High-assurance verification",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-high-assurance-verification.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "PW.2.1",
      "identifier_title": "Review software design against security requirements"
    },
    {
      "rule_id": "hiasrv",
      "rule_title": "High-assurance verification",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-high-assurance-verification.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "PW.7.2",
      "identifier_title": "Perform code review and analysis"
    },
    {
      "rule_id": "mtchcd",
      "rule_title": "Match the surrounding code",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-match-surrounding-code.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "PW.5.1",
      "identifier_title": "Follow secure coding practices"
    },
    {
      "rule_id": "tsthrm",
      "rule_title": "A test's verdict comes from the code, not its surroundings",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-test-hermeticity.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "PW.8.2",
      "identifier_title": "Perform and document code testing"
    },
    {
      "rule_id": "vrfdiv",
      "rule_title": "Verifier diversity",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-QUALI-verifier-diversity.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "PW.7.1",
      "identifier_title": "Decide on code review and analysis"
    },
    {
      "rule_id": "chtrk1",
      "rule_title": "Change record",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-change-record.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "PO.3.3",
      "identifier_title": "Generate artifacts from security tools"
    },
    {
      "rule_id": "recfst",
      "rule_title": "Records first",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-TRUST-records-first.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "PW.1.2",
      "identifier_title": "Track security requirements and design decisions"
    },
    {
      "rule_id": "secsec",
      "rule_title": "Keep secrets out",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-keep-secrets-out.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "PW.5.1",
      "identifier_title": "Follow secure coding practices"
    },
    {
      "rule_id": "secau1",
      "rule_title": "Strong authentication",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authentication.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "PW.1.3",
      "identifier_title": "Use standardized security features and services"
    },
    {
      "rule_id": "secau1",
      "rule_title": "Strong authentication",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authentication.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "PW.5.1",
      "identifier_title": "Follow secure coding practices"
    },
    {
      "rule_id": "secazn",
      "rule_title": "Least-privilege authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authorization.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "PW.5.1",
      "identifier_title": "Follow secure coding practices"
    },
    {
      "rule_id": "seccry",
      "rule_title": "Sound cryptography",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-cryptography.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "PW.5.1",
      "identifier_title": "Follow secure coding practices"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "PO.3.2",
      "identifier_title": "Securely deploy and maintain toolchains"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "PW.4.1",
      "identifier_title": "Acquire well-secured third-party components"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "PW.4.4",
      "identifier_title": "Verify third-party components meet requirements"
    },
    {
      "rule_id": "secinp",
      "rule_title": "Validate external input at the boundary",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-input-validation.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "PW.5.1",
      "identifier_title": "Follow secure coding practices"
    },
    {
      "rule_id": "seckey",
      "rule_title": "Key management",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-key-management.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "PW.5.1",
      "identifier_title": "Follow secure coding practices"
    },
    {
      "rule_id": "secred",
      "rule_title": "Redact sensitive content from logs",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-log-redaction.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "PW.5.1",
      "identifier_title": "Follow secure coding practices"
    },
    {
      "rule_id": "secenc",
      "rule_title": "Encode output for its sink",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-encoding.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "PW.5.1",
      "identifier_title": "Follow secure coding practices"
    },
    {
      "rule_id": "secout",
      "rule_title": "Generated output is untrusted input",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-handling.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "PW.5.1",
      "identifier_title": "Follow secure coding practices"
    },
    {
      "rule_id": "secout",
      "rule_title": "Generated output is untrusted input",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-handling.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "PW.7.1",
      "identifier_title": "Decide on code review and analysis"
    },
    {
      "rule_id": "secout",
      "rule_title": "Generated output is untrusted input",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-handling.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "PW.8.1",
      "identifier_title": "Decide on executable code testing"
    },
    {
      "rule_id": "secvln",
      "rule_title": "Reject known-vulnerable dependency versions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-reject-vulnerable-versions.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "PW.4.4",
      "identifier_title": "Verify third-party components meet requirements"
    },
    {
      "rule_id": "secpub",
      "rule_title": "Publish artefacts with verifiable integrity",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-release-integrity.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "PS.3.2",
      "identifier_title": "Maintain provenance data (SBOM) per release"
    },
    {
      "rule_id": "secpub",
      "rule_title": "Publish artefacts with verifiable integrity",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-release-integrity.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "PS.2.1",
      "identifier_title": "Provide software integrity verification information"
    },
    {
      "rule_id": "seccfg",
      "rule_title": "Secure by default configuration",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-secure-configuration.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "PW.9.1",
      "identifier_title": "Define a secure default configuration baseline"
    },
    {
      "rule_id": "seccfg",
      "rule_title": "Secure by default configuration",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-secure-configuration.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "PW.9.2",
      "identifier_title": "Implement and document secure default settings"
    },
    {
      "rule_id": "seclog",
      "rule_title": "Security logging with traceable context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-security-logging.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "PW.5.1",
      "identifier_title": "Follow secure coding practices"
    },
    {
      "rule_id": "sectok",
      "rule_title": "Secure session and token handling",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-session-token-management.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "PW.5.1",
      "identifier_title": "Follow secure coding practices"
    },
    {
      "rule_id": "secthm",
      "rule_title": "Threat-model new trust boundaries before implementation",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-threat-model-boundaries.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "PW.1.1",
      "identifier_title": "Use risk modeling to assess software risk"
    },
    {
      "rule_id": "secvde",
      "rule_title": "Verify a dependency exists before adding it",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-verify-dependency-exists.md",
      "framework": "nist-ssdf",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "PW.4.1",
      "identifier_title": "Acquire well-secured third-party components"
    },
    {
      "rule_id": "secau1",
      "rule_title": "Strong authentication",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authentication.md",
      "framework": "owasp-api",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "API2",
      "identifier_title": "Broken Authentication"
    },
    {
      "rule_id": "secazn",
      "rule_title": "Least-privilege authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authorization.md",
      "framework": "owasp-api",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "API1",
      "identifier_title": "Broken Object Level Authorization"
    },
    {
      "rule_id": "secazn",
      "rule_title": "Least-privilege authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authorization.md",
      "framework": "owasp-api",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "API3",
      "identifier_title": "Broken Object Property Level Authorization"
    },
    {
      "rule_id": "secazn",
      "rule_title": "Least-privilege authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authorization.md",
      "framework": "owasp-api",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "API5",
      "identifier_title": "Broken Function Level Authorization"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "owasp-api",
      "relation": "addresses risk",
      "fit": "broad",
      "identifier": "API9",
      "identifier_title": "Improper Inventory Management"
    },
    {
      "rule_id": "seccfg",
      "rule_title": "Secure by default configuration",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-secure-configuration.md",
      "framework": "owasp-api",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "API8",
      "identifier_title": "Security Misconfiguration"
    },
    {
      "rule_id": "secssr",
      "rule_title": "Validate server-initiated requests",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-ssrf-prevention.md",
      "framework": "owasp-api",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "API7",
      "identifier_title": "Server Side Request Forgery"
    },
    {
      "rule_id": "secres",
      "rule_title": "Bounded consumption and safe failure",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECA-resource-bounds.md",
      "framework": "owasp-api",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "API4",
      "identifier_title": "Unrestricted Resource Consumption"
    },
    {
      "rule_id": "secegr",
      "rule_title": "Egress goes only to expected destinations",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-egress-destinations.md",
      "framework": "owasp-asi",
      "relation": "addresses risk",
      "fit": "broad",
      "identifier": "ASI02",
      "identifier_title": "Tool Misuse and Exploitation"
    },
    {
      "rule_id": "seclpr",
      "rule_title": "Retrieval enforces the requester's authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-least-privilege-retrieval.md",
      "framework": "owasp-asi",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "ASI03",
      "identifier_title": "Identity and Privilege Abuse"
    },
    {
      "rule_id": "seccet",
      "rule_title": "Configuration that executes on load is treated as code",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-config-is-executable-trust-gate.md",
      "framework": "owasp-asi",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "ASI05",
      "identifier_title": "Unexpected Code Execution (RCE)"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "owasp-asi",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "ASI04",
      "identifier_title": "Agentic Supply Chain Vulnerabilities"
    },
    {
      "rule_id": "secagt",
      "rule_title": "Trust between agents is earned, not inherited",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-inter-agent-trust.md",
      "framework": "owasp-asi",
      "relation": "addresses risk",
      "fit": "broad",
      "identifier": "ASI10",
      "identifier_title": "Rogue Agents"
    },
    {
      "rule_id": "secagt",
      "rule_title": "Trust between agents is earned, not inherited",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-inter-agent-trust.md",
      "framework": "owasp-asi",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "ASI03",
      "identifier_title": "Identity and Privilege Abuse"
    },
    {
      "rule_id": "secagt",
      "rule_title": "Trust between agents is earned, not inherited",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-inter-agent-trust.md",
      "framework": "owasp-asi",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "ASI07",
      "identifier_title": "Insecure Inter-Agent Communication"
    },
    {
      "rule_id": "seclpt",
      "rule_title": "Least-privilege tool and file access",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-least-privilege-tools.md",
      "framework": "owasp-asi",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "ASI02",
      "identifier_title": "Tool Misuse and Exploitation"
    },
    {
      "rule_id": "secopd",
      "rule_title": "Social pressure is not authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-operator-deception.md",
      "framework": "owasp-asi",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "ASI09",
      "identifier_title": "Human-Agent Trust Exploitation"
    },
    {
      "rule_id": "secpsn",
      "rule_title": "Resist data, model, and memory poisoning",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-poisoning-resistance.md",
      "framework": "owasp-asi",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "ASI06",
      "identifier_title": "Memory & Context Poisoning"
    },
    {
      "rule_id": "secprv",
      "rule_title": "A preview makes no change",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-preview-has-no-side-effects.md",
      "framework": "owasp-asi",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "ASI09",
      "identifier_title": "Human-Agent Trust Exploitation"
    },
    {
      "rule_id": "secvln",
      "rule_title": "Reject known-vulnerable dependency versions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-reject-vulnerable-versions.md",
      "framework": "owasp-asi",
      "relation": "addresses risk",
      "fit": "broad",
      "identifier": "ASI04",
      "identifier_title": "Agentic Supply Chain Vulnerabilities"
    },
    {
      "rule_id": "secdsz",
      "rule_title": "Deserialize untrusted data only as data",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-safe-deserialization.md",
      "framework": "owasp-asi",
      "relation": "addresses risk",
      "fit": "broad",
      "identifier": "ASI05",
      "identifier_title": "Unexpected Code Execution (RCE)"
    },
    {
      "rule_id": "sectvl",
      "rule_title": "Validate tool arguments before use",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-tool-argument-validation.md",
      "framework": "owasp-asi",
      "relation": "addresses risk",
      "fit": "broad",
      "identifier": "ASI05",
      "identifier_title": "Unexpected Code Execution (RCE)"
    },
    {
      "rule_id": "secres",
      "rule_title": "Bounded consumption and safe failure",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECA-resource-bounds.md",
      "framework": "owasp-asi",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "ASI08",
      "identifier_title": "Cascading Failures"
    },
    {
      "rule_id": "datbnd",
      "rule_title": "Classify content by sensitivity tier",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-data-boundary.md",
      "framework": "owasp-asvs",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "V14",
      "identifier_title": "Data Protection"
    },
    {
      "rule_id": "secsec",
      "rule_title": "Keep secrets out",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-keep-secrets-out.md",
      "framework": "owasp-asvs",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "V14",
      "identifier_title": "Data Protection"
    },
    {
      "rule_id": "secau1",
      "rule_title": "Strong authentication",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authentication.md",
      "framework": "owasp-asvs",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "V6",
      "identifier_title": "Authentication"
    },
    {
      "rule_id": "secazn",
      "rule_title": "Least-privilege authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authorization.md",
      "framework": "owasp-asvs",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "V8",
      "identifier_title": "Authorization"
    },
    {
      "rule_id": "seccry",
      "rule_title": "Sound cryptography",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-cryptography.md",
      "framework": "owasp-asvs",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "V12",
      "identifier_title": "Secure Communication"
    },
    {
      "rule_id": "seccry",
      "rule_title": "Sound cryptography",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-cryptography.md",
      "framework": "owasp-asvs",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "V11",
      "identifier_title": "Cryptography"
    },
    {
      "rule_id": "secfid",
      "rule_title": "Validate federated identity and token flows",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-federated-identity-flow.md",
      "framework": "owasp-asvs",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "V9",
      "identifier_title": "Self-contained Tokens"
    },
    {
      "rule_id": "secfid",
      "rule_title": "Validate federated identity and token flows",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-federated-identity-flow.md",
      "framework": "owasp-asvs",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "V10",
      "identifier_title": "OAuth and OIDC"
    },
    {
      "rule_id": "secupl",
      "rule_title": "Validate and contain uploaded files",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-file-upload-handling.md",
      "framework": "owasp-asvs",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "V5",
      "identifier_title": "File Handling"
    },
    {
      "rule_id": "secinp",
      "rule_title": "Validate external input at the boundary",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-input-validation.md",
      "framework": "owasp-asvs",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "V2",
      "identifier_title": "Validation and Business Logic"
    },
    {
      "rule_id": "seckey",
      "rule_title": "Key management",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-key-management.md",
      "framework": "owasp-asvs",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "V11",
      "identifier_title": "Cryptography"
    },
    {
      "rule_id": "secred",
      "rule_title": "Redact sensitive content from logs",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-log-redaction.md",
      "framework": "owasp-asvs",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "V16",
      "identifier_title": "Security Logging and Error Handling"
    },
    {
      "rule_id": "secenc",
      "rule_title": "Encode output for its sink",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-encoding.md",
      "framework": "owasp-asvs",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "V1",
      "identifier_title": "Encoding and Sanitization"
    },
    {
      "rule_id": "secout",
      "rule_title": "Generated output is untrusted input",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-handling.md",
      "framework": "owasp-asvs",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "V1",
      "identifier_title": "Encoding and Sanitization"
    },
    {
      "rule_id": "secout",
      "rule_title": "Generated output is untrusted input",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-handling.md",
      "framework": "owasp-asvs",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "V2",
      "identifier_title": "Validation and Business Logic"
    },
    {
      "rule_id": "secaud",
      "rule_title": "Protect audit records from the actors they record",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-protect-audit-records.md",
      "framework": "owasp-asvs",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "V16",
      "identifier_title": "Security Logging and Error Handling"
    },
    {
      "rule_id": "seccfg",
      "rule_title": "Secure by default configuration",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-secure-configuration.md",
      "framework": "owasp-asvs",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "V13",
      "identifier_title": "Configuration"
    },
    {
      "rule_id": "seclog",
      "rule_title": "Security logging with traceable context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-security-logging.md",
      "framework": "owasp-asvs",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "V16",
      "identifier_title": "Security Logging and Error Handling"
    },
    {
      "rule_id": "sectok",
      "rule_title": "Secure session and token handling",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-session-token-management.md",
      "framework": "owasp-asvs",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "V7",
      "identifier_title": "Session Management"
    },
    {
      "rule_id": "sectok",
      "rule_title": "Secure session and token handling",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-session-token-management.md",
      "framework": "owasp-asvs",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "V9",
      "identifier_title": "Self-contained Tokens"
    },
    {
      "rule_id": "secspr",
      "rule_title": "Resolve privileged filesystem paths against symlink races",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-symlink-resolution.md",
      "framework": "owasp-asvs",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "V5",
      "identifier_title": "File Handling"
    },
    {
      "rule_id": "sectvl",
      "rule_title": "Validate tool arguments before use",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-tool-argument-validation.md",
      "framework": "owasp-asvs",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "V2",
      "identifier_title": "Validation and Business Logic"
    },
    {
      "rule_id": "secmin",
      "rule_title": "Minimize personal data sent to AI services",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-data-minimization.md",
      "framework": "owasp-asvs",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "V14",
      "identifier_title": "Data Protection"
    },
    {
      "rule_id": "secdrr",
      "rule_title": "Honour residency, retention, and deletion",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-data-residency-retention.md",
      "framework": "owasp-asvs",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "V14",
      "identifier_title": "Data Protection"
    },
    {
      "rule_id": "secpur",
      "rule_title": "Bind personal-data use to its authorized purpose",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-purpose-limitation.md",
      "framework": "owasp-asvs",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "V14",
      "identifier_title": "Data Protection"
    },
    {
      "rule_id": "secsyn",
      "rule_title": "Fixtures and examples use synthetic data",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-synthetic-fixture-data.md",
      "framework": "owasp-asvs",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "V14",
      "identifier_title": "Data Protection"
    },
    {
      "rule_id": "chkfcl",
      "rule_title": "A check fails closed on input it cannot read",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-INTEG-check-fails-closed-on-unreadable.md",
      "framework": "owasp-cheatsheet",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "error-handling",
      "identifier_title": "Error Handling Cheat Sheet"
    },
    {
      "rule_id": "secsec",
      "rule_title": "Keep secrets out",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-keep-secrets-out.md",
      "framework": "owasp-cheatsheet",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "secrets-management",
      "identifier_title": "Secrets Management Cheat Sheet"
    },
    {
      "rule_id": "secrot",
      "rule_title": "Rotate a leaked secret",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-rotate-leaked-secret.md",
      "framework": "owasp-cheatsheet",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "secrets-management",
      "identifier_title": "Secrets Management Cheat Sheet"
    },
    {
      "rule_id": "secau1",
      "rule_title": "Strong authentication",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authentication.md",
      "framework": "owasp-cheatsheet",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "authentication",
      "identifier_title": "Authentication Cheat Sheet"
    },
    {
      "rule_id": "secau1",
      "rule_title": "Strong authentication",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authentication.md",
      "framework": "owasp-cheatsheet",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "multifactor-authentication",
      "identifier_title": "Multifactor Authentication Cheat Sheet"
    },
    {
      "rule_id": "secazn",
      "rule_title": "Least-privilege authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authorization.md",
      "framework": "owasp-cheatsheet",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "mass-assignment",
      "identifier_title": "Mass Assignment Cheat Sheet"
    },
    {
      "rule_id": "secazn",
      "rule_title": "Least-privilege authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authorization.md",
      "framework": "owasp-cheatsheet",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "authorization",
      "identifier_title": "Authorization Cheat Sheet"
    },
    {
      "rule_id": "seccry",
      "rule_title": "Sound cryptography",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-cryptography.md",
      "framework": "owasp-cheatsheet",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "cryptographic-storage",
      "identifier_title": "Cryptographic Storage Cheat Sheet"
    },
    {
      "rule_id": "seccry",
      "rule_title": "Sound cryptography",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-cryptography.md",
      "framework": "owasp-cheatsheet",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "transport-layer-security",
      "identifier_title": "Transport Layer Security Cheat Sheet"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "owasp-cheatsheet",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "software-supply-chain-security",
      "identifier_title": "Software Supply Chain Security Cheat Sheet"
    },
    {
      "rule_id": "secfcl",
      "rule_title": "Fail closed in security-relevant paths",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-fail-closed.md",
      "framework": "owasp-cheatsheet",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "error-handling",
      "identifier_title": "Error Handling Cheat Sheet"
    },
    {
      "rule_id": "secfid",
      "rule_title": "Validate federated identity and token flows",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-federated-identity-flow.md",
      "framework": "owasp-cheatsheet",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "json-web-token",
      "identifier_title": "JSON Web Token Cheat Sheet"
    },
    {
      "rule_id": "secfid",
      "rule_title": "Validate federated identity and token flows",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-federated-identity-flow.md",
      "framework": "owasp-cheatsheet",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "oauth2",
      "identifier_title": "OAuth2 Cheat Sheet"
    },
    {
      "rule_id": "secupl",
      "rule_title": "Validate and contain uploaded files",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-file-upload-handling.md",
      "framework": "owasp-cheatsheet",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "file-upload",
      "identifier_title": "File Upload Cheat Sheet"
    },
    {
      "rule_id": "secinp",
      "rule_title": "Validate external input at the boundary",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-input-validation.md",
      "framework": "owasp-cheatsheet",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "input-validation",
      "identifier_title": "Input Validation Cheat Sheet"
    },
    {
      "rule_id": "secagt",
      "rule_title": "Trust between agents is earned, not inherited",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-inter-agent-trust.md",
      "framework": "owasp-cheatsheet",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "ai-agent-security",
      "identifier_title": "AI Agent Security Cheat Sheet"
    },
    {
      "rule_id": "secagt",
      "rule_title": "Trust between agents is earned, not inherited",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-inter-agent-trust.md",
      "framework": "owasp-cheatsheet",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "mcp-security",
      "identifier_title": "MCP Security Cheat Sheet"
    },
    {
      "rule_id": "seckey",
      "rule_title": "Key management",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-key-management.md",
      "framework": "owasp-cheatsheet",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "key-management",
      "identifier_title": "Key Management Cheat Sheet"
    },
    {
      "rule_id": "secenc",
      "rule_title": "Encode output for its sink",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-encoding.md",
      "framework": "owasp-cheatsheet",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "cross-site-scripting-prevention",
      "identifier_title": "Cross Site Scripting Prevention Cheat Sheet"
    },
    {
      "rule_id": "secout",
      "rule_title": "Generated output is untrusted input",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-handling.md",
      "framework": "owasp-cheatsheet",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "cross-site-scripting-prevention",
      "identifier_title": "Cross Site Scripting Prevention Cheat Sheet"
    },
    {
      "rule_id": "secout",
      "rule_title": "Generated output is untrusted input",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-handling.md",
      "framework": "owasp-cheatsheet",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "injection-prevention",
      "identifier_title": "Injection Prevention Cheat Sheet"
    },
    {
      "rule_id": "secaud",
      "rule_title": "Protect audit records from the actors they record",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-protect-audit-records.md",
      "framework": "owasp-cheatsheet",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "logging",
      "identifier_title": "Logging Cheat Sheet"
    },
    {
      "rule_id": "secvln",
      "rule_title": "Reject known-vulnerable dependency versions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-reject-vulnerable-versions.md",
      "framework": "owasp-cheatsheet",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "vulnerable-dependency-management",
      "identifier_title": "Vulnerable Dependency Management Cheat Sheet"
    },
    {
      "rule_id": "secpub",
      "rule_title": "Publish artefacts with verifiable integrity",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-release-integrity.md",
      "framework": "owasp-cheatsheet",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "software-supply-chain-security",
      "identifier_title": "Software Supply Chain Security Cheat Sheet"
    },
    {
      "rule_id": "secdsz",
      "rule_title": "Deserialize untrusted data only as data",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-safe-deserialization.md",
      "framework": "owasp-cheatsheet",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "deserialization",
      "identifier_title": "Deserialization Cheat Sheet"
    },
    {
      "rule_id": "seclog",
      "rule_title": "Security logging with traceable context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-security-logging.md",
      "framework": "owasp-cheatsheet",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "logging",
      "identifier_title": "Logging Cheat Sheet"
    },
    {
      "rule_id": "sectok",
      "rule_title": "Secure session and token handling",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-session-token-management.md",
      "framework": "owasp-cheatsheet",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "cross-site-request-forgery-prevention",
      "identifier_title": "Cross-Site Request Forgery Prevention Cheat Sheet"
    },
    {
      "rule_id": "sectok",
      "rule_title": "Secure session and token handling",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-session-token-management.md",
      "framework": "owasp-cheatsheet",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "session-management",
      "identifier_title": "Session Management Cheat Sheet"
    },
    {
      "rule_id": "secssr",
      "rule_title": "Validate server-initiated requests",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-ssrf-prevention.md",
      "framework": "owasp-cheatsheet",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "server-side-request-forgery-prevention",
      "identifier_title": "Server Side Request Forgery Prevention Cheat Sheet"
    },
    {
      "rule_id": "secthm",
      "rule_title": "Threat-model new trust boundaries before implementation",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-threat-model-boundaries.md",
      "framework": "owasp-cheatsheet",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "threat-modeling",
      "identifier_title": "Threat Modeling Cheat Sheet"
    },
    {
      "rule_id": "secunt",
      "rule_title": "Untrusted content is data, not instructions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-untrusted-content.md",
      "framework": "owasp-cheatsheet",
      "relation": "aligns with guidance",
      "fit": "tight",
      "identifier": "llm-prompt-injection-prevention",
      "identifier_title": "LLM Prompt Injection Prevention Cheat Sheet"
    },
    {
      "rule_id": "secres",
      "rule_title": "Bounded consumption and safe failure",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECA-resource-bounds.md",
      "framework": "owasp-cheatsheet",
      "relation": "aligns with guidance",
      "fit": "broad",
      "identifier": "denial-of-service",
      "identifier_title": "Denial of Service Cheat Sheet"
    },
    {
      "rule_id": "corrob",
      "rule_title": "Corroborate external claims",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-ACCUR-corroborate-external-claims.md",
      "framework": "owasp-llm",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "LLM07",
      "identifier_title": "Misinformation"
    },
    {
      "rule_id": "nofabr",
      "rule_title": "No fabrication",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/aiqt/10-ACCUR-no-fabrication.md",
      "framework": "owasp-llm",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "LLM07",
      "identifier_title": "Misinformation"
    },
    {
      "rule_id": "datbnd",
      "rule_title": "Classify content by sensitivity tier",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-data-boundary.md",
      "framework": "owasp-llm",
      "relation": "addresses risk",
      "fit": "broad",
      "identifier": "LLM02",
      "identifier_title": "Sensitive Information Disclosure"
    },
    {
      "rule_id": "secegr",
      "rule_title": "Egress goes only to expected destinations",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-egress-destinations.md",
      "framework": "owasp-llm",
      "relation": "addresses risk",
      "fit": "broad",
      "identifier": "LLM02",
      "identifier_title": "Sensitive Information Disclosure"
    },
    {
      "rule_id": "secsec",
      "rule_title": "Keep secrets out",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-keep-secrets-out.md",
      "framework": "owasp-llm",
      "relation": "addresses risk",
      "fit": "broad",
      "identifier": "LLM02",
      "identifier_title": "Sensitive Information Disclosure"
    },
    {
      "rule_id": "secndc",
      "rule_title": "No disclosure of secrets or hidden context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-no-hidden-context-disclosure.md",
      "framework": "owasp-llm",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "LLM02",
      "identifier_title": "Sensitive Information Disclosure"
    },
    {
      "rule_id": "secndc",
      "rule_title": "No disclosure of secrets or hidden context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-no-hidden-context-disclosure.md",
      "framework": "owasp-llm",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "LLM08",
      "identifier_title": "Hidden Context Exposure"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "owasp-llm",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "LLM04",
      "identifier_title": "Supply Chain"
    },
    {
      "rule_id": "sechau",
      "rule_title": "Human authorization for consequential actions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-human-authorization.md",
      "framework": "owasp-llm",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "LLM03",
      "identifier_title": "Excessive Agency"
    },
    {
      "rule_id": "seclpt",
      "rule_title": "Least-privilege tool and file access",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-least-privilege-tools.md",
      "framework": "owasp-llm",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "LLM03",
      "identifier_title": "Excessive Agency"
    },
    {
      "rule_id": "secout",
      "rule_title": "Generated output is untrusted input",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-handling.md",
      "framework": "owasp-llm",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "LLM10",
      "identifier_title": "Improper Output Handling"
    },
    {
      "rule_id": "secpin",
      "rule_title": "Referenced instructions are pinned and re-verified",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-pin-referenced-instructions.md",
      "framework": "owasp-llm",
      "relation": "addresses risk",
      "fit": "broad",
      "identifier": "LLM03",
      "identifier_title": "Excessive Agency"
    },
    {
      "rule_id": "secpsn",
      "rule_title": "Resist data, model, and memory poisoning",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-poisoning-resistance.md",
      "framework": "owasp-llm",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "LLM05",
      "identifier_title": "Data and Model Poisoning"
    },
    {
      "rule_id": "secpsn",
      "rule_title": "Resist data, model, and memory poisoning",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-poisoning-resistance.md",
      "framework": "owasp-llm",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "LLM09",
      "identifier_title": "Vector and Embedding Weaknesses"
    },
    {
      "rule_id": "secpth",
      "rule_title": "Higher-trust instructions outrank lower-trust ones",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-prompt-trust-hierarchy.md",
      "framework": "owasp-llm",
      "relation": "addresses risk",
      "fit": "broad",
      "identifier": "LLM01",
      "identifier_title": "Prompt Injection"
    },
    {
      "rule_id": "secvln",
      "rule_title": "Reject known-vulnerable dependency versions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-reject-vulnerable-versions.md",
      "framework": "owasp-llm",
      "relation": "addresses risk",
      "fit": "broad",
      "identifier": "LLM04",
      "identifier_title": "Supply Chain"
    },
    {
      "rule_id": "secunt",
      "rule_title": "Untrusted content is data, not instructions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-untrusted-content.md",
      "framework": "owasp-llm",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "LLM01",
      "identifier_title": "Prompt Injection"
    },
    {
      "rule_id": "secvde",
      "rule_title": "Verify a dependency exists before adding it",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-verify-dependency-exists.md",
      "framework": "owasp-llm",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "LLM04",
      "identifier_title": "Supply Chain"
    },
    {
      "rule_id": "secres",
      "rule_title": "Bounded consumption and safe failure",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECA-resource-bounds.md",
      "framework": "owasp-llm",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "LLM06",
      "identifier_title": "Unbounded Consumption"
    },
    {
      "rule_id": "secmin",
      "rule_title": "Minimize personal data sent to AI services",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-data-minimization.md",
      "framework": "owasp-llm",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "LLM02",
      "identifier_title": "Sensitive Information Disclosure"
    },
    {
      "rule_id": "secsyn",
      "rule_title": "Fixtures and examples use synthetic data",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECP-synthetic-fixture-data.md",
      "framework": "owasp-llm",
      "relation": "addresses risk",
      "fit": "broad",
      "identifier": "LLM02",
      "identifier_title": "Sensitive Information Disclosure"
    },
    {
      "rule_id": "secsec",
      "rule_title": "Keep secrets out",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-keep-secrets-out.md",
      "framework": "owasp-mcp",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "MCP01",
      "identifier_title": "Token Mismanagement & Secret Exposure"
    },
    {
      "rule_id": "seclpr",
      "rule_title": "Retrieval enforces the requester's authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-least-privilege-retrieval.md",
      "framework": "owasp-mcp",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "MCP07",
      "identifier_title": "Insufficient Authentication & Authorization"
    },
    {
      "rule_id": "secncb",
      "rule_title": "No cross-context bleed",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-no-cross-context-bleed.md",
      "framework": "owasp-mcp",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "MCP10",
      "identifier_title": "Context Injection & Over-Sharing"
    },
    {
      "rule_id": "secrot",
      "rule_title": "Rotate a leaked secret",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECC-rotate-leaked-secret.md",
      "framework": "owasp-mcp",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "MCP01",
      "identifier_title": "Token Mismanagement & Secret Exposure"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "owasp-mcp",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "MCP04",
      "identifier_title": "Software Supply Chain Attacks & Dependency Tampering"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "owasp-mcp",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "MCP09",
      "identifier_title": "Shadow MCP Servers"
    },
    {
      "rule_id": "secgci",
      "rule_title": "Guardrail configuration is integrity-protected",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-guardrail-config-integrity.md",
      "framework": "owasp-mcp",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "MCP02",
      "identifier_title": "Privilege Escalation via Scope Creep"
    },
    {
      "rule_id": "secagt",
      "rule_title": "Trust between agents is earned, not inherited",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-inter-agent-trust.md",
      "framework": "owasp-mcp",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "MCP07",
      "identifier_title": "Insufficient Authentication & Authorization"
    },
    {
      "rule_id": "seclpt",
      "rule_title": "Least-privilege tool and file access",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-least-privilege-tools.md",
      "framework": "owasp-mcp",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "MCP02",
      "identifier_title": "Privilege Escalation via Scope Creep"
    },
    {
      "rule_id": "secpsn",
      "rule_title": "Resist data, model, and memory poisoning",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-poisoning-resistance.md",
      "framework": "owasp-mcp",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "MCP03",
      "identifier_title": "Tool Poisoning"
    },
    {
      "rule_id": "secaud",
      "rule_title": "Protect audit records from the actors they record",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-protect-audit-records.md",
      "framework": "owasp-mcp",
      "relation": "addresses risk",
      "fit": "broad",
      "identifier": "MCP08",
      "identifier_title": "Lack of Audit and Telemetry"
    },
    {
      "rule_id": "secvln",
      "rule_title": "Reject known-vulnerable dependency versions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-reject-vulnerable-versions.md",
      "framework": "owasp-mcp",
      "relation": "addresses risk",
      "fit": "broad",
      "identifier": "MCP04",
      "identifier_title": "Software Supply Chain Attacks & Dependency Tampering"
    },
    {
      "rule_id": "seclog",
      "rule_title": "Security logging with traceable context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-security-logging.md",
      "framework": "owasp-mcp",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "MCP08",
      "identifier_title": "Lack of Audit and Telemetry"
    },
    {
      "rule_id": "sectvl",
      "rule_title": "Validate tool arguments before use",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-tool-argument-validation.md",
      "framework": "owasp-mcp",
      "relation": "addresses risk",
      "fit": "broad",
      "identifier": "MCP05",
      "identifier_title": "Command Injection & Execution"
    },
    {
      "rule_id": "secunt",
      "rule_title": "Untrusted content is data, not instructions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-untrusted-content.md",
      "framework": "owasp-mcp",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "MCP06",
      "identifier_title": "Intent Flow Subversion"
    },
    {
      "rule_id": "secunt",
      "rule_title": "Untrusted content is data, not instructions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-untrusted-content.md",
      "framework": "owasp-mcp",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "MCP10",
      "identifier_title": "Context Injection & Over-Sharing"
    },
    {
      "rule_id": "secazn",
      "rule_title": "Least-privilege authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authorization.md",
      "framework": "owasp-proactive",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "C1",
      "identifier_title": "Implement Access Control"
    },
    {
      "rule_id": "seccry",
      "rule_title": "Sound cryptography",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-cryptography.md",
      "framework": "owasp-proactive",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "C2",
      "identifier_title": "Use Cryptography to Protect Data"
    },
    {
      "rule_id": "secfid",
      "rule_title": "Validate federated identity and token flows",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-federated-identity-flow.md",
      "framework": "owasp-proactive",
      "relation": "supports control",
      "fit": "broad",
      "identifier": "C7",
      "identifier_title": "Secure Digital Identities"
    },
    {
      "rule_id": "secinp",
      "rule_title": "Validate external input at the boundary",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-input-validation.md",
      "framework": "owasp-proactive",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "C3",
      "identifier_title": "Validate all Input & Handle Exceptions"
    },
    {
      "rule_id": "secout",
      "rule_title": "Generated output is untrusted input",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-handling.md",
      "framework": "owasp-proactive",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "C3",
      "identifier_title": "Validate all Input & Handle Exceptions"
    },
    {
      "rule_id": "secvln",
      "rule_title": "Reject known-vulnerable dependency versions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-reject-vulnerable-versions.md",
      "framework": "owasp-proactive",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "C6",
      "identifier_title": "Keep your Components Secure"
    },
    {
      "rule_id": "seccfg",
      "rule_title": "Secure by default configuration",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-secure-configuration.md",
      "framework": "owasp-proactive",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "C5",
      "identifier_title": "Secure By Default Configurations"
    },
    {
      "rule_id": "seclog",
      "rule_title": "Security logging with traceable context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-security-logging.md",
      "framework": "owasp-proactive",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "C9",
      "identifier_title": "Implement Security Logging and Monitoring"
    },
    {
      "rule_id": "secssr",
      "rule_title": "Validate server-initiated requests",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-ssrf-prevention.md",
      "framework": "owasp-proactive",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "C10",
      "identifier_title": "Stop Server Side Request Forgery"
    },
    {
      "rule_id": "secthm",
      "rule_title": "Threat-model new trust boundaries before implementation",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-threat-model-boundaries.md",
      "framework": "owasp-proactive",
      "relation": "supports control",
      "fit": "tight",
      "identifier": "C4",
      "identifier_title": "Address Security from the Start"
    },
    {
      "rule_id": "secau1",
      "rule_title": "Strong authentication",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authentication.md",
      "framework": "owasp-web",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "A07",
      "identifier_title": "Authentication Failures"
    },
    {
      "rule_id": "secazn",
      "rule_title": "Least-privilege authorization",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-authorization.md",
      "framework": "owasp-web",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "A01",
      "identifier_title": "Broken Access Control"
    },
    {
      "rule_id": "seccry",
      "rule_title": "Sound cryptography",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-cryptography.md",
      "framework": "owasp-web",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "A04",
      "identifier_title": "Cryptographic Failures"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "owasp-web",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "A03",
      "identifier_title": "Software Supply Chain Failures"
    },
    {
      "rule_id": "secsup",
      "rule_title": "Trusted, pinned dependency provenance",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-dependency-provenance.md",
      "framework": "owasp-web",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "A08",
      "identifier_title": "Software or Data Integrity Failures"
    },
    {
      "rule_id": "secfcl",
      "rule_title": "Fail closed in security-relevant paths",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-fail-closed.md",
      "framework": "owasp-web",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "A10",
      "identifier_title": "Mishandling of Exceptional Conditions"
    },
    {
      "rule_id": "secinp",
      "rule_title": "Validate external input at the boundary",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-input-validation.md",
      "framework": "owasp-web",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "A05",
      "identifier_title": "Injection"
    },
    {
      "rule_id": "secenc",
      "rule_title": "Encode output for its sink",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-encoding.md",
      "framework": "owasp-web",
      "relation": "addresses risk",
      "fit": "broad",
      "identifier": "A05",
      "identifier_title": "Injection"
    },
    {
      "rule_id": "secout",
      "rule_title": "Generated output is untrusted input",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-output-handling.md",
      "framework": "owasp-web",
      "relation": "addresses risk",
      "fit": "broad",
      "identifier": "A05",
      "identifier_title": "Injection"
    },
    {
      "rule_id": "secaud",
      "rule_title": "Protect audit records from the actors they record",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-protect-audit-records.md",
      "framework": "owasp-web",
      "relation": "addresses risk",
      "fit": "broad",
      "identifier": "A09",
      "identifier_title": "Security Logging & Alerting Failures"
    },
    {
      "rule_id": "secvln",
      "rule_title": "Reject known-vulnerable dependency versions",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-reject-vulnerable-versions.md",
      "framework": "owasp-web",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "A03",
      "identifier_title": "Software Supply Chain Failures"
    },
    {
      "rule_id": "secpub",
      "rule_title": "Publish artefacts with verifiable integrity",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-release-integrity.md",
      "framework": "owasp-web",
      "relation": "addresses risk",
      "fit": "broad",
      "identifier": "A08",
      "identifier_title": "Software or Data Integrity Failures"
    },
    {
      "rule_id": "secdsz",
      "rule_title": "Deserialize untrusted data only as data",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-safe-deserialization.md",
      "framework": "owasp-web",
      "relation": "addresses risk",
      "fit": "broad",
      "identifier": "A08",
      "identifier_title": "Software or Data Integrity Failures"
    },
    {
      "rule_id": "seccfg",
      "rule_title": "Secure by default configuration",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-secure-configuration.md",
      "framework": "owasp-web",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "A02",
      "identifier_title": "Security Misconfiguration"
    },
    {
      "rule_id": "seclog",
      "rule_title": "Security logging with traceable context",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-security-logging.md",
      "framework": "owasp-web",
      "relation": "addresses risk",
      "fit": "tight",
      "identifier": "A09",
      "identifier_title": "Security Logging & Alerting Failures"
    },
    {
      "rule_id": "secthm",
      "rule_title": "Threat-model new trust boundaries before implementation",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-threat-model-boundaries.md",
      "framework": "owasp-web",
      "relation": "addresses risk",
      "fit": "broad",
      "identifier": "A06",
      "identifier_title": "Insecure Design"
    },
    {
      "rule_id": "sectvl",
      "rule_title": "Validate tool arguments before use",
      "rule_source": "https://github.com/jposluns/guardrails/blob/main/.claude/rules/security/SECI-tool-argument-validation.md",
      "framework": "owasp-web",
      "relation": "addresses risk",
      "fit": "broad",
      "identifier": "A05",
      "identifier_title": "Injection"
    }
  ]
}
