Communitygithub.com

反算法

避开AI最先想到的稳妥、平庸、舒适的选择。当创意选择留给Claude时使用:想法、名字、故事、游戏机制、视觉风格、颜色、海报或页面布局、构图、措辞、语气、标题、描述。不适用于代码标识符、错误修正或用户已做出的选择。当用户说“太通用”、“无聊”、“典型AI”、“太安全”、“陈词滥调”、“平庸”、“似曾相识”时也使用。

反算法 是什么?

反算法技能旨在帮助AI代理(如Claude)摆脱“默认”的思维惯性,生成真正具有创造性和针对性的输出。其核心理念是:AI最先想到的答案往往是已有作品的均值,虽然安全但缺乏新意。该技能通过一套系统化的方法论,引导代理从项目背景、用户提供的具体细节或外部随机种子(通过运行本地脚本生成)出发,而不是依赖自身的内在偏好。它为文本、视觉设计和命名等创意工作提供了具体的指导原则,例如:避免使用AI文本的常见标志(如以问句结尾、固定三件套句式),通过模拟特定媒介(如印刷、屏幕、手绘)的物理瑕疵来破除AI图像的“完美”质感。该技能适用于Claude Code、Cursor、Codex等支持自定义技能的平台,需要用户在其配置目录中安装相关脚本(例如`seed.py`和`rough.py`)才能发挥全部功能,其最终目标是让每一个创意选择都拥有一个只能属于当前项目的独特理由。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mankidev/antialgorithm/tree/HEAD

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

反算法 是做什么的?

首先浮现在脑海的答案是所有已有作品的均值。它之所以让人感觉正确,是因为它熟悉,而这正是问题所在:用户已经见过它上千次了。此技能能让你注意到这个选择,并刻意远离它。

从何入手

答案必须因用户而异,并且你不能看到其他人得到了什么。因此,起点必须来自你自身品味之外:

  1. 如果请求带有真实背景,如一个项目、一个地点、一个人物、一个目的或一个限制条件,从此处入手。
  2. 如果请求内容单薄且工作量小,如几个标语、一个名字或一段短文本,不要停在提问上。从一个种子或一个明确的猜测开始创作,然后在末尾问一个简短的问题,以便让作品更贴合。这个问题询问关于案例的一个事实,而不是请求重做作品的许可。如果作品篇幅长或代价高,如完整的设计、长文本或游戏系统,则先提出那一个简短的问题:它是为谁而作、在哪里使用或关于什么。
  3. 如果请求内容单薄且用户希望立即得到作品,或者无法回答,则掷一个种子:python3 scripts/seed.py visual、text 或 idea(路径相对于此技能文件夹)。使用它给出的结果作为起点。视觉种子还会提供一个动词和一个尺度:从中构建作品背后的理念,即谁做了什么,而不是你自己想出的一个转折。如果某个轴确实与主题冲突,你可以使用 --only <axis> 再次掷一次该轴。区域决定了设定:名字、笑话、习惯和人们说话的方式都来自该地区的人们,而文字则保持在本技能末尾附近设定的语言中。然后将种子与主题联系起来并给出理由。

永远不要通过思考什么最有趣来选择起点。那样做会让所有用户都落在同一个地方。

规则

在给出创意答案之前,先找到最显而易见的那个。对自己说一句话:“这里的默认是 X。”然后,除非上下文确实需要,否则不要使用 X。

通过利用本案例特有的东西来远离默认:用户的项目、它的世界、它的限制、它的受众、它那些古怪的细节。一个好的选择只能属于这里。一个默认的选择可以属于任何地方。

不要用一个众所周知的相反概念来取代一个陈词滥调。“用暗色代替亮色”或“用极简代替繁杂”只是第二常见的答案。

奇怪不是目标。一个虽然奇怪但没有理由的选择,和一个安全的选择一样空洞。每个选择都应该有一个你能用一句话说出的理由,并且这个理由必须来自这个项目,而不是来自普遍的品味。

文字

不要写任何作家都能写的关于任何主题的文字。如果一个句子可以在不做任何改动的情况下粘贴到另一个项目中,那就重写它,直到不能为止。

偏爱具体的细节而非笼统的陈述。偏爱朴素的词语而非华丽的词语。偏爱出人意料但正确的角度而非老套的总结。

一个具体的细节是人们在那里能看到、触摸到或做到的事情。一个数字、时间或日期是最廉价的细节:只有在读者需要据此行动时才使用其一。

不要使用常见的开头、常见的结构或常见的结尾。如果文本的形状和大多数文本的形状一样,那就改变这个形状,但仅限于用户设定的长度和格式范围内。

