skills/pr-create/SKILL.md
Generate a PR description and create a GitHub pull request. Invoke when user explicitly asks to create a pull request, says "create a PR", "submit a PR", "open a pull request", or uses /pr-create. Requires user confirmation before creating the PR (irreversible GitHub action). Supports ticket numbers and --concise mode.
npx skillsauth add kanopi/cms-cultivator pr-createInstall 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.
Generate a comprehensive PR description and create a GitHub pull request. The main session runs this skill directly — no orchestrator agent is involved.
This skill creates a GitHub pull request — a publicly visible, permanent action that:
Confirmation required before any of these actions are taken. Present the complete PR description for the user's review and wait for explicit approval before running gh pr create.
/pr-create [ticket-number] [--concise]gh) installed and authenticatedPROJ-123) in the arguments, current branch name, or recent commit messages.--concise flag in the arguments. Concise mode produces shorter descriptions and skips non-critical quality checks.Run in parallel:
git status — confirm working tree is clean (or staged changes are intended for the PR)git branch --show-current — confirm we're not on main/mastergh auth status — confirm GitHub CLI is authenticatedgit remote -v — confirm the repo has a remoteIf on main/master, stop and tell the user to switch to a feature branch first. If gh isn't authenticated, suggest gh auth login and provide manual instructions instead.
Run in parallel:
git log --oneline <base>..HEAD — full commit history on this branchgit diff <base>...HEAD — full diffgit diff --stat <base>...HEAD — files changed summaryWhere <base> is typically main or 1.x (whichever the repo uses as the default branch — check with gh repo view --json defaultBranchRef --jq .defaultBranchRef.name).
Scan the diff for platform-specific changes:
Drupal indicators:
config/sync/ → flag config import neededhook_update_N definitions in .module or .install → flag database update*.info.yml or composer.jsonWordPress indicators:
acf-json/ → flag field re-syncregister_post_type, register_taxonomy, or rewrite rule changes → flag permalink flushblock.json, src/blocks/) → flag editor cacheUse Read, Grep, and Bash directly — no Task() spawns required:
eval, unserialize, missing nonce/CSRF checks (WP wp_verify_nonce, Drupal Form API), unescaped output (echo $user_input, missing esc_html/esc_attr/Html::escape).alt=, missing aria-label on icon buttons, color-only state indicators, missing form labels.Note findings briefly in the PR description's relevant sections. Do not block PR creation on findings — surface them so the reviewer can decide.
Use the template below. Adjust verbosity for --concise mode.
## Description
Teamwork Ticket(s): [PROJ-123](https://kanopi.teamwork.com/app/tasks/123)
- [ ] Was AI used in this pull request?
> As a [role], I need to [action] so that [benefit].
[Summary of changes in 2–4 sentences. What changed and why.]
## Acceptance Criteria
* [Specific, testable criteria]
* [One bullet per criterion]
## Assumptions
* [Anything reviewers/PMs should know — known issues, scope decisions]
## Steps to Validate
1. [Explicit testing instructions with URLs where applicable]
2. [Cover the happy path and at least one edge case]
## Affected URL
[Multidev or staging URL]
## Deploy Notes
[Config imports, cache clearing, database updates, plugin activations, permalink flushes — anything required for deployment]
In concise mode:
Your response must start immediately with the approval header. No preamble, no summary, no "I've analyzed your changes" — start with the header.
=== PULL REQUEST READY FOR APPROVAL ===
**Title:** <conventional commit style PR title>
**Description:**
<full PR description with all sections>
===================================
Reply "approve" to create this PR, or provide your edits.
⛔ Do not run gh pr create until the user replies "approve" or provides edits.
gh pr create --base <default-branch> --head <current-branch> --title "<title>" --body "$(cat <<'EOF'
<approved description>
EOF
)"
Return the PR URL to the user. Suggest next steps (e.g., assigning reviewers, running /pr-release later for the release).
gh CLI / no Task tool)If gh is unavailable (Claude Desktop, Codex without gh, restricted environment):
gh pr create command for the user to run manually, with the body pre-formatted in a heredoc they can paste.Use conventional commit style: <type>(<scope>): <description>
feat(auth): add two-factor authenticationfix(checkout): resolve cart total calculationrefactor(api): consolidate response handlerschore(deps): update React to 18.3Drupal:
drush config:import after deploydrush updatedbdrush cache:rebuildWordPress:
acf-json/tools
Strategist-focused site audit for discovery and pre-discovery. Given a site URL and optional qualitative research data, navigates the site via CoWork, audits against all 21 UX Laws from lawsofux.com, reviews content hierarchy, synthesises qualitative data, runs Lighthouse, and produces two deliverables — a Project Knowledge Summary (Markdown for Claude Desktop Projects) and a polished, iterable HTML Artifact for client sharing. Use when a strategist, UX lead, or PM asks for a discovery audit, UX laws audit, content hierarchy review, pre-discovery site review, "audit this site for strategy", "strategist audit", "UX audit", or pastes a site URL with discovery context. Not for developer audits — use accessibility-audit, performance-audit, or live-site-audit for those.
development
Provide story point estimation guidance with hour calculations for software development tasks. Uses Fibonacci sequence (1, 2, 3, 5, 8, 13, 21, 34+) and converts story points to hours. Includes platform-specific adjustments and velocity calculations.
tools
Perform a full QA review of a Teamwork task by reading the task and all its comments for context, extracting the multi-dev URL, generating dynamic validation steps tailored to the task type, and using CoWork browser automation to execute those steps on the multi-dev environment. Produces a structured validation report with pass/fail per step, screenshots, internal notes, and a client-facing summary — all shown in chat. Use this skill whenever the user asks to QA, test, validate, or review a Teamwork task or multi-dev environment — even if they just say "can you QA this?" or paste a Teamwork link. Also triggers for phrases like "run QA on", "check the multi-dev", "validate this task", "test the dev link", or "review the ticket". Works across Drupal/CMS updates, WordPress/plugin updates, bug fixes, new feature development, and general web development tasks.
tools
Generate a client-facing project heartbeat / status update message for a Kanopi project, ready to be posted as a Teamwork message. Use this skill whenever the user asks to write, draft, generate, or send a project update, heartbeat, status update, or progress report to a client. Also triggers when the user says things like "time for a project update", "draft the heartbeat", "write up the update for [project]", or "it's been two weeks, let's send an update". Always use this skill — even if the user doesn't say "heartbeat" — whenever the intent is to summarise recent project activity for a client audience.