7.7 KiB
7.7 KiB
LTJT 项目文件治理规则
本文件约束所有后续维护会话。用户指令优先;在没有新的明确指令时,必须遵守以下位置、所有权、同步和归档规则。
开始工作前
- 运行
git status --short,保留所有既有未提交改动;禁止git reset --hard、git clean或批量回退。 - 加载
maintain-project-docsSkill,先运行其 Concurrent Task Gate。任何代码或项目文档编辑前,task_context.py start必须成功,且status --json中的 task ID、mode、绝对 worktree、branch 与当前任务完全一致。 - 所有权门禁通过后,按
.project-docs/05-agent-entry/read-before-planning.md的顺序加载当前任务和 canonical 项目记忆;Feature 与 Integration 写入边界以该 Skill 和.project-docs/90-maintenance/doc-update-policy.md为准。 - 通过
agent设计规范/business-adaptation-registry.md定位业务,再读取对应业务页、Skill、Schema、mapping 和实现代码。 archive/只供追溯,不能反向覆盖当前业务规则;若历史文件与活动源码冲突,以活动源码及当前契约为准。
并发与子智能体
- 原则上不创建子智能体;确有必要时必须先取得用户明确同意。
- 一个活动任务只拥有一个 worktree;不得在已被其他任务占用或归属不明的 dirty worktree 中继续。
- 不得用 Markdown 或口头约定模拟任务所有权;只能使用
maintain-project-docs自带的task_context.py。 - 未知改动不得自动 stash、reset、移动、删除或认领;采用
--adopt-existing必须有用户对已知改动的明确接管授权。
根目录边界
允许的长期文件和目录只有:
- 项目入口与约束:
README.md、AGENTS.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 | 探针输出、旧版本副本 |
chrome-extension/ |
当前 Chrome ERP 适配器源码 | 打包 ZIP、浏览器 profile |
control-plane/ |
当前 TypeScript 控制面源码、迁移和测试 | 编译后的 JavaScript |
LianSyn-platform/ |
当前平台页面与 Agent 解析适配器源码 | 本地任务输出、发布包 |
tools/ |
可复用构建器、测试、只读诊断与受控写入工具 | 工具运行结果、临时 JSON |
infra/ |
当前部署、备份、恢复和网关配置 | 本地秘密、数据库备份文件 |
samples/ |
脱敏且稳定的测试输入样例 | 真实客户资料、运行输出 |
.build/ |
TypeScript 可重建编译输出;Git 忽略 | 人工维护文件、发布物 |
dist/ |
当前版本化交付物及机器可读发布清单 | 编译输出、无版本别名、松散 Prompt/示例副本、旧版本 |
reports/ |
当前会话临时验证输出;除 README 外应为空 | 长期证据、业务规则 |
quarantine/ |
无法安全解析的外部输入隔离边界 | 当前源码或已信任 fixture |
archive/ |
日期化、只读、可恢复的历史实现、证据、规划和发布物 | 当前入口或需要运行时读取的文件 |
Maintain Project Docs
.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 只供追溯;不得从归档复制回活动项目记忆。
单一源与同步矩阵
- Prompt 只编辑
agent设计规范/agent-prompt.md;不得在dist/、桌面或其他目录维护文本副本。 - 运营输入 Markdown 只编辑
agent设计规范/templates/business-input-templates.md;修改后使用tools/build_business_instruction_docx.py同步重建当前 DOCX,并按 Documents skill 渲染检查全部页面。macOS 的 bundled LibreOffice 若未加载中文字体,先通过 workspace dependencies 定位并设置其dependencies/native/poppler/poppler/etc/fonts/fonts.conf为FONTCONFIG_FILE,不得接受方框字渲染。 - Skill 只编辑
agent设计规范/skills/<skill>/;发布.skill必须由当前源重新打包并逐文件核对。 - Chrome 插件只编辑
chrome-extension/ltjt-order-assistant/;任何代码改动都必须递增扩展版本,同步平台最低版本、mapping、测试、版本化 ZIP 和dist/release-manifest.json。 - 控制面只编辑 TypeScript 源;
.build/由node --run build(或等价包管理器命令)生成,不得手改。 - 当前交付物及哈希只由
dist/release-manifest.json定义;README 只链接清单,不重复维护哈希。 - 真实验证证据进入
archive/evidence/<日期>/;活动 release gate 只保存当前结论并链接不可变证据。
历史与生成物处理
- 旧版本、旧交接、旧发布说明和退役文档按日期移动到相应
archive/分类,并更新该日期 README。 - 可重建编译产物、完全相同的别名包、
.DS_Store、日志和临时输出不进入历史上下文;确认无唯一信息后清理。 - 不把桌面作为当前源或发布源。桌面只允许用户主动需要的临时交付副本,项目内
dist/才是当前交付位置。 - 移动前必须做引用扫描;移动后必须修复活动链接。归档内部允许保留原始历史措辞,但归档 README 必须声明其非当前规则。
验证
项目文档或仓库文件调整后,先按已加载的 maintain-project-docs Skill 运行:
scripts/check_project_docs.py
scripts/check_doc_drift.py --task-id <task_id>
再至少运行:
node --run check:repo
node --run check
node --run test:control-plane
node --run test:legacy
node --run build
涉及 Skill 时执行官方 Skill 校验和包/源码逐文件比对;涉及 DOCX 时按 Documents skill 完成 render → 全页 PNG 检查;涉及插件时校验版本化 ZIP 与源码逐文件一致。真实 ERP 写入、部署、重启和外部发送仍需用户另行明确授权。