{
  "$schema": "./node_modules/@elvatis_com/aahp/schema/aahp-config.schema.json",
  "versionSites": [
    { "file": "src/cli.ts", "minOccurrences": 1, "note": "CLI --version banner" },
    { "file": "README.md", "minOccurrences": 1, "boundary": true, "note": "install snippet" }
  ],
  "claims": [
    {
      "id": "rule count",
      "canonical": "350+",
      "advertised": 350,
      "phrase": "(\\d+)\\+\\s*(?:detection rules|rules)\\b",
      "flags": "gi",
      "floorCmd": "scripts/count-rules.mjs",
      "surfaces": [
        { "file": "README.md", "note": "intro" },
        { "file": "package.json", "note": "npm description" }
      ]
    }
  ],
  "generate": {
    "log": {
      "source": "CHANGELOG.md",
      "target": "docs/RELEASES.md",
      "title": "My Project: Release Journal"
    },
    "freshness": {
      "file": ".ai/handoff/NEXT_ACTIONS.md"
    }
  },
  "forbiddenPatterns": [
    { "id": "em-dash", "pattern": "\\u2014", "message": "em dash (U+2014) is banned; use a hyphen" }
  ],
  "docSync": [
    {
      "id": "task-status-enum",
      "sources": [
        { "file": "schema/my-manifest.schema.json", "pattern": "\"(ready|in_progress|blocked|done|cancelled)\"" },
        { "file": "README.md", "pattern": "`(ready|in_progress|blocked|done|cancelled)`" }
      ]
    }
  ],
  "docLinks": {
    "include": ["README.md", "docs/*.md"]
  },
  "acceptanceCriteria": {
    "include": [".ai/handoff/NEXT_ACTIONS.md"],
    "manifest": ".ai/handoff/MANIFEST.json"
  },
  "handoffImpact": {
    "nonImpactingModifiedFiles": [
      {
        "file": ".github/dependabot.yml",
        "reason": "Dependency update scheduling does not describe product or implementation state."
      }
    ],
    "npmDevDependencyUpdates": {
      "reason": "Registry-pinned devDependency lockfile updates change no shipped file and no runtime dependency.",
      "supplyChainScan": { "workflow": ".github/workflows/ci.yml", "job": "supply-chain-guard" }
    }
  },
  "trustTtl": {
    "enforce": true,
    "graceDays": 14,
    "checks": [
      {
        "id": "build-passes",
        "run": ["node", "scripts/build.mjs", "--check"],
        "reason": "A zero exit from the build is the claim the Build passes row makes."
      }
    ]
  },
  "check": {
    "skip": ["claims"]
  },
  "pinnedDep": {
    "name": "@elvatis_com/aahp",
    "location": "devDependencies",
    "allowRange": false
  }
}
