You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+42Lines changed: 42 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -47,6 +47,48 @@ All state — scheduling, iteration history, lessons learned, current priorities
47
47
48
48
**You stay in control.** Each program gets its own long-running branch (`autoloop/<program-name>`) that you can merge whenever you're ready. You can provide feedback or steer the direction at any time by commenting on the program's issue or editing the state file on the memory branch.
49
49
50
+
### Architecture
51
+
52
+
The diagram below shows what happens during a single Autoloop run — how the scheduler picks a program, how the agent proposes and evaluates a change, and how state is persisted across the program issue, the `memory/autoloop` branch, and the program's draft PR.
A5a -->|CI green| A5c["Step 5c: Accept<br/>update state, post to issue"]
69
+
A5a -->|CI red| A5b["Step 5b: Fix loop<br/>(up to 5 attempts)"]
70
+
A5b -->|fixed| A5a
71
+
A5b -->|exhausted| PAUSE["Pause program"]
72
+
end
73
+
74
+
subgraph Safe["Safe-outputs step"]
75
+
A5a -->|patch artifact| SO["Apply patch to remote branch<br/>Create/update PR<br/>Post comments to issue"]
76
+
end
77
+
78
+
subgraph Persist["Persistence"]
79
+
A5c -->|writes| SF
80
+
REJ -->|writes| SF
81
+
SO -->|pushes| BR["autoloop/{name} branch"]
82
+
SO -->|creates/updates| PR["Draft PR"]
83
+
SO -->|comments on| ISS["Program issue<br/>[Autoloop: {name}]"]
84
+
end
85
+
86
+
subgraph Support["Supporting workflows"]
87
+
EV["Evergreen (every 5m)"] -->|fixes CI / merges main| PR
88
+
CI["CI workflow"] -->|runs on push| BR
89
+
end
90
+
```
91
+
50
92
### Scheduling
51
93
52
94
The workflow runs on a fixed schedule (every 6 hours by default) and runs **one program per trigger**. Each run, it picks the most-overdue program — so if you have 5 programs, they take turns rather than all running at once. Programs can set their own `schedule:` in their frontmatter (e.g. `every 1h`, `daily`, `weekly`), but they still only run when the workflow fires and it's their turn. To run more programs more often, you can increase the workflow's trigger frequency.
0 commit comments