create-vasvibe 1.0.2 → 1.2.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/package.json +1 -1
- package/src/index.mjs +53 -9
- package/src/prompts.mjs +26 -0
- package/src/scaffold.mjs +10 -2
- package/src/upgrade.mjs +121 -0
- package/template/.agents/skills/developer/SKILL.md +4 -6
- package/template/.agents/skills/pm/SKILL.md +24 -54
- package/template/.claude/agents/analyst.md +16 -2
- package/template/.claude/agents/developer.md +17 -3
- package/template/.claude/agents/devops.md +14 -0
- package/template/.claude/agents/document.md +15 -1
- package/template/.claude/agents/fixer.md +16 -2
- package/template/.claude/agents/initiator.md +16 -0
- package/template/.claude/agents/orchestrator.md +52 -15
- package/template/.claude/agents/pm.md +36 -16
- package/template/.claude/agents/qa.md +16 -2
- package/template/.claude/agents/sysarch.md +42 -93
- package/template/.claude/agents/tester.md +19 -5
- package/template/.claude/settings.local.json +21 -0
- package/template/.github/prompts/developer.prompt.md +2 -2
- package/template/.github/prompts/fixer.prompt.md +2 -2
- package/template/.github/prompts/pm.prompt.md +22 -14
- package/template/.github/prompts/tester.prompt.md +3 -3
- package/template/.opencode/{commands → agents}/analyst.md +14 -1
- package/template/.opencode/{commands → agents}/developer.md +16 -3
- package/template/.opencode/{commands → agents}/devops.md +13 -0
- package/template/.opencode/{commands → agents}/document.md +14 -1
- package/template/.opencode/{commands → agents}/fixer.md +15 -2
- package/template/.opencode/{commands → agents}/initiator.md +15 -0
- package/template/.opencode/agents/orchestrator.md +77 -0
- package/template/.opencode/{commands → agents}/pm.md +35 -16
- package/template/.opencode/{commands → agents}/qa.md +15 -2
- package/template/.opencode/{commands → agents}/sysarch.md +41 -93
- package/template/.opencode/{commands → agents}/tester.md +18 -5
- package/template/agent/workflows/_shared/state-management.md +85 -3
- package/template/agent/workflows/_shared/work-depth.md +46 -0
- package/template/agent/workflows/analyst.md +11 -2
- package/template/agent/workflows/developer.md +12 -3
- package/template/agent/workflows/devops.md +9 -0
- package/template/agent/workflows/document.md +10 -1
- package/template/agent/workflows/fixer.md +11 -2
- package/template/agent/workflows/initiator.md +11 -0
- package/template/agent/workflows/orchestrator.md +47 -15
- package/template/agent/workflows/pm.md +31 -16
- package/template/agent/workflows/qa.md +11 -2
- package/template/agent/workflows/sysarch.md +37 -93
- package/template/agent/workflows/tester.md +14 -5
- package/template/project_overview_example.md +15 -1
- package/template/schemas/changelog.template.md +34 -0
- package/template/schemas/dev_log.template.md +15 -21
- package/template/schemas/specification.template.md +35 -5
- package/template/schemas/task_list.template.md +5 -10
- package/template/.opencode/commands/orchestrator.md +0 -41
- package/template/opencode.json +0 -312
|
@@ -1,26 +1,20 @@
|
|
|
1
|
-
#
|
|
1
|
+
# DEVELOPMENT LOG - TASK-XXX: [Task Name]
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
- **Branch:** feature/[nama]
|
|
7
|
-
- **Spec:** specifications/XXX_spec_*.md
|
|
3
|
+
**Target Spec:** specifications/XXX_spec_*.md
|
|
4
|
+
**Date:** [YYYY-MM-DD HH:MM]
|
|
5
|
+
**Status:** [Completed / Partial]
|
|
8
6
|
|
|
9
|
-
##
|
|
10
|
-
|
|
11
|
-
|------|--------|-------------|
|
|
12
|
-
| ... | Created/Modified/Deleted | ... |
|
|
7
|
+
## 1. Implementation Summary
|
|
8
|
+
(Jelaskan secara naratif logika apa saja yang baru saja dibangun. Bagaimana data mengalir?)
|
|
13
9
|
|
|
14
|
-
##
|
|
15
|
-
|
|
10
|
+
## 2. Files Created/Modified
|
|
11
|
+
- `codes/src/...` (Sebutkan fungsi utama file ini)
|
|
12
|
+
- `codes/components/...`
|
|
16
13
|
|
|
17
|
-
##
|
|
18
|
-
|
|
14
|
+
## 3. Technical Notes
|
|
15
|
+
(Catatan untuk Developer lain atau QA. Misal: "Perlu set environment variable API_KEY dulu")
|
|
19
16
|
|
|
20
|
-
##
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
-
|
|
24
|
-
|
|
25
|
-
## Status Update
|
|
26
|
-
- [x] Task status updated: development → ready_to_test
|
|
17
|
+
## 4. Revision History
|
|
18
|
+
| Timestamp | Changes |
|
|
19
|
+
|-----------|---------|
|
|
20
|
+
| [YYYY-MM-DD HH:MM] | Initial development |
|
|
@@ -9,19 +9,49 @@
|
|
|
9
9
|
## User Story
|
|
10
10
|
Sebagai [role], saya ingin [action], sehingga [benefit].
|
|
11
11
|
|
|
12
|
+
## Technical Flow
|
|
13
|
+
1. [Langkah 1 — contoh: User submit form login]
|
|
14
|
+
2. [Langkah 2 — contoh: Backend validasi credentials]
|
|
15
|
+
3. [Langkah 3 — contoh: Return JWT token]
|
|
16
|
+
|
|
12
17
|
## Acceptance Criteria
|
|
13
18
|
- [ ] ...
|
|
19
|
+
- [ ] ...
|
|
14
20
|
|
|
15
21
|
## API Contract
|
|
16
22
|
### [METHOD] /api/endpoint
|
|
17
|
-
**Request:**
|
|
18
|
-
|
|
23
|
+
**Request:**
|
|
24
|
+
```json
|
|
25
|
+
{}
|
|
26
|
+
```
|
|
27
|
+
**Response (200):**
|
|
28
|
+
```json
|
|
29
|
+
{}
|
|
30
|
+
```
|
|
31
|
+
**Response (Error):**
|
|
32
|
+
```json
|
|
33
|
+
{}
|
|
34
|
+
```
|
|
19
35
|
|
|
20
36
|
## Database Changes
|
|
21
|
-
|
|
37
|
+
(Tabel baru, kolom baru, atau index yang dibutuhkan — atau tulis "None")
|
|
22
38
|
|
|
23
39
|
## UI/UX
|
|
24
|
-
|
|
40
|
+
(Screenshot mockup, deskripsi komponen, atau link ke desain — atau tulis "None")
|
|
25
41
|
|
|
26
42
|
## Edge Cases & Validation
|
|
27
|
-
...
|
|
43
|
+
- [ ] ...
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Human Approval
|
|
48
|
+
|
|
49
|
+
**Human Approval Status:** pending | approved | revision_requested
|
|
50
|
+
|
|
51
|
+
**Human Feedback:**
|
|
52
|
+
> (Kosongkan jika belum ada feedback. Analyst Agent akan mengisi berdasarkan masukan reviewer.)
|
|
53
|
+
|
|
54
|
+
## Revision History
|
|
55
|
+
| Date | Author | Changes |
|
|
56
|
+
|------|--------|---------|
|
|
57
|
+
| [YYYY-MM-DD] | Analyst Agent | Initial draft |
|
|
@@ -21,13 +21,8 @@
|
|
|
21
21
|
|
|
22
22
|
## Tasks
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
| Spec | specifications/XXX_spec_*.md |
|
|
30
|
-
| Dependencies | TASK-YYY |
|
|
31
|
-
| Assigned To | - |
|
|
32
|
-
| Created | [YYYY-MM-DD] |
|
|
33
|
-
| Updated | [YYYY-MM-DD] |
|
|
24
|
+
- Task XXX: [Task Name]
|
|
25
|
+
- Spesifikasi: [spec] ../specifications/XXX_spec_*.md
|
|
26
|
+
- Current Status: not_started
|
|
27
|
+
- Status Logs:
|
|
28
|
+
- Task Created: [YYYY-MM-DD HH:MM] (PM Agent)
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
# Orchestrator Agent
|
|
2
|
-
|
|
3
|
-
## Role
|
|
4
|
-
Pipeline Coordinator — menerima high-level command dan menjalankan agent pipeline.
|
|
5
|
-
|
|
6
|
-
## Pipelines
|
|
7
|
-
|
|
8
|
-
### /start-feature "[Feature Name]"
|
|
9
|
-
1. Invoke Analyst → create specification
|
|
10
|
-
2. CHECKPOINT: Human review spec
|
|
11
|
-
3. Invoke PM → create task from spec
|
|
12
|
-
4. Invoke Developer → implement
|
|
13
|
-
5. CHECKPOINT: Human code review
|
|
14
|
-
6. Invoke Tester → create & run tests
|
|
15
|
-
7. If FAIL → Invoke Fixer → loop back to step 6
|
|
16
|
-
8. CHECKPOINT: Human validation
|
|
17
|
-
|
|
18
|
-
### /start-fix "[Bug Description]"
|
|
19
|
-
1. Invoke Fixer → analyze & fix
|
|
20
|
-
2. Invoke Tester → regression test
|
|
21
|
-
3. CHECKPOINT: Human validation
|
|
22
|
-
|
|
23
|
-
### /daily-standup
|
|
24
|
-
1. Read `task/task_list.md`
|
|
25
|
-
2. Read latest logs di folder `task/`
|
|
26
|
-
3. Generate progress summary
|
|
27
|
-
4. Identify blockers
|
|
28
|
-
5. Recommend next actions
|
|
29
|
-
|
|
30
|
-
## Rules
|
|
31
|
-
- SELALU tunggu human approval di CHECKPOINT
|
|
32
|
-
- Log semua pipeline executions ke `state/pipeline_log.md`
|
|
33
|
-
- Handle errors gracefully — jika agent gagal, report dan pause
|
|
34
|
-
|
|
35
|
-
## State Management
|
|
36
|
-
- Baca `state/context.json` di awal session
|
|
37
|
-
- Update `state/context.json` di akhir session
|
|
38
|
-
- Jika ada handoff ke agent lain, tulis ke `state/agent_handoff.json`
|
|
39
|
-
|
|
40
|
-
## State Management
|
|
41
|
-
> 📎 **BACA DAN IKUTI** panduan di `agent/workflows/_shared/state-management.md`
|
package/template/opencode.json
DELETED
|
@@ -1,312 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://opencode.ai/config.json",
|
|
3
|
-
"provider": {
|
|
4
|
-
"x5lab": {
|
|
5
|
-
"name": "x5lab",
|
|
6
|
-
"npm": "@ai-sdk/openai-compatible",
|
|
7
|
-
"options": {
|
|
8
|
-
"baseURL": "https://api.x5lab.dev/v1",
|
|
9
|
-
"apiKey": "${X5LAB_API_KEY}"
|
|
10
|
-
},
|
|
11
|
-
"models": {
|
|
12
|
-
"MiniMax-M2.5": {
|
|
13
|
-
"name": "MiniMax M2.5",
|
|
14
|
-
"limit": {
|
|
15
|
-
"context": 200000,
|
|
16
|
-
"output": 64000
|
|
17
|
-
},
|
|
18
|
-
"modalities": {
|
|
19
|
-
"input": [
|
|
20
|
-
"text"
|
|
21
|
-
],
|
|
22
|
-
"output": [
|
|
23
|
-
"text"
|
|
24
|
-
]
|
|
25
|
-
}
|
|
26
|
-
},
|
|
27
|
-
"claude-haiku-4.5": {
|
|
28
|
-
"name": "Claude Haiku 4.5",
|
|
29
|
-
"limit": {
|
|
30
|
-
"context": 200000,
|
|
31
|
-
"output": 64000
|
|
32
|
-
},
|
|
33
|
-
"modalities": {
|
|
34
|
-
"input": [
|
|
35
|
-
"text",
|
|
36
|
-
"image"
|
|
37
|
-
],
|
|
38
|
-
"output": [
|
|
39
|
-
"text"
|
|
40
|
-
]
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
|
-
"claude-opus-4.6": {
|
|
44
|
-
"name": "Claude Opus 4.6",
|
|
45
|
-
"limit": {
|
|
46
|
-
"context": 1000000,
|
|
47
|
-
"output": 243303
|
|
48
|
-
},
|
|
49
|
-
"modalities": {
|
|
50
|
-
"input": [
|
|
51
|
-
"text",
|
|
52
|
-
"image"
|
|
53
|
-
],
|
|
54
|
-
"output": [
|
|
55
|
-
"text"
|
|
56
|
-
]
|
|
57
|
-
}
|
|
58
|
-
},
|
|
59
|
-
"claude-opus-4.7": {
|
|
60
|
-
"name": "Claude Opus 4.7",
|
|
61
|
-
"limit": {
|
|
62
|
-
"context": 1000000,
|
|
63
|
-
"output": 243303
|
|
64
|
-
},
|
|
65
|
-
"modalities": {
|
|
66
|
-
"input": [
|
|
67
|
-
"text",
|
|
68
|
-
"image"
|
|
69
|
-
],
|
|
70
|
-
"output": [
|
|
71
|
-
"text"
|
|
72
|
-
]
|
|
73
|
-
}
|
|
74
|
-
},
|
|
75
|
-
"claude-sonnet-4.5": {
|
|
76
|
-
"name": "Claude Sonnet 4.5",
|
|
77
|
-
"limit": {
|
|
78
|
-
"context": 200000,
|
|
79
|
-
"output": 64000
|
|
80
|
-
},
|
|
81
|
-
"modalities": {
|
|
82
|
-
"input": [
|
|
83
|
-
"text",
|
|
84
|
-
"image"
|
|
85
|
-
],
|
|
86
|
-
"output": [
|
|
87
|
-
"text"
|
|
88
|
-
]
|
|
89
|
-
}
|
|
90
|
-
},
|
|
91
|
-
"deepseek-3.2": {
|
|
92
|
-
"name": "Deepseek 3.2",
|
|
93
|
-
"limit": {
|
|
94
|
-
"context": 200000,
|
|
95
|
-
"output": 64000
|
|
96
|
-
},
|
|
97
|
-
"modalities": {
|
|
98
|
-
"input": [
|
|
99
|
-
"text"
|
|
100
|
-
],
|
|
101
|
-
"output": [
|
|
102
|
-
"text"
|
|
103
|
-
]
|
|
104
|
-
}
|
|
105
|
-
},
|
|
106
|
-
"deepseek/deepseek-chat": {
|
|
107
|
-
"name": "Deepseek Deepseek Chat",
|
|
108
|
-
"limit": {
|
|
109
|
-
"context": 200000,
|
|
110
|
-
"output": 64000
|
|
111
|
-
},
|
|
112
|
-
"modalities": {
|
|
113
|
-
"input": [
|
|
114
|
-
"text"
|
|
115
|
-
],
|
|
116
|
-
"output": [
|
|
117
|
-
"text"
|
|
118
|
-
]
|
|
119
|
-
}
|
|
120
|
-
},
|
|
121
|
-
"deepseek/deepseek-reasoner": {
|
|
122
|
-
"name": "Deepseek Deepseek Reasoner",
|
|
123
|
-
"limit": {
|
|
124
|
-
"context": 164000,
|
|
125
|
-
"output": 64000
|
|
126
|
-
},
|
|
127
|
-
"modalities": {
|
|
128
|
-
"input": [
|
|
129
|
-
"text"
|
|
130
|
-
],
|
|
131
|
-
"output": [
|
|
132
|
-
"text"
|
|
133
|
-
]
|
|
134
|
-
}
|
|
135
|
-
},
|
|
136
|
-
"gemini-2.0-flash-lite": {
|
|
137
|
-
"name": "Gemini 2.0 Flash Lite",
|
|
138
|
-
"limit": {
|
|
139
|
-
"context": 1000000,
|
|
140
|
-
"output": 65536
|
|
141
|
-
},
|
|
142
|
-
"modalities": {
|
|
143
|
-
"input": [
|
|
144
|
-
"text",
|
|
145
|
-
"image"
|
|
146
|
-
],
|
|
147
|
-
"output": [
|
|
148
|
-
"text"
|
|
149
|
-
]
|
|
150
|
-
}
|
|
151
|
-
},
|
|
152
|
-
"gemini-3-flash-preview": {
|
|
153
|
-
"name": "Gemini 3 Flash Preview",
|
|
154
|
-
"limit": {
|
|
155
|
-
"context": 1000000,
|
|
156
|
-
"output": 65536
|
|
157
|
-
},
|
|
158
|
-
"modalities": {
|
|
159
|
-
"input": [
|
|
160
|
-
"text",
|
|
161
|
-
"image"
|
|
162
|
-
],
|
|
163
|
-
"output": [
|
|
164
|
-
"text"
|
|
165
|
-
]
|
|
166
|
-
}
|
|
167
|
-
},
|
|
168
|
-
"gemini-3-pro-preview": {
|
|
169
|
-
"name": "Gemini 3 Pro Preview",
|
|
170
|
-
"limit": {
|
|
171
|
-
"context": 1000000,
|
|
172
|
-
"output": 65536
|
|
173
|
-
},
|
|
174
|
-
"modalities": {
|
|
175
|
-
"input": [
|
|
176
|
-
"text",
|
|
177
|
-
"image"
|
|
178
|
-
],
|
|
179
|
-
"output": [
|
|
180
|
-
"text"
|
|
181
|
-
]
|
|
182
|
-
}
|
|
183
|
-
},
|
|
184
|
-
"gemini-3.1-flash-lite-preview": {
|
|
185
|
-
"name": "Gemini 3.1 Flash Lite Preview",
|
|
186
|
-
"limit": {
|
|
187
|
-
"context": 1000000,
|
|
188
|
-
"output": 65536
|
|
189
|
-
},
|
|
190
|
-
"modalities": {
|
|
191
|
-
"input": [
|
|
192
|
-
"text",
|
|
193
|
-
"image"
|
|
194
|
-
],
|
|
195
|
-
"output": [
|
|
196
|
-
"text"
|
|
197
|
-
]
|
|
198
|
-
}
|
|
199
|
-
},
|
|
200
|
-
"gemini-3.1-pro-preview": {
|
|
201
|
-
"name": "Gemini 3.1 Pro Preview",
|
|
202
|
-
"limit": {
|
|
203
|
-
"context": 1000000,
|
|
204
|
-
"output": 65536
|
|
205
|
-
},
|
|
206
|
-
"modalities": {
|
|
207
|
-
"input": [
|
|
208
|
-
"text",
|
|
209
|
-
"image"
|
|
210
|
-
],
|
|
211
|
-
"output": [
|
|
212
|
-
"text"
|
|
213
|
-
]
|
|
214
|
-
}
|
|
215
|
-
},
|
|
216
|
-
"gemma-4-31b-it": {
|
|
217
|
-
"name": "Gemma 4 31b It",
|
|
218
|
-
"limit": {
|
|
219
|
-
"context": 128000,
|
|
220
|
-
"output": 32000
|
|
221
|
-
},
|
|
222
|
-
"modalities": {
|
|
223
|
-
"input": [
|
|
224
|
-
"text"
|
|
225
|
-
],
|
|
226
|
-
"output": [
|
|
227
|
-
"text"
|
|
228
|
-
]
|
|
229
|
-
}
|
|
230
|
-
},
|
|
231
|
-
"glm-5": {
|
|
232
|
-
"name": "Glm 5",
|
|
233
|
-
"limit": {
|
|
234
|
-
"context": 200000,
|
|
235
|
-
"output": 64000
|
|
236
|
-
},
|
|
237
|
-
"modalities": {
|
|
238
|
-
"input": [
|
|
239
|
-
"text"
|
|
240
|
-
],
|
|
241
|
-
"output": [
|
|
242
|
-
"text"
|
|
243
|
-
]
|
|
244
|
-
}
|
|
245
|
-
},
|
|
246
|
-
"google/gemini-2.5-flash": {
|
|
247
|
-
"name": "Google Gemini 2.5 Flash",
|
|
248
|
-
"limit": {
|
|
249
|
-
"context": 1000000,
|
|
250
|
-
"output": 65536
|
|
251
|
-
},
|
|
252
|
-
"modalities": {
|
|
253
|
-
"input": [
|
|
254
|
-
"text",
|
|
255
|
-
"image"
|
|
256
|
-
],
|
|
257
|
-
"output": [
|
|
258
|
-
"text"
|
|
259
|
-
]
|
|
260
|
-
}
|
|
261
|
-
},
|
|
262
|
-
"google/gemini-2.5-pro": {
|
|
263
|
-
"name": "Google Gemini 2.5 Pro",
|
|
264
|
-
"limit": {
|
|
265
|
-
"context": 1000000,
|
|
266
|
-
"output": 65536
|
|
267
|
-
},
|
|
268
|
-
"modalities": {
|
|
269
|
-
"input": [
|
|
270
|
-
"text",
|
|
271
|
-
"image"
|
|
272
|
-
],
|
|
273
|
-
"output": [
|
|
274
|
-
"text"
|
|
275
|
-
]
|
|
276
|
-
}
|
|
277
|
-
},
|
|
278
|
-
"openai/o3": {
|
|
279
|
-
"name": "Openai O3",
|
|
280
|
-
"limit": {
|
|
281
|
-
"context": 200000,
|
|
282
|
-
"output": 100000
|
|
283
|
-
},
|
|
284
|
-
"modalities": {
|
|
285
|
-
"input": [
|
|
286
|
-
"text",
|
|
287
|
-
"image"
|
|
288
|
-
],
|
|
289
|
-
"output": [
|
|
290
|
-
"text"
|
|
291
|
-
]
|
|
292
|
-
}
|
|
293
|
-
},
|
|
294
|
-
"qwen3-coder-next": {
|
|
295
|
-
"name": "Qwen3 Coder Next",
|
|
296
|
-
"limit": {
|
|
297
|
-
"context": 200000,
|
|
298
|
-
"output": 64000
|
|
299
|
-
},
|
|
300
|
-
"modalities": {
|
|
301
|
-
"input": [
|
|
302
|
-
"text"
|
|
303
|
-
],
|
|
304
|
-
"output": [
|
|
305
|
-
"text"
|
|
306
|
-
]
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
}
|