{
  "version": "0.2.3",
  "mode": "audit-only",
  "parserPolicy": {
    "inspectEverySegment": true,
    "inspectScriptBodies": true,
    "rejectUnknownExecutables": true,
    "rejectShellWrappers": true,
    "rejectHeredocs": true,
    "rejectRedirection": true,
    "providerSpecificNpx": true,
    "authenticatedCurlRequiresApproval": true,
    "boundedReadsRequired": true,
    "allowedComposition": "read-only"
  },
  "allowedFamilies": [
    {
      "name": "bounded-secret-pattern-inspection",
      "executables": ["pwd", "ls", "rg", "find", "sed", "head"],
      "argumentPolicy": {
        "strategy": "pattern",
        "allowedPatterns": ["bounded repository-local path/count secret-pattern inspection"],
        "deniedPatterns": ["secret files, matched values, credential stores, API calls, and unbounded traversal"]
      },
      "constraints": [
        "Remain inside the declared project scope.",
        "Bound traversal depth and output.",
        "Exclude .env, secret-bearing, generated, dependency, build, and runtime-output paths.",
        "Report file paths, finding types, and counts only."
      ]
    },
    {
      "name": "git-identity-inspection",
      "executables": ["git"],
      "argumentPolicy": {
        "strategy": "exact",
        "allowedPatterns": ["rev-parse and status --short --branch"],
        "deniedPatterns": ["all Git mutation and publication subcommands"]
      },
      "constraints": ["Allow only read-only repository identity and branch-state inspection."]
    },
    {
      "name": "secret-audit-renderer",
      "executables": ["node", "coding-agent-skills"],
      "argumentPolicy": {
        "strategy": "exact",
        "allowedPatterns": ["node scripts/render-secret-audit.mjs <project-root>; coding-agent-skills secret-audit <project-root>"],
        "deniedPatterns": [".env reads, matched values, credential validation, rotation, API calls, builds, tests, deployment, migration, and package installation"]
      },
      "constraints": [
        "The renderer must remain static and read-only.",
        "Do not print matched values or treat findings as credential validity evidence."
      ]
    }
  ],
  "restrictedCategories": [
    "file-write",
    "package-install",
    "deployment",
    "git-mutation",
    "unrestricted-scan",
    "secret-read",
    "process-mutation",
    "service-mutation",
    "migration-apply",
    "privileged-api"
  ],
  "approvalExceptions": [
    "A named-file approval may permit one otherwise excluded non-mutating static read when the file is not secret-bearing."
  ]
}
