Skip to main content

run-api-contract-audit

Runs a static, name-matching heuristic diff between backend Pydantic/SQLModel response fields and the frontend's hand-written API TypeScript interfaces, to surface likely drift after either side changes. Use after editing a FastAPI endpoint's response model, a SQLModel/Pydantic schema, or the frontend's apiHandlers/types.ts — before assuming the two sides still agree on field names.

跳到安装

来源信息

仓库
districtr/districtr-v2
最近来源活动
2026年9月18日 14:42
检测到的 SKILL.md 语言
英语
星标
6
分支
3

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

文件资源管理器
2 个文件

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
run-api-contract-audit
description
Runs a static, name-matching heuristic diff between backend Pydantic/SQLModel response fields and the frontend's hand-written API TypeScript interfaces, to surface likely drift after either side changes. Use after editing a FastAPI endpoint's response model, a SQLModel/Pydantic schema, or the frontend's apiHandlers/types.ts — before assuming the two sides still agree on field names.
# API contract audit This repo has no generated OpenAPI client: `app/src/app/utils/api/apiHandlers/types.ts` is hand-maintained against the backend's Pydantic/SQLModel response models, so the two can drift silently whenever one side changes without the other. ```bash python3 ${CLAUDE_SKILL_DIR}/scripts/audit_contracts.py ``` Run from the repo root (`--help` for path overrides). Exits nonzero on drift, so it works as a pre-push check. The report explains its own labels and prints its limitations at the end of every run — treat a reported drift as a lead to verify against the actual endpoint and type definitions, not a verdict. This audit is a stopgap. Issue #756 proposes generating the client types from the backend's OpenAPI schema (HeyAPI); if that lands, the drift class this skill checks for stops existing and the skill retires with it.
在 GitHub 查看