配套 skills 的安装与使用#
1. 这两个 skill 分别做什么#
| Skill | 用途 | 不负责 |
|---|---|---|
| story-studio-authoring | 逐步带学,或直接帮助编辑、试走章节;素材、分支、动作、奖励、回忆录 | 编辑器 UI 开发、一般小说剧本创作 |
| story-studio-release | 检查客户端剧情包、跨章依赖、封面、配置合并及上线报错 | 编辑器服务部署、通用网站发布 |
两者均包含 SKILL.md、agents/openai.yaml 和精简 references,可独立复制使用。完整逐步教程在本仓库 docs/tutorials/;skill 是指导 Codex 如何协助工作的规则,不是另一个剧情运行程序,也不会自动打开服务器权限。
编辑器 0.3.5 的“教程 ↗”入口也能直接阅读本页。左侧“下载教程与 Skill 源文件”提供完整文档和技能目录的 ZIP;解压后包含 docs/ 和 .agents/skills/,可按下文安装。下载到的内容是该编辑器构建时的快照,团队最新版本仍以 Git 仓库为准。
2. 从 Git 获取#
团队成员拉取本仓库时,应同时取得 docs/ 和 .agents/skills/。不要只复制 SKILL.md,漏掉 references。技能文件都是文本,不包含第一集媒体或访问口令。
本地仓库不等于远程仓库:若团队还没配置 remote,需要先由团队建立并配置远程地址,再推送已审阅的提交。教程的创建不会自动替你上传公网或创建远程仓库。
3. 让 Codex 发现 skill#
本仓库将技能源码放在 .agents/skills/。支持仓库级 skill 发现的 Codex 环境中,以 story-chapters 仓库目录作为项目/工作目录,并新开会话后检查技能列表。若会话的工作目录在这个仓库的上一级,不应假定它会递归发现子仓库技能。
若客户端未发现仓库级技能,或希望在任意项目中使用,可以把两个完整技能目录复制到 Codex 的用户技能目录:设置过 CODEX_HOME 时使用 $CODEX_HOME/skills,否则 Windows 为 %USERPROFILE%/.codex/skills、Linux/macOS 为 ~/.codex/skills。
Windows PowerShell 示例,在 story-chapters 仓库根目录执行。脚本在目标技能已存在时停止,避免把已有定制文件悄悄覆盖:
$skillSourceRoot = Join-Path (Get-Location) '.agents/skills'
$skillInstallRoot = if ($env:CODEX_HOME) {
Join-Path $env:CODEX_HOME 'skills'
} else {
Join-Path $env:USERPROFILE '.codex/skills'
}
$skillNames = @('story-studio-authoring', 'story-studio-release')
foreach ($skillName in $skillNames) {
$skillSource = Join-Path $skillSourceRoot $skillName
$skillTarget = Join-Path $skillInstallRoot $skillName
if (-not (Test-Path -LiteralPath (Join-Path $skillSource 'SKILL.md'))) {
throw "缺少技能源文件:$skillSource"
}
if (Test-Path -LiteralPath $skillTarget) {
throw "目标已存在,请先比较并备份:$skillTarget"
}
}
New-Item -ItemType Directory -Force -Path $skillInstallRoot | Out-Null
foreach ($skillName in $skillNames) {
Copy-Item -LiteralPath (Join-Path $skillSourceRoot $skillName) -Destination (Join-Path $skillInstallRoot $skillName) -Recurse
}这只是安装方法;本次文档交付不自动写入每个人的全局技能目录。复制后新开会话确认能看到 skill;已有会话不一定动态加载。若暂时没有出现在列表,可明确提供本仓库 SKILL.md 的路径让 Codex 读取。
不要同时维护两份不同版本而不记录:仓库副本是团队源码;全局副本是安装版本。更新先 git pull,比较仓库与安装内容,备份有定制的旧版本后复制完整新目录,再新开会话。
4. 从零逐步教学#
示例请求:
使用 $story-studio-authoring,按 docs/tutorials/01-basics.md 从 B01 开始教我。
编辑器是 http://127.0.0.1:8790/,章节仓库是当前目录。
每次只教一步,等我完成验收再继续;已有工程保留,使用 tutorial-001 作为新练习目录。预期行为:Codex 先确认当前工程与目录是否占用,然后教新建空章;收到“空工程已新建”再教素材导入。它不应因你说“从零”就清空旧章,也不应一次性替你完成全部练习。
继续上次进度:
使用 $story-studio-authoring,我已经完成 A07,奖励测试正常。
当前工程是 tutorial-001-copy,解锁变量为 practice_memory_1。
现在从 A08 教我登记回忆。只说“奖励测试正常”也可在原对话中续课;换会话时附上 学习记录 更可靠。
5. 让 Codex 直接辅助制作#
使用 $story-studio-authoring,在当前已保存的 tutorial-001-copy 中调整闪避窗口为 1–4 秒,
保留已有成功、失败和奖励路线。完成后验证一次点击成功与一次超时失败。这种请求是代办,不是教学。Codex 应执行范围内的改动、处理保存和验证,不需要每填一个表单都等回复。界面工具不可用时,skill 可使用真实 CLI/API;它必须说明没实际完成的 UI 验证。
6. 检查双章交付与报错#
使用 $story-studio-release,检查我刚导出的客户端剧情包。
实际文件路径为 D:/Deliveries/tutorial-runtime.zip。
确认含主线与回忆录、封面路径及媒体完整性;先给我手工上传步骤。有全量配置时可继续:
使用 $story-studio-release,把这次包的章节和变量合并到 D:/Deliveries/server-configs 中的完整配置,
保留其他线上章节,输出到新的 merged 目录,并列出差异。由我自己上传服务器。定位历史问题:
使用 $story-studio-release,封面请求中的目录是 Stories,但服务器原版目录为 stories。
根据这次导出包和报错 URL 检查配置与文件对应关系,给我需要替换的具体文件。预期行为:检查真实文件与路径,处理小写 stories,不把局部 ChapterList 直接覆盖完整列表;没有现有配置或上传权限时完成可做的检查并明确缺口,不声称已经上线。
7. 团队维护与验证#
编辑入口文档时同步检查技能中对应的精简契约。按钮改名、导出路径或动作机制改变,至少更新相关教程步骤、references 及适用版本。
技能目录可以使用安装环境自带的 skill-creator 验证器检查,路径按实际安装位置替换。验证器需要 Python 的 PyYAML 依赖;这是维护时的检查依赖,运行编辑器或读取 skill 不需要它。Windows 上若系统默认文本编码不是 UTF-8,给 Python 加 -X utf8:
python -X utf8 /path/to/skill-creator/scripts/quick_validate.py .agents/skills/story-studio-authoring
python -X utf8 /path/to/skill-creator/scripts/quick_validate.py .agents/skills/story-studio-release格式通过不代表行为正确。建议在独立测试 workspace 进行这些验收:
| 请求 | 应有行为 |
|---|---|
| 已完成 B07,现在教图片按钮 | 接 B08,检查宿主,不重建整章 |
| 奖励测试正常,下一步 | 若上下文确认 A07,接 A08,并提醒广告解锁关闭直接解锁 |
| 复制工程后状态串了 | 识别同名业务变量和站点预览存档,不随意重建素材 GUID |
| 从主线导出的包没包含回忆录 | 解释依赖方向,检查回忆录→主线引用后从回忆录导出 |
| 上传后封面 Stories 404 | 核对实际大小写、配置、文件,再提供修复方案 |
| 只给局部 ChapterList,要求保留线上其他章 | 取得或请求全量配置,不假造原章节 |
文档和 skill 可使用单独提交:
git add README.md docs .agents/skills
git diff --cached --stat
git commit -m "Document story editing workflow and reusable skills"推送使用团队已配置的远程和分支;不要把教程中的示例路径、章节 ID 或测试通过状态直接当成本次真实结果。