{
  "project": "GatePath",
  "version": "default.20260617.065156",
  "profile": "default",
  "generatedAt": "2026-06-17T06:54:11.062Z",
  "revision": {
    "source": "local-git",
    "commit": "4575a1392d9ec50165631636b50c964ad69ff4eb",
    "shortCommit": "4575a1392d9e",
    "branch": "HEAD"
  },
  "ok": true,
  "releaseBlockingCount": 0,
  "advisoryActionCount": 4,
  "siteBaseUrl": "https://proxy.du.dev",
  "resourceBaseUrl": "https://proxy.du.dev",
  "counts": {
    "apps": 881,
    "resources": 10724,
    "clients": 5,
    "localizedNameApps": 843,
    "realIconApps": 881,
    "placeholderIconApps": 0,
    "ruleConflicts": 428,
    "duplicateRules": 4692
  },
  "releaseBlockingActions": [],
  "advisoryActions": [
    {
      "id": "app-alias-missing",
      "area": "aliases",
      "priority": "medium",
      "count": 38,
      "source": "sources/app-alias-missing-report.json",
      "action": "Review uncertain apps and add only verified Chinese names to tools/assets/app-names-verified.ts.",
      "blockingRelease": false,
      "sampleApps": [
        "appletv",
        "bahamut",
        "bcz",
        "biyao",
        "blibee",
        "clubhouse",
        "discoveryplus",
        "elastic",
        "fastly",
        "figma",
        "grafana",
        "ihuman"
      ]
    },
    {
      "id": "app-alias-uncertain",
      "area": "aliases",
      "priority": "low",
      "count": 38,
      "source": "sources/app-alias-uncertain-report.json",
      "action": "Keep ambiguous names unpublished until a trusted source confirms the app identity.",
      "blockingRelease": false,
      "sampleApps": [
        "appletv",
        "bahamut",
        "bcz",
        "biyao",
        "blibee",
        "clubhouse",
        "discoveryplus",
        "elastic",
        "fastly",
        "figma",
        "grafana",
        "ihuman"
      ]
    },
    {
      "id": "rule-conflict-review",
      "area": "rules",
      "priority": "high",
      "count": 428,
      "source": "dist/rule-conflict-review.json",
      "action": "Record explicit keep-both, prefer-app, move-to-shared, or ignore decisions in sources/rule-conflict-decisions.yaml.",
      "blockingRelease": false
    },
    {
      "id": "cross-app-duplicate-rules",
      "area": "rules",
      "priority": "medium",
      "count": 4692,
      "source": "dist/rule-duplicate-pack.json",
      "action": "Review same-policy duplicates in the duplicate pack before deciding keep-per-app or future shared rule ownership; do not delete cross-app duplicates automatically.",
      "blockingRelease": false
    }
  ],
  "topAdvisoryActions": [
    {
      "id": "rule-conflict-review",
      "area": "rules",
      "priority": "high",
      "count": 428,
      "source": "dist/rule-conflict-review.json"
    },
    {
      "id": "cross-app-duplicate-rules",
      "area": "rules",
      "priority": "medium",
      "count": 4692,
      "source": "dist/rule-duplicate-pack.json"
    },
    {
      "id": "app-alias-missing",
      "area": "aliases",
      "priority": "medium",
      "count": 38,
      "source": "sources/app-alias-missing-report.json"
    },
    {
      "id": "app-alias-uncertain",
      "area": "aliases",
      "priority": "low",
      "count": 38,
      "source": "sources/app-alias-uncertain-report.json"
    }
  ],
  "notes": [
    "Release-blocking actions must be empty before deployment.",
    "Advisory actions document known production follow-ups and do not block a formally checked release.",
    "All published resources must remain localized under the configured GatePath site/resource origins."
  ]
}
