Repository source: docs/plans/fastmod_prepublication_hold/fastmod_development_checklist.md
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
| Approach | Fresh voter experience | Shared score treatment | Main tradeoff |
|---|---|---|---|
| Count QDB votes immediately | Accepted up/down vote immediately changes the shared item score | Fresh identities count without account approval, with explicit abuse controls | Strongest shared engagement; mass identities can manipulate totals |
| Tier vote contributions like posts | Voter sees an acknowledged own contribution; other viewers see only contributions authorized for their audience | Positive/approved contributions reach public totals, neutral contributions approved-viewer totals, negative contributions operator-only totals | Closest to graded visibility, but audience-specific scores/counts/ranking and caches are substantially more complex |
| Separate provisional feedback from public weight | Immediate pending movement for the voter, then server-confirmed own contribution that survives reload | Public weight follows the selected trust policy; own pending contribution remains distinct until eligible | Delivers 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:deriveThreadLabelStatedistinguishes 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:setOptimisticThreadReactionStatecurrently 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.