بنقرة واحدة
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。