Skip to content
Merged
Show file tree
Hide file tree
Changes from 7 commits
Commits
Show all changes
15 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 65 additions & 0 deletions .codex/skills/development-workflow/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
---
name: development-workflow
description: Use when executing change delivery work to run OpenSpec-default workflow checkpoints, TODO fallback, and evidence synchronization.
---

# Development Workflow

## When to use
Use this skill for any `bug` / `feature` / `refactor` delivery that must follow the repository documentation-first SOP.
Invoke it before implementation starts and when closing the change lifecycle.

Do not use this skill for document-only relocation/classification tasks; use `documentation-management` directly for those.

**REQUIRED SUB-SKILL:** `documentation-management` for classification, placement, metadata, and archive moves.

## Collaboration mode selection

1. OpenSpec mode (default)
- bind work to `openspec/changes/<change-id>/`
- maintain `docs/features/<change-id>.md` as the single status source
- treat OpenSpec artifacts as execution records; keep canonical outcomes written in `docs/**`

2. TODO fallback mode (only if OpenSpec unavailable)
- create `docs/features/<topic-slug>.md` with `mode: todo_fallback`

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Require topic_slug in TODO fallback instructions

The fallback workflow here only tells contributors to set mode: todo_fallback, but the same change’s metadata contract requires topic_slug for TODO fallback documents (.codex/skills/documentation-management/SKILL.md, required keys for fallback mode). In environments following this workflow verbatim, fallback feature docs can be created without the required key and then fail later validation/checkpoint steps once metadata checks are enforced.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed. TODO fallback instruction now requires topic_slug together with mode: todo_fallback.

  • .codex/skills/development-workflow/SKILL.md:26
    Commit: 6c54b36

- create dated gap/TODO pair in `docs/todos/`
- once OpenSpec is available, migrate fallback assets into an OpenSpec change

## Lifecycle checkpoints

1. kickoff
- classify request as `bug` / `feature` / `refactor`
- choose collaboration mode (OpenSpec default, TODO fallback only when OpenSpec unavailable)
- update `docs/design/**` first (no implementation before design update)
- create/update gap analysis and TODO ledger before implementation
- create or refresh feature aggregation doc as the status source
- run `documentation-management` to validate type/path/frontmatter baseline

2. execution-sync
- OpenSpec mode: execute in small increments `TODO item -> OpenSpec task -> implementation -> evidence`
- TODO fallback mode: execute in small increments `TODO item -> implementation -> evidence`, and record pending OpenSpec migration mapping
- keep TODO status and feature aggregation evidence aligned in all modes
- after each completed task, update linked design/gap/TODO docs and implementation evidence

3. verification
- OpenSpec mode checks: `openspec validate`, `openspec status`, tests, and repo doc checks
- TODO fallback mode checks: tests, repo doc checks, TODO ledger completeness, and migration debt note completeness
- verify coverage of interface contracts and error branches for changed behavior
- verify status consistency: feature doc is source of truth, linked docs are non-conflicting
- verify `docs/**` can stand alone as the current-state record without depending on OpenSpec internals

4. completion-archive
- mark work done in feature aggregation and related ledgers
- run `documentation-management` archive actions
- update TODO/archive indexes (for example `docs/todos/README.md` when applicable)
- OpenSpec mode: complete OpenSpec archive when the change is finished
- TODO fallback mode: archive fallback docs/ledgers and keep an explicit migration plan/status until OpenSpec migration is completed
- ensure archived entries stay discoverable via index/evidence links

## Output expectations
For each workflow run, report:
- mode used (`openspec` or `todo_fallback`)
- checkpoint completion (`kickoff`, `execution-sync`, `verification`, `completion-archive`)
- evidence commands executed
- evidence file updates (design, TODO, OpenSpec tasks, feature aggregation)
- unresolved risks or migration debt
50 changes: 50 additions & 0 deletions .codex/skills/documentation-management/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
---
name: documentation-management
description: Use when classifying, creating, relocating, or archiving repository documents to enforce taxonomy, directory placement, and governance metadata contracts.
---

# Documentation Management

