CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

frontend-to-ir

Lower a toy language AST to LLVM 22 IR using IRBuilder. Covers project setup, AST node types, expression lowering, control flow, functions, structs, and applying mem2reg.

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 ./.tessl/tiles/hbarve1/tessl-llvm/skills/frontend-to-ir/SKILL.md

The canonical home for this skill is frontend-to-ir in hbarve1/tessl-llvm

SKILL.md
Quality
Evals
Security

Quality

Content

81%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 tight, actionable, well-sequenced codegen walkthrough with verification checkpoints and a useful pitfalls section. Its only real gaps are two undefined struct-lookup helpers and a monolithic single-file layout that forgoes progressive disclosure into bundle files.

Suggestions

Define or stub 'lookupStructType' and 'lookupOrCreateStructType' so the emitted code compiles as written.

Move the full per-node code or the mem2reg/pass-setup boilerplate into a references file and summarize in SKILL.md to improve progressive disclosure.

Add a short explicit 'verify -> fix -> re-verify' loop callout near Step 2/Step 5 to make the validation feedback loop even more prominent.

DimensionReasoningScore

Conciseness

The body is dense executable C++ with minimal purposeful prose and no padding of concepts Claude already knows; it assumes compiler competence, though the sheer volume of comprehensive code keeps it just short of maximally lean.

4 / 5

Actionability

Mostly executable copy-paste-ready IRBuilder code covering types, functions, expressions, statements, control flow, mem2reg, and output, but helpers like 'lookupStructType'/'lookupOrCreateStructType' are referenced yet undefined, a minor gap.

4 / 5

Workflow Clarity

Steps 0–7 are an explicit ordered sequence with validation woven in (verifyFunction per function in Step 2, verifyModule in Step 5) and a 'Common mistakes' section providing error-recovery guidance, matching the anchor for clear sequencing with explicit validation.

5 / 5

Progressive Disclosure

The single file is well organized into clearly labeled steps plus a Common mistakes section, with one well-signaled cross-skill reference ('see out-of-tree-setup skill for TargetMachine setup'); no bundle files exist, so it stays one-level-deep but nothing is split out.

4 / 5

Total

17

/

20

Passed

Description

67%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 clearly distinct, with a strong 'what' and good domain keyword coverage. Its main weakness is the absence of an explicit 'Use when...' trigger clause, which caps completeness and limits natural-trigger phrasing.

Suggestions

Add a 'Use when...' clause naming concrete triggers, e.g. 'Use when emitting/generating LLVM IR from a language AST, expression tree, or bytecode interpreter.'

Include natural user phrasings like 'emit/generate/compile to LLVM IR' alongside the technical 'lower' term to improve trigger match.

Consider mentioning the LLVM version (22) in the trigger context so users on other versions self-select correctly.

DimensionReasoningScore

Specificity

The description lists multiple concrete capabilities — 'project setup, AST node types, expression lowering, control flow, functions, structs, and applying mem2reg' — giving comprehensive coverage of the lowering pipeline rather than vague actions.

5 / 5

Completeness

It clearly states 'what' (lowering an AST to LLVM IR) but has no 'Use when...' clause or equivalent explicit trigger guidance, so per the rubric completeness is capped at 3 with 'when' only weakly implied.

3 / 5

Trigger Term Quality

Relevant domain keywords are present ('AST', 'LLVM IR', 'IRBuilder', 'mem2reg', 'structs') but common natural variations a user might say ('emit/generate/compile to LLVM IR') are missing, and the vocabulary leans technical.

3 / 5

Distinctiveness Conflict Risk

The niche is sharply defined — 'toy language AST to LLVM 22 IR using IRBuilder ... applying mem2reg' — with distinct triggers and minimal realistic overlap with other skills.

5 / 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

hbarve1/tessl-llvm

Path

.tessl/tiles/hbarve1/tessl-llvm/skills/frontend-to-ir/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.