Session Triage: sync Skill Location
Direct answer: sync is not installed as a global core skill on this machine. It is a project-local skill from the gitops pack, with canonical sources under packs/gitops/{codex,claude}/sync and local project installs under .codex/skills/sync and .claude/skills/sync.
Table of Contents
Target and Evidence Sources
Current repository:
/home/georgeqle/projects/tools/dev/agentic-skills.sync.Where is
sync, and is it not a global skill?verified Not global; project-local gitops pack skill.
Evidence sources checked:
.agents/project.jsonproject designation and individually enabled skills.packs/gitops/PACK.mdpack metadata.packs/gitops/codex/sync/SKILL.mdandpacks/gitops/claude/sync/SKILL.mdcanonical pack contracts..codex/skills/sync/SKILL.md,.codex/skills/sync/agents/openai.yaml, and.codex/skills/sync/.agentic-skills-managed..claude/skills/sync/SKILL.mdand.claude/skills/sync/.agentic-skills-managed.- Installed global roots:
/home/georgeqle/.codex/skillsand/home/georgeqle/.claude/skills. - Canonical global source roots:
global/codexandglobal/claude. - Commands:
scripts/pack.sh which sync,scripts/pack.sh status, andscripts/pack.sh doctor.
Verification Verdict
sync is absent from installed global skill directories and from the repo's global/* skill sources. It is present as a project-local pack-installed skill from gitops.
The user's suspicion is verified in the narrow sense: sync is not a global core skill. The current repository has it enabled locally through .agents/project.json, and scripts/pack.sh which sync reports sync is individually installed from pack 'gitops'.
There is a secondary visibility/freshness finding: this active Codex session's injected skill list did not include sync, even though the project-local Codex skill root exists and the local metadata allows implicit invocation. That points to a stale session/load or project-local discovery issue, not to global-skill absence.
Evidence Matrix
| Claim | Evidence | Inference | Confidence | Decision Impact |
|---|---|---|---|---|
sync is a gitops pack skill. |
scripts/pack.sh which sync printed sync is individually installed from pack 'gitops'. packs/gitops/PACK.md lists sync. |
The owning canonical skill surface is the gitops pack, not a global core skill directory. |
High | Use pack/local refresh routes, not global init, to fix local visibility or drift. |
sync is enabled for this repo. |
.agents/project.json contains "enabled_packs": [..., "gitops", ...] and "enabled_skills": {"sync":"gitops", ...}. |
The repository intends sync to be available as a project-local skill. |
High | No pack-selection change is needed to make sync part of this repo's local skill set. |
| The Codex local install exists and points to the current pack source. | .codex/skills/sync/SKILL.md is a symlink to packs/gitops/codex/sync/SKILL.md; .codex/skills/sync/agents/openai.yaml exists and sets allow_implicit_invocation: true. Version check reports both Codex files at v0.4. |
The Codex source is available locally. If the active session cannot see it, the likely issue is session discovery freshness, not missing source. | High | Start a fresh Codex session after refresh if $sync remains absent from the UI skill list. |
| The Claude local install exists but is stale. | Version check reports .claude/skills/sync/SKILL.md at v0.3 while packs/gitops/claude/sync/SKILL.md is v0.4. Its marker source is /Users/georgele/projects/tools/agentic-skills/packs/gitops/claude/sync. |
The Claude local copy came from an old path and should be refreshed to pick up current pack contents and marker metadata. | High | Run scripts/pack.sh refresh from this repo if Claude-side sync behavior matters. |
sync is not globally installed. |
find /home/georgeqle/.codex/skills -maxdepth 2 -name SKILL.md lists seven global Codex skills and no sync. find /home/georgeqle/.claude/skills -maxdepth 2 -name SKILL.md lists six global Claude skills and no sync. |
Machine-wide user-home skill installs do not include sync. |
High | Do not expect $sync outside repos where gitops or the individual skill has been installed locally. |
sync is not a repo-global core source. |
find global -path '*sync*' -print returned no results. |
The canonical global skill source tree does not define sync. |
High | Promoting sync to global would be a new design/change request, not a current-state fix. |
| Local drift tracking should be refreshed. | scripts/pack.sh doctor reports .codex/skills/sync as unknown and .claude/skills/sync as missing, with fix scripts/pack.sh refresh. |
The local installed roots have stale or incomplete managed-install metadata even though the Codex symlink points to the current source. | Medium-high | Refresh is the smallest operational fix for local metadata and Claude staleness. |
Timeline
- User invoked
$session-triageasking wheresyncis and whether it is global. - The active conversation's injected skill list includes project-local skills such as
session-triage,ship, andexec, but notsync. - Repo search found
syncunder.codex/skills,.claude/skills, andpacks/gitops, with nosyncunderglobal/*. - User-home global skill roots were checked and did not include
sync. scripts/pack.sh which syncandscripts/pack.sh statusconfirmedsyncis individually installed from thegitopspack for this project.- Parity checks showed Codex
syncis current atv0.4, while Claudesyncis stale atv0.3.
Root Cause
Primary cause: scope confusion between global core skills and project-local pack skills. sync lives in the gitops pack and is installed locally for this repo. It is not a machine-wide global skill.
Secondary cause: local install freshness/discovery state. The active session did not expose sync in the injected skill list, despite the local Codex install existing. The local pack doctor also reports incomplete/stale metadata for sync, especially on the Claude side.
Responsible contract gap: none for the current location question. Existing project lessons already say missing injected skills may still exist in project packs and that stale Codex visibility should be checked with scripts/pack.sh status, local skill roots, and scripts/pack.sh refresh.
Recommended Fix
scripts/pack.sh refresh from this repo, then start a fresh Codex session if $sync is still absent from the active skill list. For Claude Code, use /reload-skills first, then /clear or restart if still stale.
No sync skill contract change is justified by this evidence. The current pack source is present and current for Codex. The action needed is refresh/reload, not promoting the skill to global.
If the product decision is to make sync available in every repository without pack installation, that would be a separate global-skill promotion request. This triage does not recommend that change because sync is specifically documented in packs/gitops/PACK.md as a GitOps pack skill.
Recommended next skill: none. If a future requested change is to promote or redesign sync availability, route that as an explicit targeted skill-design change.
Validation Plan
Checks that prove the conclusion:
scripts/pack.sh which syncshould continue to reportsyncfrom thegitopspack.find /home/georgeqle/.codex/skills -maxdepth 2 -name SKILL.mdandfind /home/georgeqle/.claude/skills -maxdepth 2 -name SKILL.mdshould show no globalsyncunless a future global promotion is intentionally performed.find global -path '*sync*' -printshould remain empty unlesssyncis intentionally moved into global sources.scripts/pack.sh refreshshould refresh local pack roots and managed markers if the user wants to remediate stale local install metadata.- After refresh, start a fresh Codex session and verify whether
$syncappears in the active skill list.
Confidence and Evidence Gaps
| Conclusion | Status | Confidence | What Could Change It |
|---|---|---|---|
sync is not a global skill on this machine. |
Evidence-backed | High | A future install under ~/.codex/skills/sync, ~/.claude/skills/sync, or global/*/sync. |
sync is a project-local gitops pack skill here. |
Evidence-backed | High | Changing .agents/project.json or removing the local pack install. |
| The missing active-session entry is due to stale session/load state. | Inferred | Medium | A fresh Codex session after scripts/pack.sh refresh still missing sync would require deeper runtime-discovery triage. |
| No contract change is justified. | Evidence-backed | Medium-high | Repeated reports that sync should be universal, or a product decision to make GitOps skills global by default. |
Evidence gaps: This triage did not run scripts/pack.sh refresh because the user asked where the skill is, not to mutate local installs. It also did not start a fresh Codex CLI session, so active-runtime rediscovery after refresh remains unverified.
Need for $analyze-sessions: none. The issue is narrow and directly answerable from local repo/install evidence.
Review Gates
Evidence Coverage Gate
Is the checked evidence sufficient to accept that sync is project-local and not global?
Recommended Path Gate
Which next action should be taken after this report?
Proposed File Changes Gate
Are the report-only artifacts acceptable as the only changes for this triage?
Compile Answers
Use feedback YAML for concerns before final approval, or answer every gate and compile final answers.