@neobiotechlabs/neobiotech-dev-agent 0.1.8 → 0.1.10

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.
@@ -10,7 +10,7 @@
10
10
  "source": "npm",
11
11
  "package": "@neobiotechlabs/neobiotech-dev-agent",
12
12
  "registry": "https://registry.npmjs.org",
13
- "version": "0.1.8"
13
+ "version": "0.1.10"
14
14
  },
15
15
  "description": "의료기기 SW 규제 개발 자동화 (Jira·Confluence·Risk·CVSS·Xray·IEC 62304/62366·MDR·문서 렌더)",
16
16
  "category": "medical-device",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neobiotech-dev-agent",
3
- "version": "0.1.8",
3
+ "version": "0.1.10",
4
4
  "displayName": "NeoBiotech Dev Agent (MedDev)",
5
5
  "description": "의료기기 SW 규제 개발 자동화 — Jira·Confluence·Risk·CVSS·Xray·IEC 62304/62366·MDR·문서 렌더",
6
6
  "author": {
package/README.md CHANGED
@@ -1,205 +1,186 @@
1
1
  # @neobiotechlabs/neobiotech-dev-agent
2
2
 
3
- IEC 62304 의료기기 소프트웨어 개발을 위한 Jira MCP Server. Claude Code에서 Jira, Confluence, Risk Management, CVSS, Xray, 추적성 관리를 직접 사용할 있습니다.
3
+ IEC 62304 의료기기 소프트웨어 개발을 위한 MCP Server. Claude Code에서 Jira, Confluence, Risk Management, CVSS, Xray, 추적성 관리를 직접 사용합니다. **npm-as-plugin**으로 배포되어 `/plugin install` 한 번으로 MCP 서버 등록 + doc-render skill 배포 + 인증(userConfig → 키체인)이 한 번에 처리됩니다.
4
4
 
5
- ## 사전 설정
5
+ > 서버 자체를 개발/수정하는 분은 [docs/developer-guide.md](docs/developer-guide.md)를, 전체 툴 레퍼런스는 이 문서 아래쪽을 참고하세요.
6
6
 
7
- 공개 npm 패키지(npmjs.org)로 게시되어 별도 registry 인증 없이 아래 설치 명령으로 바로 사용할 수 있습니다.
7
+ ## 설치 (plugin 권장)
8
8
 
9
- ## 설치
9
+ 공개 npm(npmjs.org)에 게시되어 별도 registry 인증 없이 설치할 수 있습니다. Claude Code 안에서:
10
10
 
11
- ```bash
12
- # 글로벌 설치 (추천)
13
- npm install -g @neobiotechlabs/neobiotech-dev-agent
14
-
15
- # 또는 매번 최신 버전 실행 (설치 불필요)
16
- npx -y @neobiotechlabs/neobiotech-dev-agent
17
11
  ```
12
+ 1) marketplace 등록 (GitHub source — 누구나 가능)
13
+ /plugin marketplace add NeobiotechLabs/jira-mcp-server
18
14
 
19
- 업데이트:
20
- ```bash
21
- npm update -g @neobiotechlabs/neobiotech-dev-agent
22
- ```
15
+ 2) plugin 설치 (user scope 권장 — 어느 프로젝트에서든 적용)
16
+ /plugin install neobiotech-dev-agent@neobiotech
23
17
 
24
- 베타 테스트:
25
- ```bash
26
- npm install -g @neobiotechlabs/neobiotech-dev-agent@beta
18
+ 3) 자격증명 입력 (키체인에 저장)
19
+ /plugin configure neobiotech-dev-agent@neobiotech
20
+
21
+ 4) Claude Code 완전 재시작 → /mcp 에서 neobiotech-dev-agent 가 ✔ Connected 인지 확인
27
22
  ```
28
23
 
