{
  "schema_version": 1,
  "source_index": "manual/v0.3.0-manual-20260921/review-index.json",
  "source_index_sha256": "17efd1f5f9a9c80791c6764f7972f466b4b29257831f2719b0c66b74b784fc16",
  "review": {
    "id": "change-lifecycle",
    "title": "Describe work and start the next change",
    "status": "ready",
    "source_tape": "tapes/manual/changes/change-lifecycle.tape",
    "source_tape_sha256": "7c77ed180b9b4bdf186b1f41d49561be1f7f6664cd21c6cf831615d02231044e",
    "website": {
      "path": "assets/manual/v0.3.0-manual-20260921/change-lifecycle"
    },
    "problems": [],
    "checkpoints": [
      {
        "id": "change-lifecycle-cancel",
        "png": "change-lifecycle-cancel.png",
        "state": "change-lifecycle-cancel.json",
        "png_sha256": "50d6cb65d1b9c18ddfde3b046157190eaed07ac3da3edba921856d80947be7dd",
        "state_sha256": "3274967c0adcc5e13080f1f8b82c06c0d71bbdec2b8cecceea79dee01d7d4a5d",
        "pixel_review": {
          "status": "reviewed",
          "reviewer": "changes scenario agent",
          "reviewed_at": "2026-09-21T03:37:41.312555+00:00",
          "summary": "The draft input sits on an opaque slate surface, with the real forecast graph visible above and legible cancel/save controls. The background selection remains visibly active.",
          "findings": [
            "UX-06"
          ]
        },
        "text_style_review": {
          "status": "reviewed",
          "reviewer": "changes scenario agent",
          "reviewed_at": "2026-09-21T03:37:41.312555+00:00",
          "summary": "Draft text, selected revision identity and Escape/Enter/Ctrl-j controls match. The panel uses #242c3a with #65d4cf bold keys and #e0e6ee input; graph selection remains emphasized.",
          "findings": [
            "UX-06"
          ]
        },
        "pixel_review_source": "target/manual-recordings/reviews/changes-ci35557653700.json",
        "text_style_review_source": "target/manual-recordings/reviews/changes-ci35557653700.json"
      },
      {
        "id": "change-lifecycle-multiline",
        "png": "change-lifecycle-multiline.png",
        "state": "change-lifecycle-multiline.json",
        "png_sha256": "3736a970c3cb790828456ffe3c11b21e69087adb569e179b3a678bb7d63a8846",
        "state_sha256": "b380e76d8dbdfc2591db372d943d6d4264c425a14b95c1337ddc96869ca3e2e8",
        "pixel_review": {
          "status": "reviewed",
          "reviewer": "changes scenario agent",
          "reviewed_at": "2026-09-21T03:37:41.312555+00:00",
          "summary": "Both paragraphs and their blank separator fit the opaque description panel. The save/newline hints are visible and repository context remains above.",
          "findings": [
            "UX-06"
          ]
        },
        "text_style_review": {
          "status": "reviewed",
          "reviewer": "changes scenario agent",
          "reviewed_at": "2026-09-21T03:37:41.312555+00:00",
          "summary": "Exact new title and body appear on separate lines; panel/control colors match the cancel checkpoint. The background selected row retains its bold description and marker.",
          "findings": [
            "UX-06"
          ]
        },
        "pixel_review_source": "target/manual-recordings/reviews/changes-ci35557653700.json",
        "text_style_review_source": "target/manual-recordings/reviews/changes-ci35557653700.json"
      },
      {
        "id": "change-lifecycle-new",
        "png": "change-lifecycle-new.png",
        "state": "change-lifecycle-new.json",
        "png_sha256": "d5fc42d8b5a4aaefe3440e3468e8ba0386f029e9a1abbbc6315a2e515ab5fdd6",
        "state_sha256": "eda8379ab4d9ee01c505f08004769bc0509d198df2b09ba568daaf49260b4c9c",
        "pixel_review": {
          "status": "reviewed",
          "reviewer": "changes scenario agent",
          "reviewed_at": "2026-09-21T03:37:41.312555+00:00",
          "summary": "A fresh empty working copy appears above the renamed cache change; selection moves to the new child. The success toast has expired in this settled-state checkpoint.",
          "findings": []
        },
        "text_style_review": {
          "status": "reviewed",
          "reviewer": "changes scenario agent",
          "reviewed_at": "2026-09-21T03:37:41.312555+00:00",
          "summary": "State shows new @ with empty/no description and the renamed parent directly below; green empty metadata and jj identifier colors remain distinct.",
          "findings": []
        },
        "pixel_review_source": "target/manual-recordings/reviews/changes-ci35557653700.json",
        "text_style_review_source": "target/manual-recordings/reviews/changes-ci35557653700.json"
      },
      {
        "id": "change-lifecycle-recovered",
        "png": "change-lifecycle-recovered.png",
        "state": "change-lifecycle-recovered.json",
        "png_sha256": "8e555d2bf287a597f20d444222a7d0737d48b9fa018de096ca691fed34b824b4",
        "state_sha256": "67e0ca6dea990f5a8982c11fc7d13cb712f1c139817618a911cb759b9fa681e1",
        "pixel_review": {
          "status": "reviewed",
          "reviewer": "changes scenario agent",
          "reviewed_at": "2026-09-21T03:37:41.312555+00:00",
          "summary": "The renamed cache change is the working copy again and the temporary empty child is absent. Caption explains the undo/redo sequence.",
          "findings": []
        },
        "text_style_review": {
          "status": "reviewed",
          "reviewer": "changes scenario agent",
          "reviewed_at": "2026-09-21T03:37:41.312555+00:00",
          "summary": "State identifies the original renamed change as @, with the timeout, endpoint and documentation ancestors retained; it matches the recorded edit/redo outcome.",
          "findings": []
        },
        "pixel_review_source": "target/manual-recordings/reviews/changes-ci35557653700.json",
        "text_style_review_source": "target/manual-recordings/reviews/changes-ci35557653700.json"
      }
    ],
    "metadata_path": "target/manual-recordings/ci-35557653700/manual-evidence-change-lifecycle/capture-metadata.json",
    "metadata_sha256": "05a0988204b603aa538aa1fe1026b33935dcb56b9a24e87bbd735e6a998864a2",
    "evidence_directory": "target/manual-recordings/ci-35557653700/manual-evidence-change-lifecycle",
    "evidence_status": "passed",
    "source_commit": "7fcb4fa9af1bb624fcdc7ac14a64184a43c4e829",
    "pr_head_commit": "d5200f713edc476fd446616ad46fec573f861baf",
    "source_manifest_sha256": "42c0d25b424a807906eb4e0ba7ca72b4c0488685e9f57b3bcf62d3f01c6c6915",
    "source_matches_checkout": true,
    "binary": {
      "invoked_path": "/home/runner/work/jk/jk/target/manual-build/jk",
      "path": "/home/runner/work/jk/jk/target/manual-build/jk",
      "sha256": "cb41f94b63ec85100829bd2b1e9ced84f37cae912996a48e93b56b8776c9c5ed",
      "version": "jk 0.3.0",
      "version_exit_code": 0
    },
    "jj": {
      "invoked_path": "/home/runner/.cargo/bin/jj",
      "path": "/home/runner/.cargo/bin/jj",
      "sha256": "cd5efc3eb281d606bf9b5523167f79661da0f8c76a5aa32d61c07c7a351b6b44",
      "version": "jj 0.45.1-7c41cdeb16b6b321c64e789a966b6adf723816a5",
      "version_exit_code": 0
    },
    "betamax": {
      "invoked_path": "/home/runner/work/_temp/betamax-UT5cSV/bin/betamax",
      "path": "/home/runner/work/_temp/betamax-UT5cSV/bin/betamax",
      "sha256": "db55fa6e7ff98e1df3c91921b5b3fb504b3cc8fdaf6b07e3da952f8757053490",
      "version": "betamax 0.1.21",
      "version_exit_code": 0
    },
    "ci_run": {
      "id": "35557653700",
      "attempt": "1",
      "url": "https://github.com/joshka/jk/actions/runs/35557653700"
    },
    "assertions": [
      {
        "path": "change-lifecycle-cancelled-assertions.json",
        "sha256": "9aa7092540d16b25b69e4e0a0da00ed509328a992ad617bfba4821982045ddc4",
        "bytes": 940
      },
      {
        "path": "change-lifecycle-edited-assertions.json",
        "sha256": "c0e6cdfa1a25b3d51fac4fa52a822d4866695e78eebb1083af647294dde96736",
        "bytes": 592
      },
      {
        "path": "change-lifecycle-new-assertions.json",
        "sha256": "216afe9cdc6d8a5ddc009487f18a476588d95f96fe70c9670cff08bc77ec0120",
        "bytes": 692
      }
    ],
    "video": {
      "path": "change-lifecycle.mp4",
      "sha256": "3636168047b4483f73173bf2ae3583661e9ce06802b8a0fab5433dfc50620f96",
      "bytes": 643076
    },
    "video_review": {
      "status": "reviewed",
      "reviewer": "changes scenario agent",
      "reviewed_at": "2026-09-21T03:37:41.312555+00:00",
      "summary": "Review method: inspected all checkpoint PNGs inline and matching viewport text/styled spans, source tape, ffprobe duration 55.533333s at 1400x900/15fps, and actual MP4 frames sampled at 8.33, 27.77, 47.2s. Tape uses 80ms typing and 2\u20133s semantic holds. Samples show a cleared unsaved draft, completed description/save feedback, and the empty child restored during undo. Setup and assertion shell output stay hidden.",
      "findings": [
        "UX-06"
      ],
      "sha256": "3636168047b4483f73173bf2ae3583661e9ce06802b8a0fab5433dfc50620f96"
    },
    "source_snapshot_status": "preserved",
    "video_review_source": "target/manual-recordings/reviews/changes-ci35557653700.json",
    "pixel_review_complete": true,
    "text_style_review_complete": true,
    "video_review_complete": true
  }
}
