CtrlK
BlogDocsLog inGet started
Tessl Logo

ship

Commit and push the current snapshot, creating a branch in a detached, task-owned worktree when needed; open a ready PR and merge when clean. Use when the user asks to ship, publish, or hand off local changes. Matching beta and docs paths publish automatically after merge; other production promotion is manual.

62

Quality

78%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./.agents/skills/ship/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

62%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 body defines a thoroughly validated ship workflow with concrete commands, explicit gates, and recovery loops, but it is heavily padded: identical authorization, base-selection, and branch-disposition rules are restated three to four times across sections, and environment-specific procedures that belong in separate reference files are inlined. Actionability is mostly executable with the live-PR gate query left as prose.

Suggestions

Deduplicate the rules repeated across Contract, Flow, the Existing PR backlog section, and sections 5–6 (base selection, merge authorization, branch disposition, preserve-unrelated-work) — state each rule once in the section that owns it and reference it elsewhere.

Move the environment-specific procedures (the Codex get_goal/create_goal block and the verbatim Claude Code /goal message) into a references/ file so SKILL.md stays a navigable overview.

Replace the prose description of the live-PR ownership gate with the actual gh commands (login resolution plus the author-bearing `gh pr view` query) so every pre-push check is copy-paste executable.

DimensionReasoningScore

Conciseness

The same rules — base selection ("fresh origin/main for a new PR, the fetched live PR head for an existing PR update"), branch disposition, merge authorization, and preserve-unrelated-work — are restated three to four times across Contract, Flow, the Existing PR backlog section, and sections 1–6, and long environment-specific goal procedures are inlined. This goes beyond the 'some unnecessary explanation or could be tightened' of a 3; sections are noticeably padded with repetition.

2 / 5

Actionability

Preflight git commands, the remote-aware unpushed-commit check with pathspec excludes, `corepack pnpm ship:push -m "..."`, and `gh pr merge <number> --squash --admin --match-head-commit <verified-head-oid>` are copy-paste ready. However, the live-PR ownership gate ("resolve the active GitHub login with `gh api user --jq .login`, include `author` in the live PR query") and the required-checks/mergeable readiness checks are described in prose without the actual commands, leaving minor gaps.

4 / 5

Workflow Clarity

A numbered 7-step Flow maps to detailed sections 1–6 with explicit validation at every step: ownership classification before any branch movement, a 10-minute soak on the unchanged head, full gate revalidation immediately before merge, and feedback loops (restart the soak on head change or gate failure; conflict recovery only after the three stated preconditions). The guarded merge of a hard-to-reverse operation includes an explicit checklist, so the destructive/batch cap does not apply.

5 / 5

Progressive Disclosure

The body has clear numbered sections and signals companion skills by slash-name (`/new-branch`, `/babysit-pr`, `/review-latest-feedback`), but no bundle files exist and ~400 lines of policy are inlined — including the Codex `get_goal`/`create_goal` procedure, the verbatim Claude Code `/goal` message, and the existing-PR backlog procedure — where separate reference files clearly belong. Structure is present but the split is not made.

3 / 5

Total

14

/

20

Passed

Description

88%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 strong: it states concrete, comprehensive actions in third person and pairs them with an explicit 'Use when...' clause built from natural trigger phrases. Its only weaknesses are good-but-not-complete trigger coverage (missing variations like 'open a PR') and slight 'publish' overlap with deployment skills.

DimensionReasoningScore

Specificity

"Commit and push the current snapshot, creating a branch in a detached, task-owned worktree when needed; open a ready PR and merge when clean" lists multiple concrete actions covering the whole shipping lifecycle comprehensively, in third person. Not a 4: there are no coverage gaps — every capability of the skill (commit, push, branch creation, PR, merge) is named.

5 / 5

Completeness

The description explicitly answers both what ("Commit and push the current snapshot... open a ready PR and merge when clean") and when ("Use when the user asks to ship, publish, or hand off local changes") with concrete trigger phrases, matching the top anchor exactly.

5 / 5

Trigger Term Quality

"Use when the user asks to ship, publish, or hand off local changes" contains exactly the natural phrases a user would say. Not a 5: common variations like "open a PR", "send up a PR", or "land it" are missing; not a 3: the three present terms are natural user phrasing, not jargon or generic filler.

4 / 5

Distinctiveness Conflict Risk

"Ship / publish / hand off local changes" carves a clear PR-shipping niche, but "publish" carries minor overlap risk with deployment or release-publishing skills — a risk the description itself feeds by discussing beta/docs publication. Mostly distinct with minor overlap, matching the 4 anchor rather than the minimal-conflict 5.

4 / 5

Total

18

/

20

Passed

Validation

81%

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

Validation — 13 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

metadata_field

'metadata' should map string keys to string values

Warning

frontmatter_unknown_keys

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

Warning

Total

13

/

16

Passed

Repository
BuilderIO/agent-native
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.