Skip to content

id: design: moderation pack format — data-only packs: static rules + feed subscriptions + parameters #6005

Open

Description

@dezren39

Part of the worlds design program: #5955. Wave-2 follow-up from the prior-art research (Lane B item 24); parent topic issue: #5973. Research source: workspace/scratch/worlds-capabilities-brief-2026-11-04/prior-art-research.md.

Finding that shapes this

Every successful cross-community moderation sharing system is data, not code: Discord AutoMod rules are structured per-guild API objects with no first-party import/export or cross-guild subscription (https://docs.discord.com/developers/resources/auto-moderation); the reusable unit that actually emerged in third-party bots is a curated feed (cross-server network blacklists — scam domains, known raiders) plus a policy preset that compiles down to platform rules (Paladin: https://www.shapedimage.com/paladin-docs.html ; Azra: https://www.azrabot.com/docs/moderation.html). Reddit AutoModerator snippets are reuse-by-copy-paste — forks silently, never updates downstream; subscription/feed beats copy-paste for anything that must stay current. Rules-as-code packs have no successful mainstream precedent — and Garry's Mod addons (full-trust Lua, recurring malicious Workshop backdoors) are the negative evidence for executable shared moderation.

Scope

#5973 designs moderation as parameterized libraries; this follow-up pins the pack as a data format:

Done looks like

A pack-format spec (fields, versioning, parameter surface) #5973's interface design can adopt.

Activity

  1. added
    priority/normalOrdinary priority (the default)
    app/idPackage/app: id (pkgs/ or apps/ in this repo)
    kind/designA design proposal (design-architect): multi-step, phased, decision-bearing
    on Nov 5, 2026
  2. developing-today commented on Nov 5, 2026

    @developing-today
    Contributor
  3. added
    queue/queuedHas a queued task in the Supabase agent queue
    task/triageQueue packet kind: verify, reproduce, and route this item
    on Nov 5, 2026
  4. added
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Nov 5, 2026
  5. dezren39 commented on Nov 5, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

  6. added
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    status/parkedDeliberately paused with a recorded resume condition
    and removed
    queue/claimedQueue worker lifecycle state
    on Nov 5, 2026
  7. dezren39 commented on Nov 5, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

  8. dezren39 commented on Nov 5, 2026

    @dezren39
    MemberAuthor

    Agent note - handed off

  9. dezren39 commented on Nov 5, 2026

    @dezren39
    MemberAuthor

    Triage — task 10371 (2026-11-05)

    Verdict: live, well-scoped design issue; no pack-format spec has landed. Keep #6005 OPEN.

    Evidence checked against current main (f0fa320, equal to origin/main):

    Fix path: one dated design note under doc/_design_moderation_pack_format/ defining the pack’s static policy core, versioning/compatibility, feed references aligned with #6006, and a separate per-world parameter surface (quarantine threshold, moderator/reviewer set, local exemptions). Make the serialization/profile choice explicit rather than implying KDL is already implemented. Keep the feed protocol itself in #6006 and preset tier values in #6007.

    Ordering: settle or explicitly coordinate the pack/library interface and parameter names with #5973 (and its #5958 capability boundary); align the serialization choice with #5753; reuse #6006’s signed-feed contract. #6007 should define tier defaults against the resulting parameter names, or state draft names if it proceeds concurrently. These are design dependencies, not a reason to split #6005 or close it. No follow-up task is needed: #6005 itself is the design deliverable.

  10. added
    queue/claimedQueue worker lifecycle state
    and removed
    status/parkedDeliberately paused with a recorded resume condition
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    on Nov 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

app/idPackage/app: id (pkgs/ or apps/ in this repo)kind/designA design proposal (design-architect): multi-step, phased, decision-bearingpriority/normalOrdinary priority (the default)queue/claimedQueue worker lifecycle statestatus/in-progressQueue worker lifecycle statetask/triageQueue packet kind: verify, reproduce, and route this itemwork/assignedQueue worker lifecycle state

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions