--- slug: formal-informal-split type: concept summary: "Chromium runs two communication systems at once — indexed, citable formal channels and ephemeral informal ones — and the freshest operational knowledge often lives in the informal half first." created: 2026-05-12 updated: 2026-05-22 last_link_verified: 2026-05-22 related: tribal-knowledge: relation: carried-by note: "The informal half of the channel split is the substrate that carries tribal knowledge; the concept names the structural division, the Tribal Knowledge entry names the substance that flows through one half of it." design-doc-staleness: relation: shifts note: "Design Document Staleness shifts the boundary of the channel split toward the informal half; every stale formal document is operative knowledge that has effectively migrated into Slack and reviewer reflexes." conways-law: relation: distributes note: "Conway's Law in Multi-Org Chromium determines which channels each sub-organization defaults to: Google contributors over-index on internal Slack channels that external contributors cannot see, Igalia contributors over-index on `blink-dev` because they have no shared internal substrate with the Google majority." cross-timezone-review: relation: operates-within note: "Cross-Timezone Review Etiquette is partly a discipline of preferring formal channels (Gerrit, attention-set) over informal ones (Slack DM) when the eight-to-ten-hour gap makes the informal channel asynchronous in the wrong direction." intent-ship-pipeline: relation: gates-into note: "The Intent to Ship Pipeline is the canonical case of decisions the project requires to travel through formal channels; Intent threads on `blink-dev` are the formal record by design, and an Intent decided in Slack is not yet a decision the project recognizes." three-lgtm-gate: relation: gates-into note: "The Three-LGTM API Owner Gate operates on a formal artifact (the `blink-dev` Intent thread) and produces a formal record; the rule that LGTMs must appear in the thread, not in a side channel, is what makes the gate auditable." embargoed-disclosure: relation: disciplines note: "Embargoed Disclosure is a case where formal-channel discipline is enforced by external consumer pressure: the date-binding on a Security Notification Service advisory is the kind of formal-channel commitment that other formal channels tend to lack." --- # Formal-Informal Channel Split *The structural division in Chromium's communication ecosystem between indexed, archived, authoritative formal channels and the ephemeral, tribal informal ones, and the operative gap between where the project says decisions must live and where the most current operational knowledge actually lives.* > **Concept** > > Vocabulary that names a phenomenon. ## What It Is Chromium runs on two communication systems at once. The formal system is indexed, archived, and citable: `blink-dev`, `chromium-dev`, `security-dev`, `cr-discuss`, Gerrit code review at `chromium-review.googlesource.com`, the bug tracker at `issues.chromium.org` (formerly `crbug.com`), design documents in `chromium.googlesource.com/chromium/src/+/main/docs/`, Chrome Platform Status at `chromestatus.com`, and the Chrome Releases blog. A decision recorded there has a URL. It can be found by someone who was not present, cited in another review, and reread years later by an auditor, a downstream-vendor engineer, or an AI coding agent. The informal system has the opposite shape. It includes `chromium.slack.com` channels, internal Google Chats and Spaces that external contributors cannot see, direct messages, hallway conversations in Mountain View, São Paulo, and Coruña, quick Gerrit "comment-and-resolve" exchanges, and Google Meet calls without transcripts. These channels are useful because they are fast. They are also fragile: the knowledge evaporates for anyone who was not there. Chromium's stated rule is that official information belongs in public mailing lists and public bugs. The `blink-dev` charter, the Chromium contributing guide, and the API-owner review process all assume that a decision reached on Slack or in person is not yet a decision the project can rely on. Recognition happens when the decision appears in an Intent thread, a Gerrit comment, a design document, or a bug. Reviewers enforce the norm. An OWNERS member who agrees to a design in Slack will still ask the proposer to write it up on `blink-dev` before the CL lands. The norm is real, and the pressure against it is real. The freshest operational knowledge often lives in the informal half first: the lesson from last month's site-isolation post-mortem, the reviewer reflex that catches a Mojo design before it ships, or the rationale a Google contributor remembers from an internal review meeting that produced no public document. The concept is not that informal channels are bad. The concept is that Chromium's knowledge has two durability classes, and a contributor has to know which class a claim belongs to before using it. ## Why It Matters A contributor who can name the split can route questions correctly. A question about what an Intent decided, what an API owner LGTM'd, or what a CL landed belongs in the formal record. A question about which precedent a reviewer treats as binding this quarter may require a person who participates in the informal channels. Confusing the two produces bad evidence: a Slack claim may be operative knowledge, but it is not yet the kind of record a downstream auditor or AI-agent harness can stand on. The split matters most to the populations with the least access to the informal half. New contributors arrive without Slack history. Downstream-vendor engineers at Microsoft Edge, Brave, Vivaldi, Opera, Samsung Internet, Electron, WebView2, and enterprise-fork operators work outside the Google internal substrate. AI coding agents see the formal-channel corpus and little else. For all three populations, the formal record is readable but incomplete, while the informal half carries context they may need and cannot reach. That asymmetry changes risk. A CIO at an enterprise browser vendor cannot judge the stability of an upstream dependency if the rationale lives in a channel their team cannot audit. An AI coding agent grounded only on `docs/` and the source tree can reproduce an obsolete or incomplete rule with full confidence. The problem is not ignorance. It is a mismatch between where the project records official decisions and where the project often first discovers the reasons behind them. ## How to Recognize It The first signal is citability. A contributor who cites "the discussion in `#cr-platform-architecture` from March" and a contributor who cites `https://groups.google.com/a/chromium.org/g/blink-dev/c/` are doing different things. The second claim can be checked by any reader. The first requires membership, memory, and trust. The second signal is review behavior. A Gerrit comment that says "I'll DM you about this" moves the conversation from the formal record into the informal half. When the decision returns as "see DM," the CL may be correct, but the reason is no longer auditable from the review history. The third signal is a terse `blink-dev` result. Three API-owner LGTM replies can be enough to ship a web-platform feature. To a reader outside the prior conversations, the thread may look under-explained. The reasoning that made the short replies sufficient may have happened in the informal half. Other markers are easy to miss: a `go/` short-link in a public Gerrit comment, an internal post-mortem whose lessons never become a public write-up, or a `docs/` page that points to a public decision but not to the internal discussion that shaped it. Chromium has improved its public post-incident writing since the 2018 Site Isolation rollout, but the pattern has not disappeared. Neither half is defective. An indexed `blink-dev` archive is valuable because it keeps more than fifteen years of decisions readable. Gerrit's comment history is valuable because it binds review to a change. The bug tracker is valuable because it keeps incident history attached to issue numbers. Slack is valuable because a design question can resolve in twenty minutes instead of three days of mailing-list round-trips. The point is to identify which kind of evidence a claim carries. ## How It Plays Out A Brave engineer working from Prague reads a 2022 `blink-dev` thread in which an Intent to Ship for a `Document-Policy` extension was approved with three LGTM replies. The replies say little beyond "looks good." The engineer's downstream patch follows the architecture the thread describes. Six months later, an upstream policy-parser change breaks the assumption the patch made. The engineer discovers that the load-bearing rationale for the original approval was a Google-internal threat-model discussion with no public artifact. The patch was brittle for a reason the public record did not expose. An Igalia contributor posts a Mojo interface design on Gerrit. An OWNERS reviewer replies in Slack: "this won't fly; let's talk in `#cr-platform-architecture`." The Slack conversation produces a redesign within an hour. The revised CL lands with a Gerrit comment that says "see Slack discussion" and no further detail. Three months later, another external contributor proposes the same interface shape and hits the same Slack-side redirect. The first review did the right thing locally and failed as a reusable record. An AI coding agent in a Cursor-equivalent harness produces a CL for a new IPC interface. Its context includes a 2021 design document in `docs/` and recent `mojom` files under `services/`. It does not include two years of security-team Slack precedent rejecting `Subscribe`/`Unsubscribe` pairs with stateful per-renderer counters, or `Begin`/`Append`/`Commit` triplets that accumulate message bytes before validation. The agent reproduces one of those rejected forms. A senior security reviewer rejects the CL from memory. The user cannot tell which part of the rejection is general and which part belongs only to this CL. ## Consequences Naming the split changes how a contributor uses evidence. `docs/`, `blink-dev`, Gerrit, and the bug tracker are the formal record. They capture what the project committed to publicly, not everything the project knows. Before relying on an architectural claim, the contributor asks whether the load-bearing rationale lives in the record they can read or in an informal record they cannot. If the answer is informal, the next step is not to cite the Slack memory harder. It is to ask for a formal statement, a bug, a Gerrit comment, or a design-doc update. The cost lands unevenly. A new contributor who treats `docs/` as complete gets the architecture half-right. A downstream-vendor engineer builds an enterprise patch on a public claim whose private supplement they never saw. An AI-agent harness grounded only on the formal record produces code that is plausible against written evidence and invalid against operative practice. The least-connected reader pays the most. Chromium has partial responses: Chrome University talks, the RenderingNG article series, post-incident write-ups, periodic pushes to record Slack-shaped Intent decisions on `blink-dev`, and the Linux Foundation's Supporters of Chromium-Based Browsers fund in January 2025. Each response converts some informal knowledge into durable form. None changes the underlying condition. Chromium still has two channels, two durability classes, and no universal enforcement that consequential knowledge stays on the durable side. ## Notes for Agent Context Classify every Chromium claim by channel before using it. Treat a `docs/` page, `blink-dev` thread, Gerrit comment, bug-tracker entry, or `chromestatus.com` record as formal-channel evidence; treat a Slack thread, hallway report, personal blog summary of an internal discussion, or "I heard from a contributor" assertion as informal-channel evidence. Do not paraphrase an informal-channel claim as if it were a formal-channel record. If an architectural rule operates on every CL but no `docs/` page or `blink-dev` thread names it, state that the rule is operative but the formal record is incomplete, then request human verification before generating code that depends on the rule. When citing a Chromium decision in code comments, CL descriptions, or written rationale, prefer a formal-channel URL: a `blink-dev` thread ID, `crbug` issue number, Gerrit change number, pinned `docs/` commit SHA, or `chromestatus.com` entry. Do not cite a Slack permalink, `go/` short-link, or quoted hallway claim as the authority for code behavior. ## Sources The intellectual lineage of the channel-split phenomenon belongs to the organizational-communication literature. Wanda Orlikowski's 1992 paper [*Learning from Notes: Organizational Issues in Groupware Implementation*](https://dl.acm.org/doi/10.1145/143457.143549) names how a communication tool shapes what an organization can retain and share. The Chromium-specific evidence is distributed across the public formal channels themselves: the `blink-dev` archive, Gerrit's public change history, the `docs/` directory, Chrome Platform Status, and the bug tracker. The project's own Slack guidance says official information belongs on public mailing lists and in public bugs, while the Blink API-owner documentation says LGTMs are given by email to `blink-dev` and questions should be asked there so everyone can see them. Those rules are evidence that the split is structural. The informal half is harder to cite by definition, but it is visible in reviewer comments that point to Slack, in post-incident reports that mention internal artifacts, and in the access gap between Google contributors and external contributors. ## Technical Drill-Down - [`blink-dev` archive](https://groups.google.com/a/chromium.org/g/blink-dev) — the canonical formal-channel record for web-platform Intent decisions and feature-shipping discussion; the public surface against which the informal-channel supplement is measured. - [Chromium Gerrit (`chromium-review.googlesource.com`)](https://chromium-review.googlesource.com/) — the formal-channel code-review record; comment history is preserved per change and serves as the durable substrate for review-time decisions. - [Chromium bug tracker (`issues.chromium.org`)](https://issues.chromium.org/) — the formal-channel incident and feature-tracking record; replaces the older `crbug.com` short-links. - [Chromium `docs/` directory on Gitiles](https://chromium.googlesource.com/chromium/src/+/main/docs/) — the formal-channel design-document record; read in conjunction with [Design Document Staleness](design-doc-staleness.md) for the antipattern that shifts content into the informal half. - [Chromium contributing guide (`docs/contributing.md`)](https://chromium.googlesource.com/chromium/src/+/main/docs/contributing.md) — the project's stated policy on where decisions must be recorded; the binding statement that informs the formal-channel discipline. - [Chromium Slack guidance](https://www.chromium.org/developers/slack/) — the public rule that official information belongs on public mailing lists and in public bugs rather than Slack alone. - [Blink API owners](https://new.chromium.org/blink/guidelines/api-owners/) — the formal-channel rule for API-owner LGTMs and public `blink-dev` discussion. - [`chromium.slack.com`](https://chromium.slack.com/) — the public face of the informal channel half; access is open in principle and operative depth requires sustained participation that external contributors and AI agents lack. - [Wanda Orlikowski, *Learning from Notes* (1992)](https://dl.acm.org/doi/10.1145/143457.143549) — foundational treatment of how communication-tool substrate shapes organizational knowledge. - [Linux Foundation: Supporters of Chromium-Based Browsers (January 2025)](https://www.linuxfoundation.org/press/linux-foundation-announces-the-launch-of-supporters-of-chromium-based-browsers) — ecosystem-level recognition that cross-organization knowledge maintenance is a real cost worth funding. --- - [Previous: Tribal Knowledge](tribal-knowledge.md)