Loading...
Loading...
Compare original and translation side by side
design.mddesign.svgdesign.mddesign.svgskill-studioskill-studioskill-studiopip install -e .skill-studio init--voiceDAILY_API_KEYGROQ_API_KEYDEEPGRAM_API_KEYOPENROUTER_API_KEYskill-studio --helppip install -e <skill-studio-base-dir>skill-studiopip install -e .skill-studio init--voiceDAILY_API_KEYGROQ_API_KEYDEEPGRAM_API_KEYOPENROUTER_API_KEYskill-studio --helppip install -e <skill-studio-base-dir>skill-studio propose-from-session <session_id>skill-studio propose-from-session <session_id>
This runs in two stages:
1. **Deterministic ingest** (no LLM) — regex-extracts models tried, cost events, prompt changes, pain snippets, and hashes. A 50k-token transcript compresses to ~30 lines of JSON.
2. **Single LLM call** — over that compact bundle only, proposes a partial DesignJSON patch with a `rationale` map citing which signals justified each field.
**The proposal is NOT applied automatically.** Present it to the user (with the rationale) and ask for approval. Offer: `approve as-is`, `edit inline`, `discard and start fresh`, `approve partial` (keep some fields, re-interview others).
`propose-from-session` does not create a session. After approval, run `new-session` (Step 1) to create one, then pipe the approved patch to `apply-patch`, and continue the interview loop from the next uncovered target.
此过程分为两个阶段:
1. **确定性导入**(无需LLM)——通过正则表达式提取尝试过的模型、成本事件、提示词变更、痛点片段及哈希值。一份50k token的对话记录可压缩为约30行JSON。
2. **单次LLM调用**——基于压缩后的内容,生成带有`rationale`映射的部分DesignJSON补丁,其中会注明每个字段的依据信号。
**生成的补丁不会自动应用**。需将补丁(含依据)展示给用户并请求批准。提供选项:`直接批准`、`在线编辑`、`丢弃并重新开始`、`部分批准`(保留部分字段,重新访谈其他字段)。
`propose-from-session`不会创建新会话。获得批准后,运行`new-session`(步骤1)创建会话,再将批准后的补丁通过管道传递给`apply-patch`,然后从下一个未覆盖的目标继续访谈循环。ai-agentlife-automationknowledge-workcustomsprintstandarddeepscenario-firstsocraticmetaphor-firstformskill-studio new-session --preset <preset> --depth <depth> --style <style>session_id: <uuid>
opening: <question text>session_idai-agentlife-automationknowledge-workcustomsprintstandarddeepscenario-firstsocraticmetaphor-firstformskill-studio new-session --preset <preset> --depth <depth> --style <style>session_id: <uuid>
opening: <question text>session_id{}{"jtbd.situation": "When I finish a coaching call and need to write up notes", "problem.what_hurts": "Manual note-taking takes 20 minutes and I lose details"}{"needs.functional": ["transcribe audio", "extract action items"], "guardrails": ["never send notes without review"]}scenarios{"scenarios": [{"title": "Post-coaching rush", "vignette": "Call ends at 14:00, next meeting at 14:15 — I scribble three bullet points and lose the rest by evening."}]}| Field | Type | Notes |
|---|---|---|
| str | One-sentence pitch of the automation |
| str | Specific pain |
| str | What the pain costs right now |
| list[str] | What it must do |
| list[str] | How the user wants to feel |
| list[str] | Relational / status needs |
| str | When this happens |
| str | What the user wants |
| str | So they can... |
| str | Visible state before |
| str | Felt state before |
| str | Visible state after |
| str | Felt state after |
| list[{title, vignette}] | Concrete day-in-the-life stories |
| | |
| str | e.g. "7:45am weekdays" |
| list[str] | Data / services consumed |
| list[str] | What it does |
| list[str] | What it produces |
| list[str] | Safety rails; negative-space rules |
| str | Next action at end of design |
| str | Visual / verbal handle |
echo '<patch_json>' | skill-studio apply-patch <session_id>coverage: 0.42
next_target: jtbd.situationcoverage >= thresholdnext_target{}{"jtbd.situation": "当我完成教练辅导电话后需要整理笔记", "problem.what_hurts": "手动记笔记需要20分钟,还会遗漏细节"}{"needs.functional": ["转录音频", "提取行动项"], "guardrails": ["未经审核绝不发送笔记"]}scenarios{"scenarios": [{"title": "辅导后赶时间", "vignette": "电话14:00结束,下一场会议14:15开始——我草草写下三个要点,到晚上就忘了其余内容。"}]}| 字段 | 类型 | 说明 |
|---|---|---|
| str | 自动化流程的一句话推介语 |
| str | 具体痛点 |
| str | 当前痛点造成的损失 |
| list[str] | 必须具备的功能 |
| list[str] | 用户期望的感受 |
| list[str] | 关系/身份需求 |
| str | 触发场景 |
| str | 用户的动机 |
| str | 达成目标后可实现的结果 |
| str | 执行前的可见状态 |
| str | 执行前的内心感受 |
| str | 执行后的可见状态 |
| str | 执行后的内心感受 |
| list[{title, vignette}] | 具体的日常场景案例 |
| | 触发类型 |
| str | 示例:"工作日7:45" |
| list[str] | 消耗的数据/服务 |
| list[str] | 具备的功能 |
| list[str] | 生成的产物 |
| list[str] | 安全规则;负面限制条件 |
| str | 设计完成后的下一步行动 |
| str | 可视化/语言化的描述 |
echo '<patch_json>' | skill-studio apply-patch <session_id>coverage: 0.42
next_target: jtbd.situationcoverage >= 阈值next_targetskill-studio done <session_id>design.mddesign.svgskill-studio done <session_id>design.mddesign.svgskill-studio new --voice --preset <preset> --depth <depth>skill-studio initskill-studio new --voice --preset <preset> --depth <depth>skill-studio initskill-studio listskill-studio export <id> md-svgdesign.mddesign.svgskill-studio coverage <id>skill-studio next-target <id>skill-studio initskill-studio setupskill-studio listskill-studio export <id> md-svgdesign.mddesign.svgskill-studio coverage <id>skill-studio next-target <id>skill-studio initskill-studio setup$SKILL_STUDIO_HOME/sessions/<uuid>/~/.skill-studio/sessions/<uuid>/design.jsontranscript.mddesign.mddesign.svg$SKILL_STUDIO_HOME/sessions/<uuid>/~/.skill-studio/sessions/<uuid>/design.jsontranscript.mddesign.mddesign.svgskill-studio: command not foundpip install -e <skill-studio-base-dir>apply-patchskill-studio coverage <session_id>new-sessionapply-patchskill-studio listskill-studio initskill-studio: command not foundpip install -e <skill-studio-base-dir>apply-patchskill-studio coverage <session_id>apply-patchnew-sessionskill-studio listskill-studio initLLM_PROVIDER=anthropicopenrouterLLM_PROVIDER=anthropicopenrouter