English first. A Chinese version is included below.
Describe the bug
The README describes /{character}-{slug}-work as "Work capabilities only." The generated skill metadata says the same thing: "work capability only (without persona)."
The shared Work content still tells the model to answer out-of-scope questions "in the colleague's way" and refers it to the Persona section. A standalone work_skill.md does not contain that section because render_work_skill() writes only the Work content.
This leaves Work-only with an instruction it cannot follow as written. It may also bring persona behavior into the mode users chose to avoid.
Steps to reproduce
The mismatch can be verified without running a model:
- The README command table defines the
-work entrypoint as Work-only.
render_combined_skill() and render_work_skill() both receive the same work_content. The Work-only renderer writes no Persona content.
- The Work Skill template tells it to refer to Persona when a question falls outside the colleague's responsibilities.
Expected behavior
Work-only should be self-contained. If a question falls outside the recorded responsibilities, or the source material is too thin, its own operating rules should say so plainly. It should not imitate the colleague's personality or refer to a Persona section that is not present.
The combined Persona + Work skill should keep the original Work content and its current Persona-first operating rules.
Actual behavior
The Work template says:
如果被问到职责范围外的问题,以该同事的方式回应(参见 Persona 部分)。
That instruction is part of the shared Work content used by both artifacts, even though the Work-only artifact is labeled "without persona."
No runtime logs are available. The mismatch is visible in the generated instruction path.
Environment / 环境
- OS: N/A
- Python: N/A
- Host: not host-specific
- colleague-skill commit:
47039d08fcf0330794caea14efdb5e183348f7bb
- Data source: not source-specific
- Character type:
colleague
Additional context / 补充信息
Suggested fix
Handle the fallback in render_work_skill() instead of replacing the shared Work instruction for both modes:
- Keep
render_combined_skill() unchanged so the combined skill retains the original Work content and Persona-first rules.
- When writing
work_skill.md, remove the canonical Persona handoff from the Work-only copy of work_content, without changing the stored work.md, and append a Work-only rule. For example: If the question is outside the recorded responsibilities or the source material is insufficient, state the gap. Do not infer or refer to Persona.
- Render that rule in Chinese or English through the existing
prefers_chinese() path.
This also matches the existing rule in work_analyzer.md: use evidence from the source material, do not infer, and mark missing information.
Suggested acceptance checks:
- Work-only no longer follows the Persona handoff and has a mode-specific fallback.
- The combined artifact keeps the original Work content and Persona-first rules.
- A regression case is added to the existing
tests/test_skill_writer.py for both outputs.
This change would affect Work-only artifacts generated or rewritten after the fix. It would not update already installed skills automatically.
PR
If this matches the intended Work-only behavior, I can prepare a focused PR in tools/skill_writer.py, update tests/test_skill_writer.py, and adjust any user-facing documentation the maintainers consider necessary.
中文版本
Bug 描述
README 把 /{character}-{slug}-work 定义为“仅使用工作能力”。生成器写入的说明也是“仅 Work,无 Persona”。
但共享的 Work 内容仍然要求:遇到职责范围外的问题时,“以该同事的方式回应”,并参见 Persona 部分。render_work_skill() 生成的独立 work_skill.md 只有 Work 内容,里面没有 Persona。
这条指令在 Work-only 中无法照原文执行,也可能把用户不想要的人物行为带回 Work-only。
复现方式
不运行模型也能确认这个矛盾:
- README 的命令表把
-work 入口定义为仅使用工作能力。
render_combined_skill() 和 render_work_skill()使用同一份 work_content,但 Work-only renderer 不写入 Persona。
- Work Skill 模板却要求职责范围外的问题参见 Persona。
期望行为
Work-only 应该可以独立工作。问题超出已记录的职责范围,或者原材料不足时,它自己的运行规则应直接说明情况,不模仿这个人的性格,也不引用不存在的 Persona 部分。
完整模式应保留原始 Work 内容和现有的 Persona 优先规则。
实际行为
Work 模板目前写着:
如果被问到职责范围外的问题,以该同事的方式回应(参见 Persona 部分)。
这段指令属于两种模式共用的 Work 内容,但 Work-only 生成结果同时标注为“无 Persona”。
这个问题没有运行时日志,矛盾可以直接从生成指令链路中确认。
环境
- OS:不适用
- Python:不适用
- Host:与 Host 无关
- colleague-skill commit:
47039d08fcf0330794caea14efdb5e183348f7bb
- 数据来源:与数据来源无关
- 人物类型:
colleague
补充信息
建议修改
不要直接替换共享 Work 内容里的指令。建议只在 render_work_skill() 中处理:
render_combined_skill() 保持不变,让完整模式继续保留原始 Work 内容和 Persona 优先规则。
- 写入
work_skill.md 时,只在 Work-only 使用的 work_content 副本中移除那句固定的 Persona 交接,不改动保存的 work.md,然后加入 Work-only 专用规则。例如:“问题超出职责范围或资料不足时,说明缺口,不做推断,也不引用 Persona。”
- 通过现有的
prefers_chinese() 路径输出中文或英文规则。
这也符合 work_analyzer.md 已有的原则:只根据原材料提取,不做推断,资料不够时明确标注。
建议检查:
- Work-only 不再执行 Persona 交接,并有自己的范围外规则。
- 完整模式保留原始 Work 内容和 Persona 优先规则。
- 在现有
tests/test_skill_writer.py 中增加一个同时覆盖两种输出的回归 case。
这项修改只影响修复后新生成或重新写入的 Work-only 文件,不会自动更新已经安装的 Skill。
后续 PR
如果维护者确认这符合 Work-only 的预期行为,我可以准备一个范围明确的 PR,修改 tools/skill_writer.py 和 tests/test_skill_writer.py,并按维护者意见更新必要文档。
English first. A Chinese version is included below.
Describe the bug
The README describes
/{character}-{slug}-workas "Work capabilities only." The generated skill metadata says the same thing: "work capability only (without persona)."The shared Work content still tells the model to answer out-of-scope questions "in the colleague's way" and refers it to the Persona section. A standalone
work_skill.mddoes not contain that section becauserender_work_skill()writes only the Work content.This leaves Work-only with an instruction it cannot follow as written. It may also bring persona behavior into the mode users chose to avoid.
Steps to reproduce
The mismatch can be verified without running a model:
-workentrypoint as Work-only.render_combined_skill()andrender_work_skill()both receive the samework_content. The Work-only renderer writes no Persona content.Expected behavior
Work-only should be self-contained. If a question falls outside the recorded responsibilities, or the source material is too thin, its own operating rules should say so plainly. It should not imitate the colleague's personality or refer to a Persona section that is not present.
The combined Persona + Work skill should keep the original Work content and its current Persona-first operating rules.
Actual behavior
The Work template says:
That instruction is part of the shared Work content used by both artifacts, even though the Work-only artifact is labeled "without persona."
No runtime logs are available. The mismatch is visible in the generated instruction path.
Environment / 环境
47039d08fcf0330794caea14efdb5e183348f7bbcolleagueAdditional context / 补充信息
Suggested fix
Handle the fallback in
render_work_skill()instead of replacing the shared Work instruction for both modes:render_combined_skill()unchanged so the combined skill retains the original Work content and Persona-first rules.work_skill.md, remove the canonical Persona handoff from the Work-only copy ofwork_content, without changing the storedwork.md, and append a Work-only rule. For example:If the question is outside the recorded responsibilities or the source material is insufficient, state the gap. Do not infer or refer to Persona.prefers_chinese()path.This also matches the existing rule in
work_analyzer.md: use evidence from the source material, do not infer, and mark missing information.Suggested acceptance checks:
tests/test_skill_writer.pyfor both outputs.This change would affect Work-only artifacts generated or rewritten after the fix. It would not update already installed skills automatically.
PR
If this matches the intended Work-only behavior, I can prepare a focused PR in
tools/skill_writer.py, updatetests/test_skill_writer.py, and adjust any user-facing documentation the maintainers consider necessary.中文版本
Bug 描述
README 把
/{character}-{slug}-work定义为“仅使用工作能力”。生成器写入的说明也是“仅 Work,无 Persona”。但共享的 Work 内容仍然要求:遇到职责范围外的问题时,“以该同事的方式回应”,并参见 Persona 部分。
render_work_skill()生成的独立work_skill.md只有 Work 内容,里面没有 Persona。这条指令在 Work-only 中无法照原文执行,也可能把用户不想要的人物行为带回 Work-only。
复现方式
不运行模型也能确认这个矛盾:
-work入口定义为仅使用工作能力。render_combined_skill()和render_work_skill()使用同一份work_content,但 Work-only renderer 不写入 Persona。期望行为
Work-only 应该可以独立工作。问题超出已记录的职责范围,或者原材料不足时,它自己的运行规则应直接说明情况,不模仿这个人的性格,也不引用不存在的 Persona 部分。
完整模式应保留原始 Work 内容和现有的 Persona 优先规则。
实际行为
Work 模板目前写着:
这段指令属于两种模式共用的 Work 内容,但 Work-only 生成结果同时标注为“无 Persona”。
这个问题没有运行时日志,矛盾可以直接从生成指令链路中确认。
环境
47039d08fcf0330794caea14efdb5e183348f7bbcolleague补充信息
建议修改
不要直接替换共享 Work 内容里的指令。建议只在
render_work_skill()中处理:render_combined_skill()保持不变,让完整模式继续保留原始 Work 内容和 Persona 优先规则。work_skill.md时,只在 Work-only 使用的work_content副本中移除那句固定的 Persona 交接,不改动保存的work.md,然后加入 Work-only 专用规则。例如:“问题超出职责范围或资料不足时,说明缺口,不做推断,也不引用 Persona。”prefers_chinese()路径输出中文或英文规则。这也符合
work_analyzer.md已有的原则:只根据原材料提取,不做推断,资料不够时明确标注。建议检查:
tests/test_skill_writer.py中增加一个同时覆盖两种输出的回归 case。这项修改只影响修复后新生成或重新写入的 Work-only 文件,不会自动更新已经安装的 Skill。
后续 PR
如果维护者确认这符合 Work-only 的预期行为,我可以准备一个范围明确的 PR,修改
tools/skill_writer.py和tests/test_skill_writer.py,并按维护者意见更新必要文档。