Skip to content

[design] Two-level work model — the Lead owns epics (direction), subordinates own tasks (execution) #330

Description

@serge-ivo

The model, from the owner (2026-08-07)

The leader coder owns kind of, like, epics (general direction) for each agent and remembers
that — those should be on the board. Each coder agent operates on task level.

Two levels, split by who owns what:

Lead Subordinate
Owns epics — durable direction per repo tasks — units of execution
Board holds "FWS: finish the voice port" "fix #36", "tree is dirty", "PR #153 needs review"
Acts via delegate_goal its own Pilot + engine

This is the revisit #150 explicitly left open. That ticket shipped tickets as flat, saying so
in its own words:

The Ticket (three properties — flat, no epics for now)… Deliberately no parent/epic hierarchy
for now (keep it simple — revisit only if a real need appears).

The need has appeared, from the person running four coders daily.

Why this does not contradict #322

#322 decided responsibility sits with the subordinate — "he drives the terminal", and that a
policy violation is a board item on the subordinate, not the Lead.

That still holds. The two are different levels, not competing owners:

  • Direction is the Lead's and is durable — it survives across runs, sessions and days. That is
    what makes it worth remembering rather than re-stating every conversation.
  • Execution is the subordinate's, including anything a policy raises. Nothing moves onto the
    Lead's board that a human would go to the subordinate to fix.

The distinction is the same one #322 draws between a policy and a goal, one level up: an epic is
standing intent; a task is a discrete unit of work; a policy is an invariant. All three are
durable, which is precisely why none of them should live only in a chat transcript.

What it fixes

Today the Lead's memory of direction is the conversation. Ask it "what should FWS be working on?"
and the honest answer is whatever it can reconstruct from subordinate_status — recent runs and
board items — which is history, not intent. Direction that exists only in a chat is lost the moment
the thread rolls over, and re-stated by the user every session. That is the same pattern as
preference:response_style living in memory before Behaviour existed (#226): a durable thing with
no proper home, kept wherever it happened to land.

It also gives delegation a reason. Right now every delegate_goal is free-standing. With epics, a
run can be attributed to the direction it serves — which is what makes progress reportable
(#310's stats become "movement against an epic" rather than "runs per day").

Design questions worth settling before building

  1. Is an epic a board item, or its own thing? The board already exists on both sides and Agent work as first-class Tickets — granular, with reasoning + per-ticket conversation #150's
    ticket shape is flat by design. Adding a parent to tickets is the smaller change; a separate
    epic model is cleaner but duplicates lifecycle.
  2. One epic per subordinate, or many? "General direction for each agent" reads as one active
    epic per repo, which is far simpler than a backlog and matches how the Lead is actually used.
  3. Does a delegated run link back to its epic? Strongly suggest yes — otherwise the Lead can
    state direction but still cannot say whether anything moved toward it.
  4. Who closes an epic? A subordinate finishing a task cannot know the epic is done. This is
    probably a human decision, or the Lead's on explicit review — not automatic.
  5. How does it reach the model? Injected as context on the Lead the way settings and behaviour
    are, derived from the board rather than restated in prose — the Prompt-drift check — three agents in two days told a story about themselves their capabilities contradicted #315 lesson.

Related

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions