项目决策记录(DECISIONS.md) 由指定架构负责人统一维护,用于记录每个版本的需求背景和决策过程。 其他角色不得直接编辑本文件;只能提出记录建议、修订建议或补充材料,由架构负责人写入最终记录。 ## 2026-05-21 — `Decisions.md` 由架构负责人唯一维护 - 背景:全局工作规范要求架构决策更新 `Decisions.md`,但需要进一步明确文件维护权,避免多角色并行编辑导致决策记录口径不一致。 - 结论:`Decisions.md` 只能由指定架构负责人更新。Product Manager、Coder、QA、Ops、Reviewer 以及未明确以 Architect 身份工作的 agent 均不得直接编辑本文件。 - 允许行为:其他角色可以在自己的 `Docs/01GTD//02worklog.md`、评审意见、需求讨论或直接请求中提出记录建议。 - 执行方式:最终是否写入、如何表述、放在哪个决策条目下,由架构负责人统一判断并写入。 - 处理结果:已将该规则写入 `Docs/00ProjectManagement/Apptag_Development_Workflow_Standard_v1.0.md`;流程标准版本更新为 1.5。 ## 2026-05-21 — Smart Start 首发采用扩展分类体系与按语言拆分资源 - 背景:新版 `SmartStart_UltimateDefaultCatalog.json` 已扩大到约 11MB,包含 3531 条 entry 和 29 种语言 notes。用户确认 App 尚未发布到市场,没有真实用户和历史升级包袱。 - 产品决策:正式扩展 App 分类体系,而不是把生成脚本映射回旧分类。 - 架构决策:首发运行时采用 split Smart Start resources:base catalog、manifest、每语言 notes JSON。旧单体 JSON/CSV 不作为首发运行时 fallback。 - 数据安全决策:虽然没有旧用户迁移负担,但首发后必须保护用户手写备注;系统默认 note 写入时记录来源 metadata,语言切换只更新仍匹配系统默认来源的 note。 - 工程门禁:Smart Start 生成器必须校验 catalog tags 与 Swift `SmartCategoryID` runtime 兼容,未知分类不得被静默丢弃。 - 取代事项:该决策取代 2026-05-20 “Smart Start notes 按语言拆分暂缓到后续版本”的临时结论,因为文件体积、CPU/内存风险和“无历史用户”前提已经改变。 ## 2026-05-21 — 建立五角色分工与 GTD 工作记录规则 - 背景:项目新增 `Docs/01GTD/` 角色工作区,按 `00-ProductManager`、`01-Architect`、`02-Coder`、`03-QA`、`04-op` 划分职责。 - 结论:五个角色必须各行其责;可以对其他角色的工作提出意见和建议,但不得静默代替其他角色执行其核心职责。 - 新增规则:每个角色每批工作开始前必须在自己的角色文件夹维护 `01Todolist.md`,工作完成后必须维护 `02worklog.md`。 - 处理结果:已将角色职责、工作边界、GTD 目录规则写入 `Docs/00ProjectManagement/Apptag_Development_Workflow_Standard_v1.0.md`;流程标准版本更新为 1.4。 ## 2026-05-20 — 新增目标导向沟通与阻塞上报规则 - 背景:项目成员在执行任务时,可能遇到工具、翻译接口、自动化脚本、数据源或环境问题。此时允许停下来报告客观困难,但不允许用过程性表达、无关解释或含糊状态掩盖目标没有完成。 - 结论:在 `Docs/ProjectManagement/Apptag_Development_Workflow_Standard_v1.0.md` 中新增“Goal-Oriented Communication And Blocker Reporting”规则。 - 核心要求:任何状态汇报必须明确说明目标是 `Completed`、`Partially completed`、`Blocked` 还是 `Not started`;如果未完成,必须说明缺口、证据、影响和下一步选项。 - 特别约束:当工具、API、模型、翻译服务、自动化脚本、数据源或本地环境失败并导致目标无法完成时,成员必须直接说明,不得编造结果、静默替换不可验证结果,或回避目标是否完成。 - 处理结果:流程标准版本更新为 1.3。 ## 2026-05-20 — 撤销“翻译必须使用本地 Ollama”的项目硬性规则 - 背景:在 Smart Start 目录补充 29 种语言默认备注时,本地 Ollama `translatege` 在手工短句翻译中可用,但在脚本化批量翻译中反复卡住,无法稳定产出。 - 结论:撤销“所有多语言翻译任务必须使用本地 Ollama、禁止在线翻译”的项目级硬性规则。 - 处理结果:已从 `.hermes.md` 和 `Docs/ProjectManagement/Apptag_Development_Workflow_Standard_v1.0.md` 中移除该硬性规则;流程标准版本更新为 1.2。 - 后续策略:翻译任务应以可复现、可验证、可完成为准;若使用在线翻译或其他自动化翻译方式,必须在任务记录、生成脚本或 QA 报告中说明来源与风险。 ## 2026-05-20 — Smart Start notes 按语言拆分暂缓到后续版本 - 产品方向:长期看,Smart Start 基础目录与多语言 notes 分离是合理方向;基础目录保留语言无关字段,notes 可按语言独立资源加载。 - 架构评估结论:当前临近市场发布,不建议在本版执行该结构性拆分,除非有明确包体或启动性能阻塞。 - 关键风险:语言切换时默认备注识别依赖 `matched.notes.values`;若只加载当前语言 notes,可能导致默认备注不重本地化,或误覆盖用户手写备注。 - 当前决策:本版继续使用单 JSON 结构完成 CSV 吸收、多语言翻译 QA、构建和发布;notes 按语言拆分作为后续资源格式升级。 - 详细评估记录见:`Research/SmartStart/SmartStart_NotesLanguageSplit_ArchitectureReview_20260520.md`。 ## 2026-05-20 — 工作流程规范收口为单一权威文档 - 新增唯一权威流程文档:`Docs/ProjectManagement/Apptag_Development_Workflow_Standard_v1.0.md`。 - 该文档统一收口项目级工作流程、文档更新责任、QA 门槛、版本管理、构建规则、发布门槛与冲突处理规则。 - `.hermes.md` 现在只作为入口指针,不再单独维护散落的流程规则。 - 明确将“build 过程不得回写受版本控制的源码文件”升级为硬性规则。 - 当前 `build.sh` 回写 `Apptag/Info.plist` 的做法被定义为流程缺陷;治本要求是只改产物中的 `Info.plist`,不改仓库工作区。 - 后续任何 coder(包括 AI coder)如果收到与流程规范冲突的指令,必须指出违反的具体条款,而不能静默执行。 - 已在 `build.sh` 落地第一步修复:打包时先复制源码 `Info.plist` 到 `.app` 包内,再只修改产物中的 `CFBundleVersion`。 - 验收结果:`build/TagLauncher.app/Contents/Info.plist` 的 `CFBundleVersion` 可独立刷新,而源码 `Apptag/Info.plist` 在构建后保持不变。 ## 2026-05-10 — 无色容器交互锁定 - 「无色容器」是 App 列表第 2 种视图样式,对应 `displayMode == "container"`。 - 固定交互:hover 标签或对应容器区域时,容器保持标签色填充;鼠标移开后不自动清除。 - 清除方式:再次点击同一标签,或点击对应容器内部空白处。 - 后续迭代新增/修改其他样式时,不应改变以上无色容器交互逻辑;「彩色容器」应使用独立交互状态。