CtrlK
BlogDocsLog inGet started
Tessl Logo

create-pr

Generates a short, narrative GitHub pull request description (≤ 25 lines, hard ceiling 40), pushes the branch, opens the PR as a draft, then runs review-loop (pr-reviewer → implement-suggestion → polish simplify, up to 5 iterations) until every review thread is resolved via fix or reply. Scale down with --no-review, --no-simplify, --quick (light mechanical pass only), or --no-quality (skip the loop). On a UI diff, injects a preview verification spec by default (--no-ui-verify to skip). Before the push, converges the branch by default with review-branch, which needs no PR, so the draft opens already review-clean (--no-pre-review to skip). With --split, breaks the branch diff into 2–4 focused, dependency-ordered draft PRs after user approval. Hands red CI to ci-auto-fix, which fixes or escalates. Invoke with /create-pr or /create-pr --split.

60

Quality

75%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./skills/delivery/create-pr/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

66%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The workflow engineering is excellent — unambiguous sequencing, explicit validation checkpoints, bounded retries, and hard safety rules with wrong/right examples. However, the skill leans on five rule files that are missing from the bundle (making its core authoring and split procedures unresolvable), and the body carries notable padding from version-history rationale and rules restated across multiple steps.

Suggestions

Ship the referenced rule files (description-contract.md, split-mode.md, pre-push-review.md, registration-poll.md, description-examples.md) in the bundle, or inline their load-bearing content — as it stands, Steps 1–5 and Split Mode point at content that does not exist.

Move version-history prose (the v3.5 background-watch removal rationale, legacy flag aliases like --no-preview-spec and --no-feedback) into a single short 'Deprecated / legacy' section so the main flow reads as current behavior only.

State each 'record the outcome now' / 'never soften a failure into a skip' rule once (near the report template in Step 10) instead of repeating it across Steps 5.5, 6.4, and 6.5.

DimensionReasoningScore

Conciseness

The body is mostly operational rather than tutorial-like, but several sections are padded with design history and restated rules: the removed v3.5 background-watch rationale ("It was removed because every job it did is already done…"), the legacy-flag paragraph ("--no-preview-spec is the pre-rename spelling, still honoured so existing scripts and muscle memory keep working"), and the same 'record it now, never soften a skip into a decline' rule repeated across Steps 5.5, 6.4, and 10. This fits anchor 3 — mostly efficient but includes unnecessary explanation that could be tightened — rather than 2, since the padding is project-specific rationale, not explanation of concepts Claude already knows.

3 / 5

Actionability

Mostly executable, copy-paste-ready guidance: `git push`, `gh pr create --draft --title … --body …`, `timeout 540 gh pr checks <pr-number> --watch`, exact `Skill("review-loop", "<pr-url> --no-ci")` invocations, a first-match-wins flag→invocation table, and a full report template. It stops short of anchor 5 because the skill's core task — writing the description (Steps 1–5) — is delegated wholesale to `rules/description-contract.md`, which is not present in the bundle, so the central authoring guidance is not actually executable from what ships here.

4 / 5

Workflow Clarity

The multi-step process is clearly sequenced (Steps 0 → 10 with explicit sub-steps) and saturated with validation checkpoints and feedback loops: CI watch with exit-code classification (0 / 124 / 127 / other), bounded retries ("up to 4 attempts total … After the fourth … escalate — never watch again"), ci-auto-fix capped at 2 invocations with print-as-you-go counters, pre-push flagged-findings surfacing, and a mandatory report with slots for every outcome. This matches anchor 5's explicit validation steps, error-recovery loops, and checklists.

5 / 5

Progressive Disclosure

The body is well-signaled — "Full procedure lives in [`rules/split-mode.md`](./rules/split-mode.md)", "**→ [`rules/registration-poll.md`](./rules/registration-poll.md)**" — but none of the referenced files exist in the bundle: there is no rules/, references/, scripts/, or assets/ directory, so the description contract, split-mode procedure, pre-push review rules, registration poll, and all four examples are unreachable. Scored against the actual bundle structure, this is anchor 2's minimal effective structure: the split-out content is not inlined and the references do not resolve, rather than anchor 3, where references are present but merely poorly signaled.

2 / 5

Total

14

/

20

Passed

Description

75%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

The description is exceptionally specific and distinctive, laying out the entire pipeline with concrete sub-skills, iteration caps, and flag semantics. Its weaknesses are the absence of an explicit 'Use when...' trigger clause — invocation is named but no usage condition is given — and keyword coverage that leans on internal skill/flag names over natural user phrasing.

Suggestions

Add an explicit trigger clause, e.g. "Use when the user wants to open a pull request from the current branch, or asks to split a large branch into reviewable PRs."

Include a few natural user phrasings ("open a PR", "create a pull request", "get this ready for review") alongside the internal skill names so model-side triggering matches how users actually ask.

Trim the flag-by-flag scaling detail (--no-review/--no-simplify/--quick/--no-quality) from the description — it is re-explained fully in the body — in favor of one summarizing sentence, freeing room for the trigger clause.

DimensionReasoningScore

Specificity

The description enumerates concrete, comprehensive actions across the whole workflow: "pushes the branch, opens the PR as a draft", "runs review-loop (pr-reviewer → implement-suggestion → polish simplify, up to 5 iterations) until every review thread is resolved", "breaks the branch diff into 2–4 focused, dependency-ordered draft PRs after user approval", and "Hands red CI to ci-auto-fix, which fixes or escalates". This matches the anchor for multiple specific concrete actions with comprehensive coverage; score 4 would require minor gaps, but every phase (author, push, review, split, CI) is covered with named sub-skills and numeric bounds.

5 / 5

Completeness

The "what" is clearly and comprehensively answered, but the "when" is only addressed by "Invoke with /create-pr or /create-pr --split", which states the invocation form rather than when the skill is needed (no "Use when the user wants to turn a branch into a PR" or equivalent). Per the judging guideline, a missing 'Use when...' clause or equivalent explicit trigger guidance caps completeness at 3; it is not a 2 because the what-half is detailed and an explicit invocation path exists.

3 / 5

Trigger Term Quality

Good natural-keyword coverage: "GitHub pull request", "PR", "draft", "review", "CI", "split" — terms a user would plausibly say when asking to open or split a PR. It falls short of anchor 5 because there is no synonym spread for the triggering situations (e.g., "open a PR", "get this branch ready for review", "ship this branch") and the keyword density is dominated by internal skill and flag names (review-loop, --no-quality, ui-verify).

4 / 5

Distinctiveness Conflict Risk

It occupies a clear niche — PR creation from a branch (push, draft, converge, split, CI) — with distinct triggers and named sub-skills (review-loop, review-branch, ci-auto-fix) that separate it from review-only or CI-only skills. The pull-request vocabulary could superficially overlap a PR-review skill, but the creation-side actions ("pushes the branch, opens the PR as a draft", "breaks the branch diff into 2–4 … draft PRs") keep conflict risk minimal, matching anchor 5 rather than anchor 4's 'minor overlap risk'.

5 / 5

Total

17

/

20

Passed

Validation

87%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

relative_links

Relative link issues: 7 missing, 4 suspicious

Warning

Total

14

/

16

Passed

Repository
mthines/agent-skills
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.