Decisions

ADR-091: Rename product from Weft to Crank

ADR-071 picked "Weft" as the product name for Gyrum's SaaS factory two days ago. The semantic intent — that the Gyrum factory has its own user-facing name distinct from the company brand — was correct, and the rest of…

#091

ADR-091: Rename product from Weft to Crank

Status: Accepted Date: 2026-04-25 Related: ADR-071 (original product naming — superseded in part by this ADR), ADR-090 (AI-as-scaffold context — Crank's content is the pipeline catalogue)

Context

ADR-071 picked "Weft" as the product name for Gyrum's SaaS factory two days ago. The semantic intent — that the Gyrum factory has its own user-facing name distinct from the company brand — was correct, and the rest of ADR-071 (the company-vs-product split, the naming-criterion framework, the weaving metaphor used as engineering shorthand for internal architectural components, the revocability principle) holds up. The chosen word does not.

Weft tested poorly in actual use after ADR-071 shipped. Six concrete failure modes accumulated across two days of trying to say the word out loud, write it in prose, and search for it. The cost of switching is small while the surface is small: roughly five files of UI chrome, hero copy, test assertions, and a design-system export. No URL, redirect, or external commitment carries "Weft" yet. This window — after the name is chosen but before it is load-bearing externally — is the cheapest possible time to swap it.

Decision

Rename the factory product from Weft to Crank. Everywhere ADR-071 specified "Weft" — homepage hero, internal docs, chrome titles, test assertions, ADR cross-references — now reads "Crank". Gyrum (the company) remains unchanged; gyrum.ai (the platform domain) and gyrum.io (the products umbrella domain) remain unchanged; product names (Buzzy, SocialProof, Hiphip, etc.) remain unchanged; the internal weaving metaphor catalogue (loom, shuttle, warp, weft thread used as engineering vocabulary inside ADR-071) is preserved. Only the public-facing product noun moves.

The rewrite table is small.

Before After
"Weft — Gyrum's SaaS factory" "Crank — Gyrum's SaaS factory"
"built by Weft" "built by Crank"
"Weft ships a new playbook" "Crank ships a new playbook"
"open in Weft" "open in Crank"
Domain hypothetical No change — there is no weft.gyrum.anything in production today. Crank may or may not get a subdomain later; that decision is deferred until it is load-bearing.

Why this rename

Saying it out loud. Weft triggers "did you say 'left'?" / "spell it for me". The W-E-F-T cluster is uncommon enough in spoken English that listeners pattern-match to nearer neighbours. Crank is phonetically unambiguous; the K-sound at end hands off cleanly to the next word in a sentence.

Verbs natively. "Cranking out products" is already English — operators, founders, and engineers use the verb without explanation. "Wefting" is a real weaving term, but alien as a factory verb in 2026 — readers stall on it.

Zero-context memorability. A new operator hearing "the Crank" once retains it. Weft is a looms-specific term that a reader forgets after a week unless they happen to weave. Memorability without prior context is the load-bearing test for a product name said in conversation; Weft failed it, Crank passes it.

Idiomatic phrases. "What's cranking?" maps to "what's shipping?". "Off the Crank" mirrors "off the press". "Cranked it out last night" fits engineering voice. None of these natural-language analogues exist for Weft — every Weft sentence had to be constructed from scratch.

Search and squatting. No dominant commercial squatter on Crank in tooling/SaaS — the high-traffic Crank-named software is decades old or niche-specific (automotive, hand tools). Weft was already shared with a Ruby gem and a small game studio; the name was crowded before we touched it.

Tone match. Crank reads as operator-tone — no-nonsense, making things, hands on the lever. Weft felt marketing-picked: pleasant on a deck, brittle in a Slack message. The platform's overall voice is calm-by-default, operator-first; the product name should match.

Consequences

Positive. Conversation becomes cheaper — operators say the word once and it sticks. Prose becomes cheaper — verbs and idiomatic phrases ("cranking out", "off the Crank", "what's cranking?") arrive without having to construct them. The brand stack (Gyrum, gyrum.ai, gyrum.io, the per-product names) is unchanged, so existing collateral and domain registrations are untouched.

Negative. Two sets of writing carry the old name and have to be left as-is for historical integrity: ADR-071 itself, and the daily session logs that reference it. ADR-071 gets a one-line supersede banner pointing at this ADR; the body is preserved as the historical record. Every fresh writer for the next month must remember the rename — there is a brief window where prose drifts back to "Weft" until muscle memory updates.

Risks. Crank may itself test poorly in another two weeks. The mitigation is the same revocability stance ADR-071 took: the rename is cheap because nothing external carries the name, and a second rename is the same five-file patch in reverse. The ADR explicitly does not bind a public URL, contract, or marketing surface; if it did, the cost-of-rename math would change and a stronger commit would be needed.

A secondary risk is the weaving metaphor inside ADR-071 going stale. It does not — the metaphor was always engineering shorthand for internal components (loom = platform, shuttle = step executor, warp = pipeline skeleton, weft thread = per-step output). Those names live inside engineering prose, not on the product surface; they continue to work.

Alternatives considered

A) Keep "Weft" and try harder. Force adoption through repetition and chrome. Rejected: two days of forced repetition produced "did you say left?" every time — repetition was not the missing ingredient. The phonetic ambiguity is a property of the word, not of operator effort.

B) Drop the product name and call it "Gyrum". Use the company name for both the umbrella and the product surface. Rejected for the reasons ADR-071 §Context already gave: "Gyrum" loses the company-vs-product separation that makes the platform legible to a new reader. The problem ADR-071 solved (every surface re-establishing what it is, because no canonical product noun exists) returns immediately.

C) Wait and decide later. Defer the rename until external surfaces force the question. Rejected: every day of delay costs prose-rewriting later. The rename is cheap today (five files); it becomes expensive the moment a customer-facing URL, contract, or marketing page binds the name. The cheap window is now.

D) A different replacement (Forge, Mill, Shop, Press). Considered briefly. Forge is heavily squatted in dev-tooling (Laravel Forge, Forge.io, etc.). Mill collides with a Scala build tool. Shop reads as e-commerce. Press is decent but lacks the verb-handling Crank has ("pressing out products" works less well than "cranking out products"). Crank cleared the squatter sweep, the verb test, and the operator-tone test simultaneously — the others did not.

Revocability

This rename is revocable up to the moment external marketing, customer-facing URLs, or contractual documents carry "Crank". Tonight's cost is grep + sed across roughly five files: hero H1, layout chrome, page-title template, two test files, and one design-system export. If "Crank" itself loses after two weeks of trying to say it out loud, a second rename is the same five-file patch in reverse. The naming decision is deliberately not load-bearing until a public commitment happens — and no such commitment exists at the moment of acceptance.


Supersedes: ADR-071 (in part — §1 only) Superseded by: