docs(website): the engagement admin surface as built (Phase 4b) #184
Reference in New Issue
Block a user
No description provided.
Delete Branch "docs/engagement-rules-admin"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Companion to website#171 (engagement Phase 4b). §6.0b assigns this phase two documents; both land here.
ENGAGEMENT.md— "As built — 4b"The four decisions the org lead settled before any code, and the arguments behind the two that are not taste:
PUTre-validates against the registries as they are now — so the rules a re-validating toggle cannot switch off are exactly the three an operator most wants stopped: a rule whose module was uninstalled, one naming a channel that is gone, and one whose trigger has since narrowed its ceiling under a saved audience.capped/reason/permittedeach recorded as a way the bare number would otherwise be a lie.And the two defects the live walk found, both in Phase 4a's code rather than 4b's:
Plus the rig that made the walk possible at all, which is worth not re-deriving: core declares no audiences (it knows no game vocabulary) and
module-uo0.3.0 declares none either, so on a stock local stack the entire §5.1a arithmetic is untestable. A ~20-line throwaway module inmodules/(gitignored) declaring four audiences at three ceilings makes all of it walkable — with the two registry rules that cost a restart each to discover: an audience id must contain a dot, and must be namespaced to the declaring module's own id.ENGAGEMENT.md§5.1a — the composition UIThe section named a composition UI everywhere and described none. It now records: its own nav entry rather than a tab; "exclude" offered only under "all of" (switching the group to "any of" drops exclusions rather than composing a tree the server will refuse); the stored ceiling displayed beside the live count and never chosen; and a tree nested deeper than the composer renders shown read-only rather than flattened.
BACKEND_DESIGN.md— the route tableThe twelve routes, with the reasoning that is not recoverable from the paths: why the enable switch is a
PATCHof one column, why the trigger is not updatable, why deleting a segment in use is a409rather than a cascade, and whatcapped/permittedmean on the preview.🤖 Generated with Claude Code
Six defects that only driving the two screens in a browser could find, plus two environment facts worth not re-deriving: - rebuilding client/dist while the server is running blanks the whole SPA. The HTML shell resolves core's hashed bundle filename at boot, so after a rebuild it points at a file that no longer exists; core's bundle 404s, window.__rg is never published, and modules/uo/entry.js throws MODULE_API.md §3.1's "core did not publish its shared dependencies" into a blank page. The error names core, and core is not at fault. Restart after every build. - a window.confirm blocks CDP entirely, so the two destructive actions cannot be driven from a script and a session that opens one is stuck until a human dismisses it. Exercise those paths over the API. - [x] AI-assisted: written with Claude Code (Opus) Co-Authored-By: Claude <noreply@anthropic.com>