genetics-mcp 2.14.0 → 2.15.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/bin/aarch64-apple-darwin/gcell +0 -0
- package/bin/aarch64-unknown-linux-musl/gcell +0 -0
- package/bin/manifest.json +4 -4
- package/bin/x86_64-apple-darwin/gcell +0 -0
- package/bin/x86_64-unknown-linux-musl/gcell +0 -0
- package/genetics.mjs +202 -9
- package/package.json +1 -1
- package/skills/gazette-report/README.md +71 -0
- package/skills/gazette-report/SKILL.md +479 -0
- package/skills/gazette-report/scripts/boundary.py +97 -0
- package/skills/gazette-report/scripts/contentdiff.sh +36 -0
- package/skills/gazette-report/scripts/cssaudit.sh +78 -0
- package/skills/gazette-report/scripts/extract.sh +84 -0
- package/skills/gazette-report/scripts/flexcheck.mjs +28 -0
- package/skills/gazette-report/scripts/fontchk.mjs +62 -0
- package/skills/gazette-report/scripts/kcheck.mjs +146 -0
- package/skills/gazette-report/scripts/package.json +5 -0
- package/skills/gazette-report/scripts/pdfcheck.sh +34 -0
- package/skills/gazette-report/scripts/read.mjs +85 -0
- package/skills/gazette-report/scripts/sentbreak.py +142 -0
- package/skills/gazette-report/scripts/tone.mjs +172 -0
- package/skills/gazette-report/scripts/tone.test.mjs +118 -0
- package/skills/gazette-report/scripts/typesurvey.mjs +48 -0
- package/skills/gazette-report/template/README.md +89 -0
- package/skills/gazette-report/template/gazette.css +2120 -0
- package/skills/gazette-report/template/skeleton.html +477 -0
- package/skills/genetics-cell-id/SKILL.md +9 -7
- package/skills/genetics-report/SKILL.md +53 -6
- package/skills/genetics-report/assets/example/cases-briefing.json +32 -0
- package/skills/genetics-report/assets/example/report-briefing.json +271 -0
- package/skills/genetics-report/assets/example/report.json +1 -1
- package/skills/genetics-report/references/content-pipeline.md +20 -0
- package/skills/genetics-report/references/lim-portal-format.md +100 -7
- package/skills/genetics-report/references/process.md +11 -0
|
@@ -0,0 +1,477 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="ko">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
<title>문서 제목 · 부제</title>
|
|
7
|
+
<meta name="description" content="한 문장으로 이 문서가 무엇인지" />
|
|
8
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard-gov.min.css" />
|
|
9
|
+
<link rel="stylesheet" href="gazette.css" />
|
|
10
|
+
</head>
|
|
11
|
+
<body>
|
|
12
|
+
<!--
|
|
13
|
+
══ 관보 문서 뼈대 ══════════════════════════════════════════
|
|
14
|
+
순서는 바꾸지 않는다:
|
|
15
|
+
표지 → 이력 → 차례 → 활용법 → 요약 → PART 간지 → 절 → 부록 → 판권지
|
|
16
|
+
|
|
17
|
+
제목 레벨: h1 표지 · h2 가구 제목/PART · h3 절 · h4 항목
|
|
18
|
+
좌표 속성:
|
|
19
|
+
data-part-no .pt · .part · .toc__part · .crumb__c(PART)
|
|
20
|
+
data-chapter .part · .toc__row · .rail__tab · .crumb__c(Chapter)
|
|
21
|
+
앵커 규약: #part-N · #sec-N · #case-NN-M
|
|
22
|
+
모든 표에 caption 또는 aria-labelledby 를 반드시 준다.
|
|
23
|
+
|
|
24
|
+
── 스크립트 계약 (붙일 때만) ────────────────────────────
|
|
25
|
+
상호작용은 문서마다 다르므로 이 뼈대에 없다. 붙인다면:
|
|
26
|
+
· JS 의존 컨트롤은 **스크립트가 DOM 에 삽입**한다. 죽은 버튼을 남기지 않는다.
|
|
27
|
+
· 모션 숨김은 `.has-js` 뒤에서만 한다 — 스크립트가 죽어도 본문이 보여야 한다.
|
|
28
|
+
· localStorage 는 읽기·쓰기 모두 try/catch, 실패하면 화면으로 알린다.
|
|
29
|
+
· 절만 잡을 때는 `.part[data-chapter]` 로 한정한다
|
|
30
|
+
(data-chapter 는 차례·색인·머리띠에도 붙는다).
|
|
31
|
+
· @media print 첫 줄에서 transition·animation 을 끈다 — gazette.css 에 이미 있다.
|
|
32
|
+
══════════════════════════════════════════════════════════ -->
|
|
33
|
+
|
|
34
|
+
<a class="skip" href="#main">본문 바로가기</a>
|
|
35
|
+
|
|
36
|
+
<!-- 머리띠 = 위치 브레드크럼. 브랜드 바가 아니다.
|
|
37
|
+
우측 끝은 날짜가 아니라 「지금 어디인가」(N / 총수). -->
|
|
38
|
+
<header class="topbar">
|
|
39
|
+
<nav class="crumb crumb--part" aria-label="PART 이동">
|
|
40
|
+
<span class="crumb__k">PART</span>
|
|
41
|
+
<ol class="crumb__row crumb__row--part">
|
|
42
|
+
<li><a class="crumb__c is-on" href="#part-1" data-part-no="1">I<span class="sr"> 첫째 묶음</span></a></li>
|
|
43
|
+
<li><a class="crumb__c" href="#part-2" data-part-no="2">II<span class="sr"> 둘째 묶음</span></a></li>
|
|
44
|
+
</ol>
|
|
45
|
+
<span class="crumb__now" id="crumb-part">Ⅰ. 첫째 묶음</span>
|
|
46
|
+
</nav>
|
|
47
|
+
<nav class="crumb crumb--ch" aria-label="절 이동">
|
|
48
|
+
<span class="crumb__k">Chapter</span>
|
|
49
|
+
<ol class="crumb__row crumb__row--ch">
|
|
50
|
+
<li><a class="crumb__c is-on" href="#sec-1" data-chapter="01">1<span class="sr">절 첫째 절</span></a></li>
|
|
51
|
+
<li><a class="crumb__c" href="#sec-2" data-chapter="02">2<span class="sr">절 둘째 절</span></a></li>
|
|
52
|
+
</ol>
|
|
53
|
+
<span class="crumb__now" id="crumb-ch">첫째 절</span>
|
|
54
|
+
<span class="crumb__pos"><b id="crumb-no">1</b> / 2</span>
|
|
55
|
+
<!-- 잔여 건수 같은 「숫자만 있는 표식」을 번호 칸 행 안에 두지 마라.
|
|
56
|
+
칸과 모양이 같아 「1 2 3 … N」 사이에 낀 또 하나의 칸으로 읽힌다.
|
|
57
|
+
낱말로 감싸서 여기 판독부에 둔다. -->
|
|
58
|
+
<span class="crumb__rem" id="crumb-rem">잔여 <b id="crumb-badge">0</b>건</span>
|
|
59
|
+
</nav>
|
|
60
|
+
</header>
|
|
61
|
+
|
|
62
|
+
<div class="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0" aria-label="읽기 진행률">
|
|
63
|
+
<i class="progress__fill" id="progress-fill"></i>
|
|
64
|
+
</div>
|
|
65
|
+
|
|
66
|
+
<!-- 측면 색인 레일 — ≥1280px 에서만 책등처럼 붙는다 -->
|
|
67
|
+
<nav class="rail" aria-label="문서 차례">
|
|
68
|
+
<div class="rail__tabs">
|
|
69
|
+
<a class="rail__tab is-active" href="#sec-1" data-chapter="01"><b>01</b>첫째 절</a>
|
|
70
|
+
<a class="rail__tab" href="#sec-2" data-chapter="02"><b>02</b>둘째 절</a>
|
|
71
|
+
</div>
|
|
72
|
+
</nav>
|
|
73
|
+
|
|
74
|
+
<main class="doc" id="main">
|
|
75
|
+
|
|
76
|
+
<!-- ── 표지 · A4 1쪽 단독 ────────────────────────────────
|
|
77
|
+
머리 스트립(문서번호 | 고객사 마크) → 대제목 2행 → 빈 마당 → 닫는 괘선
|
|
78
|
+
→ 메타 4칸 → 발행처 스트립 -->
|
|
79
|
+
<header class="cover">
|
|
80
|
+
<div class="cover__top">
|
|
81
|
+
<div class="cover__docno">
|
|
82
|
+
<span class="cover__dk">문서번호</span>
|
|
83
|
+
<span class="cover__dv">ORG-0000-00</span>
|
|
84
|
+
</div>
|
|
85
|
+
<!-- ★ 고객사 마크 자리 — 문서를 만들기 전에 로고 파일을 요청한다.
|
|
86
|
+
받았으면: <img class="cover__logo" src="img/client-logo.svg" alt="고객사명" />
|
|
87
|
+
못 받았으면 아래처럼 고객사명을 활자로 세운다. 비워 두지 않는다. -->
|
|
88
|
+
<p class="cover__org">
|
|
89
|
+
<span class="cover__ork">고객사</span>
|
|
90
|
+
<span class="cover__orn">고객사명</span>
|
|
91
|
+
</p>
|
|
92
|
+
</div>
|
|
93
|
+
<div class="cover__key">
|
|
94
|
+
<p class="cover__kicker">발행처 · 대상</p>
|
|
95
|
+
<h1 class="cover__title"><span class="cover__t1">문서 제목</span><span class="cover__t2">부제 · 회차</span></h1>
|
|
96
|
+
<p class="cover__lead"><span class="sn">이 문서가 무엇을 담고 무엇을 담지 않는지 두 줄로.</span><span class="sn">개조식으로 쓴다.</span></p>
|
|
97
|
+
</div>
|
|
98
|
+
<!-- 표지 가운데는 비워 둔다. 관보 표지의 빈 마당은 미완성이 아니라 문법이다.
|
|
99
|
+
도해를 굳이 넣는다면 내용에서 도출된 것만, 비트맵 금지 — CSS 또는 인라인 SVG 로. -->
|
|
100
|
+
<ul class="cover__meta">
|
|
101
|
+
<li><span class="cover__mk">대상</span><span class="cover__mv">무엇에 관한 문서인가</span></li>
|
|
102
|
+
<li><span class="cover__mk">범위</span><span class="cover__mv">어디까지 다루는가</span></li>
|
|
103
|
+
<li><span class="cover__mk">수신</span><span class="cover__mv">누가 읽는가</span></li>
|
|
104
|
+
<li><span class="cover__mk">작성</span><span class="cover__mv">0000.00.00</span></li>
|
|
105
|
+
</ul>
|
|
106
|
+
<p class="cover__issuer"><span>발행처</span><span>소속</span><em>0000. 0.</em></p>
|
|
107
|
+
</header>
|
|
108
|
+
|
|
109
|
+
<!-- ── 발행 이력 — 회차 문서임을 문서 스스로 밝힌다 ─────── -->
|
|
110
|
+
<section class="hist" aria-labelledby="hist-h">
|
|
111
|
+
<h2 class="hist__h" id="hist-h">발행 이력</h2>
|
|
112
|
+
<table class="hist__t" aria-labelledby="hist-h">
|
|
113
|
+
<thead>
|
|
114
|
+
<tr><th scope="col">회차</th><th scope="col">발행일</th><th scope="col">내용</th></tr>
|
|
115
|
+
</thead>
|
|
116
|
+
<tbody>
|
|
117
|
+
<tr>
|
|
118
|
+
<td><span class="hist__n">1</span></td>
|
|
119
|
+
<td>0000. 0. 0.</td>
|
|
120
|
+
<td><span class="hist__c"><span class="sn">최초 발행.</span><span class="sn">무엇을 정리했는지 한 줄로 기재함.</span></span></td>
|
|
121
|
+
</tr>
|
|
122
|
+
</tbody>
|
|
123
|
+
</table>
|
|
124
|
+
</section>
|
|
125
|
+
|
|
126
|
+
<!-- ── 차례 — PART 색 밴드 + 절 행(점선 리더) + 하위 항목 개별 행 ──
|
|
127
|
+
하위 항목을 쉼표로 이어 붙이지 마라. 목록이 아니라 설명문이 된다. -->
|
|
128
|
+
<nav class="toc" aria-labelledby="toc-h">
|
|
129
|
+
<h2 class="toc__h" id="toc-h">차례<span class="toc__en">CONTENTS</span></h2>
|
|
130
|
+
<ol class="toc__parts">
|
|
131
|
+
<li class="toc__part" data-part-no="1">
|
|
132
|
+
<a class="toc__band" href="#part-1"><span class="toc__pk">PART</span><span class="toc__pn">I</span><span class="toc__pt">첫째 묶음</span><span class="toc__pc">1개 절</span></a>
|
|
133
|
+
<ol class="toc__list">
|
|
134
|
+
<li class="toc__row" data-chapter="01">
|
|
135
|
+
<a class="toc__link" href="#sec-1">
|
|
136
|
+
<span class="toc__no">제1절</span>
|
|
137
|
+
<span class="toc__title">첫째 절</span>
|
|
138
|
+
<span class="toc__dots" aria-hidden="true"></span>
|
|
139
|
+
<span class="toc__count"><b>2</b>건</span>
|
|
140
|
+
<span class="toc__sub">이 절이 다루는 범위를 한 줄로</span>
|
|
141
|
+
</a>
|
|
142
|
+
<ul class="toc__subs">
|
|
143
|
+
<li><a href="#case-01-1"><b>01-1</b><span>첫째 항목</span></a></li>
|
|
144
|
+
<li><a href="#case-01-2"><b>표 1-1</b><span>대조표</span></a></li>
|
|
145
|
+
</ul>
|
|
146
|
+
</li>
|
|
147
|
+
</ol>
|
|
148
|
+
</li>
|
|
149
|
+
<li class="toc__part" data-part-no="2">
|
|
150
|
+
<a class="toc__band" href="#part-2"><span class="toc__pk">PART</span><span class="toc__pn">II</span><span class="toc__pt">둘째 묶음</span><span class="toc__pc">1개 절</span></a>
|
|
151
|
+
<ol class="toc__list">
|
|
152
|
+
<li class="toc__row" data-chapter="02">
|
|
153
|
+
<a class="toc__link" href="#sec-2">
|
|
154
|
+
<span class="toc__no">제2절</span>
|
|
155
|
+
<span class="toc__title">둘째 절</span>
|
|
156
|
+
<span class="toc__dots" aria-hidden="true"></span>
|
|
157
|
+
<span class="toc__count"><b>1</b>항</span>
|
|
158
|
+
<span class="toc__sub">둘째 절이 다루는 범위를 한 줄로</span>
|
|
159
|
+
</a>
|
|
160
|
+
</li>
|
|
161
|
+
</ol>
|
|
162
|
+
</li>
|
|
163
|
+
<li class="toc__part" data-part-no="apx">
|
|
164
|
+
<a class="toc__band" href="#apx-h"><span class="toc__pk">APPENDIX</span><span class="toc__pt">부록</span><span class="toc__pc">1개 항</span></a>
|
|
165
|
+
<ul class="toc__subs">
|
|
166
|
+
<li><a href="#apx-1"><b>부록 1</b><span>판정 기준</span></a></li>
|
|
167
|
+
</ul>
|
|
168
|
+
</li>
|
|
169
|
+
</ol>
|
|
170
|
+
</nav>
|
|
171
|
+
|
|
172
|
+
<!-- ── 이 문서 읽는 법 — 좌측 질문 라벨 + 우측 ▶ 지시 ───── -->
|
|
173
|
+
<section class="guide" aria-labelledby="guide-h">
|
|
174
|
+
<h2 class="guide__h" id="guide-h">이 문서 읽는 법<span class="guide__en">UTILIZE GUIDE</span></h2>
|
|
175
|
+
<div class="guide__l">
|
|
176
|
+
<div class="guide__row">
|
|
177
|
+
<p class="guide__q">시간이 없다면 어디를 봐야 하는가?</p>
|
|
178
|
+
<ul class="guide__a">
|
|
179
|
+
<li><span class="sn"><a class="ref" href="#sec-1">01절</a>만 읽으면 됨.</span><span class="sn">나머지 절은 그 근거.</span></li>
|
|
180
|
+
</ul>
|
|
181
|
+
</div>
|
|
182
|
+
<div class="guide__row">
|
|
183
|
+
<p class="guide__q">각 절 왼쪽 여백의 표식은?</p>
|
|
184
|
+
<ul class="guide__a">
|
|
185
|
+
<li><span class="sn"><b>Why</b> 그 절이 답하는 질문 · <b>Key Point</b> 한 줄 요지 · <b>Advice</b> 참조처.</span></li>
|
|
186
|
+
</ul>
|
|
187
|
+
</div>
|
|
188
|
+
<div class="guide__row">
|
|
189
|
+
<p class="guide__q">인쇄하려면?</p>
|
|
190
|
+
<ul class="guide__a">
|
|
191
|
+
<li><span class="sn">Chrome 131 이상에서 인쇄.</span><span class="sn">대화상자의 「머리글 및 바닥글」 체크 해제 필요.</span></li>
|
|
192
|
+
</ul>
|
|
193
|
+
</div>
|
|
194
|
+
</div>
|
|
195
|
+
</section>
|
|
196
|
+
|
|
197
|
+
<!-- ── 요약 — 제목줄 + (현황 줄) + 상태 막대 + ※ + 수치 칸 ── -->
|
|
198
|
+
<section class="sum" aria-labelledby="sum-h">
|
|
199
|
+
<h2 class="sum__h" id="sum-h">요약<span>0000.00.00 기준</span></h2>
|
|
200
|
+
<aside class="notice" id="notice" data-state="critical" role="status">
|
|
201
|
+
<span class="notice__mark" aria-hidden="true">!</span>
|
|
202
|
+
<p class="notice__text" id="notice-text"><span class="sn">가장 시급한 한 줄.</span><span class="sn">상태에 따라 바뀌는 유일한 줄임.</span></p>
|
|
203
|
+
</aside>
|
|
204
|
+
<div class="sum__bar" role="img" aria-label="전체 중 완료와 대기의 비율">
|
|
205
|
+
<span class="sum__seg sum__seg--done" style="--w:60%"><b>3</b>완료</span>
|
|
206
|
+
<span class="sum__seg sum__seg--wait" style="--w:40%"><b>2</b>대기</span>
|
|
207
|
+
</div>
|
|
208
|
+
<p class="note"><span class="sn">막대가 뜻하는 바의 한정 조건을 여기 적음.</span></p>
|
|
209
|
+
<ul class="tally">
|
|
210
|
+
<li class="tally__cell tally__cell--you">
|
|
211
|
+
<p class="tally__n">2<span>건</span></p>
|
|
212
|
+
<p class="tally__l">독자가 조치할 것</p>
|
|
213
|
+
<a class="tally__go" href="#sec-1">01절로</a>
|
|
214
|
+
</li>
|
|
215
|
+
<li class="tally__cell">
|
|
216
|
+
<p class="tally__n">3<span>건</span></p>
|
|
217
|
+
<p class="tally__l">끝난 것</p>
|
|
218
|
+
</li>
|
|
219
|
+
</ul>
|
|
220
|
+
</section>
|
|
221
|
+
|
|
222
|
+
<!-- ── PART 간지 · 1쪽 단독 ──────────────────────────────
|
|
223
|
+
전면 색 패널 + 사선 해칭. 반투명 원을 여러 겹 깔지 마라 — 웹 히어로가 된다. -->
|
|
224
|
+
<section class="pt" id="part-1" data-part-no="1" aria-labelledby="pt-1">
|
|
225
|
+
<div class="pt__panel">
|
|
226
|
+
<p class="pt__label">PART<span class="pt__no">I</span></p>
|
|
227
|
+
<h2 class="pt__title" id="pt-1">첫째 묶음</h2>
|
|
228
|
+
<p class="pt__lede">이 묶음이 무엇을 담는지 한 줄.</p>
|
|
229
|
+
<div class="pt__grid">
|
|
230
|
+
<ol class="pt__list">
|
|
231
|
+
<li><a href="#sec-1"><b>제1절</b><span>첫째 절</span></a></li>
|
|
232
|
+
</ol>
|
|
233
|
+
<div class="pt__ask">
|
|
234
|
+
<p class="pt__askk">이 PART 가 답하는 질문</p>
|
|
235
|
+
<ul class="pt__askl">
|
|
236
|
+
<li>무엇을 조치해야 하는가?</li>
|
|
237
|
+
<li>그 판단의 근거는 어디에 있는가?</li>
|
|
238
|
+
</ul>
|
|
239
|
+
</div>
|
|
240
|
+
</div>
|
|
241
|
+
</div>
|
|
242
|
+
</section>
|
|
243
|
+
|
|
244
|
+
<!-- ══ 절 — 여기서부터 복제한다 ═══════════════════════════
|
|
245
|
+
간지(머리) + 두 단 본문(여백 주석 단 | 본문) -->
|
|
246
|
+
<section class="part" id="sec-1" data-chapter="01" data-part-no="1">
|
|
247
|
+
<header class="part__head">
|
|
248
|
+
<span class="part__no">제1절</span>
|
|
249
|
+
<div class="part__main">
|
|
250
|
+
<div class="part__line">
|
|
251
|
+
<h3 class="part__title">첫째 절</h3>
|
|
252
|
+
<span class="part__count">2건</span>
|
|
253
|
+
</div>
|
|
254
|
+
<p class="part__lede"><span class="sn">이 절이 다루는 범위와 다루지 않는 범위를 개조식으로 한두 줄.</span></p>
|
|
255
|
+
</div>
|
|
256
|
+
</header>
|
|
257
|
+
|
|
258
|
+
<div class="part__grid">
|
|
259
|
+
<!-- 여백 주석 단 — 독자가 실제로 던질 질문이어야 한다.
|
|
260
|
+
채우려고 넣으면 안 넣느니만 못하다. -->
|
|
261
|
+
<aside class="marg" aria-label="이 절을 읽는 안내">
|
|
262
|
+
<div class="marg__b marg__b--why">
|
|
263
|
+
<p class="marg__k"><span class="marg__i" aria-hidden="true">?</span>Why</p>
|
|
264
|
+
<p class="marg__t"><span class="sn">이 절을 왜 읽는가? — 독자의 질문 그대로.</span></p>
|
|
265
|
+
</div>
|
|
266
|
+
<div class="marg__b marg__b--key">
|
|
267
|
+
<p class="marg__k"><span class="marg__i" aria-hidden="true">!</span>Key Point</p>
|
|
268
|
+
<p class="marg__t"><span class="sn">한 줄 요지.</span><span class="sn">이 절에서 하나만 가져간다면 이것임.</span></p>
|
|
269
|
+
</div>
|
|
270
|
+
<div class="marg__b marg__b--adv">
|
|
271
|
+
<p class="marg__k"><span class="marg__i" aria-hidden="true">i</span>Advice</p>
|
|
272
|
+
<p class="marg__t"><span class="sn">어디를 참조해야 하는지.</span><span class="sn">근거의 출처를 가리킴.</span></p>
|
|
273
|
+
</div>
|
|
274
|
+
</aside>
|
|
275
|
+
|
|
276
|
+
<div class="part__body">
|
|
277
|
+
|
|
278
|
+
<!-- 항목 — 카드가 아니다. 위 2px 괘선이 가른다. -->
|
|
279
|
+
<ol class="asks">
|
|
280
|
+
<li class="ask is-urgent" id="case-01-1">
|
|
281
|
+
<div class="ask__head">
|
|
282
|
+
<span class="ask__no">01-1</span>
|
|
283
|
+
<h4 class="ask__title">가장 시급한 항목의 제목. 개조식으로 「~ 필요」.</h4>
|
|
284
|
+
<span class="ask__flag">가장 시급</span>
|
|
285
|
+
<a class="ask__ref" href="#case-01-2">근거 01-2</a>
|
|
286
|
+
</div>
|
|
287
|
+
<p class="ask__body"><span class="sn">현재 상태와 원인, 그리고 조치 시 무엇이 달라지는지를 개조식으로 씀.</span><span class="sn">문단은 한글 43자 안에서 끊기며, 행간은 1.75 임.</span><span class="sn">근거가 있으면 단정하고 없으면 확인하지 못한 범위를 명시함.</span><span class="sn">판단의 출처는 「근거」 단추로 잇고, 본문 안에서는 밑줄 링크로 가리킴.</span><span class="sn">굵게 하지 않음.</span></p>
|
|
288
|
+
</li>
|
|
289
|
+
<li class="ask" id="case-01-2">
|
|
290
|
+
<div class="ask__head">
|
|
291
|
+
<span class="ask__no">01-2</span>
|
|
292
|
+
<h4 class="ask__title">둘째 항목의 제목.</h4>
|
|
293
|
+
</div>
|
|
294
|
+
<p class="ask__body"><span class="sn">둘째 항목의 설명.</span><span class="sn">상태를 먼저 적고 그 다음에 원인을, 마지막에 필요한 조치를 적음.</span><span class="sn">조치가 상대 쪽에 있으면 무엇이 준비되어야 하는지를 구체적으로 씀.</span><span class="sn">「개선이 필요함」 같은 추상 주어는 쓰지 않음.</span></p>
|
|
295
|
+
</li>
|
|
296
|
+
</ol>
|
|
297
|
+
|
|
298
|
+
<!-- 대조표 — 4괘선. 감싸개 상자를 두르지 마라.
|
|
299
|
+
색 밴드가 「표 위 굵은 줄」을 겸한다. -->
|
|
300
|
+
<div class="board-wrap" style="margin-top: var(--s8)">
|
|
301
|
+
<table class="board">
|
|
302
|
+
<caption class="board__cap"><span class="board__band"><span class="tabnum">표 1-1</span>항목별 상태와 확인 방법<span class="legend"><span class="legend__i"><i class="dot dot--full" aria-hidden="true"></i>직접 확인</span><span class="legend__i"><i class="dot dot--half" aria-hidden="true"></i>간접 확인</span><span class="legend__i"><i class="dot dot--none" aria-hidden="true"></i>확인 안 함</span></span></span><span class="board__caphint">항목을 누르면 해당 건의 상세로 이동함.</span></caption>
|
|
303
|
+
<thead>
|
|
304
|
+
<tr><th scope="col">항목</th><th scope="col">상태</th><th scope="col">확인 방법</th></tr>
|
|
305
|
+
</thead>
|
|
306
|
+
<tbody>
|
|
307
|
+
<tr class="grp"><th scope="colgroup" colspan="3">끝난 것<span>1건</span></th></tr>
|
|
308
|
+
<tr>
|
|
309
|
+
<th scope="row"><a class="ref" href="#case-01-1">첫째 항목</a></th>
|
|
310
|
+
<td><span class="tag tag--done">완료</span></td>
|
|
311
|
+
<td><span class="lvl lvl--full"><i class="dot dot--full" aria-hidden="true"></i>직접 확인</span></td>
|
|
312
|
+
</tr>
|
|
313
|
+
<tr class="grp"><th scope="colgroup" colspan="3">대기<span>1건</span></th></tr>
|
|
314
|
+
<tr>
|
|
315
|
+
<th scope="row"><a class="ref" href="#case-01-2">둘째 항목</a></th>
|
|
316
|
+
<td><span class="tag tag--wait">대기</span></td>
|
|
317
|
+
<td><span class="lvl lvl--none"><i class="dot dot--none" aria-hidden="true"></i>확인 안 함</span></td>
|
|
318
|
+
</tr>
|
|
319
|
+
</tbody>
|
|
320
|
+
</table>
|
|
321
|
+
</div>
|
|
322
|
+
<p class="note"><span class="sn">표가 뜻하는 바의 한정 조건.</span><span class="sn">확인하지 못한 범위를 여기 명시함.</span></p>
|
|
323
|
+
|
|
324
|
+
<!-- 양식표(라벨-값) — 「제목 + 표」이지 카드가 아니다.
|
|
325
|
+
머리의 2px 밑줄이 「표 위 굵은 줄」이다. -->
|
|
326
|
+
<div class="sheets" style="margin-top: var(--s8)">
|
|
327
|
+
<article class="sheet" id="case-01-3">
|
|
328
|
+
<header class="sheet__head">
|
|
329
|
+
<span class="sheet__no">01-3</span>
|
|
330
|
+
<h4 class="sheet__title" id="t-01-3">양식표로 적는 건의 제목</h4>
|
|
331
|
+
<span class="tag tag--live">직접 확인함</span>
|
|
332
|
+
</header>
|
|
333
|
+
<table class="sheet__grid" aria-labelledby="t-01-3">
|
|
334
|
+
<tbody>
|
|
335
|
+
<tr><th scope="row">증상</th><td><p><span class="sn">무엇이 어떻게 나타나는지를 관찰한 그대로 적음.</span><span class="sn">해석을 섞지 않음.</span></p></td></tr>
|
|
336
|
+
<tr><th scope="row">원인</th><td><p><span class="sn">왜 그런지.</span><span class="sn">근거가 있으면 단정하고, 추정이면 추정임을 밝힘.</span><span class="sn">확인 방법이 달라지므로 이 둘을 섞지 않음.</span></p></td></tr>
|
|
337
|
+
<tr><th scope="row">조치</th><td><p><span class="sn">무엇을 했는지와 어디까지 확인했는지.</span><span class="sn">「직접 확인」과 「산출물 대조」는 근거의 세기가 다르므로 구분해 적음.</span></p></td></tr>
|
|
338
|
+
<tr class="open"><th scope="row">미결</th><td><p><span class="sn">아직 남은 것.</span><span class="sn">이 행이 독자에게 넘어가는 몫이며, 앞 절의 요청 항목으로 이어짐.</span></p></td></tr>
|
|
339
|
+
</tbody>
|
|
340
|
+
</table>
|
|
341
|
+
</article>
|
|
342
|
+
</div>
|
|
343
|
+
|
|
344
|
+
<!-- 흐름도 — 글로 세 번 반복해 설명하던 것을 한 번에 보이게.
|
|
345
|
+
내용에서 도출된 것만. 장식용 도해는 금지. -->
|
|
346
|
+
<figure class="flow" aria-labelledby="fig-1-1" style="margin-top: var(--s8)">
|
|
347
|
+
<figcaption class="figcap" id="fig-1-1"><span class="fignum">그림 1-1</span>세 단계가 연결되는 순서</figcaption>
|
|
348
|
+
<div class="flow__wrap">
|
|
349
|
+
<div class="flow__head" aria-hidden="true">
|
|
350
|
+
<span class="flow__hk">건</span>
|
|
351
|
+
<span class="flow__hk flow__hk--srv">상대가 준비할 것</span>
|
|
352
|
+
<span class="flow__hk">우리 (준비 완료)</span>
|
|
353
|
+
<span class="flow__hk flow__hk--out">그러면</span>
|
|
354
|
+
</div>
|
|
355
|
+
<ol class="flow__rows">
|
|
356
|
+
<li class="flow__row">
|
|
357
|
+
<span class="flow__no"><a class="ref" href="#case-01-2">01-2</a></span>
|
|
358
|
+
<span class="flow__c flow__c--srv" data-k="상대가 준비할 것">준비가 필요한 것<small>구체적으로 무엇인지</small></span>
|
|
359
|
+
<span class="flow__c flow__c--app" data-k="우리 (준비 완료)">이미 끝난 것<small>수정 소요 없음</small></span>
|
|
360
|
+
<span class="flow__c flow__c--out" data-k="그러면">그 결과 무엇이 되는지</span>
|
|
361
|
+
</li>
|
|
362
|
+
</ol>
|
|
363
|
+
</div>
|
|
364
|
+
</figure>
|
|
365
|
+
<p class="note"><span class="sn">가운데 칸은 이미 종료된 사항.</span><span class="sn">왼쪽 칸만 준비되면 오른쪽이 그대로 따라옴.</span></p>
|
|
366
|
+
|
|
367
|
+
</div>
|
|
368
|
+
</div>
|
|
369
|
+
</section>
|
|
370
|
+
<!-- ══ 절 복제 끝 ═════════════════════════════════════════ -->
|
|
371
|
+
|
|
372
|
+
<!-- PART 간지는 절 묶음마다 하나. 절이 하나뿐인 묶음도 간지를 둔다. -->
|
|
373
|
+
<section class="pt" id="part-2" data-part-no="2" aria-labelledby="pt-2">
|
|
374
|
+
<div class="pt__panel">
|
|
375
|
+
<p class="pt__label">PART<span class="pt__no">II</span></p>
|
|
376
|
+
<h2 class="pt__title" id="pt-2">둘째 묶음</h2>
|
|
377
|
+
<p class="pt__lede">이 묶음이 무엇을 담는지 한 줄.</p>
|
|
378
|
+
<div class="pt__grid">
|
|
379
|
+
<ol class="pt__list">
|
|
380
|
+
<li><a href="#sec-2"><b>제2절</b><span>둘째 절</span></a></li>
|
|
381
|
+
</ol>
|
|
382
|
+
<div class="pt__ask">
|
|
383
|
+
<p class="pt__askk">이 PART 가 답하는 질문</p>
|
|
384
|
+
<ul class="pt__askl">
|
|
385
|
+
<li>어디까지 확인한 것인가?</li>
|
|
386
|
+
</ul>
|
|
387
|
+
</div>
|
|
388
|
+
</div>
|
|
389
|
+
</div>
|
|
390
|
+
</section>
|
|
391
|
+
|
|
392
|
+
<!-- 절의 최소형: 간지 + 두 단 본문 + 강조 박스 하나 -->
|
|
393
|
+
<section class="part" id="sec-2" data-chapter="02" data-part-no="2">
|
|
394
|
+
<header class="part__head">
|
|
395
|
+
<span class="part__no">제2절</span>
|
|
396
|
+
<div class="part__main">
|
|
397
|
+
<div class="part__line">
|
|
398
|
+
<h3 class="part__title">둘째 절</h3>
|
|
399
|
+
<span class="part__count">1항</span>
|
|
400
|
+
</div>
|
|
401
|
+
<p class="part__lede"><span class="sn">이번 회차의 확인 범위 밖이었던 사항.</span><span class="sn">앞 절과 함께 읽어야 정확함.</span></p>
|
|
402
|
+
</div>
|
|
403
|
+
</header>
|
|
404
|
+
|
|
405
|
+
<div class="part__grid">
|
|
406
|
+
<aside class="marg" aria-label="이 절을 읽는 안내">
|
|
407
|
+
<div class="marg__b marg__b--why">
|
|
408
|
+
<p class="marg__k"><span class="marg__i" aria-hidden="true">?</span>Why</p>
|
|
409
|
+
<p class="marg__t">앞 절의 「확인함」은 어디까지인가?</p>
|
|
410
|
+
</div>
|
|
411
|
+
<div class="marg__b marg__b--key">
|
|
412
|
+
<p class="marg__k"><span class="marg__i" aria-hidden="true">!</span>Key Point</p>
|
|
413
|
+
<p class="marg__t"><span class="sn">확인하지 못한 범위를 감추지 않고 여기 모아 둠.</span></p>
|
|
414
|
+
</div>
|
|
415
|
+
<div class="marg__b marg__b--adv">
|
|
416
|
+
<p class="marg__k"><span class="marg__i" aria-hidden="true">i</span>Advice</p>
|
|
417
|
+
<p class="marg__t"><span class="sn">이 절과 함께 읽어야 앞 절의 확인 범위가 정확해짐.</span></p>
|
|
418
|
+
</div>
|
|
419
|
+
</aside>
|
|
420
|
+
|
|
421
|
+
<div class="part__body">
|
|
422
|
+
<!-- 강조 박스 — 면은 강조에만. 상자 테두리를 두르지 않는다. -->
|
|
423
|
+
<aside class="limit">
|
|
424
|
+
<p class="limit__k">이번 회차 미확인 사항</p>
|
|
425
|
+
<ul class="limit__list">
|
|
426
|
+
<li><span class="sn">무엇을 확인하지 못했는지, 그리고 왜 못했는지를 적음.</span><span class="sn">대체 환경에서만 확인한 것은 실제 환경 확인과 구분해 표기함.</span><span class="sn">다음 회차에 무엇을 확인할지도 함께 적어 범위를 닫음.</span></li>
|
|
427
|
+
</ul>
|
|
428
|
+
</aside>
|
|
429
|
+
</div>
|
|
430
|
+
</div>
|
|
431
|
+
</section>
|
|
432
|
+
|
|
433
|
+
<!-- ── 부록 — 본문에서 반복 참조되는 기준·환경을 뒤로 뺀다 ── -->
|
|
434
|
+
<section class="apx" aria-labelledby="apx-h">
|
|
435
|
+
<h2 class="apx__h" id="apx-h">부록<span class="apx__en">APPENDIX</span></h2>
|
|
436
|
+
<div class="apx__b">
|
|
437
|
+
<p class="apx__t" id="apx-1"><span class="apx__no">부록 1</span>「확인 방법」 판정 기준</p>
|
|
438
|
+
<div class="apx__wrap">
|
|
439
|
+
<table class="apx__g" aria-labelledby="apx-1">
|
|
440
|
+
<tbody>
|
|
441
|
+
<tr>
|
|
442
|
+
<th scope="row"><span class="lvl lvl--full"><i class="dot dot--full" aria-hidden="true"></i>직접 확인</span></th>
|
|
443
|
+
<td><span class="sn">실제로 눈으로 본 것.</span><span class="sn">가장 강한 근거.</span></td>
|
|
444
|
+
</tr>
|
|
445
|
+
<tr>
|
|
446
|
+
<th scope="row"><span class="lvl lvl--half"><i class="dot dot--half" aria-hidden="true"></i>간접 확인</span></th>
|
|
447
|
+
<td><span class="sn">대체 환경에서 본 것.</span><span class="sn"><small>실제와 동일하지 않으므로 구분함.</small></span></td>
|
|
448
|
+
</tr>
|
|
449
|
+
<tr>
|
|
450
|
+
<th scope="row"><span class="lvl lvl--none"><i class="dot dot--none" aria-hidden="true"></i>확인 안 함</span></th>
|
|
451
|
+
<td>확인 자체를 수행하지 않은 상태.</td>
|
|
452
|
+
</tr>
|
|
453
|
+
</tbody>
|
|
454
|
+
</table>
|
|
455
|
+
</div>
|
|
456
|
+
<p class="note"><span class="sn">이 기준은 본문 표의 「확인 방법」 열에 그대로 적용됨.</span></p>
|
|
457
|
+
</div>
|
|
458
|
+
</section>
|
|
459
|
+
|
|
460
|
+
<!-- ── 판권지 — 표지와 같은 문법으로 문서를 닫는다 ───────── -->
|
|
461
|
+
<footer class="eof">
|
|
462
|
+
<div class="colophon">
|
|
463
|
+
<p class="colophon__t">문서 제목</p>
|
|
464
|
+
<p class="colophon__sub">대상 · 문서번호 ORG-0000-00</p>
|
|
465
|
+
<dl class="colophon__grid">
|
|
466
|
+
<div><dt>작성</dt><dd>0000년 0월 0일</dd></div>
|
|
467
|
+
<div><dt>작성처</dt><dd>발행처</dd></div>
|
|
468
|
+
<div><dt>수신</dt><dd>누가 읽는가</dd></div>
|
|
469
|
+
</dl>
|
|
470
|
+
<p class="colophon__mark">이 문서는 0000년 0월 0일 기준임.<b>내부 공유용</b></p>
|
|
471
|
+
<p class="colophon__note"><span class="sn">※ 독자가 오해할 수 있는 것을 여기 적음.</span><span class="sn">예: 화면 표시가 작성자에게 전달되지 않는다는 사실.</span></p>
|
|
472
|
+
</div>
|
|
473
|
+
<p class="eof__note">이후 진행 사항은 차기 회차 보고로 공유 예정.</p>
|
|
474
|
+
</footer>
|
|
475
|
+
</main>
|
|
476
|
+
</body>
|
|
477
|
+
</html>
|
|
@@ -39,19 +39,21 @@ version: "1.1.0"
|
|
|
39
39
|
사건도 들어 있지만, 그 자리에서 서버를 묻는 것은 아닙니다. 옆 창을 찾을 때는 `agents`,
|
|
40
40
|
다른 노트북·클라우드가 **무엇을 했나**는 `delta`/`world`, 그쪽에 **말을 거는** 것은 `mail` 입니다.
|
|
41
41
|
|
|
42
|
-
## 실행 경로
|
|
42
|
+
## 실행 경로
|
|
43
43
|
|
|
44
44
|
```bash
|
|
45
|
-
|
|
45
|
+
gcell --version # → gcell 0.1.0
|
|
46
46
|
```
|
|
47
47
|
|
|
48
|
-
`gcell`
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
`install_cell` 이 `gcell` 을 PATH 에 겁니다(`/opt/homebrew/bin` · `/usr/local/bin` · `~/.local/bin` 중
|
|
49
|
+
PATH 에 있고 쓸 수 있는 첫 자리에 심링크). 전에는 안 걸어서 사람 손에서 「command not found」가
|
|
50
|
+
났고, 안내가 `api.env` 를 `grep|cut` 하는 두 줄이었습니다 — 파이프를 읽을 줄 아는 사람만 세포에게
|
|
51
|
+
물을 수 있었습니다(2026-08-27).
|
|
52
|
+
|
|
53
|
+
`gcell` 이 안 잡히면(세 자리 중 어디도 PATH 에 없는 기계) 전체 경로로 부르세요 — 그것이 정본입니다:
|
|
51
54
|
|
|
52
55
|
```bash
|
|
53
|
-
|
|
54
|
-
GC=${GC:-~/.config/genetics/bin/gcell}
|
|
56
|
+
~/.config/genetics/bin/gcell --version
|
|
55
57
|
```
|
|
56
58
|
|
|
57
59
|
## 묻는 법 — 명령 넷
|