{
 "id": "cicd",
 "voice": "Kokoro bm_george",
 "tracks": {
  "everyone": {
   "total": 111.417,
   "audio": "audio/everyone.mp3",
   "beats": [
    {
     "id": "d0",
     "s": 1.6,
     "e": 13.632,
     "vo": 10.932,
     "lines": [
      {
       "t": "Software is never finished.",
       "s": 1.6,
       "d": 2.1
      },
      {
       "t": "Every week, Doña Carmen's app gets a new button, a fix, a new price.",
       "s": 4.02,
       "d": 4.785
      },
      {
       "t": "The trick is changing it while people are still ordering.",
       "s": 9.126,
       "d": 3.407
      }
     ]
    },
    {
     "id": "d1",
     "s": 13.632,
     "e": 25.002,
     "vo": 10.27,
     "lines": [
      {
       "t": "The app's recipe lives in one shared book with a perfect memory.",
       "s": 13.632,
       "d": 4.486
      },
      {
       "t": "Every change, who made it, and why.",
       "s": 18.438,
       "d": 2.539
      },
      {
       "t": "That book is called the repository.",
       "s": 21.297,
       "d": 2.605
      }
     ]
    },
    {
     "id": "d2",
     "s": 25.002,
     "e": 36.478,
     "vo": 10.376,
     "lines": [
      {
       "t": "To try a new recipe, a cook copies the book onto a side track, called a branch, and experiments there.",
       "s": 25.002,
       "d": 6.712
      },
      {
       "t": "Meanwhile the main book keeps feeding customers.",
       "s": 32.034,
       "d": 3.344
      }
     ]
    },
    {
     "id": "d3",
     "s": 36.478,
     "e": 44.459,
     "vo": 6.881,
     "lines": [
      {
       "t": "When it's ready, the cook asks to fold it back into the main book.",
       "s": 36.478,
       "d": 3.838
      },
      {
       "t": "Other cooks taste it, and comment, first.",
       "s": 40.636,
       "d": 2.723
      }
     ]
    },
    {
     "id": "d4",
     "s": 44.459,
     "e": 58.107,
     "vo": 12.548,
     "lines": [
      {
       "t": "Right away, a machine bakes it and checks everything.",
       "s": 44.459,
       "d": 3.404
      },
      {
       "t": "Does it build?",
       "s": 48.183,
       "d": 1.056
      },
      {
       "t": "Does every old recipe still work?",
       "s": 49.558,
       "d": 2.467
      },
      {
       "t": "Is anything unsafe?",
       "s": 52.346,
       "d": 1.768
      },
      {
       "t": "If anything fails, the line stops.",
       "s": 54.434,
       "d": 2.573
      }
     ]
    },
    {
     "id": "d5",
     "s": 58.107,
     "e": 64.596,
     "vo": 5.389,
     "lines": [
      {
       "t": "Fixed, and green across the board.",
       "s": 58.107,
       "d": 2.371
      },
      {
       "t": "Now the change joins the main book.",
       "s": 60.799,
       "d": 2.698
      }
     ]
    },
    {
     "id": "d6",
     "s": 64.596,
     "e": 75.788,
     "vo": 10.091,
     "lines": [
      {
       "t": "But it doesn't go straight to customers.",
       "s": 64.596,
       "d": 2.239
      },
      {
       "t": "First, the test kitchen.",
       "s": 67.156,
       "d": 1.582
      },
      {
       "t": "Then a practice kitchen that looks exactly like the real one.",
       "s": 69.057,
       "d": 3.909
      },
      {
       "t": "Then, the bakery.",
       "s": 73.286,
       "d": 1.402
      }
     ]
    },
    {
     "id": "d7",
     "s": 75.788,
     "e": 84.751,
     "vo": 7.864,
     "lines": [
      {
       "t": "Even then, carefully.",
       "s": 75.788,
       "d": 1.615
      },
      {
       "t": "The new recipe goes to a few customers first.",
       "s": 77.723,
       "d": 3.292
      },
      {
       "t": "If they're happy, everyone gets it.",
       "s": 81.335,
       "d": 2.316
      }
     ]
    },
    {
     "id": "d8",
     "s": 84.751,
     "e": 91.158,
     "vo": 5.306,
     "lines": [
      {
       "t": "And if something goes wrong, one button brings yesterday's recipe back in seconds.",
       "s": 84.751,
       "d": 5.306
      }
     ]
    },
    {
     "id": "d9",
     "s": 91.158,
     "e": 111.417,
     "vo": 15.959,
     "lines": [
      {
       "t": "A counter, a kitchen, a pantry and a helper.",
       "s": 91.158,
       "d": 3.198
      },
      {
       "t": "A window with rules.",
       "s": 94.675,
       "d": 1.744
      },
      {
       "t": "A journey through glass.",
       "s": 96.739,
       "d": 1.637
      },
      {
       "t": "A building full of computers.",
       "s": 98.697,
       "d": 2.009
      },
      {
       "t": "And a recipe that keeps getting better.",
       "s": 101.025,
       "d": 2.47
      },
      {
       "t": "That's software.",
       "s": 103.815,
       "d": 1.232
      },
      {
       "t": "Now you've seen inside.",
       "s": 105.367,
       "d": 1.75
      }
     ]
    }
   ]
  },
  "technical": {
   "total": 123.487,
   "audio": "audio/technical.mp3",
   "beats": [
    {
     "id": "d0",
     "s": 1.6,
     "e": 11.874,
     "vo": 9.174,
     "lines": [
      {
       "t": "C I, C D.",
       "s": 1.6,
       "d": 1.477
      },
      {
       "t": "Continuous integration and continuous delivery.",
       "s": 3.397,
       "d": 3.496
      },
      {
       "t": "It's how teams ship small changes safely, and often.",
       "s": 7.213,
       "d": 3.561
      }
     ]
    },
    {
     "id": "d1",
     "s": 11.874,
     "e": 24.507,
     "vo": 11.533,
     "lines": [
      {
       "t": "Code lives in a version-controlled repository, usually Git.",
       "s": 11.874,
       "d": 4.592
      },
      {
       "t": "Every commit is a snapshot with an author, a message and a parent, so any version can be brought back.",
       "s": 16.786,
       "d": 6.621
      }
     ]
    },
    {
     "id": "d2",
     "s": 24.507,
     "e": 33.143,
     "vo": 7.536,
     "lines": [
      {
       "t": "Developers work on branches off main.",
       "s": 24.507,
       "d": 2.959
      },
      {
       "t": "Short-lived branches keep each change small, and merging easy.",
       "s": 27.786,
       "d": 4.258
      }
     ]
    },
    {
     "id": "d3",
     "s": 33.143,
     "e": 43.956,
     "vo": 9.713,
     "lines": [
      {
       "t": "A pull request proposes merging the branch.",
       "s": 33.143,
       "d": 3.093
      },
      {
       "t": "Teammates review the diff, and the pipeline runs automatically, before anyone is allowed to merge.",
       "s": 36.556,
       "d": 6.3
      }
     ]
    },
    {
     "id": "d4",
     "s": 43.956,
     "e": 57.838,
     "vo": 12.782,
     "lines": [
      {
       "t": "Continuous integration builds the code and runs the automated tests on every push.",
       "s": 43.956,
       "d": 5.882
      },
      {
       "t": "Unit tests, integration tests, linting, security scans.",
       "s": 50.158,
       "d": 4.116
      },
      {
       "t": "A red check blocks the merge.",
       "s": 54.594,
       "d": 2.144
      }
     ]
    },
    {
     "id": "d5",
     "s": 57.838,
     "e": 67.107,
     "vo": 8.169,
     "lines": [
      {
       "t": "Once every check is green and the reviewers approve, the branch merges into main.",
       "s": 57.838,
       "d": 5.48
      },
      {
       "t": "Main should always be ready to release.",
       "s": 63.638,
       "d": 2.369
      }
     ]
    },
    {
     "id": "d6",
     "s": 67.107,
     "e": 83.622,
     "vo": 15.415,
     "lines": [
      {
       "t": "The same build artifact is promoted through environments.",
       "s": 67.107,
       "d": 3.687
      },
      {
       "t": "Development.",
       "s": 71.114,
       "d": 0.966
      },
      {
       "t": "Staging, which mirrors production.",
       "s": 72.4,
       "d": 2.257
      },
      {
       "t": "Then production.",
       "s": 74.977,
       "d": 1.234
      },
      {
       "t": "Build once, deploy many times, with settings and secrets injected for each environment.",
       "s": 76.531,
       "d": 5.991
      }
     ]
    },
    {
     "id": "d7",
     "s": 83.622,
     "e": 98.212,
     "vo": 13.491,
     "lines": [
      {
       "t": "Continuous delivery automates the release.",
       "s": 83.622,
       "d": 2.924
      },
      {
       "t": "A canary deployment sends a small share of traffic to the new version first.",
       "s": 86.866,
       "d": 5.035
      },
      {
       "t": "Blue-green keeps two production stacks and flips traffic from one to the other.",
       "s": 92.22,
       "d": 4.892
      }
     ]
    },
    {
     "id": "d8",
     "s": 98.212,
     "e": 111.464,
     "vo": 12.152,
     "lines": [
      {
       "t": "Monitoring watches error rates and latency.",
       "s": 98.212,
       "d": 3.065
      },
      {
       "t": "If they spike, the pipeline rolls back to the last good version, automatically.",
       "s": 101.597,
       "d": 5.01
      },
      {
       "t": "Fast rollback is what makes frequent deploys safe.",
       "s": 106.927,
       "d": 3.437
      }
     ]
    },
    {
     "id": "d9",
     "s": 111.464,
     "e": 123.487,
     "vo": 7.722,
     "lines": [
      {
       "t": "Layers, contracts, protocols, infrastructure and delivery.",
       "s": 111.464,
       "d": 4.152
      },
      {
       "t": "That's the whole stack.",
       "s": 115.937,
       "d": 1.375
      },
      {
       "t": "Now take it apart.",
       "s": 117.632,
       "d": 1.555
      }
     ]
    }
   ]
  }
 }
}