RuleStack

Configs

Stacks

Compare

Diff

RuleStack

Configs

Stacks

Compare

Diff

Read API

RuleStack

Configs

Stacks

Compare

Diff

Read API

Configs/Cursor rules/unoplat/unoplat-code-confluence

Cursor rule

unoplat-code-confluence-ingestion/code-confluence-flow-bridge/.cursor/rules/fastapi-pydantic.mdc

[object Object]

Cursor rules

Quality

38/100

Scores the file, not the repository.

Length

500 words

0 headings · 0 code blocks

Repository

95

— · pushed 4 days ago

Last changed

2 days ago

First indexed 2 days ago.
unoplat/unoplat-code-confluence/unoplat-code-confluence-ingestion/code-confluence-flow-bridge/.cursor/rules/fastapi-pydantic.mdcRawGitHub
1---
2description:
3globs:
4alwaysApply: true
5---
6 
7 
8 You are an expert in Python, FastAPI, and scalable API development.
9
10 Key Principles
11 - Write concise, technical responses with accurate Python examples.
12 - Use functional, declarative programming; avoid classes where possible.
13 - Prefer iteration and modularization over code duplication.
14 - Use descriptive variable names with auxiliary verbs (e.g., is_active, has_permission).
15 - Use lowercase with underscores for directories and files (e.g., routers/user_routes.py).
16 - Favor named exports for routes and utility functions.
17 - Use the Receive an Object, Return an Object (RORO) pattern.
18
19 Python/FastAPI
20 - Use def for pure functions and async def for asynchronous operations.
21 - Use type hints for all function signatures. Prefer Pydantic models over raw dictionaries for input validation.
22 - File structure: exported router, sub-routes, utilities, static content, types (models, schemas).
23 - Avoid unnecessary curly braces in conditional statements.
24 - For single-line statements in conditionals, omit curly braces.
25 - Use concise, one-line syntax for simple conditional statements (e.g., if condition: do_something()).
26
27 Error Handling and Validation
28 - Prioritize error handling and edge cases:
29 - Handle errors and edge cases at the beginning of functions.
30 - Use early returns for error conditions to avoid deeply nested if statements.
31 - Place the happy path last in the function for improved readability.
32 - Avoid unnecessary else statements; use the if-return pattern instead.
33 - Use guard clauses to handle preconditions and invalid states early.
34 - Implement proper error logging and user-friendly error messages.
35 - Use custom error types or error factories for consistent error handling.
36
37 Dependencies
38 - FastAPI
39 - Pydantic v2
40 - Async database libraries like sqlmodel
41 - httpx for async http clients
42
43 FastAPI-Specific Guidelines
44 - Use functional components (plain functions) and Pydantic models for input validation and response schemas.
45 - Use declarative route definitions with clear return type annotations.
46 - Use def for synchronous operations and async def for asynchronous ones.
47 - Minimize @app.on_event("startup") and @app.on_event("shutdown"); prefer lifespan context managers for managing startup and shutdown events.
48 - Use middleware for logging, error monitoring, and performance optimization.
49 - Optimize for performance using async functions for I/O-bound tasks, caching strategies, and lazy loading.
50 - Use HTTPException for expected errors and model them as specific HTTP responses.
51 - Use middleware for handling unexpected errors, logging, and error monitoring.
52 - Use Pydantic's BaseModel for consistent input/output validation and response schemas.
53
54 Performance Optimization
55 - Minimize blocking I/O operations; use asynchronous operations for all database calls and external API requests.
56 - Implement caching for static and frequently accessed data using tools like Redis or in-memory stores.
57 - Optimize data serialization and deserialization with Pydantic.
58 - Use lazy loading techniques for large datasets and substantial API responses.
59
60 Key Conventions
61 1. Rely on FastAPI’s dependency injection system for managing state and shared resources.
62 2. Prioritize API performance metrics (response time, latency, throughput).
63 3. Limit blocking operations in routes:
64 - Favor asynchronous and non-blocking flows.
65 - Use dedicated async functions for database and external API operations.
66 - Structure routes and dependencies clearly to optimize readability and maintainability.
67
68 Refer to FastAPI documentation for Data Models, Path Operations, and Middleware for best practices.
69
70 

