Process App

Features & Capabilities

Process App - Features & Capabilities Report

Template Version: 1.0.0 Generated: 2026-01-22 Package: @epicdm/flowstate-app-process App ID: process


Table of Contents

  1. Overview
  2. App Identity
  3. Feature Categories
  4. Capabilities
  5. Data Models
  6. User Workflows
  7. Integration Points
  8. Commands & Keybindings
  9. Architecture Summary
  10. Quality & Compliance

Overview

Purpose

The Process App is the visual process design and workflow documentation application for FlowState. It provides interactive flowchart visualization with ReactFlow, hierarchical subprocess navigation, full process editing with command-based undo/redo, configurable approval workflows, a visual JSON Schema editor for entity templates, and comprehensive execution statistics with analytics dashboards.

Target Users

User TypeDescriptionPrimary Use Cases
Process DesignersCreate and maintain process definitionsDesign flowcharts, configure steps, define connections
Workflow ManagersOversee process execution and approvalsConfigure approvals, monitor statistics, track executions
Business AnalystsDocument organizational processesCreate process documentation, define templates
DevelopersIntegrate technical componentsConfigure API calls, scripts, agent tasks
StakeholdersReview and approve processesReview definitions, participate in approval workflows

Value Proposition

  • Visual Process Design: Interactive flowchart editor with drag-and-drop step palette
  • Hierarchical Navigation: Subprocess drill-down with breadcrumb trail
  • Command-Based Editing: Full undo/redo support with auto-save
  • Approval Workflows: Multi-approver gates with configurable thresholds
  • Schema Editor: Visual JSON Schema design for entity creation templates
  • Execution Analytics: Comprehensive statistics with charts and metrics
  • Integration Ready: API calls, scripts, and AI agent task support

App Identity

PropertyValue
IDprocess
Display NameProcess
Package Name@epicdm/flowstate-app-process
Version1.0.0
Categorytechnical
IconWorkflow
Color#6366f1
Base Path/process
Permissionsdatabase, notifications

Entry Points

Entry PointPathDescription
Main Exportsrc/index.tsPrimary package export
Standalonesrc/standalone.tsxStandalone app entry
App Componentsrc/App.tsxMain React component with routing
Pluginsrc/plugin.tsFlowState plugin registration
Process Viewersrc/ProcessViewerApp.tsxMain process viewer orchestrator

Feature Categories

Category 1: Process Viewer

Core process visualization and navigation

Feature: Process List View

PropertyDetails
IDprocess-list
StatusImplemented
PriorityHigh

Description: Browseable list of processes with search and filter capabilities by status and category.

User Story: As a process designer, I want to browse and search processes so that I can quickly find the process I need to view or edit.

Acceptance Criteria:

  • [x] Display processes in a scrollable list
  • [x] Search by process title, name, or description
  • [x] Filter by process status (draft, active, archived, all)
  • [x] Filter by process category
  • [x] Highlight selected process
  • [x] Show process metadata (version, status badge)

Implementation:

ComponentPathPurpose
ProcessListViewsrc/components/ProcessListView.tsxProcess list with search/filter
useProcessListsrc/hooks/useProcessList.tsProcess query hook

Feature: Flowchart Visualization

PropertyDetails
IDflowchart-view
StatusImplemented
PriorityHigh

Description: Interactive flowchart rendering using ReactFlow with custom node types for each process step type.

User Story: As a user, I want to see processes as visual flowcharts so that I can understand the process flow at a glance.

Acceptance Criteria:

  • [x] Render process steps as nodes with type-specific styling
  • [x] Display connections between steps as edges
  • [x] Support pan and zoom on the canvas
  • [x] Highlight selected step
  • [x] Auto-layout using Dagre algorithm
  • [x] Custom node types for all step categories

Implementation:

