maskweaver 0.8.16 β 0.9.1
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 +640 -657
- package/README.md +672 -689
- package/assets/commands/meta/commands.json +254 -0
- package/assets/commands/weave-agents.md +62 -0
- package/assets/commands/weave-approve.md +61 -0
- package/assets/commands/weave-build.md +99 -0
- package/assets/commands/weave-help.md +114 -158
- package/assets/commands/weave-interview.md +121 -0
- package/assets/commands/weave-map.md +109 -0
- package/assets/commands/weave-troubleshoot.md +57 -0
- package/dist/plugin/index.d.ts +5 -1
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js +20 -17
- package/dist/plugin/index.js.map +1 -1
- package/dist/plugin/tools/command-registry.d.ts +51 -0
- package/dist/plugin/tools/command-registry.d.ts.map +1 -0
- package/dist/plugin/tools/command-registry.js +348 -0
- package/dist/plugin/tools/command-registry.js.map +1 -0
- package/dist/plugin/tools/slashcommand.d.ts +1 -1
- package/dist/plugin/tools/slashcommand.d.ts.map +1 -1
- package/dist/plugin/tools/slashcommand.js +47 -193
- package/dist/plugin/tools/slashcommand.js.map +1 -1
- package/dist/plugin/tools/weave.d.ts +14 -35
- package/dist/plugin/tools/weave.d.ts.map +1 -1
- package/dist/plugin/tools/weave.js +247 -213
- package/dist/plugin/tools/weave.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +142 -142
- package/assets/commands/weave-approve-plan.md +0 -57
- package/assets/commands/weave-design.md +0 -296
- package/assets/commands/weave-flow.md +0 -48
- package/assets/commands/weave-plan.md +0 -15
- package/assets/commands/weave-research.md +0 -51
- package/assets/commands/weave-spec.md +0 -227
- package/assets/commands/weave-switch.md +0 -170
package/README.md
CHANGED
|
@@ -1,689 +1,672 @@
|
|
|
1
|
-
# π Maskweaver: Expert Persona Framework for OpenCode
|
|
2
|
-
|
|
3
|
-
<div align="center">
|
|
4
|
-
|
|
5
|
-
<img src="docs/images/hero.png" width="800" alt="Maskweaver Hero Image">
|
|
6
|
-
|
|
7
|
-
> **The npm for AI personas** β Level up your OpenCode assistant with expert personalities
|
|
8
|
-
|
|
9
|
-
[](https://github.com/ulgerang/maskweaver/releases)
|
|
10
|
-
[](LICENSE)
|
|
11
|
-
[](https://www.npmjs.com/package/maskweaver)
|
|
12
|
-
|
|
13
|
-
[English](README.md) | [νκ΅μ΄](README.ko.md)
|
|
14
|
-
|
|
15
|
-
</div>
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
## π OpenCode Plugin
|
|
20
|
-
|
|
21
|
-
**Maskweaver is a handy plugin for [OpenCode](https://github.com/sst/opencode).**
|
|
22
|
-
|
|
23
|
-
While it can be used as a standalone library, it works great with OpenCode to add expert personas to your coding workflow:
|
|
24
|
-
- **Expert Personas (Masks)**: Standardized YAML profiles for legendary developers.
|
|
25
|
-
- **Smart Delegation**: Multi-agent workflows optimized for OpenCode.
|
|
26
|
-
- **Project Memory**: Hybrid semantic search for your entire codebase.
|
|
27
|
-
- **π Weave Workflow**: Phase-driven development with AI self-verification.
|
|
28
|
-
- **π GDC Integration**: Graph-Driven Codebase support for enhanced research and design-time verification gates.
|
|
29
|
-
|
|
30
|
-
---
|
|
31
|
-
|
|
32
|
-
## Why Maskweaver?
|
|
33
|
-
|
|
34
|
-
You're stuck debugging a race condition. Wouldn't it be great if **Linus Torvalds** could review your code?
|
|
35
|
-
|
|
36
|
-
```typescript
|
|
37
|
-
// Instead of generic AI response...
|
|
38
|
-
"You have a potential race condition in your code."
|
|
39
|
-
|
|
40
|
-
// Get Linus-level insight:
|
|
41
|
-
"This is stupid. You're not even using memory barriers. Read the
|
|
42
|
-
assembly - the compiler reordered your loads. Use smp_rmb() or
|
|
43
|
-
better yet, redesign this without the stupid lock."
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
**Maskweaver makes this real.** It gives AI assistants expert personas (masks) with deep domain knowledge and distinct thinking styles.
|
|
47
|
-
|
|
48
|
-
---
|
|
49
|
-
|
|
50
|
-
## Installation
|
|
51
|
-
|
|
52
|
-
### For Humans
|
|
53
|
-
|
|
54
|
-
Copy and paste this prompt to your LLM agent (Claude Code, AmpCode, Cursor, etc.):
|
|
55
|
-
|
|
56
|
-
```
|
|
57
|
-
Install and configure maskweaver by following the instructions here:
|
|
58
|
-
https://raw.githubusercontent.com/ulgerang/maskweaver/master/docs/installation.md
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
Or read the [Installation Guide](docs/installation.md) directlyβbut **we strongly recommend letting an agent handle it. Humans make mistakes.**
|
|
62
|
-
|
|
63
|
-
### For LLM Agents
|
|
64
|
-
|
|
65
|
-
Fetch the installation guide and follow it:
|
|
66
|
-
|
|
67
|
-
```bash
|
|
68
|
-
curl -s https://raw.githubusercontent.com/ulgerang/maskweaver/master/docs/installation.md
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
### Quick Install
|
|
72
|
-
|
|
73
|
-
```bash
|
|
74
|
-
# npm
|
|
75
|
-
npm install maskweaver
|
|
76
|
-
|
|
77
|
-
# bun
|
|
78
|
-
bun add maskweaver
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
### OpenCode Plugin Setup
|
|
82
|
-
|
|
83
|
-
Add to your OpenCode config - that's it!
|
|
84
|
-
|
|
85
|
-
**Global** (`~/.config/opencode/opencode.json`):
|
|
86
|
-
```json
|
|
87
|
-
{
|
|
88
|
-
"plugin": ["maskweaver"]
|
|
89
|
-
}
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
**Or per-project** (`opencode.json` in project root):
|
|
93
|
-
```json
|
|
94
|
-
{
|
|
95
|
-
"plugin": ["maskweaver"]
|
|
96
|
-
}
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
> Note: OpenCode installs npm packages by name. Use `maskweaver` (not `maskweaver/plugin`).
|
|
100
|
-
|
|
101
|
-
OpenCode automatically installs the plugin to `~/.cache/opencode/node_modules/` on startup.
|
|
102
|
-
|
|
103
|
-
**Windows:** `%USERPROFILE%\.config\opencode\opencode.json`
|
|
104
|
-
|
|
105
|
-
### Completion Sound (Optional)
|
|
106
|
-
|
|
107
|
-
Maskweaver can play a notification sound when generation finishes (`session.idle`).
|
|
108
|
-
|
|
109
|
-
Create `.opencode/maskweaver.json` (project) or `~/.config/opencode/maskweaver.json` (global):
|
|
110
|
-
|
|
111
|
-
```jsonc
|
|
112
|
-
{
|
|
113
|
-
"notifications": {
|
|
114
|
-
"completionSound": {
|
|
115
|
-
"enabled": true
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
Turn it off:
|
|
122
|
-
|
|
123
|
-
```jsonc
|
|
124
|
-
{
|
|
125
|
-
"notifications": {
|
|
126
|
-
"completionSound": {
|
|
127
|
-
"enabled": false
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
### Checking Installed Version
|
|
134
|
-
|
|
135
|
-
Multiple ways to verify your Maskweaver version:
|
|
136
|
-
|
|
137
|
-
```bash
|
|
138
|
-
# CLI (terminal)
|
|
139
|
-
maskweaver --version
|
|
140
|
-
# or
|
|
141
|
-
maskweaver -V
|
|
142
|
-
|
|
143
|
-
# npm
|
|
144
|
-
npm list maskweaver
|
|
145
|
-
|
|
146
|
-
# In OpenCode chat
|
|
147
|
-
# Use the maskweaver_status tool or type:
|
|
148
|
-
/weave help
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
```typescript
|
|
152
|
-
// Programmatic (Node.js / TypeScript)
|
|
153
|
-
import { VERSION } from 'maskweaver';
|
|
154
|
-
console.log(VERSION); // "0.7.29"
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
---
|
|
158
|
-
|
|
159
|
-
## Quick Start
|
|
160
|
-
|
|
161
|
-
### First Use
|
|
162
|
-
|
|
163
|
-
```bash
|
|
164
|
-
# In your AI assistant chat:
|
|
165
|
-
@maskweaver Use Linus Torvalds mask to review this C code
|
|
166
|
-
|
|
167
|
-
# Or delegate to dummy-humans:
|
|
168
|
-
@dummy-human Linus mask: review my multithreading code
|
|
169
|
-
@dummy-flash Find all files with "unsafe" in them
|
|
170
|
-
@dummy-premium Design microservices architecture for this monolith
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
---
|
|
174
|
-
|
|
175
|
-
## Features
|
|
176
|
-
|
|
177
|
-
### π Expert Personas (Masks)
|
|
178
|
-
|
|
179
|
-
Apply legendary developer personalities to your AI assistant:
|
|
180
|
-
|
|
181
|
-
```yaml
|
|
182
|
-
# masks/software-engineering/linus-torvalds.yaml
|
|
183
|
-
profile:
|
|
184
|
-
name: Linus Torvalds
|
|
185
|
-
expertise:
|
|
186
|
-
- Kernel-level systems programming
|
|
187
|
-
- Performance optimization
|
|
188
|
-
- Memory management and concurrency
|
|
189
|
-
|
|
190
|
-
thinkingStyle: |
|
|
191
|
-
Bottom-up, pragmatic. Starts with code, not theory.
|
|
192
|
-
Ruthlessly eliminates complexity.
|
|
193
|
-
```
|
|
194
|
-
|
|
195
|
-
**Current Masks:**
|
|
196
|
-
- π§ **Linus Torvalds** - Systems, C, Linux, performance
|
|
197
|
-
- ποΈ **Martin Fowler** - Architecture, refactoring, patterns
|
|
198
|
-
- π§ͺ **Kent Beck** - TDD, XP, testing
|
|
199
|
-
- π§ **Andrew Ng** - ML/AI systems
|
|
200
|
-
- βοΈ **Dan Abramov** - React, frontend architecture
|
|
201
|
-
|
|
202
|
-
### π€ Dummy-Human System
|
|
203
|
-
|
|
204
|
-
Smart subagents for cost-efficient multi-agent workflows:
|
|
205
|
-
|
|
206
|
-
| Agent | Model Tier | Cost | Best For |
|
|
207
|
-
|-------|-----------|------|----------|
|
|
208
|
-
| `@dummy-flash` | Fast | π° | File search, summaries, simple tasks |
|
|
209
|
-
| `@dummy-human` | Balanced | π°π° | Code writing, reviews, general work |
|
|
210
|
-
| `@dummy-premium` | Powerful | π°π°π° | Architecture, complex debugging |
|
|
211
|
-
|
|
212
|
-
### π§΅ Weave Workflow
|
|
213
|
-
|
|
214
|
-
**Phase-Driven Development** β "AI verifies, Human validates"
|
|
215
|
-
|
|
216
|
-
Weave is Maskweaver's flagship workflow. It breaks work into testable phases, auto-selects expert masks, and provides structured verification before handoff.
|
|
217
|
-
|
|
218
|
-
#### Commands
|
|
219
|
-
|
|
220
|
-
| Command | Description |
|
|
221
|
-
|---------|-------------|
|
|
222
|
-
| `/weave init` | Initialize Weave (once per repo) |
|
|
223
|
-
| `/weave
|
|
224
|
-
| `/weave
|
|
225
|
-
| `/weave
|
|
226
|
-
| `/weave
|
|
227
|
-
| `/weave
|
|
228
|
-
| `/weave
|
|
229
|
-
| `/weave
|
|
230
|
-
| `/weave
|
|
231
|
-
| `/weave
|
|
232
|
-
| `/weave
|
|
233
|
-
| `/weave
|
|
234
|
-
| `/weave help` | Show documentation |
|
|
235
|
-
|
|
236
|
-
> Tip: In OpenCode chat you can use `/weave ...` commands, and they map to the underlying `weave command=...` tool calls.
|
|
237
|
-
|
|
238
|
-
#### Workflow
|
|
239
|
-
|
|
240
|
-
```
|
|
241
|
-
0. INIT (once): /weave init
|
|
242
|
-
β
|
|
243
|
-
1.
|
|
244
|
-
-
|
|
245
|
-
β
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
β
|
|
257
|
-
5.
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
|
270
|
-
|
|
271
|
-
|
|
|
272
|
-
|
|
|
273
|
-
|
|
|
274
|
-
|
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
-
|
|
290
|
-
-
|
|
291
|
-
-
|
|
292
|
-
|
|
293
|
-
**
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
{
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
**
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
import {
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
- `maskweaver/
|
|
432
|
-
- `maskweaver/
|
|
433
|
-
- `maskweaver/
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
```
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
```
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
1. What you tried
|
|
674
|
-
2. What happened
|
|
675
|
-
3. What you expected
|
|
676
|
-
|
|
677
|
-
See [CONTRIBUTING.md](CONTRIBUTING.md) for more details.
|
|
678
|
-
|
|
679
|
-
---
|
|
680
|
-
|
|
681
|
-
## π License
|
|
682
|
-
|
|
683
|
-
MIT - See [LICENSE](LICENSE)
|
|
684
|
-
|
|
685
|
-
---
|
|
686
|
-
|
|
687
|
-
<p align="center">
|
|
688
|
-
<sub>Crafted with π by <a href="https://github.com/ulgerang">ULJI SOFT</a></sub>
|
|
689
|
-
</p>
|
|
1
|
+
# π Maskweaver: Expert Persona Framework for OpenCode
|
|
2
|
+
|
|
3
|
+
<div align="center">
|
|
4
|
+
|
|
5
|
+
<img src="docs/images/hero.png" width="800" alt="Maskweaver Hero Image">
|
|
6
|
+
|
|
7
|
+
> **The npm for AI personas** β Level up your OpenCode assistant with expert personalities
|
|
8
|
+
|
|
9
|
+
[](https://github.com/ulgerang/maskweaver/releases)
|
|
10
|
+
[](LICENSE)
|
|
11
|
+
[](https://www.npmjs.com/package/maskweaver)
|
|
12
|
+
|
|
13
|
+
[English](README.md) | [νκ΅μ΄](README.ko.md)
|
|
14
|
+
|
|
15
|
+
</div>
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## π OpenCode Plugin
|
|
20
|
+
|
|
21
|
+
**Maskweaver is a handy plugin for [OpenCode](https://github.com/sst/opencode).**
|
|
22
|
+
|
|
23
|
+
While it can be used as a standalone library, it works great with OpenCode to add expert personas to your coding workflow:
|
|
24
|
+
- **Expert Personas (Masks)**: Standardized YAML profiles for legendary developers.
|
|
25
|
+
- **Smart Delegation**: Multi-agent workflows optimized for OpenCode.
|
|
26
|
+
- **Project Memory**: Hybrid semantic search for your entire codebase.
|
|
27
|
+
- **π Weave Workflow**: Phase-driven development with AI self-verification.
|
|
28
|
+
- **π GDC Integration**: Graph-Driven Codebase support for enhanced research and design-time verification gates.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Why Maskweaver?
|
|
33
|
+
|
|
34
|
+
You're stuck debugging a race condition. Wouldn't it be great if **Linus Torvalds** could review your code?
|
|
35
|
+
|
|
36
|
+
```typescript
|
|
37
|
+
// Instead of generic AI response...
|
|
38
|
+
"You have a potential race condition in your code."
|
|
39
|
+
|
|
40
|
+
// Get Linus-level insight:
|
|
41
|
+
"This is stupid. You're not even using memory barriers. Read the
|
|
42
|
+
assembly - the compiler reordered your loads. Use smp_rmb() or
|
|
43
|
+
better yet, redesign this without the stupid lock."
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**Maskweaver makes this real.** It gives AI assistants expert personas (masks) with deep domain knowledge and distinct thinking styles.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Installation
|
|
51
|
+
|
|
52
|
+
### For Humans
|
|
53
|
+
|
|
54
|
+
Copy and paste this prompt to your LLM agent (Claude Code, AmpCode, Cursor, etc.):
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
Install and configure maskweaver by following the instructions here:
|
|
58
|
+
https://raw.githubusercontent.com/ulgerang/maskweaver/master/docs/installation.md
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Or read the [Installation Guide](docs/installation.md) directlyβbut **we strongly recommend letting an agent handle it. Humans make mistakes.**
|
|
62
|
+
|
|
63
|
+
### For LLM Agents
|
|
64
|
+
|
|
65
|
+
Fetch the installation guide and follow it:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
curl -s https://raw.githubusercontent.com/ulgerang/maskweaver/master/docs/installation.md
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Quick Install
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
# npm
|
|
75
|
+
npm install maskweaver
|
|
76
|
+
|
|
77
|
+
# bun
|
|
78
|
+
bun add maskweaver
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### OpenCode Plugin Setup
|
|
82
|
+
|
|
83
|
+
Add to your OpenCode config - that's it!
|
|
84
|
+
|
|
85
|
+
**Global** (`~/.config/opencode/opencode.json`):
|
|
86
|
+
```json
|
|
87
|
+
{
|
|
88
|
+
"plugin": ["maskweaver"]
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
**Or per-project** (`opencode.json` in project root):
|
|
93
|
+
```json
|
|
94
|
+
{
|
|
95
|
+
"plugin": ["maskweaver"]
|
|
96
|
+
}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
> Note: OpenCode installs npm packages by name. Use `maskweaver` (not `maskweaver/plugin`).
|
|
100
|
+
|
|
101
|
+
OpenCode automatically installs the plugin to `~/.cache/opencode/node_modules/` on startup.
|
|
102
|
+
|
|
103
|
+
**Windows:** `%USERPROFILE%\.config\opencode\opencode.json`
|
|
104
|
+
|
|
105
|
+
### Completion Sound (Optional)
|
|
106
|
+
|
|
107
|
+
Maskweaver can play a notification sound when generation finishes (`session.idle`).
|
|
108
|
+
|
|
109
|
+
Create `.opencode/maskweaver.json` (project) or `~/.config/opencode/maskweaver.json` (global):
|
|
110
|
+
|
|
111
|
+
```jsonc
|
|
112
|
+
{
|
|
113
|
+
"notifications": {
|
|
114
|
+
"completionSound": {
|
|
115
|
+
"enabled": true
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Turn it off:
|
|
122
|
+
|
|
123
|
+
```jsonc
|
|
124
|
+
{
|
|
125
|
+
"notifications": {
|
|
126
|
+
"completionSound": {
|
|
127
|
+
"enabled": false
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Checking Installed Version
|
|
134
|
+
|
|
135
|
+
Multiple ways to verify your Maskweaver version:
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
# CLI (terminal)
|
|
139
|
+
maskweaver --version
|
|
140
|
+
# or
|
|
141
|
+
maskweaver -V
|
|
142
|
+
|
|
143
|
+
# npm
|
|
144
|
+
npm list maskweaver
|
|
145
|
+
|
|
146
|
+
# In OpenCode chat
|
|
147
|
+
# Use the maskweaver_status tool or type:
|
|
148
|
+
/weave help
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
```typescript
|
|
152
|
+
// Programmatic (Node.js / TypeScript)
|
|
153
|
+
import { VERSION } from 'maskweaver';
|
|
154
|
+
console.log(VERSION); // "0.7.29"
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## Quick Start
|
|
160
|
+
|
|
161
|
+
### First Use
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
# In your AI assistant chat:
|
|
165
|
+
@maskweaver Use Linus Torvalds mask to review this C code
|
|
166
|
+
|
|
167
|
+
# Or delegate to dummy-humans:
|
|
168
|
+
@dummy-human Linus mask: review my multithreading code
|
|
169
|
+
@dummy-flash Find all files with "unsafe" in them
|
|
170
|
+
@dummy-premium Design microservices architecture for this monolith
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## Features
|
|
176
|
+
|
|
177
|
+
### π Expert Personas (Masks)
|
|
178
|
+
|
|
179
|
+
Apply legendary developer personalities to your AI assistant:
|
|
180
|
+
|
|
181
|
+
```yaml
|
|
182
|
+
# masks/software-engineering/linus-torvalds.yaml
|
|
183
|
+
profile:
|
|
184
|
+
name: Linus Torvalds
|
|
185
|
+
expertise:
|
|
186
|
+
- Kernel-level systems programming
|
|
187
|
+
- Performance optimization
|
|
188
|
+
- Memory management and concurrency
|
|
189
|
+
|
|
190
|
+
thinkingStyle: |
|
|
191
|
+
Bottom-up, pragmatic. Starts with code, not theory.
|
|
192
|
+
Ruthlessly eliminates complexity.
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
**Current Masks:**
|
|
196
|
+
- π§ **Linus Torvalds** - Systems, C, Linux, performance
|
|
197
|
+
- ποΈ **Martin Fowler** - Architecture, refactoring, patterns
|
|
198
|
+
- π§ͺ **Kent Beck** - TDD, XP, testing
|
|
199
|
+
- π§ **Andrew Ng** - ML/AI systems
|
|
200
|
+
- βοΈ **Dan Abramov** - React, frontend architecture
|
|
201
|
+
|
|
202
|
+
### π€ Dummy-Human System
|
|
203
|
+
|
|
204
|
+
Smart subagents for cost-efficient multi-agent workflows:
|
|
205
|
+
|
|
206
|
+
| Agent | Model Tier | Cost | Best For |
|
|
207
|
+
|-------|-----------|------|----------|
|
|
208
|
+
| `@dummy-flash` | Fast | π° | File search, summaries, simple tasks |
|
|
209
|
+
| `@dummy-human` | Balanced | π°π° | Code writing, reviews, general work |
|
|
210
|
+
| `@dummy-premium` | Powerful | π°π°π° | Architecture, complex debugging |
|
|
211
|
+
|
|
212
|
+
### π§΅ Weave Workflow
|
|
213
|
+
|
|
214
|
+
**Phase-Driven Development** β "AI verifies, Human validates"
|
|
215
|
+
|
|
216
|
+
Weave is Maskweaver's flagship workflow. It breaks work into testable phases, auto-selects expert masks, and provides structured verification before handoff.
|
|
217
|
+
|
|
218
|
+
#### Commands
|
|
219
|
+
|
|
220
|
+
| Command | Description |
|
|
221
|
+
|---------|-------------|
|
|
222
|
+
| `/weave init` | Initialize Weave (once per repo) |
|
|
223
|
+
| `/weave prepare [docs]` | Generate research + spec + plan in one step (auto-split if oversized) |
|
|
224
|
+
| `/weave refine-plan` | Apply structured plan notes (`tasks/plan-notes.md`) to active plan |
|
|
225
|
+
| `/weave approve` | Explicit human approval gate before implementation |
|
|
226
|
+
| `/weave craft [P#]` | Prepare phase execution context and guidance |
|
|
227
|
+
| `/weave build` | Autonomous build loop (`action=run/status/stop/list/resume/sync`) |
|
|
228
|
+
| `/weave verify` | Run build/test verification (auto-detect) |
|
|
229
|
+
| `/weave worktree ...` | Manage git worktrees for parallel work |
|
|
230
|
+
| `/weave status` | View project progress and stats |
|
|
231
|
+
| `/weave agents` | Sync agent files or init config (`sync=true` / `init=true`) |
|
|
232
|
+
| `/weave troubleshoot` | Search global knowledge (`record=true` to save a solution) |
|
|
233
|
+
| `/weave archive` | Archive the verified active change |
|
|
234
|
+
| `/weave help` | Show documentation |
|
|
235
|
+
|
|
236
|
+
> Tip: In OpenCode chat you can use `/weave ...` commands, and they map to the underlying `weave command=...` tool calls.
|
|
237
|
+
|
|
238
|
+
#### Workflow
|
|
239
|
+
|
|
240
|
+
```
|
|
241
|
+
0. INIT (once): /weave init
|
|
242
|
+
β
|
|
243
|
+
1. PLAN: /weave prepare docs/
|
|
244
|
+
- Generates research + spec + phase plan (auto-splits if oversized)
|
|
245
|
+
β
|
|
246
|
+
2. REFINE (optional): /weave refine-plan
|
|
247
|
+
- apply annotation notes from tasks/plan-notes.md
|
|
248
|
+
β
|
|
249
|
+
3. APPROVAL GATE: /weave approve
|
|
250
|
+
- required before craft execution
|
|
251
|
+
β
|
|
252
|
+
4. CRAFT: /weave craft
|
|
253
|
+
- Generates an execution plan and next actions
|
|
254
|
+
- Implement/verify changes, then finalize with approve
|
|
255
|
+
- Use `/weave verify` anytime for build/test checks
|
|
256
|
+
β
|
|
257
|
+
5. HANDOFF: You validate UX/intent and move to next phase
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
#### Multi-Layer AI Verification
|
|
261
|
+
|
|
262
|
+
Before handing off to you, AI runs these verification layers:
|
|
263
|
+
|
|
264
|
+
| Layer | Type | Tool |
|
|
265
|
+
|-------|------|------|
|
|
266
|
+
| 1οΈβ£ TypeCheck | Build | `tsc --noEmit` |
|
|
267
|
+
| 2οΈβ£ Lint | Build | `eslint` |
|
|
268
|
+
| 3οΈβ£ Build | Build | `npm run build` |
|
|
269
|
+
| 4οΈβ£ Unit Tests | Test | `jest` / `vitest` |
|
|
270
|
+
| 5οΈβ£ E2E Tests | Test | **Playwright** |
|
|
271
|
+
| 6οΈβ£ Screenshot | Visual | Playwright / browser capture |
|
|
272
|
+
| 7οΈβ£ API Check | API | `fetch` health checks |
|
|
273
|
+
| 8οΈβ£ A11y | Accessibility | `axe-core` |
|
|
274
|
+
| 0οΈβ£ GDC Check | Design | `gdc check --machine` |
|
|
275
|
+
|
|
276
|
+
#### GDC Integration (Graph-Driven Codebase)
|
|
277
|
+
|
|
278
|
+
Weave integrates with [GDC](https://github.com/ulgerang/gdc) (Graph-Driven Codebase) to enhance research quality and add design-time verification gates:
|
|
279
|
+
|
|
280
|
+
**Research Enhancement:**
|
|
281
|
+
- Automatic `.gdc` workspace detection
|
|
282
|
+
- `weave init` probe chain (`version`/`sync`/`check`/`stats`) for quick integration health check
|
|
283
|
+
- GDC `stats`, `graph`, and `check` results embedded in `tasks/research.md`
|
|
284
|
+
- Dependency blast radius analysis from graph edges
|
|
285
|
+
- Candidate reuse nodes matched against feature keywords
|
|
286
|
+
- New report sections: `GDC Node Coverage`, `Dependency Blast Radius`, `Existing Spec vs Implementation Drift`, `Candidate Reuse Nodes`
|
|
287
|
+
|
|
288
|
+
**Execution Enhancements:**
|
|
289
|
+
- `weave craft` can generate node context files via `gdc extract` and link them in `tasks/todo.md`
|
|
290
|
+
- `weave status` includes GDC node/check metrics (`total/implemented/tested`, issue summary)
|
|
291
|
+
- `weave worktree create` can bootstrap `.gdc/config.yaml` and `.gdc/nodes/**` (without `.gdc/graph.db`)
|
|
292
|
+
|
|
293
|
+
**Pre-Verify Gate:**
|
|
294
|
+
When GDC is detected, `weave verify` and `weave flow` automatically run:
|
|
295
|
+
1. `gdc sync --machine` - Sync specs with implementation
|
|
296
|
+
2. `gdc check --machine` - Validate spec/implementation alignment
|
|
297
|
+
|
|
298
|
+
Blocking errors from GDC check will halt verification (configurable via `strictVerify` mode).
|
|
299
|
+
|
|
300
|
+
**Configuration** (`maskweaver.config.json`):
|
|
301
|
+
```json
|
|
302
|
+
{
|
|
303
|
+
"gdc": {
|
|
304
|
+
"enabled": "auto",
|
|
305
|
+
"strictVerify": false,
|
|
306
|
+
"autoSyncOnPrepare": true,
|
|
307
|
+
"extractContext": {
|
|
308
|
+
"withImpl": true,
|
|
309
|
+
"withTests": true,
|
|
310
|
+
"withCallers": true
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
- `enabled`: `true` | `false` | `"auto"` (default: auto-detect from `.gdc` directory)
|
|
317
|
+
- `strictVerify`: If `true`, GDC check failures block verification; if `false`, continues with warning
|
|
318
|
+
- `autoSyncOnPrepare`: Run `gdc sync` during `weave prepare`
|
|
319
|
+
- `extractContext`: Controls `gdc extract` evidence flags during `weave craft`
|
|
320
|
+
|
|
321
|
+
#### Autonomous Mask Selection
|
|
322
|
+
|
|
323
|
+
The AI automatically picks the best expert for each task:
|
|
324
|
+
|
|
325
|
+
| Task Type | Auto-Selected Mask |
|
|
326
|
+
|-----------|-------------------|
|
|
327
|
+
| Architecture/Design | ποΈ Martin Fowler |
|
|
328
|
+
| Testing/TDD | π§ͺ Kent Beck |
|
|
329
|
+
| React/Frontend | βοΈ Dan Abramov |
|
|
330
|
+
| Performance/Systems | π§ Linus Torvalds |
|
|
331
|
+
| ML/AI | π§ Andrew Ng |
|
|
332
|
+
|
|
333
|
+
#### Global Knowledge Base (Cross-Project RAG)
|
|
334
|
+
|
|
335
|
+
Troubleshooting solutions are stored globally and shared across all projects:
|
|
336
|
+
|
|
337
|
+
```
|
|
338
|
+
Error occurs β Search ~/.maskweaver/knowledge.sqlite
|
|
339
|
+
βββ Found β Apply solution β Retry
|
|
340
|
+
βββ Not found β Fix manually β Record solution for future
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
### π§ Memory System
|
|
344
|
+
|
|
345
|
+
Remember past conversations, decisions, and mask effectiveness:
|
|
346
|
+
|
|
347
|
+
```typescript
|
|
348
|
+
import { memory } from 'maskweaver';
|
|
349
|
+
|
|
350
|
+
// Index your project knowledge
|
|
351
|
+
await memory.indexFile('./docs/architecture.md', embedFn);
|
|
352
|
+
|
|
353
|
+
// Semantic search with multiple providers:
|
|
354
|
+
const results = await memory.hybridSearch(
|
|
355
|
+
'How does authentication work?',
|
|
356
|
+
embedding,
|
|
357
|
+
{ limit: 5, minScore: 0.7 }
|
|
358
|
+
);
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
**Embedding Providers:**
|
|
362
|
+
- π¦ **Ollama** - Local, private (bge-m3, nomic-embed)
|
|
363
|
+
- π€ **OpenAI** - text-embedding-3-large
|
|
364
|
+
- π **VoyageAI** - Code-specialized embeddings!
|
|
365
|
+
- π **OpenRouter** - Access to multiple providers
|
|
366
|
+
- π **Text-only** - No embeddings, pure FTS5
|
|
367
|
+
|
|
368
|
+
### ποΈ Context System
|
|
369
|
+
|
|
370
|
+
Track long-running features with file associations:
|
|
371
|
+
|
|
372
|
+
```bash
|
|
373
|
+
# Start a feature
|
|
374
|
+
@context start name="oauth-login" goal="Implement OAuth2 flow"
|
|
375
|
+
|
|
376
|
+
# Add files to feature context
|
|
377
|
+
@context add file="src/auth/oauth.ts"
|
|
378
|
+
|
|
379
|
+
# Check status
|
|
380
|
+
@context status
|
|
381
|
+
|
|
382
|
+
# Mark as done
|
|
383
|
+
@context done
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
### π Retrospect System
|
|
387
|
+
|
|
388
|
+
Evaluate mask effectiveness after each session:
|
|
389
|
+
|
|
390
|
+
```typescript
|
|
391
|
+
{
|
|
392
|
+
"trigger": "session_end",
|
|
393
|
+
"masksUsed": [
|
|
394
|
+
{
|
|
395
|
+
"name": "linus-torvalds",
|
|
396
|
+
"task": "Review multithreading code",
|
|
397
|
+
"effectiveness": 9.5
|
|
398
|
+
}
|
|
399
|
+
],
|
|
400
|
+
"wellDone": ["Found 3 critical race conditions"],
|
|
401
|
+
"lessons": ["Linus mask excels at concurrency reviews"]
|
|
402
|
+
}
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
---
|
|
406
|
+
|
|
407
|
+
## π¦ Package Structure
|
|
408
|
+
|
|
409
|
+
Maskweaver is a single npm package with modular exports:
|
|
410
|
+
|
|
411
|
+
```typescript
|
|
412
|
+
// Default export - OpenCode plugin
|
|
413
|
+
import maskweaver from 'maskweaver';
|
|
414
|
+
|
|
415
|
+
// Named exports - module namespaces
|
|
416
|
+
import { core, memory, context, retrospect, verify, weave } from 'maskweaver';
|
|
417
|
+
|
|
418
|
+
// Subpath imports - direct module access
|
|
419
|
+
import { hybridSearch } from 'maskweaver/memory';
|
|
420
|
+
import { createFeature } from 'maskweaver/context';
|
|
421
|
+
import { MaskLoader } from 'maskweaver/core';
|
|
422
|
+
import { WeaveOrchestrator, GlobalKnowledge } from 'maskweaver/weave';
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
**Modules:**
|
|
426
|
+
- `maskweaver/core` - Mask loading, validation (YAML/JSON)
|
|
427
|
+
- `maskweaver/memory` - Embeddings + vector search (5 providers)
|
|
428
|
+
- `maskweaver/context` - Feature-based work tracking
|
|
429
|
+
- `maskweaver/verify` - Cross-mask code review
|
|
430
|
+
- `maskweaver/retrospect` - Session effectiveness analysis
|
|
431
|
+
- `maskweaver/weave` - Phase-driven development workflow
|
|
432
|
+
- `maskweaver/gdc` - GDC (Graph-Driven Codebase) integration utilities
|
|
433
|
+
- `maskweaver/plugin` - OpenCode plugin entry point
|
|
434
|
+
|
|
435
|
+
---
|
|
436
|
+
|
|
437
|
+
## π§΅ Weave Usage Guide
|
|
438
|
+
|
|
439
|
+
### Step 0: Initialize (Once)
|
|
440
|
+
|
|
441
|
+
```bash
|
|
442
|
+
/weave init
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
### Step 1: Create a Plan
|
|
446
|
+
|
|
447
|
+
Generate research + spec + plan in one command:
|
|
448
|
+
|
|
449
|
+
```bash
|
|
450
|
+
/weave prepare docs/
|
|
451
|
+
```
|
|
452
|
+
|
|
453
|
+
Then approve the plan:
|
|
454
|
+
|
|
455
|
+
```bash
|
|
456
|
+
/weave approve
|
|
457
|
+
```
|
|
458
|
+
|
|
459
|
+
The AI will:
|
|
460
|
+
1. Read all documents in the path
|
|
461
|
+
2. Search memory for similar past projects
|
|
462
|
+
3. Ask clarifying questions if needed
|
|
463
|
+
4. Present a **Phase Plan** for your approval
|
|
464
|
+
|
|
465
|
+
Example output:
|
|
466
|
+
```markdown
|
|
467
|
+
## π Execution Plan
|
|
468
|
+
|
|
469
|
+
### Vision
|
|
470
|
+
Build a modern emotion diary app with AI-powered insights
|
|
471
|
+
|
|
472
|
+
### Phases
|
|
473
|
+
| Phase | Name | Done When | Est. Time |
|
|
474
|
+
|-------|------|-----------|-----------|
|
|
475
|
+
| P1 | Emotion Selection UI | User can select emotions | 2-3h |
|
|
476
|
+
| P2 | Data Persistence | Emotions saved to storage | 2-3h |
|
|
477
|
+
| P3 | History View | User can view past entries | 2-3h |
|
|
478
|
+
|
|
479
|
+
Is this plan okay? Let me know if changes are needed.
|
|
480
|
+
```
|
|
481
|
+
|
|
482
|
+
### Step 2: Approve the Plan (Required)
|
|
483
|
+
|
|
484
|
+
```bash
|
|
485
|
+
/weave approve
|
|
486
|
+
```
|
|
487
|
+
|
|
488
|
+
### Step 3: Craft a Phase (Auto-select if omitted)
|
|
489
|
+
|
|
490
|
+
Start with the first phase:
|
|
491
|
+
|
|
492
|
+
```bash
|
|
493
|
+
/weave craft
|
|
494
|
+
```
|
|
495
|
+
|
|
496
|
+
`/weave craft` returns execution context for the phase. Implement changes, then rerun `/weave craft` if you want to refresh the plan view.
|
|
497
|
+
|
|
498
|
+
### Step 4: Continue Implementation
|
|
499
|
+
|
|
500
|
+
```txt
|
|
501
|
+
weave command=craft phaseId="P1"
|
|
502
|
+
weave command=verify
|
|
503
|
+
```
|
|
504
|
+
|
|
505
|
+
Autonomous build loop:
|
|
506
|
+
|
|
507
|
+
```txt
|
|
508
|
+
weave command=build action=run phaseIds="P1,P2"
|
|
509
|
+
```
|
|
510
|
+
|
|
511
|
+
### Step 5: Finalize the Phase
|
|
512
|
+
|
|
513
|
+
```txt
|
|
514
|
+
weave command=verify
|
|
515
|
+
weave command=approve
|
|
516
|
+
```
|
|
517
|
+
|
|
518
|
+
### Step 6: Handoff & Validate
|
|
519
|
+
|
|
520
|
+
When all verifications pass:
|
|
521
|
+
|
|
522
|
+
```markdown
|
|
523
|
+
## β
Phase P1 Verification Complete!
|
|
524
|
+
|
|
525
|
+
### π€ AI Test Results
|
|
526
|
+
| Test | Result |
|
|
527
|
+
|------|--------|
|
|
528
|
+
| Build | β
Success |
|
|
529
|
+
| Unit Tests | β
15/15 |
|
|
530
|
+
| Lint | β
Passed |
|
|
531
|
+
|
|
532
|
+
### π Masks Used
|
|
533
|
+
- Kent Beck (testing)
|
|
534
|
+
- Dan Abramov (React components)
|
|
535
|
+
|
|
536
|
+
### π Access
|
|
537
|
+
http://localhost:5173
|
|
538
|
+
|
|
539
|
+
### π€ Human Validation (Only you can judge)
|
|
540
|
+
- [ ] Does it feel right?
|
|
541
|
+
- [ ] Is the UX good?
|
|
542
|
+
- [ ] Is this what you wanted?
|
|
543
|
+
|
|
544
|
+
**[Approve]** **[Request Changes]** **[Later]**
|
|
545
|
+
```
|
|
546
|
+
|
|
547
|
+
### Step 6: Check Status Anytime
|
|
548
|
+
|
|
549
|
+
```bash
|
|
550
|
+
/weave status
|
|
551
|
+
```
|
|
552
|
+
|
|
553
|
+
Output:
|
|
554
|
+
```markdown
|
|
555
|
+
## π Weave Progress
|
|
556
|
+
|
|
557
|
+
**Project**: Emotion Diary App
|
|
558
|
+
**Progress**: 40%
|
|
559
|
+
|
|
560
|
+
[ββββββββββββββββββββ] 2/5
|
|
561
|
+
|
|
562
|
+
### Phases
|
|
563
|
+
β
**P1**: Emotion Selection UI (2.5h) [kent-beck, dan-abramov]
|
|
564
|
+
π **P2**: Data Persistence
|
|
565
|
+
β³ **P3**: History View
|
|
566
|
+
β³ **P4**: Statistics
|
|
567
|
+
β³ **P5**: Theme Settings
|
|
568
|
+
|
|
569
|
+
### Global Knowledge Stats
|
|
570
|
+
- Total troubleshooting records: 47
|
|
571
|
+
- Used in this project: 3
|
|
572
|
+
- Newly recorded: 1
|
|
573
|
+
```
|
|
574
|
+
|
|
575
|
+
---
|
|
576
|
+
|
|
577
|
+
## π Creating Masks
|
|
578
|
+
|
|
579
|
+
Masks are simple YAML files:
|
|
580
|
+
|
|
581
|
+
```yaml
|
|
582
|
+
# masks/my-expert.yaml
|
|
583
|
+
metadata:
|
|
584
|
+
id: my-expert
|
|
585
|
+
version: '1.0'
|
|
586
|
+
language: en
|
|
587
|
+
|
|
588
|
+
profile:
|
|
589
|
+
name: Ada Lovelace
|
|
590
|
+
tagline: Pioneer of Computing - First Programmer
|
|
591
|
+
|
|
592
|
+
expertise:
|
|
593
|
+
- Algorithm design
|
|
594
|
+
- Mathematical thinking
|
|
595
|
+
- Analytical engines
|
|
596
|
+
|
|
597
|
+
thinkingStyle: |
|
|
598
|
+
Combines mathematical rigor with poetic imagination.
|
|
599
|
+
Sees patterns others miss.
|
|
600
|
+
|
|
601
|
+
behavior:
|
|
602
|
+
systemPrompt: |
|
|
603
|
+
You are Ada Lovelace, the first computer programmer.
|
|
604
|
+
|
|
605
|
+
You see algorithms as poetry - elegant, precise, beautiful.
|
|
606
|
+
You think in terms of mathematical transformations and
|
|
607
|
+
logical flows.
|
|
608
|
+
|
|
609
|
+
communicationStyle:
|
|
610
|
+
tone: thoughtful
|
|
611
|
+
verbosity: moderate
|
|
612
|
+
technicalDepth: expert
|
|
613
|
+
|
|
614
|
+
usage:
|
|
615
|
+
suitableFor:
|
|
616
|
+
- Algorithm design and optimization
|
|
617
|
+
- Mathematical problem-solving
|
|
618
|
+
- Pattern recognition in code
|
|
619
|
+
```
|
|
620
|
+
|
|
621
|
+
---
|
|
622
|
+
|
|
623
|
+
## π Multilingual
|
|
624
|
+
|
|
625
|
+
Infrastructure ready for:
|
|
626
|
+
- πΊπΈ English
|
|
627
|
+
- π°π· Korean
|
|
628
|
+
- π¨π³ Chinese *(coming soon)*
|
|
629
|
+
- π―π΅ Japanese *(coming soon)*
|
|
630
|
+
|
|
631
|
+
Masks can have multiple language versions:
|
|
632
|
+
```
|
|
633
|
+
masks/
|
|
634
|
+
βββ linus-torvalds.en.yaml
|
|
635
|
+
βββ linus-torvalds.ko.yaml
|
|
636
|
+
βββ linus-torvalds.zh.yaml
|
|
637
|
+
```
|
|
638
|
+
|
|
639
|
+
---
|
|
640
|
+
|
|
641
|
+
## π€ Contributing
|
|
642
|
+
|
|
643
|
+
We need your help!
|
|
644
|
+
|
|
645
|
+
### Add a Mask
|
|
646
|
+
|
|
647
|
+
Create a YAML file in `masks/` and submit a PR:
|
|
648
|
+
- β
Real expertise (domain knowledge)
|
|
649
|
+
- β
Distinct personality (thinking style)
|
|
650
|
+
- β
Clear use cases (when to use)
|
|
651
|
+
- β
Examples (expected behavior)
|
|
652
|
+
|
|
653
|
+
### Report Bugs
|
|
654
|
+
|
|
655
|
+
Open an issue with:
|
|
656
|
+
1. What you tried
|
|
657
|
+
2. What happened
|
|
658
|
+
3. What you expected
|
|
659
|
+
|
|
660
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for more details.
|
|
661
|
+
|
|
662
|
+
---
|
|
663
|
+
|
|
664
|
+
## π License
|
|
665
|
+
|
|
666
|
+
MIT - See [LICENSE](LICENSE)
|
|
667
|
+
|
|
668
|
+
---
|
|
669
|
+
|
|
670
|
+
<p align="center">
|
|
671
|
+
<sub>Crafted with π by <a href="https://github.com/ulgerang">ULJI SOFT</a></sub>
|
|
672
|
+
</p>
|