@tienne/gestalt 0.89.0 → 0.90.1
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 +1 -0
- package/dist/package.json +6 -4
- package/dist/plugin/skills/_shared/proactive-routing.md +29 -13
- package/dist/plugin/skills/architecture/SKILL.md +61 -6
- package/dist/plugin/skills/brief/SKILL.md +2 -1
- package/dist/plugin/skills/dispatch/SKILL.md +2 -0
- package/dist/plugin/skills/explain/SKILL.md +4 -2
- package/dist/plugin/skills/jira-create/SKILL.md +2 -0
- package/dist/plugin/skills/pr/SKILL.md +2 -0
- package/dist/plugin/skills/presentation/SKILL.md +2 -0
- package/dist/plugin/skills/review/SKILL.md +1 -0
- package/dist/plugin/skills/review-loop/SKILL.md +3 -1
- package/dist/plugin/skills/review-reply/SKILL.md +2 -0
- package/dist/plugin/skills/ship/SKILL.md +2 -2
- package/dist/plugin/skills/slack-send/SKILL.md +2 -0
- package/dist/src/core/types.d.ts +4 -0
- package/dist/src/core/types.d.ts.map +1 -1
- package/dist/src/skills/parser.d.ts.map +1 -1
- package/dist/src/skills/parser.js +1 -0
- package/dist/src/skills/parser.js.map +1 -1
- package/dist/src/skills/types.d.ts +4 -0
- package/dist/src/skills/types.d.ts.map +1 -1
- package/package.json +6 -4
- package/plugin/.codex-plugin/plugin.json +1 -1
- package/plugin/.mcp.json +1 -1
- package/plugin/mcp.json +1 -1
- package/plugin/skills/_shared/proactive-routing.md +29 -13
- package/plugin/skills/architecture/SKILL.md +61 -6
- package/plugin/skills/brief/SKILL.md +2 -1
- package/plugin/skills/dispatch/SKILL.md +2 -0
- package/plugin/skills/explain/SKILL.md +4 -2
- package/plugin/skills/jira-create/SKILL.md +2 -0
- package/plugin/skills/pr/SKILL.md +2 -0
- package/plugin/skills/presentation/SKILL.md +2 -0
- package/plugin/skills/review/SKILL.md +1 -0
- package/plugin/skills/review-loop/SKILL.md +3 -1
- package/plugin/skills/review-reply/SKILL.md +2 -0
- package/plugin/skills/ship/SKILL.md +2 -2
- package/plugin/skills/slack-send/SKILL.md +2 -0
package/CLAUDE.md
CHANGED
|
@@ -37,6 +37,7 @@ pnpm tsx bin/gestalt.ts init # gestalt.json + code graph + post-commit hook
|
|
|
37
37
|
pnpm verify:rules # 룰북과 에이전트 문서의 룰 ID·심각도 정합 검사
|
|
38
38
|
pnpm verify:output-style # 룰 ID 정합과 HOIST 조각 검사 (postbuild에도 걸려 있다)
|
|
39
39
|
pnpm build:output-style # 룰북 → ~/.claude/output-styles/tienne-voice.md 생성
|
|
40
|
+
pnpm build:routing # SKILL.md triggers → proactive-routing.md 스킬 표 생성 (verify:routing이 gate에서 검사)
|
|
40
41
|
pnpm tsx bin/gestalt.ts humanize-scan --file a.md --register chat # 걸린 룰만 추린다
|
|
41
42
|
pnpm tsx bin/gestalt.ts humanize-check --before a.md --after b.md --register report
|
|
42
43
|
pnpm tsx bin/gestalt.ts explain-check --source err.log --explain out.md --audience nontech
|
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tienne/gestalt",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.90.1",
|
|
4
4
|
"description": "TypeScript AI Development Harness - Gestalt psychology-driven requirement clarification",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"scripts": {
|
|
30
30
|
"dev": "tsx bin/gestalt.ts",
|
|
31
31
|
"build": "tsc -p tsconfig.build.json",
|
|
32
|
-
"postbuild": "rm -rf dist/plugin && mkdir -p dist/plugin && cp -r plugin/agents plugin/role-agents plugin/review-agents plugin/personas plugin/skills dist/plugin/ && cp -r schemas dist/ && cp package.json dist/ && chmod +x dist/bin/gestalt.js dist/bin/gestalt-hook.js && pnpm run verify:plugin && pnpm run verify:rules && pnpm run verify:rule-overlap && pnpm run verify:output-style",
|
|
32
|
+
"postbuild": "rm -rf dist/plugin && mkdir -p dist/plugin && cp -r plugin/agents plugin/role-agents plugin/review-agents plugin/personas plugin/skills dist/plugin/ && cp -r schemas dist/ && cp package.json dist/ && chmod +x dist/bin/gestalt.js dist/bin/gestalt-hook.js && pnpm run verify:plugin && pnpm run verify:rules && pnpm run verify:rule-overlap && pnpm run verify:output-style && pnpm run verify:routing",
|
|
33
33
|
"verify:plugin": "tsx scripts/verify-plugin-assets.ts",
|
|
34
34
|
"prepublishOnly": "pnpm build",
|
|
35
35
|
"test": "vitest run",
|
|
@@ -45,10 +45,12 @@
|
|
|
45
45
|
"postversion": "pnpm run version:sync && pnpm run build:output-style",
|
|
46
46
|
"verify:rules": "tsx scripts/verify-rule-refs.ts",
|
|
47
47
|
"verify:rule-overlap": "tsx scripts/verify-rule-overlap.ts",
|
|
48
|
-
"gate": "pnpm typecheck && pnpm verify:rules && pnpm verify:rule-overlap && pnpm lint && pnpm format:check && pnpm build && pnpm test",
|
|
48
|
+
"gate": "pnpm typecheck && pnpm verify:rules && pnpm verify:rule-overlap && pnpm verify:routing && pnpm lint && pnpm format:check && pnpm build && pnpm test",
|
|
49
49
|
"humanize:baseline": "tsx scripts/humanize-baseline.ts",
|
|
50
50
|
"build:output-style": "tsx scripts/build-output-style.ts",
|
|
51
|
-
"verify:output-style": "tsx scripts/build-output-style.ts --dry-run"
|
|
51
|
+
"verify:output-style": "tsx scripts/build-output-style.ts --dry-run",
|
|
52
|
+
"build:routing": "tsx scripts/build-skill-routing.ts",
|
|
53
|
+
"verify:routing": "tsx scripts/build-skill-routing.ts --check"
|
|
52
54
|
},
|
|
53
55
|
"dependencies": {
|
|
54
56
|
"@anthropic-ai/sdk": "^0.39.0",
|
|
@@ -47,20 +47,15 @@
|
|
|
47
47
|
| README, API 문서, 가이드, 개발자 문서 작성 | `technical-writer` |
|
|
48
48
|
| 발표 슬라이드 콘텐츠·문구·데이터 요약·발표 노트 작성 | `presentation-writer` |
|
|
49
49
|
| 슬라이드 Reveal.js 구조·템플릿·비주얼 디자인 자문 | `presentation-designer` |
|
|
50
|
-
| 발표자료·슬라이드·프레젠테이션 제작 요청 ("발표자료 만들어줘", "슬라이드 만들어줘", "피치덱") | `presentation` 스킬 사용 (presentation-writer 콘텐츠 → 승인 단계 → presentation-designer 디자인 → Reveal.js HTML) |
|
|
51
50
|
| 시스템 설계, 아키텍처 리뷰, 설계 패턴 | `architect` |
|
|
52
|
-
| 근거 달린 아키텍처 그림 요청 ("아키텍처 그려줘", "화면에서 DB까지 그려줘", "배포 경로 그려줘") | `architecture` 스킬 사용 (맥락 소스 찾기 → 읽기 전용 걸러내기 → 탐색 → IR validate → 미해결 질문 → render). 설계 리뷰나 자문이면 `architect` |
|
|
53
51
|
| 보안 취약점, 인증/인가, 시크릿 노출 검토 | `security-reviewer` |
|
|
54
52
|
| 성능 병목, N+1, 메모리 누수 분석 | `performance-reviewer` |
|
|
55
53
|
| 코드 가독성, SOLID, 에러 처리 리뷰 | `quality-reviewer` |
|
|
56
54
|
| 테스트 케이스, 엣지 케이스, QA | `qa-engineer` |
|
|
57
55
|
| UX 문구 작성·교정, 버튼 텍스트, 에러 메시지, 토스트, 온보딩 카피 | `ux-writer` |
|
|
58
|
-
| 대상 지정해서 설명 요청 ("기획팀한테 설명해줘", "쉽게 풀어줘", "ELI5", "이 에러 뭐야") | `explain` 스킬 사용 (소스 확보 → 대상 확정 → explainer 위임 → explain-check → 재시도) |
|
|
59
56
|
| 설명 문장만 빠르게 필요할 때 | `explainer` 에이전트 |
|
|
60
57
|
| 슬랙·메신저 메시지 작성 또는 딱딱한/AI스러운 초안을 본인 말투로 다듬기 | `slack-messenger` |
|
|
61
|
-
| 슬랙 메시지 전송·예약 발송 요청 ("~라고 보내줘", "공지해줘", "예약 발송해줘") | `slack-send` 스킬 사용 (내부적으로 slack-messenger 다듬기 → 승인 단계 → 전송) |
|
|
62
58
|
| 지라 티켓 본문 작성·구조화 (제목, 설명, 완료 조건, 이슈타입 추천) | `jira-writer` |
|
|
63
|
-
| 지라 티켓 생성 요청 ("티켓 만들어줘", "이슈 생성해줘", "지라에 올려줘") | `jira-create` 스킬 사용 (내부적으로 jira-writer 구조화 → 프로젝트·필드 확정 → 승인 단계 → createJiraIssue) |
|
|
64
59
|
| UI, React, 접근성, 컴포넌트 설계 | `frontend-developer` — 단 레포가 이 범위를 `delegate`로 선언했으면 그쪽이 이긴다 (위 절) |
|
|
65
60
|
| UI·React 코드 리뷰, 접근성·번들 최적화 검토 | `frontend-reviewer` — 단 레포가 이 범위를 `delegate`로 선언했으면 그쪽이 이긴다 (위 절) |
|
|
66
61
|
| 주석 검토 ("주석 좀 봐줘", 불필요한 주석·죽은 코드·티켓 없는 TODO 확인) | `comment-reviewer` |
|
|
@@ -70,21 +65,42 @@
|
|
|
70
65
|
| 요구사항 정리, 로드맵, 유저 스토리 | `product-planner` |
|
|
71
66
|
| 성과 분석·KPI 해석·분기 성과 보고·회고 리포트 | `impact-writer` |
|
|
72
67
|
| 제안서, RFC, 의사결정 메모 등 설득·합의용 기획 산문 | `impact-writer` |
|
|
73
|
-
| 성과 보고서·제안서·RFC·회고 작성 요청 ("성과 보고서 써줘", "제안서 작성", "RFC 써줘") | `brief` 스킬 사용 |
|
|
74
68
|
| 기술 분석, 벤치마크, 사례 조사 | `researcher` |
|
|
75
69
|
| 내 PR에 달린 리뷰 코멘트 답변 본문 작성 (반영·대안·보류·질문) | `code-review-responder` |
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
70
|
+
|
|
71
|
+
## 스킬 트리거
|
|
72
|
+
|
|
73
|
+
요청 문구가 아래 표에 걸리면 그 스킬을 쓴다. 에이전트 표와 둘 다 걸리면 스킬이 먼저다 — 스킬은 에이전트를 부르기 전에 승인 단계나 게시 같은 절차를 붙인다.
|
|
74
|
+
|
|
75
|
+
<!-- skill-routing:start -->
|
|
76
|
+
<!-- 생성물이다. 각 SKILL.md의 triggers와 routing.note를 고치고 pnpm build:routing 으로 다시 뽑는다 -->
|
|
77
|
+
|
|
78
|
+
| 요청 문구 | 스킬 | 비고 |
|
|
79
|
+
|-----------|------|------|
|
|
80
|
+
| "architecture", "아키텍처 그려줘", "아키텍처 뷰", "화면에서 DB까지", "이 화면이 어떤 API를 부르는지 그려줘", "배포 경로 그려줘", "CI/CD 경로 그려줘", "서빙 인프라 그려줘", "하네스 구조 그려줘", "스킬이랑 MCP 도구 관계 그려줘", "시퀀스 그려줘", "호출 순서 그려줘", "데이터 흐름 그려줘", "데이터 리니지 그려줘", "업무 흐름 그려줘", "결재 절차 그려줘", "둘 구조 비교해서 그려줘", "네트워크 구성도 그려줘", "인프라 구성도 그려줘", "조직도 그려줘", "업무 시스템 관계 그려줘", "문서 지도 그려줘", "KB 레포 그려줘", "문서 구멍 찾아줘", "오래된 문서 찾아줘", "이 PR로 손봐야 할 문서 찾아줘", "코드 바뀐 걸로 낡은 문서 골라줘", "아키텍처 그림 합쳐줘" | `architecture` 스킬 사용 | 맥락 소스 찾기 → 읽기 전용 걸러내기 → 탐색 → IR validate → 미해결 질문 → render. 문서 레포는 scan_docs → link_docs → render. 설계 리뷰나 자문이면 `architect` |
|
|
81
|
+
| "성과 보고서", "성과 분석", "분기 리포트", "분기 보고", "KPI 리포트", "제안서 작성", "제안서 써줘", "RFC 써줘", "RFC 작성", "의사결정 메모", "회고 정리", "회고 써줘", "경영진 보고 자료", "성과 문서", "이 문서 다시 써줘", "보고서 보완" | `brief` 스킬 사용 | |
|
|
82
|
+
| "orca로 실행", "orca로 병렬", "워커로 뿌려", "터미널로 뿌려", "병렬 디스패치", "다른 에이전트로 실행", "codex로 실행", "워커 띄워서 실행" | `dispatch` 스킬 사용 | 런타임 감지 → 같은 워크트리에 터미널 → worker_done 대기 → ready 재계산. 런타임 없으면 execute의 기본 병렬 경로 |
|
|
83
|
+
| "설명해줘", "쉽게 풀어줘", "풀어서 설명", "이해하기 쉽게", "쉽게 말하면", "이거 뭐야", "이 에러 뭐야", "무슨 뜻이야", "ELI5", "한테 설명해줘", "에게 설명해줘", "기획팀한테", "비개발자한테", "경영진 보고용으로 설명" | `explain` 스킬 사용 | 소스 확보 → 대상 확정 → explainer 위임 → explain-check → 재시도. 설명 문장만 빠르게 필요하면 `explainer` 에이전트 |
|
|
84
|
+
| "지라 티켓", "지라 이슈", "티켓 만들어", "티켓 생성", "이슈 만들어", "이슈 생성", "지라에 올려", "지라에 등록", "백로그에 추가", "jira 티켓", "jira 이슈", "create jira" | `jira-create` 스킬 사용 | 내부적으로 jira-writer 구조화 → 프로젝트·필드 확정 → 승인 단계 → createJiraIssue |
|
|
85
|
+
| "PR 작성", "PR 만들어", "PR 써줘", "PR 올려", "풀리퀘", "풀 리퀘스트", "pull request", "create PR" | `pr` 스킬 사용 | 다른 레포의 PR 스킬과 이름이 겹치면 `gestalt:pr`로 부른다 |
|
|
86
|
+
| "발표자료 만들", "발표 자료 만들", "슬라이드 만들", "프레젠테이션 만들", "프레젠테이션 제작", "덱 만들", "피치덱", "피치 덱", "발표 슬라이드", "슬라이드 제작", "reveal 슬라이드" | `presentation` 스킬 사용 | presentation-writer 콘텐츠 → 승인 단계 → presentation-designer 디자인 → Reveal.js HTML |
|
|
87
|
+
| "PR 리뷰", "브랜치 리뷰", "코드 리뷰", "diff 리뷰", "review PR", "review branch", "이 브랜치 리뷰", "변경사항 리뷰", "PR에 코멘트 남겨줘", "리뷰 코멘트 달아줘", "PR에 인라인 코멘트", "리뷰 결과 PR에 게시", "주니어한테 설명하듯 리뷰", "신입이 읽을 리뷰" | `review` 스킬 사용 | |
|
|
88
|
+
| "리뷰 루프", "review loop", "리뷰하고 지켜봐줘", "리뷰 대응 모니터링", "대응하면 재리뷰", "리젝하고 지켜봐줘", "변경 요청 남겨줘", "approve 날 때까지", "리뷰어로 끝까지", "재리뷰 반복", "PR 계속 지켜봐줘" | `review-loop` 스킬 사용 | 리뷰 → 인라인 코멘트 → 판정 게시 → 대응 확인 → 재리뷰. **한 번 부르면 한 번 본다** — 이어 보려면 사람이 다시 부른다. 리뷰 한 번만이면 `review`, 내 PR을 밀어 올리는 쪽은 `ship` |
|
|
89
|
+
| "리뷰 반영", "리뷰 코멘트 답", "리뷰 답변", "리뷰 답글", "받은 리뷰 처리", "리뷰 피드백 반영", "PR 코멘트 처리", "리뷰 코멘트 처리", "코멘트에 답해줘", "reply to review", "리뷰어 의견 반영" | `review-reply` 스킬 사용 | 스레드 수집 → 유형 분류 승인 → 수정·커밋 → 답글 승인 → 게시 |
|
|
90
|
+
| "출하", "ship", "PR 올릴 때까지", "리뷰 통과할 때까지", "코파일럿 리뷰까지", "copilot 리뷰 받아줘", "draft PR 올리고 리뷰" | `ship` 스킬 사용 | 로컬 PR → 리뷰 수렴 루프 → 승인 → draft PR → Copilot 수렴 루프 → ready. 리뷰 한 번만이면 `review` |
|
|
91
|
+
| "슬랙 보내", "슬랙으로 보내", "메시지 보내", "메세지 보내", "전달해줘", "공지해줘", "공지 올려줘", "슬랙에 올려줘", "슬랙 메시지 전송", "예약 발송", "예약메세지", "예약 메시지", "이따 보내", "내일 아침에 보내", "9시에 보내" | `slack-send` 스킬 사용 | 내부적으로 slack-messenger 다듬기 → 승인 단계 → 전송 |
|
|
92
|
+
|
|
93
|
+
<!-- skill-routing:end -->
|
|
82
94
|
|
|
83
95
|
## 표를 늘릴 때
|
|
84
96
|
|
|
85
|
-
여기 한 줄 추가하면 끝이다. `CLAUDE.md`와 `agent/SKILL.md`를 따라가서 고칠 필요가 없다 — 둘 다
|
|
97
|
+
에이전트 줄은 여기 한 줄 추가하면 끝이다. `CLAUDE.md`와 `agent/SKILL.md`를 따라가서 고칠 필요가 없다 — 둘 다
|
|
86
98
|
이 파일을 가리키기만 하기 때문이다.
|
|
87
99
|
|
|
100
|
+
스킬 줄은 여기서 고치지 않는다. 그 스킬 SKILL.md의 `triggers`를 고친다. 표에 처음 올리는 스킬이면
|
|
101
|
+
frontmatter에 `routing`도 둔다 (비고가 없으면 `routing: {}`). 그다음 `pnpm build:routing`으로 다시
|
|
102
|
+
뽑는다. 손으로 고치면 `pnpm gate`의 `verify:routing`에서 걸린다.
|
|
103
|
+
|
|
88
104
|
**특정 레포에서만 다른 데로 보내고 싶은 거라면 표를 고치지 않는다.** 그 레포 `gestalt.json`에
|
|
89
105
|
`delegate` 소스를 선언한다. 이 표는 게슈탈트가 설치된 모든 레포가 보는 자리라, 한 조직에서만
|
|
90
106
|
쓰는 스킬 이름이 들어가면 나머지 레포는 없는 데로 가라는 지시를 읽게 된다.
|
|
@@ -1,19 +1,48 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: architecture
|
|
3
3
|
version: '1.0.0'
|
|
4
|
-
description: '
|
|
4
|
+
description: '레포나 문서를 근거로 아키텍처 그림을 그린다. 코드 구조는 화면에서 API를 거쳐 DB 테이블까지 잇는 screen-chain과 트리거에서 배포 대상까지 잇는 deploy-path로 그린다. 서빙하는 도메인과 CDN, 버킷이 함께 실리고 하네스나 MCP 서버 레포는 스킬과 MCP 도구가 실린다("아키텍처 그려줘", "배포 경로 그려줘"). 호출 순서, 데이터 흐름, 업무 절차, 두 구조 비교는 질문별 그림과 흐름 그림으로 그린다. 네트워크나 데이터 파이프라인, 조직처럼 웹 제품이 아닌 대상도 같은 스킬로 그린다("시퀀스 그려줘", "네트워크 구성도 그려줘"). 문서 레포는 구멍과 오래된 문서가 보이는 지도로 그리고 바뀐 코드 때문에 손볼 문서도 고른다("문서 지도 그려줘", "이 PR로 손봐야 할 문서 찾아줘"). 근거 없는 연결은 실선으로 긋지 않는다. 세션이 쓴 IR을 서버가 검증해 단일 HTML로 그린다. 근거 없이 mermaid 같은 다이어그램만 원하면 이 스킬이 아니다. 설계 리뷰나 설계 자문은 architect 에이전트를 쓴다. 파일 단위 의존성과 영향 범위는 build-graph와 blast-radius를 쓴다.'
|
|
5
5
|
triggers:
|
|
6
|
+
# 코드 구조 그림
|
|
6
7
|
- 'architecture'
|
|
7
8
|
- '아키텍처 그려줘'
|
|
8
9
|
- '아키텍처 뷰'
|
|
9
10
|
- '화면에서 DB까지'
|
|
11
|
+
- '이 화면이 어떤 API를 부르는지 그려줘'
|
|
10
12
|
- '배포 경로 그려줘'
|
|
11
13
|
- 'CI/CD 경로 그려줘'
|
|
14
|
+
- '서빙 인프라 그려줘'
|
|
15
|
+
- '하네스 구조 그려줘'
|
|
16
|
+
- '스킬이랑 MCP 도구 관계 그려줘'
|
|
17
|
+
# 질문별 그림과 흐름 그림
|
|
18
|
+
- '시퀀스 그려줘'
|
|
19
|
+
- '호출 순서 그려줘'
|
|
20
|
+
- '데이터 흐름 그려줘'
|
|
21
|
+
- '데이터 리니지 그려줘'
|
|
22
|
+
- '업무 흐름 그려줘'
|
|
23
|
+
- '결재 절차 그려줘'
|
|
24
|
+
- '둘 구조 비교해서 그려줘'
|
|
25
|
+
# 웹 제품이 아닌 대상
|
|
26
|
+
- '네트워크 구성도 그려줘'
|
|
27
|
+
- '인프라 구성도 그려줘'
|
|
28
|
+
- '조직도 그려줘'
|
|
29
|
+
- '업무 시스템 관계 그려줘'
|
|
30
|
+
# 문서 지도
|
|
31
|
+
- '문서 지도 그려줘'
|
|
32
|
+
- 'KB 레포 그려줘'
|
|
33
|
+
- '문서 구멍 찾아줘'
|
|
34
|
+
- '오래된 문서 찾아줘'
|
|
35
|
+
- '이 PR로 손봐야 할 문서 찾아줘'
|
|
36
|
+
- '코드 바뀐 걸로 낡은 문서 골라줘'
|
|
37
|
+
# 분석 합치기
|
|
38
|
+
- '아키텍처 그림 합쳐줘'
|
|
39
|
+
routing:
|
|
40
|
+
note: "맥락 소스 찾기 → 읽기 전용 걸러내기 → 탐색 → IR validate → 미해결 질문 → render. 문서 레포는 scan_docs → link_docs → render. 설계 리뷰나 자문이면 `architect`"
|
|
12
41
|
inputs:
|
|
13
42
|
view:
|
|
14
43
|
type: string
|
|
15
44
|
required: false
|
|
16
|
-
description: "'screen-chain' 또는 'deploy-path'. 비우면 사용자에게 묻는다. 둘 다 원하면 뷰마다 Step 0부터 따로 돈다"
|
|
45
|
+
description: "'screen-chain' 또는 'deploy-path'. 비우면 사용자에게 묻는다. 웹 제품이 아닌 대상을 팩으로 그릴 때는 묻지 않고 screen-chain으로 그린다. 문서 지도는 Step 0 start를 안 타므로 묻지 않는다. 둘 다 원하면 뷰마다 Step 0부터 따로 돈다"
|
|
17
46
|
repoRoot:
|
|
18
47
|
type: string
|
|
19
48
|
required: false
|
|
@@ -51,7 +80,7 @@ outputs:
|
|
|
51
80
|
|
|
52
81
|
AI 하네스나 MCP 서버 레포도 screen-chain으로 그린다. 화면 자리에 스킬이 서고 API 자리에 MCP 도구가 선다 ([3-4](#3-4-ai-하네스와-mcp-서버-레포)).
|
|
53
82
|
|
|
54
|
-
한 번 실행에 뷰 하나를 그린다. 사용자가 뷰를 말하지 않았으면 어느 쪽인지 묻는다. 둘 다 원하면 뷰마다 Step 0부터 따로 돈다.
|
|
83
|
+
한 번 실행에 뷰 하나를 그린다. 사용자가 뷰를 말하지 않았으면 어느 쪽인지 묻는다. 물을 때는 `screen-chain`, `deploy-path` 이름을 꺼내지 않고 무엇을 그리는지로 풀어 묻는다 (예: "화면부터 DB까지 이어지는 호출 흐름을 그릴까요, 코드가 빌드돼 배포되는 경로를 그릴까요?"). 둘 다 원하면 뷰마다 Step 0부터 따로 돈다.
|
|
55
84
|
|
|
56
85
|
웹 제품이 아닌 대상도 screen-chain 뷰로 그린다. 네트워크나 데이터 파이프라인, 조직과 업무 시스템은 IR에 [어휘 팩](#어휘-팩을-적는다)을 적어 그 분야의 kind를 쓴다. 이때는 뷰를 묻지 않는다.
|
|
57
86
|
|
|
@@ -419,7 +448,7 @@ FE가 부르는 BE 레포나 배포 매니페스트 레포처럼 지금 레포
|
|
|
419
448
|
2. 이 머신에 있는 로컬 클론 (같은 remote org 아래 체크아웃)
|
|
420
449
|
3. `gh repo list <org>`로 본 같은 org의 레포 목록
|
|
421
450
|
|
|
422
|
-
**후보가 0개거나 2개 이상이면 사용자에게 묻는다.** 이름이 비슷하다고 고르지 않는다. 확정한 레포는 IR의 `repos`에 `{ id, name, root, remote? }`로 넣는다. `root`는 로컬 경로다. 로컬 클론을 마련하는 법은 아래 [로컬 클론 받기](#로컬-클론-받기)를 따른다.
|
|
451
|
+
**후보가 0개거나 2개 이상이면 사용자에게 묻는다.** 이름이 비슷하다고 고르지 않는다. 확정한 레포는 IR의 `repos`에 `{ id, name, root, remote? }`로 넣는다. `root`는 로컬 경로다. 로컬 클론을 마련하는 법은 아래 [로컬 클론 받기](#로컬-클론-받기)를, 이미 있는 클론을 읽는 법은 [사용자가 체크아웃해 둔 레포](#사용자가-체크아웃해-둔-레포)를 따른다.
|
|
423
452
|
|
|
424
453
|
**예외가 하나 있다. 근거 줄이 다음 레포를 하나로 가리키면 묻지 않고 따라간다.** Step 3-3의 `gateway` 사슬이 그렇다. 라우트의 `uri` 줄이나 설정 서버 import 줄이 다음 레포를 정하므로 후보가 하나인 경우다. 로컬 클론이 없으면 이때도 아래대로 받는다.
|
|
425
454
|
|
|
@@ -429,12 +458,36 @@ FE가 부르는 BE 레포나 배포 매니페스트 레포처럼 지금 레포
|
|
|
429
458
|
|
|
430
459
|
- 위치는 분석 대상 레포 밖의 캐시 `~/.gestalt/architecture/clones/<host>/<org>/<repo>`다. 분석 대상 레포의 `.gestalt/` 아래에 받으면 그 레포가 `.gestalt`를 ignore하지 않을 때 받은 레포가 커밋에 섞인다.
|
|
431
460
|
- `git clone --depth 1`로 받는다. SSH로 받을 수 있으면 SSH를 쓴다.
|
|
432
|
-
- 캐시에 이미 있으면
|
|
433
|
-
|
|
461
|
+
- 캐시에 이미 있으면 아래 명령으로 원격 기본 브랜치의 최신 커밋에 맞춘 뒤 다시 쓴다. `origin HEAD`가 원격 기본 브랜치를 가리키므로 브랜치 이름을 몰라도 된다. 캐시는 게슈탈트만 쓰는 자리라 `reset --hard`로 덮어도 잃을 게 없다. shallow 클론이라 `git pull`은 쓰지 않는다.
|
|
462
|
+
|
|
463
|
+
```bash
|
|
464
|
+
git -C <캐시 경로> fetch --depth 1 origin HEAD
|
|
465
|
+
git -C <캐시 경로> reset --hard FETCH_HEAD
|
|
466
|
+
```
|
|
467
|
+
|
|
434
468
|
- 받은 레포는 `repos`의 `root`에 그 캐시 경로로 넣는다.
|
|
435
469
|
- 권한이 없거나 404라서 받지 못하면 그 사실을 미해결 질문으로 남긴다.
|
|
436
470
|
- 받은 레포 목록은 Step 8 보고에서 알린다.
|
|
437
471
|
|
|
472
|
+
### 사용자가 체크아웃해 둔 레포
|
|
473
|
+
|
|
474
|
+
사용자가 작업하던 클론은 기능 브랜치에 있거나 pull을 안 해서 기본 브랜치보다 뒤처져 있을 수 있다. 그대로 읽으면 그 시점 코드로 그림이 나온다. 그래서 작업 트리는 그대로 두고 원격 기본 브랜치를 따로 꺼내 읽는다.
|
|
475
|
+
|
|
476
|
+
1. `git -C <클론> fetch origin`으로 원격 ref만 갱신한다. 작업 트리와 지금 브랜치는 바뀌지 않는다.
|
|
477
|
+
2. `git -C <클론> symbolic-ref --short refs/remotes/origin/HEAD`로 기본 브랜치를 찾는다 (예: `origin/main`). 비어 있으면 `git -C <클론> remote set-head origin --auto`를 먼저 부른다.
|
|
478
|
+
3. 지금 체크아웃이 그 커밋과 같으면(`git -C <클론> rev-parse HEAD`가 같으면) 클론을 그대로 읽고 `root`에 클론 경로를 넣는다.
|
|
479
|
+
4. 다르면 클론 밖에 분리된 워크트리를 만들어 읽는다. `root`에는 그 워크트리 경로를 넣는다.
|
|
480
|
+
|
|
481
|
+
```bash
|
|
482
|
+
git -C <클론> worktree add --detach ~/.gestalt/architecture/worktrees/<host>/<org>/<repo> <기본 브랜치>
|
|
483
|
+
```
|
|
484
|
+
|
|
485
|
+
이미 있으면 `git -C <워크트리> checkout --detach <기본 브랜치>`로 옮긴다. 워크트리는 `.git/worktrees/` 아래 메타데이터만 남기고 사용자의 브랜치와 작업 트리는 건드리지 않는다.
|
|
486
|
+
|
|
487
|
+
5. fetch가 권한이나 네트워크 문제로 실패하면 지금 체크아웃을 그대로 읽는다. 대신 읽은 브랜치 이름을 미해결 질문으로 남긴다 (예: "`org/api-server`는 원격을 못 받아 `feat/coupon` 브랜치로 읽었다").
|
|
488
|
+
|
|
489
|
+
사용자 클론에서 브랜치를 바꾸거나 pull, reset, stash를 하지 않는다. 작업 트리에 파일도 쓰지 않는다.
|
|
490
|
+
|
|
438
491
|
## Step 6 — IR 작성과 validate
|
|
439
492
|
|
|
440
493
|
`schemaPath`의 JSON Schema대로 IR을 쓴다. `schemaVersion`은 `"1.0.0"`이다.
|
|
@@ -675,6 +728,8 @@ render는 validate를 다시 하고 이전 실행 IR과 병합해 노드 id를
|
|
|
675
728
|
|
|
676
729
|
**드릴다운이면 `levels`를 요약해 먼저 안내한다.** 전체 1장, 서비스 몇 개, 기능영역 몇 개인지와 `htmlPath`를 알려준다. 조작법도 한두 줄 붙인다. 노드를 누르면 출처와 상세보기 버튼이 나오고 더블클릭하면 바로 들어간다. 브라우저 뒤로가기를 누르면 앞 화면으로 돌아온다. 전체 화면에서 Shift나 ⌘를 누른 채 두 노드를 고르면 그 사이 경로를 펼친다. 카드를 고르고 **포커스** 버튼이나 `F` 키를 누르면 그 노드와 위아래로 이어진 카드만 남는다. ✕나 ESC를 누르면 원래 그림에 돌아온다. 공유용을 원하면 `sharedHtmlPath`를 알려준다.
|
|
677
730
|
|
|
731
|
+
보고에서는 IR, 팩, kind, `projections` 같은 내부 용어를 그대로 쓰지 않는다. 그림 데이터, 분야 어휘, 노드 종류, 질문별 그림처럼 풀어 쓴다.
|
|
732
|
+
|
|
678
733
|
보고는 이 세 덩어리로 한다.
|
|
679
734
|
|
|
680
735
|
1. **stats**: `nodes`, `edges`, `drawnEdges`, `droppedEdges`, `unresolvedOpen`. screen-chain이면 `screenToEndpointRatio`(엔드포인트로 이어진 화면 비율)와 `endpointMatchRatio`(핸들러까지 이어진 엔드포인트 비율)도 적는다. 값이 `null`이면 분모가 0이라는 뜻이다. 흐름을 적었으면 `flows`, `drawnSteps`, `drawnTransitions`도 온다.
|
|
@@ -14,8 +14,8 @@ triggers:
|
|
|
14
14
|
- "무슨 뜻이야"
|
|
15
15
|
- "ELI5"
|
|
16
16
|
# 대상 지정
|
|
17
|
-
- "한테
|
|
18
|
-
- "에게
|
|
17
|
+
- "한테 설명해줘"
|
|
18
|
+
- "에게 설명해줘"
|
|
19
19
|
- "기획팀한테"
|
|
20
20
|
- "비개발자한테"
|
|
21
21
|
- "경영진 보고용으로 설명"
|
|
@@ -35,6 +35,8 @@ inputs:
|
|
|
35
35
|
outputs:
|
|
36
36
|
- explanation
|
|
37
37
|
- explain_check_report
|
|
38
|
+
routing:
|
|
39
|
+
note: "소스 확보 → 대상 확정 → explainer 위임 → explain-check → 재시도. 설명 문장만 빠르게 필요하면 `explainer` 에이전트"
|
|
38
40
|
---
|
|
39
41
|
|
|
40
42
|
# Explain Skill
|
|
@@ -13,7 +13,7 @@ triggers:
|
|
|
13
13
|
- "approve 날 때까지"
|
|
14
14
|
- "리뷰어로 끝까지"
|
|
15
15
|
- "재리뷰 반복"
|
|
16
|
-
- "PR
|
|
16
|
+
- "PR 계속 지켜봐줘"
|
|
17
17
|
inputs:
|
|
18
18
|
target:
|
|
19
19
|
type: string
|
|
@@ -38,6 +38,8 @@ outputs:
|
|
|
38
38
|
- finalDecision
|
|
39
39
|
- unresolvedAtEnd
|
|
40
40
|
- loopState
|
|
41
|
+
routing:
|
|
42
|
+
note: "리뷰 → 인라인 코멘트 → 판정 게시 → 대응 확인 → 재리뷰. **한 번 부르면 한 번 본다** — 이어 보려면 사람이 다시 부른다. 리뷰 한 번만이면 `review`, 내 PR을 밀어 올리는 쪽은 `ship`"
|
|
41
43
|
---
|
|
42
44
|
|
|
43
45
|
# Review Loop Skill
|
|
@@ -7,11 +7,9 @@ triggers:
|
|
|
7
7
|
- "ship"
|
|
8
8
|
- "PR 올릴 때까지"
|
|
9
9
|
- "리뷰 통과할 때까지"
|
|
10
|
-
- "리뷰 반복"
|
|
11
10
|
- "코파일럿 리뷰까지"
|
|
12
11
|
- "copilot 리뷰 받아줘"
|
|
13
12
|
- "draft PR 올리고 리뷰"
|
|
14
|
-
- "리뷰 루프 돌려줘"
|
|
15
13
|
inputs:
|
|
16
14
|
base:
|
|
17
15
|
type: string
|
|
@@ -36,6 +34,8 @@ outputs:
|
|
|
36
34
|
- copilotRounds
|
|
37
35
|
- unresolvedAtReady
|
|
38
36
|
- prState
|
|
37
|
+
routing:
|
|
38
|
+
note: "로컬 PR → 리뷰 수렴 루프 → 승인 → draft PR → Copilot 수렴 루프 → ready. 리뷰 한 번만이면 `review`"
|
|
39
39
|
---
|
|
40
40
|
|
|
41
41
|
# Ship Skill
|
package/dist/src/core/types.d.ts
CHANGED
|
@@ -93,6 +93,10 @@ export interface SkillFrontmatter {
|
|
|
93
93
|
triggers: string[];
|
|
94
94
|
inputs: Record<string, SkillInput>;
|
|
95
95
|
outputs: string[];
|
|
96
|
+
/** 있으면 proactive-routing.md 스킬 표에 triggers와 함께 실린다 */
|
|
97
|
+
routing?: {
|
|
98
|
+
note?: string;
|
|
99
|
+
};
|
|
96
100
|
}
|
|
97
101
|
export interface SkillInput {
|
|
98
102
|
type: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/skills/parser.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/skills/parser.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,YAAY,CAAC;AAkBpE,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,eAAe,CAuB/E"}
|
|
@@ -13,6 +13,7 @@ const skillFrontmatterSchema = z.object({
|
|
|
13
13
|
triggers: z.array(z.string()).default([]),
|
|
14
14
|
inputs: z.record(z.string(), skillInputSchema).default({}),
|
|
15
15
|
outputs: z.array(z.string()).default([]),
|
|
16
|
+
routing: z.object({ note: z.string().optional() }).optional(),
|
|
16
17
|
});
|
|
17
18
|
export function parseSkillMd(content, filePath) {
|
|
18
19
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/skills/parser.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACpC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CACpC,CAAC,CAAC;AAEH,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;IACpC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACnC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACzC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1D,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/skills/parser.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACpC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CACpC,CAAC,CAAC;AAEH,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;IACpC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACnC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACzC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1D,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACxC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC9D,CAAC,CAAC;AAEH,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,QAAgB;IAC5D,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,sBAAsB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAEtD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACnF,MAAM,IAAI,eAAe,CACvB,mCAAmC,QAAQ,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACrE,CAAC;QACJ,CAAC;QAED,OAAO;YACL,WAAW,EAAE,MAAM,CAAC,IAAwB;YAC5C,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;YACjB,QAAQ;SACT,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,eAAe;YAAE,MAAM,CAAC,CAAC;QAC1C,MAAM,IAAI,eAAe,CACvB,+BAA+B,QAAQ,KAAK,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CACzF,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -5,6 +5,10 @@ export interface SkillFrontmatter {
|
|
|
5
5
|
triggers: string[];
|
|
6
6
|
inputs: Record<string, SkillInputDef>;
|
|
7
7
|
outputs: string[];
|
|
8
|
+
/** 있으면 proactive-routing.md 스킬 표에 triggers와 함께 실린다 */
|
|
9
|
+
routing?: {
|
|
10
|
+
note?: string;
|
|
11
|
+
};
|
|
8
12
|
}
|
|
9
13
|
export interface SkillInputDef {
|
|
10
14
|
type: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/skills/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACtC,OAAO,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/skills/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACtC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,sDAAsD;IACtD,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,gBAAgB,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tienne/gestalt",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.90.1",
|
|
4
4
|
"description": "TypeScript AI Development Harness - Gestalt psychology-driven requirement clarification",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"scripts": {
|
|
30
30
|
"dev": "tsx bin/gestalt.ts",
|
|
31
31
|
"build": "tsc -p tsconfig.build.json",
|
|
32
|
-
"postbuild": "rm -rf dist/plugin && mkdir -p dist/plugin && cp -r plugin/agents plugin/role-agents plugin/review-agents plugin/personas plugin/skills dist/plugin/ && cp -r schemas dist/ && cp package.json dist/ && chmod +x dist/bin/gestalt.js dist/bin/gestalt-hook.js && pnpm run verify:plugin && pnpm run verify:rules && pnpm run verify:rule-overlap && pnpm run verify:output-style",
|
|
32
|
+
"postbuild": "rm -rf dist/plugin && mkdir -p dist/plugin && cp -r plugin/agents plugin/role-agents plugin/review-agents plugin/personas plugin/skills dist/plugin/ && cp -r schemas dist/ && cp package.json dist/ && chmod +x dist/bin/gestalt.js dist/bin/gestalt-hook.js && pnpm run verify:plugin && pnpm run verify:rules && pnpm run verify:rule-overlap && pnpm run verify:output-style && pnpm run verify:routing",
|
|
33
33
|
"verify:plugin": "tsx scripts/verify-plugin-assets.ts",
|
|
34
34
|
"prepublishOnly": "pnpm build",
|
|
35
35
|
"test": "vitest run",
|
|
@@ -45,10 +45,12 @@
|
|
|
45
45
|
"postversion": "pnpm run version:sync && pnpm run build:output-style",
|
|
46
46
|
"verify:rules": "tsx scripts/verify-rule-refs.ts",
|
|
47
47
|
"verify:rule-overlap": "tsx scripts/verify-rule-overlap.ts",
|
|
48
|
-
"gate": "pnpm typecheck && pnpm verify:rules && pnpm verify:rule-overlap && pnpm lint && pnpm format:check && pnpm build && pnpm test",
|
|
48
|
+
"gate": "pnpm typecheck && pnpm verify:rules && pnpm verify:rule-overlap && pnpm verify:routing && pnpm lint && pnpm format:check && pnpm build && pnpm test",
|
|
49
49
|
"humanize:baseline": "tsx scripts/humanize-baseline.ts",
|
|
50
50
|
"build:output-style": "tsx scripts/build-output-style.ts",
|
|
51
|
-
"verify:output-style": "tsx scripts/build-output-style.ts --dry-run"
|
|
51
|
+
"verify:output-style": "tsx scripts/build-output-style.ts --dry-run",
|
|
52
|
+
"build:routing": "tsx scripts/build-skill-routing.ts",
|
|
53
|
+
"verify:routing": "tsx scripts/build-skill-routing.ts --check"
|
|
52
54
|
},
|
|
53
55
|
"dependencies": {
|
|
54
56
|
"@anthropic-ai/sdk": "^0.39.0",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gestalt",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.90.1",
|
|
4
4
|
"description": "Gestalt psychology-driven AI development harness. Transforms scattered requirements into structured, validated specifications through interactive interviews.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "tienne"
|
package/plugin/.mcp.json
CHANGED
package/plugin/mcp.json
CHANGED
|
@@ -47,20 +47,15 @@
|
|
|
47
47
|
| README, API 문서, 가이드, 개발자 문서 작성 | `technical-writer` |
|
|
48
48
|
| 발표 슬라이드 콘텐츠·문구·데이터 요약·발표 노트 작성 | `presentation-writer` |
|
|
49
49
|
| 슬라이드 Reveal.js 구조·템플릿·비주얼 디자인 자문 | `presentation-designer` |
|
|
50
|
-
| 발표자료·슬라이드·프레젠테이션 제작 요청 ("발표자료 만들어줘", "슬라이드 만들어줘", "피치덱") | `presentation` 스킬 사용 (presentation-writer 콘텐츠 → 승인 단계 → presentation-designer 디자인 → Reveal.js HTML) |
|
|
51
50
|
| 시스템 설계, 아키텍처 리뷰, 설계 패턴 | `architect` |
|
|
52
|
-
| 근거 달린 아키텍처 그림 요청 ("아키텍처 그려줘", "화면에서 DB까지 그려줘", "배포 경로 그려줘") | `architecture` 스킬 사용 (맥락 소스 찾기 → 읽기 전용 걸러내기 → 탐색 → IR validate → 미해결 질문 → render). 설계 리뷰나 자문이면 `architect` |
|
|
53
51
|
| 보안 취약점, 인증/인가, 시크릿 노출 검토 | `security-reviewer` |
|
|
54
52
|
| 성능 병목, N+1, 메모리 누수 분석 | `performance-reviewer` |
|
|
55
53
|
| 코드 가독성, SOLID, 에러 처리 리뷰 | `quality-reviewer` |
|
|
56
54
|
| 테스트 케이스, 엣지 케이스, QA | `qa-engineer` |
|
|
57
55
|
| UX 문구 작성·교정, 버튼 텍스트, 에러 메시지, 토스트, 온보딩 카피 | `ux-writer` |
|
|
58
|
-
| 대상 지정해서 설명 요청 ("기획팀한테 설명해줘", "쉽게 풀어줘", "ELI5", "이 에러 뭐야") | `explain` 스킬 사용 (소스 확보 → 대상 확정 → explainer 위임 → explain-check → 재시도) |
|
|
59
56
|
| 설명 문장만 빠르게 필요할 때 | `explainer` 에이전트 |
|
|
60
57
|
| 슬랙·메신저 메시지 작성 또는 딱딱한/AI스러운 초안을 본인 말투로 다듬기 | `slack-messenger` |
|
|
61
|
-
| 슬랙 메시지 전송·예약 발송 요청 ("~라고 보내줘", "공지해줘", "예약 발송해줘") | `slack-send` 스킬 사용 (내부적으로 slack-messenger 다듬기 → 승인 단계 → 전송) |
|
|
62
58
|
| 지라 티켓 본문 작성·구조화 (제목, 설명, 완료 조건, 이슈타입 추천) | `jira-writer` |
|
|
63
|
-
| 지라 티켓 생성 요청 ("티켓 만들어줘", "이슈 생성해줘", "지라에 올려줘") | `jira-create` 스킬 사용 (내부적으로 jira-writer 구조화 → 프로젝트·필드 확정 → 승인 단계 → createJiraIssue) |
|
|
64
59
|
| UI, React, 접근성, 컴포넌트 설계 | `frontend-developer` — 단 레포가 이 범위를 `delegate`로 선언했으면 그쪽이 이긴다 (위 절) |
|
|
65
60
|
| UI·React 코드 리뷰, 접근성·번들 최적화 검토 | `frontend-reviewer` — 단 레포가 이 범위를 `delegate`로 선언했으면 그쪽이 이긴다 (위 절) |
|
|
66
61
|
| 주석 검토 ("주석 좀 봐줘", 불필요한 주석·죽은 코드·티켓 없는 TODO 확인) | `comment-reviewer` |
|
|
@@ -70,21 +65,42 @@
|
|
|
70
65
|
| 요구사항 정리, 로드맵, 유저 스토리 | `product-planner` |
|
|
71
66
|
| 성과 분석·KPI 해석·분기 성과 보고·회고 리포트 | `impact-writer` |
|
|
72
67
|
| 제안서, RFC, 의사결정 메모 등 설득·합의용 기획 산문 | `impact-writer` |
|
|
73
|
-
| 성과 보고서·제안서·RFC·회고 작성 요청 ("성과 보고서 써줘", "제안서 작성", "RFC 써줘") | `brief` 스킬 사용 |
|
|
74
68
|
| 기술 분석, 벤치마크, 사례 조사 | `researcher` |
|
|
75
69
|
| 내 PR에 달린 리뷰 코멘트 답변 본문 작성 (반영·대안·보류·질문) | `code-review-responder` |
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
70
|
+
|
|
71
|
+
## 스킬 트리거
|
|
72
|
+
|
|
73
|
+
요청 문구가 아래 표에 걸리면 그 스킬을 쓴다. 에이전트 표와 둘 다 걸리면 스킬이 먼저다 — 스킬은 에이전트를 부르기 전에 승인 단계나 게시 같은 절차를 붙인다.
|
|
74
|
+
|
|
75
|
+
<!-- skill-routing:start -->
|
|
76
|
+
<!-- 생성물이다. 각 SKILL.md의 triggers와 routing.note를 고치고 pnpm build:routing 으로 다시 뽑는다 -->
|
|
77
|
+
|
|
78
|
+
| 요청 문구 | 스킬 | 비고 |
|
|
79
|
+
|-----------|------|------|
|
|
80
|
+
| "architecture", "아키텍처 그려줘", "아키텍처 뷰", "화면에서 DB까지", "이 화면이 어떤 API를 부르는지 그려줘", "배포 경로 그려줘", "CI/CD 경로 그려줘", "서빙 인프라 그려줘", "하네스 구조 그려줘", "스킬이랑 MCP 도구 관계 그려줘", "시퀀스 그려줘", "호출 순서 그려줘", "데이터 흐름 그려줘", "데이터 리니지 그려줘", "업무 흐름 그려줘", "결재 절차 그려줘", "둘 구조 비교해서 그려줘", "네트워크 구성도 그려줘", "인프라 구성도 그려줘", "조직도 그려줘", "업무 시스템 관계 그려줘", "문서 지도 그려줘", "KB 레포 그려줘", "문서 구멍 찾아줘", "오래된 문서 찾아줘", "이 PR로 손봐야 할 문서 찾아줘", "코드 바뀐 걸로 낡은 문서 골라줘", "아키텍처 그림 합쳐줘" | `architecture` 스킬 사용 | 맥락 소스 찾기 → 읽기 전용 걸러내기 → 탐색 → IR validate → 미해결 질문 → render. 문서 레포는 scan_docs → link_docs → render. 설계 리뷰나 자문이면 `architect` |
|
|
81
|
+
| "성과 보고서", "성과 분석", "분기 리포트", "분기 보고", "KPI 리포트", "제안서 작성", "제안서 써줘", "RFC 써줘", "RFC 작성", "의사결정 메모", "회고 정리", "회고 써줘", "경영진 보고 자료", "성과 문서", "이 문서 다시 써줘", "보고서 보완" | `brief` 스킬 사용 | |
|
|
82
|
+
| "orca로 실행", "orca로 병렬", "워커로 뿌려", "터미널로 뿌려", "병렬 디스패치", "다른 에이전트로 실행", "codex로 실행", "워커 띄워서 실행" | `dispatch` 스킬 사용 | 런타임 감지 → 같은 워크트리에 터미널 → worker_done 대기 → ready 재계산. 런타임 없으면 execute의 기본 병렬 경로 |
|
|
83
|
+
| "설명해줘", "쉽게 풀어줘", "풀어서 설명", "이해하기 쉽게", "쉽게 말하면", "이거 뭐야", "이 에러 뭐야", "무슨 뜻이야", "ELI5", "한테 설명해줘", "에게 설명해줘", "기획팀한테", "비개발자한테", "경영진 보고용으로 설명" | `explain` 스킬 사용 | 소스 확보 → 대상 확정 → explainer 위임 → explain-check → 재시도. 설명 문장만 빠르게 필요하면 `explainer` 에이전트 |
|
|
84
|
+
| "지라 티켓", "지라 이슈", "티켓 만들어", "티켓 생성", "이슈 만들어", "이슈 생성", "지라에 올려", "지라에 등록", "백로그에 추가", "jira 티켓", "jira 이슈", "create jira" | `jira-create` 스킬 사용 | 내부적으로 jira-writer 구조화 → 프로젝트·필드 확정 → 승인 단계 → createJiraIssue |
|
|
85
|
+
| "PR 작성", "PR 만들어", "PR 써줘", "PR 올려", "풀리퀘", "풀 리퀘스트", "pull request", "create PR" | `pr` 스킬 사용 | 다른 레포의 PR 스킬과 이름이 겹치면 `gestalt:pr`로 부른다 |
|
|
86
|
+
| "발표자료 만들", "발표 자료 만들", "슬라이드 만들", "프레젠테이션 만들", "프레젠테이션 제작", "덱 만들", "피치덱", "피치 덱", "발표 슬라이드", "슬라이드 제작", "reveal 슬라이드" | `presentation` 스킬 사용 | presentation-writer 콘텐츠 → 승인 단계 → presentation-designer 디자인 → Reveal.js HTML |
|
|
87
|
+
| "PR 리뷰", "브랜치 리뷰", "코드 리뷰", "diff 리뷰", "review PR", "review branch", "이 브랜치 리뷰", "변경사항 리뷰", "PR에 코멘트 남겨줘", "리뷰 코멘트 달아줘", "PR에 인라인 코멘트", "리뷰 결과 PR에 게시", "주니어한테 설명하듯 리뷰", "신입이 읽을 리뷰" | `review` 스킬 사용 | |
|
|
88
|
+
| "리뷰 루프", "review loop", "리뷰하고 지켜봐줘", "리뷰 대응 모니터링", "대응하면 재리뷰", "리젝하고 지켜봐줘", "변경 요청 남겨줘", "approve 날 때까지", "리뷰어로 끝까지", "재리뷰 반복", "PR 계속 지켜봐줘" | `review-loop` 스킬 사용 | 리뷰 → 인라인 코멘트 → 판정 게시 → 대응 확인 → 재리뷰. **한 번 부르면 한 번 본다** — 이어 보려면 사람이 다시 부른다. 리뷰 한 번만이면 `review`, 내 PR을 밀어 올리는 쪽은 `ship` |
|
|
89
|
+
| "리뷰 반영", "리뷰 코멘트 답", "리뷰 답변", "리뷰 답글", "받은 리뷰 처리", "리뷰 피드백 반영", "PR 코멘트 처리", "리뷰 코멘트 처리", "코멘트에 답해줘", "reply to review", "리뷰어 의견 반영" | `review-reply` 스킬 사용 | 스레드 수집 → 유형 분류 승인 → 수정·커밋 → 답글 승인 → 게시 |
|
|
90
|
+
| "출하", "ship", "PR 올릴 때까지", "리뷰 통과할 때까지", "코파일럿 리뷰까지", "copilot 리뷰 받아줘", "draft PR 올리고 리뷰" | `ship` 스킬 사용 | 로컬 PR → 리뷰 수렴 루프 → 승인 → draft PR → Copilot 수렴 루프 → ready. 리뷰 한 번만이면 `review` |
|
|
91
|
+
| "슬랙 보내", "슬랙으로 보내", "메시지 보내", "메세지 보내", "전달해줘", "공지해줘", "공지 올려줘", "슬랙에 올려줘", "슬랙 메시지 전송", "예약 발송", "예약메세지", "예약 메시지", "이따 보내", "내일 아침에 보내", "9시에 보내" | `slack-send` 스킬 사용 | 내부적으로 slack-messenger 다듬기 → 승인 단계 → 전송 |
|
|
92
|
+
|
|
93
|
+
<!-- skill-routing:end -->
|
|
82
94
|
|
|
83
95
|
## 표를 늘릴 때
|
|
84
96
|
|
|
85
|
-
여기 한 줄 추가하면 끝이다. `CLAUDE.md`와 `agent/SKILL.md`를 따라가서 고칠 필요가 없다 — 둘 다
|
|
97
|
+
에이전트 줄은 여기 한 줄 추가하면 끝이다. `CLAUDE.md`와 `agent/SKILL.md`를 따라가서 고칠 필요가 없다 — 둘 다
|
|
86
98
|
이 파일을 가리키기만 하기 때문이다.
|
|
87
99
|
|
|
100
|
+
스킬 줄은 여기서 고치지 않는다. 그 스킬 SKILL.md의 `triggers`를 고친다. 표에 처음 올리는 스킬이면
|
|
101
|
+
frontmatter에 `routing`도 둔다 (비고가 없으면 `routing: {}`). 그다음 `pnpm build:routing`으로 다시
|
|
102
|
+
뽑는다. 손으로 고치면 `pnpm gate`의 `verify:routing`에서 걸린다.
|
|
103
|
+
|
|
88
104
|
**특정 레포에서만 다른 데로 보내고 싶은 거라면 표를 고치지 않는다.** 그 레포 `gestalt.json`에
|
|
89
105
|
`delegate` 소스를 선언한다. 이 표는 게슈탈트가 설치된 모든 레포가 보는 자리라, 한 조직에서만
|
|
90
106
|
쓰는 스킬 이름이 들어가면 나머지 레포는 없는 데로 가라는 지시를 읽게 된다.
|
|
@@ -1,19 +1,48 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: architecture
|
|
3
3
|
version: '1.0.0'
|
|
4
|
-
description: '
|
|
4
|
+
description: '레포나 문서를 근거로 아키텍처 그림을 그린다. 코드 구조는 화면에서 API를 거쳐 DB 테이블까지 잇는 screen-chain과 트리거에서 배포 대상까지 잇는 deploy-path로 그린다. 서빙하는 도메인과 CDN, 버킷이 함께 실리고 하네스나 MCP 서버 레포는 스킬과 MCP 도구가 실린다("아키텍처 그려줘", "배포 경로 그려줘"). 호출 순서, 데이터 흐름, 업무 절차, 두 구조 비교는 질문별 그림과 흐름 그림으로 그린다. 네트워크나 데이터 파이프라인, 조직처럼 웹 제품이 아닌 대상도 같은 스킬로 그린다("시퀀스 그려줘", "네트워크 구성도 그려줘"). 문서 레포는 구멍과 오래된 문서가 보이는 지도로 그리고 바뀐 코드 때문에 손볼 문서도 고른다("문서 지도 그려줘", "이 PR로 손봐야 할 문서 찾아줘"). 근거 없는 연결은 실선으로 긋지 않는다. 세션이 쓴 IR을 서버가 검증해 단일 HTML로 그린다. 근거 없이 mermaid 같은 다이어그램만 원하면 이 스킬이 아니다. 설계 리뷰나 설계 자문은 architect 에이전트를 쓴다. 파일 단위 의존성과 영향 범위는 build-graph와 blast-radius를 쓴다.'
|
|
5
5
|
triggers:
|
|
6
|
+
# 코드 구조 그림
|
|
6
7
|
- 'architecture'
|
|
7
8
|
- '아키텍처 그려줘'
|
|
8
9
|
- '아키텍처 뷰'
|
|
9
10
|
- '화면에서 DB까지'
|
|
11
|
+
- '이 화면이 어떤 API를 부르는지 그려줘'
|
|
10
12
|
- '배포 경로 그려줘'
|
|
11
13
|
- 'CI/CD 경로 그려줘'
|
|
14
|
+
- '서빙 인프라 그려줘'
|
|
15
|
+
- '하네스 구조 그려줘'
|
|
16
|
+
- '스킬이랑 MCP 도구 관계 그려줘'
|
|
17
|
+
# 질문별 그림과 흐름 그림
|
|
18
|
+
- '시퀀스 그려줘'
|
|
19
|
+
- '호출 순서 그려줘'
|
|
20
|
+
- '데이터 흐름 그려줘'
|
|
21
|
+
- '데이터 리니지 그려줘'
|
|
22
|
+
- '업무 흐름 그려줘'
|
|
23
|
+
- '결재 절차 그려줘'
|
|
24
|
+
- '둘 구조 비교해서 그려줘'
|
|
25
|
+
# 웹 제품이 아닌 대상
|
|
26
|
+
- '네트워크 구성도 그려줘'
|
|
27
|
+
- '인프라 구성도 그려줘'
|
|
28
|
+
- '조직도 그려줘'
|
|
29
|
+
- '업무 시스템 관계 그려줘'
|
|
30
|
+
# 문서 지도
|
|
31
|
+
- '문서 지도 그려줘'
|
|
32
|
+
- 'KB 레포 그려줘'
|
|
33
|
+
- '문서 구멍 찾아줘'
|
|
34
|
+
- '오래된 문서 찾아줘'
|
|
35
|
+
- '이 PR로 손봐야 할 문서 찾아줘'
|
|
36
|
+
- '코드 바뀐 걸로 낡은 문서 골라줘'
|
|
37
|
+
# 분석 합치기
|
|
38
|
+
- '아키텍처 그림 합쳐줘'
|
|
39
|
+
routing:
|
|
40
|
+
note: "맥락 소스 찾기 → 읽기 전용 걸러내기 → 탐색 → IR validate → 미해결 질문 → render. 문서 레포는 scan_docs → link_docs → render. 설계 리뷰나 자문이면 `architect`"
|
|
12
41
|
inputs:
|
|
13
42
|
view:
|
|
14
43
|
type: string
|
|
15
44
|
required: false
|
|
16
|
-
description: "'screen-chain' 또는 'deploy-path'. 비우면 사용자에게 묻는다. 둘 다 원하면 뷰마다 Step 0부터 따로 돈다"
|
|
45
|
+
description: "'screen-chain' 또는 'deploy-path'. 비우면 사용자에게 묻는다. 웹 제품이 아닌 대상을 팩으로 그릴 때는 묻지 않고 screen-chain으로 그린다. 문서 지도는 Step 0 start를 안 타므로 묻지 않는다. 둘 다 원하면 뷰마다 Step 0부터 따로 돈다"
|
|
17
46
|
repoRoot:
|
|
18
47
|
type: string
|
|
19
48
|
required: false
|
|
@@ -51,7 +80,7 @@ outputs:
|
|
|
51
80
|
|
|
52
81
|
AI 하네스나 MCP 서버 레포도 screen-chain으로 그린다. 화면 자리에 스킬이 서고 API 자리에 MCP 도구가 선다 ([3-4](#3-4-ai-하네스와-mcp-서버-레포)).
|
|
53
82
|
|
|
54
|
-
한 번 실행에 뷰 하나를 그린다. 사용자가 뷰를 말하지 않았으면 어느 쪽인지 묻는다. 둘 다 원하면 뷰마다 Step 0부터 따로 돈다.
|
|
83
|
+
한 번 실행에 뷰 하나를 그린다. 사용자가 뷰를 말하지 않았으면 어느 쪽인지 묻는다. 물을 때는 `screen-chain`, `deploy-path` 이름을 꺼내지 않고 무엇을 그리는지로 풀어 묻는다 (예: "화면부터 DB까지 이어지는 호출 흐름을 그릴까요, 코드가 빌드돼 배포되는 경로를 그릴까요?"). 둘 다 원하면 뷰마다 Step 0부터 따로 돈다.
|
|
55
84
|
|
|
56
85
|
웹 제품이 아닌 대상도 screen-chain 뷰로 그린다. 네트워크나 데이터 파이프라인, 조직과 업무 시스템은 IR에 [어휘 팩](#어휘-팩을-적는다)을 적어 그 분야의 kind를 쓴다. 이때는 뷰를 묻지 않는다.
|
|
57
86
|
|
|
@@ -419,7 +448,7 @@ FE가 부르는 BE 레포나 배포 매니페스트 레포처럼 지금 레포
|
|
|
419
448
|
2. 이 머신에 있는 로컬 클론 (같은 remote org 아래 체크아웃)
|
|
420
449
|
3. `gh repo list <org>`로 본 같은 org의 레포 목록
|
|
421
450
|
|
|
422
|
-
**후보가 0개거나 2개 이상이면 사용자에게 묻는다.** 이름이 비슷하다고 고르지 않는다. 확정한 레포는 IR의 `repos`에 `{ id, name, root, remote? }`로 넣는다. `root`는 로컬 경로다. 로컬 클론을 마련하는 법은 아래 [로컬 클론 받기](#로컬-클론-받기)를 따른다.
|
|
451
|
+
**후보가 0개거나 2개 이상이면 사용자에게 묻는다.** 이름이 비슷하다고 고르지 않는다. 확정한 레포는 IR의 `repos`에 `{ id, name, root, remote? }`로 넣는다. `root`는 로컬 경로다. 로컬 클론을 마련하는 법은 아래 [로컬 클론 받기](#로컬-클론-받기)를, 이미 있는 클론을 읽는 법은 [사용자가 체크아웃해 둔 레포](#사용자가-체크아웃해-둔-레포)를 따른다.
|
|
423
452
|
|
|
424
453
|
**예외가 하나 있다. 근거 줄이 다음 레포를 하나로 가리키면 묻지 않고 따라간다.** Step 3-3의 `gateway` 사슬이 그렇다. 라우트의 `uri` 줄이나 설정 서버 import 줄이 다음 레포를 정하므로 후보가 하나인 경우다. 로컬 클론이 없으면 이때도 아래대로 받는다.
|
|
425
454
|
|
|
@@ -429,12 +458,36 @@ FE가 부르는 BE 레포나 배포 매니페스트 레포처럼 지금 레포
|
|
|
429
458
|
|
|
430
459
|
- 위치는 분석 대상 레포 밖의 캐시 `~/.gestalt/architecture/clones/<host>/<org>/<repo>`다. 분석 대상 레포의 `.gestalt/` 아래에 받으면 그 레포가 `.gestalt`를 ignore하지 않을 때 받은 레포가 커밋에 섞인다.
|
|
431
460
|
- `git clone --depth 1`로 받는다. SSH로 받을 수 있으면 SSH를 쓴다.
|
|
432
|
-
- 캐시에 이미 있으면
|
|
433
|
-
|
|
461
|
+
- 캐시에 이미 있으면 아래 명령으로 원격 기본 브랜치의 최신 커밋에 맞춘 뒤 다시 쓴다. `origin HEAD`가 원격 기본 브랜치를 가리키므로 브랜치 이름을 몰라도 된다. 캐시는 게슈탈트만 쓰는 자리라 `reset --hard`로 덮어도 잃을 게 없다. shallow 클론이라 `git pull`은 쓰지 않는다.
|
|
462
|
+
|
|
463
|
+
```bash
|
|
464
|
+
git -C <캐시 경로> fetch --depth 1 origin HEAD
|
|
465
|
+
git -C <캐시 경로> reset --hard FETCH_HEAD
|
|
466
|
+
```
|
|
467
|
+
|
|
434
468
|
- 받은 레포는 `repos`의 `root`에 그 캐시 경로로 넣는다.
|
|
435
469
|
- 권한이 없거나 404라서 받지 못하면 그 사실을 미해결 질문으로 남긴다.
|
|
436
470
|
- 받은 레포 목록은 Step 8 보고에서 알린다.
|
|
437
471
|
|
|
472
|
+
### 사용자가 체크아웃해 둔 레포
|
|
473
|
+
|
|
474
|
+
사용자가 작업하던 클론은 기능 브랜치에 있거나 pull을 안 해서 기본 브랜치보다 뒤처져 있을 수 있다. 그대로 읽으면 그 시점 코드로 그림이 나온다. 그래서 작업 트리는 그대로 두고 원격 기본 브랜치를 따로 꺼내 읽는다.
|
|
475
|
+
|
|
476
|
+
1. `git -C <클론> fetch origin`으로 원격 ref만 갱신한다. 작업 트리와 지금 브랜치는 바뀌지 않는다.
|
|
477
|
+
2. `git -C <클론> symbolic-ref --short refs/remotes/origin/HEAD`로 기본 브랜치를 찾는다 (예: `origin/main`). 비어 있으면 `git -C <클론> remote set-head origin --auto`를 먼저 부른다.
|
|
478
|
+
3. 지금 체크아웃이 그 커밋과 같으면(`git -C <클론> rev-parse HEAD`가 같으면) 클론을 그대로 읽고 `root`에 클론 경로를 넣는다.
|
|
479
|
+
4. 다르면 클론 밖에 분리된 워크트리를 만들어 읽는다. `root`에는 그 워크트리 경로를 넣는다.
|
|
480
|
+
|
|
481
|
+
```bash
|
|
482
|
+
git -C <클론> worktree add --detach ~/.gestalt/architecture/worktrees/<host>/<org>/<repo> <기본 브랜치>
|
|
483
|
+
```
|
|
484
|
+
|
|
485
|
+
이미 있으면 `git -C <워크트리> checkout --detach <기본 브랜치>`로 옮긴다. 워크트리는 `.git/worktrees/` 아래 메타데이터만 남기고 사용자의 브랜치와 작업 트리는 건드리지 않는다.
|
|
486
|
+
|
|
487
|
+
5. fetch가 권한이나 네트워크 문제로 실패하면 지금 체크아웃을 그대로 읽는다. 대신 읽은 브랜치 이름을 미해결 질문으로 남긴다 (예: "`org/api-server`는 원격을 못 받아 `feat/coupon` 브랜치로 읽었다").
|
|
488
|
+
|
|
489
|
+
사용자 클론에서 브랜치를 바꾸거나 pull, reset, stash를 하지 않는다. 작업 트리에 파일도 쓰지 않는다.
|
|
490
|
+
|
|
438
491
|
## Step 6 — IR 작성과 validate
|
|
439
492
|
|
|
440
493
|
`schemaPath`의 JSON Schema대로 IR을 쓴다. `schemaVersion`은 `"1.0.0"`이다.
|
|
@@ -675,6 +728,8 @@ render는 validate를 다시 하고 이전 실행 IR과 병합해 노드 id를
|
|
|
675
728
|
|
|
676
729
|
**드릴다운이면 `levels`를 요약해 먼저 안내한다.** 전체 1장, 서비스 몇 개, 기능영역 몇 개인지와 `htmlPath`를 알려준다. 조작법도 한두 줄 붙인다. 노드를 누르면 출처와 상세보기 버튼이 나오고 더블클릭하면 바로 들어간다. 브라우저 뒤로가기를 누르면 앞 화면으로 돌아온다. 전체 화면에서 Shift나 ⌘를 누른 채 두 노드를 고르면 그 사이 경로를 펼친다. 카드를 고르고 **포커스** 버튼이나 `F` 키를 누르면 그 노드와 위아래로 이어진 카드만 남는다. ✕나 ESC를 누르면 원래 그림에 돌아온다. 공유용을 원하면 `sharedHtmlPath`를 알려준다.
|
|
677
730
|
|
|
731
|
+
보고에서는 IR, 팩, kind, `projections` 같은 내부 용어를 그대로 쓰지 않는다. 그림 데이터, 분야 어휘, 노드 종류, 질문별 그림처럼 풀어 쓴다.
|
|
732
|
+
|
|
678
733
|
보고는 이 세 덩어리로 한다.
|
|
679
734
|
|
|
680
735
|
1. **stats**: `nodes`, `edges`, `drawnEdges`, `droppedEdges`, `unresolvedOpen`. screen-chain이면 `screenToEndpointRatio`(엔드포인트로 이어진 화면 비율)와 `endpointMatchRatio`(핸들러까지 이어진 엔드포인트 비율)도 적는다. 값이 `null`이면 분모가 0이라는 뜻이다. 흐름을 적었으면 `flows`, `drawnSteps`, `drawnTransitions`도 온다.
|
|
@@ -14,8 +14,8 @@ triggers:
|
|
|
14
14
|
- "무슨 뜻이야"
|
|
15
15
|
- "ELI5"
|
|
16
16
|
# 대상 지정
|
|
17
|
-
- "한테
|
|
18
|
-
- "에게
|
|
17
|
+
- "한테 설명해줘"
|
|
18
|
+
- "에게 설명해줘"
|
|
19
19
|
- "기획팀한테"
|
|
20
20
|
- "비개발자한테"
|
|
21
21
|
- "경영진 보고용으로 설명"
|
|
@@ -35,6 +35,8 @@ inputs:
|
|
|
35
35
|
outputs:
|
|
36
36
|
- explanation
|
|
37
37
|
- explain_check_report
|
|
38
|
+
routing:
|
|
39
|
+
note: "소스 확보 → 대상 확정 → explainer 위임 → explain-check → 재시도. 설명 문장만 빠르게 필요하면 `explainer` 에이전트"
|
|
38
40
|
---
|
|
39
41
|
|
|
40
42
|
# Explain Skill
|
|
@@ -13,7 +13,7 @@ triggers:
|
|
|
13
13
|
- "approve 날 때까지"
|
|
14
14
|
- "리뷰어로 끝까지"
|
|
15
15
|
- "재리뷰 반복"
|
|
16
|
-
- "PR
|
|
16
|
+
- "PR 계속 지켜봐줘"
|
|
17
17
|
inputs:
|
|
18
18
|
target:
|
|
19
19
|
type: string
|
|
@@ -38,6 +38,8 @@ outputs:
|
|
|
38
38
|
- finalDecision
|
|
39
39
|
- unresolvedAtEnd
|
|
40
40
|
- loopState
|
|
41
|
+
routing:
|
|
42
|
+
note: "리뷰 → 인라인 코멘트 → 판정 게시 → 대응 확인 → 재리뷰. **한 번 부르면 한 번 본다** — 이어 보려면 사람이 다시 부른다. 리뷰 한 번만이면 `review`, 내 PR을 밀어 올리는 쪽은 `ship`"
|
|
41
43
|
---
|
|
42
44
|
|
|
43
45
|
# Review Loop Skill
|
|
@@ -7,11 +7,9 @@ triggers:
|
|
|
7
7
|
- "ship"
|
|
8
8
|
- "PR 올릴 때까지"
|
|
9
9
|
- "리뷰 통과할 때까지"
|
|
10
|
-
- "리뷰 반복"
|
|
11
10
|
- "코파일럿 리뷰까지"
|
|
12
11
|
- "copilot 리뷰 받아줘"
|
|
13
12
|
- "draft PR 올리고 리뷰"
|
|
14
|
-
- "리뷰 루프 돌려줘"
|
|
15
13
|
inputs:
|
|
16
14
|
base:
|
|
17
15
|
type: string
|
|
@@ -36,6 +34,8 @@ outputs:
|
|
|
36
34
|
- copilotRounds
|
|
37
35
|
- unresolvedAtReady
|
|
38
36
|
- prState
|
|
37
|
+
routing:
|
|
38
|
+
note: "로컬 PR → 리뷰 수렴 루프 → 승인 → draft PR → Copilot 수렴 루프 → ready. 리뷰 한 번만이면 `review`"
|
|
39
39
|
---
|
|
40
40
|
|
|
41
41
|
# Ship Skill
|