SKILLEMALL.ai

AB fastapi

Builds, debugs, and hardens FastAPI services: async endpoints, Pydantic models, dependency injection, auth, and deployment. Use when writing or reviewing a FastAPI app, router, or schema; when the API hangs or every route slows because a sync driver or CPU work blocks the event loop; when a request returns an unexpected 422, a POST becomes a 307, or a 500 arrives with no CORS headers; when migrating pydantic v1 to v2 (`model_dump`, `from_attributes`, `field_validator`); when `Depends` runs too often, `yield` cleanup misfires, or dependency overrides do not take; when SQLAlchemy raises `QueuePool limit` or `MissingGreenlet`, or connections leak across workers; when TestClient, httpx `AsyncClient`, or pytest-asyncio fail with a closed event loop; when uvicorn or gunicorn workers, graceful shutdown, `root_path`, or proxy headers need deciding; or when background tasks, WebSockets, SSE, uploads, or the OpenAPI docs misbehave. Not for Django, Flask, or general Python — `django`, `flask`, `py`.

ClawHub Agent Skills author: Iván v1.0.1 MIT-0 23 files body ≈ 4 630 tokens Open the sourceclawhub.ai analyzed 2 d ago

As a process B 66/100 · Nearly there — weak spots: inputs and preconditions, running it twice

GeneratorSoftware developmentInfrastructuretype and topics are labelled automatically from the skill text
JSON
Technical rating
A
92/100
safety, quality, tests
Safety 60%
100
Quality 40%
81
Run on models
none yet
Process rating
B
66/100
Nearly there
Inputs and preconditions w 11
0
Running it twice w 4
30
When it triggers w 12
50
the three weakest of ten parameters · all ten

How to improve

    For the model run — optional
    • Your own cases (evals/evals.json, 4–6 real requests with expected answers): the full check would then run those instead of a model-drafted suite.
    • A spec.yaml with trigger phrases and assertions — a behaviour contract for CI; `skilltest init` writes a template.

    Guard findings · 0

    ✓ No critical or high findings

    Files scanned: 23. Evidence is masked. Grey chips explain why severity was lowered.

    Against the Agent Skills spec

    • note frontmatter-key unknown frontmatter key "slug"
    • note frontmatter-key unknown frontmatter key "changelog"
    • note frontmatter-key unknown frontmatter key "homepage"

    Process rating: all ten parameters 66/100

    • 0Inputs and preconditions. Does not say what the process needs to start
    • 30Running it twice. 12 mutating operations with no state check
    • 50When it triggers. No condition that starts the skill
    • 60Tools and files. Uses tools (python) that frontmatter does not declare
    • 60Result and completion. Output format stated, no completion criterion
    • 70Execution cost. Instruction body is 4630 tokens
    • 100Steps. 45 steps
    • 100Failures and branches. 4 branches, has a failure section
    • 100Consistency. Name and required fields are in place
    • 100Progress reporting. Reports progress
    • medium Safety rules and hard prohibitions inside a skill: they belong in the system prompt, here they protect nothing
    • low 11 top-level sections: this looks like several domains in one skill

    Everything here is measured from the skill text rather than judged by a model, so the numbers are checkable. A parameter weighs more when it is a more common reason for the process to stall.

    Quality signals

    • +5Description has no quoted example phrases that should trigger the skill
    • +3Description length 1003: 120–800 characters recommended
    • +4No input/output examples
    • +1No license
    • +2Single-language instructions
    • +4Description says when NOT to use the skill
    • +4Structure: 11 headings
    • +3Step-by-step instructions: 45 items
    • +3Output format is stated explicitly

    Quality base 70; lint remarks subtract, signals add up to 100. Result: 81.

    External checks

    ClawHub: clean
    This FastAPI skill is a documentation-only guide whose behavior is coherent with helping users build, debug, and harden FastAPI services.
    LLM: benign (high) · VirusTotal: · 26 Jul 2026