kramme-cc-workflow/skills/kramme:pr:product-review/SKILL.md
Deep product review of branch and local changes. Evaluates user-value alignment, flow completeness, missing states, copy/defaults, permission behavior, adjacent-flow regressions, and prioritization quality. Infers likely user goals and non-goals when rationale is missing. Not for UX heuristics, accessibility, or visual consistency -- use pr:ux-review for those. Supports inline report output with --inline.
npx skillsauth add abildtoft/kramme-cc-workflow kramme:pr:product-reviewInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Deep product review of branch changes and local work. Evaluates user-value alignment, flow completeness, missing states, copy/defaults, permission behavior, and adjacent-flow regressions.
Arguments: "$ARGUMENTS"
--base <branch> flag provided, store as explicit base branch override--threshold N flag provided, store as custom_threshold (0-100). Only findings with confidence >= N will be reported. Default: 70--inline flag provided, set INLINE_MODE=trueBefore launching agents:
AGENTS.md, CLAUDE.md, .github/copilot-instructions.md, markdown instruction files in repo-root .claude/, or equivalents).Determine the correct base branch using a 3-tier strategy:
Tier 1: Explicit override If --base <branch> was provided in Step 1, use that value directly as BASE_BRANCH. Skip Tier 2 and 3.
Tier 2: PR target branch detection
BASE_BRANCH=$(gh pr view --json baseRefName --jq '.baseRefName' 2> /dev/null)
Tier 3: Fallback
BASE_BRANCH=$(git symbolic-ref refs/remotes/origin/HEAD 2> /dev/null | sed 's@^refs/remotes/origin/@@')
[ -z "$BASE_BRANCH" ] && BASE_BRANCH=$(git branch -r | grep -E 'origin/(main|master)$' | head -1 | sed 's@.*origin/@@')
Normalize before using origin/$BASE_BRANCH (handles values like origin/develop and refs/heads/develop):
BASE_BRANCH=${BASE_BRANCH#refs/heads/}
BASE_BRANCH=${BASE_BRANCH#refs/remotes/origin/}
BASE_BRANCH=${BASE_BRANCH#origin/}
if [ -z "$BASE_BRANCH" ]; then
echo "Error: Could not determine base branch. Re-run with --base <branch>." >&2
exit 1
fi
if ! git check-ref-format --branch "$BASE_BRANCH" > /dev/null 2>&1; then
echo "Error: Base branch '$BASE_BRANCH' is not a valid branch name. Re-run with --base <branch>." >&2
exit 1
fi
if ! git fetch origin "refs/heads/${BASE_BRANCH}:refs/remotes/origin/${BASE_BRANCH}" 2> /dev/null; then
echo "Error: Failed to fetch origin/$BASE_BRANCH. Check remote access and re-run with --base <branch>." >&2
exit 1
fi
if ! git rev-parse --verify --quiet "origin/$BASE_BRANCH" > /dev/null; then
echo "Error: Base branch 'origin/$BASE_BRANCH' not found. Re-run with --base <branch>." >&2
exit 1
fi
Then identify changed files from all four sources:
BASE_REF=$(git merge-base origin/$BASE_BRANCH HEAD)
{
git diff --name-only "$BASE_REF"...HEAD # committed PR diff
git diff --name-only --cached # staged local changes
git diff --name-only # unstaged local changes
git ls-files --others --exclude-standard # untracked local files
} | sed '/^$/d' | sort -u
# All changed files are relevant for product review -- no file-type filtering.
After identifying the changed files, discover any additional nested instruction files that apply to those files (for example AGENTS.md, CLAUDE.md, .github/copilot-instructions.md, markdown instruction files in a nearby .claude/ directory, or tool-specific equivalents) and merge those constraints into the conventions from Step 2 before launching the reviewer agent.
If no changed files at all:
No changes detected in this branch or local working tree.
Nothing to review.
Action: Stop.
If PRODUCT_REVIEW_OVERVIEW.md exists in the project root:
Previously addressed findings have the format:
path/to/file.ts:123If the file exists but contains no parseable entries in this format (e.g., it was hand-edited, partially written, or follows an older schema), skip the previously-addressed filtering in Step 7 and continue with all findings active. Do not stop the workflow.
Launch kramme:product-reviewer via the Task tool with:
BASE_BRANCH from Step 3git diff $(git merge-base origin/$BASE_BRANCH HEAD)...HEADgit diff --cachedgit diffgit ls-files --others --exclude-standard (agent should treat these as new files and review full file content)custom_threshold if provided in Step 1, otherwise pass 70 (e.g., "Only report findings with confidence >= {threshold}"). Do not rely on the agent's internal default.After collecting findings from the product reviewer:
BASE_BRANCHAgent failure handling. If the product reviewer or relevance validator is unavailable, times out, or returns output that cannot be parsed as findings, surface the failure to the user with the agent name and what was attempted, then stop without writing PRODUCT_REVIEW_OVERVIEW.md. Do not fabricate findings or silently continue with an empty result.
If PRODUCT_REVIEW_OVERVIEW.md was found in Step 4:
After validation and filtering, organize findings into severity tiers:
If INLINE_MODE=true:
assets/product-review-report-format.mdPRODUCT_REVIEW_OVERVIEW.mdOtherwise:
PRODUCT_REVIEW_OVERVIEW.md in the project root using the report format from assets/product-review-report-format.md/kramme:workflow-artifacts:cleanupPRODUCT_REVIEW_OVERVIEW.md is not already listed in .gitignore (or any .gitignore in a parent directory), append the entry and mention the addition to the user. This prevents accidental commits of the working artifact.Emit the terminal output below. When there are Critical or Important findings, the embedded resolve commands serve as the action plan; when there are none, omit the "To resolve findings" block.
# Product Review Complete
## Relevance Filter
- X findings validated as in-scope
- X findings filtered (pre-existing or out-of-scope)
- X findings filtered (previously addressed)
## Results
- Critical: X
- Important: X
- Suggestions: X
- Open Questions: X
Report output: {inline reply | PRODUCT_REVIEW_OVERVIEW.md}
To resolve findings:
- If file output was used: `/kramme:pr:resolve-review --local`
- If inline output was used: `/kramme:pr:resolve-review <paste inline report>`
/kramme:pr:product-review
/kramme:pr:product-review --base develop
/kramme:pr:product-review --threshold 85
/kramme:pr:product-review --inline
development
One-way migration of a local SIW project into Linear. Creates one Linear project, migrates the main spec and supporting specs as Linear Documents, creates milestones from SIW phases and issues from SIW issues, then prompts to retire the local siw/ files via /kramme:siw:remove. Linear becomes the source of truth; this is not a two-way sync and keeps no rerun mapping, so re-running can duplicate issues. Use when moving a planned SIW initiative into Linear for good. Not for implementing issues, defining new SIW issues, or generating an issue breakdown.
development
Compare an existing PR's title and body against the actual branch diff and report drift — false claims, missing major changes, stale scope, missing risk callouts. Use after pushing changes to a branch with an open PR, or before requesting review. Read-only by default; add --fix to delegate to kramme:pr:generate-description for an updated description. Complements kramme:pr:code-review (which checks description accuracy as one signal among many code-quality checks) by being a fast, focused, single-purpose check that runs in seconds.
tools
Reviews plugin skills for focused scope, progressive disclosure, portability, safety, retry behavior, and documentation quality. Use when auditing a SKILL.md, skill directory, or proposed skill text against skill-authoring standards. Not for creating new skills, editing skills, or reviewing ordinary application code.
tools
Reviews recent agent session transcripts to find repeated manual workflows or repeated user asks, then proposes and optionally scaffolds only useful new skills or custom subagents. Use when the user asks to inspect recent sessions, find automation opportunities, or create reusable workflows from repeated work. Not for summarizing one session, general retrospectives, or codebase refactoring.