@ikieaneh/opencode-kit 0.5.0 → 0.5.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.md +24 -8
- package/package.json +3 -3
- package/templates/opencode-kit.schema.json +59 -11
package/README.md
CHANGED
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
</p>
|
|
29
29
|
|
|
30
30
|
<p>
|
|
31
|
+
<b>npm:</b> <code>@ikieaneh/opencode-kit</code> ·
|
|
31
32
|
<b>macOS M-Series</b> — Apple Silicon (arm64)
|
|
32
33
|
</p>
|
|
33
34
|
</div>
|
|
@@ -123,14 +124,14 @@ git --version # any recent version
|
|
|
123
124
|
|
|
124
125
|
### Installation
|
|
125
126
|
|
|
126
|
-
#### Option 1: Install as plugin (recommended
|
|
127
|
+
#### Option 1: Install as plugin (recommended)
|
|
127
128
|
|
|
128
129
|
Add to your project's `opencode.json`:
|
|
129
130
|
|
|
130
131
|
```json
|
|
131
132
|
{
|
|
132
133
|
"plugin": [
|
|
133
|
-
"opencode-kit", ← MUST be first
|
|
134
|
+
"@ikieaneh/opencode-kit", ← MUST be first
|
|
134
135
|
"other-plugins..."
|
|
135
136
|
]
|
|
136
137
|
}
|
|
@@ -139,10 +140,12 @@ Add to your project's `opencode.json`:
|
|
|
139
140
|
Then install:
|
|
140
141
|
|
|
141
142
|
```sh
|
|
142
|
-
npm install opencode-kit
|
|
143
|
+
npm install @ikieaneh/opencode-kit
|
|
143
144
|
```
|
|
144
145
|
|
|
145
|
-
The plugin auto-loads on next session.
|
|
146
|
+
The plugin auto-loads on next session. All 8 skills become available. The orchestration contract is injected into every session automatically.
|
|
147
|
+
|
|
148
|
+
> **Plugin ordering**: opencode-kit MUST be first in the plugin array. Its system prompt transform is foundational — other plugins may add behavior, but opencode-kit enforces the workflow.
|
|
146
149
|
|
|
147
150
|
> **Plugin ordering**: opencode-kit MUST be first in the plugin array. Its system prompt transform is foundational — other plugins may add behavior, but opencode-kit enforces the workflow.
|
|
148
151
|
|
|
@@ -370,10 +373,17 @@ After every subagent delegation, scoring runs automatically:
|
|
|
370
373
|
- [x] Integration tests (7/7 passing)
|
|
371
374
|
- [x] CI integration test job
|
|
372
375
|
|
|
373
|
-
### v0.6 —
|
|
374
|
-
- [
|
|
375
|
-
- [
|
|
376
|
-
- [
|
|
376
|
+
### v0.6 — Polish ✅
|
|
377
|
+
- [x] README updated for @ikieaneh/opencode-kit plugin mode
|
|
378
|
+
- [x] Updated agent config schema (fallback_models, explorer, librarian, architect)
|
|
379
|
+
- [x] End-to-end tests (9 tests, plugin lifecycle + auto-init)
|
|
380
|
+
- [x] Quickstart example (`docs/examples/QUICKSTART.md`)
|
|
381
|
+
- [x] npm published as `@ikieaneh/opencode-kit`
|
|
382
|
+
- [x] CI: integration + e2e test jobs
|
|
383
|
+
|
|
384
|
+
### Future
|
|
385
|
+
- [ ] Web UI for contract overview (deferred — no current need)
|
|
386
|
+
- [ ] Plugin hardening: `experimental.chat.messages.transform` API is marked experimental — monitor OpenCode updates
|
|
377
387
|
|
|
378
388
|
See the [open issues](https://github.com/RizkiRachman/opencode-kit/issues) for full list.
|
|
379
389
|
|
|
@@ -398,6 +408,12 @@ Distributed under the MIT License. See `LICENSE` for more information.
|
|
|
398
408
|
<!-- CONTACT -->
|
|
399
409
|
## Contact
|
|
400
410
|
|
|
411
|
+
## Known Limitations
|
|
412
|
+
|
|
413
|
+
- **Plugin hook API**: The `experimental.chat.messages.transform` hook is marked as experimental in the OpenCode plugin SDK. It may change in future versions. If it breaks, the plugin falls back to per-project agent .md files (`.opencode/agents/*.md`), which remain functional.
|
|
414
|
+
- **Package name**: Currently published as `@ikieaneh/opencode-kit` (scoped). Requires `npm install @ikieaneh/opencode-kit`.
|
|
415
|
+
- **Contract auto-init**: Requires a git repository. Non-git projects use absolute path as hash fallback.
|
|
416
|
+
|
|
401
417
|
Rizki Rachman — [GitHub](https://github.com/RizkiRachman)
|
|
402
418
|
|
|
403
419
|
Project Link: [https://github.com/RizkiRachman/opencode-kit](https://github.com/RizkiRachman/opencode-kit)
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ikieaneh/opencode-kit",
|
|
3
|
-
"version": "0.5.
|
|
4
|
-
"description": "Standardized OpenCode orchestration framework
|
|
3
|
+
"version": "0.5.1",
|
|
4
|
+
"description": "Standardized OpenCode orchestration framework — contract-based, rules-enforced, zero-touch agent workflow. Install as plugin.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "RizkiRachman",
|
|
7
7
|
"type": "module",
|
|
@@ -44,4 +44,4 @@
|
|
|
44
44
|
"url": "https://github.com/RizkiRachman/opencode-kit/issues"
|
|
45
45
|
},
|
|
46
46
|
"homepage": "https://github.com/RizkiRachman/opencode-kit#readme"
|
|
47
|
-
}
|
|
47
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft-07/schema#",
|
|
3
3
|
"title": "opencode-kit Plugin Config",
|
|
4
|
-
"description": "Configuration schema for opencode-kit plugin. Add to your opencode.json to enable orchestration agents.",
|
|
4
|
+
"description": "Configuration schema for @ikieaneh/opencode-kit plugin. Add to your opencode.json to enable orchestration agents.",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"properties": {
|
|
7
7
|
"plugin": {
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"description": "opencode-kit MUST be listed FIRST in the plugin array to ensure its system prompt transform takes priority.",
|
|
10
10
|
"items": {
|
|
11
11
|
"type": "string",
|
|
12
|
-
"examples": ["opencode-kit", "superpowers", "oh-my-opencode-slim"]
|
|
12
|
+
"examples": ["@ikieaneh/opencode-kit", "superpowers", "oh-my-opencode-slim"]
|
|
13
13
|
},
|
|
14
14
|
"minItems": 1
|
|
15
15
|
},
|
|
@@ -23,11 +23,12 @@
|
|
|
23
23
|
"properties": {
|
|
24
24
|
"skills": {
|
|
25
25
|
"type": "array",
|
|
26
|
-
"description": "Recommended skills: orchestration-template, scoring-pipeline, adr-generator",
|
|
26
|
+
"description": "Recommended skills: orchestration-template, scoring-pipeline, adr-generator, verification-before-completion",
|
|
27
27
|
"items": { "type": "string" },
|
|
28
28
|
"default": ["orchestration-template", "scoring-pipeline", "verification-before-completion"]
|
|
29
29
|
},
|
|
30
|
-
"steps": { "type": "integer", "default": 50, "description": "Max agent steps" }
|
|
30
|
+
"steps": { "type": "integer", "default": 50, "description": "Max agent steps" },
|
|
31
|
+
"fallback_models": { "type": "array", "items": { "type": "string" }, "description": "Fallback models if primary fails" }
|
|
31
32
|
}
|
|
32
33
|
},
|
|
33
34
|
"planner": {
|
|
@@ -40,7 +41,8 @@
|
|
|
40
41
|
"items": { "type": "string" },
|
|
41
42
|
"default": ["brainstorming", "writing-plans", "system-analyst"]
|
|
42
43
|
},
|
|
43
|
-
"steps": { "type": "integer", "default": 80 }
|
|
44
|
+
"steps": { "type": "integer", "default": 80 },
|
|
45
|
+
"fallback_models": { "type": "array", "items": { "type": "string" } }
|
|
44
46
|
}
|
|
45
47
|
},
|
|
46
48
|
"task-manager": {
|
|
@@ -52,7 +54,8 @@
|
|
|
52
54
|
"items": { "type": "string" },
|
|
53
55
|
"default": ["subagent-driven-development", "executing-plans", "test-driven-development"]
|
|
54
56
|
},
|
|
55
|
-
"steps": { "type": "integer", "default": 100 }
|
|
57
|
+
"steps": { "type": "integer", "default": 100 },
|
|
58
|
+
"fallback_models": { "type": "array", "items": { "type": "string" } }
|
|
56
59
|
}
|
|
57
60
|
},
|
|
58
61
|
"code-reviewer": {
|
|
@@ -64,16 +67,61 @@
|
|
|
64
67
|
"items": { "type": "string" },
|
|
65
68
|
"default": ["qa-expert", "security-expert", "devops-expert"]
|
|
66
69
|
},
|
|
67
|
-
"steps": { "type": "integer", "default": 80 }
|
|
70
|
+
"steps": { "type": "integer", "default": 80 },
|
|
71
|
+
"fallback_models": { "type": "array", "items": { "type": "string" } }
|
|
68
72
|
}
|
|
69
73
|
},
|
|
70
74
|
"learner": {
|
|
71
75
|
"type": "object",
|
|
72
76
|
"description": "Post-execution learning. Extracts lessons, persists knowledge.",
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
|
|
76
|
-
|
|
77
|
+
"properties": {
|
|
78
|
+
"skills": {
|
|
79
|
+
"type": "array",
|
|
80
|
+
"items": { "type": "string" },
|
|
81
|
+
"default": ["verification-before-completion", "qa-expert"]
|
|
82
|
+
},
|
|
83
|
+
"fallback_models": { "type": "array", "items": { "type": "string" } }
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
"explorer": {
|
|
87
|
+
"type": "object",
|
|
88
|
+
"description": "Fast codebase search specialist. Read-only — no edits.",
|
|
89
|
+
"properties": {
|
|
90
|
+
"skills": { "type": "array", "items": { "type": "string" }, "default": [] },
|
|
91
|
+
"steps": { "type": "integer", "default": 30 },
|
|
92
|
+
"tools": {
|
|
93
|
+
"type": "object",
|
|
94
|
+
"description": "Disable write-heavy tools: context7, memory, postgres",
|
|
95
|
+
"default": { "postgres_*": false, "memory_*": false, "context7_*": false }
|
|
96
|
+
},
|
|
97
|
+
"fallback_models": { "type": "array", "items": { "type": "string" } }
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
"librarian": {
|
|
101
|
+
"type": "object",
|
|
102
|
+
"description": "External docs and API references. Read-only — no edits.",
|
|
103
|
+
"properties": {
|
|
104
|
+
"skills": { "type": "array", "items": { "type": "string" }, "default": [] },
|
|
105
|
+
"steps": { "type": "integer", "default": 30 },
|
|
106
|
+
"tools": {
|
|
107
|
+
"type": "object",
|
|
108
|
+
"description": "Disable tools not needed for docs research",
|
|
109
|
+
"default": { "postgres_*": false, "memory_*": false, "graphify_*": false }
|
|
110
|
+
},
|
|
111
|
+
"fallback_models": { "type": "array", "items": { "type": "string" } }
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
"architect": {
|
|
115
|
+
"type": "object",
|
|
116
|
+
"description": "Strategic technical advisor. Architecture trade-offs, system-level debugging, simplification.",
|
|
117
|
+
"properties": {
|
|
118
|
+
"skills": {
|
|
119
|
+
"type": "array",
|
|
120
|
+
"items": { "type": "string" },
|
|
121
|
+
"default": ["simplify", "systematic-debugging", "system-analyst"]
|
|
122
|
+
},
|
|
123
|
+
"steps": { "type": "integer", "default": 60 },
|
|
124
|
+
"fallback_models": { "type": "array", "items": { "type": "string" } }
|
|
77
125
|
}
|
|
78
126
|
}
|
|
79
127
|
}
|