# 智能体开发约束包 [English](README.md) | **中文** 一套**会自我进化**的开发约束系统:把开发中踩过的坑,自动沉淀成下次生效的规则。 **当前版本**:见 [`VERSION`](VERSION) · [变更日志](CHANGELOG.md) > ⚠️ **这里刻意不写版本号。** > 曾经写的是 `0.7.0`,而 `VERSION` 早就走到 0.25 —— 十几个版本没人同步, > 用户在仓库首页看到的永远是旧版本。 > 现在版本只有**一个来源**(`VERSION` 文件),README 只负责指过去。 > 仓库测试 `【R-011】` 会扫 README/docs,再出现硬编码版本号就会失败。 --- ## 它解决什么问题 大多数项目都有开发记录,但**记录 ≠ 约束**。典型症状: ``` job.md 写了 538 行开发记录 └── 但"必须遵守"区只有 2 条 ``` 于是同样的坑反复踩 —— **教训只被"记录"了,没被"执行"**。 本包打通「记录 → 规则 → 生效」这条链路,**并防止规则库自己膨胀成没人读的文档**。 --- ## 快速开始 ### 安装到项目 **一行命令,不用 clone:** ```bash npx github:962599627/agent-development-constraints install ``` > ⚠️ **这里必须写 `github:` 前缀。** > 包**还没有发布到 npm**(`npm view agent-development-constraints` 返回 404), > 所以更短的 `npx agent-development-constraints install` **现在会失败**。 > 之前的 README 一直写着短形式 —— 那是一条**不可能成功的指令**。 > 等发布到 npm 之后,短形式才可用;在那之前请用上面的 github 形式。 > > 实测(2026-10-05):`npx github:... install` 能完整跑通 —— > 规则库、`.githooks/pre-commit`、`AGENTS.md` 引用、基线都会就位。 就这样 —— 规则库、三套流程、可选的安全网会落到 `./agent-constraints/`, 并在你的 `AGENTS.md` 里加一段引用。 其余命令(同样带 `github:` 前缀): ```bash npx github:962599627/agent-development-constraints check # 脱敏检查(可选安全网) npx github:962599627/agent-development-constraints contribute # 提取【你】新增的规则 npx github:962599627/agent-development-constraints hooks # 启用提交前检查 npx github:962599627/agent-development-constraints help ``` **或者从 clone 安装**(效果相同 —— CLI 只是转交给这些脚本): ```powershell # Windows .\install.ps1 F:\my-project ``` ```bash # Linux / macOS ./install.sh /path/to/project ``` 脚本是**幂等**的: | 文件 | 重复安装时的行为 | |---|---| | `core/constraints.md`(你的规则库) | **保留不覆盖** —— 这是你积累的资产 | | `core/DISTILL.md` / `PRUNE.md` / `MERGE.md`、`core/stacks/` | 更新(随包升级) | | `templates/` | 更新 | | `AGENTS.md` 的引用段 | 原地刷新(靠 HTML 标记定位,不会重复追加) | > 想连规则库一起覆盖加 `--force`(先备份)。不想改 `AGENTS.md` 加 `--skip-agents`。 ### 安装后做三件事 1. **打开 `agent-constraints/core/constraints.md`**,删掉不适用的条目 —— 尤其看看**「快速定位 · 按症状查」**表,那是出问题时的入口 2. **打开 `agent-constraints/core/stacks/`** —— 技术栈坑位库 (`python` / `javascript` / `shell` / `git` / `platform`),整组替换成你自己的栈 3. **把规则库纳入版本管理**,它会随项目一起进化 ### 日常使用(关键) ``` 开发完成 / 修完 bug ↓ 问一句:这次有没有可以变成"下次自动生效"的约束? ↓ 有 ↓ 没有 跑 core/DISTILL.md 的流程提炼 结束 ↓ 跑 core/PRUNE.md 检查是否超限 ↓ 更新 constraints.md + 变更日志 ``` --- ## 目录结构 ``` agent-constraints/ ├── README.md 英文版(GitHub 默认) ├── README.zh-CN.md 中文版(本文件) ├── VERSION 版本号 ├── CHANGELOG.md 变更日志(含设计决策的理由) ├── CONTRIBUTING.md 怎么贡献规则 ├── install.ps1 / .sh 幂等安装脚本 ├── contribute.ps1 / .sh 靠安装时的基线,自动提取"你新增的规则" ├── core/ │ ├── constraints.md ★ 规则库(唯一需要 AI 读的产物) │ ├── DISTILL.md 提炼流程 + 可复用提示词 │ ├── PRUNE.md 精简流程 + 可复用提示词 │ ├── MERGE.md 合并流程(维护者视角)+ 可复用提示词 │ └── stacks/ 技术栈坑位库(按需加载) │ ├── python.md Python / Django / DRF │ ├── javascript.md JS / TS / Vue / Vite │ ├── shell.md PowerShell / bash │ ├── git.md git │ └── platform.md Windows / MySQL / Docker / Redis ├── templates/ │ ├── rule.md 单条规则模板(四要素) │ └── session-log.md 会话记录模板(提炼原料格式) └── examples/ └── case-study-blog.md 真实案例:从某博客项目提炼出的规则 ``` --- ## 快速定位 · 按症状查 规则库开头就是**症状索引** —— 因为出问题时,你手上拿的是**报错原文**, 不是"我现在在写哪个语言"。按语言找还得多想一步,按症状是直接命中: | 症状 | 很可能的原因 | 详见 | |---|---|---| | `Failed to connect ... port 443` 但 `curl` 能通 | git 在 HTTP/2 上挂起 | `stacks/git.md` | | 退出码 1,但命令实际成功了 | PowerShell 把 stderr 当错误 | `stacks/shell.md` | | 脚本报语法错误 + 中文乱码(`鏅鸿兘`) | `.ps1` 缺 UTF-8 BOM | `stacks/shell.md` | | **单独跑通过、放进整套就失败** | 共享状态(限流/缓存)污染 | **R-003 / R-009** | | **本人主页看不到"编辑"按钮** | 身份判断用了可变的展示名 | **R-004** | | 点行内按钮**误触发跳转** | `` 里嵌了 `