{
  "baselined": 0,
  "claims": [
    {
      "claim_id": "claim_d82f88afc8811481b617475b8003d11181002ea4c1434b5d05f261eff9c67be8",
      "column": 22,
      "doc_path": "README.md",
      "expected_default": null,
      "extraction": "inline_code",
      "extraction_confidence": 0.95,
      "extraction_sources": [
        "inline_code"
      ],
      "group_key": "538047f2845492fed329f131442a08eadabc5a049777febbed95abc547d3cee5",
      "kind": "endpoint",
      "line": 3,
      "locations": [
        {
          "column": 22,
          "extraction": "inline_code",
          "line": 3,
          "raw_text": "GET /users/{id}"
        }
      ],
      "qualifier": null,
      "raw_text": "GET /users/{id}",
      "section_id": "section_5ee950afa34385cd074485202ec5f72c0b7729d8b7ef7d477352b0abf6720c27",
      "value": "GET /users/{param}"
    },
    {
      "claim_id": "claim_461bc200b34b24893c2055e275451505bbe975edc58bda933ef788fd4427b5f1",
      "column": 16,
      "doc_path": "README.md",
      "expected_default": null,
      "extraction": "inline_code",
      "extraction_confidence": 0.95,
      "extraction_sources": [
        "inline_code"
      ],
      "group_key": "cfc27349a0a4bba6a37129e2fa31c5c4dea4db7d0164584cebbaf30451c3e939",
      "kind": "endpoint",
      "line": 4,
      "locations": [
        {
          "column": 16,
          "extraction": "inline_code",
          "line": 4,
          "raw_text": "POST /login"
        }
      ],
      "qualifier": null,
      "raw_text": "POST /login",
      "section_id": "section_5ee950afa34385cd074485202ec5f72c0b7729d8b7ef7d477352b0abf6720c27",
      "value": "POST /login"
    },
    {
      "claim_id": "claim_98c0a25a8cf75233caffa287fc5e0f09ec18ccc3fea6c54cd3aa6bf05347f997",
      "column": 32,
      "doc_path": "README.md",
      "expected_default": null,
      "extraction": "inline_code",
      "extraction_confidence": 0.75,
      "extraction_sources": [
        "inline_code"
      ],
      "group_key": "b671a17c967574b3a39afe91a844f36bfd133565a9eba66c55d06fcac593756b",
      "kind": "config_key",
      "line": 5,
      "locations": [
        {
          "column": 32,
          "extraction": "inline_code",
          "line": 5,
          "raw_text": "request_timeout"
        }
      ],
      "qualifier": null,
      "raw_text": "request_timeout",
      "section_id": "section_5ee950afa34385cd074485202ec5f72c0b7729d8b7ef7d477352b0abf6720c27",
      "value": "request_timeout"
    },
    {
      "claim_id": "claim_b4d539ee5f8e1635fd16f959378cf10ce18a8eed6731cca590dcb10255ab5546",
      "column": 31,
      "doc_path": "README.md",
      "expected_default": null,
      "extraction": "inline_code",
      "extraction_confidence": 0.72,
      "extraction_sources": [
        "inline_code"
      ],
      "group_key": "99dd37118b896a0cd5e96e70ff46d58a23cc2ce21368afdbb2c07e5b562189c6",
      "kind": "symbol",
      "line": 7,
      "locations": [
        {
          "column": 31,
          "extraction": "inline_code",
          "line": 7,
          "raw_text": "create_app"
        }
      ],
      "qualifier": null,
      "raw_text": "create_app",
      "section_id": "section_5ee950afa34385cd074485202ec5f72c0b7729d8b7ef7d477352b0abf6720c27",
      "value": "create_app"
    },
    {
      "claim_id": "claim_9a1555c68ded34143eede3ce983b01cb973da0580f9435015bd5a0417ebb79cd",
      "column": 23,
      "doc_path": "README.md",
      "expected_default": "30",
      "extraction": "prose_pattern",
      "extraction_confidence": 0.55,
      "extraction_sources": [
        "prose_pattern"
      ],
      "group_key": "572d756ce267d7e728edeb55a3dd58f92d0fd0e31feb2ae4540ffcacb201ef47",
      "kind": "default_value",
      "line": 6,
      "locations": [
        {
          "column": 23,
          "extraction": "prose_pattern",
          "line": 6,
          "raw_text": "defaults to `30`"
        }
      ],
      "qualifier": "config_key",
      "raw_text": "defaults to `30`",
      "section_id": "section_5ee950afa34385cd074485202ec5f72c0b7729d8b7ef7d477352b0abf6720c27",
      "value": "request_timeout"
    }
  ],
  "config_used": {
    "docs": [
      "README.md",
      "docs/**/*.md",
      "*.md"
    ],
    "exclude": [
      "node_modules/**",
      ".venv/**",
      "vendor/**",
      "CHANGELOG.md",
      "**/CHANGELOG.md"
    ],
    "history": {
      "max_commits": 2000,
      "show_emails": false
    },
    "ignore": [],
    "languages": "auto",
    "llm": {
      "budget": 0.5,
      "concurrency": 4,
      "enabled": false,
      "max_claims": 40,
      "model": null,
      "redact_paths": [],
      "timeout": 60.0
    },
    "min_confidence": 0.6
  },
  "docs": [
    {
      "content_hash": "4de956bcece86bb58953da5a3d886500c400c6ed5021a7f2b6539b72dbd20707",
      "format": "markdown",
      "path": "README.md"
    }
  ],
  "docs_repo_path": null,
  "findings": [
    {
      "claim": {
        "claim_id": "claim_d82f88afc8811481b617475b8003d11181002ea4c1434b5d05f261eff9c67be8",
        "column": 22,
        "doc_path": "README.md",
        "expected_default": null,
        "extraction": "inline_code",
        "extraction_confidence": 0.95,
        "extraction_sources": [
          "inline_code"
        ],
        "group_key": "538047f2845492fed329f131442a08eadabc5a049777febbed95abc547d3cee5",
        "kind": "endpoint",
        "line": 3,
        "locations": [
          {
            "column": 22,
            "extraction": "inline_code",
            "line": 3,
            "raw_text": "GET /users/{id}"
          }
        ],
        "qualifier": null,
        "raw_text": "GET /users/{id}",
        "section_id": "section_5ee950afa34385cd074485202ec5f72c0b7729d8b7ef7d477352b0abf6720c27",
        "value": "GET /users/{param}"
      },
      "confidence": 0.92,
      "decided_by": "rules",
      "doc_text": "- Read one user with `GET /users/{id}`.",
      "evidence": [
        {
          "end_line": null,
          "file": "README.md",
          "line": 3,
          "text": "GET /users/{id}"
        },
        {
          "end_line": null,
          "file": "service.py",
          "line": 11,
          "text": "GET /v2/users/{param}"
        },
        {
          "end_line": null,
          "file": "service.py",
          "line": 1,
          "text": "-    @app.get(\"/users/{id}\")\n+    @app.get(\"/v2/users/{id}\")"
        }
      ],
      "introduced_by": {
        "author_email": null,
        "author_name": "Author hidden",
        "date": "2026-10-02T09:00:00Z",
        "sha": "2d94162dcf4e30283d9b39de7ad354a83b22cdeb",
        "short_sha": "2d94162",
        "summary": "Move user lookup to v2"
      },
      "matched_symbol": {
        "aliases": [],
        "authoritative": true,
        "decorators": [],
        "default": null,
        "derived": false,
        "exported": false,
        "file": "service.py",
        "framework": "fastapi",
        "handler": "service.get_user",
        "kind": "route",
        "language": "python",
        "line": 11,
        "name": "GET /v2/users/{param}",
        "parent_id": null,
        "partial_prefix": false,
        "qualified_name": "GET /v2/users/{param}",
        "raw_path": "/v2/users/{id}",
        "setting_group": null,
        "symbol_id": "symbol_5ae1d9de7e2e4b9aeb689de6ab8f936296a81f6926e189863c6f2a934ac3f754",
        "ts_type": false
      },
      "package": "fastapi-svc",
      "reasons": [
        "No indexed endpoint named GET /users/{param} was found. Closest indexed candidates: GET /v2/users/{param} (service.py:11).",
        "Likely rename: GET /users/{param} resembles GET /v2/users/{param} (85/100).",
        "Git history changed this name in 2d94162."
      ],
      "replayed": false,
      "suggestion": "GET /v2/users/{param}",
      "verdict": "renamed"
    },
    {
      "claim": {
        "claim_id": "claim_461bc200b34b24893c2055e275451505bbe975edc58bda933ef788fd4427b5f1",
        "column": 16,
        "doc_path": "README.md",
        "expected_default": null,
        "extraction": "inline_code",
        "extraction_confidence": 0.95,
        "extraction_sources": [
          "inline_code"
        ],
        "group_key": "cfc27349a0a4bba6a37129e2fa31c5c4dea4db7d0164584cebbaf30451c3e939",
        "kind": "endpoint",
        "line": 4,
        "locations": [
          {
            "column": 16,
            "extraction": "inline_code",
            "line": 4,
            "raw_text": "POST /login"
          }
        ],
        "qualifier": null,
        "raw_text": "POST /login",
        "section_id": "section_5ee950afa34385cd074485202ec5f72c0b7729d8b7ef7d477352b0abf6720c27",
        "value": "POST /login"
      },
      "confidence": 0.5,
      "decided_by": "rules",
      "doc_text": "- Sign in with `POST /login`.",
      "evidence": [
        {
          "end_line": null,
          "file": "README.md",
          "line": 4,
          "text": "POST /login"
        }
      ],
      "introduced_by": {
        "author_email": null,
        "author_name": "Author hidden",
        "date": "2026-10-03T09:00:00Z",
        "sha": "a6da42660fd9269d32e105ad2477d12a24b9afff",
        "short_sha": "a6da426",
        "summary": "Remove the login endpoint"
      },
      "matched_symbol": null,
      "package": "fastapi-svc",
      "reasons": [
        "No indexed endpoint named POST /login was found. No close indexed candidates were found."
      ],
      "replayed": false,
      "suggestion": null,
      "verdict": "missing"
    },
    {
      "claim": {
        "claim_id": "claim_98c0a25a8cf75233caffa287fc5e0f09ec18ccc3fea6c54cd3aa6bf05347f997",
        "column": 32,
        "doc_path": "README.md",
        "expected_default": null,
        "extraction": "inline_code",
        "extraction_confidence": 0.75,
        "extraction_sources": [
          "inline_code"
        ],
        "group_key": "b671a17c967574b3a39afe91a844f36bfd133565a9eba66c55d06fcac593756b",
        "kind": "config_key",
        "line": 5,
        "locations": [
          {
            "column": 32,
            "extraction": "inline_code",
            "line": 5,
            "raw_text": "request_timeout"
          }
        ],
        "qualifier": null,
        "raw_text": "request_timeout",
        "section_id": "section_5ee950afa34385cd074485202ec5f72c0b7729d8b7ef7d477352b0abf6720c27",
        "value": "request_timeout"
      },
      "confidence": 0.92,
      "decided_by": "rules",
      "doc_text": "- Configure the settings field `request_timeout`.",
      "evidence": [
        {
          "end_line": null,
          "file": "README.md",
          "line": 5,
          "text": "request_timeout"
        },
        {
          "end_line": null,
          "file": "service.py",
          "line": 1,
          "text": "-    request_timeout: int = 30\n+    timeout_seconds: int = 60"
        }
      ],
      "introduced_by": {
        "author_email": null,
        "author_name": "Author hidden",
        "date": "2026-10-04T09:00:00Z",
        "sha": "b7d9a6dbecd5200a369f7fa67814ae18756e7f05",
        "short_sha": "b7d9a6d",
        "summary": "Rename timeout setting and increase its default"
      },
      "matched_symbol": {
        "aliases": [],
        "authoritative": true,
        "decorators": [],
        "default": "60",
        "derived": false,
        "exported": false,
        "file": "service.py",
        "framework": "pydantic-settings",
        "handler": null,
        "kind": "config_key",
        "language": "python",
        "line": 5,
        "name": "timeout_seconds",
        "parent_id": null,
        "partial_prefix": false,
        "qualified_name": "service.Settings.timeout_seconds",
        "raw_path": null,
        "setting_group": null,
        "symbol_id": "symbol_2167df17623f2cffaaa2602c6f83c91af8cfa4ad1e7da3e7ef0b7a4b8f936bb0",
        "ts_type": false
      },
      "package": "fastapi-svc",
      "reasons": [
        "No indexed config_key named request_timeout was found. Closest indexed candidates: timeout_seconds (service.py:5).",
        "Git history confirms this name changed to timeout_seconds.",
        "Git history changed this name in b7d9a6d."
      ],
      "replayed": false,
      "suggestion": "timeout_seconds",
      "verdict": "renamed"
    },
    {
      "claim": {
        "claim_id": "claim_9a1555c68ded34143eede3ce983b01cb973da0580f9435015bd5a0417ebb79cd",
        "column": 23,
        "doc_path": "README.md",
        "expected_default": "30",
        "extraction": "prose_pattern",
        "extraction_confidence": 0.55,
        "extraction_sources": [
          "prose_pattern"
        ],
        "group_key": "572d756ce267d7e728edeb55a3dd58f92d0fd0e31feb2ae4540ffcacb201ef47",
        "kind": "default_value",
        "line": 6,
        "locations": [
          {
            "column": 23,
            "extraction": "prose_pattern",
            "line": 6,
            "raw_text": "defaults to `30`"
          }
        ],
        "qualifier": "config_key",
        "raw_text": "defaults to `30`",
        "section_id": "section_5ee950afa34385cd074485202ec5f72c0b7729d8b7ef7d477352b0abf6720c27",
        "value": "request_timeout"
      },
      "confidence": 0.92,
      "decided_by": "rules",
      "doc_text": "- The request timeout defaults to `30` seconds.",
      "evidence": [
        {
          "end_line": null,
          "file": "README.md",
          "line": 6,
          "text": "defaults to `30`"
        },
        {
          "end_line": null,
          "file": "service.py",
          "line": 1,
          "text": "-    request_timeout: int = 30\n+    timeout_seconds: int = 60"
        }
      ],
      "introduced_by": {
        "author_email": null,
        "author_name": "Author hidden",
        "date": "2026-10-04T09:00:00Z",
        "sha": "b7d9a6dbecd5200a369f7fa67814ae18756e7f05",
        "short_sha": "b7d9a6d",
        "summary": "Rename timeout setting and increase its default"
      },
      "matched_symbol": {
        "aliases": [],
        "authoritative": true,
        "decorators": [],
        "default": "60",
        "derived": false,
        "exported": false,
        "file": "service.py",
        "framework": "pydantic-settings",
        "handler": null,
        "kind": "config_key",
        "language": "python",
        "line": 5,
        "name": "timeout_seconds",
        "parent_id": null,
        "partial_prefix": false,
        "qualified_name": "service.Settings.timeout_seconds",
        "raw_path": null,
        "setting_group": null,
        "symbol_id": "symbol_2167df17623f2cffaaa2602c6f83c91af8cfa4ad1e7da3e7ef0b7a4b8f936bb0",
        "ts_type": false
      },
      "package": "fastapi-svc",
      "reasons": [
        "No authoritative indexed default was available for this subject.",
        "The documented setting was renamed to timeout_seconds and its code default is 60.",
        "Git history changed this name in b7d9a6d."
      ],
      "replayed": false,
      "suggestion": "timeout_seconds (default 60)",
      "verdict": "default_changed"
    },
    {
      "claim": {
        "claim_id": "claim_b4d539ee5f8e1635fd16f959378cf10ce18a8eed6731cca590dcb10255ab5546",
        "column": 31,
        "doc_path": "README.md",
        "expected_default": null,
        "extraction": "inline_code",
        "extraction_confidence": 0.72,
        "extraction_sources": [
          "inline_code"
        ],
        "group_key": "99dd37118b896a0cd5e96e70ff46d58a23cc2ce21368afdbb2c07e5b562189c6",
        "kind": "symbol",
        "line": 7,
        "locations": [
          {
            "column": 31,
            "extraction": "inline_code",
            "line": 7,
            "raw_text": "create_app"
          }
        ],
        "qualifier": null,
        "raw_text": "create_app",
        "section_id": "section_5ee950afa34385cd074485202ec5f72c0b7729d8b7ef7d477352b0abf6720c27",
        "value": "create_app"
      },
      "confidence": 0.92,
      "decided_by": "rules",
      "doc_text": "- Create the application with `create_app`.",
      "evidence": [
        {
          "end_line": null,
          "file": "README.md",
          "line": 7,
          "text": "create_app"
        },
        {
          "end_line": null,
          "file": "service.py",
          "line": 1,
          "text": "-def create_app():\n+def build_app():"
        }
      ],
      "introduced_by": {
        "author_email": null,
        "author_name": "Author hidden",
        "date": "2026-10-05T09:00:00Z",
        "sha": "5b559ed74770a06859fe6e5450978b7c1ff31c05",
        "short_sha": "5b559ed",
        "summary": "Rename the application factory"
      },
      "matched_symbol": {
        "aliases": [],
        "authoritative": true,
        "decorators": [],
        "default": null,
        "derived": false,
        "exported": true,
        "file": "service.py",
        "framework": null,
        "handler": null,
        "kind": "function",
        "language": "python",
        "line": 7,
        "name": "build_app",
        "parent_id": null,
        "partial_prefix": false,
        "qualified_name": "service.build_app",
        "raw_path": null,
        "setting_group": null,
        "symbol_id": "symbol_9054346becacb82876d4f68d3fa725f60b25c5eacb3b2220802dce19b4fa9168",
        "ts_type": false
      },
      "package": "fastapi-svc",
      "reasons": [
        "No indexed symbol named create_app was found. Closest indexed candidates: build_app (service.py:7).",
        "Git history confirms this name changed to build_app.",
        "Git history changed this name in 5b559ed."
      ],
      "replayed": false,
      "suggestion": "build_app",
      "verdict": "renamed"
    }
  ],
  "head_sha": "5b559ed74770a06859fe6e5450978b7c1ff31c05",
  "historical_ignored": 0,
  "llm_usage": {},
  "package_version": "0.1.0",
  "packages": [
    {
      "commands": [],
      "language": "unknown",
      "name": "fastapi-svc",
      "root": "."
    }
  ],
  "remote_url": "https://github.com/docs-drift/fastapi-svc-demo",
  "repo_path": ".",
  "scan_time": "2026-10-18T12:17:38.280834Z",
  "schema_version": 1,
  "sections": [
    {
      "context": "current",
      "doc_path": "README.md",
      "end_line": 7,
      "heading": "fastapi-svc",
      "heading_level": 1,
      "heading_path": [
        "fastapi-svc"
      ],
      "historical_spans": [],
      "section_id": "section_5ee950afa34385cd074485202ec5f72c0b7729d8b7ef7d477352b0abf6720c27",
      "start_line": 1
    }
  ],
  "suppressed": [],
  "symbols": [
    {
      "aliases": [],
      "authoritative": true,
      "decorators": [],
      "default": null,
      "derived": false,
      "exported": true,
      "file": "service.py",
      "framework": "python-settings",
      "handler": null,
      "kind": "class",
      "language": "python",
      "line": 4,
      "name": "Settings",
      "parent_id": null,
      "partial_prefix": false,
      "qualified_name": "service.Settings",
      "raw_path": null,
      "setting_group": null,
      "symbol_id": "symbol_9cacc0905bf8f1082242c31cc2cd7c94bdc2e0661dec71fd612b073687f954d5",
      "ts_type": false
    },
    {
      "aliases": [],
      "authoritative": true,
      "decorators": [],
      "default": "60",
      "derived": false,
      "exported": false,
      "file": "service.py",
      "framework": "pydantic-settings",
      "handler": null,
      "kind": "config_key",
      "language": "python",
      "line": 5,
      "name": "timeout_seconds",
      "parent_id": null,
      "partial_prefix": false,
      "qualified_name": "service.Settings.timeout_seconds",
      "raw_path": null,
      "setting_group": null,
      "symbol_id": "symbol_2167df17623f2cffaaa2602c6f83c91af8cfa4ad1e7da3e7ef0b7a4b8f936bb0",
      "ts_type": false
    },
    {
      "aliases": [],
      "authoritative": true,
      "decorators": [],
      "default": "60",
      "derived": true,
      "exported": false,
      "file": "service.py",
      "framework": "pydantic-settings",
      "handler": null,
      "kind": "env_var",
      "language": "python",
      "line": 5,
      "name": "TIMEOUT_SECONDS",
      "parent_id": null,
      "partial_prefix": false,
      "qualified_name": "service.Settings.TIMEOUT_SECONDS",
      "raw_path": null,
      "setting_group": null,
      "symbol_id": "symbol_785a7bac94a4a62b579e6941ee58883e8b3ef2cd9950bb2c05f21633d8c52a2f",
      "ts_type": false
    },
    {
      "aliases": [],
      "authoritative": true,
      "decorators": [],
      "default": null,
      "derived": false,
      "exported": true,
      "file": "service.py",
      "framework": null,
      "handler": null,
      "kind": "function",
      "language": "python",
      "line": 7,
      "name": "build_app",
      "parent_id": null,
      "partial_prefix": false,
      "qualified_name": "service.build_app",
      "raw_path": null,
      "setting_group": null,
      "symbol_id": "symbol_9054346becacb82876d4f68d3fa725f60b25c5eacb3b2220802dce19b4fa9168",
      "ts_type": false
    },
    {
      "aliases": [],
      "authoritative": true,
      "decorators": [],
      "default": null,
      "derived": false,
      "exported": false,
      "file": "service.py",
      "framework": "fastapi",
      "handler": "service.get_user",
      "kind": "route",
      "language": "python",
      "line": 11,
      "name": "GET /v2/users/{param}",
      "parent_id": null,
      "partial_prefix": false,
      "qualified_name": "GET /v2/users/{param}",
      "raw_path": "/v2/users/{id}",
      "setting_group": null,
      "symbol_id": "symbol_5ae1d9de7e2e4b9aeb689de6ab8f936296a81f6926e189863c6f2a934ac3f754",
      "ts_type": false
    }
  ],
  "timings": {},
  "warnings": []
}
