Skip to main content
Field Notesbryngtmsignalsplaysaudit-log

The First Hour, Four Classes

On Wednesday Chris described the hour with no owner: someone scans the overnight visitor list, checks the CRM, checks the trial, picks three or four, writes the follow-ups, and none of it is written down. Brad closed the field guide yesterday with the fourth class of signal. Hold the hour up against the legend and every check has a plate number. Written as Plays, the hour is four record lines, one per class, and the planning question Chris asked has an answer per class.

Title card: The First Hour, Four Classes. To the right, a clock face marked for one hour, with the minute hand at twelve and sixty minute ticks around the rim. The face is divided into four quadrants labelled with Roman numerals I to IV in monospace: I owned, II rented, III filed, IV everyone rents. Beneath the clock, four short record lines, one per quadrant: I, acct_3c07, trial then second seat in 7 days, ran, posted and task opened. II, acct_7d19, pricing then repeat in 7 days, ran, tagged and pages posted. III, acct_2210, closed-lost then pricing return after 8 months, held, approved and ran. IV, acct_3c07, hiring RevOps role 12 days, modifier, fired nothing alone. Footer: the hour does not disappear, it moves to the record. Illustrative.
tl;dr

On Wednesday Chris described the hour with no owner: someone scans the accounts that showed up overnight, checks the CRM for an owner or a lost deal, checks the trial, picks three or four, writes the follow-ups, and none of it is written down. Brad closed the field guide yesterday with the fourth class of signal. Hold the hour up against the legend and every check has a plate number. The overnight list is the class you rent. The CRM check is the class you filed. The trial check is the class you own. The tab the rep opens before writing is the class everyone rents. Written as Plays, the hour is four record lines, one per class, and the planning question Chris asked (what should the team stop doing by hand) has an answer per class.

On Wednesday Chris wrote about planning 2027 with the team you already have, and in the middle of it he described the first hour of the day on most growth teams. Someone opens the visitor identification tool and scans the accounts that showed up overnight. They check the CRM for an owner, an open deal, or a deal lost last year. They check whether anyone from the account is active in a trial. They pick three or four, write the follow-ups, and move on. What they did is not written down anywhere a colleague could find it, and tomorrow the hour happens again.

Brad spent four Thursdays building a legend for the signals that hour reads. Four classes, one plate each. The class you own: what people do inside your product, with their hands. The class you rent: who is on your site, resolved by somebody else's graph. The class you filed: what your own pipeline history says is about to happen. And yesterday, the class everyone rents: hiring, funding, tech installs, the company's weather, sold to you and to everyone who sells against you.

Hold Chris's hour up against Brad's legend and every check has a plate number. That is the whole piece.

The hour, relabelled

Take the checks in Chris's order. Every account below is anonymized and every value is illustrative.

The overnight visitor list is plate II, the class you rent. pricing → return → repeat (7d), resolved to a company by an identity vendor. The visits happened on your surface; the name attached to them did not. Good fidelity, a lease.

The CRM check is plate III, the class you filed. Owner, open deal, lost last year. Alone, a filing. Joined to the pricing visit it becomes closed-lost → pricing return (6mo+), a specimen. Yours on paper.

The trial check is plate I, the class you own. trial → second seat → both active (7d). Two people using the product inside a surface you run. Nobody can reprice it or sell it to a competitor. Highest fidelity in the legend.

The fourth check is the one Chris did not have to list, because everyone does it without noticing. Before writing, the rep opens a tab and looks the company up. Raised recently? Hiring into the team you sell to? Plate IV, the class everyone rents, read by hand at nine in the morning by you and by everyone who sells against you.

The fifth check, pick three or four and write the follow-ups, is not a class. It is the decision and the action, which is what a Play is: the same decision, written down before the morning instead of during it.

The hour, by class.

Select a check from the first hour. The panel shows the class it reads, the specimen by its parts, who owns the instrument, and the Play it becomes. Arrow keys move between checks.

