oh-my-opencode-slim 2.0.1 → 2.0.3
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.ja-JP.md +31 -1
- package/README.ko-KR.md +31 -1
- package/README.md +41 -2
- package/README.zh-CN.md +31 -1
- package/dist/agents/orchestrator.d.ts +0 -2
- package/dist/cli/companion.d.ts +2 -2
- package/dist/cli/index.js +326 -89
- package/dist/companion/manager.d.ts +1 -0
- package/dist/companion/updater.d.ts +36 -0
- package/dist/config/agent-mcps.d.ts +0 -4
- package/dist/config/constants.d.ts +1 -7
- package/dist/config/council-schema.d.ts +0 -15
- package/dist/config/index.d.ts +1 -1
- package/dist/config/runtime-preset.d.ts +0 -1
- package/dist/config/schema.d.ts +78 -68
- package/dist/config/utils.d.ts +1 -0
- package/dist/hooks/auto-update-checker/skill-sync.d.ts +9 -0
- package/dist/hooks/auto-update-checker/types.d.ts +2 -0
- package/dist/hooks/filter-available-skills/index.d.ts +1 -13
- package/dist/hooks/foreground-fallback/index.d.ts +1 -1
- package/dist/hooks/image-hook.d.ts +1 -13
- package/dist/hooks/index.d.ts +3 -2
- package/dist/hooks/phase-reminder/index.d.ts +10 -16
- package/dist/hooks/reflect/index.d.ts +13 -0
- package/dist/hooks/task-session-manager/index.d.ts +2 -16
- package/dist/hooks/types.d.ts +23 -0
- package/dist/index.js +1610 -585
- package/dist/tools/acp-run.d.ts +3 -0
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/smartfetch/secondary-model.d.ts +7 -0
- package/dist/tui.js +114 -76
- package/dist/utils/agent-variant.d.ts +0 -40
- package/dist/utils/compat.d.ts +0 -1
- package/dist/utils/guards.d.ts +4 -0
- package/dist/utils/index.d.ts +1 -2
- package/dist/utils/logger.d.ts +1 -1
- package/dist/utils/task.d.ts +0 -2
- package/oh-my-opencode-slim.schema.json +103 -249
- package/package.json +2 -1
- package/src/companion/companion-manifest.json +12 -0
- package/src/skills/codemap.md +4 -1
- package/src/skills/reflect/SKILL.md +193 -0
- package/src/skills/worktrees/SKILL.md +164 -0
- package/dist/config/fallback-chains.d.ts +0 -1
- package/dist/hooks/apply-patch/patch.d.ts +0 -2
- package/dist/hooks/delegate-task-retry/guidance.d.ts +0 -2
- package/dist/hooks/delegate-task-retry/index.d.ts +0 -4
- package/dist/hooks/json-error-recovery/index.d.ts +0 -1
- package/dist/utils/env.d.ts +0 -1
|
@@ -8,197 +8,10 @@
|
|
|
8
8
|
"setDefaultAgent": {
|
|
9
9
|
"type": "boolean"
|
|
10
10
|
},
|
|
11
|
-
"scoringEngineVersion": {
|
|
12
|
-
"type": "string",
|
|
13
|
-
"enum": [
|
|
14
|
-
"v1",
|
|
15
|
-
"v2-shadow",
|
|
16
|
-
"v2"
|
|
17
|
-
]
|
|
18
|
-
},
|
|
19
|
-
"balanceProviderUsage": {
|
|
20
|
-
"type": "boolean"
|
|
21
|
-
},
|
|
22
11
|
"autoUpdate": {
|
|
23
12
|
"description": "Disable automatic installation of plugin updates when false. Defaults to true.",
|
|
24
13
|
"type": "boolean"
|
|
25
14
|
},
|
|
26
|
-
"manualPlan": {
|
|
27
|
-
"type": "object",
|
|
28
|
-
"properties": {
|
|
29
|
-
"orchestrator": {
|
|
30
|
-
"type": "object",
|
|
31
|
-
"properties": {
|
|
32
|
-
"primary": {
|
|
33
|
-
"type": "string",
|
|
34
|
-
"pattern": "^[^/\\s]+\\/[^\\s]+$"
|
|
35
|
-
},
|
|
36
|
-
"fallback1": {
|
|
37
|
-
"type": "string",
|
|
38
|
-
"pattern": "^[^/\\s]+\\/[^\\s]+$"
|
|
39
|
-
},
|
|
40
|
-
"fallback2": {
|
|
41
|
-
"type": "string",
|
|
42
|
-
"pattern": "^[^/\\s]+\\/[^\\s]+$"
|
|
43
|
-
},
|
|
44
|
-
"fallback3": {
|
|
45
|
-
"type": "string",
|
|
46
|
-
"pattern": "^[^/\\s]+\\/[^\\s]+$"
|
|
47
|
-
}
|
|
48
|
-
},
|
|
49
|
-
"required": [
|
|
50
|
-
"primary",
|
|
51
|
-
"fallback1",
|
|
52
|
-
"fallback2",
|
|
53
|
-
"fallback3"
|
|
54
|
-
]
|
|
55
|
-
},
|
|
56
|
-
"oracle": {
|
|
57
|
-
"type": "object",
|
|
58
|
-
"properties": {
|
|
59
|
-
"primary": {
|
|
60
|
-
"type": "string",
|
|
61
|
-
"pattern": "^[^/\\s]+\\/[^\\s]+$"
|
|
62
|
-
},
|
|
63
|
-
"fallback1": {
|
|
64
|
-
"type": "string",
|
|
65
|
-
"pattern": "^[^/\\s]+\\/[^\\s]+$"
|
|
66
|
-
},
|
|
67
|
-
"fallback2": {
|
|
68
|
-
"type": "string",
|
|
69
|
-
"pattern": "^[^/\\s]+\\/[^\\s]+$"
|
|
70
|
-
},
|
|
71
|
-
"fallback3": {
|
|
72
|
-
"type": "string",
|
|
73
|
-
"pattern": "^[^/\\s]+\\/[^\\s]+$"
|
|
74
|
-
}
|
|
75
|
-
},
|
|
76
|
-
"required": [
|
|
77
|
-
"primary",
|
|
78
|
-
"fallback1",
|
|
79
|
-
"fallback2",
|
|
80
|
-
"fallback3"
|
|
81
|
-
]
|
|
82
|
-
},
|
|
83
|
-
"designer": {
|
|
84
|
-
"type": "object",
|
|
85
|
-
"properties": {
|
|
86
|
-
"primary": {
|
|
87
|
-
"type": "string",
|
|
88
|
-
"pattern": "^[^/\\s]+\\/[^\\s]+$"
|
|
89
|
-
},
|
|
90
|
-
"fallback1": {
|
|
91
|
-
"type": "string",
|
|
92
|
-
"pattern": "^[^/\\s]+\\/[^\\s]+$"
|
|
93
|
-
},
|
|
94
|
-
"fallback2": {
|
|
95
|
-
"type": "string",
|
|
96
|
-
"pattern": "^[^/\\s]+\\/[^\\s]+$"
|
|
97
|
-
},
|
|
98
|
-
"fallback3": {
|
|
99
|
-
"type": "string",
|
|
100
|
-
"pattern": "^[^/\\s]+\\/[^\\s]+$"
|
|
101
|
-
}
|
|
102
|
-
},
|
|
103
|
-
"required": [
|
|
104
|
-
"primary",
|
|
105
|
-
"fallback1",
|
|
106
|
-
"fallback2",
|
|
107
|
-
"fallback3"
|
|
108
|
-
]
|
|
109
|
-
},
|
|
110
|
-
"explorer": {
|
|
111
|
-
"type": "object",
|
|
112
|
-
"properties": {
|
|
113
|
-
"primary": {
|
|
114
|
-
"type": "string",
|
|
115
|
-
"pattern": "^[^/\\s]+\\/[^\\s]+$"
|
|
116
|
-
},
|
|
117
|
-
"fallback1": {
|
|
118
|
-
"type": "string",
|
|
119
|
-
"pattern": "^[^/\\s]+\\/[^\\s]+$"
|
|
120
|
-
},
|
|
121
|
-
"fallback2": {
|
|
122
|
-
"type": "string",
|
|
123
|
-
"pattern": "^[^/\\s]+\\/[^\\s]+$"
|
|
124
|
-
},
|
|
125
|
-
"fallback3": {
|
|
126
|
-
"type": "string",
|
|
127
|
-
"pattern": "^[^/\\s]+\\/[^\\s]+$"
|
|
128
|
-
}
|
|
129
|
-
},
|
|
130
|
-
"required": [
|
|
131
|
-
"primary",
|
|
132
|
-
"fallback1",
|
|
133
|
-
"fallback2",
|
|
134
|
-
"fallback3"
|
|
135
|
-
]
|
|
136
|
-
},
|
|
137
|
-
"librarian": {
|
|
138
|
-
"type": "object",
|
|
139
|
-
"properties": {
|
|
140
|
-
"primary": {
|
|
141
|
-
"type": "string",
|
|
142
|
-
"pattern": "^[^/\\s]+\\/[^\\s]+$"
|
|
143
|
-
},
|
|
144
|
-
"fallback1": {
|
|
145
|
-
"type": "string",
|
|
146
|
-
"pattern": "^[^/\\s]+\\/[^\\s]+$"
|
|
147
|
-
},
|
|
148
|
-
"fallback2": {
|
|
149
|
-
"type": "string",
|
|
150
|
-
"pattern": "^[^/\\s]+\\/[^\\s]+$"
|
|
151
|
-
},
|
|
152
|
-
"fallback3": {
|
|
153
|
-
"type": "string",
|
|
154
|
-
"pattern": "^[^/\\s]+\\/[^\\s]+$"
|
|
155
|
-
}
|
|
156
|
-
},
|
|
157
|
-
"required": [
|
|
158
|
-
"primary",
|
|
159
|
-
"fallback1",
|
|
160
|
-
"fallback2",
|
|
161
|
-
"fallback3"
|
|
162
|
-
]
|
|
163
|
-
},
|
|
164
|
-
"fixer": {
|
|
165
|
-
"type": "object",
|
|
166
|
-
"properties": {
|
|
167
|
-
"primary": {
|
|
168
|
-
"type": "string",
|
|
169
|
-
"pattern": "^[^/\\s]+\\/[^\\s]+$"
|
|
170
|
-
},
|
|
171
|
-
"fallback1": {
|
|
172
|
-
"type": "string",
|
|
173
|
-
"pattern": "^[^/\\s]+\\/[^\\s]+$"
|
|
174
|
-
},
|
|
175
|
-
"fallback2": {
|
|
176
|
-
"type": "string",
|
|
177
|
-
"pattern": "^[^/\\s]+\\/[^\\s]+$"
|
|
178
|
-
},
|
|
179
|
-
"fallback3": {
|
|
180
|
-
"type": "string",
|
|
181
|
-
"pattern": "^[^/\\s]+\\/[^\\s]+$"
|
|
182
|
-
}
|
|
183
|
-
},
|
|
184
|
-
"required": [
|
|
185
|
-
"primary",
|
|
186
|
-
"fallback1",
|
|
187
|
-
"fallback2",
|
|
188
|
-
"fallback3"
|
|
189
|
-
]
|
|
190
|
-
}
|
|
191
|
-
},
|
|
192
|
-
"required": [
|
|
193
|
-
"orchestrator",
|
|
194
|
-
"oracle",
|
|
195
|
-
"designer",
|
|
196
|
-
"explorer",
|
|
197
|
-
"librarian",
|
|
198
|
-
"fixer"
|
|
199
|
-
],
|
|
200
|
-
"additionalProperties": false
|
|
201
|
-
},
|
|
202
15
|
"presets": {
|
|
203
16
|
"type": "object",
|
|
204
17
|
"propertyNames": {
|
|
@@ -534,67 +347,13 @@
|
|
|
534
347
|
"type": "number",
|
|
535
348
|
"minimum": 0
|
|
536
349
|
},
|
|
537
|
-
"chains": {
|
|
538
|
-
"default": {},
|
|
539
|
-
"type": "object",
|
|
540
|
-
"properties": {
|
|
541
|
-
"orchestrator": {
|
|
542
|
-
"minItems": 1,
|
|
543
|
-
"type": "array",
|
|
544
|
-
"items": {
|
|
545
|
-
"type": "string"
|
|
546
|
-
}
|
|
547
|
-
},
|
|
548
|
-
"oracle": {
|
|
549
|
-
"minItems": 1,
|
|
550
|
-
"type": "array",
|
|
551
|
-
"items": {
|
|
552
|
-
"type": "string"
|
|
553
|
-
}
|
|
554
|
-
},
|
|
555
|
-
"designer": {
|
|
556
|
-
"minItems": 1,
|
|
557
|
-
"type": "array",
|
|
558
|
-
"items": {
|
|
559
|
-
"type": "string"
|
|
560
|
-
}
|
|
561
|
-
},
|
|
562
|
-
"explorer": {
|
|
563
|
-
"minItems": 1,
|
|
564
|
-
"type": "array",
|
|
565
|
-
"items": {
|
|
566
|
-
"type": "string"
|
|
567
|
-
}
|
|
568
|
-
},
|
|
569
|
-
"librarian": {
|
|
570
|
-
"minItems": 1,
|
|
571
|
-
"type": "array",
|
|
572
|
-
"items": {
|
|
573
|
-
"type": "string"
|
|
574
|
-
}
|
|
575
|
-
},
|
|
576
|
-
"fixer": {
|
|
577
|
-
"minItems": 1,
|
|
578
|
-
"type": "array",
|
|
579
|
-
"items": {
|
|
580
|
-
"type": "string"
|
|
581
|
-
}
|
|
582
|
-
}
|
|
583
|
-
},
|
|
584
|
-
"additionalProperties": {
|
|
585
|
-
"minItems": 1,
|
|
586
|
-
"type": "array",
|
|
587
|
-
"items": {
|
|
588
|
-
"type": "string"
|
|
589
|
-
}
|
|
590
|
-
}
|
|
591
|
-
},
|
|
592
350
|
"retry_on_empty": {
|
|
593
351
|
"default": true,
|
|
594
352
|
"description": "When true (default), empty provider responses are treated as failures, triggering fallback/retry. Set to false to treat them as successes.",
|
|
595
353
|
"type": "boolean"
|
|
596
354
|
}
|
|
597
|
-
}
|
|
355
|
+
},
|
|
356
|
+
"additionalProperties": false
|
|
598
357
|
},
|
|
599
358
|
"council": {
|
|
600
359
|
"type": "object",
|
|
@@ -645,12 +404,6 @@
|
|
|
645
404
|
},
|
|
646
405
|
"master": {
|
|
647
406
|
"description": "DEPRECATED — ignored. Council agent synthesizes directly."
|
|
648
|
-
},
|
|
649
|
-
"master_timeout": {
|
|
650
|
-
"description": "DEPRECATED — ignored. Use \"timeout\" instead."
|
|
651
|
-
},
|
|
652
|
-
"master_fallback": {
|
|
653
|
-
"description": "DEPRECATED — ignored. No separate master session."
|
|
654
407
|
}
|
|
655
408
|
},
|
|
656
409
|
"required": [
|
|
@@ -663,6 +416,11 @@
|
|
|
663
416
|
"enabled": {
|
|
664
417
|
"type": "boolean"
|
|
665
418
|
},
|
|
419
|
+
"binaryPath": {
|
|
420
|
+
"description": "Path to a custom companion binary to launch.",
|
|
421
|
+
"type": "string",
|
|
422
|
+
"minLength": 1
|
|
423
|
+
},
|
|
666
424
|
"position": {
|
|
667
425
|
"type": "string",
|
|
668
426
|
"enum": [
|
|
@@ -679,8 +437,104 @@
|
|
|
679
437
|
"medium",
|
|
680
438
|
"large"
|
|
681
439
|
]
|
|
440
|
+
},
|
|
441
|
+
"gifPack": {
|
|
442
|
+
"description": "Bundled companion animation pack to use.",
|
|
443
|
+
"type": "string",
|
|
444
|
+
"enum": [
|
|
445
|
+
"default"
|
|
446
|
+
]
|
|
447
|
+
},
|
|
448
|
+
"loopStyle": {
|
|
449
|
+
"description": "Companion animation playback style: classic loops or smooth ping-pong playback.",
|
|
450
|
+
"type": "string",
|
|
451
|
+
"enum": [
|
|
452
|
+
"classic",
|
|
453
|
+
"smooth"
|
|
454
|
+
]
|
|
455
|
+
},
|
|
456
|
+
"speed": {
|
|
457
|
+
"description": "Companion animation playback speed multiplier. Defaults to 1.",
|
|
458
|
+
"type": "number",
|
|
459
|
+
"minimum": 0.25,
|
|
460
|
+
"maximum": 4
|
|
461
|
+
},
|
|
462
|
+
"debug": {
|
|
463
|
+
"description": "Enable verbose native companion debug logs.",
|
|
464
|
+
"type": "boolean"
|
|
682
465
|
}
|
|
683
466
|
}
|
|
467
|
+
},
|
|
468
|
+
"acpAgents": {
|
|
469
|
+
"type": "object",
|
|
470
|
+
"propertyNames": {
|
|
471
|
+
"type": "string"
|
|
472
|
+
},
|
|
473
|
+
"additionalProperties": {
|
|
474
|
+
"type": "object",
|
|
475
|
+
"properties": {
|
|
476
|
+
"command": {
|
|
477
|
+
"type": "string",
|
|
478
|
+
"minLength": 1
|
|
479
|
+
},
|
|
480
|
+
"args": {
|
|
481
|
+
"default": [],
|
|
482
|
+
"type": "array",
|
|
483
|
+
"items": {
|
|
484
|
+
"type": "string"
|
|
485
|
+
}
|
|
486
|
+
},
|
|
487
|
+
"env": {
|
|
488
|
+
"default": {},
|
|
489
|
+
"type": "object",
|
|
490
|
+
"propertyNames": {
|
|
491
|
+
"type": "string"
|
|
492
|
+
},
|
|
493
|
+
"additionalProperties": {
|
|
494
|
+
"type": "string"
|
|
495
|
+
}
|
|
496
|
+
},
|
|
497
|
+
"cwd": {
|
|
498
|
+
"type": "string",
|
|
499
|
+
"minLength": 1
|
|
500
|
+
},
|
|
501
|
+
"description": {
|
|
502
|
+
"type": "string",
|
|
503
|
+
"minLength": 1
|
|
504
|
+
},
|
|
505
|
+
"prompt": {
|
|
506
|
+
"type": "string",
|
|
507
|
+
"minLength": 1
|
|
508
|
+
},
|
|
509
|
+
"orchestratorPrompt": {
|
|
510
|
+
"type": "string",
|
|
511
|
+
"minLength": 1
|
|
512
|
+
},
|
|
513
|
+
"wrapperModel": {
|
|
514
|
+
"type": "string",
|
|
515
|
+
"pattern": "^[^/\\s]+\\/[^\\s]+$"
|
|
516
|
+
},
|
|
517
|
+
"timeoutMs": {
|
|
518
|
+
"default": 300000,
|
|
519
|
+
"type": "integer",
|
|
520
|
+
"minimum": 1000,
|
|
521
|
+
"maximum": 900000
|
|
522
|
+
},
|
|
523
|
+
"permissionMode": {
|
|
524
|
+
"default": "ask",
|
|
525
|
+
"type": "string",
|
|
526
|
+
"enum": [
|
|
527
|
+
"ask",
|
|
528
|
+
"allow",
|
|
529
|
+
"reject"
|
|
530
|
+
]
|
|
531
|
+
}
|
|
532
|
+
},
|
|
533
|
+
"required": [
|
|
534
|
+
"command"
|
|
535
|
+
],
|
|
536
|
+
"additionalProperties": false
|
|
537
|
+
}
|
|
684
538
|
}
|
|
685
539
|
},
|
|
686
540
|
"title": "oh-my-opencode-slim",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "oh-my-opencode-slim",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.3",
|
|
4
4
|
"description": "Lightweight agent orchestration plugin for OpenCode - a slimmed-down fork of oh-my-opencode",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -40,6 +40,7 @@
|
|
|
40
40
|
"homepage": "https://github.com/alvinunreal/oh-my-opencode-slim#readme",
|
|
41
41
|
"files": [
|
|
42
42
|
"dist",
|
|
43
|
+
"src/companion/companion-manifest.json",
|
|
43
44
|
"src/skills",
|
|
44
45
|
"oh-my-opencode-slim.schema.json",
|
|
45
46
|
"README.md",
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "0.1.3",
|
|
3
|
+
"tag": "companion-v0.1.3",
|
|
4
|
+
"repo": "alvinunreal/oh-my-opencode-slim",
|
|
5
|
+
"checksums": {
|
|
6
|
+
"oh-my-opencode-slim-companion-v0.1.3-aarch64-apple-darwin.tar.gz": "b4885f9b1900c02376e5f8f5ae6f3b8a89d26f7514b03f836d7e3d618164a0ed",
|
|
7
|
+
"oh-my-opencode-slim-companion-v0.1.3-aarch64-unknown-linux-gnu.tar.gz": "ed7cffc583e1eaa78c9bea702e6b6aa3bbc5bb4d881713fb2050237ba6b7aca5",
|
|
8
|
+
"oh-my-opencode-slim-companion-v0.1.3-x86_64-apple-darwin.tar.gz": "98d8ea7c7bc4415b18e0d4c524adb4eb9a84c872919840fdc021f0f50c61f808",
|
|
9
|
+
"oh-my-opencode-slim-companion-v0.1.3-x86_64-pc-windows-msvc.zip": "9316a49bf01f3b4fb1ce2d62edfc46094e73bb153d6ce023fb7df085afcf77bd",
|
|
10
|
+
"oh-my-opencode-slim-companion-v0.1.3-x86_64-unknown-linux-gnu.tar.gz": "33f5fd4b6c80155a019391e5efb13904ca9531ba8dd8c6cba30a161f1b07b764"
|
|
11
|
+
}
|
|
12
|
+
}
|
package/src/skills/codemap.md
CHANGED
|
@@ -19,6 +19,8 @@
|
|
|
19
19
|
- `src/skills/clonedeps/` (workflow skill for dependency source mirroring)
|
|
20
20
|
- `src/skills/simplify/` (readability/refactor guidance skill)
|
|
21
21
|
- `src/skills/deepwork/` (orchestrator-only workflow for heavy coding sessions)
|
|
22
|
+
- `src/skills/reflect/` (orchestrator-only workflow for learning from repeated work and suggesting reusable improvements)
|
|
23
|
+
- `src/skills/worktrees/` (orchestrator-only workflow for safe Git worktree lanes)
|
|
22
24
|
- `src/skills/oh-my-opencode-slim/` (orchestrator-only plugin configuration and self-improvement guidance)
|
|
23
25
|
- Files are considered static runtime payload. No plugin TS module in `src/` imports these files directly; they
|
|
24
26
|
are loaded by OpenCode via filesystem installation.
|
|
@@ -41,6 +43,7 @@
|
|
|
41
43
|
- `verify-release-artifact.ts` enforces artifact completeness by asserting key
|
|
42
44
|
bundled skill payloads such as `src/skills/simplify/SKILL.md`,
|
|
43
45
|
`src/skills/codemap/SKILL.md`, `src/skills/clonedeps/SKILL.md`, and
|
|
44
|
-
`src/skills/deepwork/SKILL.md`,
|
|
46
|
+
`src/skills/deepwork/SKILL.md`, `src/skills/reflect/SKILL.md`,
|
|
47
|
+
`src/skills/worktrees/SKILL.md`, plus `src/skills/oh-my-opencode-slim/SKILL.md`,
|
|
45
48
|
are present in the tarball.
|
|
46
49
|
- `package.json` scripts (`verify:release`, `build`) rely on these assets to ensure install-time skill availability.
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: reflect
|
|
3
|
+
description: Review recent work, find repeated workflow patterns, and suggest reusable skills, agents, commands, config changes, or playbooks. Use when the user asks to learn from past sessions, improve recurring workflows, or identify what should be turned into reusable agent instructions.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Reflect
|
|
7
|
+
|
|
8
|
+
Reflect is an orchestrator-only workflow for learning from repeated work. It
|
|
9
|
+
looks back over recent sessions, project notes, and existing agent assets, then
|
|
10
|
+
recommends the smallest useful improvement: a skill, custom agent, command,
|
|
11
|
+
configuration change, prompt rule, documentation playbook, or no change.
|
|
12
|
+
|
|
13
|
+
The goal is to identify real repeated friction and suggest practical improvements with evidence.
|
|
14
|
+
|
|
15
|
+
## When to Use
|
|
16
|
+
|
|
17
|
+
Use Reflect when the user asks to:
|
|
18
|
+
|
|
19
|
+
- run `/reflect` or `/reflect <focus>`;
|
|
20
|
+
- learn from recent sessions or repeated workflows;
|
|
21
|
+
- find work they keep doing manually;
|
|
22
|
+
- improve their oh-my-opencode-slim setup based on actual usage using oh-my-opencode-slim skill;
|
|
23
|
+
- review whether a recurring process should become a reusable playbook;
|
|
24
|
+
- turn repeated workflow friction into a safer future default.
|
|
25
|
+
|
|
26
|
+
Do not use Reflect for ordinary implementation work, one-off debugging, broad
|
|
27
|
+
architecture review, or speculative agent creation without workflow evidence.
|
|
28
|
+
|
|
29
|
+
## Core Contract
|
|
30
|
+
|
|
31
|
+
Reflect must be conservative and evidence-driven.
|
|
32
|
+
|
|
33
|
+
Required behavior:
|
|
34
|
+
|
|
35
|
+
- inspect existing assets before suggesting new ones;
|
|
36
|
+
- prefer recent, repeated, user-visible friction over isolated incidents;
|
|
37
|
+
- recommend the smallest useful form;
|
|
38
|
+
- treat "create nothing" as a successful result when evidence is weak;
|
|
39
|
+
- ask before changing prompts, skills, commands, agents, MCP access, or config;
|
|
40
|
+
- avoid duplicating existing assets;
|
|
41
|
+
- explain restart requirements for OpenCode config, prompt, agent, skill, MCP, or
|
|
42
|
+
plugin changes.
|
|
43
|
+
|
|
44
|
+
## Evidence Sources
|
|
45
|
+
|
|
46
|
+
Use available evidence in this order:
|
|
47
|
+
|
|
48
|
+
1. Current conversation and explicit user instructions.
|
|
49
|
+
2. Project-local guidance and memories, such as `AGENTS.md`, `.opencode/`,
|
|
50
|
+
`.slim/`, notes, checkpoints, task progress files, and codemaps.
|
|
51
|
+
3. Existing skills, commands, agents, prompt overrides, MCP permissions, and
|
|
52
|
+
oh-my-opencode-slim configuration.
|
|
53
|
+
4. Recent OpenCode logs or session artifacts if they are available and safe to
|
|
54
|
+
inspect.
|
|
55
|
+
5. External docs only when a proposed workflow depends on a third-party tool or
|
|
56
|
+
library whose behavior needs confirmation.
|
|
57
|
+
|
|
58
|
+
Respect privacy and safety boundaries. Do not inspect unrelated personal files,
|
|
59
|
+
credentials, private messages, or external accounts unless the user explicitly
|
|
60
|
+
asks and the workflow requires it.
|
|
61
|
+
|
|
62
|
+
## Workflow
|
|
63
|
+
|
|
64
|
+
Reflect can be triggered directly:
|
|
65
|
+
|
|
66
|
+
```text
|
|
67
|
+
/reflect
|
|
68
|
+
/reflect release workflow and checks
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
With no arguments, review recent work broadly. With arguments, focus the review
|
|
72
|
+
on that workflow area while still checking whether existing assets already cover
|
|
73
|
+
it.
|
|
74
|
+
|
|
75
|
+
### 1. Inventory Existing Assets
|
|
76
|
+
|
|
77
|
+
Before proposing anything, identify what already exists:
|
|
78
|
+
|
|
79
|
+
- bundled and user-installed skills;
|
|
80
|
+
- custom agents and their `orchestratorPrompt` guidance;
|
|
81
|
+
- custom commands;
|
|
82
|
+
- prompt overrides and append files;
|
|
83
|
+
- active oh-my-opencode-slim preset, model routing, skills, and MCP permissions;
|
|
84
|
+
- project playbooks, docs, codemaps, and local workflow notes.
|
|
85
|
+
|
|
86
|
+
If an existing asset already covers the candidate, recommend extending or using
|
|
87
|
+
that asset instead of creating a near-duplicate.
|
|
88
|
+
|
|
89
|
+
### 2. Find Repeated Workflow Patterns
|
|
90
|
+
|
|
91
|
+
Look for repeated signals such as:
|
|
92
|
+
|
|
93
|
+
- the same command sequence appears across sessions;
|
|
94
|
+
- the user repeatedly asks for the same review, setup, release, or debugging
|
|
95
|
+
process;
|
|
96
|
+
- the same manual research or context-gathering steps keep recurring;
|
|
97
|
+
- the same specialist routing decision is repeatedly needed;
|
|
98
|
+
- the same project-specific rule is repeatedly re-explained;
|
|
99
|
+
- repeated failures happen because an agent lacks a stable instruction, tool, or
|
|
100
|
+
permission boundary.
|
|
101
|
+
|
|
102
|
+
Strong candidates usually have at least two occurrences, stable inputs, a clear
|
|
103
|
+
output, and a clear stopping condition.
|
|
104
|
+
|
|
105
|
+
### 3. Score Candidates
|
|
106
|
+
|
|
107
|
+
For each candidate, decide:
|
|
108
|
+
|
|
109
|
+
- **Frequency:** How often has it happened?
|
|
110
|
+
- **Cost:** Does it waste meaningful time, context, money, or attention?
|
|
111
|
+
- **Risk:** Does inconsistent execution cause bugs, regressions, bad decisions,
|
|
112
|
+
or unsafe changes?
|
|
113
|
+
- **Stability:** Are the inputs and desired output predictable?
|
|
114
|
+
- **Coverage:** Is there already an asset that handles it well?
|
|
115
|
+
|
|
116
|
+
Only recommend creating or changing assets when confidence is high.
|
|
117
|
+
|
|
118
|
+
### 4. Choose the Smallest Useful Form
|
|
119
|
+
|
|
120
|
+
Pick the least powerful form that solves the repeated problem:
|
|
121
|
+
|
|
122
|
+
- **Prompt/config rule:** a small behavior change to an existing agent.
|
|
123
|
+
- **Skill:** reusable workflow guidance for a task shape.
|
|
124
|
+
- **Command:** a repeatable manual trigger with stable inputs.
|
|
125
|
+
- **Custom agent:** a distinct specialist lane with clear delegation rules.
|
|
126
|
+
- **MCP/tool permission change:** a safe access adjustment for an existing agent.
|
|
127
|
+
- **Project playbook/doc:** human-readable process guidance when automation is too
|
|
128
|
+
heavy.
|
|
129
|
+
- **Skip:** weak, one-off, ambiguous, sensitive, or already-covered work.
|
|
130
|
+
|
|
131
|
+
Avoid creating custom agents when a prompt rule or skill is enough. Avoid skills
|
|
132
|
+
when a short project playbook is enough. Avoid config changes when the benefit is
|
|
133
|
+
unclear.
|
|
134
|
+
|
|
135
|
+
### 5. Propose Before Changing
|
|
136
|
+
|
|
137
|
+
Unless the user explicitly requested a specific edit, present a concise proposal
|
|
138
|
+
before writing files or changing config:
|
|
139
|
+
|
|
140
|
+
```text
|
|
141
|
+
Found 2 strong repeated workflows and 1 weak candidate.
|
|
142
|
+
|
|
143
|
+
Recommended:
|
|
144
|
+
- Add a small orchestrator prompt rule for <workflow> because <evidence>.
|
|
145
|
+
- Extend existing <skill> instead of creating a new one because <overlap>.
|
|
146
|
+
|
|
147
|
+
Skip:
|
|
148
|
+
- <candidate> because it only appeared once.
|
|
149
|
+
|
|
150
|
+
Proceed with the proposed edits?
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
When applying changes, preserve existing user settings and prefer narrow,
|
|
154
|
+
append-only edits.
|
|
155
|
+
|
|
156
|
+
## Output Format
|
|
157
|
+
|
|
158
|
+
Return a compact report:
|
|
159
|
+
|
|
160
|
+
```text
|
|
161
|
+
Findings
|
|
162
|
+
- <workflow>: evidence, frequency/confidence, recommended form.
|
|
163
|
+
|
|
164
|
+
Recommended changes
|
|
165
|
+
- <asset/config/doc>: one-line purpose and why this is the smallest useful form.
|
|
166
|
+
|
|
167
|
+
Skipped
|
|
168
|
+
- <candidate>: why not worth packaging now.
|
|
169
|
+
|
|
170
|
+
Needs more evidence
|
|
171
|
+
- <candidate>: what would make it actionable.
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
If nothing qualifies, say:
|
|
175
|
+
|
|
176
|
+
```text
|
|
177
|
+
No strong repeated workflow found. I would not add or change any reusable assets
|
|
178
|
+
yet.
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
## Guardrails
|
|
182
|
+
|
|
183
|
+
- Do not manufacture assets to justify the workflow.
|
|
184
|
+
- Do not create overlapping skills or agents.
|
|
185
|
+
- Do not silently change global config, prompts, or permissions.
|
|
186
|
+
- Do not add broad instructions that make agents more eager, expensive, or
|
|
187
|
+
invasive without a clear benefit.
|
|
188
|
+
- Do not overfit to a single session unless the user explicitly asks for that
|
|
189
|
+
exact reusable workflow.
|
|
190
|
+
- Do not use private or sensitive material as examples in generated assets.
|
|
191
|
+
- When config, prompt, agent, skill, MCP, or plugin files change, tell the user:
|
|
192
|
+
"This should apply on the next OpenCode run; restart OpenCode if you need it
|
|
193
|
+
immediately."
|