-
Notifications
You must be signed in to change notification settings - Fork 2
docs(governance): start standalone OpenSpec change for doc lifecycle traceability #126
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 3 commits
76d4d4c
22880cb
1f24c57
f1a8cfc
0c76984
ba0d70d
34a9a9d
99279ce
6c54b36
afd84b1
cb2230f
855a605
3069632
b50f758
7a618b6
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,48 @@ | ||
| --- | ||
| name: documentation-lifecycle-governance | ||
| description: Use when creating, updating, relocating, or archiving repository docs to enforce taxonomy, lifecycle, and OpenSpec/TODO collaboration rules. | ||
| --- | ||
|
|
||
| # Documentation Lifecycle Governance | ||
|
|
||
| ## When to use | ||
| Use this skill when any documentation asset is created or modified. | ||
|
|
||
| ## Core workflow | ||
|
|
||
| 1. Classify the document type: | ||
| - design / analysis / todo / feature / standard / temporary | ||
|
|
||
| 2. Place in the correct directory: | ||
| - design -> `docs/design/` | ||
| - analysis/todo -> `docs/todos/` | ||
| - feature aggregation -> `docs/features/` | ||
| - standard -> `docs/guides/` or governance rule files | ||
| - temporary -> `docs/mailbox/` | ||
|
|
||
| 3. Link lifecycle dependencies: | ||
| - standards -> feature -> design -> analysis -> TODO -> execution -> evidence -> archive | ||
|
|
||
| 4. Choose collaboration mode: | ||
| - OpenSpec mode (default): bind doc to `openspec/changes/<change-id>/` | ||
| - TODO fallback mode: use dated TODO bundle and add migration plan to OpenSpec | ||
|
|
||
| 5. Enforce governance metadata: | ||
| - add/update frontmatter for governance-tracked docs | ||
| - ensure aggregation document is the single status source | ||
|
|
||
| 6. Verify before completion: | ||
| - run documentation checks (OpenSpec status/validate + repo doc checks) | ||
| - ensure links and evidence paths are resolvable | ||
|
|
||
| 7. Archive policy: | ||
| - move completed feature docs to `docs/features/archive/` | ||
| - move completed TODO bundles to `docs/todos/archive/` | ||
| - never delete historical evidence without explicit governance approval | ||
|
|
||
| ## Output expectations | ||
| For each doc governance task, produce: | ||
| - affected files list | ||
| - lifecycle status transition | ||
| - evidence commands executed | ||
| - remaining open questions/risk |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,22 @@ | ||
| # Feature Aggregation Docs | ||
|
|
||
| `docs/features/` stores one aggregation document per active change/topic. | ||
|
|
||
| ## Rules | ||
|
|
||
| 1. File naming | ||
| - OpenSpec mode: `docs/features/<change-id>.md` | ||
| - TODO fallback mode: `docs/features/<topic-slug>.md` | ||
|
|
||
| 2. Source of truth | ||
| - Aggregation document owns lifecycle status (`draft/active/done/archived`). | ||
| - Linked analysis/todo/design docs should not override this status. | ||
|
|
||
| 3. Required links | ||
| - OpenSpec artifacts (`proposal/design/specs/tasks`) or TODO fallback bundle | ||
| - Related design docs | ||
| - Gap analysis + TODO evidence | ||
| - Verification evidence (commands/results) | ||
|
|
||
| 4. Archive | ||
| - Move completed docs to `docs/features/archive/` after closeout. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,34 @@ | ||
| --- | ||
| change_ids: ["enhance-doc-governance-traceability"] | ||
| doc_kind: feature | ||
| topics: ["documentation-governance", "traceability", "skills"] | ||
| created: 2026-02-28 | ||
| updated: 2026-02-28 | ||
| status: active | ||
| mode: openspec | ||
| --- | ||
|
|
||
| # Feature: enhance-doc-governance-traceability | ||
|
|
||
| ## Scope | ||
| Unify documentation management structure, lifecycle governance, and SOP-to-skill execution mapping. | ||
|
|
||
| ## OpenSpec Artifacts | ||
| - Proposal: `openspec/changes/enhance-doc-governance-traceability/proposal.md` | ||
| - Design: `openspec/changes/enhance-doc-governance-traceability/design.md` | ||
| - Specs: | ||
| - `specs/documentation-lifecycle-traceability/spec.md` | ||
| - `specs/design-reconstructability-governance/spec.md` | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
The feature aggregation doc is meant to be the traceability entry point, but the two spec references use Useful? React with 👍 / 👎.
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fixed. Spec artifact references now point to real repository paths in the aggregation doc:
|
||
| - Tasks: `openspec/changes/enhance-doc-governance-traceability/tasks.md` | ||
|
|
||
| ## Governance Anchors | ||
| - `docs/governance/Documentation_Management_Model.md` | ||
| - `docs/guides/Documentation_First_Development_SOP.md` | ||
| - `.codex/skills/documentation-lifecycle-governance/SKILL.md` | ||
|
|
||
| ## Evidence | ||
| - `openspec validate --changes enhance-doc-governance-traceability` | ||
| - `openspec status --change enhance-doc-governance-traceability --json` | ||
|
|
||
| ## Next Milestone | ||
| Implement tasks group 1-2 (taxonomy contract + standards alignment). | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,98 @@ | ||
| # Documentation Management Model | ||
|
|
||
| > Scope: Repository-wide documentation governance for design, analysis, feature lifecycle, standards, temporary notes, and archive. | ||
|
|
||
| ## 1. Governance Targets | ||
|
|
||
| The documentation system MUST satisfy both goals: | ||
| - Reconstructability: system behavior can be rebuilt from docs. | ||
| - Traceability: any active change can be traced end-to-end in minutes. | ||
|
|
||
| ## 2. Directory Taxonomy (Single Source) | ||
|
|
||
| | Layer | Path | Purpose | Lifecycle | | ||
| |---|---|---|---| | ||
| | Standards | `docs/guides/`, `docs/agent_rules.md`, `AGENTS.md` | Rules, constraints, SOP, collaboration protocol | stable + versioned | | ||
| | Design | `docs/design/` | Authoritative architecture/interface/module design | active + archived | | ||
| | Governance | `docs/governance/` | Governance model, branch rules, policy checkpoints | stable | | ||
| | Feature Aggregation | `docs/features/` | One aggregation doc per change/topic (single status source) | active -> archive | | ||
| | Analysis/TODO | `docs/todos/` | Gap analysis and execution TODO ledgers | active -> archive | | ||
| | Temporary | `docs/mailbox/` | Thread-local or short-lived communication artifacts | temporary -> archive/remove | | ||
| | Reference | `docs/appendix/` | Supporting references and non-normative materials | stable | | ||
| | Archives | `docs/design/archive/`, `docs/todos/archive/`, `docs/features/archive/` | Historical snapshots and closed records | immutable-ish | | ||
|
|
||
| ## 3. Document Types and Placement Rules | ||
|
|
||
| 1. Design docs: place under `docs/design/**`; must align with current implementation contract. | ||
| 2. Analysis docs: place under `docs/todos/` as dated gap analysis and TODO pairs. | ||
| 3. Feature docs: place under `docs/features/<change-id>.md`; this is the single source for feature/change status. | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
This placement rule requires feature docs to be named Useful? React with 👍 / 👎.
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fixed. Feature-doc placement rule is now mode-aware to remove the naming conflict:
|
||
| 4. Standards docs: place under `docs/guides/` or top-level governance rule files. | ||
| 5. Temporary docs: place under `docs/mailbox/`; must be linked to an owner thread and cleanup plan. | ||
|
|
||
| ## 4. Lifecycle Dependencies | ||
|
|
||
| The default dependency chain is: | ||
|
|
||
| `standards -> feature aggregation -> design update -> gap analysis -> TODO -> execution -> evidence -> archive` | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
The canonical governance chain here requires Useful? React with 👍 / 👎.
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fixed. Lifecycle dependency order is now aligned with SOP sequence and no longer places feature aggregation ahead of design/gap/TODO.
|
||
|
|
||
| Status transitions: | ||
| - `draft` -> `active` -> `done` -> `archived` | ||
| - only aggregation docs own lifecycle state; linked docs SHOULD NOT duplicate conflicting status values. | ||
|
|
||
| ## 5. Collaboration Modes | ||
|
|
||
| ### 5.1 OpenSpec Mode (Default) | ||
|
|
||
| Use this whenever OpenSpec is available: | ||
| 1. Create/continue `openspec/changes/<change-id>/`. | ||
| 2. Create/update `docs/features/<change-id>.md` and link proposal/design/specs/tasks. | ||
| 3. Execute tasks iteratively; write evidence into feature aggregation + TODO ledger. | ||
| 4. Verify with tests/checks; update docs consistency. | ||
| 5. Archive change and migrate feature doc to `docs/features/archive/` when complete. | ||
|
|
||
| ### 5.2 No-OpenSpec Fallback Mode (TODO-driven) | ||
|
|
||
| Use only when OpenSpec cannot be used (tooling/environment constraint): | ||
| 1. Create `docs/features/<topic-slug>.md` with `mode: todo_fallback` in frontmatter. | ||
| 2. Create dated gap/TODO pair in `docs/todos/`. | ||
| 3. Execute against TODO checklist with evidence updates per task. | ||
| 4. When OpenSpec becomes available, migrate fallback assets into an OpenSpec change and link migration evidence. | ||
|
|
||
| ## 6. Frontmatter Contract (Governance-tracked docs) | ||
|
|
||
| Governance-tracked docs SHOULD include frontmatter with: | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
This governance model makes frontmatter optional ( Useful? React with 👍 / 👎.
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fixed. Frontmatter requirement was tightened from SHOULD to MUST in the governance model:
|
||
|
|
||
| ```yaml | ||
| --- | ||
| change_ids: ["<change-id>"] | ||
| doc_kind: feature|analysis|todo|standard|temporary | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
The governance contract marks design docs as in-scope ( Useful? React with 👍 / 👎.
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fixed. Added design to the doc_kind contract enum:
|
||
| topics: ["..."] | ||
| created: YYYY-MM-DD | ||
| updated: YYYY-MM-DD | ||
| status: draft|active|done|archived | ||
| --- | ||
| ``` | ||
|
|
||
| Notes: | ||
| - `status` on non-aggregation docs is informational only. | ||
| - Aggregation doc is the status source of truth. | ||
|
|
||
| ## 7. Checkpoint-to-Skill Mapping | ||
|
|
||
| Required lifecycle checkpoints MUST be skillized: | ||
| - kickoff | ||
| - execution-sync | ||
| - verification | ||
| - completion-archive | ||
|
|
||
| Implementation is defined by: | ||
| - skill file: `.codex/skills/documentation-lifecycle-governance/SKILL.md` | ||
| - CI checks that validate presence and linkage of required assets. | ||
|
|
||
| ## 8. Effectiveness Criteria | ||
|
|
||
| Governance is considered effective when: | ||
| - active change context can be located in <= 5 minutes, | ||
| - traceability mapping completeness >= 95%, | ||
| - stale/unlinked governance docs trend down each iteration, | ||
| - archive migration occurs within one iteration after completion. | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -19,13 +19,15 @@ | |
| ## 2. 产物规范(必须) | ||
|
|
||
| - 设计文档:`docs/design/**` | ||
| - 特性聚合文档:`docs/features/<change-id>.md`(状态单一真相源) | ||
| - 设计质量标准:`docs/design/Design_Doc_Minimum_Standard.md` | ||
| - 差异分析:`docs/todos/YYYY-MM-DD_<topic>_design_code_gap_analysis.md` | ||
| - 执行清单:`docs/todos/YYYY-MM-DD_<topic>_design_code_gap_todo.md` | ||
| - OpenSpec 变更:`openspec/changes/<change-id>/{proposal.md,design.md,tasks.md}` | ||
| - 归档产物:分析文档、TODO 文档在完成后标记 `done/archived`,并补证据链接。 | ||
| - 可重建追踪矩阵:`docs/design/Design_Reconstructability_Traceability_Matrix.md` | ||
| - 重建执行 SOP:`docs/guides/Design_Reconstruction_SOP.md` | ||
| - 文档治理模型:`docs/governance/Documentation_Management_Model.md` | ||
|
|
||
| ## 3. 标准流程(一步不可省) | ||
|
|
||
|
|
@@ -96,3 +98,34 @@ | |
| - 归档路径统一使用日期前缀(`YYYY-MM-DD-...`)。 | ||
| - 归档条目必须包含对应 OpenSpec change 路径与验证证据。 | ||
| 4. 若连续两轮发现同类文档漂移,必须新增自动化校验并接入 CI。 | ||
|
|
||
| ## 7. 协作模式(必须显式声明) | ||
|
|
||
| ### Mode A: OpenSpec 模式(默认) | ||
|
|
||
| 适用于 OpenSpec 可用场景,执行顺序如下: | ||
| 1. 建立/选择 `openspec/changes/<change-id>/`。 | ||
| 2. 创建或更新 `docs/features/<change-id>.md`,并登记 proposal/design/specs/tasks 链接。 | ||
| 3. 按 OpenSpec tasks 逐项执行,每个任务回写证据到 feature 聚合文档与 TODO 文档。 | ||
| 4. 完成后执行 verify + archive,并迁移聚合文档到 `docs/features/archive/`。 | ||
|
|
||
| ### Mode B: 无 OpenSpec 回退(TODO-driven) | ||
|
|
||
| 仅在 OpenSpec 不可用(工具/环境受限)时使用: | ||
| 1. 创建 `docs/features/<topic-slug>.md`,并在 frontmatter 声明 `mode: todo_fallback`。 | ||
| 2. 创建日期化 gap/todo 文档对(`docs/todos/`)。 | ||
| 3. 以 TODO 清单推进并持续回写 evidence。 | ||
| 4. OpenSpec 可用后,必须补迁移:将 fallback 资产映射到新的 `openspec/changes/<change-id>/` 并记录迁移证据。 | ||
|
|
||
| ## 8. SOP Skill 化(必须) | ||
|
|
||
| SOP 关键阶段必须有可调用技能承载,并保持 checkpoint 与 skill 映射一致: | ||
| - kickoff | ||
| - execution-sync | ||
| - verification | ||
| - completion-archive | ||
|
|
||
|
Comment on lines
+147
to
+152
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
The mandatory checkpoint list here omits Useful? React with 👍 / 👎.
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fixed. SOP mandatory checkpoint list now includes
|
||
| 当前统一技能入口: | ||
| - `.codex/skills/documentation-lifecycle-governance/SKILL.md` | ||
|
|
||
| 若 SOP 与 skill 行为不一致,以规范文档更新 + skill 同步更新为同一任务,禁止只改其一。 | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,2 @@ | ||
| schema: spec-driven | ||
| created: 2026-02-28 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The spec artifact paths listed here are missing the
openspec/changes/enhance-doc-governance-traceability/prefix, so anyone (or any script) resolving them from the repo root gets non-existent paths. This breaks the traceability goal of the aggregation doc because proposal/design/tasks are resolvable while specs are not, and it can cause automated evidence/link checks to fail for this change.Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed. Updated spec links in the feature aggregation entry to repository-root-resolvable paths:
Commit: ba0d70d