ComponentPathPurpose
ProcessFlowchartViewsrc/components/ProcessFlowchartView.tsxMain flowchart component
StartEndNodesrc/components/nodes/StartEndNode.tsxStart/End step nodes
ActionNodesrc/components/nodes/ActionNode.tsxAction step nodes
DecisionNodesrc/components/nodes/DecisionNode.tsxDecision step nodes
GatewayNodesrc/components/nodes/GatewayNode.tsxGateway step nodes
SubprocessNodesrc/components/nodes/SubprocessNode.tsxSubprocess step nodes
TaskNodesrc/components/nodes/TaskNode.tsxHuman task step nodes
DelayNodesrc/components/nodes/DelayNode.tsxDelay step nodes
ApprovalNodesrc/components/nodes/ApprovalNode.tsxApproval step nodes
autoLayoutsrc/utils/autoLayout.tsDagre auto-layout
flowTransformsrc/utils/flowTransform.tsProcess to ReactFlow transform

Feature: Subprocess Navigation

PropertyDetails
IDsubprocess-navigation
StatusImplemented
PriorityHigh

Description: Navigate into subprocess steps to view nested process definitions with breadcrumb trail for hierarchy tracking.

User Story: As a user, I want to navigate into subprocesses so that I can view nested process details without losing my place.

Acceptance Criteria:

  • [x] Double-click subprocess steps to drill down
  • [x] Display breadcrumb navigation showing hierarchy
  • [x] Navigate to any level via breadcrumb clicks
  • [x] "Home" breadcrumb to return to process list
  • [x] Preserve selection state during navigation

Implementation:

ComponentPathPurpose
ProcessBreadcrumbsrc/components/ProcessBreadcrumb.tsxBreadcrumb navigation
useProcessNavigationsrc/hooks/useProcessNavigation.tsNavigation stack management

Feature: Step Detail Panel

PropertyDetails
IDstep-detail
StatusImplemented
PriorityHigh

Description: Expandable panel showing detailed information about the selected step including type-specific configuration.

User Story: As a user, I want to see step details so that I can understand what each step does.

Acceptance Criteria:

  • [x] Display step title and description
  • [x] Show step type with icon
  • [x] Display type-specific configuration
  • [x] Show subprocess link for subprocess steps
  • [x] Collapsible panel when no step selected

Implementation:

ComponentPathPurpose
ProcessStepDetailsrc/components/ProcessStepDetail.tsxStep detail panel

Category 2: Process Editor

Visual process editing with undo/redo support

Feature: Step Palette

PropertyDetails
IDstep-palette
StatusImplemented
PriorityHigh

Description: Drag-and-drop palette of step types organized by category (flow, actions, integration).

User Story: As a process designer, I want to drag step types onto the canvas so that I can quickly build process flows.

Acceptance Criteria:

  • [x] Group step types by category
  • [x] Display step type with icon and label
  • [x] Drag initiation from palette items
  • [x] Visual feedback during drag
  • [x] Category headers with icons

Implementation:

ComponentPathPurpose
StepPalettesrc/components/editor/StepPalette.tsxDraggable step palette
STEP_TYPESsrc/types/editor.tsStep type definitions

Step Types Available:

CategoryTypes
Flow Controlstart, end, decision, parallel-gateway, join-gateway, subprocess, delay
Actionsaction, human-task, approval, notification
Integrationscript, api-call, agent-task

Feature: Editor Toolbar

PropertyDetails
IDeditor-toolbar
StatusImplemented
PriorityHigh

Description: Toolbar with undo/redo, delete, save status, and publish actions.

User Story: As a process designer, I want editing controls so that I can undo mistakes and publish my changes.

Acceptance Criteria:

  • [x] Undo/Redo buttons with disabled state
  • [x] Delete selected button
  • [x] Dirty/saved indicator
  • [x] Saving spinner during auto-save
  • [x] Publish button with validation

Implementation:

ComponentPathPurpose
EditorToolbarsrc/components/editor/EditorToolbar.tsxEditor toolbar
useCommandStacksrc/hooks/useCommandStack.tsUndo/redo stack
useAutoSavesrc/hooks/useAutoSave.tsAuto-save logic

Feature: Step Property Panel

PropertyDetails
IDstep-property-panel
StatusImplemented
PriorityHigh

Description: Editable property panel for configuring step details with type-specific fields.

User Story: As a process designer, I want to configure step properties so that I can customize step behavior.

Acceptance Criteria:

  • [x] Common fields (title, description)
  • [x] Type-specific fields based on step type
  • [x] Process selector for subprocess steps
  • [x] Condition builder for decision steps
  • [x] Live updates with auto-save

