Loading...
Loading...
Compare original and translation side by side
git mergegit reset --hard@skills/synthesis/SKILL.mdmerge_prreferences/local-git-semantics.mdgit mergegit reset --hard@skills/synthesis/SKILL.mdmerge_prreferences/local-git-semantics.md/delegateHEADgit mergegit reset --hard <rollbackSha>completedrolled-backabortedtaskIdnext_actions/delegateHEADgit mergegit reset --hard <rollbackSha>completedrolled-backabortedtaskIdnext_actionsfeature/merge-pendingtask.completednext_actionsmerge_orchestrate${streamId}:merge_orchestrate:${taskId}exarchos merge-orchestrate ...mcp__exarchos__exarchos_orchestrate({ action: "merge_orchestrate", ... })merge_prmergeOrchestrator.phasefeature/merge-pendingtask.completednext_actions${streamId}:merge_orchestrate:${taskId}merge_orchestrateexarchos merge-orchestrate ...mcp__exarchos__exarchos_orchestrate({ action: "merge_orchestrate", ... })merge_prmergeOrchestrator.phaseSchema: discover the action's argument schema with. Strategy is required (no schema-level default) — pickmcp__exarchos__exarchos_orchestrate({ action: "describe", actions: ["merge_orchestrate"] })/squash/mergedeliberately.rebase
Schema( schema ): 可通过查看该操作的参数 schema 。合并策略为必填项(无默认值)——需明确选择mcp__exarchos__exarchos_orchestrate({ action: "describe", actions: ["merge_orchestrate"] })/squash/merge。rebase
| Strategy | Local git operation | When to choose |
|---|---|---|
| | Preserves the subagent's commit history with a visible merge boundary. |
| | Subagent commit history is noise; one logical change should land as one commit. |
| rebases an ephemeral copy of source onto target then ff-merges target — linear history | No merge commit; integration branch stays linear. The original source ref is preserved (the rebase runs on a temporary branch that is deleted afterward), so an executor rollback only needs to reset target. |
| 策略 | 本地Git操作 | 适用场景 |
|---|---|---|
| | 保留子代理的提交历史,带有清晰的合并边界。 |
| | 子代理的提交历史无意义;一个逻辑变更应作为单个提交落地。 |
| 将源分支的临时副本变基到目标分支,然后快进合并目标分支 — 线性历史 | 无合并提交;集成分支保持线性。原始源引用会被保留(变基操作在临时分支上执行,之后会被删除),因此执行回滚只需重置目标分支。 |
mcp__exarchos__exarchos_orchestrate({
action: "merge_orchestrate",
featureId: "<id>",
sourceBranch: "<subagent-branch>",
targetBranch: "<integration-branch>",
taskId: "<task-id>", // present when auto-dispatched from next_actions
strategy: "squash", // required
dryRun: false, // optional — preflight only, no executor invocation
resume: false, // optional — short-circuit on terminal phases
})exarchos merge-orchestrate \
--feature-id <id> \
--source-branch <subagent-branch> \
--target-branch <integration-branch> \
--task-id <task-id> \
--strategy squash
# add --dry-run for preflight-only, --resume for terminal-phase short-circuitmcp__exarchos__exarchos_orchestrate({
action: "merge_orchestrate",
featureId: "<id>",
sourceBranch: "<subagent-branch>",
targetBranch: "<integration-branch>",
taskId: "<task-id>", // 自动调度自next_actions时会携带该参数
strategy: "squash", // 必填
dryRun: false, // 可选——仅执行预检,不调用执行器
resume: false, // 可选——在终端阶段触发短路逻辑
})exarchos merge-orchestrate \
--feature-id <id> \
--source-branch <subagent-branch> \
--target-branch <integration-branch> \
--task-id <task-id> \
--strategy squash
# 添加--dry-run仅执行预检,--resume开启终端阶段短路逻辑ToolResultdata.phase | Meaning | Operator action |
|---|---|---|
| Local merge landed; | None — workflow exits |
| Preflight failed; no merge attempted. | Inspect |
| Merge was attempted, failed ( | Inspect |
references/recovery-runbook.mdToolResultdata.phase | 含义 | 操作人员操作建议 |
|---|---|---|
| 本地合并完成; | 无需操作——工作流从 |
| 预检失败;未尝试合并。 | 检查 |
| 尝试合并但失败( | 检查 |
references/recovery-runbook.mdfeatureIdgate.executed| Event type | When | Carries |
|---|---|---|
| Always (after preflight runs, before any merge attempt) | Full structured guard sub-results + |
| On successful local merge | |
| On post-merge failure followed by reset | |
mcp__exarchos__exarchos_eventrecovery-runbook.mdDiscover the event payload schemas via.mcp__exarchos__exarchos_event({ action: "describe", eventTypes: ["merge.preflight", "merge.executed", "merge.rollback"] })
featureIdgate.executed| 事件类型 | 发送时机 | 携带内容 |
|---|---|---|
| 始终发送(预检完成后,合并尝试前) | 完整的结构化防护规则子结果;若 |
| 本地合并成功时 | |
| 合并失败后执行回滚时 | |
mcp__exarchos__exarchos_eventrecovery-runbook.md可通过查看事件负载的 schema 。mcp__exarchos__exarchos_event({ action: "describe", eventTypes: ["merge.preflight", "merge.executed", "merge.rollback"] })
merge_orchestratemerge_prmerge_orchestratemerge_pr| Aspect | | |
|---|---|---|
| Layer | Local SDLC handoff | Remote PR primitive |
| Phase affinity | | |
| What it merges | A subagent worktree branch into the integration branch | A user-facing PR via the VCS provider API |
| Identifier required | | |
| Underlying operation | | |
| Rollback | | None — the VCS provider owns merge state |
| Events | | |
merge_orchestratemerge_pr| 维度 | | |
|---|---|---|
| 层级 | 本地SDLC交接 | 远程PR基础操作 |
| 阶段关联 | | |
| 合并对象 | 子代理工作树分支到集成分支 | 通过版本控制系统提供商API合并面向用户的PR |
| 必填标识 | | |
| 底层操作 | | |
| 回滚机制 | | 无——版本控制系统提供商管理合并状态 |
| 事件 | | |
merge_orchestratemerge_prresume: truemergeOrchestratorcompletedrolled-backabortedEXCLUDED_MERGE_PHASESpendingexecutingresumeresume: truemergeOrchestratorcompletedrolled-backabortedEXCLUDED_MERGE_PHASESpendingexecutingresumedryRun: truemerge.preflight{ dryRun: true, preflight, phase: 'pending' | 'aborted' }dryRun: truemerge.preflight{ dryRun: true, preflight, phase: 'pending' | 'aborted' }| Don't | Do Instead |
|---|---|
| Use this skill to merge a remote PR | Use |
Manually emit | Let the handler auto-emit; manual emission causes duplicates (one exception: documented manual-recovery flow in |
Wrap merge events under | Direct stream append with the dedicated event type — these are state transitions, not gate executions |
Re-dispatch after a | Read |
Omit | Strategy is required; supply |
| Invoke from a subagent worktree | Preflight refuses (main-worktree assertion); invoke from the main worktree |
| 禁止操作 | 正确做法 |
|---|---|
| 使用本技能合并远程PR | 在合成阶段使用 |
在正常流程中手动发送 | 由处理器自动发送;手动发送会导致重复事件(唯一例外: |
将合并事件包裹在 | 使用专属事件类型直接写入事件流——这些是状态转换事件,而非网关执行事件 |
在 | 查看 |
省略 | 合并策略为必填项;需明确指定 |
| 从子代理工作树中调用 | 预检会拒绝(主工作树断言);从主工作树中调用 |
@skills/workflow-state/references/phase-transitions.mddelegatemerge-pendingmerge-pending-entrytask.completedmergeOrchestrator.phaseEXCLUDED_MERGE_PHASESmerge-pendingdelegatemerge-pending-exitmergeOrchestrator.phasecompletedrolled-backabortedmerge-pendingdelegatedelegatemerge-pendingreview@skills/workflow-state/references/phase-transitions.mddelegatemerge-pendingmerge-pending-entrytask.completedmergeOrchestrator.phaseEXCLUDED_MERGE_PHASESmerge-pendingdelegatemerge-pending-exitmergeOrchestrator.phasecompletedrolled-backabortedmerge-pendingdelegatedelegatemerge-pendingreviewmcp__exarchos__exarchos_orchestrate({ action: "describe", actions: ["merge_orchestrate"] })merge-pendingmcp__exarchos__exarchos_workflow({ action: "describe", playbook: "feature" })mcp__exarchos__exarchos_event({ action: "describe", eventTypes: ["merge.preflight", "merge.executed", "merge.rollback"] })mcp__exarchos__exarchos_orchestrate({ action: "describe", actions: ["merge_orchestrate"] })merge-pendingmcp__exarchos__exarchos_workflow({ action: "describe", playbook: "feature" })mcp__exarchos__exarchos_event({ action: "describe", eventTypes: ["merge.preflight", "merge.executed", "merge.rollback"] })passed: truemergeOrchestrator.phase === 'completed'merge.executedmergeSharollbackShamerge-pendingdelegatemergeShareferences/recovery-runbook.mdpassed: truemergeOrchestrator.phase === 'completed'mergeSharollbackShamerge.executedmerge-pendingdelegatemergeShareferences/recovery-runbook.md