{
  "id": 13451877,
  "title": "How Do We Extract the “Why” from a PR into a CHANGELOG with Jev? 🤔",
  "url": "https://urgent.news/2026/10/10/how-do-we-extract-the-why-from-a-pr-into-a-changelog-with-jev",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-10-10T15:49:58.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/nyaomaru/how-do-we-extract-the-why-from-a-pr-into-a-changelog-with-jev-52pk"
  },
  "original_language": "en",
  "account": "In the world of software development, CHANGELOGs are crucial documents that track the changes, additions, and improvements made in a project over time. However, extracting the \"why\" behind a release from a pull request (PR) and incorporating it into a CHANGELOG can be a challenging task. This is where Jev comes into play, a tool designed to help developers with this problem.\n\nJev works by analyzing the PR description and looking for specific signals that indicate the presence of a \"why\" statement. These signals include words like \"why,\" \"because,\" \"motivation,\" \"context,\" and \"rationale,\" among others. By identifying these signals and removing template noise such as checkboxes and placeholders, Jev builds candidate snippets that may contain the desired \"why\" information.\n\nTo determine which candidate is the actual \"why,\" Jev asks two key questions. The first question is whether the target candidate explicitly states the reason for the change. This helps to filter out candidates that are merely paraphrasing or summarizing the change without providing a clear reason. The second question is whether the candidate's stated reason applies specifically to the identified change in the CHANGELOG. This further narrows down the options and ensures that the selected candidate is truly relevant to the change being documented.\n\nBy applying these two questions to each candidate, Jev can compare their probabilities and select the most appropriate \"why\" statement to include in the CHANGELOG. This approach ensures that the resulting documentation accurately reflects the reasons behind the changes made in the project, making it easier for developers, users, and stakeholders to understand and appreciate the value of each release.",
  "summary": "Hoi hoi! 👋 I'm @nyaomaru , a frontend engineer currently building an AI-assisted CHANGELOG generator and experimenting with Jev. 😸 Recently, I have been thinking about one problem. How can we extract this ## Why The previous implementation could leave stale release data after an update. from a pull request and put it into a CHANGELOG? ### Fixed - Fix cache invalidation Why: The previous…",
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}