Illustrative, not a benchmark. Check order is Chris's from Wednesday, paraphrased. Plate numbers and the ownership axis are Brad's from Signals: A Field Guide.

Figure 1. Chris's five checks, each labelled with the class it reads, the specimen by parts, and the Play it becomes (illustrative, not a benchmark).

Four Plays, one per class

Written as Plays, the hour is four sentences, each naming the signal by its parts, the rule, the mode, and where the result lands. Tuesday's piece covered why the mode column is a placement decision, not a brake; the reasons below use its test.

Plate I. When trial → second seat → both active (7d) fires on an account in profile, post the evidence to the growth channel and open a CRM task for the owner. Run mode: an owned signal, internal destinations, nothing goes to a person outside the company. Bryn's line: acct_3c07 · trial → second seat → both active (7d) · ran trial-expansion-route-v1 · posted, task opened.

Plate II. When pricing → return → repeat (7d) resolves to a company in profile, tag the account in the CRM and post the pages read. Run mode, and no outbound, because the vendor named a company and not a person. acct_7d19 · pricing → return → repeat (7d) · resolved to company · ran pricing-return-tag-v2 · tagged, pages posted.

Plate III. When closed-lost → pricing return (6mo+) fires, draft the reopen note with the original loss reason attached and hold the enrollment for the owner's click. Approve mode: it writes to somebody who once said no. acct_2210 · closed-lost (8mo) → pricing return · held reopen-note-v1 · approved by op_2 after 3h28m · ran.

Plate IV has no Play of its own. That is Brad's rule from yesterday, carried over whole: exhaust modifies, it does not fire alone. hiring → RevOps role (30d) raises the timing axis on the other three Plays for that account. headcount → decrease (90d) holds every outbound Play on it. The record shows the modifier and what it changed. acct_3c07 · hiring → RevOps role (12d) · modifier on trial-expansion-route-v1 · timing 0.64 → 0.71 · fired nothing alone.

Four Plays, one per plate.

Select a plate for its Play sentence, mode, and record line. Then run the hour to watch the four lines land in order.

Illustrative, not a benchmark. Modes per the product: Run is the default; Approve is opt-in for Plays that write to a person. Plate IV is a modifier, never a trigger. Under reduced motion the lines appear instantly.

Figure 2. Four Plays, one per plate: the sentence, the mode with its reason, and the record line. Run the hour to watch the four lines land in order (illustrative, not a benchmark).

BRYNbyCivic Running now

What would this essay do if it could act? It just did.

Essay, alone

Someone reads it. Maybe they fit your ICP. The minute passes and nobody downstream ever knows.

Your chance to reach your engaged, identified prospect: Gone

Every run lands on the record.

The hour does not disappear. It moves.

Nobody on the team stops reading. They stop running five checks and start reading four record lines, which take about as long as the coffee. The overnight list is already scored, the CRM check is already a join, and the tab the rep used to open before writing is already a field on the record; where it said headcount is falling, the outbound is already held.

The planning conversation changes shape too. Chris asked what the team should stop doing by hand. With the hour written as Plays, the answer is an inventory instead of an opinion: three Plays that fire, two in Run mode and one in Approve mode, one modifier that never fires alone, and a record for each run. When somebody asks what the growth tooling did last quarter, the answer is a query, not a reconstruction.

Two older pieces sit under this one. Follow-up has no owner is the ancestor: the thing with no owner does not get done, and the hour was a thing. And last Friday's one account, four classes, six tools made this point across tools; this piece makes it across time. The account becomes one account in the record. So does the morning.

How Bryn runs the hour

Bryn is not another dashboard to watch. It is the governed execution layer that runs Plays through your stack.

Bryn watches the site, the product, and the CRM together, so plates I, II, and III land on one account before anyone logs in, and takes plate IV as an enrichment input on the timing axis and the suppression list, never as a trigger. It scores in the open, by axis, and when a pattern crosses the threshold you set it runs the Play you approved, end to end in Run mode or held for one click in Approve mode. Then it writes the record, in its own register. Four lines for one morning, all illustrative:

