数据活

单文件工具与小产品

打卡工具死在第三天,问题出在「什么时候算断」

原来靠自觉、三天就放弃;现在每条规则都摆在界面上,漏一天也不会被清零

个人工具习惯养成离线可用零依赖

11单文件工具与小产品打卡工具死在第三天,问题出在「什么时候算断」
打卡工具死在第三天,问题出在「什么时候算断」
问题
打卡工具用到第三天就放弃——漏一天,连击清零
需求
一个能撑住几个月的学习目标管理台
解决思路
把「什么时候算断」从人的脑子里搬到界面上
方案
休息日 / 滚进 / 逾期三条规则全部写明,样本不足就显示「暂无推算」
效果
单文件 1222 行、零依赖、断网可用;回归 59/59 通过

个人工具习惯养成离线可用零依赖

一句话

打卡这件事,绝大多数工具死在第三天。我把「什么时候算断」从人的脑子里搬到界面上,它才活得下来。

场景

给自己定一个有终点、有总量的学习目标:背完两千个单词、读完一本四百四十页的书、刷完四十节课。没有老师,没有同学,也没有人检查。

这类目标和「每天读书半小时」不一样——它有总量,所以进度算得出来;也正因为算得出来,一旦断掉,心里那笔账就再也平不了。

原来怎么做

手机备忘录加日历提醒。第一天记一行,第三天忘一次,第五天开始纠结要不要补记,第七天就干脆不打开了。

也试过现成的打卡工具,规则基本是「连续多少天」,漏一次从零开始。这条规则对健身也许合适,对「读完一本四百多页的书」就很残忍:昨天加班没读,今天打开发现连击清零——人会直接卸载。

真正的难在哪

以为最难的是记录,毕竟就是点一下。做起来才发现,三件难事没有一件是记录:

一、判断比记录难。「昨天没打卡」到底算断连、算休息、还是算滚进今天?规则说不清,使用者每天都要重新想一遍。凡是需要临场判断的工具,最后都会被放弃。

二、进度不能编。 第一版按「剩余量除以剩余天数」给建议量,但预计完成日一直显示不出来。后来才想清楚:样本不够的时候硬给一个数字,比不给更糟——使用者会照着一个错的节奏去安排时间。

三、数据会丢。 全部存在浏览器本地,意味着清一次缓存就没了,而这类工具往往要连着用几个月。

我的做法

规则只有三条,但每条都能在界面上找到解释:

取舍也说清楚:没有账号体系的代价,是换设备要手动导一次;换来的是打开就能用、不用注册,也没有任何数据离开这台机器。

结果与验收标准

验收标准我写的是两句话:界面上任何一张卡片的状态,都要能用一句话解释清楚「为什么是它」样本不够时必须显示「暂无推算」,不许编。

可复用的方法论

  1. 把模糊判断写成明确规则,并且把规则显示在界面上。 使用者不需要记住规则,只需要看懂今天这张卡。
  2. 宁可少给一个数字,不给一个看起来合理的假数字。 数据不足就说不足,这比「智能估算」更值得信任。
  3. 允许一次失误的机制,比连续打卡更能留住人。 惩罚性设计放在需要坚持几个月的场景里,一定会被卸载。

能力标签

原生 HTML | 单文件架构 | 本地存储 | 内联图标 | 手写图表 | 三档响应式 | 无接口调用

依据

同一个目标,三种状态 —— 每一张都要能解释「为什么是它」 黄卡 · 休息日 昨天没打卡 而且是本周第一次 不算断连 每周一自动送一个休息日 红卡 · 滚进今天 昨天又没打卡 本周的休息日已经用过 断连,任务滚进今天 允许失误一次,第二次才断 逾期卡 已经过了截止日 任务还没完成 显示逾期天数 给两个出口:打卡 / 调整计划 判定顺序是固定的:先看有没有过截止日 → 再看昨天有没有打卡 → 最后看本周用过休息日没有 顺序固定,使用者就不会每天重新猜一遍规则 样本不够时显示「暂无推算」,不许编一个看起来合理的数字
三种卡片状态的判定规则——顺序固定,使用者不用每天重新猜
宁可少给一个数字,不给一个看起来合理的假数字 有效样本 够不够 按近期速度推算,并显示预计完成日 推算的依据也一并显示出来,让人能判断准不准 显示「暂无推算」 不给数字,而不是给一个凑出来的数字 样本不够时硬给一个数,使用者会照着一个错的节奏安排时间 —— 比不给更糟
样本不够时显示「暂无推算」,不给一个凑出来的数字