OSS-first docs
These docs teach the open system first: contracts, generated surfaces, runtimes, governance, and incremental adoption. Studio shows up as the operating layer on top, not as the source of truth.
State machine-based workflow engine with role-based approvals, delegation, and escalation
Operations (18)
•
`workflow.definition.create` (v1.0.0)
•
`workflow.definition.update` (v1.0.0)
•
`workflow.step.add` (v1.0.0)
•
`workflow.definition.publish` (v1.0.0)
•
`workflow.definition.list` (v1.0.0)
•
`workflow.definition.get` (v1.0.0)
•
`workflow.instance.start` (v1.0.0)
•
`workflow.instance.transition` (v1.0.0)
•
`workflow.instance.pause` (v1.0.0)
•
`workflow.instance.resume` (v1.0.0)
•
`workflow.instance.cancel` (v1.0.0)
•
`workflow.instance.list` (v1.0.0)
•
`workflow.instance.get` (v1.0.0)
•
`workflow.approval.decide` (v1.0.0)
•
`workflow.approval.delegate` (v1.0.0)
•
`workflow.approval.comment.add` (v1.0.0)
•
`workflow.approval.list.mine` (v1.0.0)
•
`workflow.approval.get` (v1.0.0)
Events (17)
•
`workflow.definition.created` (v1.0.0)
•
`workflow.definition.updated` (v1.0.0)
•
`workflow.definition.published` (v1.0.0)
•
`workflow.step.added` (v1.0.0)
•
`workflow.instance.started` (v1.0.0)
•
`workflow.step.entered` (v1.0.0)
•
`workflow.step.exited` (v1.0.0)
•
`workflow.instance.completed` (v1.0.0)
•
`workflow.instance.cancelled` (v1.0.0)
•
`workflow.instance.paused` (v1.0.0)
•
`workflow.instance.resumed` (v1.0.0)
•
`workflow.instance.failed` (v1.0.0)
•
`workflow.instance.timedOut` (v1.0.0)
•
`workflow.approval.requested` (v1.0.0)
•
`workflow.approval.decided` (v1.0.0)
•
`workflow.approval.delegated` (v1.0.0)
•
`workflow.approval.escalated` (v1.0.0)
Presentations (11)
•
`workflow.designer` (v1.0.0)
•
`workflow.definition.viewList` (v1.0.0)
•
`workflow.definition.detail` (v1.0.0)
•
`workflow.instance.viewList` (v1.0.0)
•
`workflow.instance.detail` (v1.0.0)
•
`workflow.instance.progress` (v1.0.0)
•
`workflow.approval.inbox` (v1.0.0)
•
`workflow.approval.detail` (v1.0.0)
•
`workflow.approval.form` (v1.0.0)
•
`workflow.approval.badge` (v1.0.0)
•
`workflow.metrics` (v1.0.0)
Source Definition
/**
* Workflow System Feature Module Specification
*
* Defines the feature module for workflow and approval capabilities.
*/
import { defineFeature } from '@lssm-tech/lib.contracts-spec';
import { WorkflowVisualizationRefs } from './visualizations';
/**
* Workflow System feature module that bundles workflow definition,
* instance management, and approval handling into an installable feature.
*/
export const WorkflowSystemFeature = defineFeature({
meta: {
key: 'workflow-system',
title: 'Workflow & Approval System',
description:
'State machine-based workflow engine with role-based approvals, delegation, and escalation',
domain: 'workflow',
owners: ['@workflow-team'],
tags: ['workflow', 'approval', 'state-machine', 'automation'],
stability: 'experimental',
version: '1.0.0',
},
// All contract operations included in this feature
operations: [
// Workflow definition operations
{ key: 'workflow.definition.create', version: '1.0.0' },
{ key: 'workflow.definition.update', version: '1.0.0' },
{ key: 'workflow.step.add', version: '1.0.0' },
{ key: 'workflow.definition.publish', version: '1.0.0' },
{ key: 'workflow.definition.list', version: '1.0.0' },
{ key: 'workflow.definition.get', version: '1.0.0' },
// Workflow instance operations
{ key: 'workflow.instance.start', version: '1.0.0' },
{ key: 'workflow.instance.transition', version: '1.0.0' },
{ key: 'workflow.instance.pause', version: '1.0.0' },
{ key: 'workflow.instance.resume', version: '1.0.0' },
{ key: 'workflow.instance.cancel', version: '1.0.0' },
{ key: 'workflow.instance.list', version: '1.0.0' },
{ key: 'workflow.instance.get', version: '1.0.0' },
// Approval operations
{ key: 'workflow.approval.decide', version: '1.0.0' },
{ key: 'workflow.approval.delegate', version: '1.0.0' },
{ key: 'workflow.approval.comment.add', version: '1.0.0' },
{ key: 'workflow.approval.list.mine', version: '1.0.0' },
{ key: 'workflow.approval.get', version: '1.0.0' },
],
// Events emitted by this feature
events: [
// Definition events
{ key: 'workflow.definition.created', version: '1.0.0' },
{ key: 'workflow.definition.updated', version: '1.0.0' },
{ key: 'workflow.definition.published', version: '1.0.0' },
{ key: 'workflow.step.added', version: '1.0.0' },
// Instance events
{ key: 'workflow.instance.started', version: '1.0.0' },
{ key: 'workflow.step.entered', version: '1.0.0' },
{ key: 'workflow.step.exited', version: '1.0.0' },
{ key: 'workflow.instance.completed', version: '1.0.0' },
{ key: 'workflow.instance.cancelled', version: '1.0.0' },
{ key: 'workflow.instance.paused', version: '1.0.0' },
{ key: 'workflow.instance.resumed', version: '1.0.0' },
{ key: 'workflow.instance.failed', version: '1.0.0' },
{ key: 'workflow.instance.timedOut', version: '1.0.0' },
// Approval events
{ key: 'workflow.approval.requested', version: '1.0.0' },
{ key: 'workflow.approval.decided', version: '1.0.0' },
{ key: 'workflow.approval.delegated', version: '1.0.0' },
{ key: 'workflow.approval.escalated', version: '1.0.0' },
],
// Presentations associated with this feature
presentations: [
// Definition
{ key: 'workflow.designer', version: '1.0.0' },
{ key: 'workflow.definition.viewList', version: '1.0.0' },
{ key: 'workflow.definition.detail', version: '1.0.0' },
// Instance
{ key: 'workflow.instance.viewList', version: '1.0.0' },
{ key: 'workflow.instance.detail', version: '1.0.0' },
{ key: 'workflow.instance.progress', version: '1.0.0' },
// Approval
{ key: 'workflow.approval.inbox', version: '1.0.0' },
{ key: 'workflow.approval.detail', version: '1.0.0' },
{ key: 'workflow.approval.form', version: '1.0.0' },
{ key: 'workflow.approval.badge', version: '1.0.0' },
// Dashboard
{ key: 'workflow.metrics', version: '1.0.0' },
],
// Link operations to their primary presentations
opToPresentation: [
{
op: { key: 'workflow.definition.list', version: '1.0.0' },
pres: { key: 'workflow.definition.viewList', version: '1.0.0' },
},
{
op: { key: 'workflow.instance.list', version: '1.0.0' },
pres: { key: 'workflow.instance.viewList', version: '1.0.0' },
},
{
op: { key: 'workflow.approval.list.mine', version: '1.0.0' },
pres: { key: 'workflow.approval.inbox', version: '1.0.0' },
},
{
op: { key: 'workflow.approval.decide', version: '1.0.0' },
pres: { key: 'workflow.approval.form', version: '1.0.0' },
},
],
// Target requirements for multi-surface rendering
presentationsTargets: [
{ key: 'workflow.designer', version: '1.0.0', targets: ['react'] },
{
key: 'workflow.definition.viewList',
version: '1.0.0',
targets: ['react', 'markdown'],
},
{
key: 'workflow.definition.detail',
version: '1.0.0',
targets: ['react', 'markdown'],
},
{
key: 'workflow.instance.viewList',
version: '1.0.0',
targets: ['react', 'markdown'],
},
{
key: 'workflow.instance.detail',
version: '1.0.0',
targets: ['react', 'markdown'],
},
{ key: 'workflow.instance.progress', version: '1.0.0', targets: ['react'] },
{
key: 'workflow.approval.inbox',
version: '1.0.0',
targets: ['react', 'markdown'],
},
{
key: 'workflow.approval.detail',
version: '1.0.0',
targets: ['react', 'markdown'],
},
{
key: 'workflow.metrics',
version: '1.0.0',
targets: ['react', 'markdown'],
},
],
visualizations: WorkflowVisualizationRefs,
// Capability requirements
capabilities: {
requires: [
{ key: 'identity', version: '1.0.0' },
{ key: 'audit-trail', version: '1.0.0' },
{ key: 'notifications', version: '1.0.0' },
{ key: 'feature-flags', version: '1.0.0' },
],
provides: [
{ key: 'workflow', version: '1.0.0' },
{ key: 'approval', version: '1.0.0' },
{ key: 'state-machine', version: '1.0.0' },
],
},
workflows: [
{ key: 'workflow-system.workflow.approval-chain', version: '1.0.0' },
],
telemetry: [{ key: 'workflow-system.telemetry', version: '1.0.0' }],
jobs: [
{ key: 'workflow-system.job.instance-timeout', version: '1.0.0' },
{ key: 'workflow-system.job.escalation', version: '1.0.0' },
],
docs: [
'docs.examples.workflow-system',
'docs.examples.workflow-system.goal',
'docs.examples.workflow-system.usage',
'docs.examples.workflow-system.constraints',
],
});