{
  "schema_version": "1.0.0",
  "scanner": {
    "name": "global-capability-catalog",
    "version": "0.1.0"
  },
  "repo": {
    "id": "github-recent__mbarbine__platphorm-polymarket-rss-feed",
    "name": "mbarbine__platphorm-polymarket-rss-feed",
    "path": "/Users/bwm.barbinewarnermichael/Documents/github/repositories/github-recent/mbarbine__platphorm-polymarket-rss-feed",
    "relative_path": "github-recent/mbarbine__platphorm-polymarket-rss-feed",
    "remote_url": "git@github.com:mbarbine/platphorm-polymarket-rss-feed.git",
    "default_branch": "main",
    "current_commit": "42f14d245bd9df8db8cb487b287f9526d2b46881"
  },
  "languages": [
    {
      "language": "TypeScript",
      "files": 152,
      "bytes": 568439
    },
    {
      "language": "YAML",
      "files": 2,
      "bytes": 278633
    },
    {
      "language": "Markdown",
      "files": 18,
      "bytes": 187412
    },
    {
      "language": "JSON",
      "files": 15,
      "bytes": 103132
    },
    {
      "language": "Python",
      "files": 2,
      "bytes": 25894
    },
    {
      "language": "JavaScript",
      "files": 5,
      "bytes": 11518
    },
    {
      "language": "CSS",
      "files": 2,
      "bytes": 11115
    },
    {
      "language": "SQL",
      "files": 3,
      "bytes": 9487
    },
    {
      "language": "Shell",
      "files": 1,
      "bytes": 39
    }
  ],
  "frameworks": [
    {
      "name": "Next.js",
      "confidence": "high",
      "evidence_paths": [
        "package.json"
      ]
    },
    {
      "name": "React",
      "confidence": "high",
      "evidence_paths": [
        "package.json"
      ]
    },
    {
      "name": "Tailwind CSS",
      "confidence": "high",
      "evidence_paths": [
        "package.json"
      ]
    },
    {
      "name": "Vitest",
      "confidence": "high",
      "evidence_paths": [
        "package.json"
      ]
    }
  ],
  "packages": {
    "package_manager": "pnpm",
    "manifests": [
      {
        "path": "package.json",
        "name": "polymarket-rss-feed",
        "version": "1.0.0",
        "scripts": {
          "build": "next build",
          "dev": "next dev",
          "lint": "eslint .",
          "start": "next start",
          "test": "vitest",
          "test:run": "vitest run",
          "test:coverage": "vitest run --coverage",
          "test:ui": "vitest --ui",
          "test:seed": "tsx tests/fixtures/seed.ts",
          "test:live": "TEST_USE_LIVE_API=1 vitest run",
          "db:migrate": "node scripts/apply-db-migrations.mjs",
          "smoke:live": "node scripts/live-smoke.mjs",
          "smoke:live:protected": "RUN_PROTECTED_LIVE_SMOKE=true node scripts/live-smoke.mjs --protected"
        },
        "dependencies": {
          "@hookform/resolvers": "^3.10.0",
          "@neondatabase/serverless": "latest",
          "@radix-ui/react-accordion": "1.2.2",
          "@radix-ui/react-alert-dialog": "1.1.4",
          "@radix-ui/react-aspect-ratio": "1.1.1",
          "@radix-ui/react-avatar": "1.1.2",
          "@radix-ui/react-checkbox": "1.1.3",
          "@radix-ui/react-collapsible": "1.1.2",
          "@radix-ui/react-context-menu": "2.2.4",
          "@radix-ui/react-dialog": "1.1.4",
          "@radix-ui/react-dropdown-menu": "2.1.4",
          "@radix-ui/react-hover-card": "1.1.4",
          "@radix-ui/react-label": "2.1.1",
          "@radix-ui/react-menubar": "1.1.4",
          "@radix-ui/react-navigation-menu": "1.2.3",
          "@radix-ui/react-popover": "1.1.4",
          "@radix-ui/react-progress": "1.1.1",
          "@radix-ui/react-radio-group": "1.2.2",
          "@radix-ui/react-scroll-area": "1.2.2",
          "@radix-ui/react-select": "2.1.4",
          "@radix-ui/react-separator": "1.1.1",
          "@radix-ui/react-slider": "1.2.2",
          "@radix-ui/react-slot": "latest",
          "@radix-ui/react-switch": "1.1.2",
          "@radix-ui/react-tabs": "1.1.2",
          "@radix-ui/react-toast": "1.2.4",
          "@radix-ui/react-toggle": "1.1.1",
          "@radix-ui/react-toggle-group": "1.1.1",
          "@radix-ui/react-tooltip": "1.1.6",
          "@vercel/analytics": "1.6.1",
          "@vercel/speed-insights": "^1.3.1",
          "autoprefixer": "^10.5.0",
          "botid": "^1.5.11",
          "class-variance-authority": "^0.7.1",
          "clsx": "^2.1.1",
          "cmdk": "1.0.4",
          "date-fns": "4.1.0",
          "embla-carousel-react": "8.5.1",
          "input-otp": "1.4.1",
          "lucide-react": "^0.454.0",
          "next": "16.1.6",
          "next-themes": "latest",
          "react": "19.2.4",
          "react-day-picker": "9.8.0",
          "react-dom": "19.2.4",
          "react-hook-form": "^7.73.1",
          "react-resizable-panels": "^2.1.9",
          "recharts": "2.15.4",
          "sonner": "^1.7.4",
          "tailwind-merge": "^2.6.1",
          "tailwindcss-animate": "^1.0.7",
          "vaul": "^0.9.9",
          "zod": "3.25.76"
        },
        "dev_dependencies": {
          "@tailwindcss/postcss": "^4.2.4",
          "@types/node": "^22.19.17",
          "@types/react": "^19.2.14",
          "@types/react-dom": "^19.2.3",
          "@vitest/coverage-v8": "^4.1.5",
          "baseline-browser-mapping": "^2.10.20",
          "eslint": "^9.39.4",
          "eslint-config-next": "^16.2.4",
          "msw": "^2.13.4",
          "postcss": "^8.5.10",
          "tailwindcss": "^4.2.4",
          "tsx": "^4.21.0",
          "tw-animate-css": "1.3.3",
          "typescript": "5.7.3",
          "vite-tsconfig-paths": "^6.1.1",
          "vitest": "^4.1.5"
        }
      }
    ]
  },
  "routes": {
    "api_routes": [
      {
        "route": "/analytics",
        "source_path": "app/api/analytics/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/categories",
        "source_path": "app/api/categories/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/cron/sync-markets",
        "source_path": "app/api/cron/sync-markets/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET",
          "POST"
        ]
      },
      {
        "route": "/discovery",
        "source_path": "app/api/discovery/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/docs/[doc]",
        "source_path": "app/api/docs/[doc]/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET",
          "OPTIONS"
        ]
      },
      {
        "route": "/docs",
        "source_path": "app/api/docs/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET",
          "OPTIONS"
        ]
      },
      {
        "route": "/errors",
        "source_path": "app/api/errors/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/feed/atom",
        "source_path": "app/api/feed/atom/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/feed/json",
        "source_path": "app/api/feed/json/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/feed",
        "source_path": "app/api/feed/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/feed/rss",
        "source_path": "app/api/feed/rss/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/feed/xml",
        "source_path": "app/api/feed/xml/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/health",
        "source_path": "app/api/health/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/markets",
        "source_path": "app/api/markets/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": "/network",
        "source_path": "app/api/network/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET",
          "OPTIONS"
        ]
      },
      {
        "route": "/og",
        "source_path": "app/api/og/route.tsx",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/quality",
        "source_path": "app/api/quality/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/signals/live",
        "source_path": "app/api/signals/live/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/stats",
        "source_path": "app/api/stats/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/trending",
        "source_path": "app/api/trending/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/categories",
        "source_path": "app/api/v1/categories/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/markets/[id]/history",
        "source_path": "app/api/v1/markets/[id]/history/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/markets/[id]/orderbook",
        "source_path": "app/api/v1/markets/[id]/orderbook/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/markets/[id]/related",
        "source_path": "app/api/v1/markets/[id]/related/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/markets/[id]",
        "source_path": "app/api/v1/markets/[id]/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/markets",
        "source_path": "app/api/v1/markets/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"
        ]
      },
      {
        "route": "/v1/network/graph/sync",
        "source_path": "app/api/v1/network/graph/sync/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "POST"
        ]
      },
      {
        "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/quality",
        "source_path": "app/api/v1/quality/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/signals/live",
        "source_path": "app/api/v1/signals/live/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/source-status",
        "source_path": "app/api/v1/source-status/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/sync/markets",
        "source_path": "app/api/v1/sync/markets/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET",
          "POST"
        ]
      },
      {
        "route": "/v1/sync/status",
        "source_path": "app/api/v1/sync/status/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/v1/trending",
        "source_path": "app/api/v1/trending/route.ts",
        "kind": "next-app-api-route",
        "methods": [
          "GET"
        ]
      }
    ],
    "app_routes": [
      {
        "route": "/[locale]",
        "source_path": "app/[locale]/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/categories/[category]",
        "source_path": "app/categories/[category]/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/categories",
        "source_path": "app/categories/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/feeds",
        "source_path": "app/feeds/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/markets/[slug]",
        "source_path": "app/markets/[slug]/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/markets",
        "source_path": "app/markets/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/quality",
        "source_path": "app/quality/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/signals",
        "source_path": "app/signals/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      },
      {
        "route": "/trending",
        "source_path": "app/trending/page.tsx",
        "kind": "next-app-page",
        "methods": [
          "GET"
        ]
      }
    ]
  },
  "components": [
    {
      "name": "copy-button",
      "kind": "ui-component",
      "source_path": "components/copy-button.tsx"
    },
    {
      "name": "faq-section",
      "kind": "ui-component",
      "source_path": "components/faq-section.tsx"
    },
    {
      "name": "language-switcher",
      "kind": "ui-component",
      "source_path": "components/language-switcher.tsx"
    },
    {
      "name": "market-table",
      "kind": "ui-component",
      "source_path": "components/market-table.tsx"
    },
    {
      "name": "recent-markets",
      "kind": "ui-component",
      "source_path": "components/recent-markets.tsx"
    },
    {
      "name": "site-footer",
      "kind": "ui-component",
      "source_path": "components/site-footer.tsx"
    },
    {
      "name": "site-header",
      "kind": "ui-component",
      "source_path": "components/site-header.tsx"
    },
    {
      "name": "theme-provider",
      "kind": "ui-component",
      "source_path": "components/theme-provider.tsx"
    },
    {
      "name": "badge",
      "kind": "ui-component",
      "source_path": "components/ui/badge.tsx"
    },
    {
      "name": "button",
      "kind": "ui-component",
      "source_path": "components/ui/button.tsx"
    },
    {
      "name": "card",
      "kind": "ui-component",
      "source_path": "components/ui/card.tsx"
    }
  ],
  "data_models": [],
  "database": {
    "databases": [],
    "schemas": [],
    "migrations": []
  },
  "tests": [
    {
      "name": "test-mcp-env.ts",
      "kind": "unit-or-integration",
      "source_path": "scripts/test-mcp-env.ts"
    },
    {
      "name": "cron.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/integration/cron.test.ts"
    },
    {
      "name": "discovery-routes.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/integration/discovery-routes.test.ts"
    },
    {
      "name": "docs-api.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/integration/docs-api.test.ts"
    },
    {
      "name": "feed-aliases.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/integration/feed-aliases.test.ts"
    },
    {
      "name": "feed-routes.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/integration/feed-routes.test.ts"
    },
    {
      "name": "mcp-discovery.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/integration/mcp-discovery.test.ts"
    },
    {
      "name": "mcp-new-tools.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/integration/mcp-new-tools.test.ts"
    },
    {
      "name": "mcp-protocol.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/integration/mcp-protocol.test.ts"
    },
    {
      "name": "mcp-tools.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/integration/mcp-tools.test.ts"
    },
    {
      "name": "network-api.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/integration/network-api.test.ts"
    },
    {
      "name": "rest-api.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/integration/rest-api.test.ts"
    },
    {
      "name": "security-txt.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/integration/security-txt.test.ts"
    },
    {
      "name": "signals-api.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/integration/signals-api.test.ts"
    },
    {
      "name": "trending-quality-api.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/integration/trending-quality-api.test.ts"
    },
    {
      "name": "perf.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/perf.test.ts"
    },
    {
      "name": "repro_nan.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/repro_nan.test.ts"
    },
    {
      "name": "atom-generator.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/unit/atom-generator.test.ts"
    },
    {
      "name": "cache.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/unit/cache.test.ts"
    },
    {
      "name": "clob-api.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/unit/clob-api.test.ts"
    },
    {
      "name": "db.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/unit/db.test.ts"
    },
    {
      "name": "emoji.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/unit/emoji.test.ts"
    },
    {
      "name": "feed-generators.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/unit/feed-generators.test.ts"
    },
    {
      "name": "i18n.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/unit/i18n.test.ts"
    },
    {
      "name": "locale-route.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/unit/locale-route.test.ts"
    },
    {
      "name": "logger.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/unit/logger.test.ts"
    },
    {
      "name": "market-signals.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/unit/market-signals.test.ts"
    },
    {
      "name": "mcp-logger.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/unit/mcp-logger.test.ts"
    },
    {
      "name": "network.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/unit/network.test.ts"
    },
    {
      "name": "polymarket-api.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/unit/polymarket-api.test.ts"
    },
    {
      "name": "rss-generator.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/unit/rss-generator.test.ts"
    },
    {
      "name": "utils.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/unit/utils.test.ts"
    },
    {
      "name": "verify_ip_spoofing_fix.test.ts",
      "kind": "unit-or-integration",
      "source_path": "tests/verify_ip_spoofing_fix.test.ts"
    }
  ],
  "ci": {
    "workflows": []
  },
  "containers": {
    "dockerfiles": [],
    "compose_files": []
  },
  "env": {
    "example_files": [
      {
        "path": ".env.example"
      }
    ],
    "variables": [
      {
        "name": "CRON_SECRET",
        "source_paths": [
          ".Jules/sentinel.md"
        ],
        "likely_secret": true
      },
      {
        "name": "DATABASE_URL",
        "source_paths": [
          ".env.example",
          "app/api/health/route.ts",
          "app/api/mcp/route.ts",
          "app/api/v1/sync/status/route.ts",
          "lib/db.ts",
          "lib/market-service.ts",
          "lib/mcp-logger.ts",
          "PACKAGES.md",
          "scripts/apply-db-migrations.mjs",
          "tests/unit/db.test.ts",
          "tests/unit/mcp-logger.test.ts"
        ],
        "likely_secret": true
      },
      {
        "name": "GOOGLE_SITE_VERIFICATION",
        "source_paths": [
          ".env.example",
          "app/layout.tsx"
        ],
        "likely_secret": false
      },
      {
        "name": "LOG_LEVEL",
        "source_paths": [
          "lib/logger.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "MCP_BASE_URL",
        "source_paths": [
          "scripts/test-mcp-env.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "NEXT_PUBLIC_BASE_URL",
        "source_paths": [
          ".env.example",
          "app/.well-known/feeds.json/route.ts",
          "app/.well-known/security.txt/route.ts",
          "app/[locale]/layout.tsx",
          "app/[locale]/page.tsx",
          "app/api/discovery/route.ts",
          "app/api/docs/[doc]/route.ts",
          "app/api/docs/route.ts",
          "app/api/feed/json/route.ts",
          "app/api/og/route.tsx",
          "app/layout.tsx",
          "app/llms.txt/route.ts",
          "app/page.tsx",
          "app/robots.txt/route.ts",
          "app/sitemap.xml/route.ts",
          "lib/atom-generator.ts",
          "lib/network.ts",
          "lib/platform.ts",
          "lib/rss-generator.tsx"
        ],
        "likely_secret": false
      },
      {
        "name": "NODE_ENV",
        "source_paths": [
          "app/api/feed/atom/route.ts",
          "app/api/feed/json/route.ts",
          "app/api/feed/route.ts",
          "app/api/health/route.ts",
          "lib/logger.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "PLATPHORM_API_KEY",
        "source_paths": [
          ".env.example",
          "lib/platform.ts",
          "scripts/live-smoke.mjs",
          "tests/integration/cron.test.ts",
          "tests/integration/rest-api.test.ts"
        ],
        "likely_secret": true
      },
      {
        "name": "PLATPHORM_TRACE_INGEST_URL",
        "source_paths": [
          "lib/trace.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "REQUIRE_DATABASE_PERSISTENCE",
        "source_paths": [
          "scripts/live-smoke.mjs"
        ],
        "likely_secret": false
      },
      {
        "name": "RUN_PROTECTED_LIVE_SMOKE",
        "source_paths": [
          "scripts/live-smoke.mjs"
        ],
        "likely_secret": false
      },
      {
        "name": "SMOKE_BASE_URL",
        "source_paths": [
          "scripts/live-smoke.mjs"
        ],
        "likely_secret": false
      },
      {
        "name": "SMOKE_TIMEOUT_MS",
        "source_paths": [
          "scripts/live-smoke.mjs"
        ],
        "likely_secret": false
      },
      {
        "name": "TEST_USE_LIVE_API",
        "source_paths": [
          "tests/setup.ts"
        ],
        "likely_secret": false
      },
      {
        "name": "VERCEL_ENV",
        "source_paths": [
          "app/api/health/route.ts",
          "PACKAGES.md"
        ],
        "likely_secret": false
      },
      {
        "name": "VERCEL_URL",
        "source_paths": [
          "scripts/test-mcp-env.ts"
        ],
        "likely_secret": false
      }
    ]
  },
  "configs": [
    {
      "path": "eslint.config.mjs"
    },
    {
      "path": "next.config.mjs"
    },
    {
      "path": "package.json"
    },
    {
      "path": "pnpm-workspace.yaml"
    },
    {
      "path": "postcss.config.mjs"
    },
    {
      "path": "tsconfig.json"
    },
    {
      "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/agent.json/route.ts"
      },
      {
        "path": "app/.well-known/agents.json/route.ts"
      },
      {
        "path": "app/.well-known/ai-plugin.json/route.ts"
      },
      {
        "path": "app/.well-known/feeds.json/route.ts"
      },
      {
        "path": "app/.well-known/mcp.json/route.ts"
      },
      {
        "path": "app/.well-known/security.txt/route.ts"
      },
      {
        "path": "app/.well-known/trust-policy.json/route.ts"
      },
      {
        "path": "app/.well-known/trust.json/route.ts"
      }
    ],
    "robots": [],
    "manifests": []
  },
  "integrations": [
    {
      "name": "Google",
      "confidence": "medium",
      "evidence_paths": [
        ".env.example",
        "app/layout.tsx",
        "package.json"
      ]
    },
    {
      "name": "PlatPhorm",
      "confidence": "medium",
      "evidence_paths": [
        ".env.example",
        "app/.well-known/agents.json/route.ts",
        "app/.well-known/ai-plugin.json/route.ts",
        "app/.well-known/trust.json/route.ts",
        "app/api/health/route.ts",
        "app/api/mcp/route.ts",
        "app/api/v1/sync/status/route.ts",
        "app/feeds/page.tsx",
        "lib/trace.ts",
        "package.json"
      ]
    },
    {
      "name": "Postgres",
      "confidence": "medium",
      "evidence_paths": [
        ".env.example",
        "app/.well-known/trust.json/route.ts",
        "app/api/discovery/route.ts",
        "app/api/health/route.ts",
        "app/api/mcp/route.ts",
        "app/api/v1/sync/status/route.ts",
        "app/llms-full.txt/route.ts",
        "DEPLOYMENT.md",
        "package.json"
      ]
    },
    {
      "name": "Vercel",
      "confidence": "medium",
      "evidence_paths": [
        "app/api/health/route.ts",
        "app/layout.tsx",
        "CHANGELOG.md",
        "package.json",
        "PACKAGES.md",
        "pnpm-lock.yaml",
        "scripts/test-mcp-env.ts"
      ]
    }
  ],
  "license": {
    "spdx": null,
    "paths": [
      {
        "path": "LICENSE.txt"
      }
    ]
  },
  "comments": [
    {
      "kind": "security",
      "source_path": "anoms-do-not-delete.md",
      "line": 323,
      "text": "category: { type: 'string', description: 'Filter by category (overview, technical, api, features, compliance, ecosystem, integrations, guides, planning, development, community, releases, security, design)' },"
    },
    {
      "kind": "security",
      "source_path": "anoms-do-not-delete.md",
      "line": 333,
      "text": "slug: { type: 'string', description: 'Doc slug: readme | architecture | api | features | standards | ecosystem | integrations | use-cases | roadmap | testing | contributing | changelog | security | support | code-of-conduct | contributors |"
    },
    {
      "kind": "security",
      "source_path": "anoms-do-not-delete.md",
      "line": 376,
      "text": "'security':         { file: 'SECURITY.md',         description: 'Security policy and reporting',                       category: 'security'     },"
    },
    {
      "kind": "unsafe",
      "source_path": "anoms-do-not-delete.md",
      "line": 441,
      "text": "ORDER BY ${sql.unsafe(orderBy)}"
    },
    {
      "kind": "security",
      "source_path": "API.md",
      "line": 369,
      "text": "Returns a documentation file. Accepted slugs: `principles`, `architecture`, `api`, `changelog`, `contributing`, `packages`, `security`, `deployment`, `code-of-conduct`, `readme`, `implementation-plan`, `features`."
    },
    {
      "kind": "security",
      "source_path": "app/.well-known/ai-plugin.json/route.ts",
      "line": 18,
      "text": "contact_email: \"security@platphormnews.com\","
    },
    {
      "kind": "security",
      "source_path": "app/.well-known/ai-plugin.json/route.ts",
      "line": 19,
      "text": "legal_info_url: `${BASE_URL}/api/docs/security`,"
    },
    {
      "kind": "security",
      "source_path": "app/.well-known/mcp.json/route.ts",
      "line": 39,
      "text": "security_txt: `${BASE_URL}/.well-known/security.txt`,"
    },
    {
      "kind": "security",
      "source_path": "app/.well-known/security.txt/route.ts",
      "line": 2,
      "text": "* .well-known/security.txt — Security Contact"
    },
    {
      "kind": "security",
      "source_path": "app/.well-known/security.txt/route.ts",
      "line": 3,
      "text": "* Route: GET /.well-known/security.txt"
    },
    {
      "kind": "security",
      "source_path": "app/.well-known/security.txt/route.ts",
      "line": 22,
      "text": "# Security contact information (RFC 9116)"
    },
    {
      "kind": "security",
      "source_path": "app/.well-known/security.txt/route.ts",
      "line": 24,
      "text": "Contact: mailto:security@platphormnews.com"
    },
    {
      "kind": "security",
      "source_path": "app/.well-known/security.txt/route.ts",
      "line": 28,
      "text": "Canonical: ${BASE_URL}/.well-known/security.txt"
    },
    {
      "kind": "security",
      "source_path": "app/.well-known/security.txt/route.ts",
      "line": 31,
      "text": "# We appreciate responsible disclosure. Please report security"
    },
    {
      "kind": "security",
      "source_path": "app/.well-known/security.txt/route.ts",
      "line": 36,
      "text": "# Thank you to the security research community."
    },
    {
      "kind": "security",
      "source_path": "app/.well-known/trust.json/route.ts",
      "line": 31,
      "text": "securityContact: \"security@platphormnews.com\","
    },
    {
      "kind": "security",
      "source_path": "app/api/docs/[doc]/route.ts",
      "line": 10,
      "text": "*                 packages, security, deployment, code-of-conduct, readme,"
    },
    {
      "kind": "security",
      "source_path": "app/api/docs/route.ts",
      "line": 50,
      "text": "security: {"
    },
    {
      "kind": "security",
      "source_path": "app/api/docs/route.ts",
      "line": 51,
      "text": "file: \"SECURITY.md\","
    },
    {
      "kind": "security",
      "source_path": "app/api/docs/route.ts",
      "line": 52,
      "text": "title: \"Security Policy\","
    },
    {
      "kind": "security",
      "source_path": "app/api/docs/route.ts",
      "line": 53,
      "text": "description: \"Security practices, disclosure policy, and contact\","
    },
    {
      "kind": "security",
      "source_path": "app/api/health/route.ts",
      "line": 28,
      "text": "\"/.well-known/security.txt\","
    },
    {
      "kind": "security",
      "source_path": "app/api/v1/network/route-compliance/route.ts",
      "line": 24,
      "text": "\"/.well-known/security.txt\","
    },
    {
      "kind": "security",
      "source_path": "app/llms.txt/route.ts",
      "line": 93,
      "text": "packages, security, deployment, code-of-conduct, readme, implementation-plan"
    },
    {
      "kind": "security",
      "source_path": "app/llms.txt/route.ts",
      "line": 152,
      "text": "- Security: ${BASE_URL}/.well-known/security.txt"
    },
    {
      "kind": "security",
      "source_path": "app/robots.txt/route.ts",
      "line": 82,
      "text": "# Security contact: ${BASE_URL}/.well-known/security.txt"
    },
    {
      "kind": "security",
      "source_path": "app/sitemap.xml/route.ts",
      "line": 69,
      "text": "urlEntry(`${BASE_URL}/.well-known/security.txt`, { changefreq: \"monthly\", priority: \"0.3\" }),"
    },
    {
      "kind": "security",
      "source_path": "CHANGELOG.md",
      "line": 47,
      "text": "- 12 documents exposed: principles, architecture, api, changelog, contributing, packages, security, deployment, code-of-conduct, readme, implementation-plan, **features**"
    },
    {
      "kind": "security",
      "source_path": "CHANGELOG.md",
      "line": 53,
      "text": "- Standards & Compliance table (CORS, Content-Security-Policy, Server-Timing)"
    },
    {
      "kind": "security",
      "source_path": "CONTRIBUTING.md",
      "line": 109,
      "text": "hotfix/security-patch"
    },
    {
      "kind": "security",
      "source_path": "FEATURES.md",
      "line": 91,
      "text": "**Available slugs:** `principles`, `architecture`, `api`, `changelog`, `contributing`, `packages`, `security`, `deployment`, `code-of-conduct`, `readme`, `implementation-plan`, `features`"
    },
    {
      "kind": "security",
      "source_path": "FINAL_SUITE_V1.md",
      "line": 104,
      "text": "- /.well-known/security.txt"
    },
    {
      "kind": "security",
      "source_path": "lib/discovery-docs.ts",
      "line": 48,
      "text": "\"/.well-known/security.txt\","
    },
    {
      "kind": "security",
      "source_path": "lib/discovery-docs.ts",
      "line": 157,
      "text": "security:${auth ? \"\\n        - PlatPhormApiKey: []\\n        - PlatPhormBearer: []\" : \" []\"}"
    },
    {
      "kind": "security",
      "source_path": "License FAQ.md",
      "line": 23,
      "text": "Yes, if your use is non-commercial as defined by the license. Internal evaluation, research, development, testing, security review, accessibility work, and internal experimentation are generally allowed if you are not directly or indirectly"
    },
    {
      "kind": "security",
      "source_path": "LICENSE.txt",
      "line": 13,
      "text": "“Non-commercial purposes” include personal use by an individual, academic research and development, journalism, testing, evaluation, interoperability work, security review, accessibility work, and internal use by your own organization where"
    },
    {
      "kind": "security",
      "source_path": "next.config.mjs",
      "line": 13,
      "text": "key: 'Content-Security-Policy',"
    },
    {
      "kind": "unsafe",
      "source_path": "next.config.mjs",
      "line": 14,
      "text": "value: \"default-src 'self'; script-src 'self' 'unsafe-eval' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' blob: data: https://polymarket.com https://*.polymarket.com; font-src 'self'; connect-src 'self' https://*.polymar"
    },
    {
      "kind": "security",
      "source_path": "next.config.mjs",
      "line": 29,
      "text": "key: 'Strict-Transport-Security',"
    },
    {
      "kind": "deprecated",
      "source_path": "PACKAGES.md",
      "line": 235,
      "text": "from `@modelcontextprotocol/sdk`. The hand-rolled JSON-RPC approach is deprecated inside"
    },
    {
      "kind": "security",
      "source_path": "README.md",
      "line": 132,
      "text": "- [SECURITY.md](SECURITY.md) — Security policy"
    },
    {
      "kind": "security",
      "source_path": "SECURITY.md",
      "line": 1,
      "text": "# Security Policy"
    },
    {
      "kind": "security",
      "source_path": "SECURITY.md",
      "line": 12,
      "text": "**DO NOT** create a public GitHub issue for security vulnerabilities."
    },
    {
      "kind": "security",
      "source_path": "SECURITY.md",
      "line": 14,
      "text": "Email: **security@platphormnews.com**"
    },
    {
      "kind": "security",
      "source_path": "SECURITY.md",
      "line": 31,
      "text": "- API endpoint security (injection, SSRF, parameter tampering)"
    },
    {
      "kind": "security",
      "source_path": "SECURITY.md",
      "line": 42,
      "text": "## Security Measures Implemented"
    },
    {
      "kind": "security",
      "source_path": "SECURITY.md",
      "line": 48,
      "text": "- **Content Security Policy** — headers set via Next.js config"
    },
    {
      "kind": "security",
      "source_path": "SECURITY.md",
      "line": 51,
      "text": "## Security Best Practices for Self-Hosters"
    },
    {
      "kind": "security",
      "source_path": "SECURITY.md",
      "line": 60,
      "text": "- Security issues: security@platphormnews.com"
    },
    {
      "kind": "security",
      "source_path": "tests/integration/mcp-discovery.test.ts",
      "line": 111,
      "text": "expect(json.links.security_txt).toContain(\"/security.txt\")"
    },
    {
      "kind": "security",
      "source_path": "tests/integration/security-txt.test.ts",
      "line": 2,
      "text": "* Integration tests for /.well-known/security.txt"
    },
    {
      "kind": "security",
      "source_path": "tests/integration/security-txt.test.ts",
      "line": 6,
      "text": "import { GET } from \"@/app/.well-known/security.txt/route\""
    },
    {
      "kind": "security",
      "source_path": "tests/integration/security-txt.test.ts",
      "line": 10,
      "text": "return new NextRequest(\"https://polymarkets.platphormnews.com/.well-known/security.txt\")"
    },
    {
      "kind": "security",
      "source_path": "tests/integration/security-txt.test.ts",
      "line": 13,
      "text": "describe(\"GET /.well-known/security.txt\", () => {"
    },
    {
      "kind": "security",
      "source_path": "tests/integration/security-txt.test.ts",
      "line": 33,
      "text": "expect(body).toContain(\"security@platphormnews.com\")"
    },
    {
      "kind": "security",
      "source_path": "tests/integration/security-txt.test.ts",
      "line": 52,
      "text": "expect(body).toContain(\"/.well-known/security.txt\")"
    }
  ],
  "security": {
    "secret_risks": [],
    "unsafe_patterns": [
      {
        "name": "child-process-exec",
        "confidence": "medium",
        "evidence_paths": [
          "scripts/apply-db-migrations.mjs",
          "scripts/live-smoke.mjs"
        ]
      },
      {
        "name": "dangerously-set-html",
        "confidence": "medium",
        "evidence_paths": [
          ".Jules/sentinel.md",
          "app/[locale]/page.tsx",
          "app/layout.tsx",
          "app/page.tsx",
          "lib/utils.ts"
        ]
      },
      {
        "name": "sql-injection-review-needed",
        "confidence": "medium",
        "evidence_paths": [
          "anoms-do-not-delete.md",
          "lib/atom-generator.ts",
          "lib/db.ts"
        ]
      },
      {
        "name": "ssrf-review-needed",
        "confidence": "medium",
        "evidence_paths": [
          "anoms-do-not-delete.md",
          "lib/clob-api.ts",
          "lib/polymarket-api.ts"
        ]
      }
    ],
    "sensitive_data_indicators": [
      {
        "name": "api_key",
        "confidence": "medium",
        "evidence_paths": [
          ".env.example",
          "app/.well-known/agents.json/route.ts",
          "app/.well-known/ai-plugin.json/route.ts",
          "app/.well-known/trust.json/route.ts",
          "app/api/health/route.ts",
          "app/api/mcp/route.ts",
          "app/api/v1/sync/status/route.ts",
          "app/feeds/page.tsx",
          "app/llms-full.txt/route.ts",
          "app/llms.txt/route.ts",
          "ARCHITECTURE.md",
          "CHANGELOG.md",
          "DEPLOYMENT.md",
          "FEATURES.md",
          "lib/discovery-docs.ts",
          "lib/platform.ts",
          "README.md",
          "scripts/live-smoke.mjs",
          "scripts/update-arch.py",
          "tests/integration/cron.test.ts"
        ]
      },
      {
        "name": "card",
        "confidence": "medium",
        "evidence_paths": [
          ".Jules/palette.md",
          "anoms-do-not-delete.md",
          "app/[locale]/page.tsx",
          "app/api/health/route.ts",
          "app/api/og/route.tsx",
          "app/categories/page.tsx",
          "app/feeds/page.tsx",
          "app/globals.css",
          "app/layout.tsx",
          "app/markets/[slug]/page.tsx",
          "app/page.tsx",
          "CHANGELOG.md",
          "components/faq-section.tsx",
          "components/market-table.tsx",
          "components/recent-markets.tsx",
          "components/ui/card.tsx",
          "CONTRIBUTING.md",
          "FEATURES.md",
          "lib/rss-generator.tsx",
          "methodology-section.tsx"
        ]
      },
      {
        "name": "email",
        "confidence": "medium",
        "evidence_paths": [
          "anoms-do-not-delete.md",
          "app/.well-known/ai-plugin.json/route.ts",
          "CODE_OF_CONDUCT.md",
          "CONTRIBUTING.md",
          "FEATURES.md",
          "IMPLEMENTATION_PLAN.md",
          "PACKAGES.md",
          "scripts/update-impl.py",
          "SECURITY.md",
          "tests/unit/network.test.ts"
        ]
      },
      {
        "name": "financial",
        "confidence": "medium",
        "evidence_paths": [
          "API.md",
          "app/api/signals/live/route.ts",
          "app/api/v1/quality/route.ts",
          "app/api/v1/signals/live/route.ts",
          "app/quality/page.tsx",
          "PRINCIPLES.md"
        ]
      },
      {
        "name": "fingerprint",
        "confidence": "medium",
        "evidence_paths": [
          "PACKAGES.md",
          "PRINCIPLES.md",
          "schemas/platphorm-universal-schema-pack.json",
          "schemas/universal-schema.json"
        ]
      },
      {
        "name": "health",
        "confidence": "medium",
        "evidence_paths": [
          "API.md",
          "app/.well-known/agent.json/route.ts",
          "app/.well-known/agents.json/route.ts",
          "app/.well-known/mcp.json/route.ts",
          "app/api/health/route.ts",
          "app/api/v1/health/route.ts",
          "app/api/v1/network/route-compliance/route.ts",
          "ARCHITECTURE.md",
          "CHANGELOG.md",
          "components/site-footer.tsx",
          "DEPLOYMENT.md",
          "FEATURES.md",
          "IMPLEMENTATION_PLAN.md",
          "lib/discovery-docs.ts",
          "README.md",
          "schemas/platphorm-universal-schema-pack.json",
          "schemas/universal-schema.json",
          "scripts/live-smoke.mjs",
          "scripts/update-arch.py",
          "tests/integration/mcp-discovery.test.ts"
        ]
      },
      {
        "name": "ip address",
        "confidence": "medium",
        "evidence_paths": [
          "API.md",
          "lib/utils.ts",
          "SECURITY.md"
        ]
      },
      {
        "name": "location",
        "confidence": "medium",
        "evidence_paths": [
          ".Jules/bolt.md",
          "app/humans.txt/route.ts",
          "app/sitemap.xml/route.ts",
          "lib/atom-generator.ts",
          "lib/polymarket-api.ts",
          "lib/rss-generator.tsx",
          "methodology-section.tsx",
          "PACKAGES.md",
          "tests/integration/feed-aliases.test.ts",
          "tests/integration/feed-routes.test.ts"
        ]
      },
      {
        "name": "oauth",
        "confidence": "medium",
        "evidence_paths": [
          "IMPLEMENTATION_PLAN.md"
        ]
      },
      {
        "name": "password",
        "confidence": "medium",
        "evidence_paths": [
          ".env.example"
        ]
      },
      {
        "name": "pii",
        "confidence": "medium",
        "evidence_paths": [
          "FEATURES.md",
          "IMPLEMENTATION_PLAN.md",
          "pnpm-lock.yaml"
        ]
      },
      {
        "name": "secret-like environment variables",
        "confidence": "medium",
        "evidence_paths": [
          "package.json"
        ]
      },
      {
        "name": "token",
        "confidence": "medium",
        "evidence_paths": [
          ".env.example",
          ".Jules/sentinel.md",
          "app/.well-known/trust.json/route.ts",
          "app/api/feed/atom/route.ts",
          "app/api/feed/json/route.ts",
          "app/api/feed/route.ts",
          "app/api/mcp/route.ts",
          "app/llms-full.txt/route.ts",
          "app/markets/[slug]/page.tsx",
          "FEATURES.md",
          "IMPLEMENTATION_PLAN.md",
          "lib/clob-api.ts",
          "lib/discovery-docs.ts",
          "lib/market-service.ts",
          "lib/polymarket-api.ts",
          "PACKAGES.md",
          "pnpm-lock.yaml",
          "PRINCIPLES.md",
          "scripts/update-impl.py",
          "tests/msw/fixtures.ts"
        ]
      }
    ]
  },
  "generated_at": "2026-05-16T16:44:19.363Z"
}