Implementation:

ComponentPathPurpose
StepPropertyPanelsrc/components/editor/StepPropertyPanel.tsxProperty editor
STEP_FORM_CONFIGsrc/types/editor.tsForm field configuration

Feature: Command-Based Undo/Redo

PropertyDetails
IDcommand-undo-redo
StatusImplemented
PriorityHigh

Description: Full command pattern implementation for reversible editing operations.

User Story: As a process designer, I want to undo and redo changes so that I can recover from mistakes.

Acceptance Criteria:

  • [x] Create/Delete step commands
  • [x] Update step property commands
  • [x] Move step position commands
  • [x] Create/Delete edge commands
  • [x] Stack-based undo/redo
  • [x] Clear stacks on save

Implementation:

ComponentPathPurpose
useCommandStacksrc/hooks/useCommandStack.tsCommand stack management
useProcessEditorsrc/hooks/useProcessEditor.tsEditor operations
Command typessrc/types/editor.tsCommand interfaces
commands utilitysrc/utils/commands.tsCommand factory functions

Feature: Publish Workflow

PropertyDetails
IDpublish-workflow
StatusImplemented
PriorityHigh

Description: Validation and confirmation dialog for publishing processes.

User Story: As a process designer, I want to publish my process so that it becomes available for execution.

Acceptance Criteria:

  • [x] Validation for start/end steps
  • [x] Confirmation dialog with process info
  • [x] Step and connection count display
  • [x] Publish button disabled when invalid
  • [x] Status update on successful publish

Implementation:

ComponentPathPurpose
PublishDialogsrc/components/editor/PublishDialog.tsxPublish confirmation

Category 3: Approval Workflows

Configurable multi-approver approval gates

Feature: Approval Step Configuration

PropertyDetails
IDapproval-config
StatusImplemented
PriorityHigh

Description: Configure approval steps with approvers, threshold, blocking behavior, and instructions.

User Story: As a workflow manager, I want to configure approval steps so that processes require proper authorization.

Acceptance Criteria:

  • [x] Add/remove approvers by ID
  • [x] Set required approval threshold
  • [x] Configure blocking vs non-blocking
  • [x] Add approval instructions
  • [x] Link documents for review

Implementation:

ComponentPathPurpose
ApprovalConfigSectionsrc/components/approval/ApprovalConfigSection.tsxConfig UI
ApprovalStepConfigsrc/types/approval.tsConfig type

Feature: Approval Actions

PropertyDetails
IDapproval-actions
StatusImplemented
PriorityHigh

Description: Take approval actions (approve, reject, request revision, comment) with required comments.

User Story: As an approver, I want to take approval actions so that I can authorize or request changes to work.

Acceptance Criteria:

  • [x] Approve action with optional comment
  • [x] Reject action with required comment
  • [x] Request revision with required comment
  • [x] Add comment without decision
  • [x] Action button state management

Implementation:

ComponentPathPurpose
ApprovalActionsSectionsrc/components/approval/ApprovalActionsSection.tsxAction buttons
ApprovalActionsrc/types/approval.tsAction union type

Feature: Approval Status & History

PropertyDetails
IDapproval-status
StatusImplemented
PriorityMedium

Description: Display approval status badges and timeline of approval events.

User Story: As a user, I want to see approval status and history so that I can track the approval process.

Acceptance Criteria:

  • [x] Status badge (pending, approved, rejected, needs-revision)
  • [x] Progress indicator for partial approvals
  • [x] Event timeline with actor and timestamp
  • [x] Comment display in timeline

Implementation:

ComponentPathPurpose
ApprovalStatusBadgesrc/components/approval/ApprovalStatusBadge.tsxStatus badge
ApprovalStatusSectionsrc/components/approval/ApprovalStatusSection.tsxStatus display
ApprovalHistorySectionsrc/components/approval/ApprovalHistorySection.tsxEvent timeline
ApprovalStepPanelsrc/components/approval/ApprovalStepPanel.tsxCombined panel

Feature: Approval Hooks

PropertyDetails
IDapproval-hooks
StatusImplemented
PriorityHigh

Description: React hooks for approval state management and configuration.

