重要前提
安装AI Skills的关键前提是:必须科学上网,且开启TUN模式,这一点至关重要,直接决定安装能否顺利完成,在此郑重提醒三遍:科学上网,科学上网,科学上网。查看完整安装教程 →
npx skills add https://github.com/open-horizon-labs/skills --skill execute执行实际工作。Execute 是从解决方案空间到交付代码的桥梁。包含飞行前检查、构建、检测漂移,并在需要时进行抢救。
Execute 位于更大的 意图 -> 执行 -> 评审 循环中。此技能处理执行阶段,其本身包含一个内部循环:构建、检查对齐、纠正或抢救。
在以下情况下调用 /execute:
不要在以下情况下使用:
/aim/solution-space/problem-space 或 /problem-statement广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
在编写代码之前,验证对齐情况:
Pre-flight Checklist:
[ ] Aim is clear - what outcome am I producing?
[ ] Constraints known - what must I NOT break?
[ ] Context loaded - do I have the codebase understanding I need?
[ ] Scope bounded - what am I specifically doing (and NOT doing)?
[ ] Success criteria - how will I know when I'm done?
如果任何一项无法勾选,请停止并在继续之前解决它。如果需求模糊,请提出澄清性问题。
"任务是 [task]。目标是 [aim]。我具体要做的是 [scope]。我不会碰 [out of scope]。成功看起来像 [criteria]。"
执行工作。保持专注。
构建原则:
构建过程中:
sg review 或等效命令)在执行过程中定期检查对齐情况:
漂移信号:
当你注意到漂移时:
Drift Check:
- Original aim: [aim]
- What I'm actually doing now: [current work]
- Gap: [describe the divergence]
- Verdict: [aligned | minor drift | significant drift | lost]
对齐: 继续构建。
轻微漂移: 记下它,如果仍有价值则继续,否则重新聚焦。
显著漂移: 暂停。要么:
迷失: 立即调用 /salvage。
何时停止并进行抢救:
不要纠结于已迷失的工作。提取经验教训并干净地重新开始。
"现在代码很廉价。学习才是资产。"
在重新开始之前调用 /salvage 来提取你学到的东西。
当执行成功完成时:
## Execution Complete
**Task:** [what was done]
**Aim achieved:** [how it maps to the original aim]
### Changes
- [file/component]: [what changed and why]
- [file/component]: [what changed and why]
### Verification
- [how it was tested/verified]
### Notes
- [anything relevant for future work]
当漂移触发暂停时:
## Execution Paused - Drift Detected
**Original aim:** [aim]
**Current state:** [where things stand]
**Drift:** [what diverged and why]
### Options
1. [option 1]
2. [option 2]
3. Salvage and restart
Recommendation: [your assessment]
/execute
Task: Add validation for empty strings in user input
飞行前检查:
Pre-flight Checklist:
[x] Aim is clear - prevent empty strings from causing silent failures
[x] Constraints known - don't break existing validation, maintain API compatibility
[x] Context loaded - reviewed input processing flow, found 3 entry points
[x] Scope bounded - only the 3 input handlers, not the downstream processors
[x] Success criteria - empty strings rejected with clear error message
输出:
## Execution Complete
**Task:** Add empty string validation to user input
**Aim achieved:** Empty strings now rejected at entry points with clear error message
### Changes
- handlers/user.go: Added empty string check before processing
- handlers/profile.go: Added empty string check before processing
- handlers/settings.go: Added empty string check before processing
- lib/validation.go: New isEmpty() helper for consistency
### Verification
- Added unit tests for each handler (empty, whitespace-only, valid)
- Manual test: confirmed error message appears in UI
### Notes
- Downstream processors still accept empty strings (out of scope)
- Consider adding validation to API gateway layer in future
/execute
Task: Fix the timezone bug in calendar display
执行中途漂移检查:
Drift Check:
- Original aim: Fix timezone display bug
- What I'm actually doing now: Refactoring the entire date handling library
- Gap: Went from fixing display to rewriting infrastructure
- Verdict: Significant drift
输出:
## Execution Paused - Drift Detected
**Original aim:** Fix timezone bug in calendar display
**Current state:** Found the bug, but discovered date handling is inconsistent across 12 files
**Drift:** Started fixing the display bug, realized the root cause is a design issue.
Fixing it properly requires touching the date library, which affects everything.
### Options
1. Band-aid fix in display layer only (solves symptom, not cause)
2. Refactor date handling (right fix, but 10x scope)
3. Salvage learning, create proper task for date system redesign
Recommendation: Option 3 - the date system needs intentional redesign, not
accidental refactoring during a bug fix. Salvage what we learned, create a
proper design task, apply band-aid for now.
/execute
Building the new auth flow
经过多次迭代后:
## Execution Paused - Salvaging
**Original aim:** Simplify authentication flow
**Current state:** 4th approach attempted, complexity has increased
The approach has reversed multiple times:
1. Started with unified flow -> broke provider-specific handling
2. Switched to provider adapters -> too much duplication
3. Tried abstract base class -> inheritance nightmare
4. Back to unified flow with exceptions -> where we started, but worse
Invoking /salvage to extract learning before restart.
此技能可以将上下文持久化到 .oh/<session>.md 中,供后续技能使用。
如果提供了会话名称 (/execute auth-refactor):
.oh/auth-refactor.md如果未提供会话名称 (/execute):
"保存到会话?[suggested-name] [custom] [skip]"
读取: 检查现有的会话文件。读取 Aim、Problem Statement、Solution Space 以了解我们正在构建什么以及原因。这对于漂移检测至关重要。
写入: 飞行前检查后和执行期间,将状态写入会话文件:
## Execute
**Updated:** <timestamp>
**Status:** [pre-flight | in-progress | drift-detected | complete]
[execution notes, drift observations, etc.]
随处可用。手动飞行前检查清单,通过推理进行漂移检测。无持久化。
.oh/<session>.md 读取目标、约束、选定的解决方案在以下之后: /solution-space(你需要一个选定的方法来执行)。导向: /ship 以交付,/review 以验证,如果漂移则导向 /salvage。可以循环回到: 当方法不起作用时,通过 /salvage 导向 /aim 或 /problem-space。
执行后,通常导向:
/review - 在提交前验证工作/ship - 将更改部署给用户/salvage - 如果检测到漂移并需要重新开始记住: Execute 是内部循环。专注于目标。代码廉价;反复折腾代价高昂。及早检测漂移。无需羞愧地进行抢救。
每周安装次数
62
仓库
GitHub 星标
1
首次出现
Jan 27, 2026
安全审计
安装于
claude-code45
opencode31
gemini-cli21
codex21
github-copilot16
cursor16
Do the actual work. Execute is the bridge from Solution Space to shipped code. Pre-flight checks, build, detect drift, salvage if needed.
Execute sits within the larger Intent - > Execution -> Review loop. This skill handles the Execution phase, which itself contains an inner loop: build, check alignment, course-correct or salvage.
Invoke /execute when:
Do not use when:
/aim first/solution-space first/problem-space or /problem-statement firstBefore writing code, verify alignment:
Pre-flight Checklist:
[ ] Aim is clear - what outcome am I producing?
[ ] Constraints known - what must I NOT break?
[ ] Context loaded - do I have the codebase understanding I need?
[ ] Scope bounded - what am I specifically doing (and NOT doing)?
[ ] Success criteria - how will I know when I'm done?
If any box can't be checked, stop and address it before proceeding. Ask clarifying questions if requirements are ambiguous.
"The task is [task]. The aim is [aim]. I'm specifically doing [scope]. I will NOT be touching [out of scope]. Success looks like [criteria]."
Do the work. Keep it focused.
Build principles:
During build:
sg review or equivalent)Periodically check alignment during execution:
Drift signals:
When you notice drift:
Drift Check:
- Original aim: [aim]
- What I'm actually doing now: [current work]
- Gap: [describe the divergence]
- Verdict: [aligned | minor drift | significant drift | lost]
Aligned: Continue building.
Minor drift: Note it, continue if still valuable, or refocus.
Significant drift: Pause. Either:
Lost: Invoke /salvage immediately.
When to stop and salvage:
Don't fight lost work. Extract the learning and restart clean.
"Code is cheap now. Learning is the asset."
Invoke /salvage to extract what you learned before restarting.
When execution completes successfully:
## Execution Complete
**Task:** [what was done]
**Aim achieved:** [how it maps to the original aim]
### Changes
- [file/component]: [what changed and why]
- [file/component]: [what changed and why]
### Verification
- [how it was tested/verified]
### Notes
- [anything relevant for future work]
When drift triggers a pause:
## Execution Paused - Drift Detected
**Original aim:** [aim]
**Current state:** [where things stand]
**Drift:** [what diverged and why]
### Options
1. [option 1]
2. [option 2]
3. Salvage and restart
Recommendation: [your assessment]
/execute
Task: Add validation for empty strings in user input
Pre-flight:
Pre-flight Checklist:
[x] Aim is clear - prevent empty strings from causing silent failures
[x] Constraints known - don't break existing validation, maintain API compatibility
[x] Context loaded - reviewed input processing flow, found 3 entry points
[x] Scope bounded - only the 3 input handlers, not the downstream processors
[x] Success criteria - empty strings rejected with clear error message
Output:
## Execution Complete
**Task:** Add empty string validation to user input
**Aim achieved:** Empty strings now rejected at entry points with clear error message
### Changes
- handlers/user.go: Added empty string check before processing
- handlers/profile.go: Added empty string check before processing
- handlers/settings.go: Added empty string check before processing
- lib/validation.go: New isEmpty() helper for consistency
### Verification
- Added unit tests for each handler (empty, whitespace-only, valid)
- Manual test: confirmed error message appears in UI
### Notes
- Downstream processors still accept empty strings (out of scope)
- Consider adding validation to API gateway layer in future
/execute
Task: Fix the timezone bug in calendar display
Mid-execution drift check:
Drift Check:
- Original aim: Fix timezone display bug
- What I'm actually doing now: Refactoring the entire date handling library
- Gap: Went from fixing display to rewriting infrastructure
- Verdict: Significant drift
Output:
## Execution Paused - Drift Detected
**Original aim:** Fix timezone bug in calendar display
**Current state:** Found the bug, but discovered date handling is inconsistent across 12 files
**Drift:** Started fixing the display bug, realized the root cause is a design issue.
Fixing it properly requires touching the date library, which affects everything.
### Options
1. Band-aid fix in display layer only (solves symptom, not cause)
2. Refactor date handling (right fix, but 10x scope)
3. Salvage learning, create proper task for date system redesign
Recommendation: Option 3 - the date system needs intentional redesign, not
accidental refactoring during a bug fix. Salvage what we learned, create a
proper design task, apply band-aid for now.
/execute
Building the new auth flow
After multiple iterations:
## Execution Paused - Salvaging
**Original aim:** Simplify authentication flow
**Current state:** 4th approach attempted, complexity has increased
The approach has reversed multiple times:
1. Started with unified flow -> broke provider-specific handling
2. Switched to provider adapters -> too much duplication
3. Tried abstract base class -> inheritance nightmare
4. Back to unified flow with exceptions -> where we started, but worse
Invoking /salvage to extract learning before restart.
This skill can persist context to .oh/<session>.md for use by subsequent skills.
If session name provided (/execute auth-refactor):
.oh/auth-refactor.md directlyIf no session name provided (/execute):
"Save to session? [suggested-name] [custom] [skip]"
Reading: Check for existing session file. Read Aim , Problem Statement , Solution Space to understand what we're building and why. This is essential for drift detection.
Writing: After pre-flight and during execution, write status to the session file:
## Execute
**Updated:** <timestamp>
**Status:** [pre-flight | in-progress | drift-detected | complete]
[execution notes, drift observations, etc.]
Works anywhere. Manual pre-flight checklist, drift detection by reasoning. No persistence.
.oh/<session>.md for aim, constraints, selected solutionComes after: /solution-space (you need a chosen approach to execute). Leads to: /ship to deliver, /review to verify, /salvage if drifting. Can loop back to: /aim or /problem-space via /salvage when the approach isn't working.
After execute, typically:
/review - Verify the work before committing/ship - Deploy the change to users/salvage - If drift was detected and restart neededRemember: Execute is the inner loop. Stay focused on the aim. Code is cheap; thrashing is expensive. Detect drift early. Salvage without shame.
Weekly Installs
62
Repository
GitHub Stars
1
First Seen
Jan 27, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
claude-code45
opencode31
gemini-cli21
codex21
github-copilot16
cursor16
React 组合模式指南:Vercel 组件架构最佳实践,提升代码可维护性
123,700 周安装