{
  "schemaVersion": "qmmit.observation.v1",
  "datasetVersion": "2026-09-18-v3.0",
  "rulesetVersion": "sha256:b2e8889c66f72c18a61839f0bf1a9f77b5481ba2def044dba33c797b2f2bdcae",
  "scanDate": "2026-09-16",
  "observation": {
    "repo": "mrdoob/three.js",
    "datasetVersion": "2026-09-18-v3.0",
    "rulesetVersion": "sha256:b2e8889c66f72c18a61839f0bf1a9f77b5481ba2def044dba33c797b2f2bdcae",
    "scanDate": "2026-09-16",
    "window": {
      "since": "2026-02-01",
      "untilExclusive": "2026-09-16",
      "label": "February–September 15, 2026"
    },
    "repository": {
      "sourceRepo": "mrdoob/three.js",
      "canonicalRepo": "mrdoob/three.js",
      "canonicalGitHubUrl": "https://github.com/mrdoob/three.js",
      "defaultBranch": "dev",
      "headShaAtResolution": "eabc262db760c5e85bd890a6dc627ba14e70e8c3",
      "resolvedAt": "2026-09-16T12:09:27.525Z",
      "redirected": false
    },
    "agentSharePctFloor": 11.4,
    "humanSharePctCeiling": 88.6,
    "totals": {
      "commitsInHistory": 1244,
      "mergeCommitsExcluded": 0,
      "ciBotCommitsExcluded": 87,
      "commitsConsidered": 1157,
      "agentAttributedCommits": 132,
      "humanAttributedCommits": 1025
    },
    "concentration": {
      "distinctAgentAuthors": 15,
      "topAuthorShareOfAgentCommits": 59.1,
      "adoptionPattern": "team"
    },
    "mode": {
      "assistedCommits": 132,
      "autonomousCommits": 0,
      "assistedPct": 11.4,
      "autonomousPct": 0
    },
    "agents": [
      {
        "id": "claude-code",
        "label": "Claude Code",
        "vendor": "Anthropic",
        "commits": 129,
        "sharePct": 11.1,
        "samples": [
          {
            "hash": "5570931d904d5a65d087cb8b4dfd4afdbed3ac6a",
            "subject": "WebGPURenderer: Textures never removes dispose listeners (#34368)",
            "date": "2026-09-09T09:28:56+02:00"
          },
          {
            "hash": "77411fe39d5b914fff2ca5b96e5837e35e6be7d6",
            "subject": "WebGLRenderer: Only apply pixel ratio to the canvas in setViewport() and setScissor(). (#34460)",
            "date": "2026-09-09T09:08:43+02:00"
          },
          {
            "hash": "55e1135db194b950b38db55888f986d1b5822d3c",
            "subject": "Package: Allow install scripts for puppeteer and fsevents.",
            "date": "2026-09-08T21:02:04+02:00"
          },
          {
            "hash": "e719c4fdb3025795cd82d7a846f4b7426fb69f0e",
            "subject": "MaterialXLoader: Restore JSDoc.",
            "date": "2026-09-08T20:38:51+02:00"
          },
          {
            "hash": "5d4db5374aaa34036fcdd355d8931fc96696ace4",
            "subject": "Utils: Convert TSL guide page markers to headings in llms build.",
            "date": "2026-09-08T20:35:36+02:00"
          }
        ]
      },
      {
        "id": "copilot",
        "label": "GitHub Copilot",
        "vendor": "GitHub",
        "commits": 4,
        "sharePct": 0.3,
        "samples": [
          {
            "hash": "77053e2ba04fbe95b8687f341c91130b4917613b",
            "subject": "PMREMGenerator: Replace separable blur with spiral blur on both renderers (#32367)",
            "date": "2026-07-08T15:28:40+09:00"
          },
          {
            "hash": "0d2986293c1e80afb23cebdc888640c96dc25515",
            "subject": "Add `SSAONode` and `depthAwareBlur` (#33921)",
            "date": "2026-07-01T19:32:58+09:00"
          },
          {
            "hash": "3e3d777642e3aa5c638cb355b03bfa7f8a67a1e5",
            "subject": "Material: Fixed setValues() to honor Euler and Vector2 types. (#33476)",
            "date": "2026-04-27T14:03:59+02:00"
          },
          {
            "hash": "2a4e27e261b48fc5d8060e7aa733713970c4e388",
            "subject": "Added new DevTools (#30870)",
            "date": "2026-04-07T19:22:58+09:00"
          }
        ]
      },
      {
        "id": "cursor",
        "label": "Cursor Agent",
        "vendor": "Anysphere",
        "commits": 2,
        "sharePct": 0.2,
        "samples": [
          {
            "hash": "95507a65523de8819d88630ae99aa4af79764aab",
            "subject": "WebGLRenderer: Unbind PIXEL_PACK_BUFFER after async readback. (#34321)",
            "date": "2026-08-21T10:55:50+02:00"
          },
          {
            "hash": "fef39719547278330100ff91f447305a1fcaf5bb",
            "subject": "Materialx upgrade (#33485)",
            "date": "2026-07-20T18:05:46-03:00"
          }
        ]
      }
    ],
    "timeline": [
      {
        "month": "2026-02",
        "total": 136,
        "agent": 14,
        "agentPct": 10.3
      },
      {
        "month": "2026-03",
        "total": 123,
        "agent": 9,
        "agentPct": 7.3
      },
      {
        "month": "2026-04",
        "total": 152,
        "agent": 19,
        "agentPct": 12.5
      },
      {
        "month": "2026-05",
        "total": 134,
        "agent": 4,
        "agentPct": 3
      },
      {
        "month": "2026-06",
        "total": 181,
        "agent": 31,
        "agentPct": 17.1
      },
      {
        "month": "2026-07",
        "total": 166,
        "agent": 23,
        "agentPct": 13.9
      },
      {
        "month": "2026-08",
        "total": 161,
        "agent": 14,
        "agentPct": 8.7
      },
      {
        "month": "2026-09",
        "total": 104,
        "agent": 18,
        "agentPct": 17.3
      }
    ],
    "lowActivity": false
  }
}
