SuperAPI AI 工具集

project-docs

编程与开发

查看项目

更新于 10-16 09:11

技能介绍

用途

project-docs 是一个项目文档生成技能,通过分析代码库来生成结构化文档。其目标是产出反映实际代码的文档,而不是设想中的架构。

何时使用

  • 新项目需要初始文档
  • 文档缺失或已过时
  • 需要让某人快速上手代码库
  • 重构后刷新文档

工作流程

1. 检测项目类型

扫描项目根目录以判断项目类型,依据以下指示文件:

指示文件 项目类型
wrangler.jsonc / wrangler.toml Cloudflare Worker
vite.config.ts + src/App.tsx React SPA
astro.config.mjs Astro 站点
next.config.js Next.js 应用
package.json 含 hono Hono API
src/index.ts 含 Hono API 服务器
drizzle.config.ts 含数据库层
schema.ts 或 schema/ 含数据库 schema
pyproject.toml / setup.py Python 项目
Cargo.toml Rust 项目

2. 询问要生成哪些文档

可选文档包括:

  1. ARCHITECTURE.md — 系统概览、技术栈、目录结构、关键流程
  2. API_ENDPOINTS.md — 路由、方法、参数、响应结构、认证
  3. DATABASE_SCHEMA.md — 表、关系、迁移、索引
  4. 以上全部

只提供与项目匹配的文档。静态站点不提供 API_ENDPOINTS.md;没有数据库则不提供 DATABASE_SCHEMA.md。

3. 扫描代码库

针对每个请求的文档读取相关源文件:

  • ARCHITECTURE.md:package.json / pyproject.toml(技术栈、依赖)、入口点(src/index.ts、src/main.tsx、src/App.tsx)、配置文件(wrangler.jsonc、vite.config.ts、tsconfig.json)、目录结构(前两层)、关键模块及其导出。
  • API_ENDPOINTS.md:路由文件(src/routes/、src/api/ 或 index 内联)、中间件文件(认证、CORS、日志)、请求/响应类型或 Zod schema、错误处理模式。
  • DATABASE_SCHEMA.md:Drizzle schema 文件(src/db/schema.ts、src/schema/)、迁移文件(drizzle/、migrations/)、原始 SQL 文件(如有)、种子文件(如有)。

4. 生成文档

将每个文档写入 docs/ 目录(不存在则创建)。如果项目在该目录已有文档,则提供更新而非覆盖。对于没有 docs/ 目录的小项目,写入项目根目录。

文档模板

ARCHITECTURE.md

包含:概览(一段话说明项目做什么及结构)、技术栈表格(层、技术、版本,如运行时、框架、数据库、ORM、前端、样式)、目录结构(带注释的树,前两层及用途说明)、关键流程(逐步说明请求→中间件→处理器→数据库→响应)、配置(关键配置文件及其控制内容)、部署(如何部署、所需环境变量、构建命令)。

API_ENDPOINTS.md

包含:基础 URL、认证(方式:Bearer token、会话 cookie、API key 或无;令牌来源与获取方式)、端点(按组划分,每个端点列出方法路径、认证要求、参数、响应、错误)、错误格式(标准错误响应结构)、速率限制(如适用)。

DATABASE_SCHEMA.md

包含:引擎(如 Cloudflare D1 (SQLite)、PostgreSQL、MySQL)、表(列、类型、约束、描述)、关系(外键、连接模式、级联规则)、索引(非主键索引及存在原因)、迁移(生成与应用命令,如 npx drizzle-kit generate、npx wrangler d1 migrations apply DB --local、npx wrangler d1 migrations apply DB --remote)、种子数据(引用种子脚本,如有)。

质量规则

  • 记录已存在的内容,而非计划中的内容——读取实际代码,不虚构端点或表
  • 包含版本号——从 package.json/lock 文件提取,而非凭记忆
  • 展示真实响应结构——从代码中的 TypeScript 类型或 Zod schema 复制
  • 保持可扫读——多用表格而非段落,多用代码块而非散文
  • 不重复 CLAUDE.md——若架构信息已在 CLAUDE.md 中,则移至 ARCHITECTURE.md 或引用它
  • 标记缺口——发现未文档化的路由或用途不明的表时,用 <!-- TODO: document purpose --> 标注

更新已有文档

如果文档已存在:读取现有文档;与当前代码库对比差异;向用户展示变更(新增端点、移除的表、更新的技术栈);应用更新时保留任何手写笔记或章节;绝不静默覆盖用户添加的自定义内容。

限制

资料未提供该技能的收费、价格、平台支持范围或具体效果数据。