CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

merge

Merge the winning agent's branch into base, archive losers, and clean up worktrees. Use when the user runs /hub:merge or asks to land the winning AgentHub result and tidy the session.

64

Quality

80%

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 ./engineering/agenthub/skills/merge/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

65%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 is a crisp, command-driven runbook with excellent token efficiency and copy-paste git commands, but it has two structural weaknesses: destructive batch operations (branch deletion, worktree cleanup) proceed without any post-merge validation, and its only external dependency (scripts/session_manager.py) is missing from the bundle entirely. Fixing the missing script and adding merge-success verification would lift the two weakest dimensions.

Suggestions

Add a post-merge validation checkpoint: check the `git merge --no-ff` exit status (and a conflict-recovery path such as `git merge --abort`) before proceeding to archive losers and clean worktrees.

Before `git branch -D`, verify each archive tag was created successfully (e.g., `git tag -l hub/archive/{session-id}/*`) so losing commits are confirmed preserved before deletion.

Ship `scripts/session_manager.py` in the bundle (the scripts/ directory is absent) or inline the equivalent cleanup/state commands, and specify where the /hub:eval winner ranking and the session's base branch are read.

DimensionReasoningScore

Conciseness

The body is lean and assumes Claude's competence (e.g., bare `git tag`/`git branch -D` commands with one-line comments, no git-concept explanations), but there is minor trimmable redundancy: the fact that losing commits are "preserved via tags" is stated three times (two code comments plus the Safety bullet "Archive, don't delete — losing agents' commits are preserved via tags"), and the opening sentence repeats the frontmatter description. This fits 'efficient with minor instances that could be trimmed' rather than 'every token earns its place'.

4 / 5

Actionability

Commands are concrete and executable (`git checkout {base_branch}`, `git merge --no-ff hub/{session-id}/{winner}/attempt-1 -m "..."`, `git tag hub/archive/{session-id}/{agent-id} ...`, `python {skill_path}/scripts/session_manager.py --cleanup {session-id}`), matching 'mostly executable with minor gaps'. It is not a 5 because key details are missing: nothing shows how to determine `{base_branch}` or where the #1 ranking from the most recent `/hub:eval` is read, and the session_manager.py CLI is invoked without documenting its flags. It is not a 3 because the code is real and executable, not pseudocode.

4 / 5

Workflow Clarity

The six steps are clearly numbered and there is one explicit checkpoint ("Confirm with user before merging — show the diff summary first"), but the workflow then performs batch destructive operations — `git branch -D` on every losing agent and worktree cleanup — with no verification that the merge succeeded (no exit-status check, conflict handling, or `git merge --abort` path) and no confirmation that archive tags were created before branches are deleted. Per the judging guidelines, destructive/batch workflows missing validation are capped at 3; it is not a 4 because these validation gaps are significant, not minor.

3 / 5

Progressive Disclosure

Sections are well organized (Usage, What It Does with six numbered subsections, Safety, After Merge) and the inline content is appropriately sized, but scoring against the actual bundle structure reveals a significant gap: the bundle contains no files at all — no references/, scripts/, or assets/ — yet steps 4 and 6 load-bearingly invoke `{skill_path}/scripts/session_manager.py`, which does not exist. A missing script that two of six steps depend on is more than a minor organization gap, placing this at 3 rather than 4; it is above 2 because the body itself is well structured with no buried or nested references.

3 / 5

Total

14

/

20

Passed

Description

87%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.

A strong description: it names three concrete actions in third person and pairs them with an explicit, well-scoped "Use when..." trigger clause anchored on the /hub:merge command. The only weaknesses are slightly incomplete action coverage and a few missing natural trigger synonyms.

DimensionReasoningScore

Specificity

"Merge the winning agent's branch into base, archive losers, and clean up worktrees" lists three concrete third-person actions, matching the anchor for several specific actions with minor gaps — it omits the merge-summary write and session-state update the body performs, so it falls short of comprehensive coverage.

4 / 5

Completeness

It explicitly answers both questions: the "what" is the three concrete actions, and the "when" is an explicit "Use when..." clause with concrete trigger phrases (running /hub:merge, asking to land the winning AgentHub result, tidying the session), exactly matching the top anchor. It is not a 4 because the 'when' is fully explicit rather than improvable.

5 / 5

Trigger Term Quality

Triggers include the exact slash command "/hub:merge" plus natural phrases "land the winning AgentHub result" and "tidy the session" — good keyword coverage, but common variations a user would say (e.g., "merge the winner", "merge the best agent") are missing, fitting the good-but-not-comprehensive anchor.

4 / 5

Distinctiveness Conflict Risk

"winning agent's branch", "AgentHub result", and "/hub:merge" carve out a clear niche (AgentHub session finalization) with distinct triggers and minimal overlap risk with generic git-merge skills; it is not a 4 because the trigger clause is tightly scoped to a named tool and command rather than merely 'mostly distinct'.

5 / 5

Total

18

/

20

Passed

Validation

93%

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

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

Total

15

/

16

Passed

Repository

alirezarezvani/claude-skills

Path

engineering/agenthub/skills/merge/SKILL.md

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.