EngineeringAgentsWorkflow

How a Good Harness Uses the Hours You Don't Work

3 min read
On this page6

The usual take: agents type faster than us. The interesting one: they don't need our hours. The repo exists 24/7; you attend to it ~8h a day. A good harness isn't a faster keyboard — it's a scheduler that fills the dead hours.


The repo runs longer than you

8h/day × 22 working days ≈ 176h of attention a month. The repo runs 720. Three quarters of the time your most expensive artifact does nothing — and idle isn't neutral: deps drift, tech debt stacks up, Friday's bug sits until Monday. A harness that only runs while you run inherits all of that.


Scheduled agents, non-colliding intervals

An agent preset with a scheduler — interval, goal, loop cap — on a remote machine, pointed at the project. One safety rule, same as everywhere in Spectral: one active agent per project. So the night is split into lanes that never overlap:

A day-and-night timeline: you work 09:00 to 17:00, then a remote machine runs three non-overlapping night lanes — refactor, ideas, bug hunt — ending at an 08:00 morning-review barrier
FIG.01 A day-and-night timeline: you work 09:00 to 17:00, then a remote machine runs three non-overlapping night lanes — refactor, ideas, bug hunt — ending at an 08:00 morning-review barrier
  • Refactor, 22:00–01:00 — mechanical refactors, always on a branch
  • Ideas, 01:30–04:30 — feature proposals as well-described tasks
  • Bug hunt, 05:00–07:30 — fixes on separate branches

Each lane finishes before the next starts, so no two agents touch the same files. Everything waits behind one barrier: your morning review.


What the lanes ship

Refactor = cheaper future sessions. Boring on purpose: honest file names, oversized files split, tree-like folders, dead code gone. Agents navigate by grep + structure, and cross-session memory works better when a fact lives in one place — so a 23:00 refactor makes every next session cheaper. Compound interest.

Ideas = tasks, not commits. The agent reads docs, issues, the code, and drafts features into the Ideas column of the project board: scope, touched files, done-criteria. Morning-you triages — promote, edit, drop.

Bug hunt = branches, never main. A flaky test at 05:00 becomes a fix on its own fix/* branch with a reviewer report attached. Morning: read the diff, rerun the tests, merge or kill. Isolated fixes mean a bad night costs minutes to undo, not a broken build.


The math

Agents work only when you don't:

Who worksScheduleHours/month
You8h × 22 working days176h
Weekday nights16h × 22 days+352h
Weekend nights16h × 8 days+128h

Your day leaves 16h — 2× your time, every working day. Add weekends and the night contributes 480h on top of your 176: 656h total, ~3.7× a solo month.

Stacked bar chart: 176 hours for a solo developer, 528 with weekday nights, 656 with every night — your hours in gray, agent hours in orange
FIG.02 Stacked bar chart: 176 hours for a solo developer, 528 with weekday nights, 656 with every night — your hours in gray, agent hours in orange

Agent-hour ≠ your-hour: agents are slow on judgment, fast on mechanics, and subagents run in parallel. With well-chosen queues and a real morning review, 2–3× more shippable work per month is realistic. The 352h already exist though — you're paying for them and getting nothing back.


Guardrails

Scheduled agency without guardrails is automated noise:

  1. Bounded jobs only — a described scope, never "improve the project"
  2. Own branches, never main — a night that can't break the build is a night you sleep through
  3. Nothing merges unread — every morning is a review barrier
  4. Non-colliding intervals — one agent per project, lanes serialized like waves
  5. Stop conditions — loop caps + explicit goals, so a stuck agent stops before sunrise

Takeaways

  1. 720h repo, 176h you. A good harness moves work into the difference.
  2. Lanes, not one big agent. Each gets its own interval, never colliding.
  3. The night ships branches and tasks, not merges. Refactors and fixes on separate branches; ideas into the Ideas column.
  4. Every morning is a barrier. Review, then let it run again. Trust is scheduled, not assumed.