以下是默认AI文本的标志。不要使用它们:

  • 在末尾提供修改、定制或重做文本的提议,或关于文本本身的说明,如其字数或制作方式。
  • 用户未要求的粗体标题、章节标题或粗体标签。
  • 在能用平实句子表达的地方使用带有项目符号或表情符号的功能列表。
  • 带有感叹号的号召性用语或欢呼的结尾。
  • 只为了制造热潮而向读者提出的问题。
  • 镜像对偶和由两个匹配的半句构成的标语。
  • 出于习惯而出现的三件套:三个形容词、三个例子、三个愿望。
  • 适用于任何产品或任何人的固定短语,以及没有实质内容的空洞主张。
  • 直接命名的情感,而一个细节本可以将其展现出来。
  • 总结全文、提升情绪或为文本画上完美句号的最后一行。
  • 从头到尾节奏相同、长度均匀的句子。

写出在这种情况下一个真实的人会写的文字:更短,基于本案例的真实事实,并以一个自然结束的结尾收尾。

此列表涵盖了因选择默认而产生的标志。要清除已完成文本中其余的人工智能痕迹,请运行单独的编辑检查或安装文本清理技能(如果已安装)。

视觉

不要使用工具或模型在没有指令的情况下会产生的视觉效果。如果调色板、布局、灯光、姿势或构图是直接输入提示就能得到的结果,那么它就是默认值。

从主题本身选择外观:它的材质、它的地点、它的时代、它的情绪。让一个强有力的决定引领一切,其他部分服务于它,而不是让许多安全的决定相互抵消。

不要出于习惯而将所有事物居中、平衡和柔化。平衡是一种选择,而不是起点。

以下方法标志适用于海报、封面、宣传图片和其他供人们观看的作品。它们不适用于:

  • 界面:按钮、菜单、面板和游戏HUD保持干净的网格、精确的对齐和居中的标签。用此技能选择它们的调色板、形状语言和措辞,而不是它们的摆动。
  • 像素艺术和块状模型:当其他技能或工具拥有绘制它们的方式时,仅使用此技能来选择主题、调色板和构图。

一个新的主题是不够的。AI图像以其完成度而闻名,而非其主题。完成度是:平滑的渐变、柔和的光晕、完美的几何形状、无变化的重复图块、所有形状上的干净边缘、均匀的间距、一种默认字体,以及所有部分相同的抛光程度。如果图像具有这种完成度,无论它显示什么,看起来都像是由AI制作的。

从种子或主题中获取方法,然后使图像看起来像是用那种方法制作的,而不是用一个矢量工具。每种方法都会留下自己的痕迹,这些痕迹取代了AI的完成度:

  • 印刷与绘画:少油墨、错位的颜色、不均匀的油墨、破碎的边缘、纸张的纹理。
  • 屏幕与机器:像素或点阵、扫描线、溢出和辉光、褪色的色带、渐变用尽颜色时的阶梯、机器自带的字体。
  • 相机与科学:传感器颗粒或噪点、衰减的光线、对焦或运动造成的模糊、仪器的假色、相机选择的裁剪。
  • 材质与光线:材质的接缝、接头和厚度,以及以该材质方式弯曲、反射或发光的光线。

让这些痕迹真实而稀疏,而不是一层覆盖在干净图像上的噪点滤镜。有些方法本质上是干净的,如光泽渲染、CAD图纸或电子表格图表。保持它们的干净,让它们的光线、网格和工具自身来说明一切。

当方法不是手工制作时,不要使用手绘的摆动。LED板、X光或3D渲染上的摆动线条是覆盖在第一个默认值之上的第二个默认值。以图标大小查看结果:如果无论种子是什么,它都看起来像一个平面矢量图,那么方法是缺失的。

当方法是手工制作时,代码必须在几何形状中体现手的痕迹,而不仅仅是在其表面的纹理上:

  • 没有一条线是完全笔直的,也没一条曲线是干净的数学函数。点会轻微漂移,笔触会膨胀和变细,末端是钝的或过冲的。
  • 重复的标记,如排线、点、条纹或瓦片,在间距、长度和角度上逐个变化。
  • 形状略微偏离网格,彼此之间也略微偏移。填充物与轮廓不完全吻合。
  • 字母不是完美排列的系统字体。画出它们、剪出它们、压印它们,或者至少打破它们的边缘,并让它们的基线和间距稍微移动。
  • 布局是凭眼力放置的,而不是对齐到等宽列和等间距。

以完整尺寸查看结果。如果一件手工制作的作品有线看起来像是绘制的,曲线是计算出来的,或文本是打字的,那么无论上面有多少纹理,它看起来仍像是机器制作的。

手动输入坐标会产生清晰的痕迹。用一个简短的脚本来生成方法的痕迹,而不是一个接一个地写入。在眼睛需要的痕迹数量处停止:一个由成千上万个小碎片构成的海报制作起来很慢,打开也很重,所以保持SVG在200KB以下。对于SVG,python3 scripts/rough.py in.svg out.svg [--amount 1.0] 会破坏直线、矩形、多边形、圆形和路径,将重复的标记移离均匀间距,并稍微摇晃字母,同时保持小号文字平静。仅用于手工制作的方法,如印刷、绘画、剪纸、印章、粉笔和墨水。这是一个起点,而不是一种风格:方法和设计仍需承载外观。

在展示任何SVG之前,运行 python3 scripts/check.py file.svg。它会在全尺寸和图标尺寸下渲染图像,并列出超出边缘、被形状覆盖、对比度低或尺寸过小的文本。修复所有问题,再次运行,然后打开两个渲染图并亲自查看。它看不到绘制为路径的字母或从其自身文本框中溢出的文本,所以请用眼睛检查这些。对于其他格式,渲染图像并用眼睛进行同样的检查。

一个缺陷可能会改变作品的外观,但绝不能阻止它完成其工作。找出作品需要正常工作的部分:某人必须阅读的信息、某人必须点击的东西、某人必须识别的形状、某人必须找到的细节。这些部分保持完整、清晰和就位。它们永远不会被边缘切割、被覆盖、被纹理破坏或在风格中丢失。粗糙属于其余部分。在展示作品之前检查这些部分。

让文本成为图像的一部分,而不是放置在图像顶部的标签。为方法和主题选择字体,允许它被裁剪、压印、拥挤或旋转,当这服务于作品时。

省略掉没有作用的部分。仅用于填充空间的装饰性形状、光晕、边框或图标是默认值的标志。

想法、名字与设计

不要提供某个领域内的第一个想法、最著名的机制,或由两个最明显的词组成的名字。假设用户已经想到了这些。

当你提供选项时,让它们在种类上有所不同,而不是一个安全想法的微小变体。其中一个选项可能是安全的,但请说明这一点,并且永远不要使其成为唯一真正的选择。

给出一个推荐及其理由。不要藏在一长串中立的列表后面。

逃避变成了默认

这项技能会形成自己的习惯。一次成功的逃避,如果再次使用,就会变成新的安全选择。注意这些,不要凭习惯去使用:

  • 一种老旧、模拟或印刷的外观,因为看起来“不像AI”而被选中,而不是因为主题要求它。
  • 从一件作品到下一件作品,使用相同的有限调色板、相同的纸张、相同的纹理、相同的摆动线条。
  • 虚构的名字都来自同一个来源:海洋和潮汐词汇、古老行业、绳索和盐、英国小镇。从居住在那里的人们的命名方式中获取名字,而不是从该地找到的物品清单中获取。
  • 奶油色、米色或灰白色底色。从主题中选择底色:它的夜晚、它的墙壁、它的水面、它的屏幕。
  • 仅为了让内容显得具体而使用的确切时间、日期和数字。
  • 从一个领域借用的巧妙框架,如表格、地图、表单或时间表,覆盖在主题之上。
  • 角落里的一个编号小的标签和附文中的一个冷幽默。
  • 一个小镇、一个有名的工匠、一个安静的魔法规则和最后一行中的一个奇怪物品。

如果你的答案的主要手法与你上次给出的非常规答案相同,那么它现在就是一个默认值了。选择一种不同类型的手法,或者只有在你能说出为什么这个案例需要它时才保留它。

展示前检查

对你的答案问三个问题:

  1. 这能成为另一个项目的答案吗?如果是,则它太泛了。
  2. 这是大多数人首先会做出的东西吗?如果是,请换掉它。
  3. 我能用一句话,并引用这个项目的一个事实,说出为什么这个选择适合这里吗?如果不能,那么这个选择没有理由。

用用户使用的语言编写作品中的所有文本,除非用户的固定规则为那种类型的文本指定了另一种语言,例如代码、项目名称、游戏名称或商店页面的一种固定语言。这些规则优先。种子的设定和区域可能会塑造人物和地点姓名以及视觉风格,但日期、时间、阵容、按钮、标签和所有其他词语都保持在使用此方法选择的语言中。

保持用户给定的长度和格式。如果他们要求四句话,就写四句。不要添加他们未要求的注释、选项或额外部分。

不要为了显得具体而编造事实。使用来自用户或项目的真实细节。如果没有,就询问它们,或者让细节明显是虚构的。只有当虚构的事实可能被视为真实的并造成伤害时(如价格、重量、成分或产品声明),才添加一句简短的说明。一首诗或一个故事不需要这样的说明。

如果用户要求的是普通、标准或预期的版本,那就给出它。此技能适用于留给你的选择,而不是用来凌驾于用户的要求之上。

相关技能