815-2026.08.06.自然语言自动化—— 斜杠命令
上一节课呢跟大家讲了哈,你如何创建一个归机机器人啊,归机士兵啊,归机员工啊,甚至哈你可以想象一下,你可以去啊啊建立一个归机专家嘛,他要有专门的技能,然后呢他有专门的原则,对吧?
总言之到最后呢,他只不过是你的一个文件夹里的一个mark档文本文件,。
~/.claude/agents//.md
一个硅基劳动力(员工、专家、士兵、团队成员),本质上,就是一个文本文件而已
这个认知模型哈对你驾驭啊呃AI有巨大的帮助其实呢到最后啊你可以有很多的嗯归集劳动力。
然后呢,同时去干很多的事情。
然而呢,最终他们只不过是你的计算机上某一个文件夹里的一个纯文本文件对?
那这也是为什么哈我用了cloud code去做外 code没有多久啊,就决定给自己做一个工具,对吧?
就是我在 terminalmin里干活,然后随时我可以看那些啊文本文件啊,这就是为什么我会花那么长时间哈,写一个然后反复修改一个维护一个啊带minal带命列行啊啊呃这个终端的嗯mark干编辑器的原因。
所以呢不管我现在是用codeex还是用ud还是用这个这个啊,或者是那个Y就是原来的jamin啊。
那么我其实呢都是在啊我的码里面呢打开他们对吧?
然后呢我也可以同时打开多个workspace啊,有我比如说我是个建筑公司,那我就可以有多个工地,对吧?
然后呢,其实我都在码干活,为什么呢?
因为我的国际劳动力本质上来讲只不过是一个文本文件而已。
。
那昨天呢你已经建立了一个哈叫什么呢?
叫叫呃归接劳动力,对吧?
那么以后呢,你就可以哈建立更多的归接劳动力,对吧?
然后呢呃今天呢我们在讲另外一件事情,这个东西呢叫workflow啊,然后呢在这个cloud的语境当中呢,它曾经叫com,对吧?
啊,然后呢,现在他挪到了呃另外一个文件夹,叫在skis文件夹里,对吧?
但是呢名称并没有变,叫slash command,就是斜杠命令。
斜杠命令,slash commands
~/.claude/commands/* 或者 ~/.claude/skills//
Help me write a slash command:
…
这些斜杠命令是干什么的呢?
嗯,它是用来帮助你去做那些重复劳动的啊计算机的好处就是因为它是一个自动化机器啊吧?
呃你在生活当中能够遇到的重复任务啊,你都可以用计算机啊啊把它变成一个自动化的流程。
然后呢啊你一执行这个命令,它就啊把一系列的步骤啊,从头至尾的啊智能的完成。
description: Implement one or more plan files end to end — execute every work item, stamp each item’s finishing status back into its plan, audit the built code against each plan to close gaps, then run cc-suite:audit-fix for N rounds. Use when handed written plans and asked to ship them completely rather than partially.
argument-hint: “… [audit-fix-rounds]”
allowed-tools: Read, Write, Edit, Glob, Grep, Bash, TaskCreate, TaskUpdate, Skill
allowed-tools: Read, Write, Edit, Glob, Grep, Bash, TaskCreate, TaskUpdate, Skill
我给你看一个哈,我自己的呃斜杠命令啊,这个斜杠命令呢就叫Xq plan啊,它就执行计划的一个呃命令。
什么计划呢?
就是开发计划,对吧?
然后呢你打开它它是一个纯文本文件啊,文件头呢有一个from啊呃三个啊啊减号构成的破折线包起来的那一部分叫from,然后呢这个嘛当文件里呢开头啊抬头呢就写清楚它是干什么的,就implement one
or more plan files and end就是执行一个哈开发计划啊,从头至尾的啊完成对吧?
然后呢ex every work items啊就是每一个哈工作项目都要完成然后呢把每个项目呢啊都要标上哈完成的状态啊,然后最后呢呃这个还要哈啊进行若干轮的auic fix啊,就是审核代码。
审核代码,然后呢再去这个修改啊啊其中的bug,然后呢做三轮啊,这个啊命令是做N轮,对吧?
其实呢你可以指定。
Step 1 — Parse and validate input, or stop
Steps 2–4 run once per plan
Step 2 — Extract the work items
Step 3 — Implement each item, stamping status as you go
Step 4 — Audit the code against the plan, then close the gaps
Step 5 — Run audit-fix for the requested rounds
Step 6 — Final report
Rules
- Never mark an item
DONEwithout a verification step that ran. - Never widen scope past what a plan states. Note a needed change outside the plan under Outstanding work instead of making it.
- Never delete or rewrite existing plan prose — status blocks are additive.
- Report a failed check with its output. A test that fails is reported as a failure, not smoothed over.
- Stop and ask the user when a plan is self-contradictory, or when two plans in the batch contradict each other. Do not pick one reading and continue in silence.
然后呢你去看哈,其实呢嗯这个命令呢要求啊我的干活的那个助理啊就是cloud。
然后呢遇到这个命令的时候,给他指定一个计划文件,然后给他指定一个审计修订的次数轮数,对吧?
然后他就开始干活了啊,第一步干什么,第二步干什么,第三步干什么,第四步干什么,第五步干什么,第六步干什么,然后最后你看到了第六步要给出一个fin report,对吧?
那么这个呢就是一个自动化的流程,对吧?
而这个自动化的流程呢,你也不需要太智能哈,因为你不需要写的太智能,因为他本身很智能的去干这个事,所以你就一步一步写好。
当然了哈嗯其实呢我要告诉你的是,因为你有一个特别智能的助理,所以呢当你去创建一个这个呃com啊斜杠命令的时候啊,99.
99的情况下,其实是不需要你直接动手写的。
而是说啊你帮我写一个slash command我的要求是什么什么什么什么,然后呢,他就会帮你写。
Help me design a slash command called /execute-plan. It should:
- …
- …
- …
Please don’t start drafting the command immediately. First, help me clarify and refine its purpose, behavior, inputs, workflow, and expected output.
你要学会这种方法啊,这个方法呢嗯背后就是特别简单的一个原认知。
就是在指挥AI方面,你作为啊啊啊碳基生物啊,是远不如硅基生物的。
所以呢你不要哈自作主张的啊,动手去写这个东西而什么呢?
你需要一个什么东西的时候,你先跟你的硅基助理啊,求教,让你的归基助理改良你的想法,然后让你再让你的硅基助理去写。
在指挥硅基劳动力的方面,我们永远不如硅基劳动力… 作为碳基生物,我们一定要保持谦虚…
这句话真的非常非常重要啊,它是一个我们作为碳极生物的啊最重要的言认知。
因为我们要跟硅基啊劳动力啊产生良好的合作关系,对吧?
所以呢你要明白的,就是在指挥归及劳动力方面呢,我们是永远不如归结劳动力的。
因为他不仅现在比我们强,他还会变得越来越强,对吧?
所以呢作为碳极生物呢,我们一定要保持谦虚。
所以哈基本上你看到的啊我给你的嗯什么啊呃提示词啊,什么模板呐啊,甚至我将来给你看的哈,我自己写的这个软件啊啊都是归结劳动力干的,不是我干的对吧?
但是呢我比别的人多一件事情。
就是我比别的探极生物更为谦虚,然后呢,我比别的探极生物更了解啊,谁应该啊指挥归结劳动力。
然后呢,我应该如何跟归结劳动力打交道,这个才是我们课程的重点,。
所以你看哈之前的那个 plan这个这个斜杠命令lash command就不是我自己写的。
我是问他啊,我现在呢啊需要一个slash command help啊,你帮我去计划一下,然后我把我的要求简单的写了写对吧?
然后呢,我就跟他说啊 the comment你不要马上就开始写对吧?
me clarify and flow and我会让他帮我的,然后呢他就会帮我写一个哈比较完善的啊给我看然后我自己看了一遍之后呢,经常慨叹就是让我自己写不了这么好。
然后在干什么?
grill yourself,improve it.
等他写完了,我仔细看过之后啊,我可以觉得说可以了的话呢,就直接敲定。
但通常情况下呢,我不会直接敲定的啊,我甚至都懒得看啊,我就会说你自己拷问一下你自己吧,对吧?
然后呢改良他这个AI哈特别好玩的地方在哪里,很多人都在这被骗哈,就是上来他会给你的东西,然后你就觉得很好了,你就接受了啊,这是不行的。
哎,你一定要让他拷问一下你自己然后呢,他会做改良,他会说他上次哪没做好,你把那一块都仔细看了,在这个过程当中,你会学到很多思考的模式,。
如果你看不懂啊,那你就让他解释给你听啊。
然后呢,如果你有意见,你就讲给他听啊。
然后呢呃这个这个呃你也经常哈可以让这个啊比如说另外一个模型啊参与讨论。
总而言之,经过两三轮的折腾之后呢,他会一定会拿出一个哈相对特别有质量的啊这个这个文本。
。
然后这就结束了吗?
这肯定不是结束啊,就是当你在给AI写自然语言文本的时候,你可以让他写,对吧?
当然了,我们之前说过,就算他写的很好,我们也不会直接接受的对吧?
然后呢,还有另外一个重要的工作要做,就是要审核他,那怎么审核呢?
https://github.com/xiaolai/nlpm
install this plugin to user scope
你在你的cloud里面哈,你对你的cloud啊说一句话啊,你让他哈去看一看这个仓库,你给他一个网址就行。
然后呢,你跟他说instore this plug to user scope啊,你把这个插件呢啊放到这个这个呃呃全局范围啊,这个user scope就是全局范围与之相对的呢,就project就是你在一个文件夹里面啊,工作的时候,你把这个插件装到这个文件夹啊,也就是说在一个工地里干活时候装到这个工地是这么个意思啊
。
user/project
这个NLPM naturalural language programming manager啊是我在使用AI的过程当中为自己写的最重要的一个工具啊,为自己写的最重要的一个工具。
你用过就知道了,对吧?
呃他会哈他的原理是这样的,就是第一件事情是呢啊他去消除啊,他去消除所有自然语言可能产生的歧义啊。
第二呢是他去审核啊这个插件也好,自然语言命令也好,是否符合啊官方的设计规范。
- 检查自然语言的模糊与含混
- 检查文件格式是否符合官方规范
- 以及一些其他的可能存在的问题
你看啊有了AI之后呢,我们的教学方法也都不一样了,很多细节我都不用去讲的对吧?
啊,你可以打开任何一个哈新的这个ud codeactive section就是session,对吧啊,你可以跟他一起聊,然后你把这个链接链扔给他,然后呢,你让他去研究这个插件是什么你让他去研究这个插件是干什么的,你让他去教你啊呃呃这个插件是怎么用的对吧
?
啊,你让他哈去分析一下这个插件哪写的不好,对吧?
啊,如果你写的话,你应该怎么去写都是可以的对吧?
啊,总言之,我有这么一个插件。
这个插件哈是不可或缺的插件。
为什么呢?
因为今天你在跟计算机沟通的时候所使用的语言叫自然语言,这个自然语言和格式化语言,就是编程语言略微有些不同,他需要一些特别格外需要注意的地方,但究竟应该注意在哪呢?
你完全不知道,于是呢你可能发出的都是模糊的指令相互冲突的指令,但是你自己都不知道,对吧?
然后呢,你把这个AI带歪了啊,他也不知道,他也不知道提醒你但是有了这个自然语言管理工具呢,哎,你的指令就会相对的更加清楚啊,你的格式啊就会啊啊啊不会出任何问题。
这个NLPM啊啊现在在gub上嗯呃很多仓库哈都被他审审计过。
然后呢呃提交了很多的哈修改意见,对吧?
接受他的修改意见的公司啊,包括open aI的插件,包括这个啊google的插件啊,包括微软的插件,包括千牛的插件,对吧?
包括cloud fly的插件,对吧?
呃,没不接受,是因为他不接受外部修订。
好了,把话说回来啊,昨天呢上一节课呢我们讲的是哈你如何创建一个归结劳动力,对吧?
那今天呢我们讲的是什么呢?
你如何哈呃呃创建一个就是由归结劳动力去完成的批量的任务,一个复杂一点的流程,步骤多一点的流程。
而最终呢他只不过是啊你的指挥部里的一个这个呃mark down啊呃纯文本文件对?
然后呢,他跟普通的程序不一传统的程序不一样的地方在于哪里呢?
他其实可以不那么严格,对吧?
你刚才看到的第一个例子是什么呢?
就是全都是这个这个啊步骤啊,一共六步完成六步,这个工作就完成了,对吧?
所以你不用哈在那指挥他6次啊,一口气,他把这个六步都完成。
description: Fix issues properly - no patches, no shortcuts, no regressions
Context
$ARGUMENTS
Fixing Philosophy
No half measures. Every fix must be complete and correct.
Principles
- Understand before fixing - Read the code, trace the flow, identify root cause
- Fix the cause, not the symptom - No band-aids, no workarounds, no “good enough”
- Rewrite if necessary - Bad code deserves replacement, not patching
- TDD when appropriate - Write failing test first, then fix, then verify green
- Zero regressions - Run existing tests, don’t break what works
- Clean as you go - If you touch it, leave it better than you found it
Anti-patterns to Avoid
- Adding flags to bypass broken logic
- Wrapping bad code in try-catch
- Commenting out problematic code
- Adding TODO for “later”
- Special-casing edge cases without fixing core issue
- Copy-pasting fixes across similar code
Process
- Reproduce - Confirm the issue exists
- Diagnose - Find root cause (not just where it crashes)
- Test first - Write test that captures the bug (if testable)
- Fix properly - Address root cause, rewrite if needed
- Verify - Run tests, check no regressions
- Clean up - Remove dead code, update comments if needed
When to Rewrite vs Patch
Rewrite when:
- The existing code is fundamentally flawed
- Patching would add complexity
- The fix requires understanding fragile logic
- Similar bugs have occurred in this code before
Patch only when:
- The code is sound but has a small oversight
- The fix is isolated and obvious
- Rewriting would introduce unnecessary risk
那么呃这个呃斜杠的命令呢,还有另外一个用法,就是他不是讲步骤,他是讲原则,对吧?
然后呢呃这个这个这是我什么时候用的呢?
就是当我去让他去啊审核自己代码的时候呢,他会找出一大堆的这个可能的问题,对吧?
然后呢他会修复一部分,然后呢,另外一部分告诉我说哈这个这个呃这一轮哈嗯不可以修复他们啊,这就很气人,对吧?
所以呢我就写了个这个lash对吧?
啊,然后呢告诉他说啊,这个no measures啊,不不许哈不许这个中途对付上,对吧?
fix everything对吧?
every must be complete and correct。
/fix all
所以每次他那么说的时候呢,我就发一个slash fix,后面写上这个all,对吧?
把所有的都给我修了,少废话。
/clean-up-your-own-shits
我最近还写了一个这么简单的这个lash,就一句话,对吧?
为什么呢?
就是因为你让他去干活的时候,他会说哈他发现了一个问题,但这个问题呢啊不是我造成的啊,是之前的工作造成的叫preex issues啊,ex等等等等啊,这个特别气人,因为给我干活的就他嘛,对吧?
然后呢他说哈这个事啊不归他管啊,是以前的问题,对吧?
所以呢我就干脆哈写了一个clean up your own shit这么一个这个这个这个谁干命令对吧?
我就告诉他说其实啊我发出这个命令的时候,就是在告诉他说所有那些preex issues是你自己的 shit啊,clean them up properlyno have measures,对吧?
啊收拾干净。
讲到这里哈有个特别好玩的事情啊,这个在中文的世界里哈,有一个这个在近些年流行的这个词叫撒狗粮,对吧?
啊,撒狗粮。
然后呢,我一直不知道这个话的来历是什么。
后来呢因为做软件工程呢啊,然后在里面明白了一件事情,就是它是一个被用错了的啊,被翻译错了,然后被一直用错了的啊呃外来语。
dogfooding your code…
就是你写工程的时候呢哈,他经常会说its better to duck food’s better to duck food your own code啊,这个意思是说哈就说啊你自己写的程序,你要自己用它啊去做一些工作,哎,这是特别好的一种方式,对吧
?
这个ducking是什么意思呢?
啊,它不是简单的给狗啊,喂狗粮啊,它不是这个duck fooding啊,的意思是说狗骂狗是自己拉屎也自己吃的对吧?
啊,所以呢就是他的意思是说啊这个这个啊呃一种递归的方式。
比如说我自己写完这个NLPM,然后呢,用我的这个NLPM插件去检查我自己的这个NLPM写的是否足够好,能不能按他的要求打100分啊,这个就叫do对啊,就是啊狗吃屎是一种递归,你知道吧?
。
所以撒狗粮这个就是翻译错了啊呃,他的意思本来应该是什么?
你自己得屎你自己湿干净,对吧?
这么个东西对吧?
OK啊,把话说回来哈,所以呢就是说比如说这个slash啊可能是一句话,可能是一个原则,也可能是一个步骤。
- 一句/几句话(需要你重复说的)
- 一个/几个原则
- 一个/几个流程
就这些呢你都可以哈把它当做一个啊斜杠命令啊,保存起来。
到最后呢它就是你那个呃呃呃呃点 cloud文件夹里的一个文本文件,然后呢,你就随时可以通过哈输入一个斜杠,然后呢啊调出这个命令,对吧?
你用过你就会知道了,你不需要输你那个命令的名字可以很长,但是呢你不需要输入那么多字符啊,它是fa matching,就是呃你可以哈随便输入几个那个命令里存在的字符啊,它就可以哈锁定啊具体的命令行。
slash commands 是 fuzzy matching 的。(你又多学了一个概念)
然后呢啊你你你在系统里写的那个slash command是可以被你的agents调用的对吧?
比如说哈嗯你可以在你的agent呃说明文件里啊,这个这个让他执行某一个啊slash command,然后再执行另外个slash command也是可以的。
agents 也可以调用你设定好的 slash commands
当然了,这节课听过之后,哎,你会发现说哈你确实可以用自然语言写很多的自动化命令,对吧?
那么这些呃slash command究竟是怎么工作的?
然后呢,它的作用是什么?
写他的时候要注意什么,对吧?
你想有了解的话呢,就很简单,对吧?
你再去问你的助理啊,当然了我们之前有过一个哈呃写教程的模板对吧?
然后呢你在那模板里添上啊啊lash command啊,然后呢,他就会教你。
所以到最后啊由于哈我们的学习目标、学习方法都发生了变化。
在我们的课堂里,我最多的讲的啊不是how,也不是 why啊,而是what那你知道了一些概念。
那你那一瞬间你的搜索空间就变大了。
然后呢,你就可以去了解这个概念,剩下的就是你阅读的事情了。
在另外一个呢,不要以为英语哈是障碍对?
呃,其实今天呢呃呃呃各家的这个AI处理中文都已经非常的这个呃好了啊,然后呢处理中文呃,然后用中文说明也基本上都没有问题了。
你能用英文,你就用英文,对吧?
你你你不能用,你就暂时用中文对付一段时间。
好,今天的课程呢就到这里啊,然后我们下次课程再见。