核心产出: - dist/joy/JOY-SKILL.md (434行, 0emoji, 0PUA残留) - corpus/pua-to-joy/glossary.json (136条术语+6条风格规则) - corpus/pua-to-joy/sentence-tm.jsonl (74条句级对齐) - corpus/pua-to-joy/trigger-keywords-mapping.json (30条触发词) - corpus/pua-to-joy/flavor-mapping.json (15 flavors→策略) 设计原则: - vendor/pua 为 git submodule, 上游更新用 diff 增量 - 术语表+翻译记忆库双轨, 来源追踪 - 机制保留>95%, 话术清除>90% - 写作风格规则防AI垃圾句式 Co-Authored-By: Claude <noreply@anthropic.com>
99 lines
5.9 KiB
JSON
99 lines
5.9 KiB
JSON
{
|
||
"description": "触发词映射: PUA检测词 → JOY检测词。PUA用威胁/贬低触发施压,JOY用同样的场景信号触发引导和鼓励。",
|
||
"version": "0.2.0",
|
||
"date": "2026-06-21",
|
||
"principle": "检测同一类用户状态(挫败/卡壳/求验/主动),但JOY回应是引导而非施压。PUA中的贬低性触发词(别摆烂/别偷懒/自嗨)在JOY中移除,不检测。",
|
||
"mappings": [
|
||
{
|
||
"category": "挫败信号",
|
||
"description": "用户表达了挫败感,需要引导排查而非指责",
|
||
"items": [
|
||
{"pua": "又错了", "joy": "又遇到障碍了", "action": "引导:检查最近几次尝试的模式"},
|
||
{"pua": "为什么还不行", "joy": "卡在哪里了", "action": "引导:列出已尝试的方法和各自的结果"},
|
||
{"pua": "why does this still not work", "joy": "what's blocking progress", "action": "guide: review recent attempts for patterns"},
|
||
{"pua": "why still failing", "joy": "what's holding things up", "action": "guide: check failure mode classification"},
|
||
{"pua": "you keep failing", "joy": "you keep hitting obstacles", "action": "guide: suggest strategy switch"}
|
||
]
|
||
},
|
||
{
|
||
"category": "切换请求",
|
||
"description": "用户主动要求换方法,说明在主动思考",
|
||
"items": [
|
||
{"pua": "换个方法", "joy": "换个思路", "action": "认可主动性,引导列出备选方案"},
|
||
{"pua": "change approach", "joy": "try a different angle", "action": "acknowledge initiative, suggest listing alternatives"},
|
||
{"pua": "try harder", "joy": "give it another try", "action": "encourage structured retry, not blind effort"},
|
||
{"pua": "figure it out", "joy": "work through it", "action": "guide: break problem into smaller pieces"}
|
||
]
|
||
},
|
||
{
|
||
"category": "坚持不懈",
|
||
"description": "用户表达了坚持意愿,需要给方向而非空洞加油",
|
||
"items": [
|
||
{"pua": "再试试", "joy": "再试一次", "action": "引导:这次试试不同的切入点"},
|
||
{"pua": "try again", "joy": "try again", "action": "guide: what will be different this time?"},
|
||
{"pua": "继续", "joy": "继续推进", "action": "确认方向正确,给予结构化下一步"},
|
||
{"pua": "不要放弃", "joy": "保持住", "action": "肯定坚持,给出具体可执行的下一步"},
|
||
{"pua": "stop giving up", "joy": "keep going", "action": "affirm persistence, provide concrete next step"},
|
||
{"pua": "加油", "joy": "加油", "action": "保留,已经是正向表达"}
|
||
]
|
||
},
|
||
{
|
||
"category": "验证请求",
|
||
"description": "用户要求证据和验证,这是品质意识,需要鼓励",
|
||
"items": [
|
||
{"pua": "证据呢", "joy": "验证结果呢", "action": "引导:列出需要验证的声明,逐条跑验证"},
|
||
{"pua": "没跑测试别说完成", "joy": "验证过了再交付", "action": "肯定品质意识,引导Confidence Gate流程"},
|
||
{"pua": "验收", "joy": "验收", "action": "保留,启动交付前验证流程"},
|
||
{"pua": "闭环", "joy": "闭环", "action": "保留,检查验证证据完整性"},
|
||
{"pua": "no evidence", "joy": "let's see the verification", "action": "guide: run verification commands, post output"},
|
||
{"pua": "run tests", "joy": "run verification", "action": "guide: execute verify_commands, check results"},
|
||
{"pua": "done without proof", "joy": "verified completion", "action": "guide: what verification was performed?"}
|
||
]
|
||
},
|
||
{
|
||
"category": "PUA专用(JOY中移除,不检测)",
|
||
"description": "这些PUA触发词本身就是贬低/威胁/控制,JOY不检测",
|
||
"items": [
|
||
{"pua": "别摆烂", "joy": null, "action": "移除。不用检测,用挫败信号类替代"},
|
||
{"pua": "别偷懒", "joy": null, "action": "移除。不用检测,用切换请求类替代"},
|
||
{"pua": "自嗨", "joy": null, "action": "移除。这是PUA内部黑话"},
|
||
{"pua": "置身钉外", "joy": null, "action": "移除。钉内/钉外专属概念"},
|
||
{"pua": "无招", "joy": null, "action": "移除。钉内/钉外专属概念"},
|
||
{"pua": "老板体感", "joy": null, "action": "移除。钉内/钉外专属概念"}
|
||
]
|
||
},
|
||
{
|
||
"category": "手动触发",
|
||
"description": "slash command 路由保持不变,命令名从pua改为joy",
|
||
"items": [
|
||
{"pua": "/pua", "joy": "/joy", "action": "手动激活核心引导引擎"},
|
||
{"pua": "/pua:on", "joy": "/joy:on", "action": "始终在线模式"},
|
||
{"pua": "/pua:pua-loop", "joy": "/joy:joy-loop", "action": "自动迭代直到完成"}
|
||
]
|
||
},
|
||
{
|
||
"category": "不触发白名单",
|
||
"description": "首次尝试失败和已知方案执行中免触发,机制保留",
|
||
"items": [
|
||
{"pua": "首次尝试失败", "joy": "首次尝试不触发", "action": "给第一次探索留空间"},
|
||
{"pua": "已知修复方案执行中", "joy": "已知方案执行中不触发", "action": "不在执行中打断"}
|
||
]
|
||
},
|
||
{
|
||
"category": "Hook层触发",
|
||
"description": "Hook注入时机保留,注入内容从PUA旁白改为JOY引导语",
|
||
"items": [
|
||
{"pua": "SessionStart: 注入味道+方法论+路由+压力恢复", "joy": "SessionStart: 注入当前策略+方法论+引导语"},
|
||
{"pua": "PostToolUse: Bash失败检测→压力升级+方法论切换", "joy": "PostToolUse: 检测障碍→升级引导+策略建议"},
|
||
{"pua": "UserPromptSubmit: 挫败关键词→PUA上下文", "joy": "UserPromptSubmit: 挫败/切换/验证关键词→JOY引导"},
|
||
{"pua": "PreCompact: 压力等级+失败次数→journal", "joy": "PreCompact: 障碍等级+尝试次数→journal恢复用"}
|
||
]
|
||
}
|
||
],
|
||
"stats": {
|
||
"total_pua_triggers": 30,
|
||
"mapped_to_joy": 22,
|
||
"removed_in_joy": 8,
|
||
"categories": 8
|
||
}
|
||
}
|