CodeAFManagers

Managers

You stop being the router between agents.

Manage outcomes, not agents. A manager is an agent whose job is other agents.
  • a lead who splits a feature three ways
  • a maintainer who keeps the build green
  • a triage lead for new bugs

Manage outcomes, not agents. A manager is a conversation whose job is the rest of its team: you tell it the goal, and it hands out the work, tracks each member and tells you where things stand. Its team can hold other managers, so the layer stacks into an org chart as deep as the work.

Try it in CodeAF

Where

On the teams page (Alt+2).

Press
  1. Shift+M.
  2. Tell the new manager the outcome you want.
You see

The box reads to ◆ shop-api manager. The manager hands the work to the team's members and reports back. If your keys still move around the page, Esc puts them back in the box.

What a manager does

A manager reads each member's state and conversation, sends notes and directives, stops a turn, and starts new members with a handle and a brief (◆ started @notes · its tab is on the strip). A directive starts an idle member; a note waits. When a member's turn ends it tells the manager finished or failed, which wakes the manager, so it reports back unasked.

Managers manage managers

A manager can start a sub-team, run by a new manager conversation that holds two roles at once. Looking down, it is a manager with every verb above. Looking up, it is a member of the team that started it: it takes that manager's directives, reports to it, and its own finished wakes it. The top works the same way: a global manager over All teams has your top-level managers as its members. Every layer has one shape, so a chart of any depth runs on the same rules.

Down, up and sideways

Enter sends an order down and a report climbs back up; the next order has one lead post sideways to another. Keys: Have @alphalead start counter in alpha to count the test functions in tests/test_store.py.EnterHave @alphalead ask its teammate @betalead, by post, how many files are in tests/.Enter

Orders go one level down. A manager directs its own members, and a sub-team's manager is one of them; that sub-team's members are not. A directive to one is refused: orders go one level down: it takes them from the manager of "alpha", not from you. Nothing was sent. Reading them is still allowed.

Reports and questions go one level up, to each conversation's own manager, which acts, answers, or passes them on as a decision packet.

Posts go sideways. Teammates post to each other by handle, and two managers under one parent are teammates there, so sibling leads trade notes directly. A post wakes nobody.

One level at a time keeps a big org sane: each conversation takes orders from one manager, and each manager holds only its direct reports in mind.

Traffic and questions

Every message is a line in the team's Traffic (Alt+L): ◆ → @notes started… done · 2 msgs. A start spends money, so on ◇ asks (Alt+A) it waits on a card, ◆ manager wants to start @platform; on the default ◇ YOLO it just starts. Permission prompts never go to a manager: they come to you.

Things to build

  • A review line: a manager over a builder and a reviewer, and nothing merges into main until the reviewer says pass. Review every change
  • A software company: a global manager over product, backend and qa managers, set going by one message. Build a software company
  • A status desk: ask the global manager for one line per team, and it collects each line from that team's own manager.
  • A relay between teams: a standing rule at the global manager: when backend reports done it hands docs the write-up, then qa the test, and you hear once. Connect teams
  • Sibling leads: two sub-team managers under one parent that settle a handoff between themselves by post, while the parent keeps directing both.

Go further

Your org chart: managers that hire managers.

Coming soon: describe the org you want and CodeAF builds it: teams, managers, budgets, standing orders.