CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

add-calling-convention

Add or wire a calling convention in an LLVM 22 in-tree target or document IR-level ABI choices for out-of-tree frontends. Covers CallingConv IDs, TableGen CallingConv.td, CCState/CCValAssign hooks, ISel lowering, and tests.

Quality

79%

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 ./tiles/tessl-llvm/skills/add-calling-convention/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

75%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 content is a well-structured, actionable, and appropriately concise overview of a complex multi-step process, with verification checkpoints and a review checklist. Its main gaps are a placeholder in the code example, the absence of an explicit error-recovery feedback loop, and reliance on shared external docs rather than a skill-local reference bundle.

Suggestions

Replace the 'ParamAttrBuilder...' placeholder in the Step 1 code snippet with a complete, copy-paste-ready example so the guidance is fully executable.

Add an explicit validate→fix→retry feedback loop (e.g. after verifyModule or llvm-lit: 'if validation fails, review the error, fix the lowering/TableGen mismatch, and re-run') to strengthen workflow clarity for this rebuild-heavy task.

Move or annotate the 'LLVM 22' version pin so time-sensitive information lives in a versioned/deprecated note rather than the core prose, or confirm the version is part of a maintained section.

DimensionReasoningScore

Conciseness

The body assumes Claude's competence (no explanation of TableGen, ISel, or CCState) and is mostly lean, but it carries minor padding (e.g. 'If you are unsure which multiclass to extend...') and pins a version ('LLVM 22') outside a deprecated/old-patterns section, which the rubric says should penalize conciseness.

4 / 5

Actionability

Concrete file paths (CallingConv.h, *CallingConv.td, *ISelLowering.cpp), named functions (LowerFormalArguments, LowerCall, LowerReturn), and commands (cmake --build --target <Target>CommonTableGen, llvm-lit) make it mostly executable, but the C++ snippet uses a placeholder ('ParamAttrBuilder...') leaving a minor gap.

4 / 5

Workflow Clarity

Steps 0–7 are clearly sequenced with several checkpoints (verifyModule + llc in Step 1, llvm-lit and negative tests in Step 6, a review checklist in Step 7), but there is no explicit validate→fix→retry feedback loop, which keeps it just below the top anchor.

4 / 5

Progressive Disclosure

Sections are well organized and the See-also and 'Read ... for terminology' references are clearly signaled and one level deep, but the bulk of the guidance is inline and the references point to shared ../../docs files rather than a skill-specific references bundle, leaving a minor organization gap.

4 / 5

Total

16

/

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.

The description is specific and highly distinctive with strong trigger terminology, but it lacks an explicit 'Use when...' clause, leaving the invocation conditions only weakly implied and capping completeness.

Suggestions

Add an explicit 'Use when...' clause stating when to invoke the skill (e.g. 'Use when adding or customizing a calling convention for an LLVM target, or when an out-of-tree frontend needs IR-level ABI guidance').

Include common synonyms a user might say, such as 'cc', 'callingconv', or 'custom ABI', to broaden trigger-term coverage.

Clarify the 'when' by naming the concrete situations that distinguish this skill from the related add-intrinsic skill.

DimensionReasoningScore

Specificity

Lists multiple concrete actions ('Add or wire a calling convention', 'document IR-level ABI choices') and comprehensively enumerates the technical surfaces ('CallingConv IDs, TableGen CallingConv.td, CCState/CCValAssign hooks, ISel lowering, and tests'), matching the comprehensive-coverage anchor.

5 / 5

Completeness

The 'what' is clearly stated, but there is no 'Use when...' clause or equivalent explicit trigger guidance; the 'when' is only weakly implied by the in-tree/out-of-tree distinction, so per the cap completeness maxes at 3.

3 / 5

Trigger Term Quality

Natural terms a user would say are present ('calling convention', 'ABI', 'LLVM', 'in-tree target', 'out-of-tree frontend'), but common synonyms/variations such as 'cc'/'callingconv' or 'custom calling convention' are absent, so it is good rather than comprehensive coverage.

4 / 5

Distinctiveness Conflict Risk

It carves out a clear, narrow niche (LLVM 22 calling conventions / ABI) with highly specific technical triggers, giving minimal overlap risk with other skills.

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

relative_links

Relative link issues: 5 suspicious

Warning

Total

15

/

16

Passed

Repository

hbarve1/tessl-llvm

Path

tiles/tessl-llvm/skills/add-calling-convention/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.