maskweaver 0.7.21 → 0.7.22
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/assets/commands/weave-craft.md +77 -12
- package/package.json +1 -1
|
@@ -88,18 +88,53 @@ AI가 자동으로 검증 루프를 돌리고, 완료되면 유저에게 전달
|
|
|
88
88
|
|
|
89
89
|
---
|
|
90
90
|
|
|
91
|
-
## Step 0: LOAD PLAN
|
|
92
|
-
|
|
93
|
-
```yaml
|
|
94
|
-
# 1. state.yaml에서 활성 플랜 확인
|
|
95
|
-
active_plan: "emotion-diary"
|
|
96
|
-
|
|
97
|
-
# 2. plans/emotion-diary.yaml에서 Phase 정보 로드
|
|
98
|
-
# 3. Phase 상태가 pending 또는 in_progress인지 확인
|
|
99
|
-
# 4. completed인 Phase를 재실행하려면 유저에게 확인
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
|
|
91
|
+
## Step 0: LOAD PLAN
|
|
92
|
+
|
|
93
|
+
```yaml
|
|
94
|
+
# 1. state.yaml에서 활성 플랜 확인
|
|
95
|
+
active_plan: "emotion-diary"
|
|
96
|
+
|
|
97
|
+
# 2. plans/emotion-diary.yaml에서 Phase 정보 로드
|
|
98
|
+
# 3. Phase 상태가 pending 또는 in_progress인지 확인
|
|
99
|
+
# 4. completed인 Phase를 재실행하려면 유저에게 확인
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### YAML 읽기 실패 시 자동 수복
|
|
103
|
+
|
|
104
|
+
플랜 파일(`state.yaml` 또는 `plans/*.yaml`)을 읽었을 때 YAML 파싱 에러가 발생하면, 자동 수복을 시도합니다.
|
|
105
|
+
|
|
106
|
+
**일반적인 깨짐 패턴과 수복 방법**:
|
|
107
|
+
|
|
108
|
+
| 깨짐 패턴 | 증상 | 수복 방법 |
|
|
109
|
+
|-----------|------|----------|
|
|
110
|
+
| 들여쓰기 불일치 | `bad indentation` 에러 | 들여쓰기를 2-space 기준으로 정규화 |
|
|
111
|
+
| 탭 문자 혼입 | `tab character` 에러 | 탭 → 2 spaces 변환 |
|
|
112
|
+
| 따옴표 미닫힘 | `unexpected end of stream` | 열린 따옴표 찾아서 닫기 |
|
|
113
|
+
| 중복 키 | `duplicate key` 에러 | 나중에 나온 값 유지, 중복 제거 |
|
|
114
|
+
| 빈 값/null 깨짐 | `null` 대신 빈 문자열 | `null` 또는 적절한 기본값으로 복원 |
|
|
115
|
+
| 잘린 파일 | 파일이 중간에 끊김 | 마지막 완전한 블록까지 복원 후 유저 알림 |
|
|
116
|
+
|
|
117
|
+
```
|
|
118
|
+
YAML 읽기 수복 절차:
|
|
119
|
+
1. Read(yaml_path) → 파일 내용 로드
|
|
120
|
+
2. YAML 파싱 시도
|
|
121
|
+
├─ 성공 → 정상 진행
|
|
122
|
+
└─ 실패 → 수복 시작
|
|
123
|
+
3. 수복 시도:
|
|
124
|
+
a. 파일 원본 내용을 보존 (백업용 변수에 저장)
|
|
125
|
+
b. 일반적인 깨짐 패턴 자동 교정 (위 표 참고)
|
|
126
|
+
c. 교정된 내용으로 다시 YAML 파싱 시도
|
|
127
|
+
├─ 성공 → 교정된 내용으로 파일 덮어쓰기 + 유저에게 수복 사실 알림
|
|
128
|
+
└─ 실패 → 4단계로
|
|
129
|
+
4. 수복 불가 시:
|
|
130
|
+
a. 유저에게 "YAML 파일이 심각하게 손상됨" 알림
|
|
131
|
+
b. 원본 내용을 그대로 출력하여 유저가 직접 수정할 수 있게 제공
|
|
132
|
+
c. `/weave-design`으로 플랜 재생성 제안
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
> **주의**: 수복 시 원본 데이터를 최대한 보존합니다. 확실하지 않은 값은 추측하지 않고, 유저에게 확인을 요청합니다.
|
|
136
|
+
|
|
137
|
+
---
|
|
103
138
|
|
|
104
139
|
## Expert Summoning Strategy for Execution (Core)
|
|
105
140
|
|
|
@@ -287,6 +322,36 @@ phases:
|
|
|
287
322
|
5. 모두 정상이면 → 유저 핸드오프 진행
|
|
288
323
|
6. 하나라도 실패하면 → 오류 보고 및 재시도
|
|
289
324
|
```
|
|
325
|
+
|
|
326
|
+
### YAML 쓰기 시 자동 수복
|
|
327
|
+
|
|
328
|
+
플랜 파일을 업데이트한 후 다시 읽어 검증할 때 YAML 파싱 에러가 발생하면, 업데이트 과정에서 YAML이 깨진 것입니다. 이 경우 자동 수복을 수행합니다.
|
|
329
|
+
|
|
330
|
+
```
|
|
331
|
+
YAML 쓰기 수복 절차:
|
|
332
|
+
1. 플랜 파일 업데이트 (Write)
|
|
333
|
+
2. 업데이트된 파일 다시 읽기 (Read)
|
|
334
|
+
3. YAML 파싱 시도
|
|
335
|
+
├─ 성공 → 정상 진행 (검증 계속)
|
|
336
|
+
└─ 실패 → 쓰기 수복 시작
|
|
337
|
+
4. 쓰기 수복:
|
|
338
|
+
a. 업데이트 전 원본 플랜 내용을 기반으로 재구성
|
|
339
|
+
b. 변경해야 할 Phase 필드만 정확히 반영하여 YAML을 처음부터 다시 생성
|
|
340
|
+
c. 재생성된 YAML로 파일 덮어쓰기
|
|
341
|
+
d. 다시 읽어서 파싱 검증
|
|
342
|
+
├─ 성공 → 유저에게 "YAML 수복 후 정상 저장됨" 알림
|
|
343
|
+
└─ 실패 → 5단계로
|
|
344
|
+
5. 재수복 실패 시:
|
|
345
|
+
a. 유저에게 "플랜 파일 업데이트 중 YAML 손상 발생" 알림
|
|
346
|
+
b. 정상적인 원본 내용 + 이번 Phase 변경사항을 텍스트로 출력
|
|
347
|
+
c. 유저가 직접 확인 후 수동 저장하도록 안내
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
**쓰기 수복 시 핵심 규칙**:
|
|
351
|
+
- 업데이트 전 원본 파일 내용을 항상 메모리에 보관해 둡니다 (롤백 대비).
|
|
352
|
+
- YAML을 부분 편집(텍스트 치환)하지 않고, 전체 구조를 파악한 뒤 완전한 YAML로 재생성합니다.
|
|
353
|
+
- 특수문자가 포함된 문자열 값은 반드시 따옴표로 감쌉니다.
|
|
354
|
+
- 재생성 시 원본의 Phase 순서와 필드 순서를 유지합니다.
|
|
290
355
|
|
|
291
356
|
---
|
|
292
357
|
|