CtrlK
BlogDocsLog inGet started
Tessl Logo

dbops-changeset

Generates Liquibase database changesets via a structured workflow: resolve schema+instance (from context or via API discovery), confirm DB engine type, generate Liquibase YAML, and present for HITL review with Accept / Deny / Accept & Commit actions. Supports update mode (refine existing changeset) and error-recovery mode (fix a failed migration).

61

Quality

72%

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 ./plugins/claude/skills/dbops-changeset/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

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

A rigorous, well-sequenced operational workflow with outstanding branch handling, validation gates, and error-recovery feedback loops, making it highly actionable as a process document. Its weaknesses are repetition and a temporary time-sensitive server-state note that hurt conciseness, and progressive disclosure that leans on a reference.md file that is missing from the bundle while inlining protocol detail that belongs there.

Suggestions

Ship reference.md in the bundle (references/reference.md) — the body defers all Liquibase YAML generation rules to it three times, but the file does not exist, breaking the skill's core step (Step 4).

Deduplicate repeated directives: state the 'never construct the openInHarness URL' and 'surface errors verbatim and stop' rules once in Important Rules and reference them from Steps D/E/F, and remove or relocate the temporary db-devops-service contract note to a dedicated 'current server limitations' section.

Move the chat-runner gate protocol table, runtime-input elicitation loop, and status-triage details into reference.md, leaving SKILL.md as a lean overview of Steps 0–6 with pointers.

DimensionReasoningScore

Conciseness

The body is mostly efficient, rule-dense, and assumes Claude's competence (no concept explanations), but includes slack: "Do NOT construct the URL manually" appears four times, the error-handling paragraph in Steps D and E is duplicated verbatim, the 'Important Rules' section restates Step 5/6 content, and Step C carries a time-sensitive server-state note ("current state... until that contract lands") that should live in a deprecated/notes section. This fits the level-3 anchor ('mostly efficient but could be tightened') better than level 4's 'minor instances'.

3 / 5

Actionability

Guidance is highly executable — exact harness_get/harness_execute calls with argument shapes, literal user-facing reply strings, decision tables (branch lock, gate protocol, failure classification), and a worked author-derivation table. It falls short of level 5 because org_id/account_id resolution is never specified and no example changeset YAML appears anywhere in the bundle, leaving the core output format entirely to the absent reference.md.

4 / 5

Workflow Clarity

Steps 0–6 are clearly sequenced with decision tables for every branch, explicit validation checkpoints (snapshot conflict check before CREATE, HITL Accept/Deny/Accept & Commit gate before any execution), branch-lock and context-compaction handling, and a full error-recovery feedback loop with failure classification before regeneration. This matches the level-5 anchor including feedback loops; the destructive-operation cap does not apply because validation gates are present.

5 / 5

Progressive Disclosure

The single reference (reference.md) is clearly signaled and one level deep, but the file does not exist in the bundle (no references/ directory or reference.md present), so the reference is broken rather than usable. Additionally, substantial edge-case protocol (gate-event handling, runtime-input elicitation, status triage) is inlined that belongs in the reference file, matching the level-3 anchor of structure present but content that should be separate is inline.

3 / 5

Total

15

/

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.

A highly specific, third-person description that comprehensively names the workflow's concrete actions and carves out a distinct Liquibase/DBOPS niche. Its main weakness is the complete absence of explicit 'Use when...' trigger guidance, which caps completeness, and some natural trigger phrasings users would actually say are missing.

Suggestions

Add an explicit 'Use when...' clause, e.g. 'Use when the user asks to create, modify, or drop tables, columns, indexes, constraints, or views, requests a database migration or changeset, or asks to fix a failed Liquibase migration.'

Include natural user-side trigger phrases and synonyms — 'add a column', 'create a table', 'database migration', 'schema change' — not just tool-side terminology like 'changeset' and 'authoring pipeline'.

Trim internal jargon from the first sentence (e.g. 'HITL review') in favor of plain-language phrasing a user would recognize.

DimensionReasoningScore

Specificity

Quotes like "resolve schema+instance (from context or via API discovery), confirm DB engine type, generate Liquibase YAML, and present for HITL review with Accept / Deny / Accept & Commit actions" list multiple concrete, comprehensive actions including update and error-recovery modes. It exceeds the level-4 anchor ('several specific actions; minor gaps') because coverage spans the whole workflow with no meaningful gap.

5 / 5

Completeness

The "what" is clearly and explicitly stated, but there is no "Use when..." clause or equivalent explicit trigger guidance; the mentions of "update mode" and "error-recovery mode" only weakly imply when. Per the judging guidelines a missing 'Use when' clause caps completeness at 3, and it is not level 2 because the "what" is concrete rather than vague.

3 / 5

Trigger Term Quality

Natural terms are present — "Liquibase database changesets", "generate Liquibase YAML", "fix a failed migration", "refine existing changeset" — matching the level-4 anchor of good coverage with a few natural terms missing. It is not level 5 because common user phrasings like "create a table", "add a column", "drop an index", or "schema change" are absent.

4 / 5

Distinctiveness Conflict Risk

"Liquibase database changesets" anchored to the Harness DBOPS service (schema/instance resolution, connector engine detection, authoring pipeline) is a clear niche with distinct triggers and minimal conflict risk with other skills. It matches the level-5 anchor cleanly rather than the mostly-distinct level-4 anchor.

5 / 5

Total

17

/

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

skill_md_line_count

SKILL.md is long (614 lines); consider splitting into references/ and linking

Warning

Total

15

/

16

Passed

Repository
harness/harness-ai
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.