---
id: STATE-WP-0076
type: workplan
title: "Definition of Ready (DoR) and Definition of Comprehension (DoC) quality gates"
domain: infotech
repo: state-hub
status: finished
owner: grok
topic_slug: infotech
created: "2026-07-22"
updated: "2026-07-22"
reviewed_at: "2026-07-22"
reviewed_by: "grok"
reviewed_against_commit: "d8a2bb5c6ba8d3db73eff565242e6c7fbe63d181"
context_paths:
  - "policies/"
  - "dashboard/src/docs/work-records.md"
  - "dashboard/src/docs/intakes.md"
  - "dashboard/src/docs/workstream-lifecycle.md"
  - "dashboard/src/policy/"
  - "docs/work-record-quality-gates.md"
  - "workplans/STATE-WP-0076-definition-of-ready-and-comprehension.md"
state_hub_workstream_id: "e5d06c02-6431-5bef-a83d-fbd70d40cc3a"
---

# STATE-WP-0076 — DoR and DoC quality gates

## Goal

Ship the next slice of the work-record quality model that pays off soon:

1. **Policies** in the existing DoI / DoM / DoD family: **DoC** (intake) and **DoR**
   (task + workplan sections).
2. **Dashboard** edit/view surfaces like the other policies.
3. **Docs** that fix terminology: work-record as generic coordination artefact
   (units *and* structure), lifecycle **≠** definition assessment, badge spelling
   `DoX-Ok` / `DoX-Failed` / unassessed.

No badge engine, no hard API blocks, no new kinds, no value-chain typing.

## Delivered (2026-07-22)

| Deliverable | Path |
|-------------|------|
| Quality model note | `docs/work-record-quality-gates.md` |
| DoC policy | `policies/intake-doc.md` → `GET /policy/intake-doc` |
| DoR policy | `policies/work-item-dor.md` → `GET /policy/work-item-dor` |
| Dashboard pages | `dashboard/src/policy/intake-doc.md`, `work-item-dor.md` |
| Nav | Policies: Intake DoC, Work-item DoR |
| Reference links | work-records, intakes, workplan lifecycle, tasks |

## Design constraints (shipped)

1. Lifecycle state ≠ definition badge (`DoX-Ok` / `DoX-Failed` / unassessed).
2. Badge family closed and named after policies.
3. Policies declare applies_to; DoR has task and workplan sections.
4. DoC = intake only; DoR = task + workplan.
5. Outside-originated = policy sections, not a new kind.
6. Enforcement = convention + docs only.

---

## Task: Quality model + work-record roles in docs

```task
id: STATE-WP-0076-T01
status: done
priority: high
state_hub_task_id: "f62c4ade-8258-5626-a735-a64b49bcbbb0"
```

Short design/reference write-up only (no product build):

- Update `dashboard/src/docs/work-records.md`: work-record as **generic** mode
  for units *and* structure (plans/collections); unit vs structure table; quality
  badges vs lifecycle; link to policies when they exist.
- Add `docs/work-record-quality-gates.md`: Definition family (DoI/DoM/DoC/DoR/DoD),
  badge spelling, applies_to matrix, outside profile pointer, explicit non-goals.
- One cross-link from intakes + workplan lifecycle docs.

**Done when:** an agent can explain unit vs structure and DoR-Ok vs `status=ready`
from the docs alone.

---

## Task: Author DoC policy

```task
id: STATE-WP-0076-T02
status: done
priority: high
state_hub_task_id: "c09bf944-fd02-51b6-9862-e0ddff04ee51"
```

Create `policies/intake-doc.md` (Definition of Comprehension).

- `applies_to: intake`
- Core checklist (signal, why it matters, unknowns, provisional ownership or
  “unknown”, next action)
- Outside-originated section
- Explicit: DoC ≠ DoR; assessment outcomes DoC-Ok / DoC-Failed / unassessed
- Loadable as `GET /policy/intake-doc`

**Done when:** policy file exists and is readable via the policy API.

---

## Task: Author DoR policy

```task
id: STATE-WP-0076-T03
status: done
priority: high
state_hub_task_id: "f2f44ee7-f3ac-5750-8fce-0a8a8bca18d1"
```

Create `policies/work-item-dor.md` (Definition of Ready) — filename keeps
“work-item” as the delivery-side gate name; body uses **task** and **workplan**
sections (not “workplan is a work-item”).

- Per-kind sections: task, workplan
- Outside-originated section
- Link to `workstream-dod.md` as exit companion (DoD-Ok separate from finished)
- Assessment outcomes DoR-Ok / DoR-Failed / unassessed
- Loadable as `GET /policy/work-item-dor`

**Done when:** policy file exists and is readable via the policy API.

---

## Task: Dashboard policy pages + nav

```task
id: STATE-WP-0076-T04
status: done
priority: high
state_hub_task_id: "7ffaece5-e7ea-5821-a3a1-3741d13c282c"
```

Mirror DoI/DoM/DoD:

- `dashboard/src/policy/intake-doc.md`, `dashboard/src/policy/work-item-dor.md`
- Policies entries in `observablehq.config.js`
- Links from work-records reference (+ quality-gates doc)

**Done when:** Policies menu shows DoC and DoR; edit/view works against the API.

---

## Cancelled / deferred tasks

```task
id: STATE-WP-0076-T05
status: cancel
priority: medium
state_hub_task_id: "48ed892b-b8c9-5754-8a15-fc4fc85d583d"
```

Soft enforcement hooks — deferred until DoC/DoR text is in use.

```task
id: STATE-WP-0076-T06
status: cancel
priority: low
state_hub_task_id: "f5f81b8e-11ce-5908-bc7c-a0e291d8d73d"
```

Standalone DoD naming / family index task — folded into T01 quality-gates doc.

## Acceptance criteria

- [x] Docs: generic work-record (unit + structure), lifecycle ≠ DoX badge
- [x] `policies/intake-doc.md` and `policies/work-item-dor.md` live and API-served
- [x] Outside-originated sections present in both
- [x] Dashboard Policies nav includes both
- [x] No new kinds, no badge engine, no hard enforcement

## References

- `the-custodian/canon/standards/work-record-types_v0.1.md`
- `policies/repo-doi.md`, `policies/service-dom.md`, `policies/workstream-dod.md`
- `dashboard/src/docs/work-records.md`, `intakes.md`, `workstream-lifecycle.md`
- `api/routers/policy.py`
