CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

app-deploy

Load when asked to cut, ship, or release a kendex version.

Quality

69%

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 ./.agents/skills/app-deploy/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

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

This is a dense, highly actionable release runbook with exceptional validation coverage and error-recovery loops, no filler, and clearly signaled external references. Its weaknesses are structural: step 3 is an unmanageable run-on paragraph, and policy sections (catalog compatibility, main channel, secrets) are inlined where reference files would keep SKILL.md an overview.

Suggestions

Break step 3 into numbered sub-steps or a checklist (commit with COLLATE=1, verify PR merged, ancestry check, changelog-entries --release check, dispatch, watch, verify tag, retry policy) so the sub-sequence is extractable at a glance.

Move the Catalog compatibility, Main channel, and Secrets sections into one-level-deep reference files (e.g. references/catalog.md, references/secrets.md) with brief pointers from SKILL.md.

Give full invocation forms for tools named without arguments (tools/release-previous-tag, tools/release-installer-check, tools/catalog-release-check) and link or define 'the orch job runner'.

DimensionReasoningScore

Conciseness

The body is dense with repo-specific facts, explains no concepts Claude already knows, and carries no padding — nearly every token earns its place. It falls short of anchor 5 because some conditions are restated across sections (tag-move rules in step 4 vs. the workflow section, retry guidance repeated) and the density itself forces re-reading where a trimmer layout would not.

4 / 5

Actionability

Mostly executable: exact commands with flags ("gh workflow run release.yml --repo vanillagreencom/kendex --ref main -f tag=\"v<version>\" -f release_commit=\"<mergeCommit.oid>\"", "git merge-base --is-ancestor", "git ls-remote --tags origin v<major>") and explicit success criteria. Minor gaps keep it below anchor 5: several tools are invoked by name only ("tools/release-previous-tag", "tools/release-installer-check", "tools/catalog-release-check") without argument forms, and "the orch job runner" is unreferenced.

4 / 5

Workflow Clarity

The numbered sequence 1-5 has abundant explicit validation checkpoints and error-recovery loops ("A nonzero exit halts the release", "Stop on a failed read, ancestry check or changelog check", re-collate-and-repeat instructions, retry rules, major-tag SHA verification), matching anchor 4-to-5 territory for a release workflow with destructive tag operations. It stays at 4 because step 3 buries roughly eight sub-operations (commit, PR merge verification, ancestry check, changelog check, dispatch, watch, tag verification, retry policy) in one run-on paragraph, muddling the sub-step order.

4 / 5

Progressive Disclosure

The body has clear section headers and well-signaled one-level-deep links to repo docs ("[release-version rule](../../../skills/commit-guards/CHECKS.md#release-versions)", "[release standard](../../../changelog.d/README.md#release-standard)", "[npm-deploy](../npm-deploy/SKILL.md)"), and no bundle files exist to point to. But substantial policy material that would sit better in reference files — the full workflow asset inventory, Catalog compatibility, Main channel, and Secrets sections — is inlined wholesale, leaving SKILL.md as the complete detail rather than an overview, which matches 'could be better organized' rather than anchor 4's 'most content is appropriately placed'.

3 / 5

Total

15

/

20

Passed

Description

56%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 has a clear, explicit load trigger with good natural release vocabulary, but it states only when to load, not what the skill does — the concrete capability list is confined to the summary field. It reads as a trigger clause rather than a complete description.

Suggestions

Fold the capability list from the summary into the description so both 'what' (bumps workspace versions, collates and finalizes the changelog, dispatches and verifies the release workflow, publishes the GitHub release) and 'when' are explicit in one place.

Add missing natural trigger synonyms such as 'publish', 'version bump', or 'tag a release' alongside cut/ship/release.

Use third-person capability phrasing ('Releases a kendex version by... Use when asked to cut, ship, or release') so the description self-describes rather than only instructing when to load.

DimensionReasoningScore

Specificity

The description names the domain ("a kendex version") but the actions are minimal and generic: "cut, ship, or release" are three synonyms for one action, with no concrete sub-actions (version bump, changelog collation, workflow dispatch) stated. It sits at 'Names the domain but actions are minimal or generic', below anchor 3 because no distinct concrete capability is listed.

2 / 5

Completeness

The "when" is explicit ("Load when asked to cut, ship, or release a kendex version") but the "what" is only implied by the trigger's object; the actual capability list (bump versions, finalize changelog, dispatch workflow, review publication) lives in the separate summary field, not the description. This matches 'what' present but only weakly implied rather than anchor 4's explicitly stated both.

3 / 5

Trigger Term Quality

"cut, ship, or release" covers the natural release vocabulary a user would say, and "kendex version" is the natural object term in this repo. It falls short of anchor 5 only because common variants like "publish", "tag a release", or "version bump" are absent.

4 / 5

Distinctiveness Conflict Risk

"kendex version" scopes the skill to a clear niche and the sibling npm-deploy skill covers a different target, so conflict risk is low. It is not anchor 5 because the generic verbs "ship"/"release" could still collide with other packaging/release skills in the same repo.

4 / 5

Total

13

/

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: 6 suspicious

Warning

Total

14

/

16

Passed

Repository

vanillagreencom/kendex

Path

.agents/skills/app-deploy/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.