Wrench
Wrench is the Pen for utility doctrine. This ordination advances the Rell plateau into a candidate-selection atlas: the former Tell LocateController has been split into pools of case sections, and each pool now receives a best-guess application-slice assignment for human review before any migration.
This document does not migrate code. It names the likely homes of the recovered cases so the split can be judged by meaning, not by where the cases happened to sit in the original controller.
1. Purpose of This Ordination
The new Rell split is a candidate map. It is not yet a new application layout, not a controller generator, and not a commitment to final ownership. The useful thing at this stage is to name each case pool according to the system slice it most likely belongs to. That lets the next human pass choose candidates with the right mental model.
The old Tell controller was a toolbox that grew by necessity. It accepted command values, interpreted them, touched files, shaped redirects, staged messages, assembled uploads, handled commerce, pushed print intent, and consulted gates. Rell is the recovery of that toolbox into named utility surfaces.
2. Selection Rule
The selection rule is simple:
Assign by identity grammar, not by adjacency.
A case that writes to /Work/Mms may be print, messaging, or both,
depending on whether the payload is Prt_ print intent or an SMS/MMS
message. A case that mentions xact may look like commerce, but it
may really belong to the old photography/event-commerce knot. A case that
returns a page may not be UI at all; it may be a route translator.
3. Application Slice Vocabulary
Route / Muq
Entry, doors, soft-routing, sink behavior, resident route selection, and public knock handling.
Wrench
Shared utilities, remnant shells, template helpers, diagnostics, and substrate services that make other slices possible.
S:end
SMS/MMS delivery, provider callbacks, messaging policy commands, and message-shaped control events.
M:erch
Commerce, customer purchase state, order display, old Square paths, and photography xact where still knotted.
P:rint
Print, PRN, DTF intent, Pho.Rip route behavior, and document-order bridges.
C:onduit
Remote coordination, registration, installation routing, and conduit-facing communication surfaces.
F:ence
Tracking, geolocation, map generation, fence state, and /Work/Fence or /Work/Trak artifacts.
U:pld / X:fer / X:media
Upload assembly, connector movement, downloads, media fetch/conversion, and file transfer primitives.
4. Rell Case Pool Atlas
The following table is the working candidate-selection map. It is intentionally opinionated, but not final. “Application slice” means the best current home for reasoning and future segregation; it does not require that the code be moved there immediately.
| Candidate pool | Best-guess application slice | Cases / command family | Reasoning note |
|---|---|---|---|
| 01_CommandRouterController | Route / Muq / Legacy Intake | default, callback fallback, AccountSid override, unknown command, view routing, xact numeric identity | Keep as a thin intake shim only. Its long-term owner is Route, not Rell business logic. Numeric identity remains a special direct-object path; view= becomes door= over time. |
| 02_DoorController | Route / Muq / Wow Door System | door; review, upload, download, filexfer, agent, prn, wowdeck, dtfhub, printers, inks, paper, image, package | Belongs to Route as the public knock surface. It maps door tokens and soft routes into resident WowDeck or hosted route surfaces. |
| 03_SinkController | Route / Muq / Failure Basin | sink, unavailable, warming, rerouted, punted, denied, suspended, degraded, maintenance | Common sink is Route infrastructure. It is not an error controller; it is the lawful receiving basin for unresolved traversal. |
| 04_GatingController | A:gent / S:end / Identity Gate | requests, isallow, getallow, uidgo, uiego, allow, refuse, bverf, bpass, uidck, newbck, hpoints, gpoints | This is not ordinary login. It is phone/user permission state, verification code flow, allow/refuse semantics, and identity-mediated access. It may later split into Gate, Identity, and Messaging-policy slices. |
| 05_MessagingController | S:end / Messaging Service | outsmsg, outmmsg, twisms plus embedded allow/refuse/settm text commands | Owns SMS/MMS output grammar and message-response construction. The embedded allow/refuse/settm commands touch Gating but are message-born control verbs, so keep cross-reference rather than blindly move. |
| 06_CallbackController | S:end / Provider Callback Intake | callback | Inbound provider callback handling belongs beside Messaging, but should be isolated from outbound message construction. It is S:end intake, not general Route. |
| 07_CommerceController | M:erch / Commerce / Photography Xact | ordsq, ordput, ordpus, sqerr, confput, show, gshow, cushow, save, order, product | This is the knotted commerce area. Some cases are old Square/cart behavior, but show/gshow/cushow/save/order/product also carry xact/tack/hotel/session gravity. Treat as M:erch with a Photography/Xact sub-slice until the knot is safely separated. |
| 08_CustomerController | M:erch / Customer Intake / Registration | evcust, condreg | Event-customer collection and Conduit registration staging. Candidate owner is Customer/Registration under M:erch or C:onduit depending final app packaging. |
| 09_AdminController | A:gent / Provisioning / Legacy Admin | luqin, luqout, newinst, cutton | Operational redirect and upload/reference plumbing. Do not mix with public customer flows. Candidate for Admin/Provisioning utilities under Wrench or A:gent. |
| 10_TemplateController | Wrench / Template Expansion / Layout Utility | popuset, popuseq, combpeg | A pure utility/template tool area: row repetition, placeholder expansion, and combine request staging. It belongs in Wrench unless a future media-template app claims it. |
| 11_FenceController | F:ence / Tracking / Geolocation | fence act=curdata, clalert, geoloc, trips, fenhist, nextrak, select, choice, chall, newchk, vios, check, next, delete, geo, markup, start, save, cancel; point, map, dtime, loc | This is its own app slice. The dense act= switch should remain grouped as Fence/Track because the files share /Work/Fence and /Work/Trak vocabulary. |
| 12_MediaController | X:media / File Fetch / Conversion | down, downext, getburl, geturl, unzip, urlexist, ipextern | Media fetch, download, conversion, unzip, URL existence, and external-IP checks. Some diagnostics may later move, but the working slice is Media/Network utility. |
| 13_FileTransferController | X:fer / Connector Movement | pull, push, pushext, compare | Push/pull file movement and connector primitives. It is transport, not commerce or media. Compare may move to Diagnostics if it is only verification. |
| 14_UploadSessionController | U:pld / Intake / Multipart Assembly | beginu, addu, endu, mpart, shooters, checker | Staged upload assembly and multipart send. Shooter discovery may later belong to Photography, but the operational form here is upload/intake. |
| 15_PrintController | P:rint / Pho.Rip / DTF-PRN | print, docord, plus codent/nav where photography security still crosses | print is clearly P:rint; docord is document-order navigation. codent/nav are better kept with Photography/Xact unless the final Print path explicitly owns them. |
| 17_ConduitController | C:onduit / Remote Coordination | conduit | Reserved C:onduit command. Do not pollute with media/commerce behavior. Future split: message, route, status. |
| 18_DiagnosticsController | Wrench / Diagnostics / Verification | compare, checker, urlexist, ipextern | Temporary holding place for tests and checks. Some overlap with Upload and Media is acceptable during candidate selection. |
| 19_StaticTypeController | IIS / Static Delivery / Guarded File Response | .mov, .mp4, .htm, .html, .txt, .doc, .rtf, .docx, .xls, .xlsx, .jpg, .jpeg, .gif, .pdf, .psd | Most should retire into IIS/static files. Keep controller only where guarded, transformed, logged, or generated delivery is required. |
| 20_CommonServices | Wrench / Shared Substrate | GatingService, CommerceService, MessagingService, FenceService, MediaService, FileTransferService, PrintRouteService, DoorWiringService, SinkService, Utils.StdUtil, Utils.StdWeb | This is the true Wrench core: shared utilities, filesystem truth, task-flow variables, encoding, WorkZone, and response shaping. |
| 21_LocateController_Remnant | Wrench / Compatibility Shell | parse command, delegate, controlled sink for unknown command | Temporary shell only. Its success condition is disappearance. It must not retain business logic. |
| 22_MiscController_Remnant | Wrench / Misc Holding Bay | unsettled leftovers | Acceptable only as a named quarantine for unresolved fragments. Every item must carry a reason and next likely owner. |
5. High-Risk Knots
Photography / Xact / Commerce
The most dangerous knot remains the xact/tack/photog/hotel/session area. These cases look like commerce because they display products, save orders, compute totals, and prepare purchase routes. But they also carry the older photography event system. That means they should not be split only by nouns such as “product” or “order.” Until the new assembly proves otherwise, keep the photography-session gravity visible.
Messaging / Gating
Message text can become gate control. The allow, refuse,
and team-setting patterns may arrive as SMS body content and then call gate
behavior. This does not mean the MessagingController should own all gating.
It means Messaging is one source of gating commands. The proper future shape is
likely a Messaging intake that delegates to a Gating service.
Upload / Diagnostics Checker
checker appears diagnostic, but in practice it also polls for next
server directive in an upload/intake style. For candidate selection, duplicate
ownership is acceptable: let UploadSession keep the operational checker while
Diagnostics keeps the concept of server-condition verification.
Static Types
Extension cases should be treated as retirement candidates. IIS should own plain static delivery unless the file response is guarded, transformed, logged, generated, or otherwise meaningful as application behavior.
6. Brancher Clue
Brancher matters here because it demonstrates how Wrench should behave: it should not flatten the system into a generic summary. It should preserve full bodies, named slices, and portable doctrine. The same principle applies to Rell case selection. The goal is not to make the split look neat. The goal is to preserve enough meaning that the next conversation or next operator can pick up the work without losing the original grain.
7. Candidate-Selection Workflow
1. Review one candidate pool. 2. Confirm or adjust its application slice. 3. Mark cross-slice dependencies. 4. Avoid moving code until the owning slice is stable. 5. Keep LocateController_Remnant as a temporary delegating shell. 6. Retire Misc only after every held case has a named reason and owner.
8. Wrench Doctrine After Rell Split
Rell confirms that Wrench is not just a place for helper functions. Wrench is the working bench where unclassified tools become named instruments. Some tools will graduate into their own Pens or application slices. Others will remain in Wrench because their purpose is to help every slice: filesystem truth, WorkZone resolution, ordination, diagnostics, template expansion, and compatibility routing.
The LocateController split is therefore not a cleanup story. It is a recognition story. The system already contained Route, Send, Merch, Print, Fence, Upload, Transfer, Media, Conduit, and Wrench. The split merely makes those identities visible enough to choose.
9. Immediate Next Human Pass
The best next review is not to edit code. It is to walk the table and mark each pool as one of:
- accepted owner
- split required
- duplicate candidate
- hold in remnant
- retire to static/IIS
That will make the eventual migration mechanical instead of interpretive.
10. Body-Carried Styling for PenPals Absorption
This ordination shifts Wrench into the same body-carried styling contract used by Route and the corrected Door delivery. The essential style for this Pen is no longer dependent on the document head. It travels inside the body with the donated content so PenPals Gather, Brancher extraction, or any later full-body union keeps Wrench readable without special casing.
The rule is practical: if a Pen expects to survive as a gathered body, its essential ink, spacing, cards, tables, tags, and code styling must be present inside that body. External or head-level styling may still exist in live pages, but gathered survival cannot depend on it.