CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

axum-project-starter

Scaffold a production-ready Axum 0.8+ API with Rust 2024 edition, Tower middleware, SQLx database integration, structured error handling, tracing, and shared state patterns.

Quality

78%

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 ./backend-rust/axum-project-starter/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

78%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 highly actionable, near-fully-executable scaffold with excellent command and code coverage and a clear post-scaffold sequence. Its weaknesses are structural: everything is inlined in one 500-line file with no progressive disclosure, and the workflow lacks explicit error-recovery feedback around the database setup and migration steps.

Suggestions

Move the full per-file code templates (users.rs handlers, errors.rs, extractors/auth.rs, middleware/auth.rs) into a references/ or templates/ directory with one-level-deep links from SKILL.md, keeping the body to conventions, structure, and the first-steps sequence.

Add feedback-loop guidance for the fragile first-steps steps: e.g. 'if migrations fail, verify DATABASE_URL and that `createdb` succeeded; re-run `sqlx migrate run`' before starting the server.

Remove the duplicated blockquote description and consolidate the extractor-ordering note (stated in both Key Conventions and as a comment in users.rs) into one authoritative location.

DimensionReasoningScore

Conciseness

The body is almost entirely executable commands, project layout, and complete code files — it does not explain concepts Claude already knows, and Axum-specific gotchas ("Extractors order matters... body can only be consumed once", "layers wrap from bottom to top") are genuinely non-obvious knowledge that earns their tokens. Not a 5 due to minor redundancy: the description is repeated as a blockquote and the extractor-ordering note appears both in Key Conventions and as a comment in users.rs.

4 / 5

Actionability

Everything is copy-paste ready: the exact `cargo add` command set with features, a full project tree, and complete compilable code for main.rs, state.rs, routes/mod.rs, users handlers covering the full CRUD case, models, errors.rs implementing IntoResponse, a custom extractor, and a from_fn middleware. This matches the 'fully executable, copy-paste ready, covers common cases' anchor.

5 / 5

Workflow Clarity

"First Steps After Scaffold" gives a clearly sequenced 1-6 path (env setup, build, create database, `sqlx migrate run`, start server) ending with an explicit verification checkpoint (`curl http://localhost:8080/api/health`). Not a 5 because there is no error-recovery feedback loop (e.g. what to do when migrations fail or DATABASE_URL is wrong), and the `#[axum::debug_handler]` convention is mentioned without being tied into the debugging workflow.

4 / 5

Progressive Disclosure

Sections are well-organized and clearly labeled (Prerequisites, Scaffold Command, Project Structure, Essential Patterns, Common Commands, Integration Notes), but the skill is a 520-line monolith with zero bundle files — the complete per-file templates (handlers, errors.rs, extractor, middleware) could live as one-level-deep files under references/ so SKILL.md stays a lean overview. This matches anchor 3: good structure, but content that could be separate is inline.

3 / 5

Total

16

/

20

Passed

Description

70%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, concrete description that clearly communicates what the skill produces and occupies a distinct niche. Its main weakness is the complete absence of 'when to use' trigger guidance, which both caps completeness and slightly weakens discoverability for users who describe their goal in different words.

Suggestions

Add an explicit trigger clause, e.g. 'Use when starting a new Rust web API project, when the user mentions Axum, or when scaffolding a production Axum/SQLx backend.'

Include natural synonyms a user might say beyond the crate names, such as 'Rust web framework', 'backend API', or 'Tokio web server'.

Optionally name one or two downstream capabilities the scaffold enables (e.g. migrations, JWT auth) so the description reflects the full scope shown in the body.

DimensionReasoningScore

Specificity

"Scaffold a production-ready Axum 0.8+ API" names a concrete action, and the enumerated capabilities ("Tower middleware, SQLx database integration, structured error handling, tracing, and shared state patterns") are specific and comprehensive for the domain. Not a 5 because there is only one action verb and the scaffold's downstream capabilities (testing, Docker, migrations) are absent; not a 3 because coverage goes well beyond 1-2 generic actions.

4 / 5

Completeness

The 'what' is clear and concrete (scaffold an Axum API with the listed features), but there is no 'Use when...' clause or any equivalent explicit trigger guidance — per the judging guidelines, a missing 'when' clause caps completeness at 3. Anchor 4 requires an explicit, if imperfect, 'when', which is entirely absent.

3 / 5

Trigger Term Quality

"Axum", "Rust 2024 edition", "SQLx", "Tower middleware", and "API" are natural terms a user would say when asking for a Rust web backend. A few common variations are missing ("Rust web framework", "backend API", "web server"), which keeps it below the comprehensive-synonym anchor 5 but comfortably above anchor 3.

4 / 5

Distinctiveness Conflict Risk

"Axum 0.8+", "Rust 2024 edition", and "SQLx" pin a clear niche with distinct triggers and minimal conflict risk — only a Rust/Axum scaffolding request would match this description. It matches anchor 5 ('clear niche with distinct triggers; minimal conflict risk') exactly.

5 / 5

Total

16

/

20

Passed

Validation

87%

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

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (521 lines); consider splitting into references/ and linking

Warning

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

14

/

16

Passed

Repository

achreftlili/deep-dev-skills

Path

backend-rust/axum-project-starter/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.