Fastmod and QDB Engagement — Development Checklist

Cross-cycle tracker for the approved graded-content-visibility roadmap and related requests. Checked items record actual decisions or completed work, not planned outcomes. Each application slice needs its own Railspike approvals; adding an item here does not authorize implementation or revise an approved plan.

Current status

Evidence and current artifacts: Step 1, Step 2, Step 3, Step 4 investigation summary.

Slice 1 — Neutral intake and human release

Slice 2 — Negative standing and operator review

Slice 3 — Calibrated automatic standing and release

New request — QDB fresh-identity voting engagement

Requested outcome: a new QDB user with a fresh identity, possibly auto-created, sees an item's displayed score increase on upvote or decrease on downvote. Immediate, meaningful feedback should encourage engagement. Investigate accepting vote contributions according to a scheme similar to post visibility. Identity auto-creation and the precise weighting policy are proposals, not approved implementation scope.

Brainstorm candidates — not decisions

ApproachFresh voter experienceShared score treatmentMain tradeoff
Count QDB votes immediatelyAccepted up/down vote immediately changes the shared item scoreFresh identities count without account approval, with explicit abuse controlsStrongest shared engagement; mass identities can manipulate totals
Tier vote contributions like postsVoter sees an acknowledged own contribution; other viewers see only contributions authorized for their audiencePositive/approved contributions reach public totals, neutral contributions approved-viewer totals, negative contributions operator-only totalsClosest to graded visibility, but audience-specific scores/counts/ranking and caches are substantially more complex
Separate provisional feedback from public weightImmediate pending movement for the voter, then server-confirmed own contribution that survives reloadPublic weight follows the selected trust policy; own pending contribution remains distinct until eligibleDelivers immediate feedback without automatically granting public influence; must label provisional status and reconcile failures honestly

Suggested direction for assessment: combine immediate, truthful voter feedback with a separately defined contribution policy. A purely cosmetic increment that vanishes on reload is insufficient. Start by comparing immediate globally accepted QDB votes with tiered contributions plus a persistent own-vote projection; do not assume the complexity of audience-specific totals is justified. Fastmod text quality is not by itself proof that an identity's votes are trustworthy, particularly for new users who have never posted.

Relevant current evidence

  • src/ForumRewrite/ReadModel/IncrementalReadModelUpdater.php: deriveThreadLabelState distinguishes vote counts from approved score contributions; full rebuild and incremental updates must agree under any new policy.

  • src/ForumRewrite/TagScore.php: canonical score/tag semantics must remain consistent; Like/Flag behavior should not change implicitly through a QDB up/down feature.

  • public/assets/thread_reactions.js: setOptimisticThreadReactionState currently increments only Like; QDB direction, denominator and server reconciliation need deliberate treatment.

  • QDB todo item 3 records the earlier anonymous-voting problem and sequencing note. Reconcile old proposals during assessment rather than treating them as final decisions.