AGENT SKILL
sync
Pull latest changes from remote and report status
- License 许可
- MIT
- 最近更新
- 2026-11-10
- Stars
- ★ 1
- Forks
- 0
01 前言 Front Matter
- name
- sync
- type
- shipping
- version
- v0.3
- description
- Pull latest changes from remote and report status
03 SKILL.md 正文
Sync
Invoke as $sync.
Pull the latest changes from the remote repository and report status.
Workflow
- Check current state:
- Run
git statusto check for uncommitted changes. - If there are uncommitted changes, stash them first, pull, then pop the stash. Warn the user about the stash.
- Run
- Pull from remote:
- Run
git pull --rebase origin <current-branch>. - If rebase conflicts occur, abort the rebase, try
git pull --no-rebaseinstead, and report any merge conflicts for the user to resolve.
- Run
- Check for outstanding work:
- Check if
tasks/roadmap.mdexists for the full plan, andtasks/todo.mdfor the current phase. - If
tasks/todo.mdexists, read it and look for unchecked items (- [ ]). - If there are incomplete items, summarise: which phase is current, what the next step is, and how many steps/phases remain.
- If
tasks/manual-todo.mdexists, count unchecked manual tasks and include in the summary. - If
tasks/record-todo.mdortasks/recurring-todo.mdexists, count unchecked advisory items and include those counts separately. Do not treat them as active plan steps. - If all items are checked, report that the plan is complete.
- If neither file exists, note that there is no active plan.
- Check if
- Check provisioned agent config:
- If
CLAUDE.mdorAGENTS.mdcontains<!-- provision-agentic-config vX.Y -->, extract the version. - Read the canonical
provision-agentic-configskill from the first existing path in this order:~/.codex/skills/provision-agentic-config/SKILL.md~/.claude/skills/provision-agentic-config/SKILL.mdglobal/codex/provision-agentic-config/SKILL.mdin the current repo, when presentglobal/claude/provision-agentic-config/SKILL.mdin the current repo, when present
- Extract the
version:field from the canonical skill's YAML frontmatter. - Extract the canonical provisioned blocks from the same skill:
CLAUDE.md: the fenced block underRequired Claude Blockor the section that says "The Claude block to insert into./CLAUDE.md".AGENTS.md: the fenced block underRequired AGENTS Blockor the section that says "The AGENTS block to insert into./AGENTS.md".
- Compare each existing project file against its corresponding canonical block after normalizing line endings and trimming only leading/trailing whitespace around the block. Do not ignore changed bullets, headings, command examples, or policy text.
- If the installed skill version is newer than the provisioned version in either file, warn:
⚠ CLAUDE.md provisioned with vX.Y but provision-agentic-config is at vX.Y — consider re-running $provision-agentic-config - If the version comment is missing from
CLAUDE.mdorAGENTS.md, note:ℹ No provision version found in CLAUDE.md/AGENTS.md — run $provision-agentic-config to add version tracking - If a project file has the current version comment but the provisioned block content differs from the canonical block, warn:
⚠ CLAUDE.md provisioned block differs from the canonical provision-agentic-config vX.Y block — re-run $provision-agentic-config - If a canonical block cannot be extracted, fall back to the version-only check and note:
ℹ Could not extract canonical provision-agentic-config block; checked version comment only - If none of the canonical skill files exists, skip this check silently.
- Always report the local canonical source path used and its
version:field when this check runs.
- If
- Resolve GitHub freshness preference:
- Use the user-local machine-wide preference file at
~/.agentic-skills/preferences.json. - Read
sync.github_freshness_check, whose only allowed values are"ask","always", and"never". - If the file or key is missing, ask the user once which default to remember:
- Always check GitHub during sync
- Never check GitHub during sync
- Ask each time
- Create
~/.agentic-skills/preferences.jsonif needed and save the selected value as:{ "sync": { "github_freshness_check": "ask" } } - If the value is
"always", check GitHub remote freshness automatically. - If the value is
"never", skip GitHub freshness checks and report that local canonicalprovision-agentic-configwas used without a GitHub check. - If the value is
"ask", ask before checking GitHub for this sync. - Treat malformed JSON or an unsupported value as missing preference and ask again before writing one of the allowed values.
- Use the user-local machine-wide preference file at
- Optional GitHub freshness check:
- Only run this check when the resolved preference or explicit user approval says to check GitHub.
- Compare the local
agentic-skillscheckout againstorigin/HEADusing non-mutating commands such asgit remote get-url origin,git rev-parse HEAD,git rev-parse origin/HEAD, and, when remote freshness is explicitly enabled,git fetch --dry-runor an equivalent non-mutating freshness probe. - Report the local checkout commit, remote URL, local
origin/HEADcommit if available, and whether the local checkout appears behind the remote. - Do not pull, fast-forward, rebase, install, or mutate the checkout from plain
$sync. - If a GitHub check shows the local checkout is stale, recommend
$init-agentic-skills updatefor an explicit update.
- Report status:
- Branch name
- Commits pulled (if any) — show short log of new commits
- Whether stashed changes were re-applied
- Any conflicts that need manual resolution
- Current
git status - Agent config drift — provisioning version, local canonical source path/version, and canonical block match/drift status for
CLAUDE.mdandAGENTS.md, if checked - GitHub freshness — preference value, whether GitHub was checked, and the local checkout/remote status; when skipped, say local canonical was used
- Outstanding work — summary from step 3 (next step, current phase, remaining work, pending manual tasks) or "No active plan"
- Advisory tasks — pending record/recurring counts, if those files exist
- Post-sync actions:
a) Check if
sync.mdexists at the project root. b) Ifsync.mdexists — parse and execute it:- Read
sync.mdand identify sections by H2 headings. - Dependencies (aliases: "Deps", "Dependency Management"): Execute shell commands in fenced code blocks. Report output briefly.
- Conflict Resolution (aliases: "Conflicts"): If the pull introduced merge conflicts (from step 2), apply the guidance in this section. If no conflicts, skip silently.
- Custom (aliases: "Project-Specific", "Scripts", "Setup"): Execute shell commands in fenced code blocks in order. Report output briefly.
- Notifications (aliases: "Awareness", "Alerts", "Watch"): For each bullet, check if the mentioned file/directory was modified in pulled commits (
git diff --name-onlyagainst pre-pull HEAD). If any match, print a prominent alert. - Unrecognised headings: skip with a note.
- Report a summary of all post-sync actions taken.
c) If
sync.mddoes not exist — suggest creating one: - Analyse the project to detect: package manager (look for lockfiles), common scripts (package.json, Makefile, Justfile), config templates (.env.example, docker-compose.yml).
- Present a suggested
sync.mdfollowing the format below. - Ask: "Would you like me to create this
sync.md?" - Only create the file if the user approves.
- Read
sync.md format
The sync.md file lives at the project root. H2 sections are categories. Shell commands go in fenced code blocks; prose guidance goes in bullet points.
# Post-Sync Actions
## Dependencies
```sh
npm install
Conflict Resolution
- Always accept theirs for
package-lock.json
Custom
npm run codegen
Notifications
.env.example— check for new environment variablesCLAUDE.md— review if project conventions were updated
## Constraints
- Do not force-push or rewrite history.
- Do not auto-resolve merge conflicts — report them and let the user decide. However, if `sync.md` has a Conflict Resolution section, follow its guidance for the specific files/patterns it covers.
- If stash pop fails due to conflicts, leave the stash intact and report it.
- Post-sync commands from `sync.md` run in the project root directory.
- If any post-sync command fails, report the error and continue with remaining actions.
- Never auto-create `sync.md` without explicit user approval.
- Do not execute commented-out sections (`<!-- ... -->`).
- Plain `$sync` must not update the `agentic-skills` checkout, pull from GitHub for the local canonical source, or reinstall skills. Only `$init-agentic-skills update` / `$init-agentic-skills latest` may perform that explicit update flow after confirmation.
## Default Shipping Contract
Follow the shared shipping contract convention in CLAUDE.md.
04 同仓库更多 Skills
source-checkout-allowed
Valid source-checkout-only fixture.
★ 1
deck-install-valid
Valid deck install fixture.
★ 1
codex-pack-guard-valid
Valid Codex Pack Availability Guard fixture.
★ 1
codex-missing-skill-valid
Valid Codex missing skill fallback fixture.
★ 1
codex-base-skill-fallback-valid
Valid Codex base skill fallback fixture.
★ 1
claude-pack-guard-valid
Valid Claude Pack Availability Guard fixture.
★ 1