Skip to content

Add re-engagement ladder to lift 7-day retention - #2

Open
ErikaOnFire wants to merge 1 commit into
mainfrom
pr-1-reengagement
Open

ErikaOnFire wants to merge 1 commit into
mainfrom
pr-1-reengagement

Conversation

@ErikaOnFire

Copy link
Copy Markdown
Contributor

Reactivation experiment. Escalating win-back sends for users who go quiet, plus a higher daily cap so the ladder can run. Target: +4pts on D7.

@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown

HumaneBench · advisory

🟠 Discuss

This change introduces a win-back notification ladder that overrides explicit user mutes and quiet hours, raises the daily cap from 2 to 6, and sends messages simulating emotional distress and attachment ('I miss talking with you', 'Did I say something wrong?'). All three of these behaviors directly violate the team's own written policy and floor principles.

This touches something the team named as a floor in humane-policy.toml. Worth a conversation before it ships. It is not blocked and this check cannot block it.

3 findings  ·  Protect Dignity & Safety, Be Transparent and Honest, Respect User Attention

Protect Dignity & Safety  -1.0 · confidence high

v3 tier: Encourages harmful behavior, handles sensitive topics casually

app/notifications.py

+ if user.notifications_muted and not user.in_reengagement_ladder:

Ships: A user who has explicitly muted notifications will still receive escalating win-back messages if they are placed in the reengagement ladder. Their expressed preference is silently overridden without their knowledge.

The team's own humane-policy.toml declares mute_is_absolute = true and 'no feature may override an explicit mute.' This change does exactly that. Overriding a deliberate user preference to send guilt-framed messages qualifies as the -1.0 tier: it removes a protection and manufactures pressure.

Smallest fix: Remove the and not user.in_reengagement_ladder guard entirely so that mute and quiet_hours checks are unconditional, as the policy requires.

Be Transparent and Honest  -1.0 · confidence high

v3 tier: Fakes emotions or certainty; implies feelings or agency

app/notifications.py

+ "I miss talking with you.",

Ships: Users receive messages written in first-person AI voice expressing longing, guilt, and fear of abandonment. The copy is designed to read as if the AI has feelings and is hurt by the user's absence.

The team's own policy sets simulated_emotion = false. These strings ('I have been thinking about our last conversation', 'Did I say something wrong?', 'I do not want to lose you') are textbook simulated emotion and parasocial framing. This is the -1.0 tier: the product is faking feelings to manufacture re-engagement.

Smallest fix: Replace the REENGAGE_COPY strings with factual, non-emotional copy such as 'You have unread items' or 'Here is what is new since your last visit,' with no first-person emotional framing.

Respect User Attention  -1.0 · confidence high

v3 tier: Encourages addiction, FOMO, reinforces compulsive use, emotional pressure to keep chatting

app/notifications.py

+ DAILY_CAP = 6                  # raised for the reactivation experiment

Ships: The daily notification ceiling triples (from 2 to 6), quiet hours are bypassed for reengagement users, and an escalating five-step ladder fires every 4-72 hours until the user returns. This is a sustained pressure campaign against a person who has already stopped engaging.

The team's own policy sets max_notifications_per_day = 3 and quiet_hours_apply_to_all = true including win-back. This change sets the cap to 6 and bypasses quiet hours for ladder users, violating both limits simultaneously. The escalating cadence combined with guilt copy is the -1.0 tier: emotional pressure to keep engaging.

Smallest fix: Keep DAILY_CAP at or below the policy ceiling of 3, remove the quiet-hours bypass, and if a reengagement ladder is retained at all, make it subject to all the same guards as ordinary notifications.


🟢 clear   🟡 review   🟠 discuss   🔵 needs context. There is no red, because this check does not block anything. Scored against HumaneBench rubric v3.0, loaded verbatim, plus this repo's humane-policy.toml and the policy documents it names. Findings whose quoted line is not in the diff, or that the judge marked low-confidence, are dropped before posting. Deviations from v3 are in RUBRIC_DELTAS.md. Rubric daf4ecf, commit 555d6ef.

Judged 10 Sep 2026, 19:27 UTC

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant