用AI开发者空间做一个单词闪卡:间隔重复复习与更稳妥的作品发布流程
一、为什么做单词闪卡
背单词最常见的问题不是“记不住”,而是“不知道什么时候该复习”。间隔重复(Spaced Repetition)的思路是:记得越牢的卡片,下次复习间隔越长;忘了的卡片,尽快再见一次。于是我在华为云 AI 开发者空间体验版里,用 AI Shell 做了一个纯前端的“单词闪卡 · 间隔复习”。
二、功能设计
- 卡片管理:新增、编辑、删除卡片,正面是单词,背面是释义和例句;支持批量粘贴导入,每行按“单词|释义”的格式。
- 复习模式:翻卡后选择“忘记 / 模糊 / 记住”,程序按简化的 SM-2 算法安排下一次复习日期。
- 统计:今日待复习数量、已掌握数量。
- 数据:全部保存在浏览器 localStorage,并支持导出 / 导入 JSON 备份,换设备或清缓存前可以先备份。
- 形式:纯前端单页(index.html + style.css + app.js),不依赖后端和第三方 CDN,适配手机。
三、SM-2 的核心思路
SM-2 是 SuperMemo 提出的经典间隔重复算法,大致逻辑是:每张卡片维护一个“难易系数”和“当前间隔”。回答得好,间隔按系数放大;回答得差,间隔重置、系数下调,卡片会更频繁地出现。简化版把评分压缩成“忘记 / 模糊 / 记住”三档,操作更轻量,适合手机上快速刷卡。
四、这次提需求的方式
我把需求分成两个阶段一次性交给 AI:阶段一只负责在指定目录写代码并启动本地预览、用 curl 确认三个资源都返回 200;阶段二再负责安装发布 Skill、推送 GitCode、发布到开发者作品展览馆。分阶段的好处是每一步都有明确的验收点,出问题时也容易定位。
生成结果:index.html 135 行、style.css 257 行、app.js 445 行,外加一份中文 README。
五、把上次踩过的坑写进需求里
上一次发布作品时踩过几个坑,这次直接在需求里写成约束:
- 先写 .gitignore 再 git init。发布 Skill 会安装到项目下的 .agents/,还会生成 skills-lock.json。这次还发现 .claude/、agent/ 等目录也会被带进索引,最终用 git ls-files 确认仓库里只有 5 个项目文件。
- 不输出凭证。明确要求不能用 cat/echo 把 token、AK/SK、STS 凭证打印到对话里;查看凭证文件时只输出字段名和长度。
- 不碰 IAM。发布流程依赖的 SELF_VERIFY 自委托上次已经创建,这次只允许查询和生成临时凭证,禁止创建或修改任何 IAM 资源。
- 授权必须本人操作。GitCode OAuth 链接 300 秒内有效,AI 展示链接后停下,由我自己在浏览器中完成授权。
六、新发现的两个细节
- 编码门禁会改文件。发布前的 ensure-utf8 检查给 style.css 自动补了 @charset 声明,导致工作区和已推送的代码不一致,需要再补一次提交。
- 临时凭证可能落在项目目录。这次 STS 凭证文件被写到了项目根目录,而 .gitignore 并没有排除它。补提交时只 add 了 style.css,凭证没有进仓库,发布结束后也已清理。建议把 sts-creds.* 一并加入 .gitignore,或者让凭证只写到 /tmp。
七、总结
第二次用发布 Skill,最大的收获是:把“上次的坑”提前写成约束,比事后清理省心得多。AI 负责写代码和跑流程,但涉及仓库内容、凭证和云资源权限的环节,仍然值得自己逐项核对一遍。
项目代码已开源在 GitCode:hid86006757/flashcards;作品已上架开发者作品展览馆,作品 ID 00655310a4c00000。
- 点赞
- 收藏
- 关注作者
评论(0)