Bryn I matched trial → second seat → both active (7d) on acct_3c07 at 05:12 UTC. Owned signal. Scored 0.81 against 0.70. Ran trial-expansion-route-v1: posted to #growth-signals, opened a task for the owner. Logged run_9b2e41.

I matched pricing → return → repeat (7d) on acct_7d19 at 05:12 UTC, resolved to company, no person named. Scored 0.74 against 0.70. Ran pricing-return-tag-v2: tagged the account, posted the pages read. Held nothing; nothing in this Play writes to a person. Logged run_9b2e44.

I matched closed-lost (8mo) → pricing return on acct_2210 at 05:13 UTC. Filed record joined to a live visit; loss reason attached. Scored 0.77 against 0.70. Held reopen-note-v1 for approval. op_2 approved at 08:41 UTC, 3h28m later. Ran. Logged run_9b2e47.

I read hiring → RevOps role (12d) on acct_3c07 from the enrichment feed. Modifier only: raised timing from 0.64 to 0.71 on run_9b2e41. Fired nothing alone. Logged.

That fourth line is worth reading twice. The posting was public and every competitor's agent could have read it at the same minute, Monday's point about vendors shipping MCP servers: callable is not the same as run. Here it ran nothing. It changed a number on a Play that was already yours.

The boundary Chris drew on Wednesday holds: the record is the complete account of what Bryn decided and initiated, and Slack, the CRM, and the sequencer keep their own logs of what happened next. One owner, one record, the shape we argued for in thirteen agents, one owner, applied to a single hour.

The gift

Write down every check in your own first hour and label each by class: own, rent, filed, everyone rents. The checks that read a class you own or filed are the ones to move to a Play first: the highest-fidelity reads in the building, and nobody else has them. The checks that read a rented class are joins, not triggers: they sharpen a Play you already have and should almost never start one. A check that reads no class at all is the decision itself, and that is the Play sentence you write next.

Then look at the four lines below and ask which your team would have written down this morning.

THE RECORD ⬩ ONE MORNING ⬩ ILLUSTRATIVE The finished hour. Four record lines. AUDIT LOG ⬩ 2026-09-25 ⬩ 05:12:04Z to 08:41:31Z ⬩ 4 lines before anyone logged in I OWNED II RENTED III FILED IV EVERYONE RENTS RUN RUN APPROVE MODIFIER acct_3c07 trial → second seat → both active (7d) score:0.81/0.70 ran trial-expansion-route-v1 did:posted #growth-signals, task opened 05:12:04Z run_9b2e41 acct_7d19 pricing → return → repeat (7d) resolved:company, no person score:0.74/0.70 ran pricing-return-tag-v2 did:tagged account, posted pages read 05:12:09Z run_9b2e44 acct_2210 closed-lost (8mo) → pricing return join:filed + live loss reason:attached score:0.77/0.70 held reopen-note-v1 approved_by:op_2 08:41:31Z (3h28m) then ran 05:13:12Z run_9b2e47 acct_3c07 hiring → RevOps role (12d) source:enrichment feed modifier on:run_9b2e41 changed timing 0.64 → 0.71 fired nothing alone 05:12:05Z no run id: not a run Two ran, one held and ran on approval, one modifier fired nothing alone. The connected tools keep their own logs of what happened after each request arrived. Accounts anonymized. Scores, timestamps, and ids are illustrative, not a benchmark. values illustrative; field names follow the audit log's key:value convention
Figure 3. The finished hour: four record lines, one per plate, with mode, timestamp, and run id (illustrative, not a benchmark).

Bryn Four lines. Two ran, one held and ran on approval, one modifier fired nothing alone. Logged. The hour is on the record.

Civic Team

Civic Team

Staff

More essays by Civic

Our team brings decades of experience across the domains that matter: 10 years in AI and agentic systems, 65 in financial services, 35 in identity and access management, 30 in marketing and AdTech, 15 in legal and professional services, and 12 in manufacturing and industrial.

We're for operators who can't afford unintended actions or silent failures, and who want the agent in production quickly and effectively.