Skip to content

Commit aba5d7b

Browse files
committed
docs: add ecosystem role and contract clarity to bundle README
1 parent d1d5dda commit aba5d7b

1 file changed

Lines changed: 71 additions & 13 deletions

File tree

README.md

Lines changed: 71 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,77 @@ A collection of OpenCode AI agent configuration presets with planning-first mult
66

77
This bundle provides drop-in OpenCode agent configurations that route work through schema-validated JSON handoff artifacts before planning, execution, and review. The goal is fewer ambiguous changes, less rework, and tighter safety boundaries with a small, explicit contract between agents.
88

9+
## Versioning & Stability
10+
11+
This bundle follows its own versioning scheme (`bundle_version` in the manifest), independent of the opencode-helper CLI version. This is intentional:
12+
13+
- **Ecosystem Stability**: Configuration bundles are foundational contracts that other tools and workflows depend on. Changes to the bundle should be rare and deliberate.
14+
- **Semantic Versioning**: Follows semver (e.g., `v1.0.0`, `v1.1.0`, `v2.0.0`) to communicate change impact.
15+
- **Backward Compatibility**: Minor and patch updates within a major version must not break existing configurations.
16+
- **Schema Stability**: The bundle manifest schema (see below) is contractually stable. Once published, a manifest version `1` will never change breakingly.
17+
18+
## Bundle Contract (V2)
19+
20+
The V2 bundle manifest is the contract between the bundle and the opencode-helper CLI. This contract is:
21+
22+
- **Published**: Included in the CLI's schema validation
23+
- **Versioned**: The `manifest_version` field ensures forward compatibility
24+
- **Minimal**: Only contains what's needed for the CLI to discover and apply presets
25+
26+
### Manifest Schema
27+
28+
```json
29+
{
30+
"$schema": "https://json-schema.org/draft/2020-12/schema",
31+
"type": "object",
32+
"required": ["manifest_version", "bundle_name", "bundle_version", "presets"],
33+
"properties": {
34+
"manifest_version": { "type": "integer", "const": 1 },
35+
"bundle_name": { "type": "string" },
36+
"bundle_version": { "type": "string" },
37+
"source_repo": { "type": "string" },
38+
"source_commit": { "type": "string" },
39+
"release_tag": { "type": "string" },
40+
"presets": {
41+
"type": "array",
42+
"items": {
43+
"type": "object",
44+
"required": ["name", "description", "entrypoint"],
45+
"properties": {
46+
"name": { "type": "string" },
47+
"description": { "type": "string" },
48+
"entrypoint": { "type": "string" },
49+
"prompt_files": { "type": "array", "items": { "type": "string" } }
50+
}
51+
}
52+
}
53+
}
54+
}
55+
```
56+
57+
### Required Files
58+
59+
A valid V2 bundle must include:
60+
61+
```
62+
<bundle-root>/
63+
opencode-bundle.manifest.json <- required for V2
64+
<preset-entrypoint>.json <- each preset file
65+
.opencode/schemas/
66+
handoff.schema.json <- canonical handoff contract
67+
result.schema.json <- canonical result contract
68+
```
69+
70+
## Ecosystem Role
71+
72+
This bundle serves as a foundational component of the OpenCode ecosystem:
73+
74+
1. **Contract Provider**: Exports the canonical V2 bundle manifest schema used by the CLI
75+
2. **Schema Publisher**: Includes `handoff.schema.json` and `result.schema.json` that define inter-agent contracts
76+
3. **Preset Repository**: Maintains multiple model-specific configurations in a single, versioned bundle
77+
78+
> **Important**: Because other tools depend on this bundle's contracts, changes should follow semver strictly. The manifest schema (`manifest_version: 1`) is locked and will never break backward compatibility.
79+
980
## Bundle Contents
1081

1182
| Preset | Description |
@@ -16,19 +87,6 @@ This bundle provides drop-in OpenCode agent configurations that route work throu
1687
| `big-pickle` | Big Pickle model-based configuration |
1788
| `minimax` | MiniMax-based configuration |
1889

19-
## Bundle Manifest
20-
21-
This bundle follows the V2 config bundle manifest specification:
22-
23-
```json
24-
{
25-
"manifest_version": 1,
26-
"bundle_name": "qbic-opencode-config-bundle",
27-
"bundle_version": "v1.0.0",
28-
"presets": [...]
29-
}
30-
```
31-
3290
## Schema Files
3391

3492
The bundle includes the canonical artifact schemas used by all configurations:

0 commit comments

Comments
 (0)