A fully automated development pipeline that turns issues into merged pull
requests — no human intervention required. It scans for issues labeled
autonomous, dispatches a Dev Agent to implement the feature with tests
in an isolated worktree, and hands off to a Review Agent for code review
with optional E2E verification. The entire cycle runs unattended on a cron
schedule.
- Code hosts: GitHub and GitLab (gitlab.com or any standard self-managed instance) via pluggable provider seams — see GitLab support.
- Agent CLIs: Claude Code, Codex CLI, Kiro CLI, opencode, Cursor Agent,
Antigravity CLI (agy), and most CLIs with a
-p <prompt>non-interactive flag — see docs/agent-clis.md.
npx skills add zxkane/autonomous-dev-team| Skill | Description |
|---|---|
| autonomous-dev | TDD workflow with git worktree isolation, design canvas, test-first development, code review, and CI verification |
| autonomous-review | PR code review with checklist verification, merge conflict resolution, E2E testing, and auto-merge |
| autonomous-dispatcher | Issue scanner that dispatches dev and review agents on a cron schedule |
| autonomous-common | Shared workflow-enforcement hooks and agent-callable utility scripts |
| create-issue | Structured issue creation with templates, autonomous label guidance, and workspace change attachment |
Works with Claude Code, Cursor, Windsurf, Antigravity, Kiro CLI, and
40+ agents. After installing, follow
docs/installation.md for the post-install wiring
(symlinks, plugins, autonomous.conf, labels) — it includes a copy-paste
prompt that lets your AI agent drive the whole setup.
-
Clone and configure:
gh repo create my-project --template zxkane/autonomous-dev-team cd my-project cp scripts/autonomous.conf.example scripts/autonomous.conf # Edit autonomous.conf — see docs/installation.md Step 4 for every key.
-
Create the pipeline labels:
( source scripts/autonomous.conf && bash scripts/setup-labels.sh "$REPO" )
-
Schedule the dispatcher tick. Anything that can run a shell command on a cadence works:
Host When to use Tick command OpenClaw (recommended) Purpose-built skill runtime openclaw run skills/autonomous-dispatcher/SKILL.mdPlain cron Zero extra infra bash skills/autonomous-dispatcher/scripts/dispatcher-tick.shGitHub Actions schedule / any scheduled runtime Managed infra same tick script (or dispatcher-multi-tick.shfor multi-project)*/5 * * * * cd /path/to/project && bash skills/autonomous-dispatcher/scripts/dispatcher-tick.sh
The tick script is host-agnostic — it needs only
jq, a code-host credential, and a reachableautonomous.conf. The agent CLI is invoked by the wrapper the tick spawns, not by the tick itself. -
Create an issue with the
autonomouslabel and watch the pipeline work — the dispatcher spawns agents, tracks progress via labels, and merges the PR when review passes.
Issue (autonomous label)
│
▼
Dispatcher (cron tick) ──▶ Dev Agent ──────────▶ Review Agent
scan + dispatch worktree + TDD find PR + review
concurrency + retry implement + test optional E2E verify
open PR approve + merge
Issues progress through labels managed automatically by the agents:
autonomous → in-progress → pending-review → reviewing → approved (merged)
│
└─→ pending-dev (loop back if review fails)
With the no-auto-close label, the PR is approved but not auto-merged — the
repo owner is notified instead.
Every issue/code-host operation routes through pluggable provider seams
(ISSUE_PROVIDER / CODE_HOST): abstract verbs with per-provider leaves,
proven by a provider-parameterized conformance suite. The normative contract
lives in docs/pipeline/provider-spec.md.
| Component | Wrapper / entry | Skill | Details |
|---|---|---|---|
| Dev Agent | scripts/autonomous-dev.sh |
skills/autonomous-dev/SKILL.md |
worktree isolation, TDD, checkbox tracking, resume-after-feedback |
| Review Agent | scripts/autonomous-review.sh |
skills/autonomous-review/SKILL.md |
PR discovery, conflict rebase, bot reviewers, multi-agent verdicts, E2E, auto-merge |
| Dispatcher | scripts/dispatcher-tick.sh |
skills/autonomous-dispatcher/SKILL.md |
issue scanning, concurrency control, stale detection |
Multi-agent review (AGENT_REVIEW_AGENTS), external review bots
(REVIEW_BOTS), and per-CLI configuration are covered in
docs/agent-clis.md.
Both provider seams accept gitlab: issues and merge requests on gitlab.com
or any self-managed CE/EE instance whose API speaks standard PAT auth against
/api/v4.
# scripts/autonomous.conf
ISSUE_PROVIDER="gitlab"
CODE_HOST="gitlab"
GITLAB_HOST="gitlab.example.com" # default gitlab.com
GITLAB_TOKEN="glpat-…" # PAT / project / group token, scope `api`
GITLAB_PROJECT="group%2Fsubgroup%2Fproject" # URL-encoded namespace/name- Setup guide: docs/gitlab-setup.md — token creation, self-hosted host config, the auth model, and verification steps.
- Custom auth gateways (SSO-cookie instances, mTLS, forked transports):
supported out-of-tree via
GITLAB_TRANSPORT_HOOK— an operator-owned file that replaces the single HTTP primitive while the library keeps pagination, backoff, and fail-closed semantics. Contract in docs/pipeline/provider-spec.md §transport. - Capability differences vs GitHub (declared in
providers/chp-gitlab.caps, callers branch automatically): no external review bots (review_bots=0), no REST "request changes" object (findings post as comments + labels), auto-close fires only on merge to the default branch, and agent tokens are convention-contained (GitLab has no GitHub-App equivalent — see docs/security.md).
GitHub remains the default: an existing conf with no provider keys set behaves byte-identically.
Designed for private repositories and trusted environments. The pipeline
executes issue content as agent instructions — in a public repo that is a
prompt-injection surface. Read docs/security.md for
the risk model, per-environment recommendations, the mitigation checklist,
and the token posture per code host. Minimum for public repos: restrict who
can apply the autonomous label, and use no-auto-close so merges stay
manual.
Beyond autonomous mode, the same hooks enforce a TDD workflow for interactive coding-agent sessions:
Design Canvas → Worktree → Test Cases → Implement → Unit Tests
→ code-simplifier → commit → pr-review → push → CI → E2E
- Step-by-step workflow: CLAUDE.md
- Hook reference + state manager: skills/autonomous-common/hooks/README.md
- Cross-agent hook support (Kiro, Cursor, …): docs/cross-agent-hooks.md
| Topic | Where |
|---|---|
| Install + configure (agent-driven, step-by-step) | docs/installation.md |
| Agent CLIs: support matrix, per-CLI flags, multi-agent review | docs/agent-clis.md |
| GitLab setup (tokens, self-hosted, transport hook) | docs/gitlab-setup.md |
| GitHub App auth (bot identities, two-token split) | docs/github-app-setup.md |
| Security model + mitigations | docs/security.md |
| Pipeline overview (architecture, concurrency) | docs/autonomous-pipeline.md |
| Pipeline spec (state machine, invariants, flows) | docs/pipeline/ |
| Provider seams (ITP/CHP verbs, conformance, transport) | docs/pipeline/provider-spec.md |
| Hooks reference + state manager | skills/autonomous-common/hooks/README.md |
| CI workflow setup | docs/github-actions-setup.md |
| Interactive TDD workflow | CLAUDE.md |
This template is based on the Claude Code memory and hook system implementation from Openhands Infra.
MIT License