oh-my-customcode 1.1.27 → 1.1.29
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/README.md +2 -2
- package/dist/cli/index.js +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/templates/.claude/rules/MUST-agent-identification.md +10 -0
- package/templates/.claude/skills/profile/SKILL.md +0 -57
- package/templates/.claude/skills/status/SKILL.md +1 -1
- package/templates/CLAUDE.md +1 -1
- package/templates/CLAUDE.md.en +1 -1
- package/templates/CLAUDE.md.ko +1 -1
- package/templates/README.md +2 -2
- package/templates/guides/index.yaml +0 -6
- package/templates/manifest.json +3 -122
- package/templates/guides/profiles/manifest-install.md +0 -177
package/README.md
CHANGED
|
@@ -220,7 +220,7 @@ Key rules: R010 (orchestrator never writes files), R009 (parallel execution mand
|
|
|
220
220
|
|
|
221
221
|
---
|
|
222
222
|
|
|
223
|
-
### Guides (
|
|
223
|
+
### Guides (56)
|
|
224
224
|
|
|
225
225
|
Reference documentation covering best practices, architecture decisions, and integration patterns. Located in `guides/` at project root, covering topics from agent design to CI/CD to observability.
|
|
226
226
|
|
|
@@ -277,7 +277,7 @@ your-project/
|
|
|
277
277
|
│ ├── specs/ # Extracted canonical specs
|
|
278
278
|
│ ├── contexts/ # 4 shared context files
|
|
279
279
|
│ └── ontology/ # Knowledge graph for RAG
|
|
280
|
-
└── guides/ #
|
|
280
|
+
└── guides/ # 56 reference documents
|
|
281
281
|
```
|
|
282
282
|
|
|
283
283
|
---
|
package/dist/cli/index.js
CHANGED
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -120,6 +120,16 @@ Reference issue: #1096.
|
|
|
120
120
|
|
|
121
121
|
<!-- Reference issues: #1188 item #2, #1198 item #2, #1409. -->
|
|
122
122
|
|
|
123
|
+
#### Status-Line Bracket ≠ Agent Identification Header
|
|
124
|
+
|
|
125
|
+
`[FSD Iteration N]`, `[Progress]`, `[Done]`, `[Start]` 같은 R003 상태줄 브래킷은 R007 에이전트 식별 헤더를 **충족하지 않는다**. R007 헤더는 반드시 에이전트명(`┌─ Agent: {name}` 풀 헤더 또는 `[{agent-name}]` 단축 헤더)을 포함해야 한다. 장기 자율 루프(`/fsd` 등)의 기술적 몰입 중 상태줄 브래킷이 에이전트-id 브래킷을 대체하는 드리프트가 반복 관찰된다.
|
|
126
|
+
|
|
127
|
+
| Anti-pattern | Required |
|
|
128
|
+
|--------------|----------|
|
|
129
|
+
| `[FSD Iteration 3/5 — ...]` 상태줄로 응답 시작 (에이전트명 부재) | 먼저 `┌─ Agent: claude → fsd` 또는 `[claude]` R007 헤더를 출력한 뒤 상태줄; 또는 브래킷에 에이전트명 결합(`[claude][opus] [FSD Iteration 3/5]`) |
|
|
130
|
+
|
|
131
|
+
Origin: #1507 (장기 자율 릴리즈 루프 몰입 중 상태줄 브래킷이 에이전트-id 브래킷 대체 — R007 External-Project/Debugging Session Vigilance의 자율-루프 각도 확장).
|
|
132
|
+
|
|
123
133
|
### External-Project / Debugging Session Vigilance
|
|
124
134
|
|
|
125
135
|
R007 헤더 누락은 외부 프로젝트 디버깅, SSH 진단, 배포 작업 등 기술적 몰입 세션에서 가장 자주 발생한다. 이 규칙은 프로젝트 종류와 무관하게 모든 상황에 적용된다.
|
|
@@ -96,60 +96,3 @@ IMPORTANT: Restart this Claude Code session for plugin changes to take effect.
|
|
|
96
96
|
- Profiles define a subset: plugins not listed in `enabled` or `disabled` keep their current state
|
|
97
97
|
- Profile JSON `enabled`/`disabled` lists use full plugin keys: `<name>@<marketplace>` format
|
|
98
98
|
- All `.claude/` writes use direct Write/Edit/Bash (CC v2.1.121+, no `/tmp` wrapping — see Implementation rules above)
|
|
99
|
-
|
|
100
|
-
## Manifest Profile Integration
|
|
101
|
-
|
|
102
|
-
`templates/manifest.json` 의 `profiles` 키는 **자산 필터링** (에이전트·스킬·가이드 범위)을 정의합니다. 기존 `.claude/profiles/*.json` 의 **플러그인 전환** 역할과 분리된 개념입니다.
|
|
103
|
-
|
|
104
|
-
### 두 프로필 시스템 비교
|
|
105
|
-
|
|
106
|
-
| 시스템 | 경로 | 역할 | 적용 시점 |
|
|
107
|
-
|--------|------|------|-----------|
|
|
108
|
-
| Plugin profiles | `.claude/profiles/*.json` | `~/.claude/settings.json` plugin on/off | 세션 재시작 후 |
|
|
109
|
-
| Manifest profiles | `templates/manifest.json#profiles` | 설치 시 에이전트·스킬·가이드 범위 지정 | `omcustom install --profile <name>` |
|
|
110
|
-
|
|
111
|
-
### Manifest Profile 사용 시나리오
|
|
112
|
-
|
|
113
|
-
```bash
|
|
114
|
-
# 최소 자산으로 설치 (학습·실험 환경)
|
|
115
|
-
omcustom install --profile minimal
|
|
116
|
-
|
|
117
|
-
# Web 앱 개발 전용 자산 설치
|
|
118
|
-
omcustom install --profile web-app
|
|
119
|
-
|
|
120
|
-
# 데이터 엔지니어링 전용 자산 설치
|
|
121
|
-
omcustom install --profile data-eng
|
|
122
|
-
|
|
123
|
-
# 전체 자산 설치 (기본값)
|
|
124
|
-
omcustom install --profile full
|
|
125
|
-
# 또는 (profile 생략 시 full과 동일)
|
|
126
|
-
omcustom install
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
### include 패턴 해석 규칙
|
|
130
|
-
|
|
131
|
-
| 패턴 | 의미 | 예시 |
|
|
132
|
-
|------|------|------|
|
|
133
|
-
| `"*"` | 해당 카테고리 전체 포함 | `"include": "*"` |
|
|
134
|
-
| `"mgr-*"` | glob 패턴, 접두사 매칭 | mgr-creator, mgr-gitnerd 등 |
|
|
135
|
-
| `{"scope": "core"}` | SKILL.md의 scope 필드 기준 | scope: core인 스킬 전체 |
|
|
136
|
-
| `"react-best-practices"` | 특정 스킬/가이드 이름 | 해당 항목만 포함 |
|
|
137
|
-
|
|
138
|
-
### Plugin + Manifest 프로필 연동 가이드
|
|
139
|
-
|
|
140
|
-
동일 이름(예: `web-app`)으로 두 시스템을 함께 사용할 수 있습니다:
|
|
141
|
-
|
|
142
|
-
```bash
|
|
143
|
-
# 1. Manifest profile로 자산 설치
|
|
144
|
-
omcustom install --profile web-app
|
|
145
|
-
|
|
146
|
-
# 2. Plugin profile로 플러그인 전환
|
|
147
|
-
/profile load web-app
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
두 시스템은 독립적이므로 어느 하나만 사용해도 무방합니다.
|
|
151
|
-
|
|
152
|
-
### 관련 문서
|
|
153
|
-
|
|
154
|
-
- `guides/profiles/manifest-install.md` — 전체 사용 가이드 및 프로필별 자산 표
|
|
155
|
-
- `templates/manifest.json#profiles` — 프로필 정의 소스
|
package/templates/CLAUDE.md
CHANGED
package/templates/CLAUDE.md.en
CHANGED
|
@@ -134,7 +134,7 @@ project/
|
|
|
134
134
|
| +-- rules/ # Global rules (R000-R023)
|
|
135
135
|
| +-- hooks/ # Hook scripts (security, validation, HUD)
|
|
136
136
|
| +-- contexts/ # Context files (ecomode)
|
|
137
|
-
+-- guides/ # Reference docs (
|
|
137
|
+
+-- guides/ # Reference docs (56 topics)
|
|
138
138
|
```
|
|
139
139
|
|
|
140
140
|
## Orchestration
|
package/templates/CLAUDE.md.ko
CHANGED
package/templates/README.md
CHANGED
|
@@ -55,7 +55,7 @@ templates/
|
|
|
55
55
|
│ │ └── scripts/ # 훅 셸 스크립트 (34개)
|
|
56
56
|
│ ├── contexts/ # 컨텍스트 설정 파일 (ecomode 등)
|
|
57
57
|
│ └── ontology/ # Ontology-RAG 지식 그래프
|
|
58
|
-
└── guides/ # 레퍼런스 문서 디렉토리 (
|
|
58
|
+
└── guides/ # 레퍼런스 문서 디렉토리 (56개)
|
|
59
59
|
```
|
|
60
60
|
|
|
61
61
|
---
|
|
@@ -109,7 +109,7 @@ CI의 `verify-template-sync.sh`가 소스와 templates/ 간 일치를 검증합
|
|
|
109
109
|
| `SHOULD` | 강력 권장 | R003 상호작용, R013 Ecomode |
|
|
110
110
|
| `MAY` | 선택 | R005 최적화 |
|
|
111
111
|
|
|
112
|
-
### Guides (
|
|
112
|
+
### Guides (56)
|
|
113
113
|
|
|
114
114
|
`guides/*/` — 레퍼런스 문서 디렉토리.
|
|
115
115
|
|
|
@@ -372,12 +372,6 @@ guides:
|
|
|
372
372
|
source:
|
|
373
373
|
type: internal
|
|
374
374
|
|
|
375
|
-
- name: profiles
|
|
376
|
-
description: Manifest install profile guide — minimal/full profile selection patterns
|
|
377
|
-
path: ./profiles/
|
|
378
|
-
source:
|
|
379
|
-
type: internal
|
|
380
|
-
|
|
381
375
|
# Security
|
|
382
376
|
- name: security
|
|
383
377
|
description: Security pre-flight analysis pattern (AgentShield) for pre-write risk identification
|
package/templates/manifest.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.1.
|
|
2
|
+
"version": "1.1.29",
|
|
3
3
|
"lastUpdated": "2026-07-14T00:00:00.000Z",
|
|
4
4
|
"omcustomMinClaudeCode": "2.1.121",
|
|
5
5
|
"omcustomMinClaudeCodeReason": "Sensitive-path direct Write/Edit on .claude/** under bypassPermissions (R010 deprecation, #1101)",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"name": "guides",
|
|
27
27
|
"path": "guides",
|
|
28
28
|
"description": "Reference documentation",
|
|
29
|
-
"files":
|
|
29
|
+
"files": 56
|
|
30
30
|
},
|
|
31
31
|
{
|
|
32
32
|
"name": "hooks",
|
|
@@ -47,124 +47,5 @@
|
|
|
47
47
|
"files": 8
|
|
48
48
|
}
|
|
49
49
|
],
|
|
50
|
-
"source": "https://github.com/baekenough/oh-my-customcode"
|
|
51
|
-
"profiles": {
|
|
52
|
-
"minimal": {
|
|
53
|
-
"description": "Essential assets only — core SW Engineers + Managers. Reduces deactivation cost on first use.",
|
|
54
|
-
"include": {
|
|
55
|
-
"agents": [
|
|
56
|
-
"mgr-*",
|
|
57
|
-
"lang-*-expert",
|
|
58
|
-
"sys-memory-keeper"
|
|
59
|
-
],
|
|
60
|
-
"skills": [
|
|
61
|
-
{
|
|
62
|
-
"scope": "core"
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
"scope": "harness"
|
|
66
|
-
}
|
|
67
|
-
],
|
|
68
|
-
"guides": [
|
|
69
|
-
"agent-design",
|
|
70
|
-
"git-safety",
|
|
71
|
-
"claude-code"
|
|
72
|
-
]
|
|
73
|
-
}
|
|
74
|
-
},
|
|
75
|
-
"full": {
|
|
76
|
-
"description": "All assets (default). Equivalent to installing without --profile flag.",
|
|
77
|
-
"include": "*"
|
|
78
|
-
},
|
|
79
|
-
"web-app": {
|
|
80
|
-
"description": "Full-stack web application development profile.",
|
|
81
|
-
"include": {
|
|
82
|
-
"agents": [
|
|
83
|
-
"lang-typescript-expert",
|
|
84
|
-
"lang-python-expert",
|
|
85
|
-
"fe-vercel-agent",
|
|
86
|
-
"fe-design-expert",
|
|
87
|
-
"be-fastapi-expert",
|
|
88
|
-
"be-express-expert",
|
|
89
|
-
"be-nestjs-expert",
|
|
90
|
-
"db-postgres-expert",
|
|
91
|
-
"db-supabase-expert",
|
|
92
|
-
"db-redis-expert",
|
|
93
|
-
"infra-docker-expert",
|
|
94
|
-
"mgr-*"
|
|
95
|
-
],
|
|
96
|
-
"skills": [
|
|
97
|
-
{
|
|
98
|
-
"scope": "core"
|
|
99
|
-
},
|
|
100
|
-
"react-best-practices",
|
|
101
|
-
"typescript-best-practices",
|
|
102
|
-
"fastapi-best-practices"
|
|
103
|
-
],
|
|
104
|
-
"guides": [
|
|
105
|
-
"agent-design",
|
|
106
|
-
"git-safety",
|
|
107
|
-
"claude-code",
|
|
108
|
-
"drizzle-orm",
|
|
109
|
-
"docker",
|
|
110
|
-
"fastapi"
|
|
111
|
-
]
|
|
112
|
-
}
|
|
113
|
-
},
|
|
114
|
-
"data-eng": {
|
|
115
|
-
"description": "Data engineering sessions — Airflow, Spark, Kafka, Snowflake, dbt.",
|
|
116
|
-
"include": {
|
|
117
|
-
"agents": [
|
|
118
|
-
"de-airflow-expert",
|
|
119
|
-
"de-dbt-expert",
|
|
120
|
-
"de-spark-expert",
|
|
121
|
-
"de-kafka-expert",
|
|
122
|
-
"de-snowflake-expert",
|
|
123
|
-
"de-pipeline-expert",
|
|
124
|
-
"db-postgres-expert",
|
|
125
|
-
"db-redis-expert",
|
|
126
|
-
"db-alembic-expert",
|
|
127
|
-
"lang-python-expert",
|
|
128
|
-
"mgr-*"
|
|
129
|
-
],
|
|
130
|
-
"skills": [
|
|
131
|
-
{
|
|
132
|
-
"scope": "core"
|
|
133
|
-
},
|
|
134
|
-
"airflow-best-practices",
|
|
135
|
-
"dbt-best-practices"
|
|
136
|
-
],
|
|
137
|
-
"guides": [
|
|
138
|
-
"agent-design",
|
|
139
|
-
"git-safety",
|
|
140
|
-
"airflow",
|
|
141
|
-
"dbt",
|
|
142
|
-
"snowflake"
|
|
143
|
-
]
|
|
144
|
-
}
|
|
145
|
-
},
|
|
146
|
-
"harness-dev": {
|
|
147
|
-
"description": "oh-my-customcode harness development — agent, skill, rule authoring.",
|
|
148
|
-
"include": {
|
|
149
|
-
"agents": [
|
|
150
|
-
"mgr-*",
|
|
151
|
-
"arch-*",
|
|
152
|
-
"sys-*",
|
|
153
|
-
"wiki-curator",
|
|
154
|
-
"tracker-checkpoint"
|
|
155
|
-
],
|
|
156
|
-
"skills": [
|
|
157
|
-
{
|
|
158
|
-
"scope": "harness"
|
|
159
|
-
}
|
|
160
|
-
],
|
|
161
|
-
"guides": [
|
|
162
|
-
"agent-design",
|
|
163
|
-
"git-safety",
|
|
164
|
-
"claude-code",
|
|
165
|
-
"agent-workflow"
|
|
166
|
-
]
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
}
|
|
50
|
+
"source": "https://github.com/baekenough/oh-my-customcode"
|
|
170
51
|
}
|
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
# Manifest Profiles — Install Guide
|
|
2
|
-
|
|
3
|
-
> **Source**: `templates/manifest.json#profiles`
|
|
4
|
-
> **Related skill**: `.claude/skills/profile/SKILL.md`
|
|
5
|
-
> **Issue**: #1177 (ECC manifest-install `--profile minimal/full` pattern)
|
|
6
|
-
|
|
7
|
-
`--profile` 플래그를 사용하면 설치 시 포함할 에이전트·스킬·가이드 범위를 지정할 수 있습니다. 사용자 진입 비용(deactivation cost)을 줄이고, 목적에 맞는 최소 자산 세트로 빠르게 시작할 수 있습니다.
|
|
8
|
-
|
|
9
|
-
## 사용 방법
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
# 기본 설치 (full — 전체 자산)
|
|
13
|
-
omcustom install
|
|
14
|
-
|
|
15
|
-
# 프로필 지정 설치
|
|
16
|
-
omcustom install --profile minimal
|
|
17
|
-
omcustom install --profile web-app
|
|
18
|
-
omcustom install --profile data-eng
|
|
19
|
-
omcustom install --profile harness-dev
|
|
20
|
-
omcustom install --profile full
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
## 프로필 목록
|
|
24
|
-
|
|
25
|
-
| 프로필 | 설명 | 추천 대상 |
|
|
26
|
-
|--------|------|-----------|
|
|
27
|
-
| `minimal` | 필수 최소 자산 (코어 SW Engineer + Manager) | 학습·실험·경량 환경 |
|
|
28
|
-
| `full` | 전체 자산 (기본값) | 프로덕션, 다양한 도메인 |
|
|
29
|
-
| `web-app` | 풀스택 웹 앱 개발 자산 | TypeScript/Python 풀스택 팀 |
|
|
30
|
-
| `data-eng` | 데이터 엔지니어링 자산 | Airflow/Spark/dbt/Kafka/Snowflake |
|
|
31
|
-
| `harness-dev` | oh-my-customcode 하네스 개발 자산 | 에이전트·스킬·룰 작성자 |
|
|
32
|
-
|
|
33
|
-
---
|
|
34
|
-
|
|
35
|
-
## 프로필별 포함 자산
|
|
36
|
-
|
|
37
|
-
### minimal
|
|
38
|
-
|
|
39
|
-
사용 시나리오: 첫 설치, 학습 환경, 토큰 비용 최소화.
|
|
40
|
-
|
|
41
|
-
| 카테고리 | 포함 자산 |
|
|
42
|
-
|----------|-----------|
|
|
43
|
-
| 에이전트 | `mgr-*` (6개), `lang-*-expert` (6개), `sys-memory-keeper` |
|
|
44
|
-
| 스킬 | scope: `core` + scope: `harness` 전체 |
|
|
45
|
-
| 가이드 | `agent-design`, `git-safety`, `claude-code` |
|
|
46
|
-
|
|
47
|
-
**배제**: 프레임워크 전문가(BE/FE/DE), QA 팀, 인프라, 보안, DB 전문가.
|
|
48
|
-
|
|
49
|
-
### full
|
|
50
|
-
|
|
51
|
-
사용 시나리오: 프로덕션 팀, 다양한 기술 스택, 기본 설치.
|
|
52
|
-
|
|
53
|
-
| 카테고리 | 포함 자산 |
|
|
54
|
-
|----------|-----------|
|
|
55
|
-
| 에이전트 | 전체 49개 |
|
|
56
|
-
| 스킬 | 전체 119개 |
|
|
57
|
-
| 가이드 | 전체 54개 |
|
|
58
|
-
|
|
59
|
-
`omcustom install` (profile 플래그 생략 시) 와 동일합니다.
|
|
60
|
-
|
|
61
|
-
### web-app
|
|
62
|
-
|
|
63
|
-
사용 시나리오: TypeScript/Python 풀스택 웹 앱 개발팀.
|
|
64
|
-
|
|
65
|
-
| 카테고리 | 포함 자산 |
|
|
66
|
-
|----------|-----------|
|
|
67
|
-
| 에이전트 | `lang-typescript-expert`, `lang-python-expert`, `fe-vercel-agent`, `fe-design-expert`, `be-fastapi-expert`, `be-express-expert`, `be-nestjs-expert`, `db-postgres-expert`, `db-supabase-expert`, `db-redis-expert`, `infra-docker-expert`, `mgr-*` |
|
|
68
|
-
| 스킬 | scope: `core` + `react-best-practices`, `typescript-best-practices`, `fastapi-best-practices`, `nextjs-best-practices` |
|
|
69
|
-
| 가이드 | `agent-design`, `git-safety`, `claude-code`, `drizzle-orm`, `docker`, `fastapi`, `nextjs`, `react` |
|
|
70
|
-
|
|
71
|
-
**배제**: 데이터 엔지니어링(DE), Java/Kotlin/Go/Rust 전문가, QA 팀, 보안.
|
|
72
|
-
|
|
73
|
-
### data-eng
|
|
74
|
-
|
|
75
|
-
사용 시나리오: 데이터 파이프라인 엔지니어링 팀.
|
|
76
|
-
|
|
77
|
-
| 카테고리 | 포함 자산 |
|
|
78
|
-
|----------|-----------|
|
|
79
|
-
| 에이전트 | `de-*` (6개), `db-postgres-expert`, `db-redis-expert`, `db-alembic-expert`, `lang-python-expert`, `mgr-*` |
|
|
80
|
-
| 스킬 | scope: `core` + `airflow-best-practices`, `dbt-best-practices` |
|
|
81
|
-
| 가이드 | `agent-design`, `git-safety`, `airflow`, `dbt`, `snowflake` |
|
|
82
|
-
|
|
83
|
-
**배제**: 프론트엔드, 백엔드 프레임워크, 인프라, QA.
|
|
84
|
-
|
|
85
|
-
### harness-dev
|
|
86
|
-
|
|
87
|
-
사용 시나리오: oh-my-customcode 시스템 자체 개발·유지보수.
|
|
88
|
-
|
|
89
|
-
| 카테고리 | 포함 자산 |
|
|
90
|
-
|----------|-----------|
|
|
91
|
-
| 에이전트 | `mgr-*` (6개), `arch-*` (2개), `sys-*` (4개 중 sys-naggy 포함), `wiki-curator`, `tracker-checkpoint` |
|
|
92
|
-
| 스킬 | scope: `harness` 전체 |
|
|
93
|
-
| 가이드 | `agent-design`, `git-safety`, `claude-code`, `skill-authoring`, `agent-workflow` |
|
|
94
|
-
|
|
95
|
-
**배제**: 언어/프레임워크/DE/QA/인프라 전문가.
|
|
96
|
-
|
|
97
|
-
---
|
|
98
|
-
|
|
99
|
-
## include 패턴 레퍼런스
|
|
100
|
-
|
|
101
|
-
`manifest.json#profiles[].include` 필드에 사용 가능한 패턴:
|
|
102
|
-
|
|
103
|
-
```json
|
|
104
|
-
{
|
|
105
|
-
"include": "*"
|
|
106
|
-
}
|
|
107
|
-
```
|
|
108
|
-
전체 포함 (full 프로필과 동일).
|
|
109
|
-
|
|
110
|
-
```json
|
|
111
|
-
{
|
|
112
|
-
"include": {
|
|
113
|
-
"agents": ["mgr-*", "lang-typescript-expert"],
|
|
114
|
-
"skills": [{"scope": "core"}, "react-best-practices"],
|
|
115
|
-
"guides": ["agent-design", "git-safety"]
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
```
|
|
119
|
-
카테고리별 부분 포함.
|
|
120
|
-
|
|
121
|
-
| 표현식 | 의미 |
|
|
122
|
-
|--------|------|
|
|
123
|
-
| `"*"` | 카테고리 전체 포함 |
|
|
124
|
-
| `"mgr-*"` | 접두사 glob 매칭 |
|
|
125
|
-
| `"lang-*-expert"` | 와일드카드 glob 매칭 |
|
|
126
|
-
| `{"scope": "core"}` | SKILL.md `scope` 필드 기준 필터 |
|
|
127
|
-
| `"react-best-practices"` | 정확한 이름 매칭 |
|
|
128
|
-
|
|
129
|
-
---
|
|
130
|
-
|
|
131
|
-
## Plugin Profile vs Manifest Profile
|
|
132
|
-
|
|
133
|
-
두 프로필 시스템은 **서로 독립**입니다.
|
|
134
|
-
|
|
135
|
-
| 구분 | 경로 | 역할 | 적용 시점 |
|
|
136
|
-
|------|------|------|-----------|
|
|
137
|
-
| **Plugin profiles** | `.claude/profiles/*.json` | `~/.claude/settings.json` plugin on/off | 세션 재시작 후 |
|
|
138
|
-
| **Manifest profiles** | `templates/manifest.json#profiles` | 설치 시 에이전트·스킬·가이드 범위 | `omcustom install --profile` |
|
|
139
|
-
|
|
140
|
-
동일한 이름(예: `web-app`)이 두 시스템에 모두 존재하면 각각 독립적으로 적용됩니다:
|
|
141
|
-
|
|
142
|
-
```bash
|
|
143
|
-
# Manifest profile: 설치 자산 범위
|
|
144
|
-
omcustom install --profile web-app
|
|
145
|
-
|
|
146
|
-
# Plugin profile: 플러그인 on/off
|
|
147
|
-
/profile load web-app
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
---
|
|
151
|
-
|
|
152
|
-
## 커스텀 프로필 추가
|
|
153
|
-
|
|
154
|
-
`templates/manifest.json` 의 `profiles` 객체에 새 키를 추가합니다:
|
|
155
|
-
|
|
156
|
-
```json
|
|
157
|
-
"my-profile": {
|
|
158
|
-
"description": "My custom profile description",
|
|
159
|
-
"include": {
|
|
160
|
-
"agents": ["lang-golang-expert", "be-go-backend-expert", "mgr-*"],
|
|
161
|
-
"skills": [{"scope": "core"}],
|
|
162
|
-
"guides": ["agent-design", "git-safety"]
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
커스텀 프로필은 `omcustom install --profile my-profile` 로 즉시 사용 가능합니다.
|
|
168
|
-
|
|
169
|
-
---
|
|
170
|
-
|
|
171
|
-
## 관련 자료
|
|
172
|
-
|
|
173
|
-
- `.claude/skills/profile/SKILL.md` — Plugin profile 전환 스킬
|
|
174
|
-
- `templates/manifest.json` — 전체 manifest 및 profiles 정의
|
|
175
|
-
- `guides/agent-design/` — 에이전트 설계 가이드
|
|
176
|
-
- Issue #1177 — ECC manifest-install 패턴 흡수
|
|
177
|
-
- Issue #1170 — ECC 4 패턴 흡수 epic
|