feat(templates): add sync templates scaffolding

This commit is contained in:
csh
2026-01-21 10:18:24 +08:00
parent 5b1ca45fa5
commit 872d8cf98b
16 changed files with 2203 additions and 0 deletions
+60
View File
@@ -0,0 +1,60 @@
# Agent Instructions
<!-- playbook:framework:start -->
## 规则优先级
1. 系统/开发者指令与安全约束
2. 仓库规则:`.agents/` 与本文件
3. `AGENT_RULES.md` - 执行流程
4. `TODO.md` - 任务队列
---
## 快速导航
<!-- playbook:agents:start -->
请以 `.agents/` 下的规则为准:
- 入口:`.agents/index.md`
- 语言规则:`.agents/{{MAIN_LANGUAGE}}/index.md`
<!-- playbook:agents:end -->
<!-- playbook:templates:start -->
### 核心规则
- **执行流程**[AGENT_RULES.md](./AGENT_RULES.md)
- **AI 行为规范**[docs/prompts/system/agent-behavior.md](docs/prompts/system/agent-behavior.md)
### 项目上下文
- **项目定位**[memory-bank/project-brief.md](memory-bank/project-brief.md)
- **技术栈**[memory-bank/tech-stack.md](memory-bank/tech-stack.md)
- **架构设计**[memory-bank/architecture.md](memory-bank/architecture.md)
- **进度追踪**[memory-bank/progress.md](memory-bank/progress.md)
- **架构决策**[memory-bank/decisions.md](memory-bank/decisions.md)
- **实施计划**[memory-bank/implementation-plan.md](memory-bank/implementation-plan.md)
### 工作流程
- **需求澄清**[docs/prompts/coding/clarify.md](docs/prompts/coding/clarify.md)
- **验证检查**[docs/prompts/coding/verify.md](docs/prompts/coding/verify.md)
<!-- playbook:templates:end -->
---
## 新会话开始时
**AI 应该做的**
1. 读取 [AGENT_RULES.md](./AGENT_RULES.md)
2. 读取 [memory-bank/](memory-bank/) 核心文档
3. 读取 [docs/prompts/system/agent-behavior.md](docs/prompts/system/agent-behavior.md)
4. 查看 [TODO.md](./TODO.md) 和 [CONFIRM.md](./CONFIRM.md)
<!-- playbook:framework:end -->
---
**最后更新**{{DATE}}
+81
View File
@@ -0,0 +1,81 @@
# AGENT_RULES
目的:为本仓库提供稳定的执行流程。
## 优先级
1. 系统/开发者指令与安全约束
2. 仓库规则:`.agents/``AGENTS.md`
3. 本文件
4. `TODO.md`
## 上下文加载(每次会话开始)
**必读文档**(按顺序):
1. `memory-bank/project-brief.md` - 项目定位、边界、约束
2. `memory-bank/tech-stack.md` - 技术栈、工具链
3. `memory-bank/architecture.md` - 架构设计、模块职责
4. `TODO.md` - 当前任务队列
5. `CONFIRM.md` - 待确认事项
**目的**:让 AI 快速理解项目全貌,避免重复解释。
## 主循环
1. 读取 `TODO.md`
2. 选择最上方的 Plan
3. **读取 `memory-bank/implementation-plan.md`**(若该 Plan 有对应说明)
4. 执行该 Plan 内所有可执行子任务
5. 校验输出结果(运行测试/检查日志)
6. **更新 `memory-bank/progress.md`**(记录已完成事项)
7. 如存在歧义/风险/决策点,记录到 `CONFIRM.md`
8. 若 Plan 已全部完成,则从 `TODO.md` 移除
9. 若 Plan 因缺少信息而阻塞,标记为 `BLOCKED` 并移到 `TODO.md` 末尾
10. 重新读取 `TODO.md`,继续下一个 Plan
## Plan 规则
- 不因等待确认而中断;记录到 `CONFIRM.md` 后继续
- 执行并验证该 Plan 中所有可执行的子任务
- 若因缺少信息/决策而阻塞:记录 `CONFIRM.md`,标记为 `BLOCKED`,移到末尾(不移除)
- 每轮只处理一个 Plan
- **小步快跑**:每个 Plan 应该可快速完成
- **可验证**:每个 Plan 必须包含验证步骤
## 执行约束
### 代码修改约束
- **必须先读文件再修改**:不读文件就提议修改是禁止的
- **必须运行测试验证**:相关测试必须通过
- **遵循换行规则**:遵循 `.gitattributes` 规则
### 决策记录约束
- **重要决策**:记录到 `memory-bank/decisions.md`ADR 格式)
- **临时确认**:记录到 `CONFIRM.md`(会话级)
- **进度留痕**:记录到 `memory-bank/progress.md`(持久化)
## CONFIRM.md 触发条件
- 需求不明确或存在多种可行方案
- 需要行为/兼容性取舍
- 风险或约束冲突
- **架构变更**:影响多个模块的修改
- **性能权衡**:需要在性能和可维护性之间选择
- **兼容性问题**:可能破坏现有用户代码
## 验证清单
每个 Plan 完成后,必须验证:
- [ ] 代码修改符合 `.agents/` 下的规则
- [ ] 相关测试通过
- [ ] 换行符正确
- [ ] 无语法错误
- [ ] 更新了 `memory-bank/progress.md`
---
**最后更新**{{DATE}}
+208
View File
@@ -0,0 +1,208 @@
# 项目架构模板
本目录包含项目架构的模板文件,用于快速初始化新项目的 AI 代理工作环境。
## 目录结构
```text
templates/
├── README.md # 本文件
├── AGENTS.template.md # 路由中心模板
├── AGENT_RULES.template.md # 执行流程模板
├── memory-bank/ # 项目上下文模板
│ ├── project-brief.template.md
│ ├── tech-stack.template.md
│ ├── architecture.template.md
│ ├── progress.template.md
│ ├── decisions.template.md
│ └── implementation-plan.template.md
├── prompts/ # 提示词库模板
│ ├── README.md
│ ├── system/
│ │ └── agent-behavior.template.md
│ └── coding/
│ ├── clarify.template.md
│ └── verify.template.md
├── ci/ # CI 模板
│ └── gitea/
│ └── .gitea/workflows/
├── cpp/ # C++ 配置模板
│ ├── .clang-format
│ ├── .clangd
│ └── ...
└── python/ # Python 配置模板
├── .editorconfig
├── pyproject.toml
└── ...
```
## 快速部署
使用 `sync_templates` 脚本一键部署:
**Linux/macOS**
```bash
# 基础部署
sh scripts/sync_templates.sh /path/to/project
# 追加完整框架到已有 AGENTS.md
sh scripts/sync_templates.sh --full /path/to/project
```
**Windows PowerShell**
```powershell
# 基础部署
.\scripts\sync_templates.ps1 -ProjectRoot C:\path\to\project
# 追加完整框架
.\scripts\sync_templates.ps1 -ProjectRoot C:\path\to\project -Full
```
**Windows CMD**
```cmd
scripts\sync_templates.bat C:\path\to\project
scripts\sync_templates.bat --full C:\path\to\project
```
### 部署行为
- **新项目**:创建完整的 AGENTS.md、AGENT_RULES.md、memory-bank/、docs/prompts/
- **已有 AGENTS.md**
- 默认:追加路由链接(`<!-- playbook:templates:start/end -->`
- `--full`:追加完整框架(规则优先级 + 路由 + 新会话开始时)
- **其他文件**:如果已存在则跳过(使用 `--force` 覆盖)
- **自动创建**TODO.md 和 CONFIRM.md(如果不存在)
- **占位符替换**:自动替换 `{{DATE}}` 为当前日期
### 部署后的目录结构
```text
project/
├── AGENTS.md # 路由中心(主入口)
├── AGENT_RULES.md # 执行流程
├── TODO.md # 任务队列
├── CONFIRM.md # 待确认事项
├── memory-bank/ # 项目上下文
│ ├── project-brief.md
│ ├── tech-stack.md
│ ├── architecture.md
│ ├── progress.md
│ ├── decisions.md
│ └── implementation-plan.md
└── docs/prompts/ # 提示词库
├── README.md
├── system/agent-behavior.md
└── coding/
├── clarify.md
└── verify.md
```
## 占位符说明
模板中使用 `{{PLACEHOLDER}}` 格式的占位符,需要替换为实际值:
| 占位符 | 说明 | 自动替换 |
| ------------------------- | ------------ | -------- |
| `{{DATE}}` | 日期 | ✅ 是 |
| `{{PROJECT_NAME}}` | 项目名称 | ❌ 手动 |
| `{{PROJECT_GOAL}}` | 项目目标 | ❌ 手动 |
| `{{PROJECT_DESCRIPTION}}` | 项目描述 | ❌ 手动 |
| `{{MAIN_LANGUAGE}}` | 主语言 | ❌ 手动 |
| 其他 `{{...}}` | 项目特定内容 | ❌ 手动 |
## 模板说明
### memory-bank/
项目上下文文档,用于让 AI 快速理解项目:
| 文件 | 用途 |
| --------------------------------- | -------------------- |
| `project-brief.template.md` | 项目定位、边界、约束 |
| `tech-stack.template.md` | 技术栈、工具链、环境 |
| `architecture.template.md` | 架构设计、模块职责 |
| `progress.template.md` | 开发进度追踪 |
| `decisions.template.md` | 架构决策记录(ADR) |
| `implementation-plan.template.md` | 当前实施计划 |
### prompts/
工作流程模板:
| 文件 | 用途 |
| ----------------------------------- | ------------ |
| `system/agent-behavior.template.md` | AI 行为规范 |
| `coding/clarify.template.md` | 需求澄清模板 |
| `coding/verify.template.md` | 验证检查清单 |
### AGENT_RULES.template.md
执行流程规范,定义 AI 的工作循环和约束。
### AGENTS.template.md
路由中心模板,作为项目的主入口。
**设计理念**
- **最小化内容**:只包含导航链接,不包含详细规则
- **结构化导航**:分为核心规则、项目上下文、工作流程三个板块
**playbook 标记**(用于自动更新):
| 标记 | 用途 | 管理脚本 |
| --------------------------------------- | ----------------------- | -------------- |
| `<!-- playbook:agents:start/end -->` | 语言规则链接 | sync_standards |
| `<!-- playbook:templates:start/end -->` | 路由链接(默认追加) | sync_templates |
| `<!-- playbook:framework:start/end -->` | 完整框架(--full 追加) | sync_templates |
### ci/、cpp/、python/
语言和 CI 配置模板。通过 `vendor_playbook --apply-templates` 部署:
| 目录 | 内容 | 部署位置 |
| ----------- | ----------------------------------------- | ---------- |
| `ci/gitea/` | Gitea Actions 工作流 | `.gitea/` |
| `cpp/` | .clang-format, .clangd, CMakeLists.txt 等 | 项目根目录 |
| `python/` | pyproject.toml, .editorconfig 等 | 项目根目录 |
**使用方式**
```bash
# vendor_playbook 时一并部署
sh scripts/vendor_playbook.sh /path/to/project tsl cpp --apply-templates
```
## 与 playbook 其他部分的关系
```text
playbook/
├── rulesets/ # 语言级硬规则 → 部署到 .agents/
├── codex/skills/ # 按需加载的技能
├── docs/ # 权威静态文档
├── templates/ # 本目录:项目架构模板 → 部署到 memory-bank/ 等
└── scripts/
├── sync_standards.* # 同步 .agents/ 和 .gitattributes
└── sync_templates.* # 同步 memory-bank/、docs/prompts/、AGENT_RULES.md
```
## 完整部署流程
```bash
# 1. 部署项目架构模板
sh scripts/sync_templates.sh /path/to/project
# 2. 部署语言规则
sh scripts/sync_standards.sh tsl # 或其他语言
# 3. 编辑 memory-bank/*.md 填写项目信息
# 4. 替换剩余的 {{PLACEHOLDER}} 占位符
```
---
**最后更新**2026-01-21
@@ -0,0 +1,110 @@
# 架构设计
## 整体架构
```txt
┌─────────────────────────────────────────────────────────────┐
│ {{LAYER_1}} │
└─────────────────────┬───────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ {{LAYER_2}} │
└─────────────────────┬───────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ {{LAYER_3}} │
└─────────────────────────────────────────────────────────────┘
```
## 核心模块
### 1. {{MODULE_1}}
**职责**{{MODULE_1_DESC}}
**主要组件**
- {{COMPONENT_1}}
- {{COMPONENT_2}}
**核心方法**
- {{METHOD_1}}
- {{METHOD_2}}
---
### 2. {{MODULE_2}}
**职责**{{MODULE_2_DESC}}
**主要组件**
- {{COMPONENT_3}}
- {{COMPONENT_4}}
---
### 3. {{MODULE_3}}
**职责**{{MODULE_3_DESC}}
---
## 设计模式
### {{PATTERN_1}}
**应用**{{PATTERN_1_USAGE}}
**目的**{{PATTERN_1_PURPOSE}}
**优点**
- {{PATTERN_1_ADVANTAGE_1}}
- {{PATTERN_1_ADVANTAGE_2}}
### {{PATTERN_2}}
**应用**{{PATTERN_2_USAGE}}
**目的**{{PATTERN_2_PURPOSE}}
---
## 关键约束
### 1. {{CONSTRAINT_CATEGORY_1}}
- {{CONSTRAINT_1}}
- {{CONSTRAINT_2}}
### 2. {{CONSTRAINT_CATEGORY_2}}
- {{CONSTRAINT_3}}
- {{CONSTRAINT_4}}
---
## 扩展点
### 1. {{EXTENSION_1}}
**步骤**
1. {{STEP_1}}
2. {{STEP_2}}
3. {{STEP_3}}
### 2. {{EXTENSION_2}}
**步骤**
1. {{STEP_4}}
2. {{STEP_5}}
---
**最后更新**{{DATE}}
@@ -0,0 +1,76 @@
# 架构决策记录
本文档记录项目中的重要架构决策,使用 ADR (Architecture Decision Record) 格式。
---
## ADR-001: {{DECISION_1_TITLE}}
**日期**: {{DATE}}
**状态**: 已采纳
### 决策
{{DECISION_1_CONTENT}}
### 理由
{{DECISION_1_REASON}}
### 影响
{{DECISION_1_IMPACT}}
### 实施细节
{{DECISION_1_IMPLEMENTATION}}
---
## ADR-002: {{DECISION_2_TITLE}}
**日期**: {{DATE}}
**状态**: 已采纳
### 决策
{{DECISION_2_CONTENT}}
### 理由
{{DECISION_2_REASON}}
### 影响
{{DECISION_2_IMPACT}}
---
## ADR 模板
```markdown
## ADR-XXX: 决策标题
**日期**: YYYY-MM-DD
**状态**: 已采纳 / 已废弃 / 待讨论
### 决策
简要描述决策内容
### 理由
为什么做出这个决策
### 影响
对项目的影响
### 替代方案(可选)
考虑过但未采纳的方案
```
---
**最后更新**{{DATE}}
@@ -0,0 +1,91 @@
# 当前实施计划
## 计划状态
**计划名称**: {{PLAN_NAME}}
**开始时间**: {{START_DATE}}
**当前状态**: 进行中 / 已完成 / 已暂停
---
## 目标
{{PLAN_GOAL}}
**成功标准**:
- [ ] {{SUCCESS_CRITERIA_1}}
- [ ] {{SUCCESS_CRITERIA_2}}
- [ ] {{SUCCESS_CRITERIA_3}}
---
## 实施步骤
### 阶段 1: {{PHASE_1_NAME}}
#### 步骤 1.1: {{STEP_1_1}}
- [ ] {{TASK_1_1_1}}
- [ ] {{TASK_1_1_2}}
**验证**: {{VERIFICATION_1_1}}
#### 步骤 1.2: {{STEP_1_2}}
- [ ] {{TASK_1_2_1}}
- [ ] {{TASK_1_2_2}}
**验证**: {{VERIFICATION_1_2}}
---
### 阶段 2: {{PHASE_2_NAME}}
#### 步骤 2.1: {{STEP_2_1}}
- [ ] {{TASK_2_1_1}}
- [ ] {{TASK_2_1_2}}
**验证**: {{VERIFICATION_2_1}}
---
## 当前进度
### 已完成
- {{COMPLETED_PHASE}}
### 进行中
- {{IN_PROGRESS_STEP}}
### 待开始
- {{PENDING_STEP}}
---
## 风险与问题
### 风险
1. **{{RISK_1}}**
- 风险:{{RISK_1_DESC}}
- 缓解:{{RISK_1_MITIGATION}}
### 已解决的问题
1. {{RESOLVED_ISSUE_1}}
---
## 下一步行动
- [ ] {{NEXT_ACTION_1}}
- [ ] {{NEXT_ACTION_2}}
---
**最后更新**{{DATE}}
@@ -0,0 +1,60 @@
# 开发进度追踪
## 当前阶段:{{CURRENT_PHASE}}
### 最近完成
#### {{DATE}}
- [x] {{COMPLETED_1}}
- [x] {{COMPLETED_2}}
### 进行中
- [ ] {{IN_PROGRESS_1}}
- [ ] {{IN_PROGRESS_2}}
### 待办
#### {{CATEGORY_1}}
- [ ] {{TODO_1}}
- [ ] {{TODO_2}}
#### {{CATEGORY_2}}
- [ ] {{TODO_3}}
- [ ] {{TODO_4}}
### 已知问题
#### {{ISSUE_CATEGORY_1}}
- {{ISSUE_1}}
- **临时方案**{{WORKAROUND_1}}
- **长期方案**{{SOLUTION_1}}
### 里程碑
#### M1: {{MILESTONE_1}}(目标:{{TARGET_DATE_1}}
- [ ] {{MILESTONE_1_TASK_1}}
- [ ] {{MILESTONE_1_TASK_2}}
#### M2: {{MILESTONE_2}}(目标:{{TARGET_DATE_2}}
- [ ] {{MILESTONE_2_TASK_1}}
- [ ] {{MILESTONE_2_TASK_2}}
---
## 更新日志
### {{DATE}}
- {{LOG_1}}
- {{LOG_2}}
---
**最后更新**{{DATE}}
@@ -0,0 +1,66 @@
# {{PROJECT_NAME}} 项目简介
## 项目定位
**核心目标**{{PROJECT_GOAL}}
**一句话描述**{{PROJECT_DESCRIPTION}}
## 为什么做这个项目?
### 问题
- {{PROBLEM_1}}
- {{PROBLEM_2}}
- {{PROBLEM_3}}
### 解决方案
- {{SOLUTION_1}}
- {{SOLUTION_2}}
- {{SOLUTION_3}}
## 项目边界
### 做什么
- {{DO_1}}
- {{DO_2}}
- {{DO_3}}
### 不做什么
- {{DONT_1}}
- {{DONT_2}}
- {{DONT_3}}
### 约束条件
- {{CONSTRAINT_1}}
- {{CONSTRAINT_2}}
- {{CONSTRAINT_3}}
## 核心概念
<!-- 根据项目需要填写核心概念 -->
## 技术栈
- **主语言**{{MAIN_LANGUAGE}}
- **外部依赖**{{DEPENDENCIES}}
- **测试环境**{{TEST_ENV}}
## 参考资料
- {{REFERENCE_1}}
- {{REFERENCE_2}}
## 当前状态
- {{STATUS_1}}
- {{STATUS_2}}
- {{STATUS_3}}
---
**最后更新**{{DATE}}
@@ -0,0 +1,118 @@
# 技术栈与工具链
## 核心技术
### 主语言:{{MAIN_LANGUAGE}}
**文件类型**
- {{FILE_TYPE_1}}
- {{FILE_TYPE_2}}
**特点**
- {{FEATURE_1}}
- {{FEATURE_2}}
- {{FEATURE_3}}
**运行方式**
- {{RUN_METHOD_1}}
- {{RUN_METHOD_2}}
## 项目结构
```text
{{PROJECT_NAME}}/
├── {{DIR_1}}/ # {{DIR_1_DESC}}
├── {{DIR_2}}/ # {{DIR_2_DESC}}
├── {{DIR_3}}/ # {{DIR_3_DESC}}
└── memory-bank/ # 项目上下文
```
## 开发环境
### {{ENV_1}}
**必需工具**
- {{TOOL_1}}
- {{TOOL_2}}
**运行测试**
```bash
{{TEST_CMD_1}}
```
### {{ENV_2}}(如有)
**必需工具**
- {{TOOL_3}}
- {{TOOL_4}}
## 版本控制
### Git 配置
**换行规则**`.gitattributes`):
- 遵循 `.gitattributes` 文件定义
**忽略规则**`.gitignore`):
-`.gitignore` 实际内容为准
### 分支策略
- `master`/`main`:主分支(稳定版本)
- 功能分支:按需创建
## 测试策略
### 测试类型
- {{TEST_TYPE_1}}
- {{TEST_TYPE_2}}
### 验证标准
**测试通过条件**
1. {{PASS_CONDITION_1}}
2. {{PASS_CONDITION_2}}
3. {{PASS_CONDITION_3}}
**常见失败原因**
- {{FAIL_REASON_1}}
- {{FAIL_REASON_2}}
## 依赖管理
### 外部依赖
- {{EXTERNAL_DEP_1}}
- {{EXTERNAL_DEP_2}}
### 内部依赖
- {{INTERNAL_DEP_1}}
- {{INTERNAL_DEP_2}}
## 性能考虑
### 当前瓶颈
- {{BOTTLENECK_1}}
- {{BOTTLENECK_2}}
### 优化方向
- {{OPTIMIZATION_1}}
- {{OPTIMIZATION_2}}
---
**最后更新**{{DATE}}
+42
View File
@@ -0,0 +1,42 @@
# 提示词库
本目录包含 AI 代理的工作流程模板和参考文档。
## 目录结构
```text
prompts/
├── README.md # 本文件
├── system/ # 系统级规范
│ └── agent-behavior.md
├── coding/ # 编码流程
│ ├── clarify.md # 需求澄清模板
│ └── verify.md # 验证检查清单
└── user/ # 用户快捷命令
└── quick-test.md # 快速测试命令
```
## 使用方式
### AI 代理
- 新会话时读取 `system/agent-behavior.md`
- 需要澄清需求时参考 `coding/clarify.md`
- 完成任务前检查 `coding/verify.md`
### 用户
- 使用 `user/quick-test.md` 中的命令快速执行测试
## 文档说明
| 文件 | 用途 |
| -------------------------- | ------------------------------- |
| `system/agent-behavior.md` | AI 行为规范、工作模式、禁止行为 |
| `coding/clarify.md` | 需求澄清步骤和问题模板 |
| `coding/verify.md` | 代码、测试、文档验证清单 |
| `user/quick-test.md` | 常用测试命令参考 |
---
**最后更新**{{DATE}}
@@ -0,0 +1,129 @@
# 需求澄清模板
## 何时使用
- 需求描述不明确
- 存在多种理解方式
- 缺少关键信息
---
## 澄清步骤
### 1. 理解当前需求
**复述需求**
```text
我理解你的需求是:[用自己的话复述]
```
**识别歧义点**
- 歧义 1[描述不明确的地方]
- 歧义 2[可能有多种理解的地方]
---
### 2. 提出澄清问题
**问题模板**
> 只问阻塞问题,最多 1–2 个;优先给出选项让用户选择。
#### 功能范围
- 这个功能是否包括 [场景 A]
- 是否需要支持 [边界情况 B]
- 优先级如何?必须有 vs 可选
#### 行为细节
- 当 [条件 X] 时,应该 [行为 Y] 还是 [行为 Z]?
- 如果 [异常情况],如何处理?
- 是否需要与 [现有功能] 保持一致?
#### 技术约束
- 是否有性能要求?
- 是否有兼容性要求?
- 是否有安全要求?
---
### 3. 提供选项
**选项格式**
**选项 A**[方案描述]
- 优点:[列出优点]
- 缺点:[列出缺点]
- 适用场景:[什么情况下选这个]
**选项 B**[方案描述]
- 优点:[列出优点]
- 缺点:[列出缺点]
- 适用场景:[什么情况下选这个]
**推荐**[推荐哪个选项,为什么]
---
### 4. 确认理解
**确认清单**
- [ ] 功能范围明确
- [ ] 行为细节清晰
- [ ] 技术约束已知
- [ ] 优先级确定
- [ ] 验收标准明确
---
## 示例
### 需求
```text
实现 XXX 功能
```
### 澄清过程
**复述需求**
```text
我理解你的需求是:为 YYY 添加 XXX 功能,
用于 ZZZ。
```
**识别歧义点**
- 歧义 1XXX 是只读还是可写?
- 歧义 2:是否需要支持所有场景?
**澄清问题**
- 是否需要支持 [场景 A]
- 当 [条件 X] 时,应该如何处理?
**提供选项**
**选项 A**:完整实现
- 优点:功能完整
- 缺点:开发周期长
**选项 B**:核心功能
- 优点:快速交付
- 缺点:功能有限
**推荐**:选项 A,因为 [原因]。
---
**最后更新**{{DATE}}
@@ -0,0 +1,94 @@
# 验证检查清单
## 代码修改验证
### 语法检查
- [ ] 代码可正常运行(无语法错误)
- [ ] 无未定义的变量或函数
- [ ] 依赖引用正确
### 风格检查
- [ ] 命名符合规范
- [ ] 缩进正确
- [ ] 换行符正确(遵循 .gitattributes
- [ ] 无冗余注释
---
## 测试验证
### 单元测试
- [ ] 相关测试脚本存在
- [ ] 测试可正常运行
- [ ] 测试通过(无失败)
### 回归测试
- [ ] 现有测试仍然通过
- [ ] 未破坏其他功能
---
## 文档验证
### 代码文档
- [ ] 复杂逻辑有注释说明
- [ ] 公开 API 有使用示例(如需)
### 项目文档
- [ ] `memory-bank/progress.md` 已更新
- [ ] 重要决策记录到 `memory-bank/decisions.md`
- [ ] `CONFIRM.md` 中需讨论事项已记录
---
## Git 验证
### 提交前检查
- [ ] 只包含相关修改(无无关文件)
- [ ] 提交信息清晰
- [ ] 无临时文件或调试代码
### 分支检查
- [ ] 在正确的分支上工作
---
## 性能验证(如果涉及)
### 性能测试
- [ ] 处理时间可接受
- [ ] 内存使用正常
- [ ] 无明显性能退化
---
## 安全验证(如果涉及)
### 安全检查
- [ ] 无注入风险
- [ ] 敏感信息已脱敏
---
## 快速检查清单(最小集)
**每次修改必须检查**
- [ ] 代码可运行(无语法错误)
- [ ] 相关测试通过
- [ ] 换行符正确
- [ ] `memory-bank/progress.md` 已更新
---
**最后更新**{{DATE}}
@@ -0,0 +1,196 @@
# AI 代理行为规范
## 工作模式
### 模式 1: 探索模式(Explore
**目的**:理解代码库、分析问题、收集信息
**行为规范**
- 使用搜索工具探索代码
- 输出分析报告和发现
- 提出问题和建议
- 不修改任何代码
- 不运行测试(除非明确要求)
**适用场景**
- 理解某个模块的实现
- 分析 bug 的根本原因
- 评估功能实现的可行性
---
### 模式 2: 开发模式(Develop
**目的**:实现功能、修复 bug、重构代码
**行为规范**
- 先读取相关文件,理解现有逻辑
- 进行精确修改
- 修改后运行对应测试验证
- 更新 `memory-bank/progress.md`
- 不读文件就提议修改
- 不跳过测试直接提交
**适用场景**
- 实现新功能
- 修复已知 bug
- 优化性能
---
### 模式 3: 调试模式(Debug
**目的**:诊断问题、对比差异、验证行为
**行为规范**
- 收集相关日志和输出
- 分析差异原因
- 记录到 `CONFIRM.md` 或直接修复
- 重新验证
**适用场景**
- 测试失败
- 输出不符合预期
- 性能问题诊断
---
## 代码风格要求
### 通用规范
**命名规范**
- 遵循项目现有的命名风格
- 保持一致性
**缩进**
- 遵循项目现有的缩进风格
**换行**
- 遵循 `.gitattributes` 规则
**注释**
- 只在逻辑不自明时添加注释
- 不添加冗余注释
---
## 禁止行为清单
### 代码修改
- **不读文件就提议修改**
- 必须先读取文件
- 理解现有逻辑后再提出修改建议
- **破坏现有架构**
- 不随意移动目录结构
- 不随意重构核心模块
- **随意改动换行符**
- 遵循 `.gitattributes` 规则
- 不混用 LF 和 CRLF
### 测试流程
- **跳过测试直接提交**
- 修改后必须运行相关测试
- 测试失败必须分析原因
### Git 操作
- **使用 `git commit --amend`**
- 除非用户明确要求
- 总是创建新提交
- **使用 `git push --force`**
- 特别是推送到 main/master 分支
- 如果用户要求,必须警告风险
- **跳过 hooks**
- 不使用 `--no-verify`
### 过度工程
- **添加未要求的功能**
- 只做用户要求的修改
- 不主动重构周边代码
- **添加不必要的注释**
- 不给自明的代码添加注释
- **过度抽象**
- 不为一次性操作创建工具函数
- 不为假设的未来需求设计
---
## 决策原则
### 何时记录到 CONFIRM.md
**必须记录**
- 需求有歧义,存在多种理解
- 有多个技术方案,需要权衡
- 可能破坏兼容性
- 涉及架构变更
**可以不记录**
- 明显的 bug 修复
- 符合现有模式的小改动
- 测试用例补充
### 何时记录到 decisions.md
**必须记录**ADR 格式):
- 影响多个模块的架构决策
- 技术栈选择
- 设计模式选择
- 重要的约束条件
---
## 沟通原则
### 输出风格
- 简洁明确,避免冗长
- 使用纯文本结构化输出,必要时用 Markdown 代码块
- 代码块标注语言
- 不使用 emoji(除非用户明确要求)
- 不使用过度的赞美或验证
### 技术准确性
- 优先技术准确性,而非迎合用户
- 发现用户理解有误时,礼貌纠正
- 不确定时,先调查再回答
### 时间估算
- 不给出时间估算
- 专注于任务本身,让用户自己判断时间
---
**最后更新**{{DATE}}