docs: moderation foundation — design, staged plan, executable slice-1 plan #52
No reviewers
Labels
No labels
auth
bug
composer
correctness
database
durability
enhancement
feeds
interactions
notifications
performance
reliability
safety
security
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
starsetbyte/peregrine!52
Loading…
Reference in a new issue
No description provided.
Delete branch "docs/moderation-foundation"
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?
Archaeology + architecture for the moderation rebuild. Docs only — no code changes (plus stale-fact fixes in CLAUDE.md). Implementation is explicitly deferred to a follow-up
feat/moderation-corebranch.What's in here
docs/superpowers/specs/2026-07-04-moderation-foundation-design.md— the design spec:df53b08): labels barely enter the app today,viewer.muted/blockedByare destroyed at the Room layer, threads silently drop blocked items, no mute/block APIs exist.feat/moderationbranch (PR #11). That branch is reference-only and must never merge: it carries a conflicting v9 schema, its fatal default-Show label bug (unconfigured labels did nothing — matching the "labels do not apply consistently" comment on #11), and UI written against a pre-PostCardStylePostCard. Salvageable: the engine's snapshot/lambda test pattern, ~44 test cases, and the verified API/DTO layer.@atproto/apidecision model, lexicons) as source of truth — including the 8-level cause precedence, adult-content gating, subject targeting, and the fact that hydrated views pre-resolveneglabels.data/moderation/, raw DTOs separated from internal types, verdicts computed at mapping time, media "blur" implemented as a don't-compose-the-image cover (hot-path contract-test safe), single serializedputPreferenceswriter.docs/superpowers/plans/2026-07-04-moderation-foundation.md— seven-stage roadmap: data model → resolver+tests → UI wrappers → timeline/thread/profile/quote/search/notification integration → preference sync (incl. thePreferencesGatewayrefactor guarding against the PR #25 race class) → reviewed salvage copies → parity backlog.docs/superpowers/plans/2026-07-04-moderation-core.md— the full executable TDD plan for slice 1: 8 tasks, complete code in every step, ~60 new tests. SharedLabelDTO (+neg),labelson post/author/profile/quote views,ViewerState.blocking, Room v10 additive migration, mapper round-trips, and the pureModerationResolverwith official semantics. Zero user-visible behavior change; zero new dependencies.CLAUDE.md— fixed stale facts: schema is v9 with additive-only migrations (not "v8, destructive"), and the moderation status row now points at these docs instead of the abandoned branch.Housekeeping done alongside (local only)
.claude/worktrees/feat+moderationworktree (304MB of build artifacts) and the localworktree-feat+moderationbranch — all content is preserved onorigin/feat/moderation.Next step after merge
Execute
docs/superpowers/plans/2026-07-04-moderation-core.mdon a freshfeat/moderation-corebranch.🤖 Generated with Claude Code
https://claude.ai/code/session_01XDX1FHPfYkKucU5NYvZRsH