- Skill ID
- aws/agent-toolkit-for-aws/analyzing-release-readiness
- Publisher
- aws
- Repository
- agent-toolkit-for-aws
- Installs
- 0
- Files
- 1
- Synced
- Sep 23, 2026
Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.
aws/agent-toolkit-for-aws/analyzing-release-readinessInstalls these files- SKILL.md
What this skill tells the agent
Release Readiness Review
AgentSpace routing (SigV4 only): Iflist_agent_spacesis available in your tool list and the multi-space orchestration skill has NOT been invoked yet this session, invoke it first to determine whichagent_space_idto use. Then passagent_space_idon all tool calls below. For bearer token auth this is unnecessary — the token is already scoped to one space.
Run a release readiness review via the AWS DevOps Agent. Analyzes a code change for risk, correctness, and potential rollback issues. Returns a structured report with actionable findings.
Rules:
- If a PR/MR URL is provided: Extract ALL fields from the URL. Do NOT inspect the local workspace or git state.
- NEVER use `gh` CLI, `glab` CLI, or any external tool to fetch PR/MR details. All required fields (repository, prNumber/mergeRequestIid, hostname) MUST be parsed directly from the URL or user input. The DevOps Agent fetches the content itself — you only need to pass identifiers.
- Only use the local workspace flows when the user references a repository or package without a PR/MR link.
Gathering execution parameters
Infer everything automatically from the user's request — do not ask for parameters that can be derived.
Input source decision tree:
Has the user provided a pull request/merge request link or ID?
├── Yes: github.com PR URL → use "GitHub PR" flow below
├── Yes: gitlab.com MR URL → use "GitLab MR" flow below
└── No link provided — repo name only → use "Local GitHub/GitLab repo" flow belowGitHub PR (github.com URL or PR reference)
- Parse the input to extract fields — do NOT attempt a web fetch unless fields cannot be determined from the input.
repository(required):owner/repofrom the PR URL- At least one of the following is required:
headSha(commit SHA),headBranch(branch name),prNumber(PR number as a string, e.g."8"not8) hostname: Extract from the URL (e.g.,github.comor a self-hosted hostname)- Pass these fields to
create_release_readiness_reviewundercontent.githubPrContentas an array of objects (even for a single PR).
Example:
{
"content": {
"githubPrContent": [
{
"repository": "owner/repo",
"prNumber": "8",
"hostname": "github.com"
}
]
}
}Critical format rules:githubPrContentMUST be an array (not a single object).prNumberMUST be a string (not an integer).
GitLab MR (gitlab.com URL)
- Parse the input to extract fields — do NOT attempt a web fetch unless fields cannot be determined from the input.
repository(required):owner/repofrom the MR URL- At least one of the following is required:
headSha(commit SHA),headBranch(branch name),mergeRequestIid(MR number as a string, e.g."1"not1) hostname: Extract from the URL (e.g.,gitlab.comor a self-hosted hostname)- Pass these fields to
create_release_readiness_reviewundercontent.gitlabMrContentas an array of objects (even for a single MR).
Example:
{
"content": {
"gitlabMrContent": [
{
"repository": "namespace/repo",
"mergeRequestIid": "1",
"hostname": "gitlab.com"
}
]
}
}Critical format rules:gitlabMrContentMUST be an array (not a single object).mergeRequestIidMUST be a string (not an integer). Violating either causes immediate task failure with no journal records.
Local GitHub/GitLab repo (no PR/MR URL provided — local workspace ONLY)
MANDATORY: When the user references a repository or branch without a PR/MR link, you MUST execute every step below in order. Do NOT shortcut by grabbing the remote URL and SHA directly — the review agent needs a pushed branch to read from. Skipping the push step will cause the analysis to fail or produce incomplete results.
- Navigate to the repository directory:
cdto the repo root (e.g., the clone directory). Ask the user if needed. - Determine the base branch: Use
mainunless the user specifies a different branch. Verify the remote tracking branch exists:
BASE_BRANCH="main"
if ! git show-ref --verify --quiet refs/remotes/origin/$BASE_BRANCH; then
git fetch origin $BASE_BRANCH
fiIf the fetch fails (e.g., "couldn't find remote ref"), ask the user to specify the base branch and stop.
- Check for local changes: Run
git status --shortandgit rev-list --count origin/$BASE_BRANCH..HEADto determine the state and communicate accordingly:
- Clean AND not ahead: Inform the user there's nothing new to analyze and stop.
- Has uncommitted changes (with or without unpushed commits):
- If there are one or more unpushed commits (rev-list count >= 1), tell the user: > "You have uncommitted changes and N unpushed commits. I'll commit your uncommitted changes on top, then push all N+1 commits to a new branch for analysis. All changes will appear as a single diff against the base branch. Shall I proceed?"
- If there are no other unpushed commits (rev-list count = 0), tell the user: > "I'll commit your uncommitted changes and push them to a new branch for release readiness review. Shall I proceed?"
- Do NOT proceed until the user approves. If they decline, stop.
- Clean but ahead of remote (rev-list count > 0, no uncommitted changes):
- If ahead by more than 1 commit, tell the user: > "You have N unpushed commits. I'll push all of them to a new branch for analysis. All changes will appear as a single diff against the base branch. Shall I proceed?"
- If ahead by exactly 1 commit, tell the user: > "I'll push your latest commit to a new branch for release readiness review. Shall I proceed?"
- Do NOT proceed until the user approves. If they decline, stop.
- Stash uncommitted changes (skip this step if working directory is clean):
git stash push --include-untracked -m "release-analysis: preserve working changes"- Create review branch (do this BEFORE committing so the snapshot commit only lives on the disposable branch):
ORIGINAL_BRANCH=$(git rev-parse --abbrev-ref HEAD)
BRANCH_NAME="feat/release-readiness-review"
git checkout -b $BRANCH_NAME 2>/dev/null || { BRANCH_NAME="feat/release-readiness-review-$(date +%Y%m%d-%H%M%S)"; git checkout -b $BRANCH_NAME; }- Apply stashed changes and commit on the review branch (skip this step if working directory was clean — go straight to step 7):
git stash applyBefore staging, check for sensitive files:
git status --short | grep -iE '\.(env|pem|key|p12|pfx|credentials|secret)'If sensitive files are detected, warn the user and ask for confirmation before proceeding. If the user declines, abort:
git checkout $ORIGINAL_BRANCH && git branch -D $BRANCH_NAME && git stash dropOnce confirmed (or no sensitive files found):
git add -A
git commit -m "chore: snapshot for release readiness review"- Push all unpushed commits (requires prior user approval): If the user already approved the push in step 3, proceed directly. Otherwise (e.g., the flow reached here without an explicit approval prompt), confirm before pushing: > "I'm about to push branch
$BRANCH_NAMEtoorigin. This is a prerequisite step, can I proceed?" Do NOT push until the user approves. If they decline, abort and skip to step 11.
Once approved (or if already approved in step 3):
git push -u origin HEAD- Determine the repository identifier and hostname: Run
git remote get-url origin | sed 's|://[^@]*@|://|'to extract theowner/repoand hostname.
- GitHub URLs (github.com or self-hosted) → use
githubPrContent, hostname from URL
More from aws
Use this skill in a project
Open any RiverX project, search the Skills panel for aws/agent-toolkit-for-aws/analyzing-release-readiness, and install it in one click.
