Agent skill

Publish Pull Request for taskctl

by taskctl in taskctl/taskctl

Publishes the current branch and opens or updates a GitHub pull request for the taskctl repo, after a pre-publish gate and with a description template matched to the change.

GPL-3.0Auto-check passedDevelopment

Install Publish Pull Request for taskctl

skills CLI
$ npx skills add taskctl/taskctl --skill publish-pr -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install taskctl/taskctl publish-pr --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/taskctl/taskctl.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/publish-pr .claude/skills/publish-pr && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
publish-pr
GitHub stars
434
Token cost
~979 tokens
SKILL.md length
442 words
Files
1
Skills in repo
2
Repo updated
First seen
Licence
GPL-3.0

At a glance

Publishes the current branch and opens or updates a GitHub pull request for the taskctl repo, after a pre-publish gate and with a description template matched to the change.

  • Works in 8 steps: Pre-publish gate (this repo requires it… → Inspect git state → Commit any uncommitted relevant changes → …
  • Pushing a finished branch in the taskctl repo and opening its pull request
  • SKILL.md covers Steps, Choosing the template, Templates and Writing rules, plus 1 more section
  • Calls git, gh and go

What it does

Before anything is pushed, the agent runs the repo's prepare task (go run . --output json --no-input prepare) and checks that the working tree stays clean, since an unexpected diff means generated or formatted files drifted. It also runs the docs-sync agent so README.md and docs/ reflect the change. It then inspects git status, diff stats and recent history, stages only the relevant files and commits with a conventional prefix such as feat, fix or chore. It does not amend or force-push unless you ask, and it pushes with upstream tracking.

The template comes from conventional-commit prefixes in the log, then from the shape of the diff, and the agent asks you when the signals conflict. Title and body summarize the whole branch against main and the conversation, not just the last commit, and every section except Overview is optional. If a PR already exists for the branch its description is updated, otherwise gh pr create is used with a heredoc body, with the GitHub MCP tool as a fallback. The final step is to return the PR URL.

When your agent uses it

  • Pushing a finished branch in the taskctl repo and opening its pull request
  • Refreshing an existing PR description after more commits land on the branch
  • Making sure formatting, generated files and docs are in sync before a PR

Example prompts

  • “Publish this branch and open a pull request for the new watcher feature.”
  • “Update the existing PR description now that I have added two more commits.”
  • “Push my bug fix and open a PR using the bug fix template.”
  • “Open a PR for this branch, but run the pre-publish checks first.”

Requirements

  • GitHub CLI (gh), or the GitHub MCP tool as a fallback
  • Go, to run the repo's prepare task
  • A taskctl checkout

Workflow steps

8 steps, taken from the first numbered list in SKILL.md.

  1. Pre-publish gate (this repo requires it before every PR)
  2. Inspect git state
  3. Commit any uncommitted relevant changes
  4. Push the current branch with upstream: git push -u origin HEAD. Never force-push unless explicitly requested.
  5. Pick the template from signals (see below).
  6. Compose title and body (see templates and writing rules) from the whole branch diff (main...HEAD) and chat history — summarize all…
  7. Create or update the PR with the GitHub CLI
  8. Return the PR URL.

What it can do on your machine

Read from SKILL.md and the folder at commit e77ca83. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • gh
    • go

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git and gh, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Publish Pull Request for taskctl loads about 979 tokens when it runs. Until then it costs about 25 tokens; SKILL.md has 442 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~25
When it runs · the whole SKILL.md, loaded when a task matches
~979

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from taskctl/taskctl at commit e77ca83, republished under its GPL-3.0 licence (© taskctl). 442 words, ~979 tokens.

Download SKILL.mdSave it as .claude/skills/publish-pr/SKILL.md (or your agent's skills folder).
name
publish-pr
description
Publish the current branch and open (or update) a GitHub pull request for the taskctl repo
disable-model-invocation
true

publish-pr

Publish the current branch and create — or update — a GitHub pull request, using this repo's conventions and PR-description templates.

Steps

  1. Pre-publish gate (this repo requires it before every PR):
    • Run the prepare task and confirm it is clean: go run . --output json --no-input prepare, then check the tree is clean (prepare rewrites formatting/generated files — an unexpected diff means something drifted, fix it before continuing).
    • Run the docs-sync agent so README.md and docs/ reflect the change set.
  2. Inspect git state:
    • git status --short --branch
    • git diff --stat
    • git log --oneline --decorate -10
    • git diff main...HEAD --stat
  3. Commit any uncommitted relevant changes:
    • Stage only the relevant files; write a concise commit matching repo style (conventional prefixes: feat:, fix:, chore:, …).
    • Do not amend unless explicitly requested.
  4. Push the current branch with upstream: git push -u origin HEAD. Never force-push unless explicitly requested.
  5. Pick the template from signals (see below).
  6. Compose title and body (see templates and writing rules) from the whole branch diff (main...HEAD) and chat history — summarize all changes, not just the latest commit.
  7. Create or update the PR with the GitHub CLI:
    • Check whether a PR already exists for the branch (gh pr view --json url,title or gh pr list --head <branch>).
    • If it exists — update the description to reflect the current change set.
    • If not — gh pr create and pass the body via a HEREDOC.
    • If the CLI cannot be used, fall back to the GitHub MCP tool.
  8. Return the PR URL.
Show full SKILL.md (191 more words)Show less

Choosing the template

Detect the change type from signals, in order:

  • Conventional-commit prefixes in git log (fix: → bug fix; feat: → feature).
  • Diff shape: a small targeted change correcting behavior → bug fix; new capability / new files / new commands → feature.

Branch names carry no prefix in this repo (see Default assumptions), so don't rely on them. If the signals conflict or are absent, ask which template to use before writing the body.

Templates

Every section except Overview is optional — include it only when it carries real content. Never add a section just to fill the shape; an empty or padded section is worse than an absent one.

Feature
md
## Overview

- High-level outcome: what this adds and for whom.

## Goal

- Why this work exists; the user or product problem it addresses.

## Decisions

- Key implementation choices and trade-offs; scope boundaries.

## Architecture

- Only when the change introduces or reshapes structure worth explaining (new packages, data flow, extension points). Skip for self-contained features.
Bug fix
md
## Overview

- What was broken and the observable symptom.

## Root cause

- Why it happened — the actual defect, not just the symptom.

## Decisions

- Notable choices in the fix; alternatives considered; scope boundaries.

## Fix

- What changed to resolve it. Skip when the Overview + Root cause already make the fix self-evident.

Writing rules

  • Keep the title concise and outcome-focused; use the matching conventional prefix (feat: …, fix: …).
  • Prefer intent over implementation detail. Do not turn the body into a changelog or restate code changes already visible in the diff.
  • Call out product or architecture decisions when they matter.

Default assumptions

  • Base branch is main.
  • Do not use branch prefixes (feat/, fix/, chore/, …) — use plain branch names (e.g. pipeline-task-variables, not fix/pipeline-task-variables). No GitHub issues keys.
  • Use the GitHub CLI for PR creation; return the PR URL.

© taskctl, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/publish-pr of taskctl/taskctl.

Open the folder on GitHubat commit e77ca83

Compare with similar skills

Publish Pull Request for taskctl next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Publish Pull Request for taskctl compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Publish Pull Request for taskctl this skilltaskctl/taskctl434—~979Automated safety check: PassGPL-3.0
React Router Pull Request Creatorremix-run/react-router57k—~2.5kAutomated safety check: PassMIT
Draft Pull Request Creatorwordpress-mobile/WordPress-Android3.2k—~881Automated safety check: NotesGPL-2.0
Git GitHub Opsc5inco/compose-pokedexer143—~1.3kAutomated safety check: PassMIT
Conventional Gitblackfyre/wga194—~843Automated safety check: PassApache-2.0
Pull Request Creationlobehub/lobehub83k—~3.2kAutomated safety check: PassCustom licence

Similar skills

  • React Router Pull Request Creator

    remix-run/react-router

    Packages finished React Router work into a draft pull request: branch, commit, push, a written PR body and the right GitHub labels.

    57k GitHub stars~2.5k tokensUpdated today
    DevelopmentAuto-check passed
  • Draft Pull Request Creator

    wordpress-mobile/WordPress-Android

    Commits and pushes current changes, writes a pull request title and body from the branch history and template, and opens a draft PR on GitHub after you approve it.

    3.2k GitHub stars~881 tokensUpdated today
    DevelopmentAuto-check: notes
  • Git GitHub Ops

    c5inco/compose-pokedexer

    Handles Pokedexer Git and GitHub workflows: inspect changes, prepare commit messages, manage branches and pushes, and create or update issues and pull requests with safe file-based inputs.

    143 GitHub stars~1.3k tokensUpdated 4 days ago
    DevelopmentAuto-check passed
  • Conventional Git

    blackfyre/wga

    Creates Conventional Commit messages and matching pull-request titles and branch names.

    194 GitHub stars~843 tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • Pull Request Creation

    lobehub/lobehub

    Creates a pull request for the current branch against canary, or splits a cross-layer branch into ordered stacked PRs so backend changes merge before their callers.

    83k GitHub stars~3.2k tokensUpdated today
    DevelopmentAuto-check passed
  • GitHub PR Workflow

    RedWoodOG/Hermes-Desktop

    Full pull request lifecycle — create branches, commit changes, open PRs, monitor CI status, auto-fix failures, and merge.

    177 GitHub starsUsed in 5 repos~2.5k tokens
    DevelopmentAuto-check: notes

More from taskctl/taskctl

  • Discovers, inspects, and runs taskctl tasks and pipelines through its JSON CLI output instead of parsing tasks.yaml directly.

    434 GitHub stars~599 tokensUpdated 2 mo ago
    Auto-check passed

Works with

Categories

Questions about Publish Pull Request for taskctl

What does Publish Pull Request for taskctl do?

Publishes the current branch and opens or updates a GitHub pull request for the taskctl repo, after a pre-publish gate and with a description template matched to the change. Before anything is pushed, the agent runs the repo's prepare task (go run . --output json --no-input prepare) and checks that the working tree stays clean, since an unexpected diff means generated or formatted files drifted.

When should I use Publish Pull Request for taskctl?

Publish Pull Request for taskctl fits situations like: pushing a finished branch in the taskctl repo and opening its pull request; refreshing an existing PR description after more commits land on the branch; making sure formatting, generated files and docs are in sync before a PR.

How do I install Publish Pull Request for taskctl in Claude Code?

Run `npx skills add taskctl/taskctl --skill publish-pr -a claude-code`. Or copy the skill folder (.claude/skills/publish-pr in taskctl/taskctl) into .claude/skills/publish-pr in your project. Claude Code loads it when a task matches its description.

How do I install Publish Pull Request for taskctl in Codex?

Run `npx skills add taskctl/taskctl --skill publish-pr -a codex`. Or copy the skill folder (.claude/skills/publish-pr in taskctl/taskctl) into .agents/skills/publish-pr in your project. Codex loads it when a task matches its description.

Can I use Publish Pull Request for taskctl in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add taskctl/taskctl --skill publish-pr -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/publish-pr, .gemini/skills/publish-pr, .github/skills/publish-pr and .opencode/skills/publish-pr in your project.

What does Publish Pull Request for taskctl need to run?

Going by SKILL.md and its folder, Publish Pull Request for taskctl needs the command-line tools its instructions call (git, gh and go). Our summary lists: GitHub CLI (gh), or the GitHub MCP tool as a fallback; Go, to run the repo's prepare task; A taskctl checkout.

Does Publish Pull Request for taskctl access the network?

SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Publish Pull Request for taskctl safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Publish Pull Request for taskctl use?

Publish Pull Request for taskctl is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Publish Pull Request for taskctl use?

About 979 tokens (SKILL.md is roughly 3.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Publish Pull Request for taskctl?

Skills that share tags, products or a category with Publish Pull Request for taskctl: React Router Pull Request Creator (remix-run/react-router, 57k stars), Draft Pull Request Creator (wordpress-mobile/WordPress-Android, 3.2k stars), Git GitHub Ops (c5inco/compose-pokedexer, 143 stars) and Conventional Git (blackfyre/wga, 194 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Publish Pull Request for taskctl?

taskctl (a GitHub organization) maintains it in taskctl/taskctl, which has 434 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on July 20, 2026.

Source: taskctl/taskctl on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.