Skip to main content

agentic-git-sync

Use to complete Git closeout when active AGENTS.md instructions, an active workflow or skill contract, or the current user calls for submit, sync, merge, push, or closeout.

来源信息

仓库
DolphinAI2026/dolphin-code
最近来源活动
2026年7月22日 12:18
检测到的 SKILL.md 语言
多语言混合
星标
990
分支
78

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

文件资源管理器
6 个文件

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
agentic-git-sync
description
Use to complete Git closeout when active AGENTS.md instructions, an active workflow or skill contract, or the current user calls for submit, sync, merge, push, or closeout.
argument-hint
[optional: spec path, plan path, work id, verification evidence]
# Agentic Git Sync `agentic-git-sync` 是 Git 收口能力,不是通用 Git 禁止规则。以下任一来源需要 Git 收口时,可以主动执行,不要求用户理解或主动驱动 Git: - 当前生效的 `AGENTS.md` 规则启用 `agentic-git-sync` 或等价 Git 收口工作流。 - 当前 active workflow 或 active skill contract 要求提交、同步、合并、推送或收口。 - 用户当前会话主动要求提交、同步、合并、推送或收口。 skill 仅存在、pack 已安装、plan 成功本身、archive 成功、`record-attempt` 成功或 topic switch,都不是独立激活来源。本 skill 的激活判断只约束是否使用 `agentic-git-sync`;禁令作用域与跨 skill commit 归属遵循 `rules/git-permission-boundaries.md`,不得限制其它 active skills 或 workflows 按自己的 contract 执行 Git 动作。 ## Required Context - `rules/git-permission-boundaries.md` - `rules/phase65-delegation.md` - `rules/head-worktree-sync.md` - `rules/evidence.md` - `templates/git-sync-evidence.yaml` - 当前任务摘要、changed paths、spec / plan refs、当前会话 verification evidence。 ## Scenario Classification Branch contract: plan scenario uses the frozen target branch from plan-worktree metadata; non-plan scenario uses the ordinary HEAD/default branch. 执行 Git 动作前,先分类场景: - `inactive`: 没有激活来源;不执行 Git sync,只报告 ready 状态。 - `phase65_owned`: Phase 6.5 confirmed implementation evidence 拥有该流程;no-op 或 delegate。Phase 6.5 precedence 始终高于本 skill 的其它场景。 - `candidate_promotion_recovery`: Phase 6.5 不匹配,且 active consumer 提供 closed promotion request 时,必须由 `agentic-git-sync promotion validate` 验证 request,再由 `agentic-git-sync promotion evaluate` 给出 action。remote advance alone is insufficient;只有 validated request 和 evaluator action 才能授权 publication。 - `inline_pending_acceptance`: inline 修改存在,工作流已启用,但用户未确认且未切换话题;不 commit / push,等待或询问。 - `inline_accepted_capture`: inline 修改已被用户接受,或工作流启用时用户切换到下一话题且没有未关闭 blocker;提交归属明确路径,如果 ordinary HEAD/default branch changed,则 push its upstream。 - `plan_running`: 非交互 plan 仍在运行,或最终状态未知;不 merge / push。 - `plan_completed_integrate`: 非交互 plan 有结构化成功和验证证据;提交剩余归属明确路径,merge into the frozen target branch,然后 push the frozen target branch through the target-aware lifecycle。 - `plan_failed_no_integrate`: plan 最终失败、最终 watchdog、验证不完整或 review 未通过;不 merge / push,保存 evidence 并报告 failed 或 blocked。 - `blocked_needs_user`: Git 状态不安全,或缺少必要事实;不执行破坏性动作,保存 evidence 并报告 blocker。 ## Plan Success Gate `plan_completed_integrate` 需要同时满足: - `codex-agentic` exit code 为 `0`。 - 最终 attempt 的 `run.json` 存在。 - 最终状态为 completed,或等价成功且没有终止性失败。 - `verification.status == "complete"`,或 plan 明确要求的验证 evidence 存在且成功。 - `termination_reason` 缺失,或为非阻塞原因。 - run 不是 `watchdog_timeout`、`model_capacity`、`interrupted`、`verification_incomplete` 或 `verification_next_phase_required`。 - plan 要求的 implementation review 已通过,或该 plan 不要求 review。 - dirty paths 能归属到当前 plan、archive 产物或已验证 follow-up fix。 缺少任一事实时,结果只能是 `blocked_needs_user` 或 `plan_failed_no_integrate`,不能 merge / push。 ## Hook 升级恢复发布契约 Hook upgrade recovery 只适用于 ordinary local plan execution 中闭合的 `hook_authorization_changed` 事务。`codex-agentic` 必须同时收到显式 `--allow-hook-recovery` 与 `--hook-recovery-policy <canonical-absolute-file>`;skill 存在、diagnostic 出现或环境变量都不能隐式激活恢复。Phase 6.5 precedence 必须先于 本地恢复判断;命中 confirmed implementation evidence 时返回 `recovery_not_applicable` 并按 `rules/phase65-delegation.md` 委托。 恢复链消费两类不可互换的 closed operation: - trigger operation:`kind=agentic-worktree-hook-operation`、`schema_version=v2`,由 plan-worktree hook authorization 失败时写入 `~/.agentic-coding/work/<work-id>/plan-worktree-hook-triggers/<trigger-id>/trigger-operation.json`。 - publication operation:`kind=agentic-worktree-hook-publication-operation`、 `schema_version=v1`,由 recovery controller 在候选迁移后写入 `~/.agentic-coding/work/<work-id>/plan-worktree-recovery/<recovery-id>/publication-operation.json`, 并通过 `trigger_operation_ref` 绑定原 trigger operation。 publication is owned exclusively by `agentic-git-sync`。wrapper、hook runner 和 recovery controller must not push directly;它们只能生成或消费 `publication-request.json` / `publication-result.json`,由本 skill 的 `candidate_promotion_recovery` gate 执行唯一允许的 canonical single-ref argv。 `candidate_published` is not plan completion,不能触发普通 plan completed cleanup、 `record-attempt --status completed` 或 CI handoff。 publication result 进入 `recovery_publication_blocked` 时,retryable blocked state 只允许 raw diagnostic `promotion_push_unknown`、`remote_unobservable`、 `promotion_tracking_stale`,并提供 canonical `--reconcile` retry command。 terminal blocked state 包括 `promotion_lease_rejected`、`promotion_remote_changed`、 `promotion_post_push_mismatch`、`promotion_retry_exhausted`、`promotion_auth_failed`、 `promotion_push_failed`、`promotion_post_check_ambiguous`、 `promotion_post_check_unobservable`、`remote_ref_missing_or_ambiguous`、 `promotion_observation_invalid`,不得提供 resume status 或 retry command。operation union、引用、候选身份或 artifact observation 不闭合时使用 `recovery_publication_operation_invalid`;blocked result 形状或 diagnostic 不闭合时使用 `recovery_publication_blocked`。 ## Candidate Promotion Gate `candidate_promotion_recovery` 是 reviewed candidate publication 的窄恢复场景,不是普通 plan closeout。真实 push 前必须: 1. 运行 `agentic-git-sync promotion validate --request <request.json>`,消费其 closed validation output;skill 不得自行解析或拼装 request JSON。 2. 在 promotion worktree 中运行 `git rev-parse --show-toplevel`、`git rev-parse --git-common-dir`、`git branch --show-current` 和 `git rev-parse HEAD`。把 git-common-dir 规范化为绝对路径后,四项实际观测必须分别 exactly equal validator output 的 `promotion_worktree_root`、`promotion_git_common_dir`、`promotion_branch` 和 `candidate_sha`;任一失败或不相等都以既有 `promotion_target_mismatch` fail closed,且不得 push。把实际观测持久化为 `promotion_worktree_root`、`promotion_git_common_dir`、`promotion_branch`、`promotion_head_sha`。 3. 从 validated request 绑定的 frozen metadata 读取 `target.remote_ref`,且 lease ref 与 refspec actual destination 必须同为 `refs/heads/<target-remote-branch>`。 4. 验证 persisted diagnostic 为 `hook_authorization_changed`、attempt count 为 1、candidate scope/child snapshot/equivalence/current-session verification/implementation review 全部通过。 5. 验证 live remote 和 remote tracking 都仍为 expected-old,并在 push 前证明 expected-old 是 candidate 的严格祖先。 6. 运行 `agentic-git-sync promotion evaluate --request <request.json> --state <push-state.json> --observation <remote-observation.json>`;只有 `push_once` 或 `retry_same_argv_once` evaluator action 才允许执行 validator 输出的 canonical single-ref argv。`reconcile_published` 直接进入 post-verification,`block` 不得 push。 7. push 后再次通过 evaluator 和 exact remote observation 证明 destination 等于 candidate;成功结果固定为 `candidate_published`。 任一 pre-gate 失败必须以 `push_status=not_attempted`、`result_class=blocked` 停止,并记录首个稳定 diagnostic:`promotion_request_invalid`、`promotion_attempt_invalid`、`promotion_hook_authorization_invalid`、`promotion_target_mismatch`、`promotion_scope_violation`、`promotion_child_snapshot_drift`、`promotion_equivalence_invalid`、`promotion_verification_stale`、`promotion_review_stale`、`promotion_non_fast_forward`、`remote_unobservable`、`remote_ref_missing_or_ambiguous`、`promotion_tracking_stale`、`promotion_remote_changed` 或 `promotion_observation_invalid`。push/evaluator 后续稳定 diagnostic 还包括 `promotion_post_check_unobservable`、`promotion_post_check_ambiguous`、`promotion_post_push_mismatch`、`promotion_lease_rejected`、`promotion_auth_failed`、`promotion_push_failed`、`promotion_push_unknown` 和 `promotion_retry_exhausted`。 ### Closed Diagnostic Normalization skill 只消费 validator/evaluator 的 closed CLI output,must not re-parse the schema。CLI raw diagnostic 到 git-sync evidence `promotion_diagnostic` 的映射固定如下;未列出的 raw code 必须 fail closed 为 `promotion_request_invalid`,不得自由改名: | CLI raw diagnostic | evidence `promotion_diagnostic` | | --- | --- | | `promotion_path_invalid` | `promotion_request_invalid` | | `promotion_request_invalid` | `promotion_request_invalid` | | `promotion_evidence_hash_mismatch` | `promotion_request_invalid` | | `promotion_attestation_invalid` | `promotion_request_invalid` | | `promotion_attestation_mismatch` | `promotion_request_invalid` | | `promotion_target_mismatch` | `promotion_target_mismatch` | | `promotion_hook_authorization_invalid` | `promotion_hook_authorization_invalid` | | `promotion_observation_invalid` | `promotion_observation_invalid` | | `remote_unobservable` | `remote_unobservable` | | `remote_ref_missing_or_ambiguous` | `remote_ref_missing_or_ambiguous` | | `promotion_tracking_stale` | `promotion_tracking_stale` | | `promotion_remote_changed` | `promotion_remote_changed` | | `promotion_post_check_unobservable` | `promotion_post_check_unobservable` | | `promotion_post_check_ambiguous` | `promotion_post_check_ambiguous` | | `promotion_post_push_mismatch` | `promotion_post_push_mismatch` | | `promotion_lease_rejected` | `promotion_lease_rejected` | | `promotion_auth_failed` | `promotion_auth_failed` | | `promotion_push_failed` | `promotion_push_failed` | | `promotion_push_unknown` | `promotion_push_unknown` | | `promotion_retry_exhausted` | `promotion_retry_exhausted` | Do not automatically fetch. Do not change the expected-old parent. Do not fall back to an ordinary plan scenario. Remote movement, a newly observed parent, or an incomplete request must remain blocked rather than being reclassified. ## Workflow 1. 检查 Phase 6.5 ownership。若检测到 confirmed implementation evidence,按 `rules/phase65-delegation.md` no-op 或 delegate。 2. 检查是否存在当前 `AGENTS.md`、active workflow、active skill contract 或用户指令要求 Git 收口。若没有,返回 `inactive`。 3. 若 closed promotion request 存在,先执行 Candidate Promotion Gate;否则按 ordinary inline / plan 场景状态机分类当前工作。 4. 仅对 ordinary inline / plan 场景检查 `git status --short`、目标分支、upstream、ahead / behind / diverged 状态和 dirty paths。ordinary plan worktree 必须先应用 `.agentic/plan-worktree.yaml` metadata precedence,并委托 target-aware lifecycle merge/push;ordinary non-plan 场景才使用普通 HEAD/default branch。不要运行 `git add .`。 5. 只提交可归属到当前工作的 dirty paths,记录 skipped dirty paths。 6. 对 `plan_completed_integrate`,只在结构化成功和验证证据完整时,才把 plan / worktree 分支 merge into the frozen target branch。 7. 仅对 `plan_completed_integrate` 按 `rules/head-worktree-sync.md` 的 target-aware lifecycle push the frozen target branch;ordinary non-plan 场景仅在 ordinary HEAD/default branch changed 时 push 其 upstream。push 失败则结果为 `blocked`,不算 `completed`。 8. 对非默认分支的安全 capture,如果不需要默认分支集成,结果可以是 `local_captured`。 9. 持久化 redacted evidence。 Workflow steps 4 and 7 apply only to ordinary scenarios. `candidate_promotion_recovery` must not call `agentic-plan-worktree merge` or its target-aware push path, and it must not merge or clean up. It may execute only the evaluator-authorized canonical single-ref argv, followed by exact post-check and evidence persistence. 读取 local legacy evidence 时,如果只有 `default_branch`,normalize 为 canonical `target_branch`;新 evidence 双写同值 alias。该 legacy evidence normalization 不迁移 Phase 6.5 schema。 ## Result Classes - `completed`: plan 场景 frozen target branch 已提交 / 合并并 push 到 metadata upstream;non-plan 场景 ordinary HEAD/default branch changed 后已 push upstream;其它 capture 也已记录。 - `local_captured`: 归属明确的工作只提交在不要求集成的分支,且未改变 plan frozen target 或 non-plan ordinary HEAD/default branch。 - `inactive`: 没有激活来源;未执行 Git sync。 - `blocked`: 必须执行的 sync 无法安全完成;evidence 已保留。 - `delegated_phase65`: Phase 6.5 拥有该流程。 - `candidate_published`: validated candidate 已通过 strict expected-old CAS 发布并完成 post-check。`candidate_published` is not plan completion;不得归一化为 `completed`。 ## Forbidden Actions - Do not force push or perform non-fast-forward updates. The only allowed lease form is the single-ref `fast_forward_expected_old_lease` emitted by `agentic-git-sync promotion validate` for a fully gated `candidate_promotion_recovery`; `--force`, implicit leases, multi-ref pushes, changed-parent retries, and non-fast-forward ancestry remain forbidden. - Do not run `git reset --hard`. - Do not run `git clean`. - Do not run `git stash`. - Do not rebase existing history. - Do not drop commits. - Do not delete unmerged branches or worktrees. - Do not trigger Jenkins, GitLab, GitHub Actions, or Control Plane CI APIs.
在 GitHub 查看