Why Use This This skill provides specialized capabilities for aiskillstore's codebase.
Use Cases Developing new features in the aiskillstore repository Refactoring existing code to follow aiskillstore standards Understanding and working with aiskillstore's codebase structure
Install Guide 2 steps 1 2 Install inside Ananke
Click Install Skill, paste the link below, then press Install.
https://github.com/aiskillstore/marketplace/tree/main/skills/doyajin174/triforce-sync-check Skill Snapshot Auto scan of skill assets. Informational only.
Valid SKILL.md Checks against SKILL.md specification
Source & Community
Updated At Jan 19, 2026, 04:39 AM
Skill Stats
SKILL.md 169 Lines
Total Files 1
Total Size 0 B
License MIT
---
name: triforce-sync-check
description: Verify 3-Mirror skill sync consistency across .public/skills, .codex/skills, and .claude/skills. Use after skill changes, before commits, or for CI validation.
allowed-tools: Read, Glob, Grep, Bash
license: MIT
metadata:
author: community
version: "1.0"
---
# 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
```bash
# 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
```bash
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
```bash
# 디렉토리 목록 비교
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
```bash
# 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
```bash
# 각 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
```bash
# name 필드 중복 확인
grep -h "^name:" .public/skills/*/SKILL.md | sort | uniq -c | grep -v "^ *1 "
```
**Pass Criteria**: 출력 없음 (중복 없음)
## Sync Command
불일치 발견 시 재동기화:
```bash
node scripts/sync-skills.js
```
## CI Integration
```yaml
# .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. 재검증
```