The same project history can be summarized differently for users and maintainers. A small selector keeps the audience explicit.

Program

Play the script to choose a changelog audience and see the selected summary focus.

audience
changelog_target.sh
Replay: real traced execution (multi-file project)
#!/usr/bin/env bash

audience="user"
case "$audience" in
    user) focus="features-and-fixes" ;;
    dev) focus="commits-and-api" ;;
esac
echo "$audience:$focus"
#!/usr/bin/env bash

audience="dev"
case "$audience" in
    user) focus="features-and-fixes" ;;
    dev) focus="commits-and-api" ;;
esac
echo "$audience:$focus"
  1. audience ← user

    3audience="user"4case "$audience" in
    values this stepuseraudience
  2. case "$audience" in

    3audience="user"4case "$audience" in5    user) focus="features-and-fixes" ;;
    values this stepuseraudience
  3. focus ← features-and-fixes

    4case "$audience" in5    user) focus="features-and-fixes" ;;6    dev) focus="commits-and-api" ;;
    values this stepfeatures-and-fixesfocus
  4. echo "$audience:$focus"

    7esac8echo "$audience:$focus"
    outputuser:features-and-fixes
    values this stepuseraudiencefeatures-and-fixesfocus
  1. audience ← dev

    3audience="dev"4case "$audience" in
    values this stepdevaudience
  2. case "$audience" in

    3audience="dev"4case "$audience" in5    user) focus="features-and-fixes" ;;
    values this stepdevaudience
  3. focus ← commits-and-api

    5    user) focus="features-and-fixes" ;;6    dev) focus="commits-and-api" ;;7esac
    values this stepcommits-and-apifocus
  4. echo "$audience:$focus"

    7esac8echo "$audience:$focus"
    outputdev:commits-and-api
    values this stepdevaudiencecommits-and-apifocus
audience The audience determines which details belong in the changelog.
case selector `case` maps each audience to a summary style.
maintenance output A compact label can drive later rendering or filtering steps.