smithery/u9401066

nsforge-derivation-workflow

步進式推導工作流。觸發詞:推導, derive, 組合?

Installation

$ npx skills add smithery/u9401066 --skill nsforge-derivation-workflow

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery/u9401066 · top by installs.

npx skills add smithery/u9401066

Browse all from smithery/u9401066

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 4,572 B
  • docs SUMMARY.md 119 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

推導工作流 Skill

核心原則

SymPy-MCP 做計算,NSForge 記錄知識!
每步都要顯示給用戶看! 使用:
- derivation_show() (NSForge) - 顯示當前推導狀態
- printlatexexpression() (SymPy-MCP) - 顯示計算結果

⚠️ 黃金法則:永遠向用戶展示公式!

❌ 錯誤:執行計算後直接下一步
✅ 正確:執行計算 → derivation_show() 或 print_latex_expression() → 等用戶確認 → 下一步

工作流程

Phase 1: derivation_start(name, description)
    ↓
Phase 2: 循環 {
    SymPy-MCP: intro_many → introduce_expression → 計算 → print_latex_expression
    NSForge:   derivation_record_step(expression, description, notes?)
    NSForge:   derivation_show()  ← 🆕 顯示當前狀態!
    NSForge:   derivation_add_note(note, note_type?)  # 可選
}
    ↓
Phase 3: derivation_complete(description, assumptions?, limitations?, references?)
         derivation_show()  ← 🆕 顯示最終結果!

工具速查

階段 MCP 工具 用途
開始 NSForge derivation_start(name, description) 建立會話
計算 SymPy intromany, introduceexpression, substitute_expression... 符號計算
顯示 SymPy printlatexexpression ⚠️ 必須!
記錄 NSForge derivationrecordstep(expr, desc, notes?, source?) 記錄步驟+知識
🆕 顯示 NSForge derivationshow(format?, showsteps?) ⚠️ 必須!顯示當前狀態
說明 NSForge derivationaddnote(note, note_type?) 純文字洞見
完成 NSForge derivation_complete(...) 存檔+元資料

note_type: assumption, limitation, observation, correction, clinical, physical

🆕 步驟 CRUD 操作

操作 工具 用途
📖 Read derivationgetstep(step_number) 查看單一步驟詳情
✏️ Update derivationupdatestep(step_number, notes?, assumptions?, ...) 更新步驟元資料
🗑️ Delete derivationdeletestep(step_number) 刪除最後一步
⏪ Rollback derivationrollback(tostep) ⚡ 回滾到指定步驟
📝 Insert derivationinsertnote(afterstep, note, notetype?) 在指定位置插入說明

Handoff:NSForge 做不到時

⚠️ Phase 2 後更新:Laplace/Fourier 變換已實作,無需 Handoff!

當需要 ODE/PDE、矩陣運算、聯立方程組:

# 1. 導出
result = derivation_export_for_sympy()
# → 返回 intro_many_command, current_expression

# 2. SymPy-MCP 計算
intro_many([...])
dsolve_ode(...) / solve_linear_system(...)
print_latex_expression(...)

# 3. 導入回 NSForge
derivation_import_from_sympy(
    expression="...",
    operation_performed="Solved ODE",
    sympy_tool_used="dsolve_ode",
    notes="...",
    assumptions_used=[...],
    limitations=[...]
)

調用範例

# Phase 1
derivation_start("temp_mm", "Temperature-corrected Michaelis-Menten")

# Phase 2a: SymPy 計算
intro_many([{"name": "V_max", "assumptions": ["positive"]}, ...])
mm = introduce_expression("V_max * C / (K_m + C)")
print_latex_expression(mm)

# Phase 2b: NSForge 記錄
derivation_record_step(
    expression="V_max * C / (K_m + C)",
    description="Base Michaelis-Menten",
    notes="假設溫度恆定"
)

# Phase 2c: 加入洞見
derivation_add_note("酵素在 >42°C 會變性", note_type="limitation")

# Phase 3
derivation_complete(
    description="...",
    assumptions=["Michaelis-Menten kinetics"],
    limitations=["Valid for 32-42°C"],
    tags=["enzyme", "temperature"]
)

🆕 步驟 CRUD 範例

# 📖 Read: 查看第 11 步詳情
derivation_get_step(11)
→ {"step": {"description": "...", "notes": "...", "output_latex": "..."}}

# ✏️ Update: 更新第 11 步的說明
derivation_update_step(
    step_number=11,
    notes="此假設在高溫時不成立",
    limitations=["Valid only for T < 42°C"]
)

# ⏪ Rollback: 發現第 11 步開始走錯,回滾到第 10 步
derivation_rollback(to_step=10)
→ {"deleted_count": 6, "deleted_steps": [11, 12, ...], "current_expression": "..."}
# 現在可以從第 10 步重新開始推導!

# 📝 Insert: 在步驟 5 和 6 之間插入說明
derivation_insert_note(
    after_step=5,
    note="此處假設達穩態",
    note_type="assumption"
)