Skip to content

Verb Vocabulary Reference

A DCP verb describes what happened to an entity in a single Event. It is an open string (^[a-z][a-z_]*$, ≤64 characters) with a controlled vocabulary — not a closed enum — and combines with entity_type to form message_type as <entity_type>.<verb>.

Schema: https://schemas.devcopro.org/v1/event.schema.json

Unlike entity_type (eight fixed nouns) and rel (the eight-value relation vocabulary in Event Schema Reference), verb is deliberately open. Producers may mint new verbs. Consumers MUST tolerate unknown verbs and pass them through rather than rejecting the message. This forward-compatibility posture lets the vocabulary grow — new task or finding verbs, for instance — without breaking existing consumers on a minor version bump. See Versioning and Compatibility for how that plays out across dcp_version changes, and Status Is a Vocabulary for the parallel design applied to entity status fields.

The verbs below are the ones defined in SPEC §7. They are recommendations for interoperability, not an exhaustive whitelist a validator enforces against verb itself (the schema only enforces the lowercase-with-underscores pattern and length).

Apply to any of the eight entities in Entity Reference.

VerbMeaning
createdThe entity was newly recorded.
updatedOne or more fields changed.
status_changedThe entity’s status field changed value.
snapshotA full current-state snapshot of the entity is being shared.
deletedThe entity was removed from the producer’s record.
VerbMeaning
completedThe task was marked done.
blockedThe task became blocked.
unblockedA prior block was cleared.
assignedThe task’s responsible_party was set or changed.
VerbMeaning
raisedA new finding was reported.
resolvedThe finding was addressed.
acknowledgedThe finding was seen and accepted as valid, without yet being resolved.
VerbMeaning
recordedA decision was captured.
acceptedThe decision’s status moved to accepted.
rejectedThe decision was turned down.
supersededThe decision was replaced by a later one (often paired with a supersedes ref — see Event Schema Reference).
VerbMeaning
requestedA review was asked for.
approvedThe review concluded with approval.
changes_requestedThe review concluded asking for changes.
rejectedThe review request was declined.
VerbMeaning
reachedThe milestone was hit.
missedThe milestone’s target was not met — a reported observation, not a DCP-computed verdict.
VerbMeaning
assessedAn architectural change or risk was evaluated and recorded.
VerbMeaning
createdA dependency between tasks or entities was declared.
removedA previously declared dependency no longer holds.

SPEC §7 states the key normative point plainly: a verb communicates that a change was recorded; it MUST NOT be interpreted as authorization for a transition. A review_request.approved message is a record that an approval occurred — it is not a signal that DCP gates any downstream action on. A decision.accepted message records that a decision was made — it is not an authorization token. DCP carries no trust and executes nothing; see the entity notes in Entity Reference for how this applies to each of the eight nouns.

message_type is built by joining entity_type and verb with a dot. Three real examples, drawn from the repo’s worked examples:

  • task.completed — a Task moved to a completed state.
  • decision.recorded — a Decision was captured.
  • finding.raised — a new Finding was reported.

Per SPEC §4.1, message_type is a denormalized convenience copy of <body.entity_type>.<body.verb> — it exists for human and operator readability, not as an independent source of truth. A validator MUST check that message_type equals <entity_type>.<verb> from the body; on conflict, the body wins and the message MUST be treated as malformed. This is the one rule plain JSON Schema cannot express on its own: enforcing equality between a top-level envelope field and two nested body fields is a cross-field constraint that a conformant DCP implementation must add on top of schema validation. See Event Schema Reference for the full Event field list that verb and entity_type belong to.

By InterIP Networks · Last updated 2026-07-01.