Install
Works with Claude Code. Read the repository before you give any tool access to your data.
npx agentmarket install skill/tomicassanelli-fastapi-backend
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: backend
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/fastapi-backend
Tools it pre-approves 7
From allowed-tools in SKILL.md: the agent may use these without asking you each time.
Read,Edit,Write,Glob,Grep,Bash,Task
What's inside
- Skill name
fastapi-backend- Description
- FastAPI patterns for tickets-tool backend. Trigger: Working on backend/ API routes, models, services, and utilities.
- License
- MIT
- Allowed tools
- Read,, Edit,, Write,, Glob,, Grep,, Bash,, Task
- Metadata
- author: tickets-tool · version: 1.0
- Instructions
- 142 lines in SKILL.md · view on GitHub
Before installing
- Pre-approves some shell commands
Files (1)
- SKILL.md
SKILL.md (first lines)
## When to Apply
Use this skill when:
- Creating or modifying FastAPI routes
- Defining Pydantic request/response models
- Adding business logic or AI integration services
- Working with the Groq client or external providers
---
## Critical Rules
### 1. Thin Routes, Thick Services
```python
# ✅ Route delegates to service
@router.post("/api/analyze")
async def analyze_request(req: UserRequest):
ai_json = call_ai_and_parse(req.raw_text, MODEL_NAME)
# ... parse and return
# ❌ Route contains business logic
@router.post("/api/analyze")
async def analyze_request(req: UserRequest):
client = get_ai_client()
response = client.chat.completions.create(...)
# ... complex logic in route
```
### 2. Explicit Response Models
```python
# ✅ Always define response_model
@router.post("/api/analyze", response_model=TicketResponse)
async def analyze_request(req: UserRequest):
...
# ✅ Union for alternative flows
@router.post("/api/analyze", response_model=Union[TicketResponse, ClarifyResponse])
async def analyze_request(req: UserRequest):
...
```
### 3. Pydantic Models in Dedicated File
```python
# app/models.py
class TicketMetadata(BaseModel):
titulo: str = Field(..., description="Short and clear title")
tipo: str = Field(..., description="Must be 'Bug', 'Feature' or 'Task'")
class TicketResponse(BaseModel):
metadata: TicketMetadata
markdown: str
```
### 4. Proper Error Handling
```python
# ✅ Log and raise generic error
except Exception as e:
logger.exception("Unexpected error in analyze_request")
raise HTTPException(status_code=500, detail="Internal server error")
# ✅ Re-raise HTTP exceptions
except HTTPException:
raise
```
---
## Decision Tree
```text
Adding new endpoint? -> Add to routes.py, create models in models.py
Business logic/AI call? -> Create service in services/ticket_service.py
Shared utilities? -> Add to utils.py
Need validation? -> Use Pydantic Field(...) with description
```
---
## Project Structure
```
backend/
├── main.py # App entry point
└── app/
├── routes.py # Route handlers (thin)
├── models.py # Pydantic models
├── utils.py # Shared utilities
└── services/
└── ticket_service.py # Business logic
```
---
## Service Pattern
```python
def call_ai_and_parse(raw_text: str, model_name: str) -> dict:
"""Service function that wraps external provider."""
client = get_ai_client()
try:
response = client.chat.completions.create(...)
except Exception as e:
logger.exception("Provider call failed")
raise
try:
return json.loads(response.choices[0].message.content)
except json.JSONDecodeError:
logger.exception("Invalid JSON from provider")
raise
```
---
## CommandsFrom TomiCassanelli/tickets-tool, MIT.
More from TomiCassanelli/tickets-tool
- 0.414score
skill-creator
tickets-tool
Creates new AI agent skills following this repository's skill format and conventions.
SkillDFreshness: DClaude Code - 0.406score
skill-sync
tickets-tool
Syncs skill metadata to AGENTS.md Auto-invoke sections.
SkillDFreshness: DClaude Code +9 - 0.406score
tailwind-3
tickets-tool
Tailwind CSS 3 patterns and best practices for consistent styling in the Next.js frontend.
SkillDFreshness: DClaude Code - 0.406score
backend-qa
tickets-tool
QA checks focused on code errors (import errors, syntax errors, unresolved references).
SkillDFreshness: DClaude Code +9 - 0.406score
typescript
tickets-tool
TypeScript strict patterns and best practices for type safety and consistency.
SkillDFreshness: DClaude Code - 0.404score
react-18
tickets-tool
React 18 patterns for Next.js 14 App Router.
SkillDFreshness: DClaude Code - 0.402score
web-data-fetching
tickets-tool
Frontend data-fetching patterns for fetch API, loading/error states, retries, cancellation, and API config.
SkillDFreshness: DClaude Code - 0.402score
tdd
tickets-tool
Test-Driven Development workflow for implementing features, fixing bugs, and refactoring safely.
SkillDFreshness: DClaude Code
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 2
- Last commit (this folder)
- Mar 23, 2026 (7 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- Version
- 1.0
- License
- MIT
- Repository
- github.com/TomiCassanelli/tickets-tool
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from tickets-tool
- 0.414score
skill-creator
tickets-tool
Creates new AI agent skills following this repository's skill format and conventions.
SkillDFreshness: DClaude Code - 0.406score
skill-sync
tickets-tool
Syncs skill metadata to AGENTS.md Auto-invoke sections.
SkillDFreshness: DClaude Code +9 - 0.406score
tailwind-3
tickets-tool
Tailwind CSS 3 patterns and best practices for consistent styling in the Next.js frontend.
SkillDFreshness: DClaude Code - 0.406score
backend-qa
tickets-tool
QA checks focused on code errors (import errors, syntax errors, unresolved references).
SkillDFreshness: DClaude Code +9 - 0.406score
typescript
tickets-tool
TypeScript strict patterns and best practices for type safety and consistency.
SkillDFreshness: DClaude Code - 0.404score
react-18
tickets-tool
React 18 patterns for Next.js 14 App Router.
SkillDFreshness: DClaude Code
Cite this page
fastapi-backend skill. Agent Mart. https://agentmart.dev/skills/tomicassanelli-fastapi-backend (last updated 2026-10-24)