maskweaver 0.9.2 → 0.9.4
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.ko.md +279 -325
- package/README.md +109 -113
- package/assets/commands/build.md +17 -0
- package/assets/commands/meta/commands.json +34 -34
- package/assets/commands/weave-agents.md +12 -52
- package/assets/commands/weave-approve.md +12 -51
- package/assets/commands/weave-archive.md +21 -0
- package/assets/commands/weave-build.md +20 -89
- package/assets/commands/weave-craft.md +22 -43
- package/assets/commands/weave-help.md +37 -106
- package/assets/commands/weave-init.md +26 -108
- package/assets/commands/weave-interview.md +13 -111
- package/assets/commands/weave-map.md +13 -99
- package/assets/commands/weave-prepare.md +23 -69
- package/assets/commands/weave-refine-plan.md +26 -59
- package/assets/commands/weave-repair.md +22 -70
- package/assets/commands/weave-status.md +22 -155
- package/assets/commands/weave-troubleshoot.md +11 -47
- package/assets/commands/weave-verify.md +23 -44
- package/assets/commands/weave-worktree.md +27 -69
- package/dist/plugin/index.js +21 -2
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
|
@@ -1,59 +1,26 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: plan-
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# /weave-refine-plan
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
weave
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
노트 파일 경로를 바꾸려면:
|
|
30
|
-
|
|
31
|
-
```txt
|
|
32
|
-
weave command=refine-plan notesPath="tasks/my-plan-notes.md"
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
---
|
|
36
|
-
|
|
37
|
-
## 노트 문법 (예시)
|
|
38
|
-
|
|
39
|
-
`tasks/plan-notes.md`에 아래처럼 작성:
|
|
40
|
-
|
|
41
|
-
```txt
|
|
42
|
-
@plan vision: 로그인 이후 대시보드 흐름을 단순화한다
|
|
43
|
-
@arch frontend: React + Vite + TanStack Query
|
|
44
|
-
|
|
45
|
-
@phase P1 done_when: 유저가 이메일/비밀번호로 로그인할 수 있다
|
|
46
|
-
@phase P1 add_checklist: 로그인 실패 메시지가 명확히 보인다
|
|
47
|
-
|
|
48
|
-
@phase add P4: 운영 모니터링 | done=로그/메트릭 대시보드가 동작한다 | hours=3
|
|
49
|
-
@phase remove P7
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
---
|
|
53
|
-
|
|
54
|
-
## 다음 단계
|
|
55
|
-
|
|
56
|
-
```txt
|
|
57
|
-
weave command=approve-plan
|
|
58
|
-
weave command=craft
|
|
59
|
-
```
|
|
1
|
+
---
|
|
2
|
+
description: Apply structured plan-note directives to the active plan
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /weave-refine-plan
|
|
6
|
+
|
|
7
|
+
Apply structured review notes to the active plan before approval.
|
|
8
|
+
|
|
9
|
+
Use the `weave` tool:
|
|
10
|
+
|
|
11
|
+
```txt
|
|
12
|
+
weave command=refine-plan
|
|
13
|
+
weave command=refine-plan notesPath="tasks/plan-notes.md"
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Note Examples
|
|
17
|
+
|
|
18
|
+
```txt
|
|
19
|
+
@plan vision: Keep the first release focused on login and dashboard.
|
|
20
|
+
@phase P1 done_when: A user can sign in with email and password.
|
|
21
|
+
@phase P1 add_checklist: Failed login shows a clear message.
|
|
22
|
+
@phase add P4: Observability | done=errors are logged | hours=3
|
|
23
|
+
@phase remove P7
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Run `/weave-approve` again after changing the active plan.
|
|
@@ -1,70 +1,22 @@
|
|
|
1
|
-
---
|
|
2
|
-
description:
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# /weave-repair
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
2. .opencode/weave/plans/ 디렉토리의 모든 .yaml 파일 목록 확인
|
|
24
|
-
3. .opencode/weave/PLAN.yaml (레거시) 확인
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
### 2단계: weave tool로 수복 실행
|
|
28
|
-
|
|
29
|
-
`weave command=repair`를 호출하여 자동 수복을 실행합니다.
|
|
30
|
-
|
|
31
|
-
### 3단계: 결과 보고
|
|
32
|
-
|
|
33
|
-
수복 결과를 유저에게 보여줍니다:
|
|
34
|
-
- **OK**: 정상 파일
|
|
35
|
-
- **FIXED**: 자동 수복 성공 (무엇을 고쳤는지 표시)
|
|
36
|
-
- **FAIL**: 자동 수복 불가 (유저에게 복구 옵션 안내)
|
|
37
|
-
|
|
38
|
-
---
|
|
39
|
-
|
|
40
|
-
## 자동 수복 가능한 문제
|
|
41
|
-
|
|
42
|
-
| 문제 | 예시 | 수복 방법 |
|
|
43
|
-
|------|------|----------|
|
|
44
|
-
| 닫히지 않은 따옴표 | `done_when: "1. fs.edit가 SecurityHook에` | 내부 따옴표 이스케이프 후 닫기 |
|
|
45
|
-
| 탭 문자 | 들여쓰기에 탭 사용 | 스페이스 2칸으로 변환 |
|
|
46
|
-
| 줄바꿈 문제 | CR+LF 혼합 | LF로 통일 |
|
|
47
|
-
| 백업 복원 | 파싱 완전 실패 | `.bak` 파일에서 복원 |
|
|
48
|
-
|
|
49
|
-
---
|
|
50
|
-
|
|
51
|
-
## 자동 수복 불가한 경우
|
|
52
|
-
|
|
53
|
-
수복이 불가능한 파일이 있으면 유저에게 다음 옵션을 안내합니다:
|
|
54
|
-
|
|
55
|
-
1. **원본 요구사항이 있다면**: `/weave-design`으로 플랜 재생성
|
|
56
|
-
2. **`.corrupted` 백업 확인**: plans 디렉토리에 백업 파일 존재 여부
|
|
57
|
-
3. **수동 복구**: 유저가 플랜 내용을 기억하면 그 정보로 YAML 재구성
|
|
58
|
-
|
|
59
|
-
**유저에게 물어볼 것**:
|
|
60
|
-
- 해당 플랜의 프로젝트 이름이 무엇이었는지
|
|
61
|
-
- 어떤 Phase들이 있었는지
|
|
62
|
-
- 각 Phase의 진행 상태 (완료/진행중/대기)
|
|
63
|
-
|
|
64
|
-
---
|
|
65
|
-
|
|
66
|
-
## 참고
|
|
67
|
-
|
|
68
|
-
- 수복 시 원본 파일은 `.corrupted` 확장자로 백업됩니다
|
|
69
|
-
- 매 저장마다 `.bak` 백업이 자동 생성됩니다
|
|
70
|
-
- `weave status`나 `weave craft` 실행 시에도 YAML 로드 실패하면 자동 수복을 시도합니다
|
|
1
|
+
---
|
|
2
|
+
description: Scan and auto-repair corrupted plan YAML files
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /weave-repair
|
|
6
|
+
|
|
7
|
+
Repair malformed Weave plan YAML when status, craft, or approve cannot load the plan.
|
|
8
|
+
|
|
9
|
+
Use the `weave` tool:
|
|
10
|
+
|
|
11
|
+
```txt
|
|
12
|
+
weave command=repair
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Behavior
|
|
16
|
+
|
|
17
|
+
- Scans `.opencode/weave/state.yaml` and plan files.
|
|
18
|
+
- Reports files as OK, fixed, or failed.
|
|
19
|
+
- Creates backups before risky repairs when supported.
|
|
20
|
+
- Gives manual recovery guidance when automatic repair is not possible.
|
|
21
|
+
|
|
22
|
+
Use this for artifact recovery only. Do not use it to rewrite requirements or change implementation scope.
|
|
@@ -1,155 +1,22 @@
|
|
|
1
|
-
---
|
|
2
|
-
description:
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# /weave-status
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
```
|
|
24
|
-
1. .opencode/weave/state.yaml 읽기 → active_plan 확인
|
|
25
|
-
2. .opencode/weave/plans/ 디렉토리의 모든 .yaml 파일 목록 확인
|
|
26
|
-
3. 각 플랜 파일 읽어서 상태 집계
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
**state.yaml이 없는 경우**:
|
|
30
|
-
```markdown
|
|
31
|
-
📋 Weave가 초기화되지 않았습니다.
|
|
32
|
-
|
|
33
|
-
시작하려면: `/weave-init`
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
**플랜이 하나도 없는 경우**:
|
|
37
|
-
```markdown
|
|
38
|
-
📋 아직 플랜이 없습니다.
|
|
39
|
-
|
|
40
|
-
새 플랜을 만들려면: `/weave-design [docs-path]`
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
---
|
|
44
|
-
|
|
45
|
-
## 출력: 전체 개요 (`/weave-status`)
|
|
46
|
-
|
|
47
|
-
```markdown
|
|
48
|
-
## 📊 Weave 상태
|
|
49
|
-
|
|
50
|
-
### 활성 플랜: `emotion-diary`
|
|
51
|
-
**감정 일기 앱** — 진행률 40%
|
|
52
|
-
|
|
53
|
-
[████████░░░░░░░░░░░░] 2/5
|
|
54
|
-
|
|
55
|
-
| Phase | 이름 | 상태 | 마스크 |
|
|
56
|
-
|-------|------|------|--------|
|
|
57
|
-
| P1 | 감정 선택 UI | ✅ 완료 (2.5h) | kent-beck, dan-abramov |
|
|
58
|
-
| P2 | 감정 저장 | 🔄 진행 중 | kent-beck |
|
|
59
|
-
| P3 | 히스토리 뷰 | ⏳ 대기 | |
|
|
60
|
-
| P4 | 통계 시각화 | ⏳ 대기 | |
|
|
61
|
-
| P5 | 테마 설정 | ⏳ 대기 | |
|
|
62
|
-
|
|
63
|
-
**다음**: `/weave-craft P2`
|
|
64
|
-
|
|
65
|
-
---
|
|
66
|
-
|
|
67
|
-
### 전체 플랜 목록
|
|
68
|
-
|
|
69
|
-
| 플랜 | 프로젝트 | 상태 | 진행률 |
|
|
70
|
-
|------|---------|------|--------|
|
|
71
|
-
| 📌 `emotion-diary` | 감정 일기 앱 | active | 40% (2/5) |
|
|
72
|
-
| `todo-app` | Todo 앱 | paused | 60% (3/5) |
|
|
73
|
-
| `auth-module` | 인증 모듈 | completed | 100% (4/4) |
|
|
74
|
-
|
|
75
|
-
플랜 전환: `/weave-switch [플랜이름]`
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
---
|
|
79
|
-
|
|
80
|
-
## 출력: 특정 플랜 상세 (`/weave-status {plan-name}`)
|
|
81
|
-
|
|
82
|
-
```markdown
|
|
83
|
-
## 📊 플랜: `todo-app`
|
|
84
|
-
|
|
85
|
-
**Todo 앱** — 상태: paused — 진행률 60%
|
|
86
|
-
|
|
87
|
-
[████████████░░░░░░░░] 3/5
|
|
88
|
-
|
|
89
|
-
### 비전
|
|
90
|
-
사용자가 간단하게 할 일을 관리할 수 있는 웹 앱
|
|
91
|
-
|
|
92
|
-
### Phases
|
|
93
|
-
| Phase | 이름 | 상태 | 소요 시간 | 마스크 |
|
|
94
|
-
|-------|------|------|----------|--------|
|
|
95
|
-
| P1 | 기본 UI | ✅ 완료 | 2h | dan-abramov |
|
|
96
|
-
| P2 | CRUD API | ✅ 완료 | 3h | martin-fowler |
|
|
97
|
-
| P3 | 필터/정렬 | ✅ 완료 | 1.5h | kent-beck |
|
|
98
|
-
| P4 | 드래그 정렬 | ⏳ 대기 | | |
|
|
99
|
-
| P5 | PWA 지원 | ⏳ 대기 | | |
|
|
100
|
-
|
|
101
|
-
### 아키텍처
|
|
102
|
-
- Frontend: React + TypeScript
|
|
103
|
-
- Backend: Express.js
|
|
104
|
-
- Database: SQLite
|
|
105
|
-
|
|
106
|
-
이 플랜으로 전환: `/weave-switch todo-app`
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
---
|
|
110
|
-
|
|
111
|
-
## 출력: 특정 Phase 상세 (`/weave-status P2`)
|
|
112
|
-
|
|
113
|
-
활성 플랜의 해당 Phase를 상세 표시:
|
|
114
|
-
|
|
115
|
-
```markdown
|
|
116
|
-
## Phase P2: 감정 저장
|
|
117
|
-
|
|
118
|
-
**플랜**: `emotion-diary`
|
|
119
|
-
**상태**: 🔄 진행 중
|
|
120
|
-
**시작**: 2026-02-06 10:30
|
|
121
|
-
**경과**: 1.5시간
|
|
122
|
-
|
|
123
|
-
### 사용된 마스크
|
|
124
|
-
- Kent Beck
|
|
125
|
-
|
|
126
|
-
### 발생한 이슈
|
|
127
|
-
- 1회 재시도: JSON 직렬화 오류 → 해결됨
|
|
128
|
-
|
|
129
|
-
### 다음
|
|
130
|
-
`/weave-craft P2` — 계속 진행
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
---
|
|
134
|
-
|
|
135
|
-
## 상태 아이콘
|
|
136
|
-
|
|
137
|
-
| 아이콘 | 상태 |
|
|
138
|
-
|--------|------|
|
|
139
|
-
| ✅ | 완료 (completed) |
|
|
140
|
-
| 🔄 | 진행 중 (in_progress) |
|
|
141
|
-
| ⏳ | 대기 (pending) |
|
|
142
|
-
| 🚫 | 차단됨 (의존성 미완료) |
|
|
143
|
-
| 📌 | 활성 플랜 표시 |
|
|
144
|
-
| ⏸️ | 일시정지 (paused) |
|
|
145
|
-
|
|
146
|
-
---
|
|
147
|
-
|
|
148
|
-
## 플랜 상태 종류
|
|
149
|
-
|
|
150
|
-
| 상태 | 의미 |
|
|
151
|
-
|------|------|
|
|
152
|
-
| `active` | 현재 작업 중인 플랜 |
|
|
153
|
-
| `paused` | 일시 중단 (다른 플랜 작업 중) |
|
|
154
|
-
| `completed` | 모든 Phase 완료 |
|
|
155
|
-
| `archived` | 보관됨 (목록에서 숨김, --all로 표시) |
|
|
1
|
+
---
|
|
2
|
+
description: View plans, active phase, and progress
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /weave-status
|
|
6
|
+
|
|
7
|
+
Show the current Weave state.
|
|
8
|
+
|
|
9
|
+
Use the `weave` tool:
|
|
10
|
+
|
|
11
|
+
```txt
|
|
12
|
+
weave command=status
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## What It Reports
|
|
16
|
+
|
|
17
|
+
- Whether Weave has been initialized.
|
|
18
|
+
- Active plan and available plans.
|
|
19
|
+
- Phase status and next recommended action.
|
|
20
|
+
- Blocked, paused, completed, or archived work.
|
|
21
|
+
|
|
22
|
+
Use this when resuming a project, switching plans, or checking whether a build or phase still needs verification.
|
|
@@ -1,57 +1,21 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
2
|
+
description: Search global knowledge for solutions or record a new one
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
-
# /weave-troubleshoot
|
|
5
|
+
# /weave-troubleshoot
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Search prior solution knowledge for an error, or record a new solution.
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Use the `weave` tool:
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
## 사용법
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
# 해결책 검색
|
|
19
|
-
/weave-troubleshoot "Cannot find module 'xyz'"
|
|
20
|
-
|
|
21
|
-
# 새 해결책 기록
|
|
22
|
-
/weave-troubleshoot --record error="..." solution="..."
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
---
|
|
26
|
-
|
|
27
|
-
## 입력
|
|
28
|
-
|
|
29
|
-
```yaml
|
|
30
|
-
error: "..." # (검색 시 필수) 검색할 에러 메시지
|
|
31
|
-
record: true # (선택) 기록 모드 활성화
|
|
32
|
-
solution: "..." # (record 시 필수) 기록할 해결책
|
|
33
|
-
context: "..." # (선택) 추가 맥락
|
|
11
|
+
```txt
|
|
12
|
+
weave command=troubleshoot error="Cannot find module 'xyz'"
|
|
13
|
+
weave command=troubleshoot record=true error="..." solution="..." context="..."
|
|
34
14
|
```
|
|
35
15
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
## 출력 예시
|
|
16
|
+
## Modes
|
|
39
17
|
|
|
40
|
-
|
|
18
|
+
- Search mode: provide `error`.
|
|
19
|
+
- Record mode: set `record=true` and provide `solution`.
|
|
41
20
|
|
|
42
|
-
|
|
43
|
-
## 💡 유사한 해결책 발견
|
|
44
|
-
|
|
45
|
-
### 1. (exact, 점수: 95%)
|
|
46
|
-
**상황**: Cannot find module 'react'
|
|
47
|
-
**해결책**: npm install react react-dom
|
|
48
|
-
**효과성**: ⭐⭐⭐⭐⭐
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
### 기록
|
|
52
|
-
|
|
53
|
-
```markdown
|
|
54
|
-
✅ 트러블슈팅 솔루션이 기록되었습니다 (ID: 42)
|
|
55
|
-
|
|
56
|
-
다음에 비슷한 에러가 발생하면 자동으로 이 해결책을 제안합니다.
|
|
57
|
-
```
|
|
21
|
+
Record only solutions that were actually validated. Prefer the exact command, config change, or code path that fixed the issue.
|
|
@@ -1,44 +1,23 @@
|
|
|
1
|
-
---
|
|
2
|
-
description:
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# /weave-verify
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
weave command=verify
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
프로젝트 타입 힌트를 주고 싶으면:
|
|
28
|
-
|
|
29
|
-
```txt
|
|
30
|
-
weave command=verify projectType="go"
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
빠르게(typecheck+tests만) 돌리려면:
|
|
34
|
-
|
|
35
|
-
```txt
|
|
36
|
-
weave command=verify verifyMode="quick"
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
---
|
|
40
|
-
|
|
41
|
-
## 결과
|
|
42
|
-
|
|
43
|
-
- PASS면 `✅ Verification passed.`
|
|
44
|
-
- FAIL이면 실패한 레이어와 로그(tail)를 출력합니다
|
|
1
|
+
---
|
|
2
|
+
description: Run build and test verification for the current worktree
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /weave-verify
|
|
6
|
+
|
|
7
|
+
Run project-appropriate build and test checks in the current worktree.
|
|
8
|
+
|
|
9
|
+
Use the `weave` tool:
|
|
10
|
+
|
|
11
|
+
```txt
|
|
12
|
+
weave command=verify
|
|
13
|
+
weave command=verify verifyMode=quick
|
|
14
|
+
weave command=verify projectType="go"
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Behavior
|
|
18
|
+
|
|
19
|
+
- Detects common project types from files in the project root.
|
|
20
|
+
- Recommends or runs build/test commands for Node, Go, Rust, Python, .NET, and similar stacks.
|
|
21
|
+
- Reports command output and failure tails so the next action is clear.
|
|
22
|
+
|
|
23
|
+
Verification evidence matters more than workflow metadata. Treat failing builds/tests as blockers unless the failure is clearly unrelated and already known.
|
|
@@ -1,69 +1,27 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: git
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# /weave-worktree
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
```txt
|
|
30
|
-
weave command=worktree worktreeAction=list
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
### 3) 경로 확인(열기)
|
|
34
|
-
|
|
35
|
-
```txt
|
|
36
|
-
weave command=worktree worktreeAction=open name="feature-login"
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
해당 폴더로 이동한 뒤, 평소처럼 진행하면 됩니다:
|
|
40
|
-
|
|
41
|
-
```txt
|
|
42
|
-
/weave-prepare docs/
|
|
43
|
-
weave craft P1
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
### 4) 병합 가이드
|
|
47
|
-
|
|
48
|
-
```txt
|
|
49
|
-
weave command=worktree worktreeAction=merge name="feature-login"
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
### 5) worktree 제거
|
|
53
|
-
|
|
54
|
-
```txt
|
|
55
|
-
weave command=worktree worktreeAction=remove name="feature-login"
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
브랜치까지 삭제하려면:
|
|
59
|
-
|
|
60
|
-
```txt
|
|
61
|
-
weave command=worktree worktreeAction=remove name="feature-login" deleteBranch=true
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
---
|
|
65
|
-
|
|
66
|
-
## 주의(권장 정책)
|
|
67
|
-
|
|
68
|
-
- 같은 파일/설정(package-lock, tsconfig 등)을 동시에 바꾸는 작업은 병렬 worktree라도 merge conflict 가능성이 큽니다
|
|
69
|
-
- DB 마이그레이션/스키마 변경은 원칙적으로 순차 진행을 권장합니다
|
|
1
|
+
---
|
|
2
|
+
description: Manage git worktrees for parallel phase or feature work
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /weave-worktree
|
|
6
|
+
|
|
7
|
+
Manage git worktrees so multiple phases or features can be worked on in separate directories.
|
|
8
|
+
|
|
9
|
+
Use the `weave` tool:
|
|
10
|
+
|
|
11
|
+
```txt
|
|
12
|
+
weave command=worktree worktreeAction=create name="feature-login"
|
|
13
|
+
weave command=worktree worktreeAction=list
|
|
14
|
+
weave command=worktree worktreeAction=open name="feature-login"
|
|
15
|
+
weave command=worktree worktreeAction=merge name="feature-login"
|
|
16
|
+
weave command=worktree worktreeAction=remove name="feature-login"
|
|
17
|
+
weave command=worktree worktreeAction=remove name="feature-login" deleteBranch=true
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Policy
|
|
21
|
+
|
|
22
|
+
- Use worktrees for independent phases or features that can progress in parallel.
|
|
23
|
+
- Avoid parallel worktrees when multiple tasks will edit the same lockfile, schema, generated artifact, or central config.
|
|
24
|
+
- Bootstrap Weave artifacts into the new worktree so the user does not need to run `/weave-init` again.
|
|
25
|
+
- Merge from the main worktree, resolve conflicts, then run integration verification once.
|
|
26
|
+
|
|
27
|
+
This command explains git behavior without hiding it: each worktree has its own directory and branch, but merge conflicts are still possible when the same files change.
|
package/dist/plugin/index.js
CHANGED
|
@@ -31,11 +31,23 @@ import { createSquadTool } from './tools/squad.js';
|
|
|
31
31
|
import { createWeaveTool } from './tools/weave.js';
|
|
32
32
|
import { createSlashcommandTool } from './tools/slashcommand.js';
|
|
33
33
|
import { generatePoolAgentFilesFromConfig, writeDefaultRuntimeConfig, writeDefaultPluginConfig, } from '../shared/generate-agents.js';
|
|
34
|
+
const BUILD_COMMAND_TEMPLATE = `Use the \`weave\` tool with \`command="build"\`.
|
|
35
|
+
|
|
36
|
+
Forward the user arguments from \`$ARGUMENTS\` to the build command:
|
|
37
|
+
|
|
38
|
+
- No arguments: run the default build loop.
|
|
39
|
+
- \`status <buildId>\`: call \`weave\` with \`command="build"\`, \`action="status"\`, and \`buildId\`.
|
|
40
|
+
- \`stop <buildId>\`: call \`weave\` with \`command="build"\`, \`action="stop"\`, and \`buildId\`.
|
|
41
|
+
- \`list\`: call \`weave\` with \`command="build"\` and \`action="list"\`.
|
|
42
|
+
- \`resume <buildId>\`: call \`weave\` with \`command="build"\`, \`action="resume"\`, and \`buildId\`.
|
|
43
|
+
- \`sync <buildId>\`: call \`weave\` with \`command="build"\`, \`action="sync"\`, and \`buildId\`.
|
|
44
|
+
- Otherwise, treat \`$ARGUMENTS\` as phase IDs or build options for \`action="run"\`.
|
|
45
|
+
|
|
46
|
+
Do not run shell build commands directly unless the \`weave\` tool asks for verification.`;
|
|
34
47
|
const REMOVED_WEAVE_COMMAND_FILES = [
|
|
35
48
|
'weave-task.md',
|
|
36
49
|
'weave-task-auto.md',
|
|
37
50
|
'wave-task-auto.md',
|
|
38
|
-
'weave-approve.md',
|
|
39
51
|
];
|
|
40
52
|
function getAssetsDir() {
|
|
41
53
|
try {
|
|
@@ -967,7 +979,14 @@ ${buildRichPrompt(state.activeMask)}
|
|
|
967
979
|
},
|
|
968
980
|
// Config hook - allows plugins to modify opencode configuration
|
|
969
981
|
config: async (config) => {
|
|
970
|
-
//
|
|
982
|
+
// opencode discovers slash commands from config.command and command files.
|
|
983
|
+
// installAssets() writes command files for subsequent starts, while this
|
|
984
|
+
// hook makes the direct /build command visible on the current plugin load.
|
|
985
|
+
config.command ||= {};
|
|
986
|
+
config.command.build ||= {
|
|
987
|
+
description: 'Run or manage the Maskweaver autonomous build loop',
|
|
988
|
+
template: BUILD_COMMAND_TEMPLATE,
|
|
989
|
+
};
|
|
971
990
|
return;
|
|
972
991
|
},
|
|
973
992
|
};
|
package/dist/version.d.ts
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* 2. Update this constant
|
|
10
10
|
* 3. That's it — all other files import from here
|
|
11
11
|
*/
|
|
12
|
-
export declare const VERSION = "0.9.
|
|
12
|
+
export declare const VERSION = "0.9.4";
|
|
13
13
|
/**
|
|
14
14
|
* Returns a formatted version string for display.
|
|
15
15
|
* @example "Maskweaver v0.7.29"
|
package/dist/version.js
CHANGED