Skip to content

Built-in Components

Rigger ships 22 built-in implementations across all 6 dimensions. All are usable from YAML config via their type name, or instantiated directly in Python.

Task Sources

Type Name Class Description
file_list FileListTaskSource Reads tasks from a JSON file (list of {id, description} objects)
json_stories JsonStoriesTaskSource Reads user stories in PRD format from a JSON file
linear LinearTaskSource Pulls tasks from a Linear project via API
atomic_issue AtomicIssueTaskSource Creates tasks from GitHub issues

Example YAML

task_source:
  type: file_list
  path: tasks.json

# Or with env var interpolation:
task_source:
  type: linear
  team_id: ${LINEAR_TEAM_ID}
  api_key: ${LINEAR_API_KEY}

Context Sources

Type Name Class Description
file_tree FileTreeContextSource Provides a directory listing of the project
agents_md AgentsMdContextSource Discovers and provisions AGENTS.md files
static_files StaticFilesContextSource Provisions specific files by path
mcp_capability McpCapabilityContextSource Provisions MCP server capability descriptions

Example YAML

context_sources:
  - type: file_tree
    root: src/
  - type: agents_md
  - type: static_files
    paths:
      - docs/architecture.md
      - docs/api.md

Verifiers

Type Name Class Description
test_suite TestSuiteVerifier Runs a test command and checks exit code
lint LintVerifier Runs a linter command and checks exit code
ci_status CiStatusVerifier Checks CI pipeline status via GitHub API
ratchet RatchetVerifier Ensures a metric never regresses below a threshold

Example YAML

verifiers:
  - type: test_suite
    command: ["python", "-m", "pytest", "--tb=short", "-q"]
  - type: lint
    command: ruff check .
  - type: ratchet
    metric: coverage
    threshold: 80.0

Constraints

Type Name Class Description
tool_allowlist ToolAllowlistConstraint Restricts agent to specific tools
branch_policy BranchPolicyConstraint Enforces branch naming and protects main branches

Example YAML

constraints:
  - type: tool_allowlist
    tools:
      - Read
      - Edit
      - Bash
  - type: branch_policy
    pattern: "feature/*"

State Stores

Type Name Class Description
json_file JsonFileStateStore Persists state to a JSON file at a custom path
harness_dir HarnessDirStateStore Persists state to .harness/state.json (default)

Example YAML

state_store:
  type: json_file
  path: .harness/state.json

Entropy Detectors

Type Name Class Description
shell_command ShellCommandEntropyDetector Runs a shell command and generates tasks from its output
doc_staleness DocStalenessEntropyDetector Detects documentation that has drifted from source code

Example YAML

entropy_detectors:
  - type: shell_command
    command: "git diff --stat HEAD~1"
  - type: doc_staleness
    paths:
      - docs/

Workspace Managers

Type Name Class Description
git_worktree GitWorktreeManager Branch-based isolation via git worktree
independent_dir IndependentDirManager Full project copy to temp directory
independent_branch IndependentBranchManager Branch-based isolation without worktrees

Example YAML

workspace:
  type: git_worktree

Backends

Type Name Class Description
claude_code ClaudeCodeBackend Wraps the Claude Agent SDK

Example YAML

backend:
  type: claude_code
  model: claude-sonnet-4-6
  setting_sources:
    - project

Plugin Discovery

Third-party components are discovered via importlib.metadata entry points. Register your implementation under the rigger.<protocol> group:

# pyproject.toml
[project.entry-points."rigger.task_source"]
my_source = "my_package:MyTaskSource"

Plugins take priority over built-ins (with a warning logged).