CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

axiom-build

Use when ANY iOS or macOS build fails, a crash log needs diagnosing, a test run crashes, Xcode misbehaves, or an environment issue blocks work before code is the suspect. Covers build failures, dependency conflicts, simulator diagnostics.

Quality

65%

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 ./axiom-codex/skills/axiom-build/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

50%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 genuinely useful router with concrete commands and real validation instincts in the diagnostics section, undermined by heavy redundancy — the trigger-to-target map appears four times in three formats — and overlapping route triggers with no tie-break rule. Consolidating the routing into a single table plus a short examples section would cut the file by more than half without losing information.

Suggestions

Collapse 'Routing Logic', 'Decision Tree', and 'Example Invocations' into one routing table (trigger | target | invoke path) and keep a handful of example invocations only for ambiguous cases — this alone removes ~200 duplicated lines.

Resolve the overlapping triggers: state explicitly when build-fixer (automation) is preferred over xcode-debugging (manual diagnosis) and build-performance over build-optimizer, so the decision tree has a deterministic winner.

Fix section ordering (16 appears before 15) and unify the invoke-path formats ('skills/xcode-debugging.md' vs 'See axiom-shipping (skills/...)' vs '`axiom-fix-build`') into one consistent convention.

DimensionReasoningScore

Conciseness

The routing information is repeated three times in near-identical form: the 16 'Routing Logic' sections, the 16-item 'Decision Tree', and the ~40-entry 'Example Invocations' list restate the same trigger→target mappings, with the 'When to Use' list adding a fourth pass. That is well over a hundred lines of redundant routing that could be one table, matching the 'noticeably verbose; several padded sections' anchor rather than the severely padded level-1 case, since the anti-rationalization and when-not-to-use sections do add unique value.

2 / 5

Actionability

The diagnostics section gives concrete, executable commands ("pgrep -lx xcodebuild; echo \"pgrep exit=$?\"", "\"$AXBUILD\" xcodebuild -scheme \"$SCHEME\" -destination \"$DESTINATION\" build", "\"$AXBUILD\" swift test --package-path \"$PACKAGE\"\") with explicit rules for resolving AXBUILD's path, and each routing entry names a concrete invoke target. Minor gaps remain: cross-package pointers like "See axiom-shipping (skills/testflight-triage.md)" are navigational hints rather than invocable commands, and the truncated-marker guidance never names the actual marker string.

4 / 5

Workflow Clarity

The decision tree provides a numbered 16-step routing sequence, and the diagnostics-capture procedure has real checkpoints (pgrep exit-code interpretation, inspecting 'omissions' and artifacts rather than rebuilding, truncation-marker checks, the saved-log fallback). But overlapping trigger sets across sections 1, 6, and 8 (e.g. 'BUILD FAILED' appears under both xcode-debugging and build-fixer; slow-build triggers under both build-performance and build-optimizer) plus out-of-order section numbering (16 appears before 15) leave ambiguity about which path wins, and no tie-break guidance is given — placing this between the 'sequence present, checkpoints missing' and 'clear sequence, most checkpoints' anchors.

3 / 5

Progressive Disclosure

No bundle files (references/, scripts/, assets/) ship with this skill, and the routing targets (skills/xcode-debugging.md, axiom-shipping, axiom-performance) are external sibling skills, so detail is indeed deferred one level deep. Structure is decent with per-section headers, but the same routing map is inlined three times instead of being split or consolidated, some invoke paths are formatted three different ways, and section ordering is disorganized — matching the 'some structure, could be better organized' anchor.

3 / 5

Total

12

/

20

Passed

Description

65%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 trigger-rich description with excellent 'when' guidance, but it functions purely as a trigger list: it never states what the skill does when invoked, leaving the 'what' half to a vague coverage clause. It reads as a router without saying it routes.

Suggestions

Add one or two concrete action verbs for the 'what' half, e.g. 'Diagnoses environment-first causes of iOS/macOS build failures and routes to specialized sub-skills' before the 'Use when' clause.

Include a couple of high-signal literal trigger strings users paste verbatim, such as 'BUILD FAILED', 'linker error', or 'Unable to boot simulator', to strengthen natural-term matching.

State the routing behavior explicitly (e.g. 'Invokes specialized diagnostic skills based on the failure type') so the description reflects the skill's actual mechanism.

DimensionReasoningScore

Specificity

The description names its domain ("iOS or macOS build fails", "Xcode misbehaves", "simulator diagnostics") but describes no concrete actions — the only capability statement is the generic "Covers build failures, dependency conflicts, simulator diagnostics". It never states what the skill actually does (route to sub-skills, run diagnostics, capture build logs), matching the 'names the domain, minimal or generic actions' anchor rather than the level-3 anchor, which requires 1-2 concrete actions.

2 / 5

Completeness

The 'when' is explicit and strong ("Use when ANY iOS or macOS build fails..."), but the 'what' is only a scope statement ("Covers build failures, dependency conflicts, simulator diagnostics") that says what territory the skill handles without saying what it does. Both halves are present, yet the 'what' is not concrete enough for the level-5 anchor, which demands both clearly and explicitly answered.

4 / 5

Trigger Term Quality

Natural user phrasings are well covered: "build fails", "crash log needs diagnosing", "test run crashes", "Xcode misbehaves", "simulator". A few common variations users would actually say are missing — "BUILD FAILED", "linker error", "won't boot", "Swift build" — so it stops short of the comprehensive-with-synonyms anchor.

4 / 5

Distinctiveness Conflict Risk

The iOS/macOS build-and-environment niche is distinct and the clause "before code is the suspect" draws a deliberate boundary against code-debugging skills. Minor overlap remains with sibling skills in the same family (axiom-performance for hangs, axiom-shipping for crash triage), so it is not the minimal-conflict anchor.

4 / 5

Total

14

/

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

referenced_paths_exist

Referenced path issues: 1 missing

Warning

Total

15

/

16

Passed

Repository

CharlesWiltgen/Axiom

Path

axiom-codex/skills/axiom-build/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.