{
  "schema": "marketnow-certification/1.0",
  "generated_at": "2026-09-25T02:40:00Z",
  "supersedes_generated_at": "2026-09-12T00:00:00Z",
  "level": 1,
  "level_name": "index-certified",
  "catalog_total": 68388,
  "methodology": {
    "model": "Two-level risk model (documented in changelog 5.2.0): risk_level = INSTALL mechanics; trust_score_100 = source evidence heuristic. Levels: L1 index-certified (all entries), L2 sentinel-scanned (29-rule code scan of shipped artifact), L3 trust-chain (ATC/OCSP/CRL).",
    "risk_model": {
      "red": "npx/uvx/pip/pipx — registry code executed on every run (arbitrary code execution surface)",
      "yellow": "git clone / cargo / go install / docker / remote http — reviewable, sandboxed or network-only",
      "green": "verified trust chain (MarketNow own packages: audited, 0 vulnerabilities, published from source)"
    },
    "repair_passes": [
      "P0 unique ids",
      "P1 unique slugs",
      "P2 risk reclassification by install mechanic",
      "P3 required fields",
      "P4 scoring bounds"
    ],
    "reproducibility": "python3 scripts/certify_index.py over the deployed catalog bundle (public/api/skills-lite.json, 68388 entries — the same bundle the UI and /api/skills serve). Checks C1-C10 recomputed in full; distributions recomputed from data. C4 checks URL well-formedness (https + host); live resolvability is spot-checked by the audit-gate workflow. Report served at /api/certification"
  },
  "checks": [
    {
      "id": "C1",
      "desc": "unique id across catalog",
      "total": 68388,
      "pass": 68388,
      "fail": 0,
      "fail_rate": 0.0,
      "examples": []
    },
    {
      "id": "C2",
      "desc": "unique slug (badge + /s/ pages)",
      "total": 68388,
      "pass": 68388,
      "fail": 0,
      "fail_rate": 0.0,
      "examples": []
    },
    {
      "id": "C3",
      "desc": "required fields present",
      "total": 68388,
      "pass": 68388,
      "fail": 0,
      "fail_rate": 0.0,
      "examples": []
    },
    {
      "id": "C4",
      "desc": "provenance URL well-formed (https + real host); resolvability spot-checked by audit-gate",
      "total": 68388,
      "pass": 68384,
      "fail": 4,
      "fail_rate": 5.8e-05,
      "examples": [
        {
          "id": "mn-sm2-03074",
          "slug": "dynamicendpoints-psadt-mcp",
          "why": "provenance URL well-formed (https + real host); resolvability spot-checked by audit-gate"
        },
        {
          "id": "mn-sm2-04323",
          "slug": "kj455-mcp-kibela",
          "why": "provenance URL well-formed (https + real host); resolvability spot-checked by audit-gate"
        },
        {
          "id": "mn-sm2-04842",
          "slug": "devlimelabs-meilisearch-ts-mcp",
          "why": "provenance URL well-formed (https + real host); resolvability spot-checked by audit-gate"
        },
        {
          "id": "mn-sm2-05927",
          "slug": "cdugo-mcp-get-docs",
          "why": "provenance URL well-formed (https + real host); resolvability spot-checked by audit-gate"
        }
      ]
    },
    {
      "id": "C5",
      "desc": "risk_level in model {red,yellow,green}",
      "total": 68388,
      "pass": 68388,
      "fail": 0,
      "fail_rate": 0.0,
      "examples": []
    },
    {
      "id": "C6",
      "desc": "trust_score_100 within [0,100]",
      "total": 68388,
      "pass": 68388,
      "fail": 0,
      "fail_rate": 0.0,
      "examples": []
    },
    {
      "id": "C7",
      "desc": "sentinel_score within [0,10]",
      "total": 68388,
      "pass": 68388,
      "fail": 0,
      "fail_rate": 0.0,
      "examples": []
    },
    {
      "id": "C8",
      "desc": "indexed_at recorded (ISO date)",
      "total": 68388,
      "pass": 68388,
      "fail": 0,
      "fail_rate": 0.0,
      "examples": []
    },
    {
      "id": "C9",
      "desc": "install command non-empty",
      "total": 68388,
      "pass": 68388,
      "fail": 0,
      "fail_rate": 0.0,
      "examples": []
    },
    {
      "id": "C10",
      "desc": "price/free consistency (free⇒price 0; paid⇒payment model declared)",
      "total": 68388,
      "pass": 68388,
      "fail": 0,
      "fail_rate": 0.0,
      "examples": []
    }
  ],
  "index_certification": {
    "coverage": "683876/683880",
    "all_checks_pass": false,
    "checks_passed": 9,
    "checks_total": 10,
    "scope": "L1 index certification only: 10 checks x 68388 entries (683880 checks). L2 Sentinel adds 82331 rule checks (29 x 2839) — see agent.json security_checks_breakdown."
  },
  "distributions": {
    "sources": {
      "npm-registry": 24787,
      "pypi": 14311,
      "github": 11439,
      "official-registry": 9076,
      "smithery": 6195,
      "crates": 1933,
      "docker": 625,
      "community-submitted": 18,
      "community-submission": 3,
      "first-party": 1
    },
    "risk": {
      "red": 50644,
      "yellow": 17741,
      "green": 3
    },
    "free_vs_paid": {
      "free": 68387,
      "paid": 1
    }
  },
  "repairs_applied": {
    "risk_red->yellow": 459,
    "smithery_provenance_urls_2026_09_25": {
      "fixed": 40,
      "nulled_unknown": 3,
      "detail": "import Smithery con typos de esquema (ttps://, htts://, htttps://, Http://), espacios y rutas sin host; 3 entradas quedan con url=null + url_note (provenance desconocido — fail residual documentado de C4)"
    }
  },
  "deep_scan": {
    "level": 2,
    "level_name": "sentinel-scanned",
    "detail_url": "/api/certification-scans.json",
    "scanned": 2839,
    "clean": 885,
    "flagged_warning": 791,
    "flagged_error": 1156,
    "scan_errors": 29,
    "weekly_download_volume_covered": 5591092,
    "generated_at": "2026-09-10T07:13:04Z"
  },
  "benchmark": {
    "url": "/api/sentinel-benchmark.json",
    "html": "/security/sentinel-benchmark",
    "f1": 0.857,
    "precision": 0.75,
    "recall": 1.0,
    "n_decisions": 18
  },
  "layers_evidence": "/api/security"
}
