Skip to content

Add autonomous build + deploy-autofix workflows - #12

Closed
EvieHwang wants to merge 3 commits into
mainfrom
claude/autonomous-build-workflows
Closed

EvieHwang wants to merge 3 commits into
mainfrom
claude/autonomous-build-workflows

Conversation

@EvieHwang

Copy link
Copy Markdown
Owner

Adds the wiring to let a merged spec build itself to a finished PR without a human in the loop — opt-in per feature, fenced, and with an explicit escalation channel.

What's here

  • .github/workflows/autonomous-build.yml — fires only when a spec: PR is merged and carries the autonomous-build label. Runs /build headlessly on Opus 4.8 to a green suite and opens a build: PR. The label is the opt-in: unlabeled spec merges do nothing, so autonomy is never the default.
  • .github/workflows/deploy-autofix.yml — on a failed deploy, hands a fresh agent flyctl + logs to diagnose and fix, opening a fix: deploy … PR (not a push to main). Enable after the build loop is proven; it's the riskiest piece and gets the tightest leash.
  • AUTONOMY.md — the contract: how it runs, the escalation rules, the fences, and the prerequisites.

The design decisions, made literal

  • Opt-in per feature via the autonomous-build label — small/confident work goes autonomous, novel/dangerous work stays in the loop.
  • Escalation = notification. Async there's no session watching, so a blocked run opens a build-blocked: / deploy-blocked: issue and stops rather than spinning or faking green.
  • Fences are permissions, not vibes. Read logs and push code, yes; set secrets or change access, never — those bounce back by design.

Before this can run (one-time, owner-only)

  1. Install the Claude GitHub app and add ANTHROPIC_API_KEY to repo secrets (repo admin).
  2. Confirm FLY_API_TOKEN is in repo secrets.
  3. Create the autonomous-build label.
  4. In deploy-autofix.yml, set workflows: ["…"] to your deploy workflow's name; uncomment the toolchain setup in autonomous-build.yml for your stack.

Out of scope

Auto-merge of any PR (every PR stays a human gate), and direct Fastmail notification (GitHub issues are the default channel; wiring Fastmail to the two labels is a later enhancement).

These are framework templates with project-specific values marked for fill-in. Review, then merge to land the pattern.

@EvieHwang EvieHwang closed this Jun 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant