PhoMaster / PenUmbra / Utility Pen

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:

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.