gm-agent-docs
gm-agent-docs
为任意项目生成高质量的 CLAUDE.md 和 AGENTS.md。
核心原则
好的 agent md 文档 = 操作手册,不是人类文档。
- 命令优先 — 每条指令必须能回答"什么命令证明做对了"
- 代码示例 > 文字描述 — 一个 snippet 胜过三段解释
- 精简 — 100 行以内(上限 200,超过 300 agent 会丢失信号)
- 只写 agent 推断不出的 — 标准语法、库用法不用写
- 三层边界 — ✅ 必须做 / ⚠️ 先问 / 🚫 绝不做
- 持续演进 — agent 每犯一次可预防的错误,加一条规则
流程
Step 1: 分析项目
扫描项目根目录,收集 6 大核心领域的信息:
| 领域 | 扫描目标 | 产出 |
|---|---|---|
| 命令 | package.json scripts / Makefile / pyproject.toml / Cargo.toml / go.mod | 构建、测试、lint、启动的具体命令 |
| 测试 | jest.config / vitest.config / pytest.ini / test 目录 | 框架、运行方式、覆盖率要求 |
| 项目结构 | 顶层目录 + 框架约定 | 关键目录职责、架构模式 |
| 代码风格 | eslint / prettier / ruff / .editorconfig + 最近 10 条 commit | 命名规范、格式规则(用代码示例展示) |
| Git 工作流 | 最近 20 条 commit message + branch 命名 | commit 格式、分支策略 |
| 边界 | .gitignore / CI 配置 / 敏感文件 | 不能碰的文件、需要审批的操作 |
额外扫描(大型项目):
docs//ADR//specs/→ 生成文档索引表- monorepo 子包 → 生成目录级 scoping 建议
- CI/CD 配置 → 提取部署约束
输出分析摘要给用户确认,再进入生成。
Step 2: 生成 CLAUDE.md
必须包含的 6 个 section(按此顺序):
# 项目名
一句话说明(技术栈 + 版本,要具体)。
## 常用命令
直接可执行的 shell 命令,含 flags。按频率排序:
- 开发服务器
- 运行测试
- lint / format
- 构建 / 部署
## 写代码时
- 架构约束(目录职责、依赖方向)
- 代码风格(用 ✅/❌ 代码示例展示,不用文字描述)
- 验证命令
## 完成标准
编号列表,每条 = 具体命令 + 期望退出码:
1. `命令` 退出码 0
2. `命令` 退出码 0
3. commit message 符合格式
## 卡住时
- 具体场景 → 具体操作
- 连续失败 3 次 → 停下来报告,不要继续尝试
- 绝不:列出禁止的破坏性操作
## 参考文档(可选,大型项目才加)
| 文件 | 何时读取 |
|------|---------|
| `docs/xxx.md` | 做 xxx 时 |
禁止出现的内容:
- 大段散文、项目历史
- "请注意"、"建议"、"小心" 等模糊措辞
- agent 能从代码推断的信息
- API key、密码等敏感信息
- 没有排序的矛盾优先级
Step 3: 生成 AGENTS.md
只写一行:
See [CLAUDE.md](./CLAUDE.md) for all project instructions.
Step 4: 输出与确认
- 展示生成的 CLAUDE.md 给用户 review
- 用户确认后写入文件
- 如果已有 CLAUDE.md,展示 diff 再确认覆盖
示例输出
Next.js 项目
# my-app
Next.js 14 全栈应用,App Router + Prisma + PostgreSQL + TypeScript。
## 常用命令
pnpm dev # localhost:3000
pnpm build # 生产构建
pnpm test # vitest
pnpm lint # eslint + prettier check
## 写代码时
- 页面放 `app/`,API 路由放 `app/api/`
- 数据库操作只通过 `lib/db.ts`
- 服务端组件默认,客户端组件加 `'use client'`
```typescript
// ✅
export async function getUser(id: string): Promise<User> {
return db.user.findUniqueOrThrow({ where: { id } });
}
// ❌
export async function getUser(id) {
const user = await db.user.findUnique({ where: { id } });
return user;
}
完成标准
pnpm build退出码 0pnpm test退出码 0pnpm lint退出码 0- commit:
type(scope): description
卡住时
- 类型错误修不好 →
pnpm tsc --noEmit看完整报错 - 数据库冲突 →
pnpm prisma migrate reset(会清数据,先确认) - 绝不:跳过 build、直接改 migrations、force push main
### Python 项目
```markdown
# my-service
FastAPI REST API,Python 3.12 + SQLAlchemy + Alembic + PostgreSQL。
## 常用命令
uv run uvicorn app.main:app --reload # dev server :8000
uv run pytest -v # 测试
uv run ruff check . # lint
uv run mypy app/ --strict # 类型检查
## 写代码时
- 路由放 `app/api/`,模型放 `app/models/`
- 所有函数必须有 type hints
- 依赖注入用 `Depends()`
```python
# ✅
async def get_user(user_id: int, db: Session = Depends(get_db)) -> User:
user = await db.get(User, user_id)
if not user:
raise HTTPException(status_code=404)
return user
# ❌
async def get_user(user_id, db):
return await db.query(User).filter_by(id=user_id).first()
完成标准
uv run ruff check .退出码 0uv run pytest -v退出码 0uv run mypy app/ --strict退出码 0- commit:
type: description
卡住时
- 测试失败 3 次 → 停下来,贴完整 traceback
- migration 冲突 →
alembic downgrade -1再重新生成 - 绝不:删 migration 文件、跳过 mypy、改 alembic_version 表
More from zeroz-lab/gm-skills
ui-fork
从一张或多张 UI 截图中提炼产品级设计系统草案、组件规则、design tokens 和后续 AI 延续设计约束。Use when users want to analyze UI screenshots, fork an interface style, create reusable design guidelines from images, extract implementation-oriented design-system specs, or generate prompt contracts for future AI-generated pages.
5auto-skill-fit
扫描项目技术栈,推荐并安装匹配的 agent skills 套装。Use when starting a new project, onboarding to a codebase, or when the user asks "what skills should I install", "recommend skills for this project", "auto setup skills".
4pngimg-download
Search and download free transparent PNG images from pngimg.com. Use when the user wants to find or download PNG images with transparent backgrounds, clipart, or icons for design projects.
3gm-topic-engine
从零散想法、笔记、评论、私信、收藏链接、草稿和亲身经历中提炼适合公众号与博客的可发布选题。补强切口、筛掉弱题、排序优先级,并输出结构化选题池。
1gm-x-hook-writer
Use when users need stronger X/Twitter hooks, first lines, or thread openers from a topic, draft, opinion, or observation without writing the full post.
1gm-de-ai-article
用于修改公众号文章、博客草稿、newsletter 与观点文中明显模板化、套话化、过度工整的 AI 写作痕迹,并保住作者判断、经历与表达控制权。
1