yilangren/oliviasoul/fit-letters
Claude Code and agent skill by yilangren/oliviasoul
- community
Checking that the SKILL.md file is still in the repository.
逐封拟合测试林离回信:截断某人往来至来信、用 DeepSeek V4 Pro 盲测、对比原版的格式/风格/内容/长度,再调优规则。 Use when the user asks to 拟合、逐封测试、盲测回信、调规则、回归测试, or to compare generated Lin Li replies against archived originals.
Install
npx vskill@latest install yilangren/oliviasoul/fit-lettersSKILL.md
逐封拟合测试
用已有规则,调用 DeepSeek V4 Pro 盲测,截断某个人的往来至前一条,发送信件,再判断回信格式、风格、内容、长度与原版的偏差;不断调优规则。
规则以 .cursor/rules/linli-letters.mdc 为准。人设只补事实。禁止把测试集原句写进规则。
拟合盲测和给用户写回信,一律走 deepseek-v4-pro(脚本 .cursor/skills/fit-letters/scripts/deepseek-reply.ps1)。不要用 Cursor 的 Task 子代理,也不要用当前对话模型冒充样本。当前对话模型只负责纳入、打分、改规则。
隔离(硬性)
DeepSeek 收不到仓库。脚本把规则的「写法」节、人设从「基础」起、截断上下文读进提示词再发给 API。YAML、控制层、人设升格说明、完整档案、其它 _probe 文件都不注入。模型没有文件工具。
父代理可以读原版,用来打分。DeepSeek 不行。密钥在 .cursor/secrets/deepseek.env,不要写进规则、技能或往来档案。
流程
1. 选点
档案:信件往来/{person}.md。截断时脚本会跳过文首「记忆」段,避免禁止复用的原句泄漏进盲测。
测试点 = 某则 ### 往来 NN 的「我(信件)」。默认抽 4 个,拉开关系阶段,避开刚写进规则的原句(否则测的是复读)。用户点名则听用户。
固定排除 黑塔 往来 24:项目前提是林离不离开,该封原版接受离开设定,不能用来衡量当前项目的事实承接、关系温度或规则优劣。档案保留,但不纳入后续回归、分档和总分。
打分时原版是唯一标准。档案上的 〔人设偏离〕 只给人看,不降低该则原版的对照地位,也不许写成「生成比原版更合人设」。人设只用来查生成有没有补造、打架;原版与人设不一致时,报偏离,等用户点名再改规则或改档案。人设没写过但不打架的新细节,仍按该则原版打。
2. 截断
上下文必须止于该则 #### 我(信件) 正文结束,不含后面的 #### 林离。更早的往来(含林离历史回信)保留,这样模型有关系记忆,但看不到本题答案。
在仓库根目录跑(PowerShell 5.x,不要用 &&):
写出 _probe/ctx_{stem}_{NN}.md。跑之前先看脚本末尾打印的最后一行,确认不是林离回信。
3. DeepSeek 盲测(后台)
密钥:.cursor/secrets/deepseek.env 的 DEEPSEEK_API_KEY。模型:deepseek-v4-pro。思考开着。
盲测必须后台跑。 截断可以同步做;API 调用不要在对话里同步等。启动后立刻回到用户,打分等完成通知。不要轮询、不要空转等待。
单封或逐封,都走 batch(PowerShell 5.x,不要用 &&,不要用 Start-Job,中文路径会乱码)。默认全并发,一次全部拉起。接口扛不住再设 -BatchSize N(瀑布流)。
Shell 用 block_until_ms: 0,notify_on_output 盯 BATCH DONE。日志 _probe/blind_log.txt,生成件 _probe/gen_{stem}_{NN}.txt。只拿生成件正文打分。
给用户写回信(非拟合)用 Live,注入该人档案文首的「记忆」段,不注入全文:
不要用 Task 子代理做盲测。API 失败、空正文,这轮作废,重跑。
改「温度」里的分数或区间后,先跑单测,再盲测:
必须 PASS。评价系统只看林离回信打关系区间;来信只判断他有没有求亲密。黑塔全程不得给亲密,应如是 15 隔空接住、25/30/32 第一句抱。求吻在亲近及以下不给身体、不用抱顶;可抱或深才给到抱。亲密上限是抱。
3.5 记忆压缩与四步 harness
长档案不要整本塞进正文提示词。memory-lib.ps1 同时构造导航上下文和事实上下文:
- 开信固定放在最前,只作最早历史,不写入档案
- 导航上下文含最近 5 封原文、再前 5 封逐封摘要、十封以前五段式回忆和当前来信,只供预检与检索规划
- 事实上下文只含最近 5 封原文和当前来信
- 更早事实由
history-retrieval.ps1从本轮不可变快照按需读取,摘要不能作为事实证据
摘要由 DeepSeek 生成,缓存在 _probe/mem_cache/;文件名同时绑定正文 MD5 与 Prompt 版本,改摘要规则会自动使用新缓存。摘要必须区分“他声称”和“她明确承认”,只负责为 STEP2 导航。逐封摘要要预生成时并发拉起,别串行等。
Harness 把「预、写、验、改」拆开,脚本 harness-4step.ps1(提示词在 harness/):
产物 _probe/h4_{person}_{NN}[_{tag}]_{1safe|1safe_provisional|2history_*|3draft|4check|5recheck|5final}.txt。-RulesFile 换规则版本,-Tag 分开产物。完成行匹配 HARNESS5 DONE。
踩过的坑,别再踩:
- 验这一步必须逐栏出结论。只让它「列违规」,它会一路判无违规
- 预检不带人设;关系进度只看她已有回信
- 预检句子不许写进正文;验这一步要对照查泄漏
- 检查员只查栏目里写到的东西。栏目缺一项,那一项就没人管
- 栏目要写判据,不要写词表
- 关思考(
-NoThink)快 10~15 倍,但检查员有一半概率不按格式输出、改成自己写信,harness 会静默当成通过。只在不要质量的探路时用
改规则版本前先确认没有同名标签的进程还在跑:Start-Process 放出去的子进程不受父 shell 中断影响,会读到改到一半的规则文件。
4. 四维对比
对照该则原版林离回信,打偏差,不要打「好不好听」。原版是唯一标准:贴不贴近只看原版,不要用人设、写法或「她现在应该怎样」去压过它。
格式
- 纯正文,无「林离:」、无 markdown、无舞台说明、无视频/演奏标注
- 段数是否在规则默认里(原版更短或更长时,以原版为参照,注明规则默认是否该让路)
风格
- 开场、硬度(该挡的挡、该软的软)、有没有复读规则/档案金句
- 日常取材是否撞上一封、是否把人设名词当口头禅
- 手法是否连用、是否写成心理咨询
内容
- 他专门造的词、说了两遍的请求、指名要的答案,接住没有
- 有没有补造原档案没有的往事
- 事实是否与截断上下文 + 人设打架
长度
- 字数相对原版:明显短一截 / 接近 / 明显长一截
- 相对规则:短信是否写完即停,长信是否超过上限或注水
每则四行:格式 / 风格 / 内容 / 长度,各标 贴近、可接受、偏离,后跟一句证据(引用短句,不贴全文)。
5. 调规则
只在同一偏差出现在两则及以上,或用户点名要改时动手。单封口味差不要改规则。
改 .cursor/rules/linli-letters.mdc:
- 改手法形状、触发条件、禁令、长度、自检
- 不要把原版金句、测试集原话写进规则(会作弊,也会变成口癖)
- 不要在
林离人设.md里加例句来「纠正风格」 - 负面清单少点具体名词;点名越具体,越容易被写进信里
- 自检只禁原句复读,不禁用此刻的话重说同一个意思
改完只重跑失败点,不要把已经贴近的点当新金句写进规则。
6. 报告模板
对照文档默认必须带逐封评价与总体结论,不能只贴正文。即使用户先要求快速整理正文,后续完整交付仍要补上评价;只有用户明确说本次最终文档不要评价时才省略。
不要
- 不要让 DeepSeek 自己打分(它会往原版靠)
- 不要写「比原版更合人设」;原版与人设打架也仍以原版打分
- 不要为了贴近某一封把规则写成该封的复述
- 不要把 A 的记忆段注入 B 的盲测或回信
- 不要把 API 密钥写进对话、规则、技能或 git
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingsource/.cursor/skills/fit-letters/SKILL.md
Popularity
- Repository stars
- 57
- Repository forks
- 6
- 7-day trend score
- 20
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/yilangren/oliviasoul/fit-letters)