首页/新闻资讯/正文详情

CodeWhale simplify 技能实战:4 个动作小步瘦身代码且行为不变

发布时间:2026/9/24 17:19:12 来源:云帆数科 栏目:资讯中心
CodeWhale simplify 技能实战:4 个动作小步瘦身代码且行为不变
CodeWhale simplify 技能实战4 个动作小步瘦身代码且行为不变【免费下载链接】CodewhaleOpen-source coding agent for your terminal, built in Rust and on a journey of continuous community improvement. Issues and PRs welcome.项目地址: https://gitcode.com/GitHub_Trending/de/Codewhale你一定见过这种场面一段缠成一团的模块你想给它瘦身又怕清理时顺手改坏了行为连 commit 都不敢按。CodeWhale 内置的 simplify 技能就是为这件事准备的——它只负责变清晰不负责动行为而且这条约束不是口头约定而是写进了技能正文、还被测试钉死的。定义卡片simplify 是什么这个技能的全部定义就是一个文件夹加一个SKILL.md文件顶部的 frontmatterYAML 前置元数据如下原文见 crates/tui/assets/skills/simplify/SKILL.md--- name: simplify description: Improve clarity and reduce needless complexity after behavior is understood; preserve behavior and keep cleanup separate from correctness fixes. invocation: modeluser ---字段取值含义namesimplifycanonical 名规范名既是安装后的目录名也是唯一查找名没有别名description上方一行英文模型加载正文前看到的唯一路由信号直接写明了触发前提after behavior is understood和边界cleanup 与 correctness fixes 分离invocationmodeluser调用模式模型可自动加载用户也能显式调用按 docs/SKILLS.md 的 Invocation and alias metadata 表格modeluser同时是默认值该技能会进入模型的紧凑 catalog目录清单缺失或未知的取值都会回退到这个行为。两条红线先行simplify 不做什么技能正文把 Non-goals 放在工作流之前动手前先读清这两条红线不要把清理与改变行为的投机性重构混在一起。反例你正简化一个函数发现 if/else 链能压成一个表达式但那个表达式隐含调用方已校验过输入而当前调用点并没有校验——这是行为变更不是简化应拆回 debug 或 implement 的工单里。不要靠删除必要安全检查来简化。反例文件写入前有一段看似冗余的权限检查实际它是 TOCTOUtime-of-check-to-time-of-use检查时与使用时不一致防护删掉它复杂度问题就变成了安全漏洞。两条红线与验证变红是一一对应的某一步简化后基线验证转红先判断撞了哪条——红线 1 意味着行为被改了红线 2 意味着安全逻辑被删了。两种情况的处置都相同回退该步而不是顺手修一下。源码三证simplify 受到的真实约束这个技能不是散装文本而是被三处源码钉在内置技能包里的期望表声明。crates/tui/assets/skills-catalog-matrix.json 中 simplify 的条目为tier: core、invocation: modeluser、in_model_catalogue: true、aliases 为空。该文件自述是 authored contract人工编写的契约而非生成的快照内置技能包一旦增删改而没有同步它测试就会失败。双射断言与安装→发现流程。crates/tui/src/skills/catalog_matrix.rs 断言期望表名集与BUNDLED_SKILLS名集构成 bijection双射一一对应并由installed_registry()在临时目录里执行一次真实的安装加发现流程install_system_skillsSkillRegistry::discover断言内置包解析零告警文件头部同时声明它只验证确定性的注册表/catalog/resolver 行为不验证模型推理时的语义路由。描述长度与索引预算。crates/tui/src/skills/mod.rs 里MAX_SKILL_DESCRIPTION_CHARS取 400超长描述会被/skills报告为加载告警而非静默截断常驻技能索引预算有下限MIN_AVAILABLE_SKILLS_CHARS2400 字符与上限MAX_AVAILABLE_SKILLS_CHARS_CEILING40000 字符并按skills_prompt_budget_chars随上下文窗口缩放。simplify 的单行描述写成动作导向正是为了在 400 字符内把触发前提与边界都塞进路由信号。 端到端走查把三步工作流拆成 4 个可执行动作正文 Workflow 只有三行确认行为、小步降复杂度、保持行为保持的验证绿色。落到操作层面展开成四个动作每个动作都用三句话讲清动作 0 建立基线。做什么挑一组最窄的有效测试或一条复现路径覆盖待简化代码test技能的最窄有效测试与verify技能的驱动真实入口都可直接复用为基线手段见 crates/tui/assets/skills/test/SKILL.md 与 crates/tui/assets/skills/verify/SKILL.md。验证什么动手前当前行为可重复观察。变红怎么办基线本身就红的话不要进入简化先走 debug 链路把基线修好。动作 1 小步清理。做什么一轮只做一个简化点——合并重复分支、抽局部变量、删死代码、压平一层嵌套——每一步独立成 commit。验证什么每步都附一条为什么更清晰的说明而不是笼统的 refactor。变红怎么办该步牵涉到行为就停下它是变更请求不是简化。动作 2 重跑基线验证。做什么每步之后重跑动作 0 的基线测试或复现路径。验证什么输出、退出码等可观察证据与基线一致。变红怎么办立即回退该步不顺手修一下否则会把清理与正确性修复搅在一起撞上红线 1。动作 3 收尾说明。做什么在结果里写明改了什么、什么没动。验证什么基线验证全绿。变红怎么办没绿就是没完成不交付。两种触发路径如何在会话中调用 simplifyinvocation是modeluser对应两条触发路径模型自动触发它常驻 catalog当你说这段代码太绕了且上下文显示行为已确认时模型可自行加载并遵循其工作流用户显式触发在 TUI 输入/skill simplify本回合立即激活加载时会报告 canonical 名与别名receipt回执可审查。相关的技能管理命令摘自 docs/SKILLS.md 的 Slash commands 表格命令行为/skills打开 Skills Manager仅扫自有目录无网络/skills inspect文本发现模式显示搜索目录与来源路径/skill name为下一回合激活指定技能/skill install [--project\|--global] spec经变更控制器安装技能生命周期定位八技能链路里的 simplify把 simplify 放进核心代理的技能链路它的位置一眼可见序号技能分工01plan先规划定边界与验收标准02implement按已批准方案做最小一致变更03test跑最窄有效测试按需补测试04debug先复现定位根因区分诊断与修复序号技能分工05simplify行为已确认后小步清理验证保持绿色06review只读发现、文件/行证据与残余风险07verify驱动真实入口收集可观察证据08security-review敏感改动的安全复核它的位置一句话概括就是正确之后的清晰不抢正确性修复的活不揽评审的活只做一件事——在行为不变的前提下让代码更清晰、少一层无谓复杂。交付前自检清单基线已建立有一组可复现当前行为的测试或复现路径本轮改动只有一个简化点且独立成 commit每步都写明了为什么更清晰没有混入行为变更没有删除安全检查基线验证全绿且说明了改了什么、什么没动下次再遇到缠成团的模块不必拿行为底线去赌手感先用 simplify 立基线小步清理变红就回退。交付时只需要交代两件事——改了什么以及什么没动。【免费下载链接】CodewhaleOpen-source coding agent for your terminal, built in Rust and on a journey of continuous community improvement. Issues and PRs welcome.项目地址: https://gitcode.com/GitHub_Trending/de/Codewhale创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

