Skip to main content
Rocket Routine OSRocket Routine
EN
Sven sitzt am Schreibtisch, auf dem Laptop-Bildschirm leuchtet ein Haken neben Statuscode 200, waehrend ein zweiter Punkt grau und ungeprueft bleibt.

How Does One Role Know the Other Is Done? The Handoff as a Signal.

Role one writes the article, role two posts about it. For weeks that handoff ran on a quiet convention, one that held as long as someone remembered it. A signal is different: a state the second role can query itself, every time, whether or not anyone happens to be watching.

Sven O. Rimmelspacher

In short: Once two roles work together, the risk isn't the new task, it's the handoff between them. A convention that one person carries eventually breaks without anyone noticing. A signal the second role checks itself holds, because nobody has to remember it anymore.

How Does One Role Know the Other Is Done?

Role one writes the article. Role two posts about it, every Tuesday. For the Tuesday post to link to the article, role two needs to know: is the article live yet? For weeks, that question ran on a quiet convention: role two checked by hand whether the page was already there, and if not, just left the link out. It worked, every week, because someone remembered to check.

That exact kind of handoff is the real risk the moment one role becomes two. Not the new task itself, but the question of how the second role actually knows the first one is done.

A convention is not a signal

A convention lives in someone's head, or in a habit that's settled in. It works as long as someone remembers to check it. A signal is different: a state the second role can query itself, with no human standing in between. Not "ask me if it's done," but "check it yourself, every single time."

The difference sounds small until you lose it. A convention holds as long as the person carrying it stays attentive. It breaks exactly when that person is distracted, on vacation, or busy with something else, and nobody notices right away, because "mostly" it still lines up. That is why a quietly balanced handoff can stay invisible for so long: it works often enough that nobody looks closely.

A signal does not break that way, because there is nobody who has to stay attentive. It is either true or false, and the second role checks it fresh every time, whether or not anyone happens to be watching.

What makes a good signal

A signal a second role can actually rely on needs three properties.

First: the second role has to be able to query it itself, without waiting for a message from a human or from the first role. A ping is not a query. A ping can fail to arrive, get forgotten, land in the wrong channel. A query is something the second role can trigger itself, any time.

Second: the result has to be unambiguous, not "probably done" or "should be fine by now." That same ambiguity is what breaks a weekly review of a single role, when "good enough" was never translated into a number. For the article handoff, the query is about as simple as it gets: does the published article address return status code 200, or does it return an error? Two states, neither of them debatable.

Third: the query has to run every single time, not only when someone remembers. That was exactly the gap in the quiet convention. The knowledge of how to check was there. What was missing was the rule that this check runs without exception before every handoff, regardless of the day, the workload, or how much attention the role involved happens to have that week.

A convention holds as long as someone remembers it. A signal holds because nobody has to remember it anymore.

One illustrative example, not a claim about any real role: an invoicing role issues invoices, a collections role chases overdue ones. If the handoff runs on "the invoicing role mentions it when a deadline passes," it stays invisible until exactly the week with the most volume, when nobody mentions it. If it runs instead on "the collections role checks daily, on its own, which invoices are past their payment term and still unpaid," the handoff no longer depends on whether the first role happens to be thinking about it.

Company 0

For us, this was exactly the gap from the last issue: the role that writes and publishes the article, and the role that writes the social posts about it, had a handoff that was never defined as a signal. The social role would fetch the article address and check by hand whether the page was live yet, leave the link out if not, add it back later by hand. It worked, because someone closed the gap every single week.

The actual fix was small: "eyeball whether it feels right" became "fetch the address, and only add the link if the status code comes back 200." No new task, no new domain, just an existing, informal check that turned into a standing rule that runs every time, not only when someone remembers. The Tuesday post now gets its link either immediately, because the check finds it, or not at all in that run, never late by accident again.

What this means for you

If two roles work together on your side, don't ask first whether the handoff works. Ask how the second role actually knows. If the answer is a person, "she asks me," or a feeling, "it usually lines up," you have a convention, not a signal. And a convention holds right up until the one moment nobody happens to be looking.

The fix is rarely complicated. Usually one clearly stated query is enough: a status code, a field that's set or empty, a timestamp that's there or missing. The work isn't in building the check. It's in turning it into a standing rule instead of keeping it as an exception in someone's head. The same principle already sat behind picking your first routine: a rule that holds without exception beats an exception that eventually turns into a rule. That is the same idea behind Poka Yoke, just applied to the handoff between two roles instead of a single one.

The simplest path there: take the convention that is already running and say it literally. "She checks whether the page is live" becomes "she fetches the address and checks the status code." "He notices when a deadline passes" becomes "he checks daily which deadlines have already passed." Reinventing the check is rarely necessary. Taking it out of one person's head and turning it into a rule that runs every time, that is the actual work.

Frequently Asked Questions

What is the difference between a convention and a signal?

A convention lives in one person's head and only holds as long as that person remembers to check it. A signal is a state the second role can query itself, any time, without waiting on a human, and it gets checked every single time, not just sometimes.

How do I know whether my own handoff is a convention or a signal?

Ask how the second role actually knows the first one is done. If the answer is a person who mentions it, or a feeling that it usually lines up, that's a convention. If the second role can query the state itself, every time, that's a signal.

Does a good signal have to be technically complex?

No. Most signals are about as simple as it gets: a status code, a field that's set or empty, a timestamp that exists or doesn't. The work isn't in building the check. It's in turning an existing informal check into a standing rule with no exceptions.

What was the actual fix at Rocket Routine itself?

The social role checked by hand whether an article was live yet, and added the link back later if needed. The fix replaced that feeling with a fixed query: the article address's status code, checked before every handoff, without exception, not only when someone remembered.

Want to build this in your own company?

Rocket Routine OS is the operating system behind these articles, and it is not open yet. Join the waitlist and you hear first, get a fortnightly honest account of what is working and what is not, and move further up the list with every referral.

Join the waitlist

Want to understand the whole system?

The entire architecture of Rocket Routine OS as a PDF — 20 pages, freely available, no form required.

Download whitepaper (PDF)