CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

mtls-configuration

Configure mutual TLS (mTLS) for zero-trust service-to-service communication. Use when implementing zero-trust networking, certificate management, or securing internal service communication.

61

Quality

77%

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/mtls-configuration/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 shines on actionability — complete, realistic manifests and runnable debug/rotation commands covering all major platforms — but it is a monolithic reference dump rather than a guided skill. Generic filler sections and diagrams explaining TLS basics Claude already knows waste tokens, there is no sequenced migration workflow with validation checkpoints, and ~200 lines of platform templates should live in separate reference files.

Suggestions

Cut the two ASCII concept diagrams (mTLS handshake, certificate hierarchy) and the boilerplate 'Instructions' / 'Do not use this skill when' sections — Claude already knows how TLS handshakes and CA hierarchies work; keep only non-obvious specifics like the PERMISSIVE-to-STRICT migration order.

Add an explicit step-by-step rollout workflow with validation checkpoints, e.g.: 1. Apply PERMISSIVE mesh-wide → 2. Verify with 'istioctl authn tls-check' / 'linkerd viz edges' → 3. Confirm all workloads pass → 4. Only then flip to STRICT → 5. Re-verify and roll back if failures.

Move the per-platform templates (Istio, cert-manager, SPIFFE/SPIRE, Linkerd) into one-level-deep reference files (e.g., references/istio.md, references/spire.md) and keep SKILL.md as a concise overview with clearly signaled links, reducing the main file to well under 100 lines.

DimensionReasoningScore

Conciseness

The templates, commands, and best-practice lists are dense and earn their place, but the body spends tokens on things Claude already knows: an ASCII diagram walking through "1. ClientHello / 2. ServerHello + Cert ... 5. Encrypted Channel", a certificate-hierarchy diagram, and boilerplate filler like "Clarify goals, constraints, and required inputs. Apply relevant best practices and validate outcomes" and a "Do not use this skill when" section stating "The task is unrelated to mtls configuration". This matches anchor 3 ("Mostly efficient but includes some unnecessary explanation or could be tightened"); it does not reach 4 because the padding spans several distinct sections, and is not 2 because the majority of the file is genuinely lean configuration content.

3 / 5

Actionability

Five complete, copy-paste-ready Kubernetes manifests (Istio PeerAuthentication/DestinationRule, cert-manager issuer and Certificate, SPIRE server config, Linkerd policy) plus concrete executable commands like "istioctl proxy-config secret deploy/my-app -o json | jq ... | base64 -d | openssl x509 -text -noout", "kubectl rollout restart deployment/my-app", and "linkerd viz edges deployment -n my-namespace". The common cases (enable strict mTLS, migrate permissively, issue workload certs, check expiry, debug handshakes) are each covered by runnable examples, matching anchor 5; remaining placeholders like <base64-encoded-ca-cert> are user data, not gaps, and the one abbreviated DaemonSet is explicitly labeled as such.

5 / 5

Workflow Clarity

No sequenced implementation workflow exists — the file is a reference collection, with the migration path only implied by "Start with PERMISSIVE - Migrate gradually to STRICT" and verification commands (cert expiry check, tls-check, linkerd viz edges) scattered in separate sections rather than embedded as checkpoints. This matches anchor 3 ("sequence present but checkpoints missing or implicit"); validation content does exist so it is above anchor 2, but there is no ordered step sequence with validation gates to reach anchor 4.

3 / 5

Progressive Disclosure

The file has clear section headers (Core Concepts, Templates, Certificate Rotation, Debugging, Best Practices, Resources) but is a ~360-line monolith with no bundle files; roughly 200 lines of per-platform templates (Istio, cert-manager, SPIRE, Linkerd) are inlined in SKILL.md where they clearly belong in one-level-deep reference files. This matches anchor 3 ("content that should be separate is inline"); structure is real so it is above anchor 2's no-organization example, but nothing is split out to reach anchor 4.

3 / 5

Total

14

/

20

Passed

Description

78%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 with an explicit and well-phrased 'Use when...' clause covering three concrete triggers, plus natural keywords like mTLS and zero-trust. Its main weaknesses are the single-action 'what' statement (the skill actually covers far more) and the somewhat broad 'certificate management' trigger that invites overlap with general certificate skills.

Suggestions

List 2-3 more concrete capabilities in the 'what' sentence (e.g., 'Configure mutual TLS for Istio, Linkerd, and cert-manager; set up SPIFFE/SPIRE identity; rotate and debug certificates') to raise specificity.

Consider narrowing or qualifying the 'certificate management' trigger (e.g., 'workload certificate rotation for service meshes') to reduce overlap with general certificate-automation skills.

DimensionReasoningScore

Specificity

"Configure mutual TLS (mTLS) for zero-trust service-to-service communication" names the domain and one concrete action, but does not enumerate the range of capabilities the skill actually covers (Istio/Linkerd setup, cert-manager issuance, SPIFFE/SPIRE, rotation, debugging). This matches anchor 3 ("Names domain and 1-2 concrete actions, but not comprehensive"); it is above anchor 2 because the action is concrete rather than generic, and below anchor 4 because only one capability is listed.

3 / 5

Completeness

The description explicitly answers both questions: what ("Configure mutual TLS (mTLS) for zero-trust service-to-service communication") and when ("Use when implementing zero-trust networking, certificate management, or securing internal service communication") with three concrete trigger phrases. This matches anchor 5; anchor 4 would require the 'when' clause to be less explicit or specific, which it is not.

5 / 5

Trigger Term Quality

Natural phrases like "mutual TLS (mTLS)", "zero-trust networking", "certificate management", and "securing internal service communication" are terms a user would plausibly say. It falls short of anchor 5 because common variations users actually say — "service mesh", "Istio", "Linkerd", "cert rotation", "TLS handshake" — are absent, matching anchor 4 ("Good keyword coverage; a few natural terms missing").

4 / 5

Distinctiveness Conflict Risk

mTLS/zero-trust service-to-service communication is a clear niche with distinct triggers, but the trigger "certificate management" is broad and could overlap with general TLS/certificate-automation skills. This matches anchor 4 ("Mostly distinct; minor overlap risk with closely related skills") rather than anchor 5, which demands minimal conflict risk across all triggers.

4 / 5

Total

16

/

20

Passed

Validation

100%

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

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

rmyndharis/antigravity-skills

Path

skills/mtls-configuration/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.