FastAPI web framework patterns. Triggers on: fastapi, api endpoint, dependency injection, pydantic model, openapi, swagger, starlette, async api, rest api, uvicorn.
74
63%
Does it follow best practices?
Impact
92%
1.53xAverage score across 3 eval scenarios
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./data/skills-md/0xdarkmatter/claude-mods/python-fastapi-patterns/SKILL.mdQuality
Discovery
62%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 excels at trigger term coverage with a comprehensive list of FastAPI-related keywords, making it highly distinctive. However, it is severely lacking in specificity of capabilities — it never describes what concrete actions the skill performs (e.g., creating routes, defining models, configuring middleware). Adding explicit capability descriptions would significantly improve this skill's usefulness.
Suggestions
Add concrete actions describing what the skill does, e.g., 'Creates API endpoints, defines Pydantic request/response models, configures dependency injection, sets up middleware, and generates OpenAPI documentation.'
Reformat the trigger list into a proper 'Use when...' clause, e.g., 'Use when the user asks about FastAPI, building REST APIs, defining Pydantic models, or configuring uvicorn.'
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | The description says 'FastAPI web framework patterns' which is vague and abstract. It does not list any concrete actions like 'create endpoints', 'define routes', 'configure middleware', or 'validate request bodies'. It only names the domain without describing what the skill actually does. | 1 / 3 |
Completeness | The 'when' is partially addressed through the 'Triggers on:' clause listing keywords, but the 'what' is extremely weak — it only says 'FastAPI web framework patterns' without explaining what concrete tasks the skill performs. There is no explicit 'Use when...' clause, but the triggers list serves a similar function, capping this at 2. | 2 / 3 |
Trigger Term Quality | The description includes a strong set of natural trigger terms: 'fastapi', 'api endpoint', 'dependency injection', 'pydantic model', 'openapi', 'swagger', 'starlette', 'async api', 'rest api', 'uvicorn'. These cover many natural variations a user would say when working with FastAPI. | 3 / 3 |
Distinctiveness Conflict Risk | The trigger terms are highly specific to FastAPI and its ecosystem (starlette, uvicorn, pydantic model, openapi/swagger). This creates a clear niche that is unlikely to conflict with generic web development or other framework-specific skills. | 3 / 3 |
Total | 9 / 12 Passed |
Implementation
64%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This is a solid reference-style skill with high-quality, executable FastAPI code examples covering the most important patterns. Its main weaknesses are the lack of a clear workflow sequence for building an API end-to-end, missing validation/verification steps, and referenced bundle files that don't actually exist. The inline content could be trimmed by moving advanced patterns (custom exceptions, lifespan management) to the referenced files.
Suggestions
Add a brief workflow section at the top showing the recommended sequence for building a FastAPI endpoint (e.g., 1. Define models → 2. Create route → 3. Add dependencies → 4. Test with TestClient or curl)
Include a validation step such as 'Verify the endpoint works: `curl http://localhost:8000/docs` to check OpenAPI schema' or mention running the app with uvicorn
Provide the referenced bundle files (dependency-injection.md, middleware-patterns.md, etc.) or remove the references to avoid broken links
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The content is mostly efficient with good code examples, but some patterns (like the basic application setup and exception handling) include explanatory comments and docstrings that Claude already knows. The quick reference table is a nice touch but the overall content could be tighter. | 2 / 3 |
Actionability | All code examples are concrete, executable Python with proper imports, type annotations, and realistic patterns. The examples cover the full spectrum from basic app setup to dependency injection, exception handling, and router organization — all copy-paste ready. | 3 / 3 |
Workflow Clarity | The skill presents individual patterns clearly but lacks a workflow sequence for building an API (e.g., scaffold → define models → add routes → test). There's no validation or verification guidance — no mention of running tests, checking OpenAPI docs, or validating the API works after setup. | 2 / 3 |
Progressive Disclosure | The skill references additional files (references/, scripts/, assets/) which is good structure, but no bundle files are actually provided, meaning the references are broken. The main content itself is somewhat long with all patterns inline rather than splitting advanced topics (like custom exception handlers or DI patterns) into the referenced files. | 2 / 3 |
Total | 9 / 12 Passed |
Validation
90%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 10 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
frontmatter_unknown_keys | Unknown frontmatter key(s) found; consider removing or moving to metadata | Warning |
Total | 10 / 11 Passed | |
2d09b29
Table of Contents
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.