Skip to content
Back to skills

438 Workflow Introspection 5b7c351e

ASecurity

Use `dbos.ListWorkflows` to query workflow executions by status, name, time range, and other criteria.

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 11, 2026
documentationgodebuggingperformance

Security analysis

A100/100

Scanned October 11, 2026

npx -y skills add tools-only/X-Skills --skill 438-workflow-introspection_5b7c351e --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 438 Workflow Introspection 5b7c351e?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 438 Workflow Introspection 5b7c351e
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-438-workflow-introspection-5b7c351e/badge)](https://www.skillsdirectory.com/skills/tools-only-438-workflow-introspection-5b7c351e)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
---
title: List and Inspect Workflows
impact: MEDIUM
impactDescription: Enables monitoring and debugging of workflow executions
tags: workflow, list, inspect, status, monitoring
---

## List and Inspect Workflows

Use `dbos.ListWorkflows` to query workflow executions by status, name, time range, and other criteria.

**Incorrect (no monitoring of workflow state):**

```go
// Start workflow with no way to check on it later
dbos.RunWorkflow(ctx, processTask, "data")
// If something goes wrong, no way to find or debug it
```

**Correct (listing and inspecting workflows):**

```go
// List workflows by status
erroredWorkflows, err := dbos.ListWorkflows(ctx,
	dbos.WithStatus([]dbos.WorkflowStatusType{dbos.WorkflowStatusError}),
)

for _, wf := range erroredWorkflows {
	fmt.Printf("Workflow %s: %s - %v\n", wf.ID, wf.Name, wf.Error)
}
```

List workflows with multiple filters:

```go
workflows, err := dbos.ListWorkflows(ctx,
	dbos.WithName("processOrder"),
	dbos.WithStatus([]dbos.WorkflowStatusType{dbos.WorkflowStatusSuccess}),
	dbos.WithLimit(100),
	dbos.WithSortDesc(),
	dbos.WithLoadOutput(true),
)
```

List workflow steps:

```go
steps, err := dbos.GetWorkflowSteps(ctx, workflowID)
for _, step := range steps {
	fmt.Printf("Step %d: %s\n", step.StepID, step.StepName)
	if step.Error != nil {
		fmt.Printf("  Error: %v\n", step.Error)
	}
	if step.ChildWorkflowID != "" {
		fmt.Printf("  Child: %s\n", step.ChildWorkflowID)
	}
}
```

Workflow status values: `WorkflowStatusPending`, `WorkflowStatusEnqueued`, `WorkflowStatusSuccess`, `WorkflowStatusError`, `WorkflowStatusCancelled`, `WorkflowStatusMaxRecoveryAttemptsExceeded`

To optimize performance, avoid loading inputs/outputs when you don't need them (they are not loaded by default).

Reference: [Workflow Management](https://docs.dbos.dev/golang/tutorials/workflow-management#listing-workflows)

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…