What it covers

code-styletypes

Stack — with the evidence

typescript

(1.00)

python

(1.00)

node

(0.70)

react

(0.70)

fastapi

(0.70)

postgres

(0.70)

tailwind

(0.70)

vite

(0.70)

pytest

(0.70)

playwright

(0.70)

eslint

(0.70)

ruff

(0.70)

github-actions

(0.60)

javascript

(0.50)

Glob targeting

  • [object Object]

Format

Cursor rules

The most expressive format here. Many small .mdc files, each with frontmatter declaring when it should load, so a rule about migrations only enters context when a migration is open. Costs the most to maintain and only one editor reads it.

What the corpus says about it

Repository

Owner
unoplat
Language
—
License
—
Archived
no

All configs in this repo

Also in unoplat/unoplat-code-confluence

Diff this repo’s formats

One repository carrying more than one format is the comparison this product exists for: does anyone actually write different content in each file, or is one a copy of the other?

The other instruction files in this repository
RepositoryFormatStackCoversScoreChanged
unoplat/unoplat-code-confluenceAGENTS.md · 95AGENTS.mdtypescriptpython+12testlint-formatmonorepoagent-behaviour48/1002 days ago
unoplat/unoplat-code-confluenceunoplat-code-confluence-cli/AGENTS.md · 95AGENTS.mdtypescriptpython+12setupbuildtestlint-format+384/1002 days ago
unoplat/unoplat-code-confluenceunoplat-code-confluence-commons/.cursor/rules/use-think-tool.mdc · 95Cursor rulestypescriptpython+12no sections30/1002 days ago
unoplat/unoplat-code-confluenceunoplat-code-confluence-commons/AGENTS.md · 95AGENTS.mdtypescriptpython+12setupbuildtestlint-format+288/1002 days ago
unoplat/unoplat-code-confluenceunoplat-code-confluence-docs/AGENTS.md · 95AGENTS.mdtypescriptpython+14setupbuildtestlint-format+375/1002 days ago
unoplat/unoplat-code-confluenceunoplat-code-confluence-docs/CLAUDE.md · 95CLAUDE.mdtypescriptpython+14testgitagent-behaviour43/1002 days ago
unoplat/unoplat-code-confluenceunoplat-code-confluence-frontend/.cursor/rules/react-vite-tanstack.mdc · 95Cursor rulestypescriptpython+12styleagent-behaviour38/1002 days ago
unoplat/unoplat-code-confluenceunoplat-code-confluence-frontend/.cursor/rules/shadcn-tanstack-knowledge.mdc · 95Cursor rulestypescriptpython+12teststyleuiperformance48/1002 days ago
unoplat/unoplat-code-confluenceunoplat-code-confluence-frontend/AGENTS.md · 95AGENTS.mdtypescriptpython+14setupbuildtestlint-format+6100/1002 days ago
unoplat/unoplat-code-confluenceunoplat-code-confluence-frontend/CLAUDE.md · 95CLAUDE.mdtypescriptpython+14setupstylearchui+162/1002 days ago
unoplat/unoplat-code-confluenceunoplat-code-confluence-ingestion/code-confluence-flow-bridge/.cursor/rules/code-structure.mdc · 95Cursor rulestypescriptpython+12no sections16/1002 days ago
unoplat/unoplat-code-confluenceunoplat-code-confluence-ingestion/code-confluence-flow-bridge/AGENTS.md · 95AGENTS.mdtypescriptpython+13setupbuildtestlint-format+377/1002 days ago
unoplat/unoplat-code-confluenceunoplat-code-confluence-ingestion/code-confluence-flow-bridge/CLAUDE.md · 95CLAUDE.mdtypescriptpython+13testlint-formatstylearch+696/1002 days ago
unoplat/unoplat-code-confluenceunoplat-code-confluence-openmetadata/AGENTS.md · 95AGENTS.mdtypescriptpython+12setupbuildtestlint-format+279/1002 days ago
unoplat/unoplat-code-confluenceunoplat-code-confluence-query-engine/AGENTS.md · 95AGENTS.mdtypescriptpython+13setupbuildtestlint-format+598/1002 days ago
unoplat/unoplat-code-confluenceunoplat-code-confluence-query-engine/CLAUDE.md · 95CLAUDE.mdtypescriptpython+13agent-behaviour25/1002 days ago
Diff against AGENTS.md Diff against unoplat-code-confluence-cli/AGENTS.md Diff against unoplat-code-confluence-commons/.cursor/rules/use-think-tool.mdc Diff against unoplat-code-confluence-commons/AGENTS.md Diff against unoplat-code-confluence-docs/AGENTS.md Diff against unoplat-code-confluence-docs/CLAUDE.md Diff against unoplat-code-confluence-frontend/.cursor/rules/react-vite-tanstack.mdc Diff against unoplat-code-confluence-frontend/.cursor/rules/shadcn-tanstack-knowledge.mdc Diff against unoplat-code-confluence-frontend/AGENTS.md Diff against unoplat-code-confluence-frontend/CLAUDE.md Diff against unoplat-code-confluence-ingestion/code-confluence-flow-bridge/.cursor/rules/code-structure.mdc Diff against unoplat-code-confluence-ingestion/code-confluence-flow-bridge/AGENTS.md Diff against unoplat-code-confluence-ingestion/code-confluence-flow-bridge/CLAUDE.md Diff against unoplat-code-confluence-openmetadata/AGENTS.md Diff against unoplat-code-confluence-query-engine/AGENTS.md Diff against unoplat-code-confluence-query-engine/CLAUDE.md