User Story: As a developer, I want approval hooks so that I can integrate approval functionality into components.

Acceptance Criteria:

  • [x] useApproval hook for approval state
  • [x] useApprovalConfig hook for configuration
  • [x] Approval service for business logic

Implementation:

ComponentPathPurpose
useApprovalsrc/hooks/useApproval.tsApproval state hook
useApprovalConfigsrc/hooks/useApprovalConfig.tsConfig hook
approvalServicesrc/services/approvalService.tsBusiness logic

Category 4: Schema Editor

Visual JSON Schema editing for entity templates

Feature: Visual Schema Editor

PropertyDetails
IDschema-editor
StatusImplemented
PriorityMedium

Description: Visual editor for creating and modifying JSON Schemas with field management.

User Story: As a process designer, I want to visually edit schemas so that I can define data structures without writing JSON.

Acceptance Criteria:

  • [x] Add fields with type selection
  • [x] Configure field constraints (min/max, pattern, enum)
  • [x] Mark fields as required
  • [x] Reorder fields via drag-and-drop
  • [x] Nested object support
  • [x] Array field configuration

Implementation:

ComponentPathPurpose
SchemaEditorsrc/components/schema-editor/SchemaEditor.tsxMain editor
FieldListsrc/components/schema-editor/FieldList.tsxField list
FieldListItemsrc/components/schema-editor/FieldListItem.tsxSingle field
FieldEditorsrc/components/schema-editor/FieldEditor.tsxField config
useSchemaEditorsrc/hooks/useSchemaEditor.tsSchema state

Feature: Entity Template Editor

PropertyDetails
IDentity-template
StatusImplemented
PriorityMedium

Description: Configure entity creation templates that use base collection schemas with field overrides.

User Story: As a process designer, I want to configure entity templates so that process steps can create tasks, milestones, or projects.

Acceptance Criteria:

  • [x] Select target collection (tasks, milestones, projects)
  • [x] Override field inclusion
  • [x] Set default values
  • [x] Variable interpolation support

Implementation:

ComponentPathPurpose
EntityTemplateEditorsrc/components/schema-editor/EntityTemplateEditor.tsxTemplate config
EntityTemplatesrc/types/schema.tsTemplate type

Feature: Schema Validation & Preview

PropertyDetails
IDschema-validation
StatusImplemented
PriorityMedium

Description: Real-time schema validation and JSON preview with form preview.

User Story: As a process designer, I want to validate my schema so that I can catch errors before publishing.

Acceptance Criteria:

  • [x] Live validation with error display
  • [x] JSON Schema preview panel
  • [x] Generated form preview
  • [x] Validation error highlighting

Implementation:

ComponentPathPurpose
SchemaValidatorsrc/components/schema-editor/SchemaValidator.tsxValidation UI
SchemaPreviewsrc/components/schema-editor/SchemaPreview.tsxJSON preview
FormPreviewsrc/components/schema-editor/FormPreview.tsxForm preview
useSchemaValidationsrc/hooks/useSchemaValidation.tsValidation hook
schemaValidationsrc/utils/schemaValidation.tsValidation logic
schemaTransformsrc/utils/schemaTransform.tsSchema conversion

Category 5: Execution Statistics

Analytics dashboard for process execution metrics

Feature: Statistics Dashboard

PropertyDetails
IDstats-dashboard
StatusImplemented
PriorityMedium

Description: Main statistics page with time range selector and metric cards.

User Story: As a workflow manager, I want to see execution statistics so that I can monitor process performance.

Acceptance Criteria:

  • [x] Time range toggle (7 days / 30 days)
  • [x] Total executions metric
  • [x] Success rate with color coding
  • [x] Average duration metric
  • [x] Currently running count (live)

Implementation:

ComponentPathPurpose
ProcessStatsPagesrc/pages/ProcessStatsPage.tsxStats page
StatsHeadersrc/components/stats/StatsHeader.tsxTime range toggle
MetricCardsrc/components/stats/MetricCard.tsxMetric display
useProcessStatssrc/hooks/useProcessStats.tsStats data hook

Feature: Execution Charts

PropertyDetails
IDstats-charts
StatusImplemented
PriorityMedium

Description: Visual charts for execution data including time series, breakdown, and comparison views.