## When to use
Use this skill for documentation structure operations:
- create a new governance-tracked document
- move/rename documentation by type
- add or update frontmatter metadata
- archive completed documentation records

This skill supersedes `documentation-lifecycle-governance` for documentation governance management responsibilities.

## Core responsibilities

1. Classify document kind
- `standard`, `design`, `feature`, `analysis`, `todo`, `temporary`

2. Enforce type-to-path mapping
- `standard` -> `docs/guides/` or top-level governance rule docs
- `design` -> `docs/design/`
- `feature` -> `docs/features/`
- `analysis` / `todo` -> `docs/todos/`
- `temporary` -> `docs/mailbox/`
- archived assets -> `docs/features/archive/`, `docs/todos/archive/`, `docs/design/archive/`

3. Enforce governance metadata
- ensure frontmatter exists for governance-tracked docs
- required keys (OpenSpec mode): `change_ids`, `doc_kind`, `topics`, `created`, `updated`, `status`
- required keys (TODO fallback mode): `topic_slug`, `mode: todo_fallback`, `doc_kind`, `topics`, `created`, `updated`, `status`
- when fallback assets are migrated into OpenSpec, add `change_ids` and retain `topic_slug` as historical linkage when useful

4. Enforce archive policy
- completed feature entries move to `docs/features/archive/`
- completed TODO/analysis entries move to `docs/todos/archive/` or be marked archived in index
- do not delete historical evidence unless explicitly approved

5. Maintain lifecycle dependency definition
- ensure documentation dependencies are explicit and consistent:
- `standards -> feature aggregation -> design -> gap analysis -> TODO -> execution evidence -> archive`

## Output expectations
For each management action, provide:
- affected files
- old path -> new path mapping (if moved)
- metadata fields changed
- archive/lifecycle status change
5 changes: 5 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,11 @@
- Agent-driven development MUST follow documents under `docs/guides/` first, especially:
- `docs/guides/Development_Constraints.md`
- `docs/guides/Documentation_First_Development_SOP.md`
- Documentation placement, lifecycle, and archive handling MUST follow:
- `docs/governance/Documentation_Management_Model.md`
- Documentation governance tasks SHOULD use:
- `.codex/skills/documentation-management/SKILL.md`
- `.codex/skills/development-workflow/SKILL.md`
- Code implementation MUST align with `docs/design/` as the latest full design source of truth.
- If design and implementation diverge, update design docs first, then execute gap analysis before coding.
- Every design doc that governs implementation MUST explicitly contain:
Expand Down
18 changes: 17 additions & 1 deletion docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@
├── /CONTRIBUTING_AI.md (AI Agent 协作规范)
├── guides/Development_Constraints.md (开发约束清单)
├── guides/Documentation_First_Development_SOP.md (文档先行 SOP,Bug/Feature/Refactor 必走)
├── governance/Documentation_Management_Model.md (文档目录分层、生命周期、OpenSpec/TODO 双模式协作)
├── features/README.md (特性聚合文档规范与归档规则)
└── design/Design_Doc_Minimum_Standard.md (设计文档最小完备标准)
```

Expand Down Expand Up @@ -91,6 +93,8 @@
| `guides/Engineering_Practice_Guide_Sandbox_and_WORM.md` | 工程实践指南:沙箱执行隔离(seccomp/网络/镜像)、WORM 落地与核查 |
| `guides/Development_Constraints.md` | 开发约束:架构不破坏、测试必备、日志/命名/复用/信任边界等硬性要求 |
| `guides/Documentation_First_Development_SOP.md` | 文档先行 SOP:先设计文档、再 gap 分析、再 TODO、再 OpenSpec 修复、再归档 |
| `governance/Documentation_Management_Model.md` | 文档管理模型:目录分层、文档类型规则、生命周期依赖、OpenSpec/无 OpenSpec 协作 |
| `features/README.md` | 特性聚合文档规范:单一状态源、证据回写与归档迁移 |
| `guides/Tool_Approval_Memory.md` | 工具审批记忆使用指南:pending/grant/deny/revoke、scope/matcher、持久化与接线方式 |

---
Expand Down Expand Up @@ -290,14 +294,26 @@ docs/
│ ├── Interface_Layer_Design_v1.1_MCP_and_Builtin.md
│ ├── ARCHITECTURE_COMPARISON.md
│ └── ...(更多历史文档)
├── features/
│ ├── README.md
│ ├── <change-id>.md(每个 change 一个聚合文档)
│ └── archive/
├── governance/
│ ├── Documentation_Management_Model.md
│ └── branch-protection.md
├── guides/
│ ├── Development_Constraints.md
│ ├── Documentation_First_Development_SOP.md
│ └── Engineering_Practice_Guide_Sandbox_and_WORM.md
├── todos/
│ ├── YYYY-MM-DD_<topic>_design_code_gap_analysis.md
│ ├── YYYY-MM-DD_<topic>_design_code_gap_todo.md
│ └── archive/
└── appendix/
└── Appendix_Industrial_Security_and_Auditing.md
```

