Skip to main content

Pipeline Overview

The Goblin pipeline manages the complete lifecycle of an issue from assignment to completion.

The Five Stages

StageAgentInputOutput
SCOPEScoperIssue descriptionImplementation plan
BUILDBuilderScope planCode changes, draft PR
REVIEWReviewerCode diffApproval or change requests
TESTTesterBuilt codeTest results, QA report
DONE-Tested codeReady for human review

Flow Diagram

┌─────────────────────────────────────────────────────────────────┐
│ │
│ Issue Assigned │
│ │ │
│ ▼ │
│ ┌──────────┐ │
│ │ SCOPE │ Analyze issue, create plan │
│ └────┬─────┘ │
│ │ scope-complete │
│ ▼ │
│ ┌──────────┐ │
│ │ BUILD │◀──────────────┐ Implement code │
│ └────┬─────┘ │ │
│ │ build-complete │ review-changes-requested │
│ ▼ │ │
│ ┌──────────┐ │ │
│ │ REVIEW │───────────────┘ Review diff │
│ └────┬─────┘ │
│ │ review-approved │
│ ▼ │
│ ┌──────────┐ ┌─────────────────────────────┐ │
│ │ TEST │───────────────▶ test-failed → back to REVIEW │
│ └────┬─────┘ └─────────────────────────────┘ │
│ │ test-passed │
│ ▼ │
│ ┌──────────┐ │
│ │ DONE │ PR ready, reassign to human │
│ └──────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘

Starting a Pipeline

Automatic (via Daemon)

When an issue is assigned to the bot user in Linear:

# Start the daemon
goblin daemon

The daemon automatically:

  1. Detects assigned issues
  2. Creates pipeline
  3. Starts SCOPE stage

Manual

# Start for a specific issue
goblin pipeline start ENG-123

Monitoring Progress

CLI Status

goblin status

Output:

┌─────────────────────────────────────────────────────────────┐
│ GOBLIN STATUS │
├─────────────────────────────────────────────────────────────┤
│ Project: my-app (ENG) │
├─────────────────────────────────────────────────────────────┤
│ Active Pipelines: │
│ ENG-123 BUILD [████████░░] Building auth module │
│ ENG-124 REVIEW [██████████] Awaiting approval │
│ ENG-125 TEST [████░░░░░░] Running QA │
├─────────────────────────────────────────────────────────────┤
│ Agents: 3 active, 2 idle │
└─────────────────────────────────────────────────────────────┘

Dashboard

goblin dashboard

Opens web UI with real-time updates.

Linear Integration

Progress is automatically posted to Linear:

  • Stage completion updates
  • Error notifications
  • QA reports

Handling Failures

Review Rejection

When reviewer requests changes:

  1. Pipeline returns to BUILD stage
  2. Builder reads review feedback
  3. Builder implements fixes
  4. Pipeline continues to REVIEW

Test Failure

When tests fail:

  1. Pipeline returns to REVIEW stage
  2. Reviewer analyzes failure
  3. May return to BUILD for fixes
  4. Pipeline continues

Max Retries

After configurable retries (default: 3):

  1. Pipeline enters FAILED state
  2. Notification sent
  3. Manual intervention required
# Retry failed pipeline
goblin pipeline retry ENG-123

Pipeline Configuration

# View current config
goblin pipeline config -p my-app --show

# Set assignee for auto-assignment
goblin pipeline config -p my-app --assignee-id USER_ID

# Enable preview environments
goblin pipeline config -p my-app --docker-compose docker-compose.yml

# Enable visual testing
goblin pipeline config -p my-app --playwright

DONE Stage

When all tests pass, the pipeline enters the DONE stage:

  1. Update Linear Status - Move issue to "Done" or "Ready for Review" state
  2. Reassign to Human - Reassign back to original requester for final review
  3. Final Comment - Post summary of changes, PR link, and test results
## Pipeline Complete: ENG-123

### Summary
- Commits: 8
- Files changed: 12
- Lines: +350, -25

### PR
https://github.com/org/repo/pull/42

### Test Results
- All 5 QA steps passed
- 2 bugs found and fixed

### Ready for human review

Next Steps