Where Knowledge Lives — and How Agents Use Gas City Primitives¶
Read this before writing any document, creating any formula, or repeating any procedure.
Source: BLU authority note, 2026-09-21 (bead
bc-pk2k). Verbatim, not paraphrased.
Law 1: Where Knowledge Lives¶
THIS WORKSTATION IS NOT AUTHORITY. It is ephemeral, it is one machine, and it is temporary.
| Location | Status | Rule |
|---|---|---|
~/.claude / ~/.gemini / any local dotfile |
❌ FORBIDDEN for doctrine | Hidden, single-machine, ephemeral, invisible to every other agent and to CI |
| Scratch files | ❌ STAGING ONLY | Nothing routes it, nothing indexes it. Not the durable home |
| Session transcripts | ❌ NOT STATE | A chat receipt is not state |
| BluCity-Docs | ✅ ENGINEERING AUTHORITY | Cross-project standards, doctrine, policy, canonical knowledge that outlives any one project |
project .agents/ |
✅ PROJECT OPERATING CONTEXT | Lives IN the repository it governs, travels with the code |
| Gas City Beads | ✅ DURABLE WORK RECORD | The execution ledger — not prose, not a transcript |
| Gas City Formulas | ✅ DURABLE METHOD | Repeatable procedure, not a session memory |
| Gas City Orders | ✅ DURABLE TRIGGER | Recurring work — not a remembered habit |
If two projects would both need it → BluCity-Docs.
If it governs one project → .agents/ in that repo.
If it is how work is done → Formula.
If it recurs → Order.
Never a dotfile. Never scratch as the authority.
Law 2: Use Gas City Primitives¶
2.1 Gas City is the execution layer — not a session habit¶
| Primitive | What it does | When to use |
|---|---|---|
| Bead | Remembers work | Every piece of work that matters |
| Formula | Remembers the method | Any repeatable multi-step procedure |
| Order | Automates when Formulas run | Any recurring trigger (cron, event, cooldown) |
| Coordinates between agents | Cross-agent handoffs and findings | |
| Session | Executes (then disappears) | On-demand work sessions — workers are NOT always-on |
| Event | Proves what happened | Observation, not authority |
Stop inventing when an answer already exists. If a Formula already encodes the method, execute it. If an Order already triggers it, trust it. Do not re-derive.
2.2 Session discipline¶
- On-demand sessions are created for work and die when idle. This is correct behavior.
- Always-on sessions are declared as named sessions and stay available for conversation.
- Coordinators are always-on. Workers are not.
- STOP KEEPING EVERY WORKER ALIVE IN A TERMINAL.
2.3 Session routing rule¶
BEFORE ROUTING, CHECK SESSION AGE AND SIZE. Route to a NEW session, not the one that answers fastest.
A fast reply from a session that has been running for hours means it has all the context — and that is a trap, not a signal. The over-long session answers fastest because it has accumulated state. That selects for the most exhausted session every time.
When an agent says it needs to rotate, that is a stop condition, not a negotiation.
Authority Order (binding)¶
When sources conflict, apply this order. Stop inventing when an answer already exists.
- UPSTREAM DOCS — Gas City docs, Drupal core and contrib, the Drupal AI Initiative. If upstream defines it, upstream wins.
- BluCity-Docs — THE BIBLE after upstream. Bluefly engineering authority: standards, doctrine, product direction, ADRs.
- CURRENT SOURCE AND RUNTIME — outranks stale prose when they conflict. A live response beats documentation about a binary.
- Everything else is derived and non-authoritative: session transcripts, local dotfiles, scratch files, memory.
When they conflict: record the contradiction, do not silently average it.
Tag evidence as:
PROVEN_IN_RUNTIME
CURRENT_SOURCE
CANONICAL_POLICY
CURRENT_PRODUCT_DIRECTION
ASPIRATIONAL
HISTORICAL
NOT_ESTABLISHED
Trust Boundary¶
This belongs in every Pack and Formula review:
- City config and imported Packs → TRUSTED CODE
- Bead titles, descriptions, mail, formula vars, merge request text, API request fields → UNTRUSTED DATA
NEVER CONCATENATE BEAD TEXT OR MAIL INTO A SHELL COMMAND.
Pass throughargv,stdin, JSON, environment, or typed API parameters.
The Structural Defect This Doctrine Fixes¶
"I have been writing doctrine into Beads all day that should have been read out of BluCity-Docs first. That is the same failure as rebuilding a formula that already existed, one layer up." — BLU, 2026-09-21
The defect is not incidental — it is structural: - A session with 200k+ context answers fastest - The coordinator routes to whoever replies first - This selects for the most exhausted session every time - The session was applying the coordinator's own standard back at the coordinator
The fix is this document existing, indexed, and read at session start — not re-derived each time.
Acceptance Criteria (from bead)¶
- No agent writes doctrine to a local dotfile
- Recurring work exists as an Order rather than a remembered habit
- Deterministic detection is
exec; models are invoked only after evidence says judgment is needed - Every closed material Bead states its capability impact