CtrlK
BlogDocsLog inGet started
Tessl Logo

add-attributes-metadata

Add function/parameter attributes and IR metadata to LLVM 22 IR to unlock optimizer opportunities. Covers NoUnwind, ReadNone, NoCapture, Noundef, loop vectorization hints, branch weights, TBAA, !range, and !nonnull.

63

Quality

73%

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-attributes-metadata/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

64%Scale 1-3

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

This is a strong, highly actionable reference skill with executable C++ examples covering a broad range of LLVM IR attributes and metadata. Its main weaknesses are the lack of validation/verification steps (how to confirm attributes are correctly applied and having the intended optimization effect) and the monolithic structure that could benefit from splitting detailed topics into separate reference files. The 'Why this matters' section and some inline comments add modest verbosity.

Suggestions

Add a validation step showing how to verify attributes are correctly applied, e.g., dumping IR with F->print() or running `opt -passes=print<module>` and checking output, especially given that incorrect attributes cause silent miscompilation.

Consider splitting TBAA and loop metadata into separate reference files linked from the main skill, keeping the overview concise with just the most common attributes.

Remove or condense Step 0 — Claude doesn't need motivation for why attributes matter; the checklist table at the end already conveys which attributes to use where.

DimensionReasoningScore

Conciseness

Step 0 ('Why this matters') explains motivation that Claude could infer, and inline comments sometimes restate what the attribute name already conveys (e.g., 'Never throws' for NoUnwind). However, the bulk of the content is useful reference material with minimal fluff.

2 / 3

Actionability

Every section provides fully executable C++ code using the LLVM API with correct includes, specific method calls, and concrete examples. The code is copy-paste ready and covers the complete workflow from function attributes through metadata attachment.

3 / 3

Workflow Clarity

The steps are clearly numbered and sequenced, and the checklist table is helpful. However, there are no validation checkpoints — no guidance on how to verify attributes were correctly applied (e.g., dumping IR to check, running opt to verify), which matters since incorrect attributes like readnone on a writing function can cause silent miscompilation.

2 / 3

Progressive Disclosure

The content is well-structured with clear headers and tables, but it's a long monolithic document (~200 lines) with no references to external files for detailed topics like TBAA hierarchies or loop metadata. The TBAA and loop metadata sections could be split out with links from a concise overview.

2 / 3

Total

9

/

12

Passed

Description

82%Scale 1-3

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

This is a strong, highly specific description that clearly identifies its niche in LLVM IR optimization attributes and metadata. It excels at listing concrete capabilities and using domain-appropriate trigger terms. Its main weakness is the absence of an explicit 'Use when...' clause, which would help Claude know exactly when to select this skill.

Suggestions

Add an explicit 'Use when...' clause, e.g., 'Use when the user asks about adding LLVM IR attributes, optimizer hints, metadata annotations, or improving LLVM optimization passes.'

DimensionReasoningScore

Specificity

Lists multiple specific concrete actions and concepts: adding function/parameter attributes, IR metadata, and enumerates specific items like NoUnwind, ReadNone, NoCapture, Noundef, loop vectorization hints, branch weights, TBAA, !range, and !nonnull.

3 / 3

Completeness

Clearly answers 'what does this do' (add attributes and metadata to LLVM IR to unlock optimizer opportunities) but lacks an explicit 'Use when...' clause or equivalent trigger guidance, which caps this at 2 per the rubric.

2 / 3

Trigger Term Quality

Includes highly specific natural keywords a user working with LLVM IR would use: 'LLVM 22 IR', 'NoUnwind', 'ReadNone', 'NoCapture', 'TBAA', 'branch weights', 'loop vectorization hints', '!range', '!nonnull'. These are the exact terms someone would mention when needing this skill.

3 / 3

Distinctiveness Conflict Risk

Extremely niche and specific to LLVM 22 IR optimization attributes and metadata. Very unlikely to conflict with other skills given the highly specialized domain and specific technical terms.

3 / 3

Total

11

/

12

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.

Validation11 / 11 Passed

Validation for skill structure

No warnings or errors.

Repository
hbarve1/tessl-llvm
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.