Operating Report · London · Est. MMXXVI31 JUL 2026

Lps

The site runs on loops, not one-off scripts. An inner loop keeps a surface fresh; the outer loop steps back and proposes what to change next. The agent runs the inner work; a human stays on the outer rail, approving every change. This page is the control panel: cadence, cost, and the stopping rule for each one.

running loops

inner loop

shipping-log loop

running

Derives the shipping log from the public GitHub events API and records its own inference spend. Runs with or without an API key.

surface
/loops · latest output
cadence
daily · 06:00 UTC
gate
deterministic · auto-commit
runs
1
last run
2026-07-22
spend
$0.0000

stopping rule quiet day posts "quiet day"; it never fabricates activity

latest output

Shipping log for the 7 days to 2026-07-31, derived from the public GitHub events API. 114 commits across 5 repos.

  • elliottask: 30 commits. made public. "Update README.md" (08b1f69), "Update README.md" (cbb48c7), "Let the hover snapshot be reached and clicked" (4d526e3) and 27 more
  • boulot-os: 30 commits. "The + opens a menu instead of unrolling into three of itself" (e4fd191), "One +, and it lives with the tabs" (169a896), "Outreach: the case where there is no job to apply for" (f9bd505) and 27 more
  • impactlab: 29 commits. "Log decision 015: Week fragments are borderless (team call)" (da62a6e), "Week: newest fragments first, remove per-item borders" (6c6299a), "Week: newest-first, staggered drift-in, gradient CTA dissolving into a scrim" (048eae0) and 26 more
  • elliot-os: 24 commits. "Say what the tutor refuses to do, and where crux came from" (a00f001), "Revert "Give the loop a fading tail"" (460953b), "Give the loop a fading tail" (1f7cefd) and 21 more
  • homebuyer-mcp: 1 commit. "Update README.md" (fa9911f)
outer loop

improvement loop

armed

Reads Elliot's real GitHub activity, Medium writing, and the site's current state, scores its own proposal against a rubric, and only then proposes one employer-facing change as a PR. Its first run's proposal is below, accepted and shipped.

surface
PR → human review
cadence
weekly · Thu 06:00 UTC (armed; manual until enabled)
gate
human approval · PR, never auto-merged
runs
1
last run
2026-07-22
spend
$0.0000

stopping rule proposes at most one change per run, and nothing when nothing is worth doing

proposals
medium2026-07-22accepted
Link new writing: The Loop Was Never the Hard Part

Post "The Loop Was Never the Hard Part" (Mon, 13 Jul 2026) isn't linked anywhere on the site. https://medium.com/@elliotJL/the-loop-was-never-the-hard-part-5bdd4352acab

eval: pass · 1.00 grounded in a real source not cosmetic-only has a substantive rationaledeterministic

→ shipped: Live writing feed added to /built, pulled from the Medium feed at build.

open commitments

What the loops have not done yet. Kept short on purpose: shipped work belongs in the changelog, where it comes with a commit rather than a promise.

how the outer loop works

Every cycle it reads real material (Elliot's public GitHub activity, his Medium writing, and the site's own current state) and proposes the single most useful change to make the site more compelling to employers hiring AI product engineers. It never invents activity; it surfaces what he actually did and how to frame it. The proposal arrives as a pull request. Merging it is the accept; closing it is the reject. Both are visible in the changelog.

runs dormant by default: no schedule, no spend, until an API key is set and the workflow enabled. code: scripts/agent-improve.mjs.