Repository issue thread assistant with an Agent Orchestrator style YAML config.
Go to file
insleker 42b89719fd feat: Add minimal GitHub repo configuration and issue assistant setup
fix: Export workspace manager in code work spawner
feat: Enhance CLI responder to handle JSONL events
feat: Implement job status enumeration in database
feat: Add logging capabilities to IssueAssistantApp
2026-04-04 22:12:03 +08:00
.github/workflows feat: Add minimal GitHub repo configuration and issue assistant setup 2026-04-04 22:12:03 +08:00
.vscode feat: Add minimal GitHub repo configuration and issue assistant setup 2026-04-04 22:12:03 +08:00
bin feat: Add minimal GitHub repo configuration and issue assistant setup 2026-04-04 22:12:03 +08:00
docs feat: 1st commit 2026-04-04 18:52:01 +08:00
examples feat: Add minimal GitHub repo configuration and issue assistant setup 2026-04-04 22:12:03 +08:00
lib feat: Add minimal GitHub repo configuration and issue assistant setup 2026-04-04 22:12:03 +08:00
skills/dart-gherkin-tests feat: add Gherkin test validation and enforce doc-comment format 2026-04-04 20:17:05 +08:00
test feat: Add minimal GitHub repo configuration and issue assistant setup 2026-04-04 22:12:03 +08:00
tool feat: add Gherkin test validation and enforce doc-comment format 2026-04-04 20:17:05 +08:00
.gitignore feat: Add minimal GitHub repo configuration and issue assistant setup 2026-04-04 22:12:03 +08:00
AGENTS.md feat: add Gherkin test validation and enforce doc-comment format 2026-04-04 20:17:05 +08:00
CHANGELOG.md feat: 1st commit 2026-04-04 18:52:01 +08:00
README.md feat: Add minimal GitHub repo configuration and issue assistant setup 2026-04-04 22:12:03 +08:00
analysis_options.yaml feat: 1st commit 2026-04-04 18:52:01 +08:00
lefthook.yml feat: Add minimal GitHub repo configuration and issue assistant setup 2026-04-04 22:12:03 +08:00
pubspec.yaml feat: Add minimal GitHub repo configuration and issue assistant setup 2026-04-04 22:12:03 +08:00
skills-lock.json feat: add Gherkin test validation and enforce doc-comment format 2026-04-04 20:17:05 +08:00

README.md

code_work_spawner

GitHub issue thread assistant with Agent Orchestrator style config.

The app polls configured GitHub repositories with gh, reads issue threads and
issue comments, and uses configured CLI responders such as codex,
opencode, or copilot-cli to reply when:

  • a user explicitly mentions the assistant
  • a new comment changes the thread enough that the responder decides a reply is
    useful

It supports multi-repo configuration, responder fallback chains.

Features

  • Agent Orchestrator style YAML config with defaults and projects
  • Multiple repositories in one process
  • Comment-triggered issue assistance
  • Planning / architecture guidance in issue threads
  • Bug verification flows in isolated temporary git worktrees
  • CLI-based responder fallback chain
  • Durable state with drift + SQLite
  • BDD-style tests using package:test with Given / When / Then wording

Requirements

  • Dart SDK 3.11+
  • gh CLI authenticated for the target repositories
  • Local checkouts for configured repositories
  • Optional local responder CLIs such as codex, opencode, or copilot-cli

Config

Create a local agent-orchestrator.yaml:

defaults:
  issueAssistant:
    enabled: true
    pollInterval: 5m
    mentionTriggers: ["@helper", "@codex"]
    commentTag: code-work-spawner
    prompt: |
      You are helping on {{repo}}.
      Trigger: {{trigger}}
      Thread:
      {{thread_json}}      
    responders:
      - id: codex
        command: codex
        args: ["exec", "--json"]
        timeout: 10m
      - id: opencode
        command: opencode
        timeout: 10m

projects:
  my-app:
    repo: owner/my-app
    path: ~/code/my-app
    defaultBranch: main
    sessionPrefix: app

Project entries can override issueAssistant fields when a repo needs a
different prompt, mention triggers, or responder chain.

For a more minimal Agent Orchestrator compatible subset, start from
examples/simple-github.yaml. This repo accepts
AO-style dataDir, worktreeDir, and core projects fields, and uses
worktreeDir for bug-verification worktrees.

Run

dart run build_runner build

Single poll cycle:

dart run bin/code_work_spawner.dart --once

Long-running poller:

dart run bin/code_work_spawner.dart

Override paths when needed:

dart run bin/code_work_spawner.dart \
  --config /path/to/agent-orchestrator.yaml \
  --db /path/to/state.sqlite3 \
  --gh-command /usr/bin/gh

Testing

dart run tool/validate_gherkin_test_format.dart
dart analyze
dart test

All Dart tests under test/ must follow the repo's Gherkin doc-comment format:

  • group(...) has a Feature doc block above it
  • test(...) has a Scenario doc block above it
  • runtime names stay plain, without Feature: or Scenario: prefixes
  • test bodies include Given / When / Then inline comments

ref

agent-orchestrator