Skip to content

Autonomous leadership

Until Phase 5, autonomy was built for the team but not for leadership: cron jobs required a role from the org chart, and the CEO is not one. The result: the CEO only worked when the owner opened a conversation with it. The company moved when someone pushed it.

In the list of destinations for a cron job, the first one is CEO (leadership). Its puesto_codigo is ceo, a value that deliberately does not exist in organtia.puestos: it has no profile, no manager and no role budget. The shift is handled by the CEO’s agent, in its own conversation.

The foreign key that blocked this was removed in migration 035. Integrity is not lost: the cron gate validates the destination (org chart or CEO) and the drain checks that the role exists before launching the shift.

It does not wait for instructions: it leads. Its prompt tells it to do this, in this order:

  1. entregas_de_mi_equipo — what came back from what was assigned and whether each delivery was accepted as verified.
  2. resumen_estado_negocio — objectives, plans, decisions and requests waiting.
  3. Decide: what to assign today, to whom, what to check first. And record it with delegar_encargo, encargar_en_equipo or registrar_decision.
  4. If there is nothing to do, say so in one line. Assigning for the sake of it burns budget and moves nothing.

First real run, with the company empty:

There are no deliveries, objectives, plan or pending requests; sales at zero and no rates or channels set up. The only thing alive is the team: technical direction and internal audit, with no work assigned. My suggestion is that you define my mission and objectives and that we set up rates and an acquisition channel. Shall I start there?

It read what was there, did not invent work and asked for what it was missing. That is the behaviour we were after.

The CEO has no row in puestos, so presupuesto_agotado() did not cover it: a daily routine could spend without brake. There is now a cap of its own, in CEO_PRESUPUESTO_TOKENS_MES (10 million by default), which the drain checks before launching the shift. If it runs out, the cron job does not run and leaves the reason written in the queue and in the cron job.

A message that dies does not block the queue

Section titled “A message that dies does not block the queue”

tomado_en was written and nobody read it. Recreating the container with a shift in progress left that message en_curso for ever and the session never moved again: a cron job seemed dead without saying anything. Now the drain rescues anything taken more than one shift’s time limit ago (two hours) and returns it to pendiente.

The mechanism is proven with the company empty, and for that very reason the CEO can only ask you to fill it in. A leadership shift with no strategy and no objectives has nothing to aim at: autonomy turns into pointless activity, which is worse than not having it. The order is: strategy, objectives, and then the routine.