project-discover-products-ops-dod
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chineseproject-discover-products-ops-dod(Step5+6+7+11:Products + Ops + DoD + 增量维护)
project-discover-products-ops-dod (Step5+6+7+11: Products + Ops + DoD + Incremental Maintenance)
概览
Overview
这一阶段把 Discover 从“能写出来”升级到“能治理、能持续可用”:
- Products:把业务模块地图收敛到可治理数量(默认 <= 6),为需求阶段提供稳定语义锚点
- Ops:固定“能跑、能验、能回滚、能排障”的入口(高 ROI)
- DoD:用门禁规则决定是否允许索引打勾(索引勾选只是反映事实)
- Delta Discover / stale:让知识库能随代码变化增量更新,不快速过期
开始时宣布:「我正在使用 project-discover-products-ops-dod 技能收敛 Products、建立 Ops 入口并执行 DoD 与增量维护门禁。」
This phase upgrades Discover from "can be written" to "governable and continuously usable":
- Products: Converge the business module map to a governable number (default <= 6), providing stable semantic anchors for the requirement phase
- Ops: Fix entry points for "runnable, verifiable, rollbackable, troubleshootable" (high ROI)
- DoD: Use access control rules to decide whether to allow indexing checkmarks (index checking only reflects facts)
- Delta Discover / stale: Enable the knowledge base to be updated incrementally with code changes without rapid expiration
Announce at start: "I am using the project-discover-products-ops-dod skill to converge Products, establish Ops entry points, and implement DoD and incremental maintenance access control."
Products(业务模块聚合与收敛 <= 6)
Products (Business Module Aggregation and Convergence <= 6)
核心原则
Core Principles
- Products 是业务地图,不是功能清单大全
- 优先用“数据主责 + 对外能力 + 组织边界”来聚类
- 默认目标:<= 6;如果无法收敛,必须写明原因与治理建议入口
- Products are business maps, not full feature lists
- Prioritize clustering by "data ownership + external capabilities + organizational boundaries"
- Default goal: <= 6; if convergence is not possible, the reason and governance suggestion entry must be clearly stated
从代码反推 Products 的高信号线索(建议顺序)
High-signal clues for inferring Products from code (recommended order)
- 数据主责:哪个组件主写哪些核心对象(来自模块页 )
## Data Contract - 对外能力边界:哪些 API 是稳定承诺(来自模块页 )
## API Contract - 组织边界:owner/team 划分(来自 )
components/index.md - 运行边界:独立部署/SLO 的单元(如果证据存在)
- Data ownership: Which component is primarily responsible for writing which core objects (from module page )
## Data Contract - External capability boundary: Which APIs are stable commitments (from module page )
## API Contract - Organizational boundary: owner/team division (from )
components/index.md - Runtime boundary: Units with independent deployment/SLO (if evidence exists)
products/index.md
最小模板(只导航)
products/index.mdproducts/index.md
minimal template (navigation only)
products/index.mdmarkdown
undefinedmarkdown
undefinedProducts Index(业务地图:只导航)
Products Index(业务地图:只导航)
建议收敛到 <= 6 个业务模块。这里不是功能清单。
| product | owner | entry | related_components | status |
|---|---|---|---|---|
| commerce | team-a | ./commerce.md | auth, order, payment | - [ ] |
undefined建议收敛到 <= 6 个业务模块。这里不是功能清单。
| product | owner | entry | related_components | status |
|---|---|---|---|---|
| commerce | team-a | ./commerce.md | auth, order, payment | - [ ] |
undefinedproducts/{product}.md
建议只写“入口级摘要”
products/{product}.mdproducts/{product}.md
is recommended to only include "entry-level summaries"
products/{product}.md- TL;DR(业务边界一句话)
- Capability Catalog(CAP-001 粒度:能力名 + 一句话 + 证据入口)
- Business Rules Index(规则名 + 一句话 + 代码证据入口)
- Domain Events(事件名 + 语义一句话 + 证据入口)
禁止:把产品页写成字段大全/接口大全/详细时序;细节通过证据入口指向代码或模块页。
- TL;DR (one sentence describing business boundaries)
- Capability Catalog (CAP-001 granularity: capability name + one sentence description + evidence entry)
- Business Rules Index (rule name + one sentence description + code evidence entry)
- Domain Events (event name + one sentence semantic description + evidence entry)
Prohibited: Writing product pages as full lists of fields/interfaces/detailed timelines; details point to code or module pages through evidence entry points.
Ops(运行入口与证据链)
Ops (Operation Entry Points and Evidence Chain)
目标
Goal
把“能跑、能验、能回滚、能排障”的入口固定下来。Ops 页只做入口与要点,不重复长操作手册。
Fix the entry points for "runnable, verifiable, rollbackable, troubleshootable". The Ops page only includes entry points and key points, and does not duplicate long operation manuals.
推荐落盘结构
Recommended storage structure
.aisdlc/project/ops/
index.md
runbook.md
monitoring.md
rollback.md.aisdlc/project/ops/
index.md
runbook.md
monitoring.md
rollback.mdops/index.md
最小模板
ops/index.mdops/index.md
minimal template
ops/index.mdmarkdown
undefinedmarkdown
undefinedOps Index(入口页)
Ops Index(入口页)
运行入口
运行入口
- 本地启动:../memory/structure.md#入口
- 环境变量/配置:<权威入口>
- 本地启动:../memory/structure.md#入口
- 环境变量/配置:<权威入口>
可观测入口
可观测入口
- Dashboard:
- Alerts:
- Logs:
- Dashboard:
- Alerts:
- Logs:
回滚入口
回滚入口
- Rollback:
- Rollback:
Evidence Gaps(缺口清单)
Evidence Gaps(缺口清单)
- 缺口:
- 期望补齐到的粒度:
- 候选证据位置:
- 影响:
undefined- 缺口:
- 期望补齐到的粒度:
- 候选证据位置:
- 影响:
undefinedDoD(完成标准)与门禁
DoD (Definition of Done) and Access Control
项目级 DoD(最小自检)
Project-level DoD (minimum self-check)
- Level-0 四份 Memory 具备“入口清晰/边界清晰/可导航”
- Level-1 索引骨架已生成(components/products),且索引只导航
- 含跨模块依赖关系图(Mermaid,direct only)
components/index.md - 每个 P0 模块页满足:存在模块页 + 固定标题齐全(含 与
## Evidence)+ frontmatter 元数据齐全 + 契约段落具备权威入口/不变量/证据入口## Evidence Gaps - Products 收敛到 <= 6;或已记录不可收敛原因与治理建议入口
- Level-0 four Memory documents have "clear entry points, clear boundaries, navigable"
- Level-1 index skeleton has been generated (components/products), and indexes are for navigation only
- includes cross-module dependency graph (Mermaid, direct only)
components/index.md - Each P0 module page meets: module page exists + fixed headings are complete (including and
## Evidence) + frontmatter metadata is complete + contract sections have authoritative entry points/invariants/evidence entries## Evidence Gaps - Products are converged to <= 6; or the reason for non-convergence and governance suggestion entry has been recorded
状态一致性门禁(SSOT,必须遵守)
Status consistency access control (SSOT, mandatory compliance)
唯一事实来源:模块是否允许在打勾,只由该模块页是否达标决定。components/index.md
- P0 模块允许 的前置条件
- [x]- 模块页存在且可导航:
.aisdlc/project/components/{module}.md - 模块页包含固定标题:、
## TL;DR、## API Contract、## Data Contract、## Evidence(证据入口)## Evidence Gaps(缺口清单) - 模块页 frontmatter 包含:、
change_frequency、last_verified_atsource_files - 与
## API Contract都包含:## Data Contract- 权威入口(可定位)
- 3–7 条不变量摘要
- 证据入口(文件/类/job/命令级最小粒度)
- 模块页正文不得散落“待补/未发现/待…后填写/以后再补”等占位句;缺口只能写入
## Evidence Gaps(缺口清单) - 若存在缺口,必须写入 ,且不得打勾
## Evidence Gaps(缺口清单)
- 模块页存在且可导航:
- P1 模块允许 的降级条件
- [x]- 模块页存在;API 或 Data 允许缺失其一,但缺口必须结构化写入
Evidence Gaps
- 模块页存在;API 或 Data 允许缺失其一,但缺口必须结构化写入
- P2 模块
- 默认不打勾;只占位导航即可
Single source of truth: Whether a module is allowed to be checked inis only determined by whether the module page meets the standards.components/index.md
- Prerequisites for allowing for P0 modules
- [x]- Module page exists and is navigable:
.aisdlc/project/components/{module}.md - Module page includes fixed headings: ,
## TL;DR,## API Contract,## Data Contract,## Evidence (evidence entry)## Evidence Gaps (gap list) - Module page frontmatter includes: ,
change_frequency,last_verified_atsource_files - Both and
## API Contractinclude:## Data Contract- Authoritative entry point (locatable)
- 3–7 invariant summaries
- Evidence entry point (minimum granularity of file/class/job/command level)
- Module page body must not contain placeholder sentences such as "to be filled/not found/to be filled after.../fill later"; gaps can only be written in
## Evidence Gaps (gap list) - If there are gaps, they must be written in , and must not be checked
## Evidence Gaps (gap list)
- Module page exists and is navigable:
- Degraded conditions for allowing for P1 modules
- [x]- Module page exists; either API or Data can be missing, but gaps must be structured and written in
Evidence Gaps
- Module page exists; either API or Data can be missing, but gaps must be structured and written in
- P2 modules
- Not checked by default; only placeholder navigation is required
增量 Discover(Delta Discover)与过期检测(stale)
Incremental Discover (Delta Discover) and Expiration Detection (stale)
何时触发 Delta Discover
When to trigger Delta Discover
- Merge-back 完成时(引入新 ADR/契约/能力)
- PR 涉及 P0/P1 模块的关键源文件变更时
- 模块被标记为 stale(过期)时
- When Merge-back is completed (new ADR/contract/capability introduced)
- When PR involves changes to key source files of P0/P1 modules
- When a module is marked as stale
Delta Discover 的最小执行范围(止损)
Minimum execution scope of Delta Discover (stop loss)
- 识别受影响模块(根据变更文件列表与模块页 )
source_files - 只更新这些模块的:
- (TL;DR、契约段落、不变量、Evidence/Evidence Gaps)
.aisdlc/project/components/{module}.md - (导航链接、依赖图、勾选状态)
.aisdlc/project/components/index.md
- 更新模块页元数据:
last_verified_at- (如果边界变化)
source_files
- Identify affected modules (according to the changed file list and module page )
source_files - Only update the following content for these modules:
- (TL;DR, contract sections, invariants, Evidence/Evidence Gaps)
.aisdlc/project/components/{module}.md - (navigation links, dependency graph, check status)
.aisdlc/project/components/index.md
- Update module page metadata:
last_verified_at- (if boundaries change)
source_files
stale 的写法建议(不强制落盘形态)
Writing suggestions for stale (storage format not mandatory)
- 模块页通过 体现“新鲜度”
last_verified_at - 当模块 stale:
- 不要用“忽略过期”继续写需求/设计
- 先做 Delta Discover(最小范围)把关键不变量与证据入口更新到可用
- Module page reflects "freshness" through
last_verified_at - When a module is stale:
- Do not continue writing requirements/designs by "ignoring expiration"
- First perform Delta Discover (minimum scope) to update key invariants and evidence entry points to usable status
红旗清单
Red Flag List
- Products 写成几十个模块的功能清单(地图失效)
- Ops 写成长操作手册(应只做入口与要点)
- 打勾不看模块页内容(违反 SSOT 门禁)
- 模块 stale 仍继续把它当权威输入(应先 Delta Discover)
- Products are written as feature lists of dozens of modules (map becomes invalid)
- Ops is written as a long operation manual (should only include entry points and key points)
- Checkmark is given without checking module page content (violates SSOT access control)
- Continue to use stale modules as authoritative input (should perform Delta Discover first)
常见错误
Common Mistakes
- 用“待补/未发现”占位替代 Evidence Gaps(缺口会永远散落)
- 只做一次全量 Discover,不做增量维护(知识很快过期)
- Using placeholders like "to be filled/not found" instead of Evidence Gaps (gaps will always be scattered)
- Only do full Discover once, no incremental maintenance (knowledge expires quickly)