Skip to content

[Design review] Opt-in intensified nudging for one specific habit the user chooses #306

Description

@kamegoro

Summary

Research surfaced two data points suggesting passive, dismissable suggestions may be structurally too weak for some deeply-automatized habits: (1) Drew Neil's own prescribed fix for the single most common "everyone knows better but doesn't do it" Vim habit (excessive arrow-key/hjkl navigation) is to disable the crutch entirely, not merely inform — closer to hardtime.nvim's blocking approach than to tobira's dismissable float. (2) A real hardtime.nvim user (HN thread, self-described experienced Vim user) said: "I really struggled to make myself use I and A... so I told it to yell at me until I learned" — i.e. opted INTO a more aggressive, self-targeted nudge for one specific habit, on top of otherwise finding hardtime's general blocking philosophy too aggressive by default.

Why this needs review before implementation

This is the most speculative of the recent research findings — unlike the other proposals, it isn't something multiple independent sources are directly asking for; it's a plausible reconciliation of "passive by default" with the evidence that some habits may need more than a float can deliver, but it's a hypothesis, not a validated request. If pursued, would need: a UI/command to let a user opt a specific pattern into a lower threshold and/or higher suggestion frequency, and a decision on whether this ever crosses into "the tool now blocks/annoys," which would be a genuine departure from tobira's stated non-punitive design philosophy and needs explicit maintainer buy-in.

Detectability note

N/A — this is a product/UX mechanism design question, not a detection question.

Relevant files

  • lua/tobira/core/config.lua (per-pattern configuration surface, if any exists to extend)
  • lua/tobira/core/suggest.lua (cooldown/threshold logic)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions