ワンクリックで
sf-run-and-operate
运行/部署 StoryMoss 的命令解剖、运行时数据与产物落点。何时加载:要启动应用、要找日志、要找数据库/配置文件、要发布 tag、要看生成链路日志、或被问“日志在哪/数据在哪/怎么发布”时。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
运行/部署 StoryMoss 的命令解剖、运行时数据与产物落点。何时加载:要启动应用、要找日志、要找数据库/配置文件、要发布 tag、要看生成链路日志、或被问“日志在哪/数据在哪/怎么发布”时。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Disciplined diagnosis loop for hard bugs and performance regressions. Reproduce → minimise → hypothesise → instrument → fix → regression-test. Use when user says "diagnose this" / "debug this", reports a bug, says something is broken/throwing/failing, or describes a performance regression.
StoryMoss 承重设计决策与 WHY、必须成立的不变量、已知弱点。何时加载:要改架构、要动数据真相源、要改生成链路、要改 IPC/SyncEvent、要动数据库层、要评估“能不能这样改”、或被问“为什么这样设计/哪些不能动”时。改任何符号前先用 gitnexus impact。
从零重建 StoryMoss 开发与构建环境,含已知陷阱。何时加载:首次 clone 后要跑起来、换机器、CI 本地复现、`cargo tauri dev/build` 报环境错、前端起不来、跨平台构建失败、或被问“怎么构建/怎么跑”时。
StoryMoss 变更门禁与不可破坏项。何时加载:要提交/推送代码、要 bump 版本、要改架构边界、要动数据库迁移、要改 CI、要发布 tag、要合并 feature 分支、或被问“能不能直接改/直接推”时。也用于判断一个改动是否需要用户授权(R10)。
StoryMoss 全部配置轴:选项、默认值、生产 vs 实验、守卫、如何新增。何时加载:要改生成模式、要改并发/超时、要加 PromptRegistry 覆盖、要调体裁模板、要改 silent_background 白名单、要动 rustfmt、或被问“在哪配/默认是什么/这个开关干啥”时。
StoryMoss 失败模式的症状→分诊表、卡时间的陷阱与区分实验。何时加载:报告了 bug、续写卡死、Genesis 第一章重复、生成无输出、启动崩溃、CI 失败、JSON 解析空对象、超时、白屏、或被问“为什么 X 失败/卡住”时。先建反馈回路再下结论(见 diagnose 技能 Phase 1)。
| name | sf-run-and-operate |
| description | 运行/部署 StoryMoss 的命令解剖、运行时数据与产物落点。何时加载:要启动应用、要找日志、要找数据库/配置文件、要发布 tag、要看生成链路日志、或被问“日志在哪/数据在哪/怎么发布”时。 |
# 桌面应用(推荐):自动起前端 dev server + 开两个 Tauri 窗口
cd src-tauri && cargo tauri dev
# beforeDevCommand: npm run --prefix src-frontend dev → Vite @ :5173
# beforeBuildCommand 不触发(dev 模式)
# 打开 window "frontstage"(frontstage.html,可见)+ "backstage"(index.html,默认隐藏)
两个窗口(src-tauri/tauri.conf.json):
frontstage:草苔 - 幕前创作,frontstage.html,1400×900,启动可见。backstage:草苔 - 幕后工作室,index.html,1200×800,启动隐藏(幕前点「草苔」按钮显示)。仅前端(无后端,IPC 会挂起,仅用于 UI 调试):
cd src-frontend && npm run dev # http://localhost:5173/
| 内容 | 位置 | 说明 |
|---|---|---|
| 应用数据根 | <app_data_dir>/ | Tauri app_data_dir();macOS ~/Library/Application Support/com.storymoss.app/,Win %APPDATA%\com.storymoss.app\,Linux ~/.local/share/com.storymoss.app/ |
| SQLite 数据库 | <app_data_dir>/ 下 | 由 init_db 创建;删掉可重置 |
| 生成链路日志 | <app_data_dir>/logs/creative_workflow.log | WorkflowLogger(src-tauri/src/workflow_logger.rs);诊断卡片会显示路径与最近日志 |
| 全局配置 | <app_data_dir>/config.json 等 | AppConfig |
| 工作室配置 | <app_data_dir>/studios/{story_id}/ | studio.json、llm_config.json 等 |
| 体裁模板 | <app_data_dir>/templates/genres.json | 启动时优先读取,缺失回退内置 43 体裁 |
| 提示词覆盖 | SQLite(prompt_overrides 表) | PromptRegistry::resolve_prompt() 优先读 DB 覆盖 |
| 构建产物 | src-tauri/target/release/bundle/{dmg,deb,msi}/ | cargo tauri build 产出 |
# 1. 确认四源版本号一致(见 sf-change-control)
# 2. 提交并更新 docs of record
git add -A && git commit -m "fix: vX.Y.Z ..."
git push origin master
# 3. 打 tag(禁止覆盖已有 tag)
git tag -a vX.Y.Z -m "vX.Y.Z 简述"
git push origin vX.Y.Z
# 4. 推送后立即查 CI(强制)
gh run list --limit 3
# 监控 rust-check / frontend-check / e2e-check / tauri-build 直到全绿
# 任何失败:gh run view <run-id> --log-failed → 修复 → bump → 重推
# 5. 本地出本平台包
cd src-tauri && cargo tauri build
CI 在 tag push 时触发 tauri-build 的 stable 分支,发布 GitHub Release(含 .msi/.dmg/.deb/.AppImage 及 .sig / .app.tar.gz)并同步到 https://storymoss.top/releases/;应用内升级器优先读取 https://storymoss.top/releases/latest.json,GitHub Releases 作为回退源。前提:bundle.createUpdaterArtifacts=true + Secret TAURI_SIGNING_PRIVATE_KEY + Secrets FTP_HOST/FTP_USER/FTP_PASS;verify-updater-manifest job 会在 tag 构建后校验 GitHub 端清单存在。
creative_workflow.log 记录 TriShot/LLM/ModelGateway 各阶段。诊断卡片(幕前/幕后设置页)显示:AI 生成模式、当前模型 ID/名/Provider/端点、最后调用模型、最后发给 LLM 的提示词全文、工作流日志路径与最近条目。后端 log_frontend_event 命令允许前端写入 WorkflowLogger。
关键诊断事件:genesis.first_chapter.generated、genesis.chapter_switch.sent、genesis.final_content、smart_execute.start、trishot.call3.done、trishot.bgp4.spawn/done、llm.record_call.spawn(候选实时探测走标准 [Gateway] 日志,不进 creative_workflow.log)。
sf-build-and-env。sf-validation-and-qa。sf-debugging-playbook。sf-change-control。grep -n 'devUrl\|frontendDist\|productName\|version' src-tauri/tauri.conf.jsonrg -n 'app_data_dir' src-tauri/src | head(数据根路径来源)gh run list --limit 3(CI 状态)tauri.conf.json 窗口/版本、latest.json 端点、CI release body。