Skip to Content

Statuses

Every enumeration is a text column with a named CHECK (column IN (...)) constraint built by enum_check() in api/app/db/models/_enums.py (ADR 0006). Values are lower-case snake_case and appear in API bodies exactly as listed here; the web app renders them as sentence-case labels (“Under review”) and the docs keep the database spelling in code. Coloured chips always carry a text label.

Enumerations

EnumerationConstantValues
Release status (products, providers, tools)RELEASE_STATUSESavailable, preview, designed, planned, roadmap
Assertion kindASSERTION_KINDSobservation, interpretation, assumption, suggestion
OriginORIGINShuman, agent
Program statusPROGRAM_STATUSESactive, paused, completed, archived
Scope kindSCOPE_KINDSorg, program
Subject typeSUBJECT_TYPESuser, group
Connection statusCONNECTION_STATUSESpending, connected, error, disabled
Sync triggerSYNC_TRIGGERStest, webhook, manual, scheduled
Sync run statusSYNC_RUN_STATUSESqueued, running, succeeded, partial, failed, skipped
Agent run kindAGENT_RUN_KINDSevidence_compare, evidence_gaps, evidence_hypotheses, plans_draft_protocol, plans_draft_report, review_check
Agent run statusAGENT_RUN_STATUSESqueued, running, succeeded, failed, cancelled
Agent event levelAGENT_EVENT_LEVELSdebug, info, warning, error
Question statusQUESTION_STATUSESopen, answered, parked
Source kindSOURCE_KINDSpublication, eln_entry, protocol, report, dataset, other
Source statusSOURCE_STATUSESpending, ready, error, archived
Source link targetSOURCE_LINK_TARGETSquestion, finding, hypothesis
Hypothesis statusHYPOTHESIS_STATUSESproposed, under_review, accepted, rejected, retired
Hypothesis decisionHYPOTHESIS_DECISIONSaccepted, rejected
Gap statusGAP_STATUSESopen, addressed, dismissed
Evidence agent run kindEVIDENCE_AGENT_RUN_KINDSevidence_compare, evidence_gaps, evidence_hypotheses
Research plan statusPLAN_STATUSESdraft, review, approved, archived
Protocol statusPROTOCOL_STATUSESdraft, review, approved, superseded, archived
Experiment statusEXPERIMENT_STATUSESplanned, running, completed, aborted
Report statusREPORT_STATUSESdraft, review, approved, archived
Tool invocation statusTOOL_INVOCATION_STATUSESqueued, running, succeeded, failed
Plans agent run kindPLANS_AGENT_RUN_KINDSplans_draft_protocol, plans_draft_report
SOP statusSOP_STATUSESdraft, review, approved, superseded, archived
Check target typeCHECK_TARGET_TYPESprotocol, experiment, report
Check statusCHECK_STATUSESqueued, running, succeeded, partial, failed
Review finding kindREVIEW_FINDING_KINDSmissing_metadata, unsupported_conclusion, inconsistent_entry, undocumented_deviation, other
Review severityREVIEW_SEVERITIESinfo, minor, major
Review finding decisionREVIEW_DECISIONSopen, accepted, dismissed, resolved
Deviation statusDEVIATION_STATUSESsuspected, confirmed, not_a_deviation, closed
Milestone statusMILESTONE_STATUSESplanned, in_progress, blocked, completed, cancelled
Dependency kindDEPENDENCY_KINDSblocks, informs
Open item statusOPEN_ITEM_STATUSESopen, answered, closed
Approval target typeAPPROVAL_TARGET_TYPESmilestone, plan, protocol, report, hypothesis
Approval statusAPPROVAL_STATUSESrequested, approved, rejected, withdrawn
Approval decisionAPPROVAL_DECISIONSapproved, rejected

Transition rule for plans, protocols, reports and SOPs: POST .../transition accepts any value of the resource’s status enum other than approved (422 Invalid transition otherwise, 409 Conflict when the row already has that status); approved is set only by the /approve route, which refuses rows that are already approved, archived or superseded. The diagrams below show the intended path through each lifecycle.

Program

active paused completed archived

Source

pending ready error archived

Hypothesis

proposed under_review accepted rejected retired

Plan

draft review approved archived

Protocol

draft review approved superseded archived

Experiment

planned running completed aborted

Report

draft review approved archived

Check

queued running succeeded partial failed

Review finding decision

open accepted dismissed resolved

Deviation

suspected confirmed not_a_deviation closed

Milestone

planned in_progress blocked completed cancelled

Approval

requested approved rejected withdrawn

Agent run

queued running succeeded failed cancelled

Sync run

queued running succeeded partial failed skipped

Connection

pending connected error disabled

Tone map

One function, mirrored in web/lib/status.ts (toneFor) and docs/lib/content.ts. Unknown values are neutral, so nothing renders without a tone. Release words use info for available and preview and neutral for the rest.

ToneStatuses
passconnected, succeeded, approved, accepted, completed, ready, resolved, answered, active
reviewpending, queued, draft, review, proposed, under_review, requested, suspected, planned, open
failerror, failed, rejected, blocked, confirmed, aborted
inforunning, in_progress, partial
neutraldisabled, skipped, archived, retired, dismissed, parked, cancelled, withdrawn, superseded, not_a_deviation, closed, paused

Source: api/app/db/models/_enums.py, api/app/db/models/_agentic.py, api/app/db/models/org.py, api/app/db/models/rbac.py, api/app/db/models/connection.py, api/app/db/models/agent.py, api/app/db/models/evidence.py, api/app/db/models/plans.py, api/app/db/models/review.py, api/app/db/models/progress.py, api/app/services/_status.py, api/app/worker.py, web/lib/status.ts