@qualisoft/ai-skills 1.1.0 → 1.4.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/CHANGELOG.md +181 -0
- package/README.md +35 -1
- package/package.json +1 -1
- package/skills/project-init/SKILL.md +123 -0
- package/skills/project-init/build.mjs +746 -8
- package/skills/project-init/templates/script/_purpose.md +29 -0
- package/skills/project-init/templates/script/_scope.md +35 -0
- package/skills/project-init/templates/script/_style.md +47 -0
- package/skills/project-init/templates/script/csv.md +36 -0
- package/skills/project-init/templates/script/docx.md +35 -0
- package/skills/project-init/templates/script/excel.md +62 -0
- package/skills/project-init/templates/script/pdf.md +42 -0
- package/skills/project-init/templates/script/pptx.md +39 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,175 @@
|
|
|
1
1
|
# 변경 이력
|
|
2
2
|
|
|
3
|
+
## 1.4.0 — 2026-09-14
|
|
4
|
+
|
|
5
|
+
대본을 **고객 송부용**으로 다시 세웠습니다. 세 가지 문제를 고쳤습니다.
|
|
6
|
+
|
|
7
|
+
### ① 불필요한 정보가 산출물에 섞여 들어갔습니다
|
|
8
|
+
|
|
9
|
+
산출물은 고객사에 송부되는데, 원본 문서는 우리 작업용이라 고객이 볼 필요가 없는
|
|
10
|
+
것이 섞여 있습니다. `_scope.md` 에서 걸러냅니다.
|
|
11
|
+
|
|
12
|
+
프론트매터 전체 · **담당자 이메일** · `미결정` 섹션 · `변경 이력` · `[[문서-id]]`
|
|
13
|
+
링크 표기 · 원본 파일명·경로 · 템플릿 작성 지침 · 빈 표와 빈 섹션.
|
|
14
|
+
|
|
15
|
+
`TODO(...)` 는 **지우지 않습니다.** 본문에서는 `협의 중` 으로 바꾸고, 마지막에
|
|
16
|
+
`고객 확인 필요 항목` 으로 모아 보여줍니다. 없는 척하면 고객이 나중에 발견합니다.
|
|
17
|
+
|
|
18
|
+
### ② 엑셀을 열면 "파일에 오류가 있습니다 — 복구했습니다"
|
|
19
|
+
|
|
20
|
+
`openpyxl` 로 엑셀 표 기능을 쓸 때 **머리행 이름이 비거나 중복되면** 엑셀이 파일을
|
|
21
|
+
복구합니다. 마크다운 표를 그대로 옮기면 자주 걸립니다. 재현해서 확인했습니다:
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
| | | → tableColumn name="" ×2 → 복구
|
|
25
|
+
| 구분 | 구분 | → tableColumn name="구분" ×2 → 복구
|
|
26
|
+
| 항목 | 값 | (데이터 행 없음) → 복구
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
`excel.md` 에 네 가지를 규칙으로 못박았습니다 — 빈 머리행 채우기, 중복 이름 구분,
|
|
30
|
+
데이터 없는 표에는 표 기능 적용 금지, `displayName` 은 공백 없이 유일하게.
|
|
31
|
+
|
|
32
|
+
### ③ 파일을 봐도 무슨 문서인지 몰랐습니다
|
|
33
|
+
|
|
34
|
+
서식만 고정하면 **"예쁘지만 목적을 모르는 파일"** 이 나옵니다. 두 겹을 더 넣었습니다.
|
|
35
|
+
|
|
36
|
+
**`_purpose.md` — 목적 블록을 맨 앞에 강제합니다.**
|
|
37
|
+
답하는 질문 한 줄 → 핵심 수치 3~4개(원본에서 세어서) → 받는 분이 할 일.
|
|
38
|
+
그 뒤 가장 중요한 표 하나, 그 다음 상세. **원본 섹션 순서를 그대로 따르지
|
|
39
|
+
않습니다** — 원본은 우리가 쓰기 좋은 순서이고 산출물은 받는 사람이 읽기 좋은
|
|
40
|
+
순서여야 합니다.
|
|
41
|
+
|
|
42
|
+
**문서 종류별 구성 지침(`DOC_SHAPE`)** — 같은 서식이어도 뼈대는 문서마다 다릅니다.
|
|
43
|
+
|
|
44
|
+
| 문서 | 앞에 세우는 것 |
|
|
45
|
+
| --- | --- |
|
|
46
|
+
| 산출물 정의서 | 공정별 납품 목록 · 제외한 산출물 |
|
|
47
|
+
| WBS · 일정 | **마일스톤을 본표와 분리** · 지연 과업 강조 |
|
|
48
|
+
| 요구사항 정의서 | 요구사항 ↔ 과업 ↔ 산출물이 같은 행 · 미수용 사유 |
|
|
49
|
+
| 화면 설계서 | 화면 목록 먼저, 화면마다 한 줄 설명 |
|
|
50
|
+
| 데이터 모델 | 한글 논리명을 물리명보다 앞에 |
|
|
51
|
+
| QA · 테스트 | 고객이 하는 확인(UAT)과 우리가 하는 확인을 구분 |
|
|
52
|
+
| 그 밖 | 결론을 앞으로, 행 수가 가장 많은 표를 본표로 |
|
|
53
|
+
|
|
54
|
+
새 문서 종류는 `DOC_SHAPE` 에 한 줄 추가하면 됩니다.
|
|
55
|
+
|
|
56
|
+
### 대본 구조
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
DOC_SHAPE 이 문서는 무엇을 앞에 세우는가 (build.mjs)
|
|
60
|
+
_purpose 받는 사람이 첫 화면에서 알 것 (templates/script/)
|
|
61
|
+
_scope 무엇을 빼는가
|
|
62
|
+
_style 색 · 글자 · 표 — 값 고정
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### 검증
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
치환 잔여 0건 · 문서별 구성 지침 다르게 주입 확인
|
|
69
|
+
01-project-brief → "이 문서는 **사업 개요**"
|
|
70
|
+
07-screen-spec → "이 문서는 **화면 설계서**"
|
|
71
|
+
정제 규칙 · 목적 블록 · 표 손상 규칙 모두 대본에 포함 확인
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
## 1.3.0 — 2026-09-14
|
|
76
|
+
|
|
77
|
+
### 파일 스크립트를 **대본**으로 바꿨습니다
|
|
78
|
+
|
|
79
|
+
1.2.0 은 파이썬 코드를 내줬습니다. 실제로 필요한 건 코드가 아니라 **AI 에게 줄
|
|
80
|
+
지시문**이었습니다. 이제 `파일 스크립트` 버튼을 누르면 복사해서 에이전트에 붙여
|
|
81
|
+
넣을 대본이 나옵니다. 파이썬도, `pip install` 도 필요 없습니다.
|
|
82
|
+
|
|
83
|
+
형식은 PDF · Excel · PowerPoint · Word · CSV 다섯입니다.
|
|
84
|
+
|
|
85
|
+
**서식 규격이 대본 안에 박혀 있습니다.** 색 여섯 개, 글자 위계 네 단계, 표 스타일,
|
|
86
|
+
하지 말 것 목록이 고정되어 모든 대본에 들어갑니다. 착수 때 만들든 중간에 만들든,
|
|
87
|
+
누가 어떤 도구로 만들든 **같은 모양이 나옵니다.** 매번 "모던하게 만들어 줘" 라고
|
|
88
|
+
말하면 매번 다른 것이 나오기 때문입니다.
|
|
89
|
+
|
|
90
|
+
대본은 원본 `.md` 경로만 가리키고 "이 파일을 먼저 읽어라" 라고 지시합니다. 문서를
|
|
91
|
+
고친 뒤 같은 대본을 다시 써도 최신 내용으로 만들어집니다.
|
|
92
|
+
|
|
93
|
+
서식을 바꾸려면 `skills/project-init/templates/script/*.md` 를 고칩니다.
|
|
94
|
+
|
|
95
|
+
### 안 쓴 메뉴를 검정 점으로 죽여 둡니다
|
|
96
|
+
|
|
97
|
+
기획안을 근거로 메뉴는 만들어졌지만 끝까지 손대지 않는 문서가 생깁니다. 그런 문서를
|
|
98
|
+
"작성 중"으로 두면 진행률이 영원히 낮게 깔리고, 무엇이 남은 일이고 무엇이 애초에
|
|
99
|
+
필요 없던 항목인지 구분되지 않습니다.
|
|
100
|
+
|
|
101
|
+
한 번도 쓰이지 않은 문서는 좌측 메뉴에서 **노란 점이 검정 점으로** 바뀌고 이름이
|
|
102
|
+
흐려집니다. 판정 기준:
|
|
103
|
+
|
|
104
|
+
| 신호 | 판정 |
|
|
105
|
+
| --- | --- |
|
|
106
|
+
| 템플릿 골격을 뺀 실질 글자 수 ≥ 400 | 쓰임 |
|
|
107
|
+
| `status` 가 `draft` 가 아님 (`log` 템플릿 제외) | 쓰임 |
|
|
108
|
+
| 추적 ID 를 본문에 정의 (코드 블록 예시 제외) | 쓰임 |
|
|
109
|
+
| 위 어느 것도 아님 | **안 쓰임 — 검정 점** |
|
|
110
|
+
|
|
111
|
+
임계값 400 은 실측으로 잡았습니다 — 갓 만든 문서 37~265, 한 번이라도 채운 문서
|
|
112
|
+
996 이상.
|
|
113
|
+
|
|
114
|
+
### 사이드바 상단에서 비활성을 직접 관리합니다
|
|
115
|
+
|
|
116
|
+
**`비활성 관리`** 를 켜면 메뉴마다 체크박스가 생깁니다. 자동 판정을 사람이 덮어쓸
|
|
117
|
+
수 있습니다. 덮어쓴 값은 문서 id 로 `localStorage` 에 남아 **다시 빌드해도
|
|
118
|
+
유지됩니다.** 자동 판정과 같아지면 저장을 지워 쓸데없는 기록을 남기지 않습니다.
|
|
119
|
+
|
|
120
|
+
### 검증
|
|
121
|
+
|
|
122
|
+
브라우저에서 확인했습니다.
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
갓 만든 프로젝트 15개 중 13개 검정 점 · "비활성 13 / 15"
|
|
126
|
+
실제 쓰는 프로젝트 14개 전부 정상 (오탐 0)
|
|
127
|
+
검정 점 rgb(0,0,0) + 테두리 (다크 모드에서도 보임)
|
|
128
|
+
체크 클릭 문서 이동 없음 · 저장 · 새로고침 후 유지
|
|
129
|
+
대본 치환 잔여 0건 · 서식 규격 포함 확인
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
## 1.2.0 — 2026-09-14
|
|
134
|
+
|
|
135
|
+
문서를 **산출물 파일로 뽑는 스크립트**를 붙였습니다.
|
|
136
|
+
|
|
137
|
+
빌드한 HTML 의 각 문서 우측 상단에 `파일 스크립트` 버튼이 생깁니다. 누르면 모달이
|
|
138
|
+
열리고, 형식을 고르면 그 형식으로 문서를 만드는 파이썬 스크립트가 나옵니다.
|
|
139
|
+
복사해서 그대로 실행하면 됩니다.
|
|
140
|
+
|
|
141
|
+
| 형식 | 필요한 것 | 결과 |
|
|
142
|
+
| --- | --- | --- |
|
|
143
|
+
| PDF | `pip install reportlab` | 표지·머리말·쪽번호, 줄무늬 표. 한글은 내장 CID 폰트라 폰트 파일이 필요 없습니다 |
|
|
144
|
+
| Excel (XLSX) | `pip install openpyxl` | 본문 시트 + 표마다 별도 시트 (정렬·필터 켜짐) |
|
|
145
|
+
| PowerPoint (PPTX) | `pip install python-pptx` | 표지 + `##` 하나당 슬라이드 하나 |
|
|
146
|
+
| Word (DOCX) | `pip install python-docx` | 한글 서체·표 음영 적용 |
|
|
147
|
+
| CSV | 없음 — 표준 라이브러리 | 개요 1개 + 표마다 1개 (엑셀용 BOM) |
|
|
148
|
+
|
|
149
|
+
**스크립트는 내용을 품지 않습니다.** 원본 `.md` 경로만 박혀 있고 실행할 때 그 파일을
|
|
150
|
+
다시 읽습니다. 그래서 문서를 고친 뒤 **같은 스크립트를 다시 돌리면 최신 내용**이
|
|
151
|
+
나옵니다. 계속 최신화되는 문서를 다루는 데 필요한 성질입니다.
|
|
152
|
+
|
|
153
|
+
HTML 크기도 문서 수와 무관합니다 — 스크립트는 한 벌만 들어가고 파일명은 모달을 열 때
|
|
154
|
+
브라우저에서 치환합니다.
|
|
155
|
+
|
|
156
|
+
서식을 바꾸려면 `skills/project-init/templates/export/*.py` 를 고칩니다.
|
|
157
|
+
`build.mjs` 는 그 파일을 읽어 나르기만 합니다.
|
|
158
|
+
|
|
159
|
+
### 검증
|
|
160
|
+
|
|
161
|
+
5종 모두 실제 문서(`07-screen-spec.md`, 183줄·표 20개)로 생성해 확인했습니다.
|
|
162
|
+
|
|
163
|
+
```
|
|
164
|
+
CSV 7개 파일 PDF 8쪽 · 한글 정상
|
|
165
|
+
Excel 본문 + 표 20시트 DOCX 42KB
|
|
166
|
+
PPTX 59KB
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
브라우저에서도 확인했습니다 — 문서 14개 전부에 버튼, 형식 5종, 치환 잔여 0건,
|
|
170
|
+
모달 가운데 정렬, 183줄 스크롤, 다크 모드.
|
|
171
|
+
|
|
172
|
+
|
|
3
173
|
## 1.1.0 — 2026-09-11
|
|
4
174
|
|
|
5
175
|
설치 위치와 소유 판정을 고쳤습니다. **1.0.0 사용자는 전원 재설치가 필요합니다.**
|
|
@@ -10,6 +180,17 @@ npx @qualisoft/ai-skills@latest install --force
|
|
|
10
180
|
|
|
11
181
|
> 직접 고친 스킬이 있으면 `--force` 가 그 디렉터리를 지웁니다. 먼저 백업하세요.
|
|
12
182
|
|
|
183
|
+
> **`npx` 가 옛 버전을 실행하는 경우** — 과거에 `npm i -g @qualisoft/ai-skills` 로
|
|
184
|
+
> 전역 설치를 한 적이 있으면, `npx` 는 레지스트리에서 최신을 받지 않고 **그 전역
|
|
185
|
+
> 설치본을 그대로 실행합니다.** 버전을 확인하고, 낡았으면 전역 설치를 갱신하세요.
|
|
186
|
+
>
|
|
187
|
+
> ```bash
|
|
188
|
+
> npm ls -g --depth=0 | grep qualisoft # 전역 설치 버전 확인
|
|
189
|
+
> npm i -g @qualisoft/ai-skills@latest # 갱신
|
|
190
|
+
> ```
|
|
191
|
+
>
|
|
192
|
+
> 전역 설치를 쓰지 않는다면 버전을 명시하면 확실합니다 — `npx @qualisoft/ai-skills@latest install`
|
|
193
|
+
|
|
13
194
|
### 고친 것
|
|
14
195
|
|
|
15
196
|
**① npx 캐시를 직접 가리키던 문제** — 모든 플랫폼 해당
|
package/README.md
CHANGED
|
@@ -165,7 +165,30 @@ large 19~21개 다인원, 6개월 이상
|
|
|
165
165
|
**비유하자면** — 택배 배송 알림과 같습니다.
|
|
166
166
|
```
|
|
167
167
|
|
|
168
|
-
### 5.
|
|
168
|
+
### 5. 산출물은 고객에게 바로 보낼 수 있게 나온다
|
|
169
|
+
|
|
170
|
+
각 문서 우측 상단 **`파일 스크립트`** 버튼 → 형식(PDF · Excel · PPT · Word · CSV)을 고르면 **AI 에게 줄 대본**이 나옵니다. 복사해서 에이전트에 붙여 넣으면 됩니다. 코드가 아니라 지시문이라 설치할 것이 없습니다.
|
|
171
|
+
|
|
172
|
+
대본은 네 겹으로 쌓입니다.
|
|
173
|
+
|
|
174
|
+
| 겹 | 정하는 것 |
|
|
175
|
+
| --- | --- |
|
|
176
|
+
| 구성 | **이 문서는 무엇을 앞에 세우는가** — 일정표는 마일스톤을, 요구사항은 추적 관계를 |
|
|
177
|
+
| 목적 | 답하는 질문 한 줄 · 핵심 수치 · 받는 분이 할 일을 맨 앞에 |
|
|
178
|
+
| 정제 | 담당자 이메일 · 미결정 · 변경 이력 · 내부 표기를 걸러냄 |
|
|
179
|
+
| 서식 | 색 여섯 개 · 글자 위계 네 단계 · 표 스타일. 값이 고정 |
|
|
180
|
+
|
|
181
|
+
**서식만 고정하면 "예쁘지만 목적을 모르는 파일"이 나옵니다.** 그래서 목적 블록을 강제하고, 문서 종류마다 본표로 세울 것을 따로 정합니다. 착수 때 만들든 중간에 만들든 같은 모양이 나옵니다.
|
|
182
|
+
|
|
183
|
+
대본은 원본 `.md` 를 가리킬 뿐 내용을 품지 않습니다. 문서를 고친 뒤 같은 대본을 다시 써도 최신 내용으로 만들어집니다.
|
|
184
|
+
|
|
185
|
+
### 6. 안 쓴 메뉴는 스스로 물러난다
|
|
186
|
+
|
|
187
|
+
기획안으로 메뉴는 만들어졌지만 끝까지 손대지 않는 문서가 생깁니다. 한 번도 쓰이지 않은 문서는 좌측 메뉴에서 **검정 점**으로 바뀌고 이름이 흐려집니다. 남은 일과 애초에 필요 없던 항목이 섞이지 않습니다.
|
|
188
|
+
|
|
189
|
+
사이드바 상단 **`비활성 관리`** 로 자동 판정을 직접 덮어쓸 수 있고, 그 값은 다시 빌드해도 유지됩니다.
|
|
190
|
+
|
|
191
|
+
### 7. 상용 라이브러리를 쓰지 않는다
|
|
169
192
|
|
|
170
193
|
`npm ls`가 비어 있습니다. `fs` · `path` · `url` · `zlib` 만 씁니다. 설치 시간도, 취약점 알림도, 라이선스 검토도 없습니다.
|
|
171
194
|
|
|
@@ -250,6 +273,17 @@ node skills/project-init/build.mjs selftest
|
|
|
250
273
|
npx @qualisoft/ai-skills@latest install --force
|
|
251
274
|
```
|
|
252
275
|
|
|
276
|
+
> **`npx` 가 옛 버전을 실행하는 경우** — 과거에 `npm i -g @qualisoft/ai-skills` 로
|
|
277
|
+
> 전역 설치를 한 적이 있으면, `npx` 는 레지스트리에서 최신을 받지 않고 **그 전역
|
|
278
|
+
> 설치본을 그대로 실행합니다.** 버전을 확인하고, 낡았으면 전역 설치를 갱신하세요.
|
|
279
|
+
>
|
|
280
|
+
> ```bash
|
|
281
|
+
> npm ls -g --depth=0 | grep qualisoft # 전역 설치 버전 확인
|
|
282
|
+
> npm i -g @qualisoft/ai-skills@latest # 갱신
|
|
283
|
+
> ```
|
|
284
|
+
>
|
|
285
|
+
> 전역 설치를 쓰지 않는다면 버전을 명시하면 확실합니다 — `npx @qualisoft/ai-skills@latest install`
|
|
286
|
+
|
|
253
287
|
## 저장소 · 문의
|
|
254
288
|
|
|
255
289
|
- 소스 — <https://github.com/qualisoft-service/project-ai-skills>
|
package/package.json
CHANGED
|
@@ -45,6 +45,47 @@ node ~/.claude/skills/project-init/build.mjs selftest
|
|
|
45
45
|
|
|
46
46
|
빌드한 HTML의 좌측 메뉴는 1~4단계 진행률을 자동 표시한다. 1단계는 인터뷰 기록, 2단계는 문서 상태(`draft` 25 / `review` 65 / `approved` 100 가중 평균), 3단계는 디자인 기록·스타일가이드·시안, 4단계는 `docs.config.json.stageProgress["4"]`를 기준으로 한다. 구현 스킬은 검증된 완료율만 4단계 값에 기록한다. 색은 0% 회색, 1~24% 빨강, 25~49% 노랑, 50~99% 주황, 100% 초록이다. 가이드·추적 메뉴는 회색, 홈처럼 주요 이동 항목만 파랑으로 분리한다.
|
|
47
47
|
|
|
48
|
+
## 연동 서비스
|
|
49
|
+
|
|
50
|
+
좌측에는 **`연동 서비스 관리` 한 줄만** 둔다(붙은 개수 배지 포함).
|
|
51
|
+
서비스를 전부 나열하면 사이드바가 문서 메뉴보다 길어져 연동 목록판이 된다.
|
|
52
|
+
목록은 `연동 서비스` 페이지가 맡고, 카드마다 **연동 방법 묻기 복사** 버튼이 있어
|
|
53
|
+
AI에게 그대로 붙여넣을 문구를 클립보드에 담는다.
|
|
54
|
+
|
|
55
|
+
**목록은 네 갈래에서 모은다. 아래일수록 약하다.**
|
|
56
|
+
|
|
57
|
+
| 출처 | 어디서 | 딱지 |
|
|
58
|
+
| --- | --- | --- |
|
|
59
|
+
| **설정** | `Docs/docs.config.json` 의 `integrations` — 사람이 적은 것. **언제나 이긴다** | `설정` |
|
|
60
|
+
| **자동 감지** | `git remote origin`(github.com이면 GitHub), 루트·`docs/`·`api/`·`openapi/` 의 `openapi\|swagger.(yaml\|yml\|json)` | `자동 감지` |
|
|
61
|
+
| **기획** | **문서 본문에 서비스 이름이 있으면 연동 예정으로 본다.** 근거 문서를 카드에 적는다 | `기획` |
|
|
62
|
+
| **추천** | 위 셋이 **하나도 없을 때만** 카탈로그 기본값으로 채운다 | `추천` |
|
|
63
|
+
|
|
64
|
+
**기획에서 잡는 것이 이 체계의 요점이다.** 연동은 설정 파일보다 기획서에 먼저 적힌다 —
|
|
65
|
+
“GCP 에 배포한다”, “카카오 알림톡을 쓴다”. 그걸 사람이 설정에 한 번 더 옮겨 적게 만들지 않는다.
|
|
66
|
+
`기획` 딱지는 자동으로 올라온 것이라 **오탐일 수 있다.** 아니면 설정에서 빼면 된다.
|
|
67
|
+
|
|
68
|
+
확정된 연동은 설정에 적는다. **설정이 항상 이긴다.**
|
|
69
|
+
|
|
70
|
+
```json
|
|
71
|
+
{
|
|
72
|
+
"integrations": {
|
|
73
|
+
"notion": { "url": "https://notion.so/...", "note": "회의록 DB" },
|
|
74
|
+
"figma": { "status": "none" },
|
|
75
|
+
"sentry": { "name": "Sentry", "slug": "sentry", "color": "362D59", "what": "에러 추적", "url": "https://sentry.io/acme" }
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
`status` 를 안 적으면 `url` 유무로 판정한다. 카탈로그에 없는 id도 쓸 수 있고,
|
|
81
|
+
그때는 `name`·`slug`(simple-icons)·`color`(# 없는 HEX)를 같이 적는다.
|
|
82
|
+
로고는 cdn.simpleicons.org 에서 받고, 막힌 환경에서는 브랜드색 이니셜로 떨어진다.
|
|
83
|
+
연동을 새로 붙였으면 `integrations` 를 고치고 `build` 를 다시 돌린다.
|
|
84
|
+
|
|
85
|
+
카탈로그에는 감지용 표기(`detect`)가 함께 들어 있다 — GitHub·Swagger·Notion·Figma·Slack·Jira(추천 기본값)와
|
|
86
|
+
GCP·AWS·Vercel·Cloudflare·GA4·GTM·Sentry·카카오·네이버·Stripe·토스페이먼츠·Firebase·Supabase·SendGrid·GitHub Actions.
|
|
87
|
+
새 서비스를 카탈로그에 넣을 때는 `detect` 를 같이 적는다. **없으면 기획에서 잡히지 않는다.**
|
|
88
|
+
|
|
48
89
|
## 작업 순서
|
|
49
90
|
|
|
50
91
|
**새 프로젝트를 시작할 때**
|
|
@@ -368,6 +409,88 @@ npm view react versions --json # 선택지가 필요하면
|
|
|
368
409
|
> 그 도메인의 프로젝트를 실제로 해보기 전에는 채우지 않는다.
|
|
369
410
|
> 겪지 않은 논점을 상상해서 적으면 다음 프로젝트가 틀린 지침을 물려받는다.
|
|
370
411
|
|
|
412
|
+
## 파일 스크립트 — 산출물 생성 대본
|
|
413
|
+
|
|
414
|
+
빌드한 HTML 의 각 문서 우측 상단 **`파일 스크립트`** 버튼을 누르면 형식(PDF ·
|
|
415
|
+
Excel · PowerPoint · Word · CSV)을 고를 수 있고, **AI 에게 줄 지시문(대본)** 이
|
|
416
|
+
나온다. 코드가 아니다. 복사해서 에이전트에 붙여 넣으면 그 형식으로 산출물을 만든다.
|
|
417
|
+
|
|
418
|
+
**전제: 이 산출물은 고객사에 송부된다.** 그래서 대본은 네 겹으로 쌓인다.
|
|
419
|
+
|
|
420
|
+
| 겹 | 파일 | 정하는 것 |
|
|
421
|
+
| --- | --- | --- |
|
|
422
|
+
| 구성 | `DOC_SHAPE` (build.mjs) | **이 문서는 무엇을 앞에 세우는가** — 문서 종류마다 다르다 |
|
|
423
|
+
| 목적 | `_purpose.md` | 받는 사람이 첫 화면에서 무엇을 알아야 하는가 |
|
|
424
|
+
| 정제 | `_scope.md` | 무엇을 빼는가 — 내부 정보·개인정보·미결정·이력 |
|
|
425
|
+
| 서식 | `_style.md` | 색·글자·표. 값이 고정이라 매번 같은 모양이 나온다 |
|
|
426
|
+
|
|
427
|
+
### 왜 네 겹인가
|
|
428
|
+
|
|
429
|
+
**서식만 고정하면 "예쁘지만 무슨 문서인지 모르는 파일"이 나온다.** 원본 순서대로
|
|
430
|
+
옮기면 우리가 쓰기 좋은 순서가 그대로 고객에게 간다. 그래서 목적 블록(답하는 질문 ·
|
|
431
|
+
핵심 수치 · 받는 분이 할 일)을 맨 앞에 강제하고, 문서 종류별 구성 지침으로 무엇을
|
|
432
|
+
본표로 세울지 정한다.
|
|
433
|
+
|
|
434
|
+
`DOC_SHAPE` 는 문서 `name` 으로 찾는다. 예를 들어 `wbs-schedule` 은 마일스톤을
|
|
435
|
+
본표와 분리해 세우게 하고, `requirements` 는 요구사항 ↔ 과업 ↔ 산출물이 같은 행에
|
|
436
|
+
보이게 한다. 없는 문서는 `DOC_SHAPE_DEFAULT` 를 쓴다 — 결론을 앞으로 올리고,
|
|
437
|
+
행 수가 가장 많은 표를 본표로 삼는다.
|
|
438
|
+
|
|
439
|
+
**새 문서 종류를 넣으면 `DOC_SHAPE` 에 한 줄 추가한다.** 안 넣어도 동작하지만,
|
|
440
|
+
그 문서는 "원본 순서대로"가 된다.
|
|
441
|
+
|
|
442
|
+
### 엑셀 표 손상 — 대본이 막는다
|
|
443
|
+
|
|
444
|
+
`openpyxl` 로 엑셀 표 기능을 쓰면 머리행 이름이 **비거나 중복될 때** 엑셀이
|
|
445
|
+
파일을 열며 *"파일에 오류가 있습니다 — 복구했습니다"* 를 띄운다. 마크다운 표를
|
|
446
|
+
그대로 옮기면 자주 걸린다. 실제로 재현해 확인했다:
|
|
447
|
+
|
|
448
|
+
```
|
|
449
|
+
| | | → tableColumn name="" ×2 → 복구
|
|
450
|
+
| 구분 | 구분 | → tableColumn name="구분" ×2 → 복구
|
|
451
|
+
| 항목 | 값 | (데이터 행 없음) → 복구
|
|
452
|
+
```
|
|
453
|
+
|
|
454
|
+
그래서 `excel.md` 에 네 가지를 규칙으로 못박았다 — 빈 머리행 채우기, 중복 이름
|
|
455
|
+
구분, 데이터 없는 표에는 표 기능 적용 금지, `displayName` 은 공백 없이 유일하게.
|
|
456
|
+
|
|
457
|
+
### 대본은 내용을 품지 않는다
|
|
458
|
+
|
|
459
|
+
원본 `.md` 경로만 가리키고 "이 파일을 먼저 읽어라" 라고 지시한다. 그래서 문서를
|
|
460
|
+
고친 뒤 같은 대본을 다시 써도 최신 내용으로 만들어지고, HTML 크기가 문서 수와
|
|
461
|
+
무관하다. 치환(`__DOC_FILE__` · `__DOC_TITLE__` · `__DOC_STEM__` · `__SHAPE__`)은
|
|
462
|
+
모달을 열 때 브라우저에서 일어난다.
|
|
463
|
+
|
|
464
|
+
서식이나 구성을 바꾸려면 **`templates/script/` 의 마크다운**과 **`DOC_SHAPE`** 를
|
|
465
|
+
고친다. 다른 곳은 건드리지 않는다.
|
|
466
|
+
|
|
467
|
+
## 비활성 메뉴 — 안 쓴 메뉴를 죽여 둔다
|
|
468
|
+
|
|
469
|
+
기획안을 근거로 메뉴는 만들어졌지만 끝까지 손대지 않는 문서가 생긴다. 그런 문서를
|
|
470
|
+
"작성 중"으로 두면 진행률이 영원히 낮게 깔리고, **무엇이 남은 일이고 무엇이 애초에
|
|
471
|
+
필요 없던 항목인지** 구분되지 않는다.
|
|
472
|
+
|
|
473
|
+
한 번도 쓰이지 않은 문서는 좌측 메뉴에서 **검정 점**으로 바뀌고 이름이 흐려진다.
|
|
474
|
+
판정은 `docUsed()` 가 한다.
|
|
475
|
+
|
|
476
|
+
| 신호 | 판정 |
|
|
477
|
+
| --- | --- |
|
|
478
|
+
| 템플릿 골격을 뺀 실질 글자 수 ≥ 400 | 쓰임 |
|
|
479
|
+
| `status` 가 `draft` 가 아님 (`log` 템플릿 제외) | 쓰임 |
|
|
480
|
+
| 추적 ID 를 본문에 정의 (코드 블록 예시는 제외) | 쓰임 |
|
|
481
|
+
| 위 어느 것도 아님 | **안 쓰임 — 검정 점** |
|
|
482
|
+
|
|
483
|
+
임계값 400 은 실측으로 잡았다. 갓 만든 문서는 37~265, 한 번이라도 채운 문서는
|
|
484
|
+
996 이상으로 갈라진다.
|
|
485
|
+
|
|
486
|
+
> **상태나 링크를 주 신호로 쓰지 않는다.** `log` 템플릿은 `status` 가 `approved` 로
|
|
487
|
+
> 시작하고, 모든 `spec` 템플릿은 리스크 대장으로 가는 링크를 자동으로 건다.
|
|
488
|
+
> 그걸 근거로 삼으면 갓 만든 대장이 늘 '사용됨'이 된다.
|
|
489
|
+
|
|
490
|
+
**사이드바 상단 `비활성 관리`** 를 켜면 메뉴마다 체크박스가 생긴다. 자동 판정을
|
|
491
|
+
사람이 덮어쓸 수 있다. 덮어쓴 값은 문서 id 로 `localStorage` 에 남으므로 **다시
|
|
492
|
+
빌드해도 유지된다.** 자동 판정과 같아지면 저장을 지워, 쓸데없는 기록을 남기지 않는다.
|
|
493
|
+
|
|
371
494
|
## 하지 말 것
|
|
372
495
|
|
|
373
496
|
- `index.html`을 직접 고치기 — 다음 빌드에 덮어써진다.
|