用AI开发者空间做一个单词闪卡:间隔重复复习与更稳妥的作品发布流程

举报
yd_221565968 发表于 2026/10/19 00:57:25 2026/10/19
【摘要】 在华为云AI开发者空间体验版中,用AI Shell做了一个基于简化SM-2间隔重复算法的纯前端单词闪卡,并分享把发布踩坑提前写成约束、避免凭证与多余文件进入公开仓库的经验。

一、为什么做单词闪卡

背单词最常见的问题不是“记不住”,而是“不知道什么时候该复习”。间隔重复(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。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。