genetics-mcp 2.17.1 → 2.18.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/bin/aarch64-apple-darwin/gcell +0 -0
- package/bin/manifest.json +2 -2
- package/bin/x86_64-apple-darwin/gcell +0 -0
- package/genetics.mjs +71 -16
- package/package.json +1 -1
- package/skills/genetics-report/SKILL.md +146 -131
- package/skills/genetics-report/assets/example/cases-briefing-designs.json +32 -0
- package/skills/genetics-report/assets/example/plate-pair-after.png +0 -0
- package/skills/genetics-report/assets/example/plate-pair-before.png +0 -0
- package/skills/genetics-report/assets/example/plate-pair.html +25 -0
- package/skills/genetics-report/assets/example/report-briefing-designs.json +736 -0
- package/skills/genetics-report/assets/example/report-briefing.json +27 -22
- package/skills/genetics-report/assets/example/report.json +5 -5
- package/skills/genetics-report/assets/figure.mjs +390 -63
- package/skills/genetics-report/assets/mockshot.mjs +3 -2
- package/skills/genetics-report/assets/pair.mjs +138 -0
- package/skills/genetics-report/assets/shot.mjs +87 -19
- package/skills/genetics-report/references/content-pipeline.md +34 -33
- package/skills/genetics-report/references/history.md +117 -0
- package/skills/genetics-report/references/illustrations.md +16 -12
- package/skills/genetics-report/references/lim-portal-format.md +175 -91
- package/skills/genetics-report/references/linear-read-test.workflow.js +47 -0
- package/skills/genetics-report/references/process.md +152 -90
- package/skills/genetics-report/references/readability.md +48 -24
- package/skills/genetics-report/references/reader-review.workflow.js +160 -27
- package/skills/genetics-report/references/visual-first.md +100 -35
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# 반려 경위 — 규칙이 왜 생겼나
|
|
2
|
+
|
|
3
|
+
**이 파일은 규칙이 아니다.** 따를 것은 `SKILL.md` 「작업 체크리스트」·「반드시 지키는 것」·「카피 게이트」와 각 참조 문서다.
|
|
4
|
+
규칙 자리에는 「(경위: `references/history.md` §n)」 한 줄만 두고, 반려 원문·날짜·실측은 여기 모은다 —
|
|
5
|
+
규칙과 경위를 한 산문에 섞으면 반려가 올 때마다 문장만 늘고 밟는 순서가 흐려진다(2026-09-14 재구성).
|
|
6
|
+
|
|
7
|
+
- 이 스킬은 npm 패키지로 다른 소속처에 배급된다. 그쪽 에이전트는 genetics 사례에 닿지 못하므로 경위를 사례로 내보내지 않고 스킬 안에 둔다.
|
|
8
|
+
- 스킬 9번을 여기서도 지킨다 — 고객사 이름·이용자 번호·문서 번호·그 문서의 실측 값은 적지 않는다. 「고객사 결정 브리핑」「검수 보고」처럼 문서의 종류로 부른다.
|
|
9
|
+
- 반려 원문은 사용자가 쓴 말 그대로 둔다. 말투를 고치면 무엇이 반려됐는지가 흐려진다.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## 1. 렌더러 사본 사고 (2026-08-18) — SKILL 「렌더러는 레포에 하나뿐이다」
|
|
14
|
+
|
|
15
|
+
`assets/` 에 `build.py`·`report.css`·`palette.py`·`editor.js` 사본이 있었다.
|
|
16
|
+
커밋 `f1a2725`(08-13) 가 정본을 레포로 옮겼는데 옛 사본을 안 지웠다. 그 뒤 레포만 나흘 자라(20,361 → 51,754B · 887줄 차이)
|
|
17
|
+
**이 스킬로 만든 고객 문서에 브랜드 서식이 통째로 빠졌다** — `cover-frame`·`ch-head`·`cindex`·`eof-endcard`·`Spoqa` 가 전부 0회.
|
|
18
|
+
`lim-report.css` 는 스킬에 존재하지도 않았다. 둘을 대조하는 관문이 없어 아무도 몰랐다.
|
|
19
|
+
그래서 사본을 지우고 `render.py` 가 사본을 감지하면 멈추게 했다(`FORKABLE`).
|
|
20
|
+
|
|
21
|
+
## 2. 독자를 안 정하고 만든 문서 — SKILL 0단계
|
|
22
|
+
|
|
23
|
+
독자를 정하지 않고 개발 기록에 색만 칠해 보낸 문서가 이렇게 반려됐다 —
|
|
24
|
+
「개발팀 내부적인 작업 시나리오까지 섞어서 보고서로 보내고 있다」.
|
|
25
|
+
그 뒤 0단계(독자 문장 하나)를 건너뛸 수 없는 단계로 두었다.
|
|
26
|
+
|
|
27
|
+
## 3. 시각 우선 (2026-09-08 · 09-10) — SKILL 0.5단계
|
|
28
|
+
|
|
29
|
+
고객사 보고 4차에서 같은 날 반려 원문 셋이 이어졌다 —
|
|
30
|
+
「글만 적어서는 이해가 어려움 — 그림 자료」 → 「신입은 읽다가 자겠다」 → 「색상 다변화, 핵심은 굵게, 배지·그래프 보강」.
|
|
31
|
+
셋 다 원고를 쓴 에이전트가 「글이면 충분하다」고 판단한 자리였다. 그래서 판단을 에이전트에게 남기지 않고 렌더러가 세게 했다(dry_run ⚠).
|
|
32
|
+
|
|
33
|
+
2026-09-10 에는 「도판은 좋아졌는데 가독성은 아직」으로 다시 반려됐다. 도판 관문이 글자 크기 하나만 쟀기 때문이다 —
|
|
34
|
+
그래서 `readability.md` 규칙표가 도판(R1~R10)과 글 층(R11)을 함께 갖게 됐다.
|
|
35
|
+
|
|
36
|
+
## 4. 회차 서술과 진행 상태 어휘 (2026-09-01 · 09-11) — SKILL 반드시 지키는 것 3b
|
|
37
|
+
|
|
38
|
+
- 2026-09-01 실측: 3차 회차 문서에서 「이번 회차…」가 절 셋·문단 둘·건 하나·요청 하나, **일곱 자리**에 샜다.
|
|
39
|
+
3번 규칙(개발 절차 서술 금지)이 이미 있었으나 예시가 배포·티켓·테스트뿐이라 이 형태가 빠져나갔다.
|
|
40
|
+
- 2026-09-11, 고객사 결정 브리핑: 사용자 결정을 판마다 차분으로 반영하다 1절이 「정해진 것 셋과 남은 것 하나」 상태판이 됐다.
|
|
41
|
+
반려 원문 — 「뒷 내용을 나는 알고 너는 알아도, 독자는 모름. 이해관계자 입장 고려 안 해?」
|
|
42
|
+
그래서 회차 낱말만이 아니라 진행 상태 어휘·상태 열·개수로 상태를 세는 표 제목을 함께 금하고, `text_scan()` 과정 어휘 ⚠ 를 두었다.
|
|
43
|
+
|
|
44
|
+
## 5. 요청 자리 말투 — 네 번의 반려 (2026-09-02 ~ 09-11) — SKILL 반드시 지키는 것 5a
|
|
45
|
+
|
|
46
|
+
앞의 세 처방이 모두 **종결을 못 건드린 채 어휘만 갈았다.** 같은 실수를 반복하지 않도록 경위를 남긴다.
|
|
47
|
+
|
|
48
|
+
| 날짜 · 문서 | 나간 글자 | 고객 반응 | 당시 처방 |
|
|
49
|
+
|---|---|---|---|
|
|
50
|
+
| 2026-09-02 · 검수 보고 | ~해 주셔야 함 · 회신 필요 | 이거 너무 싸가지없는 거 아니야? | `-시-` 되살리기 |
|
|
51
|
+
| 2026-09-03 · 검수 보고 | 동의해 주시면 됨 | 이런 말투 존나 싸가지 없지 않아? | 「부탁드림」으로 교체 |
|
|
52
|
+
| 2026-09-03 · 같은 보고서 | 보고 칸의 요청문 | 보고와 요청의 차이를 잘 모르는거야? | 요청문은 요청 절에만 |
|
|
53
|
+
| 2026-09-11 · 결정 브리핑 | 부탁드**림** · 진행하겠**음** | 존나 마음에 안듦 · 관보가 원래 이런말투임? | **종결을 하십시오체로** |
|
|
54
|
+
|
|
55
|
+
네 번째 반려가 겨눈 것은 **2·3차 처방 그 자체**였다. 종결을 못 바꾼 이유는
|
|
56
|
+
「톤 게이트가 `습니다` 를 세므로 이쪽은 바꿀 수 없다」는 전제였는데 **그 전제가 틀렸다** — 게이트는 경고이지 거절이 아니다.
|
|
57
|
+
실측(2026-09-11): 경어체 경고를 안은 `update_report` 2회 모두 발행 성공.
|
|
58
|
+
|
|
59
|
+
셋째 반려(2026-09-03 저녁)는 건의 `how_to_check` 에 「…을 수용하실 수 있는지 의견을 부탁드림」「…를 보시면 확인됨」을 넣은 문서였다.
|
|
60
|
+
그래서 보고 칸에는 사실과 계획만 두고 요청은 요청 절에만 둔다는 규칙이 5a 와 짝으로 섰다.
|
|
61
|
+
|
|
62
|
+
2026-09-14 — 로컬 `tone.mjs` 는 9/11 에 처방을 「회신 부탁드립니다」로 고쳤는데, 서버 문체 관문(`report_tone.php`)과 MCP 도구 설명은
|
|
63
|
+
9/3 에 반려된 「회신 주시면 됨」을 계속 처방하고 있었다. 시험도 그 문장을 경고 0 인 깨끗한 문서로 굳혀 두었다.
|
|
64
|
+
서버 처방을 하십시오체로 바꾸고, 도구 설명에 남은 반려 문구는 `tools/contract-drift.py` 가 세게 했다.
|
|
65
|
+
|
|
66
|
+
## 6. 스킬에 값을 박은 사고 (2026-08-17) — SKILL 반드시 지키는 것 9
|
|
67
|
+
|
|
68
|
+
스킬 표에 특정 업종 아이콘을 적어 두었고, 검수기에는 그 테넌트의 강조색 hex 를 상수로 박아 두었다.
|
|
69
|
+
강조색이 다른 테넌트에서 **전량 오판정**했다. 스킬에 값을 박으면 다음 고객에서 터진다.
|
|
70
|
+
|
|
71
|
+
2026-09-14 — 스킬 스스로 이 규칙을 어긴 자리(0.5단계 머리 인용·도판 문서의 고객사 이름·이용자 번호)를 익명화했다.
|
|
72
|
+
|
|
73
|
+
## 7. 답정너 (2026-09-11) — SKILL 반드시 지키는 것 10
|
|
74
|
+
|
|
75
|
+
고객사 결정 브리핑에서 권고 낱말이 제목·표 열·요약에 배어 독자가 동의만 하게 되는 틀로 나갔다.
|
|
76
|
+
반려 원문 — 「보고서에 답정너 형식 좀 없애」. 그래서 결정권이 고객에게 있는 문서는 물음과 두 길 대칭으로 세우고, FCG 의견은 한 절 한 자리에만 둔다.
|
|
77
|
+
|
|
78
|
+
## 8. 원본을 재지 않고 「흐리다」 (2026-09-11) — SKILL 반드시 지키는 것 11
|
|
79
|
+
|
|
80
|
+
확인 없이 「원본이 흐림」이 실렸고, 재보니 원본은 충분히 컸다.
|
|
81
|
+
반려 원문 — 「고객은 직접 원본을 보고 싶은데 볼 수 없잖아」. 그래서 원본은 재고 쓰며, 고객이 눌러 열 수 있는 링크만 근거로 친다.
|
|
82
|
+
|
|
83
|
+
## 9. 「경과 / 원인」 두 PART (2026-09-12) — SKILL 「세 가지 독자」 · 0.5단계 7행
|
|
84
|
+
|
|
85
|
+
회신 없는 정황 보고를 「경과 / 원인」 두 PART 로 갈랐더니 PART I 사실 27개 중 21개가 PART II 에 다시 섰고 dry_run 경고는 0 이었다.
|
|
86
|
+
반려 원문 — 「경과와 원인이 사실상 같은 맥락이고 문장만 다르게 표현했음」.
|
|
87
|
+
독자 검토 네 관점 발견 55개가 이 겹침을 0건 짚었고, 더하기 처방을 반영하자 PART 사이에 다시 서는 시각표 행이 8→12 로 늘었다.
|
|
88
|
+
그래서 독자 검토에 구조 관점을 두고, 구조 발견(빼기)을 먼저 반영한다.
|
|
89
|
+
|
|
90
|
+
## 10. 집행자 없는 규칙 (2026-08-27) — SKILL 「카피 게이트」
|
|
91
|
+
|
|
92
|
+
카피 게이트 절은 2026-08-27 까지 「검수기가 잡는다」 한 줄로 끝났다. 그 검수기(`qa.py`)는 폐기됐고 남은 `tone.mjs` 는 대시 밀도만 셌다 —
|
|
93
|
+
넉 달 동안 아무도 「A에서 B로」를 기계로 잡지 않았다. 그래서 규칙마다 집행자를 적고, 없으면 없음이라고 적는다.
|
|
94
|
+
|
|
95
|
+
## 11. 검수 뼈대에 스타일만 입힌 가르치는 문서 — SKILL 「세 가지 독자」
|
|
96
|
+
|
|
97
|
+
가르치는 문서를 검수 뼈대에 스타일만 입혀 냈다가 반려됐다.
|
|
98
|
+
**부분마다 좋아졌는데 전체는 그대로였다** — 심슨의 역설이다. 그래서 독자 정의 직후 PART 구성부터 정하고, 절 구성이 서기 전에 문구를 다듬지 않는다.
|
|
99
|
+
|
|
100
|
+
## 12. 결정 브리핑 재발행 다섯 판 (2026-09-11 ~ 09-14) — 체크리스트 · 3b 결정 주체 · 3c · 0.5단계 5·5a·7행 · 카피 게이트 새 행
|
|
101
|
+
|
|
102
|
+
같은 결정 브리핑을 다섯 번 다시 발행하며 나온 반려와 발견이다. 규칙은 각 자리에 있고, 여기는 까닭만 적는다.
|
|
103
|
+
|
|
104
|
+
- **도판 대칭** — 반려 원문 「A/B 대칭으로 보여줘야 되는 거 아님? 시각적 자료에 신경 안 씀?」.
|
|
105
|
+
위아래로 쌓이고 틀 안에 글자를 얹은 비교 컷이 도판 관문 ✗0 으로 나갔다. 사람이 세운 두 칸 규격은 도판 HTML 머리 주석에만 있었고,
|
|
106
|
+
독자 검토는 PNG 를 열지 않고 캡션만 읽어 틀 결함을 0건 짚었다. → `figure.mjs` R13 · `pair.mjs` · 독자 검토 figures 관점.
|
|
107
|
+
- **노이즈** — 반려 원문 「출처를 적을 필요까지는 없어. 목적 지향. 넣을 것과 노이즈를 분리 못함?」.
|
|
108
|
+
스킬이 합성 도판의 출처 줄에 도안·규격의 출처와 「예시」「자리 표시」를 보이게 적으라고 가르쳤다. → 출처 줄은 원본 위치 한 구절, 제작 기록은 `origin` · `text_scan()` 제작 메타 ⚠.
|
|
109
|
+
- **검토 처방이 틀림** — 검토자가 앱 동작을 다른 문서와 대조해 틀리게 판정했고(코드에는 그 규칙이 있었다),
|
|
110
|
+
정해진 구조를 뒤집으라는 처방과 결정 날짜·판 이력을 더하라는 처방이 거르지 않은 채 올라왔다. → 독자 검토 Verify 단계 · JS 거름 · facts 관점.
|
|
111
|
+
- **결정 주체** — 앞선 판의 반려 「결정 요청란에 이미 결정한 것들이 있는데?」 뒤, 「몇 차에서 정함」이 실렸는데 그 차수의 원문은 「정해야 함·차기 검토」였다.
|
|
112
|
+
최종 판에도 FCG 가 대화에서 정한 항이 주체 없이 「정한 사항임」으로 남았다. → 0단계 물음 4 · 결정 장부 · 3b 결정 주체.
|
|
113
|
+
- **날짜** — 검토 세 관점이 「표지·이력 날짜와 본문 날짜가 다름」을 짚었고 처방은 「이력에 행을 더함」이라 3b 와 부딪혔다. 공개 직전 날짜를 손으로 네 자리 고쳤다. → 3c · `gazette.py` `date_scan()` ⚠(세 자리 대조).
|
|
114
|
+
- **코드 작업을 녹임** — 「너의 작업은 보고서에 이어서 녹여주면돼」로 브랜치·파일·시험 건수가 섞인 기록이 원고로 옮겨졌고,
|
|
115
|
+
미커밋·실기기 미확인 상태가 완료형으로 실렸다. 앞선 9/3 반려 「커밋이라던가 개발자 대상 브리핑은 불필요한데?」와 같은 뿌리다. → 반드시 지키는 것 3 「코드 작업을 녹일 때」 · `text_scan()` 개발 식별자 ⚠ · state 관점.
|
|
116
|
+
- **그림 번호** — 판을 고칠 때 그림 번호를 손으로 동시 치환하다 뜻이 뒤바뀐 번호와 틀린 조사가 발행됐다. → `{{그림:id}}` 토큰 · `fig_order()` · 번호 가리킴 ⚠.
|
|
117
|
+
- **밟는 순서** — 규칙은 반려마다 늘었는데 흐름표에 시각 설계·독자 검토 행이 없어 검토가 관문이 아니라 선택 단계로 읽혔다. 단계 번호는 세 체계였다. → SKILL 「작업 체크리스트」.
|
|
@@ -1,31 +1,35 @@
|
|
|
1
1
|
# 일러스트 — 폐기됨 (2026-08-24 관보 전환)
|
|
2
2
|
|
|
3
3
|
> 이 문서는 관보 전환으로 폐기됐다.
|
|
4
|
-
> 관보 서식에는
|
|
4
|
+
> 관보 서식에는 **서버가 그리는 삽화(`brief`)가 실리지 않는다.** 근거 화면·개념도는 `role:"figure"` 도판으로 싣는다(`lim-portal-format.md` §11-1).
|
|
5
5
|
|
|
6
6
|
## ⚠ 먼저 읽을 것 — `brief` 를 주지 마라
|
|
7
7
|
|
|
8
8
|
`assets[].brief` 를 넣으면 **서버가 진짜로 그린다.**
|
|
9
|
-
`asset_jobs_plan()`
|
|
10
|
-
|
|
9
|
+
`asset_jobs.php asset_jobs_plan()` 은 `brief` 가 있고 `data` 가 없으면 작업을 만든다
|
|
10
|
+
(`logo`·`eof` 만 건너뛴다). 발행·교체 때 `asset_jobs.php asset_jobs_enqueue()` 가 그 작업을 큐에 건다.
|
|
11
11
|
|
|
12
|
-
그리고
|
|
12
|
+
그리고 렌더러가 그 결과를 **싣지 않거나, 관문 없이 싣는다.**
|
|
13
|
+
- `hero`·`chapter`·`eof` 는 `gazette.py Doc.build()` 가 「관보 문법에 놓을 자리가 없어」로 세고 버린다 — role 이 `logo`·`figure` 밖이면 전부다.
|
|
14
|
+
- `figure` 는 바이트가 붙기 전까지 `gazette.py Doc.plate_block()` 이 「그림 바이트가 없습니다」로 세고 싣지 않는다.
|
|
15
|
+
붙은 뒤에는 절 본문 도판으로 서지만, 가독성 관문(`figure.mjs`)과 출처 규칙(readability R12e)을 거치지 않은 그림이다.
|
|
13
16
|
|
|
14
|
-
즉 크레딧은
|
|
17
|
+
즉 크레딧은 타고, 문서에는 안 나오거나 검사 안 된 그림이 나온다.
|
|
15
18
|
문서를 지우는 것만으로는 이 행동이 안 막히므로 이 묘비를 남긴다.
|
|
16
19
|
|
|
17
|
-
## 쓸 수 있는 것은
|
|
20
|
+
## 쓸 수 있는 것은 둘이다
|
|
18
21
|
|
|
19
|
-
`assets[].role` 중 관보가 싣는 것은 **`logo`**
|
|
20
|
-
`data:image/` 로 시작하는 값이어야 읽는다(`gazette.py
|
|
21
|
-
로고를 못 받았으면 `assets`
|
|
22
|
+
`assets[].role` 중 관보가 싣는 것은 **`logo`** 와 **`figure`** 둘이다.
|
|
23
|
+
- `logo` — 표지 우상단 고객사 마크. `data:image/` 로 시작하는 값이어야 읽는다(`gazette.py Doc.cover()`).
|
|
24
|
+
로고를 못 받았으면 `assets` 에서 빼고 `client` 에 이름만 적는다 — 렌더러가 활자로 세운다.
|
|
25
|
+
- `figure` — 절 본문 도판. 바이트는 `file`(로컬 절대경로)·`source` 로 싣고 `brief` 는 쓰지 않는다. 만드는 법은 `visual-first.md` §4, 값은 `readability.md` §1.
|
|
22
26
|
|
|
23
|
-
`hero` · `chapter` · `
|
|
24
|
-
`REPORT_EOF_TEMPLATES = []`(`report_publish.php
|
|
27
|
+
`hero` · `chapter` · `eof` 는 세어서 버려진다.
|
|
28
|
+
`REPORT_EOF_TEMPLATES = []`(`report_publish.php`)라 꼬리 카드도 안 붙는다.
|
|
25
29
|
|
|
26
30
|
## 그 자리를 무엇이 채우는가
|
|
27
31
|
|
|
28
32
|
표지 가운데의 **빈 마당**과 문서를 닫는 **판권지**가 그 자리의 문법이다.
|
|
29
|
-
관보는 괘선과 여백과 활자로 만든다 — 그림으로 만들지 않는다.
|
|
33
|
+
관보는 괘선과 여백과 활자로 만든다 — 표지를 그림으로 만들지 않는다.
|
|
30
34
|
|
|
31
35
|
조판 원전은 `gazette-report` 스킬에 있다.
|