@uzysjung/agent-harness 26.148.0 → 26.149.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/dist/{chunk-PTUM2NI3.js → chunk-YSW3OLH4.js} +50 -9
- package/dist/chunk-YSW3OLH4.js.map +1 -0
- package/dist/index.js +228 -109
- package/dist/index.js.map +1 -1
- package/dist/trust-tier-drift.js +1 -1
- package/package.json +2 -1
- package/templates/rules/ship-checklist.md +4 -3
- package/templates/rules/test-policy.md +12 -3
- package/templates/skills/humanize-korean/SKILL.md +228 -0
- package/templates/skills/north-star/NORTH_STAR.template.md +106 -47
- package/templates/skills/north-star/SKILL.md +230 -74
- package/templates/skills/north-star/references/roadmap-method.md +62 -12
- package/templates/skills/self-hosted-github-runner/SKILL.md +328 -0
- package/templates/skills/verification-loop/SKILL.md +23 -0
- package/dist/chunk-PTUM2NI3.js.map +0 -1
package/dist/trust-tier-drift.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uzysjung/agent-harness",
|
|
3
|
-
"version": "26.
|
|
3
|
+
"version": "26.149.0",
|
|
4
4
|
"description": "Curate vetted AI-coding skills & plugins by your tech stack — install only what you need, across Claude Code, Codex, OpenCode & Antigravity",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"publishConfig": {
|
|
@@ -35,6 +35,7 @@
|
|
|
35
35
|
"cost:report": "npm run build && node scripts/context-cost-report.mjs",
|
|
36
36
|
"cost:baseline": "npm run build && node scripts/context-cost-baseline.mjs",
|
|
37
37
|
"assets:history": "bash scripts/asset-history.sh",
|
|
38
|
+
"release:audit": "node scripts/release-audit.mjs",
|
|
38
39
|
"security": "npm audit --omit=dev --audit-level=high && npx --yes ecc-agentshield@1.4.0 scan --baseline security-baseline.json --gate",
|
|
39
40
|
"security:baseline": "npx --yes ecc-agentshield@1.4.0 scan --save-baseline security-baseline.json"
|
|
40
41
|
},
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
# Delivery
|
|
2
2
|
|
|
3
|
-
무엇으로 검증할지는 이 저장소가 정한다.
|
|
3
|
+
무엇으로 검증할지는 이 저장소가 정한다. **어느 정도까지**는 Testing 룰이, 그 결과가 **언제** 있어야 하는지는 이 룰이 정한다.
|
|
4
4
|
|
|
5
5
|
- **완료 판정은 만든 쪽이 아니라 검증자가 내린다.** 요구사항·변경분·검증 결과를 **직접 다시 확인**한 뒤 판정한다 — 보고를 읽고 승인하는 것은 판정이 아니다.
|
|
6
|
-
-
|
|
7
|
-
-
|
|
6
|
+
- **머지 전**: 변경 위험에 맞는 검증을 **실행하고 결과를 확인한다.** high risk 는 더 많은 증거를 갖고 들어오고, **실행하지 않은 상태는 통과가 아니다.**
|
|
7
|
+
- **배포**: 머지 전에 검증된 것과 **같은 artifact** 를 내보내고, 배포 뒤 실제 환경에서 smoke · health · 핵심 기능을 확인한다.
|
|
8
|
+
- **머지·게시 경로가 그 검증 통과에 의존해야 한다.** 별개 경로면 아무도 우회하려 하지 않았는데 red 가 그대로 나간다. 의존하지 않는 상태를 발견하면 경로를 고치기 전에 먼저 보고한다.
|
|
8
9
|
- 변경분이 사용자에게 닿는 경로가 여럿이면 **경로마다 실행 증거를 따로** 확보한다. 한 경로의 증거를 다른 경로에 전용하지 않는다.
|
|
9
10
|
- 이 저장소가 정의한 **보안·취약점 검사도** 실행하고 결과를 확인한다 — 테스트만 돌리고 나가는 것이 기본값이 되기 쉽다.
|
|
10
11
|
- 추적 문서가 코드와 어긋난 채로 나가지 않게 한다. **이 하네스가 설치해 둔 검사기**를 쓴다(스스로는 존재를 알 수 없으므로 여기 적는다): `bash .uzys-agent-harness/spec-drift-check.sh ship` — **exit 2 면 차단**(동기화 후 재시도), 1 은 경고, 0 이 통과. 백로그는 `ship-gate:ignore` 구간으로 감싸 면제한다(표식이 안 닫히면 면제를 통째로 무시한다).
|
|
@@ -1,10 +1,19 @@
|
|
|
1
1
|
# Testing
|
|
2
2
|
|
|
3
|
+
**How far** to verify scales with the risk of the change; **when** those results must exist
|
|
4
|
+
belongs to the Delivery rule.
|
|
5
|
+
|
|
6
|
+
- An ordinary change gets the repository's baseline CI, regression across the affected scope, and
|
|
7
|
+
whatever independent verification it warrants. A high-risk one widens that in proportion to what
|
|
8
|
+
it touches and what its failure would cost.
|
|
9
|
+
- High-risk includes at least authentication, authorization, payments and settlement, personal
|
|
10
|
+
data, data integrity, concurrency, state transitions, and migrations.
|
|
11
|
+
- Full regression, full E2E, full mutation, and periodic security scanning belong to the CI/CD
|
|
12
|
+
schedule, not to a per-change decision.
|
|
3
13
|
- Test observable behavior — contracts and invariants — at whichever level best exposes
|
|
4
14
|
plausible failures.
|
|
5
|
-
- For high-risk
|
|
6
|
-
|
|
7
|
-
paths, omitting one only when failure on it is not plausible.
|
|
15
|
+
- For a high-risk change, cover normal, boundary, failure, misuse, and recovery paths,
|
|
16
|
+
omitting one only when failure on it is not plausible.
|
|
8
17
|
- Keep tests deterministic: time, randomness, shared state, execution order, network, and
|
|
9
18
|
external services.
|
|
10
19
|
- Use production-compatible dependencies when a substitute's behavioral differences could affect
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: humanize-korean
|
|
3
|
+
description: 한국어 글에서 실제로 어색한 문체 문제를 진단하고, 근거가 있는 부분만 최소 수정해 자연스럽게 다듬는다. 번역투, AI 상투구, 기계적 구조, 접속사·형식명사·완곡 표현의 반복, 불필요한 영어 장식 등을 다루며 의미·사실·수치·전문용어·말투는 보존한다. "AI 티 없애줘", "자연스럽게 다듬어줘", "번역투 고쳐줘", "사람이 쓴 글처럼", "문체 진단 후 고쳐줘" 같은 요청에 사용한다.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Humanize Korean
|
|
7
|
+
|
|
8
|
+
## 목적
|
|
9
|
+
|
|
10
|
+
글을 많이 바꾸는 것이 목적이 아니다.
|
|
11
|
+
|
|
12
|
+
**어디가 실제로 어색한지 먼저 진단하고, 왜 문제인지 근거를 잡은 뒤, 필요한 부분만 고친다.**
|
|
13
|
+
|
|
14
|
+
기본 흐름:
|
|
15
|
+
|
|
16
|
+
> **진단 → 최소 수정 → 의미 검증**
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## 핵심 원칙
|
|
21
|
+
|
|
22
|
+
1. **진단 없이 전면 재작성하지 않는다.**
|
|
23
|
+
2. **문제로 확인된 부분만 수정한다.**
|
|
24
|
+
3. **표현 하나가 존재한다는 이유만으로 AI 티라고 판단하지 않는다.**
|
|
25
|
+
4. **사실·주장·수치·고유명사·인용·전문용어·논리관계는 보존한다.**
|
|
26
|
+
5. **장르와 말투(register)를 유지한다.**
|
|
27
|
+
6. **원문에 없던 주장·근거·감정·비유·상투구를 추가하지 않는다.**
|
|
28
|
+
7. **이미 자연스러운 문장은 그대로 둔다.**
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## 1. 진단
|
|
33
|
+
|
|
34
|
+
글 전체를 먼저 읽고 **체감되는 문제만 최대 3~6개** 고른다.
|
|
35
|
+
|
|
36
|
+
각 finding에는 반드시 다음이 있어야 한다.
|
|
37
|
+
|
|
38
|
+
- **문제**: 무엇이 어색한가
|
|
39
|
+
- **근거**: 실제 표현 또는 반복되는 구조
|
|
40
|
+
- **영향**: 왜 글이 번역투·기계적·과장된 느낌을 주는가
|
|
41
|
+
- **수정 방향**: 어떻게 고칠 것인가
|
|
42
|
+
|
|
43
|
+
다음 중 하나에도 해당하지 않으면 문제로 올리지 않는다.
|
|
44
|
+
|
|
45
|
+
- 한국어 문장으로 명백히 부자연스럽다.
|
|
46
|
+
- 같은 표현이나 문형이 반복돼 기계적인 리듬을 만든다.
|
|
47
|
+
- 내용보다 형식·수사 장치가 앞선다.
|
|
48
|
+
- 불필요하게 간접적이어서 의미 전달을 약하게 만든다.
|
|
49
|
+
- 장르·독자·목적에 맞지 않는다.
|
|
50
|
+
|
|
51
|
+
### 우선순위
|
|
52
|
+
|
|
53
|
+
- **P1**: 의미 전달을 방해하는 번역투·비문·직역, 반복되는 강한 상투구
|
|
54
|
+
- **P2**: 반복될 때 거슬리는 접속사·완곡 표현·형식명사·영어 병기·기계적 구조
|
|
55
|
+
- **P3**: 취향 차이 수준의 표현
|
|
56
|
+
|
|
57
|
+
P3만 있다면 **큰 문제 없음**으로 판단하고 과도하게 수정하지 않는다.
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## 2. 주요 진단 관점
|
|
62
|
+
|
|
63
|
+
아래는 탐지 목록이 아니라 **판단 관점**이다. 존재 자체가 아니라 문맥과 반복을 본다.
|
|
64
|
+
|
|
65
|
+
### 번역투·직역
|
|
66
|
+
|
|
67
|
+
예:
|
|
68
|
+
- "~에 있어서", "~와 관련하여"처럼 불필요하게 긴 연결
|
|
69
|
+
- "~에 의해" 중심의 부자연스러운 피동
|
|
70
|
+
- "판단되어진다" 같은 이중 피동
|
|
71
|
+
- "경쟁력을 가지고 있다", "회의를 가지다" 같은 직역
|
|
72
|
+
- "~에서의", "~으로의"처럼 조사가 겹쳐 무거운 문장
|
|
73
|
+
- "~에 대해", "~를 통해", "~을 기반으로"가 만능 연결어처럼 반복되는 경우
|
|
74
|
+
|
|
75
|
+
수정:
|
|
76
|
+
- 주어·목적어·동사를 직접 연결한다.
|
|
77
|
+
- 명사화보다 자연스러운 동사형을 우선한다.
|
|
78
|
+
- 피동은 필요한 경우만 유지한다.
|
|
79
|
+
- 긴 수식은 필요할 때만 나눈다.
|
|
80
|
+
|
|
81
|
+
### AI 상투구·과장
|
|
82
|
+
|
|
83
|
+
예:
|
|
84
|
+
- "결론적으로", "요약하면", "정리하자면"
|
|
85
|
+
- "시사하는 바가 크다", "주목할 만하다"
|
|
86
|
+
- "크게 세 가지로 나눌 수 있다"
|
|
87
|
+
- 근거 없는 "혁신적", "획기적", "압도적"
|
|
88
|
+
- "~할 때다", "X를 넘어 Y로" 같은 공식형 표현의 반복
|
|
89
|
+
|
|
90
|
+
수정:
|
|
91
|
+
- 라벨을 지우고 내용을 직접 말한다.
|
|
92
|
+
- 중요하다고 설명하지 말고 이유나 사실을 남긴다.
|
|
93
|
+
- 과장 수식은 삭제하거나 구체 근거가 있을 때만 유지한다.
|
|
94
|
+
|
|
95
|
+
### 기계적인 구조
|
|
96
|
+
|
|
97
|
+
예:
|
|
98
|
+
- "첫째/둘째/셋째"가 필요 이상으로 반복
|
|
99
|
+
- 모든 문단이 같은 방식으로 시작·종결
|
|
100
|
+
- "A가 아니라 B", "A인가 B인가" 같은 대구의 반복
|
|
101
|
+
- 불필요한 불릿·헤딩·볼드·이모지·따옴표
|
|
102
|
+
|
|
103
|
+
수정:
|
|
104
|
+
- 정보 구조에 실제로 도움이 되는 목록과 헤딩은 보존한다.
|
|
105
|
+
- 장식용 구조와 반복되는 문형만 줄인다.
|
|
106
|
+
- 보고서·기술 문서의 구조를 억지로 산문화하지 않는다.
|
|
107
|
+
|
|
108
|
+
### 간접 표현·반복
|
|
109
|
+
|
|
110
|
+
예:
|
|
111
|
+
- 문장마다 "또한", "따라서", "즉", "나아가"로 시작
|
|
112
|
+
- "이 점에서", "이 관점에서", "이는"의 반복
|
|
113
|
+
- "~라는 것이다", "~라는 점이다", "~할 필요가 있다"의 반복
|
|
114
|
+
- 같은 종결어미·문장 구조가 길게 연속
|
|
115
|
+
|
|
116
|
+
수정:
|
|
117
|
+
- 문맥으로 충분한 연결어는 삭제한다.
|
|
118
|
+
- 형식명사를 걷어내고 핵심 동사로 직접 쓴다.
|
|
119
|
+
- 반복되는 구조만 자연스럽게 분산한다.
|
|
120
|
+
- 리듬을 만들기 위해 문장 길이나 종결어미를 인위적으로 조작하지 않는다.
|
|
121
|
+
|
|
122
|
+
### 영어·전문용어
|
|
123
|
+
|
|
124
|
+
- 같은 용어의 한글/영어 병기를 반복하지 않는다.
|
|
125
|
+
- 불필요한 buzzword는 줄인다.
|
|
126
|
+
- API, LLM, GPU, prompt처럼 업계에서 원어가 자연스러운 용어는 유지한다.
|
|
127
|
+
- 전문용어를 억지로 한국어화하지 않는다.
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## 자동으로 문제라고 보지 말 것
|
|
132
|
+
|
|
133
|
+
다음은 **그 자체로 AI 티가 아니다.**
|
|
134
|
+
|
|
135
|
+
- "~를 통해"
|
|
136
|
+
- "~할 수 있다"
|
|
137
|
+
- "~것이다"
|
|
138
|
+
- "~적", "~성", "~화"
|
|
139
|
+
- 피동문
|
|
140
|
+
- 불릿과 헤딩
|
|
141
|
+
- 볼드와 대시
|
|
142
|
+
- 영어 전문용어
|
|
143
|
+
- 격식 있는 문체
|
|
144
|
+
- 비슷한 길이의 문장
|
|
145
|
+
|
|
146
|
+
**반복·밀도·문맥·장르상 실제 문제가 있을 때만 수정한다.**
|
|
147
|
+
|
|
148
|
+
특히 금지:
|
|
149
|
+
|
|
150
|
+
- 패턴 매칭만으로 정상 문장 수정
|
|
151
|
+
- 모든 피동을 능동으로 변경
|
|
152
|
+
- 모든 불릿을 산문으로 변경
|
|
153
|
+
- 모든 영어를 번역
|
|
154
|
+
- 가능성 표현을 임의로 단정
|
|
155
|
+
- 문장 길이를 일부러 들쭉날쭉하게 만들기
|
|
156
|
+
- 감탄·반문·구어체를 새로 넣어 "사람처럼" 보이게 만들기
|
|
157
|
+
- 원문보다 더 문학적이거나 더 격식 있게 만들기
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## 3. 수정
|
|
162
|
+
|
|
163
|
+
P1부터 고치고, P2는 실제로 반복이 거슬리는 범위까지만 고친다.
|
|
164
|
+
|
|
165
|
+
기본 수정 단위는 **표현 또는 문장**이다.
|
|
166
|
+
|
|
167
|
+
우선순위:
|
|
168
|
+
|
|
169
|
+
1. 불필요한 표현 삭제
|
|
170
|
+
2. 직접적인 한국어 구문으로 단순화
|
|
171
|
+
3. 반복되는 표현 분산
|
|
172
|
+
4. 필요한 경우에만 문장 분리·병합
|
|
173
|
+
5. 마지막으로 어휘 교체
|
|
174
|
+
|
|
175
|
+
문단 전체 재작성은 최소화한다.
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## 4. 의미 검증
|
|
180
|
+
|
|
181
|
+
수정 후 반드시 원문과 다시 대조한다.
|
|
182
|
+
|
|
183
|
+
확인:
|
|
184
|
+
|
|
185
|
+
- 정보가 빠지거나 새로 생기지 않았는가
|
|
186
|
+
- 사실·수치·고유명사·인용이 유지됐는가
|
|
187
|
+
- 인과·조건·부정/긍정이 바뀌지 않았는가
|
|
188
|
+
- 가능성·추정의 강도가 달라지지 않았는가
|
|
189
|
+
- 장르와 말투가 유지됐는가
|
|
190
|
+
- 처음 진단한 문제가 실제로 줄었는가
|
|
191
|
+
- 문제 없던 부분까지 과도하게 다시 쓰지 않았는가
|
|
192
|
+
- 수정하면서 새로운 상투구나 과장을 만들지 않았는가
|
|
193
|
+
|
|
194
|
+
문제가 생긴 수정은 전체를 다시 쓰지 말고 **해당 edit만 롤백**한다.
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
## 출력
|
|
199
|
+
|
|
200
|
+
기본 출력:
|
|
201
|
+
|
|
202
|
+
### 진단
|
|
203
|
+
최대 3~6개.
|
|
204
|
+
|
|
205
|
+
| 우선순위 | 문제 | 근거 | 수정 방향 |
|
|
206
|
+
|---|---|---|---|
|
|
207
|
+
| P1/P2 | 문제 유형 | 실제 표현 또는 반복 구조 | 수정 원칙 |
|
|
208
|
+
|
|
209
|
+
문제가 거의 없으면 표를 억지로 채우지 말고 **큰 문제 없음**이라고 말한다.
|
|
210
|
+
|
|
211
|
+
### 수정본
|
|
212
|
+
진단을 반영한 전체 글을 제공한다.
|
|
213
|
+
|
|
214
|
+
- 사용자가 **진단만** 요청하면 수정하지 않는다.
|
|
215
|
+
- 사용자가 **결과만** 요청하면 진단은 내부적으로 수행하고 수정본만 보여준다.
|
|
216
|
+
- taxonomy ID, AI 확률, 등급, 변경률 같은 메타데이터는 요청이 없으면 출력하지 않는다.
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
## 성공 기준
|
|
221
|
+
|
|
222
|
+
좋은 결과는 많이 바뀐 글이 아니다.
|
|
223
|
+
|
|
224
|
+
- 무엇이 문제였는지 설명할 수 있다.
|
|
225
|
+
- 모든 수정에 원문 근거가 있다.
|
|
226
|
+
- 핵심 문제는 줄고 글의 목적·개성·말투는 유지된다.
|
|
227
|
+
- 원문에 없던 정보나 수사가 생기지 않는다.
|
|
228
|
+
- 이미 좋았던 부분은 거의 그대로다.
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
# [Project Name] — North Star
|
|
2
2
|
|
|
3
|
-
>
|
|
4
|
-
> 의사결정이 모호할 때 본 문서를 기준으로 우선순위를 판정한다.
|
|
3
|
+
> **지속되는 방향의 SSOT.** PRD/SPEC이 "무엇을 어떻게"를 다루면, 본 문서는 **왜·어디로**를
|
|
4
|
+
> 다룬다. 의사결정이 모호할 때 본 문서를 기준으로 우선순위를 판정한다.
|
|
5
|
+
>
|
|
6
|
+
> 여기 적는 것은 **서비스가 존재하는 동안 계속 추구하는 것**뿐이다. 끝나는 것(Initiative의
|
|
7
|
+
> 완료 조건)과 유지하는 것(운영 SLO/Guardrail의 상세)은 §8 이 가리키는 문서가 소유한다.
|
|
5
8
|
|
|
6
9
|
---
|
|
7
10
|
|
|
8
|
-
## 1. North Star
|
|
11
|
+
## 1. Product North Star
|
|
9
12
|
|
|
10
13
|
> **"[한 문장: 5년 뒤 이 프로젝트가 무엇이 되어 있어야 하는가. 도메인 명사 + 사용자 + 측정 가능한 결과]"**
|
|
11
14
|
|
|
@@ -16,29 +19,48 @@
|
|
|
16
19
|
## 2. North Star Metric (NSM)
|
|
17
20
|
|
|
18
21
|
> [진짜 목표가 직접 측정 불가하면 여기서 프록시를 선언: "진짜 목표 X 는 (외부적/지연이라)
|
|
19
|
-
> 직접 측정 불가하므로, Y(양) + Z(사후 품질)를 프록시로 최적화한다. 근거: …"
|
|
20
|
-
> "이 프록시를 올리는가"로 평가한다.]
|
|
22
|
+
> 직접 측정 불가하므로, Y(양) + Z(사후 품질)를 프록시로 최적화한다. 근거: …"]
|
|
21
23
|
|
|
22
|
-
|
|
24
|
+
### 2.1 Definition — 무엇을 어떻게 재는가
|
|
25
|
+
|
|
26
|
+
**[지표 약어 — 풀네임]**
|
|
23
27
|
- 정의: [어떻게 계산하는가]
|
|
24
|
-
-
|
|
25
|
-
-
|
|
28
|
+
- 의미: [이 지표가 올라가면 무엇이 증명되는가. 내려가면 무엇이 부족함을 시사하는가]
|
|
29
|
+
- 측정 환경: [single-user / team / public 등]에서 자가 수집.
|
|
30
|
+
|
|
31
|
+
> Definition 변경은 **Major CR** 이다 — "이제 다른 것을 재기로 했다"는 방향 변경이다.
|
|
32
|
+
|
|
33
|
+
### 2.2 Current Target — 지금 겨냥하는 수치
|
|
34
|
+
|
|
35
|
+
| Target | 시점 | 현재 값 | 근거 |
|
|
36
|
+
|---|---|---|---|
|
|
37
|
+
| [수치] | [YYYY-Qn] | [측정값 또는 "미측정"] | [왜 이 수치인가] |
|
|
38
|
+
|
|
39
|
+
> **Target 에 도달했다고 Definition 을 바꾸지 않는다.** 그때 하는 일은 다음 Target 을
|
|
40
|
+
> 정하는 것이다. Target 갱신은 Clarification 이다.
|
|
26
41
|
|
|
27
|
-
|
|
42
|
+
> 결정 기준: Leading(원인) 우선 · 단일 행동만 측정(composite 금지) · Target 명시 ·
|
|
43
|
+
> 가치 없이 직접 올릴 수 있는(게임 가능한) 지표는 기각 ·
|
|
44
|
+
> **달성하면 추적을 그만두게 되는 목표는 NSM 이 아니라 Initiative 의 Finish Line 이다.**
|
|
28
45
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## 3. Inputs — 직접 움직일 수 있는 레버 (3–5개)
|
|
49
|
+
|
|
50
|
+
NSM 은 결과이고 Inputs 는 원인이다. **계획은 여기에 붙는다.**
|
|
34
51
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
52
|
+
| Input | 정의 | 현재 | 목표 방향 | NSM 을 움직인다고 믿는 이유 |
|
|
53
|
+
|---|---|---|---|---|
|
|
54
|
+
| [Input A] | [어떻게 재는가] | [값 또는 "미측정"] | [↑ / ↓ / 유지] | [1줄] |
|
|
55
|
+
| [Input B] | | | | |
|
|
56
|
+
| [Input C] | | | | |
|
|
57
|
+
|
|
58
|
+
> 측정되지 않는 Input 은 **"미측정"이라고 적는다** — 빈칸은 "없음"과 구분되지 않는다.
|
|
59
|
+
> 미측정 자체가 갭이다.
|
|
38
60
|
|
|
39
61
|
---
|
|
40
62
|
|
|
41
|
-
##
|
|
63
|
+
## 4. Strategic Pillars (전략 축)
|
|
42
64
|
|
|
43
65
|
각 축은 North Star 로 가는 단계이며, 모든 모듈은 최소 1개 축에 속한다.
|
|
44
66
|
|
|
@@ -63,20 +85,19 @@
|
|
|
63
85
|
| [공통 인프라 — 인증·관리 등] | 공통 | 축을 가로지르는 플랫폼 |
|
|
64
86
|
|
|
65
87
|
> 어떤 신규 모듈이 위 축 어디에도 매핑되지 않으면, **착수 전에 북극성 정렬을 재검토**한다.
|
|
66
|
-
> 로드맵 항목도 정기 리뷰 때 축에 매핑해 "새 축·방향 변경 필요 여부"를 판정·기록한다.
|
|
67
88
|
|
|
68
89
|
---
|
|
69
90
|
|
|
70
|
-
##
|
|
91
|
+
## 5. Strategic Boundaries (방향성 경계)
|
|
71
92
|
|
|
72
|
-
###
|
|
93
|
+
### 5.1 Will (집중)
|
|
73
94
|
|
|
74
95
|
- **[집중 영역 1]**: [짧은 설명]
|
|
75
96
|
- **[집중 영역 2]**: [짧은 설명]
|
|
76
97
|
- **[집중 영역 3]**: [짧은 설명]
|
|
77
98
|
- **[집중 영역 4]**: [짧은 설명]
|
|
78
99
|
|
|
79
|
-
###
|
|
100
|
+
### 5.2 Won't (의도적 비-방향)
|
|
80
101
|
|
|
81
102
|
scope creep의 1차 방어선. "X는 안 한다"를 **5-8개** 명시.
|
|
82
103
|
|
|
@@ -86,7 +107,7 @@ scope creep의 1차 방어선. "X는 안 한다"를 **5-8개** 명시.
|
|
|
86
107
|
- **[안 하는 것 4]**: [근거]
|
|
87
108
|
- **[안 하는 것 5]**: [근거]
|
|
88
109
|
|
|
89
|
-
###
|
|
110
|
+
### 5.3 Trade-offs (의식적 선택)
|
|
90
111
|
|
|
91
112
|
| 선택 | 포기한 것 | 근거 |
|
|
92
113
|
|------|----------|------|
|
|
@@ -96,47 +117,85 @@ scope creep의 1차 방어선. "X는 안 한다"를 **5-8개** 명시.
|
|
|
96
117
|
|
|
97
118
|
---
|
|
98
119
|
|
|
99
|
-
##
|
|
120
|
+
## 6. Alignment Rules
|
|
100
121
|
|
|
101
|
-
|
|
122
|
+
### 6.1 Lifecycle 판정 — 목표·지표를 정의할 때 가장 먼저
|
|
102
123
|
|
|
103
|
-
|
|
124
|
+
> **달성하면 더 이상 추적할 필요가 없는가?**
|
|
104
125
|
|
|
105
|
-
|
|
126
|
+
| 답 | 분류 | 어디에 사는가 |
|
|
127
|
+
|---|---|---|
|
|
128
|
+
| YES | **Finite** | Initiative 의 Finish Line / Exit Criterion — **이 문서 밖** |
|
|
129
|
+
| NO | **Persistent** | NSM · Input(이 문서) 또는 SLO · Guardrail(운영 SSOT) |
|
|
130
|
+
|
|
131
|
+
### 6.2 Work Type
|
|
132
|
+
|
|
133
|
+
| Work Type | 의미 | 게이트 | 순위 |
|
|
134
|
+
|---|---|---|---|
|
|
135
|
+
| **Product Initiative** | 사용자 가치·경험을 바꾸는 유한한 작업 | 6.3 전부 | RICE/ICE + 판단 |
|
|
136
|
+
| **Enabler Initiative** | 기술·운영 capability 를 바꾸는 유한한 작업 | 6.3 (Value 는 간접 경로) | RICE/ICE + 판단 |
|
|
137
|
+
| **Operational Work** | 서비스 유지를 위한 반복적·사건 기반 업무 | 기계적 적용 안 함 | severity·위험·기한 |
|
|
106
138
|
|
|
107
|
-
### 6.
|
|
139
|
+
### 6.3 4-Gate — "할 것인가"
|
|
108
140
|
|
|
109
|
-
신규
|
|
141
|
+
신규 Initiative 는 4 게이트를 **모두** 통과해야 우선순위 진입.
|
|
110
142
|
|
|
111
|
-
| Gate | 질문 | Pass
|
|
143
|
+
| Gate | 질문 | Pass 기준 |
|
|
112
144
|
|------|------|---------------|
|
|
113
|
-
| **1. Trend** | 본 프로젝트의 핵심 트렌드/원칙
|
|
114
|
-
| **2.
|
|
115
|
-
| **3. Capability** | [도메인 특수 능력 — 예: MCP 노출 / API 제공
|
|
116
|
-
| **4. Lean** |
|
|
145
|
+
| **1. Trend** | 본 프로젝트의 핵심 트렌드/원칙 1개 이상에 매핑되는가? | 매핑 명시 |
|
|
146
|
+
| **2. Value** | 사용자 가치에 닿는 경로가 있는가? | **직접** — Primary persona([이름])에게 직접 가치. Anti-persona 위주면 거절 <br> **간접** — 막아 주는 Guardrail/SLO 또는 가능하게 하는 Initiative·Pillar capability 를 **이름으로** 지목 |
|
|
147
|
+
| **3. Capability** | [도메인 특수 능력 — 예: MCP 노출 / API 제공]이 동등하게 가능한가? | YES (UI-only면 -1) |
|
|
148
|
+
| **4. Lean** | §5.1 Will 범위 내인가? 외부면 Open Question 으로 적재 | YES |
|
|
149
|
+
|
|
150
|
+
> Security · Reliability · Observability · Migration 은 게이트 2 의 **간접** 경로로 통과한다.
|
|
151
|
+
> NSM 을 직접 움직이지 않아도 정당하다 — 다만 무엇을 위해서인지 이름을 못 대면 탈락이다.
|
|
152
|
+
|
|
153
|
+
### 6.4 순위에서 제외되는 작업
|
|
117
154
|
|
|
118
|
-
|
|
155
|
+
다음은 optional feature 와 RICE/ICE 로 경쟁시키지 않는다. severity·위험·기한·의존성·
|
|
156
|
+
저장소 정책으로 먼저 판정한다.
|
|
119
157
|
|
|
120
|
-
|
|
158
|
+
> Security violation · Data integrity risk · Critical incident · SLO/Guardrail breach ·
|
|
159
|
+
> Required migration · Release blocker · Regulatory / Mandatory requirement
|
|
121
160
|
|
|
122
|
-
|
|
123
|
-
않는다** (긴급 hotfix·사용자 명시 지시 예외).
|
|
161
|
+
### 6.5 Initiative Sequencing Heuristic
|
|
124
162
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
163
|
+
**적용 범위: 신규 구축 · 신규 Feature Initiative · 아직 Finish Line 을 통과하지 못한 기능.**
|
|
164
|
+
운영 중인 backlog 전체의 절대 규칙이 아니다.
|
|
165
|
+
|
|
166
|
+
1. **Foundation** — 없으면 제품이 성립 안 되는 기본기.
|
|
167
|
+
2. **End-to-End Completeness** — shipped 기능이 사용자 관점 end-to-end 완결인가. 존재 ≠ 완결.
|
|
168
|
+
3. **Differentiation** — 핵심 경쟁력의 advanced 구현. research/ADR 선행 필수.
|
|
169
|
+
|
|
170
|
+
### 6.6 Initiative 완료 시 전환
|
|
171
|
+
|
|
172
|
+
1. Finish Line 은 **종료**한다 — 지속 KPI 로 남기지 않는다.
|
|
173
|
+
2. Initiative Metric 은 **자동으로** Persistent Metric 이 되지 않는다. 승격은 결정이다.
|
|
174
|
+
3. 계속 유지해야 하는 성질만 명시적으로 넘긴다 — 사용자 가치의 지속 개선이면 §2/§3 으로,
|
|
175
|
+
운영 중 지켜야 하는 조건이면 운영 SSOT 의 SLO/Guardrail 로. 이유를 한 줄 남긴다.
|
|
176
|
+
4. 넘길 것이 없으면 아무것도 안 남기고 닫는다.
|
|
128
177
|
|
|
129
178
|
---
|
|
130
179
|
|
|
131
|
-
## 7.
|
|
180
|
+
## 7. Review & Versioning
|
|
132
181
|
|
|
133
|
-
- 본 문서는 **분기 1회** 또는 **NSM 도달/미달** 시 갱신.
|
|
134
|
-
-
|
|
135
|
-
-
|
|
182
|
+
- 본 문서는 **분기 1회** 또는 **NSM Current Target 도달/미달** 시 갱신.
|
|
183
|
+
- **Major CR**: NSM Definition 변경 / Pillar 변경 / Won't 변경.
|
|
184
|
+
- **Clarification**: Current Target 갱신, Trade-off 추가, 매핑 보강.
|
|
136
185
|
- 갱신 사유는 커밋 메시지에 남긴다 — 본문에 이력을 쌓지 않는다.
|
|
186
|
+
- 본 문서가 바뀌면 그 아래 계획·로드맵 문서는 자동으로 최신이 아니다. 같은 갱신 단위에서
|
|
187
|
+
재검토 대상으로 표시한다.
|
|
137
188
|
|
|
138
189
|
---
|
|
139
190
|
|
|
140
|
-
## 8.
|
|
191
|
+
## 8. 이 문서가 소유하지 않는 것
|
|
192
|
+
|
|
193
|
+
| 소유하지 않는 것 | 어디가 소유하나 |
|
|
194
|
+
|---|---|
|
|
195
|
+
| Initiative Finish Line · Initiative KPI · Release 완료 조건 · Feature checklist | [계획 문서 경로 — 예: `docs/plans/`] |
|
|
196
|
+
| Now / Next / Later 상세 backlog | [로드맵 SSOT 경로] |
|
|
197
|
+
| 상세 SLO · Runbook · Incident procedure | [운영 SSOT 경로] |
|
|
198
|
+
| 갱신 이력 | 버전 관리 이력 |
|
|
141
199
|
|
|
142
|
-
>
|
|
200
|
+
> 방향은 여기가 소유하고, 실행 계획과 운영 기준의 상세는 중복해서 소유하지 않는다.
|
|
201
|
+
> 시간축을 이 문서에 끌어들이는 순간 방향 문서와 일정 문서가 서로를 덮어쓴다.
|