---

*最后更新:2026-02-27*
*最后更新:2026-02-28*
*维护者:DARE Framework Team*
4 changes: 4 additions & 0 deletions docs/agent_rules.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ These rules apply to all agent-generated changes in this repository.
3. 不得修改公共接口/数据结构,除非任务明确且给出影响分析。
4. 必须补测试或更新测试,并附上本地/CI 的测试证据。
5. 任何跳过测试(skip/only/exclude)必须说明理由并经过 review。
6. 文档治理任务必须遵循 `docs/governance/Documentation_Management_Model.md` 的目录分层与生命周期规则。
7. 默认采用 OpenSpec 协作;OpenSpec 不可用时仅可使用 TODO-driven 回退模式,并需补迁移证据。
8. 文档创建/迁移/归档时必须执行双技能流程:`.codex/skills/documentation-management/SKILL.md` + `.codex/skills/development-workflow/SKILL.md`。
9. `docs/features/<change-id>.md` 是特性状态单一真相源,其他文档不得写冲突状态。

## Operating Notes
- Keep diffs small to reduce merge conflicts in multi-agent parallel work.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,11 @@
1. `Plan->Execute` 的 `APPROVE_REQUIRED` 仍以 fail-fast 为主,需与 ToolLoop 语义统一。
2. Hook payload schema 跨模块 contract 仍在收敛。
3. 文档治理链路已建立,但自动化漂移校验需要持续补强。

## Governance 聚合锚点(新增)

> 说明:治理类 change 需要在本矩阵中补充 `feature aggregation` 锚点,确保从能力声明可直接跳转到变更级证据入口。

| Capability | Feature Aggregation Anchor | OpenSpec Change |
|---|---|---|
| Documentation-first 治理闭环 | `docs/features/enhance-doc-governance-traceability.md` | `openspec/changes/enhance-doc-governance-traceability/` |
22 changes: 22 additions & 0 deletions docs/features/README.md
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.
Empty file.
35 changes: 35 additions & 0 deletions docs/features/enhance-doc-governance-traceability.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---
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:
- `openspec/changes/enhance-doc-governance-traceability/specs/documentation-lifecycle-traceability/spec.md`
- `openspec/changes/enhance-doc-governance-traceability/specs/design-reconstructability-governance/spec.md`
- 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-management/SKILL.md`
- `.codex/skills/development-workflow/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).
118 changes: 118 additions & 0 deletions docs/governance/Documentation_Management_Model.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
# 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.

### 1.1 Source-of-Truth Boundary

- `docs/**` is the canonical, full repository documentation source of truth.
- `openspec/**` is the change-execution process record (proposal/design/spec delta/tasks/evidence trace), not a replacement for canonical docs.
- Any OpenSpec execution outcome that affects long-term understanding MUST be written back into `docs/**` (especially design, feature aggregation, and TODO/analysis ledgers).
- Readers should be able to understand current architecture and behavior from `docs/**` without relying on OpenSpec internals beyond trace links.

## 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.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Reconcile feature doc naming rule with fallback mode

