十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

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

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),仅供参考
返回列表