29
- ## 로컬 빌드 (개발/브랜치 테스트용)
24
+ `userConfig` 6개 항목 (3번 configure 시 입력):
25
+
26
+ | 항목 | 필수 | 비고 |
27
+ |------|------|------|
28
+ | `JIRA_URL` | O | **https 권장** — http에선 node-fetch 리다이렉트가 POST를 GET으로 변환해 생성/수정이 실패함 |
29
+ | `JIRA_EMAIL` | O | Jira 계정 이메일 |
30
+ | `JIRA_API_TOKEN` | O | [발급](https://id.atlassian.com/manage-profile/security/api-tokens) |
31
+ | `XRAY_CLIENT_ID` | X | Xray Cloud (둘 다 있어야 활성화) |
32
+ | `XRAY_CLIENT_SECRET` | X | Xray Cloud |
33
+ | `RISK_PLUGIN_AUTH_TOKEN` | X | Risk Management Plugin |
34
+
35
+ > ⚠️ 재시작 없으면 userConfig가 반영되지 않아 spawn 직후 종료됩니다 (`/mcp`에서 `-32000`). 설치/구성 후 **반드시 Claude Code를 완전히 재시작**하세요.
36
+ > ⚠️ 설치·업데이트 후에도 옛날 버전이 실행된다면 consumer 로컬 캐시가 원인입니다 — [트러블슈팅](#트러블슈팅) 참고.
37
+
38
+ ## 로컬에서 코드 변경하며 테스트
30
39
 
31
- 소스 코드를 직접 빌드하여 사용할 수도 있습니다:
40
+ 서버 코드를 고치면서 바로 확인하려는 경우(서버 개발·브랜치 테스트) 두 가지 패턴이 있습니다. 어떤 패턴이든 **watch + `/mcp` reconnect** 루프가 핵심입니다.
41
+
42
+ ### 준비 (공통): clone + build
32
43
 
33
44
  ```bash
34
- # submodule 포함 clone 권장 (doc_render 툴이 vendor/dev-docs-templates/ 사용)
45
+ # doc_render 툴이 vendor/dev-docs-templates/ submodule을 쓰므로 --recurse-submodules
35
46
  git clone --recurse-submodules https://github.com/NeobiotechLabs/jira-mcp-server.git
36
47
  cd jira-mcp-server
37
48
  npm install
38
- npm run build
49
+ npm run build # dist/index.js 단일 bundle (최초 1회 필수 — dist는 git에 없음)
39
50
  ```
40
51
 
41
- 이미 clone한 경우 submodule 별도로 초기화:
42
-
43
- ```bash
44
- git submodule update --init --recursive
45
- ```
52
+ 이미 clone한 경우: `git submodule update --init --recursive`.
46
53
 
47
- ## Claude Code 설정
54
+ ### 패턴 1: `claude mcp add`로 로컬 빌드 직접 실행 (빠른 iteration, 권장)
48
55
 
49
- ### 방법 1: `claude mcp add` 명령어
56
+ 빌드된 `dist/index.js`를 MCP 서버로 바로 등록합니다. plugin의 userConfig/키체인 대신 환경변수를 직접 주고, 가장 빠르게 코드를 돌려볼 수 있습니다.
50
57
 
51
- **npm 패키지 설치 시:**
58
+ 터미널에서 watch를 켜둡니다 — 소스 저장 시 `dist/`가 자동 재빌드됩니다:
52
59
 
53
60
  ```bash
54
- claude mcp add jira \
55
- -e JIRA_URL=https://your-domain.atlassian.net \
56
- -e JIRA_EMAIL=your-email@example.com \
57
- -e JIRA_API_TOKEN=your-api-token \
58
- -- npx -y @neobiotechlabs/neobiotech-dev-agent
61
+ npm run dev
59
62
  ```
60
63
 
61
- **로컬 빌드 시:**
64
+ 다른 터미널에서 (또는 Claude Code 세션에서) 로컬 dist를 MCP 서버로 등록:
62
65
 
63
66
  ```bash
64
- claude mcp add jira \
67
+ claude mcp add neobiotech-dev --scope user \
65
68
  -e JIRA_URL=https://your-domain.atlassian.net \
66
69
  -e JIRA_EMAIL=your-email@example.com \
67
70
  -e JIRA_API_TOKEN=your-api-token \
68
- -- node /절대경로/jira-mcp-server/dist/index.js
71
+ -- node "$(pwd)/dist/index.js"
69
72
  ```
70
73
 
71
- 선택 환경 변수도 함께 추가할 있습니다:
74
+ > `-e` 옵션은 `--` 앞에 와야 합니다. Xray/Risk가 필요하면 같은 방식으로 `-e XRAY_CLIENT_ID=...` 등 추가.
72
75
 
73
- ```bash
74
- -e XRAY_CLIENT_ID=... \
75
- -e XRAY_CLIENT_SECRET=... \
76
- -e RISK_PLUGIN_AUTH_TOKEN=... \
77
- -- npx -y @neobiotechlabs/neobiotech-dev-agent
78
- ```
76
+ 코드를 고칠 때마다 반영: **Claude Code `/mcp` → `neobiotech-dev` → reconnect**.
79
77
 
80
- **주의:** `-e` 옵션은 `--` 앞에 와야 합니다.
78
+ > stdio MCP 서버는 프로세스가 시작될 때 코드를 메모리에 로드합니다. watch가 `dist/`를 갱신해도 프로세스를 재시작(reconnect)하지 않으면 옛날 코드를 계속 씁니다. "즉시 반영"의 마지막 단계는 항상 reconnect입니다.
81
79
 
82
- ### 방법 2: `~/.claude/settings.json` 직접 편집
80
+ ### 패턴 2: plugin을 로컬 directory source로 설치
83
81
 
84
- **패키지 설치 시:**
82
+ plugin의 userConfig/키체인/doc-render skill 배포 이점을 그대로 쓰면서 로컬 코드를 실행하려면, `.claude-plugin/marketplace.json`의 source를 배포용 npm 대신 로컬 directory로 임시 교체합니다.
85
83
 
86
- ```json
87
- {
88
- "mcpServers": {
89
- "jira": {
90
- "command": "npx",
91
- "args": ["-y", "@neobiotechlabs/neobiotech-dev-agent"],
92
- "env": {
93
- "JIRA_URL": "https://your-domain.atlassian.net",
94
- "JIRA_EMAIL": "your-email@example.com",
95
- "JIRA_API_TOKEN": "your-api-token",
96
- "XRAY_CLIENT_ID": "",
97
- "XRAY_CLIENT_SECRET": "",
98
- "RISK_PLUGIN_AUTH_TOKEN": ""
99
- }
100
- }
101
- }
102
- }
103
- ```
104
-
105
- **로컬 빌드 시:**
84
+ `.claude-plugin/marketplace.json`의 `plugins[0].source`를 임시로 변경:
106
85
 
107
86
  ```json
108
- {
109
- "mcpServers": {
110
- "jira": {
111
- "command": "node",
112
- "args": ["/절대경로/jira-mcp-server/dist/index.js"],
113
- "env": {
114
- "JIRA_URL": "https://your-domain.atlassian.net",
115
- "JIRA_EMAIL": "your-email@example.com",
116
- "JIRA_API_TOKEN": "your-api-token"
117
- }
118
- }
119
- }
120
- }
87
+ "source": { "source": "directory", "path": "." }
88
+ ```
89
+
90
+ 그리고:
91
+
92
+ ```
93
+ /plugin marketplace add /절대경로/jira-mcp-server
94
+ /plugin install neobiotech-dev-agent@neobiotech --scope user
121
95
  ```
122
96
 
123
- ### 방법 3: 프로젝트 `.mcp.json` 사용
97
+ 코드 변경 반영은 동일하게 `/mcp` reconnect. 검증이 끝나면 `git checkout .claude-plugin/marketplace.json`으로 복구. 변경 전 `claude plugin validate .`로 매니페스트 정합성을 확인하세요.
124
98
 
125
- 프로젝트 루트에 `.mcp.json`과 `.env` 파일을 만들면, 프로젝트별로 설정을 관리할 있습니다.
99
+ > plugin(`/plugin install`)과 `claude mcp add`는 서버 이름이 다르면 공존하지만 헷갈리므로, 번갈아 쓸 때는 한쪽을 제거(`claude plugin uninstall` 또는 `claude mcp remove`) 후 전환을 권장합니다.
126
100
 
127
- **`.mcp.json`** (git에 커밋):
101
+ ## 프로젝트 초기 설정
102
+
103
+ 각 consumer 프로젝트 폴더에서 최초 1회 실행하면, 이후 모든 툴이 해당 Jira 프로젝트 키를 자동으로 인식합니다.
128
104
 
129
- ```json
130
- {
131
- "mcpServers": {
132
- "jira": {
133
- "command": "npx",
134
- "args": ["-y", "@neobiotechlabs/neobiotech-dev-agent"],
135
- "env": {
136
- "JIRA_URL": "${JIRA_URL}",
137
- "JIRA_EMAIL": "${JIRA_EMAIL}",
138
- "JIRA_API_TOKEN": "${JIRA_API_TOKEN}"
139
- }
140
- }
141
- }
142
- }
143
105
  ```
106
+ jira 프로젝트 초기 설정해줘. 프로젝트 키는 DYN야
107
+ ```
108
+
109
+ → `jira_init_project` → `./CLAUDE.md`에 키를 기록. 여러 프로젝트면 폴더마다 각각 실행.
110
+
111
+ ## 트러블슈팅
112
+
113
+ ### 설치·업데이트 후 옛날 버전이 실행됨 (stale)
114
+
115
+ `uninstall` → `install` 해도 같은 버전이 계속 잡힌다면, 두 군데 중 한 곳이 stale한 것입니다. **비파괴적 방법부터 먼저** 시도합니다.
144
116
 
145
- **`.env`** (개인 설정, git에 커밋하지 않음):
117
+ **1. marketplace 갱신 먼저** (비파괴적 항상 먼저):
146
118
 
147
119
  ```
148
- JIRA_URL=https://your-domain.atlassian.net
149
- JIRA_EMAIL=your-email@example.com
150
- JIRA_API_TOKEN=your-api-token
120
+ /plugin marketplace update neobiotech
121
+ /reload-plugins
151
122
  ```
152
123
 
153
- ## 환경 변수
124
+ 이것만으로 marketplace.json이 최신 version을 가리키게 되면 install이 최신 버전을 잡습니다. (`/plugin marketplace update`가 안 먹으면 `/plugin marketplace remove neobiotech` 후 `/plugin marketplace add NeobiotechLabs/jira-mcp-server`로 git clone을 강제 fresh — 공식 known issue [#38271](https://github.com/anthropics/claude-code/issues/38271).)
154
125
 
155
- | 변수 | 필수 | 설명 |
156
- |------|------|------|
157
- | `JIRA_URL` | O | Jira 인스턴스 URL (**https 권장** — http에선 node-fetch 리다이렉트가 POST를 GET으로 변환해 생성/수정이 실패함) |
158
- | `JIRA_EMAIL` | O | Jira 계정 이메일 |
159
- | `JIRA_API_TOKEN` | O | Jira API 토큰 ([발급](https://id.atlassian.com/manage-profile/security/api-tokens)) |
160
- | `XRAY_CLIENT_ID` | X | Xray Cloud client ID |
161
- | `XRAY_CLIENT_SECRET` | X | Xray Cloud client secret |
162
- | `RISK_PLUGIN_AUTH_TOKEN` | X | Risk Management Plugin 인증 토큰 |
163
- | `PROJECT_CONFIG_PATH` | X | (사용하지 않음) |
126
+ **2. 여전히 옛날 버전이면 npm-cache 정리** (마지막 수단) — Claude Code를 **완전히 종료한 뒤**:
164
127
 
165
- ## 릴리즈 절차
128
+ ```bash
129
+ rm -rf ~/.claude/plugins/npm-cache # stale package-lock + node_modules
130
+ rm -rf ~/.claude/plugins/cache/neobiotech # 옛날 installPath 잔해
131
+ rm -f ~/.claude/plugins/plugin-catalog-cache.json # stale marketplace snapshot (있으면)
132
+ ```
133
+
134
+ 재시작 후 `/plugin marketplace update neobiotech` → `/plugin install neobiotech-dev-agent@neobiotech`.
166
135
 
167
- ### 정식 릴리즈
136
+ ### 다른 PC에서 `No matching version` (npm registry / `.npmrc`)
137
+
138
+ Windows 등 **다른 PC**에서 `/plugin install` 시 `failed to install npm packages. No matching version` 으로 실패하면, npmjs.org와 패키지는 정상이고 **해당 PC의 npm 설정이 원인**입니다. plugin install이 `.claude-plugin/marketplace.json`에 적은 `registry`(`https://registry.npmjs.org`)보다 **시스템 `.npmrc`를 우선** 사용하기 때문입니다. 사내 npm mirror를 기본으로 쓰거나, 이전 install 실패로 `.npmrc`에 잘못된 줄(쓰레기)이 쌓여 있으면 npmjs.org 대신 다른 registry를 쿼리합니다.
139
+
140
+ 진단:
168
141
 
169
142
  ```bash
170
- # 1. main 브랜치에서
171
- npm version patch # 0.1.00.1.1 (또는 minor, major)
172
- git push --follow-tags
173
- # → GitHub Actions가 자동으로 npm(npmjs.org)에 latest로 publish
143
+ npm config get registry # npmjs.org가 아니면 원인
144
+ npm view @neobiotechlabs/neobiotech-dev-agent@0.1.8 version --registry https://registry.npmjs.org # 버전이 나오면 패키지·npmjs.org 정상 이 PC의 .npmrc 문제 확정
174
145
  ```
175
146
 
176
- ### 베타 릴리즈
147
+ 해결 `%USERPROFILE%\.npmrc`(Windows) / `~/.npmrc`(macOS·Linux)에서 이전 실패로 쌓인 쓰레기 줄(잘못된 registry · scope · auth 잔재)을 전체 삭제한 뒤, scope registry 오버라이드 추가:
177
148
 
178
- ```bash
179
- # 1. main 브랜치에서 베타 버전 생성
180
- npm version prerelease --preid=beta
181
- # → 0.1.0 → 0.1.1-beta.0
149
+ ```
150
+ @neobiotechlabs:registry=https://registry.npmjs.org/
151
+ ```
182
152
 
183
- git push --follow-tags
184
- # → GitHub Actions가 자동으로 npm(npmjs.org)에 beta로 publish
153
+ 사내 mirror를 전역 기본으로 유지해야 하면 **scope 오버라이드만**으로 충분합니다. **Claude Code 완전 재시작** 후 `/plugin install neobiotech-dev-agent@neobiotech` 재시도. 상세 진단 순서는 [developer-guide §10.7](docs/developer-guide.md#107-트러블슈팅).
185
154
 
186
- # 2. 테스터가 설치
187
- npm install -g @neobiotechlabs/neobiotech-dev-agent@beta
155
+ ### `/mcp`에서 `Failed to connect` / `-32000` (plugin)
188
156
 
189
- # 3. 테스트 완료 후 정식 릴리즈
190
- npm version patch # 0.1.1-beta.0 → 0.1.1
191
- git push --follow-tags
192
- # latest로 publish, beta 사용자는 npm update로 자동 업그레이드
157
+ 원인:
158
+
159
+ 1. **userConfig 미구성 (가장 흔함)** — install 직후 userConfig(키체인)가 비어 `.mcp.json`의 `${user_config.*}`가 빈 값 → `src/index.ts`가 필수 env 검증에서 `process.exit(1)`. `/plugin configure`로 값을 넣고 **Claude Code 완전 재시작**.
160
+ 2. **runtime 의존성 누락 (과거)** 0.1.8 tsup bundle 도입으로 해결. 최신 버전이면 해당 없음.
161
+
162
+ 진단 — installPath의 `dist/index.js`를 직접 실행해 봅니다:
163
+
164
+ ```bash
165
+ node ~/.claude/plugins/cache/neobiotech/neobiotech-dev-agent/<version>/dist/index.js </dev/null
166
+ # "Missing JIRA_URL..." → 모듈 로딩 통과 = 원인 1 (userConfig)
167
+ # ERR_MODULE_NOT_FOUND → bundle 누락 = 옛날 버전 (원인 2)
193
168
  ```
194
169
 
195
- ### 태그별 dist-tag 매핑
170
+ ### `claude mcp add` 모드 연결 실패
171
+
172
+ 가장 흔한 원인은 args 경로 오타 또는 빌드 누락. `claude mcp get <name>`으로 `Command`/`Args`/`Environment`를 점검하고, `ls <경로>`로 파일이 실제 존재하는지 확인 (없으면 `npm run build`).
196
173
 
197
- | git 태그 | npm dist-tag | 설치 명령어 |
198
- |----------|-------------|-------------|
199
- | `v0.1.1-beta.0` | `beta` | `npm i -g @neobiotechlabs/neobiotech-dev-agent@beta` |
200
- | `v0.1.1` | `latest` | `npm i -g @neobiotechlabs/neobiotech-dev-agent` |
174
+ ### 일반
201
175
 
202
- ## 목록 (48개)
176
+ | 증상 | 원인 / 해결 |
177
+ |------|------------|
178
+ | `Missing environment variables...`로 종료 | 필수 env 3개 중 하나라도 비면 `index.ts`가 `process.exit(1)`. `claude mcp get`의 env 또는 userConfig에서 값 누락 확인 |
179
+ | Risk / Xray 툴이 동작 안 함 | 선택 env(`RISK_PLUGIN_AUTH_TOKEN`, `XRAY_*`) 누락/만료. `xray`는 두 env가 모두 있어야 활성화 |
180
+ | `401`/`403` | 토큰/권한. Jira API 토큰 재발급, 프로젝트 권한·이슈타입 존재 여부 확인 |
181
+ | 프로젝트 키가 인식 안 됨 | `jira_init_project` 미실행. consumer `CLAUDE.md`에 키가 있는지 확인 |
182
+
183
+ ## 툴 목록 (49개)
203
184
 
204
185
  ### Jira 기본 CRUD (12)
205
186
 
@@ -218,7 +199,7 @@ git push --follow-tags
218
199
  | `jira_delete_issue` | 이슈 삭제 |
219
200
  | `jira_get_issue_type_schema` | 이슈 타입의 필드 스키마 동적 조회 |
220
201
 
221
- ### Confluence (7)
202
+ ### Confluence (8)
222
203
 
223
204
  | 툴 | 설명 |
224
205
  |-----|------|
@@ -229,6 +210,7 @@ git push --follow-tags
229
210
  | `confluence_delete_page` | 페이지 삭제 |
230
211
  | `confluence_get_spaces` | 스페이스 목록 |
231
212
  | `confluence_get_page_children` | 하위 페이지 조회 |
213
+ | `confluence_publish_doc` | **(High-level)** 마크다운 문서 → Confluence 페이지 게재 (create/update 자동 분기, 마크다운 → storage 변환 + 코드펜스 → 코드 매크로) |
232
214
 
233
215
  ### Risk Management (5)
234
216
 
@@ -309,7 +291,7 @@ IEC 62304 추적성 관리.
309
291
 
310
292
  | 툴 | 설명 |
311
293
  |-----|------|
312
- | `doc_render` | dev_docs(PRD/Spec/Plan/Tasks)·mdr_docs(intended-use) 템플릿 모드 기반(freeform) 결정적 렌더 — 메타만 치환, 자유 텍스트/AI 지침은 consumer가 채움 |
294
+ | `doc_render` | dev_docs(PRD/Spec/Plan/Tasks)·mdr_docs(PA/EA gate 문서 전체) 템플릿 모드 기반(freeform) 결정적 렌더 — 메타만 치환, 자유 텍스트/AI 지침/빈 데이터 표는 consumer가 채움 |
313
295
 
314
296
  ### 초기 설정 (1)
315
297
 
@@ -319,57 +301,23 @@ IEC 62304 추적성 관리.
319
301
 
320
302
  ## doc_render 작성 skill (consumer 워크플로우)
321
303
 
322
- 이 서버는 `.claude/skills/doc-render/` 절차 가이드를 함께 제공한다. consumer(Claude Code) doc_render 출력으로 MDR/dev 문서를 자동 작성해 자기 repo `docs/`에 저장하고 Jira 티켓 description에 미러한다.
323
-
324
- ### 설치 (수동 copy)
325
-
326
- 이 repo의 `.claude/skills/doc-render/` 를 consumer 프로젝트의 `.claude/skills/doc-render/` 로 복사:
327
-
328
- ```bash
329
- cp -R <이-repo>/.claude/skills/doc-render <consumer-repo>/.claude/skills/
330
- ```
304
+ 이 서버는 `.claude/skills/doc-render/` 절차 가이드를 함께 제공합니다. `/plugin install` 하면 consumer(Claude Code)에게 skill도 자동으로 배포되므로, consumer는 doc_render 출력으로 MDR/dev 문서를 자동 작성해 자기 repo `docs/`에 저장하고 Jira 티켓 description에 미러할 수 있습니다.
331
305
 
332
- ### 사용
306
+ > plugin이 아닌 `claude mcp add` 모드를 쓸 때만 skill을 수동으로 복사합니다:
307
+ > ```bash
308
+ > cp -R <이-repo>/skills/doc-render <consumer-repo>/.claude/skills/
309
+ > ```
333
310
 
334
311
  consumer Claude Code 세션에서:
335
312
 
336
313
  > "DYN-8 intended use 문서 작성"
337
314
 
338
- skill이 doc_render 호출 → 자동 초안 → 리뷰 게이트 → `docs/mdr/PA/intended-use-DYN-8.md` 저장 → DYN-8 description 미러까지 수행한다. 자세한 절차·저장 경로·frontmatter 스키마는 [`skills/doc-render/SKILL.md`](skills/doc-render/SKILL.md) 와 [설계 문서](docs/superpowers/specs/2026-07-03-doc-render-skill-design.md) 참조.
339
-
340
- > 이 서버는 **npm-as-plugin**으로 배포됩니다 — `/plugin install neobiotech-dev-agent@neobiotech` 한 번으로 MCP 서버 자동 등록 + doc-render skill 자동 배포 + userConfig(키체인) 인증이 처리됩니다. 설치 절차는 [docs/developer-guide.md §3 / §10](docs/developer-guide.md) 참조.
341
-
342
- ## 프로젝트 초기 설정
343
-
344
- 각 프로젝트 폴더에서 최초 1회 실행:
345
-
346
- ```
347
- jira_init_project(project_key: "SCW")
348
- ```
349
-
350
- → `CLAUDE.md`에 프로젝트 키가 자동 추가되어, 이후 Claude가 모든 툴에서 해당 키를 자동으로 사용합니다.
351
-
352
- 사용 예시:
353
-
354
- ```
355
- # Claude Code 안에서
356
- jira 프로젝트 초기 설정해줘. 프로젝트 키는 SCW야
357
- ```
358
-
359
- 또는 여러 프로젝트를 진행할 경우, 각 프로젝트 폴더에서 별도로 초기 설정:
360
-
361
- ```
362
- # A 프로젝트 폴더
363
- jira_init_project(project_key: "SCW")
364
-
365
- # B 프로젝트 폴더
366
- jira_init_project(project_key: "NEO")
367
- ```
315
+ skill이 doc_render 호출 → 자동 초안 → 리뷰 게이트 → `docs/mdr/PA/intended-use-DYN-8.md` 저장 → DYN-8 description 미러까지 수행합니다. 자세한 절차·저장 경로·frontmatter 스키마는 [`skills/doc-render/SKILL.md`](skills/doc-render/SKILL.md)와 [설계 문서](docs/superpowers/specs/2026-07-03-doc-render-skill-design.md) 참조.
368
316
 
369
317
  ## 사용 예시
370
318
 
371
319
  ```
372
- PLAYG-1234 이슈 내용 알려줘
320
+ DYN-1234 이슈 내용 알려줘
373
321
  ```
374
322
  → `jira_get_issue`
375
323
 
@@ -384,7 +332,7 @@ Hazard 티켓 2개 만들어줘. [HAZ-1] 영상 렌더링 오류, [HAZ-2] 측정
384
332
  → `cvss_calculate` + `cvss_set_vector`
385
333
 
386
334
  ```
387
- PLAYG-2550의 추적성 확인해줘
335
+ DYN-2550의 추적성 확인해줘
388
336
  ```
389
337
  → `traceability_check`
390
338
 
@@ -437,6 +385,31 @@ EA Gate
437
385
  └── 선행 Task ── Blocks ──→ 후행 Task
438
386
  ```
439
387
 
388
+ ## 릴리즈 절차
389
+
390
+ 배포는 **`v*` 태그 push** 시 GitHub Actions(`release.yml`)이 자동 수행(build → test → publish to npmjs.org, 공개). main에 머지만 해서는 배포되지 않습니다.
391
+
392
+ ### 정식
393
+
394
+ ```bash
395
+ npm version patch && git push --follow-tags # latest (version lifecycle가 plugin.json/marketplace.json 자동 동기화)
396
+ ```
397
+
398
+ ### 베타
399
+
400
+ ```bash
401
+ npm version prerelease --preid=beta && git push --follow-tags # beta (태그명에 beta 포함 시 --tag beta)
402
+ ```
403
+
404
+ > consumer(이미 plugin 설치한 팀원)의 업데이트는 `/plugin marketplace update neobiotech` 후 `/plugin install` 재실행. stale 캐시가 잡고 있으면 [트러블슈팅](#트러블슈팅)의 캐시 정리 절차를 따르세요.
405
+
406
+ ### 태그별 dist-tag 매핑
407
+
408
+ | git 태그 | npm dist-tag | consumer 설치 |
409
+ |----------|-------------|---------------|
410
+ | `v0.1.9-beta.0` | `beta` | marketplace.json source.version을 beta로 맞추거나 `/plugin marketplace update` |
411
+ | `v0.1.9` | `latest` | `/plugin install neobiotech-dev-agent@neobiotech` (캐시 정리 후) |
412
+
440
413
  ## 라이선스
441
414
 
442
415
  MIT