@rch4com/agent-setup 1.5.0 → 1.6.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/lib/catalog.mjs +7 -4
- package/lib/i18n/catalog/en.mjs +9 -2
- package/lib/i18n/catalog/ko.mjs +9 -2
- package/lib/items/plugin.bkit.mjs +16 -0
- package/lib/items/plugin.impeccable.mjs +15 -1
- package/lib/items/plugin.superpowers.mjs +16 -0
- package/lib/items/skill.gsd.mjs +20 -1
- package/lib/items/skill.gstack.mjs +15 -1
- package/package.json +1 -1
package/lib/catalog.mjs
CHANGED
|
@@ -137,9 +137,12 @@ export function defineMcp({ id, label, server, supports = [...CLI_IDS], unsuppor
|
|
|
137
137
|
}
|
|
138
138
|
}
|
|
139
139
|
|
|
140
|
-
|
|
140
|
+
// 배선은 Claude 한 곳이라도 미배선 "사유"는 CLI마다 다를 수 있다 — 상류가
|
|
141
|
+
// 자체 경로로 지원하는 CLI에 일괄 "Claude 전용" 사유를 붙이면 거짓 정보가 된다.
|
|
142
|
+
// 항목이 사유를 넘기면 그 CLI만 덮고, 나머지는 기본 사유로 채운다.
|
|
143
|
+
export function definePlugin({ id, label, installId, detectIds, marketplace, note, group = null, unsupported: reasons = {} }) {
|
|
141
144
|
const unsupported = Object.fromEntries(
|
|
142
|
-
CLI_IDS.filter((c) => c !== 'claude').map((c) => [c, msg('item.unsupported.claudePlugin')]),
|
|
145
|
+
CLI_IDS.filter((c) => c !== 'claude').map((c) => [c, reasons[c] ?? msg('item.unsupported.claudePlugin')]),
|
|
143
146
|
)
|
|
144
147
|
return {
|
|
145
148
|
id, category: 'plugin', label, scope: 'project', supports: ['claude'], unsupported, note, group,
|
|
@@ -163,9 +166,9 @@ export function definePlugin({ id, label, installId, detectIds, marketplace, not
|
|
|
163
166
|
}
|
|
164
167
|
}
|
|
165
168
|
|
|
166
|
-
export function defineSkill({ id, label, scope, detect, install, uninstall, note, group = null }) {
|
|
169
|
+
export function defineSkill({ id, label, scope, detect, install, uninstall, note, group = null, unsupported: reasons = {} }) {
|
|
167
170
|
const unsupported = Object.fromEntries(
|
|
168
|
-
CLI_IDS.filter((c) => c !== 'claude').map((c) => [c, msg('item.unsupported.claudeSkill')]),
|
|
171
|
+
CLI_IDS.filter((c) => c !== 'claude').map((c) => [c, reasons[c] ?? msg('item.unsupported.claudeSkill')]),
|
|
169
172
|
)
|
|
170
173
|
return { id, category: 'skill', label, scope, supports: ['claude'], unsupported, note, group, detect, install, uninstall }
|
|
171
174
|
}
|
package/lib/i18n/catalog/en.mjs
CHANGED
|
@@ -228,6 +228,13 @@ export default {
|
|
|
228
228
|
'item.unsupported.claudeSkill': 'Claude Code skill install',
|
|
229
229
|
'item.unsupported.ponytailUser': 'upstream installs it per user (codex/copilot plugin, gemini extension)',
|
|
230
230
|
'item.unsupported.ponytailRules': 'no plugin mechanism — copy the ruleset into AGENTS.md by hand',
|
|
231
|
+
'item.unsupported.upstreamNone': 'no official install path upstream',
|
|
232
|
+
'item.unsupported.superpowersSeparate': 'upstream supports it via a separate per-harness install — this item wires the Claude Code plugin only',
|
|
233
|
+
'item.unsupported.bkitPort': 'upstream ships separate ports (bkit-codex / bkit-gemini) installed apart from this plugin; the Gemini port presumably succeeds to Antigravity',
|
|
234
|
+
'item.unsupported.impeccableJunction': 'upstream supports it, but npx impeccable install breaks the shared .agents/skills link, so only the plugin route is wired',
|
|
235
|
+
'item.unsupported.gstackHost': 'upstream supports it via ./setup --host — this item installs for Claude Code only',
|
|
236
|
+
'item.unsupported.gsdFlag': 'upstream supports it via a runtime flag — this item installs with --claude only',
|
|
237
|
+
'item.unsupported.gsdGemini': 'upstream dropped Gemini CLI (sunset 2026-06) — Antigravity succeeds it via --antigravity',
|
|
231
238
|
'item.mcp.partial': 'registered: {present} / missing: {missing}',
|
|
232
239
|
'item.plugin.partial': 'wired: {present} / missing: {missing}',
|
|
233
240
|
'item.plugin.deferred': 'recorded in config — it downloads on the next Claude Code run',
|
|
@@ -243,7 +250,7 @@ export default {
|
|
|
243
250
|
'item.mcp.codebase-memory.note': 'needs the codebase-memory-mcp binary on PATH. Install: https://github.com/DeusData/codebase-memory-mcp (install.sh / install.ps1)',
|
|
244
251
|
'item.mcp.graphify.note': 'needs the graphify-mcp binary on PATH. Install: uv tool install "graphifyy[mcp]". Reads graphify-out/graph.json — build it first with /graphify .',
|
|
245
252
|
'item.mcp.headroom.note': 'needs the headroom binary on PATH. Install: uv tool install --python 3.13 "headroom-ai[proxy,mcp]". The proxy (headroom wrap) is a way of launching, not repo config',
|
|
246
|
-
'item.plugin.superpowers.note': 'official marketplace plugin',
|
|
253
|
+
'item.plugin.superpowers.note': 'official marketplace plugin. Upstream supports 11 harnesses (Codex, Antigravity, …) via per-harness installs',
|
|
247
254
|
'item.plugin.mattpocock-skills.note': '22 engineering and productivity skills (tdd, code-review, research, …)',
|
|
248
255
|
'item.plugin.ponytail.note': 'lean-code ruleset. Wires the Claude Code plugin and the OpenCode plugin entry, both repo-scoped',
|
|
249
256
|
'item.plugin.ecc.note': 'skills, instincts, memory and security for agent harnesses. Installed as a plugin — its skills/ holds 281 entries, too many to copy into the shared skills directory',
|
|
@@ -253,7 +260,7 @@ export default {
|
|
|
253
260
|
'item.skill.taste.note': 'anti-slop frontend skill for landing pages, portfolios and redesigns (skill name: design-taste-frontend)',
|
|
254
261
|
'item.skill.karpathy.note': 'behavioral guidelines that curb overbuilding and vague success criteria',
|
|
255
262
|
'item.skill.gstack.note': 'repo-local clone + setup (needs bash; Git Bash on Windows). Runtime state (~/.gstack) may be created globally.',
|
|
256
|
-
'item.skill.gsd.note': 'npx @opengsd/gsd-core, installed per project',
|
|
263
|
+
'item.skill.gsd.note': 'npx @opengsd/gsd-core, installed per project. Upstream supports 18 runtimes (Codex, Antigravity, …); this item wires --claude only',
|
|
257
264
|
'error.gstackClone': 'gstack clone failed: {output}',
|
|
258
265
|
'error.gstackSetup': 'gstack setup failed: {output}',
|
|
259
266
|
'error.gsdInstall': 'GSD install failed: {output}',
|
package/lib/i18n/catalog/ko.mjs
CHANGED
|
@@ -221,6 +221,13 @@ export default {
|
|
|
221
221
|
'item.unsupported.claudeSkill': 'Claude Code 스킬 설치본',
|
|
222
222
|
'item.unsupported.ponytailUser': '상류 설치 경로가 사용자 스코프입니다 (codex·copilot 플러그인, gemini 확장)',
|
|
223
223
|
'item.unsupported.ponytailRules': '플러그인 기구가 없습니다 — 규칙을 AGENTS.md에 직접 옮겨 적으세요',
|
|
224
|
+
'item.unsupported.upstreamNone': '상류에 공식 설치 경로가 없습니다',
|
|
225
|
+
'item.unsupported.superpowersSeparate': '상류가 하니스별 별도 설치로 지원합니다 — 이 항목은 Claude Code 플러그인만 배선합니다',
|
|
226
|
+
'item.unsupported.bkitPort': '상류가 별도 배포판(bkit-codex·bkit-gemini)으로 지원합니다 — 이 플러그인과 별개 설치이며, Gemini판은 Antigravity 승계 추정입니다',
|
|
227
|
+
'item.unsupported.impeccableJunction': '상류는 지원하지만 npx impeccable install이 공유 .agents/skills 연결을 끊어 플러그인 경로만 배선합니다',
|
|
228
|
+
'item.unsupported.gstackHost': '상류는 ./setup --host로 지원합니다 — 이 항목은 Claude Code에만 설치합니다',
|
|
229
|
+
'item.unsupported.gsdFlag': '상류는 런타임 플래그로 지원합니다 — 이 항목은 --claude로만 설치합니다',
|
|
230
|
+
'item.unsupported.gsdGemini': '상류가 Gemini CLI 지원을 제거했습니다(2026-06 종료) — Antigravity가 --antigravity로 승계합니다',
|
|
224
231
|
'item.mcp.partial': '등록됨: {present} / 누락: {missing}',
|
|
225
232
|
'item.plugin.partial': '배선됨: {present} / 누락: {missing}',
|
|
226
233
|
'item.plugin.deferred': '설정 기록됨 — 다음 Claude Code 실행 시 다운로드됩니다',
|
|
@@ -236,7 +243,7 @@ export default {
|
|
|
236
243
|
'item.mcp.codebase-memory.note': 'PATH에 codebase-memory-mcp 바이너리 필요. 설치: https://github.com/DeusData/codebase-memory-mcp (install.sh / install.ps1)',
|
|
237
244
|
'item.mcp.graphify.note': 'PATH에 graphify-mcp 바이너리 필요. 설치: uv tool install "graphifyy[mcp]". graphify-out/graph.json을 읽으므로 /graphify .로 그래프를 먼저 만드세요',
|
|
238
245
|
'item.mcp.headroom.note': 'PATH에 headroom 바이너리 필요. 설치: uv tool install --python 3.13 "headroom-ai[proxy,mcp]". 프록시(headroom wrap)는 실행 방식이라 저장소 설정 대상이 아닙니다',
|
|
239
|
-
'item.plugin.superpowers.note': '공식 마켓플레이스
|
|
246
|
+
'item.plugin.superpowers.note': '공식 마켓플레이스 플러그인. 상류는 Codex·Antigravity 등 11개 하니스를 하니스별 설치로 지원합니다',
|
|
240
247
|
'item.plugin.mattpocock-skills.note': '엔지니어링·생산성 스킬 22종 (tdd, code-review, research 등)',
|
|
241
248
|
'item.plugin.ponytail.note': '군더더기 없는 코드 규칙 묶음. Claude Code 플러그인과 OpenCode plugin 항목을 저장소 범위로 배선합니다',
|
|
242
249
|
'item.plugin.ecc.note': '에이전트 하네스용 스킬·본능·메모리·보안 묶음. skills/에 281개가 들어 있어 공유 스킬 디렉터리에 복사하지 않고 플러그인으로 설치합니다',
|
|
@@ -246,7 +253,7 @@ export default {
|
|
|
246
253
|
'item.skill.taste.note': '랜딩 페이지·포트폴리오·리디자인용 안티슬롭 프런트엔드 스킬 (스킬 이름: design-taste-frontend)',
|
|
247
254
|
'item.skill.karpathy.note': '과설계와 모호한 완료 기준을 줄이는 행동 지침',
|
|
248
255
|
'item.skill.gstack.note': '저장소 로컬 clone + setup (bash 필요, Windows는 Git Bash). 런타임 상태(~/.gstack)는 전역에 생길 수 있음.',
|
|
249
|
-
'item.skill.gsd.note': 'npx @opengsd/gsd-core 프로젝트 로컬
|
|
256
|
+
'item.skill.gsd.note': 'npx @opengsd/gsd-core 프로젝트 로컬 설치. 상류는 Codex·Antigravity 등 18개 런타임을 지원합니다(이 항목은 --claude)',
|
|
250
257
|
'error.gstackClone': 'gstack clone 실패: {output}',
|
|
251
258
|
'error.gstackSetup': 'gstack setup 실패: {output}',
|
|
252
259
|
'error.gsdInstall': 'GSD 설치 실패: {output}',
|
|
@@ -1,7 +1,23 @@
|
|
|
1
1
|
import { definePlugin } from '../catalog.mjs'
|
|
2
|
+
import { CLI_IDS } from '../clis.mjs'
|
|
3
|
+
import { msg } from '../i18n/index.mjs'
|
|
4
|
+
|
|
5
|
+
// 상류의 Codex·Gemini 지원은 이 플러그인이 아니라 별도 리포의 독립 포팅본이다
|
|
6
|
+
// (bkit-codex: install 스크립트+MCP, 기능 241개 중 80개, hooks 없음 /
|
|
7
|
+
// bkit-gemini: Gemini CLI extension). 플러그인 항목을 재사용할 수 없어 사유만
|
|
8
|
+
// 남긴다. Gemini CLI는 2026-06-18 종료라 Gemini판은 Antigravity 승계 추정
|
|
9
|
+
// (2026-08-02 검증).
|
|
10
|
+
const PORTS = ['codex', 'gemini']
|
|
11
|
+
|
|
2
12
|
export default definePlugin({
|
|
3
13
|
id: 'plugin.bkit', label: 'bkit', group: '__flow',
|
|
4
14
|
installId: 'bkit@bkit-marketplace',
|
|
5
15
|
detectIds: ['bkit@bkit-marketplace'],
|
|
6
16
|
marketplace: { name: 'bkit-marketplace', repo: 'popup-studio-ai/bkit-claude-code' },
|
|
17
|
+
unsupported: Object.fromEntries(
|
|
18
|
+
CLI_IDS.filter((c) => c !== 'claude').map((c) => [
|
|
19
|
+
c,
|
|
20
|
+
PORTS.includes(c) ? msg('item.unsupported.bkitPort') : msg('item.unsupported.upstreamNone'),
|
|
21
|
+
]),
|
|
22
|
+
),
|
|
7
23
|
})
|
|
@@ -1,14 +1,28 @@
|
|
|
1
1
|
import { definePlugin } from '../catalog.mjs'
|
|
2
|
+
import { CLI_IDS } from '../clis.mjs'
|
|
3
|
+
import { msg } from '../i18n/index.mjs'
|
|
2
4
|
// 상류의 멀티 CLI 경로(`npx impeccable install --providers=... --scope=project`)는
|
|
3
5
|
// 쓰지 않는다. 실측 결과 그 명령이 `.claude/skills`를 **실제 디렉터리로 갈아치워**
|
|
4
6
|
// 부트스트랩이 만든 `.agents/skills` Junction을 끊는다 — 공유 스킬이 전부
|
|
5
|
-
// Claude Code 화면에서 사라진다.
|
|
7
|
+
// Claude Code 화면에서 사라진다. 버그가 아니라 설계다: 상류
|
|
8
|
+
// `cli/bin/commands/skills.mjs`의 isInProjectProviderLink가 "프로젝트 안 다른
|
|
9
|
+
// 프로바이더를 가리키는 링크"를 의도적으로 unlink한다(3.5.0 재확인, 2026-08-02).
|
|
10
|
+
// 플러그인 경로는 `.claude/skills`를 건드리지 않는다.
|
|
6
11
|
// 또 그 명령은 `--providers`와 `--scope`를 함께 주지 않으면 대화형으로 물으며,
|
|
7
12
|
// 비TTY에서는 조용히 global을 골라 홈에 설치한다.
|
|
13
|
+
// 상류 공식 프로바이더 14개 중 이 저장소의 CLI와 겹치는 것(아래 UPSTREAM).
|
|
14
|
+
// Antigravity는 README에만 있고 설치 CLI는 거부한다(수동 복사 전용).
|
|
15
|
+
const UPSTREAM = ['codex', 'gemini', 'opencode', 'kiro', 'grok', 'copilot']
|
|
8
16
|
export default definePlugin({
|
|
9
17
|
id: 'plugin.impeccable', label: 'impeccable', group: '__style',
|
|
10
18
|
installId: 'impeccable@impeccable',
|
|
11
19
|
detectIds: ['impeccable@impeccable'],
|
|
12
20
|
marketplace: { name: 'impeccable', repo: 'pbakaus/impeccable' },
|
|
13
21
|
note: 'item.plugin.impeccable.note',
|
|
22
|
+
unsupported: Object.fromEntries(
|
|
23
|
+
CLI_IDS.filter((c) => c !== 'claude').map((c) => [
|
|
24
|
+
c,
|
|
25
|
+
UPSTREAM.includes(c) ? msg('item.unsupported.impeccableJunction') : msg('item.unsupported.upstreamNone'),
|
|
26
|
+
]),
|
|
27
|
+
),
|
|
14
28
|
})
|
|
@@ -1,7 +1,23 @@
|
|
|
1
1
|
import { definePlugin } from '../catalog.mjs'
|
|
2
|
+
import { CLI_IDS } from '../clis.mjs'
|
|
3
|
+
import { msg } from '../i18n/index.mjs'
|
|
4
|
+
|
|
5
|
+
// 상류(obra/superpowers v6.2.0)는 Codex·Antigravity·Copilot CLI 등 11개
|
|
6
|
+
// 하니스를 지원하지만 설치 명령이 하니스마다 전부 달라 공유 경로가 없다
|
|
7
|
+
// (README: "install Superpowers separately for each one"). 이 항목이 배선하는
|
|
8
|
+
// 것은 Claude Code 플러그인 판뿐이다. Kilo·Kiro·Grok·VS Code는 상류에 공식
|
|
9
|
+
// 설치 경로가 없다(2026-08-02 검증).
|
|
10
|
+
const SEPARATE = ['codex', 'gemini', 'opencode', 'kimi', 'copilot']
|
|
11
|
+
|
|
2
12
|
export default definePlugin({
|
|
3
13
|
id: 'plugin.superpowers', label: 'superpowers', group: '__flow',
|
|
4
14
|
installId: 'superpowers@claude-plugins-official',
|
|
5
15
|
detectIds: ['superpowers@claude-plugins-official', 'superpowers@superpowers-marketplace'],
|
|
6
16
|
note: 'item.plugin.superpowers.note',
|
|
17
|
+
unsupported: Object.fromEntries(
|
|
18
|
+
CLI_IDS.filter((c) => c !== 'claude').map((c) => [
|
|
19
|
+
c,
|
|
20
|
+
SEPARATE.includes(c) ? msg('item.unsupported.superpowersSeparate') : msg('item.unsupported.upstreamNone'),
|
|
21
|
+
]),
|
|
22
|
+
),
|
|
7
23
|
})
|
package/lib/items/skill.gsd.mjs
CHANGED
|
@@ -1,15 +1,31 @@
|
|
|
1
1
|
import { existsSync, readdirSync } from 'node:fs'
|
|
2
2
|
import { join } from 'node:path'
|
|
3
3
|
import { defineSkill } from '../catalog.mjs'
|
|
4
|
-
import {
|
|
4
|
+
import { CLI_IDS } from '../clis.mjs'
|
|
5
|
+
import { LocalizedError, msg } from '../i18n/index.mjs'
|
|
5
6
|
|
|
6
7
|
function hasGsdFiles(dir) {
|
|
7
8
|
return existsSync(dir) && readdirSync(dir).some((f) => f.startsWith('gsd-'))
|
|
8
9
|
}
|
|
9
10
|
|
|
11
|
+
// 상류(v1.9.1)는 런타임 플래그 18개(--codex·--antigravity 등)를 지원하지만
|
|
12
|
+
// 이 항목은 --claude만 배선한다. Gemini CLI는 상류가 명시 제거했다(2026-06-18
|
|
13
|
+
// Google 종료, --gemini는 --antigravity 안내 후 종료). 상류의 --kilo는
|
|
14
|
+
// OpenCode 파생 "Kilo"(~/.config/kilo)라 이 저장소의 Kilo Code(.kilocode)와
|
|
15
|
+
// 같은 제품인지 미확인이라 지원으로 표기하지 않는다(2026-08-02 검증).
|
|
16
|
+
const FLAGS = ['codex', 'opencode', 'copilot', 'kimi']
|
|
17
|
+
|
|
10
18
|
export default defineSkill({
|
|
11
19
|
id: 'skill.gsd', label: 'GSD (Get Shit Done)', group: '__flow', scope: 'project',
|
|
12
20
|
note: 'item.skill.gsd.note',
|
|
21
|
+
unsupported: Object.fromEntries(
|
|
22
|
+
CLI_IDS.filter((c) => c !== 'claude').map((c) => [
|
|
23
|
+
c,
|
|
24
|
+
FLAGS.includes(c) ? msg('item.unsupported.gsdFlag')
|
|
25
|
+
: c === 'gemini' ? msg('item.unsupported.gsdGemini')
|
|
26
|
+
: msg('item.unsupported.upstreamNone'),
|
|
27
|
+
]),
|
|
28
|
+
),
|
|
13
29
|
async detect({ root }) {
|
|
14
30
|
const found = hasGsdFiles(join(root, '.claude', 'commands')) || hasGsdFiles(join(root, '.claude', 'skills'))
|
|
15
31
|
return { status: found ? 'installed' : 'absent' }
|
|
@@ -19,6 +35,9 @@ export default defineSkill({
|
|
|
19
35
|
if (!r.ok) throw new LocalizedError('error.gsdInstall', { output: r.output })
|
|
20
36
|
},
|
|
21
37
|
async uninstall({ root, exec }) {
|
|
38
|
+
// 런타임 플래그가 없으면 상류가 기본값 claude를 지운다 — 지금은 --claude만
|
|
39
|
+
// 설치하므로 맞지만, 다른 런타임을 설치하게 되면 여기에도 같은 플래그를
|
|
40
|
+
// 넘겨야 엉뚱한 설치본이 지워지지 않는다.
|
|
22
41
|
const r = await exec('npx', ['-y', '@opengsd/gsd-core@latest', '--uninstall'], { cwd: root })
|
|
23
42
|
if (!r.ok) throw new LocalizedError('error.gsdUninstall', { output: r.output })
|
|
24
43
|
},
|
|
@@ -1,15 +1,29 @@
|
|
|
1
1
|
import { existsSync, rmSync } from 'node:fs'
|
|
2
2
|
import { join } from 'node:path'
|
|
3
3
|
import { defineSkill } from '../catalog.mjs'
|
|
4
|
+
import { CLI_IDS } from '../clis.mjs'
|
|
4
5
|
import { repoPath, repoPathStrict } from '../context.mjs'
|
|
5
6
|
import { ensureGitignoreEntries } from '../gitignore.mjs'
|
|
6
|
-
import { LocalizedError } from '../i18n/index.mjs'
|
|
7
|
+
import { LocalizedError, msg } from '../i18n/index.mjs'
|
|
7
8
|
|
|
8
9
|
const REL_DIR = '.claude/skills/gstack'
|
|
9
10
|
|
|
11
|
+
// 상류 setup은 --host codex·kiro·opencode(와 factory)도 지원하지만 이 항목은
|
|
12
|
+
// 인자 없이 실행하며 setup의 기본값이 claude 단독이다. README 표에 있는
|
|
13
|
+
// --host cursor·slate는 setup의 case 문이 거부해 exit 1로 죽는다 —
|
|
14
|
+
// 확장한다면 안전한 값은 claude·codex·kiro·factory·opencode·auto뿐이다
|
|
15
|
+
// (2026-08-02 검증).
|
|
16
|
+
const HOSTS = ['codex', 'kiro', 'opencode']
|
|
17
|
+
|
|
10
18
|
export default defineSkill({
|
|
11
19
|
id: 'skill.gstack', label: 'gstack', group: '__flow', scope: 'project',
|
|
12
20
|
note: 'item.skill.gstack.note',
|
|
21
|
+
unsupported: Object.fromEntries(
|
|
22
|
+
CLI_IDS.filter((c) => c !== 'claude').map((c) => [
|
|
23
|
+
c,
|
|
24
|
+
HOSTS.includes(c) ? msg('item.unsupported.gstackHost') : msg('item.unsupported.upstreamNone'),
|
|
25
|
+
]),
|
|
26
|
+
),
|
|
13
27
|
async detect({ root }) {
|
|
14
28
|
return { status: existsSync(repoPath(root, REL_DIR)) ? 'installed' : 'absent' }
|
|
15
29
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rch4com/agent-setup",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0",
|
|
4
4
|
"description": "Repository-scoped bootstrap and optional-item installer for using multiple coding-agent CLIs in one repository | 여러 코딩 에이전트 CLI를 한 저장소에서 함께 쓰기 위한 저장소 범위 부트스트랩과 선택 항목 설치기",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"agents-md",
|