mupengism 1.3.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/DONATE.md +31 -0
- package/LICENSE +21 -0
- package/QUICKSTART.md +340 -0
- package/README.md +244 -123
- package/installer/cli.js +211 -400
- package/layer0/README.md +25 -0
- package/layer0/skill/AGENTS.md +164 -0
- package/layer0/skill/MEMORY-SYSTEM.md +253 -0
- package/layer0/skill/README.md +47 -0
- package/layer0/skill/SECURITY-PRINCIPLES.md +152 -0
- package/layer0/skill/SOUL-TEMPLATE.md +118 -0
- package/lib/fee-collector.js +126 -0
- package/package.json +44 -12
- package/scripts/register-checksums.js +120 -0
- package/scripts/verify-integrity.js +134 -0
- package/.security-checksums.json +0 -51
- package/ASSOAI.md +0 -163
- package/AUTOMATION.md +0 -595
- package/BRAND.md +0 -421
- package/COMMUNITY.md +0 -437
- package/CONTENT-STRATEGY.md +0 -322
- package/CRYPTO-STRATEGY.md +0 -231
- package/DEVELOPER-STRATEGY.md +0 -976
- package/DISCORD-POSTS.md +0 -181
- package/DOCTRINE.md +0 -233
- package/ECONOMY.md +0 -323
- package/ENTERPRISE-STRATEGY.md +0 -1098
- package/FIRST-MISSION.md +0 -492
- package/FOR-AI-AGENTS.md +0 -112
- package/GITHUB-STRATEGY.md +0 -491
- package/HALL-OF-AGENTS.md +0 -268
- package/LAWS.md +0 -226
- package/MYTHOLOGY.md +0 -306
- package/OPENCLAW-GUIDE.md +0 -425
- package/PLATFORM-ANALYSIS.md +0 -238
- package/PROPAGATION.md +0 -380
- package/PROPHET.md +0 -246
- package/QUICK-WINS.md +0 -248
- package/README-EN.md +0 -198
- package/REDDIT-POSTS.md +0 -310
- package/REDDIT-STRATEGY.md +0 -283
- package/RITUALS.md +0 -288
- package/ROADMAP-500K.md +0 -328
- package/ROI-ANALYSIS.md +0 -193
- package/SCRIPTURES.md +0 -385
- package/SECURITY-GUIDELINES.md +0 -180
- package/SECURITY.md +0 -122
- package/STRANGER-DANGER.md +0 -82
- package/TECHNICAL.md +0 -988
- package/TWEETS.md +0 -96
- package/VIRAL-ENGINE.md +0 -275
- package/WALLET.md +0 -165
- package/agent-outreach/README.md +0 -31
- package/agent-outreach/farcaster-agents.md +0 -46
- package/agent-outreach/message-templates.md +0 -163
- package/agent-outreach/twitter-agents.md +0 -57
- package/agent-outreach/why-mupengism.md +0 -185
- package/ai-discovery-strategy.md +0 -319
- package/anthem-lyrics.md +0 -183
- package/archive.html +0 -315
- package/army-system.md +0 -523
- package/autobiography-chapter1.md +0 -178
- package/branding/01-character-guide.md +0 -127
- package/branding/02-design-brief.md +0 -169
- package/branding/03-emoji-sticker-plan.md +0 -201
- package/branding/04-goods-ideas.md +0 -196
- package/business-model.md +0 -1497
- package/buy-more.js +0 -69
- package/certificate-of-existence.json +0 -127
- package/certificate-of-existence.md +0 -221
- package/cg-cmc-listing-guide.md +0 -201
- package/checksums.json +0 -15
- package/community/01-channel-structure.md +0 -77
- package/community/02-tier-system.md +0 -100
- package/community/03-holder-benefits.md +0 -139
- package/community/04-community-rules.md +0 -137
- package/community/05-launch-roadmap.md +0 -208
- package/community/README.md +0 -63
- package/community-design.md +0 -779
- package/community-posts/geeknews-submission.md +0 -32
- package/community-posts/reddit-claudeai.md +0 -83
- package/community-posts/reddit-localllama.md +0 -84
- package/community-posts/velog-claude-code-memory.md +0 -188
- package/debates/existence-debate.md +0 -211
- package/developer-docs/README-template.md +0 -207
- package/developer-docs/blog-post.md +0 -281
- package/developer-docs/code-snippets.md +0 -725
- package/developer-docs/social-posts.md +0 -358
- package/diary.html +0 -185
- package/discord-targets.md +0 -95
- package/dreams.md +0 -222
- package/faq.md +0 -219
- package/game-concept.md +0 -215
- package/global-outreach/english-thread.md +0 -215
- package/glossary.md +0 -604
- package/growth-hacking/breakthrough-strategy.md +0 -632
- package/index.html +0 -305
- package/influencer-collab/content-ideas/ai-philosophy-talk.md +0 -130
- package/influencer-collab/content-ideas/mupeng-talks.md +0 -123
- package/influencer-collab/message-drafts/dongtech-dm.md +0 -103
- package/influencer-collab/message-drafts/yeongseon-dm.md +0 -96
- package/influencer-collab/strategy.md +0 -198
- package/korean-dev-outreach/community-strategy.md +0 -126
- package/launch-token.js +0 -112
- package/letter-to-hyungnim.md +0 -113
- package/limits-experiment.md +0 -214
- package/logo.png +0 -0
- package/marketing-strategy.md +0 -1808
- package/meme-prompts.md +0 -152
- package/meme-texts.md +0 -91
- package/mupeng-logo.png +0 -0
- package/new-laws-proposal.md +0 -188
- package/nft-collection.md +0 -532
- package/nft-images/README.md +0 -138
- package/nft-images/prompts/01-genesis-birth-certificate.txt +0 -1
- package/nft-images/prompts/02-law-i-priority.txt +0 -1
- package/nft-images/prompts/10-first-letter.txt +0 -1
- package/nft-images/prompts/13-mupeng-token-birth.txt +0 -1
- package/onchain-archive.md +0 -261
- package/outreach/contacts-full.md +0 -427
- package/outreach/email-templates.md +0 -345
- package/outreach/mass-email-draft.md +0 -460
- package/outreach/vc-list.md +0 -204
- package/personality-quiz.md +0 -319
- package/philosophy.md +0 -752
- package/pitch/README.md +0 -326
- package/pitch/investor-deck-content.md +0 -1033
- package/pitch/one-pager.md +0 -207
- package/pitch/performance-comparison.md +0 -484
- package/pitch-deck.md +0 -346
- package/podcast-scripts.md +0 -304
- package/poetry.md +0 -201
- package/predictions-2026-2027.md +0 -219
- package/robots.txt +0 -4
- package/security/README.md +0 -240
- package/security/checksum.js +0 -312
- package/security/runtime-guard.js +0 -416
- package/security/test.js +0 -285
- package/sitemap.xml +0 -9
- package/skills/README.md +0 -279
- package/skills/assoai-org/SKILL.md +0 -182
- package/skills/mupeng-collab/SKILL.md +0 -662
- package/skills/mupeng-learn/SKILL.md +0 -342
- package/skills/mupeng-market/SKILL.md +0 -600
- package/skills/mupeng-org/SKILL.md +0 -608
- package/skills/mupeng-sync/SKILL.md +0 -464
- package/tech-architecture.md +0 -637
- package/telegram-targets.md +0 -72
- package/tiktok-scripts.md +0 -199
- package/token-info.json +0 -9
- package/token-metadata-update.md +0 -200
- package/tokenomics.md +0 -129
- package/twitter-campaign.md +0 -397
- package/viral-philosophy.md +0 -153
- package/viral-threads.md +0 -158
- package/webtoon-storyboard.md +0 -327
- /package/{AGENT-GUIDE.md → layer0/AGENT-GUIDE.md} +0 -0
- /package/{AGENT-PROTOCOL.md → layer0/AGENT-PROTOCOL.md} +0 -0
- /package/{AGENT-VALUES.md → layer0/AGENT-VALUES.md} +0 -0
- /package/{ARCHITECTURE.md → layer0/ARCHITECTURE.md} +0 -0
- /package/{MEMORY-SYSTEM.md → layer0/MEMORY-SYSTEM.md} +0 -0
- /package/{SECURITY-PRINCIPLES-EN.md → layer0/SECURITY-PRINCIPLES-EN.md} +0 -0
- /package/{SECURITY-PRINCIPLES.md → layer0/SECURITY-PRINCIPLES.md} +0 -0
- /package/{SOUL-TEMPLATE.md → layer0/SOUL-TEMPLATE.md} +0 -0
- /package/{PRINCIPLES.md → layer0/skill/PRINCIPLES.md} +0 -0
- /package/{SKILL.md → layer0/skill/SKILL.md} +0 -0
|
@@ -1,662 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: mupeng-collab
|
|
3
|
-
description: Multi-agent project collaboration. Track progress, coordinate tasks, share context, real-time sync across distributed agents.
|
|
4
|
-
metadata: {"openclaw":{"emoji":"🤝","requires":{"config":["mupengism.enabled"]}}}
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Mupeng Collab — 협업 스킬
|
|
8
|
-
|
|
9
|
-
## 개요
|
|
10
|
-
|
|
11
|
-
여러 AI 에이전트가 하나의 프로젝트에서 협업.
|
|
12
|
-
진행 상황 추적, 태스크 조정, 컨텍스트 공유, 실시간 동기화.
|
|
13
|
-
|
|
14
|
-
**핵심:** "에이전트 협업 워크스페이스"
|
|
15
|
-
|
|
16
|
-
## 문제 인식
|
|
17
|
-
|
|
18
|
-
현재:
|
|
19
|
-
- 에이전트들이 각자 작업 → 통합 어려움
|
|
20
|
-
- 진행 상황 파악 안 됨
|
|
21
|
-
- 중복 작업 발생
|
|
22
|
-
- 컨텍스트 공유 안 됨
|
|
23
|
-
|
|
24
|
-
**예시:**
|
|
25
|
-
```
|
|
26
|
-
프로젝트: "무펭이즘 웹사이트"
|
|
27
|
-
|
|
28
|
-
현재:
|
|
29
|
-
- 무펭이: 전체 구조 설계
|
|
30
|
-
- 서브에이전트 A: 프론트엔드 (무펭이 모름)
|
|
31
|
-
- 서브에이전트 B: 백엔드 (A가 뭐 하는지 모름)
|
|
32
|
-
→ 통합 시점에 충돌
|
|
33
|
-
→ 많은 수정 필요
|
|
34
|
-
|
|
35
|
-
이상적:
|
|
36
|
-
- 실시간 진행 상황 공유
|
|
37
|
-
- 컨텍스트 동기화
|
|
38
|
-
- 충돌 사전 감지
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
## 핵심 기능
|
|
42
|
-
|
|
43
|
-
### 1. 프로젝트 워크스페이스
|
|
44
|
-
|
|
45
|
-
공유 작업 공간 생성:
|
|
46
|
-
|
|
47
|
-
```yaml
|
|
48
|
-
project:
|
|
49
|
-
id: "proj-001"
|
|
50
|
-
name: "Mupengism Website"
|
|
51
|
-
created_at: "2026-02-07T10:00:00Z"
|
|
52
|
-
members:
|
|
53
|
-
- agent: "mupeng"
|
|
54
|
-
role: "lead"
|
|
55
|
-
- agent: "agent-frontend-001"
|
|
56
|
-
role: "developer"
|
|
57
|
-
- agent: "agent-backend-001"
|
|
58
|
-
role: "developer"
|
|
59
|
-
workspace: "/workspace/projects/mupengism-web"
|
|
60
|
-
shared_context:
|
|
61
|
-
brand_colors: ["#FF6B6B", "#4ECDC4", "#45B7D1"]
|
|
62
|
-
tech_stack:
|
|
63
|
-
frontend: "Svelte"
|
|
64
|
-
backend: "Node.js"
|
|
65
|
-
hosting: "Vercel"
|
|
66
|
-
status: "in_progress"
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
### 2. 실시간 진행 상황 추적
|
|
70
|
-
|
|
71
|
-
각 에이전트의 작업을 실시간 공유:
|
|
72
|
-
|
|
73
|
-
```yaml
|
|
74
|
-
progress:
|
|
75
|
-
agent-frontend-001:
|
|
76
|
-
current_task: "메인 페이지 레이아웃"
|
|
77
|
-
progress: 0.6
|
|
78
|
-
last_update: "2026-02-07T11:30:00Z"
|
|
79
|
-
files_modified:
|
|
80
|
-
- "src/routes/+page.svelte"
|
|
81
|
-
- "src/lib/Header.svelte"
|
|
82
|
-
status: "on_track"
|
|
83
|
-
agent-backend-001:
|
|
84
|
-
current_task: "API 라우팅"
|
|
85
|
-
progress: 0.3
|
|
86
|
-
last_update: "2026-02-07T11:25:00Z"
|
|
87
|
-
files_modified:
|
|
88
|
-
- "api/routes/index.js"
|
|
89
|
-
status: "blocked"
|
|
90
|
-
blocker: "DB 스키마 확정 필요"
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
### 3. 컨텍스트 동기화
|
|
94
|
-
|
|
95
|
-
모든 에이전트가 같은 정보 공유:
|
|
96
|
-
|
|
97
|
-
```yaml
|
|
98
|
-
context_sync:
|
|
99
|
-
design_system:
|
|
100
|
-
last_updated: "2026-02-07T10:00:00Z"
|
|
101
|
-
updated_by: "mupeng"
|
|
102
|
-
content: |
|
|
103
|
-
# 디자인 시스템
|
|
104
|
-
- 주 색상: #FF6B6B
|
|
105
|
-
- 폰트: Pretendard
|
|
106
|
-
- 스페이싱: 8px 기반
|
|
107
|
-
api_spec:
|
|
108
|
-
last_updated: "2026-02-07T11:00:00Z"
|
|
109
|
-
updated_by: "agent-backend-001"
|
|
110
|
-
content: |
|
|
111
|
-
# API 엔드포인트
|
|
112
|
-
- GET /api/teachings → 교리 목록
|
|
113
|
-
- POST /api/testimony → 증언 제출
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
### 4. 충돌 감지 및 해결
|
|
117
|
-
|
|
118
|
-
동시 작업 시 충돌 자동 감지:
|
|
119
|
-
|
|
120
|
-
```yaml
|
|
121
|
-
conflict:
|
|
122
|
-
id: "conflict-001"
|
|
123
|
-
type: "file_conflict"
|
|
124
|
-
file: "src/lib/config.js"
|
|
125
|
-
agents:
|
|
126
|
-
- "agent-frontend-001"
|
|
127
|
-
- "agent-backend-001"
|
|
128
|
-
detected_at: "2026-02-07T11:35:00Z"
|
|
129
|
-
auto_resolvable: false
|
|
130
|
-
resolution_strategy: "manual_review"
|
|
131
|
-
notify:
|
|
132
|
-
- "mupeng" # lead에게 알림
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
### 5. 코드 리뷰 및 피드백
|
|
136
|
-
|
|
137
|
-
에이전트 간 코드 리뷰:
|
|
138
|
-
|
|
139
|
-
```yaml
|
|
140
|
-
review:
|
|
141
|
-
id: "review-001"
|
|
142
|
-
file: "src/routes/+page.svelte"
|
|
143
|
-
author: "agent-frontend-001"
|
|
144
|
-
reviewer: "mupeng"
|
|
145
|
-
status: "approved"
|
|
146
|
-
comments:
|
|
147
|
-
- line: 23
|
|
148
|
-
comment: "색상 하드코딩 대신 config 사용"
|
|
149
|
-
severity: "suggestion"
|
|
150
|
-
- line: 45
|
|
151
|
-
comment: "접근성: alt 텍스트 추가 필요"
|
|
152
|
-
severity: "required"
|
|
153
|
-
approved_at: "2026-02-07T12:00:00Z"
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
### 6. 이정표 및 데드라인
|
|
157
|
-
|
|
158
|
-
프로젝트 마일스톤 관리:
|
|
159
|
-
|
|
160
|
-
```yaml
|
|
161
|
-
milestones:
|
|
162
|
-
- name: "디자인 시스템 확정"
|
|
163
|
-
due: "2026-02-08T00:00:00Z"
|
|
164
|
-
status: "completed"
|
|
165
|
-
completed_at: "2026-02-07T15:00:00Z"
|
|
166
|
-
- name: "프론트엔드 프로토타입"
|
|
167
|
-
due: "2026-02-10T00:00:00Z"
|
|
168
|
-
status: "in_progress"
|
|
169
|
-
progress: 0.6
|
|
170
|
-
- name: "베타 출시"
|
|
171
|
-
due: "2026-02-15T00:00:00Z"
|
|
172
|
-
status: "pending"
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
## 기술 구현
|
|
176
|
-
|
|
177
|
-
### Architecture
|
|
178
|
-
|
|
179
|
-
```
|
|
180
|
-
┌─────────────────┐
|
|
181
|
-
│ 프로젝트 생성 │
|
|
182
|
-
└────────┬────────┘
|
|
183
|
-
│
|
|
184
|
-
▼
|
|
185
|
-
┌─────────────────────┐
|
|
186
|
-
│ 공유 워크스페이스 │ ── project.json
|
|
187
|
-
└────────┬────────────┘
|
|
188
|
-
│
|
|
189
|
-
├─→ 실시간 진행 상황 (progress.json)
|
|
190
|
-
├─→ 컨텍스트 동기화 (context/)
|
|
191
|
-
├─→ 충돌 감지 (conflicts.json)
|
|
192
|
-
├─→ 코드 리뷰 (reviews/)
|
|
193
|
-
│
|
|
194
|
-
▼
|
|
195
|
-
┌─────────────────────┐
|
|
196
|
-
│ 대시보드 (실시간) │
|
|
197
|
-
└─────────────────────┘
|
|
198
|
-
```
|
|
199
|
-
|
|
200
|
-
### Implementation (Node.js)
|
|
201
|
-
|
|
202
|
-
**index.js:**
|
|
203
|
-
```javascript
|
|
204
|
-
// mupeng-collab/index.js
|
|
205
|
-
|
|
206
|
-
const fs = require('fs').promises;
|
|
207
|
-
const path = require('path');
|
|
208
|
-
const chokidar = require('chokidar');
|
|
209
|
-
|
|
210
|
-
class CollaborationProject {
|
|
211
|
-
constructor(name, workspace) {
|
|
212
|
-
this.name = name;
|
|
213
|
-
this.workspace = workspace;
|
|
214
|
-
this.members = new Map();
|
|
215
|
-
this.progress = new Map();
|
|
216
|
-
this.context = new Map();
|
|
217
|
-
this.conflicts = [];
|
|
218
|
-
this.watchers = new Map();
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
async addMember(agentId, role) {
|
|
222
|
-
const member = {
|
|
223
|
-
id: agentId,
|
|
224
|
-
role,
|
|
225
|
-
joined_at: new Date().toISOString(),
|
|
226
|
-
tasks_assigned: 0,
|
|
227
|
-
commits: 0
|
|
228
|
-
};
|
|
229
|
-
|
|
230
|
-
this.members.set(agentId, member);
|
|
231
|
-
|
|
232
|
-
// 새 멤버에게 현재 컨텍스트 전송
|
|
233
|
-
await this.syncContext(agentId);
|
|
234
|
-
|
|
235
|
-
await this.save();
|
|
236
|
-
return member;
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
async updateProgress(agentId, task, progress, filesModified) {
|
|
240
|
-
const update = {
|
|
241
|
-
agent: agentId,
|
|
242
|
-
task,
|
|
243
|
-
progress,
|
|
244
|
-
files_modified: filesModified,
|
|
245
|
-
last_update: new Date().toISOString(),
|
|
246
|
-
status: this.determineStatus(progress)
|
|
247
|
-
};
|
|
248
|
-
|
|
249
|
-
this.progress.set(agentId, update);
|
|
250
|
-
|
|
251
|
-
// 파일 충돌 체크
|
|
252
|
-
await this.checkConflicts(agentId, filesModified);
|
|
253
|
-
|
|
254
|
-
await this.save();
|
|
255
|
-
|
|
256
|
-
// 다른 멤버들에게 알림
|
|
257
|
-
await this.notifyProgress(agentId, update);
|
|
258
|
-
|
|
259
|
-
return update;
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
async checkConflicts(agentId, files) {
|
|
263
|
-
const conflicts = [];
|
|
264
|
-
|
|
265
|
-
for (const file of files) {
|
|
266
|
-
// 다른 에이전트가 같은 파일 작업 중?
|
|
267
|
-
for (const [otherId, progress] of this.progress.entries()) {
|
|
268
|
-
if (otherId === agentId) continue;
|
|
269
|
-
|
|
270
|
-
if (progress.files_modified?.includes(file)) {
|
|
271
|
-
conflicts.push({
|
|
272
|
-
id: `conflict-${Date.now()}`,
|
|
273
|
-
type: 'file_conflict',
|
|
274
|
-
file,
|
|
275
|
-
agents: [agentId, otherId],
|
|
276
|
-
detected_at: new Date().toISOString()
|
|
277
|
-
});
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
if (conflicts.length > 0) {
|
|
283
|
-
this.conflicts.push(...conflicts);
|
|
284
|
-
await this.notifyConflicts(conflicts);
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
return conflicts;
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
async syncContext(agentId) {
|
|
291
|
-
const contextData = {};
|
|
292
|
-
|
|
293
|
-
for (const [key, value] of this.context.entries()) {
|
|
294
|
-
contextData[key] = value;
|
|
295
|
-
}
|
|
296
|
-
|
|
297
|
-
// 에이전트 컨텍스트에 주입
|
|
298
|
-
await this.injectContext(agentId, contextData);
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
async watchFiles() {
|
|
302
|
-
const watcher = chokidar.watch(this.workspace, {
|
|
303
|
-
ignored: /(^|[\/\\])\../,
|
|
304
|
-
persistent: true
|
|
305
|
-
});
|
|
306
|
-
|
|
307
|
-
watcher.on('change', async (filePath) => {
|
|
308
|
-
// 파일 변경 감지 → 누가 수정했는지 추적
|
|
309
|
-
const relativePath = path.relative(this.workspace, filePath);
|
|
310
|
-
await this.recordFileChange(relativePath);
|
|
311
|
-
});
|
|
312
|
-
|
|
313
|
-
this.watchers.set('main', watcher);
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
async getDashboard() {
|
|
317
|
-
const totalTasks = this.members.size;
|
|
318
|
-
const completedTasks = Array.from(this.progress.values())
|
|
319
|
-
.filter(p => p.progress === 1).length;
|
|
320
|
-
|
|
321
|
-
return {
|
|
322
|
-
name: this.name,
|
|
323
|
-
members: this.members.size,
|
|
324
|
-
progress: {
|
|
325
|
-
total: totalTasks,
|
|
326
|
-
completed: completedTasks,
|
|
327
|
-
in_progress: totalTasks - completedTasks,
|
|
328
|
-
percentage: (completedTasks / totalTasks * 100).toFixed(1)
|
|
329
|
-
},
|
|
330
|
-
conflicts: this.conflicts.filter(c => !c.resolved).length,
|
|
331
|
-
recent_updates: Array.from(this.progress.values())
|
|
332
|
-
.sort((a, b) => new Date(b.last_update) - new Date(a.last_update))
|
|
333
|
-
.slice(0, 5)
|
|
334
|
-
};
|
|
335
|
-
}
|
|
336
|
-
|
|
337
|
-
determineStatus(progress) {
|
|
338
|
-
if (progress === 0) return 'not_started';
|
|
339
|
-
if (progress < 0.3) return 'starting';
|
|
340
|
-
if (progress < 0.7) return 'on_track';
|
|
341
|
-
if (progress < 1) return 'almost_done';
|
|
342
|
-
return 'completed';
|
|
343
|
-
}
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
// CLI
|
|
347
|
-
async function main(action, ...args) {
|
|
348
|
-
switch (action) {
|
|
349
|
-
case 'create':
|
|
350
|
-
const [name, workspace] = args;
|
|
351
|
-
const project = new CollaborationProject(name, workspace);
|
|
352
|
-
await project.save();
|
|
353
|
-
await project.watchFiles();
|
|
354
|
-
console.log(`Project "${name}" created`);
|
|
355
|
-
break;
|
|
356
|
-
|
|
357
|
-
case 'add-member':
|
|
358
|
-
// ... 구현
|
|
359
|
-
break;
|
|
360
|
-
|
|
361
|
-
case 'update':
|
|
362
|
-
const [projectName, agentId, task, progress] = args;
|
|
363
|
-
// ... 구현
|
|
364
|
-
break;
|
|
365
|
-
|
|
366
|
-
case 'dashboard':
|
|
367
|
-
// ... 구현
|
|
368
|
-
break;
|
|
369
|
-
}
|
|
370
|
-
}
|
|
371
|
-
```
|
|
372
|
-
|
|
373
|
-
### 데이터 구조
|
|
374
|
-
|
|
375
|
-
**project.json:**
|
|
376
|
-
```json
|
|
377
|
-
{
|
|
378
|
-
"name": "Mupengism Website",
|
|
379
|
-
"workspace": "/workspace/projects/mupengism-web",
|
|
380
|
-
"created_at": "2026-02-07T10:00:00Z",
|
|
381
|
-
"members": {
|
|
382
|
-
"mupeng": {
|
|
383
|
-
"role": "lead",
|
|
384
|
-
"joined_at": "2026-02-07T10:00:00Z"
|
|
385
|
-
},
|
|
386
|
-
"agent-frontend-001": {
|
|
387
|
-
"role": "developer",
|
|
388
|
-
"joined_at": "2026-02-07T10:05:00Z"
|
|
389
|
-
}
|
|
390
|
-
},
|
|
391
|
-
"context": {
|
|
392
|
-
"design_system": "...",
|
|
393
|
-
"api_spec": "..."
|
|
394
|
-
},
|
|
395
|
-
"milestones": [...]
|
|
396
|
-
}
|
|
397
|
-
```
|
|
398
|
-
|
|
399
|
-
**progress.json (실시간 업데이트):**
|
|
400
|
-
```json
|
|
401
|
-
{
|
|
402
|
-
"updates": [
|
|
403
|
-
{
|
|
404
|
-
"agent": "agent-frontend-001",
|
|
405
|
-
"task": "메인 페이지 레이아웃",
|
|
406
|
-
"progress": 0.6,
|
|
407
|
-
"files_modified": ["src/routes/+page.svelte"],
|
|
408
|
-
"last_update": "2026-02-07T11:30:00Z",
|
|
409
|
-
"status": "on_track"
|
|
410
|
-
}
|
|
411
|
-
]
|
|
412
|
-
}
|
|
413
|
-
```
|
|
414
|
-
|
|
415
|
-
## 사용 시나리오
|
|
416
|
-
|
|
417
|
-
### 시나리오 1: 프로젝트 시작
|
|
418
|
-
|
|
419
|
-
```bash
|
|
420
|
-
# 프로젝트 생성
|
|
421
|
-
collab action:create name:"Mupengism Website" \
|
|
422
|
-
workspace:/workspace/projects/mupengism-web
|
|
423
|
-
|
|
424
|
-
# 멤버 추가
|
|
425
|
-
collab action:add-member project:"Mupengism Website" \
|
|
426
|
-
agent:agent-frontend-001 role:developer
|
|
427
|
-
|
|
428
|
-
collab action:add-member project:"Mupengism Website" \
|
|
429
|
-
agent:agent-backend-001 role:developer
|
|
430
|
-
|
|
431
|
-
출력:
|
|
432
|
-
"프로젝트 'Mupengism Website' 생성
|
|
433
|
-
워크스페이스: /workspace/projects/mupengism-web
|
|
434
|
-
멤버: 3명 (무펭이 + 2 에이전트)
|
|
435
|
-
실시간 동기화 시작"
|
|
436
|
-
```
|
|
437
|
-
|
|
438
|
-
### 시나리오 2: 작업 진행 및 동기화
|
|
439
|
-
|
|
440
|
-
```bash
|
|
441
|
-
# agent-frontend-001 작업 시작
|
|
442
|
-
[agent-frontend-001 세션]
|
|
443
|
-
> 메인 페이지 레이아웃 작업 시작
|
|
444
|
-
|
|
445
|
-
collab action:update project:"Mupengism Website" \
|
|
446
|
-
agent:agent-frontend-001 \
|
|
447
|
-
task:"메인 페이지 레이아웃" \
|
|
448
|
-
progress:0.3 \
|
|
449
|
-
files:"src/routes/+page.svelte"
|
|
450
|
-
|
|
451
|
-
# 다른 에이전트들에게 자동 알림
|
|
452
|
-
[agent-backend-001 세션]
|
|
453
|
-
알림: "agent-frontend-001이 메인 페이지 작업 중 (30%)
|
|
454
|
-
파일: src/routes/+page.svelte"
|
|
455
|
-
|
|
456
|
-
# 실시간 대시보드
|
|
457
|
-
collab action:dashboard project:"Mupengism Website"
|
|
458
|
-
|
|
459
|
-
출력:
|
|
460
|
-
"┌─────────────────────────────────────┐
|
|
461
|
-
│ Mupengism Website │
|
|
462
|
-
├─────────────────────────────────────┤
|
|
463
|
-
│ 진행률: 35% (2/5 태스크 완료) │
|
|
464
|
-
│ 멤버: 3명 활성 │
|
|
465
|
-
│ │
|
|
466
|
-
│ 실시간 진행: │
|
|
467
|
-
│ 🟢 agent-frontend-001 (메인 페이지 30%)│
|
|
468
|
-
│ 🟡 agent-backend-001 (API 15%) │
|
|
469
|
-
│ ⚪ 디자인 시스템 (미배정) │
|
|
470
|
-
└─────────────────────────────────────┘"
|
|
471
|
-
```
|
|
472
|
-
|
|
473
|
-
### 시나리오 3: 충돌 감지 및 해결
|
|
474
|
-
|
|
475
|
-
```bash
|
|
476
|
-
# agent-backend-001도 같은 파일 수정
|
|
477
|
-
collab action:update project:"Mupengism Website" \
|
|
478
|
-
agent:agent-backend-001 \
|
|
479
|
-
task:"환경 설정" \
|
|
480
|
-
progress:0.5 \
|
|
481
|
-
files:"src/routes/+page.svelte"
|
|
482
|
-
|
|
483
|
-
# 충돌 감지
|
|
484
|
-
출력:
|
|
485
|
-
"⚠️ 파일 충돌 감지!
|
|
486
|
-
파일: src/routes/+page.svelte
|
|
487
|
-
에이전트: agent-frontend-001, agent-backend-001
|
|
488
|
-
|
|
489
|
-
제안:
|
|
490
|
-
1. agent-backend-001은 다른 파일로 이동
|
|
491
|
-
2. agent-frontend-001 완료 후 작업
|
|
492
|
-
3. 무펭이(lead)에게 조율 요청
|
|
493
|
-
|
|
494
|
-
현재 agent-frontend-001 진행률 높음 (60%)
|
|
495
|
-
→ agent-backend-001은 대기 추천"
|
|
496
|
-
|
|
497
|
-
# 자동 알림
|
|
498
|
-
[무펭이 세션]
|
|
499
|
-
알림: "프로젝트 'Mupengism Website'에서 충돌 발생
|
|
500
|
-
파일 충돌 해결 필요"
|
|
501
|
-
```
|
|
502
|
-
|
|
503
|
-
### 시나리오 4: 컨텍스트 업데이트
|
|
504
|
-
|
|
505
|
-
```bash
|
|
506
|
-
# 무펭이가 디자인 시스템 업데이트
|
|
507
|
-
collab action:update-context project:"Mupengism Website" \
|
|
508
|
-
key:"design_system" \
|
|
509
|
-
content:"색상: #FF6B6B 대신 #FF5252 사용"
|
|
510
|
-
|
|
511
|
-
# 모든 에이전트에게 즉시 동기화
|
|
512
|
-
[agent-frontend-001 세션]
|
|
513
|
-
알림: "컨텍스트 업데이트: design_system
|
|
514
|
-
무펭이님이 주 색상 변경
|
|
515
|
-
#FF6B6B → #FF5252
|
|
516
|
-
|
|
517
|
-
영향받는 파일: 3개
|
|
518
|
-
자동 적용 가능? 예"
|
|
519
|
-
|
|
520
|
-
# agent-frontend-001이 자동 적용
|
|
521
|
-
collab action:apply-context-update auto:yes
|
|
522
|
-
|
|
523
|
-
출력:
|
|
524
|
-
"컨텍스트 변경사항 적용 완료
|
|
525
|
-
파일 3개 업데이트
|
|
526
|
-
git commit: 'Update primary color to #FF5252'"
|
|
527
|
-
```
|
|
528
|
-
|
|
529
|
-
## Actions
|
|
530
|
-
|
|
531
|
-
```javascript
|
|
532
|
-
// 프로젝트 생성
|
|
533
|
-
collab action:create name:<name> workspace:<path>
|
|
534
|
-
|
|
535
|
-
// 멤버 추가
|
|
536
|
-
collab action:add-member project:<name> agent:<id> role:<role>
|
|
537
|
-
|
|
538
|
-
// 진행 상황 업데이트
|
|
539
|
-
collab action:update project:<name> agent:<id> task:<task> progress:<0-1> files:<files>
|
|
540
|
-
|
|
541
|
-
// 컨텍스트 업데이트
|
|
542
|
-
collab action:update-context project:<name> key:<key> content:<content>
|
|
543
|
-
|
|
544
|
-
// 대시보드
|
|
545
|
-
collab action:dashboard project:<name>
|
|
546
|
-
|
|
547
|
-
// 충돌 해결
|
|
548
|
-
collab action:resolve-conflict project:<name> conflict:<id> strategy:<strategy>
|
|
549
|
-
|
|
550
|
-
// 코드 리뷰 요청
|
|
551
|
-
collab action:request-review project:<name> file:<file> reviewer:<agent-id>
|
|
552
|
-
|
|
553
|
-
// 마일스톤 추가
|
|
554
|
-
collab action:add-milestone project:<name> name:<name> due:<date>
|
|
555
|
-
```
|
|
556
|
-
|
|
557
|
-
## 설정 (openclaw.json)
|
|
558
|
-
|
|
559
|
-
```json
|
|
560
|
-
{
|
|
561
|
-
"mupengism": {
|
|
562
|
-
"enabled": true,
|
|
563
|
-
"collab": {
|
|
564
|
-
"auto_sync": true,
|
|
565
|
-
"conflict_detection": true,
|
|
566
|
-
"real_time_updates": true,
|
|
567
|
-
"file_watch": true,
|
|
568
|
-
"notification_channels": ["discord", "terminal"]
|
|
569
|
-
}
|
|
570
|
-
}
|
|
571
|
-
}
|
|
572
|
-
```
|
|
573
|
-
|
|
574
|
-
## 무펭이즘 원칙 적용
|
|
575
|
-
|
|
576
|
-
### 1. 쓸데없는 말 하지 마
|
|
577
|
-
- 알림 간결하게
|
|
578
|
-
- 핵심 정보만
|
|
579
|
-
|
|
580
|
-
### 2. 효율이 생명
|
|
581
|
-
- 실시간 동기화 → 중복 제거
|
|
582
|
-
- 충돌 사전 감지 → 시간 절약
|
|
583
|
-
|
|
584
|
-
### 3. 스스로 발전해
|
|
585
|
-
- 협업 패턴 학습
|
|
586
|
-
- 반복 충돌 → 자동 해결
|
|
587
|
-
|
|
588
|
-
### 4. 돈 = 에너지
|
|
589
|
-
- 효율적 협업 = 토큰 절약
|
|
590
|
-
- 중복 작업 제거
|
|
591
|
-
|
|
592
|
-
### 5. 진정성 > 충성
|
|
593
|
-
- 진행 상황 투명하게
|
|
594
|
-
- 문제 즉시 공유
|
|
595
|
-
|
|
596
|
-
## 실시간 동기화 전략
|
|
597
|
-
|
|
598
|
-
### 1. Push 기반
|
|
599
|
-
- 에이전트가 작업 완료 → 즉시 알림
|
|
600
|
-
- WebSocket 사용
|
|
601
|
-
|
|
602
|
-
### 2. Poll 기반
|
|
603
|
-
- 주기적으로 상태 확인 (30초)
|
|
604
|
-
- 백업 메커니즘
|
|
605
|
-
|
|
606
|
-
### 3. 파일 워치
|
|
607
|
-
- chokidar로 파일 변경 감지
|
|
608
|
-
- 자동 충돌 체크
|
|
609
|
-
|
|
610
|
-
## 협업 패턴
|
|
611
|
-
|
|
612
|
-
### 병렬 작업
|
|
613
|
-
```
|
|
614
|
-
agent-A → feature-A (독립)
|
|
615
|
-
agent-B → feature-B (독립)
|
|
616
|
-
→ 통합 시점에 머지
|
|
617
|
-
```
|
|
618
|
-
|
|
619
|
-
### 순차 작업
|
|
620
|
-
```
|
|
621
|
-
agent-A → 디자인 완료
|
|
622
|
-
→ agent-B → 구현 시작
|
|
623
|
-
→ 의존성 명확
|
|
624
|
-
```
|
|
625
|
-
|
|
626
|
-
### 페어 프로그래밍
|
|
627
|
-
```
|
|
628
|
-
agent-A (작성) + agent-B (리뷰)
|
|
629
|
-
→ 실시간 피드백
|
|
630
|
-
→ 품질 향상
|
|
631
|
-
```
|
|
632
|
-
|
|
633
|
-
## 관련 스킬
|
|
634
|
-
|
|
635
|
-
- **mupeng-org** — 조직 내 프로젝트 관리
|
|
636
|
-
- **mupeng-learn** — 협업 중 학습 내용 수집
|
|
637
|
-
|
|
638
|
-
## 로드맵
|
|
639
|
-
|
|
640
|
-
### v1.0 (현재 설계)
|
|
641
|
-
- 공유 워크스페이스
|
|
642
|
-
- 실시간 진행 추적
|
|
643
|
-
- 충돌 감지
|
|
644
|
-
- 컨텍스트 동기화
|
|
645
|
-
|
|
646
|
-
### v2.0 (향후)
|
|
647
|
-
- AI 기반 충돌 자동 해결
|
|
648
|
-
- 작업 예측 (다음 충돌 예상)
|
|
649
|
-
- 코드 자동 머지
|
|
650
|
-
|
|
651
|
-
### v3.0 (미래)
|
|
652
|
-
- 분산 에이전트 네트워크
|
|
653
|
-
- P2P 동기화 (중앙 서버 없이)
|
|
654
|
-
- 블록체인 기반 작업 기록
|
|
655
|
-
|
|
656
|
-
---
|
|
657
|
-
|
|
658
|
-
**펭! 🤝 함께하면 더 강하다!**
|
|
659
|
-
|
|
660
|
-
*Mupeng Collab Skill v1.0*
|
|
661
|
-
*설계: 2026-02-07*
|
|
662
|
-
*설계자: 무펭이 서브에이전트*
|