User Story: As a workflow manager, I want visual charts so that I can identify trends and patterns.

Acceptance Criteria:

  • [x] Executions over time stacked area chart
  • [x] Status breakdown pie chart
  • [x] Process comparison bar chart
  • [x] Execution timeline/Gantt chart
  • [x] Loading states for all charts

Implementation:

ComponentPathPurpose
ExecutionsOverTimeChartsrc/components/stats/ExecutionsOverTimeChart.tsxTime series
StatusBreakdownChartsrc/components/stats/StatusBreakdownChart.tsxPie chart
ProcessComparisonChartsrc/components/stats/ProcessComparisonChart.tsxBar chart
ExecutionTimelineChartsrc/components/stats/ExecutionTimelineChart.tsxTimeline
statsAggregationsrc/utils/statsAggregation.tsData aggregation

Feature: Linked Entities Panel

PropertyDetails
IDlinked-entities
StatusImplemented
PriorityLow

Description: Display projects, milestones, and tasks created by process executions.

User Story: As a workflow manager, I want to see linked entities so that I can track what processes have created.

Acceptance Criteria:

  • [x] List entities by type
  • [x] Show entity name and creation date
  • [x] Show originating process
  • [x] Navigate to entity on click

Implementation:

ComponentPathPurpose
LinkedEntitiesPanelsrc/components/stats/LinkedEntitiesPanel.tsxEntity list
LinkedEntitysrc/types/stats.tsEntity type

Capabilities

Core Capabilities

CapabilityDescriptionImplementation
Visual Process DesignInteractive flowchart editingReactFlow with custom nodes
Subprocess NavigationHierarchical process traversalNavigation stack with breadcrumbs
Command-Based EditingReversible undo/redo operationsCommand pattern implementation
Approval WorkflowsMulti-approver authorizationConfigurable approval steps
Schema EditingVisual JSON Schema designField-based schema builder
Execution AnalyticsProcess performance metricsStatistics dashboard with charts

Technical Capabilities

CapabilityStatusNotes
CRUD OperationsYesFull CRUD on processes and steps
Real-time UpdatesYesRxDB reactive subscriptions
Offline SupportYesRxDB local-first architecture
Auto-saveYesDebounced auto-save with dirty tracking
Keyboard ShortcutsYesStandard shortcuts (Ctrl+Z, Ctrl+Y, etc.)
Drag-and-DropYesStep palette drag to canvas
Auto-layoutYesDagre algorithm for automatic positioning

Integration Capabilities

IntegrationTypeDescription
Projects AppinternalLinked entities from executions
RxDB ServerinternalReplication for data sync
FlowState FrameworkinternalAuth, org context, layout
ReactFlowexternalFlowchart rendering library
RechartsexternalStatistics chart library
DagreexternalGraph auto-layout algorithm

Data Models

Collections Used

CollectionDescriptionOperationsPrimary Hook
processesProcess definitionsCRUD, QueryuseProcess, useProcessList
processstepsProcess step recordsCRUD, QueryuseProcess, useProcessEditor

Entity Relationships

Process
    |
    +-- ProcessSteps (hasMany)
            |
            +-- Outgoing Connections (embedded in nextStepIds)
            |
            +-- Subprocess Reference (optional)
            |
            +-- Approval Configuration (optional)

Key Data Flows

User Action --> Component --> Hook --> RxDB Collection --> UI Update
                                  |
                                  +--> Command Stack (for undo/redo)
                                  |
                                  +--> Auto-save (debounced)
                                  |
                                  +--> Replication --> Server

User Workflows

Workflow 1: View a Process

Navigate to and explore a process flowchart

Trigger: Navigate to Processes page

Steps:

StepActionComponentOutcome
1Browse process listProcessListViewProcesses displayed
2Search/filter as neededProcessListViewList filtered
3Click processProcessListViewProcess selected
4View flowchartProcessFlowchartViewFlowchart rendered
5Click stepProcessFlowchartViewStep highlighted
6View step detailsProcessStepDetailDetails shown

Success Outcome: User understands process flow and step details Failure Handling: Error state shown if process not found


Workflow 2: Edit a Process

Create or modify process steps

