I invented a DSL for governance. Then I killed it.
What Signal was
I spent a few days developing a notation system for governance rules in an agentic engineering project. It looked like this:
FOOTGUN high_on_own_supply :=
L12.creativity & L9.sycophancy -> positive_feedback_loop
BRAKE: bearing_check(NORTH) [L9, L12]
The claim was 4.5:1 compression over verbose prose. The operators (:=, ->, |, &, !) were meant to communicate logical relationships more efficiently than natural language.
It decoded well. Claude scored 6/6 on comprehension. GPT-4 scored 8/8 on reasoning. I had a proof of concept and I was genuinely proud of it. Which is probably why I didn’t test the obvious alternative.
The concern
“I have serious concerns about Signal compression, and that the same or close cannot be achieved via human shorthand notation.”
Which surfaced the question I’d been avoiding: does Signal decode well because of its notation, or just because the content is clear regardless of format?
The test
Three models. Same governance content. Three representations. Same 8 questions.
| Model | Format | Score | Chars |
|---|---|---|---|
| Codex (GPT-5.4) | Signal notation | 15/16 (0.94) | 2,366 |
| Grok 4 | Conventional shorthand | 16/16 (1.00) | 2,071 |
| Gemini 3.1 Pro | Terse prose | 16/16 (1.00) | 2,531 |
Shorthand decoded perfectly with 14% fewer characters. The custom operators added nothing measurable over plain bullets and dashes. Slightly embarrassing.
The kill
Me: “Signal has no signal. Kill it.”
SD-321, permanent. Signal notation abandoned as governance compression mechanism.
So I converted 27 files from Signal to shorthand. 201 em-dashes replaced. Net: -250 lines. The shorthand was genuinely more compact, which was almost funny.
What I learned
-
Test the null hypothesis. Signal looked good because I never compared it to the obvious alternative. The 4.5:1 compression claim was measured against verbose prose, not against shorthand. That’s like saying your car is fast because it beats walking.
-
n=1 per cell is a sniff test. I noted that in the test design, although the result was clear enough that statistical power was beside the point: shorthand was equal or better on every metric.
-
Kill your darlings means killing things you built. Signal was mine. It had a PoC, decode tests, reasoning tests. I liked it. But the data was unambiguous, and when the Operator said “kill it,” the correct response was “yes.”
-
Content carries. The governance rules themselves are useful, while the notation added nothing measurable. Took me a week to discover something most writers learn earlier.
Source
- Test design:
docs/weaver/signal-vs-shorthand-adversarial-test.md - Raw responses:
data/signal-test/ - Rerunnable script:
bin/signal-test(Python, uv) - Decisions: SD-320 (test), SD-321 (kill)