llm-self-looplisted
Install: claude install-skill OutlineDriven/odin-claude-plugin
The job: turn workflows that need a human in the inner loop into workflows the LLM closes itself. The two halves are *removing the trigger gate* and *opening observability*.
## Surface the gate first
Before proposing changes, name the trigger gate explicitly:
- *What action requires a human right now?* (button click, screenshot inspection, terminal interaction, web-form submission)
- *What signal does the human provide that the LLM cannot get on its own?* (visual confirmation, copy-paste, secret value, eyeball verdict)
- *Where does the result go?* (chat memory, screenshot, mental note)
Most loops have one or two gates that, removed, collapse the cycle to seconds. Pick the smallest gate first.
## Structural fixes
### Web-UI trigger → CLI trigger
If the workflow is gated by clicking in a web app, find or build the equivalent CLI command. Webhooks, REST endpoints, `gh` / `aws` / `gcloud` CLI subcommands, internal `just` targets — anything programmatically invokable. The LLM can then loop without leaving its session.
### Stdout-only output → file-based output
If the workflow's result lives in chat memory or a screenshot, redirect to a file the LLM can read back: structured JSON dumps, markdown reports, append-only logs with addressable offsets. *Why:* file outputs survive compaction, support diff, and are inspectable by future sessions without replaying context.
### Dashboards → structured logs
If verification requires eyeballing a Grafana / Datadog dashboard, surface