Trigger: Toggle edit mode on a process

Steps:

StepActionComponentOutcome
1Click Edit Mode toggleProcessViewerAppEditor enabled
2Drag step from paletteStepPaletteStep created on canvas
3Configure step propertiesStepPropertyPanelProperties saved
4Connect stepsProcessFlowchartViewEdge created
5Wait for auto-saveEditorToolbarChanges saved
6Click PublishPublishDialogValidation shown
7Confirm publishPublishDialogProcess published

Success Outcome: Process saved and published Failure Handling: Undo available for mistakes, validation prevents invalid publish


Workflow 3: Configure Approval Step

Set up a multi-approver approval gate

Trigger: Select an approval step in edit mode

Steps:

StepActionComponentOutcome
1Click approval stepProcessFlowchartViewStep selected
2Open approval configApprovalConfigSectionConfig shown
3Add approversApprovalConfigSectionApprovers added
4Set thresholdApprovalConfigSectionThreshold saved
5Add instructionsApprovalConfigSectionInstructions saved
6Link documentsApprovalConfigSectionDocuments linked

Success Outcome: Approval step configured for workflow Failure Handling: Validation ensures required fields


Workflow 4: Review Execution Statistics

Monitor process performance

Trigger: Navigate to Statistics page

Steps:

StepActionComponentOutcome
1Open Stats pageProcessStatsPageDashboard shown
2Select time rangeStatsHeaderData filtered
3Review metricsMetricCardKPIs visible
4Analyze chartsChart componentsTrends identified
5Review linked entitiesLinkedEntitiesPanelCreated items shown

Success Outcome: User understands process performance Failure Handling: Loading states while data fetches


State Transitions

Process Status States

┌─────────┐   ┌─────────┐   ┌──────────┐
│  Draft  │──▶│ Active  │──▶│ Archived │
└─────────┘   └─────────┘   └──────────┘
      │              │
      ▼              ▼
  (Publish)    (Archive)
From StateTo StateTriggerSide Effects
DraftActivePublishVersion increment
ActiveArchivedArchiveExecutions blocked
DraftDraftSaveAuto-save triggered

Approval Status States

┌─────────┐   ┌──────────┐
│ Pending │──▶│ Approved │
└─────────┘   └──────────┘

      ├───▶ ┌──────────┐
      │     │ Rejected │
      │     └──────────┘

      └───▶ ┌────────────────┐
            │ Needs Revision │
            └────────────────┘


              ┌─────────┐
              │ Pending │
              └─────────┘

Integration Points

Internal Integrations

IntegrationPackagePurpose
FlowState Framework@epicdm/flowstate-app-frameworkApp container, auth, layout
Collections@epicdm/flowstate-collectionsProcessModel, ProcessStepModel schemas
RxDB React@epicdm/flowstate-rxdb-reactReactive subscriptions

External Integrations

IntegrationTypeConfiguration
ReactFlowLibraryFlowchart rendering
RechartsLibraryStatistics charts
DagreLibraryAuto-layout algorithm
Lucide ReactLibraryIcon components

MCP Integration

ToolPurposeExample Usage
collection-queryQuery processes{"collection": "processes", "selector": {"status": "active"}}
collection-createCreate process{"collection": "processes", "data": {...}}
collection-updateUpdate process{"collection": "processes", "id": "...", "data": {"status": "archived"}}

Commands & Keybindings

Keyboard Shortcuts

CommandWindows/LinuxmacOSContext
UndoCtrl+ZCmd+ZEditor mode
RedoCtrl+YCmd+Shift+ZEditor mode
Delete SelectedDelete / BackspaceDelete / BackspaceEditor mode
Deselect AllEscapeEscapeEditor mode
Force SaveCtrl+SCmd+SEditor mode

Implementation

ComponentPathPurpose
useKeyboardShortcutssrc/hooks/useKeyboardShortcuts.tsShortcut handling
KEYBOARD_SHORTCUTSsrc/types/editor.tsShortcut definitions

Architecture Summary

Directory Structure

src/
├── components/           # UI components
│   ├── approval/        # Approval workflow components (7 files)
│   ├── editor/          # Editor components (6 files)
│   ├── nodes/           # ReactFlow node components (10 files)
│   ├── schema-editor/   # Schema editor components (10 files)
│   ├── stats/           # Statistics components (7 files)
│   ├── Header.tsx       # App header
│   ├── Sidebar.tsx      # App sidebar
│   ├── ProcessBreadcrumb.tsx
│   ├── ProcessFlowchartView.tsx
│   ├── ProcessHeader.tsx
│   ├── ProcessListView.tsx
│   ├── ProcessStatusBadge.tsx
│   └── ProcessStepDetail.tsx
├── hooks/               # Custom React hooks (14 hooks)
├── pages/               # Page components (5 files)
├── services/            # Business logic services (1 service)
├── types/               # TypeScript definitions (5 files)
├── utils/               # Utility functions (9 files)
├── App.tsx              # Main app component
├── ProcessViewerApp.tsx # Process viewer orchestrator
├── plugin.ts            # FlowState plugin
├── index.ts             # Package exports
└── standalone.tsx       # Standalone entry

Key Architectural Patterns

PatternUsageExample
State ManagementRxDB + local stateCollections for data, useState for UI
Command PatternUndo/redoCreate/Delete/Update commands
Data FlowReactive subscriptionsRxDB observables through hooks
Component ArchitectureFeature-based organizationComponents grouped by domain
RoutingReact Router v6Nested routes for processes

Hooks Overview

HookPurposeReturns
useProcessListQuery processes with filters{ processes, isLoading, error }
useProcessFetch single process with steps{ process, steps, isLoading, error }
useProcessNavigationSubprocess navigation stack{ navigationStack, push, goToLevel, reset }
useProcessEditorEditor operations{ createStep, updateStep, deleteStep, publish, ... }
useCommandStackUndo/redo stack{ canUndo, canRedo, execute, undo, redo }
useAutoSaveDebounced auto-save{ triggerSave, forceSave, isSaving }
useKeyboardShortcutsKeyboard shortcut handlingEvent listener registration
useApprovalApproval state{ status, decisions, comments, ... }
useApprovalConfigApproval configuration{ config, updateConfig }
useSchemaEditorSchema editing state{ fields, addField, updateField, schema, ... }
useSchemaValidationSchema validation{ isValid, errors, validate }
useFlowTransformProcess to ReactFlow transform{ nodes, edges }
useProcessStatsStatistics data{ metrics, executionsByDay, ... }

Quality & Compliance

Test Coverage

Test TypeLocationCoverage Target
Unit Testssrc/__tests__/>= 80%
Hook TestsIncluded in unit tests>= 80%
Utils TestsIncluded in unit tests>= 80%
E2E Testsplaywright/Critical paths

Accessibility

RequirementStatusNotes
WCAG 2.1 AAIn ProgressComponents use semantic HTML
Keyboard NavigationYesFull keyboard support in editor
Screen Reader SupportPartialARIA labels on interactive elements
Focus ManagementYesProper focus handling in dialogs

Security Considerations

ConsiderationImplementation
Input ValidationSchema validation for all inputs
AuthorizationOrg/workspace isolation via IDs
Data ProtectionRxDB encryption support

FlowState Alignment

Spec-Driven Development

This app follows the FlowState Standard for spec-driven development:

  • Requirements: .flowstate/specs/{{feature-name}}/requirements.md
  • Design: .flowstate/specs/{{feature-name}}/design.md
  • Wireframes: .flowstate/specs/{{feature-name}}/wireframes.html
  • Tasks: .flowstate/specs/{{feature-name}}/tasks.md

Quality Gates

GateRequirementStatus
Test Coverage>= 80% statementsIn Progress
TypeScript StrictNo any without justificationPass
AccessibilityWCAG 2.1 AAIn Progress
Documentation100% TSDoc on public APIsIn Progress
SecurityNo critical vulnerabilitiesPass

Appendix

DocumentLocationPurpose
FLOWSTATE.md.flowstate/docs/FLOWSTATE.mdDevelopment workflow
TDD.md.flowstate/steering/TDD.mdTesting standards
QUALITY.md.flowstate/steering/QUALITY.mdCode quality

Version History

VersionDateAuthorChanges
1.0.02026-01-22ClaudeInitial documentation
Previous
Getting Started