agentsclimarketplace

Triforce sync check

Skill aiskillstore/marketplace/skills/doyajin174/triforce-sync-check

Security-audited skills for Claude, Codex & Claude Code. One-click install, quality verified.

Install
npx -y skills add aiskillstore/marketplace --skill triforce-sync-check

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.

What its author says it does

Copied from the file, not written here

Verify 3-Mirror skill sync consistency across .public/skills, .codex/skills, and .claude/skills. Use after skill changes, before commits, or for CI validation.

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

4.2 KB, as published. Nobody here has run it

Triforce Sync Check

3-Mirror 스킬 동기화 일관성을 검증하는 스킬입니다.

Architecture

.public/skills/     (SSOT - Single Source of Truth)
       │
       ├──► .codex/skills/   (Mirror - Antigravity/Codex)
       │
       └──► .claude/skills/  (Mirror - Claude Code)

When to Use

  • 스킬 추가/수정/삭제 후
  • 커밋 전 검증
  • CI/CD 파이프라인
  • 배포 전 확인

Quick Check

# 1. 스킬 수 확인
ls -1d .public/skills/*/ | wc -l
ls -1d .codex/skills/*/ | wc -l
ls -1d .claude/skills/*/ | wc -l

# 2. 콘텐츠 해시 비교
find .public/skills -name "SKILL.md" -exec md5 -q {} \; | sort | md5
find .codex/skills -name "SKILL.md" -exec md5 -q {} \; | sort | md5
find .claude/skills -name "SKILL.md" -exec md5 -q {} \; | sort | md5

Full Verification Checklist

1. Count Verification

public_count=$(ls -1d .public/skills/*/ | wc -l)
codex_count=$(ls -1d .codex/skills/*/ | wc -l)
claude_count=$(ls -1d .claude/skills/*/ | wc -l)

echo "SSOT:   $public_count"
echo "Codex:  $codex_count"
echo "Claude: $claude_count"

Pass Criteria: 3개 값이 모두 동일

2. Structure Verification

# 디렉토리 목록 비교
diff <(ls -1 .public/skills | sort) <(ls -1 .codex/skills | sort)
diff <(ls -1 .public/skills | sort) <(ls -1 .claude/skills | sort)

Pass Criteria: diff 출력 없음 (빈 결과)

3. Content Verification

# SKILL.md 파일 해시 비교
public_hash=$(find .public/skills -name "SKILL.md" -exec md5 -q {} \; | sort | md5)
codex_hash=$(find .codex/skills -name "SKILL.md" -exec md5 -q {} \; | sort | md5)
claude_hash=$(find .claude/skills -name "SKILL.md" -exec md5 -q {} \; | sort | md5)

[ "$public_hash" = "$codex_hash" ] && [ "$public_hash" = "$claude_hash" ]

Pass Criteria: 3개 해시가 모두 동일

4. YAML Validation

# 각 SKILL.md의 frontmatter 유효성
for skill in .public/skills/*/SKILL.md; do
  name=$(grep "^name:" "$skill" | head -1)
  desc=$(grep "^description:" "$skill" | head -1)
  if [ -z "$name" ] || [ -z "$desc" ]; then
    echo "INVALID: $skill"
  fi
done

Pass Criteria: INVALID 출력 없음

5. Duplicate Check

# name 필드 중복 확인
grep -h "^name:" .public/skills/*/SKILL.md | sort | uniq -c | grep -v "^ *1 "

Pass Criteria: 출력 없음 (중복 없음)

Sync Command

불일치 발견 시 재동기화:

node scripts/sync-skills.js

CI Integration

# .github/workflows/skills-check.yml
- name: Triforce Sync Check
  run: |
    public=$(ls -1d .public/skills/*/ | wc -l)
    codex=$(ls -1d .codex/skills/*/ | wc -l)
    claude=$(ls -1d .claude/skills/*/ | wc -l)

    if [ "$public" != "$codex" ] || [ "$public" != "$claude" ]; then
      echo "❌ Mirror count mismatch"
      exit 1
    fi

    pub=$(find .public/skills -name "SKILL.md" -exec md5 -q {} \; | sort | md5)
    cx=$(find .codex/skills -name "SKILL.md" -exec md5 -q {} \; | sort | md5)
    cl=$(find .claude/skills -name "SKILL.md" -exec md5 -q {} \; | sort | md5)

    if [ "$pub" != "$cx" ] || [ "$pub" != "$cl" ]; then
      echo "❌ Content hash mismatch"
      exit 1
    fi

    echo "✅ Triforce sync verified"

Troubleshooting

증상원인해결
수 불일치sync 미실행node scripts/sync-skills.js
해시 불일치직접 미러 수정SSOT 수정 후 sync
YAML 오류frontmatter 형식name/description 확인
중복 name복사 붙여넣기 실수고유한 name으로 수정

Pass/Fail Summary

✅ PASS 조건:
- Count: github = codex = claude
- Structure: 동일한 디렉토리 목록
- Content: 동일한 해시값
- YAML: 모든 스킬에 name + description
- Unique: 중복 name 없음

❌ FAIL 시:
1. 오류 유형 식별
2. SSOT (.public/skills) 수정
3. sync-skills.js 실행
4. 재검증

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.