{
  "schema_version": "1.0.0",
  "scanner": {
    "name": "global-capability-catalog",
    "version": "0.1.0"
  },
  "repo": {
    "id": "github-recent__mbarbine__platphorm-insights",
    "name": "mbarbine__platphorm-insights",
    "path": "/Users/bwm.barbinewarnermichael/Documents/github/repositories/github-recent/mbarbine__platphorm-insights",
    "relative_path": "github-recent/mbarbine__platphorm-insights",
    "remote_url": "git@github.com:mbarbine/platphorm-insights.git",
    "default_branch": "main",
    "current_commit": "66529fdb53f16b87dd5bac679269dad347aaf7bd"
  },
  "languages": [
    {
      "language": "TypeScript",
      "files": 376,
      "bytes": 2430324
    },
    {
      "language": "YAML",
      "files": 2,
      "bytes": 332163
    },
    {
      "language": "SQL",
      "files": 25,
      "bytes": 171616
    },
    {
      "language": "Markdown",
      "files": 17,
      "bytes": 133179
    },
    {
      "language": "JSON",
      "files": 17,
      "bytes": 126154
    },
    {
      "language": "CSS",
      "files": 2,
      "bytes": 15527
    },
    {
      "language": "JavaScript",
      "files": 3,
      "bytes": 1117
    },
    {
      "language": "Dockerfile",
      "files": 1,
      "bytes": 562
    },
    {
      "language": "Shell",
      "files": 2,
      "bytes": 394
    }
  ],
  "frameworks": [
    {
      "name": "Next.js",
      "confidence": "high",
      "evidence_paths": [
        "next.config.mjs"
      ]
    }
  ],
  "packages": {
    "package_manager": "pnpm",
    "manifests": [
      {
        "path": "package.json",
        "name": null,
        "version": null,
        "scripts": {},
        "dependencies": {},
        "dev_dependencies": {}
      }
    ]
  },
  "routes": {
    "api_routes": [
      {
        "route": "/cron/cleanup",
        "source_path": "app/api/cron/cleanup/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/cron/maintenance",
        "source_path": "app/api/cron/maintenance/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/cron/mcp-ping",
        "source_path": "app/api/cron/mcp-ping/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/cron/scheduled-analyses",
        "source_path": "app/api/cron/scheduled-analyses/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/cron/sitemap-update",
        "source_path": "app/api/cron/sitemap-update/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/docs",
        "source_path": "app/api/docs/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/events",
        "source_path": "app/api/events/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET",
          "POST"
        ]
      },
      {
        "route": "/health",
        "source_path": "app/api/health/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/mcp",
        "source_path": "app/api/mcp/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET",
          "OPTIONS",
          "POST"
        ]
      },
      {
        "route": "/og",
        "source_path": "app/api/og/route.tsx",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/advanced-scores",
        "source_path": "app/api/v1/advanced-scores/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "POST"
        ]
      },
      {
        "route": "/v1/analyses/[id]/export",
        "source_path": "app/api/v1/analyses/[id]/export/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET",
          "OPTIONS"
        ]
      },
      {
        "route": "/v1/analyses/[id]",
        "source_path": "app/api/v1/analyses/[id]/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/analyses/[id]/status",
        "source_path": "app/api/v1/analyses/[id]/status/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/analyze",
        "source_path": "app/api/v1/analyze/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET",
          "POST"
        ]
      },
      {
        "route": "/v1/bulk",
        "source_path": "app/api/v1/bulk/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET",
          "POST"
        ]
      },
      {
        "route": "/v1/compare/[id]",
        "source_path": "app/api/v1/compare/[id]/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/compare",
        "source_path": "app/api/v1/compare/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET",
          "POST"
        ]
      },
      {
        "route": "/v1/dashboard",
        "source_path": "app/api/v1/dashboard/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/health",
        "source_path": "app/api/v1/health/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/history",
        "source_path": "app/api/v1/history/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/insights",
        "source_path": "app/api/v1/insights/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET",
          "POST"
        ]
      },
      {
        "route": "/v1/integrations/platphorm",
        "source_path": "app/api/v1/integrations/platphorm/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET",
          "POST"
        ]
      },
      {
        "route": "/v1/llm-instructions",
        "source_path": "app/api/v1/llm-instructions/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET",
          "POST"
        ]
      },
      {
        "route": "/v1/network/analyze",
        "source_path": "app/api/v1/network/analyze/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "POST"
        ]
      },
      {
        "route": "/v1/network/compliance",
        "source_path": "app/api/v1/network/compliance/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/network/graph",
        "source_path": "app/api/v1/network/graph/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET",
          "POST"
        ]
      },
      {
        "route": "/v1/network/rankings",
        "source_path": "app/api/v1/network/rankings/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/network/reports/latest",
        "source_path": "app/api/v1/network/reports/latest/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/network/route-compliance",
        "source_path": "app/api/v1/network/route-compliance/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/network/sites",
        "source_path": "app/api/v1/network/sites/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/network/trusted-domains",
        "source_path": "app/api/v1/network/trusted-domains/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/ranking-profiles/[slug]",
        "source_path": "app/api/v1/ranking-profiles/[slug]/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/ranking-profiles",
        "source_path": "app/api/v1/ranking-profiles/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/rankings/[id]",
        "source_path": "app/api/v1/rankings/[id]/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/rankings/domains",
        "source_path": "app/api/v1/rankings/domains/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/rankings/network",
        "source_path": "app/api/v1/rankings/network/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/rankings/recalculate",
        "source_path": "app/api/v1/rankings/recalculate/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "POST"
        ]
      },
      {
        "route": "/v1/rankings",
        "source_path": "app/api/v1/rankings/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/rankings/routes",
        "source_path": "app/api/v1/rankings/routes/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/reports/[id]",
        "source_path": "app/api/v1/reports/[id]/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/reports/decks",
        "source_path": "app/api/v1/reports/decks/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "POST"
        ]
      },
      {
        "route": "/v1/reports/docs",
        "source_path": "app/api/v1/reports/docs/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "POST"
        ]
      },
      {
        "route": "/v1/reports/sheets",
        "source_path": "app/api/v1/reports/sheets/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "POST"
        ]
      },
      {
        "route": "/v1/results/[id]/export",
        "source_path": "app/api/v1/results/[id]/export/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/results/[id]/issues",
        "source_path": "app/api/v1/results/[id]/issues/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/results/[id]/ranking",
        "source_path": "app/api/v1/results/[id]/ranking/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/results/[id]/recommendations",
        "source_path": "app/api/v1/results/[id]/recommendations/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/results/[id]",
        "source_path": "app/api/v1/results/[id]/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/results/[id]/tests",
        "source_path": "app/api/v1/results/[id]/tests/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/results/[id]/trace",
        "source_path": "app/api/v1/results/[id]/trace/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/scoring/agent-readiness",
        "source_path": "app/api/v1/scoring/agent-readiness/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "POST"
        ]
      },
      {
        "route": "/v1/scoring/answerability",
        "source_path": "app/api/v1/scoring/answerability/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET",
          "POST"
        ]
      },
      {
        "route": "/v1/scoring/audience",
        "source_path": "app/api/v1/scoring/audience/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET",
          "POST"
        ]
      },
      {
        "route": "/v1/scoring/carbon",
        "source_path": "app/api/v1/scoring/carbon/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "POST"
        ]
      },
      {
        "route": "/v1/scoring/discovery",
        "source_path": "app/api/v1/scoring/discovery/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "POST"
        ]
      },
      {
        "route": "/v1/scoring/i18n",
        "source_path": "app/api/v1/scoring/i18n/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "POST"
        ]
      },
      {
        "route": "/v1/scoring/new-internet",
        "source_path": "app/api/v1/scoring/new-internet/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "POST"
        ]
      },
      {
        "route": "/v1/scoring/readability",
        "source_path": "app/api/v1/scoring/readability/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET",
          "POST"
        ]
      },
      {
        "route": "/v1/scoring/searchability",
        "source_path": "app/api/v1/scoring/searchability/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET",
          "POST"
        ]
      },
      {
        "route": "/v1/scoring/security",
        "source_path": "app/api/v1/scoring/security/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "POST"
        ]
      },
      {
        "route": "/v1/stats",
        "source_path": "app/api/v1/stats/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/suggestions",
        "source_path": "app/api/v1/suggestions/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/suites/[suiteId]",
        "source_path": "app/api/v1/suites/[suiteId]/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/suites",
        "source_path": "app/api/v1/suites/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/tests/[testId]",
        "source_path": "app/api/v1/tests/[testId]/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/tests/registry/[version]",
        "source_path": "app/api/v1/tests/registry/[version]/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/tests/registry",
        "source_path": "app/api/v1/tests/registry/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/tests",
        "source_path": "app/api/v1/tests/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/timeline",
        "source_path": "app/api/v1/timeline/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/validate/feed",
        "source_path": "app/api/v1/validate/feed/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "POST"
        ]
      },
      {
        "route": "/v1/validate/llms",
        "source_path": "app/api/v1/validate/llms/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "POST"
        ]
      },
      {
        "route": "/v1/validate/mcp",
        "source_path": "app/api/v1/validate/mcp/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "POST"
        ]
      },
      {
        "route": "/v1/validate/openapi",
        "source_path": "app/api/v1/validate/openapi/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "POST"
        ]
      },
      {
        "route": "/v1/validate",
        "source_path": "app/api/v1/validate/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET",
          "POST"
        ]
      },
      {
        "route": "/v1/validate/routes",
        "source_path": "app/api/v1/validate/routes/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "POST"
        ]
      },
      {
        "route": "/v1/validate/sitemap",
        "source_path": "app/api/v1/validate/sitemap/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "POST"
        ]
      },
      {
        "route": "/v1/validate/structured-data",
        "source_path": "app/api/v1/validate/structured-data/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "POST"
        ]
      },
      {
        "route": "/v1/validate/url",
        "source_path": "app/api/v1/validate/url/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "POST"
        ]
      },
      {
        "route": "/v1/validation/[id]",
        "source_path": "app/api/v1/validation/[id]/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/webhooks",
        "source_path": "app/api/webhooks/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET",
          "POST"
        ]
      }
    ],
    "app_routes": [
      {
        "route": "/[locale]/about",
        "source_path": "app/[locale]/about/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/[locale]/accessibility",
        "source_path": "app/[locale]/accessibility/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/[locale]/compare",
        "source_path": "app/[locale]/compare/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/[locale]/dashboard",
        "source_path": "app/[locale]/dashboard/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/[locale]/data-policy",
        "source_path": "app/[locale]/data-policy/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/[locale]/docs",
        "source_path": "app/[locale]/docs/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/[locale]/faq",
        "source_path": "app/[locale]/faq/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/[locale]/history",
        "source_path": "app/[locale]/history/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/[locale]/jobs",
        "source_path": "app/[locale]/jobs/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/[locale]/network",
        "source_path": "app/[locale]/network/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/[locale]",
        "source_path": "app/[locale]/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/[locale]/privacy",
        "source_path": "app/[locale]/privacy/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/[locale]/rankings",
        "source_path": "app/[locale]/rankings/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/[locale]/results",
        "source_path": "app/[locale]/results/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/[locale]/terms",
        "source_path": "app/[locale]/terms/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/[locale]/tests",
        "source_path": "app/[locale]/tests/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/[locale]/timeline",
        "source_path": "app/[locale]/timeline/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      }
    ]
  },
  "components": [
    {
      "name": "accessibility-tab",
      "kind": "ui-component",
      "source_path": "app/[locale]/results/components/accessibility-tab.tsx"
    },
    {
      "name": "check-result",
      "kind": "ui-component",
      "source_path": "app/[locale]/results/components/check-result.tsx"
    },
    {
      "name": "compare-tab",
      "kind": "ui-component",
      "source_path": "app/[locale]/results/components/compare-tab.tsx"
    },
    {
      "name": "discovery-tab",
      "kind": "ui-component",
      "source_path": "app/[locale]/results/components/discovery-tab.tsx"
    },
    {
      "name": "i18n-tab",
      "kind": "ui-component",
      "source_path": "app/[locale]/results/components/i18n-tab.tsx"
    },
    {
      "name": "security-tab",
      "kind": "ui-component",
      "source_path": "app/[locale]/results/components/security-tab.tsx"
    },
    {
      "name": "seo-tab",
      "kind": "ui-component",
      "source_path": "app/[locale]/results/components/seo-tab.tsx"
    },
    {
      "name": "validation-tab",
      "kind": "ui-component",
      "source_path": "app/[locale]/results/components/validation-tab.tsx"
    },
    {
      "name": "ai-recommendations",
      "kind": "ui-component",
      "source_path": "components/analysis/ai-recommendations.tsx"
    },
    {
      "name": "analysis-progress",
      "kind": "ui-component",
      "source_path": "components/analysis/analysis-progress.tsx"
    },
    {
      "name": "analysis-skeleton",
      "kind": "ui-component",
      "source_path": "components/analysis/analysis-skeleton.tsx"
    },
    {
      "name": "carbon-footprint",
      "kind": "ui-component",
      "source_path": "components/analysis/carbon-footprint.tsx"
    },
    {
      "name": "category-score-card",
      "kind": "ui-component",
      "source_path": "components/analysis/category-score-card.tsx"
    },
    {
      "name": "command-viewer",
      "kind": "ui-component",
      "source_path": "components/analysis/command-viewer.tsx"
    },
    {
      "name": "comprehensive-test-panel",
      "kind": "ui-component",
      "source_path": "components/analysis/comprehensive-test-panel.tsx"
    },
    {
      "name": "cwv-cards",
      "kind": "ui-component",
      "source_path": "components/analysis/cwv-cards.tsx"
    },
    {
      "name": "export-button",
      "kind": "ui-component",
      "source_path": "components/analysis/export-button.tsx"
    },
    {
      "name": "history-trend",
      "kind": "ui-component",
      "source_path": "components/analysis/history-trend.tsx"
    },
    {
      "name": "opportunities-list",
      "kind": "ui-component",
      "source_path": "components/analysis/opportunities-list.tsx"
    },
    {
      "name": "score-gauge",
      "kind": "ui-component",
      "source_path": "components/analysis/score-gauge.tsx"
    },
    {
      "name": "screenshot-viewer",
      "kind": "ui-component",
      "source_path": "components/analysis/screenshot-viewer.tsx"
    },
    {
      "name": "security-headers",
      "kind": "ui-component",
      "source_path": "components/analysis/security-headers.tsx"
    },
    {
      "name": "site-suggestions",
      "kind": "ui-component",
      "source_path": "components/analysis/site-suggestions.tsx"
    },
    {
      "name": "stats-overview",
      "kind": "ui-component",
      "source_path": "components/analysis/stats-overview.tsx"
    },
    {
      "name": "test-comparison",
      "kind": "ui-component",
      "source_path": "components/analysis/test-comparison.tsx"
    },
    {
      "name": "test-results-panel",
      "kind": "ui-component",
      "source_path": "components/analysis/test-results-panel.tsx"
    },
    {
      "name": "trend-chart",
      "kind": "ui-component",
      "source_path": "components/analysis/trend-chart.tsx"
    },
    {
      "name": "url-input",
      "kind": "ui-component",
      "source_path": "components/analysis/url-input.tsx"
    },
    {
      "name": "insights-provider",
      "kind": "ui-component",
      "source_path": "components/insights-provider.tsx"
    },
    {
      "name": "breadcrumbs",
      "kind": "ui-component",
      "source_path": "components/layout/breadcrumbs.tsx"
    },
    {
      "name": "footer",
      "kind": "ui-component",
      "source_path": "components/layout/footer.tsx"
    },
    {
      "name": "header",
      "kind": "ui-component",
      "source_path": "components/layout/header.tsx"
    },
    {
      "name": "locale-switcher",
      "kind": "ui-component",
      "source_path": "components/layout/locale-switcher.tsx"
    },
    {
      "name": "ph3ar-modal",
      "kind": "ui-component",
      "source_path": "components/layout/ph3ar-modal.tsx"
    },
    {
      "name": "theme-toggle",
      "kind": "ui-component",
      "source_path": "components/layout/theme-toggle.tsx"
    },
    {
      "name": "ph3ar-modal",
      "kind": "ui-component",
      "source_path": "components/ph3ar-modal.tsx"
    },
    {
      "name": "json-ld",
      "kind": "ui-component",
      "source_path": "components/seo/json-ld.tsx"
    },
    {
      "name": "share-modal",
      "kind": "ui-component",
      "source_path": "components/share-modal.tsx"
    },
    {
      "name": "theme-provider",
      "kind": "ui-component",
      "source_path": "components/theme-provider.tsx"
    },
    {
      "name": "accordion",
      "kind": "ui-component",
      "source_path": "components/ui/accordion.tsx"
    },
    {
      "name": "alert-dialog",
      "kind": "ui-component",
      "source_path": "components/ui/alert-dialog.tsx"
    },
    {
      "name": "alert",
      "kind": "ui-component",
      "source_path": "components/ui/alert.tsx"
    },
    {
      "name": "aspect-ratio",
      "kind": "ui-component",
      "source_path": "components/ui/aspect-ratio.tsx"
    },
    {
      "name": "avatar",
      "kind": "ui-component",
      "source_path": "components/ui/avatar.tsx"
    },
    {
      "name": "badge",
      "kind": "ui-component",
      "source_path": "components/ui/badge.tsx"
    },
    {
      "name": "breadcrumb",
      "kind": "ui-component",
      "source_path": "components/ui/breadcrumb.tsx"
    },
    {
      "name": "button-group",
      "kind": "ui-component",
      "source_path": "components/ui/button-group.tsx"
    },
    {
      "name": "button",
      "kind": "ui-component",
      "source_path": "components/ui/button.tsx"
    },
    {
      "name": "calendar",
      "kind": "ui-component",
      "source_path": "components/ui/calendar.tsx"
    },
    {
      "name": "card",
      "kind": "ui-component",
      "source_path": "components/ui/card.tsx"
    },
    {
      "name": "carousel",
      "kind": "ui-component",
      "source_path": "components/ui/carousel.tsx"
    },
    {
      "name": "chart",
      "kind": "ui-component",
      "source_path": "components/ui/chart.tsx"
    },
    {
      "name": "checkbox",
      "kind": "ui-component",
      "source_path": "components/ui/checkbox.tsx"
    },
    {
      "name": "collapsible",
      "kind": "ui-component",
      "source_path": "components/ui/collapsible.tsx"
    },
    {
      "name": "command",
      "kind": "ui-component",
      "source_path": "components/ui/command.tsx"
    },
    {
      "name": "context-menu",
      "kind": "ui-component",
      "source_path": "components/ui/context-menu.tsx"
    },
    {
      "name": "dialog",
      "kind": "ui-component",
      "source_path": "components/ui/dialog.tsx"
    },
    {
      "name": "drawer",
      "kind": "ui-component",
      "source_path": "components/ui/drawer.tsx"
    },
    {
      "name": "dropdown-menu",
      "kind": "ui-component",
      "source_path": "components/ui/dropdown-menu.tsx"
    },
    {
      "name": "empty",
      "kind": "ui-component",
      "source_path": "components/ui/empty.tsx"
    },
    {
      "name": "field",
      "kind": "ui-component",
      "source_path": "components/ui/field.tsx"
    },
    {
      "name": "form",
      "kind": "ui-component",
      "source_path": "components/ui/form.tsx"
    },
    {
      "name": "hover-card",
      "kind": "ui-component",
      "source_path": "components/ui/hover-card.tsx"
    },
    {
      "name": "input-group",
      "kind": "ui-component",
      "source_path": "components/ui/input-group.tsx"
    },
    {
      "name": "input-otp",
      "kind": "ui-component",
      "source_path": "components/ui/input-otp.tsx"
    },
    {
      "name": "input",
      "kind": "ui-component",
      "source_path": "components/ui/input.tsx"
    },
    {
      "name": "item",
      "kind": "ui-component",
      "source_path": "components/ui/item.tsx"
    },
    {
      "name": "kbd",
      "kind": "ui-component",
      "source_path": "components/ui/kbd.tsx"
    },
    {
      "name": "label",
      "kind": "ui-component",
      "source_path": "components/ui/label.tsx"
    },
    {
      "name": "menubar",
      "kind": "ui-component",
      "source_path": "components/ui/menubar.tsx"
    },
    {
      "name": "navigation-menu",
      "kind": "ui-component",
      "source_path": "components/ui/navigation-menu.tsx"
    },
    {
      "name": "pagination",
      "kind": "ui-component",
      "source_path": "components/ui/pagination.tsx"
    },
    {
      "name": "popover",
      "kind": "ui-component",
      "source_path": "components/ui/popover.tsx"
    },
    {
      "name": "progress",
      "kind": "ui-component",
      "source_path": "components/ui/progress.tsx"
    },
    {
      "name": "radio-group",
      "kind": "ui-component",
      "source_path": "components/ui/radio-group.tsx"
    },
    {
      "name": "resizable",
      "kind": "ui-component",
      "source_path": "components/ui/resizable.tsx"
    },
    {
      "name": "scroll-area",
      "kind": "ui-component",
      "source_path": "components/ui/scroll-area.tsx"
    },
    {
      "name": "select",
      "kind": "ui-component",
      "source_path": "components/ui/select.tsx"
    },
    {
      "name": "separator",
      "kind": "ui-component",
      "source_path": "components/ui/separator.tsx"
    },
    {
      "name": "sheet",
      "kind": "ui-component",
      "source_path": "components/ui/sheet.tsx"
    },
    {
      "name": "sidebar",
      "kind": "ui-component",
      "source_path": "components/ui/sidebar.tsx"
    },
    {
      "name": "skeleton",
      "kind": "ui-component",
      "source_path": "components/ui/skeleton.tsx"
    },
    {
      "name": "slider",
      "kind": "ui-component",
      "source_path": "components/ui/slider.tsx"
    },
    {
      "name": "smart-tooltip",
      "kind": "ui-component",
      "source_path": "components/ui/smart-tooltip.tsx"
    },
    {
      "name": "sonner",
      "kind": "ui-component",
      "source_path": "components/ui/sonner.tsx"
    },
    {
      "name": "spinner",
      "kind": "ui-component",
      "source_path": "components/ui/spinner.tsx"
    },
    {
      "name": "switch",
      "kind": "ui-component",
      "source_path": "components/ui/switch.tsx"
    },
    {
      "name": "table",
      "kind": "ui-component",
      "source_path": "components/ui/table.tsx"
    },
    {
      "name": "tabs",
      "kind": "ui-component",
      "source_path": "components/ui/tabs.tsx"
    },
    {
      "name": "textarea",
      "kind": "ui-component",
      "source_path": "components/ui/textarea.tsx"
    },
    {
      "name": "toast",
      "kind": "ui-component",
      "source_path": "components/ui/toast.tsx"
    },
    {
      "name": "toaster",
      "kind": "ui-component",
      "source_path": "components/ui/toaster.tsx"
    },
    {
      "name": "toggle-group",
      "kind": "ui-component",
      "source_path": "components/ui/toggle-group.tsx"
    },
    {
      "name": "toggle",
      "kind": "ui-component",
      "source_path": "components/ui/toggle.tsx"
    },
    {
      "name": "tooltip",
      "kind": "ui-component",
      "source_path": "components/ui/tooltip.tsx"
    },
    {
      "name": "locale-switcher.test",
      "kind": "ui-component",
      "source_path": "tests/components/layout/locale-switcher.test.tsx"
    },
    {
      "name": "ph3ar-modal.test",
      "kind": "ui-component",
      "source_path": "tests/components/layout/ph3ar-modal.test.tsx"
    },
    {
      "name": "theme-toggle.test",
      "kind": "ui-component",
      "source_path": "tests/components/layout/theme-toggle.test.tsx"
    },
    {
      "name": "ph3ar-modal.test",
      "kind": "ui-component",
      "source_path": "tests/components/ph3ar-modal.test.tsx"
    }
  ],
  "data_models": [
    {
      "name": "model",
      "kind": "schema-file",
      "source_path": "lib/phase2/model.ts"
    },
    {
      "name": "001_create_schemas",
      "kind": "migration",
      "source_path": "scripts/migrations/001_create_schemas.sql"
    },
    {
      "name": "002_registry_layer",
      "kind": "migration",
      "source_path": "scripts/migrations/002_registry_layer.sql"
    },
    {
      "name": "003_core_layer",
      "kind": "migration",
      "source_path": "scripts/migrations/003_core_layer.sql"
    },
    {
      "name": "004_evidence_layer",
      "kind": "migration",
      "source_path": "scripts/migrations/004_evidence_layer.sql"
    },
    {
      "name": "005_results_layer",
      "kind": "migration",
      "source_path": "scripts/migrations/005_results_layer.sql"
    },
    {
      "name": "006_advisory_layer",
      "kind": "migration",
      "source_path": "scripts/migrations/006_advisory_layer.sql"
    },
    {
      "name": "007_ops_layer",
      "kind": "migration",
      "source_path": "scripts/migrations/007_ops_layer.sql"
    },
    {
      "name": "008_seed_registry_v1",
      "kind": "migration",
      "source_path": "scripts/migrations/008_seed_registry_v1.sql"
    },
    {
      "name": "009_backfill_existing_data",
      "kind": "migration",
      "source_path": "scripts/migrations/009_backfill_existing_data.sql"
    },
    {
      "name": "010_compatibility_views",
      "kind": "migration",
      "source_path": "scripts/migrations/010_compatibility_views.sql"
    },
    {
      "name": "011_row_level_security",
      "kind": "migration",
      "source_path": "scripts/migrations/011_row_level_security.sql"
    },
    {
      "name": "012_retention_maintenance",
      "kind": "migration",
      "source_path": "scripts/migrations/012_retention_maintenance.sql"
    },
    {
      "name": "013_seed_test_definitions",
      "kind": "migration",
      "source_path": "scripts/migrations/013_seed_test_definitions.sql"
    }
  ],
  "database": {
    "databases": [],
    "schemas": [
      {
        "path": "scripts/001_pageinsights_schema.sql"
      },
      {
        "path": "scripts/001-create-schema.sql"
      },
      {
        "path": "scripts/002-enhanced-schema.sql"
      },
      {
        "path": "scripts/007-enhanced-analysis-schema.sql"
      },
      {
        "path": "scripts/008-enhanced-comparisons-schema.sql"
      }
    ],
    "migrations": [
      {
        "path": "scripts/migrations/001_create_schemas.sql"
      },
      {
        "path": "scripts/migrations/002_registry_layer.sql"
      },
      {
        "path": "scripts/migrations/003_core_layer.sql"
      },
      {
        "path": "scripts/migrations/004_evidence_layer.sql"
      },
      {
        "path": "scripts/migrations/005_results_layer.sql"
      },
      {
        "path": "scripts/migrations/006_advisory_layer.sql"
      },
      {
        "path": "scripts/migrations/007_ops_layer.sql"
      },
      {
        "path": "scripts/migrations/008_seed_registry_v1.sql"
      },
      {
        "path": "scripts/migrations/009_backfill_existing_data.sql"
      },
      {
        "path": "scripts/migrations/010_compatibility_views.sql"
      },
      {
        "path": "scripts/migrations/011_row_level_security.sql"
      },
      {
        "path": "scripts/migrations/012_retention_maintenance.sql"
      },
      {
        "path": "scripts/migrations/013_seed_test_definitions.sql"
      }
    ]
  },
  "tests": [
    {
      "name": "trace-propagation.test.ts",
      "kind": "unit-or-integration",
      "source_path": "__tests__/api/trace-propagation.test.ts"
    },
    {
      "name": "full-integration.test.ts",
      "kind": "e2e",
      "source_path": "__tests__/e2e/full-integration.test.ts"
    },
    {
      "name": "pageinsights-integration.test.ts",
      "kind": "unit-or-integration",
      "source_path": "__tests__/integrations/pageinsights-integration.test.ts"
    },
    {
      "name": "bridge.test.ts",
      "kind": "unit-or-integration",
      "source_path": "__tests__/quality/bridge.test.ts"
    },
    {
      "name": "types.test.ts",
      "kind": "unit-or-integration",
      "source_path": "__tests__/quality/types.test.ts"
    },
    {
      "name": "comprehensive-test-panel.tsx",
      "kind": "unit-or-integration",
      "source_path": "components/analysis/comprehensive-test-panel.tsx"
    },
    {
      "name": "test-comparison.tsx",
      "kind": "unit-or-integration",
      "source_path": "components/analysis/test-comparison.tsx"
    },
    {
      "name": "test-results-panel.tsx",
      "kind": "unit-or-integration",
      "source_path": "components/analysis/test-results-panel.tsx"
    },
    {
      "name": "test-registry.ts",
      "kind": "unit-or-integration",
      "source_path": "lib/phase2/test-registry.ts"
    },
    {
      "name": "test_db_bulk.ts",
      "kind": "unit-or-integration",
      "source_path": "scripts/db-tests/test_db_bulk.ts"
    },
    {
      "name": "test_score.ts",
      "kind": "unit-or-integration",
      "source_path": "scripts/db-tests/test_score.ts"
    },
    {
      "name": "test_scoring.ts",
      "kind": "unit-or-integration",
      "source_path": "scripts/db-tests/test_scoring.ts"
    },
    {
      "name": "test_searchability.ts",
      "kind": "unit-or-integration",
      "source_path": "scripts/db-tests/test_searchability.ts"
    },
    {
      "name": "test_sec.ts",
      "kind": "unit-or-integration",
      "source_path": "scripts/db-tests/test_sec.ts"
    },
    {
      "name": "carbon-footprint.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/analysis/carbon-footprint.test.ts"
    },
    {
      "name": "core-web-vitals.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/analysis/core-web-vitals.test.ts"
    },
    {
      "name": "discovery_engine.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/analysis/discovery_engine.test.ts"
    },
    {
      "name": "discovery_engine2.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/analysis/discovery_engine2.test.ts"
    },
    {
      "name": "engine.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/analysis/engine.test.ts"
    },
    {
      "name": "internationalization.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/analysis/internationalization.test.ts"
    },
    {
      "name": "analyze.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/api/analyze.test.ts"
    },
    {
      "name": "carbon.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/api/carbon.test.ts"
    },
    {
      "name": "compare-enhanced.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/api/compare-enhanced.test.ts"
    },
    {
      "name": "compare.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/api/compare.test.ts"
    },
    {
      "name": "cron.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/api/cron.test.ts"
    },
    {
      "name": "sitemap-update.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/api/cron/sitemap-update.test.ts"
    },
    {
      "name": "health.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/api/health.test.ts"
    },
    {
      "name": "route.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/api/health/route.test.ts"
    },
    {
      "name": "llms-txt.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/api/llms-txt.test.ts"
    },
    {
      "name": "mcp.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/api/mcp.test.ts"
    },
    {
      "name": "pagespeed.bench.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/api/pagespeed.bench.test.ts"
    },
    {
      "name": "platphorm.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/api/platphorm.test.ts"
    },
    {
      "name": "security.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/api/security.test.ts"
    },
    {
      "name": "sitemap-perf.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/api/sitemap-perf.test.ts"
    },
    {
      "name": "suggestions.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/api/suggestions.test.ts"
    },
    {
      "name": "timeline.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/api/timeline.test.ts"
    },
    {
      "name": "validate.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/api/validate.test.ts"
    },
    {
      "name": "route.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/api/webhooks/route.test.ts"
    },
    {
      "name": "well-known.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/api/well-known.test.ts"
    },
    {
      "name": "analysis-progress.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/components/analysis-progress.test.ts"
    },
    {
      "name": "locale-switcher.test.tsx",
      "kind": "unit-or-integration",
      "source_path": "tests/components/layout/locale-switcher.test.tsx"
    },
    {
      "name": "ph3ar-modal.test.tsx",
      "kind": "unit-or-integration",
      "source_path": "tests/components/layout/ph3ar-modal.test.tsx"
    },
    {
      "name": "theme-toggle.test.tsx",
      "kind": "unit-or-integration",
      "source_path": "tests/components/layout/theme-toggle.test.tsx"
    },
    {
      "name": "ph3ar-modal.test.tsx",
      "kind": "unit-or-integration",
      "source_path": "tests/components/ph3ar-modal.test.tsx"
    },
    {
      "name": "screenshot-viewer.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/components/screenshot-viewer.test.ts"
    },
    {
      "name": "smart-tooltip.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/components/ui/smart-tooltip.test.ts"
    },
    {
      "name": "enhanced-schema.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/db/enhanced-schema.test.ts"
    },
    {
      "name": "use-analysis.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/hooks/use-analysis.test.ts"
    },
    {
      "name": "use-debounce.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/hooks/use-debounce.test.ts"
    },
    {
      "name": "use-mobile.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/hooks/use-mobile.test.ts"
    },
    {
      "name": "use-toast.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/hooks/use-toast.test.ts"
    },
    {
      "name": "config.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/i18n/config.test.ts"
    },
    {
      "name": "e2e.test.ts",
      "kind": "e2e",
      "source_path": "tests/integration/e2e.test.ts"
    },
    {
      "name": "full-flow.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/integration/full-flow.test.ts"
    },
    {
      "name": "pages.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/integration/pages.test.ts"
    },
    {
      "name": "events.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/lib/analytics/events.test.ts"
    },
    {
      "name": "network.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/lib/api/network.test.ts"
    },
    {
      "name": "with-trace.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/lib/api/with-trace.test.ts"
    },
    {
      "name": "fingerprint.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/lib/fingerprint.test.ts"
    },
    {
      "name": "page-insights-sdk.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/lib/insights/page-insights-sdk.test.ts"
    },
    {
      "name": "logger.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/lib/logger.test.ts"
    },
    {
      "name": "screenshots.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/lib/screenshots.test.ts"
    },
    {
      "name": "executor.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/lib/testing/executor.test.ts"
    },
    {
      "name": "registry.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/lib/testing/registry.test.ts"
    },
    {
      "name": "trace-sdk.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/lib/trace-sdk.test.ts"
    },
    {
      "name": "client.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/mcp/client.test.ts"
    },
    {
      "name": "tools.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/mcp/tools.test.ts"
    },
    {
      "name": "registry-ranking-validation.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/phase2/registry-ranking-validation.test.ts"
    },
    {
      "name": "check-rate-limit.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/rate-limit/check-rate-limit.test.ts"
    },
    {
      "name": "rate-limit.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/rate-limit/rate-limit.test.ts"
    },
    {
      "name": "ai.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/scoring/ai.test.ts"
    },
    {
      "name": "answerability.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/scoring/answerability.test.ts"
    },
    {
      "name": "audience.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/scoring/audience.test.ts"
    },
    {
      "name": "compliance.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/scoring/compliance.test.ts"
    },
    {
      "name": "design.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/scoring/design.test.ts"
    },
    {
      "name": "discovery.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/scoring/discovery.test.ts"
    },
    {
      "name": "human.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/scoring/human.test.ts"
    },
    {
      "name": "performance.bench.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/scoring/performance.bench.test.ts"
    },
    {
      "name": "readability.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/scoring/readability.test.ts"
    },
    {
      "name": "searchability.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/scoring/searchability.test.ts"
    },
    {
      "name": "screenshots.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/screenshots/screenshots.test.ts"
    },
    {
      "name": "rate-limit.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/security/rate-limit.test.ts"
    },
    {
      "name": "security-headers.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/security/security-headers.test.ts"
    },
    {
      "name": "sitemap_perf.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/sitemap_perf.test.ts"
    },
    {
      "name": "export.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/testing/export.test.ts"
    },
    {
      "name": "score-gauge.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/ui/score-gauge.test.ts"
    },
    {
      "name": "utils.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/utils.test.ts"
    },
    {
      "name": "accessibility.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/validators/accessibility.test.ts"
    },
    {
      "name": "seo.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/validators/seo.test.ts"
    },
    {
      "name": "w3c.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/validators/w3c.test.ts"
    }
  ],
  "ci": {
    "workflows": []
  },
  "containers": {
    "dockerfiles": [
      {
        "path": "Dockerfile"
      }
    ],
    "compose_files": []
  },
  "env": {
    "example_files": [],
    "variables": [
      {
        "name": "DATABASE_URL",
        "source_paths": [
          "app/api/v1/analyses/[id]/status/route.ts",
          "app/api/webhooks/route.ts",
          "app/sitemap.ts",
          "COMPLETE_INTEGRATION_SUMMARY.md",
          "INTEGRATION_EXAMPLES.md",
          "lib/db.ts"
        ],
        "likely_secret": true
      },
      {
        "name": "NEXT_PHASE",
        "source_paths": [
          "app/sitemap.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NEXT_PUBLIC_BASE_URL",
        "source_paths": [
          "app/api/cron/mcp-ping/route.ts",
          "app/api/cron/scheduled-analyses/route.ts",
          "app/api/v1/bulk/route.ts",
          "app/api/webhooks/route.ts",
          "app/feed.xml/route.ts",
          "app/layout.tsx",
          "app/llms-full.txt/route.ts",
          "app/llms.txt/route.ts",
          "app/robots.ts",
          "app/sitemap.ts",
          "lib/config/site.ts",
          "lib/mcp/client.ts",
          "next.config.mjs",
          "tests/api/webhooks/route.test.ts",
          "tests/mcp/client.test.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NODE_ENV",
        "source_paths": [
          ".Jules/sentinel.md",
          "app/api/health/route.ts",
          "app/api/webhooks/route.ts",
          "lib/insights/page-insights-sdk.ts",
          "lib/logger.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "PAGESPEED_API_KEY",
        "source_paths": [
          "lib/api/pagespeed.ts"
        ],
        "likely_secret": true
      },
      {
        "name": "PLATPHORM_API_KEY",
        "source_paths": [
          "app/api/mcp/route.ts",
          "app/api/v1/network/graph/route.ts",
          "lib/integrations/trace-sdk.ts",
          "lib/platform/auth.ts",
          "tests/api/cron.test.ts",
          "tests/api/cron/sitemap-update.test.ts"
        ],
        "likely_secret": true
      },
      {
        "name": "WEBHOOK_SECRET",
        "source_paths": [
          "app/api/webhooks/route.ts",
          "tests/api/webhooks/route.test.ts"
        ],
        "likely_secret": true
      }
    ]
  },
  "configs": [
    {
      "path": "eslint.config.mjs"
    },
    {
      "path": "next.config.mjs"
    },
    {
      "path": "package.json"
    },
    {
      "path": "pnpm-workspace.yaml"
    },
    {
      "path": "postcss.config.mjs"
    },
    {
      "path": "tsconfig.json"
    },
    {
      "path": "tsconfig.tsbuildinfo"
    },
    {
      "path": "vercel.json"
    }
  ],
  "docs": {
    "readme_paths": [
      {
        "path": "README.md"
      }
    ],
    "doc_paths": [],
    "llms_context_paths": []
  },
  "discovery_files": {
    "openapi": [],
    "mcp": [
      {
        "path": "app/api/mcp/route.ts"
      }
    ],
    "llms": [],
    "sitemaps": [],
    "feeds": [],
    "well_known": [
      {
        "path": "app/.well-known/agents.json/route.ts"
      },
      {
        "path": "app/.well-known/ai-plugin.json/route.ts"
      },
      {
        "path": "app/.well-known/humans.txt/route.ts"
      },
      {
        "path": "app/.well-known/mcp.json/route.ts"
      },
      {
        "path": "app/.well-known/security.txt/route.ts"
      },
      {
        "path": "app/.well-known/trust.json/route.ts"
      }
    ],
    "robots": [],
    "manifests": []
  },
  "integrations": [
    {
      "name": "PlatPhorm",
      "confidence": "medium",
      "evidence_paths": [
        "app/.well-known/agents.json/route.ts",
        "app/.well-known/ai-plugin.json/route.ts",
        "app/.well-known/mcp.json/route.ts",
        "app/.well-known/trust.json/route.ts",
        "app/[locale]/docs/page.tsx",
        "app/[locale]/network/page.tsx",
        "app/[locale]/page.tsx",
        "app/api/docs/route.ts",
        "package.json"
      ]
    },
    {
      "name": "Postgres",
      "confidence": "medium",
      "evidence_paths": [
        "app/api/v1/analyses/[id]/status/route.ts",
        "app/api/webhooks/route.ts",
        "app/sitemap.ts",
        "COMPLETE_INTEGRATION_SUMMARY.md",
        "INTEGRATION_EXAMPLES.md",
        "lib/db.ts",
        "package.json",
        "README.md",
        "tests/setup.ts"
      ]
    }
  ],
  "license": {
    "spdx": null,
    "paths": [
      {
        "path": "LICENSE"
      }
    ]
  },
  "comments": [
    {
      "kind": "security",
      "source_path": "__tests__/e2e/full-integration.test.ts",
      "line": 81,
      "text": "// Suite 4: Security (headers, CSP, HTTPS)"
    },
    {
      "kind": "security",
      "source_path": "__tests__/quality/framework-helpers.ts",
      "line": 141,
      "text": "// Security-aware HTML"
    },
    {
      "kind": "security",
      "source_path": "app/.well-known/ai-plugin.json/route.ts",
      "line": 9,
      "text": "description_for_human: 'Analyze public websites for performance, SEO, AEO, GEO, accessibility, security, sustainability, and AI-readiness.',"
    },
    {
      "kind": "security",
      "source_path": "app/.well-known/security.txt/route.ts",
      "line": 4,
      "text": "const securityTxt = `Contact: mailto:security@platphormnews.com"
    },
    {
      "kind": "security",
      "source_path": "app/.well-known/security.txt/route.ts",
      "line": 6,
      "text": "Acknowledgments: https://platphormnews.com/security/acknowledgments"
    },
    {
      "kind": "security",
      "source_path": "app/.well-known/security.txt/route.ts",
      "line": 8,
      "text": "Canonical: https://insights.platphormnews.com/.well-known/security.txt`"
    },
    {
      "kind": "security",
      "source_path": "app/.well-known/trust.json/route.ts",
      "line": 36,
      "text": "wellKnown: ['/.well-known/mcp.json', '/.well-known/agents.json', '/.well-known/security.txt', '/.well-known/trust.json'],"
    },
    {
      "kind": "security",
      "source_path": "app/.well-known/trust.json/route.ts",
      "line": 52,
      "text": "securityContact: 'security@platphormnews.com',"
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/about/page.tsx",
      "line": 57,
      "text": "title: 'Security Audit',"
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/about/page.tsx",
      "line": 58,
      "text": "description: 'HTTP security headers analysis and recommendations',"
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/data-policy/page.tsx",
      "line": 147,
      "text": "<li>Security header verification</li>"
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/docs/page.tsx",
      "line": 54,
      "text": "\"security\","
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/faq/page.tsx",
      "line": 38,
      "text": "answer: 'PlatPhorm Insights is a comprehensive, AI-powered web performance analysis platform. We provide Core Web Vitals analysis, accessibility auditing, SEO/AEO/GEO optimization insights, security header verification, and carbon footprint"
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/page.tsx",
      "line": 76,
      "text": "title: t('features.security'),"
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/page.tsx",
      "line": 78,
      "text": "metric: 'Security Audit',"
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/page.tsx",
      "line": 196,
      "text": "'Performance', 'Accessibility', 'SEO', 'Security',"
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/page.tsx",
      "line": 238,
      "text": "'Performance', 'Accessibility', 'SEO', 'AEO', 'GEO', 'Security',"
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/privacy/page.tsx",
      "line": 181,
      "text": "<li><strong>Server logs:</strong> Retained for up to 30 days for security and debugging, then deleted.</li>"
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/results/components/security-tab.tsx",
      "line": 11,
      "text": "security?: {"
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/results/components/security-tab.tsx",
      "line": 20,
      "text": "<TabsContent value=\"security\">"
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/results/components/security-tab.tsx",
      "line": 25,
      "text": "Security Headers Analysis"
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/results/components/security-tab.tsx",
      "line": 27,
      "text": "<CardDescription>HTTP security headers compliance check</CardDescription>"
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/results/components/security-tab.tsx",
      "line": 33,
      "text": "<span className=\"text-muted-foreground\">Checking security headers...</span>"
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/results/components/security-tab.tsx",
      "line": 35,
      "text": ") : validation?.security ? ("
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/results/components/security-tab.tsx",
      "line": 40,
      "text": "validation.security.score >= 90 ? \"text-emerald-500\" :"
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/results/components/security-tab.tsx",
      "line": 41,
      "text": "validation.security.score >= 50 ? \"text-amber-500\" : \"text-rose-500\""
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/results/components/security-tab.tsx",
      "line": 43,
      "text": "{validation.security.score}"
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/results/components/security-tab.tsx",
      "line": 46,
      "text": "<p className=\"font-medium\">Security Score</p>"
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/results/components/security-tab.tsx",
      "line": 48,
      "text": "HTTP Security Headers Check"
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/results/components/security-tab.tsx",
      "line": 52,
      "text": "<Progress value={validation.security.score} className=\"h-2\" />"
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/results/components/security-tab.tsx",
      "line": 55,
      "text": "{Object.entries(validation.security.headers).map(([header, info]) => ("
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/results/components/security-tab.tsx",
      "line": 61,
      "text": "impact={header.includes('Content-Security-Policy') || header.includes('Strict-Transport') ? 'critical' : 'medium'}"
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/results/components/security-tab.tsx",
      "line": 69,
      "text": "<span>Security data not available</span>"
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/results/page.tsx",
      "line": 52,
      "text": "import { SecurityTab } from './components/security-tab'"
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/results/page.tsx",
      "line": 164,
      "text": "security?: { score: number; headers: Record<string, { present: boolean; value?: string }> }"
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/results/page.tsx",
      "line": 167,
      "text": "compliance?: { score: number; privacy: { score: number; hasCookieConsent: boolean; hasPrivacyPolicy: boolean }; security: { score: number; httpsEnforced: boolean }; accessibility: { score: number; wcagLevel: string }; frameworks: string[]; "
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/results/page.tsx",
      "line": 235,
      "text": "modules: ['html', 'accessibility', 'seo', 'security', 'design', 'i18n', 'compliance']"
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/results/page.tsx",
      "line": 305,
      "text": "modules: ['html', 'accessibility', 'seo', 'security', 'design', 'i18n', 'compliance']"
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/results/page.tsx",
      "line": 336,
      "text": "modules: ['html', 'accessibility', 'seo', 'security']"
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/results/page.tsx",
      "line": 552,
      "text": "category: 'Security',"
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/results/page.tsx",
      "line": 553,
      "text": "score: validation?.security?.score ?? 75,"
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/results/page.tsx",
      "line": 556,
      "text": "passed: validation?.security?.headers ? Object.values(validation.security.headers).filter(h => h.present).length : 0,"
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/results/page.tsx",
      "line": 558,
      "text": "errors: validation?.security?.headers ? Object.values(validation.security.headers).filter(h => !h.present).length : 0,"
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/results/page.tsx",
      "line": 559,
      "text": "complianceLevel: (validation?.security?.score ?? 75) >= 80 ? 'Secure' : 'Review',"
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/results/page.tsx",
      "line": 560,
      "text": "issues: validation?.security?.headers"
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/results/page.tsx",
      "line": 561,
      "text": "? Object.entries(validation.security.headers).map(([name, info]) => ({"
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/results/page.tsx",
      "line": 778,
      "text": "<TabsTrigger value=\"security\" className=\"gap-2 data-[state=active]:bg-background\">"
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/results/page.tsx",
      "line": 780,
      "text": "Security"
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/terms/page.tsx",
      "line": 87,
      "text": "<li>Security header analysis</li>"
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/terms/page.tsx",
      "line": 106,
      "text": "<li>Attempt to circumvent rate limits or security measures</li>"
    },
    {
      "kind": "security",
      "source_path": "app/[locale]/terms/page.tsx",
      "line": 128,
      "text": "<li>Report any security vulnerabilities responsibly</li>"
    },
    {
      "kind": "unsafe",
      "source_path": "app/api/cron/scheduled-analyses/route.ts",
      "line": 116,
      "text": "console.warn(`[Cron] Skipped unsafe webhook URL for ${scheduled.id}:`, scheduled.webhook_url)"
    },
    {
      "kind": "security",
      "source_path": "app/api/docs/route.ts",
      "line": 11,
      "text": "'security',"
    },
    {
      "kind": "security",
      "source_path": "app/api/docs/route.ts",
      "line": 71,
      "text": "includeSecurity: { type: 'boolean', default: true, description: 'Include security headers analysis' },"
    },
    {
      "kind": "security",
      "source_path": "app/api/mcp/route.ts",
      "line": 5,
      "text": "import { analyzeSecurityHeaders } from '@/lib/api/security'"
    },
    {
      "kind": "security",
      "source_path": "app/api/mcp/route.ts",
      "line": 37,
      "text": "['analyze_url', 'Analyze a public URL across performance, Core Web Vitals, SEO, security, carbon, and AI-era scoring.'],"
    },
    {
      "kind": "security",
      "source_path": "app/api/mcp/route.ts",
      "line": 44,
      "text": "['check_security', 'Check public HTTP security headers.'],"
    },
    {
      "kind": "security",
      "source_path": "app/api/mcp/route.ts",
      "line": 105,
      "text": "['generate_security_header_plan', 'Create a security-header implementation plan.'],"
    },
    {
      "kind": "unsafe",
      "source_path": "app/api/mcp/route.ts",
      "line": 189,
      "text": "throw new Error('Unsafe URL rejected. Insights blocks localhost, private IPs, link-local hosts, and metadata services.')"
    },
    {
      "kind": "security",
      "source_path": "app/api/mcp/route.ts",
      "line": 245,
      "text": "const security = await analyzeSecurityHeaders(url)"
    },
    {
      "kind": "security",
      "source_path": "app/api/mcp/route.ts",
      "line": 261,
      "text": "security,"
    },
    {
      "kind": "security",
      "source_path": "app/api/mcp/route.ts",
      "line": 285,
      "text": "security: analysis.security_headers,"
    },
    {
      "kind": "security",
      "source_path": "app/api/mcp/route.ts",
      "line": 338,
      "text": "'/.well-known/security.txt',"
    },
    {
      "kind": "security",
      "source_path": "app/api/mcp/route.ts",
      "line": 660,
      "text": "description: 'Public web-quality intelligence MCP server for performance, SEO, AEO, GEO, accessibility, security, sustainability, and AI-readiness analysis.',"
    },
    {
      "kind": "unsafe",
      "source_path": "app/api/v1/advanced-scores/route.ts",
      "line": 22,
      "text": "throw new Error('Invalid or unsafe URL provided')"
    },
    {
      "kind": "security",
      "source_path": "app/api/v1/analyses/[id]/export/route.ts",
      "line": 119,
      "text": "'performance', 'accessibility', 'seo', 'security',"
    },
    {
      "kind": "security",
      "source_path": "app/api/v1/analyze/route.ts",
      "line": 5,
      "text": "import { analyzeSecurityHeaders } from '@/lib/api/security'"
    },
    {
      "kind": "unsafe",
      "source_path": "app/api/v1/analyze/route.ts",
      "line": 44,
      "text": "message: 'Unsafe URL rejected. Public analysis blocks localhost, private IPs, link-local hosts, and metadata services.'"
    },
    {
      "kind": "security",
      "source_path": "app/api/v1/analyze/route.ts",
      "line": 53,
      "text": "'security',"
    },
    {
      "kind": "unsafe",
      "source_path": "app/api/v1/analyze/route.ts",
      "line": 147,
      "text": "throw new Error('Invalid or unsafe URL provided')"
    },
    {
      "kind": "unsafe",
      "source_path": "app/api/v1/analyze/route.ts",
      "line": 501,
      "text": "throw new Error('Invalid or unsafe URL provided')"
    },
    {
      "kind": "unsafe",
      "source_path": "app/api/v1/compare/route.ts",
      "line": 36,
      "text": "message: 'Unsafe URL rejected. Public comparison blocks localhost, private IPs, link-local hosts, and metadata services.'"
    },
    {
      "kind": "unsafe",
      "source_path": "app/api/v1/compare/route.ts",
      "line": 114,
      "text": "throw new Error(`Unsafe URL detected: ${url}`)"
    },
    {
      "kind": "unsafe",
      "source_path": "app/api/v1/llm-instructions/route.ts",
      "line": 21,
      "text": "throw new Error('Invalid or unsafe URL provided')"
    },
    {
      "kind": "security",
      "source_path": "app/api/v1/network/route-compliance/route.ts",
      "line": 20,
      "text": "'/.well-known/security.txt',"
    },
    {
      "kind": "security",
      "source_path": "app/api/v1/results/[id]/export/route.ts",
      "line": 24,
      "text": "security: analysis.security_headers,"
    },
    {
      "kind": "unsafe",
      "source_path": "app/api/v1/scoring/answerability/route.ts",
      "line": 15,
      "text": "throw new Error('Invalid or unsafe URL provided')"
    },
    {
      "kind": "unsafe",
      "source_path": "app/api/v1/scoring/audience/route.ts",
      "line": 15,
      "text": "throw new Error('Invalid or unsafe URL provided')"
    },
    {
      "kind": "unsafe",
      "source_path": "app/api/v1/scoring/carbon/route.ts",
      "line": 10,
      "text": "return NextResponse.json({ ok: false, error: { code: 'VALIDATION_ERROR', message: 'Unsafe or invalid URL' } }, { status: 400 })"
    },
    {
      "kind": "unsafe",
      "source_path": "app/api/v1/scoring/discovery/route.ts",
      "line": 40,
      "text": "if (!isPubliclyFetchableUrl(normalized)) throw new Error('Unsafe URL rejected')"
    },
    {
      "kind": "unsafe",
      "source_path": "app/api/v1/scoring/i18n/route.ts",
      "line": 10,
      "text": "return NextResponse.json({ ok: false, error: { code: 'VALIDATION_ERROR', message: 'Unsafe or invalid URL' } }, { status: 400 })"
    },
    {
      "kind": "unsafe",
      "source_path": "app/api/v1/scoring/readability/route.ts",
      "line": 15,
      "text": "throw new Error('Invalid or unsafe URL provided')"
    },
    {
      "kind": "unsafe",
      "source_path": "app/api/v1/scoring/searchability/route.ts",
      "line": 15,
      "text": "throw new Error('Invalid or unsafe URL provided')"
    },
    {
      "kind": "security",
      "source_path": "app/api/v1/scoring/security/route.ts",
      "line": 2,
      "text": "import { analyzeSecurityHeaders } from '@/lib/api/security'"
    },
    {
      "kind": "unsafe",
      "source_path": "app/api/v1/scoring/security/route.ts",
      "line": 10,
      "text": "return NextResponse.json({ ok: false, error: { code: 'VALIDATION_ERROR', message: 'Unsafe or invalid URL' } }, { status: 400 })"
    },
    {
      "kind": "unsafe",
      "source_path": "app/api/v1/timeline/route.ts",
      "line": 207,
      "text": "// These use static queries since Neon doesn't support dynamic SQL via sql.unsafe()"
    },
    {
      "kind": "security",
      "source_path": "app/api/v1/validate/route.ts",
      "line": 4,
      "text": "import { analyzeSecurityHeaders } from '@/lib/api/security'"
    },
    {
      "kind": "security",
      "source_path": "app/api/v1/validate/route.ts",
      "line": 16,
      "text": "modules?: ('html' | 'accessibility' | 'seo' | 'security' | 'design' | 'i18n' | 'compliance')[]"
    },
    {
      "kind": "security",
      "source_path": "app/api/v1/validate/route.ts",
      "line": 65,
      "text": "security: { score: number; httpsEnforced: boolean }"
    },
    {
      "kind": "security",
      "source_path": "app/api/v1/validate/route.ts",
      "line": 77,
      "text": "security?: SecurityResult"
    },
    {
      "kind": "unsafe",
      "source_path": "app/api/v1/validate/route.ts",
      "line": 93,
      "text": "throw new Error('Unsafe URL provided for validation')"
    },
    {
      "kind": "security",
      "source_path": "app/api/v1/validate/route.ts",
      "line": 221,
      "text": "modules = ['html', 'accessibility', 'seo', 'security'],"
    },
    {
      "kind": "security",
      "source_path": "app/api/v1/validate/route.ts",
      "line": 312,
      "text": "if (modules.includes('security')) {"
    },
    {
      "kind": "security",
      "source_path": "app/api/v1/validate/route.ts",
      "line": 315,
      "text": "result.security = {"
    },
    {
      "kind": "security",
      "source_path": "app/api/v1/validate/route.ts",
      "line": 327,
      "text": "console.error('Security validation error:', err)"
    },
    {
      "kind": "security",
      "source_path": "app/api/v1/validate/route.ts",
      "line": 328,
      "text": "result.security = { score: 0, headers: {} }"
    },
    {
      "kind": "security",
      "source_path": "app/api/v1/validate/route.ts",
      "line": 406,
      "text": "security: {"
    },
    {
      "kind": "security",
      "source_path": "app/api/v1/validate/route.ts",
      "line": 407,
      "text": "score: complianceResult.security.score,"
    },
    {
      "kind": "security",
      "source_path": "app/api/v1/validate/route.ts",
      "line": 408,
      "text": "httpsEnforced: complianceResult.security.httpsEnforced,"
    },
    {
      "kind": "security",
      "source_path": "app/api/v1/validate/route.ts",
      "line": 419,
      "text": "result.compliance = { score: 0, privacy: { score: 0, hasCookieConsent: false, hasPrivacyPolicy: false }, security: { score: 0, httpsEnforced: false }, accessibility: { score: 0, wcagLevel: 'none' }, frameworks: [], recommendations: [] }"
    },
    {
      "kind": "security",
      "source_path": "app/api/v1/validate/route.ts",
      "line": 434,
      "text": "security: result.security?.score,"
    },
    {
      "kind": "security",
      "source_path": "app/layout.tsx",
      "line": 16,
      "text": "description: 'Free, AI-powered web performance analysis with Core Web Vitals monitoring, security auditing, accessibility testing, SEO analysis, and carbon footprint tracking. Part of the PlatPhorm News Network.',"
    },
    {
      "kind": "security",
      "source_path": "app/layout.tsx",
      "line": 21,
      "text": "'carbon footprint', 'security headers', 'performance optimization',"
    },
    {
      "kind": "security",
      "source_path": "app/layout.tsx",
      "line": 41,
      "text": "description: 'Free, AI-powered web performance analysis with Core Web Vitals, security auditing, accessibility testing, SEO analysis, and carbon footprint tracking. Built for the modern web.',"
    },
    {
      "kind": "security",
      "source_path": "app/layout.tsx",
      "line": 55,
      "text": "description: 'Free, AI-powered web performance analysis with Core Web Vitals, security auditing, accessibility testing, and carbon footprint tracking.',"
    },
    {
      "kind": "security",
      "source_path": "app/llms-full.txt/route.ts",
      "line": 176,
      "text": "- GET /.well-known/security.txt"
    },
    {
      "kind": "security",
      "source_path": "app/llms.txt/route.ts",
      "line": 20,
      "text": "security, sustainability, route reliability, API/MCP readiness, and AI-readiness."
    },
    {
      "kind": "security",
      "source_path": "app/llms.txt/route.ts",
      "line": 127,
      "text": "- ${baseUrl}/.well-known/security.txt"
    },
    {
      "kind": "security",
      "source_path": "app/manifest.ts",
      "line": 7,
      "text": "description: 'AI-powered web performance analysis platform with Core Web Vitals monitoring, security auditing, and carbon footprint tracking.',"
    },
    {
      "kind": "security",
      "source_path": "CHANGELOG.md",
      "line": 38,
      "text": "- **vercel.json**: Consolidated to single cron job with CORS and security headers"
    },
    {
      "kind": "security",
      "source_path": "CHANGELOG.md",
      "line": 39,
      "text": "- **5 Core Categories**: Performance, Standards, Discovery, Security, AI (restructured from previous 6)"
    },
    {
      "kind": "security",
      "source_path": "CHANGELOG.md",
      "line": 54,
      "text": "- **6-Category Score Dashboard**: W3C, Accessibility, SEO/AEO/GEO, Security/Compliance, I18N, Design System"
    },
    {
      "kind": "security",
      "source_path": "CHANGELOG.md",
      "line": 57,
      "text": "- **Compliance Scoring Module** (`lib/scoring/compliance.ts`): Privacy compliance (GDPR/CCPA), security headers, accessibility compliance (WCAG levels), legal requirements, data handling practices"
    },
    {
      "kind": "security",
      "source_path": "CHANGELOG.md",
      "line": 126,
      "text": "- Security header auditing"
    },
    {
      "kind": "deprecated",
      "source_path": "CHANGELOG.md",
      "line": 142,
      "text": "- Deprecated analysis modules"
    },
    {
      "kind": "security",
      "source_path": "components/analysis/analysis-progress.tsx",
      "line": 96,
      "text": "id: 'security',"
    },
    {
      "kind": "security",
      "source_path": "components/analysis/analysis-progress.tsx",
      "line": 97,
      "text": "name: 'Security Headers',"
    },
    {
      "kind": "security",
      "source_path": "components/analysis/analysis-progress.tsx",
      "line": 179,
      "text": "security: (m) => ["
    },
    {
      "kind": "security",
      "source_path": "components/analysis/analysis-progress.tsx",
      "line": 181,
      "text": "{ type: 'info', title: 'Security Headers', description: `${m.headersFound || 7} of 10 recommended headers present`, metric: `${m.headersFound || 7}/10`, timestamp: Date.now() },"
    },
    {
      "kind": "security",
      "source_path": "components/analysis/analysis-progress.tsx",
      "line": 317,
      "text": "{ duration: 600, tests: { passed: 10, failed: 0 } }, // security"
    },
    {
      "kind": "security",
      "source_path": "components/analysis/comprehensive-test-panel.tsx",
      "line": 100,
      "text": "security: <Shield className=\"h-4 w-4\" />,"
    },
    {
      "kind": "security",
      "source_path": "components/analysis/comprehensive-test-panel.tsx",
      "line": 113,
      "text": "security: 'text-red-500',"
    },
    {
      "kind": "security",
      "source_path": "components/analysis/security-headers.tsx",
      "line": 35,
      "text": "Security Headers"
    },
    {
      "kind": "security",
      "source_path": "components/analysis/security-headers.tsx",
      "line": 37,
      "text": "<CardDescription>No security analysis available</CardDescription>"
    },
    {
      "kind": "security",
      "source_path": "components/analysis/security-headers.tsx",
      "line": 77,
      "text": "<CardTitle>Security Headers</CardTitle>"
    },
    {
      "kind": "security",
      "source_path": "components/analysis/test-results-panel.tsx",
      "line": 35,
      "text": "export type TestCategory = 'performance' | 'accessibility' | 'seo' | 'security' | 'best-practices' | 'validation' | 'sustainability'"
    },
    {
      "kind": "security",
      "source_path": "components/analysis/test-results-panel.tsx",
      "line": 68,
      "text": "security: <Shield className=\"h-4 w-4\" />,"
    },
    {
      "kind": "security",
      "source_path": "components/analysis/test-results-panel.tsx",
      "line": 133,
      "text": "security: [],"
    },
    {
      "kind": "security",
      "source_path": "components/analysis/test-results-panel.tsx",
      "line": 470,
      "text": "security?: { score: number; headers: Record<string, { present: boolean; value?: string }> }"
    },
    {
      "kind": "security",
      "source_path": "components/analysis/test-results-panel.tsx",
      "line": 547,
      "text": "// Security"
    },
    {
      "kind": "security",
      "source_path": "components/analysis/test-results-panel.tsx",
      "line": 548,
      "text": "if (validation.security) {"
    },
    {
      "kind": "security",
      "source_path": "components/analysis/test-results-panel.tsx",
      "line": 550,
      "text": "id: 'security-overall',"
    },
    {
      "kind": "security",
      "source_path": "components/analysis/test-results-panel.tsx",
      "line": 551,
      "text": "name: 'Security Score',"
    },
    {
      "kind": "security",
      "source_path": "components/analysis/test-results-panel.tsx",
      "line": 552,
      "text": "description: 'HTTP security headers compliance',"
    },
    {
      "kind": "security",
      "source_path": "components/analysis/test-results-panel.tsx",
      "line": 553,
      "text": "status: validation.security.score >= 90 ? 'passed' : validation.security.score >= 50 ? 'warning' : 'failed',"
    },
    {
      "kind": "security",
      "source_path": "components/analysis/test-results-panel.tsx",
      "line": 554,
      "text": "category: 'security',"
    },
    {
      "kind": "security",
      "source_path": "components/analysis/test-results-panel.tsx",
      "line": 555,
      "text": "score: validation.security.score,"
    },
    {
      "kind": "security",
      "source_path": "components/analysis/test-results-panel.tsx",
      "line": 556,
      "text": "value: `${validation.security.score}%`,"
    },
    {
      "kind": "security",
      "source_path": "components/analysis/test-results-panel.tsx",
      "line": 558,
      "text": "Object.entries(validation.security.headers).forEach(([header, info]) => {"
    },
    {
      "kind": "security",
      "source_path": "components/analysis/test-results-panel.tsx",
      "line": 560,
      "text": "id: `security-${header}`,"
    },
    {
      "kind": "security",
      "source_path": "components/analysis/test-results-panel.tsx",
      "line": 562,
      "text": "description: info.present ? 'Security header is present' : 'Security header is missing',"
    },
    {
      "kind": "security",
      "source_path": "components/analysis/test-results-panel.tsx",
      "line": 564,
      "text": "category: 'security',"
    },
    {
      "kind": "security",
      "source_path": "components/seo/json-ld.tsx",
      "line": 8,
      "text": "description: 'AI-powered web performance analysis platform with Core Web Vitals monitoring, security auditing, accessibility testing, and carbon footprint tracking. Standards-compliant analysis based on RFC 9309, RFC 9116, and W3C specifica"
    },
    {
      "kind": "security",
      "source_path": "components/seo/json-ld.tsx",
      "line": 38,
      "text": "'Security Headers Check (RFC 9116 security.txt)',"
    },
    {
      "kind": "security",
      "source_path": "components/seo/json-ld.tsx",
      "line": 51,
      "text": "keywords: 'web performance, Core Web Vitals, SEO, accessibility, security headers, Lighthouse, PageSpeed, INP, LCP, CLS',"
    },
    {
      "kind": "security",
      "source_path": "components/ui/smart-tooltip.tsx",
      "line": 20,
      "text": "category: 'performance' | 'accessibility' | 'seo' | 'security' | 'ai' | 'general'"
    },
    {
      "kind": "security",
      "source_path": "components/ui/smart-tooltip.tsx",
      "line": 145,
      "text": "// Security"
    },
    {
      "kind": "security",
      "source_path": "components/ui/smart-tooltip.tsx",
      "line": 147,
      "text": "title: 'Content Security Policy',"
    },
    {
      "kind": "security",
      "source_path": "components/ui/smart-tooltip.tsx",
      "line": 148,
      "text": "description: 'A security layer that helps detect and mitigate certain types of attacks like XSS and data injection.',"
    },
    {
      "kind": "security",
      "source_path": "components/ui/smart-tooltip.tsx",
      "line": 149,
      "text": "category: 'security',"
    },
    {
      "kind": "security",
      "source_path": "components/ui/smart-tooltip.tsx",
      "line": 153,
      "text": "title: 'HTTP Strict Transport Security',"
    },
    {
      "kind": "security",
      "source_path": "components/ui/smart-tooltip.tsx",
      "line": 155,
      "text": "category: 'security',"
    },
    {
      "kind": "security",
      "source_path": "components/ui/smart-tooltip.tsx",
      "line": 159,
      "text": "description: 'A security vulnerability that allows attackers to inject malicious scripts into web pages.',"
    },
    {
      "kind": "security",
      "source_path": "components/ui/smart-tooltip.tsx",
      "line": 160,
      "text": "category: 'security',"
    },
    {
      "kind": "security",
      "source_path": "components/ui/smart-tooltip.tsx",
      "line": 165,
      "text": "category: 'security',"
    },
    {
      "kind": "security",
      "source_path": "components/ui/smart-tooltip.tsx",
      "line": 170,
      "text": "category: 'security',"
    },
    {
      "kind": "security",
      "source_path": "components/ui/smart-tooltip.tsx",
      "line": 175,
      "text": "category: 'security',"
    },
    {
      "kind": "security",
      "source_path": "components/ui/smart-tooltip.tsx",
      "line": 180,
      "text": "category: 'security',"
    },
    {
      "kind": "security",
      "source_path": "components/ui/smart-tooltip.tsx",
      "line": 185,
      "text": "category: 'security',"
    },
    {
      "kind": "security",
      "source_path": "components/ui/smart-tooltip.tsx",
      "line": 276,
      "text": "security: 'text-amber-500',"
    },
    {
      "kind": "security",
      "source_path": "hooks/use-analysis.ts",
      "line": 44,
      "text": "security: {"
    },
    {
      "kind": "security",
      "source_path": "hooks/use-analysis.ts",
      "line": 126,
      "text": "{ stage: 'Checking security headers...', progress: 65 },"
    },
    {
      "kind": "security",
      "source_path": "IMPLEMENTATION_VERIFICATION_CHECKLIST.md",
      "line": 29,
      "text": "- [x] Security suite (15+ tests)"
    },
    {
      "kind": "security",
      "source_path": "IMPLEMENTATION_VERIFICATION_CHECKLIST.md",
      "line": 153,
      "text": "- [x] Security features"
    },
    {
      "kind": "security",
      "source_path": "IMPLEMENTATION_VERIFICATION_CHECKLIST.md",
      "line": 263,
      "text": "## Security Features"
    },
    {
      "kind": "security",
      "source_path": "lib/analysis/engine.ts",
      "line": 31,
      "text": "| 'security'"
    },
    {
      "kind": "security",
      "source_path": "lib/analysis/engine.ts",
      "line": 61,
      "text": "security: number"
    },
    {
      "kind": "security",
      "source_path": "lib/analysis/engine.ts",
      "line": 356,
      "text": "security: SecurityAnalysis"
    },
    {
      "kind": "security",
      "source_path": "lib/analysis/engine.ts",
      "line": 383,
      "text": "{ name: 'Strict-Transport-Security', impact: 'critical' as const, description: 'HSTS header' },"
    },
    {
      "kind": "security",
      "source_path": "lib/analysis/engine.ts",
      "line": 384,
      "text": "{ name: 'Content-Security-Policy', impact: 'critical' as const, description: 'CSP header' },"
    },
    {
      "kind": "security",
      "source_path": "lib/analysis/engine.ts",
      "line": 421,
      "text": "categories: ['performance', 'accessibility', 'seo', 'security', 'sustainability'],"
    },
    {
      "kind": "security",
      "source_path": "lib/analysis/engine.ts",
      "line": 449,
      "text": "security,"
    },
    {
      "kind": "security",
      "source_path": "lib/analysis/engine.ts",
      "line": 483,
      "text": "security,"
    },
    {
      "kind": "security",
      "source_path": "lib/analysis/engine.ts",
      "line": 497,
      "text": "security,"
    },
    {
      "kind": "security",
      "source_path": "lib/analysis/engine.ts",
      "line": 520,
      "text": "security,"
    },
    {
      "kind": "security",
      "source_path": "lib/analysis/engine.ts",
      "line": 940,
      "text": "if (!this.headers?.get('Strict-Transport-Security')) {"
    },
    {
      "kind": "security",
      "source_path": "lib/analysis/engine.ts",
      "line": 945,
      "text": "if (!this.headers?.get('Content-Security-Policy')) {"
    },
    {
      "kind": "security",
      "source_path": "lib/analysis/engine.ts",
      "line": 947,
      "text": "recommendations.push('Implement a Content Security Policy')"
    },
    {
      "kind": "deprecated",
      "source_path": "lib/analysis/engine.ts",
      "line": 1655,
      "text": "// Check for deprecated elements"
    },
    {
      "kind": "deprecated",
      "source_path": "lib/analysis/engine.ts",
      "line": 1660,
      "text": "message: `Deprecated <${elem}> element found`,"
    },
    {
      "kind": "security",
      "source_path": "lib/analysis/engine.ts",
      "line": 1808,
      "text": "security: SecurityAnalysis"
    },
    {
      "kind": "security",
      "source_path": "lib/analysis/engine.ts",
      "line": 1851,
      "text": "// Security issues"
    },
    {
      "kind": "security",
      "source_path": "lib/analysis/engine.ts",
      "line": 1852,
      "text": "for (const header of data.security.headers) {"
    },
    {
      "kind": "security",
      "source_path": "lib/analysis/engine.ts",
      "line": 1855,
      "text": "id: `security-${header.name.toLowerCase()}`,"
    },
    {
      "kind": "security",
      "source_path": "lib/analysis/engine.ts",
      "line": 1857,
      "text": "description: header.recommendation || `Missing security header: ${header.name}`,"
    },
    {
      "kind": "security",
      "source_path": "lib/analysis/engine.ts",
      "line": 1859,
      "text": "category: 'security',"
    },
    {
      "kind": "security",
      "source_path": "lib/analysis/engine.ts",
      "line": 1860,
      "text": "recommendation: header.recommendation || `Add ${header.name} header for improved security`,"
    },
    {
      "kind": "security",
      "source_path": "lib/analysis/engine.ts",
      "line": 1929,
      "text": "security: SecurityAnalysis"
    },
    {
      "kind": "security",
      "source_path": "lib/analysis/engine.ts",
      "line": 1962,
      "text": "data.security.score * 0.1 +"
    },
    {
      "kind": "security",
      "source_path": "lib/analysis/engine.ts",
      "line": 1974,
      "text": "security: data.security.score,"
    },
    {
      "kind": "security",
      "source_path": "lib/api/network.ts",
      "line": 68,
      "text": "'security-headers',"
    },
    {
      "kind": "security",
      "source_path": "lib/api/pagespeed.ts",
      "line": 385,
      "text": "// Security headers from response"
    },
    {
      "kind": "unsafe",
      "source_path": "lib/api/pagespeed.ts",
      "line": 626,
      "text": "throw new Error('Unsafe URL rejected: Insights blocks localhost, private IPs, link-local hosts, and metadata services.')"
    },
    {
      "kind": "security",
      "source_path": "lib/api/security.ts",
      "line": 15,
      "text": "name: 'Content-Security-Policy',"
    },
    {
      "kind": "security",
      "source_path": "lib/api/security.ts",
      "line": 16,
      "text": "key: 'content-security-policy',"
    },
    {
      "kind": "unsafe",
      "source_path": "lib/api/security.ts",
      "line": 21,
      "text": "if (value.includes('unsafe-inline') && value.includes('unsafe-eval')) return 'invalid'"
    },
    {
      "kind": "security",
      "source_path": "lib/api/security.ts",
      "line": 24,
      "text": "recommendation: 'Add a Content-Security-Policy header to prevent XSS attacks',"
    },
    {
      "kind": "security",
      "source_path": "lib/api/security.ts",
      "line": 50,
      "text": "name: 'Strict-Transport-Security',"
    },
    {
      "kind": "security",
      "source_path": "lib/api/security.ts",
      "line": 51,
      "text": "key: 'strict-transport-security',"
    },
    {
      "kind": "deprecated",
      "source_path": "lib/api/security.ts",
      "line": 100,
      "text": "// Note: This header is deprecated but still provides legacy protection"
    },
    {
      "kind": "unsafe",
      "source_path": "lib/api/security.ts",
      "line": 110,
      "text": "throw new Error('Unsafe URL rejected')"
    },
    {
      "kind": "security",
      "source_path": "lib/api/security.ts",
      "line": 148,
      "text": "console.error('Failed to analyze security headers:', error)"
    },
    {
      "kind": "security",
      "source_path": "lib/config/site.ts",
      "line": 10,
      "text": "description: 'Free, AI-powered web performance analysis with Core Web Vitals monitoring, security auditing, accessibility testing, SEO analysis, and carbon footprint tracking.',"
    },
    {
      "kind": "security",
      "source_path": "lib/config/site.ts",
      "line": 71,
      "text": "security: true,"
    },
    {
      "kind": "deprecated",
      "source_path": "lib/db.ts",
      "line": 1207,
      "text": "status: 'draft' | 'active' | 'deprecated'"
    },
    {
      "kind": "deprecated",
      "source_path": "lib/insights/web-vitals.ts",
      "line": 193,
      "text": "* Collect First Input Delay (FID) - deprecated but still useful"
    },
    {
      "kind": "security",
      "source_path": "lib/logger.ts",
      "line": 206,
      "text": "* Log security events"
    },
    {
      "kind": "security",
      "source_path": "lib/logger.ts",
      "line": 213,
      "text": "return this.log(level, `Security: ${event}`, {"
    },
    {
      "kind": "security",
      "source_path": "lib/logger.ts",
      "line": 215,
      "text": "event_type: 'security',"
    },
    {
      "kind": "security",
      "source_path": "lib/mcp/client.ts",
      "line": 94,
      "text": "async getRecommendations(analysisId: string, focus?: 'performance' | 'accessibility' | 'seo' | 'security' | 'all') {"
    },
    {
      "kind": "security",
      "source_path": "lib/mcp/client.ts",
      "line": 101,
      "text": "// Check security headers"
    },
    {
      "kind": "security",
      "source_path": "lib/mcp/tools.ts",
      "line": 31,
      "text": "description: 'Analyze a public URL across performance, Core Web Vitals, SEO, accessibility, security, carbon, and AI-era scoring.',"
    },
    {
      "kind": "security",
      "source_path": "lib/mcp/tools.ts",
      "line": 66,
      "text": "description: 'Analyze public HTTP security headers.',"
    },
    {
      "kind": "security",
      "source_path": "lib/mcp/tools.ts",
      "line": 300,
      "text": "security: analysis.security_headers,"
    },
    {
      "kind": "security",
      "source_path": "lib/phase2/ranking.ts",
      "line": 82,
      "text": "security: 0.1,"
    },
    {
      "kind": "security",
      "source_path": "lib/phase2/ranking.ts",
      "line": 101,
      "text": "profile('public-sector-ready', 'Public Sector Ready', 'Weights accessibility, trust, privacy, and readable public information.', { ...DEFAULT_WEIGHTS, accessibility: 0.24, security: 0.14, readability: 0.12 }),"
    },
    {
      "kind": "security",
      "source_path": "lib/phase2/ranking.ts",
      "line": 102,
      "text": "profile('ecommerce-ready', 'Ecommerce Ready', 'Weights performance, trust, structured data, and mobile usability.', { ...DEFAULT_WEIGHTS, performance: 0.22, security: 0.16, discovery: 0.12 }),"
    },
    {
      "kind": "security",
      "source_path": "lib/phase2/ranking.ts",
      "line": 163,
      "text": "const security = analysis.security_headers?.score"
    },
    {
      "kind": "security",
      "source_path": "lib/phase2/ranking.ts",
      "line": 178,
      "text": "security: clampScore(security, scores.bestPractices),"
    },
    {
      "kind": "security",
      "source_path": "lib/phase2/ranking.ts",
      "line": 211,
      "text": "trustTraceabilityScore: average([suite.security, suite.traceability, suite.publicBoundary]),"
    },
    {
      "kind": "security",
      "source_path": "lib/phase2/ranking.ts",
      "line": 270,
      "text": "security: suite.security,"
    },
    {
      "kind": "security",
      "source_path": "lib/phase2/test-registry.ts",
      "line": 20,
      "text": "'security',"
    },
    {
      "kind": "security",
      "source_path": "lib/phase2/test-registry.ts",
      "line": 81,
      "text": "security: ['security', 'trust-privacy', 'traceability'],"
    },
    {
      "kind": "security",
      "source_path": "lib/phase2/test-registry.ts",
      "line": 116,
      "text": "if (test.tags.some((tag) => ['lighthouse', 'core-web-vitals', 'network', 'security'].includes(tag))) return 'measured'"
    },
    {
      "kind": "unsafe",
      "source_path": "lib/phase2/validation.ts",
      "line": 38,
      "text": "throw new Error('Unsafe URL rejected. Insights blocks localhost, private IPs, link-local hosts, and metadata services.')"
    },
    {
      "kind": "security",
      "source_path": "lib/quality/bridge.ts",
      "line": 45,
      "text": "security:        SuiteCode.HTTP_CRAWLABILITY,         // S01 (HTTP-level checks)"
    },
    {
      "kind": "security",
      "source_path": "lib/quality/registry.ts",
      "line": 105,
      "text": "tags: ['https', 'ssl', 'tls', 'security'],"
    },
    {
      "kind": "security",
      "source_path": "lib/quality/registry.ts",
      "line": 173,
      "text": "tags: ['https', 'redirect', 'security'],"
    },
    {
      "kind": "security",
      "source_path": "lib/quality/registry.ts",
      "line": 349,
      "text": "tags: ['staging', 'security', 'leakage'],"
    },
    {
      "kind": "security",
      "source_path": "lib/quality/registry.ts",
      "line": 1256,
      "text": "tags: ['llms', 'safety', 'security'],"
    },
    {
      "kind": "security",
      "source_path": "lib/quality/types.ts",
      "line": 218,
      "text": "SECURITY_TXT = 'security.txt',"
    },
    {
      "kind": "security",
      "source_path": "lib/quality/types.ts",
      "line": 397,
      "text": "SECURITY: { code: SuiteCode.PRIVACY_CONSENT, name: 'Privacy, Data Use, Consent & User Agency', description: 'Clear disclosure of what data exists, is collected, why, where it goes, and what choices exist. Covers security.' },"
    },
    {
      "kind": "security",
      "source_path": "lib/scoring/compliance.ts",
      "line": 3,
      "text": "* Analyzes privacy, security, accessibility compliance, and legal requirements"
    },
    {
      "kind": "security",
      "source_path": "lib/scoring/compliance.ts",
      "line": 88,
      "text": "security: SecurityCompliance"
    },
    {
      "kind": "unsafe",
      "source_path": "lib/scoring/compliance.ts",
      "line": 172,
      "text": "hasUnsafeInline: cspHeader.includes(\"'unsafe-inline'\"),"
    },
    {
      "kind": "unsafe",
      "source_path": "lib/scoring/compliance.ts",
      "line": 173,
      "text": "hasUnsafeEval: cspHeader.includes(\"'unsafe-eval'\"),"
    },
    {
      "kind": "security",
      "source_path": "lib/scoring/compliance.ts",
      "line": 256,
      "text": "// Security Compliance"
    },
    {
      "kind": "security",
      "source_path": "lib/scoring/compliance.ts",
      "line": 258,
      "text": "const hstsHeader = headers?.['strict-transport-security']"
    },
    {
      "kind": "security",
      "source_path": "lib/scoring/compliance.ts",
      "line": 259,
      "text": "const cspHeader = headers?.['content-security-policy']"
    },
    {
      "kind": "security",
      "source_path": "lib/scoring/compliance.ts",
      "line": 260,
      "text": "const cspReportHeader = headers?.['content-security-policy-report-only']"
    },
    {
      "kind": "security",
      "source_path": "lib/scoring/compliance.ts",
      "line": 307,
      "text": "recommendations.push('Add Strict-Transport-Security header')"
    },
    {
      "kind": "security",
      "source_path": "lib/scoring/compliance.ts",
      "line": 311,
      "text": "recommendations.push('Implement Content-Security-Policy header')"
    },
    {
      "kind": "unsafe",
      "source_path": "lib/scoring/compliance.ts",
      "line": 314,
      "text": "recommendations.push('Remove unsafe-inline and unsafe-eval from CSP')"
    },
    {
      "kind": "security",
      "source_path": "lib/scoring/compliance.ts",
      "line": 513,
      "text": "security: securityCompliance,"
    },
    {
      "kind": "security",
      "source_path": "lib/testing/executor.ts",
      "line": 641,
      "text": "// SECURITY TEST EXECUTORS"
    },
    {
      "kind": "security",
      "source_path": "lib/testing/executor.ts",
      "line": 646,
      "text": "const tests = getTestsByCategory('security')"
    },
    {
      "kind": "security",
      "source_path": "lib/testing/executor.ts",
      "line": 660,
      "text": "passed = !!ctx.headers['strict-transport-security']"
    },
    {
      "kind": "security",
      "source_path": "lib/testing/executor.ts",
      "line": 661,
      "text": "value = ctx.headers['strict-transport-security'] || 'not set'"
    },
    {
      "kind": "security",
      "source_path": "lib/testing/executor.ts",
      "line": 665,
      "text": "passed = !!ctx.headers['content-security-policy']"
    },
    {
      "kind": "security",
      "source_path": "lib/testing/executor.ts",
      "line": 666,
      "text": "value = ctx.headers['content-security-policy'] ? 'configured' : 'not set'"
    },
    {
      "kind": "deprecated",
      "source_path": "lib/testing/executor.ts",
      "line": 933,
      "text": "case 'bp-no-deprecated-apis':"
    },
    {
      "kind": "security",
      "source_path": "lib/testing/executor.ts",
      "line": 1005,
      "text": "const categories: TestCategory[] = ['performance', 'accessibility', 'seo', 'security', 'ai-readiness', 'best-practices']"
    },
    {
      "kind": "security",
      "source_path": "lib/testing/registry.ts",
      "line": 10,
      "text": "| 'security'"
    },
    {
      "kind": "security",
      "source_path": "lib/testing/registry.ts",
      "line": 932,
      "text": "learnMoreUrl: 'https://developers.google.com/search/docs/advanced/security/https',"
    },
    {
      "kind": "security",
      "source_path": "lib/testing/registry.ts",
      "line": 934,
      "text": "tags: ['security', 'https', 'trust']"
    },
    {
      "kind": "security",
      "source_path": "lib/testing/registry.ts",
      "line": 1068,
      "text": "// SECURITY TESTS (15)"
    },
    {
      "kind": "security",
      "source_path": "lib/testing/registry.ts",
      "line": 1076,
      "text": "category: 'security',"
    },
    {
      "kind": "security",
      "source_path": "lib/testing/registry.ts",
      "line": 1089,
      "text": "description: 'Site sends Strict-Transport-Security header.',"
    },
    {
      "kind": "security",
      "source_path": "lib/testing/registry.ts",
      "line": 1090,
      "text": "category: 'security',"
    },
    {
      "kind": "security",
      "source_path": "lib/testing/registry.ts",
      "line": 1093,
      "text": "cliCommand: 'Check response headers for Strict-Transport-Security',"
    },
    {
      "kind": "security",
      "source_path": "lib/testing/registry.ts",
      "line": 1095,
      "text": "fixInstructions: 'Add Strict-Transport-Security: max-age=31536000; includeSubDomains header.',"
    },
    {
      "kind": "security",
      "source_path": "lib/testing/registry.ts",
      "line": 1096,
      "text": "learnMoreUrl: 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security',"
    },
    {
      "kind": "security",
      "source_path": "lib/testing/registry.ts",
      "line": 1102,
      "text": "name: 'Content Security Policy',"
    },
    {
      "kind": "security",
      "source_path": "lib/testing/registry.ts",
      "line": 1103,
      "text": "description: 'Site has a Content-Security-Policy header.',"
    },
    {
      "kind": "security",
      "source_path": "lib/testing/registry.ts",
      "line": 1104,
      "text": "category: 'security',"
    },
    {
      "kind": "security",
      "source_path": "lib/testing/registry.ts",
      "line": 1107,
      "text": "cliCommand: 'Check response headers for Content-Security-Policy',"
    },
    {
      "kind": "security",
      "source_path": "lib/testing/registry.ts",
      "line": 1108,
      "text": "humanCommand: 'curl -I https://example.com | grep -i \"content-security-policy\"',"
    },
    {
      "kind": "security",
      "source_path": "lib/testing/registry.ts",
      "line": 1118,
      "text": "category: 'security',"
    },
    {
      "kind": "security",
      "source_path": "lib/testing/registry.ts",
      "line": 1132,
      "text": "category: 'security',"
    },
    {
      "kind": "security",
      "source_path": "lib/testing/registry.ts",
      "line": 1146,
      "text": "category: 'security',"
    },
    {
      "kind": "security",
      "source_path": "lib/testing/registry.ts",
      "line": 1160,
      "text": "category: 'security',"
    },
    {
      "kind": "security",
      "source_path": "lib/testing/registry.ts",
      "line": 1174,
      "text": "category: 'security',"
    },
    {
      "kind": "security",
      "source_path": "lib/testing/registry.ts",
      "line": 1180,
      "text": "learnMoreUrl: 'https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content',"
    },
    {
      "kind": "security",
      "source_path": "lib/testing/registry.ts",
      "line": 1188,
      "text": "category: 'security',"
    },
    {
      "kind": "security",
      "source_path": "lib/testing/registry.ts",
      "line": 1194,
      "text": "learnMoreUrl: 'https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity',"
    },
    {
      "kind": "security",
      "source_path": "lib/testing/registry.ts",
      "line": 1202,
      "text": "category: 'security',"
    },
    {
      "kind": "security",
      "source_path": "lib/testing/registry.ts",
      "line": 1216,
      "text": "category: 'security',"
    },
    {
      "kind": "security",
      "source_path": "lib/testing/registry.ts",
      "line": 1228,
      "text": "name: 'Form Action Security',"
    },
    {
      "kind": "security",
      "source_path": "lib/testing/registry.ts",
      "line": 1230,
      "text": "category: 'security',"
    },
    {
      "kind": "security",
      "source_path": "lib/testing/registry.ts",
      "line": 1236,
      "text": "learnMoreUrl: 'https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site',"
    },
    {
      "kind": "security",
      "source_path": "lib/testing/registry.ts",
      "line": 1244,
      "text": "category: 'security',"
    },
    {
      "kind": "security",
      "source_path": "lib/testing/registry.ts",
      "line": 1258,
      "text": "category: 'security',"
    },
    {
      "kind": "security",
      "source_path": "lib/testing/registry.ts",
      "line": 1272,
      "text": "category: 'security',"
    },
    {
      "kind": "deprecated",
      "source_path": "lib/testing/registry.ts",
      "line": 1560,
      "text": "tags: ['javascript', 'performance', 'deprecated']"
    },
    {
      "kind": "deprecated",
      "source_path": "lib/testing/registry.ts",
      "line": 1591,
      "text": "id: 'bp-no-deprecated-apis',"
    },
    {
      "kind": "deprecated",
      "source_path": "lib/testing/registry.ts",
      "line": 1592,
      "text": "name: 'No Deprecated APIs',"
    },
    {
      "kind": "deprecated",
      "source_path": "lib/testing/registry.ts",
      "line": 1593,
      "text": "description: 'Page does not use deprecated web APIs.',"
    },
    {
      "kind": "deprecated",
      "source_path": "lib/testing/registry.ts",
      "line": 1599,
      "text": "fixInstructions: 'Replace deprecated APIs with modern alternatives.',"
    },
    {
      "kind": "deprecated",
      "source_path": "lib/testing/registry.ts",
      "line": 1602,
      "text": "tags: ['apis', 'deprecated', 'modern']"
    },
    {
      "kind": "security",
      "source_path": "lib/testing/registry.ts",
      "line": 1825,
      "text": "'security': {"
    },
    {
      "kind": "security",
      "source_path": "lib/testing/registry.ts",
      "line": 1826,
      "text": "name: 'Security',"
    },
    {
      "kind": "deprecated",
      "source_path": "lib/validators/w3c.ts",
      "line": 249,
      "text": "// Check for deprecated elements"
    },
    {
      "kind": "deprecated",
      "source_path": "lib/validators/w3c.ts",
      "line": 254,
      "text": "id: `html-deprecated-${tag}`,"
    },
    {
      "kind": "deprecated",
      "source_path": "lib/validators/w3c.ts",
      "line": 258,
      "text": "message: `Deprecated element <${tag}> found`,"
    },
    {
      "kind": "deprecated",
      "source_path": "lib/validators/w3c.ts",
      "line": 266,
      "text": "// Check for deprecated attributes"
    },
    {
      "kind": "deprecated",
      "source_path": "lib/validators/w3c.ts",
      "line": 273,
      "text": "id: `html-deprecated-attr-${tag}-${attr}`,"
    },
    {
      "kind": "deprecated",
      "source_path": "lib/validators/w3c.ts",
      "line": 277,
      "text": "message: `Deprecated attribute \"${attr}\" on <${tag}> element`,"
    },
    {
      "kind": "security",
      "source_path": "lib/validators/w3c.ts",
      "line": 978,
      "text": "// Check external links for security attributes"
    },
    {
      "kind": "security",
      "source_path": "lib/validators/w3c.ts",
      "line": 987,
      "text": "id: `link-security-${index}`,"
    },
    {
      "kind": "security",
      "source_path": "messages/ar.json",
      "line": 48,
      "text": "\"security\": \"رؤوس الأمان\","
    },
    {
      "kind": "security",
      "source_path": "messages/ar.json",
      "line": 102,
      "text": "\"security\": {"
    },
    {
      "kind": "security",
      "source_path": "messages/de.json",
      "line": 48,
      "text": "\"security\": \"Sicherheits-Header\","
    },
    {
      "kind": "security",
      "source_path": "messages/de.json",
      "line": 102,
      "text": "\"security\": {"
    },
    {
      "kind": "security",
      "source_path": "messages/en.json",
      "line": 48,
      "text": "\"security\": \"Security Headers\","
    },
    {
      "kind": "security",
      "source_path": "messages/en.json",
      "line": 49,
      "text": "\"securityDesc\": \"CSP, HSTS, and security best practices audit\","
    },
    {
      "kind": "security",
      "source_path": "messages/en.json",
      "line": 63,
      "text": "\"securityHeaders\": \"Security Headers\","
    },
    {
      "kind": "security",
      "source_path": "messages/en.json",
      "line": 102,
      "text": "\"security\": {"
    },
    {
      "kind": "security",
      "source_path": "messages/en.json",
      "line": 103,
      "text": "\"title\": \"Security Headers\","
    },
    {
      "kind": "security",
      "source_path": "messages/en.json",
      "line": 104,
      "text": "\"score\": \"Security Score\","
    },
    {
      "kind": "security",
      "source_path": "messages/es.json",
      "line": 48,
      "text": "\"security\": \"Cabeceras de Seguridad\","
    },
    {
      "kind": "security",
      "source_path": "messages/es.json",
      "line": 102,
      "text": "\"security\": {"
    },
    {
      "kind": "todo",
      "source_path": "messages/es.json",
      "line": 122,
      "text": "\"viewAll\": \"Ver Todo\","
    },
    {
      "kind": "todo",
      "source_path": "messages/es.json",
      "line": 166,
      "text": "\"subtitle\": \"Todo lo que necesitas saber sobre PlatPhorm Insights\""
    },
    {
      "kind": "todo",
      "source_path": "messages/es.json",
      "line": 192,
      "text": "\"description\": \"Explora resultados de analisis de sitios web de todo el mundo. Ve como rinden diferentes sitios y aprende de los mejores.\","
    },
    {
      "kind": "security",
      "source_path": "messages/fr.json",
      "line": 48,
      "text": "\"security\": \"En-tetes de Securite\","
    },
    {
      "kind": "security",
      "source_path": "messages/fr.json",
      "line": 102,
      "text": "\"security\": {"
    },
    {
      "kind": "security",
      "source_path": "messages/hi.json",
      "line": 48,
      "text": "\"security\": \"सुरक्षा हेडर\","
    },
    {
      "kind": "security",
      "source_path": "messages/hi.json",
      "line": 102,
      "text": "\"security\": {"
    },
    {
      "kind": "security",
      "source_path": "messages/ja.json",
      "line": 48,
      "text": "\"security\": \"セキュリティヘッダー\","
    },
    {
      "kind": "security",
      "source_path": "messages/ja.json",
      "line": 102,
      "text": "\"security\": {"
    },
    {
      "kind": "security",
      "source_path": "messages/ko.json",
      "line": 48,
      "text": "\"security\": \"보안 헤더\","
    },
    {
      "kind": "security",
      "source_path": "messages/ko.json",
      "line": 102,
      "text": "\"security\": {"
    },
    {
      "kind": "security",
      "source_path": "messages/pt.json",
      "line": 48,
      "text": "\"security\": \"Headers de Seguranca\","
    },
    {
      "kind": "security",
      "source_path": "messages/pt.json",
      "line": 102,
      "text": "\"security\": {"
    },
    {
      "kind": "todo",
      "source_path": "messages/pt.json",
      "line": 192,
      "text": "\"description\": \"Explore resultados de analise de sites de todo o mundo. Veja como diferentes sites performam e aprenda com os melhores.\","
    },
    {
      "kind": "security",
      "source_path": "messages/zh.json",
      "line": 48,
      "text": "\"security\": \"安全头\","
    },
    {
      "kind": "security",
      "source_path": "messages/zh.json",
      "line": 102,
      "text": "\"security\": {"
    },
    {
      "kind": "security",
      "source_path": "PAGEINSIGHTS_IMPLEMENTATION.md",
      "line": 46,
      "text": "4. **Security** - Headers, CSP, HTTPS, certificate validation"
    },
    {
      "kind": "deprecated",
      "source_path": "PAGEINSIGHTS_IMPLEMENTATION.md",
      "line": 47,
      "text": "5. **Best Practices** - HTML standards, deprecated APIs, best patterns"
    },
    {
      "kind": "security",
      "source_path": "PAGEINSIGHTS_IMPLEMENTATION.md",
      "line": 212,
      "text": "- Security checks"
    },
    {
      "kind": "security",
      "source_path": "PAGEINSIGHTS_IMPLEMENTATION.md",
      "line": 365,
      "text": "## Security"
    },
    {
      "kind": "security",
      "source_path": "PAGEINSIGHTS_IMPLEMENTATION.md",
      "line": 371,
      "text": "- **Trace Security**: Trace IDs are UUIDs, not easily guessable"
    },
    {
      "kind": "deprecated",
      "source_path": "pnpm-lock.yaml",
      "line": 3223,
      "text": "deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by cont"
    },
    {
      "kind": "deprecated",
      "source_path": "pnpm-lock.yaml",
      "line": 4628,
      "text": "deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation"
    },
    {
      "kind": "security",
      "source_path": "PROJECT_COMPLETION_SUMMARY.md",
      "line": 35,
      "text": "4. Security - Headers, CSP, HTTPS"
    },
    {
      "kind": "security",
      "source_path": "PROJECT_COMPLETION_SUMMARY.md",
      "line": 134,
      "text": "- Security Suite"
    },
    {
      "kind": "security",
      "source_path": "PROJECT_COMPLETION_SUMMARY.md",
      "line": 254,
      "text": "## Security Features"
    },
    {
      "kind": "security",
      "source_path": "PROJECT_COMPLETION_SUMMARY.md",
      "line": 318,
      "text": "- ✅ HTTP security headers"
    },
    {
      "kind": "security",
      "source_path": "README.md",
      "line": 10,
      "text": "**PlatPhorm Insights** is the most comprehensive web analysis platform built for the AI/Human internet era. We go beyond traditional Lighthouse metrics to deliver actionable intelligence across performance, accessibility, SEO, AEO (Answer E"
    },
    {
      "kind": "security",
      "source_path": "README.md",
      "line": 27,
      "text": "| **Security** | HTTPS, CSP, HSTS, X-Frame-Options, cookie security, mixed content detection |"
    },
    {
      "kind": "security",
      "source_path": "REFERENCES.md",
      "line": 8,
      "text": "- RFC 9116 — security.txt"
    },
    {
      "kind": "security",
      "source_path": "REFERENCES.md",
      "line": 30,
      "text": "- Content Security Policy Level 3 (W3C TR)"
    },
    {
      "kind": "security",
      "source_path": "REFERENCES.md",
      "line": 86,
      "text": "- Row-level security (RLS)"
    },
    {
      "kind": "security",
      "source_path": "scripts/003-create-analysis-tests.sql",
      "line": 17,
      "text": "category VARCHAR(50) NOT NULL,           -- performance, accessibility, seo, security, etc."
    },
    {
      "kind": "security",
      "source_path": "scripts/006-add-extended-scores.sql",
      "line": 20,
      "text": "COMMENT ON COLUMN analyses.compliance_score IS 'Compliance analysis: privacy, security, accessibility, legal';"
    },
    {
      "kind": "security",
      "source_path": "scripts/db-tests/test_sec.ts",
      "line": 1,
      "text": "import { calculateSecurityScore } from './lib/api/security.ts';"
    },
    {
      "kind": "security",
      "source_path": "scripts/db-tests/test_sec.ts",
      "line": 3,
      "text": "'content-security-policy': \"default-src 'self'\","
    },
    {
      "kind": "security",
      "source_path": "scripts/db-tests/test_sec.ts",
      "line": 7,
      "text": "'strict-transport-security': 'max-age=31536000',"
    },
    {
      "kind": "deprecated",
      "source_path": "scripts/migrations/002_registry_layer.sql",
      "line": 11,
      "text": "status TEXT NOT NULL CHECK (status IN ('draft', 'active', 'deprecated')),"
    },
    {
      "kind": "security",
      "source_path": "scripts/migrations/004_evidence_layer.sql",
      "line": 5,
      "text": "-- Artifacts: robots.txt, sitemaps, llms.txt, humans.txt, security.txt, manifests, etc."
    },
    {
      "kind": "security",
      "source_path": "scripts/migrations/004_evidence_layer.sql",
      "line": 7,
      "text": "-- Per RFC 9116: security.txt is machine-parsable ABNF at /.well-known/"
    },
    {
      "kind": "security",
      "source_path": "scripts/migrations/004_evidence_layer.sql",
      "line": 18,
      "text": "artifact_key TEXT NOT NULL,   -- e.g. '/robots.txt', '/.well-known/security.txt'"
    },
    {
      "kind": "security",
      "source_path": "scripts/migrations/005_results_layer.sql",
      "line": 59,
      "text": "safety_score NUMERIC(5,2),            -- Any security/privacy concerns?"
    },
    {
      "kind": "security",
      "source_path": "scripts/migrations/005_results_layer.sql",
      "line": 144,
      "text": "-- accessibility, seo, security, best_practices, pwa, carbon"
    },
    {
      "kind": "deprecated",
      "source_path": "scripts/migrations/005_results_layer.sql",
      "line": 156,
      "text": "-- INP is canonical responsiveness metric as of March 2024 (FID deprecated)"
    },
    {
      "kind": "deprecated",
      "source_path": "scripts/migrations/005_results_layer.sql",
      "line": 176,
      "text": "-- First Input Delay (DEPRECATED but kept for historical data)"
    },
    {
      "kind": "security",
      "source_path": "scripts/migrations/008_seed_registry_v1.sql",
      "line": 113,
      "text": "-- S10: Privacy & Consent (security.txt per RFC 9116)"
    },
    {
      "kind": "security",
      "source_path": "scripts/migrations/008_seed_registry_v1.sql",
      "line": 116,
      "text": "'Privacy policy, cookie consent, security.txt (RFC 9116 - /.well-known/ per RFC 8615)', 'high', 0.08, TRUE, FALSE, 10)"
    },
    {
      "kind": "deprecated",
      "source_path": "scripts/migrations/009_backfill_existing_data.sql",
      "line": 234,
      "text": "-- FID (deprecated)"
    },
    {
      "kind": "deprecated",
      "source_path": "scripts/migrations/009_backfill_existing_data.sql",
      "line": 241,
      "text": "TRUE,  -- FID is deprecated"
    },
    {
      "kind": "deprecated",
      "source_path": "scripts/migrations/010_compatibility_views.sql",
      "line": 52,
      "text": "-- Core Web Vitals (INP is canonical, FID deprecated)"
    },
    {
      "kind": "deprecated",
      "source_path": "scripts/migrations/010_compatibility_views.sql",
      "line": 58,
      "text": "'fid', jsonb_build_object('value', fid_value, 'status', fid_status, 'deprecated', fid_deprecated)"
    },
    {
      "kind": "security",
      "source_path": "scripts/migrations/011_row_level_security.sql",
      "line": 2,
      "text": "-- Row Level Security for multi-tenant isolation"
    },
    {
      "kind": "security",
      "source_path": "scripts/migrations/011_row_level_security.sql",
      "line": 6,
      "text": "ALTER TABLE core.sites ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "scripts/migrations/011_row_level_security.sql",
      "line": 7,
      "text": "ALTER TABLE core.analyses ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "scripts/migrations/011_row_level_security.sql",
      "line": 8,
      "text": "ALTER TABLE core.analysis_targets ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "scripts/migrations/011_row_level_security.sql",
      "line": 9,
      "text": "ALTER TABLE evidence.artifacts ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "scripts/migrations/011_row_level_security.sql",
      "line": 10,
      "text": "ALTER TABLE evidence.artifact_versions ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "scripts/migrations/011_row_level_security.sql",
      "line": 11,
      "text": "ALTER TABLE evidence.asset_instances ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "scripts/migrations/011_row_level_security.sql",
      "line": 12,
      "text": "ALTER TABLE evidence.screenshots ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "scripts/migrations/011_row_level_security.sql",
      "line": 13,
      "text": "ALTER TABLE evidence.page_extracts ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "scripts/migrations/011_row_level_security.sql",
      "line": 14,
      "text": "ALTER TABLE evidence.lighthouse_reports ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "scripts/migrations/011_row_level_security.sql",
      "line": 15,
      "text": "ALTER TABLE results.test_results ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "scripts/migrations/011_row_level_security.sql",
      "line": 16,
      "text": "ALTER TABLE results.artifact_evaluations ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "scripts/migrations/011_row_level_security.sql",
      "line": 17,
      "text": "ALTER TABLE results.asset_evaluations ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "scripts/migrations/011_row_level_security.sql",
      "line": 18,
      "text": "ALTER TABLE results.suite_scores ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "scripts/migrations/011_row_level_security.sql",
      "line": 19,
      "text": "ALTER TABLE results.scores ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "scripts/migrations/011_row_level_security.sql",
      "line": 20,
      "text": "ALTER TABLE results.core_web_vitals ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "scripts/migrations/011_row_level_security.sql",
      "line": 21,
      "text": "ALTER TABLE advisory.findings ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "scripts/migrations/011_row_level_security.sql",
      "line": 22,
      "text": "ALTER TABLE advisory.ai_suggestions ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "scripts/migrations/011_row_level_security.sql",
      "line": 23,
      "text": "ALTER TABLE advisory.badges_awarded ENABLE ROW LEVEL SECURITY;"
    },
    {
      "kind": "security",
      "source_path": "scripts/migrations/013_seed_test_definitions.sql",
      "line": 156,
      "text": "(get_suite_id('S10_PRIVACY'), 'security-txt-exists', 'security-txt-exists', 'security.txt Exists', 'security.txt at /.well-known/ per RFC 9116', 'security', FALSE, 'RFC 9116', 1, 0, NULL, 7, ARRAY['security_txt']),"
    },
    {
      "kind": "security",
      "source_path": "scripts/migrations/013_seed_test_definitions.sql",
      "line": 157,
      "text": "(get_suite_id('S10_PRIVACY'), 'security-txt-valid', 'security-txt-valid', 'security.txt Valid', 'security.txt follows RFC 9116 ABNF', 'security', TRUE, 'RFC 9116', 1, 0, NULL, 8, ARRAY['security_txt'])"
    },
    {
      "kind": "security",
      "source_path": "SECURITY.md",
      "line": 1,
      "text": "# Security Policy"
    },
    {
      "kind": "security",
      "source_path": "SECURITY.md",
      "line": 12,
      "text": "We take security seriously at PlatPhorm Insights. If you discover a security vulnerability, please follow these steps:"
    },
    {
      "kind": "security",
      "source_path": "SECURITY.md",
      "line": 22,
      "text": "1. **Email us directly**: security@platphormnews.com"
    },
    {
      "kind": "security",
      "source_path": "SECURITY.md",
      "line": 38,
      "text": "## Security Measures"
    },
    {
      "kind": "security",
      "source_path": "SECURITY.md",
      "line": 47,
      "text": "### Application Security"
    },
    {
      "kind": "security",
      "source_path": "SECURITY.md",
      "line": 64,
      "text": "We implement the following security headers:"
    },
    {
      "kind": "security",
      "source_path": "SECURITY.md",
      "line": 71,
      "text": "Content-Security-Policy: default-src 'self'; ..."
    },
    {
      "kind": "security",
      "source_path": "SECURITY.md",
      "line": 77,
      "text": "- Automated security updates via Dependabot"
    },
    {
      "kind": "security",
      "source_path": "SECURITY.md",
      "line": 82,
      "text": "- **Security Email**: security@platphormnews.com"
    },
    {
      "kind": "security",
      "source_path": "STANDARDS.md",
      "line": 97,
      "text": "- artifact_probe (robots, sitemaps, llms, humans, security.txt, etc.)"
    },
    {
      "kind": "security",
      "source_path": "STANDARDS.md",
      "line": 110,
      "text": "### Trust + security disclosure surfaces"
    },
    {
      "kind": "security",
      "source_path": "STANDARDS.md",
      "line": 111,
      "text": "- /.well-known/security.txt (IETF RFC security.txt)"
    },
    {
      "kind": "security",
      "source_path": "tests/analysis/engine.test.ts",
      "line": 141,
      "text": "describe('Security Analysis', () => {"
    },
    {
      "kind": "security",
      "source_path": "tests/analysis/engine.test.ts",
      "line": 142,
      "text": "it('should check security headers', () => {"
    },
    {
      "kind": "security",
      "source_path": "tests/analysis/engine.test.ts",
      "line": 144,
      "text": "['content-security-policy', \"default-src 'self'\"],"
    },
    {
      "kind": "security",
      "source_path": "tests/analysis/engine.test.ts",
      "line": 147,
      "text": "['strict-transport-security', 'max-age=31536000'],"
    },
    {
      "kind": "security",
      "source_path": "tests/analysis/engine.test.ts",
      "line": 151,
      "text": "'content-security-policy',"
    },
    {
      "kind": "security",
      "source_path": "tests/analysis/engine.test.ts",
      "line": 154,
      "text": "'strict-transport-security',"
    },
    {
      "kind": "security",
      "source_path": "tests/api/security.test.ts",
      "line": 2,
      "text": "import { getSecurityGrade } from '@/lib/api/security'"
    },
    {
      "kind": "security",
      "source_path": "tests/api/validate.test.ts",
      "line": 32,
      "text": "['content-security-policy', \"default-src 'self'\"],"
    },
    {
      "kind": "security",
      "source_path": "tests/api/validate.test.ts",
      "line": 38,
      "text": "modules: ['html', 'css', 'accessibility', 'seo', 'security', 'performance']"
    },
    {
      "kind": "security",
      "source_path": "tests/api/validate.test.ts",
      "line": 82,
      "text": "'security',"
    },
    {
      "kind": "security",
      "source_path": "tests/api/well-known.test.ts",
      "line": 3,
      "text": "import { GET as getSecurity } from '@/app/.well-known/security.txt/route'"
    },
    {
      "kind": "security",
      "source_path": "tests/api/well-known.test.ts",
      "line": 19,
      "text": "it('should serve security.txt with correct headers and content', async () => {"
    },
    {
      "kind": "security",
      "source_path": "tests/api/well-known.test.ts",
      "line": 28,
      "text": "expect(text).toContain('Contact: mailto:security@platphormnews.com')"
    },
    {
      "kind": "security",
      "source_path": "tests/components/analysis-progress.test.ts",
      "line": 214,
      "text": "{ id: 'security', name: 'Security', description: 'Headers check', status: 'pending' as const },"
    },
    {
      "kind": "deprecated",
      "source_path": "tests/components/layout/locale-switcher.test.tsx",
      "line": 33,
      "text": "addListener: vi.fn(), // Deprecated"
    },
    {
      "kind": "deprecated",
      "source_path": "tests/components/layout/locale-switcher.test.tsx",
      "line": 34,
      "text": "removeListener: vi.fn(), // Deprecated"
    },
    {
      "kind": "security",
      "source_path": "tests/hooks/use-analysis.test.ts",
      "line": 207,
      "text": "security: null,"
    },
    {
      "kind": "deprecated",
      "source_path": "tests/hooks/use-mobile.test.ts",
      "line": 19,
      "text": "addListener: vi.fn(), // deprecated"
    },
    {
      "kind": "deprecated",
      "source_path": "tests/hooks/use-mobile.test.ts",
      "line": 20,
      "text": "removeListener: vi.fn(), // deprecated"
    },
    {
      "kind": "security",
      "source_path": "tests/integration/e2e.test.ts",
      "line": 146,
      "text": "security: { score: 100, headers: {} }"
    },
    {
      "kind": "security",
      "source_path": "tests/integration/full-flow.test.ts",
      "line": 99,
      "text": "it('should include security headers analysis', async () => {"
    },
    {
      "kind": "security",
      "source_path": "tests/lib/testing/executor.test.ts",
      "line": 117,
      "text": "const filtered = filterResultsByCategory(mockResults, 'security')"
    },
    {
      "kind": "security",
      "source_path": "tests/mcp/tools.test.ts",
      "line": 55,
      "text": "name: 'strict-transport-security',"
    },
    {
      "kind": "security",
      "source_path": "tests/mcp/tools.test.ts",
      "line": 94,
      "text": "security: mockAnalysis.security_headers,"
    },
    {
      "kind": "security",
      "source_path": "tests/mcp/tools.test.ts",
      "line": 145,
      "text": "security: null,"
    },
    {
      "kind": "security",
      "source_path": "tests/scoring/compliance.test.ts",
      "line": 34,
      "text": "describe('Security Compliance', () => {"
    },
    {
      "kind": "security",
      "source_path": "tests/scoring/compliance.test.ts",
      "line": 37,
      "text": "expect(result.security.httpsEnforced).toBe(true)"
    },
    {
      "kind": "security",
      "source_path": "tests/scoring/compliance.test.ts",
      "line": 42,
      "text": "expect(result.security.httpsEnforced).toBe(false)"
    },
    {
      "kind": "security",
      "source_path": "tests/scoring/compliance.test.ts",
      "line": 43,
      "text": "expect(result.security.score).toBeLessThan(100)"
    },
    {
      "kind": "security",
      "source_path": "tests/scoring/compliance.test.ts",
      "line": 47,
      "text": "const headers = { 'strict-transport-security': 'max-age=31536000; includeSubDomains; preload' }"
    },
    {
      "kind": "security",
      "source_path": "tests/scoring/compliance.test.ts",
      "line": 49,
      "text": "expect(result.security.hsts.present).toBe(true)"
    },
    {
      "kind": "security",
      "source_path": "tests/scoring/compliance.test.ts",
      "line": 50,
      "text": "expect(result.security.hsts.maxAge).toBe(31536000)"
    },
    {
      "kind": "security",
      "source_path": "tests/scoring/compliance.test.ts",
      "line": 51,
      "text": "expect(result.security.hsts.includeSubdomains).toBe(true)"
    },
    {
      "kind": "security",
      "source_path": "tests/scoring/compliance.test.ts",
      "line": 52,
      "text": "expect(result.security.hsts.preload).toBe(true)"
    },
    {
      "kind": "unsafe",
      "source_path": "tests/scoring/compliance.test.ts",
      "line": 56,
      "text": "const headers = { 'content-security-policy': \"default-src 'self'; script-src 'unsafe-inline' 'unsafe-eval'\" }"
    },
    {
      "kind": "security",
      "source_path": "tests/scoring/compliance.test.ts",
      "line": 58,
      "text": "expect(result.security.csp.present).toBe(true)"
    },
    {
      "kind": "security",
      "source_path": "tests/scoring/compliance.test.ts",
      "line": 59,
      "text": "expect(result.security.csp.hasUnsafeInline).toBe(true)"
    },
    {
      "kind": "security",
      "source_path": "tests/scoring/compliance.test.ts",
      "line": 60,
      "text": "expect(result.security.csp.hasUnsafeEval).toBe(true)"
    },
    {
      "kind": "security",
      "source_path": "tests/scoring/compliance.test.ts",
      "line": 66,
      "text": "expect(result.security.mixedContent).toBe(true)"
    },
    {
      "kind": "security",
      "source_path": "tests/security/security-headers.test.ts",
      "line": 4,
      "text": "* Security Headers Analysis Tests"
    },
    {
      "kind": "security",
      "source_path": "tests/security/security-headers.test.ts",
      "line": 5,
      "text": "* Comprehensive tests for HTTP security header validation"
    },
    {
      "kind": "security",
      "source_path": "tests/security/security-headers.test.ts",
      "line": 8,
      "text": "describe('Security Headers Analysis', () => {"
    },
    {
      "kind": "security",
      "source_path": "tests/security/security-headers.test.ts",
      "line": 9,
      "text": "describe('Strict-Transport-Security (HSTS)', () => {"
    },
    {
      "kind": "security",
      "source_path": "tests/security/security-headers.test.ts",
      "line": 39,
      "text": "describe('Content-Security-Policy (CSP)', () => {"
    },
    {
      "kind": "unsafe",
      "source_path": "tests/security/security-headers.test.ts",
      "line": 46,
      "text": "it('should detect unsafe-inline', () => {"
    },
    {
      "kind": "unsafe",
      "source_path": "tests/security/security-headers.test.ts",
      "line": 47,
      "text": "const result = validateCSP(\"default-src 'self'; script-src 'unsafe-inline'\")"
    },
    {
      "kind": "unsafe",
      "source_path": "tests/security/security-headers.test.ts",
      "line": 48,
      "text": "expect(result.warnings).toContain('unsafe-inline')"
    },
    {
      "kind": "unsafe",
      "source_path": "tests/security/security-headers.test.ts",
      "line": 51,
      "text": "it('should detect unsafe-eval', () => {"
    },
    {
      "kind": "unsafe",
      "source_path": "tests/security/security-headers.test.ts",
      "line": 52,
      "text": "const result = validateCSP(\"default-src 'self'; script-src 'unsafe-eval'\")"
    },
    {
      "kind": "unsafe",
      "source_path": "tests/security/security-headers.test.ts",
      "line": 53,
      "text": "expect(result.warnings).toContain('unsafe-eval')"
    },
    {
      "kind": "deprecated",
      "source_path": "tests/security/security-headers.test.ts",
      "line": 103,
      "text": "it('should reject ALLOW-FROM (deprecated)', () => {"
    },
    {
      "kind": "deprecated",
      "source_path": "tests/security/security-headers.test.ts",
      "line": 105,
      "text": "expect(result.deprecated).toBe(true)"
    },
    {
      "kind": "unsafe",
      "source_path": "tests/security/security-headers.test.ts",
      "line": 134,
      "text": "it('should flag unsafe-url as weak', () => {"
    },
    {
      "kind": "unsafe",
      "source_path": "tests/security/security-headers.test.ts",
      "line": 135,
      "text": "const result = validateReferrerPolicy('unsafe-url')"
    },
    {
      "kind": "security",
      "source_path": "tests/security/security-headers.test.ts",
      "line": 185,
      "text": "describe('Overall Security Score', () => {"
    },
    {
      "kind": "security",
      "source_path": "tests/security/security-headers.test.ts",
      "line": 188,
      "text": "'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',"
    },
    {
      "kind": "security",
      "source_path": "tests/security/security-headers.test.ts",
      "line": 189,
      "text": "'content-security-policy': \"default-src 'self'\","
    },
    {
      "kind": "security",
      "source_path": "tests/security/security-headers.test.ts",
      "line": 213,
      "text": "'content-security-policy': \"default-src 'self'\","
    },
    {
      "kind": "security",
      "source_path": "tests/security/security-headers.test.ts",
      "line": 217,
      "text": "'strict-transport-security': 'max-age=31536000',"
    },
    {
      "kind": "security",
      "source_path": "tests/security/security-headers.test.ts",
      "line": 218,
      "text": "'content-security-policy': \"default-src 'self'\","
    },
    {
      "kind": "security",
      "source_path": "tests/security/security-headers.test.ts",
      "line": 227,
      "text": "describe('Security Grade', () => {"
    },
    {
      "kind": "unsafe",
      "source_path": "tests/security/security-headers.test.ts",
      "line": 289,
      "text": "if (value.includes(\"'unsafe-inline'\")) warnings.push('unsafe-inline')"
    },
    {
      "kind": "unsafe",
      "source_path": "tests/security/security-headers.test.ts",
      "line": 290,
      "text": "if (value.includes(\"'unsafe-eval'\")) warnings.push('unsafe-eval')"
    },
    {
      "kind": "deprecated",
      "source_path": "tests/security/security-headers.test.ts",
      "line": 307,
      "text": "function validateXFrameOptions(value: string): { valid: boolean; level: string; deprecated: boolean } {"
    },
    {
      "kind": "deprecated",
      "source_path": "tests/security/security-headers.test.ts",
      "line": 310,
      "text": "return { valid: false, level: 'none', deprecated: true }"
    },
    {
      "kind": "deprecated",
      "source_path": "tests/security/security-headers.test.ts",
      "line": 313,
      "text": "return { valid: true, level: 'strict', deprecated: false }"
    },
    {
      "kind": "deprecated",
      "source_path": "tests/security/security-headers.test.ts",
      "line": 316,
      "text": "return { valid: true, level: 'moderate', deprecated: false }"
    },
    {
      "kind": "deprecated",
      "source_path": "tests/security/security-headers.test.ts",
      "line": 318,
      "text": "return { valid: false, level: 'none', deprecated: false }"
    },
    {
      "kind": "unsafe",
      "source_path": "tests/security/security-headers.test.ts",
      "line": 337,
      "text": "'unsafe-url': 'low',"
    },
    {
      "kind": "unsafe",
      "source_path": "tests/security/security-headers.test.ts",
      "line": 364,
      "text": "return { valid: ['same-origin', 'same-origin-allow-popups', 'unsafe-none'].includes(value) }"
    },
    {
      "kind": "unsafe",
      "source_path": "tests/security/security-headers.test.ts",
      "line": 372,
      "text": "return { valid: ['require-corp', 'credentialless', 'unsafe-none'].includes(value) }"
    },
    {
      "kind": "security",
      "source_path": "tests/security/security-headers.test.ts",
      "line": 378,
      "text": "'strict-transport-security': 20,"
    },
    {
      "kind": "security",
      "source_path": "tests/security/security-headers.test.ts",
      "line": 379,
      "text": "'content-security-policy': 20,"
    }
  ],
  "security": {
    "secret_risks": [],
    "unsafe_patterns": [
      {
        "name": "child-process-exec",
        "confidence": "medium",
        "evidence_paths": [
          ".Jules/bolt.md",
          "lib/scoring/design.ts",
          "lib/validators/accessibility.ts"
        ]
      },
      {
        "name": "dangerously-set-html",
        "confidence": "medium",
        "evidence_paths": [
          "app/layout.tsx",
          "components/layout/breadcrumbs.tsx",
          "components/seo/json-ld.tsx",
          "components/ui/chart.tsx"
        ]
      },
      {
        "name": "sql-injection-review-needed",
        "confidence": "medium",
        "evidence_paths": [
          "lib/db.ts",
          "lib/integrations/server-insights.ts"
        ]
      },
      {
        "name": "ssrf-review-needed",
        "confidence": "medium",
        "evidence_paths": [
          "app/[locale]/dashboard/dashboard-client.tsx",
          "app/[locale]/timeline/timeline-client.tsx",
          "app/api/cron/maintenance/route.ts",
          "app/api/mcp/route.ts",
          "app/api/v1/advanced-scores/route.ts",
          "app/api/v1/analyze/route.ts",
          "app/api/v1/compare/route.ts",
          "app/api/v1/llm-instructions/route.ts",
          "app/api/v1/scoring/answerability/route.ts",
          "app/api/v1/scoring/audience/route.ts",
          "app/api/v1/scoring/readability/route.ts",
          "app/api/v1/scoring/searchability/route.ts",
          "app/api/v1/validate/route.ts",
          "hooks/use-analysis.ts",
          "lib/api/pagespeed.ts",
          "lib/api/platphorm.ts",
          "lib/api/security.ts",
          "lib/phase2/validation.ts"
        ]
      }
    ],
    "sensitive_data_indicators": [
      {
        "name": "api_key",
        "confidence": "medium",
        "evidence_paths": [
          "app/.well-known/agents.json/route.ts",
          "app/.well-known/ai-plugin.json/route.ts",
          "app/.well-known/mcp.json/route.ts",
          "app/.well-known/trust.json/route.ts",
          "app/[locale]/docs/page.tsx",
          "app/[locale]/network/page.tsx",
          "app/[locale]/page.tsx",
          "app/api/cron/mcp-ping/route.ts",
          "app/api/docs/route.ts",
          "app/api/mcp/route.ts",
          "app/api/v1/network/graph/route.ts",
          "app/api/v1/reports/[id]/route.ts",
          "app/llms-full.txt/route.ts",
          "app/llms-index.json/route.ts",
          "app/llms.txt/route.ts",
          "lib/api/pagespeed.ts",
          "lib/integrations/trace-sdk.ts",
          "lib/phase2/validation.ts",
          "lib/platform/auth.ts",
          "lib/scoring/compliance.ts"
        ]
      },
      {
        "name": "card",
        "confidence": "medium",
        "evidence_paths": [
          "app/[locale]/about/page.tsx",
          "app/[locale]/accessibility/page.tsx",
          "app/[locale]/compare/page.tsx",
          "app/[locale]/dashboard/dashboard-client.tsx",
          "app/[locale]/dashboard/page.tsx",
          "app/[locale]/data-policy/page.tsx",
          "app/[locale]/docs/page.tsx",
          "app/[locale]/faq/page.tsx",
          "app/[locale]/history/page.tsx",
          "app/[locale]/jobs/page.tsx",
          "app/[locale]/network/page.tsx",
          "app/[locale]/page.tsx",
          "app/[locale]/privacy/page.tsx",
          "app/[locale]/rankings/page.tsx",
          "app/[locale]/results/components/accessibility-tab.tsx",
          "app/[locale]/results/components/compare-tab.tsx",
          "app/[locale]/results/components/discovery-tab.tsx",
          "app/[locale]/results/components/i18n-tab.tsx",
          "app/[locale]/results/components/security-tab.tsx",
          "app/[locale]/results/components/seo-tab.tsx"
        ]
      },
      {
        "name": "email",
        "confidence": "medium",
        "evidence_paths": [
          "__tests__/quality/framework-helpers.ts",
          "app/.well-known/ai-plugin.json/route.ts",
          "app/[locale]/about/page.tsx",
          "app/[locale]/accessibility/page.tsx",
          "app/[locale]/privacy/page.tsx",
          "app/api/docs/route.ts",
          "app/layout.tsx",
          "components/seo/json-ld.tsx",
          "components/share-modal.tsx",
          "CONTRIBUTING.md",
          "lib/analysis/engine.ts",
          "lib/config/site.ts",
          "lib/scoring/compliance.ts",
          "lib/scoring/index.ts",
          "lib/testing/executor.ts",
          "lib/testing/registry.ts",
          "README.md",
          "SECURITY.md",
          "tests/scoring/audience.test.ts",
          "tests/scoring/compliance.test.ts"
        ]
      },
      {
        "name": "fingerprint",
        "confidence": "medium",
        "evidence_paths": [
          "app/api/v1/insights/route.ts",
          "app/api/v1/suggestions/route.ts",
          "lib/fingerprint.ts",
          "lib/insights/page-insights-sdk.ts",
          "lib/logger.ts",
          "lib/mcp/client.ts",
          "lib/rate-limit.ts",
          "lib/testing/registry.ts",
          "public/schemas/platphorm-universal-schema-pack.json",
          "REFERENCES.md",
          "scripts/003-rate-limiting.sql",
          "tests/api/analyze.test.ts",
          "tests/api/llms-txt.test.ts",
          "tests/api/suggestions.test.ts",
          "tests/integration/full-flow.test.ts",
          "tests/lib/fingerprint.test.ts",
          "tests/rate-limit/check-rate-limit.test.ts",
          "tests/rate-limit/rate-limit.test.ts",
          "tests/security/rate-limit.test.ts"
        ]
      },
      {
        "name": "health",
        "confidence": "medium",
        "evidence_paths": [
          "__tests__/api/trace-propagation.test.ts",
          "__tests__/e2e/full-integration.test.ts",
          ".Jules/bolt.md",
          "app/.well-known/trust.json/route.ts",
          "app/api/docs/route.ts",
          "app/api/health/route.ts",
          "app/api/mcp/route.ts",
          "app/api/v1/health/route.ts",
          "app/api/v1/integrations/platphorm/route.ts",
          "app/api/v1/network/route-compliance/route.ts",
          "app/api/webhooks/route.ts",
          "app/llms-full.txt/route.ts",
          "app/llms-index.json/route.ts",
          "app/llms.txt/route.ts",
          "CHANGELOG.md",
          "COMPLETE_INTEGRATION_SUMMARY.md",
          "lib/api/platphorm.ts",
          "lib/scoring/index.ts",
          "public/schemas/platphorm-universal-schema-pack.json",
          "README.md"
        ]
      },
      {
        "name": "ip address",
        "confidence": "medium",
        "evidence_paths": [
          ".Jules/sentinel.md",
          "app/[locale]/privacy/page.tsx",
          "lib/fingerprint.ts",
          "lib/rate-limit.ts",
          "tests/api/analyze.test.ts",
          "tests/security/rate-limit.test.ts"
        ]
      },
      {
        "name": "location",
        "confidence": "medium",
        "evidence_paths": [
          ".Jules/bolt.md",
          "app/[locale]/about/page.tsx",
          "app/[locale]/dashboard/dashboard-client.tsx",
          "app/[locale]/faq/page.tsx",
          "app/[locale]/history/page.tsx",
          "app/[locale]/jobs/page.tsx",
          "app/[locale]/results/page.tsx",
          "app/[locale]/timeline/timeline-client.tsx",
          "components/insights-provider.tsx",
          "components/share-modal.tsx",
          "components/ui/smart-tooltip.tsx",
          "IMPLEMENTATION_VERIFICATION_CHECKLIST.md",
          "lib/analysis/engine.ts",
          "lib/insights/page-insights-sdk.ts",
          "lib/scoring/discovery.ts",
          "lib/scoring/index.ts",
          "lib/testing/executor.ts",
          "lib/testing/registry.ts",
          "lib/validators/seo.ts",
          "PAGEINSIGHTS_IMPLEMENTATION.md"
        ]
      },
      {
        "name": "oauth",
        "confidence": "medium",
        "evidence_paths": [
          "lib/scoring/ai.ts",
          "tests/scoring/ai.test.ts"
        ]
      },
      {
        "name": "password",
        "confidence": "medium",
        "evidence_paths": [
          "lib/analysis/engine.ts",
          "lib/scoring/compliance.ts",
          "lib/testing/executor.ts",
          "tests/scoring/compliance.test.ts"
        ]
      },
      {
        "name": "payment",
        "confidence": "medium",
        "evidence_paths": [
          "app/api/v1/suggestions/route.ts",
          "tests/api/suggestions.test.ts"
        ]
      },
      {
        "name": "pii",
        "confidence": "medium",
        "evidence_paths": [
          "IMPLEMENTATION_VERIFICATION_CHECKLIST.md",
          "PAGEINSIGHTS_IMPLEMENTATION.md",
          "pnpm-lock.yaml",
          "PROJECT_COMPLETION_SUMMARY.md"
        ]
      },
      {
        "name": "secret-like environment variables",
        "confidence": "medium",
        "evidence_paths": [
          "package.json"
        ]
      },
      {
        "name": "token",
        "confidence": "medium",
        "evidence_paths": [
          ".Jules/bolt.md",
          "app/.well-known/trust.json/route.ts",
          "app/api/v1/advanced-scores/route.ts",
          "app/api/v1/analyze/route.ts",
          "app/api/v1/llm-instructions/route.ts",
          "app/llms-full.txt/route.ts",
          "CHANGELOG.md",
          "CONTRIBUTING.md",
          "lib/db.ts",
          "lib/scoring/ai.ts",
          "pnpm-lock.yaml",
          "scripts/002-enhanced-schema.sql",
          "scripts/007-enhanced-analysis-schema.sql",
          "scripts/008-enhanced-comparisons-schema.sql",
          "scripts/migrations/003_core_layer.sql",
          "scripts/migrations/009_backfill_existing_data.sql",
          "scripts/migrations/010_compatibility_views.sql",
          "tests/api/compare-enhanced.test.ts",
          "tests/db/enhanced-schema.test.ts",
          "tests/integration/e2e.test.ts"
        ]
      }
    ]
  },
  "generated_at": "2026-05-16T16:44:14.931Z"
}
