{"slug": "lever-feedback-loops-for-coding-agents", "title": "lever: Feedback Loops for Coding Agents", "summary": "GitHub released lever, a Copilot plugin that installs via `copilot plugin marketplace add github/lever` and gives coding agents a measurable feedback loop before they iterate. The plugin's `loop` verb returns a Loop Card stating the metric, how to measure it, how noisy it is and what counts as a win, without pushing, filing or merging anything; GitHub said the workflow was mined from its own engineers' sessions, including CI speedups, a five-day crate split run from three terminals and weeks of unattended delivery. Other verbs cover parallel experiment arms against a control, multi-model blind PR review, PR shepherding, and an `autonomy` dial from L0 to L5 that sets who can merge.", "body_md": "**Feedback loops for coding agents.** A Copilot plugin.\n\n```\ncopilot plugin marketplace add github/lever\ncopilot plugin install lever@lever\n```\n\nIn the Copilot app it's **Customize → Plugins → Add marketplace**, then `github/lever`.\n\nStart a new session and try one that only reads:\n\n```\n/lever loop our test suite feels slow. just the card, don't change anything\n```\n\nYou get a Loop Card back: the metric, how to measure it, how noisy it is, and what counts as a win. Nothing gets pushed, filed or merged.\n\nAgents get really good once they can check their own work. Give one a number, a way to measure it and a bar for \"better\", and it'll grind on that for hours without you. Without that, you're the loop: pasting screenshots, eyeballing scroll jank, hitting rerun on CI at midnight.\n\nSetting up the loop is the hard part. What do you measure? How noisy is it? What's a real win and what's a lucky run? When do you stop? Most people skip it, which is fair, because it's annoying. lever asks you those questions, writes the answers down, and then lets agents iterate against it.\n\nIt comes from how some of the most AI-forward engineers at GitHub work day to day: CI speedups, a five-day crate split run from three terminals, weeks of [unattended delivery](https://gist.github.com/EvanBoyle/8c1a97f682d92dab8c09d0e1ea73f4a0), and the automations that took over the chores. We mined our own sessions for what kept working, then put most of the effort into making it one command. Same workflow, no PhD required.\n\nMore in the **[examples gallery](https://github.com/github/lever/blob/main/docs/examples.md)**: experiment arms, a brief, the three-terminal refactor, the PR shepherd, cross-model review, an automation, and the verbs that tune lever to you.\n\n## Copy-pasteable examples\n\n```\n/lever our CI is slow and I'm tired of hitting rerun\n/lever loop the editor feels janky when I scroll big files\n/lever arms try the 6 ideas on the card\n/lever brief add offline mode to the editor. ship it by tomorrow\n/lever refactor src/core is 400k lines. cut it in half\n/lever shepherd keep my stack green till it lands\n/lever review this PR\n/lever automate make the stack shepherd an automation for this repo\n/lever mirror last 30 days\n/lever steer push immediately, then verify\n/lever autonomy agents can merge docs PRs in this repo, nothing else\n/lever <what's bugging you>      not sure? describe it. lever picks the verb.\n\nBUILD   make something new\n  brief <ask>                    turn ~20 words into a brief an agent can run unattended\n  deliver [brief|issues]         run lanes in parallel and land the work\n  refactor <scope> <goal>        huge mechanical change: producer, packager, shepherd\n  backlog                        keep enough ready issues in the pool\n  shepherd [pr|stack]            keep PRs green until they land\n  land [prs]                     merge plan for a stack or a batch\n  status                         progress you never have to ask for\n\nLOOP    make something measurably better\n  loop <problem>                 find the feedback loop first: a Loop Card\n  arms [ideas]                   one agent per idea, against a control\n  review [pr|plan]               several models, blind; only agreed findings\n\nRUN     make it happen without you\n  automate <task>                turn a chore into a paused Copilot Automation\n  health                         why did it stall? one fix, or \"no change\"\n\nYOU     tune lever to how you work\n  mirror [30d]                   a scorecard of how you prompt, from your sessions\n  steer <correction>             say it once, never again\n  autonomy [L0-L5|<words>]       who merges. see or set your dial\n  spend [standard|high|max]      how much model to throw at it\n  setup                          first run: set your dials\n  help [verb]                    this list, or one verb in detail\n```\n\nEach verb is a skill in [`skills/`](https://github.com/github/lever/blob/main/skills). The `/` menu shows only `/lever`. Skills that only read and advise, like `loop`, can still load on their own when your ask fits. Anything that pushes, files, opens PRs or schedules runs waits for `/lever <verb>` or an explicit ask.\n\n- **[Autonomy](https://github.com/github/lever/blob/main/docs/autonomy.md)** , L0 to L5: who merges. L0 only proposes. L2 gets PRs green and you merge. L5 lands, releases and watches. It's your setting, saved in`~/.copilot/lever.yml` , and your repo's branch protection still wins. Start at L2 and turn it up as you trust it.\n- **[Spend](https://github.com/github/lever/blob/main/docs/spend.md)** ,`standard` ·`high` ·`max` : model tier, parallel lanes, review depth and how often things run. A repo can cap it in`.github/lever.yml` .\n\n`/lever setup` asks three questions and writes both ([example](https://github.com/github/lever/blob/main/config/personal.example.yml)). For a team, copy [`config/autonomy.example.yml`](https://github.com/github/lever/blob/main/config/autonomy.example.yml) to `.github/lever.yml`.\n\nWork lever starts is tracked as an issue assigned to you with the [`lever` label](https://github.com/github/lever/blob/main/docs/tracking.md), so `/lever status` can list everything in flight, needs-you first.\n\n**Per repo**, so the Copilot coding agent in the cloud gets the skills too:\n\n```\nmkdir -p .github/skills\ncp -r path/to/lever/skills/* .github/skills/\ncp -r path/to/lever/{docs,templates,config,automations} .github/\n```\n\nSkills link to `../../docs/...`, so those four folders have to sit next to `skills/`.\n\n**Hacking on lever:** clone it and run `copilot plugin marketplace add ./lever`, then `copilot plugin install lever@lever`. It loads straight from your checkout, so edits show up in your next session.\n\n**Automations:** the recipes in [`automations/`](https://github.com/github/lever/blob/main/automations) install through the GitHub MCP server with `/lever automate`. Each one starts paused, dry-runs on past events, and only then gets turned on. The Copilot app has the automation tools built in; in Copilot CLI, start with `copilot --enable-all-github-mcp-tools`.\n\nThese skills fit how we work. Yours will be different. `/lever mirror` reads your own session history and shows you what you keep repeating, and `/lever steer` turns those repeated corrections into rules that stick. Fork it and bend it.\n\nEarly. Issues and PRs welcome.\n\nMIT. See [LICENSE](https://github.com/github/lever/blob/main/LICENSE).", "url": "https://wpnews.pro/news/lever-feedback-loops-for-coding-agents", "canonical_source": "https://github.com/github/lever", "published_at": "2026-10-28 20:29:50+00:00", "updated_at": "2026-10-28 20:43:05.061313+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "developer-tools", "ai-products"], "entities": ["GitHub", "lever", "Copilot", "Copilot Automation", "EvanBoyle"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/lever-feedback-loops-for-coding-agents", "markdown": "https://wpnews.pro/news/lever-feedback-loops-for-coding-agents.md", "text": "https://wpnews.pro/news/lever-feedback-loops-for-coding-agents.txt", "jsonld": "https://wpnews.pro/news/lever-feedback-loops-for-coding-agents.jsonld"}}