-
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 7 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,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` | ||
| - 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 | ||
| 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 |
| 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,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). |
| 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. | ||
|
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 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. | ||
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.
topic_slugin TODO fallback instructionsThe fallback workflow here only tells contributors to set
mode: todo_fallback, but the same change’s metadata contract requirestopic_slugfor 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 👍 / 👎.
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. TODO fallback instruction now requires
topic_slugtogether withmode: todo_fallback..codex/skills/development-workflow/SKILL.md:26Commit:
6c54b36