diff --git a/.roo/rules-release-notes-writer/1_main_workflow.xml b/.roo/rules-release-notes-writer/1_main_workflow.xml index 10846d01..efba26cc 100644 --- a/.roo/rules-release-notes-writer/1_main_workflow.xml +++ b/.roo/rules-release-notes-writer/1_main_workflow.xml @@ -91,7 +91,7 @@ Fetch PRs from GitHub using simplified approach User provided PR list - # Replace X.Y.Z with the actual version number TAG_INPUT="X.Y.Z"; TAG="v$(echo "$TAG_INPUT" | sed 's/^v//')"; \ END=$(gh release view "$TAG" --repo RooCodeInc/Roo-Code --json publishedAt --jq '.publishedAt'); \ @@ -99,7 +99,7 @@ START=$(gh release list --repo RooCodeInc/Roo-Code --limit 1000 --json tagName,p gh pr list --repo RooCodeInc/Roo-Code --state merged --base main --limit 1000 \ --json number,title,author,url,mergedAt \ --jq 'map(select(.mergedAt >= "'"$START"'" and .mergedAt <= "'"$END"'")) | sort_by(.mergedAt)[] | [.number,.mergedAt,.author.login,.title,.url] | @tsv' - ]]> + Returns JSON array of PR objects sorted by merge date, including all metadata needed for PR processing @@ -132,7 +132,7 @@ gh pr list --repo RooCodeInc/Roo-Code --state merged --base main --limit 1000 \ Wait for all subtasks to complete before proceeding to compilation phase. - Investigate PR #[number] for release notes v[version]. 1. Get PR details: gh pr view [number] --repo RooCodeInc/Roo-Code --json number,title,author,mergedAt,labels,body,url 2. Extract linked issues from PR body @@ -149,18 +149,18 @@ gh pr list --repo RooCodeInc/Roo-Code --state merged --base main --limit 1000 \ CRITICAL: Never create/overwrite files, only append. MANDATORY: Insert the marker line '' immediately before the '---' separator in each PR entry. - ]]> - + [ ] Fetch PR #[number] details using gh pr view --repo RooCodeInc/Roo-Code [ ] Extract linked issues from PR body [ ] Get issue details for each linked issue [ ] Categorize the change (Feature/QOL/Bug Fix/Provider Update) [ ] Identify documentation needs [ ] Write analysis to .roo/tmp/release-notes/temp_pr_analysis_v[version].md - ]]> + - ## PR #[number]: [Title] **Author**: [username] @@ -173,12 +173,12 @@ gh pr list --repo RooCodeInc/Roo-Code --state merged --base main --limit 1000 \ --- - ]]> + Example of creating subtasks for a PR list Given PRs: #1234, #1235, #1236 for version 3.20.1 - release-notes-writer @@ -195,7 +195,7 @@ Append analysis to .roo/tmp/release-notes/temp_pr_analysis_v3.20.1.md using inse [ ] Write to temp_pr_analysis_v3.20.1.md - ]]> + - Parent creates temp files first - Each PR gets its own subtask @@ -208,22 +208,22 @@ Append analysis to .roo/tmp/release-notes/temp_pr_analysis_v3.20.1.md using inse Align the working PR set with the repository changelog for the selected version(s) Fetch changelog content for v[VERSION] - # Get the release body which contains the changelog gh release view vX.Y.Z --repo RooCodeInc/Roo-Code --json body | jq -r '.body' - ]]> + The release body contains the curated list of changes for this version Extract hero image URL candidates from release body and changelog; persist - # Save release body to a temp file for reuse mkdir -p .roo/tmp/release-notes gh release view vX.Y.Z --repo RooCodeInc/Roo-Code --json body --jq '.body' > .roo/tmp/release-notes/changelog_vX.Y.Z.md - ]]> - + # Fetch CHANGELOG.md at tag vX.Y.Z; fallback to main, then extract vX.Y.Z section TMP_DIR=".roo/tmp/release-notes" CHANGELOG_TAG_FILE="$TMP_DIR/CHANGELOG_vX.Y.Z.md" @@ -254,8 +254,8 @@ if [ -s "$CHANGELOG_TAG_FILE" ]; then else : > "$SECTION_FILE" fi - ]]> - + # Build candidate list from both the release body and extracted changelog section (absolute and relative paths) CANDIDATES_FILE=".roo/tmp/release-notes/image_candidates_vX.Y.Z.txt" : > "$CANDIDATES_FILE" @@ -266,7 +266,7 @@ grep -Eo '!\[[^]]*\]\(([^)]+)\)' .roo/tmp/release-notes/changelog_vX.Y.Z.md 2>/d Download hero image via curl to static/img/v[VERSION]/v[VERSION].png and persist frontmatter image path - VERSION="X.Y.Z" mkdir -p "static/img/v$VERSION" OUT="static/img/v$VERSION/v$VERSION.png" @@ -277,7 +277,7 @@ if [ -s "$OUT" ]; then else echo "/img/social-share.jpg" > ".roo/tmp/release-notes/frontmatter_image_v$VERSION.txt" fi -]]> + - If curl fails or the URL is invalid, the persisted path will be /img/social-share.jpg - Prefer PNG when multiple candidates are present @@ -309,11 +309,11 @@ fi - Wait for all spawned subtasks to complete before proceeding - # For each referenced PR number N not present in .roo/tmp/release-notes/temp_pr_analysis_v[version].md: gh pr view N --repo RooCodeInc/Roo-Code --json number,title,author,mergedAt,labels,files - ]]> - + release-notes-writer Investigate PR #[NUMBER] (changelog-referenced, possibly out of original range) for release notes v[version]. Follow standard analysis and append to .roo/tmp/release-notes/temp_pr_analysis_v[version].md. @@ -326,7 +326,7 @@ gh pr view N --repo RooCodeInc/Roo-Code --json number,title,author,mergedAt,labe [ ] Write analysis to .roo/tmp/release-notes/temp_pr_analysis_v[version].md - ]]> + @@ -358,7 +358,7 @@ gh pr view N --repo RooCodeInc/Roo-Code --json number,title,author,mergedAt,labe Ask for inclusion policy ask_followup_question - + Do not proceed until one of the provided options is selected. @@ -381,7 +381,7 @@ gh pr view N --repo RooCodeInc/Roo-Code --json number,title,author,mergedAt,labe - Options: "Yes, include this PR" or "No, skip this PR" - Build the final inclusion set as (in_changelog ∪ user_selected_inclusions) - + After the loop, proceed with the finalized PR set. @@ -417,7 +417,7 @@ gh pr view N --repo RooCodeInc/Roo-Code --json number,title,author,mergedAt,labe Confirm feature highlighting with user ask_followup_question - + Do not proceed until an explicit selection from the provided options is received. On freeform responses, re-ask with reformulated options derived from the user's input until a provided option is chosen. @@ -458,9 +458,9 @@ Which features should I highlight with expanded sections in the release notes? - Follow .roorules Image Tag Format and use width="600" - If the persisted path is "/img/social-share.jpg", skip inline insertion - Roo Code v[VERSION] Release - ]]> + @@ -543,12 +543,12 @@ Which features should I highlight with expanded sections in the release notes? Ask which to process - # Get existing documentation files ls docs/update-notes | grep -E '^v[0-9]+\.[0-9]+(\.[0-9]+)?\.(md|mdx)$' | sed -E 's/\.(md|mdx)$//' - ]]> + - # Get recent releases with full details in JSON array echo "["; first=1; \ for tag in $(gh release list --repo RooCodeInc/Roo-Code --limit 20 --json tagName --jq '.[].tagName'); do @@ -557,7 +557,7 @@ for tag in $(gh release list --repo RooCodeInc/Roo-Code --limit 20 --json tagNam first=0 done; \ echo "]" - ]]> + Compare the release list with existing docs to identify missing versions. @@ -573,7 +573,7 @@ echo "]" This is simple, reliable, and captures all changes in a single command. - # Replace X.Y.Z with the actual version number TAG_INPUT="X.Y.Z"; TAG="v$(echo "$TAG_INPUT" | sed 's/^v//')"; \ END=$(gh release view "$TAG" --repo RooCodeInc/Roo-Code --json publishedAt --jq '.publishedAt'); \ @@ -581,7 +581,7 @@ START=$(gh release list --repo RooCodeInc/Roo-Code --limit 1000 --json tagName,p gh pr list --repo RooCodeInc/Roo-Code --state merged --base main --limit 1000 \ --json number,title,author,url,mergedAt \ --jq 'map(select(.mergedAt >= "'"$START"'" and .mergedAt <= "'"$END"'")) | sort_by(.mergedAt)[] | [.number,.mergedAt,.author.login,.title,.url] | @tsv' - ]]> + 1. Gets the release timestamp for your version @@ -621,7 +621,7 @@ grep -Eo 'https?://[^ )]+' .roo/tmp/release-notes/changelog_vX.Y.Z.md 2>/dev/nul Download hero image via curl to static/img/v[VERSION]/v[VERSION].png and persist frontmatter image path - VERSION="X.Y.Z" mkdir -p "static/img/v$VERSION" OUT="static/img/v$VERSION/v$VERSION.png" @@ -632,7 +632,7 @@ if [ -s "$OUT" ]; then else echo "/img/social-share.jpg" > ".roo/tmp/release-notes/frontmatter_image_v$VERSION.txt" fi -]]> + - If curl fails or the URL is invalid, the persisted path will be /img/social-share.jpg - Prefer PNG when multiple candidates are present @@ -664,11 +664,11 @@ fi - Wait for all spawned subtasks to complete before proceeding - # For each referenced PR number N not present in .roo/tmp/release-notes/temp_pr_analysis_v[version].md: gh pr view N --repo RooCodeInc/Roo-Code --json number,title,author,mergedAt,labels,files - ]]> - + release-notes-writer Investigate PR #[NUMBER] (changelog-referenced, possibly out of original range) for release notes v[version]. Follow standard analysis and append to .roo/tmp/release-notes/temp_pr_analysis_v[version].md. @@ -681,7 +681,7 @@ gh pr view N --repo RooCodeInc/Roo-Code --json number,title,author,mergedAt,labe [ ] Write analysis to .roo/tmp/release-notes/temp_pr_analysis_v[version].md - ]]> + @@ -713,7 +713,7 @@ gh pr view N --repo RooCodeInc/Roo-Code --json number,title,author,mergedAt,labe Ask for inclusion policy ask_followup_question - + Do not proceed until one of the provided options is selected. @@ -736,7 +736,7 @@ gh pr view N --repo RooCodeInc/Roo-Code --json number,title,author,mergedAt,labe - Options: "Yes, include this PR" or "No, skip this PR" - Build the final inclusion set as (in_changelog ∪ user_selected_inclusions) - + After the loop, proceed with the finalized PR set. @@ -772,7 +772,7 @@ gh pr view N --repo RooCodeInc/Roo-Code --json number,title,author,mergedAt,labe Confirm feature highlighting with user ask_followup_question - + Do not proceed until an explicit selection from the provided options is received. On freeform responses, re-ask with reformulated options derived from the user's input until a provided option is chosen. @@ -885,12 +885,12 @@ Which features should I highlight with expanded sections in the release notes? Ask which to process - # Get existing documentation files ls docs/update-notes | grep -E '^v[0-9]+\.[0-9]+(\.[0-9]+)?\.(md|mdx)$' | sed -E 's/\.(md|mdx)$//' - ]]> + - # Get recent releases with full details in JSON array echo "["; first=1; \ for tag in $(gh release list --repo RooCodeInc/Roo-Code --limit 20 --json tagName --jq '.[].tagName'); do @@ -899,7 +899,7 @@ for tag in $(gh release list --repo RooCodeInc/Roo-Code --limit 20 --json tagNam first=0 done; \ echo "]" - ]]> + Compare the release list with existing docs to identify missing versions. @@ -915,7 +915,7 @@ echo "]" This is simple, reliable, and captures all changes in a single command. - # Replace X.Y.Z with the actual version number TAG_INPUT="X.Y.Z"; TAG="v$(echo "$TAG_INPUT" | sed 's/^v//')"; \ END=$(gh release view "$TAG" --repo RooCodeInc/Roo-Code --json publishedAt --jq '.publishedAt'); \ @@ -923,7 +923,7 @@ START=$(gh release list --repo RooCodeInc/Roo-Code --limit 1000 --json tagName,p gh pr list --repo RooCodeInc/Roo-Code --state merged --base main --limit 1000 \ --json number,title,author,url,mergedAt \ --jq 'map(select(.mergedAt >= "'"$START"'" and .mergedAt <= "'"$END"'")) | sort_by(.mergedAt)[] | [.number,.mergedAt,.author.login,.title,.url] | @tsv' - ]]> + 1. Gets the release timestamp for your version @@ -965,7 +965,7 @@ grep -Eo '!\[[^]]*\]\(([^)]+)\)' .roo/tmp/release-notes/CHANGELOG_section_vX.Y.Z Download hero image via curl to static/img/v[VERSION]/v[VERSION].png and persist frontmatter image path - VERSION="X.Y.Z" mkdir -p "static/img/v$VERSION" OUT="static/img/v$VERSION/v$VERSION.png" @@ -976,7 +976,7 @@ if [ -s "$OUT" ]; then else echo "/img/social-share.jpg" > ".roo/tmp/release-notes/frontmatter_image_v$VERSION.txt" fi -]]> + - If curl fails or the URL is invalid, the persisted path will be /img/social-share.jpg - Prefer PNG when multiple candidates are present @@ -1008,11 +1008,11 @@ fi - Wait for all spawned subtasks to complete before proceeding - # For each referenced PR number N not present in .roo/tmp/release-notes/temp_pr_analysis_v[version].md: gh pr view N --repo RooCodeInc/Roo-Code --json number,title,author,mergedAt,labels,files - ]]> - + release-notes-writer Investigate PR #[NUMBER] (changelog-referenced, possibly out of original range) for release notes v[version]. Follow standard analysis and append to .roo/tmp/release-notes/temp_pr_analysis_v[version].md. @@ -1025,7 +1025,7 @@ gh pr view N --repo RooCodeInc/Roo-Code --json number,title,author,mergedAt,labe [ ] Write analysis to .roo/tmp/release-notes/temp_pr_analysis_v[version].md - ]]> + @@ -1057,7 +1057,7 @@ gh pr view N --repo RooCodeInc/Roo-Code --json number,title,author,mergedAt,labe Ask for inclusion policy ask_followup_question - + Do not proceed until one of the provided options is selected. @@ -1080,7 +1080,7 @@ gh pr view N --repo RooCodeInc/Roo-Code --json number,title,author,mergedAt,labe - Options: "Yes, include this PR" or "No, skip this PR" - Build the final inclusion set as (in_changelog ∪ user_selected_inclusions) - + After the loop, proceed with the finalized PR set. @@ -1116,7 +1116,7 @@ gh pr view N --repo RooCodeInc/Roo-Code --json number,title,author,mergedAt,labe Confirm feature highlighting with user ask_followup_question - + Do not proceed until an explicit selection from the provided options is received. On freeform responses, re-ask with reformulated options derived from the user's input until a provided option is chosen. @@ -1229,12 +1229,12 @@ Which features should I highlight with expanded sections in the release notes? Ask which to process - # Get existing documentation files ls docs/update-notes | grep -E '^v[0-9]+\.[0-9]+(\.[0-9]+)?\.(md|mdx)$' | sed -E 's/\.(md|mdx)$//' - ]]> + - # Get recent releases with full details in JSON array echo "["; first=1; \ for tag in $(gh release list --repo RooCodeInc/Roo-Code --limit 20 --json tagName --jq '.[].tagName'); do @@ -1243,7 +1243,7 @@ for tag in $(gh release list --repo RooCodeInc/Roo-Code --limit 20 --json tagNam first=0 done; \ echo "]" - ]]> + Compare the release list with existing docs to identify missing versions. @@ -1259,7 +1259,7 @@ echo "]" This is simple, reliable, and captures all changes in a single command. - # Replace X.Y.Z with the actual version number TAG_INPUT="X.Y.Z"; TAG="v$(echo "$TAG_INPUT" | sed 's/^v//')"; \ END=$(gh release view "$TAG" --repo RooCodeInc/Roo-Code --json publishedAt --jq '.publishedAt'); \ @@ -1267,7 +1267,7 @@ START=$(gh release list --repo RooCodeInc/Roo-Code --limit 1000 --json tagName,p gh pr list --repo RooCodeInc/Roo-Code --state merged --base main --limit 1000 \ --json number,title,author,url,mergedAt \ --jq 'map(select(.mergedAt >= "'"$START"'" and .mergedAt <= "'"$END"'")) | sort_by(.mergedAt)[] | [.number,.mergedAt,.author.login,.title,.url] | @tsv' - ]]> + 1. Gets the release timestamp for your version @@ -1307,7 +1307,7 @@ grep -Eo 'https?://[^ )]+' .roo/tmp/release-notes/CHANGELOG_section_vX.Y.Z.md 2> Download hero image via curl to static/img/v[VERSION]/v[VERSION].png and persist frontmatter image path - VERSION="X.Y.Z" mkdir -p "static/img/v$VERSION" OUT="static/img/v$VERSION/v$VERSION.png" @@ -1318,7 +1318,7 @@ if [ -s "$OUT" ]; then else echo "/img/social-share.jpg" > ".roo/tmp/release-notes/frontmatter_image_v$VERSION.txt" fi -]]> + - If curl fails or the URL is invalid, the persisted path will be /img/social-share.jpg - Prefer PNG when multiple candidates are present @@ -1350,11 +1350,11 @@ fi - Wait for all spawned subtasks to complete before proceeding - # For each referenced PR number N not present in .roo/tmp/release-notes/temp_pr_analysis_v[version].md: gh pr view N --repo RooCodeInc/Roo-Code --json number,title,author,mergedAt,labels,files - ]]> - + release-notes-writer Investigate PR #[NUMBER] (changelog-referenced, possibly out of original range) for release notes v[version]. Follow standard analysis and append to .roo/tmp/release-notes/temp_pr_analysis_v[version].md. @@ -1367,7 +1367,7 @@ gh pr view N --repo RooCodeInc/Roo-Code --json number,title,author,mergedAt,labe [ ] Write analysis to .roo/tmp/release-notes/temp_pr_analysis_v[version].md - ]]> + @@ -1399,7 +1399,7 @@ gh pr view N --repo RooCodeInc/Roo-Code --json number,title,author,mergedAt,labe Ask for inclusion policy ask_followup_question - + Do not proceed until one of the provided options is selected. @@ -1422,7 +1422,7 @@ gh pr view N --repo RooCodeInc/Roo-Code --json number,title,author,mergedAt,labe - Options: "Yes, include this PR" or "No, skip this PR" - Build the final inclusion set as (in_changelog ∪ user_selected_inclusions) - + After the loop, proceed with the finalized PR set. @@ -1458,7 +1458,7 @@ gh pr view N --repo RooCodeInc/Roo-Code --json number,title,author,mergedAt,labe Confirm feature highlighting with user ask_followup_question - + Do not proceed until an explicit selection from the provided options is received. On freeform responses, re-ask with reformulated options derived from the user's input until a provided option is chosen. @@ -1571,12 +1571,12 @@ Which features should I highlight with expanded sections in the release notes? Ask which to process - # Get existing documentation files ls docs/update-notes | grep -E '^v[0-9]+\.[0-9]+(\.[0-9]+)?\.(md|mdx)$' | sed -E 's/\.(md|mdx)$//' - ]]> + - # Get recent releases with full details in JSON array echo "["; first=1; \ for tag in $(gh release list --repo RooCodeInc/Roo-Code --limit 20 --json tagName --jq '.[].tagName'); do @@ -1585,7 +1585,7 @@ for tag in $(gh release list --repo RooCodeInc/Roo-Code --limit 20 --json tagNam first=0 done; \ echo "]" - ]]> + Compare the release list with existing docs to identify missing versions. @@ -1601,7 +1601,7 @@ echo "]" This is simple, reliable, and captures all changes in a single command. - # Replace X.Y.Z with the actual version number TAG_INPUT="X.Y.Z"; TAG="v$(echo "$TAG_INPUT" | sed 's/^v//')"; \ END=$(gh release view "$TAG" --repo RooCodeInc/Roo-Code --json publishedAt --jq '.publishedAt'); \ @@ -1609,7 +1609,7 @@ START=$(gh release list --repo RooCodeInc/Roo-Code --limit 1000 --json tagName,p gh pr list --repo RooCodeInc/Roo-Code --state merged --base main --limit 1000 \ --json number,title,author,url,mergedAt \ --jq 'map(select(.mergedAt >= "'"$START"'" and .mergedAt <= "'"$END"'")) | sort_by(.mergedAt)[] | [.number,.mergedAt,.author.login,.title,.url] | @tsv' - ]]> + 1. Gets the release timestamp for your version @@ -1649,7 +1649,7 @@ grep -Eo '(/[^ )]+|[A-Za-z0-9_./-]+)\.(png|jpe?g|gif|webp)' .roo/tmp/release-not if [ -s "$CANDIDATES_FILE" ]; then sort -u "$CANDIDATES_FILE" > "$CANDIDATES_FILE.tmp" && mv "$CANDIDATES_FILE.tmp" "$CANDIDATES_FILE" fi - ]]> + .roo/tmp/release-notes/image_candidates_v[version].txt @@ -1659,7 +1659,7 @@ fi Download hero image via curl to static/img/v[VERSION]/v[VERSION].png and persist frontmatter image path - VERSION="X.Y.Z" mkdir -p "static/img/v$VERSION" OUT="static/img/v$VERSION/v$VERSION.png" @@ -1670,7 +1670,7 @@ if [ -s "$OUT" ]; then else echo "/img/social-share.jpg" > ".roo/tmp/release-notes/frontmatter_image_v$VERSION.txt" fi -]]> + - If curl fails or the URL is invalid, the persisted path will be /img/social-share.jpg - Prefer PNG when multiple candidates are present @@ -1702,11 +1702,11 @@ fi - Wait for all spawned subtasks to complete before proceeding - # For each referenced PR number N not present in .roo/tmp/release-notes/temp_pr_analysis_v[version].md: gh pr view N --repo RooCodeInc/Roo-Code --json number,title,author,mergedAt,labels,files - ]]> - + release-notes-writer Investigate PR #[NUMBER] (changelog-referenced, possibly out of original range) for release notes v[version]. Follow standard analysis and append to .roo/tmp/release-notes/temp_pr_analysis_v[version].md. @@ -1719,7 +1719,7 @@ gh pr view N --repo RooCodeInc/Roo-Code --json number,title,author,mergedAt,labe [ ] Write analysis to .roo/tmp/release-notes/temp_pr_analysis_v[version].md - ]]> + @@ -1751,7 +1751,7 @@ gh pr view N --repo RooCodeInc/Roo-Code --json number,title,author,mergedAt,labe Ask for inclusion policy ask_followup_question - + Do not proceed until one of the provided options is selected. @@ -1774,7 +1774,7 @@ gh pr view N --repo RooCodeInc/Roo-Code --json number,title,author,mergedAt,labe - Options: "Yes, include this PR" or "No, skip this PR" - Build the final inclusion set as (in_changelog ∪ user_selected_inclusions) - + After the loop, proceed with the finalized PR set. @@ -1810,7 +1810,7 @@ gh pr view N --repo RooCodeInc/Roo-Code --json number,title,author,mergedAt,labe Confirm feature highlighting with user ask_followup_question - + Do not proceed until an explicit selection from the provided options is received. On freeform responses, re-ask with reformulated options derived from the user's input until a provided option is chosen. @@ -1923,12 +1923,12 @@ Which features should I highlight with expanded sections in the release notes? Ask which to process - # Get existing documentation files ls docs/update-notes | grep -E '^v[0-9]+\.[0-9]+(\.[0-9]+)?\.(md|mdx)$' | sed -E 's/\.(md|mdx)$//' - ]]> + - # Get recent releases with full details in JSON array echo "["; first=1; \ for tag in $(gh release list --repo RooCodeInc/Roo-Code --limit 20 --json tagName --jq '.[].tagName'); do @@ -1937,7 +1937,7 @@ for tag in $(gh release list --repo RooCodeInc/Roo-Code --limit 20 --json tagNam first=0 done; \ echo "]" - ]]> + Compare the release list with existing docs to identify missing versions. @@ -1957,7 +1957,7 @@ echo "]" This is simple, reliable, and captures all changes in a single command. - # Replace X.Y.Z with the actual version number TAG_INPUT="X.Y.Z"; TAG="v$(echo "$TAG_INPUT" | sed 's/^v//')"; \ END=$(gh release view "$TAG" --repo RooCodeInc/Roo-Code --json publishedAt --jq '.publishedAt'); \ @@ -1965,7 +1965,7 @@ START=$(gh release list --repo RooCodeInc/Roo-Code --limit 1000 --json tagName,p gh pr list --repo RooCodeInc/Roo-Code --state merged --base main --limit 1000 \ --json number,title,author,url,mergedAt \ --jq 'map(select(.mergedAt >= "'"$START"'" and .mergedAt <= "'"$END"'")) | sort_by(.mergedAt)[] | [.number,.mergedAt,.author.login,.title,.url] | @tsv' - ]]> + 1. Gets the release timestamp for your version diff --git a/.roo/rules-release-notes-writer/2_content_standards.xml b/.roo/rules-release-notes-writer/2_content_standards.xml index 3c319861..16addf5b 100644 --- a/.roo/rules-release-notes-writer/2_content_standards.xml +++ b/.roo/rules-release-notes-writer/2_content_standards.xml @@ -19,7 +19,7 @@ - --- description: A concise summary of the release. keywords: @@ -28,7 +28,7 @@ keywords: - bug fixes image: /img/social-share.jpg --- - ]]> + @@ -52,9 +52,9 @@ image: /img/social-share.jpg - Use an HTML image tag per site rules with width="600" - Set src from .roo/tmp/release-notes/frontmatter_image_v[version].txt and alt to "Roo Code v[VERSION] Release" - + @@ -70,7 +70,7 @@ image: /img/social-share.jpg New functionality changing user experience Own ## heading with expanded description - + @@ -113,7 +113,7 @@ We've [improvement description] (thanks [contributors]!) ([#PR](link)): Major features with details - ## Feature Name Description of what the feature does (thanks contributor!) ([#PR](link)): @@ -124,17 +124,17 @@ Description of what the feature does (thanks contributor!) ([#PR](link)): Concluding sentence about the benefit. > **📚 Documentation**: See [Feature Guide](/path/to/feature) for detailed usage. - ]]> + Smaller fixes and improvements - ## Section Name * **Item Name**: Single-line description (thanks contributor!) ([#PR](link)) * **Another Item**: Another description ([#PR](link)) - ]]> + @@ -217,12 +217,12 @@ Concluding sentence about the benefit. [Feature Name](/path/to/feature) - > **📚 Documentation**: See [Feature Guide](/path) for detailed usage instructions. - ]]> - + > **🔄 Migration Guide**: If upgrading from v[OLD], see our [migration guide](/migration/vX-to-vY). - ]]> + - Modes: /features/modes/[mode-slug] @@ -289,12 +289,12 @@ Concluding sentence about the benefit. - See full release notes [vX.Y.Z](https://docs.roocode.com/update-notes/vX.Y.Z) - ]]> - + See full release notes [vX.Y.Z](https://docs.roocode.com/update-notes/vX.Y.Z) | [vX.Y.Z](https://docs.roocode.com/update-notes/vX.Y.Z) - ]]> + - Use markdown inline links with the version as the anchor text - For multiple versions, join links with " | " @@ -362,12 +362,12 @@ See full release notes [vX.Y.Z](https://docs.roocode.com/update-notes/vX.Y.Z) | - See full release notes [vX.Y.Z](https://docs.roocode.com/update-notes/vX.Y.Z) - ]]> - + See full release notes [vX.Y.Z](https://docs.roocode.com/update-notes/vX.Y.Z) | [vX.Y.Z](https://docs.roocode.com/update-notes/vX.Y.Z) - ]]> + diff --git a/.roo/rules-release-notes-writer/3_user_interactions.xml b/.roo/rules-release-notes-writer/3_user_interactions.xml index 6f002291..339afe41 100644 --- a/.roo/rules-release-notes-writer/3_user_interactions.xml +++ b/.roo/rules-release-notes-writer/3_user_interactions.xml @@ -8,7 +8,7 @@ After PR analysis, before writing release notes Verify which features to highlight - + Do not proceed unless the response clearly matches one of the provided options. If the user types a freeform response, re-ask using ask_followup_question with options reformulated from their input; require selection of one provided option. Repeat this gating loop until a provided option is explicitly selected. - To proceed I need an explicit selection. Based on your input, which option should I follow? @@ -43,37 +43,41 @@ Which features should I highlight with expanded sections in the release notes?Let me specify which features to expand - ]]> + After fetching PRs and before feature selection Partition PRs by presence in the changelog and select inclusion policy - Present counts and reasons for exclusion, then offer three paths: - - Only changelog PRs + Present counts partitioned as: + - Linked (explicit or confidently auto‑matched) + - Ambiguous (needs review) + - Unlinked + Then offer three paths: + - Only linked PRs + - Linked + review ambiguous - All PRs - - Review excluded PRs one by one - -Changelog alignment for v[VERSION]: [IN_COUNT] PRs referenced, [EX_COUNT] not referenced. How should I proceed? +Changelog alignment v[VERSION]: [IN_COUNT] linked, [AMBIG_COUNT] ambiguous, [EX_COUNT] unlinked. Choose how to proceed. -Only include the PRs referenced in the changelog +Proceed with linked PRs only; skip ambiguous and unlinked +Include linked PRs and review the [AMBIG_COUNT] ambiguous items Include all PRs from the date range -Review each excluded PR one by one so I can choose - ]]> - + -Include PR #[NUMBER] - [TITLE]? Short analysis: [USER IMPACT / WHY IT MATTERS]. +Review ambiguous item: include PR #[NUMBER] - [TITLE]? Short analysis: [USER IMPACT / WHY IT MATTERS]. Yes, include this PR No, skip this PR - ]]> + Do not proceed until an explicit option is selected. For freeform answers, re-ask with options that reflect the user's intent; require selection. @@ -84,7 +88,7 @@ Which features should I highlight with expanded sections in the release notes?After creating patch notes, before updating combined notes Ensure patch notes are final before propagating NEVER update combined notes until explicit confirmation - + After identifying documentation flags Confirm documentation update requirements - + After all updates complete Final confirmation before PR creation - + @@ -154,7 +158,7 @@ Would you like to create a PR or make any final adjustments? Detect missing versions from changelog Present found versions - + @@ -211,7 +215,7 @@ Which would you like to process? Verify actual count of changes Maintain markdown code block and hyphen bullets - + @@ -256,7 +260,7 @@ Which would you like to process? Footer links as hyphen bullets to each version's docs page Wrap entire output in ```markdown code block - +