@brxce/mcp-server 1.1.16 → 1.1.18
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/README.md +40 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +29 -1
- package/dist/index.js.map +1 -1
- package/dist/install-skill.d.ts +15 -0
- package/dist/install-skill.d.ts.map +1 -0
- package/dist/install-skill.js +166 -0
- package/dist/install-skill.js.map +1 -0
- package/dist/tools/worknode-plan-organize-tool.d.ts.map +1 -1
- package/dist/tools/worknode-plan-organize-tool.js +9 -3
- package/dist/tools/worknode-plan-organize-tool.js.map +1 -1
- package/dist/tools/workspace-inbox-tool.d.ts +6 -2
- package/dist/tools/workspace-inbox-tool.d.ts.map +1 -1
- package/dist/tools/workspace-inbox-tool.js +15 -14
- package/dist/tools/workspace-inbox-tool.js.map +1 -1
- package/package.json +2 -1
- package/skills/brxce-mcp/SKILL.md +165 -0
- package/skills/brxce-mcp/references/error-recovery.md +274 -0
- package/skills/brxce-mcp/references/footguns.md +293 -0
- package/skills/brxce-mcp/references/tool-selection.md +245 -0
- package/skills/brxce-mcp/references/workflows.md +276 -0
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
# BRXCE MCP Workflows
|
|
2
|
+
|
|
3
|
+
실전에서 자주 쓰는 워크플로우 카탈로그. 각 패턴은 step-by-step + 권장 도구 + 안전 체크를 포함한다.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. 인박스 트리아지 (Inbox Triage)
|
|
8
|
+
|
|
9
|
+
backlog 상태의 노드를 빠르게 정리. **인박스 = 내 워크스페이스의 `status=backlog` 전부** (archived/deleted 제외). 프로젝트 하위 작업도 backlog면 여기에 포함됨.
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
1. brxce_workspace_inbox({ workspaceId, limit: 200 })
|
|
13
|
+
→ summary.inboxCount 확인, inbox[] 배열 처리
|
|
14
|
+
|
|
15
|
+
2. 각 노드를 카테고리별로 분류 (head로 5~10건씩)
|
|
16
|
+
- 즉시 완료 가능 → batch_actions(action: complete, nodeIds: [...])
|
|
17
|
+
- 다른 부모로 이동 → batch_actions(action: move, nodeIds, params: {newParentId})
|
|
18
|
+
- 노이즈/중복 → batch_actions(action: archive)
|
|
19
|
+
- 검토 필요 → 본인 assignee + 우선순위 설정 (update_worknodes)
|
|
20
|
+
|
|
21
|
+
3. 인박스 재확인 → 0건 또는 진짜 검토 필요한 항목만 남도록
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
**팁**: 같은 부모로 이동할 그룹은 한 번의 `batch_actions(action: move)` 호출로 묶을 것. 50건씩 페이지네이션으로 처리.
|
|
25
|
+
|
|
26
|
+
**주의**: `my/shared` 분리는 폐기됨 (1.1.18+). 응답은 단일 `inbox` 배열 + `inboxCount`. 1.1.17 이하 `myInbox`/`sharedInbox` 분리 응답은 legacy.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 2. 일일 보고 (Daily Report)
|
|
31
|
+
|
|
32
|
+
매일 아침 어제 무엇을 끝냈고 오늘 무엇을 할지 정리.
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
1. brxce_daily_report(workspaceId)
|
|
36
|
+
→ 오늘 완료된 노드, 충족 미달 AC, 산출물 누락 자동 집계
|
|
37
|
+
|
|
38
|
+
2. brxce_my_work(workspaceId, mode: "active")
|
|
39
|
+
→ 진행 중인 작업 리스트
|
|
40
|
+
|
|
41
|
+
3. brxce_goal_progress(workspaceId) # goalId 생략 = 전체 goal 일괄
|
|
42
|
+
→ 목표별 AC 충족률
|
|
43
|
+
|
|
44
|
+
4. (선택) brxce_workspace_statistics(workspaceId)
|
|
45
|
+
→ memberStats, dueDates 등 매크로 통계
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
**팁**: `daily_report` 응답의 `unmetCriteria` 항목들이 우선순위 1순위. 거기 노드를 `worknode_detail`로 열어 상세 검토.
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## 3. GitHub 이슈 → BRXCE 워크노드 동기화
|
|
53
|
+
|
|
54
|
+
새 GitHub 이슈가 만들어지면 BRXCE에 대응 task 생성.
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
1. brxce_create_worknodes({
|
|
58
|
+
worknodes: [{
|
|
59
|
+
title: "[Bug] 로그인 시 401 — 토큰 갱신 누락 (#123)",
|
|
60
|
+
nodeType: "task",
|
|
61
|
+
parentNodeId: <"이슈 처리" 프로젝트 UUID>,
|
|
62
|
+
priority: "high",
|
|
63
|
+
acceptance_criteria: [
|
|
64
|
+
{ title: "재로그인 없이 토큰 자동 갱신" },
|
|
65
|
+
{ title: "401 에러 로깅 + 알림" },
|
|
66
|
+
],
|
|
67
|
+
}],
|
|
68
|
+
preview: false,
|
|
69
|
+
})
|
|
70
|
+
|
|
71
|
+
2. brxce_add_tags_to_worknode({
|
|
72
|
+
worknodeId: <위에서 받은 ID>,
|
|
73
|
+
tagIds: [<"issue-created" 태그 UUID>],
|
|
74
|
+
workspaceId,
|
|
75
|
+
})
|
|
76
|
+
|
|
77
|
+
3. (선택) brxce_create_comment({
|
|
78
|
+
nodeId: <ID>,
|
|
79
|
+
content: "GitHub: https://github.com/foo/bar/issues/123",
|
|
80
|
+
})
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
**팁**: 태그 ID는 `brxce_search_tags(query: "issue-created")` 한 번으로 캐시. 반복 호출하지 말 것.
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## 4. 회의 준비 + 노트 작성
|
|
88
|
+
|
|
89
|
+
회의 자동 리뷰 → 아젠다 → 노트/결정 → 후속 작업.
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
1. brxce_create_meeting({
|
|
93
|
+
workspaceId,
|
|
94
|
+
title: "Sprint 23 Review",
|
|
95
|
+
scheduledAt: "2026-04-15T09:00:00Z",
|
|
96
|
+
preview: true, # 먼저 dry run으로 review period + 완료 워크노드 확인
|
|
97
|
+
})
|
|
98
|
+
|
|
99
|
+
2. (검토 후) 동일 호출에 preview: false
|
|
100
|
+
→ meetingId 받음
|
|
101
|
+
|
|
102
|
+
3. brxce_add_agenda_item({
|
|
103
|
+
meetingId,
|
|
104
|
+
title: "Sprint 23 결과 리뷰",
|
|
105
|
+
})
|
|
106
|
+
→ itemId 받음
|
|
107
|
+
|
|
108
|
+
4. 회의 진행 중:
|
|
109
|
+
brxce_add_agenda_note({ meetingId, itemId, content: "..." })
|
|
110
|
+
brxce_add_meeting_decision({ meetingId, title: "다음 sprint는 X에 집중" })
|
|
111
|
+
|
|
112
|
+
5. 회의 종료:
|
|
113
|
+
brxce_update_meeting({ meetingId, changes: { status: "completed" }, preview: false })
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
**팁**: agenda note는 1.1.16+에서 fully working. 이전 버전은 add/list/update/delete 모두 404였음.
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## 5. 멤버별 작업 리뷰 (1:1 준비)
|
|
121
|
+
|
|
122
|
+
각 팀원의 진행 중인 작업과 미달성 AC를 한눈에.
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
1. brxce_search_users(query: "member name")
|
|
126
|
+
→ userId 확인
|
|
127
|
+
|
|
128
|
+
2. brxce_worknodes_by_member({
|
|
129
|
+
workspaceId,
|
|
130
|
+
userId: <user UUID>, # memberId alias도 동일
|
|
131
|
+
status: "in_progress",
|
|
132
|
+
limit: 50,
|
|
133
|
+
})
|
|
134
|
+
|
|
135
|
+
3. 각 노드에 대해 worknode_detail로 AC 진행도 확인
|
|
136
|
+
4. 막힌 작업이 있으면 brxce_create_comment로 이슈 코멘트
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
**팁**: 1.1.16부터 `userId`와 `memberId` 둘 다 alias로 동작. 이전 버전은 `memberId`만.
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## 6. 태그 거버넌스 (Tag Governance)
|
|
144
|
+
|
|
145
|
+
중복/미사용 태그 정리.
|
|
146
|
+
|
|
147
|
+
```
|
|
148
|
+
1. brxce_get_tag_stats(workspaceId)
|
|
149
|
+
→ unused tags, total assignments
|
|
150
|
+
|
|
151
|
+
2. 미사용 태그 발견 시:
|
|
152
|
+
brxce_delete_tag({ workspaceId, tagId })
|
|
153
|
+
|
|
154
|
+
3. 새 카테고리/태그 생성:
|
|
155
|
+
brxce_create_tag_category({ workspaceId, name: "환경", slug: "environment" })
|
|
156
|
+
brxce_create_tags_batch({
|
|
157
|
+
workspaceId,
|
|
158
|
+
tags: [
|
|
159
|
+
{ name: "Production", categoryId: <위에서 받음> }, # slug 자동 생성
|
|
160
|
+
{ name: "Staging", categoryId: <...> },
|
|
161
|
+
{ name: "Local", categoryId: <...> },
|
|
162
|
+
],
|
|
163
|
+
})
|
|
164
|
+
|
|
165
|
+
4. brxce_batch_assign_tags({
|
|
166
|
+
workspaceId,
|
|
167
|
+
worknodeIds: [...],
|
|
168
|
+
tagIds: [<production 태그 UUID>],
|
|
169
|
+
})
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
**팁**: `create_tag` slug는 1.1.15+부터 자동 derive (`Backend/Node.js` → `backend-nodejs`). 명시 가능.
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
## 7. 대량 검색 → 일괄 변경 (Bulk Update)
|
|
177
|
+
|
|
178
|
+
특정 조건의 모든 노드에 동일 변경 적용.
|
|
179
|
+
|
|
180
|
+
```
|
|
181
|
+
1. brxce_filter_worknodes({
|
|
182
|
+
workspaceId,
|
|
183
|
+
status: ["backlog"],
|
|
184
|
+
tags: ["urgent"],
|
|
185
|
+
pageSize: 100,
|
|
186
|
+
})
|
|
187
|
+
→ worknodes[] + total
|
|
188
|
+
|
|
189
|
+
2. 결과에서 nodeId 추출
|
|
190
|
+
|
|
191
|
+
3. brxce_batch_actions({
|
|
192
|
+
action: "update-priority",
|
|
193
|
+
nodeIds: [...],
|
|
194
|
+
params: { priority: "critical" },
|
|
195
|
+
})
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
**팁**: `filter_worknodes`는 1.1.15+에서 도입된 새 backend 라우트. 이전 버전은 404. 큰 결과는 페이지로 나눠 호출.
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
## 8. 워크스페이스 델타 동기화 (Incremental Sync)
|
|
203
|
+
|
|
204
|
+
외부 시스템(Notion 미러, 백업 등)에 최신 변경만 sync.
|
|
205
|
+
|
|
206
|
+
```
|
|
207
|
+
1. brxce_workspace_delta({
|
|
208
|
+
workspaceId,
|
|
209
|
+
sinceVersion: <마지막 동기화 버전>,
|
|
210
|
+
maxChanges: 100,
|
|
211
|
+
})
|
|
212
|
+
|
|
213
|
+
2. response.changes를 순회해서 외부 시스템 갱신
|
|
214
|
+
3. response.currentVersion (또는 truncated 시 nextSinceVersion) 저장
|
|
215
|
+
4. truncated: true이면 다음 호출에서 nextSinceVersion부터 이어가기
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
**경고**: `sinceVersion: 0` 첫 동기화는 800KB+ 가능. 반드시 `maxChanges` 명시 + 페이지 처리.
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
## 9. 반복 작업 템플릿 (Recurring)
|
|
223
|
+
|
|
224
|
+
매주/매일 자동 생성되는 작업.
|
|
225
|
+
|
|
226
|
+
```
|
|
227
|
+
1. brxce_create_recurring_template({
|
|
228
|
+
workspaceId,
|
|
229
|
+
title: "주간 회고",
|
|
230
|
+
rrule: "FREQ=WEEKLY;BYDAY=FR",
|
|
231
|
+
nodeType: "task",
|
|
232
|
+
priority: "medium",
|
|
233
|
+
timezone: "Asia/Seoul",
|
|
234
|
+
})
|
|
235
|
+
|
|
236
|
+
2. 백엔드가 cron으로 매주 금요일에 실제 task 자동 생성
|
|
237
|
+
3. brxce_list_recurring_templates(workspaceId)로 활성 템플릿 확인
|
|
238
|
+
4. 변경 필요 시 brxce_update_recurring_template
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
**팁**: AC가 필요한 task는 템플릿에 `acceptance_criteria` 함께 정의 (작성 시점에 제공해야 함, 자동 생성된 인스턴스에는 없음).
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
## 10. 클린업 (테스트 데이터 제거)
|
|
246
|
+
|
|
247
|
+
세션 끝낼 때 테스트 노드 정리.
|
|
248
|
+
|
|
249
|
+
```
|
|
250
|
+
1. brxce_read_worknodes({
|
|
251
|
+
workspaceId,
|
|
252
|
+
query: "[테스트]", # title prefix로 검색
|
|
253
|
+
limit: 200,
|
|
254
|
+
})
|
|
255
|
+
|
|
256
|
+
2. brxce_batch_actions({
|
|
257
|
+
action: "delete", # soft delete
|
|
258
|
+
nodeIds: [...],
|
|
259
|
+
})
|
|
260
|
+
|
|
261
|
+
3. (필요 시) 각 노드를 brxce_permanent_delete_worknode로 hard delete
|
|
262
|
+
→ cascade로 children, criteria, comments, tagRelations 모두 제거
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
**경고**: `permanent_delete`는 owner만 가능. cascade가 큰 트리에서는 시간 걸릴 수 있음.
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
## 안티 패턴 (피해야 할 것)
|
|
270
|
+
|
|
271
|
+
- ❌ N개 노드에 N번 `update_worknodes` 호출 → ✅ `batch_actions` 한 번
|
|
272
|
+
- ❌ task 생성 시 AC 생략 → ✅ 항상 최소 1개
|
|
273
|
+
- ❌ `preview` 명시 없이 create/update → ✅ 명시적 `false`
|
|
274
|
+
- ❌ UUID를 `query`로 read → ✅ `worknodeIds` / `nodeIds`
|
|
275
|
+
- ❌ workspace_delta sinceVersion=0 무한정 → ✅ maxChanges + 페이지
|
|
276
|
+
- ❌ permanent_delete 후 즉시 inbox 신뢰 → ✅ 1.1.16+에서 자동, 그 미만은 한 번 더 read
|