docs: migrate project memory governance
This commit is contained in:
50
AGENTS.md
50
AGENTS.md
@@ -1,29 +1,41 @@
|
||||
# LTJT 项目文件治理规则
|
||||
|
||||
本文件约束所有后续维护会话。用户指令优先;在没有新的明确指令时,必须遵守以下位置、同步和归档规则。
|
||||
本文件约束所有后续维护会话。用户指令优先;在没有新的明确指令时,必须遵守以下位置、所有权、同步和归档规则。
|
||||
|
||||
## 开始工作前
|
||||
|
||||
1. 依次读取根目录 `README.md`、`task_plan.md`、`findings.md`、`progress.md`。
|
||||
2. 运行 `git status --short`,保留所有既有未提交改动;禁止 `git reset --hard`、`git clean` 或批量回退。
|
||||
3. 通过 `agent设计规范/business-adaptation-registry.md` 定位业务,再读取对应业务页、Skill、Schema、mapping 和实现代码。
|
||||
4. `archive/` 只供追溯,不能反向覆盖当前业务规则;若历史文件与活动源码冲突,以活动源码及当前契约为准。
|
||||
1. 运行 `git status --short`,保留所有既有未提交改动;禁止 `git reset --hard`、`git clean` 或批量回退。
|
||||
2. 加载 `maintain-project-docs` Skill,先运行其 Concurrent Task Gate。任何代码或项目文档编辑前,`task_context.py start` 必须成功,且 `status --json` 中的 task ID、mode、绝对 worktree、branch 与当前任务完全一致。
|
||||
3. 所有权门禁通过后,按 `.project-docs/05-agent-entry/read-before-planning.md` 的顺序加载当前任务和 canonical 项目记忆;Feature 与 Integration 写入边界以该 Skill 和 `.project-docs/90-maintenance/doc-update-policy.md` 为准。
|
||||
4. 通过 `agent设计规范/business-adaptation-registry.md` 定位业务,再读取对应业务页、Skill、Schema、mapping 和实现代码。
|
||||
5. `archive/` 只供追溯,不能反向覆盖当前业务规则;若历史文件与活动源码冲突,以活动源码及当前契约为准。
|
||||
|
||||
## 并发与子智能体
|
||||
|
||||
- 原则上不创建子智能体;确有必要时必须先取得用户明确同意。
|
||||
- 一个活动任务只拥有一个 worktree;不得在已被其他任务占用或归属不明的 dirty worktree 中继续。
|
||||
- 不得用 Markdown 或口头约定模拟任务所有权;只能使用 `maintain-project-docs` 自带的 `task_context.py`。
|
||||
- 未知改动不得自动 stash、reset、移动、删除或认领;采用 `--adopt-existing` 必须有用户对已知改动的明确接管授权。
|
||||
|
||||
## 根目录边界
|
||||
|
||||
允许的长期文件只有:
|
||||
允许的长期文件和目录只有:
|
||||
|
||||
- 项目入口与约束:`README.md`、`AGENTS.md`;
|
||||
- Planning with Files:`task_plan.md`、`findings.md`、`progress.md`;
|
||||
- 项目记忆:`.project-docs/`;
|
||||
- 构建与部署配置:`package.json`、锁文件、TypeScript、Docker、Compose、Git/Docker ignore 和环境示例;
|
||||
- 下表登记的活动源码、发布、报告、隔离与历史目录;
|
||||
- 本地秘密配置 `.env` 可以存在,但必须被 Git 忽略,不得读取、复制、归档或输出其内容。
|
||||
|
||||
旧根目录 `task_plan.md`、`findings.md`、`progress.md` 已退役并冻结在 `archive/project-history/2026-08-28/`;不得恢复为活动入口或与 `.project-docs/` 并行维护。
|
||||
|
||||
禁止在根目录新增临时说明、交接副本、测试输出、ZIP、DOCX、截图、日志、浏览器状态或一次性脚本。新增内容必须进入下表规定的位置。
|
||||
|
||||
## 唯一目录职责
|
||||
|
||||
| 位置 | 唯一职责 | 禁止内容 |
|
||||
|---|---|---|
|
||||
| `.project-docs/` | 任务作用域记录、canonical 项目记忆、证据索引、反思、承诺和文档维护状态 | 运行日志、秘密、业务附件、绕过所有权门禁的共享进度 |
|
||||
| `agent设计规范/` | Agent Prompt、五个 Skill、业务模板、业务入口与稳定测试夹具的可编辑源 | 发布包、运行日志、历史版本副本 |
|
||||
| `schemas/` | 当前解析态、执行态和 ERP 表单 Schema | 历史 Schema、运行结果 |
|
||||
| `mappings/` | 当前 ERP 字段与生命周期 mapping | 探针输出、旧版本副本 |
|
||||
@@ -39,13 +51,14 @@
|
||||
| `quarantine/` | 无法安全解析的外部输入隔离边界 | 当前源码或已信任 fixture |
|
||||
| `archive/` | 日期化、只读、可恢复的历史实现、证据、规划和发布物 | 当前入口或需要运行时读取的文件 |
|
||||
|
||||
## Planning with Files
|
||||
## Maintain Project Docs
|
||||
|
||||
- `task_plan.md` 始终保留当前任务目标、阶段、决策和错误,建议不超过 16 KiB。
|
||||
- `findings.md` 只保留仍影响当前设计和执行的事实,建议不超过 32 KiB。
|
||||
- `progress.md` 只保留当前任务和最近有效里程碑,建议不超过 32 KiB。
|
||||
- 超过边界时,先把原文件完整冻结到 `archive/project-history/<日期>/`,再语义压缩根文件并链接归档;禁止直接丢弃历史。
|
||||
- 任务完成后不删除三文件。将计划状态收敛为完成,并保留足够信息让下一会话继续。
|
||||
- `.project-docs/30-worklog/tasks/<task_id>.md` 是任务局部范围、约束、结果、验证、后续项和 Promotion Candidates 的唯一记录。
|
||||
- Feature 模式只写当前 task ID 所属记录和允许的 task-prefixed supporting records;不得更新 `current-state.md`、共享索引、accepted ADR、canonical 架构、业务规则或共享聚合。
|
||||
- Integration 模式必须独占 worktree 和集成锁,才能把已接受事实写入 canonical 项目记忆;冲突的产品行为、架构方向或真相源必须由用户决定。
|
||||
- `current-state.md` 是上次集成快照,不代表其他并行任务的实时状态;其他任务只通过其 task record 做只读范围评估。
|
||||
- 仓库变更任务完成前必须更新任务记录、运行 `check_doc_drift.py --task-id <task_id>`,再用 `task_context.py complete` 标记 `ready_for_integration`。
|
||||
- 历史 Planning with Files 只供追溯;不得从归档复制回活动项目记忆。
|
||||
|
||||
## 单一源与同步矩阵
|
||||
|
||||
@@ -59,14 +72,21 @@
|
||||
|
||||
## 历史与生成物处理
|
||||
|
||||
- 旧版本、旧交接、旧发布说明和完成的计划按日期移动到相应 `archive/` 分类,并更新该日期 README。
|
||||
- 旧版本、旧交接、旧发布说明和退役文档按日期移动到相应 `archive/` 分类,并更新该日期 README。
|
||||
- 可重建编译产物、完全相同的别名包、`.DS_Store`、日志和临时输出不进入历史上下文;确认无唯一信息后清理。
|
||||
- 不把桌面作为当前源或发布源。桌面只允许用户主动需要的临时交付副本,项目内 `dist/` 才是当前交付位置。
|
||||
- 移动前必须做引用扫描;移动后必须修复活动链接。归档内部允许保留原始历史措辞,但归档 README 必须声明其非当前规则。
|
||||
|
||||
## 验证
|
||||
|
||||
文件或目录调整后至少运行:
|
||||
项目文档或仓库文件调整后,先按已加载的 `maintain-project-docs` Skill 运行:
|
||||
|
||||
```text
|
||||
scripts/check_project_docs.py
|
||||
scripts/check_doc_drift.py --task-id <task_id>
|
||||
```
|
||||
|
||||
再至少运行:
|
||||
|
||||
```bash
|
||||
node --run check:repo
|
||||
|
||||
Reference in New Issue
Block a user