$npx -y skills add wigtn/wigtn-plugins --skill team-memory-protocol팀 빌드 간 공유 컨텍스트 관리 프로토콜. SHARED_CONTEXT 파일 생성/관리, TaskCreate 연동, Auto Memory 업데이트 규칙을 정의합니다.
| 1 | # Shared Memory Protocol |
| 2 | |
| 3 | 팀 기반 병렬 빌드에서 팀 간 데이터 공유를 위한 3계층 메모리 관리 프로토콜입니다. |
| 4 | |
| 5 | ## 3-Layer Memory Architecture |
| 6 | |
| 7 | ``` |
| 8 | ┌─────────────────────────────────────────────────────────────┐ |
| 9 | │ 3계층 공유 메모리 구조 │ |
| 10 | ├─────────────────────────────────────────────────────────────┤ |
| 11 | │ │ |
| 12 | │ Layer 1: Auto Memory (MEMORY.md) │ |
| 13 | │ ├── 지속성: 세션 간 영구 지속 │ |
| 14 | │ ├── 용도: 프로젝트 컨벤션, 패턴, 아키텍처 결정 │ |
| 15 | │ ├── 읽기: 빌드 시작 시 (모든 팀) │ |
| 16 | │ └── 쓰기: 빌드 완료 후 (Coordinator만) │ |
| 17 | │ │ |
| 18 | │ Layer 2: SHARED_CONTEXT (파일 기반) │ |
| 19 | │ ├── 지속성: 빌드 세션 동안 (완료 후 참조용 유지) │ |
| 20 | │ ├── 용도: API 계약, 공유 타입, 환경변수, 진행 상태 │ |
| 21 | │ ├── 읽기: 빌드 중 (모든 팀) │ |
| 22 | │ └── 쓰기: Coordinator + Backend 팀만 │ |
| 23 | │ │ |
| 24 | │ Layer 3: TaskCreate (대화 내 추적) │ |
| 25 | │ ├── 지속성: 대화 세션 동안 │ |
| 26 | │ ├── 용도: 팀별 진행 추적, 의존성 관리 │ |
| 27 | │ ├── 읽기/쓰기: Coordinator │ |
| 28 | │ └── metadata: team, files, phase │ |
| 29 | │ │ |
| 30 | └─────────────────────────────────────────────────────────────┘ |
| 31 | ``` |
| 32 | |
| 33 | ## SHARED_CONTEXT 파일 관리 |
| 34 | |
| 35 | ### 파일 경로 |
| 36 | |
| 37 | ``` |
| 38 | docs/shared/SHARED_CONTEXT_{feature_name}.md |
| 39 | ``` |
| 40 | |
| 41 | ### 생성 템플릿 |
| 42 | |
| 43 | ```markdown |
| 44 | # SHARED_CONTEXT: {feature_name} |
| 45 | > team-build-coordinator 자동 생성. 팀 간 조율용. |
| 46 | > 생성일: {timestamp} |
| 47 | > 기능: {feature_name} |
| 48 | |
| 49 | ## API Contract |
| 50 | | Method | Path | Request Type | Response Type | Owner | |
| 51 | |--------|------|-------------|--------------|-------| |
| 52 | |
| 53 | ## Shared Types |
| 54 | <!-- TypeScript interfaces/types 공유 --> |
| 55 | <!-- Backend 팀이 정의, 다른 팀이 import하여 사용 --> |
| 56 | |
| 57 | ## Environment Variables |
| 58 | | Variable | Required By | Description | |
| 59 | |----------|------------|-------------| |
| 60 | |
| 61 | ## Integration Points |
| 62 | | From | To | Type | Description | |
| 63 | |------|-----|------|-------------| |
| 64 | |
| 65 | ## Team Progress |
| 66 | | Team | Status | Tasks | Completion | Last Update | |
| 67 | |------|--------|-------|------------|-------------| |
| 68 | ``` |
| 69 | |
| 70 | ### 쓰기 권한 규칙 |
| 71 | |
| 72 | ```yaml |
| 73 | write_permissions: |
| 74 | coordinator: |
| 75 | sections: ["Team Progress", "Integration Points"] |
| 76 | timing: "Phase 0 생성, Phase 2 중 업데이트, Phase 3 최종 확인" |
| 77 | |
| 78 | backend_team: |
| 79 | sections: ["API Contract", "Shared Types", "Environment Variables"] |
| 80 | timing: "Phase 1 (Foundation) + Phase 2 (Parallel)" |
| 81 | rules: |
| 82 | - "API 엔드포인트 추가/변경 시 API Contract 업데이트" |
| 83 | - "공유 타입 생성 시 Shared Types에 기록" |
| 84 | - "환경 변수 추가 시 Environment Variables에 기록" |
| 85 | |
| 86 | other_teams: |
| 87 | sections: [] |
| 88 | access: "읽기 전용" |
| 89 | rules: |
| 90 | - "API Contract을 참조하여 API 호출 구현" |
| 91 | - "Shared Types를 import하여 타입 일관성 유지" |
| 92 | - "Environment Variables를 참조하여 설정 파일 작성" |
| 93 | ``` |
| 94 | |
| 95 | ### 충돌 방지 |
| 96 | |
| 97 | ```yaml |
| 98 | conflict_prevention: |
| 99 | strategy: "섹션별 소유권" |
| 100 | rules: |
| 101 | - "각 섹션은 하나의 소유자만 수정 가능" |
| 102 | - "API Contract: Backend 팀 소유" |
| 103 | - "Shared Types: Backend 팀 소유" |
| 104 | - "Team Progress: Coordinator 소유" |
| 105 | - "Integration Points: Coordinator 소유" |
| 106 | fallback: |
| 107 | - "충돌 감지 시 Coordinator가 수동 병합" |
| 108 | - "Backend 팀의 API 정의가 우선" |
| 109 | ``` |
| 110 | |
| 111 | ## TaskCreate 연동 프로토콜 |
| 112 | |
| 113 | ### 팀별 Task 등록 |
| 114 | |
| 115 | ```yaml |
| 116 | task_naming: |
| 117 | format: "[{TEAM_PREFIX}-{NNN}] {description}" |
| 118 | prefixes: |
| 119 | BACKEND: "BE" |
| 120 | FRONTEND: "FE" |
| 121 | AI_SERVER: "AI" |
| 122 | OPS: "OP" |
| 123 | |
| 124 | examples: |
| 125 | - "[BE-001] prisma/schema.prisma - User 모델 추가" |
| 126 | - "[FE-001] src/components/LoginForm.tsx - 로그인 폼" |
| 127 | - "[AI-001] src/ai/transcribe.ts - STT 엔드포인트" |
| 128 | - "[OP-001] Dockerfile - 멀티스테이지 빌드" |
| 129 | ``` |
| 130 | |
| 131 | ### Task metadata |
| 132 | |
| 133 | ```yaml |
| 134 | metadata_schema: |
| 135 | team: "BACKEND | FRONTEND | AI_SERVER | OPS" |
| 136 | files: |
| 137 | - "file1.ts" |
| 138 | - "file2.ts" |
| 139 | phase: "foundation | parallel | integration | verification" |
| 140 | depends_on: ["BE-001"] # 다른 팀 Task 의존성 |
| 141 | ``` |
| 142 | |
| 143 | ### 의존성 관리 |
| 144 | |
| 145 | ```yaml |
| 146 | dependency_rules: |
| 147 | - description: "Frontend → Backend 스키마 의존" |
| 148 | from: "FE-*" |
| 149 | to: "BE-001 (스키마)" |
| 150 | type: "blockedBy" |
| 151 | resolution: "Phase 1에서 Backend 스키마 선행" |
| 152 | |
| 153 | - description: "AI Server → Backend API 계약 참조" |
| 154 | from: "AI-*" |
| 155 | to: "BE-* (API 계약)" |
| 156 | type: "soft_dependency" |
| 157 | resolution: "SHARED_CONTEXT의 API Contract 참조" |
| 158 | |
| 159 | - description: "Ops → 모든 팀 완료 후 최종 설정" |
| 160 | from: "OP-* (CI/CD)" |
| 161 | to: "BE-*, FE-*" |
| 162 | type: "soft_dependency" |
| 163 | resolution: "환경 변수 목록만 참조, 코드 독립" |
| 164 | ``` |
| 165 | |
| 166 | ## Auto Memory 업데이트 프로토콜 |
| 167 | |
| 168 | ### 업데이트 시점 |
| 169 | |
| 170 | ```yaml |
| 171 | timing: |
| 172 | read: "Phase 0 (빌드 시작)" |
| 173 | write: "Phase 4 검증 통과 후" |
| 174 | skip: "검증 실패 시 업데이트하지 않음" |
| 175 | ``` |
| 176 | |
| 177 | ### 업데이트 규칙 |
| 178 | |
| 179 | ```yaml |
| 180 | update_rules: |
| 181 | add_items: |
| 182 | - "새로 확립된 아키텍처 패턴 (예: Repository pattern)" |
| 183 | - "성공한 팀 간 API 계약 구조" |
| 184 | - "기술 스택 결정사항 (새 라이브러리 도입 등)" |
| 185 | - "발견된 프로젝트 컨벤션 (네이밍, 폴더 구조)" |
| 186 | |
| 187 | skip_items: |
| 188 | - "세션별 임시 데이터 (진행률, 타임스탬프)" |
| 189 | - "SHARED_CONTEXT의 실시간 상태" |