规格最大化:克服AI精神错乱与YAML规格说明
关于克服AI精神错乱,以及为何用YAML编写规格说明,还开源了一个工具包供尝试。可在指定链接获取完整的文档索引,在进一步探索前,可使用该文件了解所有可用页面。
似曾相识的场景
有人称赞Claude功能出色,但随后指出遗忘的重要边缘情况、分页方式不合适、查询方式可优化等问题,Claude每次都表示会修正。这也让人思考自己还有工作可做的原因。
混乱峰值已过
这样的场景出现频率在降低,工具和使用方法不断改进,认为混乱峰值已过去。正进入后混乱时代,软件更健壮、测试更完善等,但也意识到上下文窗口存在限制,当出现相关情况时,代理会失控等,所以要做出调整和应对,进行文档记录等。还思考是否算在进行规格驱动开发。
边飞行边设计飞机
探讨喜欢的规格说明形式,如README.md、AGENTS.md等多种文件,强调文档和非结构化规格说明比单纯提示更有效,编写规格说明是软件工程的核心。还思考能把编写规格说明这件事做到什么程度。
用Markdown做梦
陷入AI精神错乱,成为“规格最大化者”,编写了漂亮的文档,组建团队协同工作,但成果虽能正常工作却有点粗糙,最终放弃原有分支重新开始。
AI验收标准(ACAI)
一个小代理给需求编了号并在代码库中引用,引发思考,如这些标签能否帮助浏览大型拉取请求、精确指出需求满足或测试之处等。将这些标签命名为ACID,但仍有一些问题有待解答,如能否自动编号和标注、保持一致性是否麻烦等。
[Acai.sh]——开源工具包
开发[Acai.sh]解决新出现的问题,包括简单灵活的特性规格说明模板、小型命令行界面、Web应用等。会在一段时间内保持托管版本免费,源代码托管在GitHub上,采用Apache 2.0许可证。
工作原理
步骤1 - 定义规格
首先为特性编写规格说明,选择有实际价值的特性,保持需求具体、可测试,采用Acai的feature.yaml格式。也可让大语言模型协助编写,但有人喜欢自己编写。
步骤2 - 交付
复制并粘贴提示,CLI除npm包外还有适用于Linux和MacOS的版本。若顺利,代理会采用ACID,确保需求得到实现和测试。
步骤3 - 审查
无需逐个文件在GitHub上审查拉取请求,使用Acai.sh仪表盘审查需求。需在指定网站创建免费团队和访问令牌,暴露环境变量,将规格说明和代码引用推送到仪表盘进行审查。可对需求进行标记和添加评论。
步骤4 - 迭代/重复
目标是采用规格优先的工作方式,更改规格说明或添加注释,借助框架让代理做出反应并自动分配任务,减少反复提示和审查时间等。这些工具和方法适用于任何软件项目,可促进协作,支持复杂项目,可集成到更大的智能管道中。
未来展望
思想实验
即便从大语言模型精神错乱中走出来,仍觉得这种方法实用高效,找到了严谨与灵活等之间的平衡点。认为规格说明很重要,应写下来,一份简单的验收标准列表是不错的开端。
从规格最大化到测试最大化
当代码生成速度超过阅读速度,瓶颈转移到质量保证和验证环节,大力投资QA自动化和测试覆盖率有巨大投资回报率,需要一个地方关联规格说明和重要工件,也许Acai.sh可以成为这样的地方。
从测试最大化到反应式软件工厂
最终的突破在于……