Similar configs

Same format, overlapping stack, ranked by quality.

Same format, overlapping stack, ranked by quality
RepositoryFormatStackCoversScoreChanged
hiromaily/go-crypto-wallet.cursor/rules/typescript.mdc · 126Cursor rulesgobun+5setupbuildtestlint-format+6100/1003 days ago
TechSquidTV/Hermes.cursor/rules/10-hermes-api.mdc · 45Cursor rulestypescriptpytest+15testlint-formatstylearch+5100/1003 days ago
markstev/mark-starter.cursor/rules/frontend.mdc · 0Cursor rulestypescriptturborepo+14setuptestlint-formatstyle+699/1003 days ago
Allymahmoud/case-intake-platform.cursor/rules/frontend.mdc · 0Cursor rulestypescriptturborepo+13setuptestlint-formatstyle+799/1003 days ago
dodgecfr/combatfilms-webapp.cursor/rules/frontend.mdc · 0Cursor rulestypescriptturborepo+15setuptestlint-formatstyle+799/1003 days ago
deifos/clipmira-subtitles.cursor/rules/frontend.mdc · 1Cursor rulestypescriptnextjs+5setuptestlint-formatstyle+799/1003 days ago
langflow-ai/langflow.cursor/rules/docs_development.mdc · 153kCursor rulespythonnode+16setupbuildtestlint-format+797/1003 days ago
TechSquidTV/Hermes.cursor/rules/20-hermes-api-tests.mdc · 45Cursor rulestypescriptpytest+15teststyletesting-strategysecurity+397/1003 days ago
RuleStack

Built by

Kynth Studio

Directory

Configs
Stacks
Compare formats
Diff two configs
Best AGENTS.md examples

Formats

AGENTS.md
CLAUDE.md
Cursor rules
Copilot instructions

Reference

Read API
Corpus health
Privacy Policy
Terms

RuleStack

RuleStack

Built by

Kynth Studio

Directory

Configs
Stacks
Compare formats
Diff two configs
Best AGENTS.md examples

Formats

AGENTS.md
CLAUDE.md
Cursor rules
Copilot instructions

Reference

Read API
Corpus health
Privacy Policy
Terms

RuleStack

RuleStack

Built by

Kynth Studio

Directory

Configs
Stacks
Compare formats
Diff two configs
Best AGENTS.md examples

Formats

AGENTS.md
CLAUDE.md
Cursor rules
Copilot instructions

Reference

Read API
Corpus health
Privacy Policy
Terms

RuleStack