flowchart TD
subgraph "Pre-step"
S[autoloop_scheduler.py] -->|reads| PD[".autoloop/programs/{name}/program.md"]
S -->|reads| SF[("memory/autoloop branch<br/>{name}.md state file")]
S -->|writes| AJ["/tmp/gh-aw/autoloop.json"]
end
subgraph "Agent Step"
AJ -->|selected program| A1["Step 1-2: Read program,<br/>state file, target files,<br/>issue comments"]
A1 --> A3["Step 3: Checkout autoloop/{name}<br/>fast-forward to main"]
A3 --> A4["Step 4: Propose change,<br/>run evaluation command"]
A4 -->|metric improved| A5a["Step 5a: Commit → push<br/>via create_pull_request /<br/>push_to_pull_request_branch"]
A4 -->|no improvement| REJ["Reject: update state,<br/>no push"]
A5a -->|CI green| A5c["Step 5c: Accept<br/>update state, post to issue"]
A5a -->|CI red| A5b["Step 5b: Fix loop<br/>(up to 5 attempts)"]
A5b -->|fixed| A5a
A5b -->|exhausted| PAUSE["Pause program"]
end
subgraph "Safe Outputs Step"
A5a -->|patch artifact| SO["Apply patch to remote branch<br/>Create/update PR<br/>Post comments to issue"]
end
subgraph "Persistence"
A5c -->|writes| SF
REJ -->|writes| SF
SO -->|pushes| BR["autoloop/{name} branch"]
SO -->|creates/updates| PR["Draft PR"]
SO -->|comments on| ISS["Program issue<br/>[Autoloop: {name}]"]
end
subgraph "Supporting"
EV["Evergreen (every 5m)"] -->|fixes CI / merges main| PR
CI["CI workflow"] -->|runs on push| BR
end
Add a Mermaid diagram to the README showing the autoloop flow. Something like:
flowchart TD subgraph "Pre-step" S[autoloop_scheduler.py] -->|reads| PD[".autoloop/programs/{name}/program.md"] S -->|reads| SF[("memory/autoloop branch<br/>{name}.md state file")] S -->|writes| AJ["/tmp/gh-aw/autoloop.json"] end subgraph "Agent Step" AJ -->|selected program| A1["Step 1-2: Read program,<br/>state file, target files,<br/>issue comments"] A1 --> A3["Step 3: Checkout autoloop/{name}<br/>fast-forward to main"] A3 --> A4["Step 4: Propose change,<br/>run evaluation command"] A4 -->|metric improved| A5a["Step 5a: Commit → push<br/>via create_pull_request /<br/>push_to_pull_request_branch"] A4 -->|no improvement| REJ["Reject: update state,<br/>no push"] A5a -->|CI green| A5c["Step 5c: Accept<br/>update state, post to issue"] A5a -->|CI red| A5b["Step 5b: Fix loop<br/>(up to 5 attempts)"] A5b -->|fixed| A5a A5b -->|exhausted| PAUSE["Pause program"] end subgraph "Safe Outputs Step" A5a -->|patch artifact| SO["Apply patch to remote branch<br/>Create/update PR<br/>Post comments to issue"] end subgraph "Persistence" A5c -->|writes| SF REJ -->|writes| SF SO -->|pushes| BR["autoloop/{name} branch"] SO -->|creates/updates| PR["Draft PR"] SO -->|comments on| ISS["Program issue<br/>[Autoloop: {name}]"] end subgraph "Supporting" EV["Evergreen (every 5m)"] -->|fixes CI / merges main| PR CI["CI workflow"] -->|runs on push| BR endThe diagram should cover: