create-pr

Platform-aware: This skill adapts to GitHub, Forgejo, or local tk workflows. See skills/obsidian-plan-wiki/references/platform-detection.md for detection rules. For local tk, this skill becomes "prepare for merge" — no remote PR needed.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "create-pr" with this command: npx skills add cygnusfear/agent-skills/cygnusfear-agent-skills-create-pr

Create a PR / MR

Platform-aware: This skill adapts to GitHub, Forgejo, or local tk workflows. See skills/obsidian-plan-wiki/references/platform-detection.md for detection rules. For local tk, this skill becomes "prepare for merge" — no remote PR needed.

⚠️ MANDATORY: Issue Linking

Every PR/MR MUST link to related issues and use closing keywords.

  • PRs/MRs without issue links are incomplete

  • GitHub / Forgejo: Use Closes #X or Fixes #X to auto-close issues on merge

  • Local tk: Use tk dep / tk link to connect tickets

  • Reference ALL related issues, even if not closing them

Instructions

Step 1: Identify Related Issues

Find ALL issues this PR/MR addresses:

  • Issues explicitly being fixed

  • Issues partially addressed

  • Related issues for context

GitHub:

git branch --show-current gh issue list --search "relevant keywords" gh issue view <number>

Forgejo:

git branch --show-current

Use tea CLI or Forgejo API

tea issue list tea issue view <number>

Local tk:

git branch --show-current tk ls tk show <id>

Step 2: Gather Context

See what changed (platform-agnostic)

git log main..HEAD --oneline git diff main..HEAD --stat

Get commit messages for context

git log main..HEAD --format="%s%n%b"

Step 3: Create PR/MR with Issue Links

Use the writing-clearly-and-concisely skill for clear writing, then follow pr_guide.

IMPORTANT: Do NOT include "Generated with Claude Code" (or any AI tool) or similar tool attribution footers in PR/MR descriptions.

GitHub:

gh pr create --title "[type]: [emoji] [description]" --body "$(cat <<'EOF' [Two-sentence summary of what and why]

Key Changes

  • [Change 1]
  • [Change 2]

Related Issues

Closes:

  • Closes #X - [brief description of what's fixed]
  • Closes #Y - [brief description]

Related (not closing):

  • Related to #Z - [why related]
  • See also #W - [context]

Testing

  • [How it was tested]

Files Changed

  • [List key files] EOF )"

Forgejo:

Use tea CLI or Forgejo API

tea pr create --title "[type]: [emoji] [description]" --description "..."

Body format identical to GitHub — Forgejo recognizes the same closing keywords

Local tk:

No remote PR needed — link tickets and prepare for local merge

tk link <task-id> <related-id> tk dep <child-id> <parent-id> tk add-note <task-id> "Ready to merge. Key changes: [summary]"

Issue Linking Keywords

GitHub and Forgejo recognize these keywords to auto-close issues on merge:

Keyword Example Effect

Closes

Closes #123

Closes issue when PR/MR merges

Fixes

Fixes #123

Closes issue when PR/MR merges

Resolves

Resolves #123

Closes issue when PR/MR merges

Use format: Closes #X - brief description

Local tk: Use tk dep <child> <parent> or tk link <a> <b> to connect tickets instead.

Step 4: Verify Issue Links

After creating PR/MR:

GitHub:

gh pr view <number> --json closingIssuesReferences gh issue view <number>

Forgejo:

Check PR body for Closes #X keywords

tea pr view <number>

Local tk:

Verify ticket links/deps

tk show <id>

PR/MR Description Template

[Two-sentence summary: what changed and why it was needed]

Key Changes

  • [Most important change]
  • [Second important change]
  • [Third important change]

Related Issues

Closes:

  • Closes #X - [what requirement this addresses]
  • Fixes #Y - [what bug this fixes]

Related:

  • Related to #Z - [provides context but doesn't close]

Testing

  • [Manual testing performed]
  • [Automated tests added/passing]

Architectural Impact

[If significant: explain system-wide effects]

Files Changed

  • path/to/file1.ts - [what changed]
  • path/to/file2.ts - [what changed]

Local tk note: When working locally, include this summary as a tk add-note on the task ticket instead of a PR body.

Anti-Patterns

❌ WRONG (any platform): Creating a PR/MR with no description: --body "Fixed the thing"

❌ WRONG: "Related: #123" (no closing keyword, issue won't close)

❌ WRONG: No mention of any issues at all

✅ CORRECT (GitHub): gh pr create --title "fix: 🔧 Resolve auth token expiration" --body " Fixes session timeout by implementing token refresh.

Related Issues

  • Closes #123 - Auth token expires incorrectly
  • Closes #124 - Users logged out unexpectedly
  • Related to #100 - Auth system overhaul (partial) "

✅ CORRECT (Forgejo): tea pr create --title "fix: 🔧 Resolve auth token expiration" --description "..."

Same body format — Forgejo uses same closing keywords

✅ CORRECT (Local tk): tk add-note <task-id> "Ready to merge: fixes auth token expiration" tk link <task-id> <related-id>

Mermaid Diagrams in PRs/MRs

Use Mermaid diagrams to visualize changes, flows, and architectural impacts.

GitHub and Forgejo render Mermaid natively. Include diagrams when:

  • Showing before/after state changes

  • Illustrating new data flows

  • Explaining component interactions

  • Depicting architectural changes

Local tk: Skip Mermaid diagrams — ticket notes are plain text.

When to Include Diagrams

PR/MR Type Diagram Use

Bug fix Before/after flow showing fix

New feature User journey or data flow

Refactor Component dependency changes

API changes Request/response sequence

Example: PR/MR with Diagram

Key Changes

Added token refresh flow when session expires.

New Authentication Flow

sequenceDiagram
    participant C as Client
    participant A as Auth Service
    participant D as Database

    C->>A: Request with expired token
    A-->>C: 401 Token Expired
    C->>A: POST /refresh with refresh_token
    A->>D: Validate refresh token
    D-->>A: Token valid
    A-->>C: New access token
    C->>A: Retry original request
    A-->>C: 200 Success

Related Issues

  • Closes #123 - Token expiration handling

Diagram Types for PRs/MRs

Flow changes: flowchart

API interactions: sequenceDiagram

State machines: stateDiagram-v2

Data models: erDiagram

Tips:

  • Keep diagrams focused (5-10 nodes)

  • Show the change, not entire system

  • Before/after pairs are powerful

  • Embed in PR/MR body, not as links

Quick Reference

GitHub

  • Find issues: gh issue list --search "keywords"

  • Create PR: gh pr create --title "..." --body "..."

  • Link issues: Closes #X , Fixes #X in body

  • Verify: gh pr view --json closingIssuesReferences

Forgejo

  • Find issues: tea issue list or Forgejo API

  • Create MR: tea pr create --title "..." --description "..."

  • Link issues: Closes #X , Fixes #X in body

  • Verify: tea pr view <N> — check body for keywords

Local tk

  • Find tasks: tk ls

  • No PR needed: prepare for local merge

  • Link tasks: tk dep <child> <parent> / tk link <a> <b>

  • Note summary: tk add-note <id> "Ready to merge: [summary]"

All platforms: Add Mermaid diagrams for complex changes (GitHub/Forgejo only)

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

4-step-program

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

chrome-devtools

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

finishing-a-development-branch

No summary provided by upstream source.

Repository SourceNeeds Review