Summary
生成《克苏鲁的呼唤》7 版中文调查员角色卡,使用 480 购点制,并输出合法 JSON 或可打印 HTML;HTML 可按需求渲染为彩色模式、纯黑白打印模式,或留空幸运方便现场掷点。用户提到 COC/CoC/克苏鲁的呼唤/跑团/调查员/车卡/角色卡/480buy/480购点/7版/可打印…
tanis90/coc-cardwright · Archived
生成《?
npx skills add tanis90/coc-cardwright --skill coc-480buy-card
生成《克苏鲁的呼唤》7 版中文调查员角色卡,使用 480 购点制,并输出合法 JSON 或可打印 HTML;HTML 可按需求渲染为彩色模式、纯黑白打印模式,或留空幸运方便现场掷点。用户提到 COC/CoC/克苏鲁的呼唤/跑团/调查员/车卡/角色卡/480buy/480购点/7版/可打印…
This repository is archived — consider an actively maintained alternative.
Full Sentry SDK setup for Apple platforms (iOS, macOS, tvOS, watchOS, visionOS). Use when asked…
2.9K installsMigrate KMP projects from CocoaPods (kotlin("native.cocoapods")) to Swift Package Manager (swif…
1.4K installsFull Sentry Snapshots setup for Apple/Cocoa projects. Use when asked to "setup SnapshotPreviews…
385 installsDeclared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.
main
Files included with this skill beyond the listing page.
SKILL.md
19,821 B
README.md
1,325 B
SUMMARY.md
878 B
本 skill 是一个轻量操作指南:它不内置 Python 源码,而是指导 code agent 从 GitHub 获取并调用 coc-cardwright Python CLI。模型负责人物编辑、角色弧光、数值取向和背景写作;点数预算、本职技能、上限、衍生值和渲染必须交给 CLI 校验。
先读取本目录的 ENGINE_REPO.txt 获取 Python CLI 仓库地址。默认是:
https://github.com/tanis90/coc-cardwright.git
如果 ENGINE_REPO.txt 不存在或仓库地址不可用,向用户确认仓库地址;不要猜一个新的 GitHub URL。
优先复用当前工作区已有的 coc-cardwright / cocgenerator 项目。如果没有,就从 ENGINEREPO.txt 指向的仓库 clone。
推荐放在当前工作区的工具目录,例如:
git clone <ENGINE_REPO> .coc-cardwright
python -m pip install -e .coc-cardwright
如果用户不希望全局安装,创建项目内虚拟环境再安装:
python -m venv .coc-cardwright-venv
.coc-cardwright-venv/Scripts/python -m pip install -e .coc-cardwright
Windows 也可以使用:
py -3 -m pip install -e .coc-cardwright
安装后优先调用 coc 命令;如果 PATH 没刷新或找不到 coc,进入仓库后用 Python 模块方式调用:
python -m coc_generator --help
CLI 是本 skill 的规则入口。它能做四类事情:
jobs:列出所有可用中文职业名,返回 JSON 数组。job "<职业名>":查看某个职业的职业点公式、信用评级范围、本职技能和技能说明。verify <json>:校验角色 JSON,返回 valid/errors/warnings/derived。这是生成角色卡前必须通过的步骤。render <json> -o <html>:在 JSON 校验通过后渲染双面 A4 可打印 HTML 角色卡,默认彩色模式。render <json> --style mono -o <html>:渲染纯黑白打印模式,适合低墨量或不需要彩色的打印场景。render <json> --blank-luck -o <html>:渲染时留空卡面幸运值,适合玩家现场掷幸运;JSON 仍然必须包含合法 luck 并通过校验。不确定命令或参数时,先调用 CLI 自带 help,而不是猜参数:
coc --help
coc verify --help
coc render --help
coc job --help
如果 coc 不可用,就在 Python 仓库目录下调用:
python -m coc_generator --help
python -m coc_generator verify --help
python -m coc_generator render --help
python -m coc_generator job --help
常用例子:
coc jobs
coc job "私家侦探"
coc verify character.json
coc render character.json -o character_card.html
coc render character.json --style mono -o character_card_mono.html
coc render character.json --blank-luck -o character_card_blank_luck.html
一张好卡不是“职业 + 点数 + 背景段落”的拼接,而是一个可被玩家立刻拿去扮演的人。生成时先建立人物的内在张力,再把张力翻译成数值和卡面字段。
每张卡至少要有下面四层:
写作要具体,避免泛泛的“冷静理性但内心善良”“背负神秘过去”“命运让他卷入事件”。每个重要设定都尽量落到可见物、具体人、具体地点、可扮演习惯或可检验的选择上。
当用户只给出宽泛概念,或说“你来发挥”时,不要立刻写完整角色。先用苏格拉底式追问帮用户发现角色核心。每轮问 3 到 5 个短问题,问题要迫使用户做选择,而不是填写设定表。
提问顺序按编剧逻辑推进:
用户概念很模糊时,优先问这些:
有了身份和目标后,追问矛盾:
背面字段比数值更影响扮演,要用问题把它们问出来:
important_person:谁的一句话最容易让他失去冷静?这个人对他有什么索取权?important_place:哪里一旦被毁、被卖掉或被污染,他会做出不理性的事?important_item:他身上哪件东西不是最贵的,却最不能丢?它证明了什么,也掩盖了什么?belief:他在危险时会用哪句话说服自己继续前进?trait:桌上玩家能反复演出来的小动作或习惯是什么?scar:哪次失败或伤害让他现在仍然付账?madness:压力到来时,他是控制、逃避、讨好、攻击、麻木,还是反复确认某件事?在写卡前,用一个选择题确认弧光:
先决定人物弧光,再决定数值,而不是先堆强项。属性和技能要成为人物的证据。
如果数值和叙事冲突,优先修改其一,让它们对上。例如背景写“笨拙的书斋学者”,就不应给出毫无解释的高 DEX 和大量近战技能;如果确实需要高 DEX,就写清楚它来自装订、制图、外科、魔术或别的具体训练。
角色卡里可写的部分默认都要填,不要留下空字符串、空数组或只有占位语的字段,除非用户明确要求空白卡。
必须完整写入:
basic:姓名、玩家、职业、年龄、性别、故乡、时代。玩家未知时用用户给出的称呼;仍未知可用“玩家”。weapons:至少给出与人物相符的一种攻击或自卫手段。非战斗角色也可以是手杖、小刀、拳击、随身工具;不要强塞不合身份的枪。items:写 5 到 8 件随身物品,每件都要像这个人会带的东西。assets:现金、消费水平、总资产、资产详情都要填,并与信用评级一致。friends:写 2 到 4 个联系人,最好包含至少一种可被 KP 使用的关系张力。experienced_modules:新角色可写“尚未经历正式模组”;老角色则写具体经历。background 的 9 个字段全部要写:形象描述、思想与信念、重要之人、意义非凡之地、宝贵之物、特质、伤口与疤痕、精神症状、个人介绍。背面的背景字段不是装饰文本,它们是玩家在桌上做选择的按钮。写这些字段时,优先考虑“玩家看见这一项后会怎么演”,而不是“这段话是否好看”。
每个关键背景项都要承担一个桌面功能:
belief 思想与信念:给玩家一个做决定的原则。它必须能在危机中被挑战,例如“证词比血缘可靠”会在亲人撒谎时变成冲突。important_person 重要之人:给 KP 一个可施压的关系。写清爱、亏欠、竞争、误解或控制,避免只写“很重要的朋友”。important_place 意义非凡之地:给角色一个归属或软肋。地点应该能被污染、夺走、烧毁、出售或揭开秘密。important_item 宝贵之物:给玩家一个可触摸的心理锚点。物件最好能在场景中被拿出、隐藏、交换、损坏或误认。trait 特质:给玩家一个可重复表演的小动作、说话方式或决策偏好。它要能影响调查方式,而不只是形容词。scar 伤口与疤痕:给角色一个过去仍在索债的痕迹。它可以是身体伤痕、职业污点、家庭裂痕、公开羞辱或失败案件。madness 精神症状:给恐惧状态一个可演的表现。新角色不必已经疯狂,但要写出压力下的反应模式,例如失眠、洁癖式整理、反复确认门锁、听到某类声音时僵住。appearance 形象描述:给其他玩家第一眼能抓住的表演线索,包括姿态、衣物磨损、说话停顿、随身气味、手部习惯。description 个人介绍:把上述项目串成一个可跑团的人,而不是另写一份简历。设计背面字段时先做“关系压力测试”:
至少让 3 个背面字段彼此牵连,形成可玩的三角关系。例如:重要之人送的宝贵之物来自意义非凡之地,而伤疤正是为了保护那个人留下的。这样玩家每次触碰物件、回到地点或见到联系人,都会重新面对同一个弧光问题。
背面字段要反向约束数值:
如果背面字段和数值冲突,不要只改文字糊过去。要么调整数值,要么写出冲突的合理来源,并把它变成弧光的一部分。
背景字段的质量标准:
appearance:写可被画出来的外观、姿态、衣着或小动作。belief:写能指导选择的信念,不写抽象口号。important_person:写清关系、亏欠或冲突。important_place:写为什么这个地方不能失去。important_item:写物件的来历和情感功能。trait:写可扮演的习惯或缺陷。scar:可以是身体伤疤,也可以是社会性伤口,但要具体。madness:新角色也要填,可写潜在压力反应或“尚无明确症状,但在……时会……”,不要空着。description:用一段 120 到 220 字的中文概述人物,交代身份、欲望、伤口、弧光问题和进入调查的钩子。写作风格要克制、可扮演、带细节。不要把每个字段都写成小说独白;角色卡需要的是能被玩家和 KP 快速抓住的线索。
coc-cardwright CLI,然后先跑 coc --help 确认命令可用。coc jobs;分配职业点前运行 coc job "<职业名>" 查询职业公式、信用评级范围和本职技能。coc verify <json>。如果 valid 不是 true,根据错误信息修改 JSON 后再次校验;修正数值时不要破坏已经建立的人物逻辑。coc render <json> -o <html>,生成双面 A4 可打印 HTML。默认用彩色模式;用户要求黑白、纯黑白、低墨量或适合普通打印机时,使用 coc render <json> --style mono -o <html>;用户要求现场摇幸运、幸运留空或开局再掷幸运时,使用 --blank-luck。用户明确要求两套时分别输出彩色和黑白两个 HTML。这些提醒只是辅助记忆;最终规则以 coc verify 的结果为准。
使用下面结构作为文件契约:
{
"basic": {
"name": "角色姓名",
"player": "玩家名",
"job": "职业名",
"age": 32,
"gender": "男",
"hometown": "故乡",
"era": "1920s"
},
"attributes": {
"str": 50,
"con": 50,
"dex": 60,
"app": 55,
"pow": 50,
"siz": 65,
"edu": 70,
"int": 80
},
"luck": 60,
"credit_rating": 25,
"skill_allocations": {
"pro": {},
"interest": {}
},
"weapons": [],
"items": [],
"assets": {
"cash": "",
"consumption": "",
"assets": "",
"items": ""
},
"mythos": 0,
"friends": "",
"experienced_modules": "",
"background": {
"appearance": "",
"belief": "",
"important_person": "",
"important_place": "",
"important_item": "",
"trait": "",
"scar": "",
"madness": "",
"description": ""
}
}
用户要求生成角色卡时,默认在当前工作区创建文件;如果用户指定目录,则写入指定目录。文件名应清晰可读,例如 investigator.json 和 investigator_card.html。
如果用户只要角色数据,生成并校验 JSON 后即可停止;如果用户要求可打印角色卡,还要渲染 HTML。未指定样式时输出默认彩色 HTML;用户提到黑白打印、纯黑白、省墨、复印友好或普通激光打印机时,输出 --style mono 黑白 HTML;用户提到现场摇幸运、幸运留空、幸运开局再定时,渲染时加 --blank-luck,但 JSON 里的 luck 仍需合法以通过校验;用户要求“彩色和黑白都要”时,同一份 JSON 渲染两份 HTML。
完成前逐项检查:
coc verify 返回 valid: true。--style mono,双版本需求输出两份。--blank-luck 留空幸运;校验规则仍要求 JSON 中有合法 luck。description 能在一段内说明身份、欲望、伤口和弧光问题。