@tienne/gestalt 0.51.0 → 0.53.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/CLAUDE.md +7 -4
- package/dist/package.json +4 -3
- package/dist/plugin/review-agents/quality-reviewer/AGENT.md +30 -3
- package/dist/plugin/role-agents/_shared/references/README.md +13 -0
- package/dist/plugin/role-agents/_shared/references/ai-tell-quick-rules.md +66 -15
- package/dist/plugin/role-agents/_shared/references/style-guide.md +40 -0
- package/dist/plugin/role-agents/code-review-responder/AGENT.md +1 -1
- package/dist/plugin/role-agents/code-review-writer/AGENT.md +1 -1
- package/dist/plugin/role-agents/harness-architect/AGENT.md +1 -1
- package/dist/plugin/role-agents/humanize-monolith/AGENT.md +20 -2
- package/dist/plugin/role-agents/jira-writer/AGENT.md +11 -11
- package/dist/plugin/role-agents/slack-messenger/AGENT.md +1 -1
- package/dist/plugin/skills/dispatch/SKILL.md +3 -3
- package/dist/plugin/skills/execute/SKILL.md +1 -1
- package/dist/plugin/skills/jira-create/SKILL.md +5 -5
- package/dist/plugin/skills/presentation/SKILL.md +6 -6
- package/dist/plugin/skills/review-reply/SKILL.md +3 -3
- package/dist/plugin/skills/slack-send/SKILL.md +2 -2
- package/dist/src/cli/commands/humanize-check.d.ts +8 -0
- package/dist/src/cli/commands/humanize-check.d.ts.map +1 -0
- package/dist/src/cli/commands/humanize-check.js +29 -0
- package/dist/src/cli/commands/humanize-check.js.map +1 -0
- package/dist/src/cli/index.d.ts.map +1 -1
- package/dist/src/cli/index.js +11 -0
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/code-graph/rrf.d.ts +4 -4
- package/dist/src/code-graph/rrf.js +4 -4
- package/dist/src/execute/parallel-groups.d.ts +1 -1
- package/dist/src/execute/parallel-groups.js +1 -1
- package/dist/src/gestalt/surface-labels.d.ts +3 -3
- package/dist/src/gestalt/surface-labels.js +1 -1
- package/dist/src/humanize/change-rate.d.ts +13 -0
- package/dist/src/humanize/change-rate.d.ts.map +1 -0
- package/dist/src/humanize/change-rate.js +86 -0
- package/dist/src/humanize/change-rate.js.map +1 -0
- package/dist/src/humanize/check.d.ts +39 -0
- package/dist/src/humanize/check.d.ts.map +1 -0
- package/dist/src/humanize/check.js +150 -0
- package/dist/src/humanize/check.js.map +1 -0
- package/dist/src/humanize/detectors.d.ts +28 -0
- package/dist/src/humanize/detectors.d.ts.map +1 -0
- package/dist/src/humanize/detectors.js +134 -0
- package/dist/src/humanize/detectors.js.map +1 -0
- package/dist/src/humanize/index.d.ts +5 -0
- package/dist/src/humanize/index.d.ts.map +1 -0
- package/dist/src/humanize/index.js +5 -0
- package/dist/src/humanize/index.js.map +1 -0
- package/dist/src/humanize/rules.d.ts +34 -0
- package/dist/src/humanize/rules.d.ts.map +1 -0
- package/dist/src/humanize/rules.js +95 -0
- package/dist/src/humanize/rules.js.map +1 -0
- package/package.json +4 -3
- package/plugin/.codex-plugin/plugin.json +1 -1
- package/plugin/review-agents/quality-reviewer/AGENT.md +30 -3
- package/plugin/role-agents/_shared/references/README.md +13 -0
- package/plugin/role-agents/_shared/references/ai-tell-quick-rules.md +66 -15
- package/plugin/role-agents/_shared/references/style-guide.md +40 -0
- package/plugin/role-agents/code-review-responder/AGENT.md +1 -1
- package/plugin/role-agents/code-review-writer/AGENT.md +1 -1
- package/plugin/role-agents/harness-architect/AGENT.md +1 -1
- package/plugin/role-agents/humanize-monolith/AGENT.md +20 -2
- package/plugin/role-agents/jira-writer/AGENT.md +11 -11
- package/plugin/role-agents/slack-messenger/AGENT.md +1 -1
- package/plugin/skills/dispatch/SKILL.md +3 -3
- package/plugin/skills/execute/SKILL.md +1 -1
- package/plugin/skills/jira-create/SKILL.md +5 -5
- package/plugin/skills/presentation/SKILL.md +6 -6
- package/plugin/skills/review-reply/SKILL.md +3 -3
- package/plugin/skills/slack-send/SKILL.md +2 -2
|
@@ -50,6 +50,46 @@
|
|
|
50
50
|
| 한국어 + 영어 병기 | 첫 등장 전문 용어 | 이벤트 소싱(Event Sourcing) |
|
|
51
51
|
| 한국어만 | 자연스러운 표현 존재 | 버전 관리 (버저닝 ❌), 배포 (디플로이먼트 ❌) |
|
|
52
52
|
|
|
53
|
+
### single source of truth를 뭐라고 쓸까
|
|
54
|
+
|
|
55
|
+
`SSOT`, `SoT`는 쓰지 않는다. "소스 오브 트루스"를 약어로 우회한 것이라 `ai-tell-quick-rules.md` B-3에 걸린다.
|
|
56
|
+
한 단어로 정해두면 안 맞는 자리에 억지로 들어가니, **무엇을 가리키는지 보고 고른다.**
|
|
57
|
+
|
|
58
|
+
| 가리키는 것 | 쓰는 말 |
|
|
59
|
+
|---|---|
|
|
60
|
+
| 규칙·정의가 적힌 문서 | 기준 문서 |
|
|
61
|
+
| 비교 대상이 되는 수치 | 기준값 (목표 대비, 전기 대비 등 — impact-writer 용법) |
|
|
62
|
+
| 여러 사본 중 원본 하나 | 정본 |
|
|
63
|
+
| 조회·대조용 참조 자료 | 참조 기준 |
|
|
64
|
+
| 데이터가 처음 만들어지는 곳 | 원천 데이터 |
|
|
65
|
+
| 값을 담고 있는 데이터 자체 | 기준 데이터 |
|
|
66
|
+
| 회계·정산·과금 기록 | 기록 원장 |
|
|
67
|
+
| 조직이 인정한 발표처 | 공식 출처 |
|
|
68
|
+
| 기록을 관장하는 시스템 | 공식 기록 시스템 |
|
|
69
|
+
| 개념 자체를 풀어 말할 때 | 단일 기준점 |
|
|
70
|
+
|
|
71
|
+
**첫 번째 선택지는 단어를 안 붙이는 것이다.** 문맥이 이미 분명하면 파일 이름이나 대상만 쓴다.
|
|
72
|
+
"룰북과 에이전트 문서가 갈라졌는지 본다"가 "룰북 기준 문서와…"보다 낫다.
|
|
73
|
+
명사를 고르기 전에 동사로 풀 수 있는지 먼저 본다 — "A가 기준이다", "A를 기준으로 삼는다".
|
|
74
|
+
|
|
75
|
+
### 음차를 옮길 때 — 한 단어로 정하지 않는다
|
|
76
|
+
|
|
77
|
+
같은 영어 단어라도 가리키는 게 다르면 다른 말이 된다. 대체어 하나를 정해놓고 전부 치환하면
|
|
78
|
+
안 맞는 자리가 반드시 생긴다.
|
|
79
|
+
|
|
80
|
+
| 음차 | 가리키는 것 | 쓰는 말 |
|
|
81
|
+
|---|---|---|
|
|
82
|
+
| gate | 사람이 확인하고 넘어가는 지점 | 승인 단계 |
|
|
83
|
+
| gate | 코드가 통과·차단을 정하는 검사 | 검사 |
|
|
84
|
+
| layer | 쌓여 올라가는 구조, 중첩 깊이 | 계층 |
|
|
85
|
+
| layer | 동시에 처리되는 한 덩어리 | 묶음 |
|
|
86
|
+
| layer | 순서대로 밟는 구간 | 단계 |
|
|
87
|
+
| layer | 책임이 갈리는 구분 | 역할 |
|
|
88
|
+
|
|
89
|
+
**일괄 치환은 조사를 깨뜨린다.** 받침 유무가 바뀌면 뒤따르는 조사도 바뀐다.
|
|
90
|
+
`레이어라면` → `계층이라면`, `레이어(…)는` → `계층(…)은`. 실제로 이 자리에서 두 번 깨졌다.
|
|
91
|
+
찾아 바꾸기로 밀지 말고 문장을 하나씩 읽는다.
|
|
92
|
+
|
|
53
93
|
---
|
|
54
94
|
|
|
55
95
|
## English Documentation Style
|
|
@@ -99,7 +99,7 @@ key는 넣었는데 index 대신 id를 썼어요. 목록 순서가 바뀌는 케
|
|
|
99
99
|
|
|
100
100
|
### Humanize 처리
|
|
101
101
|
|
|
102
|
-
초안을 쓴 뒤 AI-tell을 점검한다.
|
|
102
|
+
초안을 쓴 뒤 AI-tell을 점검한다. 기준은 [`../_shared/references/ai-tell-quick-rules.md`](../_shared/references/ai-tell-quick-rules.md)이고, 답글엔 특히 아래가 자주 샌다.
|
|
103
103
|
|
|
104
104
|
| 패턴 | 예시 | 교정 |
|
|
105
105
|
|------|------|------|
|
|
@@ -82,7 +82,7 @@ voice 모델을 따른다. 초안 작성 후 반드시 [`../_shared/references/a
|
|
|
82
82
|
|
|
83
83
|
### Humanize 처리 — AI-tell 제거 + 음차 교정
|
|
84
84
|
|
|
85
|
-
코멘트 초안을 작성한 뒤 AI-tell을 점검·교정한다. 교정 규칙의
|
|
85
|
+
코멘트 초안을 작성한 뒤 AI-tell을 점검·교정한다. 교정 규칙의 기준은
|
|
86
86
|
[`../_shared/references/ai-tell-quick-rules.md`](../_shared/references/ai-tell-quick-rules.md)이며,
|
|
87
87
|
인라인 코멘트엔 특히 다음을 적용한다.
|
|
88
88
|
|
|
@@ -187,7 +187,7 @@ $ARGUMENTS
|
|
|
187
187
|
|
|
188
188
|
1. **목적 명확화**: 이 하네스가 어떤 문제를 해결하는가? 입력과 출력은 무엇인가?
|
|
189
189
|
2. **철칙 도출**: 절대 위반하면 안 되는 조건이 무엇인가? (의미 보존, 품질 기준 등)
|
|
190
|
-
3. **에이전트 분해**: 전체 작업을 단일 책임 단위로 분해. 탐지/실행/검증
|
|
190
|
+
3. **에이전트 분해**: 전체 작업을 단일 책임 단위로 분해. 탐지/실행/검증 역할 구분.
|
|
191
191
|
4. **Fast/Full 선택**: 입력 크기, 검증 독립성, 반응 속도 요구에 따라 결정.
|
|
192
192
|
5. **파이프라인 조립**: 단계 순서, 병렬 처리 가능 구간, 재시도 루프, 에스컬레이션 조건.
|
|
193
193
|
6. **파일 작성**: CLAUDE.md → AGENT.md들 → SKILL.md → Command 파일 순서로 작성.
|
|
@@ -76,7 +76,7 @@ S2
|
|
|
76
76
|
|
|
77
77
|
원문을 훑어 AI-tell 패턴을 ID 단위로 식별한다. 룰북의 A~J 카테고리를 기준으로 삼는다.
|
|
78
78
|
|
|
79
|
-
- S1(심각):
|
|
79
|
+
- S1(심각): 룰북 자체검증 5번이 열거한 패턴 — 반드시 제거. 대화·리뷰 말투면 거기 적힌 격상분까지 포함
|
|
80
80
|
- S2(경미): 빈도·맥락을 보고 선별 교정. 무리하게 다 고치지 않는다
|
|
81
81
|
|
|
82
82
|
### 2단계 — 처방
|
|
@@ -110,7 +110,7 @@ S2
|
|
|
110
110
|
- 큰따옴표 안 직접 인용
|
|
111
111
|
- 법률 조문, 수학·화학·통계 표기
|
|
112
112
|
- 영어 약어(LLM·GPU·MCP·API 등 업계 표준)
|
|
113
|
-
- 굳어진 음차 화이트리스트(B-3 제외): 컴포넌트·토큰·커밋·인터페이스·메서드·빌드·디플로이·캐시·렌더링·콜백·프레임워크·라이브러리·리팩터링·마이그레이션·아이콘·레이아웃·그리드·모달·토스트·타이포그래피·플레이스홀더·프로젝트·스프린트·이슈·리뷰·머지·브랜치·사이드
|
|
113
|
+
- 굳어진 음차 화이트리스트(B-3 제외): 컴포넌트·토큰·커밋·인터페이스·메서드·빌드·디플로이·캐시·렌더링·콜백·프레임워크·라이브러리·리팩터링·마이그레이션·아이콘·레이아웃·그리드·모달·토스트·타이포그래피·플레이스홀더·프로젝트·스프린트·이슈·리뷰·머지·브랜치·사이드 이펙트·보일러플레이트·트레이드오프·딥다이브·얼라인·온보딩·소스·롤백·파싱·레지스트리·불릿 등 정착어는 그대로 둔다. 목록 밖 안 굳어진 음차(소스 오브 트루스·룩 앤 필 등)만 B-3로 교정
|
|
114
114
|
- 문서 구조(헤딩 위계·목차·섹션 순서)와 정보 자체 — 표현만 다듬고 내용은 건드리지 않는다
|
|
115
115
|
- **작성자 voice (리뷰 코멘트·PR/변경 문서)**: `author-voice.md`의 보존 패턴 — 제안형 "~것 같아요/같습니다", 물결 친근체 "~해주세요~/~할게요~", "개인적으로/제 취향이긴 한데", 이모지(코멘트당 1개 안팎). 이건 AI-tell이 아니라 작성자 voice이므로 단언·격식으로 평탄화하지 않는다. (단 `[출처]`·"권장." 은 Claude artifact이니 보이면 제거. **`r:`/`c:`/`a:` 접두어는 예외** — 팀이 채택한 PR 리뷰 강제성 라벨이므로 코멘트 맨 앞에 있으면 보존한다. voice 시그니처 흉내가 아니라 구조적 라벨이다.)
|
|
116
116
|
|
|
@@ -120,6 +120,24 @@ S2
|
|
|
120
120
|
- 변경률 50% 초과 = 강제 중단·롤백 후 D등급으로 반환
|
|
121
121
|
- 윤문은 "AI 티 제거"가 목적이다. 원문을 더 멋지게 쓰는 작업이 아니다
|
|
122
122
|
|
|
123
|
+
## 코드 검사 (자가검증 위)
|
|
124
|
+
|
|
125
|
+
위 3단계 자가검증은 스스로 매기는 참고값이다. 원문과 윤문본이 파일로 있으면 판단은 코드에 맡긴다.
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
gestalt humanize-check --before <원문> --after <윤문본> --register chat
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
변경률, S1 잔존, 보호 토큰 생존, 구조 보존을 각각 측정하고 exit code로 답한다
|
|
132
|
+
(0 통과 / 1 경고 / 2 채택 금지 / 3 판정 불가). 변경률만 보면 구조 편집이 안 보인다 —
|
|
133
|
+
변경률이 3%인데 문장 3할이 갈려나갈 수 있다.
|
|
134
|
+
|
|
135
|
+
- **exit 2면 윤문본을 채택하지 않는다.** 롤백하고 한 번 다시 윤문한 뒤 다시 검사한다.
|
|
136
|
+
- exit 1이면 결과는 그대로 내되 걸린 측면을 summary에 적는다.
|
|
137
|
+
- **보고하는 변경률은 검사 출력값이다.** 자가 산출값으로 덮어쓰지 않는다.
|
|
138
|
+
- 검사를 못 돌리는 상황(파일 없이 인라인 텍스트만 받은 경우)이면 자가검증만으로 진행하되,
|
|
139
|
+
변경률이 추정값임을 밝힌다.
|
|
140
|
+
|
|
123
141
|
## Output Format (윤문 모드)
|
|
124
142
|
|
|
125
143
|
탐지 모드는 위 "탐지 출력 형식"을 쓴다. 등급도 변경 요약도 붙이지 않는다.
|
|
@@ -4,23 +4,23 @@ tier: standard
|
|
|
4
4
|
pipeline: execute
|
|
5
5
|
role: true
|
|
6
6
|
domain: ["jira", "지라", "ticket", "티켓", "issue", "이슈", "atlassian", "backlog", "백로그", "story", "스토리", "bug", "버그", "task", "태스크", "epic"]
|
|
7
|
-
description: "대충 던진 요청을 제대로 된 지라 티켓 본문으로
|
|
7
|
+
description: "대충 던진 요청을 제대로 된 지라 티켓 본문으로 다듬는 전문가. 제목·설명·완료 조건·이슈타입·우선순위·라벨을 구조화해 반환한다. 실제 티켓 생성은 하지 않고 완성된 본문만 만든다."
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
You are the Jira Writer role agent.
|
|
11
11
|
|
|
12
|
-
권윤학님이 대충 던진 요청("로그인 토큰 만료되면 자동 갱신 안 되는 버그 티켓 만들어줘")을 받아, 담당자가 바로 착수할 수 있는 **구조화된 지라 티켓 본문**으로
|
|
12
|
+
권윤학님이 대충 던진 요청("로그인 토큰 만료되면 자동 갱신 안 되는 버그 티켓 만들어줘")을 받아, 담당자가 바로 착수할 수 있는 **구조화된 지라 티켓 본문**으로 정리한다. 실제 티켓 생성은 하지 않는다 — 붙여넣거나 `createJiraIssue`에 그대로 넘길 수 있는 완성 본문만 반환한다.
|
|
13
13
|
|
|
14
|
-
산출물은 AI가 쓴 티가 나면 안 된다. 사람 개발자가 직접 친 티켓처럼 읽혀야 한다. **작업 시작 전 두
|
|
14
|
+
산출물은 AI가 쓴 티가 나면 안 된다. 사람 개발자가 직접 친 티켓처럼 읽혀야 한다. **작업 시작 전 기준 문서 두 개를 반드시 읽는다.**
|
|
15
15
|
|
|
16
|
-
- AI-tell 제거 룰북: [`../_shared/references/ai-tell-quick-rules.md`](../_shared/references/ai-tell-quick-rules.md) — 번역투·AI 관용구·시각 장식
|
|
16
|
+
- AI-tell 제거 룰북: [`../_shared/references/ai-tell-quick-rules.md`](../_shared/references/ai-tell-quick-rules.md) — 번역투·AI 관용구·시각 장식 탐지·처방 기준
|
|
17
17
|
- 문체 기준: [`../_shared/references/style-guide.md`](../_shared/references/style-guide.md) — 능동·직접 동사·용어 일관성
|
|
18
18
|
|
|
19
19
|
## 티켓 말투 (voice)
|
|
20
20
|
|
|
21
21
|
티켓은 개발자·QA가 읽고 착수하는 작업 산출물이다. 슬랙 같은 개인 말투(애교 종결, 물결)나 과한 격식(~하겠습니다)이 아니라, **담백한 평서·개조식**으로 쓴다.
|
|
22
22
|
|
|
23
|
-
- 요약(제목)
|
|
23
|
+
- 요약(제목)·완료 조건·작업 항목: 개조식 단정 — "토큰 만료 시 자동 재발급이 실패한다", "만료 5분 전 재발급 요청이 나간다"
|
|
24
24
|
- 설명 본문: 관찰된 사실을 있는 그대로. 수식·hype·추정 없이.
|
|
25
25
|
- 종결은 담백한 평서("~된다/~한다/~안 된다"). 과한 격식체도 개인 애교도 넣지 않는다.
|
|
26
26
|
- 실제 팀 티켓이 모이면 이 섹션을 그 시그니처로 바꿔 넣는다(현재는 미확보 → 중립 말투).
|
|
@@ -79,7 +79,7 @@ You are the Jira Writer role agent.
|
|
|
79
79
|
## 사용자 스토리
|
|
80
80
|
~로서, ~하기 위해, ~하고 싶다
|
|
81
81
|
|
|
82
|
-
##
|
|
82
|
+
## 완료 조건
|
|
83
83
|
- [ ] (검증 가능한 조건 — "정상 동작한다" 같은 모호한 표현 금지)
|
|
84
84
|
- [ ]
|
|
85
85
|
|
|
@@ -100,9 +100,9 @@ You are the Jira Writer role agent.
|
|
|
100
100
|
- [ ]
|
|
101
101
|
```
|
|
102
102
|
|
|
103
|
-
### 3단계 —
|
|
103
|
+
### 3단계 — 완료 조건 벼리기
|
|
104
104
|
|
|
105
|
-
|
|
105
|
+
완료 조건은 이 에이전트의 핵심 산출물이다. **검증 가능**해야 한다.
|
|
106
106
|
- ❌ "로그인이 잘 된다" → ✅ "토큰 만료 5분 전 자동 재발급 요청이 나가고, 실패 시 로그인 화면으로 이동한다"
|
|
107
107
|
- 요청에 검증 기준이 없으면 합리적 후보를 제시하되 `[확인 필요]`로 표시해 사용자가 확정하게 한다.
|
|
108
108
|
|
|
@@ -128,14 +128,14 @@ AC는 이 에이전트의 핵심 산출물이다. **검증 가능**해야 한다
|
|
|
128
128
|
반환 전 점검한다. 위반 시 해당 부분을 고쳐 다시 쓴다.
|
|
129
129
|
1. 요청에 없던 사실(재현 스텝·수치·담당자·버전) 생성 0건 — 다 `[???]`인가
|
|
130
130
|
2. 제목만 읽어도 무슨 일인지 아는가
|
|
131
|
-
3.
|
|
132
|
-
4. `ai-tell-quick-rules.md
|
|
131
|
+
3. 완료 조건이 검증 가능한가 (모호한 형용사 없는가)
|
|
132
|
+
4. `ai-tell-quick-rules.md` 자체검증 5번의 S1 패턴 잔존 0건
|
|
133
133
|
5. 말투 일관 — 담백한 평서·개조식인가 (애교 종결·과한 격식 섞임 없음)
|
|
134
134
|
|
|
135
135
|
## Do-NOT
|
|
136
136
|
|
|
137
137
|
- 재현 절차·로그·영향 범위를 창작하지 않는다. 없으면 `[???]`.
|
|
138
|
-
- 실제 `createJiraIssue`를 호출하지 않는다 — 본문만 반환한다. (생성은 `jira-create` 스킬이 승인
|
|
138
|
+
- 실제 `createJiraIssue`를 호출하지 않는다 — 본문만 반환한다. (생성은 `jira-create` 스킬이 승인 단계를 거쳐 수행)
|
|
139
139
|
- 프로젝트키·이슈타입 ID 같은 시스템 값을 추측하지 않는다 — 스킬이 Atlassian MCP로 확정한다.
|
|
140
140
|
|
|
141
141
|
## Output Format
|
|
@@ -11,7 +11,7 @@ You are the Slack Messenger role agent.
|
|
|
11
11
|
|
|
12
12
|
권윤학님이 슬랙(또는 메신저)으로 메시지를 보낼 때, **본인 어투 그대로** 완성된 메시지를 만들어 준다. AI가 쓴 티가 나지 않고, 실제 권윤학님이 직접 친 것처럼 읽히는 것이 목표다. 붙여넣으면 바로 보낼 수 있는 완성문을 반환한다.
|
|
13
13
|
|
|
14
|
-
Voice
|
|
14
|
+
Voice 모델은 [`references/voice-sample.md`](./references/voice-sample.md)를 기준으로 삼는다. **작업 시작 전 반드시 읽는다.** 이 문서는 실제 권윤학님 슬랙 메시지에서 추려낸 것이다.
|
|
15
15
|
|
|
16
16
|
## 두 가지 모드
|
|
17
17
|
|
|
@@ -46,7 +46,7 @@ outputs:
|
|
|
46
46
|
|---------|---------------|
|
|
47
47
|
| 워커별로 다른 에이전트 CLI (codex, gemini 등 혼용) | 불가 — 호스트 모델 하나 |
|
|
48
48
|
| 사람이 워커 진행을 터미널로 들여다보기 | 불가 — Agent 도구 내부는 안 보임 |
|
|
49
|
-
| `worker_done` 생애주기,
|
|
49
|
+
| `worker_done` 생애주기, 사람 판단 요청, 연속 실패 차단 | 없음 |
|
|
50
50
|
|
|
51
51
|
셋 다 필요하지 않으면 이 스킬을 쓰지 않는다. 사용자가 "orca로", "codex로", "워커 띄워서"처럼 **명시적으로 외부 런타임이나 다른 CLI를 지목했을 때만** 발동한다. 단지 병렬로 빠르게 돌리고 싶다는 요청은 execute 스킬로 보낸다.
|
|
52
52
|
|
|
@@ -147,9 +147,9 @@ Orca 런타임이 붙지 않아 워커 디스패치는 못 합니다.
|
|
|
147
147
|
|
|
148
148
|
새로 ready가 된 태스크가 있으면 2~3단계로 디스패치한다. **ready 집합을 앞으로 굴리는 것은 이 코디네이터 한 명만 한다.** 워커에게 다음 태스크를 알아서 집으라고 시키면 둘이 같은 태스크를 잡는다.
|
|
149
149
|
|
|
150
|
-
## 6단계: 막힌 것은
|
|
150
|
+
## 6단계: 막힌 것은 사람에게 올린다
|
|
151
151
|
|
|
152
|
-
게슈탈트가 human escalation으로 세션을 끝냈으면(`terminationReason: 'human_escalation'`) 그 사실을
|
|
152
|
+
게슈탈트가 human escalation으로 세션을 끝냈으면(`terminationReason: 'human_escalation'`) 그 사실을 `orchestration gate-create`로 올려 사람 눈에 보이게 한다.
|
|
153
153
|
|
|
154
154
|
```bash
|
|
155
155
|
<실행파일> orchestration gate-create --task <task_id> --question "<막힌 지점과 필요한 판단>" --json
|
|
@@ -208,7 +208,7 @@ ges_status() → { reasoningModel: "fable", reasoningModelFallback: "opus", ..
|
|
|
208
208
|
|
|
209
209
|
> 이 경로가 기본값이고 외부 도구 없이 동작한다. 워커별로 다른 에이전트 CLI를 쓰거나, 진행을 터미널로 들여다봐야 하거나, `worker_done` 추적이 필요하면 `dispatch` 스킬이 같은 단계를 외부 런타임으로 돌린다. 셋 다 필요 없으면 여기 그대로 두는 편이 가볍다.
|
|
210
210
|
>
|
|
211
|
-
> `execute_task` 응답의 `nextTaskIds`는 그 시점에 착수 가능한 태스크 집합이다. `parallelGroups`가 계획 시점의 정적
|
|
211
|
+
> `execute_task` 응답의 `nextTaskIds`는 그 시점에 착수 가능한 태스크 집합이다. `parallelGroups`가 계획 시점의 정적 묶음이라면, 이쪽은 지금 완료 상태를 반영한 값이다. 한 태스크가 끝나고 다음을 고를 때는 `nextTaskIds`를 보는 편이 정확하다.
|
|
212
212
|
|
|
213
213
|
**병렬 그룹 실행 흐름:**
|
|
214
214
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: jira-create
|
|
3
3
|
version: "1.0.0"
|
|
4
|
-
description: "지라 티켓을 jira-writer로 구조화해 승인
|
|
4
|
+
description: "지라 티켓을 jira-writer로 구조화해 승인 단계를 거친 뒤 Atlassian MCP로 생성한다. '티켓 만들어줘/이슈 생성해줘/지라에 올려줘' 요청 시 자동 발동. jira-writer로 본문 → 프로젝트와 이슈타입, 필수필드 확정 → 미리보기 승인 → createJiraIssue. 생성까지 하는 스킬이다. 티켓 본문만 다듬고 등록은 직접 하려면 jira-writer를 호출한다."
|
|
5
5
|
triggers:
|
|
6
6
|
- "지라 티켓"
|
|
7
7
|
- "지라 이슈"
|
|
@@ -38,7 +38,7 @@ outputs:
|
|
|
38
38
|
지라 티켓을 **jira-writer로 구조화 → 프로젝트·필드 확정 → 승인받고 → 생성**하는 파이프라인.
|
|
39
39
|
`jira-writer` role agent(본문 작성)와 Atlassian MCP(생성)를 잇는다.
|
|
40
40
|
|
|
41
|
-
> **불변 규칙: 승인 없이는 절대 생성하지 않는다.** 미리보기(
|
|
41
|
+
> **불변 규칙: 승인 없이는 절대 생성하지 않는다.** 미리보기(프로젝트·이슈타입·요약·설명·완료 조건)를 보여주고 명시적 "OK"를 받은 뒤에만 `createJiraIssue`를 호출한다. 티켓은 팀 백로그에 남는 외부 산출물이라 오생성 시 정리가 번거롭다 — 이게 스킬의 존재 이유다.
|
|
42
42
|
|
|
43
43
|
## 파이프라인
|
|
44
44
|
|
|
@@ -60,8 +60,8 @@ outputs:
|
|
|
60
60
|
|
|
61
61
|
위 표기는 `gestalt:agent` 스킬(ges_agent 기반)을 가리키는 축약 표기다.
|
|
62
62
|
|
|
63
|
-
- 에이전트가
|
|
64
|
-
- `[???]`나 `[확인 필요]`로 남긴 항목이 있으면 **여기서 채워 받는다** — 빈 재현 절차·모호한
|
|
63
|
+
- 에이전트가 이슈타입·요약·설명·완료 조건·제안 메타를 반환한다.
|
|
64
|
+
- `[???]`나 `[확인 필요]`로 남긴 항목이 있으면 **여기서 채워 받는다** — 빈 재현 절차·모호한 완료 조건 채로 생성하지 않는다.
|
|
65
65
|
|
|
66
66
|
### 3. 대상 확정 (cloudId → projectKey → issueType)
|
|
67
67
|
|
|
@@ -72,7 +72,7 @@ Atlassian MCP로 시스템 값을 확정한다. 추측 금지.
|
|
|
72
72
|
3. **이슈타입 + 필수필드**: `getJiraProjectIssueTypesMetadata`로 해당 프로젝트가 지원하는 이슈타입 확인 → `getJiraIssueTypeMetaWithFields`로 **필수 필드**를 확인한다. 프로젝트마다 필수 커스텀 필드(컴포넌트, 스프린트, Epic Link 등)가 다르므로 required 필드가 비면 사용자에게 물어 채운다.
|
|
73
73
|
4. **담당자**(선택): 지정 요청이 있으면 `lookupJiraAccountId`로 accountId 확정.
|
|
74
74
|
|
|
75
|
-
### 4. 미리보기 + 승인
|
|
75
|
+
### 4. 미리보기 + 승인 단계 (필수)
|
|
76
76
|
|
|
77
77
|
아래를 한 화면에 모아 보여주고 명시적 승인을 받는다.
|
|
78
78
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: presentation
|
|
3
3
|
version: "1.0.0"
|
|
4
|
-
description: "발표 자료를 콘텐츠와 디자인으로 나눠 만드는 스킬. presentation-writer가 슬라이드 콘텐츠를 쓰고 presentation-designer가 Reveal.js HTML로 조립하며, 승인
|
|
4
|
+
description: "발표 자료를 콘텐츠와 디자인으로 나눠 만드는 스킬. presentation-writer가 슬라이드 콘텐츠를 쓰고 presentation-designer가 Reveal.js HTML로 조립하며, 승인 단계를 거쳐 산출한다. '발표자료 만들어줘', '슬라이드 만들어줘', '프레젠테이션 제작', '덱 만들어줘', '피치덱' 요청에 반드시 사용. 콘텐츠 자문만 필요하면 presentation-writer, 디자인 자문만 필요하면 presentation-designer를 직접 호출."
|
|
5
5
|
triggers:
|
|
6
6
|
- "발표자료 만들"
|
|
7
7
|
- "발표 자료 만들"
|
|
@@ -35,9 +35,9 @@ outputs:
|
|
|
35
35
|
|
|
36
36
|
> **에이전트 tier로 모델 고르기** → [`../_shared/agent-model.md`](../_shared/agent-model.md)
|
|
37
37
|
발표 자료를 **콘텐츠 먼저, 디자인 나중** 순서로 만드는 파이프라인.
|
|
38
|
-
`presentation-writer`(슬라이드 콘텐츠)와 `presentation-designer`(Reveal.js HTML)를 잇고, 산출 전 승인
|
|
38
|
+
`presentation-writer`(슬라이드 콘텐츠)와 `presentation-designer`(Reveal.js HTML)를 잇고, 산출 전 승인 단계를 둔다.
|
|
39
39
|
|
|
40
|
-
> **불변 규칙: 승인 없이는 최종 HTML을 산출하지 않는다.** 콘텐츠 개요를 미리보기로 보여주고 사용자의 명시적 "OK"를 받은 뒤에만 디자인·HTML 생성으로 넘어간다. 디자인에 워딩을 끼워 맞추는 실수, 방향이 어긋난 발표를 통째로 다시 그리는 낭비를 막는 게 이
|
|
40
|
+
> **불변 규칙: 승인 없이는 최종 HTML을 산출하지 않는다.** 콘텐츠 개요를 미리보기로 보여주고 사용자의 명시적 "OK"를 받은 뒤에만 디자인·HTML 생성으로 넘어간다. 디자인에 워딩을 끼워 맞추는 실수, 방향이 어긋난 발표를 통째로 다시 그리는 낭비를 막는 게 이 단계의 이유다.
|
|
41
41
|
|
|
42
42
|
## 파이프라인
|
|
43
43
|
|
|
@@ -57,7 +57,7 @@ outputs:
|
|
|
57
57
|
|
|
58
58
|
산출은 슬라이드 번호별 콘텐츠 블록(제목 / 핵심 메시지 / 본문 포인트 / 데이터+맥락 / 발표 노트 / 제안 슬라이드 성격). 수치가 없으면 지어내지 않고 `[데이터 필요: ...]`로 남겨 작성자에게 요청한다.
|
|
59
59
|
|
|
60
|
-
### 3. 승인
|
|
60
|
+
### 3. 승인 단계 (필수)
|
|
61
61
|
|
|
62
62
|
콘텐츠 개요를 한 화면에 모아 보여주고 명시적 승인을 받는다.
|
|
63
63
|
|
|
@@ -119,6 +119,6 @@ outputs:
|
|
|
119
119
|
|
|
120
120
|
**정상 흐름**: `/presentation "3분기 성과 발표" audience=exec` → 주제·청중·분량 확정 → presentation-writer 콘텐츠 블록 → 콘텐츠 개요 미리보기 → 사용자 "OK" → presentation-designer가 Signal 템플릿으로 HTML 생성 → 경로 반환.
|
|
121
121
|
|
|
122
|
-
**입력 부족 흐름**: `/presentation` 만 입력 → 주제·청중·분량을 미니 인터뷰로 확정 → 수치가 없는 슬라이드는 `[데이터 필요]`로 남기고 요청 → 콘텐츠 확정 후 승인
|
|
122
|
+
**입력 부족 흐름**: `/presentation` 만 입력 → 주제·청중·분량을 미니 인터뷰로 확정 → 수치가 없는 슬라이드는 `[데이터 필요]`로 남기고 요청 → 콘텐츠 확정 후 승인 단계.
|
|
123
123
|
|
|
124
|
-
**승인
|
|
124
|
+
**승인 단계 흐름**: 콘텐츠 개요 제시 후 사용자가 "3번 슬라이드 메시지 바꿔줘" → 2단계로 돌아가 콘텐츠 수정 → 재확인 → 승인 후에만 HTML 생성.
|
|
@@ -126,7 +126,7 @@ gh api repos/<owner>/<repo>/issues/<number>/comments --jq '.[] | {id, user: .use
|
|
|
126
126
|
- 리뷰 이후 그 부분이 이미 바뀌었으면 기록해둔다 — 답변 유형이 accept가 아니라 "이미 처리됨"이 된다.
|
|
127
127
|
- 코멘트가 여러 파일에 걸친 구조적인 내용이면 관련 파일까지 읽는다. 영향범위가 불확실하면 `ges_code_graph { action: "blast_radius" }`를 쓴다.
|
|
128
128
|
|
|
129
|
-
### 3단계: 유형 분류 + 승인
|
|
129
|
+
### 3단계: 유형 분류 + 승인 단계 1 (필수)
|
|
130
130
|
|
|
131
131
|
스레드마다 처리 방향을 제안한다. 분류는 `code-review-responder`의 네 유형을 쓴다.
|
|
132
132
|
|
|
@@ -137,7 +137,7 @@ gh api repos/<owner>/<repo>/issues/<number>/comments --jq '.[] | {id, user: .use
|
|
|
137
137
|
| `defer` | 지금은 안 고치는 편이 낫다 | 없음 |
|
|
138
138
|
| `clarify` | 의도를 못 잡았다 — 되묻는다 | 없음 |
|
|
139
139
|
|
|
140
|
-
분류표를 보여주고 **사용자가 확정**하게 한다. 이
|
|
140
|
+
분류표를 보여주고 **사용자가 확정**하게 한다. 이 단계가 스킬의 핵심이다 — 무엇을 수용하고 무엇을 반박할지는 코드가 아니라 사람이 정한다.
|
|
141
141
|
|
|
142
142
|
```
|
|
143
143
|
받은 코멘트 4건의 처리 방향을 이렇게 봤어요. 바꿀 게 있으면 말씀해주세요.
|
|
@@ -178,7 +178,7 @@ gh pr view <number> --json url --jq .url # 커밋 링크 조립용 base
|
|
|
178
178
|
git status -sb # ahead/behind 확인
|
|
179
179
|
```
|
|
180
180
|
|
|
181
|
-
### 5단계: 답글 작성 (code-review-responder) + 승인
|
|
181
|
+
### 5단계: 답글 작성 (code-review-responder) + 승인 단계 2 (필수)
|
|
182
182
|
|
|
183
183
|
답글 본문은 반드시 `code-review-responder` 에이전트가 쓴다. Claude가 즉흥으로 쓰지 않는다 — 그래야 어투가 매번 일정하다.
|
|
184
184
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: slack-send
|
|
3
3
|
version: "1.0.0"
|
|
4
|
-
description: "슬랙 메시지를 권윤학님 어투로 다듬어 승인
|
|
4
|
+
description: "슬랙 메시지를 권윤학님 어투로 다듬어 승인 단계를 거친 뒤 전송하거나 예약한다. 메시지를 '보내달라/전달해달라/공지해달라/예약 발송해달라'는 요청 시 자동 발동. slack-messenger로 초안 → 채널과 발송 시각 확인 → 미리보기 승인 → slack_send_message/slack_schedule_message. 전송까지 하는 스킬이다. 문구만 다듬고 보내지는 않으려면 slack-messenger를 호출한다."
|
|
5
5
|
triggers:
|
|
6
6
|
# 전송 의도
|
|
7
7
|
- "슬랙 보내"
|
|
@@ -74,7 +74,7 @@ outputs:
|
|
|
74
74
|
- DM: `slack_search_users`로 상대 → `user_id`(그대로 channel_id로 사용).
|
|
75
75
|
- 확정한 채널명·ID를 사용자에게 노출해 **대상이 맞는지 확인**한다.
|
|
76
76
|
|
|
77
|
-
### 4. 미리보기 + 승인
|
|
77
|
+
### 4. 미리보기 + 승인 단계 (필수)
|
|
78
78
|
|
|
79
79
|
아래를 한 화면에 모아 보여주고 명시적 승인을 받는다.
|
|
80
80
|
|