在黑暗中摸索:与我可靠的同事的旅程
Source: Dev.to
项目概述
本项目是为 Kiroween(AWS 主办的万圣节主题黑客马拉松,庆祝其 AI 编码代理 Kiro)而构建的。
挑战:在一个月内使用 Kiro 创造一些有创意的作品。
对我而言,这真的是在黑暗中摸索——我的第一次线上黑客马拉松,没有视频制作经验,日语单独开发,却要用英文提交所有内容。
MairuCLI 是一个教育型 CLI 包装器,能够检测并阻止危险命令。
“Mairu”(参る)是日语中表示“困扰”或“被击败”的词,也是对“Kiro”的文字游戏。当你在 CLI 中输入危险命令时,会出现万圣节主题的警告并教你为什么它危险。
关键特性
- 🔥 11 种危险模式检测 – 如
rm -rf /、chmod 777、dd、DROP DATABASE、fork 炸弹等 - 🎃 万圣节主题警告 – ASCII 艺术和教学信息
- 📚 教育性拆解 – 解释命令的每个部分,并模拟执行后的结果
- 🏆 成就系统 – 游戏化让学习更有趣
- 🚂 拼写娱乐 – 输入
sl会出现一列蒸汽机车 - 🛡️ 系统目录保护 – 保护 Windows、Linux、macOS 上的系统文件夹
技术成就
- 300+ 自动化测试(100 % 通过)
- 16 个 Steering 文件
- 6 套完整 Specs
- 跨平台支持(Windows、Linux、macOS)
资源
- Devpost:
- GitHub 仓库:
- 演示视频:
遇到的障碍
- 没有线上黑客马拉松经验 – 提交标准和评审流程不明确
- 没有视频制作经验 – 不知道如何制作演示视频
- 语言障碍 – 所有提交(README、视频旁白等)必须使用英文,而我的英文并不流利
- 时间紧张 – 开发被日常工作挤压,很多天没有连续的时间块
- 单人开发 – 虽然是公司项目,但除 UAT 外的所有工作都由我一人完成
开发时间线
- 总开发时间:≈ 30 小时
- 前 6 小时:完成核心功能(8 个内置命令、5 种危险模式检测、万圣节主题显示系统)——首次体验 Spec‑Driven Development
- 将
display.py(400 行)重构为 7 个模块:预计 2.5–3 小时,实际 20 分钟(≈ 7.5–9 倍效率提升) - 实现 3 级警告系统(Critical/Caution/Safe)、IT 文字游戏以及 35 条自动化测试
- 为 Windows、Linux、macOS 添加系统目录保护
- 将
builtins.py(719 行)拆分为 7 个模块,创建基于分类的变体系统、通用拼写检测和教学拆解 Specs - 解决平台特定问题(如 macOS 的
locale.getpreferredencoding()、Linux 上的mkfs /dev/sda检测)
AI 协作洞察
- 与 Kiro 配对编程 的感觉非常自然;AI 更像是值得信赖的同事,而不是遥远的工具。
- 其他 AI 代理(如 Claude Code)同样精准,但比较的重点不在“谁更好”,而在它们如何融入工作流。
- Steering 的局限:Steering 文件过多时仍受上下文窗口限制,管理它们本身就成了一个元挑战。
- AI “理解”:正如第 10 天发现的,AI 能把命令标记为“危险”,却并未真正理解危险的概念——这是当前模型的固有局限。
这些观察不是批评,而是随着 AI 协作深入需要解决的挑战。
ASCII 艺术实验
我希望 CLI 能在游戏化之外也保持趣味,于是尝试自动生成 ASCII 艺术(例如使用 DALL‑E 3)。结果令人失望,最终只能手工绘制:
,.,. ,.,.
,d$$$$$$$$$$$b.
,d$$$$$$$$$$$$$$$b.
d$$$$$$` `'$$$$$$$b
d$$$$$ .---. '$$$$b
d$$$$$ / _ \ |$$$$b
d$$$$$| | (O) | |$$$$$b
$$$$$$| `.___.' , |$$$$$$
_$$$$$$| ; : |$$$$$$_
`$$$$$; / \ ; $$$$$$'
`$$$$$b. `-' .d$$$$$$'
`$$$$$b.....d$$$$$$'
`$$$$$$$$$$$$$$'
`"$$$$$$$$"'
..::;d########b;::..
.:::::;##########;::::::.
.::::::;##########;:::::::.
'::::::'##########':::::::'
手工雕刻的南瓜灯花了大约一个小时,说明有些任务仍然需要人工投入。
Bug 事件(“幽灵”)
在开发后期,运行 rm -rf / 时详细解释部分消失。问题追溯到一次 相对路径 错误——在重构拆解和帮助显示文件后执行了 cd(更改目录)操作。
解决办法: 改为使用 绝对路径,并添加了一个 Steering 文件(被视作 ofuda 符咒)以防类似问题再次出现。
此 bug 表明:
- 多操作测试对仅靠 AI 来说耗时较长。
- 人类必须预判模式并验证 AI 生成的测试用例。
教训与进一步阅读
想更深入了解本项目的 AI 驱动开发经验,请参阅 GitHub 仓库的文档。
本文记录了我在 Kiroween 黑客马拉松期间构建 MairuCLI 的个人经历。