@betterdanlins/ai-memory 0.1.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +158 -14
- package/README.zh-CN.md +170 -0
- package/bin/cli.js +189 -5
- package/package.json +1 -1
- package/src/framework.js +260 -0
- package/src/legacy-v0.1.js +43 -0
- package/src/manifest.js +20 -1
- package/src/migrations.js +28 -0
- package/src/model-routing.js +108 -0
- package/src/path-safety.js +51 -0
- package/src/scaffold.js +114 -13
- package/src/workflow.js +185 -0
- package/templates/claude/.claude/agents/economy-test-worker.md +8 -0
- package/templates/claude/.claude/agents/premium-implementer.md +8 -0
- package/templates/claude/.claude/agents/premium-planner.md +8 -0
- package/templates/claude/.claude/agents/premium-reviewer.md +8 -0
- package/templates/claude/.claude/agents/standard-implementer.md +8 -0
- package/templates/claude/.claude/agents/standard-test-worker.md +8 -0
- package/templates/claude/.claude/commands/delivery-readiness.md +6 -0
- package/templates/claude/.claude/commands/design-feature.md +6 -0
- package/templates/claude/.claude/commands/finalize-requirement.md +1 -1
- package/templates/claude/.claude/commands/project-inception.md +5 -0
- package/templates/claude/.claude/settings.json +1 -1
- package/templates/claude/.claude/skills/critic/SKILL.md +2 -2
- package/templates/claude/.claude/skills/delivery-readiness/SKILL.md +6 -0
- package/templates/claude/.claude/skills/feature-design/SKILL.md +6 -0
- package/templates/claude/.claude/skills/memory-update/SKILL.md +1 -1
- package/templates/claude/.claude/skills/model-routing/SKILL.md +6 -0
- package/templates/claude/.claude/skills/project-inception/SKILL.md +6 -0
- package/templates/claude/CLAUDE.md +11 -5
- package/templates/codex/.agents/skills/critic/SKILL.md +2 -2
- package/templates/codex/.agents/skills/delivery-readiness/SKILL.md +6 -0
- package/templates/codex/.agents/skills/feature-design/SKILL.md +6 -0
- package/templates/codex/.agents/skills/memory-update/SKILL.md +1 -1
- package/templates/codex/.agents/skills/model-routing/SKILL.md +6 -0
- package/templates/codex/.agents/skills/project-inception/SKILL.md +6 -0
- package/templates/codex/.codex/agents/economy_test_worker.toml +6 -0
- package/templates/codex/.codex/agents/premium_implementer.toml +6 -0
- package/templates/codex/.codex/agents/premium_planner.toml +6 -0
- package/templates/codex/.codex/agents/premium_reviewer.toml +6 -0
- package/templates/codex/.codex/agents/standard_implementer.toml +6 -0
- package/templates/codex/.codex/agents/standard_test_worker.toml +6 -0
- package/templates/codex/AGENTS.md +11 -5
- package/templates/common/.ai/README.md +5 -1
- package/templates/common/.ai/config/model-routing.json +5 -0
- package/templates/common/.ai/memory/project-state.md +1 -1
- package/templates/common/.ai/memory/session-log.md +1 -1
- package/templates/common/.ai/runs/.gitignore +2 -0
- package/templates/common/.ai/skills/architecture.md +24 -14
- package/templates/common/.ai/skills/code-review.md +1 -1
- package/templates/common/.ai/skills/critic.md +4 -2
- package/templates/common/.ai/skills/delivery-readiness.md +34 -0
- package/templates/common/.ai/skills/feature-design.md +35 -0
- package/templates/common/.ai/skills/memory-update.md +19 -14
- package/templates/common/.ai/skills/model-routing.md +39 -0
- package/templates/common/.ai/skills/project-inception.md +33 -0
- package/templates/common/.ai/skills/requirements-flow.md +33 -16
- package/templates/common/docs/architecture/data-model.md +43 -0
- package/templates/common/docs/architecture/deployment.md +40 -0
- package/templates/common/docs/architecture/quality-attributes.md +50 -0
- package/templates/common/docs/architecture/system-context.md +35 -0
- package/templates/common/docs/design/README.md +22 -0
- package/templates/common/docs/design/v1.0.0/.gitkeep +0 -0
- package/templates/common/docs/requirements/README.md +2 -1
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# 交付就绪检查
|
|
2
|
+
|
|
3
|
+
在功能准备合并、发布或部署时使用。它是基于证据的轻量检查门,不重新做需求澄清或技术设计。
|
|
4
|
+
|
|
5
|
+
## 深度路由
|
|
6
|
+
|
|
7
|
+
- S:验证外部契约、相关测试和无意副作用;本地功能不强制生成独立报告。
|
|
8
|
+
- M:检查适用的数据、性能、可观测性、部署和回滚影响,并把证据写回设计文档。
|
|
9
|
+
- L:完整检查质量属性、迁移/回滚、生产验证和运行保障;阻塞项清零前不得标记就绪。
|
|
10
|
+
|
|
11
|
+
## 流程
|
|
12
|
+
|
|
13
|
+
1. 读取 final 需求、适用的技术设计、架构基线和代码差异;不复制这些内容。
|
|
14
|
+
2. 逐条验证外部行为契约与验收标准,记录命令、测试或其他证据。
|
|
15
|
+
3. 只检查适用项;不适用必须写原因,不能静默跳过。
|
|
16
|
+
4. 将结果写入 `docs/design/...` 的“交付验证”章节;S 级无设计文档时记入 session-log。
|
|
17
|
+
5. 输出明确结论:`ready`、`conditional` 或 `not-ready`,并列出阻塞项。
|
|
18
|
+
|
|
19
|
+
启用模型路由时,机械性测试可交给 economy 执行者,但测试策略、安全/迁移/并发场景和最终审查仍由 premium 执行者负责。测试命令直接运行,不调用模型。reviewer 第一轮保持只读,修复后重新审查。
|
|
20
|
+
|
|
21
|
+
## 检查面
|
|
22
|
+
|
|
23
|
+
| 检查面 | 必须回答的问题 |
|
|
24
|
+
|---|---|
|
|
25
|
+
| 契约与测试 | 外部契约、技术接口和失败路径是否有验证证据? |
|
|
26
|
+
| 数据 | Schema/数据迁移顺序、兼容、校验和回滚是否可执行? |
|
|
27
|
+
| 部署 | 配置、密钥、制品、发布顺序、健康检查和回滚是否明确? |
|
|
28
|
+
| 性能与容量 | 受影响预算是否验证,瓶颈与扩容触发条件是否仍成立? |
|
|
29
|
+
| 可观测性 | 日志、关联 ID、指标、错误上报和告警能否发现并定位失败? |
|
|
30
|
+
| 可靠性 | 超时、重试、幂等、降级、备份和恢复是否符合风险等级? |
|
|
31
|
+
| 安全 | 权限、敏感数据、输入边界和依赖风险是否已检查? |
|
|
32
|
+
| 运行交接 | 谁能判断发布成功、何时停止或回滚、故障如何处置? |
|
|
33
|
+
|
|
34
|
+
不要仅凭“代码已完成”判定 ready,也不要为 S 级本地改动强制搭建生产级设施。
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# 功能技术设计(how)
|
|
2
|
+
|
|
3
|
+
输入:已定稿需求、相关架构基线和功能记忆。输出:可直接实施的技术设计,不重新讨论已确认的 what/why。
|
|
4
|
+
|
|
5
|
+
## 适用性
|
|
6
|
+
|
|
7
|
+
- S 级需求默认不生成完整设计;只在实现中遵循外部契约并测试。
|
|
8
|
+
- M 级生成精简设计,聚焦实际变化。
|
|
9
|
+
- L 级先更新 `docs/architecture/` 基线,再完成设计和聚焦 critic。
|
|
10
|
+
|
|
11
|
+
## 流程
|
|
12
|
+
|
|
13
|
+
1. 读取 `final/<需求名>.md` 的实现交接,以及相关 `docs/architecture/`、源码和 feature 记忆。
|
|
14
|
+
2. 若需求存在矛盾或阻塞开放问题,退回 requirements-flow;不要用实现假设偷偷补需求。
|
|
15
|
+
3. 在 `docs/design/vX.Y.Z/<需求名>.md` 按模板形成设计,只填写适用章节,不涉及也要简述原因。
|
|
16
|
+
4. 为真实边界定义技术接口契约;不要为所有私有函数写文档。
|
|
17
|
+
5. 记录数据模型和质量属性相对项目基线的增量,不复制整份基线。
|
|
18
|
+
6. 检查设计是否可实施、可测试、可迁移、可回滚、可观测。
|
|
19
|
+
7. M 级做一次精简自检;L 级按 critic 方法做独立或聚焦审查。
|
|
20
|
+
8. 更新 `project-state.md` 为 `designed`,实现计划只引用本设计,不重新生成同义 spec。
|
|
21
|
+
|
|
22
|
+
启用模型路由时,`feature-design` 与需要的 `write-plan` 分别创建 handoff;实现阶段必须重新 prepare,引用最终需求、设计和计划的当前哈希。不要把 brainstorming 对话作为实现输入。
|
|
23
|
+
|
|
24
|
+
## Superpowers 路由
|
|
25
|
+
|
|
26
|
+
- S:跳过 brainstorming 和 writing-plans。
|
|
27
|
+
- M:仅当存在无法由基线和约束解决的高影响 how 选择时,使用针对性 brainstorming;设计已可实施时跳过完整 writing-plans。
|
|
28
|
+
- L:可使用 brainstorming 比较重大方案,并用 writing-plans 拆实施阶段;必须把结论回写到本设计,Superpowers 临时产物不是唯一事实源。
|
|
29
|
+
|
|
30
|
+
## 完成门槛
|
|
31
|
+
|
|
32
|
+
- 模块职责、依赖和关键流程明确。
|
|
33
|
+
- 跨边界接口、错误、状态、一致性和兼容策略明确。
|
|
34
|
+
- 数据、性能、可观测性、容量/功能扩展、可靠性、安全、部署影响均已判断。
|
|
35
|
+
- 验证、迁移和回滚可执行;假设有验证方式。
|
|
@@ -1,24 +1,29 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 记忆更新协议(工程节点)
|
|
2
2
|
|
|
3
3
|
## 触发时机
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
只在信息对后续会话仍有价值时写入:
|
|
6
|
+
|
|
7
|
+
1. 完成一个可独立验收的功能、阶段或发布节点。
|
|
8
|
+
2. 做出会约束后续实现的关键决策,或推翻已有决策。
|
|
9
|
+
3. 需求/设计/实现/交付状态变化。
|
|
10
|
+
4. 发现需要跨会话保留的风险、故障原因或踩坑。
|
|
11
|
+
5. 会话中断、上下文压缩或跨工具切换前。
|
|
12
|
+
|
|
13
|
+
不要因为写了一个测试、修改一个私有函数、执行一次命令或完成细碎 plan item 单独更新记忆。
|
|
9
14
|
|
|
10
15
|
## 写入路由
|
|
11
16
|
|
|
12
17
|
| 内容 | 去处 |
|
|
13
18
|
|---|---|
|
|
14
|
-
|
|
|
15
|
-
|
|
|
16
|
-
|
|
|
17
|
-
| 新增记忆文件 | `MEMORY.md`
|
|
19
|
+
| 工程节点、当前进度、下一步、阻塞 | `session-log.md` 追加 |
|
|
20
|
+
| 需求、设计、里程碑或交付状态 | `project-state.md` 对应行 |
|
|
21
|
+
| 稳定功能决策与契约变化摘要 | `features/<名>.md` |
|
|
22
|
+
| 新增记忆文件 | `MEMORY.md` 加索引 |
|
|
18
23
|
|
|
19
|
-
##
|
|
24
|
+
## 约束
|
|
20
25
|
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
- session-log 超约 200
|
|
24
|
-
-
|
|
26
|
+
- 写前读取目标文件,只记录增量和新事实,不复制需求/设计/测试输出。
|
|
27
|
+
- 将同一工程节点内的相关小步骤合并为一条,避免流水噪声。
|
|
28
|
+
- session-log 超约 200 行时,把旧条目压缩进 project-state 归档章节。
|
|
29
|
+
- 跨工具切换前确认关键状态已落盘;记忆变更随对应代码或文档一起 commit。
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# 分阶段模型路由与交接
|
|
2
|
+
|
|
3
|
+
模型路由只选择现有阶段的执行者,不得增加或跳过 S/M/L 风险流程。读取 `.ai/config/model-routing.json`:`inherit` 保持当前模型;`balanced` 使用高级规划、中等实现、便宜测试和高级审查;`quality` 提高实现与诊断等级。
|
|
4
|
+
|
|
5
|
+
执行 CLI 时优先使用当前环境的 `ai-memory`;若命令不可用,使用 `npx --yes @betterdanlins/ai-memory@{{frameworkVersion}}`。必须固定与项目框架一致的版本,不使用未固定的 latest。
|
|
6
|
+
|
|
7
|
+
## 执行协议
|
|
8
|
+
|
|
9
|
+
1. 先由 requirements-flow / feature-design 判断是否需要该阶段,再解析模型等级。
|
|
10
|
+
2. 跨模型执行前,用 `ai-memory workflow prepare` 从正式需求、设计和计划生成 `.ai/runs/<feature>/handoff.json`。
|
|
11
|
+
3. 执行者先运行 `ai-memory workflow verify`,再读取 handoff 中的全部输入;不得用对话摘要替代正式文档。
|
|
12
|
+
4. 输入缺失、哈希变化、路由变化或存在未决问题时停止,不得猜测。
|
|
13
|
+
5. 实现结束后在同一 run 目录写 `<stage>-result.json`,记录变更文件、验收覆盖、测试、设计偏差和未决风险。
|
|
14
|
+
6. reviewer 第一轮只读;修复交给 implementer,修复后重新审查。
|
|
15
|
+
|
|
16
|
+
## 能力边界与升级
|
|
17
|
+
|
|
18
|
+
- `premium`:需求定稿、重大方案、计划、对抗性测试和最终审查。
|
|
19
|
+
- `standard`:按已批准计划实现、普通失败诊断。
|
|
20
|
+
- `economy`:根据明确测试矩阵补机械性测试;不得修改生产代码或重新解释契约。
|
|
21
|
+
- `none`:直接运行确定性命令,不调用模型。
|
|
22
|
+
- economy 无法理解契约或发现生产缺陷 → standard;standard 发现设计缺口或连续两次失败 → premium。
|
|
23
|
+
- 安全、权限、资金、隐私、数据迁移和并发问题直接使用 premium。
|
|
24
|
+
|
|
25
|
+
模型不可用时可降级为 `inherit`,但必须报告一次;不得静默把高风险阶段降为 economy。
|
|
26
|
+
|
|
27
|
+
## 交接回执最小字段
|
|
28
|
+
|
|
29
|
+
```json
|
|
30
|
+
{
|
|
31
|
+
"stage": "implementation",
|
|
32
|
+
"status": "completed",
|
|
33
|
+
"changedFiles": [],
|
|
34
|
+
"acceptanceCoverage": {},
|
|
35
|
+
"tests": [],
|
|
36
|
+
"designDeviations": [],
|
|
37
|
+
"unresolvedRisks": []
|
|
38
|
+
}
|
|
39
|
+
```
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# 项目工程基线(0→1)
|
|
2
|
+
|
|
3
|
+
适用:新项目、首次补建架构基线,或会改变系统边界/数据所有权/部署拓扑的重大重构。普通功能迭代不要重复执行。
|
|
4
|
+
|
|
5
|
+
## 原则
|
|
6
|
+
|
|
7
|
+
- 只规定语言无关的工程问题;语言、框架、数据库和云平台是项目答案,不是流程前提。
|
|
8
|
+
- 先记录事实,再记录假设;每个关键假设必须有验证方式或触发复审的条件。
|
|
9
|
+
- 采用满足近期目标的最小架构,禁止用“未来可能扩展”代替具体负载或变化场景。
|
|
10
|
+
- 已有项目以现状盘点补建基线,不为套模板而重做架构。
|
|
11
|
+
- 默认不启动 Superpowers 全套流程;仅在存在多个高影响方案且无法用现有约束决策时,选择性使用 brainstorming。
|
|
12
|
+
|
|
13
|
+
## 工作流
|
|
14
|
+
|
|
15
|
+
1. 读取项目目标、现有代码/文档和 `.ai/memory/project-state.md`。
|
|
16
|
+
2. 判断是 0→1、新增基线还是重大重构;不适用则停止并转入需求或功能设计流程。
|
|
17
|
+
3. 只询问会改变架构方向的阻塞信息;非阻塞信息采用保守假设并明确标记。
|
|
18
|
+
4. 按 `docs/architecture/` 的四份模板建立或增量更新工程基线:
|
|
19
|
+
- `system-context.md`:边界、参与者、模块和关键流程。
|
|
20
|
+
- `data-model.md`:实体、关系、所有权、生命周期、一致性和迁移。
|
|
21
|
+
- `quality-attributes.md`:性能、可观测性、扩展性、可靠性、安全、维护性和成本。
|
|
22
|
+
- `deployment.md`:环境、拓扑、配置、发布、迁移、回滚和运行保障。
|
|
23
|
+
5. 检查四份文档之间是否矛盾;高风险或生产级项目按 `.ai/skills/critic.md` 做一次聚焦审查。
|
|
24
|
+
6. 将确定的技术栈、部署基线和关键风险更新到 `project-state.md`,并在 session-log 记录节点。
|
|
25
|
+
|
|
26
|
+
## 完成门槛
|
|
27
|
+
|
|
28
|
+
- 系统内外边界、数据所有权和部署单元明确。
|
|
29
|
+
- 关键质量属性使用“场景 / 条件 / 响应 / 指标 / 验证”表达,而不是形容词。
|
|
30
|
+
- 监控覆盖已知故障;可观测性足以关联请求或任务并定位未知故障。
|
|
31
|
+
- 容量扩展绑定负载场景;功能扩展绑定变化场景。
|
|
32
|
+
- 发布、数据迁移和回滚至少有可执行方向。
|
|
33
|
+
- 所有未知项明确标为假设、风险或开放问题,不伪装成已确认决策。
|
|
@@ -1,23 +1,40 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 需求定稿流程(draft → final)
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
本流程只确定 what/why、范围、外部行为和验收标准,不决定模块、存储、框架等 how。技术设计交给 `feature-design`。
|
|
4
4
|
|
|
5
|
-
## 新建
|
|
5
|
+
## 新建
|
|
6
6
|
|
|
7
|
-
1.
|
|
8
|
-
2. 在 `draft/<需求名>.md`
|
|
9
|
-
3. 在
|
|
7
|
+
1. 确认版本目录 `docs/requirements/vX.Y.Z/`,不存在则创建 `draft/` 与 `final/`。
|
|
8
|
+
2. 在 `draft/<需求名>.md` 记录:背景 / 想要什么 / 不确定的点。
|
|
9
|
+
3. 在 `project-state.md` 需求进度表登记状态 `draft`。
|
|
10
10
|
|
|
11
|
-
## 定稿
|
|
11
|
+
## 定稿
|
|
12
12
|
|
|
13
|
-
1.
|
|
14
|
-
2.
|
|
15
|
-
3.
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
13
|
+
1. 读取 draft、相关功能记忆和已有外部契约。
|
|
14
|
+
2. 只澄清会改变目标、范围、用户可见行为或验收结果的问题;实现选择留给技术设计。
|
|
15
|
+
3. 按固定结构形成候选稿:
|
|
16
|
+
- **目标**
|
|
17
|
+
- **范围**:包含与不做什么
|
|
18
|
+
- **外部行为契约**:参与者、输入、输出、失败表达、副作用、兼容性
|
|
19
|
+
- **验收标准**:可观察、可验证
|
|
20
|
+
- **开放问题**:不得隐藏阻塞项
|
|
21
|
+
- **实现交接**:已确认决策、how 阶段待决定项、禁止重新讨论项、初步风险等级
|
|
22
|
+
4. 先给出初步风险等级,再按 `.ai/skills/critic.md` 审查需求完整性:S 级做精简同上下文自检,M/L 级使用独立 critic(工具支持时);逐条处理后才写 `final/<需求名>.md`。
|
|
23
|
+
5. 按下方路由选择下一步,不在本流程中启动重复 brainstorming。
|
|
24
|
+
6. 更新 `project-state.md` 为 `finalized`;在 `features/<需求名>.md` 记录外部契约与关键决策,并更新 MEMORY 索引。
|
|
19
25
|
|
|
20
|
-
|
|
26
|
+
若 `.ai/config/model-routing.json` 的 profile 不是 `inherit`,定稿前按 `.ai/skills/model-routing.md` 为 `requirement-finalize` 准备并校验 handoff,再使用对应等级执行者。模型路由不得改变下方 S/M/L 流程深度。
|
|
21
27
|
|
|
22
|
-
|
|
23
|
-
|
|
28
|
+
## 风险路由
|
|
29
|
+
|
|
30
|
+
| 等级 | 判断 | 下一步 |
|
|
31
|
+
|---|---|---|
|
|
32
|
+
| S | 局部、可逆,不跨模块/数据/部署边界,验收明确 | 可直接实现并测试;不生成完整技术设计 |
|
|
33
|
+
| M | 跨多个模块,或改变数据、公共接口、运行行为 | 执行 `feature-design`,生成精简技术设计 |
|
|
34
|
+
| L | 改变系统边界、数据所有权、部署拓扑,或安全/迁移/可用性风险高 | 先更新项目基线,再执行完整 `feature-design`;只对未决高影响方案选择性使用 Superpowers |
|
|
35
|
+
|
|
36
|
+
拿不准时选高一级,并在实现交接中写明原因。风险等级决定流程深度,不代表需求价值。
|
|
37
|
+
|
|
38
|
+
## 外部行为契约边界
|
|
39
|
+
|
|
40
|
+
只写调用方或用户可观察的承诺。不要在 final 需求中固定类、函数、表结构、队列、框架或部署组件,除非它们本身就是业务约束。
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# 数据模型基线
|
|
2
|
+
|
|
3
|
+
> 项目:{{projectName}}
|
|
4
|
+
> 最后更新:{{date}}
|
|
5
|
+
> 先描述领域与数据语义;物理表、文档或消息结构只在已经确定时记录。
|
|
6
|
+
|
|
7
|
+
## 适用性
|
|
8
|
+
|
|
9
|
+
- 是否持久化数据:
|
|
10
|
+
- 数据来源与权威源:
|
|
11
|
+
|
|
12
|
+
## 核心实体
|
|
13
|
+
|
|
14
|
+
| 实体 | 业务含义 | 标识与唯一性 | 所有者 | 生命周期 |
|
|
15
|
+
|---|---|---|---|---|
|
|
16
|
+
|
|
17
|
+
## 关系与约束
|
|
18
|
+
|
|
19
|
+
- 实体关系:
|
|
20
|
+
- 完整性约束:
|
|
21
|
+
- 状态转换:
|
|
22
|
+
|
|
23
|
+
## 一致性与并发
|
|
24
|
+
|
|
25
|
+
- 一致性要求:
|
|
26
|
+
- 并发冲突策略:
|
|
27
|
+
- 幂等与去重:
|
|
28
|
+
|
|
29
|
+
## 敏感数据与保留
|
|
30
|
+
|
|
31
|
+
- 数据分类:
|
|
32
|
+
- 访问与审计:
|
|
33
|
+
- 保留、归档与删除:
|
|
34
|
+
|
|
35
|
+
## 迁移与兼容
|
|
36
|
+
|
|
37
|
+
- 初始化/迁移方向:
|
|
38
|
+
- 前后兼容:
|
|
39
|
+
- 回滚与校验:
|
|
40
|
+
|
|
41
|
+
## 假设与开放问题
|
|
42
|
+
|
|
43
|
+
- (每项附验证方式或复审条件)
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# 部署与运行基线
|
|
2
|
+
|
|
3
|
+
> 项目:{{projectName}}
|
|
4
|
+
> 技术栈:{{techStack}}
|
|
5
|
+
> 最后更新:{{date}}
|
|
6
|
+
|
|
7
|
+
## 环境与拓扑
|
|
8
|
+
|
|
9
|
+
| 环境 | 部署单元 | 基础设施/外部依赖 | 状态位置 |
|
|
10
|
+
|---|---|---|---|
|
|
11
|
+
|
|
12
|
+
## 配置、密钥与权限
|
|
13
|
+
|
|
14
|
+
- 配置来源与分环境策略:
|
|
15
|
+
- 密钥存储与轮换:
|
|
16
|
+
- 运行身份与最小权限:
|
|
17
|
+
|
|
18
|
+
## 发布流程
|
|
19
|
+
|
|
20
|
+
1. 构建与制品:
|
|
21
|
+
2. 发布与验证:
|
|
22
|
+
3. 数据迁移顺序:
|
|
23
|
+
4. 回滚条件与步骤:
|
|
24
|
+
|
|
25
|
+
## 运行保障
|
|
26
|
+
|
|
27
|
+
- 存活与就绪判定:
|
|
28
|
+
- 日志、指标、追踪和错误上报入口:
|
|
29
|
+
- 告警与值守方式:
|
|
30
|
+
- 备份、恢复目标与演练:
|
|
31
|
+
|
|
32
|
+
## 容量与成本
|
|
33
|
+
|
|
34
|
+
- 初始容量:
|
|
35
|
+
- 扩缩容方式与触发条件:
|
|
36
|
+
- 成本边界:
|
|
37
|
+
|
|
38
|
+
## 单点、风险与开放问题
|
|
39
|
+
|
|
40
|
+
- (每项附缓解措施或验证方式)
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# 质量属性基线
|
|
2
|
+
|
|
3
|
+
> 项目:{{projectName}}
|
|
4
|
+
> 最后更新:{{date}}
|
|
5
|
+
> 用可验证场景代替“高性能、可扩展、稳定”等形容词。
|
|
6
|
+
|
|
7
|
+
## 负载与容量假设
|
|
8
|
+
|
|
9
|
+
| 指标 | 当前/初始值 | 目标或上限 | 验证方式 | 复审触发条件 |
|
|
10
|
+
|---|---|---|---|---|
|
|
11
|
+
| 用户/租户数 | | | | |
|
|
12
|
+
| 峰值吞吐 | | | | |
|
|
13
|
+
| 数据规模与增长 | | | | |
|
|
14
|
+
|
|
15
|
+
## 质量属性场景
|
|
16
|
+
|
|
17
|
+
| 属性 | 场景与条件 | 系统响应 | 可量化指标 | 验证方式 |
|
|
18
|
+
|---|---|---|---|---|
|
|
19
|
+
| 性能 | | | | |
|
|
20
|
+
| 可用性/可靠性 | | | | |
|
|
21
|
+
| 安全性 | | | | |
|
|
22
|
+
| 可维护性 | | | | |
|
|
23
|
+
| 成本 | | | | |
|
|
24
|
+
|
|
25
|
+
## 可观测性最低基线
|
|
26
|
+
|
|
27
|
+
- 健康/就绪检查:
|
|
28
|
+
- 结构化日志与关联 ID:
|
|
29
|
+
- 核心流量、错误、耗时和饱和度指标:
|
|
30
|
+
- 错误上报与部署版本:
|
|
31
|
+
- 追踪适用条件:
|
|
32
|
+
- 告警与运行手册:
|
|
33
|
+
|
|
34
|
+
## 容量扩展性
|
|
35
|
+
|
|
36
|
+
- 负载增长场景:
|
|
37
|
+
- 当前瓶颈假设:
|
|
38
|
+
- 水平/垂直扩容方向:
|
|
39
|
+
- 状态、分区与背压:
|
|
40
|
+
- 扩容触发指标:
|
|
41
|
+
|
|
42
|
+
## 功能可扩展性
|
|
43
|
+
|
|
44
|
+
- 预期变化场景:
|
|
45
|
+
- 需要稳定的边界与兼容策略:
|
|
46
|
+
- 明确不预留的抽象:
|
|
47
|
+
|
|
48
|
+
## 假设与待验证项
|
|
49
|
+
|
|
50
|
+
- (每项写明负责人、方式或复审条件)
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# 系统上下文
|
|
2
|
+
|
|
3
|
+
> 项目:{{projectName}}
|
|
4
|
+
> 最后更新:{{date}}
|
|
5
|
+
> 状态:待建立基线
|
|
6
|
+
|
|
7
|
+
## 目标与非目标
|
|
8
|
+
|
|
9
|
+
- 目标:
|
|
10
|
+
- 非目标:
|
|
11
|
+
|
|
12
|
+
## 参与者与外部系统
|
|
13
|
+
|
|
14
|
+
| 参与者/系统 | 关系 | 输入/输出 | 约束 |
|
|
15
|
+
|---|---|---|---|
|
|
16
|
+
|
|
17
|
+
## 系统边界
|
|
18
|
+
|
|
19
|
+
- 系统负责:
|
|
20
|
+
- 系统不负责:
|
|
21
|
+
- 信任边界:
|
|
22
|
+
|
|
23
|
+
## 模块与职责
|
|
24
|
+
|
|
25
|
+
| 模块/部署单元 | 单一职责 | 依赖 | 状态归属 |
|
|
26
|
+
|---|---|---|---|
|
|
27
|
+
|
|
28
|
+
## 关键流程
|
|
29
|
+
|
|
30
|
+
1. (写出跨边界的主路径和失败路径)
|
|
31
|
+
|
|
32
|
+
## 决策、假设与风险
|
|
33
|
+
|
|
34
|
+
| 类型(决策/假设/风险) | 内容 | 依据或验证方式 | 复审触发条件 |
|
|
35
|
+
|---|---|---|---|
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# 功能技术设计目录
|
|
2
|
+
|
|
3
|
+
- 按版本存放:`vX.Y.Z/<需求名>.md`。
|
|
4
|
+
- 输入是 `docs/requirements/.../final/` 的需求定稿和 `docs/architecture/` 项目基线。
|
|
5
|
+
- S 级需求可不生成完整设计;M/L 级按 `.ai/skills/feature-design.md` 执行。
|
|
6
|
+
- 只记录 how 和相对项目基线的增量,不复述已确认的需求或整份架构基线。
|
|
7
|
+
|
|
8
|
+
## 设计结构
|
|
9
|
+
|
|
10
|
+
1. 目标与约束引用
|
|
11
|
+
2. 风险等级与理由
|
|
12
|
+
3. 现状及影响范围
|
|
13
|
+
4. 模块、职责与依赖
|
|
14
|
+
5. 技术接口契约
|
|
15
|
+
6. 数据模型增量
|
|
16
|
+
7. 核心流程与状态转换
|
|
17
|
+
8. 错误、并发、幂等与兼容
|
|
18
|
+
9. 质量属性增量
|
|
19
|
+
10. 部署、迁移与回滚
|
|
20
|
+
11. 测试与验证
|
|
21
|
+
12. 假设和开放问题
|
|
22
|
+
13. 交付验证(ready/conditional/not-ready、证据与阻塞项)
|
|
File without changes
|
|
@@ -2,5 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
- 每个迭代版本一个目录:`vX.Y.Z/`
|
|
4
4
|
- `draft/` — 人工粗稿,自由格式,想到哪写到哪
|
|
5
|
-
- `final/` — AI 协作定稿,固定结构:目标 / 范围 /
|
|
5
|
+
- `final/` — AI 协作定稿,固定结构:目标 / 范围 / 外部行为契约 / 验收标准 / 开放问题 / 实现交接
|
|
6
6
|
- 定稿流程见 `.ai/skills/requirements-flow.md`(/new-requirement、/finalize-requirement)
|
|
7
|
+
- how 阶段技术接口与数据/质量属性增量见 `.ai/skills/feature-design.md` 和 `docs/design/`
|