标准没有方向(长文警告)
---
最近整理 Skill 的时候,我感知到,几乎所有的 Skill,都是正反可用的。
什么叫正反可用?我就拿编剧审查清单 Skill 来说。放在下游用,它是份审查工具。我把剧本丢给它,它给你一份踩雷报告,哪儿哪儿有问题对吧。
那放在动笔之前呢?把它当设计约束,逐条避开,它就是项目启动前的边界条件清单。有点像我一开始做的悲剧叙事哨兵 Skill,放在上游,它让输出只要开始滑向甜宠,就立刻会让角色进入防御(这个规则我的 Skill 做得很硬)。同一份东西,放在流水线末端叫产出质检,放在开头叫避坑预警。
再比如五维提示词引擎 Skill,我做的时候就设计成了正反可用,既是复杂任务的提示词增强器,也是输出质量评估器。一个 Skill,承担两种功能。
先统一一下口径:下文我不说哪头叫"正"、哪头叫"反",只说 **上游** (动笔之前)和 **下游** (出活之后)。"正反可用"留着当这个性质的名字,但别问我哪头是正哪头是反,既然标准本来就没有方向,称呼上就不必给它排座次。
---
想到这一点,我就开始琢磨了,是不是所有的 Skill 都有这个特性,而且凭什么能正反可用?
后来想明白了。因为 Skill 存的不是动作,是标准。
动作是有方向的。帮你写、帮你改、帮你审,方向错了就什么都不是。但是标准没有方向。比如"什么是好剧本",这句话放在下游,它是验收器;放在上游呢,它就是设计图。里面的内容一个字都不用改,换的是你用它的时间和位置。
不过这里得停一下,不然后面会骑快马。可逆的标准,大多是 **约束式** 的,写的是必要条件:别踩这些雷。约束放在上游当围栏,放在下游当筛子,两边等价,因为它们是同一个"不许"。但"好"的 **充分条件**,也就是怎么把它构造出来,并不在这份文本里。逐条避开所有雷,得到的是不烂;得到好,还得靠人。
所以更准确的说法是:标准写得越否定式、越约束式,两头就越硬通;写得越像配方,先 A 后 B 出效果 C,那就越只跑得动一个方向。我曾经说过"能跑不代表能交付,更不代表品味对了",其实就已经摸到这一层了,只是当时还没把它喂回今天的主论点。
那么想通这一层,我之前说过的一句话,或者说方法论就接上了。
---
还记得我说过吗,在特定场景下,比如模型的应用层面,方法论榨取的是性能的剩余价值,Harness 购买的是鲁棒性的保险丝。
现在看,这两个东西根本不是两种知识,是同一条标准的两个位置。同一个 Skill,你放在上游,它按流程帮你把事情做好,它是方法论;你放在下游,它帮你守住及格线,它是验收器。严格点讲,Harness 的"守"有两种形态:前置的约束是保险丝,触发即断;后置的验收是质检,不合格就拦在门口。方法论和 Harness 说的是属性和目标,Skill 是知识的存储形态,位置是使用的时候才选的。
这在知识型 Skill 里几乎是完全成立的。
而且这也解释了一个我写东西的老问题。比如我用模型的长会话模式写一个故事,从一开始会有两个选择,一个是自然流动,一个是结构先行。前者情感丰满,但因果链、物件链可能不完美。后者结构标准严谨,但情感方面可能欠缺。两种不同的方案驱动出来的长会话叙事,后续改编环节补的东西不一样。
而结构先行是我通过几十个长会话叙事不断的碰撞后才学会的,这让我能够用极强的控制在长会话叙事里得到直接能用的剧本化故事,这就叫前置严谨。我把传统擅长情感流动的长会话所导致的天生要后补的结构缺陷,放到了创作故事前来完成。
前置严谨是后置练出来的壳在做前置工作。为什么壳能前置?因为标准天然可逆。你写完一个东西拿标准去查,查多了,这套标准自然就长在你脑子里了。下次动笔之前,这套内化在我脑子里的方法论自动就变成了约束。那四篇方法论提到的故事里,《山楂味的》是我写完之后发现结构有缺陷,是我后补出来的工整,而《丈量》则是一气呵成,没有再做后补的严谨,这中间隔的不是功力见长了,更不是说我的写作水平提高了,只不过是同一套标准从后置换到了前置。
---
当然,Skill 正反可用这个观点一开始我还想岔了。
我最初觉得,有一类 Skill 是反不过来的。比如发微博的 Skill,比如搜索的 Skill,比如把音频做成音游的 Skill。这类东西封装的是**通路**,不是标准,它产出的是一个实实在在的文件,怎么反过来用?
后来我仔细想了想,发现对了一半:不是反不过来,只是反过来跑的不是 Skill 本身,是从它身上派生出来的那份执行规格。
拿 PRD 或者 SOP 来说。这个东西,既是需求,同样也是验收标准。你写"先 A 再 B 再 C",表面上是操作步骤,实际上它隐含了一串断言:A 做完应该有产物 x,B 吃 x 吐出 y,最后终态是 z。
ABC 是执行的流程和步骤,xyz 是产出的中间件和结果。
按规格把通路跑一遍,ABC 是生成器的规格;拿同一份文档去核对成品,xyz 就是验证器的规格。你完全可以逐条验证中间的 xyz 对不对。只有一件事得当面说清:锚点对,不等于过程对。同样的 xyz,很多条路都能凑出来,运气也能凑出来一次。锚点核对保的是"没明显没做",不是"做对了"。这就是我前面那句话:能跑不代表能交付,更不代表品味对了。一份文档,两个消费者。
---
到了编程里的流程也是一样。一段自动化流程跑完了,你拿流程文档反过来验收。注意,不是严格地一步一步倒着重跑,那样不光成本太高,而且很多步骤是有副作用的。发帖、写文件、花钱,重跑一遍都是真实成本。正确的姿势是抓关键的步骤和大局:关键步骤就是中间态锚点,也就是 xyz 这种东西在不在,它们用来反馈 ABC 是不是正确;而大局就是终态,看终态达没达成。
这就是天然的 Loop 循环。
---
所以分类其实是这样的。
> 知识型的 Skill 直接存标准,上游按标准生成,下游按标准评判,同一句话用两遍,验的是质,好不好。
> 工具型的 Skill 存通路,上游沿通路执行,下游拿从规格里派生出的断言去核对,验的是迹,做没做、做全没。
注意,这是两种"正反可用":一个是标准直接复用,一个是从通路里派生验证面。前者可逆,是因为标准没有方向;后者可逆,是因为任何跑得通的通路,都自带断言。
区别还在下游的硬度。知识型的下游是行使判断力,品味这个东西不一定能硬编码进去,可能得人在那儿站着。工具型的下游是机械核对,完全可以写成 Assert,塞进流程里自动跑。能自动化的部分是保险丝,不能自动化的部分,人就是保险丝本身。
---
所以这个性质顺手给了我一个挺简单的测试。写完一个 Skill,正反都读一遍。
正向看它教不教得会东西:能不能读出方法论,能不能照着把活干出来。反向看它守不守得住:能不能读出一份判断标准或者一张清单,拿它真能毙掉一次不合格。
能读出标准的是知识型,能读出清单的是工具型,两头都读得出来,这个 Skill 就算立住了。要是反着读什么都读不出来,那它就不是 Skill,一段一次性 Prompt 的事,没必要做成 Skill。
---
模型的能力越来越强,按现在的情况来说,模型几乎能正向生成一切,对吧,这句话现在不算夸张。写代码、写方案、写剧本,都行,强得可怕。但"什么是好"的检验器,这个东西反而是稀缺的。
所以一个 Skill 做完,你要是反着读还能成立,我觉得差不多就是你具不具备判断力的定义了。但反读成立只是门票,它不是成绩,它没法说明好不好。真进了门,决定一个 Skill 值不值钱、做得怎么样的,是反读出来那份标准的质量:它到底是你验收能力磨出来的真尺子,还是印上去的刻度。所以别只看它正着能不能跑,你先反着读一遍;读得出来,咱们再谈值不值钱。
---
最后,我曾经说审美类的项目,没法走 Loop。现在我想,这话特么得收回来一半。
审美本身仍然不进 Loop,这不是我狭隘,我也没办法,这是几乎所有人的共识,连模型自己都反驳不了。真正能进 Loop 的是两样东西:
> 一是已经被降级成可枚举规则的那部分品味。甜化倾向就是一个,所以我的悲剧叙事哨兵 Skill 参与完悲剧故事的生产后,放在下游核对里面的角色有没有出现甜化倾向,再结合剧本锻造 Skill,Loop 循环就开得起来。
> 二是写得进产出的那部分审美,直接硬编码成禁区:在 Agent.md 里写,这里的留白是故意为之,那里的不对称是故意引导。但注意,这类编码不是验收,是一种针对你审美偏好的保护措施。它禁的是 Loop 伸手来"修",它并不保证没被修的东西是好。
所以准确的说法是:审美被移出 Loop 的搜索空间之后,剩下的结构和规则,跑得起 Loop。
延伸到图像生成和视频生成的流程里,在有多模态模型参与的前提下,只要你参与在结果的预定义里,Loop 也就能成立。而这个成立的前提,恰好是 Human in the Loop。
审美的本体看似坐在环外那把椅子上,坐在屏幕前,但在一开始,其实你就已经进去了。这不是这套机制的缺口,这就是机制本身。永远不要把自己,放在 Loop 之外。