返回 Skill 列表
extension
分类: 开发与工程无需 API Key

refactor-for-determinism

通过分离确定性和非确定性步骤来设计或重构技能。在创建或改进技能时使用,特别是将可重复的工作流程移入脚本/并更新SKILL.md以调用它们。

person作者: jakexiaohubgithub

Refactor for Determinism

Build reliable skills by separating deterministic steps from judgment-based steps.

Core Principle

Deterministic steps belong in scripts. Use SKILL.md to orchestrate the workflow and reserve judgment for the non-deterministic parts.

Workflow

1. Identify Deterministic vs Non-Deterministic Work

For each step in the skill:

  • Deterministic: repeatable, mechanical, or validation-heavy steps → script candidates
  • Non-deterministic: judgment, interpretation, creative choices → keep in SKILL.md

Examples of deterministic steps:

  • Running quality checks
  • Verifying clean git state
  • Updating version strings
  • Promoting CHANGELOG sections
  • Collecting diff context for review

Examples of non-deterministic steps:

  • Writing changelog content
  • Selecting a solution approach
  • Code review judgments
  • Deciding release timing

2. Design Scripts for Deterministic Steps

For each deterministic step:

  • Create a script in scripts/ within the skill directory
  • Make it self-contained with clear error messages
  • Validate inputs and exit non-zero on failure
  • Prefer small, single-purpose scripts

3. Update SKILL.md to Use Scripts

  • Replace manual command lists with script calls
  • Reference scripts using relative paths: scripts/...
  • Keep judgment steps explicit in prose

4. Document Boundaries

Make the line between scripted and non-scripted steps obvious:

  • Use section headers like "Deterministic Steps" and "Judgment Steps"
  • Call out where human/agent judgment is required

Output Format

## Determinism Audit

### Deterministic Steps (script candidates)
- [Step] → [script name]

### Non-Deterministic Steps (keep in SKILL.md)
- [Step] → [why it needs judgment]

### Script Plan
- scripts/[name] - [purpose, inputs, outputs]

### SKILL.md Updates
- [Where to call each script]

Common Mistakes

| Mistake | Fix | |---------|-----| | Scripting judgment | Keep decision-making in SKILL.md | | One giant script | Split into small, focused scripts | | Silent failures | Print clear errors and exit non-zero | | Hardcoded paths | Use repo-relative paths | | Forgetting SKILL.md updates | Always wire scripts into instructions |

What NOT to Do

  • Do NOT hide decisions inside scripts
  • Do NOT make scripts that require manual editing
  • Do NOT mix multiple responsibilities into one script
  • Do NOT add extra documentation files beyond SKILL.md