Repository issue thread assistant with an Agent Orchestrator style YAML config.
Go to file
existedinnettw eb066aa914
feat: add github/webhook-forward issue source (#13)
* feat: add github webhook-forward event source for #12

Add a channel-based GitHub issue source so long-running sessions can react to issue and issue_comment webhooks without polling. Keep --once on polling so backlog reconciliation still works and cover the new config/runtime path with tests.
2026-04-08 14:42:08 +08:00
.github/workflows chore: adjust notification example and ci triggers 2026-04-05 16:38:20 +08:00
.vscode feat: Add minimal GitHub repo configuration and issue assistant setup 2026-04-04 22:12:03 +08:00
bin feat: add github/webhook-forward issue source (#13) 2026-04-08 14:42:08 +08:00
docs feat: 1st commit 2026-04-04 18:52:01 +08:00
examples feat: add github/webhook-forward issue source (#13) 2026-04-08 14:42:08 +08:00
lib feat: add github/webhook-forward issue source (#13) 2026-04-08 14:42:08 +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 github/webhook-forward issue source (#13) 2026-04-08 14:42:08 +08:00
tool feat: add Gherkin test validation and enforce doc-comment format 2026-04-04 20:17:05 +08:00
.gitignore fix: init-config command not shown in help 2026-04-05 17:40:24 +08:00
AGENTS.md feat: add prefix, postfix to distinguish human and bot comment 2026-04-05 00:00:41 +08:00
CHANGELOG.md feat: 1st commit 2026-04-04 18:52:01 +08:00
README.md feat: add github/webhook-forward issue source (#13) 2026-04-08 14:42:08 +08:00
analysis_options.yaml feat: 1st commit 2026-04-04 18:52:01 +08:00
build.yaml feat: add `init-config` option to gen initial config file 2026-04-05 02:28:11 +08:00
lefthook.yml feat: Add minimal GitHub repo configuration and issue assistant setup 2026-04-04 22:12:03 +08:00
pubspec.yaml build(deps): add dart_eval with compatible json codegen 2026-04-05 17:48:26 +08:00
skills-lock.json chore: add skills 2026-04-05 16:29:44 +08:00

README.md

code_work_spawner

Repository issue thread assistant with an Agent Orchestrator style YAML config.

It consumes issue tracker events for configured GitHub or Gitea repositories,
reads issue threads, and uses CLI responders such as codex, opencode, or
copilot-cli to decide when to reply. It supports
multi-repo config, responder fallback chains, and optional Discord webhook and
desktop notifications.

Highlights

  • Consume GitHub and Gitea issue events across multiple repositories
  • Trigger replies from mentions or meaningful thread updates
  • Run planning and bug-verification flows in isolated worktrees
  • Send optional Discord or desktop notifications for assistant events

Requirements

  • Dart SDK
  • gh and/or tea 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 and use
examples/README.md plus
examples/simple-github.yaml as the reference.

Generate a starter config:

dart run bin/code_work_spawner.dart init-config
# Write it to a file:
dart run bin/code_work_spawner.dart init-config --output agent-orchestrator.yaml
# Overwrite an existing file:
dart run bin/code_work_spawner.dart init-config --output agent-orchestrator.yaml --force

Run

dart run build_runner build --delete-conflicting-outputs

Single event-source reconciliation cycle:

dart run bin/code_work_spawner.dart --once

Long-running tracker runtime:

dart run bin/code_work_spawner.dart

Override tracker CLI 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 \
  --tea-command /usr/bin/tea

Testing

dart run tool/validate_gherkin_test_format.dart
dart analyze
dart test

ref

agent-orchestrator