Workflow Status Skill
Purpose
Provide a comprehensive view of the current state of all workflow activities, combining data from both discovery.db (pre-approval pipeline) and .beads/ (post-approval execution). This skill helps users understand where they left off and what to do next.
When to Use
- •User asks "What's the status?", "Where did I leave off?", "What should I work on?"
- •Resuming work after an interruption or break
- •Getting oriented on overall project state
- •Understanding what's blocked or needs attention
- •Checking on progress across multiple features
Process
Step 0: Path Detection
Determine the location of discovery.db to support both new .parade/ structure and legacy project root:
# Path detection for .parade/ structure if [ -f ".parade/discovery.db" ]; then DISCOVERY_DB=".parade/discovery.db" else DISCOVERY_DB="./discovery.db" fi
All subsequent database operations in this skill use $DISCOVERY_DB instead of hardcoded discovery.db.
Step 1: Query Discovery Pipeline
Check for briefs in the pre-approval workflow:
sqlite3 -json "$DISCOVERY_DB" "
SELECT
id,
title,
status,
priority,
datetime(updated_at, 'localtime') as updated_at,
datetime(created_at, 'localtime') as created_at
FROM briefs
WHERE status IN ('draft', 'in_discovery', 'spec_ready')
ORDER BY
CASE priority
WHEN 1 THEN 1
WHEN 2 THEN 2
WHEN 3 THEN 3
WHEN 4 THEN 4
END,
updated_at DESC;
"
Step 2: Query Beads for Active Epics
Get all open and in-progress epics with task counts:
bd list --status open --json bd list --status in_progress --json
For each epic, get child task breakdown:
# Count tasks by status for each epic
bd list --json | jq '[.[] | select(.parent_id == "<epic-id>") | group_by(.status) | {status: .[0].status, count: length}]'
Step 3: Identify Blocked Tasks
Find all tasks that are blocked:
bd list --status blocked --json
Step 4: Get Ready Work
Show what's available to work on right now:
bd ready --json
Step 5: Query Recent Activity
Get the last 10 workflow events:
sqlite3 -json "$DISCOVERY_DB" " SELECT brief_id, event_type, details, datetime(created_at, 'localtime') as created_at FROM workflow_events ORDER BY created_at DESC LIMIT 10; "
Step 6: Format and Display
Present information in a structured format:
## Workflow Status ### Discovery Pipeline - [brief-id]: Title (status: draft) - Priority: High - Last updated: 2 hours ago - [brief-id]: Title (status: in_discovery) - Priority: Medium - Last updated: 1 day ago - [brief-id]: Title (status: spec_ready) - Priority: High - Created: 3 days ago ### Active Epics - [epic-id]: Epic Title (status: in_progress) - Tasks: 3 open, 2 in_progress, 1 completed, 0 blocked - [epic-id]: Another Epic (status: open) - Tasks: 5 open, 0 in_progress, 0 completed, 0 blocked ### Blocked Tasks - [task-id]: Task Title - Epic: [epic-id] - Reason: Dependency on [other-task-id] - Blocked since: 2 hours ago ### Ready to Work - [task-id]: Task Title (epic: [epic-id]) - [task-id]: Another Task (epic: [epic-id]) ### Recent Activity (Last 10 Events) - 2 hours ago: spec_approved for brief-id - 1 day ago: discovery_completed for brief-id - 2 days ago: created for brief-id
Step 7: Suggest Next Actions
Based on the current state, provide actionable recommendations:
If there are draft briefs:
Suggested Actions: - Run /start-discovery <brief-id> to begin discovery for "<title>"
If there are spec_ready briefs:
Suggested Actions: - Run /approve-spec <brief-id> to export "<title>" to beads
If there are ready tasks:
Suggested Actions: - Run /run-tasks to begin execution on <N> ready tasks
If there are blocked tasks but no ready work:
Suggested Actions: - Review blocked tasks: bd show <task-id> - Resolve dependencies or blockers manually
If everything is idle:
Suggested Actions: - Run /create-brief to start a new feature - Review completed work: bd list --status closed --json
Implementation Details
SQL Queries
Get Briefs by Status
SELECT
id,
title,
status,
priority,
problem_statement,
datetime(updated_at, 'localtime') as updated_at,
datetime(created_at, 'localtime') as created_at
FROM briefs
WHERE status IN ('draft', 'in_discovery', 'spec_ready')
ORDER BY priority, updated_at DESC;
Get Recent Workflow Events
SELECT brief_id, event_type, details, datetime(created_at, 'localtime') as created_at FROM workflow_events ORDER BY created_at DESC LIMIT 10;
Count Briefs by Status
SELECT status, COUNT(*) as count, GROUP_CONCAT(id, ', ') as brief_ids FROM briefs WHERE status != 'archived' GROUP BY status;
Beads Commands
List All Epics
bd list --json | jq '[.[] | select(.issue_type == "epic")]'
Get Task Counts for Epic
# For a specific epic ID
EPIC_ID="<epic-id>"
bd list --json | jq --arg epic "$EPIC_ID" '
[.[] | select(.parent_id == $epic)] |
group_by(.status) |
map({status: .[0].status, count: length})
'
List Blocked Tasks with Details
bd list --status blocked --json | jq '.[] | {
id: .id,
title: .title,
parent_id: .parent_id,
updated_at: .updated_at
}'
Get Ready Work
bd ready --json
Display Format
Priority Levels
- •1: Critical (🔴)
- •2: High (🟠)
- •3: Medium (🟡)
- •4: Low (🟢)
Status Indicators
- •
draft: Initial brief created - •
in_discovery: Discovery process running - •
spec_ready: Specification complete, ready for approval - •
open: Task/epic created but not started - •
in_progress: Actively being worked on - •
blocked: Cannot proceed due to dependency or issue - •
completed: Finished successfully
Time Formatting
Show relative time when recent (< 24h), otherwise show absolute:
- •"2 hours ago"
- •"Yesterday"
- •"Jan 2, 2026"
Example Output
## Workflow Status (as of Jan 2, 2026 2:30 PM) ### Discovery Pipeline (2 active) - [athlete-experience-tracking]: Athlete Experience Level Tracking Status: spec_ready | Priority: High (2) | Updated: 3 hours ago - [data-export-feature]: Export Training Data Status: in_discovery | Priority: Medium (3) | Updated: 1 day ago ### Active Epics (1) - [customTaskTracker-xbi]: Workflow Orchestration System Status: in_progress | Tasks: 8 open, 2 in_progress, 3 completed, 1 blocked ### Blocked Tasks (1) - [customTaskTracker-xbi.9]: Implement sub-agent spawning Epic: Workflow Orchestration System Blocked since: 2 hours ago Run: bd show customTaskTracker-xbi.9 for details ### Ready to Work (3 tasks) - [customTaskTracker-xbi.12]: Create /workflow-status skill - [customTaskTracker-xbi.13]: Add status update commands - [customTaskTracker-xbi.14]: Create verification tests ### Recent Activity - 2 hours ago: spec_approved for athlete-experience-tracking - 4 hours ago: sme_review_completed for athlete-experience-tracking - 1 day ago: discovery_started for data-export-feature - 2 days ago: created for data-export-feature - 3 days ago: task_completed for customTaskTracker-xbi.8 ### Suggested Next Actions 1. Run /run-tasks to work on 3 ready tasks 2. Run /approve-spec athlete-experience-tracking to export to beads 3. Review blocked task: bd show customTaskTracker-xbi.9
Error Handling
Discovery DB Not Found
Warning: discovery.db not found at .parade/ or project root. No discovery pipeline data available. Run /create-brief to start a new feature.
Beads Not Initialized
Warning: Beads not initialized (.beads/ directory missing). No task execution data available. Tasks will appear here after running /approve-spec.
No Active Work
## Workflow Status No active briefs, epics, or tasks found. Suggested Actions: - Run /create-brief to start a new feature - Check archived work: sqlite3 "$DISCOVERY_DB" "SELECT * FROM briefs WHERE status = 'archived';"
Tips
- •Use this skill at the start of each session to get oriented
- •Combine with
bd show <id>to drill into specific tasks - •Check workflow status before running /run-tasks to ensure work is ready
- •Use recent activity to understand what happened while you were away
- •Suggested actions are prioritized by workflow stage (discovery → spec → execution)