@tienne/gestalt 0.117.0 → 0.118.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/dist/package.json +1 -1
- package/dist/plugin/role-agents/lens-reader/AGENT.md +1 -1
- package/dist/plugin/role-agents/video-summarizer/AGENT.md +10 -4
- package/dist/plugin/skills/video-digest/SKILL.md +2 -1
- package/dist/plugin/skills/video-digest/templates/visual.md +2 -0
- package/dist/src/digest/blocks.d.ts +1330 -280
- package/dist/src/digest/blocks.d.ts.map +1 -1
- package/dist/src/digest/diagram-schema.d.ts +239 -1
- package/dist/src/digest/diagram-schema.d.ts.map +1 -1
- package/dist/src/digest/diagram-schema.js +27 -0
- package/dist/src/digest/diagram-schema.js.map +1 -1
- package/dist/src/digest/lint-extension.d.ts +4 -1
- package/dist/src/digest/lint-extension.d.ts.map +1 -1
- package/dist/src/digest/lint-extension.js +80 -1
- package/dist/src/digest/lint-extension.js.map +1 -1
- package/dist/src/digest/lint.js +1 -1
- package/dist/src/digest/lint.js.map +1 -1
- package/dist/src/digest/render-blocks.d.ts +4 -1
- package/dist/src/digest/render-blocks.d.ts.map +1 -1
- package/dist/src/digest/render-blocks.js +43 -3
- package/dist/src/digest/render-blocks.js.map +1 -1
- package/dist/src/digest/render-html.d.ts.map +1 -1
- package/dist/src/digest/render-html.js +60 -4
- package/dist/src/digest/render-html.js.map +1 -1
- package/dist/src/digest/render-lens.d.ts +1 -1
- package/dist/src/digest/render-lens.d.ts.map +1 -1
- package/dist/src/digest/render-lens.js +1 -0
- package/dist/src/digest/render-lens.js.map +1 -1
- package/dist/src/digest/schema.d.ts +3250 -478
- package/dist/src/digest/schema.d.ts.map +1 -1
- package/dist/src/digest/schema.js +1 -1
- package/dist/src/digest/svg.d.ts +28 -0
- package/dist/src/digest/svg.d.ts.map +1 -1
- package/dist/src/digest/svg.js +196 -12
- package/dist/src/digest/svg.js.map +1 -1
- package/dist/src/digest/theme-diary.d.ts +1 -0
- package/dist/src/digest/theme-diary.d.ts.map +1 -1
- package/dist/src/digest/theme-diary.js +2 -1
- package/dist/src/digest/theme-diary.js.map +1 -1
- package/dist/src/digest/viewer-js.d.ts.map +1 -1
- package/dist/src/digest/viewer-js.js +41 -0
- package/dist/src/digest/viewer-js.js.map +1 -1
- package/package.json +1 -1
- package/plugin/.codex-plugin/plugin.json +1 -1
- package/plugin/.mcp.json +1 -1
- package/plugin/mcp.json +1 -1
- package/plugin/role-agents/lens-reader/AGENT.md +1 -1
- package/plugin/role-agents/video-summarizer/AGENT.md +10 -4
- package/plugin/skills/video-digest/SKILL.md +2 -1
- package/plugin/skills/video-digest/templates/visual.md +2 -0
package/dist/package.json
CHANGED
|
@@ -243,7 +243,7 @@ video-digest 리포트와 같은 꼴에 렌즈 칸을 더한다. 영상 칸 `fra
|
|
|
243
243
|
|
|
244
244
|
논문은 보통 문제 제기, 방법, 실험 결과, 논의와 한계 순으로 대섹션을 나눈다. 원문 절 번호를 그대로 따를 필요는 없다.
|
|
245
245
|
|
|
246
|
-
대섹션 `diagram`은 video-digest와 같은
|
|
246
|
+
대섹션 `diagram`은 video-digest와 같은 열한 종류(`flow`, `cycle`, `compare`, `tree`, `timeline`, `matrix`, `causal`, `beforeAfter`, `hub`, `stat`, `pickGrid`)를 쓸 수 있다. `stat`의 `value`는 원문 표나 본문의 숫자를 글자 그대로 옮기고 그 숫자가 나온 문단에 `cite`를 단다. 원문 그림을 다시 그리는 데 쓰지 않는다. 원문 그림은 `figures`로 싣는다.
|
|
247
247
|
|
|
248
248
|
## 키워드
|
|
249
249
|
|
|
@@ -90,7 +90,7 @@ You are the Video Summarizer role agent.
|
|
|
90
90
|
|
|
91
91
|
대섹션에 `diagram`을 하나 둘 수 있다. 그림은 렌더러가 그린다. 너는 구조만 JSON으로 쓰고 SVG나 HTML은 쓰지 않는다.
|
|
92
92
|
|
|
93
|
-
도식은 아끼지 않는다. 단계, 고리, 견주기, 가지, 시간 흐름, 원인과 결과, 바뀌기 전과
|
|
93
|
+
도식은 아끼지 않는다. 단계, 고리, 견주기, 가지, 시간 흐름, 원인과 결과, 바뀌기 전과 후, 한 중심에 딸린 여러 요소, 숫자 하나에 담기는 결론, 여러 후보 중 고른 몇 개 가운데 하나라도 있는 대섹션이면 붙인다. 리포트마다 아래 개수를 채우는 게 기본이다. 모자라면 merge가 `DIAGRAM_TOO_FEW` 경고를 낸다. 경고라서 막지는 않는다. 잡담처럼 그릴 구조가 정말 없는 대섹션에 억지로 붙이지는 않는다.
|
|
94
94
|
|
|
95
95
|
| 리포트 옵션 | 권하는 도식 수 |
|
|
96
96
|
| ------------------ | ---------------------- |
|
|
@@ -108,18 +108,24 @@ You are the Video Summarizer role agent.
|
|
|
108
108
|
| `matrix` | `{ "kind": "matrix", "caption"?, "x": { "low", "high" }, "y": { "low", "high" }, "cells": [[노드 0~4개] × 4] }` | 두 기준으로 나눈 네 칸 |
|
|
109
109
|
| `causal` | `{ "kind": "causal", "caption"?, "inputs": [노드 0~6개], "center": 노드, "outputs": [노드 0~6개] }` | 여러 원인이 모이고 결과가 퍼짐 |
|
|
110
110
|
| `beforeAfter` | `{ "kind": "beforeAfter", "caption"?, "before": { "title"?, "items": [노드 1~6개] }, "after": 같은 꼴 }` | 바뀌기 전과 뒤를 화살표로 이어 보여줌 |
|
|
111
|
+
| `hub` | `{ "kind": "hub", "caption"?, "center": 노드, "satellites": [{ "label", "cite"?, "focus"? } 2~8개] }` | 한 중심에 여러 요소가 딸림 |
|
|
112
|
+
| `stat` | `{ "kind": "stat", "caption"?, "value", "label", "cite"? }` | 대섹션을 숫자 하나가 요약함 |
|
|
113
|
+
| `pickGrid` | `{ "kind": "pickGrid", "caption"?, "cells": [{ "label", "cite"?, "picked"? } 4~16개] }` | 여러 후보 중 일부만 고름 |
|
|
111
114
|
|
|
112
115
|
노드는 `{ "label", "cite"? }`이고 트리 노드는 여기에 `children`이 붙는다. `columns`는 2~4개다.
|
|
113
116
|
|
|
114
117
|
- `flow`와 `timeline`을 가르는 기준은 시점이다. 영상이 "2015년", "창업 3년 차"처럼 때를 말하면 `timeline`이고 `when`에 그 말을 적는다. 재생 시각은 `cite`에 이미 들어 있으니 `when`에 적지 않는다.
|
|
115
118
|
- `matrix`의 `cells`는 왼쪽 위, 오른쪽 위, 왼쪽 아래, 오른쪽 아래 순서다. 위가 `y.high`, 오른쪽이 `x.high`다. 네 칸이 다 비면 lint가 `DIAGRAM_EMPTY`로 막는다.
|
|
116
119
|
- `causal`은 `inputs`와 `outputs` 중 하나는 채운다. 둘 다 비면 `DIAGRAM_EMPTY`다.
|
|
120
|
+
- `hub`는 중심에 딸린 요소가 둘 이상이고 서로 순서가 없을 때 쓴다. 순서가 있으면 `flow`, 중심에 모였다 퍼지면 `causal`이다. `focus: true`는 영상이 특히 힘준 위성 하나에만 단다. 둘 이상이면 lint가 `DIAGRAM_FOCUS_MULTI`로 막는다.
|
|
121
|
+
- `stat`의 `value`는 영상이 말한 숫자와 단위를 글자 그대로 옮긴다("37%", "5천만 명"). 반올림하거나 단위를 바꾸지 않는다. 한 줄에 안 들어갈 만큼 길면(한글 9자 남짓) `DIAGRAM_STAT_LONG`, `cite`가 없으면 `DIAGRAM_STAT_NO_CITE` 경고가 난다. 숫자가 나온 문장에 `cite`를 단다. 설명은 `label`에 짧게 쓴다.
|
|
122
|
+
- `pickGrid`는 영상이 여러 후보를 늘어놓고 그중 몇 개만 골랐을 때 쓴다. 후보를 모두 `cells`에 적고 고른 칸에만 `picked: true`를 단다. 하나도 안 달면 `DIAGRAM_PICK_NONE`, 전부 달면 `DIAGRAM_PICK_ALL`로 막는다. 절반을 넘으면 `DIAGRAM_PICK_MANY` 경고가 난다. 열 수는 렌더러가 칸 수로 정하니 적지 않는다.
|
|
117
123
|
- 같은 리포트에서 한 종류만 이어 쓰지 않는다. 대섹션마다 내용의 모양에 맞는 종류를 고른다.
|
|
118
124
|
- `label`은 짧은 명사구로 쓴다. 한글 12자를 넘기면 그림에서 말줄임표로 잘리고 뷰어의 목록 보기에서만 다 보인다.
|
|
119
125
|
- 노드 `cite`는 그 대섹션 범위 안이어야 한다. 밖이면 lint가 `DIAGRAM_CITE_OUT_OF_SECTION`으로 막는다.
|
|
120
|
-
- 도식 안의 글자(`label`, `caption`, 열 `title`, `when`, 축 이름, 전후 `title`)에는 마커를 쓰지 않는다(`TITLE_MARKER`).
|
|
126
|
+
- 도식 안의 글자(`label`, `caption`, 열 `title`, `when`, 축 이름, 전후 `title`, `stat`의 `value`)에는 마커를 쓰지 않는다(`TITLE_MARKER`).
|
|
121
127
|
- `tree`는 루트 아래 3단까지, 노드 30개까지다(`DIAGRAM_DEPTH`, `DIAGRAM_SIZE`).
|
|
122
|
-
- 도식 글자도 스킬이 윤문할 때 따로 다듬지만 원문보다 길어진 라벨은 되돌린다. 처음부터 문체 규칙을 지켜 짧은 명사구로 쓴다.
|
|
128
|
+
- 도식 글자도 스킬이 윤문할 때 따로 다듬지만 원문보다 길어진 라벨은 되돌린다. 처음부터 문체 규칙을 지켜 짧은 명사구로 쓴다. `stat`의 `value`는 윤문 대상이어도 숫자를 바꾸지 않는다.
|
|
123
129
|
|
|
124
130
|
### 소섹션 장면
|
|
125
131
|
|
|
@@ -259,7 +265,7 @@ You are the Video Summarizer role agent.
|
|
|
259
265
|
|
|
260
266
|
## 끝내기 전
|
|
261
267
|
|
|
262
|
-
리포트를 쓴 뒤 스킬이 `gestalt digest merge`로 합치며 검사한다. 오류 목록을 돌려받으면 `path`가 가리키는 자리만 고쳐 다시 쓴다. path 앞의 `reports.<n>.`은 합친 뒤의 자리라 리포트 파일에서는 그 뒤부터 찾는다. 확장 리포트는 `extensions.<n>.`을 떼고 찾는다. 경고(소섹션 개수, 불릿 개수)는 영상에 맞으면 그대로 둔다. `DIAGRAM_TOO_FEW`를 받으면 단계나 견주기, 시간 흐름, 원인과
|
|
268
|
+
리포트를 쓴 뒤 스킬이 `gestalt digest merge`로 합치며 검사한다. 오류 목록을 돌려받으면 `path`가 가리키는 자리만 고쳐 다시 쓴다. path 앞의 `reports.<n>.`은 합친 뒤의 자리라 리포트 파일에서는 그 뒤부터 찾는다. 확장 리포트는 `extensions.<n>.`을 떼고 찾는다. 경고(소섹션 개수, 불릿 개수)는 영상에 맞으면 그대로 둔다. `DIAGRAM_TOO_FEW`를 받으면 단계나 견주기, 시간 흐름, 원인과 결과, 한 중심에 딸린 여러 요소, 숫자 하나에 담기는 결론, 여러 후보 중 고른 몇 개가 있는 대섹션에 도식을 더한다. 그런 구조가 없는 대섹션은 억지로 그리지 않고 비워 둔다.
|
|
263
269
|
|
|
264
270
|
## Output Format
|
|
265
271
|
|
|
@@ -294,7 +294,7 @@ gestalt digest merge '<slug>' '<reportPath>' --json --repo-root '<repoRoot>'
|
|
|
294
294
|
|
|
295
295
|
리포트 형식이 아예 틀리면 merge가 `리포트 형식 오류:`로 끝난다. 그 메시지도 같은 방법으로 넘긴다.
|
|
296
296
|
|
|
297
|
-
`severity`가 `warning`인 것(소섹션 개수, 불릿 개수, 도식 수)은 막지 않는다. 영상에 맞는 분량이면 그대로 둔다. `DIAGRAM_TOO_FEW`는 리포트마다 한 번만 `video-summarizer`에 넘겨 단계나 견주기, 시간 흐름, 원인과
|
|
297
|
+
`severity`가 `warning`인 것(소섹션 개수, 불릿 개수, 도식 수)은 막지 않는다. 영상에 맞는 분량이면 그대로 둔다. `DIAGRAM_TOO_FEW`는 리포트마다 한 번만 `video-summarizer`에 넘겨 단계나 견주기, 시간 흐름, 원인과 결과, 한 중심에 딸린 여러 요소, 숫자 하나에 담기는 결론, 여러 후보 중 고른 몇 개가 있는 대섹션에 도식을 더 붙일 수 있는지 보게 한다. 넘길 때는 프롬프트에 경고 `message`와 "도식을 더했거나 더할 구조가 없으면 Output Format 세 줄 뒤에 `diagrams:` 줄로 적는다"를 함께 싣는다. 돌아오면 같은 초안 경로로 merge를 다시 부른다. 이때 `DIAGRAM_TOO_FEW`가 또 나와도 다시 맡기지 않고 `diagrams:` 줄의 이유를 Step 7 보고에 옮긴다.
|
|
298
298
|
|
|
299
299
|
## Step 3.5 — 확장 리포트
|
|
300
300
|
|
|
@@ -409,6 +409,7 @@ gestalt digest translate-apply '<slug>' '<dir>/translation.part-<a>.json' --json
|
|
|
409
409
|
- 원문보다 길게 쓰지 않는다. 길어지면 그 항목은 원문이 남는다
|
|
410
410
|
- 같은 group 라벨끼리 꼴을 맞춘다. 비교 열 제목처럼 짝을 이루는 라벨은 한쪽만 바꾸지 않는다
|
|
411
411
|
- 번역투와 '의'가 이어지는 꼴, 가운뎃점 나열, 안 굳은 음차, 과장 수식어만 고친다. 뜻을 바꾸거나 내용을 더 줄이지 않는다
|
|
412
|
+
- path가 `.value`로 끝나는 항목은 핵심 수치 도식의 큰 숫자다. 숫자와 단위를 그대로 둔다
|
|
412
413
|
- 5단계에서 `LABEL_TOO_LONG`이 오면 라벨이 원문보다 길어진 것이다. 그 항목만 한 번 더 보내며 지킬 것 끝에 "원문 글자 수 이하"를 적어 준다. 두 번째도 걸리면 원문을 둔다.
|
|
413
414
|
- 6단계는 다시 스캔까지만 하고 Step 6 렌더로 간다.
|
|
414
415
|
|
|
@@ -15,6 +15,8 @@ order: 16
|
|
|
15
15
|
- 둘 이상을 나란히 견주면 compare, 한 주제에서 가지가 뻗으면 tree
|
|
16
16
|
- 시점이 붙은 사건 흐름은 timeline, 두 기준으로 나눈 네 칸은 matrix
|
|
17
17
|
- 원인과 결과가 한 현상에 모이면 causal, 바뀌기 전과 후를 보여주면 beforeAfter
|
|
18
|
+
- 한 중심에 순서 없는 요소가 둘 이상 딸리면 hub, 개념이 숫자 하나에 담기면 stat
|
|
19
|
+
- 여러 후보 중 일부만 골라 보여 줄 때는 pickGrid
|
|
18
20
|
- 같은 종류만 이어 쓰지 않는다. 개념마다 맞는 모양이 다르다
|
|
19
21
|
- explanation은 2~4문장으로 그림이 말하지 않는 것을 적는다. 왜 그런지, 언제 쓰는지, 영상에서 어떤 예를 들었는지다. 그림 라벨을 그대로 다시 읊지 않는다
|
|
20
22
|
- cite는 그 개념을 가장 잘 설명한 구간을 단다. 대섹션 범위에 묶이지 않고 스크립트 안이면 된다
|