swagger-codegen 中的 EnumClass 枚举模型解析:特殊字符枚举值的 Java 客户端生成原理
swagger-codegen 中的 EnumClass 枚举模型解析:特殊字符枚举值的 Java 客户端生成原理

开发工具代码生成API设计 【免费下载链接】swagger-codegen swagger-codegen contains a template-driven engine to generate documentation, API clients and server stubs in different languages by parsing your OpenAPI / Swagger definition. 项目地址: http… · 2026/9/24 17:19:12

使用 mcp-use 构建 TypeScript MCP Server 与 MCP Apps:官方 Skill 实战指南
使用 mcp-use 构建 TypeScript MCP Server 与 MCP Apps:官方 Skill 实战指南

后端MCP 服务MCP ClientsAI Agent人工智能 【免费下载链接】mcp-use The fullstack MCP framework to develop MCP Apps for ChatGPT / Claude & MCP Servers for AI Agents. 项目地址: https://gitcode.com/gh_mirrors/mc/mcp-use 点击查看 免费下载 导读 mc… · 2026/9/24 17:19:12

django CMS 工具函数完全指南:Admin、Page、Placeholder 与 Plugin 核心 API 深入解析
django CMS 工具函数完全指南:Admin、Page、Placeholder 与 Plugin 核心 API 深入解析

CMS后端 【免费下载链接】django-cms The easy-to-use and developer-friendly enterprise CMS powered by Django 项目地址: https://gitcode.com/gh_mirrors/dj/django-cms 点击查看 免费下载 django CMS 在 cms.admin.utils、cms.utils.page、cms.utils.placeh… · 2026/9/24 17:19:12

雷达测角基础
雷达测角基础

相位测角法两天线相位法测角原理图示中黑色倒三角,分别为天线1和2,当目标距离两天线远距离时,那么目标与两天线的连线,即黑色虚线和黄色虚线,可近似看为平行。以天线2向目标与天线1的连线做垂直线,即蓝色虚… · 2026/9/24 17:54:28

单片机物联网|毕设答辩|毕业设计项目|观赏鱼缸控制系统设计
单片机物联网|毕设答辩|毕业设计项目|观赏鱼缸控制系统设计

标题:观赏鱼缸控制系统设计文档介绍:1 绪论1.1 研究背景及意义城市化进程持续推进,现代都市居民的生活节奏变得更快,工作压力不断加大,人们对于精神文化生活的追求愈加强烈,在此情形下,观赏鱼养… · 2026/9/24 17:54:28

读书有感:“换位思考”新的解读
读书有感:“换位思考”新的解读

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 17:54:28

专利说明书的技术方案:先摆清要达成什么,再倒推哪几处非写不可
专利说明书的技术方案:先摆清要达成什么,再倒推哪几处非写不可

技术方案写不写到可实施,不看篇幅,看倒推得动不动:先把要达成的技术效果摆出来,再看每一处动作、结构与参数是被哪条效果逼出来的。落笔前有两样可先用:一样立起层级,交免费智能大纲;一样把结构… · 2026/9/24 17:54:21

DeepSeek    LeetCode 103. 二叉树的锯齿形层序遍历 Python3实现
DeepSeek LeetCode 103. 二叉树的锯齿形层序遍历 Python3实现

LeetCode 103. 二叉树的锯齿形层序遍历 Python3 实现 思路 与普通层序遍历相同,使用队列逐层处理。区别在于需要交替改变每层的遍历方向:维护布尔变量 left_to_right 表示当前层方向。每层用一个 deque 收集节点值:从左到右&#xff1a… · 2026/9/24 17:54:15

DeepSeek    LeetCode 103. 二叉树的锯齿形层序遍历 Golang实现
DeepSeek LeetCode 103. 二叉树的锯齿形层序遍历 Golang实现

LeetCode 103. 二叉树的锯齿形层序遍历 Golang 实现 思路 与普通层序遍历一致,用队列逐层处理。区别在于需要交替改变每层的填充方向:维护布尔变量 leftToRight 表示当前层方向。每层预分配 level : make([]int, size):从左到右&#x… · 2026/9/24 17:54:15

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码