npx claudepluginhub withmartian-sandbox-darkside/ghrc-y-73d04e3c2aae45e2ac89d7e8506d8eaaThis skill uses the workspace's default tool permissions.
<objective>
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Purpose: Confirm what Claude built actually works from user's perspective. One test at a time, plain text responses, no interrogation. When issues are found, automatically diagnose, plan fixes, and prepare for execution.
Output: {phase}-UAT.md tracking all test results. If issues found: diagnosed gaps, verified fix plans ready for /kata-execute-phase
<execution_context> @./references/verify-work.md </execution_context>
Phase: $ARGUMENTS (optional) - If provided: Test specific phase (e.g., "4") - If not provided: Check for active sessions or prompt for phase@.planning/STATE.md @.planning/ROADMAP.md
<pre_flight> Run validation checks before starting verification:
# Validate config and template overrides
node scripts/kata-lib.cjs check-config 2>/dev/null || true
node scripts/kata-lib.cjs check-template-drift 2>/dev/null || true
If warnings are printed, relay them to the user before proceeding with verification. </pre_flight>
UAT_TEMPLATE_PATH=$(node scripts/kata-lib.cjs resolve-template "UAT-template.md")
UAT_TEMPLATE_CONTENT=$(cat "$UAT_TEMPLATE_PATH")
Use UAT_TEMPLATE_CONTENT as the format specification when creating or updating UAT.md files.
/clear then /kata-execute-phase
<step_7_5_pr_workflow>
Read pr_workflow config:
PR_WORKFLOW=$(node scripts/kata-lib.cjs read-config "pr_workflow" "false")
WORKTREE_ENABLED=$(node scripts/kata-lib.cjs read-config "worktree.enabled" "false")
If PR_WORKFLOW=false: Skip to offer_next.
If PR_WORKFLOW=true:
Check for uncommitted changes:
git status --porcelain
If changes exist, stage and commit them:
git add -u
git commit -m "fix({phase}): UAT fixes"
Push to branch:
BRANCH=$(git branch --show-current)
git push origin "$BRANCH"
Check if PR exists:
PR_NUMBER=$(gh pr list --head "$BRANCH" --json number --jq '.[0].number' 2>/dev/null)
If PR exists, mark ready (if still draft):
gh pr ready "$PR_NUMBER" 2>/dev/null || true
PR_URL=$(gh pr view --json url --jq '.url')
Store PR_NUMBER and PR_URL for offer_next. </step_7_5_pr_workflow>
<step_7_6_pr_review>
After marking PR ready, offer to run automated review:
Use AskUserQuestion:
If user chooses review:
Skill("kata-review-pull-requests", "<aspect>")If user chooses "Skip": Continue to offer_next without review. </step_7_6_pr_review>
<step_7_7_handle_findings>
STOP here. Do not proceed to offer_next until user chooses an action.
Use AskUserQuestion with options based on what was found:
After user chooses:
Path A: "Fix critical issues"
Path B: "Fix critical & important"
Path C: "Fix all issues"
Path D: "Add to backlog"
/kata-add-issuePath E: "Ignore and continue"
Store REVIEW_SUMMARY and TODOS_CREATED for offer_next output. </step_7_7_handle_findings>
<anti_patterns>
<offer_next> Output this markdown directly (not as a code block). Route based on UAT results:
| Status | Route |
|---|---|
| All tests pass + more phases | Route A (next phase) |
| All tests pass + last phase | Route B (milestone complete) |
| Issues found + fix plans ready | Route C (execute fixes) |
| Issues found + planning blocked | Route D (manual intervention) |
Route A: All tests pass, more phases remain
Step 1: If PR_WORKFLOW=true, STOP and ask about merge BEFORE showing completion output.
Use AskUserQuestion:
Step 2: Handle merge response (if PR_WORKFLOW=true)
If user chose "Yes, merge now":
gh pr merge "$PR_NUMBER" --merge
Then update local state:
if [ "$WORKTREE_ENABLED" = "true" ]; then
# Bare repo layout: update main/ worktree, reset workspace/ to workspace-base
git -C main pull
bash "scripts/manage-worktree.sh" cleanup-phase workspace "$PHASE_BRANCH"
else
git checkout main && git pull
fi
Set MERGED=true for output below.
Step 3: Show completion output
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Kata ► PHASE {Z} VERIFIED ✓ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Phase {Z}: {Name}
{N}/{N} tests passed UAT complete ✓ {If PR_WORKFLOW and MERGED: PR: #{pr_number} — merged ✓} {If PR_WORKFLOW and not MERGED: PR: #{pr_number} ({pr_url}) — ready for review} {If REVIEW_SUMMARY: PR Review: {summary_stats}} {If TODOS_CREATED: Backlog: {N} issues created from review suggestions}
───────────────────────────────────────────────────────────────
Phase {Z+1}: {Name} — {Goal from ROADMAP.md}
/kata-plan-phase {Z+1} — plan next phase
/clear first → fresh context window
───────────────────────────────────────────────────────────────
Also available:
gh pr view --web — review PR in browser before next phase}───────────────────────────────────────────────────────────────
Route B: All tests pass, milestone complete
Step 1: If PR_WORKFLOW=true, STOP and ask about merge BEFORE showing completion output.
Use AskUserQuestion:
Step 2: Handle merge response (if PR_WORKFLOW=true)
If user chose "Yes, merge now":
gh pr merge "$PR_NUMBER" --merge
Then update local state:
if [ "$WORKTREE_ENABLED" = "true" ]; then
# Bare repo layout: update main/ worktree, reset workspace/ to workspace-base
git -C main pull
bash "scripts/manage-worktree.sh" cleanup-phase workspace "$PHASE_BRANCH"
else
git checkout main && git pull
fi
Set MERGED=true for output below.
Step 3: Show completion output
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Kata ► PHASE {Z} VERIFIED ✓ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Phase {Z}: {Name}
{N}/{N} tests passed Final phase verified ✓ {If PR_WORKFLOW and MERGED: PR: #{pr_number} — merged ✓} {If PR_WORKFLOW and not MERGED: PR: #{pr_number} ({pr_url}) — ready for review} {If REVIEW_SUMMARY: PR Review: {summary_stats}} {If TODOS_CREATED: Backlog: {N} issues created from review suggestions}
───────────────────────────────────────────────────────────────
Audit milestone — verify requirements, cross-phase integration, E2E flows
/kata-audit-milestone
/clear first → fresh context window
───────────────────────────────────────────────────────────────
Also available:
gh pr view --web — review PR in browser before audit}───────────────────────────────────────────────────────────────
Route C: Issues found, fix plans ready
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Kata ► PHASE {Z} ISSUES FOUND ⚠ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Phase {Z}: {Name}
{N}/{M} tests passed {X} issues diagnosed Fix plans verified ✓
{List issues with severity from UAT.md}
───────────────────────────────────────────────────────────────
Execute fix plans — run diagnosed fixes
/kata-execute-phase {Z} --gaps-only
/clear first → fresh context window
───────────────────────────────────────────────────────────────
Also available:
───────────────────────────────────────────────────────────────
Route D: Issues found, planning blocked
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Kata ► PHASE {Z} BLOCKED ✗ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Phase {Z}: {Name}
{N}/{M} tests passed Fix planning blocked after {X} iterations
{List blocking issues from planner/checker output}
───────────────────────────────────────────────────────────────
Manual intervention required
Review the issues above and either:
───────────────────────────────────────────────────────────────
Options:
─────────────────────────────────────────────────────────────── </offer_next>
<success_criteria>
/kata-execute-phase when complete
</success_criteria>