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

Scope
Current repository: /home/georgeqle/projects/tools/dev/agentic-skills.
Target skill
sync.
User-identified issue
Where is sync, and is it not a global skill?
Verdict
verified Not global; project-local gitops pack skill.

Evidence sources checked:

Verification Verdict

Agent-verified issue: 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

  1. User invoked $session-triage asking where sync is and whether it is global.
  2. The active conversation's injected skill list includes project-local skills such as session-triage, ship, and exec, but not sync.
  3. Repo search found sync under .codex/skills, .claude/skills, and packs/gitops, with no sync under global/*.
  4. User-home global skill roots were checked and did not include sync.
  5. scripts/pack.sh which sync and scripts/pack.sh status confirmed sync is individually installed from the gitops pack for this project.
  6. Parity checks showed Codex sync is current at v0.4, while Claude sync is stale at v0.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

Smallest durable fix: run 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:

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.