made by droid
Inspired by Matt Pocock's Ralph loop
A general-purpose autonomous task execution system. Create GitHub Issues, run the loop, get PRs.
- You create GitHub Issues describing tasks
- Loop picks up issues and executes them
- PRs are created, issues are closed
The issue body IS the specification. It can be anything:
- Bug fixes
- Feature requests
- Full PRDs
- Content to create
- Refactoring tasks
Just create an issue - the workflow triggers automatically:
gh issue create --title "Add dark mode" --body "Add dark mode toggle to settings page..."Or trigger manually from the Actions tab with custom iterations.
Setup:
- Fork/clone this repo
- Add
FACTORY_API_KEYto repo secrets (Settings → Secrets → Actions) - Create issues - droid runs automatically
# Install droid
curl -fsSL https://get.factory.ai | sh
# Set API key
export FACTORY_API_KEY="your-key"
# Create an issue and run
gh issue create --title "Add dark mode" --body "Add dark mode toggle to settings page..."
./loop.sh 10Edit prompt.md to customize the workflow:
Add your project's test/build commands in Step 5:
npm run test
npm run buildEdit Step 2 to change how issues are prioritized:
Prioritize by labels:
1. `critical` - production issues
2. `high` - important features
3. `low` - nice to haveEdit Step 7 to match your commit conventions.
your-repo/
├── prompt.md # The workflow - edit this
├── loop.sh # Runs droid in a loop
└── progress.txt # Running log of completed work
./loop.sh 1./loop.sh 50nohup ./loop.sh 100 > loop.log 2>&1 &The better your issue, the better the output.
Good issue:
## What
Add user avatar upload to profile page
## Requirements
- Accept PNG/JPG under 2MB
- Crop to square
- Store in /avatars/{user_id}.jpg
- Update user.avatar_url in database
## Files to change
- src/pages/profile.tsx
- src/api/upload.ts
- src/db/users.tsToo vague:
Add avatars