{
  "$comment": [
    "コード変更のAI著者率。**この script の出力そのもの。**手で書き換えない。",
    "",
    "原稿には長らく「変更行の98.8%（231,315行中228,498行）」と書いてあったが、",
    "2026-08-22 に同じ窓で数え直したところ**どの数え方でも再現できなかった。**",
    "再現できない数字は、記者に聞かれた瞬間にいちばん高くつく。",
    "",
    "数え方は scripts/code-authorship.mjs の冒頭に全部書いてある。",
    "数え直すには 3リポジトリが揃った場所で --write を実行する。"
  ],
  "measured_at": "2026-08-22",
  "from": "2026-08-11",
  "to": "2026-08-21",
  "all_branches": true,
  "method": {
    "ai_author_definition": "author に Claude を含む、または本文に Co-Authored-By: Claude、または本文に Claude Code の足跡（Generated with [Claude Code] / claude.ai/code/session / Claude-Session:）。定義 v2（2026-09-02。v1 は署名とトレーラーのみ。8/11〜9/1 の実測で v1=v2）",
    "lines": "git show --numstat の 追加 + 削除（バイナリは0）",
    "excludes_merges": true,
    "dedupe": "SHA で一意化（--all は同じコミットを複数参照から拾う）",
    "repos": [
      "simplememo",
      "simplememo-api",
      "simplememo-ios"
    ],
    "definition_version": 2
  },
  "known_limits": [
    "**計測日そのものは窓に入れない。**計測日はAIが集中的に書いている日になりやすく、率を上げる方向に効く。実測では 08-22 を含めると 94.2% → 96.6% に動いた（+2.4pt）。「いちばん都合のよい日で締めた」と言われない窓の切り方にしてある",
    "**生成物の行数が混じる。**lockfile・生成JSON・SVG はAI著者になるが、設計したことと同じではない",
    "レビューで人が指示した内容は author に現れない。「壊れていると気づいて直せと言う」は行数に出ない",
    "行数は「やった仕事の量」の近似でしかない。「やるべきことの種類」は data/automation-coverage.json",
    "**同じ窓でも、後から数え直すと絶対数が動く。**--all-branches なので、squash されて消えたブランチは後から数えられない。2026-08-26 に 2026-08-11..08-21 を数え直したら 194 → 164 コミット（-15%）。**率は動かない**（コミット 99.5% → 99.4% / 行 94.2% は同じ）ので公開値には効かないが、**絶対数を引くときは measured_at を併記すること。**"
  ],
  "per_repo": {
    "simplememo": {
      "commits_total": 106,
      "commits_ai": 105,
      "lines_total": 37108,
      "lines_ai": 34291
    },
    "simplememo-api": {
      "commits_total": 18,
      "commits_ai": 18,
      "lines_total": 2867,
      "lines_ai": 2867
    },
    "simplememo-ios": {
      "commits_total": 70,
      "commits_ai": 70,
      "lines_total": 9001,
      "lines_ai": 9001
    }
  },
  "total": {
    "commits_total": 194,
    "commits_ai": 193,
    "lines_total": 48976,
    "lines_ai": 46159
  },
  "headline": {
    "commits_rate_pct": 99.5,
    "lines_rate_pct": 94.2
  },
  "windows": [
    {
      "measured_at": "2026-09-02",
      "from": "2026-08-11",
      "to": "2026-09-01",
      "all_branches": true,
      "per_repo": {
        "simplememo": {
          "commits_total": 479,
          "commits_ai": 460,
          "lines_total": 135177,
          "lines_ai": 129756
        },
        "simplememo-api": {
          "commits_total": 179,
          "commits_ai": 132,
          "lines_total": 107685,
          "lines_ai": 58861
        },
        "simplememo-ios": {
          "commits_total": 236,
          "commits_ai": 140,
          "lines_total": 57986,
          "lines_ai": 24559
        }
      },
      "total": {
        "commits_total": 894,
        "commits_ai": 732,
        "lines_total": 300848,
        "lines_ai": 213176
      },
      "rates": {
        "commits_rate_pct": 81.9,
        "lines_rate_pct": 70.9
      },
      "why": "配信原稿が「同期間」と書いた23日間の窓。見出し（8/11〜8/21）より低い。8/22以降、署名もトレーラーも足跡も持たないコミットが iOS で増えたため（定義上は人側に数える）"
    }
  ],
  "$windows_note": "見出し（from/to/headline）とは別の窓。原稿に出る率はここか見出しの値でなければならない（check-autopilot-page.mjs が突き合わせる）。同じ窓を --write-window し直すと上書きされる",
  "$method_note": "[2026-09-02] 定義を v1（署名とトレーラー）から v2（＋Claude Code の足跡）へ広げた。見出しの窓（8/11〜8/21）の数値は v1 計測のまま据え置き —— 8/11〜9/1 で両定義を実測して同値（3リポジトリとも v1=v2）だったので、部分窓でも同値。squash マージが PR 本文の足跡を写すようになった以降の窓から差が出うる"
}