This placement rule requires feature docs to be named docs/features/<change-id>.md, but the same governance model later mandates TODO fallback creation as docs/features/<topic-slug>.md when OpenSpec is unavailable. Keeping both as unconditional requirements creates an internal contract conflict, so any path-based checker or reviewer using section 3 as the source of truth can incorrectly reject valid fallback docs.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The 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:

  • OpenSpec mode: docs/features/<change-id>.md
  • TODO fallback mode: docs/features/<topic-slug>.md with mode: todo_fallback + topic_slug
  • docs/governance/Documentation_Management_Model.md:35-37
    Commit: 6c54b36

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`

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Align lifecycle dependency order with SOP sequence

The canonical governance chain here requires feature aggregation before design, but the same commit’s SOP flow requires design/gov docs updates before entering the change-slice aggregation workflow (Step 3 before Step 4 in docs/guides/Documentation_First_Development_SOP.md). Because this model is the declared source for checkpoint automation, the reversed order can cause CI/rules to enforce a workflow that conflicts with the documented SOP and create false process failures.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The 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.

  • docs/governance/Documentation_Management_Model.md:55
  • Updated chain: standards -> design update -> gap analysis -> master TODO -> feature aggregation -> execution -> evidence -> review/merge gate -> archive
    Commit: cb2230f


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 MUST include frontmatter with:

```yaml
---
change_ids: ["<change-id>"]
doc_kind: feature|analysis|todo|standard|design|temporary
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.
- Explicit exceptions, if any, must be declared in the governing standard document for that doc family.
- TODO fallback mode exception: before OpenSpec change-id exists, fallback docs MUST provide `topic_slug` and `mode: todo_fallback`; `change_ids` becomes mandatory after migration into OpenSpec.

## 7. Checkpoint-to-Skill Mapping

Required lifecycle checkpoints MUST be skillized:
- kickoff
- execution-sync
- verification
- completion-archive

Skill contract (minimum two skills):
- management skill: `.codex/skills/documentation-management/SKILL.md`
- workflow skill: `.codex/skills/development-workflow/SKILL.md`

Checkpoint mapping:
- kickoff -> `development-workflow` (mode/scope) + `documentation-management` (baseline metadata/path)
- execution-sync -> `development-workflow` (evidence/status sync) + `documentation-management` (metadata consistency)
- verification -> `development-workflow` (gate/check commands + status conflict detection)
- completion-archive -> `development-workflow` (closure) + `documentation-management` (archive move and retention policy)

CI MUST validate:
- required skill files exist,
- checkpoint mapping is declared,
- required assets and linkages are present.

## 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.
3 changes: 3 additions & 0 deletions docs/guides/Development_Constraints.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,12 @@

## 文档先行硬门禁(新增,强制)
- Agent 开发必须先遵循 `docs/guides/` 约束,最低要求:`Development_Constraints.md` + `Documentation_First_Development_SOP.md`。
- 文档管理方式必须遵循 `docs/governance/Documentation_Management_Model.md`(目录分层、文档类型放置、生命周期迁移)。
- 所有代码开发以 `docs/design/` 全量最新设计为准;若实现与文档冲突,必须先更新文档再改代码。
- 设计文档必须可独立重建实现:至少显式描述总体架构、核心流程、数据结构、关键接口、异常错误处理(详见 `docs/design/Design_Doc_Minimum_Standard.md`)。
- 任何 Bug/新增 Feature/重构,必须先执行“文档更新 + gap 分析 + TODO 拆解”,再按 OpenSpec 流程逐项落地。
- 默认采用 OpenSpec 协作;仅在 OpenSpec 不可用时允许 TODO-driven 回退模式,并必须在 OpenSpec 恢复后完成迁移回写。
- 任何治理类文档任务必须使用双技能流程(`.codex/skills/documentation-management/SKILL.md` + `.codex/skills/development-workflow/SKILL.md`)或等价自动化流程。
- 禁止“先写代码后补文档”;除紧急止血修复外,文档缺失视为任务未开始。紧急修复需在 24 小时内补齐文档与 gap 分析。

## 设计准则(高内聚、低耦合)
Expand Down
Loading